swagger-client 3.26.8 → 3.27.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 +564 -412
- package/dist/swagger-client.browser.min.js +1 -1
- package/dist/swagger-client.browser.min.js.map +1 -1
- package/es/http/index.js +7 -0
- package/es/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/index.js +35 -11
- package/es/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/all-of.js +39 -30
- package/es/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/dereference.js +322 -239
- package/es/resolver/strategies/openapi-3-1-apidom/resolve.js +18 -4
- package/lib/http/index.js +7 -0
- package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/index.js +34 -10
- package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/all-of.js +37 -28
- package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/dereference.js +320 -237
- package/lib/resolver/strategies/openapi-3-1-apidom/resolve.js +17 -2
- package/package.json +7 -7
|
@@ -1854,6 +1854,13 @@ function formatKeyValueBySerializationOption(key, value, skipEncoding, serializa
|
|
|
1854
1854
|
const escape = skipEncoding ? false : serializationOption && serializationOption.allowReserved ? 'unsafe' : 'reserved';
|
|
1855
1855
|
const encodeFn = v => (0,_execute_oas3_style_serializer_js__WEBPACK_IMPORTED_MODULE_2__.valueEncoder)(v, escape);
|
|
1856
1856
|
const encodeKeyFn = skipEncoding ? k => k : k => encodeFn(k);
|
|
1857
|
+
if (typeof value === 'string') {
|
|
1858
|
+
try {
|
|
1859
|
+
value = JSON.parse(value);
|
|
1860
|
+
} catch {
|
|
1861
|
+
// can't parse the value so treat it as as a simple string
|
|
1862
|
+
}
|
|
1863
|
+
}
|
|
1857
1864
|
|
|
1858
1865
|
// Primitive
|
|
1859
1866
|
if (typeof value !== 'object') {
|
|
@@ -2192,11 +2199,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2192
2199
|
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(46571);
|
|
2193
2200
|
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(68618);
|
|
2194
2201
|
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1667);
|
|
2202
|
+
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(87024);
|
|
2195
2203
|
/* harmony import */ var _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(31387);
|
|
2196
2204
|
/* harmony import */ var _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(12349);
|
|
2197
2205
|
/* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(57016);
|
|
2198
2206
|
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(41544);
|
|
2199
|
-
/* harmony import */ var
|
|
2207
|
+
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(66648);
|
|
2200
2208
|
/* harmony import */ var _visitors_dereference_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7882);
|
|
2201
2209
|
/* harmony import */ var _visitors_parameters_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(53628);
|
|
2202
2210
|
/* harmony import */ var _visitors_properties_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(85001);
|
|
@@ -2214,7 +2222,6 @@ const visitAsync = _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__.visit[S
|
|
|
2214
2222
|
const mergeAllVisitorsAsync = _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.mergeAll[Symbol.for('nodejs.util.promisify.custom')];
|
|
2215
2223
|
const OpenApi3_1SwaggerClientDereferenceStrategy = _swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_6__["default"].compose({
|
|
2216
2224
|
props: {
|
|
2217
|
-
useCircularStructures: true,
|
|
2218
2225
|
allowMetaPatches: false,
|
|
2219
2226
|
parameterMacro: null,
|
|
2220
2227
|
modelPropertyMacro: null,
|
|
@@ -2222,7 +2229,6 @@ const OpenApi3_1SwaggerClientDereferenceStrategy = _swagger_api_apidom_reference
|
|
|
2222
2229
|
ancestors: null
|
|
2223
2230
|
},
|
|
2224
2231
|
init({
|
|
2225
|
-
useCircularStructures = this.useCircularStructures,
|
|
2226
2232
|
allowMetaPatches = this.allowMetaPatches,
|
|
2227
2233
|
parameterMacro = this.parameterMacro,
|
|
2228
2234
|
modelPropertyMacro = this.modelPropertyMacro,
|
|
@@ -2230,7 +2236,6 @@ const OpenApi3_1SwaggerClientDereferenceStrategy = _swagger_api_apidom_reference
|
|
|
2230
2236
|
ancestors = []
|
|
2231
2237
|
} = {}) {
|
|
2232
2238
|
this.name = 'openapi-3-1-swagger-client';
|
|
2233
|
-
this.useCircularStructures = useCircularStructures;
|
|
2234
2239
|
this.allowMetaPatches = allowMetaPatches;
|
|
2235
2240
|
this.parameterMacro = parameterMacro;
|
|
2236
2241
|
this.modelPropertyMacro = modelPropertyMacro;
|
|
@@ -2241,17 +2246,32 @@ const OpenApi3_1SwaggerClientDereferenceStrategy = _swagger_api_apidom_reference
|
|
|
2241
2246
|
async dereference(file, options) {
|
|
2242
2247
|
const visitors = [];
|
|
2243
2248
|
const namespace = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__.createNamespace)(_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_8__["default"]);
|
|
2244
|
-
const
|
|
2249
|
+
const immutableRefSet = options.dereference.refSet ?? (0,_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_9__["default"])();
|
|
2250
|
+
const mutableRefsSet = (0,_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_9__["default"])();
|
|
2251
|
+
let refSet = immutableRefSet;
|
|
2245
2252
|
let reference;
|
|
2246
|
-
if (!
|
|
2253
|
+
if (!immutableRefSet.has(file.uri)) {
|
|
2247
2254
|
reference = (0,_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_10__["default"])({
|
|
2248
2255
|
uri: file.uri,
|
|
2249
2256
|
value: file.parseResult
|
|
2250
2257
|
});
|
|
2251
|
-
|
|
2258
|
+
immutableRefSet.add(reference);
|
|
2252
2259
|
} else {
|
|
2253
2260
|
// pre-computed refSet was provided as configuration option
|
|
2254
|
-
reference =
|
|
2261
|
+
reference = immutableRefSet.find(ref => ref.uri === file.uri);
|
|
2262
|
+
}
|
|
2263
|
+
|
|
2264
|
+
/**
|
|
2265
|
+
* Clone refSet due the dereferencing process being mutable.
|
|
2266
|
+
* We don't want to mutate the original refSet and the references.
|
|
2267
|
+
*/
|
|
2268
|
+
if (options.dereference.immutable) {
|
|
2269
|
+
immutableRefSet.refs.map(ref => (0,_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_10__["default"])({
|
|
2270
|
+
...ref,
|
|
2271
|
+
value: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__.cloneDeep)(ref.value)
|
|
2272
|
+
})).forEach(ref => mutableRefsSet.add(ref));
|
|
2273
|
+
reference = mutableRefsSet.find(ref => ref.uri === file.uri);
|
|
2274
|
+
refSet = mutableRefsSet;
|
|
2255
2275
|
}
|
|
2256
2276
|
|
|
2257
2277
|
// create main dereference visitor
|
|
@@ -2259,7 +2279,6 @@ const OpenApi3_1SwaggerClientDereferenceStrategy = _swagger_api_apidom_reference
|
|
|
2259
2279
|
reference,
|
|
2260
2280
|
namespace,
|
|
2261
2281
|
options,
|
|
2262
|
-
useCircularStructures: this.useCircularStructures,
|
|
2263
2282
|
allowMetaPatches: this.allowMetaPatches,
|
|
2264
2283
|
ancestors: this.ancestors
|
|
2265
2284
|
});
|
|
@@ -2293,20 +2312,33 @@ const OpenApi3_1SwaggerClientDereferenceStrategy = _swagger_api_apidom_reference
|
|
|
2293
2312
|
|
|
2294
2313
|
// establish root visitor by visitor merging
|
|
2295
2314
|
const rootVisitor = mergeAllVisitorsAsync(visitors, {
|
|
2296
|
-
nodeTypeGetter:
|
|
2315
|
+
nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_12__.getNodeType
|
|
2297
2316
|
});
|
|
2298
2317
|
const dereferencedElement = await visitAsync(refSet.rootRef.value, rootVisitor, {
|
|
2299
|
-
keyMap:
|
|
2300
|
-
nodeTypeGetter:
|
|
2318
|
+
keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_12__.keyMap,
|
|
2319
|
+
nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_12__.getNodeType
|
|
2301
2320
|
});
|
|
2302
2321
|
|
|
2303
2322
|
/**
|
|
2304
|
-
*
|
|
2323
|
+
* If immutable option is set, replay refs from the refSet.
|
|
2324
|
+
*/
|
|
2325
|
+
if (options.dereference.immutable) {
|
|
2326
|
+
mutableRefsSet.refs.filter(ref => ref.uri.startsWith('immutable://')).map(ref => (0,_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_10__["default"])({
|
|
2327
|
+
...ref,
|
|
2328
|
+
uri: ref.uri.replace(/^immutable:\/\//, '')
|
|
2329
|
+
})).forEach(ref => immutableRefSet.add(ref));
|
|
2330
|
+
reference = immutableRefSet.find(ref => ref.uri === file.uri);
|
|
2331
|
+
refSet = immutableRefSet;
|
|
2332
|
+
}
|
|
2333
|
+
|
|
2334
|
+
/**
|
|
2335
|
+
* Release all memory if this refSet was not provided as an configuration option.
|
|
2305
2336
|
* If provided as configuration option, then provider is responsible for cleanup.
|
|
2306
2337
|
*/
|
|
2307
2338
|
if (options.dereference.refSet === null) {
|
|
2308
|
-
|
|
2339
|
+
immutableRefSet.clean();
|
|
2309
2340
|
}
|
|
2341
|
+
mutableRefsSet.clean();
|
|
2310
2342
|
return dereferencedElement;
|
|
2311
2343
|
}
|
|
2312
2344
|
}
|
|
@@ -2406,11 +2438,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2406
2438
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
2407
2439
|
/* harmony export */ });
|
|
2408
2440
|
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33501);
|
|
2409
|
-
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
|
|
2410
|
-
/* harmony import */ var
|
|
2411
|
-
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(15461);
|
|
2412
|
-
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3117);
|
|
2413
|
-
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(70281);
|
|
2441
|
+
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15461);
|
|
2442
|
+
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70281);
|
|
2414
2443
|
/* harmony import */ var _utils_compose_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79170);
|
|
2415
2444
|
/* harmony import */ var _utils_to_path_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12201);
|
|
2416
2445
|
|
|
@@ -2440,48 +2469,57 @@ const AllOfVisitor = (0,_utils_compose_js__WEBPACK_IMPORTED_MODULE_0__["default"
|
|
|
2440
2469
|
|
|
2441
2470
|
// remove allOf keyword if empty
|
|
2442
2471
|
if (schemaElement.allOf.isEmpty) {
|
|
2443
|
-
|
|
2472
|
+
schemaElement.remove('allOf');
|
|
2473
|
+
return undefined;
|
|
2444
2474
|
}
|
|
2445
2475
|
|
|
2446
2476
|
// collect errors if allOf keyword contains anything else than Schema Object
|
|
2447
|
-
const includesSchemaElementOnly = schemaElement.allOf.content.every(
|
|
2477
|
+
const includesSchemaElementOnly = schemaElement.allOf.content.every(_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__.isSchemaElement);
|
|
2448
2478
|
if (!includesSchemaElementOnly) {
|
|
2449
2479
|
const error = new TypeError('Elements in allOf must be objects');
|
|
2450
2480
|
error.fullPath = [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_2__["default"])([...ancestors, parent, schemaElement]), 'allOf'];
|
|
2451
2481
|
this.options.dereference.dereferenceOpts?.errors?.push?.(error);
|
|
2452
2482
|
return undefined;
|
|
2453
2483
|
}
|
|
2454
|
-
|
|
2484
|
+
while (schemaElement.hasKey('allOf')) {
|
|
2485
|
+
const {
|
|
2486
|
+
allOf
|
|
2487
|
+
} = schemaElement;
|
|
2488
|
+
schemaElement.remove('allOf');
|
|
2489
|
+
const allOfMerged = _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"].all([...allOf.content, schemaElement]);
|
|
2455
2490
|
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2491
|
+
/**
|
|
2492
|
+
* If there was not an original $$ref value, make sure to remove
|
|
2493
|
+
* any $$ref value that may exist from the result of `allOf` merges.
|
|
2494
|
+
*/
|
|
2495
|
+
if (!schemaElement.hasKey('$$ref')) {
|
|
2496
|
+
allOfMerged.remove('$$ref');
|
|
2497
|
+
}
|
|
2463
2498
|
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
|
|
2499
|
+
/**
|
|
2500
|
+
* If there was an example keyword in the original schema,
|
|
2501
|
+
* keep it instead of merging with example from other schema.
|
|
2502
|
+
*/
|
|
2503
|
+
if (schemaElement.hasKey('example')) {
|
|
2504
|
+
const member = allOfMerged.getMember('example');
|
|
2505
|
+
if (member) {
|
|
2506
|
+
member.value = schemaElement.get('example');
|
|
2507
|
+
}
|
|
2508
|
+
}
|
|
2472
2509
|
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
|
|
2479
|
-
|
|
2510
|
+
/**
|
|
2511
|
+
* If there was an examples keyword in the original schema,
|
|
2512
|
+
* keep it instead of merging with examples from other schema.
|
|
2513
|
+
*/
|
|
2514
|
+
if (schemaElement.hasKey('examples')) {
|
|
2515
|
+
const member = allOfMerged.getMember('examples');
|
|
2516
|
+
if (member) {
|
|
2517
|
+
member.value = schemaElement.get('examples');
|
|
2518
|
+
}
|
|
2519
|
+
}
|
|
2520
|
+
schemaElement.content = allOfMerged.content;
|
|
2480
2521
|
}
|
|
2481
|
-
|
|
2482
|
-
// remove allOf keyword after the merge
|
|
2483
|
-
mergedSchemaElement.remove('allOf');
|
|
2484
|
-
return mergedSchemaElement;
|
|
2522
|
+
return undefined;
|
|
2485
2523
|
}
|
|
2486
2524
|
}
|
|
2487
2525
|
}
|
|
@@ -2500,26 +2538,27 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2500
2538
|
/* harmony export */ });
|
|
2501
2539
|
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46571);
|
|
2502
2540
|
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42209);
|
|
2503
|
-
/* harmony import */ var
|
|
2504
|
-
/* harmony import */ var
|
|
2505
|
-
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(
|
|
2541
|
+
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9999);
|
|
2542
|
+
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(33501);
|
|
2543
|
+
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(44824);
|
|
2544
|
+
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(87024);
|
|
2506
2545
|
/* harmony import */ var _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(98219);
|
|
2507
2546
|
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(85013);
|
|
2508
2547
|
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(3117);
|
|
2509
|
-
/* harmony import */ var
|
|
2510
|
-
/* harmony import */ var
|
|
2511
|
-
/* harmony import */ var
|
|
2512
|
-
/* harmony import */ var
|
|
2513
|
-
/* harmony import */ var
|
|
2548
|
+
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(70281);
|
|
2549
|
+
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(66648);
|
|
2550
|
+
/* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(85270);
|
|
2551
|
+
/* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(18316);
|
|
2552
|
+
/* harmony import */ var _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83748);
|
|
2514
2553
|
/* harmony import */ var _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(60503);
|
|
2515
|
-
/* harmony import */ var
|
|
2516
|
-
/* harmony import */ var
|
|
2517
|
-
/* harmony import */ var
|
|
2518
|
-
/* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$
|
|
2519
|
-
/* harmony import */ var
|
|
2520
|
-
/* harmony import */ var
|
|
2521
|
-
/* harmony import */ var
|
|
2522
|
-
/* harmony import */ var
|
|
2554
|
+
/* harmony import */ var _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(15767);
|
|
2555
|
+
/* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(32346);
|
|
2556
|
+
/* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(51776);
|
|
2557
|
+
/* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$anchor__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(46432);
|
|
2558
|
+
/* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_uri__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(16129);
|
|
2559
|
+
/* harmony import */ var _swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_uri__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(78311);
|
|
2560
|
+
/* harmony import */ var _utils_to_path_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(12201);
|
|
2561
|
+
/* harmony import */ var _utils_get_root_cause_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(17381);
|
|
2523
2562
|
/* harmony import */ var _specmap_lib_refs_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7247);
|
|
2524
2563
|
/* harmony import */ var _errors_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21806);
|
|
2525
2564
|
/* eslint-disable camelcase */
|
|
@@ -2542,13 +2581,7 @@ const visitAsync = _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_2__.visit[S
|
|
|
2542
2581
|
|
|
2543
2582
|
// initialize element identity manager
|
|
2544
2583
|
const identityManager = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_3__.IdentityManager)();
|
|
2545
|
-
|
|
2546
|
-
/**
|
|
2547
|
-
* Predicate for detecting if element was created by merging referencing
|
|
2548
|
-
* element with particular element identity with a referenced element.
|
|
2549
|
-
*/
|
|
2550
|
-
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_4__["default"])(identityManager.identify(referencingElement)));
|
|
2551
|
-
const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_5__["default"].compose({
|
|
2584
|
+
const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_4__["default"].compose({
|
|
2552
2585
|
props: {
|
|
2553
2586
|
useCircularStructures: true,
|
|
2554
2587
|
allowMetaPatches: false,
|
|
@@ -2566,19 +2599,13 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
|
|
|
2566
2599
|
methods: {
|
|
2567
2600
|
async ReferenceElement(referencingElement, key, parent, path, ancestors) {
|
|
2568
2601
|
try {
|
|
2569
|
-
|
|
2570
|
-
|
|
2571
|
-
// skip already identified cycled Path Item Objects
|
|
2572
|
-
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_6__.includesClasses)(['cycle'], referencingElement.$ref)) {
|
|
2602
|
+
// skip current referencing element as it's already been access
|
|
2603
|
+
if (this.indirections.includes(referencingElement)) {
|
|
2573
2604
|
return false;
|
|
2574
2605
|
}
|
|
2575
|
-
|
|
2576
|
-
|
|
2577
|
-
|
|
2578
|
-
return false;
|
|
2579
|
-
}
|
|
2580
|
-
const retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(referencingElement.$ref));
|
|
2581
|
-
const isInternalReference = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_7__.stripHash(this.reference.uri) === retrievalURI;
|
|
2606
|
+
const [ancestorsLineage, directAncestors] = this.toAncestorLineage([...ancestors, parent]);
|
|
2607
|
+
const retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(referencingElement.$ref));
|
|
2608
|
+
const isInternalReference = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.stripHash(this.reference.uri) === retrievalURI;
|
|
2582
2609
|
const isExternalReference = !isInternalReference;
|
|
2583
2610
|
|
|
2584
2611
|
// ignore resolving internal Reference Objects
|
|
@@ -2589,18 +2616,19 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
|
|
|
2589
2616
|
if (!this.options.resolve.external && isExternalReference) {
|
|
2590
2617
|
return false;
|
|
2591
2618
|
}
|
|
2592
|
-
const reference = await this.toReference((0,
|
|
2593
|
-
const $refBaseURI =
|
|
2619
|
+
const reference = await this.toReference((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(referencingElement.$ref));
|
|
2620
|
+
const $refBaseURI = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.resolve(retrievalURI, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(referencingElement.$ref));
|
|
2594
2621
|
this.indirections.push(referencingElement);
|
|
2595
|
-
const jsonPointer = (0,
|
|
2622
|
+
const jsonPointer = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_7__.uriToPointer)($refBaseURI);
|
|
2596
2623
|
|
|
2597
2624
|
// possibly non-semantic fragment
|
|
2598
|
-
let referencedElement = (0,
|
|
2625
|
+
let referencedElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_8__["default"])(jsonPointer, reference.value.result);
|
|
2626
|
+
referencedElement.id = identityManager.identify(referencedElement);
|
|
2599
2627
|
|
|
2600
2628
|
// applying semantics to a fragment
|
|
2601
|
-
if ((0,
|
|
2602
|
-
const referencedElementType = (0,
|
|
2603
|
-
const cacheKey = `${referencedElementType}-${(0,
|
|
2629
|
+
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isPrimitiveElement)(referencedElement)) {
|
|
2630
|
+
const referencedElementType = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(referencingElement.meta.get('referenced-element'));
|
|
2631
|
+
const cacheKey = `${referencedElementType}-${(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(identityManager.identify(referencedElement))}`;
|
|
2604
2632
|
if (this.refractCache.has(cacheKey)) {
|
|
2605
2633
|
referencedElement = this.refractCache.get(cacheKey);
|
|
2606
2634
|
} else if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_10__.isReferenceLikeElement)(referencedElement)) {
|
|
@@ -2617,109 +2645,127 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
|
|
|
2617
2645
|
}
|
|
2618
2646
|
|
|
2619
2647
|
// detect direct or indirect reference
|
|
2620
|
-
if (
|
|
2621
|
-
throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_12__["default"]('Recursive
|
|
2648
|
+
if (referencingElement === referencedElement) {
|
|
2649
|
+
throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_12__["default"]('Recursive Reference Object detected');
|
|
2622
2650
|
}
|
|
2623
2651
|
|
|
2624
2652
|
// detect maximum depth of dereferencing
|
|
2625
2653
|
if (this.indirections.length > this.options.dereference.maxDepth) {
|
|
2626
2654
|
throw new _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_13__["default"](`Maximum dereference depth of "${this.options.dereference.maxDepth}" has been exceeded in file "${this.reference.uri}"`);
|
|
2627
2655
|
}
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2656
|
+
|
|
2657
|
+
// detect second deep dive into the same fragment and avoid it
|
|
2658
|
+
if (ancestorsLineage.includes(referencedElement)) {
|
|
2659
|
+
reference.refSet.circular = true;
|
|
2660
|
+
if (this.options.dereference.circular === 'error') {
|
|
2661
|
+
throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_12__["default"]('Circular reference detected');
|
|
2662
|
+
} else if (this.options.dereference.circular === 'replace') {
|
|
2663
|
+
const refElement = new _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.RefElement(referencedElement.id, {
|
|
2664
|
+
type: 'reference',
|
|
2665
|
+
uri: reference.uri,
|
|
2666
|
+
$ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(referencingElement.$ref),
|
|
2667
|
+
baseURI: $refBaseURI,
|
|
2668
|
+
referencingElement
|
|
2669
|
+
});
|
|
2670
|
+
const replacer = this.options.dereference.strategyOpts['openapi-3-1']?.circularReplacer ?? this.options.dereference.circularReplacer;
|
|
2671
|
+
const replacement = replacer(refElement);
|
|
2672
|
+
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isMemberElement)(parent)) {
|
|
2673
|
+
parent.value = replacement; // eslint-disable-line no-param-reassign
|
|
2674
|
+
} else if (Array.isArray(parent)) {
|
|
2675
|
+
parent[key] = replacement; // eslint-disable-line no-param-reassign
|
|
2638
2676
|
}
|
|
2639
|
-
|
|
2640
|
-
return false;
|
|
2677
|
+
return !parent ? replacement : false;
|
|
2641
2678
|
}
|
|
2642
2679
|
}
|
|
2643
2680
|
|
|
2644
|
-
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2681
|
+
/**
|
|
2682
|
+
* Dive deep into the fragment.
|
|
2683
|
+
*
|
|
2684
|
+
* Cases to consider:
|
|
2685
|
+
* 1. We're crossing document boundary
|
|
2686
|
+
* 2. Fragment is from non-root document
|
|
2687
|
+
* 3. Fragment is a Reference Object. We need to follow it to get the eventual value
|
|
2688
|
+
* 4. We are dereferencing the fragment lazily/eagerly depending on circular mode
|
|
2689
|
+
*/
|
|
2690
|
+
const isNonRootDocument = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.stripHash(reference.refSet.rootRef.uri) !== reference.uri;
|
|
2691
|
+
const shouldDetectCircular = ['error', 'replace'].includes(this.options.dereference.circular);
|
|
2692
|
+
if ((isExternalReference || isNonRootDocument || (0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__.isReferenceElement)(referencedElement) || shouldDetectCircular) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
2693
|
+
// append referencing reference to ancestors lineage
|
|
2694
|
+
directAncestors.add(referencingElement);
|
|
2695
|
+
const visitor = OpenApi3_1SwaggerClientDereferenceVisitor({
|
|
2696
|
+
reference,
|
|
2697
|
+
namespace: this.namespace,
|
|
2698
|
+
indirections: [...this.indirections],
|
|
2699
|
+
options: this.options,
|
|
2700
|
+
refractCache: this.refractCache,
|
|
2701
|
+
ancestors: ancestorsLineage,
|
|
2702
|
+
allowMetaPatches: this.allowMetaPatches,
|
|
2703
|
+
useCircularStructures: this.useCircularStructures,
|
|
2704
|
+
basePath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_16__["default"])([...ancestors, parent, referencingElement]), '$ref']
|
|
2705
|
+
});
|
|
2706
|
+
referencedElement = await visitAsync(referencedElement, visitor, {
|
|
2707
|
+
keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.keyMap,
|
|
2708
|
+
nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.getNodeType
|
|
2709
|
+
});
|
|
2662
2710
|
|
|
2663
|
-
|
|
2664
|
-
|
|
2711
|
+
// remove referencing reference from ancestors lineage
|
|
2712
|
+
directAncestors.delete(referencingElement);
|
|
2713
|
+
}
|
|
2665
2714
|
this.indirections.pop();
|
|
2666
|
-
const
|
|
2667
|
-
const copy = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.cloneShallow)(refedElement);
|
|
2668
|
-
|
|
2669
|
-
// annotate fragment with info about original Reference element
|
|
2670
|
-
copy.setMetaProperty('ref-fields', {
|
|
2671
|
-
$ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(referencingElement.$ref),
|
|
2672
|
-
description: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(referencingElement.description),
|
|
2673
|
-
summary: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(referencingElement.summary)
|
|
2674
|
-
});
|
|
2675
|
-
// annotate fragment with info about origin
|
|
2676
|
-
copy.setMetaProperty('ref-origin', reference.uri);
|
|
2677
|
-
// annotate fragment with info about referencing element
|
|
2678
|
-
copy.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.cloneDeep)(identityManager.identify(referencingElement)));
|
|
2715
|
+
const mergedElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneShallow)(referencedElement);
|
|
2679
2716
|
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
}
|
|
2717
|
+
// annotate fragment with info about original Reference element
|
|
2718
|
+
mergedElement.setMetaProperty('ref-fields', {
|
|
2719
|
+
$ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(referencingElement.$ref),
|
|
2720
|
+
description: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(referencingElement.description),
|
|
2721
|
+
summary: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(referencingElement.summary)
|
|
2722
|
+
});
|
|
2723
|
+
// annotate fragment with info about origin
|
|
2724
|
+
mergedElement.setMetaProperty('ref-origin', reference.uri);
|
|
2725
|
+
// annotate fragment with info about referencing element
|
|
2726
|
+
mergedElement.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneDeep)(identityManager.identify(referencingElement)));
|
|
2691
2727
|
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
copy.set('$$ref', baseURI);
|
|
2698
|
-
}
|
|
2728
|
+
// override description and summary (outer has higher priority then inner)
|
|
2729
|
+
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isObjectElement)(referencedElement)) {
|
|
2730
|
+
if (referencingElement.hasKey('description') && 'description' in referencedElement) {
|
|
2731
|
+
mergedElement.remove('description');
|
|
2732
|
+
mergedElement.set('description', referencingElement.get('description'));
|
|
2699
2733
|
}
|
|
2700
|
-
|
|
2701
|
-
|
|
2734
|
+
if (referencingElement.hasKey('summary') && 'summary' in referencedElement) {
|
|
2735
|
+
mergedElement.remove('summary');
|
|
2736
|
+
mergedElement.set('summary', referencingElement.get('summary'));
|
|
2737
|
+
}
|
|
2738
|
+
}
|
|
2702
2739
|
|
|
2703
|
-
//
|
|
2704
|
-
if (
|
|
2705
|
-
|
|
2706
|
-
if (
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
parent[key] = replaceWith; // eslint-disable-line no-param-reassign
|
|
2740
|
+
// apply meta patches
|
|
2741
|
+
if (this.allowMetaPatches && (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isObjectElement)(mergedElement)) {
|
|
2742
|
+
// apply meta patch only when not already applied
|
|
2743
|
+
if (!mergedElement.hasKey('$$ref')) {
|
|
2744
|
+
const baseURI = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.resolve(retrievalURI, $refBaseURI);
|
|
2745
|
+
mergedElement.set('$$ref', baseURI);
|
|
2710
2746
|
}
|
|
2711
|
-
return false;
|
|
2712
2747
|
}
|
|
2713
2748
|
|
|
2714
|
-
|
|
2715
|
-
|
|
2749
|
+
/**
|
|
2750
|
+
* Transclude referencing element with merged referenced element.
|
|
2751
|
+
*/
|
|
2752
|
+
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isMemberElement)(parent)) {
|
|
2753
|
+
parent.value = mergedElement; // eslint-disable-line no-param-reassign
|
|
2754
|
+
} else if (Array.isArray(parent)) {
|
|
2755
|
+
parent[key] = mergedElement; // eslint-disable-line no-param-reassign
|
|
2756
|
+
}
|
|
2757
|
+
|
|
2758
|
+
/**
|
|
2759
|
+
* We're at the root of the tree, so we're just replacing the entire tree.
|
|
2760
|
+
*/
|
|
2761
|
+
return !parent ? mergedElement : false;
|
|
2716
2762
|
} catch (error) {
|
|
2717
|
-
const rootCause = (0,
|
|
2763
|
+
const rootCause = (0,_utils_get_root_cause_js__WEBPACK_IMPORTED_MODULE_19__["default"])(error);
|
|
2718
2764
|
const wrappedError = wrapError(rootCause, {
|
|
2719
2765
|
baseDoc: this.reference.uri,
|
|
2720
|
-
$ref: (0,
|
|
2721
|
-
pointer: (0,
|
|
2722
|
-
fullPath: this.basePath ?? [...(0,
|
|
2766
|
+
$ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(referencingElement.$ref),
|
|
2767
|
+
pointer: (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_7__.uriToPointer)((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(referencingElement.$ref)),
|
|
2768
|
+
fullPath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_16__["default"])([...ancestors, parent, referencingElement]), '$ref']
|
|
2723
2769
|
});
|
|
2724
2770
|
this.options.dereference.dereferenceOpts?.errors?.push?.(wrappedError);
|
|
2725
2771
|
return undefined;
|
|
@@ -2727,24 +2773,23 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
|
|
|
2727
2773
|
},
|
|
2728
2774
|
async PathItemElement(pathItemElement, key, parent, path, ancestors) {
|
|
2729
2775
|
try {
|
|
2730
|
-
const [ancestorsLineage, directAncestors] = this.toAncestorLineage([...ancestors, parent]);
|
|
2731
|
-
|
|
2732
2776
|
// ignore PathItemElement without $ref field
|
|
2733
|
-
if (!(0,
|
|
2777
|
+
if (!(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isStringElement)(pathItemElement.$ref)) {
|
|
2734
2778
|
return undefined;
|
|
2735
2779
|
}
|
|
2736
2780
|
|
|
2737
|
-
// skip
|
|
2738
|
-
if (
|
|
2781
|
+
// skip current referencing element as it's already been access
|
|
2782
|
+
if (this.indirections.includes(pathItemElement)) {
|
|
2739
2783
|
return false;
|
|
2740
2784
|
}
|
|
2741
2785
|
|
|
2742
|
-
//
|
|
2743
|
-
if (
|
|
2786
|
+
// skip already identified cycled Path Item Objects
|
|
2787
|
+
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.includesClasses)(['cycle'], pathItemElement.$ref)) {
|
|
2744
2788
|
return false;
|
|
2745
2789
|
}
|
|
2746
|
-
const
|
|
2747
|
-
const
|
|
2790
|
+
const [ancestorsLineage, directAncestors] = this.toAncestorLineage([...ancestors, parent]);
|
|
2791
|
+
const retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(pathItemElement.$ref));
|
|
2792
|
+
const isInternalReference = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.stripHash(this.reference.uri) === retrievalURI;
|
|
2748
2793
|
const isExternalReference = !isInternalReference;
|
|
2749
2794
|
|
|
2750
2795
|
// ignore resolving internal Path Item Elements
|
|
@@ -2755,17 +2800,18 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
|
|
|
2755
2800
|
if (!this.options.resolve.external && isExternalReference) {
|
|
2756
2801
|
return undefined;
|
|
2757
2802
|
}
|
|
2758
|
-
const reference = await this.toReference((0,
|
|
2759
|
-
const $refBaseURI =
|
|
2803
|
+
const reference = await this.toReference((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(pathItemElement.$ref));
|
|
2804
|
+
const $refBaseURI = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.resolve(retrievalURI, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(pathItemElement.$ref));
|
|
2760
2805
|
this.indirections.push(pathItemElement);
|
|
2761
|
-
const jsonPointer = (0,
|
|
2806
|
+
const jsonPointer = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_7__.uriToPointer)($refBaseURI);
|
|
2762
2807
|
|
|
2763
2808
|
// possibly non-semantic referenced element
|
|
2764
|
-
let referencedElement = (0,
|
|
2809
|
+
let referencedElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_8__["default"])(jsonPointer, reference.value.result);
|
|
2810
|
+
referencedElement.id = identityManager.identify(referencedElement);
|
|
2765
2811
|
|
|
2766
2812
|
// applying semantics to a referenced element
|
|
2767
|
-
if ((0,
|
|
2768
|
-
const cacheKey = `
|
|
2813
|
+
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isPrimitiveElement)(referencedElement)) {
|
|
2814
|
+
const cacheKey = `path-item-${(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(identityManager.identify(referencedElement))}`;
|
|
2769
2815
|
if (this.refractCache.has(cacheKey)) {
|
|
2770
2816
|
referencedElement = this.refractCache.get(cacheKey);
|
|
2771
2817
|
} else {
|
|
@@ -2775,102 +2821,127 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
|
|
|
2775
2821
|
}
|
|
2776
2822
|
|
|
2777
2823
|
// detect direct or indirect reference
|
|
2778
|
-
if (
|
|
2779
|
-
throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_12__["default"]('Recursive
|
|
2824
|
+
if (pathItemElement === referencedElement) {
|
|
2825
|
+
throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_12__["default"]('Recursive Path Item Object reference detected');
|
|
2780
2826
|
}
|
|
2781
2827
|
|
|
2782
2828
|
// detect maximum depth of dereferencing
|
|
2783
2829
|
if (this.indirections.length > this.options.dereference.maxDepth) {
|
|
2784
2830
|
throw new _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_13__["default"](`Maximum dereference depth of "${this.options.dereference.maxDepth}" has been exceeded in file "${this.reference.uri}"`);
|
|
2785
2831
|
}
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2832
|
+
|
|
2833
|
+
// detect second deep dive into the same fragment and avoid it
|
|
2834
|
+
if (ancestorsLineage.includes(referencedElement)) {
|
|
2835
|
+
reference.refSet.circular = true;
|
|
2836
|
+
if (this.options.dereference.circular === 'error') {
|
|
2837
|
+
throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_12__["default"]('Circular reference detected');
|
|
2838
|
+
} else if (this.options.dereference.circular === 'replace') {
|
|
2839
|
+
const refElement = new _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.RefElement(referencedElement.id, {
|
|
2840
|
+
type: 'path-item',
|
|
2841
|
+
uri: reference.uri,
|
|
2842
|
+
$ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(pathItemElement.$ref),
|
|
2843
|
+
baseURI: $refBaseURI,
|
|
2844
|
+
referencingElement: pathItemElement
|
|
2845
|
+
});
|
|
2846
|
+
const replacer = this.options.dereference.strategyOpts['openapi-3-1']?.circularReplacer ?? this.options.dereference.circularReplacer;
|
|
2847
|
+
const replacement = replacer(refElement);
|
|
2848
|
+
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isMemberElement)(parent)) {
|
|
2849
|
+
parent.value = replacement; // eslint-disable-line no-param-reassign
|
|
2850
|
+
} else if (Array.isArray(parent)) {
|
|
2851
|
+
parent[key] = replacement; // eslint-disable-line no-param-reassign
|
|
2796
2852
|
}
|
|
2797
|
-
|
|
2798
|
-
return false;
|
|
2853
|
+
return !parent ? replacement : false;
|
|
2799
2854
|
}
|
|
2800
2855
|
}
|
|
2801
2856
|
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
2857
|
+
/**
|
|
2858
|
+
* Dive deep into the fragment.
|
|
2859
|
+
*
|
|
2860
|
+
* Cases to consider:
|
|
2861
|
+
* 1. We're crossing document boundary
|
|
2862
|
+
* 2. Fragment is from non-root document
|
|
2863
|
+
* 3. Fragment is a Path Item Object with $ref field. We need to follow it to get the eventual value
|
|
2864
|
+
* 4. We are dereferencing the fragment lazily/eagerly depending on circular mode
|
|
2865
|
+
*/
|
|
2866
|
+
const isNonRootDocument = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.stripHash(reference.refSet.rootRef.uri) !== reference.uri;
|
|
2867
|
+
const shouldDetectCircular = ['error', 'replace'].includes(this.options.dereference.circular);
|
|
2868
|
+
if ((isExternalReference || isNonRootDocument || (0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__.isPathItemElement)(referencedElement) && (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isStringElement)(referencedElement.$ref) || shouldDetectCircular) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
2869
|
+
// append referencing schema to ancestors lineage
|
|
2870
|
+
directAncestors.add(pathItemElement);
|
|
2871
|
+
|
|
2872
|
+
// dive deep into the referenced element
|
|
2873
|
+
const visitor = OpenApi3_1SwaggerClientDereferenceVisitor({
|
|
2874
|
+
reference,
|
|
2875
|
+
namespace: this.namespace,
|
|
2876
|
+
indirections: [...this.indirections],
|
|
2877
|
+
options: this.options,
|
|
2878
|
+
ancestors: ancestorsLineage,
|
|
2879
|
+
allowMetaPatches: this.allowMetaPatches,
|
|
2880
|
+
useCircularStructures: this.useCircularStructures,
|
|
2881
|
+
basePath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_16__["default"])([...ancestors, parent, pathItemElement]), '$ref']
|
|
2882
|
+
});
|
|
2883
|
+
referencedElement = await visitAsync(referencedElement, visitor, {
|
|
2884
|
+
keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.keyMap,
|
|
2885
|
+
nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.getNodeType
|
|
2886
|
+
});
|
|
2820
2887
|
|
|
2821
|
-
|
|
2822
|
-
|
|
2888
|
+
// remove referencing schema from ancestors lineage
|
|
2889
|
+
directAncestors.delete(pathItemElement);
|
|
2890
|
+
}
|
|
2823
2891
|
this.indirections.pop();
|
|
2824
|
-
|
|
2825
|
-
|
|
2826
|
-
|
|
2892
|
+
|
|
2893
|
+
/**
|
|
2894
|
+
* Creating a new version of Path Item by merging fields from referenced Path Item with referencing one.
|
|
2895
|
+
*/
|
|
2896
|
+
if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__.isPathItemElement)(referencedElement)) {
|
|
2897
|
+
const mergedElement = new _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_11__.PathItemElement([...referencedElement.content], (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneDeep)(referencedElement.meta), (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneDeep)(referencedElement.attributes));
|
|
2827
2898
|
// existing keywords from referencing PathItemElement overrides ones from referenced element
|
|
2828
2899
|
pathItemElement.forEach((value, keyElement, item) => {
|
|
2829
|
-
mergedElement.remove((0,
|
|
2900
|
+
mergedElement.remove((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(keyElement));
|
|
2830
2901
|
mergedElement.content.push(item);
|
|
2831
2902
|
});
|
|
2832
2903
|
mergedElement.remove('$ref');
|
|
2833
2904
|
|
|
2834
2905
|
// annotate referenced element with info about original referencing element
|
|
2835
2906
|
mergedElement.setMetaProperty('ref-fields', {
|
|
2836
|
-
$ref: (0,
|
|
2907
|
+
$ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(pathItemElement.$ref)
|
|
2837
2908
|
});
|
|
2838
2909
|
// annotate referenced element with info about origin
|
|
2839
2910
|
mergedElement.setMetaProperty('ref-origin', reference.uri);
|
|
2840
2911
|
// annotate fragment with info about referencing element
|
|
2841
|
-
mergedElement.setMetaProperty('ref-referencing-element-id', (0,
|
|
2912
|
+
mergedElement.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneDeep)(identityManager.identify(pathItemElement)));
|
|
2842
2913
|
|
|
2843
2914
|
// apply meta patches
|
|
2844
2915
|
if (this.allowMetaPatches) {
|
|
2845
2916
|
// apply meta patch only when not already applied
|
|
2846
2917
|
if (typeof mergedElement.get('$$ref') === 'undefined') {
|
|
2847
|
-
const baseURI =
|
|
2918
|
+
const baseURI = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.resolve(retrievalURI, $refBaseURI);
|
|
2848
2919
|
mergedElement.set('$$ref', baseURI);
|
|
2849
2920
|
}
|
|
2850
2921
|
}
|
|
2851
|
-
|
|
2852
|
-
}
|
|
2922
|
+
referencedElement = mergedElement;
|
|
2923
|
+
}
|
|
2853
2924
|
|
|
2854
|
-
|
|
2855
|
-
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
|
|
2859
|
-
|
|
2860
|
-
|
|
2861
|
-
}
|
|
2862
|
-
return false;
|
|
2925
|
+
/**
|
|
2926
|
+
* Transclude referencing element with merged referenced element.
|
|
2927
|
+
*/
|
|
2928
|
+
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isMemberElement)(parent)) {
|
|
2929
|
+
parent.value = referencedElement; // eslint-disable-line no-param-reassign
|
|
2930
|
+
} else if (Array.isArray(parent)) {
|
|
2931
|
+
parent[key] = referencedElement; // eslint-disable-line no-param-reassign
|
|
2863
2932
|
}
|
|
2864
2933
|
|
|
2865
|
-
|
|
2866
|
-
|
|
2934
|
+
/**
|
|
2935
|
+
* We're at the root of the tree, so we're just replacing the entire tree.
|
|
2936
|
+
*/
|
|
2937
|
+
return !parent ? referencedElement : undefined;
|
|
2867
2938
|
} catch (error) {
|
|
2868
|
-
const rootCause = (0,
|
|
2939
|
+
const rootCause = (0,_utils_get_root_cause_js__WEBPACK_IMPORTED_MODULE_19__["default"])(error);
|
|
2869
2940
|
const wrappedError = wrapError(rootCause, {
|
|
2870
2941
|
baseDoc: this.reference.uri,
|
|
2871
|
-
$ref: (0,
|
|
2872
|
-
pointer: (0,
|
|
2873
|
-
fullPath: this.basePath ?? [...(0,
|
|
2942
|
+
$ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(pathItemElement.$ref),
|
|
2943
|
+
pointer: (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_7__.uriToPointer)((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(pathItemElement.$ref)),
|
|
2944
|
+
fullPath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_16__["default"])([...ancestors, parent, pathItemElement]), '$ref']
|
|
2874
2945
|
});
|
|
2875
2946
|
this.options.dereference.dereferenceOpts?.errors?.push?.(wrappedError);
|
|
2876
2947
|
return undefined;
|
|
@@ -2878,38 +2949,32 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
|
|
|
2878
2949
|
},
|
|
2879
2950
|
async SchemaElement(referencingElement, key, parent, path, ancestors) {
|
|
2880
2951
|
try {
|
|
2881
|
-
const [ancestorsLineage, directAncestors] = this.toAncestorLineage([...ancestors, parent]);
|
|
2882
|
-
|
|
2883
2952
|
// skip current referencing schema as $ref keyword was not defined
|
|
2884
|
-
if (!(0,
|
|
2953
|
+
if (!(0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isStringElement)(referencingElement.$ref)) {
|
|
2885
2954
|
// skip traversing this schema but traverse all it's child schemas
|
|
2886
2955
|
return undefined;
|
|
2887
2956
|
}
|
|
2888
2957
|
|
|
2889
|
-
// skip
|
|
2890
|
-
if (
|
|
2891
|
-
return false;
|
|
2892
|
-
}
|
|
2893
|
-
|
|
2894
|
-
// detect possible cycle in traversal and avoid it
|
|
2895
|
-
if (ancestorsLineage.includesCycle(referencingElement)) {
|
|
2958
|
+
// skip current referencing element as it's already been access
|
|
2959
|
+
if (this.indirections.includes(referencingElement)) {
|
|
2896
2960
|
return false;
|
|
2897
2961
|
}
|
|
2962
|
+
const [ancestorsLineage, directAncestors] = this.toAncestorLineage([...ancestors, parent]);
|
|
2898
2963
|
|
|
2899
2964
|
// compute baseURI using rules around $id and $ref keywords
|
|
2900
|
-
let reference = await this.toReference(
|
|
2965
|
+
let reference = await this.toReference(_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.unsanitize(this.reference.uri));
|
|
2901
2966
|
let {
|
|
2902
2967
|
uri: retrievalURI
|
|
2903
2968
|
} = reference;
|
|
2904
|
-
const $refBaseURI = (0,
|
|
2905
|
-
const $refBaseURIStrippedHash =
|
|
2906
|
-
const file = (0,
|
|
2969
|
+
const $refBaseURI = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.resolveSchema$refField)(retrievalURI, referencingElement);
|
|
2970
|
+
const $refBaseURIStrippedHash = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.stripHash($refBaseURI);
|
|
2971
|
+
const file = (0,_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_21__["default"])({
|
|
2907
2972
|
uri: $refBaseURIStrippedHash
|
|
2908
2973
|
});
|
|
2909
2974
|
const isUnknownURI = !this.options.resolve.resolvers.some(r => r.canRead(file));
|
|
2910
2975
|
const isURL = !isUnknownURI;
|
|
2911
|
-
|
|
2912
|
-
|
|
2976
|
+
let isInternalReference = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.stripHash(this.reference.uri) === $refBaseURI;
|
|
2977
|
+
let isExternalReference = !isInternalReference;
|
|
2913
2978
|
this.indirections.push(referencingElement);
|
|
2914
2979
|
|
|
2915
2980
|
// determining reference, proper evaluation and selection mechanism
|
|
@@ -2917,66 +2982,95 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
|
|
|
2917
2982
|
try {
|
|
2918
2983
|
if (isUnknownURI || isURL) {
|
|
2919
2984
|
// we're dealing with canonical URI or URL with possible fragment
|
|
2985
|
+
retrievalURI = this.toBaseURI($refBaseURI);
|
|
2920
2986
|
const selector = $refBaseURI;
|
|
2921
|
-
|
|
2987
|
+
const referenceAsSchema = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.maybeRefractToSchemaElement)(reference.value.result);
|
|
2988
|
+
referencedElement = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_uri__WEBPACK_IMPORTED_MODULE_22__.evaluate)(selector, referenceAsSchema);
|
|
2989
|
+
referencedElement = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.maybeRefractToSchemaElement)(referencedElement);
|
|
2990
|
+
referencedElement.id = identityManager.identify(referencedElement);
|
|
2991
|
+
|
|
2992
|
+
// ignore resolving internal Schema Objects
|
|
2993
|
+
if (!this.options.resolve.internal && isInternalReference) {
|
|
2994
|
+
// skip traversing this schema element but traverse all it's child elements
|
|
2995
|
+
return undefined;
|
|
2996
|
+
}
|
|
2997
|
+
// ignore resolving external Schema Objects
|
|
2998
|
+
if (!this.options.resolve.external && isExternalReference) {
|
|
2999
|
+
// skip traversing this schema element but traverse all it's child elements
|
|
3000
|
+
return undefined;
|
|
3001
|
+
}
|
|
2922
3002
|
} else {
|
|
2923
3003
|
// we're assuming here that we're dealing with JSON Pointer here
|
|
2924
|
-
retrievalURI = this.toBaseURI(
|
|
3004
|
+
retrievalURI = this.toBaseURI($refBaseURI);
|
|
3005
|
+
isInternalReference = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.stripHash(this.reference.uri) === retrievalURI;
|
|
3006
|
+
isExternalReference = !isInternalReference;
|
|
2925
3007
|
|
|
2926
3008
|
// ignore resolving internal Schema Objects
|
|
2927
|
-
if (!this.options.resolve.internal && isInternalReference
|
|
3009
|
+
if (!this.options.resolve.internal && isInternalReference) {
|
|
2928
3010
|
// skip traversing this schema element but traverse all it's child elements
|
|
2929
3011
|
return undefined;
|
|
2930
3012
|
}
|
|
2931
3013
|
// ignore resolving external Schema Objects
|
|
2932
|
-
if (!this.options.resolve.external && isExternalReference
|
|
3014
|
+
if (!this.options.resolve.external && isExternalReference) {
|
|
2933
3015
|
// skip traversing this schema element but traverse all it's child elements
|
|
2934
3016
|
return undefined;
|
|
2935
3017
|
}
|
|
2936
|
-
reference = await this.toReference(
|
|
2937
|
-
const selector = (0,
|
|
2938
|
-
|
|
3018
|
+
reference = await this.toReference(_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.unsanitize($refBaseURI));
|
|
3019
|
+
const selector = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_7__.uriToPointer)($refBaseURI);
|
|
3020
|
+
const referenceAsSchema = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.maybeRefractToSchemaElement)(reference.value.result);
|
|
3021
|
+
referencedElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_8__["default"])(selector, referenceAsSchema);
|
|
3022
|
+
referencedElement = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.maybeRefractToSchemaElement)(referencedElement);
|
|
3023
|
+
referencedElement.id = identityManager.identify(referencedElement);
|
|
2939
3024
|
}
|
|
2940
3025
|
} catch (error) {
|
|
2941
3026
|
/**
|
|
2942
3027
|
* No SchemaElement($id=URL) was not found, so we're going to try to resolve
|
|
2943
3028
|
* the URL and assume the returned response is a JSON Schema.
|
|
2944
3029
|
*/
|
|
2945
|
-
if (isURL && error instanceof
|
|
2946
|
-
if ((0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$
|
|
3030
|
+
if (isURL && error instanceof _swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_uri__WEBPACK_IMPORTED_MODULE_23__["default"]) {
|
|
3031
|
+
if ((0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$anchor__WEBPACK_IMPORTED_MODULE_24__.isAnchor)((0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$anchor__WEBPACK_IMPORTED_MODULE_24__.uriToAnchor)($refBaseURI))) {
|
|
2947
3032
|
// we're dealing with JSON Schema $anchor here
|
|
2948
|
-
|
|
3033
|
+
isInternalReference = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.stripHash(this.reference.uri) === retrievalURI;
|
|
3034
|
+
isExternalReference = !isInternalReference;
|
|
2949
3035
|
|
|
2950
3036
|
// ignore resolving internal Schema Objects
|
|
2951
|
-
if (!this.options.resolve.internal && isInternalReference
|
|
3037
|
+
if (!this.options.resolve.internal && isInternalReference) {
|
|
2952
3038
|
// skip traversing this schema element but traverse all it's child elements
|
|
2953
3039
|
return undefined;
|
|
2954
3040
|
}
|
|
2955
3041
|
// ignore resolving external Schema Objects
|
|
2956
|
-
if (!this.options.resolve.external && isExternalReference
|
|
3042
|
+
if (!this.options.resolve.external && isExternalReference) {
|
|
2957
3043
|
// skip traversing this schema element but traverse all it's child elements
|
|
2958
3044
|
return undefined;
|
|
2959
3045
|
}
|
|
2960
|
-
reference = await this.toReference(
|
|
2961
|
-
const selector = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$
|
|
2962
|
-
|
|
3046
|
+
reference = await this.toReference(_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.unsanitize($refBaseURI));
|
|
3047
|
+
const selector = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$anchor__WEBPACK_IMPORTED_MODULE_24__.uriToAnchor)($refBaseURI);
|
|
3048
|
+
const referenceAsSchema = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.maybeRefractToSchemaElement)(reference.value.result);
|
|
3049
|
+
referencedElement = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1_selectors_$anchor__WEBPACK_IMPORTED_MODULE_24__.evaluate)(selector, referenceAsSchema);
|
|
3050
|
+
referencedElement = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.maybeRefractToSchemaElement)(referencedElement);
|
|
3051
|
+
referencedElement.id = identityManager.identify(referencedElement);
|
|
2963
3052
|
} else {
|
|
2964
3053
|
// we're assuming here that we're dealing with JSON Pointer here
|
|
2965
|
-
retrievalURI = this.toBaseURI((0,
|
|
3054
|
+
retrievalURI = this.toBaseURI((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])($refBaseURI));
|
|
3055
|
+
isInternalReference = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.stripHash(this.reference.uri) === retrievalURI;
|
|
3056
|
+
isExternalReference = !isInternalReference;
|
|
2966
3057
|
|
|
2967
3058
|
// ignore resolving internal Schema Objects
|
|
2968
|
-
if (!this.options.resolve.internal && isInternalReference
|
|
3059
|
+
if (!this.options.resolve.internal && isInternalReference) {
|
|
2969
3060
|
// skip traversing this schema element but traverse all it's child elements
|
|
2970
3061
|
return undefined;
|
|
2971
3062
|
}
|
|
2972
3063
|
// ignore resolving external Schema Objects
|
|
2973
|
-
if (!this.options.resolve.external && isExternalReference
|
|
3064
|
+
if (!this.options.resolve.external && isExternalReference) {
|
|
2974
3065
|
// skip traversing this schema element but traverse all it's child elements
|
|
2975
3066
|
return undefined;
|
|
2976
3067
|
}
|
|
2977
|
-
reference = await this.toReference(
|
|
2978
|
-
const selector = (0,
|
|
2979
|
-
|
|
3068
|
+
reference = await this.toReference(_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.unsanitize($refBaseURI));
|
|
3069
|
+
const selector = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_7__.uriToPointer)($refBaseURI);
|
|
3070
|
+
const referenceAsSchema = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.maybeRefractToSchemaElement)(reference.value.result);
|
|
3071
|
+
referencedElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_8__["default"])(selector, referenceAsSchema);
|
|
3072
|
+
referencedElement = (0,_swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__.maybeRefractToSchemaElement)(referencedElement);
|
|
3073
|
+
referencedElement.id = identityManager.identify(referencedElement);
|
|
2980
3074
|
}
|
|
2981
3075
|
} else {
|
|
2982
3076
|
throw error;
|
|
@@ -2984,7 +3078,7 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
|
|
|
2984
3078
|
}
|
|
2985
3079
|
|
|
2986
3080
|
// detect direct or indirect reference
|
|
2987
|
-
if (
|
|
3081
|
+
if (referencingElement === referencedElement) {
|
|
2988
3082
|
throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_12__["default"]('Recursive Schema Object reference detected');
|
|
2989
3083
|
}
|
|
2990
3084
|
|
|
@@ -2993,106 +3087,134 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
|
|
|
2993
3087
|
throw new _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_13__["default"](`Maximum dereference depth of "${this.options.dereference.maxDepth}" has been exceeded in file "${this.reference.uri}"`);
|
|
2994
3088
|
}
|
|
2995
3089
|
|
|
2996
|
-
//
|
|
2997
|
-
if (
|
|
2998
|
-
|
|
2999
|
-
if (
|
|
3000
|
-
|
|
3001
|
-
|
|
3002
|
-
|
|
3003
|
-
|
|
3004
|
-
|
|
3005
|
-
|
|
3006
|
-
|
|
3007
|
-
|
|
3090
|
+
// detect second deep dive into the same fragment and avoid it
|
|
3091
|
+
if (ancestorsLineage.includes(referencedElement)) {
|
|
3092
|
+
reference.refSet.circular = true;
|
|
3093
|
+
if (this.options.dereference.circular === 'error') {
|
|
3094
|
+
throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_12__["default"]('Circular reference detected');
|
|
3095
|
+
} else if (this.options.dereference.circular === 'replace') {
|
|
3096
|
+
const refElement = new _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_14__.RefElement(referencedElement.id, {
|
|
3097
|
+
type: 'json-schema',
|
|
3098
|
+
uri: reference.uri,
|
|
3099
|
+
$ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(referencingElement.$ref),
|
|
3100
|
+
baseURI: _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.resolve(retrievalURI, $refBaseURI),
|
|
3101
|
+
referencingElement
|
|
3102
|
+
});
|
|
3103
|
+
const replacer = this.options.dereference.strategyOpts['openapi-3-1']?.circularReplacer ?? this.options.dereference.circularReplacer;
|
|
3104
|
+
const replacement = replacer(refElement);
|
|
3105
|
+
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isMemberElement)(parent)) {
|
|
3106
|
+
parent.value = replacement; // eslint-disable-line no-param-reassign
|
|
3107
|
+
} else if (Array.isArray(parent)) {
|
|
3108
|
+
parent[key] = replacement; // eslint-disable-line no-param-reassign
|
|
3008
3109
|
}
|
|
3009
|
-
|
|
3010
|
-
return false;
|
|
3110
|
+
return !parent ? replacement : false;
|
|
3011
3111
|
}
|
|
3012
3112
|
}
|
|
3013
3113
|
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3114
|
+
/**
|
|
3115
|
+
* Dive deep into the fragment.
|
|
3116
|
+
*
|
|
3117
|
+
* Cases to consider:
|
|
3118
|
+
* 1. We're crossing document boundary
|
|
3119
|
+
* 2. Fragment is from non-root document
|
|
3120
|
+
* 3. Fragment is a Schema Object with $ref field. We need to follow it to get the eventual value
|
|
3121
|
+
* 4. We are dereferencing the fragment lazily/eagerly depending on circular mode
|
|
3122
|
+
*/
|
|
3123
|
+
const isNonRootDocument = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.stripHash(reference.refSet.rootRef.uri) !== reference.uri;
|
|
3124
|
+
const shouldDetectCircular = ['error', 'replace'].includes(this.options.dereference.circular);
|
|
3125
|
+
if ((isExternalReference || isNonRootDocument || (0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__.isSchemaElement)(referencedElement) && (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isStringElement)(referencedElement.$ref) || shouldDetectCircular) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
3126
|
+
// append referencing schema to ancestors lineage
|
|
3127
|
+
directAncestors.add(referencingElement);
|
|
3128
|
+
|
|
3129
|
+
// dive deep into the fragment
|
|
3130
|
+
const mergeVisitor = OpenApi3_1SwaggerClientDereferenceVisitor({
|
|
3131
|
+
reference,
|
|
3132
|
+
namespace: this.namespace,
|
|
3133
|
+
indirections: [...this.indirections],
|
|
3134
|
+
options: this.options,
|
|
3135
|
+
useCircularStructures: this.useCircularStructures,
|
|
3136
|
+
allowMetaPatches: this.allowMetaPatches,
|
|
3137
|
+
ancestors: ancestorsLineage,
|
|
3138
|
+
basePath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_16__["default"])([...ancestors, parent, referencingElement]), '$ref']
|
|
3139
|
+
});
|
|
3140
|
+
referencedElement = await visitAsync(referencedElement, mergeVisitor, {
|
|
3141
|
+
keyMap: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.keyMap,
|
|
3142
|
+
nodeTypeGetter: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__.getNodeType
|
|
3143
|
+
});
|
|
3032
3144
|
|
|
3033
|
-
|
|
3034
|
-
|
|
3145
|
+
// remove referencing schema from ancestors lineage
|
|
3146
|
+
directAncestors.delete(referencingElement);
|
|
3147
|
+
}
|
|
3035
3148
|
this.indirections.pop();
|
|
3036
|
-
if ((0,
|
|
3037
|
-
const booleanJsonSchemaElement = (0,
|
|
3149
|
+
if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__.isBooleanJsonSchemaElement)(referencedElement)) {
|
|
3150
|
+
const booleanJsonSchemaElement = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneDeep)(referencedElement);
|
|
3038
3151
|
// annotate referenced element with info about original referencing element
|
|
3039
3152
|
booleanJsonSchemaElement.setMetaProperty('ref-fields', {
|
|
3040
|
-
$ref: (0,
|
|
3153
|
+
$ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(referencingElement.$ref)
|
|
3041
3154
|
});
|
|
3042
3155
|
// annotate referenced element with info about origin
|
|
3043
3156
|
booleanJsonSchemaElement.setMetaProperty('ref-origin', reference.uri);
|
|
3044
3157
|
// annotate fragment with info about referencing element
|
|
3045
|
-
booleanJsonSchemaElement.setMetaProperty('ref-referencing-element-id', (0,
|
|
3046
|
-
|
|
3158
|
+
booleanJsonSchemaElement.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneDeep)(identityManager.identify(referencingElement)));
|
|
3159
|
+
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isMemberElement)(parent)) {
|
|
3160
|
+
parent.value = booleanJsonSchemaElement; // eslint-disable-line no-param-reassign
|
|
3161
|
+
} else if (Array.isArray(parent)) {
|
|
3162
|
+
parent[key] = booleanJsonSchemaElement; // eslint-disable-line no-param-reassign
|
|
3163
|
+
}
|
|
3164
|
+
return !parent ? booleanJsonSchemaElement : false;
|
|
3047
3165
|
}
|
|
3048
|
-
|
|
3166
|
+
|
|
3167
|
+
/**
|
|
3168
|
+
* Creating a new version of Schema Object by merging fields from referenced Schema Object with referencing one.
|
|
3169
|
+
*/
|
|
3170
|
+
if ((0,_swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__.isSchemaElement)(referencedElement)) {
|
|
3049
3171
|
// Schema Object - merge keywords from referenced schema with referencing schema
|
|
3050
|
-
const mergedElement = new _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_11__.SchemaElement([...
|
|
3172
|
+
const mergedElement = new _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_11__.SchemaElement([...referencedElement.content], (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneDeep)(referencedElement.meta), (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneDeep)(referencedElement.attributes));
|
|
3051
3173
|
// existing keywords from referencing schema overrides ones from referenced schema
|
|
3052
3174
|
referencingElement.forEach((value, keyElement, item) => {
|
|
3053
|
-
mergedElement.remove((0,
|
|
3175
|
+
mergedElement.remove((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(keyElement));
|
|
3054
3176
|
mergedElement.content.push(item);
|
|
3055
3177
|
});
|
|
3056
3178
|
mergedElement.remove('$ref');
|
|
3057
3179
|
// annotate referenced element with info about original referencing element
|
|
3058
3180
|
mergedElement.setMetaProperty('ref-fields', {
|
|
3059
|
-
$ref: (0,
|
|
3181
|
+
$ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(referencingElement.$ref)
|
|
3060
3182
|
});
|
|
3061
3183
|
// annotate fragment with info about origin
|
|
3062
3184
|
mergedElement.setMetaProperty('ref-origin', reference.uri);
|
|
3063
3185
|
// annotate fragment with info about referencing element
|
|
3064
|
-
mergedElement.setMetaProperty('ref-referencing-element-id', (0,
|
|
3186
|
+
mergedElement.setMetaProperty('ref-referencing-element-id', (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_18__.cloneDeep)(identityManager.identify(referencingElement)));
|
|
3065
3187
|
|
|
3066
3188
|
// allowMetaPatches option processing
|
|
3067
3189
|
if (this.allowMetaPatches) {
|
|
3068
3190
|
// apply meta patch only when not already applied
|
|
3069
3191
|
if (typeof mergedElement.get('$$ref') === 'undefined') {
|
|
3070
|
-
const baseURI =
|
|
3192
|
+
const baseURI = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_6__.resolve(retrievalURI, $refBaseURI);
|
|
3071
3193
|
mergedElement.set('$$ref', baseURI);
|
|
3072
3194
|
}
|
|
3073
3195
|
}
|
|
3074
|
-
|
|
3075
|
-
}
|
|
3196
|
+
referencedElement = mergedElement;
|
|
3197
|
+
}
|
|
3076
3198
|
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
}
|
|
3085
|
-
return false;
|
|
3199
|
+
/**
|
|
3200
|
+
* Transclude referencing element with merged referenced element.
|
|
3201
|
+
*/
|
|
3202
|
+
if ((0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__.isMemberElement)(parent)) {
|
|
3203
|
+
parent.value = referencedElement; // eslint-disable-line no-param-reassign
|
|
3204
|
+
} else if (Array.isArray(parent)) {
|
|
3205
|
+
parent[key] = referencedElement; // eslint-disable-line no-param-reassign
|
|
3086
3206
|
}
|
|
3087
3207
|
|
|
3088
|
-
|
|
3089
|
-
|
|
3208
|
+
/**
|
|
3209
|
+
* We're at the root of the tree, so we're just replacing the entire tree.
|
|
3210
|
+
*/
|
|
3211
|
+
return !parent ? referencedElement : undefined;
|
|
3090
3212
|
} catch (error) {
|
|
3091
|
-
const rootCause = (0,
|
|
3213
|
+
const rootCause = (0,_utils_get_root_cause_js__WEBPACK_IMPORTED_MODULE_19__["default"])(error);
|
|
3092
3214
|
const wrappedError = new _errors_index_js__WEBPACK_IMPORTED_MODULE_1__.SchemaRefError(`Could not resolve reference: ${rootCause.message}`, {
|
|
3093
3215
|
baseDoc: this.reference.uri,
|
|
3094
|
-
$ref: (0,
|
|
3095
|
-
fullPath: this.basePath ?? [...(0,
|
|
3216
|
+
$ref: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(referencingElement.$ref),
|
|
3217
|
+
fullPath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_16__["default"])([...ancestors, parent, referencingElement]), '$ref']
|
|
3096
3218
|
}, rootCause);
|
|
3097
3219
|
this.options.dereference.dereferenceOpts?.errors?.push?.(wrappedError);
|
|
3098
3220
|
return undefined;
|
|
@@ -3108,13 +3230,13 @@ const OpenApi3_1SwaggerClientDereferenceVisitor = _swagger_api_apidom_reference_
|
|
|
3108
3230
|
},
|
|
3109
3231
|
async ExampleElement(exampleElement, key, parent, path, ancestors) {
|
|
3110
3232
|
try {
|
|
3111
|
-
return await
|
|
3233
|
+
return await _swagger_api_apidom_reference_dereference_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_4__["default"].compose.methods.ExampleElement.call(this, exampleElement, key, parent, path, ancestors);
|
|
3112
3234
|
} catch (error) {
|
|
3113
|
-
const rootCause = (0,
|
|
3235
|
+
const rootCause = (0,_utils_get_root_cause_js__WEBPACK_IMPORTED_MODULE_19__["default"])(error);
|
|
3114
3236
|
const wrappedError = wrapError(rootCause, {
|
|
3115
3237
|
baseDoc: this.reference.uri,
|
|
3116
|
-
externalValue: (0,
|
|
3117
|
-
fullPath: this.basePath ?? [...(0,
|
|
3238
|
+
externalValue: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(exampleElement.externalValue),
|
|
3239
|
+
fullPath: this.basePath ?? [...(0,_utils_to_path_js__WEBPACK_IMPORTED_MODULE_16__["default"])([...ancestors, parent, exampleElement]), 'externalValue']
|
|
3118
3240
|
});
|
|
3119
3241
|
this.options.dereference.dereferenceOpts?.errors?.push?.(wrappedError);
|
|
3120
3242
|
return undefined;
|
|
@@ -4090,23 +4212,26 @@ pojoAdapter.cache = new WeakMap();
|
|
|
4090
4212
|
"use strict";
|
|
4091
4213
|
__webpack_require__.r(__webpack_exports__);
|
|
4092
4214
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4215
|
+
/* harmony export */ circularReplacer: () => (/* binding */ circularReplacer),
|
|
4093
4216
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
4094
4217
|
/* harmony export */ });
|
|
4095
|
-
/* harmony import */ var
|
|
4096
|
-
/* harmony import */ var
|
|
4097
|
-
/* harmony import */ var
|
|
4098
|
-
/* harmony import */ var
|
|
4099
|
-
/* harmony import */ var
|
|
4100
|
-
/* harmony import */ var
|
|
4101
|
-
/* harmony import */ var
|
|
4102
|
-
/* harmony import */ var
|
|
4103
|
-
/* harmony import */ var
|
|
4104
|
-
/* harmony import */ var
|
|
4105
|
-
/* harmony import */ var
|
|
4106
|
-
/* harmony import */ var
|
|
4107
|
-
/* harmony import */ var
|
|
4108
|
-
/* harmony import */ var
|
|
4109
|
-
/* harmony import */ var
|
|
4218
|
+
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(9999);
|
|
4219
|
+
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(44824);
|
|
4220
|
+
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(87024);
|
|
4221
|
+
/* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(65342);
|
|
4222
|
+
/* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(60672);
|
|
4223
|
+
/* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(18316);
|
|
4224
|
+
/* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(60489);
|
|
4225
|
+
/* harmony import */ var _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(64884);
|
|
4226
|
+
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(3117);
|
|
4227
|
+
/* harmony import */ var _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(94145);
|
|
4228
|
+
/* harmony import */ var _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(83748);
|
|
4229
|
+
/* harmony import */ var _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(12349);
|
|
4230
|
+
/* harmony import */ var _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(31387);
|
|
4231
|
+
/* harmony import */ var _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(71614);
|
|
4232
|
+
/* harmony import */ var _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(48097);
|
|
4233
|
+
/* harmony import */ var _swagger_api_apidom_reference_parse_parsers_binary__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(16960);
|
|
4234
|
+
/* harmony import */ var _swagger_api_apidom_reference_resolve_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(47724);
|
|
4110
4235
|
/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3832);
|
|
4111
4236
|
/* harmony import */ var _utils_options_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(40428);
|
|
4112
4237
|
/* harmony import */ var _normalize_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(80947);
|
|
@@ -4132,6 +4257,18 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
4132
4257
|
|
|
4133
4258
|
|
|
4134
4259
|
|
|
4260
|
+
const circularReplacer = refElement => {
|
|
4261
|
+
const $refBaseURI = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__["default"])(refElement.meta.get('baseURI'));
|
|
4262
|
+
const referencingElement = refElement.meta.get('referencingElement');
|
|
4263
|
+
|
|
4264
|
+
/**
|
|
4265
|
+
* Removing semantics from the absolutified referencing element by
|
|
4266
|
+
* using generic ObjectElement to represent the reference.
|
|
4267
|
+
*/
|
|
4268
|
+
return new _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.ObjectElement({
|
|
4269
|
+
$ref: $refBaseURI
|
|
4270
|
+
}, (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__.cloneDeep)(referencingElement.meta), (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_11__.cloneDeep)(referencingElement.attributes));
|
|
4271
|
+
};
|
|
4135
4272
|
const resolveOpenAPI31Strategy = async options => {
|
|
4136
4273
|
const {
|
|
4137
4274
|
spec,
|
|
@@ -4153,32 +4290,32 @@ const resolveOpenAPI31Strategy = async options => {
|
|
|
4153
4290
|
} = resolveOpenAPI31Strategy;
|
|
4154
4291
|
|
|
4155
4292
|
// determining BaseURI
|
|
4156
|
-
const cwd =
|
|
4293
|
+
const cwd = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_12__.isHttpUrl(_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_12__.cwd()) ? _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_12__.cwd() : _constants_js__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_BASE_URL;
|
|
4157
4294
|
const retrievalURI = _utils_options_js__WEBPACK_IMPORTED_MODULE_1__.retrievalURI(options);
|
|
4158
|
-
const baseURI =
|
|
4295
|
+
const baseURI = _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_12__.resolve(cwd, retrievalURI);
|
|
4159
4296
|
|
|
4160
4297
|
// prepare spec for dereferencing
|
|
4161
4298
|
let openApiElement;
|
|
4162
4299
|
if (cache.has(spec)) {
|
|
4163
4300
|
openApiElement = cache.get(spec);
|
|
4164
4301
|
} else {
|
|
4165
|
-
openApiElement =
|
|
4302
|
+
openApiElement = _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_13__.OpenApi3_1Element.refract(spec);
|
|
4166
4303
|
openApiElement.classes.push('result');
|
|
4167
4304
|
cache.set(spec, openApiElement);
|
|
4168
4305
|
}
|
|
4169
|
-
const openApiParseResultElement = new
|
|
4306
|
+
const openApiParseResultElement = new _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_10__.ParseResultElement([openApiElement]);
|
|
4170
4307
|
|
|
4171
4308
|
// prepare fragment for dereferencing
|
|
4172
|
-
const jsonPointer = (0,
|
|
4309
|
+
const jsonPointer = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_14__["default"])(pathDiscriminator);
|
|
4173
4310
|
const jsonPointerURI = jsonPointer === '' ? '' : `#${jsonPointer}`;
|
|
4174
|
-
const fragmentElement = (0,
|
|
4311
|
+
const fragmentElement = (0,_swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_15__["default"])(jsonPointer, openApiElement);
|
|
4175
4312
|
|
|
4176
4313
|
// prepare reference set for dereferencing
|
|
4177
|
-
const openApiElementReference = (0,
|
|
4314
|
+
const openApiElementReference = (0,_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_16__["default"])({
|
|
4178
4315
|
uri: baseURI,
|
|
4179
4316
|
value: openApiParseResultElement
|
|
4180
4317
|
});
|
|
4181
|
-
const refSet = (0,
|
|
4318
|
+
const refSet = (0,_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_17__["default"])({
|
|
4182
4319
|
refs: [openApiElementReference]
|
|
4183
4320
|
});
|
|
4184
4321
|
if (jsonPointer !== '') refSet.rootRef = null; // reset root reference as we want fragment to become the root reference
|
|
@@ -4186,7 +4323,7 @@ const resolveOpenAPI31Strategy = async options => {
|
|
|
4186
4323
|
// prepare ancestors; needed for cases where fragment is not OpenAPI element
|
|
4187
4324
|
const ancestors = [new Set([fragmentElement])];
|
|
4188
4325
|
const errors = [];
|
|
4189
|
-
const dereferenced = await (0,
|
|
4326
|
+
const dereferenced = await (0,_swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_18__.dereferenceApiDOM)(fragmentElement, {
|
|
4190
4327
|
resolve: {
|
|
4191
4328
|
/**
|
|
4192
4329
|
* swagger-client only supports resolving HTTP(S) URLs or spec objects.
|
|
@@ -4205,10 +4342,10 @@ const resolveOpenAPI31Strategy = async options => {
|
|
|
4205
4342
|
responseInterceptor
|
|
4206
4343
|
}
|
|
4207
4344
|
},
|
|
4208
|
-
strategies: [(0,
|
|
4345
|
+
strategies: [(0,_swagger_api_apidom_reference_resolve_strategies_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__["default"])()]
|
|
4209
4346
|
},
|
|
4210
4347
|
parse: {
|
|
4211
|
-
mediaType:
|
|
4348
|
+
mediaType: _swagger_api_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__["default"].latest(),
|
|
4212
4349
|
parsers: [(0,_apidom_reference_parse_parsers_openapi_json_3_1_index_js__WEBPACK_IMPORTED_MODULE_6__["default"])({
|
|
4213
4350
|
allowEmpty: false,
|
|
4214
4351
|
sourceMap: false
|
|
@@ -4221,7 +4358,7 @@ const resolveOpenAPI31Strategy = async options => {
|
|
|
4221
4358
|
}), (0,_apidom_reference_parse_parsers_yaml_1_2_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])({
|
|
4222
4359
|
allowEmpty: false,
|
|
4223
4360
|
sourceMap: false
|
|
4224
|
-
}), (0,
|
|
4361
|
+
}), (0,_swagger_api_apidom_reference_parse_parsers_binary__WEBPACK_IMPORTED_MODULE_21__["default"])({
|
|
4225
4362
|
allowEmpty: false,
|
|
4226
4363
|
sourceMap: false
|
|
4227
4364
|
})]
|
|
@@ -4240,17 +4377,19 @@ const resolveOpenAPI31Strategy = async options => {
|
|
|
4240
4377
|
dereferenceOpts: {
|
|
4241
4378
|
errors
|
|
4242
4379
|
},
|
|
4243
|
-
immutable: false
|
|
4380
|
+
immutable: false,
|
|
4381
|
+
circular: useCircularStructures ? 'ignore' : 'replace',
|
|
4382
|
+
circularReplacer: useCircularStructures ? _swagger_api_apidom_reference_configuration_empty__WEBPACK_IMPORTED_MODULE_22__["default"].dereference.circularReplacer : circularReplacer
|
|
4244
4383
|
}
|
|
4245
4384
|
});
|
|
4246
|
-
const transcluded = (0,
|
|
4385
|
+
const transcluded = (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_23__.transclude)(fragmentElement, dereferenced, openApiElement);
|
|
4247
4386
|
const normalized = skipNormalization ? transcluded : (0,_normalize_js__WEBPACK_IMPORTED_MODULE_2__["default"])(transcluded);
|
|
4248
4387
|
return {
|
|
4249
|
-
spec: (0,
|
|
4388
|
+
spec: (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_9__["default"])(normalized),
|
|
4250
4389
|
errors
|
|
4251
4390
|
};
|
|
4252
4391
|
} catch (error) {
|
|
4253
|
-
if (error instanceof
|
|
4392
|
+
if (error instanceof _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_24__["default"] || error instanceof _swagger_api_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_25__["default"]) {
|
|
4254
4393
|
return {
|
|
4255
4394
|
spec: null,
|
|
4256
4395
|
errors: []
|
|
@@ -16781,7 +16920,7 @@ var defaults = {
|
|
|
16781
16920
|
charset: 'utf-8',
|
|
16782
16921
|
charsetSentinel: false,
|
|
16783
16922
|
comma: false,
|
|
16784
|
-
decodeDotInKeys:
|
|
16923
|
+
decodeDotInKeys: false,
|
|
16785
16924
|
decoder: utils.decode,
|
|
16786
16925
|
delimiter: '&',
|
|
16787
16926
|
depth: 5,
|
|
@@ -17544,6 +17683,10 @@ var decode = function (str, decoder, charset) {
|
|
|
17544
17683
|
}
|
|
17545
17684
|
};
|
|
17546
17685
|
|
|
17686
|
+
var limit = 1024;
|
|
17687
|
+
|
|
17688
|
+
/* eslint operator-linebreak: [2, "before"] */
|
|
17689
|
+
|
|
17547
17690
|
var encode = function encode(str, defaultEncoder, charset, kind, format) {
|
|
17548
17691
|
// This code was originally written by Brian White (mscdex) for the io.js core querystring library.
|
|
17549
17692
|
// It has been adapted here for stricter adherence to RFC 3986
|
|
@@ -17565,45 +17708,54 @@ var encode = function encode(str, defaultEncoder, charset, kind, format) {
|
|
|
17565
17708
|
}
|
|
17566
17709
|
|
|
17567
17710
|
var out = '';
|
|
17568
|
-
for (var
|
|
17569
|
-
var
|
|
17570
|
-
|
|
17571
|
-
|
|
17572
|
-
|
|
17573
|
-
|
|
17574
|
-
|
|
17575
|
-
|
|
17576
|
-
|
|
17577
|
-
|
|
17578
|
-
|
|
17579
|
-
|
|
17580
|
-
|
|
17581
|
-
|
|
17582
|
-
|
|
17583
|
-
|
|
17711
|
+
for (var j = 0; j < string.length; j += limit) {
|
|
17712
|
+
var segment = string.length >= limit ? string.slice(j, j + limit) : string;
|
|
17713
|
+
var arr = [];
|
|
17714
|
+
|
|
17715
|
+
for (var i = 0; i < segment.length; ++i) {
|
|
17716
|
+
var c = segment.charCodeAt(i);
|
|
17717
|
+
if (
|
|
17718
|
+
c === 0x2D // -
|
|
17719
|
+
|| c === 0x2E // .
|
|
17720
|
+
|| c === 0x5F // _
|
|
17721
|
+
|| c === 0x7E // ~
|
|
17722
|
+
|| (c >= 0x30 && c <= 0x39) // 0-9
|
|
17723
|
+
|| (c >= 0x41 && c <= 0x5A) // a-z
|
|
17724
|
+
|| (c >= 0x61 && c <= 0x7A) // A-Z
|
|
17725
|
+
|| (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )
|
|
17726
|
+
) {
|
|
17727
|
+
arr[arr.length] = segment.charAt(i);
|
|
17728
|
+
continue;
|
|
17729
|
+
}
|
|
17584
17730
|
|
|
17585
|
-
|
|
17586
|
-
|
|
17587
|
-
|
|
17588
|
-
|
|
17731
|
+
if (c < 0x80) {
|
|
17732
|
+
arr[arr.length] = hexTable[c];
|
|
17733
|
+
continue;
|
|
17734
|
+
}
|
|
17589
17735
|
|
|
17590
|
-
|
|
17591
|
-
|
|
17592
|
-
|
|
17593
|
-
|
|
17736
|
+
if (c < 0x800) {
|
|
17737
|
+
arr[arr.length] = hexTable[0xC0 | (c >> 6)]
|
|
17738
|
+
+ hexTable[0x80 | (c & 0x3F)];
|
|
17739
|
+
continue;
|
|
17740
|
+
}
|
|
17594
17741
|
|
|
17595
|
-
|
|
17596
|
-
|
|
17597
|
-
|
|
17742
|
+
if (c < 0xD800 || c >= 0xE000) {
|
|
17743
|
+
arr[arr.length] = hexTable[0xE0 | (c >> 12)]
|
|
17744
|
+
+ hexTable[0x80 | ((c >> 6) & 0x3F)]
|
|
17745
|
+
+ hexTable[0x80 | (c & 0x3F)];
|
|
17746
|
+
continue;
|
|
17747
|
+
}
|
|
17748
|
+
|
|
17749
|
+
i += 1;
|
|
17750
|
+
c = 0x10000 + (((c & 0x3FF) << 10) | (segment.charCodeAt(i) & 0x3FF));
|
|
17751
|
+
|
|
17752
|
+
arr[arr.length] = hexTable[0xF0 | (c >> 18)]
|
|
17753
|
+
+ hexTable[0x80 | ((c >> 12) & 0x3F)]
|
|
17754
|
+
+ hexTable[0x80 | ((c >> 6) & 0x3F)]
|
|
17755
|
+
+ hexTable[0x80 | (c & 0x3F)];
|
|
17598
17756
|
}
|
|
17599
17757
|
|
|
17600
|
-
|
|
17601
|
-
c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));
|
|
17602
|
-
/* eslint operator-linebreak: [2, "before"] */
|
|
17603
|
-
out += hexTable[0xF0 | (c >> 18)]
|
|
17604
|
-
+ hexTable[0x80 | ((c >> 12) & 0x3F)]
|
|
17605
|
-
+ hexTable[0x80 | ((c >> 6) & 0x3F)]
|
|
17606
|
-
+ hexTable[0x80 | (c & 0x3F)];
|
|
17758
|
+
out += arr.join('');
|
|
17607
17759
|
}
|
|
17608
17760
|
|
|
17609
17761
|
return out;
|