swagger-client 3.26.0 → 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.
- package/dist/swagger-client.browser.js +640 -1003
- package/dist/swagger-client.browser.min.js +1 -1
- package/dist/swagger-client.browser.min.js.map +1 -1
- package/es/execute/oas3/parameter-builders.js +14 -13
- package/es/resolver/strategies/openapi-3-1-apidom/resolve.js +2 -1
- package/lib/execute/oas3/parameter-builders.js +14 -13
- package/lib/resolver/strategies/openapi-3-1-apidom/resolve.js +2 -1
- package/package.json +7 -7
|
@@ -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
|
-
|
|
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
|
|
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;
|
|
@@ -2507,7 +2508,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2507
2508
|
/* harmony import */ var _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(60503);
|
|
2508
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_18__ = __webpack_require__(
|
|
2511
|
+
/* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(51776);
|
|
2511
2512
|
/* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$anchor__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(46432);
|
|
2512
2513
|
/* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_uri__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(16129);
|
|
2513
2514
|
/* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_uri__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(78311);
|
|
@@ -4232,7 +4233,8 @@ const resolveOpenAPI31Strategy = async options => {
|
|
|
4232
4233
|
refSet,
|
|
4233
4234
|
dereferenceOpts: {
|
|
4234
4235
|
errors
|
|
4235
|
-
}
|
|
4236
|
+
},
|
|
4237
|
+
immutable: false
|
|
4236
4238
|
}
|
|
4237
4239
|
});
|
|
4238
4240
|
const transcluded = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_20__.transclude)(fragmentElement, dereferenced, openApiElement);
|
|
@@ -17666,45 +17668,6 @@ module.exports = {
|
|
|
17666
17668
|
};
|
|
17667
17669
|
|
|
17668
17670
|
|
|
17669
|
-
/***/ }),
|
|
17670
|
-
|
|
17671
|
-
/***/ 7408:
|
|
17672
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
17673
|
-
|
|
17674
|
-
"use strict";
|
|
17675
|
-
__webpack_require__.r(__webpack_exports__);
|
|
17676
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
17677
|
-
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
17678
|
-
/* harmony export */ });
|
|
17679
|
-
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25845);
|
|
17680
|
-
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29461);
|
|
17681
|
-
|
|
17682
|
-
|
|
17683
|
-
/**
|
|
17684
|
-
* Composable shortcut for `Promise.all`.
|
|
17685
|
-
*
|
|
17686
|
-
* The `allP` method returns a single Promise that resolves when all of the promises
|
|
17687
|
-
* in the iterable argument have resolved or when the iterable argument contains no promises.
|
|
17688
|
-
* It rejects with the reason of the first promise that rejects.
|
|
17689
|
-
*
|
|
17690
|
-
* @func allP
|
|
17691
|
-
* @memberOf RA
|
|
17692
|
-
* @since {@link https://char0n.github.io/ramda-adjunct/2.3.0|v2.3.0}
|
|
17693
|
-
* @category Function
|
|
17694
|
-
* @sig [Promise a] -> Promise [a]
|
|
17695
|
-
* @param {Iterable.<*>} iterable An iterable object such as an Array or String
|
|
17696
|
-
* @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.
|
|
17697
|
-
* @see {@link RA.resolveP|resolveP}, {@link RA.rejectP|rejectP}
|
|
17698
|
-
* @example
|
|
17699
|
-
*
|
|
17700
|
-
* RA.allP([1, 2]); //=> Promise([1, 2])
|
|
17701
|
-
* RA.allP([1, Promise.resolve(2)]); //=> Promise([1, 2])
|
|
17702
|
-
* RA.allP([Promise.resolve(1), Promise.resolve(2)]); //=> Promise([1, 2])
|
|
17703
|
-
* RA.allP([1, Promise.reject(2)]); //=> Promise(2)
|
|
17704
|
-
*/
|
|
17705
|
-
var allP = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(1, (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(Promise.all, Promise));
|
|
17706
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (allP);
|
|
17707
|
-
|
|
17708
17671
|
/***/ }),
|
|
17709
17672
|
|
|
17710
17673
|
/***/ 88931:
|
|
@@ -37743,9 +37706,9 @@ const ReferenceSet = stampit__WEBPACK_IMPORTED_MODULE_0__({
|
|
|
37743
37706
|
},
|
|
37744
37707
|
clean() {
|
|
37745
37708
|
this.refs.forEach(ref => {
|
|
37746
|
-
// eslint-disable-
|
|
37747
|
-
ref.refSet = null;
|
|
37709
|
+
ref.refSet = null; // eslint-disable-line no-param-reassign
|
|
37748
37710
|
});
|
|
37711
|
+
this.rootRef = null;
|
|
37749
37712
|
this.refs = [];
|
|
37750
37713
|
}
|
|
37751
37714
|
}
|
|
@@ -37949,6 +37912,10 @@ const dereference = async (uri, options) => {
|
|
|
37949
37912
|
const mergedOptions = (0,_options_util_mjs__WEBPACK_IMPORTED_MODULE_11__.merge)(options, {
|
|
37950
37913
|
resolve: {
|
|
37951
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
|
|
37952
37919
|
}
|
|
37953
37920
|
});
|
|
37954
37921
|
return dereferenceApiDOM(parseResult, mergedOptions);
|
|
@@ -37994,23 +37961,24 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
37994
37961
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
37995
37962
|
/* harmony export */ OpenApi3_1DereferenceVisitor: () => (/* reexport safe */ _visitor_mjs__WEBPACK_IMPORTED_MODULE_11__["default"]),
|
|
37996
37963
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
37997
|
-
/* harmony export */ maybeRefractToSchemaElement: () => (/* reexport safe */
|
|
37998
|
-
/* harmony export */ resolveSchema$
|
|
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)
|
|
37999
37967
|
/* harmony export */ });
|
|
38000
37968
|
/* harmony import */ var stampit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12646);
|
|
38001
|
-
/* harmony import */ var
|
|
38002
|
-
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(95201);
|
|
37969
|
+
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(95201);
|
|
38003
37970
|
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(46571);
|
|
38004
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);
|
|
38005
37973
|
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(94145);
|
|
38006
37974
|
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(70281);
|
|
38007
37975
|
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41544);
|
|
38008
37976
|
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(66648);
|
|
38009
37977
|
/* harmony import */ var _DereferenceStrategy_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29708);
|
|
38010
|
-
/* harmony import */ var
|
|
38011
|
-
/* harmony import */ var
|
|
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);
|
|
38012
37980
|
/* harmony import */ var _visitor_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(32346);
|
|
38013
|
-
/* harmony import */ var
|
|
37981
|
+
/* harmony import */ var _util_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(51776);
|
|
38014
37982
|
|
|
38015
37983
|
|
|
38016
37984
|
|
|
@@ -38038,18 +38006,34 @@ const OpenApi3_1DereferenceStrategy = stampit__WEBPACK_IMPORTED_MODULE_0__(_Dere
|
|
|
38038
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);
|
|
38039
38007
|
},
|
|
38040
38008
|
async dereference(file, options) {
|
|
38009
|
+
var _options$dereference$;
|
|
38041
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"]);
|
|
38042
|
-
const
|
|
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;
|
|
38043
38014
|
let reference;
|
|
38044
|
-
if (!
|
|
38045
|
-
reference = (0,
|
|
38015
|
+
if (!immutableRefSet.has(file.uri)) {
|
|
38016
|
+
reference = (0,_Reference_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])({
|
|
38046
38017
|
uri: file.uri,
|
|
38047
38018
|
value: file.parseResult
|
|
38048
38019
|
});
|
|
38049
|
-
|
|
38020
|
+
immutableRefSet.add(reference);
|
|
38050
38021
|
} else {
|
|
38051
38022
|
// pre-computed refSet was provided as configuration option
|
|
38052
|
-
reference =
|
|
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;
|
|
38053
38037
|
}
|
|
38054
38038
|
const visitor = (0,_visitor_mjs__WEBPACK_IMPORTED_MODULE_11__["default"])({
|
|
38055
38039
|
reference,
|
|
@@ -38061,13 +38045,26 @@ const OpenApi3_1DereferenceStrategy = stampit__WEBPACK_IMPORTED_MODULE_0__(_Dere
|
|
|
38061
38045
|
nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_12__.getNodeType
|
|
38062
38046
|
});
|
|
38063
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
|
+
|
|
38064
38060
|
/**
|
|
38065
38061
|
* Release all memory if this refSet was not provided as an configuration option.
|
|
38066
38062
|
* If provided as configuration option, then provider is responsible for cleanup.
|
|
38067
38063
|
*/
|
|
38068
38064
|
if (options.dereference.refSet === null) {
|
|
38069
|
-
|
|
38065
|
+
immutableRefSet.clean();
|
|
38070
38066
|
}
|
|
38067
|
+
mutableRefsSet.clean();
|
|
38071
38068
|
return dereferencedElement;
|
|
38072
38069
|
}
|
|
38073
38070
|
}
|
|
@@ -38167,7 +38164,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
38167
38164
|
/* harmony import */ var _util_url_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(83748);
|
|
38168
38165
|
/* harmony import */ var _errors_EvaluationJsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(78311);
|
|
38169
38166
|
/* harmony import */ var _$anchor_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(46432);
|
|
38170
|
-
/* harmony import */ var
|
|
38167
|
+
/* harmony import */ var _util_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51776);
|
|
38171
38168
|
/* harmony import */ var _errors_JsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(64937);
|
|
38172
38169
|
|
|
38173
38170
|
|
|
@@ -38195,7 +38192,7 @@ const evaluate = (uri, element) => {
|
|
|
38195
38192
|
|
|
38196
38193
|
// search for the matching schema
|
|
38197
38194
|
const result = cache.get(element).find(e => {
|
|
38198
|
-
const $idBaseURI = (0,
|
|
38195
|
+
const $idBaseURI = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_3__.resolveSchema$idField)(uriStrippedHash, e);
|
|
38199
38196
|
return $idBaseURI === uriStrippedHash;
|
|
38200
38197
|
});
|
|
38201
38198
|
if ((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_4__["default"])(result)) {
|
|
@@ -38220,6 +38217,72 @@ evaluate.cache = new WeakMap();
|
|
|
38220
38217
|
|
|
38221
38218
|
|
|
38222
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
|
+
|
|
38223
38286
|
/***/ }),
|
|
38224
38287
|
|
|
38225
38288
|
/***/ 32346:
|
|
@@ -38231,33 +38294,34 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
38231
38294
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
38232
38295
|
/* harmony export */ });
|
|
38233
38296
|
/* harmony import */ var stampit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12646);
|
|
38234
|
-
/* harmony import */ var
|
|
38235
|
-
/* harmony import */ var
|
|
38236
|
-
/* harmony import */ var
|
|
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);
|
|
38237
38300
|
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(46571);
|
|
38238
38301
|
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42209);
|
|
38239
|
-
/* harmony import */ var
|
|
38302
|
+
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(87024);
|
|
38240
38303
|
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(33501);
|
|
38241
|
-
/* harmony import */ var
|
|
38242
|
-
/* harmony import */ var
|
|
38243
|
-
/* harmony import */ var
|
|
38244
|
-
/* harmony import */ var
|
|
38245
|
-
/* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(
|
|
38246
|
-
/* harmony import */ var
|
|
38247
|
-
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(
|
|
38248
|
-
/* harmony import */ var
|
|
38249
|
-
/* harmony import */ var
|
|
38250
|
-
/* harmony import */ var
|
|
38251
|
-
/* harmony import */ var
|
|
38252
|
-
/* harmony import */ var
|
|
38253
|
-
/* harmony import */ var
|
|
38254
|
-
/* harmony import */ var
|
|
38255
|
-
/* harmony import */ var
|
|
38256
|
-
/* harmony import */ var
|
|
38257
|
-
/* harmony import */ var
|
|
38258
|
-
/* harmony import */ var
|
|
38259
|
-
/* harmony import */ var
|
|
38260
|
-
/* harmony import */ var
|
|
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);
|
|
38261
38325
|
|
|
38262
38326
|
|
|
38263
38327
|
|
|
@@ -38281,12 +38345,6 @@ const visitAsync = _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__.visit[S
|
|
|
38281
38345
|
// initialize element identity manager
|
|
38282
38346
|
const identityManager = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_2__.IdentityManager)();
|
|
38283
38347
|
|
|
38284
|
-
/**
|
|
38285
|
-
* Predicate for detecting if element was created by merging referencing
|
|
38286
|
-
* element with particular element identity with a referenced element.
|
|
38287
|
-
*/
|
|
38288
|
-
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)));
|
|
38289
|
-
|
|
38290
38348
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
38291
38349
|
const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
|
|
38292
38350
|
props: {
|
|
@@ -38302,24 +38360,24 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
|
|
|
38302
38360
|
reference,
|
|
38303
38361
|
namespace,
|
|
38304
38362
|
options,
|
|
38305
|
-
ancestors = new
|
|
38363
|
+
ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_3__.AncestorLineage(),
|
|
38306
38364
|
refractCache = new Map()
|
|
38307
38365
|
}) {
|
|
38308
38366
|
this.indirections = indirections;
|
|
38309
38367
|
this.namespace = namespace;
|
|
38310
38368
|
this.reference = reference;
|
|
38311
38369
|
this.options = options;
|
|
38312
|
-
this.ancestors = new
|
|
38370
|
+
this.ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_3__.AncestorLineage(...ancestors);
|
|
38313
38371
|
this.refractCache = refractCache;
|
|
38314
38372
|
},
|
|
38315
38373
|
methods: {
|
|
38316
38374
|
toBaseURI(uri) {
|
|
38317
|
-
return
|
|
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)));
|
|
38318
38376
|
},
|
|
38319
38377
|
async toReference(uri) {
|
|
38320
38378
|
// detect maximum depth of resolution
|
|
38321
38379
|
if (this.reference.depth >= this.options.resolve.maxDepth) {
|
|
38322
|
-
throw new
|
|
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}"`);
|
|
38323
38381
|
}
|
|
38324
38382
|
const baseURI = this.toBaseURI(uri);
|
|
38325
38383
|
const {
|
|
@@ -38328,9 +38386,9 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
|
|
|
38328
38386
|
|
|
38329
38387
|
// we've already processed this Reference in past
|
|
38330
38388
|
if (refSet.has(baseURI)) {
|
|
38331
|
-
return refSet.find((0,
|
|
38389
|
+
return refSet.find((0,ramda__WEBPACK_IMPORTED_MODULE_6__["default"])(baseURI, 'uri'));
|
|
38332
38390
|
}
|
|
38333
|
-
const parseResult = await (0,
|
|
38391
|
+
const parseResult = await (0,_parse_index_mjs__WEBPACK_IMPORTED_MODULE_7__["default"])(_util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.unsanitize(baseURI), {
|
|
38334
38392
|
...this.options,
|
|
38335
38393
|
parse: {
|
|
38336
38394
|
...this.options.parse,
|
|
@@ -38338,14 +38396,23 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
|
|
|
38338
38396
|
}
|
|
38339
38397
|
});
|
|
38340
38398
|
|
|
38341
|
-
// register new
|
|
38342
|
-
const
|
|
38399
|
+
// register new mutable reference with a refSet
|
|
38400
|
+
const mutableReference = (0,_Reference_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])({
|
|
38343
38401
|
uri: baseURI,
|
|
38344
|
-
value: parseResult,
|
|
38402
|
+
value: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneDeep)(parseResult),
|
|
38345
38403
|
depth: this.reference.depth + 1
|
|
38346
38404
|
});
|
|
38347
|
-
refSet.add(
|
|
38348
|
-
|
|
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;
|
|
38349
38416
|
},
|
|
38350
38417
|
toAncestorLineage(ancestors) {
|
|
38351
38418
|
/**
|
|
@@ -38353,18 +38420,17 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
|
|
|
38353
38420
|
* Ancestors are flatten to unwrap all Element instances.
|
|
38354
38421
|
*/
|
|
38355
38422
|
const directAncestors = new Set(ancestors.filter(_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isElement));
|
|
38356
|
-
const ancestorsLineage = new
|
|
38423
|
+
const ancestorsLineage = new _util_mjs__WEBPACK_IMPORTED_MODULE_3__.AncestorLineage(...this.ancestors, directAncestors);
|
|
38357
38424
|
return [ancestorsLineage, directAncestors];
|
|
38358
38425
|
},
|
|
38359
38426
|
async ReferenceElement(referencingElement, key, parent, path, ancestors) {
|
|
38360
|
-
|
|
38361
|
-
|
|
38362
|
-
// detect possible cycle in traversal and avoid it
|
|
38363
|
-
if (ancestorsLineage.includesCycle(referencingElement)) {
|
|
38427
|
+
// skip current referencing element as it's already been access
|
|
38428
|
+
if (this.indirections.includes(referencingElement)) {
|
|
38364
38429
|
return false;
|
|
38365
38430
|
}
|
|
38366
|
-
const
|
|
38367
|
-
const
|
|
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;
|
|
38368
38434
|
const isExternalReference = !isInternalReference;
|
|
38369
38435
|
|
|
38370
38436
|
// ignore resolving internal Reference Objects
|
|
@@ -38377,23 +38443,24 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
|
|
|
38377
38443
|
// skip traversing this reference element and all it's child elements
|
|
38378
38444
|
return false;
|
|
38379
38445
|
}
|
|
38380
|
-
const reference = await this.toReference((0,
|
|
38381
|
-
const $refBaseURI =
|
|
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));
|
|
38382
38448
|
this.indirections.push(referencingElement);
|
|
38383
|
-
const jsonPointer = (0,
|
|
38449
|
+
const jsonPointer = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.uriToPointer)($refBaseURI);
|
|
38384
38450
|
|
|
38385
38451
|
// possibly non-semantic fragment
|
|
38386
|
-
let referencedElement = (0,
|
|
38452
|
+
let referencedElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_13__["default"])(jsonPointer, reference.value.result);
|
|
38453
|
+
referencedElement.id = identityManager.identify(referencedElement);
|
|
38387
38454
|
|
|
38388
38455
|
// applying semantics to a fragment
|
|
38389
38456
|
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isPrimitiveElement)(referencedElement)) {
|
|
38390
|
-
const referencedElementType = (0,
|
|
38391
|
-
const cacheKey = `${referencedElementType}-${(0,
|
|
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))}`;
|
|
38392
38459
|
if (this.refractCache.has(cacheKey)) {
|
|
38393
38460
|
referencedElement = this.refractCache.get(cacheKey);
|
|
38394
|
-
} else if ((0,
|
|
38461
|
+
} else if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__.isReferenceLikeElement)(referencedElement)) {
|
|
38395
38462
|
// handling indirect references
|
|
38396
|
-
referencedElement =
|
|
38463
|
+
referencedElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__.ReferenceElement.refract(referencedElement);
|
|
38397
38464
|
referencedElement.setMetaProperty('referenced-element', referencedElementType);
|
|
38398
38465
|
this.refractCache.set(cacheKey, referencedElement);
|
|
38399
38466
|
} else {
|
|
@@ -38405,98 +38472,125 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
|
|
|
38405
38472
|
}
|
|
38406
38473
|
|
|
38407
38474
|
// detect direct or indirect reference
|
|
38408
|
-
if (
|
|
38409
|
-
throw new
|
|
38475
|
+
if (referencingElement === referencedElement) {
|
|
38476
|
+
throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_16__["default"]('Recursive Reference Object detected');
|
|
38410
38477
|
}
|
|
38411
38478
|
|
|
38412
38479
|
// detect maximum depth of dereferencing
|
|
38413
38480
|
if (this.indirections.length > this.options.dereference.maxDepth) {
|
|
38414
|
-
throw new
|
|
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
|
+
}
|
|
38415
38505
|
}
|
|
38416
38506
|
|
|
38417
|
-
|
|
38418
|
-
|
|
38419
|
-
|
|
38420
|
-
|
|
38421
|
-
|
|
38422
|
-
|
|
38423
|
-
|
|
38424
|
-
|
|
38425
|
-
|
|
38426
|
-
ancestors
|
|
38427
|
-
|
|
38428
|
-
|
|
38429
|
-
|
|
38430
|
-
|
|
38431
|
-
|
|
38432
|
-
|
|
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
|
+
});
|
|
38433
38530
|
|
|
38434
|
-
|
|
38435
|
-
|
|
38531
|
+
// remove referencing reference from ancestors lineage
|
|
38532
|
+
directAncestors.delete(referencingElement);
|
|
38533
|
+
}
|
|
38436
38534
|
this.indirections.pop();
|
|
38437
|
-
const mergeAndAnnotateReferencedElement = refedElement => {
|
|
38438
|
-
const copy = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneShallow)(refedElement);
|
|
38439
38535
|
|
|
38440
|
-
|
|
38441
|
-
|
|
38442
|
-
|
|
38443
|
-
|
|
38444
|
-
|
|
38445
|
-
|
|
38446
|
-
|
|
38447
|
-
|
|
38448
|
-
|
|
38449
|
-
|
|
38450
|
-
|
|
38451
|
-
|
|
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)));
|
|
38452
38554
|
|
|
38453
|
-
|
|
38454
|
-
|
|
38455
|
-
|
|
38456
|
-
|
|
38457
|
-
|
|
38458
|
-
// @ts-ignore
|
|
38459
|
-
copy.set('description', referencingElement.get('description'));
|
|
38460
|
-
}
|
|
38461
|
-
if (referencingElement.hasKey('summary') && 'summary' in refedElement) {
|
|
38462
|
-
// @ts-ignore
|
|
38463
|
-
copy.remove('summary');
|
|
38464
|
-
// @ts-ignore
|
|
38465
|
-
copy.set('summary', referencingElement.get('summary'));
|
|
38466
|
-
}
|
|
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'));
|
|
38467
38560
|
}
|
|
38468
|
-
|
|
38469
|
-
|
|
38470
|
-
|
|
38471
|
-
// attempting to create cycle
|
|
38472
|
-
if (ancestorsLineage.includes(referencingElement) || ancestorsLineage.includes(referencedElement)) {
|
|
38473
|
-
var _ancestorsLineage$fin;
|
|
38474
|
-
const replaceWith = (_ancestorsLineage$fin = ancestorsLineage.findItem(wasReferencedBy(referencingElement))) !== null && _ancestorsLineage$fin !== void 0 ? _ancestorsLineage$fin : mergeAndAnnotateReferencedElement(referencedElement);
|
|
38475
|
-
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isMemberElement)(parent)) {
|
|
38476
|
-
parent.value = replaceWith; // eslint-disable-line no-param-reassign
|
|
38477
|
-
} else if (Array.isArray(parent)) {
|
|
38478
|
-
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'));
|
|
38479
38564
|
}
|
|
38480
|
-
return false;
|
|
38481
38565
|
}
|
|
38482
38566
|
|
|
38483
|
-
|
|
38484
|
-
|
|
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;
|
|
38485
38580
|
},
|
|
38486
38581
|
async PathItemElement(referencingElement, key, parent, path, ancestors) {
|
|
38487
|
-
const [ancestorsLineage, directAncestors] = this.toAncestorLineage([...ancestors, parent]);
|
|
38488
|
-
|
|
38489
38582
|
// ignore PathItemElement without $ref field
|
|
38490
38583
|
if (!(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isStringElement)(referencingElement.$ref)) {
|
|
38491
38584
|
return undefined;
|
|
38492
38585
|
}
|
|
38493
38586
|
|
|
38494
|
-
//
|
|
38495
|
-
if (
|
|
38587
|
+
// skip current referencing element as it's already been access
|
|
38588
|
+
if (this.indirections.includes(referencingElement)) {
|
|
38496
38589
|
return false;
|
|
38497
38590
|
}
|
|
38498
|
-
const
|
|
38499
|
-
const
|
|
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;
|
|
38500
38594
|
const isExternalReference = !isInternalReference;
|
|
38501
38595
|
|
|
38502
38596
|
// ignore resolving external Path Item Objects
|
|
@@ -38509,92 +38603,130 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
|
|
|
38509
38603
|
// skip traversing this Path Item element but traverse all it's child elements
|
|
38510
38604
|
return undefined;
|
|
38511
38605
|
}
|
|
38512
|
-
const reference = await this.toReference((0,
|
|
38513
|
-
const $refBaseURI =
|
|
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));
|
|
38514
38608
|
this.indirections.push(referencingElement);
|
|
38515
|
-
const jsonPointer = (0,
|
|
38609
|
+
const jsonPointer = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.uriToPointer)($refBaseURI);
|
|
38516
38610
|
|
|
38517
38611
|
// possibly non-semantic referenced element
|
|
38518
|
-
let referencedElement = (0,
|
|
38612
|
+
let referencedElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_13__["default"])(jsonPointer, reference.value.result);
|
|
38613
|
+
referencedElement.id = identityManager.identify(referencedElement);
|
|
38519
38614
|
|
|
38520
|
-
|
|
38615
|
+
/**
|
|
38616
|
+
* Applying semantics to a referenced element if semantics are missing.
|
|
38617
|
+
*/
|
|
38521
38618
|
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isPrimitiveElement)(referencedElement)) {
|
|
38522
|
-
const cacheKey = `
|
|
38619
|
+
const cacheKey = `path-item-${(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(identityManager.identify(referencedElement))}`;
|
|
38523
38620
|
if (this.refractCache.has(cacheKey)) {
|
|
38524
38621
|
referencedElement = this.refractCache.get(cacheKey);
|
|
38525
38622
|
} else {
|
|
38526
|
-
referencedElement =
|
|
38623
|
+
referencedElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__.PathItemElement.refract(referencedElement);
|
|
38527
38624
|
this.refractCache.set(cacheKey, referencedElement);
|
|
38528
38625
|
}
|
|
38529
38626
|
}
|
|
38530
38627
|
|
|
38531
38628
|
// detect direct or indirect reference
|
|
38532
|
-
if (
|
|
38533
|
-
throw new
|
|
38629
|
+
if (referencingElement === referencedElement) {
|
|
38630
|
+
throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_16__["default"]('Recursive Path Item Object reference detected');
|
|
38534
38631
|
}
|
|
38535
38632
|
|
|
38536
38633
|
// detect maximum depth of dereferencing
|
|
38537
38634
|
if (this.indirections.length > this.options.dereference.maxDepth) {
|
|
38538
|
-
throw new
|
|
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
|
+
}
|
|
38539
38659
|
}
|
|
38540
38660
|
|
|
38541
|
-
|
|
38542
|
-
|
|
38543
|
-
|
|
38544
|
-
|
|
38545
|
-
|
|
38546
|
-
|
|
38547
|
-
|
|
38548
|
-
|
|
38549
|
-
|
|
38550
|
-
ancestors
|
|
38551
|
-
|
|
38552
|
-
|
|
38553
|
-
|
|
38554
|
-
|
|
38555
|
-
|
|
38556
|
-
|
|
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
|
+
});
|
|
38557
38684
|
|
|
38558
|
-
|
|
38559
|
-
|
|
38685
|
+
// remove referencing reference from ancestors lineage
|
|
38686
|
+
directAncestors.delete(referencingElement);
|
|
38687
|
+
}
|
|
38560
38688
|
this.indirections.pop();
|
|
38561
|
-
|
|
38562
|
-
|
|
38563
|
-
|
|
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());
|
|
38564
38697
|
// existing keywords from referencing PathItemElement overrides ones from referenced element
|
|
38565
38698
|
referencingElement.forEach((value, keyElement, item) => {
|
|
38566
|
-
mergedElement.remove((0,
|
|
38699
|
+
mergedElement.remove((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(keyElement));
|
|
38567
38700
|
mergedElement.content.push(item);
|
|
38568
38701
|
});
|
|
38569
38702
|
mergedElement.remove('$ref');
|
|
38570
38703
|
|
|
38571
38704
|
// annotate referenced element with info about original referencing element
|
|
38572
38705
|
mergedElement.setMetaProperty('ref-fields', {
|
|
38573
|
-
$ref: (0,
|
|
38706
|
+
$ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.$ref)
|
|
38574
38707
|
});
|
|
38575
38708
|
// annotate referenced element with info about origin
|
|
38576
38709
|
mergedElement.setMetaProperty('ref-origin', reference.uri);
|
|
38577
38710
|
// annotate fragment with info about referencing element
|
|
38578
|
-
mergedElement.setMetaProperty('ref-referencing-element-id', (0,
|
|
38579
|
-
|
|
38580
|
-
}
|
|
38711
|
+
mergedElement.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneDeep)(identityManager.identify(referencingElement)));
|
|
38712
|
+
referencedElement = mergedElement;
|
|
38713
|
+
}
|
|
38581
38714
|
|
|
38582
|
-
|
|
38583
|
-
|
|
38584
|
-
|
|
38585
|
-
|
|
38586
|
-
|
|
38587
|
-
|
|
38588
|
-
|
|
38589
|
-
parent[key] = replaceWith; // eslint-disable-line no-param-reassign
|
|
38590
|
-
}
|
|
38591
|
-
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
|
|
38592
38722
|
}
|
|
38593
38723
|
|
|
38594
|
-
|
|
38595
|
-
|
|
38724
|
+
/**
|
|
38725
|
+
* We're at the root of the tree, so we're just replacing the entire tree.
|
|
38726
|
+
*/
|
|
38727
|
+
return !parent ? referencedElement : undefined;
|
|
38596
38728
|
},
|
|
38597
|
-
async LinkElement(linkElement) {
|
|
38729
|
+
async LinkElement(linkElement, key, parent) {
|
|
38598
38730
|
// ignore LinkElement without operationRef or operationId field
|
|
38599
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)) {
|
|
38600
38732
|
return undefined;
|
|
@@ -38602,15 +38734,15 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
|
|
|
38602
38734
|
|
|
38603
38735
|
// operationRef and operationId fields are mutually exclusive
|
|
38604
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)) {
|
|
38605
|
-
throw new
|
|
38737
|
+
throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_16__["default"]('LinkElement operationRef and operationId fields are mutually exclusive.');
|
|
38606
38738
|
}
|
|
38607
38739
|
let operationElement;
|
|
38608
38740
|
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isStringElement)(linkElement.operationRef)) {
|
|
38609
38741
|
var _linkElementCopy$oper;
|
|
38610
38742
|
// possibly non-semantic referenced element
|
|
38611
|
-
const jsonPointer = (0,
|
|
38612
|
-
const retrievalURI = this.toBaseURI((0,
|
|
38613
|
-
const isInternalReference =
|
|
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;
|
|
38614
38746
|
const isExternalReference = !isInternalReference;
|
|
38615
38747
|
|
|
38616
38748
|
// ignore resolving internal Operation Object reference
|
|
@@ -38623,60 +38755,79 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
|
|
|
38623
38755
|
// skip traversing this Link element but traverse all it's child elements
|
|
38624
38756
|
return undefined;
|
|
38625
38757
|
}
|
|
38626
|
-
const reference = await this.toReference((0,
|
|
38627
|
-
operationElement = (0,
|
|
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);
|
|
38628
38760
|
// applying semantics to a referenced element
|
|
38629
38761
|
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isPrimitiveElement)(operationElement)) {
|
|
38630
|
-
const cacheKey = `operation-${(0,
|
|
38762
|
+
const cacheKey = `operation-${(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(identityManager.identify(operationElement))}`;
|
|
38631
38763
|
if (this.refractCache.has(cacheKey)) {
|
|
38632
38764
|
operationElement = this.refractCache.get(cacheKey);
|
|
38633
38765
|
} else {
|
|
38634
|
-
operationElement =
|
|
38766
|
+
operationElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__.OperationElement.refract(operationElement);
|
|
38635
38767
|
this.refractCache.set(cacheKey, operationElement);
|
|
38636
38768
|
}
|
|
38637
38769
|
}
|
|
38638
38770
|
// create shallow clone to be able to annotate with metadata
|
|
38639
|
-
operationElement = (0,
|
|
38771
|
+
operationElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneShallow)(operationElement);
|
|
38640
38772
|
// annotate operation element with info about origin
|
|
38641
38773
|
operationElement.setMetaProperty('ref-origin', reference.uri);
|
|
38642
|
-
const linkElementCopy = (0,
|
|
38774
|
+
const linkElementCopy = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneShallow)(linkElement);
|
|
38643
38775
|
(_linkElementCopy$oper = linkElementCopy.operationRef) === null || _linkElementCopy$oper === void 0 || _linkElementCopy$oper.meta.set('operation', operationElement);
|
|
38644
|
-
|
|
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;
|
|
38645
38790
|
}
|
|
38646
38791
|
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isStringElement)(linkElement.operationId)) {
|
|
38647
38792
|
var _linkElementCopy$oper2;
|
|
38648
|
-
const operationId = (0,
|
|
38649
|
-
const reference = await this.toReference(
|
|
38650
|
-
operationElement = (0,
|
|
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);
|
|
38651
38796
|
// OperationElement not found by its operationId
|
|
38652
|
-
if ((0,
|
|
38653
|
-
throw new
|
|
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.`);
|
|
38654
38799
|
}
|
|
38655
|
-
const linkElementCopy = (0,
|
|
38800
|
+
const linkElementCopy = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneShallow)(linkElement);
|
|
38656
38801
|
(_linkElementCopy$oper2 = linkElementCopy.operationId) === null || _linkElementCopy$oper2 === void 0 || _linkElementCopy$oper2.meta.set('operation', operationElement);
|
|
38657
|
-
|
|
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;
|
|
38658
38816
|
}
|
|
38659
38817
|
return undefined;
|
|
38660
38818
|
},
|
|
38661
|
-
async ExampleElement(exampleElement, key, parent
|
|
38662
|
-
const [ancestorsLineage] = this.toAncestorLineage([...ancestors, parent]);
|
|
38663
|
-
|
|
38819
|
+
async ExampleElement(exampleElement, key, parent) {
|
|
38664
38820
|
// ignore ExampleElement without externalValue field
|
|
38665
38821
|
if (!(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isStringElement)(exampleElement.externalValue)) {
|
|
38666
38822
|
return undefined;
|
|
38667
38823
|
}
|
|
38668
38824
|
|
|
38669
|
-
// detect possible cycle in traversal and avoid it
|
|
38670
|
-
if (ancestorsLineage.includesCycle(exampleElement)) {
|
|
38671
|
-
return false;
|
|
38672
|
-
}
|
|
38673
|
-
|
|
38674
38825
|
// value and externalValue fields are mutually exclusive
|
|
38675
38826
|
if (exampleElement.hasKey('value') && (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isStringElement)(exampleElement.externalValue)) {
|
|
38676
|
-
throw new
|
|
38827
|
+
throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_16__["default"]('ExampleElement value and externalValue fields are mutually exclusive.');
|
|
38677
38828
|
}
|
|
38678
|
-
const retrievalURI = this.toBaseURI((0,
|
|
38679
|
-
const isInternalReference =
|
|
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;
|
|
38680
38831
|
const isExternalReference = !isInternalReference;
|
|
38681
38832
|
|
|
38682
38833
|
// ignore resolving internal Example Objects
|
|
@@ -38689,44 +38840,55 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
|
|
|
38689
38840
|
// skip traversing this Example element but traverse all it's child elements
|
|
38690
38841
|
return undefined;
|
|
38691
38842
|
}
|
|
38692
|
-
const reference = await this.toReference((0,
|
|
38843
|
+
const reference = await this.toReference((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(exampleElement.externalValue));
|
|
38693
38844
|
|
|
38694
38845
|
// shallow clone of the referenced element
|
|
38695
|
-
const valueElement = (0,
|
|
38846
|
+
const valueElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneShallow)(reference.value.result);
|
|
38696
38847
|
// annotate operation element with info about origin
|
|
38697
38848
|
valueElement.setMetaProperty('ref-origin', reference.uri);
|
|
38698
|
-
const exampleElementCopy = (0,
|
|
38849
|
+
const exampleElementCopy = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.cloneShallow)(exampleElement);
|
|
38699
38850
|
exampleElementCopy.value = valueElement;
|
|
38700
|
-
|
|
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;
|
|
38701
38865
|
},
|
|
38702
38866
|
async SchemaElement(referencingElement, key, parent, path, ancestors) {
|
|
38703
|
-
const [ancestorsLineage, directAncestors] = this.toAncestorLineage([...ancestors, parent]);
|
|
38704
|
-
|
|
38705
38867
|
// skip current referencing schema as $ref keyword was not defined
|
|
38706
38868
|
if (!(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isStringElement)(referencingElement.$ref)) {
|
|
38707
|
-
// skip traversing this schema but traverse all it's child schemas
|
|
38708
38869
|
return undefined;
|
|
38709
38870
|
}
|
|
38710
38871
|
|
|
38711
|
-
//
|
|
38712
|
-
if (
|
|
38872
|
+
// skip current referencing element as it's already been access
|
|
38873
|
+
if (this.indirections.includes(referencingElement)) {
|
|
38713
38874
|
return false;
|
|
38714
38875
|
}
|
|
38876
|
+
const [ancestorsLineage, directAncestors] = this.toAncestorLineage([...ancestors, parent]);
|
|
38715
38877
|
|
|
38716
38878
|
// compute baseURI using rules around $id and $ref keywords
|
|
38717
|
-
let reference = await this.toReference(
|
|
38879
|
+
let reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.unsanitize(this.reference.uri));
|
|
38718
38880
|
let {
|
|
38719
38881
|
uri: retrievalURI
|
|
38720
38882
|
} = reference;
|
|
38721
|
-
const $refBaseURI = (0,
|
|
38722
|
-
const $refBaseURIStrippedHash =
|
|
38723
|
-
const file = (0,
|
|
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"])({
|
|
38724
38886
|
uri: $refBaseURIStrippedHash
|
|
38725
38887
|
});
|
|
38726
|
-
const isUnknownURI = (0,
|
|
38888
|
+
const isUnknownURI = (0,ramda__WEBPACK_IMPORTED_MODULE_25__["default"])(r => r.canRead(file), this.options.resolve.resolvers);
|
|
38727
38889
|
const isURL = !isUnknownURI;
|
|
38728
|
-
|
|
38729
|
-
|
|
38890
|
+
let isInternalReference = _util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.stripHash(this.reference.uri) === $refBaseURI;
|
|
38891
|
+
let isExternalReference = !isInternalReference;
|
|
38730
38892
|
this.indirections.push(referencingElement);
|
|
38731
38893
|
|
|
38732
38894
|
// determining reference, proper evaluation and selection mechanism
|
|
@@ -38734,74 +38896,95 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
|
|
|
38734
38896
|
try {
|
|
38735
38897
|
if (isUnknownURI || isURL) {
|
|
38736
38898
|
// we're dealing with canonical URI or URL with possible fragment
|
|
38899
|
+
retrievalURI = this.toBaseURI($refBaseURI);
|
|
38737
38900
|
const selector = $refBaseURI;
|
|
38738
|
-
|
|
38739
|
-
|
|
38740
|
-
(0,
|
|
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
|
+
}
|
|
38741
38916
|
} else {
|
|
38742
38917
|
// we're assuming here that we're dealing with JSON Pointer here
|
|
38743
|
-
retrievalURI = this.toBaseURI(
|
|
38918
|
+
retrievalURI = this.toBaseURI($refBaseURI);
|
|
38919
|
+
isInternalReference = _util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.stripHash(this.reference.uri) === retrievalURI;
|
|
38920
|
+
isExternalReference = !isInternalReference;
|
|
38744
38921
|
|
|
38745
38922
|
// ignore resolving internal Schema Objects
|
|
38746
|
-
if (!this.options.resolve.internal && isInternalReference
|
|
38923
|
+
if (!this.options.resolve.internal && isInternalReference) {
|
|
38747
38924
|
// skip traversing this schema element but traverse all it's child elements
|
|
38748
38925
|
return undefined;
|
|
38749
38926
|
}
|
|
38750
38927
|
// ignore resolving external Schema Objects
|
|
38751
|
-
if (!this.options.resolve.external && isExternalReference
|
|
38928
|
+
if (!this.options.resolve.external && isExternalReference) {
|
|
38752
38929
|
// skip traversing this schema element but traverse all it's child elements
|
|
38753
38930
|
return undefined;
|
|
38754
38931
|
}
|
|
38755
|
-
reference = await this.toReference(
|
|
38756
|
-
const selector = (0,
|
|
38757
|
-
|
|
38758
|
-
|
|
38759
|
-
(0,
|
|
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);
|
|
38760
38938
|
}
|
|
38761
38939
|
} catch (error) {
|
|
38762
38940
|
/**
|
|
38763
38941
|
* No SchemaElement($id=URL) was not found, so we're going to try to resolve
|
|
38764
38942
|
* the URL and assume the returned response is a JSON Schema.
|
|
38765
38943
|
*/
|
|
38766
|
-
if (isURL && error instanceof
|
|
38767
|
-
if ((0,_selectors_$
|
|
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))) {
|
|
38768
38946
|
// we're dealing with JSON Schema $anchor here
|
|
38769
|
-
|
|
38947
|
+
isInternalReference = _util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.stripHash(this.reference.uri) === retrievalURI;
|
|
38948
|
+
isExternalReference = !isInternalReference;
|
|
38770
38949
|
|
|
38771
38950
|
// ignore resolving internal Schema Objects
|
|
38772
|
-
if (!this.options.resolve.internal && isInternalReference
|
|
38951
|
+
if (!this.options.resolve.internal && isInternalReference) {
|
|
38773
38952
|
// skip traversing this schema element but traverse all it's child elements
|
|
38774
38953
|
return undefined;
|
|
38775
38954
|
}
|
|
38776
38955
|
// ignore resolving external Schema Objects
|
|
38777
|
-
if (!this.options.resolve.external && isExternalReference
|
|
38956
|
+
if (!this.options.resolve.external && isExternalReference) {
|
|
38778
38957
|
// skip traversing this schema element but traverse all it's child elements
|
|
38779
38958
|
return undefined;
|
|
38780
38959
|
}
|
|
38781
|
-
reference = await this.toReference(
|
|
38782
|
-
const selector = (0,_selectors_$
|
|
38783
|
-
|
|
38784
|
-
|
|
38785
|
-
(0,
|
|
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);
|
|
38786
38966
|
} else {
|
|
38787
38967
|
// we're assuming here that we're dealing with JSON Pointer here
|
|
38788
|
-
retrievalURI = this.toBaseURI(
|
|
38968
|
+
retrievalURI = this.toBaseURI($refBaseURI);
|
|
38969
|
+
isInternalReference = _util_url_mjs__WEBPACK_IMPORTED_MODULE_4__.stripHash(this.reference.uri) === retrievalURI;
|
|
38970
|
+
isExternalReference = !isInternalReference;
|
|
38789
38971
|
|
|
38790
38972
|
// ignore resolving internal Schema Objects
|
|
38791
|
-
if (!this.options.resolve.internal && isInternalReference
|
|
38973
|
+
if (!this.options.resolve.internal && isInternalReference) {
|
|
38792
38974
|
// skip traversing this schema element but traverse all it's child elements
|
|
38793
38975
|
return undefined;
|
|
38794
38976
|
}
|
|
38795
38977
|
// ignore resolving external Schema Objects
|
|
38796
|
-
if (!this.options.resolve.external && isExternalReference
|
|
38978
|
+
if (!this.options.resolve.external && isExternalReference) {
|
|
38797
38979
|
// skip traversing this schema element but traverse all it's child elements
|
|
38798
38980
|
return undefined;
|
|
38799
38981
|
}
|
|
38800
|
-
reference = await this.toReference(
|
|
38801
|
-
const selector = (0,
|
|
38802
|
-
|
|
38803
|
-
|
|
38804
|
-
(0,
|
|
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);
|
|
38805
38988
|
}
|
|
38806
38989
|
} else {
|
|
38807
38990
|
throw error;
|
|
@@ -38809,80 +38992,124 @@ const OpenApi3_1DereferenceVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
|
|
|
38809
38992
|
}
|
|
38810
38993
|
|
|
38811
38994
|
// detect direct or indirect reference
|
|
38812
|
-
if (
|
|
38813
|
-
throw new
|
|
38995
|
+
if (referencingElement === referencedElement) {
|
|
38996
|
+
throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_16__["default"]('Recursive Schema Object reference detected');
|
|
38814
38997
|
}
|
|
38815
38998
|
|
|
38816
38999
|
// detect maximum depth of dereferencing
|
|
38817
39000
|
if (this.indirections.length > this.options.dereference.maxDepth) {
|
|
38818
|
-
throw new
|
|
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
|
+
}
|
|
38819
39025
|
}
|
|
38820
39026
|
|
|
38821
|
-
|
|
38822
|
-
|
|
38823
|
-
|
|
38824
|
-
|
|
38825
|
-
|
|
38826
|
-
|
|
38827
|
-
|
|
38828
|
-
|
|
38829
|
-
|
|
38830
|
-
ancestors
|
|
38831
|
-
|
|
38832
|
-
|
|
38833
|
-
|
|
38834
|
-
|
|
38835
|
-
|
|
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
|
+
});
|
|
38836
39050
|
|
|
38837
|
-
|
|
38838
|
-
|
|
39051
|
+
// remove referencing reference from ancestors lineage
|
|
39052
|
+
directAncestors.delete(referencingElement);
|
|
39053
|
+
}
|
|
38839
39054
|
this.indirections.pop();
|
|
38840
39055
|
|
|
38841
39056
|
// Boolean JSON Schemas
|
|
38842
|
-
if ((0,
|
|
38843
|
-
const booleanJsonSchemaElement = (0,
|
|
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());
|
|
38844
39061
|
// annotate referenced element with info about original referencing element
|
|
38845
39062
|
booleanJsonSchemaElement.setMetaProperty('ref-fields', {
|
|
38846
|
-
$ref: (0,
|
|
39063
|
+
$ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.$ref)
|
|
38847
39064
|
});
|
|
38848
39065
|
// annotate referenced element with info about origin
|
|
38849
39066
|
booleanJsonSchemaElement.setMetaProperty('ref-origin', reference.uri);
|
|
38850
39067
|
// annotate fragment with info about referencing element
|
|
38851
|
-
booleanJsonSchemaElement.setMetaProperty('ref-referencing-element-id', (0,
|
|
38852
|
-
|
|
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;
|
|
38853
39075
|
}
|
|
38854
|
-
|
|
38855
|
-
|
|
38856
|
-
|
|
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());
|
|
38857
39084
|
// existing keywords from referencing schema overrides ones from referenced schema
|
|
38858
39085
|
referencingElement.forEach((value, keyElement, item) => {
|
|
38859
|
-
mergedElement.remove((0,
|
|
39086
|
+
mergedElement.remove((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(keyElement));
|
|
38860
39087
|
mergedElement.content.push(item);
|
|
38861
39088
|
});
|
|
38862
39089
|
mergedElement.remove('$ref');
|
|
38863
39090
|
// annotate referenced element with info about original referencing element
|
|
38864
39091
|
mergedElement.setMetaProperty('ref-fields', {
|
|
38865
|
-
$ref: (0,
|
|
39092
|
+
$ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__["default"])(referencingElement.$ref)
|
|
38866
39093
|
});
|
|
38867
39094
|
// annotate fragment with info about origin
|
|
38868
39095
|
mergedElement.setMetaProperty('ref-origin', reference.uri);
|
|
38869
39096
|
// annotate fragment with info about referencing element
|
|
38870
|
-
mergedElement.setMetaProperty('ref-referencing-element-id', (0,
|
|
38871
|
-
|
|
38872
|
-
};
|
|
38873
|
-
|
|
38874
|
-
// attempting to create cycle
|
|
38875
|
-
if (ancestorsLineage.includes(referencingElement) || ancestorsLineage.includes(referencedElement)) {
|
|
38876
|
-
var _ancestorsLineage$fin3;
|
|
38877
|
-
const replaceWith = (_ancestorsLineage$fin3 = ancestorsLineage.findItem(wasReferencedBy(referencingElement))) !== null && _ancestorsLineage$fin3 !== void 0 ? _ancestorsLineage$fin3 : mergeAndAnnotateReferencedElement(referencedElement);
|
|
38878
|
-
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.isMemberElement)(parent)) {
|
|
38879
|
-
parent.value = replaceWith; // eslint-disable-line no-param-reassign
|
|
38880
|
-
} else if (Array.isArray(parent)) {
|
|
38881
|
-
parent[key] = replaceWith; // eslint-disable-line no-param-reassign
|
|
38882
|
-
}
|
|
38883
|
-
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;
|
|
38884
39099
|
}
|
|
38885
|
-
|
|
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
|
|
39107
|
+
}
|
|
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;
|
|
38886
39113
|
}
|
|
38887
39114
|
}
|
|
38888
39115
|
});
|
|
@@ -39406,6 +39633,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
39406
39633
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
39407
39634
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
39408
39635
|
/* harmony export */ });
|
|
39636
|
+
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43628);
|
|
39637
|
+
|
|
39409
39638
|
const defaultOptions = {
|
|
39410
39639
|
parse: {
|
|
39411
39640
|
/**
|
|
@@ -39508,7 +39737,29 @@ const defaultOptions = {
|
|
|
39508
39737
|
* The dereferencing should throw MaximumDereferenceDepthError if dereferencing depth
|
|
39509
39738
|
* is exceeded by this option.
|
|
39510
39739
|
*/
|
|
39511
|
-
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
|
|
39512
39763
|
},
|
|
39513
39764
|
bundle: {
|
|
39514
39765
|
/**
|
|
@@ -39973,59 +40224,42 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
39973
40224
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
39974
40225
|
/* harmony export */ });
|
|
39975
40226
|
/* harmony import */ var stampit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12646);
|
|
39976
|
-
/* harmony import */ var
|
|
39977
|
-
/* harmony import */ var
|
|
39978
|
-
/* harmony import */ var
|
|
39979
|
-
/* harmony import */ var
|
|
39980
|
-
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41544);
|
|
39981
|
-
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(66648);
|
|
39982
|
-
/* harmony import */ var _ResolveStrategy_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(97836);
|
|
39983
|
-
/* harmony import */ var _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(31387);
|
|
39984
|
-
/* harmony import */ var _Reference_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(12349);
|
|
39985
|
-
/* harmony import */ var _visitor_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(20622);
|
|
39986
|
-
|
|
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);
|
|
39987
40231
|
|
|
39988
40232
|
|
|
39989
40233
|
|
|
39990
40234
|
|
|
39991
|
-
|
|
39992
|
-
|
|
39993
|
-
const visitAsync = _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__.visit[Symbol.for('nodejs.util.promisify.custom')];
|
|
39994
|
-
|
|
39995
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
39996
|
-
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"], {
|
|
39997
40237
|
init() {
|
|
39998
40238
|
this.name = 'openapi-3-1';
|
|
39999
40239
|
},
|
|
40000
40240
|
methods: {
|
|
40001
|
-
canResolve(file) {
|
|
40002
|
-
|
|
40003
|
-
|
|
40004
|
-
|
|
40005
|
-
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;
|
|
40006
40245
|
}
|
|
40007
|
-
|
|
40008
|
-
// assert by inspecting ApiDOM
|
|
40009
|
-
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);
|
|
40010
40247
|
},
|
|
40011
40248
|
async resolve(file, options) {
|
|
40012
|
-
const
|
|
40013
|
-
|
|
40014
|
-
|
|
40015
|
-
|
|
40016
|
-
|
|
40017
|
-
const
|
|
40018
|
-
|
|
40019
|
-
|
|
40020
|
-
|
|
40021
|
-
|
|
40022
|
-
|
|
40023
|
-
|
|
40024
|
-
await visitAsync(refSet.rootRef.value, visitor, {
|
|
40025
|
-
keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_10__.keyMap,
|
|
40026
|
-
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
|
+
}
|
|
40027
40261
|
});
|
|
40028
|
-
await
|
|
40262
|
+
await dereferenceStrategy.dereference(file, mergedOptions);
|
|
40029
40263
|
return refSet;
|
|
40030
40264
|
}
|
|
40031
40265
|
}
|
|
@@ -40034,553 +40268,6 @@ const OpenApi3_1ResolveStrategy = stampit__WEBPACK_IMPORTED_MODULE_0__(_ResolveS
|
|
|
40034
40268
|
|
|
40035
40269
|
/***/ }),
|
|
40036
40270
|
|
|
40037
|
-
/***/ 11612:
|
|
40038
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
40039
|
-
|
|
40040
|
-
"use strict";
|
|
40041
|
-
__webpack_require__.r(__webpack_exports__);
|
|
40042
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
40043
|
-
/* harmony export */ maybeRefractToSchemaElement: () => (/* binding */ maybeRefractToSchemaElement),
|
|
40044
|
-
/* harmony export */ refractToSchemaElement: () => (/* binding */ refractToSchemaElement),
|
|
40045
|
-
/* harmony export */ resolveSchema$idField: () => (/* binding */ resolveSchema$idField),
|
|
40046
|
-
/* harmony export */ resolveSchema$refField: () => (/* binding */ resolveSchema$refField)
|
|
40047
|
-
/* harmony export */ });
|
|
40048
|
-
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5920);
|
|
40049
|
-
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9999);
|
|
40050
|
-
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33501);
|
|
40051
|
-
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3117);
|
|
40052
|
-
/* harmony import */ var _util_url_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(83748);
|
|
40053
|
-
|
|
40054
|
-
|
|
40055
|
-
|
|
40056
|
-
|
|
40057
|
-
const resolveSchema$refField = (retrievalURI, schemaElement) => {
|
|
40058
|
-
if (typeof schemaElement.$ref === 'undefined') {
|
|
40059
|
-
return undefined;
|
|
40060
|
-
}
|
|
40061
|
-
const hash = _util_url_mjs__WEBPACK_IMPORTED_MODULE_0__.getHash((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(schemaElement.$ref));
|
|
40062
|
-
const inherited$id = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(schemaElement.meta.get('inherited$id'));
|
|
40063
|
-
const $refBaseURI = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])((acc, uri) => {
|
|
40064
|
-
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)));
|
|
40065
|
-
}, retrievalURI, [...inherited$id, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(schemaElement.$ref)]);
|
|
40066
|
-
return `${$refBaseURI}${hash === '#' ? '' : hash}`;
|
|
40067
|
-
};
|
|
40068
|
-
const resolveSchema$idField = (retrievalURI, schemaElement) => {
|
|
40069
|
-
if (typeof schemaElement.$id === 'undefined') {
|
|
40070
|
-
return undefined;
|
|
40071
|
-
}
|
|
40072
|
-
const inherited$id = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(schemaElement.meta.get('inherited$id'));
|
|
40073
|
-
return (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])((acc, $id) => {
|
|
40074
|
-
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)));
|
|
40075
|
-
}, retrievalURI, [...inherited$id, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(schemaElement.$id)]);
|
|
40076
|
-
};
|
|
40077
|
-
|
|
40078
|
-
/**
|
|
40079
|
-
* Cached version of SchemaElement.refract.
|
|
40080
|
-
*/
|
|
40081
|
-
const refractToSchemaElement = element => {
|
|
40082
|
-
if (refractToSchemaElement.cache.has(element)) {
|
|
40083
|
-
return refractToSchemaElement.cache.get(element);
|
|
40084
|
-
}
|
|
40085
|
-
const refracted = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__.SchemaElement.refract(element);
|
|
40086
|
-
refractToSchemaElement.cache.set(element, refracted);
|
|
40087
|
-
return refracted;
|
|
40088
|
-
};
|
|
40089
|
-
refractToSchemaElement.cache = new WeakMap();
|
|
40090
|
-
const maybeRefractToSchemaElement = element => {
|
|
40091
|
-
/**
|
|
40092
|
-
* Conditional version of refractToSchemaElement, that acts as an identity
|
|
40093
|
-
* function for all non-primitive Element instances.
|
|
40094
|
-
*/
|
|
40095
|
-
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__.isPrimitiveElement)(element)) {
|
|
40096
|
-
return refractToSchemaElement(element);
|
|
40097
|
-
}
|
|
40098
|
-
return element;
|
|
40099
|
-
};
|
|
40100
|
-
|
|
40101
|
-
/***/ }),
|
|
40102
|
-
|
|
40103
|
-
/***/ 20622:
|
|
40104
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
40105
|
-
|
|
40106
|
-
"use strict";
|
|
40107
|
-
__webpack_require__.r(__webpack_exports__);
|
|
40108
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
40109
|
-
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
40110
|
-
/* harmony export */ });
|
|
40111
|
-
/* harmony import */ var stampit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12646);
|
|
40112
|
-
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(95201);
|
|
40113
|
-
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(73236);
|
|
40114
|
-
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(10796);
|
|
40115
|
-
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(11182);
|
|
40116
|
-
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(22060);
|
|
40117
|
-
/* harmony import */ var ramda_adjunct__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(7408);
|
|
40118
|
-
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(46571);
|
|
40119
|
-
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(9999);
|
|
40120
|
-
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(33501);
|
|
40121
|
-
/* harmony import */ var _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(98219);
|
|
40122
|
-
/* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(85270);
|
|
40123
|
-
/* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(18316);
|
|
40124
|
-
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(85013);
|
|
40125
|
-
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(3117);
|
|
40126
|
-
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(66648);
|
|
40127
|
-
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(70281);
|
|
40128
|
-
/* harmony import */ var _errors_MaximumDereferenceDepthError_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(60503);
|
|
40129
|
-
/* harmony import */ var _errors_MaximumResolveDepthError_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(57823);
|
|
40130
|
-
/* harmony import */ var _errors_EvaluationJsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(78311);
|
|
40131
|
-
/* harmony import */ var _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83748);
|
|
40132
|
-
/* harmony import */ var _parse_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7998);
|
|
40133
|
-
/* harmony import */ var _Reference_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12349);
|
|
40134
|
-
/* harmony import */ var _util_File_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(15767);
|
|
40135
|
-
/* harmony import */ var _dereference_strategies_openapi_3_1_selectors_uri_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(16129);
|
|
40136
|
-
/* harmony import */ var _util_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(11612);
|
|
40137
|
-
/* harmony import */ var _dereference_strategies_openapi_3_1_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(46432);
|
|
40138
|
-
|
|
40139
|
-
|
|
40140
|
-
|
|
40141
|
-
|
|
40142
|
-
|
|
40143
|
-
|
|
40144
|
-
|
|
40145
|
-
|
|
40146
|
-
|
|
40147
|
-
|
|
40148
|
-
|
|
40149
|
-
|
|
40150
|
-
|
|
40151
|
-
|
|
40152
|
-
|
|
40153
|
-
|
|
40154
|
-
// @ts-ignore
|
|
40155
|
-
const visitAsync = _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__.visit[Symbol.for('nodejs.util.promisify.custom')];
|
|
40156
|
-
|
|
40157
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
40158
|
-
const OpenApi3_1ResolveVisitor = stampit__WEBPACK_IMPORTED_MODULE_0__({
|
|
40159
|
-
props: {
|
|
40160
|
-
indirections: [],
|
|
40161
|
-
namespace: null,
|
|
40162
|
-
reference: null,
|
|
40163
|
-
crawledElements: null,
|
|
40164
|
-
crawlingMap: null,
|
|
40165
|
-
visited: null,
|
|
40166
|
-
options: null
|
|
40167
|
-
},
|
|
40168
|
-
init({
|
|
40169
|
-
reference,
|
|
40170
|
-
namespace,
|
|
40171
|
-
indirections = [],
|
|
40172
|
-
visited = new WeakSet(),
|
|
40173
|
-
options
|
|
40174
|
-
}) {
|
|
40175
|
-
this.indirections = indirections;
|
|
40176
|
-
this.namespace = namespace;
|
|
40177
|
-
this.reference = reference;
|
|
40178
|
-
this.crawledElements = [];
|
|
40179
|
-
this.crawlingMap = {};
|
|
40180
|
-
this.visited = visited;
|
|
40181
|
-
this.options = options;
|
|
40182
|
-
},
|
|
40183
|
-
methods: {
|
|
40184
|
-
toBaseURI(uri) {
|
|
40185
|
-
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)));
|
|
40186
|
-
},
|
|
40187
|
-
async toReference(uri) {
|
|
40188
|
-
// detect maximum depth of resolution
|
|
40189
|
-
if (this.reference.depth >= this.options.resolve.maxDepth) {
|
|
40190
|
-
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}"`);
|
|
40191
|
-
}
|
|
40192
|
-
const baseURI = this.toBaseURI(uri);
|
|
40193
|
-
const {
|
|
40194
|
-
refSet
|
|
40195
|
-
} = this.reference;
|
|
40196
|
-
|
|
40197
|
-
// we've already processed this Reference in past
|
|
40198
|
-
if (refSet.has(baseURI)) {
|
|
40199
|
-
return refSet.find((0,ramda__WEBPACK_IMPORTED_MODULE_4__["default"])(baseURI, 'uri'));
|
|
40200
|
-
}
|
|
40201
|
-
const parseResult = await (0,_parse_index_mjs__WEBPACK_IMPORTED_MODULE_5__["default"])(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.unsanitize(baseURI), {
|
|
40202
|
-
...this.options,
|
|
40203
|
-
parse: {
|
|
40204
|
-
...this.options.parse,
|
|
40205
|
-
mediaType: 'text/plain'
|
|
40206
|
-
}
|
|
40207
|
-
});
|
|
40208
|
-
|
|
40209
|
-
// register new Reference with ReferenceSet
|
|
40210
|
-
const reference = (0,_Reference_mjs__WEBPACK_IMPORTED_MODULE_6__["default"])({
|
|
40211
|
-
uri: baseURI,
|
|
40212
|
-
value: parseResult,
|
|
40213
|
-
depth: this.reference.depth + 1
|
|
40214
|
-
});
|
|
40215
|
-
refSet.add(reference);
|
|
40216
|
-
return reference;
|
|
40217
|
-
},
|
|
40218
|
-
ReferenceElement(referenceElement) {
|
|
40219
|
-
const uri = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(referenceElement.$ref);
|
|
40220
|
-
const retrievalURI = this.toBaseURI(uri);
|
|
40221
|
-
|
|
40222
|
-
// ignore resolving external Reference Objects
|
|
40223
|
-
if (!this.options.resolve.external && _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.stripHash(this.reference.uri) !== retrievalURI) {
|
|
40224
|
-
// skip traversing this reference element and all it's child elements
|
|
40225
|
-
return false;
|
|
40226
|
-
}
|
|
40227
|
-
if (!(0,ramda__WEBPACK_IMPORTED_MODULE_8__["default"])(retrievalURI, this.crawlingMap)) {
|
|
40228
|
-
this.crawlingMap[retrievalURI] = this.toReference(uri);
|
|
40229
|
-
}
|
|
40230
|
-
this.crawledElements.push(referenceElement);
|
|
40231
|
-
return undefined;
|
|
40232
|
-
},
|
|
40233
|
-
PathItemElement(pathItemElement) {
|
|
40234
|
-
// ignore PathItemElement without $ref field
|
|
40235
|
-
if (!(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isStringElement)(pathItemElement.$ref)) {
|
|
40236
|
-
return undefined;
|
|
40237
|
-
}
|
|
40238
|
-
const uri = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(pathItemElement.$ref);
|
|
40239
|
-
const retrievalURI = this.toBaseURI(uri);
|
|
40240
|
-
|
|
40241
|
-
// ignore resolving external Path Item Objects
|
|
40242
|
-
if (!this.options.resolve.external && _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.stripHash(this.reference.uri) !== retrievalURI) {
|
|
40243
|
-
// skip traversing this Path Item element but traverse all it's child elements
|
|
40244
|
-
return undefined;
|
|
40245
|
-
}
|
|
40246
|
-
if (!(0,ramda__WEBPACK_IMPORTED_MODULE_8__["default"])(retrievalURI, this.crawlingMap)) {
|
|
40247
|
-
this.crawlingMap[retrievalURI] = this.toReference(uri);
|
|
40248
|
-
}
|
|
40249
|
-
this.crawledElements.push(pathItemElement);
|
|
40250
|
-
return undefined;
|
|
40251
|
-
},
|
|
40252
|
-
LinkElement(linkElement) {
|
|
40253
|
-
// ignore LinkElement without operationRef or operationId field
|
|
40254
|
-
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)) {
|
|
40255
|
-
return undefined;
|
|
40256
|
-
}
|
|
40257
|
-
const uri = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(linkElement.operationRef);
|
|
40258
|
-
const retrievalURI = this.toBaseURI(uri);
|
|
40259
|
-
|
|
40260
|
-
// ignore resolving external Path Item Elements
|
|
40261
|
-
const isExternal = _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.stripHash(this.reference.uri) !== retrievalURI;
|
|
40262
|
-
if (!this.options.resolve.external && isExternal) {
|
|
40263
|
-
return undefined;
|
|
40264
|
-
}
|
|
40265
|
-
|
|
40266
|
-
// operationRef and operationId are mutually exclusive
|
|
40267
|
-
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)) {
|
|
40268
|
-
throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_10__["default"]('LinkElement operationRef and operationId are mutually exclusive.');
|
|
40269
|
-
}
|
|
40270
|
-
if (isExternal) {
|
|
40271
|
-
if (!(0,ramda__WEBPACK_IMPORTED_MODULE_8__["default"])(retrievalURI, this.crawlingMap)) {
|
|
40272
|
-
this.crawlingMap[retrievalURI] = this.toReference(uri);
|
|
40273
|
-
}
|
|
40274
|
-
}
|
|
40275
|
-
return undefined;
|
|
40276
|
-
},
|
|
40277
|
-
ExampleElement(exampleElement) {
|
|
40278
|
-
// ignore ExampleElement without externalValue field
|
|
40279
|
-
if (!(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isStringElement)(exampleElement.externalValue)) {
|
|
40280
|
-
return undefined;
|
|
40281
|
-
}
|
|
40282
|
-
|
|
40283
|
-
// value and externalValue fields are mutually exclusive
|
|
40284
|
-
if (exampleElement.hasKey('value') && (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isStringElement)(exampleElement.externalValue)) {
|
|
40285
|
-
throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_10__["default"]('ExampleElement value and externalValue fields are mutually exclusive.');
|
|
40286
|
-
}
|
|
40287
|
-
const uri = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(exampleElement.externalValue);
|
|
40288
|
-
const retrievalURI = this.toBaseURI(uri);
|
|
40289
|
-
|
|
40290
|
-
// ignore resolving external Example Objects
|
|
40291
|
-
if (!this.options.resolve.external && _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.stripHash(this.reference.uri) !== retrievalURI) {
|
|
40292
|
-
// skip traversing this Example element but traverse all it's child elements
|
|
40293
|
-
return undefined;
|
|
40294
|
-
}
|
|
40295
|
-
if (!(0,ramda__WEBPACK_IMPORTED_MODULE_8__["default"])(retrievalURI, this.crawlingMap)) {
|
|
40296
|
-
this.crawlingMap[retrievalURI] = this.toReference(uri);
|
|
40297
|
-
}
|
|
40298
|
-
return undefined;
|
|
40299
|
-
},
|
|
40300
|
-
async SchemaElement(schemaElement) {
|
|
40301
|
-
/**
|
|
40302
|
-
* Skip traversal for already visited schemas and all their child schemas.
|
|
40303
|
-
* visit function detects cycles in path automatically.
|
|
40304
|
-
*/
|
|
40305
|
-
if (this.visited.has(schemaElement)) {
|
|
40306
|
-
return false;
|
|
40307
|
-
}
|
|
40308
|
-
// skip current referencing schema as $ref keyword was not defined
|
|
40309
|
-
if (!(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isStringElement)(schemaElement.$ref)) {
|
|
40310
|
-
// mark current referencing schema as visited
|
|
40311
|
-
this.visited.add(schemaElement);
|
|
40312
|
-
// skip traversing this schema but traverse all it's child schemas
|
|
40313
|
-
return undefined;
|
|
40314
|
-
}
|
|
40315
|
-
|
|
40316
|
-
// compute baseURI using rules around $id and $ref keywords
|
|
40317
|
-
const reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.unsanitize(this.reference.uri));
|
|
40318
|
-
let {
|
|
40319
|
-
uri: retrievalURI
|
|
40320
|
-
} = reference;
|
|
40321
|
-
const $refBaseURI = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_11__.resolveSchema$refField)(retrievalURI, schemaElement);
|
|
40322
|
-
const $refBaseURIStrippedHash = _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.stripHash($refBaseURI);
|
|
40323
|
-
const file = (0,_util_File_mjs__WEBPACK_IMPORTED_MODULE_12__["default"])({
|
|
40324
|
-
uri: $refBaseURIStrippedHash
|
|
40325
|
-
});
|
|
40326
|
-
const isUnknownURI = (0,ramda__WEBPACK_IMPORTED_MODULE_13__["default"])(r => r.canRead(file), this.options.resolve.resolvers);
|
|
40327
|
-
const isURL = !isUnknownURI;
|
|
40328
|
-
const isExternalURL = uri => _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.stripHash(this.reference.uri) !== uri;
|
|
40329
|
-
if (!(0,ramda__WEBPACK_IMPORTED_MODULE_8__["default"])($refBaseURIStrippedHash, this.crawlingMap)) {
|
|
40330
|
-
try {
|
|
40331
|
-
if (isUnknownURI || isURL) {
|
|
40332
|
-
this.crawlingMap[$refBaseURIStrippedHash] = reference;
|
|
40333
|
-
} else {
|
|
40334
|
-
retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])($refBaseURI));
|
|
40335
|
-
|
|
40336
|
-
// ignore resolving external Schema Objects
|
|
40337
|
-
if (!this.options.resolve.external && isExternalURL(retrievalURI)) {
|
|
40338
|
-
// skip traversing this schema element but traverse all it's child elements
|
|
40339
|
-
this.visited.add(schemaElement);
|
|
40340
|
-
return undefined;
|
|
40341
|
-
}
|
|
40342
|
-
this.crawlingMap[$refBaseURIStrippedHash] = this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.unsanitize($refBaseURI));
|
|
40343
|
-
}
|
|
40344
|
-
} catch (error) {
|
|
40345
|
-
if (isURL && error instanceof _errors_EvaluationJsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_14__["default"]) {
|
|
40346
|
-
retrievalURI = this.toBaseURI(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.unsanitize($refBaseURI));
|
|
40347
|
-
|
|
40348
|
-
// ignore resolving external Schema Objects
|
|
40349
|
-
if (!this.options.resolve.external && isExternalURL(retrievalURI)) {
|
|
40350
|
-
// skip traversing this schema element but traverse all it's child elements
|
|
40351
|
-
this.visited.add(schemaElement);
|
|
40352
|
-
return undefined;
|
|
40353
|
-
}
|
|
40354
|
-
this.crawlingMap[$refBaseURIStrippedHash] = this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.unsanitize($refBaseURI));
|
|
40355
|
-
} else {
|
|
40356
|
-
throw error;
|
|
40357
|
-
}
|
|
40358
|
-
}
|
|
40359
|
-
}
|
|
40360
|
-
this.crawledElements.push(schemaElement);
|
|
40361
|
-
return undefined;
|
|
40362
|
-
},
|
|
40363
|
-
async crawlReferenceElement(referenceElement) {
|
|
40364
|
-
// @ts-ignore
|
|
40365
|
-
const reference = await this.toReference((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(referenceElement.$ref));
|
|
40366
|
-
this.indirections.push(referenceElement);
|
|
40367
|
-
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));
|
|
40368
|
-
|
|
40369
|
-
// possibly non-semantic fragment
|
|
40370
|
-
let fragment = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_16__["default"])(jsonPointer, reference.value.result);
|
|
40371
|
-
|
|
40372
|
-
// applying semantics to a fragment
|
|
40373
|
-
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isPrimitiveElement)(fragment)) {
|
|
40374
|
-
const referencedElementType = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(referenceElement.meta.get('referenced-element'));
|
|
40375
|
-
if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.isReferenceLikeElement)(fragment)) {
|
|
40376
|
-
// handling indirect references
|
|
40377
|
-
fragment = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__.ReferenceElement.refract(fragment);
|
|
40378
|
-
fragment.setMetaProperty('referenced-element', referencedElementType);
|
|
40379
|
-
} else {
|
|
40380
|
-
// handling direct references
|
|
40381
|
-
const ElementClass = this.namespace.getElementClass(referencedElementType);
|
|
40382
|
-
fragment = ElementClass.refract(fragment);
|
|
40383
|
-
}
|
|
40384
|
-
}
|
|
40385
|
-
|
|
40386
|
-
// detect direct or circular reference
|
|
40387
|
-
if (this.indirections.includes(fragment)) {
|
|
40388
|
-
throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_10__["default"]('Recursive Reference Object detected');
|
|
40389
|
-
}
|
|
40390
|
-
|
|
40391
|
-
// detect maximum depth of dereferencing
|
|
40392
|
-
if (this.indirections.length > this.options.dereference.maxDepth) {
|
|
40393
|
-
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}"`);
|
|
40394
|
-
}
|
|
40395
|
-
|
|
40396
|
-
// dive deep into the fragment
|
|
40397
|
-
const visitor = OpenApi3_1ResolveVisitor({
|
|
40398
|
-
reference,
|
|
40399
|
-
namespace: this.namespace,
|
|
40400
|
-
indirections: [...this.indirections],
|
|
40401
|
-
options: this.options
|
|
40402
|
-
});
|
|
40403
|
-
await visitAsync(fragment, visitor, {
|
|
40404
|
-
keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.keyMap,
|
|
40405
|
-
nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.getNodeType
|
|
40406
|
-
});
|
|
40407
|
-
await visitor.crawl();
|
|
40408
|
-
this.indirections.pop();
|
|
40409
|
-
},
|
|
40410
|
-
async crawlPathItemElement(pathItemElement) {
|
|
40411
|
-
// @ts-ignore
|
|
40412
|
-
const reference = await this.toReference((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(pathItemElement.$ref));
|
|
40413
|
-
this.indirections.push(pathItemElement);
|
|
40414
|
-
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));
|
|
40415
|
-
|
|
40416
|
-
// possibly non-semantic fragment
|
|
40417
|
-
let referencedElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_16__["default"])(jsonPointer, reference.value.result);
|
|
40418
|
-
|
|
40419
|
-
// applying semantics to a fragment
|
|
40420
|
-
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isPrimitiveElement)(referencedElement)) {
|
|
40421
|
-
referencedElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__.PathItemElement.refract(referencedElement);
|
|
40422
|
-
}
|
|
40423
|
-
|
|
40424
|
-
// detect direct or indirect reference
|
|
40425
|
-
if (this.indirections.includes(referencedElement)) {
|
|
40426
|
-
throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_10__["default"]('Recursive Path Item Object reference detected');
|
|
40427
|
-
}
|
|
40428
|
-
|
|
40429
|
-
// detect maximum depth of dereferencing
|
|
40430
|
-
if (this.indirections.length > this.options.dereference.maxDepth) {
|
|
40431
|
-
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}"`);
|
|
40432
|
-
}
|
|
40433
|
-
|
|
40434
|
-
// dive deep into the fragment
|
|
40435
|
-
const visitor = OpenApi3_1ResolveVisitor({
|
|
40436
|
-
reference,
|
|
40437
|
-
namespace: this.namespace,
|
|
40438
|
-
indirections: [...this.indirections],
|
|
40439
|
-
options: this.options
|
|
40440
|
-
});
|
|
40441
|
-
await visitAsync(referencedElement, visitor, {
|
|
40442
|
-
keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.keyMap,
|
|
40443
|
-
nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.getNodeType
|
|
40444
|
-
});
|
|
40445
|
-
await visitor.crawl();
|
|
40446
|
-
this.indirections.pop();
|
|
40447
|
-
},
|
|
40448
|
-
async crawlSchemaElement(referencingElement) {
|
|
40449
|
-
// compute baseURI using rules around $id and $ref keywords
|
|
40450
|
-
let reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.unsanitize(this.reference.uri));
|
|
40451
|
-
let {
|
|
40452
|
-
uri: retrievalURI
|
|
40453
|
-
} = reference;
|
|
40454
|
-
const $refBaseURI = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_11__.resolveSchema$refField)(retrievalURI, referencingElement);
|
|
40455
|
-
const $refBaseURIStrippedHash = _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.stripHash($refBaseURI);
|
|
40456
|
-
const file = (0,_util_File_mjs__WEBPACK_IMPORTED_MODULE_12__["default"])({
|
|
40457
|
-
uri: $refBaseURIStrippedHash
|
|
40458
|
-
});
|
|
40459
|
-
const isUnknownURI = (0,ramda__WEBPACK_IMPORTED_MODULE_13__["default"])(r => r.canRead(file), this.options.resolve.resolvers);
|
|
40460
|
-
const isURL = !isUnknownURI;
|
|
40461
|
-
const isExternalURL = uri => _util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.stripHash(this.reference.uri) !== uri;
|
|
40462
|
-
this.indirections.push(referencingElement);
|
|
40463
|
-
|
|
40464
|
-
// determining reference, proper evaluation and selection mechanism
|
|
40465
|
-
let referencedElement;
|
|
40466
|
-
try {
|
|
40467
|
-
if (isUnknownURI || isURL) {
|
|
40468
|
-
// we're dealing with canonical URI or URL with possible fragment
|
|
40469
|
-
const selector = $refBaseURI;
|
|
40470
|
-
referencedElement = (0,_dereference_strategies_openapi_3_1_selectors_uri_mjs__WEBPACK_IMPORTED_MODULE_21__.evaluate)(selector,
|
|
40471
|
-
// @ts-ignore
|
|
40472
|
-
(0,_util_mjs__WEBPACK_IMPORTED_MODULE_11__.maybeRefractToSchemaElement)(reference.value.result));
|
|
40473
|
-
} else {
|
|
40474
|
-
// we're assuming here that we're dealing with JSON Pointer here
|
|
40475
|
-
retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])($refBaseURI));
|
|
40476
|
-
|
|
40477
|
-
// ignore resolving external Schema Objects
|
|
40478
|
-
if (!this.options.resolve.external && isExternalURL(retrievalURI)) {
|
|
40479
|
-
// skip traversing this schema element but traverse all it's child elements
|
|
40480
|
-
return undefined;
|
|
40481
|
-
}
|
|
40482
|
-
reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.unsanitize($refBaseURI));
|
|
40483
|
-
const selector = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_15__.uriToPointer)($refBaseURI);
|
|
40484
|
-
referencedElement = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_11__.maybeRefractToSchemaElement)(
|
|
40485
|
-
// @ts-ignore
|
|
40486
|
-
(0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_16__["default"])(selector, reference.value.result));
|
|
40487
|
-
}
|
|
40488
|
-
} catch (error) {
|
|
40489
|
-
/**
|
|
40490
|
-
* No SchemaElement($id=URL) was not found, so we're going to try to resolve
|
|
40491
|
-
* the URL and assume the returned response is a JSON Schema.
|
|
40492
|
-
*/
|
|
40493
|
-
if (isURL && error instanceof _errors_EvaluationJsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_14__["default"]) {
|
|
40494
|
-
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))) {
|
|
40495
|
-
// we're dealing with JSON Schema $anchor here
|
|
40496
|
-
retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])($refBaseURI));
|
|
40497
|
-
|
|
40498
|
-
// ignore resolving external Schema Objects
|
|
40499
|
-
if (!this.options.resolve.external && isExternalURL(retrievalURI)) {
|
|
40500
|
-
// skip traversing this schema element but traverse all it's child elements
|
|
40501
|
-
return undefined;
|
|
40502
|
-
}
|
|
40503
|
-
reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.unsanitize($refBaseURI));
|
|
40504
|
-
const selector = (0,_dereference_strategies_openapi_3_1_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_22__.uriToAnchor)($refBaseURI);
|
|
40505
|
-
referencedElement = (0,_dereference_strategies_openapi_3_1_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_22__.evaluate)(selector,
|
|
40506
|
-
// @ts-ignore
|
|
40507
|
-
(0,_util_mjs__WEBPACK_IMPORTED_MODULE_11__.maybeRefractToSchemaElement)(reference.value.result));
|
|
40508
|
-
} else {
|
|
40509
|
-
// we're assuming here that we're dealing with JSON Pointer here
|
|
40510
|
-
retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])($refBaseURI));
|
|
40511
|
-
|
|
40512
|
-
// ignore resolving external Schema Objects
|
|
40513
|
-
if (!this.options.resolve.external && isExternalURL(retrievalURI)) {
|
|
40514
|
-
// skip traversing this schema element but traverse all it's child elements
|
|
40515
|
-
return undefined;
|
|
40516
|
-
}
|
|
40517
|
-
reference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_2__.unsanitize($refBaseURI));
|
|
40518
|
-
const selector = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_15__.uriToPointer)($refBaseURI);
|
|
40519
|
-
referencedElement = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_11__.maybeRefractToSchemaElement)(
|
|
40520
|
-
// @ts-ignore
|
|
40521
|
-
(0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_16__["default"])(selector, reference.value.result));
|
|
40522
|
-
}
|
|
40523
|
-
} else {
|
|
40524
|
-
throw error;
|
|
40525
|
-
}
|
|
40526
|
-
}
|
|
40527
|
-
|
|
40528
|
-
// mark current referencing schema as visited
|
|
40529
|
-
this.visited.add(referencingElement);
|
|
40530
|
-
|
|
40531
|
-
// detect direct or indirect reference
|
|
40532
|
-
if (this.indirections.includes(referencedElement)) {
|
|
40533
|
-
throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_10__["default"]('Recursive Schema Object reference detected');
|
|
40534
|
-
}
|
|
40535
|
-
|
|
40536
|
-
// detect maximum depth of dereferencing
|
|
40537
|
-
if (this.indirections.length > this.options.dereference.maxDepth) {
|
|
40538
|
-
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}"`);
|
|
40539
|
-
}
|
|
40540
|
-
|
|
40541
|
-
// dive deep into the fragment
|
|
40542
|
-
const visitor = OpenApi3_1ResolveVisitor({
|
|
40543
|
-
reference,
|
|
40544
|
-
namespace: this.namespace,
|
|
40545
|
-
indirections: [...this.indirections],
|
|
40546
|
-
options: this.options,
|
|
40547
|
-
visited: this.visited
|
|
40548
|
-
});
|
|
40549
|
-
await visitAsync(referencedElement, visitor, {
|
|
40550
|
-
keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.keyMap,
|
|
40551
|
-
nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.getNodeType
|
|
40552
|
-
});
|
|
40553
|
-
await visitor.crawl();
|
|
40554
|
-
this.indirections.pop();
|
|
40555
|
-
return undefined;
|
|
40556
|
-
},
|
|
40557
|
-
async crawl() {
|
|
40558
|
-
/**
|
|
40559
|
-
* Synchronize all parallel resolutions in this place.
|
|
40560
|
-
* After synchronization happened we can be sure that refSet
|
|
40561
|
-
* contains resolved Reference objects.
|
|
40562
|
-
*/
|
|
40563
|
-
await (0,ramda__WEBPACK_IMPORTED_MODULE_23__["default"])(ramda__WEBPACK_IMPORTED_MODULE_24__["default"], ramda_adjunct__WEBPACK_IMPORTED_MODULE_25__["default"])(this.crawlingMap);
|
|
40564
|
-
this.crawlingMap = null;
|
|
40565
|
-
|
|
40566
|
-
/* eslint-disable no-await-in-loop */
|
|
40567
|
-
for (const element of this.crawledElements) {
|
|
40568
|
-
if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_26__.isReferenceElement)(element)) {
|
|
40569
|
-
await this.crawlReferenceElement(element);
|
|
40570
|
-
} else if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_26__.isSchemaElement)(element)) {
|
|
40571
|
-
await this.crawlSchemaElement(element);
|
|
40572
|
-
} else if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_26__.isPathItemElement)(element)) {
|
|
40573
|
-
await this.crawlPathItemElement(element);
|
|
40574
|
-
}
|
|
40575
|
-
}
|
|
40576
|
-
/* eslint-enable */
|
|
40577
|
-
}
|
|
40578
|
-
}
|
|
40579
|
-
});
|
|
40580
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenApi3_1ResolveVisitor);
|
|
40581
|
-
|
|
40582
|
-
/***/ }),
|
|
40583
|
-
|
|
40584
40271
|
/***/ 75253:
|
|
40585
40272
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
40586
40273
|
|
|
@@ -52593,56 +52280,6 @@ var uniqWith =
|
|
|
52593
52280
|
|
|
52594
52281
|
/***/ }),
|
|
52595
52282
|
|
|
52596
|
-
/***/ 22060:
|
|
52597
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
52598
|
-
|
|
52599
|
-
"use strict";
|
|
52600
|
-
__webpack_require__.r(__webpack_exports__);
|
|
52601
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
52602
|
-
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
52603
|
-
/* harmony export */ });
|
|
52604
|
-
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3579);
|
|
52605
|
-
/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82506);
|
|
52606
|
-
|
|
52607
|
-
|
|
52608
|
-
/**
|
|
52609
|
-
* Returns a list of all the enumerable own properties of the supplied object.
|
|
52610
|
-
* Note that the order of the output array is not guaranteed across different
|
|
52611
|
-
* JS platforms.
|
|
52612
|
-
*
|
|
52613
|
-
* @func
|
|
52614
|
-
* @memberOf R
|
|
52615
|
-
* @since v0.1.0
|
|
52616
|
-
* @category Object
|
|
52617
|
-
* @sig {k: v} -> [v]
|
|
52618
|
-
* @param {Object} obj The object to extract values from
|
|
52619
|
-
* @return {Array} An array of the values of the object's own properties.
|
|
52620
|
-
* @see R.valuesIn, R.keys, R.toPairs
|
|
52621
|
-
* @example
|
|
52622
|
-
*
|
|
52623
|
-
* R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]
|
|
52624
|
-
*/
|
|
52625
|
-
|
|
52626
|
-
var values =
|
|
52627
|
-
/*#__PURE__*/
|
|
52628
|
-
(0,_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function values(obj) {
|
|
52629
|
-
var props = (0,_keys_js__WEBPACK_IMPORTED_MODULE_1__["default"])(obj);
|
|
52630
|
-
var len = props.length;
|
|
52631
|
-
var vals = [];
|
|
52632
|
-
var idx = 0;
|
|
52633
|
-
|
|
52634
|
-
while (idx < len) {
|
|
52635
|
-
vals[idx] = obj[props[idx]];
|
|
52636
|
-
idx += 1;
|
|
52637
|
-
}
|
|
52638
|
-
|
|
52639
|
-
return vals;
|
|
52640
|
-
});
|
|
52641
|
-
|
|
52642
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (values);
|
|
52643
|
-
|
|
52644
|
-
/***/ }),
|
|
52645
|
-
|
|
52646
52283
|
/***/ 32366:
|
|
52647
52284
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
52648
52285
|
|