@speclynx/apidom-reference 4.13.0 → 4.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +99 -3
- package/dist/apidom-reference.browser.js +2076 -216
- package/dist/apidom-reference.browser.min.js +1 -1
- package/package.json +33 -28
- package/src/bundle/strategies/arazzo-1/index.cjs +94 -0
- package/src/bundle/strategies/arazzo-1/index.mjs +81 -0
- package/src/bundle/strategies/arazzo-1/visitor.cjs +417 -0
- package/src/bundle/strategies/arazzo-1/visitor.mjs +409 -0
- package/src/bundle/strategies/openapi-2/visitor.cjs +8 -16
- package/src/bundle/strategies/openapi-2/visitor.mjs +8 -16
- package/src/bundle/strategies/openapi-3-0/visitor.cjs +10 -18
- package/src/bundle/strategies/openapi-3-0/visitor.mjs +10 -18
- package/src/bundle/strategies/openapi-3-1/index.cjs +59 -2
- package/src/bundle/strategies/openapi-3-1/index.mjs +54 -2
- package/src/bundle/strategies/openapi-3-1/visitor.cjs +811 -0
- package/src/bundle/strategies/openapi-3-1/visitor.mjs +803 -0
- package/src/configuration/saturated.cjs +10 -9
- package/src/configuration/saturated.mjs +2 -1
- package/src/util/url.cjs +26 -4
- package/src/util/url.mjs +23 -2
- package/types/apidom-reference.d.ts +10 -0
- package/types/bundle/strategies/arazzo-1/index.d.ts +31 -0
- package/types/bundle/strategies/arazzo-1/visitor.d.ts +90 -0
- package/types/bundle/strategies/openapi-2/visitor.d.ts +2 -2
- package/types/bundle/strategies/openapi-3-0/visitor.d.ts +2 -2
- package/types/bundle/strategies/openapi-3-1/index.d.ts +6 -1
- package/types/bundle/strategies/openapi-3-1/visitor.d.ts +141 -0
- package/types/util/url.d.ts +8 -0
|
@@ -288,6 +288,555 @@ class BundleStrategy {
|
|
|
288
288
|
|
|
289
289
|
/***/ },
|
|
290
290
|
|
|
291
|
+
/***/ 17435
|
|
292
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
293
|
+
|
|
294
|
+
"use strict";
|
|
295
|
+
__webpack_require__.r(__webpack_exports__);
|
|
296
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
297
|
+
/* harmony export */ Arazzo1BundleVisitor: () => (/* reexport safe */ _visitor_ts__WEBPACK_IMPORTED_MODULE_7__["default"]),
|
|
298
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
299
|
+
/* harmony export */ });
|
|
300
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12111);
|
|
301
|
+
/* harmony import */ var _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(80796);
|
|
302
|
+
/* harmony import */ var _speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(53787);
|
|
303
|
+
/* harmony import */ var _speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(28839);
|
|
304
|
+
/* harmony import */ var _Reference_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(98979);
|
|
305
|
+
/* harmony import */ var _ReferenceSet_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(24131);
|
|
306
|
+
/* harmony import */ var _BundleStrategy_ts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(75508);
|
|
307
|
+
/* harmony import */ var _visitor_ts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(35533);
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* @public
|
|
318
|
+
*/
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* @public
|
|
322
|
+
*/
|
|
323
|
+
class Arazzo1BundleStrategy extends _BundleStrategy_ts__WEBPACK_IMPORTED_MODULE_6__["default"] {
|
|
324
|
+
constructor(options) {
|
|
325
|
+
super({
|
|
326
|
+
...(options ?? {}),
|
|
327
|
+
name: 'arazzo-1'
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
canBundle(file) {
|
|
331
|
+
// assert by media type
|
|
332
|
+
if (file.mediaType !== 'text/plain') {
|
|
333
|
+
return _speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_2__["default"].includes(file.mediaType);
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
// assert by inspecting ApiDOM
|
|
337
|
+
return (0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_3__.isArazzoSpecification1Element)(file.parseResult?.result);
|
|
338
|
+
}
|
|
339
|
+
async bundle(file, options) {
|
|
340
|
+
const immutableRefSet = options.bundle.refSet ?? new _ReferenceSet_ts__WEBPACK_IMPORTED_MODULE_5__["default"]();
|
|
341
|
+
const mutableRefSet = new _ReferenceSet_ts__WEBPACK_IMPORTED_MODULE_5__["default"]();
|
|
342
|
+
let refSet = immutableRefSet;
|
|
343
|
+
let reference;
|
|
344
|
+
|
|
345
|
+
// determine the initial reference
|
|
346
|
+
if (!immutableRefSet.has(file.uri)) {
|
|
347
|
+
reference = new _Reference_ts__WEBPACK_IMPORTED_MODULE_4__["default"]({
|
|
348
|
+
uri: file.uri,
|
|
349
|
+
value: file.parseResult
|
|
350
|
+
});
|
|
351
|
+
immutableRefSet.add(reference);
|
|
352
|
+
} else {
|
|
353
|
+
// pre-computed refSet was provided as configuration option
|
|
354
|
+
reference = immutableRefSet.find(ref => ref.uri === file.uri);
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* Clone refSet due the bundling process being mutable.
|
|
359
|
+
* We don't want to mutate the original refSet and the references.
|
|
360
|
+
*/
|
|
361
|
+
if (options.bundle.immutable) {
|
|
362
|
+
immutableRefSet.refs.map(ref => new _Reference_ts__WEBPACK_IMPORTED_MODULE_4__["default"]({
|
|
363
|
+
...ref,
|
|
364
|
+
value: (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(ref.value)
|
|
365
|
+
})).forEach(ref => mutableRefSet.add(ref));
|
|
366
|
+
reference = mutableRefSet.find(ref => ref.uri === file.uri);
|
|
367
|
+
refSet = mutableRefSet;
|
|
368
|
+
}
|
|
369
|
+
const visitor = new _visitor_ts__WEBPACK_IMPORTED_MODULE_7__["default"]({
|
|
370
|
+
reference: reference,
|
|
371
|
+
options
|
|
372
|
+
});
|
|
373
|
+
await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_1__.traverseAsync)(refSet.rootRef.value, visitor, {
|
|
374
|
+
mutable: true
|
|
375
|
+
});
|
|
376
|
+
const parseResult = reference.value;
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* Release all memory if this refSet was not provided as a configuration option.
|
|
380
|
+
* If provided as configuration option, then provider is responsible for cleanup.
|
|
381
|
+
*/
|
|
382
|
+
if (options.bundle.refSet === null) {
|
|
383
|
+
immutableRefSet.clean();
|
|
384
|
+
}
|
|
385
|
+
mutableRefSet.clean();
|
|
386
|
+
return parseResult;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Arazzo1BundleStrategy);
|
|
391
|
+
|
|
392
|
+
/***/ },
|
|
393
|
+
|
|
394
|
+
/***/ 35533
|
|
395
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
396
|
+
|
|
397
|
+
"use strict";
|
|
398
|
+
__webpack_require__.r(__webpack_exports__);
|
|
399
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
400
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
401
|
+
/* harmony export */ });
|
|
402
|
+
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(87009);
|
|
403
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25162);
|
|
404
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12111);
|
|
405
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84660);
|
|
406
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(37205);
|
|
407
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(44673);
|
|
408
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(16280);
|
|
409
|
+
/* harmony import */ var _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(80796);
|
|
410
|
+
/* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(12020);
|
|
411
|
+
/* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(61198);
|
|
412
|
+
/* harmony import */ var _speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(90016);
|
|
413
|
+
/* harmony import */ var _speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(41016);
|
|
414
|
+
/* harmony import */ var _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(81002);
|
|
415
|
+
/* harmony import */ var _errors_UnresolvableReferenceError_ts__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(8853);
|
|
416
|
+
/* harmony import */ var _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(16843);
|
|
417
|
+
/* harmony import */ var _errors_MaximumResolveDepthError_ts__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(51325);
|
|
418
|
+
/* harmony import */ var _errors_EvaluationJsonSchemaUriError_ts__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(44477);
|
|
419
|
+
/* harmony import */ var _util_url_ts__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(30658);
|
|
420
|
+
/* harmony import */ var _parse_index_ts__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(35014);
|
|
421
|
+
/* harmony import */ var _Reference_ts__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(98979);
|
|
422
|
+
/* harmony import */ var _File_ts__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(10682);
|
|
423
|
+
/* harmony import */ var _dereference_strategies_arazzo_1_selectors_$anchor_ts__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(32054);
|
|
424
|
+
/* harmony import */ var _dereference_strategies_arazzo_1_selectors_uri_ts__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(56481);
|
|
425
|
+
/* harmony import */ var _dereference_strategies_arazzo_1_util_ts__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(91005);
|
|
426
|
+
/* harmony import */ var _dereference_strategies_arazzo_1_util_ts__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(60888);
|
|
427
|
+
/* harmony import */ var _util_ts__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(25939);
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
|
|
446
|
+
|
|
447
|
+
/**
|
|
448
|
+
* The Components Object field where embedded JSON Schema resources are hoisted.
|
|
449
|
+
* Sourced from the Components Object fixed fields so it cannot drift from the
|
|
450
|
+
* namespace definition.
|
|
451
|
+
*/
|
|
452
|
+
const cf = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_4__.fixedFields)(_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_10__.ComponentsElement, {
|
|
453
|
+
indexed: true
|
|
454
|
+
});
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* @public
|
|
458
|
+
*/
|
|
459
|
+
|
|
460
|
+
/**
|
|
461
|
+
* @public
|
|
462
|
+
*/
|
|
463
|
+
class Arazzo1BundleVisitor {
|
|
464
|
+
reference;
|
|
465
|
+
options;
|
|
466
|
+
|
|
467
|
+
/**
|
|
468
|
+
* The entry parse result. Derived from the shared refSet's root reference.
|
|
469
|
+
*/
|
|
470
|
+
get entryParseResult() {
|
|
471
|
+
return this.reference.refSet.rootRef.value;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
/**
|
|
475
|
+
* The entry document element. Embedded external schema resources are placed
|
|
476
|
+
* into its `components.inputs` object. The `canBundle` guard guarantees it is
|
|
477
|
+
* an ArazzoSpecification1Element.
|
|
478
|
+
*/
|
|
479
|
+
get entryResult() {
|
|
480
|
+
return this.entryParseResult.result;
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
/**
|
|
484
|
+
* Shared across the entry document and every external document visitor.
|
|
485
|
+
* Guarantees each external resource is embedded exactly once, keyed by its
|
|
486
|
+
* resource URI.
|
|
487
|
+
*/
|
|
488
|
+
assignments;
|
|
489
|
+
|
|
490
|
+
/**
|
|
491
|
+
* Component names already reserved per Components Object field. Reserved
|
|
492
|
+
* before recursion so collision suffixing (`Pet`, `Pet-2`, ...) accounts for
|
|
493
|
+
* components that are still being bundled.
|
|
494
|
+
*/
|
|
495
|
+
reservedNames;
|
|
496
|
+
constructor({
|
|
497
|
+
reference,
|
|
498
|
+
options,
|
|
499
|
+
assignments = new Map(),
|
|
500
|
+
reservedNames = new Map()
|
|
501
|
+
}) {
|
|
502
|
+
this.reference = reference;
|
|
503
|
+
this.options = options;
|
|
504
|
+
this.assignments = assignments;
|
|
505
|
+
this.reservedNames = reservedNames;
|
|
506
|
+
}
|
|
507
|
+
toBaseURI(uri) {
|
|
508
|
+
return _util_url_ts__WEBPACK_IMPORTED_MODULE_17__.resolve(this.reference.uri, _util_url_ts__WEBPACK_IMPORTED_MODULE_17__.sanitize(_util_url_ts__WEBPACK_IMPORTED_MODULE_17__.stripHash(uri)));
|
|
509
|
+
}
|
|
510
|
+
async toReference(uri) {
|
|
511
|
+
// detect maximum depth of resolution
|
|
512
|
+
if (this.reference.depth >= this.options.resolve.maxDepth) {
|
|
513
|
+
throw new _errors_MaximumResolveDepthError_ts__WEBPACK_IMPORTED_MODULE_15__["default"](`Maximum resolution depth of ${this.options.resolve.maxDepth} has been exceeded by file "${this.reference.uri}"`, {
|
|
514
|
+
maxDepth: this.options.resolve.maxDepth,
|
|
515
|
+
uri: this.reference.uri
|
|
516
|
+
});
|
|
517
|
+
}
|
|
518
|
+
const baseURI = this.toBaseURI(uri);
|
|
519
|
+
const {
|
|
520
|
+
refSet
|
|
521
|
+
} = this.reference;
|
|
522
|
+
|
|
523
|
+
// we've already processed this Reference in past
|
|
524
|
+
if (refSet.has(baseURI)) {
|
|
525
|
+
return refSet.find(ref => ref.uri === baseURI);
|
|
526
|
+
}
|
|
527
|
+
const parseResult = await (0,_parse_index_ts__WEBPACK_IMPORTED_MODULE_18__["default"])(_util_url_ts__WEBPACK_IMPORTED_MODULE_17__.unsanitize(baseURI), {
|
|
528
|
+
...this.options,
|
|
529
|
+
parse: {
|
|
530
|
+
...this.options.parse,
|
|
531
|
+
mediaType: 'text/plain'
|
|
532
|
+
}
|
|
533
|
+
});
|
|
534
|
+
const reference = new _Reference_ts__WEBPACK_IMPORTED_MODULE_19__["default"]({
|
|
535
|
+
uri: baseURI,
|
|
536
|
+
value: parseResult,
|
|
537
|
+
depth: this.reference.depth + 1
|
|
538
|
+
});
|
|
539
|
+
refSet.add(reference);
|
|
540
|
+
return reference;
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
/**
|
|
544
|
+
* Handles an error according to the `bundle.continueOnError` option.
|
|
545
|
+
*
|
|
546
|
+
* For new errors: wraps in UnresolvableReferenceError with structured
|
|
547
|
+
* context. For errors already wrapped by a nested visitor: prepends the
|
|
548
|
+
* current hop to the trace.
|
|
549
|
+
*
|
|
550
|
+
* Inner/intermediate visitors always throw to let the trace accumulate. Only
|
|
551
|
+
* the entry document visitor respects continueOnError (callback/swallow/throw).
|
|
552
|
+
*/
|
|
553
|
+
handleError(message, error, referencingElement, refFieldName, refFieldValue, visitorPath) {
|
|
554
|
+
// a collision reported as `error` is a deliberate hard stop with no
|
|
555
|
+
// resolution-failure analog, so pass it through unchanged. A maxDepth
|
|
556
|
+
// breach (MaximumBundleDepthError, which also extends BundleError) is a
|
|
557
|
+
// resolution failure and flows through below — wrapped and subject to
|
|
558
|
+
// continueOnError, like dereferencing.
|
|
559
|
+
if (error instanceof _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_12__["default"] && !(error instanceof _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_14__["default"])) {
|
|
560
|
+
throw error;
|
|
561
|
+
}
|
|
562
|
+
const {
|
|
563
|
+
continueOnError
|
|
564
|
+
} = this.options.bundle;
|
|
565
|
+
const isEntryDocument = _util_url_ts__WEBPACK_IMPORTED_MODULE_17__.stripHash(this.reference.refSet?.rootRef?.uri ?? '') === this.reference.uri;
|
|
566
|
+
const uri = this.reference.uri;
|
|
567
|
+
const type = referencingElement.element;
|
|
568
|
+
const codeFrame = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(referencingElement);
|
|
569
|
+
const location = visitorPath.formatPath();
|
|
570
|
+
const hop = {
|
|
571
|
+
uri,
|
|
572
|
+
type,
|
|
573
|
+
refFieldName,
|
|
574
|
+
refFieldValue,
|
|
575
|
+
location,
|
|
576
|
+
codeFrame
|
|
577
|
+
};
|
|
578
|
+
let unresolvedError;
|
|
579
|
+
if (error instanceof _errors_UnresolvableReferenceError_ts__WEBPACK_IMPORTED_MODULE_13__["default"]) {
|
|
580
|
+
// @ts-ignore
|
|
581
|
+
error.trace = [hop, ...error.trace];
|
|
582
|
+
unresolvedError = error;
|
|
583
|
+
} else {
|
|
584
|
+
unresolvedError = new _errors_UnresolvableReferenceError_ts__WEBPACK_IMPORTED_MODULE_13__["default"](message, {
|
|
585
|
+
cause: error,
|
|
586
|
+
type,
|
|
587
|
+
uri,
|
|
588
|
+
location,
|
|
589
|
+
codeFrame,
|
|
590
|
+
refFieldName,
|
|
591
|
+
refFieldValue,
|
|
592
|
+
trace: []
|
|
593
|
+
});
|
|
594
|
+
}
|
|
595
|
+
if (!isEntryDocument || continueOnError === false) throw unresolvedError;
|
|
596
|
+
if (typeof continueOnError === 'function') continueOnError(unresolvedError);
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
/**
|
|
600
|
+
* Lazily creates the Components Object (and the `inputs` field within it) on
|
|
601
|
+
* the entry document, returning the field where a resource is embedded.
|
|
602
|
+
*/
|
|
603
|
+
ensureInputsField() {
|
|
604
|
+
const entryResult = this.entryResult;
|
|
605
|
+
let components = entryResult.components;
|
|
606
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isObjectElement)(components)) {
|
|
607
|
+
components = new _speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_10__.ComponentsElement();
|
|
608
|
+
entryResult.components = components;
|
|
609
|
+
}
|
|
610
|
+
let inputs = components.get(cf.inputs.name);
|
|
611
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isObjectElement)(inputs)) {
|
|
612
|
+
inputs = new _speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_11__["default"]();
|
|
613
|
+
components.set(cf.inputs.name, inputs);
|
|
614
|
+
}
|
|
615
|
+
return inputs;
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
/**
|
|
619
|
+
* Computes the base component name (before collision suffixing) according to
|
|
620
|
+
* the configured naming strategy.
|
|
621
|
+
*/
|
|
622
|
+
baseName(element, baseURI) {
|
|
623
|
+
// strategy specific options take precedence over the top-level bundle options
|
|
624
|
+
const componentNamesStrategy = this.options.bundle.strategyOpts['arazzo-1']?.componentNamesStrategy ?? this.options.bundle.componentNamesStrategy;
|
|
625
|
+
const fallback = _util_url_ts__WEBPACK_IMPORTED_MODULE_17__.getBasename(baseURI) || 'Schema';
|
|
626
|
+
if (typeof componentNamesStrategy === 'function') {
|
|
627
|
+
const resolved = componentNamesStrategy({
|
|
628
|
+
element,
|
|
629
|
+
field: cf.inputs.name,
|
|
630
|
+
jsonPointer: '',
|
|
631
|
+
baseURI
|
|
632
|
+
});
|
|
633
|
+
if (typeof resolved === 'string' && resolved !== '') {
|
|
634
|
+
return resolved;
|
|
635
|
+
}
|
|
636
|
+
return fallback;
|
|
637
|
+
}
|
|
638
|
+
if (componentNamesStrategy === 'title') {
|
|
639
|
+
const title = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isObjectElement)(element) ? (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(element.get('title')) : undefined;
|
|
640
|
+
if (typeof title === 'string' && title.trim() !== '') {
|
|
641
|
+
const name = (0,_util_ts__WEBPACK_IMPORTED_MODULE_25__.sanitizeComponentName)((0,_util_ts__WEBPACK_IMPORTED_MODULE_25__.toPascalCase)(title));
|
|
642
|
+
if (name !== '') return name;
|
|
643
|
+
}
|
|
644
|
+
// fall back to basename when no usable title is present
|
|
645
|
+
}
|
|
646
|
+
return fallback;
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
/**
|
|
650
|
+
* Computes a collision-free component name within `components.inputs`. A name
|
|
651
|
+
* is taken if it's already placed in inputs or reserved by a component that is
|
|
652
|
+
* still being bundled (reserved before recursion).
|
|
653
|
+
*/
|
|
654
|
+
uniqueName(candidate) {
|
|
655
|
+
const field = cf.inputs.name;
|
|
656
|
+
const inputs = this.ensureInputsField();
|
|
657
|
+
const reserved = this.reservedNames.get(field) ?? new Set();
|
|
658
|
+
return (0,_util_ts__WEBPACK_IMPORTED_MODULE_25__.uniqueName)(candidate, name => inputs.hasKey(name) || reserved.has(name));
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
/**
|
|
662
|
+
* Reports a collision-forced rename according to the configured severity.
|
|
663
|
+
* A rename means two distinct targets resolved to the same name; each keeps
|
|
664
|
+
* its own component (and origin), so report the rename per severity.
|
|
665
|
+
*/
|
|
666
|
+
reportNameCollision(preferredName, componentName) {
|
|
667
|
+
// strategy specific options take precedence over the top-level bundle options
|
|
668
|
+
const onComponentNameCollision = this.options.bundle.strategyOpts['arazzo-1']?.onComponentNameCollision ?? this.options.bundle.onComponentNameCollision;
|
|
669
|
+
if (componentName === preferredName || onComponentNameCollision === 'off') {
|
|
670
|
+
return;
|
|
671
|
+
}
|
|
672
|
+
const message = `Component "${preferredName}" in components/${cf.inputs.name} is referenced with the same name but different content. Renamed to "${componentName}".`;
|
|
673
|
+
if (onComponentNameCollision === 'error') {
|
|
674
|
+
throw new _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_12__["default"](message);
|
|
675
|
+
}
|
|
676
|
+
const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"](message);
|
|
677
|
+
annotation.classes.push('warning');
|
|
678
|
+
annotation.code = 'bundle-component-name-collision';
|
|
679
|
+
// append (never prepend) so the result element stays ahead of annotations
|
|
680
|
+
this.entryParseResult.content.push(annotation);
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
/**
|
|
684
|
+
* JSON Schema Objects in Arazzo (used by Input Objects and inline schemas) are
|
|
685
|
+
* a JSON Schema 2020-12 dialect — the only external reference type Arazzo
|
|
686
|
+
* defines. They are bundled per the JSON Schema Compound Document rules: the
|
|
687
|
+
* external schema RESOURCE is embedded verbatim into `components.inputs`
|
|
688
|
+
* (carrying its `$id`), and the referencing `$ref` is left UNCHANGED — it
|
|
689
|
+
* keeps resolving against the embedded resource's `$id`. This mirrors the
|
|
690
|
+
* openapi-3-1 strategy's Schema Object handling.
|
|
691
|
+
*/
|
|
692
|
+
async JSONSchemaElement(path) {
|
|
693
|
+
const referencingElement = path.node;
|
|
694
|
+
|
|
695
|
+
// skip current referencing schema as $ref keyword was not defined
|
|
696
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(referencingElement.$ref)) {
|
|
697
|
+
return;
|
|
698
|
+
}
|
|
699
|
+
const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(referencingElement.$ref);
|
|
700
|
+
try {
|
|
701
|
+
// compute baseURI using rules around $id and $ref keywords. The current
|
|
702
|
+
// document's URI is the retrieval URI — derive it directly (not via
|
|
703
|
+
// toReference) so an internal $ref needs no resolution and never trips the
|
|
704
|
+
// resolve.maxDepth guard.
|
|
705
|
+
const retrievalURI = this.reference.uri;
|
|
706
|
+
const $refBaseURI = (0,_dereference_strategies_arazzo_1_util_ts__WEBPACK_IMPORTED_MODULE_24__.resolveSchema$refField)(retrievalURI, referencingElement);
|
|
707
|
+
const $refBaseURIStrippedHash = _util_url_ts__WEBPACK_IMPORTED_MODULE_17__.stripHash($refBaseURI);
|
|
708
|
+
const file = new _File_ts__WEBPACK_IMPORTED_MODULE_20__["default"]({
|
|
709
|
+
uri: $refBaseURIStrippedHash
|
|
710
|
+
});
|
|
711
|
+
const isUnknownURI = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(r => r.canRead(file), this.options.resolve.resolvers);
|
|
712
|
+
const isURL = !isUnknownURI;
|
|
713
|
+
const isInternalReference = _util_url_ts__WEBPACK_IMPORTED_MODULE_17__.stripHash(this.reference.uri) === $refBaseURIStrippedHash;
|
|
714
|
+
const isExternalReference = !isInternalReference;
|
|
715
|
+
|
|
716
|
+
// internal Schema Object $refs resolve against the in-document $id graph;
|
|
717
|
+
// leaving them untouched keeps that resolution valid. A JSON Schema $ref is
|
|
718
|
+
// never normalized to a bare fragment.
|
|
719
|
+
if (isInternalReference) {
|
|
720
|
+
return;
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
// honor the resolve.external switch
|
|
724
|
+
if (!this.options.resolve.external && isExternalReference) {
|
|
725
|
+
return;
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
// detect maximum depth of bundling before fetching the external resource
|
|
729
|
+
if (this.reference.depth >= this.options.bundle.maxDepth) {
|
|
730
|
+
throw new _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_14__["default"](`Maximum bundle depth of "${this.options.bundle.maxDepth}" has been exceeded in file "${this.reference.uri}"`, {
|
|
731
|
+
maxDepth: this.options.bundle.maxDepth,
|
|
732
|
+
uri: this.reference.uri
|
|
733
|
+
});
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
// locate the external schema resource the $ref targets, reusing the
|
|
737
|
+
// dereference strategy's classification. First try to resolve the target
|
|
738
|
+
// as a canonical URI / URL against the current document's $id graph; if
|
|
739
|
+
// that fails, fall back to fetching the external document and resolving
|
|
740
|
+
// the fragment there as a $anchor or JSON Pointer.
|
|
741
|
+
let schemaReference = this.reference;
|
|
742
|
+
try {
|
|
743
|
+
const referenceAsSchema = (0,_dereference_strategies_arazzo_1_util_ts__WEBPACK_IMPORTED_MODULE_23__.maybeRefractToJSONSchemaElement)(schemaReference.value.result);
|
|
744
|
+
(0,_dereference_strategies_arazzo_1_selectors_uri_ts__WEBPACK_IMPORTED_MODULE_22__.evaluate)($refBaseURI, referenceAsSchema);
|
|
745
|
+
} catch (error) {
|
|
746
|
+
if (isURL && error instanceof _errors_EvaluationJsonSchemaUriError_ts__WEBPACK_IMPORTED_MODULE_16__["default"]) {
|
|
747
|
+
if ((0,_dereference_strategies_arazzo_1_selectors_$anchor_ts__WEBPACK_IMPORTED_MODULE_21__.isAnchor)((0,_dereference_strategies_arazzo_1_selectors_$anchor_ts__WEBPACK_IMPORTED_MODULE_21__.uriToAnchor)($refBaseURI))) {
|
|
748
|
+
schemaReference = await this.toReference(_util_url_ts__WEBPACK_IMPORTED_MODULE_17__.unsanitize($refBaseURI));
|
|
749
|
+
const selector = (0,_dereference_strategies_arazzo_1_selectors_$anchor_ts__WEBPACK_IMPORTED_MODULE_21__.uriToAnchor)($refBaseURI);
|
|
750
|
+
const referenceAsSchema = (0,_dereference_strategies_arazzo_1_util_ts__WEBPACK_IMPORTED_MODULE_23__.maybeRefractToJSONSchemaElement)(schemaReference.value.result);
|
|
751
|
+
(0,_dereference_strategies_arazzo_1_selectors_$anchor_ts__WEBPACK_IMPORTED_MODULE_21__.evaluate)(selector, referenceAsSchema);
|
|
752
|
+
} else {
|
|
753
|
+
schemaReference = await this.toReference(_util_url_ts__WEBPACK_IMPORTED_MODULE_17__.unsanitize($refBaseURI));
|
|
754
|
+
const selector = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__.URIFragmentIdentifier.fromURIReference($refBaseURI);
|
|
755
|
+
const referenceAsSchema = (0,_dereference_strategies_arazzo_1_util_ts__WEBPACK_IMPORTED_MODULE_23__.maybeRefractToJSONSchemaElement)(schemaReference.value.result);
|
|
756
|
+
(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_8__.evaluate)(referenceAsSchema, selector);
|
|
757
|
+
}
|
|
758
|
+
} else {
|
|
759
|
+
throw error;
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
// a $ref that resolves (by $id/$anchor/pointer) within the current document
|
|
764
|
+
// is internal even when its URI form (e.g. a URN or absolute $id) is not a
|
|
765
|
+
// bare fragment. Leave it untouched — it resolves against the in-document
|
|
766
|
+
// $id graph, and embedding the current document into itself would be wrong.
|
|
767
|
+
if (_util_url_ts__WEBPACK_IMPORTED_MODULE_17__.stripHash(schemaReference.uri) === _util_url_ts__WEBPACK_IMPORTED_MODULE_17__.stripHash(this.reference.uri)) {
|
|
768
|
+
return;
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
// the resource to embed is the WHOLE external document (its root schema),
|
|
772
|
+
// identified by its $id. A $ref into a fragment of the document embeds the
|
|
773
|
+
// entire document resource once; the fragment keeps resolving against the
|
|
774
|
+
// embedded $id.
|
|
775
|
+
const resourceRoot = (0,_dereference_strategies_arazzo_1_util_ts__WEBPACK_IMPORTED_MODULE_23__.maybeRefractToJSONSchemaElement)(schemaReference.value.result);
|
|
776
|
+
const resourceBaseURI = (0,_dereference_strategies_arazzo_1_util_ts__WEBPACK_IMPORTED_MODULE_24__.resolveSchema$idField)(_util_url_ts__WEBPACK_IMPORTED_MODULE_17__.stripHash(schemaReference.uri), resourceRoot) ?? _util_url_ts__WEBPACK_IMPORTED_MODULE_17__.stripHash(schemaReference.uri);
|
|
777
|
+
const field = cf.inputs.name;
|
|
778
|
+
const canonicalKey = `${field}\t${resourceBaseURI}`;
|
|
779
|
+
|
|
780
|
+
// resource already embedded (or being embedded) — leave the referencing
|
|
781
|
+
// $ref untouched and stop. This also terminates circular external schema
|
|
782
|
+
// references, since the assignment is reserved BEFORE recursion.
|
|
783
|
+
if (this.assignments.has(canonicalKey)) {
|
|
784
|
+
path.skip();
|
|
785
|
+
return;
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
// own a copy of the resource and ensure it carries a $id so the unchanged
|
|
789
|
+
// $ref still resolves against it once embedded
|
|
790
|
+
const embeddedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneDeep)(resourceRoot);
|
|
791
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(embeddedElement.$id)) {
|
|
792
|
+
embeddedElement.set('$id', resourceBaseURI);
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
// the embedded thing is the WHOLE resource (keyed by its $id), so its name
|
|
796
|
+
// is derived from the resource URI
|
|
797
|
+
const preferredName = this.baseName(embeddedElement, resourceBaseURI);
|
|
798
|
+
const componentName = this.uniqueName(preferredName);
|
|
799
|
+
this.reportNameCollision(preferredName, componentName);
|
|
800
|
+
|
|
801
|
+
// reserve the assignment and component name before recursing so circular
|
|
802
|
+
// external schema references terminate
|
|
803
|
+
this.assignments.set(canonicalKey, `#/components/${field}/${(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__.escape)(componentName)}`);
|
|
804
|
+
if (!this.reservedNames.has(field)) this.reservedNames.set(field, new Set());
|
|
805
|
+
this.reservedNames.get(field).add(componentName);
|
|
806
|
+
|
|
807
|
+
// bundle external references contained within the embedded resource;
|
|
808
|
+
// nested external resources land flat in the same components.inputs
|
|
809
|
+
const visitor = new Arazzo1BundleVisitor({
|
|
810
|
+
reference: schemaReference,
|
|
811
|
+
options: this.options,
|
|
812
|
+
assignments: this.assignments,
|
|
813
|
+
reservedNames: this.reservedNames
|
|
814
|
+
});
|
|
815
|
+
const bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_7__.traverseAsync)(embeddedElement, visitor, {
|
|
816
|
+
mutable: true
|
|
817
|
+
});
|
|
818
|
+
|
|
819
|
+
// annotate the embedded resource with info about its origin
|
|
820
|
+
if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isElement)(bundledElement)) {
|
|
821
|
+
bundledElement.meta.set('ref-origin', schemaReference.uri);
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
// place the embedded resource into the entry document's components.inputs
|
|
825
|
+
this.ensureInputsField().set(componentName, bundledElement);
|
|
826
|
+
|
|
827
|
+
// the referencing $ref is left UNCHANGED — it resolves against the
|
|
828
|
+
// embedded resource's $id
|
|
829
|
+
path.skip();
|
|
830
|
+
} catch (error) {
|
|
831
|
+
this.handleError(`Error while bundling JSON Schema Object. Cannot resolve $ref "${$ref}": ${error.message}`, error, referencingElement, '$ref', $ref, path);
|
|
832
|
+
path.skip();
|
|
833
|
+
}
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Arazzo1BundleVisitor);
|
|
837
|
+
|
|
838
|
+
/***/ },
|
|
839
|
+
|
|
291
840
|
/***/ 11157
|
|
292
841
|
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
293
842
|
|
|
@@ -596,11 +1145,11 @@ class OpenAPI2BundleVisitor {
|
|
|
596
1145
|
}
|
|
597
1146
|
|
|
598
1147
|
/**
|
|
599
|
-
* Normalizes a self-
|
|
1148
|
+
* Normalizes a self-reference (e.g. `./root.json#/definitions/Pet`)
|
|
600
1149
|
* to a bare fragment (`#/definitions/Pet`) so the bundled document stays
|
|
601
1150
|
* transferable. Bare fragments are returned unchanged.
|
|
602
1151
|
*/
|
|
603
|
-
|
|
1152
|
+
normalizeSelfReference(ref) {
|
|
604
1153
|
return ref.startsWith('#') ? ref : _util_url_ts__WEBPACK_IMPORTED_MODULE_22__.getHash(ref);
|
|
605
1154
|
}
|
|
606
1155
|
|
|
@@ -681,16 +1230,8 @@ class OpenAPI2BundleVisitor {
|
|
|
681
1230
|
*/
|
|
682
1231
|
basenameOf(jsonPointer, baseURI) {
|
|
683
1232
|
const tokens = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__.parse)(jsonPointer).tree;
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
const lastSlash = baseURI.lastIndexOf('/');
|
|
687
|
-
const lastDot = baseURI.lastIndexOf('.');
|
|
688
|
-
const fileName = baseURI.slice(lastSlash + 1);
|
|
689
|
-
// strip the extension only when the last dot belongs to the file name
|
|
690
|
-
candidate = lastDot > lastSlash ? baseURI.slice(lastSlash + 1, lastDot) : fileName;
|
|
691
|
-
}
|
|
692
|
-
if (candidate === '') candidate = 'Schema';
|
|
693
|
-
return candidate;
|
|
1233
|
+
const lastToken = tokens.length > 0 ? tokens[tokens.length - 1] : '';
|
|
1234
|
+
return lastToken || _util_url_ts__WEBPACK_IMPORTED_MODULE_22__.getBasename(baseURI) || 'Schema';
|
|
694
1235
|
}
|
|
695
1236
|
|
|
696
1237
|
/**
|
|
@@ -745,9 +1286,9 @@ class OpenAPI2BundleVisitor {
|
|
|
745
1286
|
const isInternalReference = this.entryURI === retrievalURI;
|
|
746
1287
|
const isExternalReference = !isInternalReference;
|
|
747
1288
|
if (isInternalReference) {
|
|
748
|
-
// normalize self-
|
|
1289
|
+
// normalize self-references to a bare fragment so the bundled
|
|
749
1290
|
// document stays transferable; bare fragments are left untouched
|
|
750
|
-
referencingElement.set('$ref', this.
|
|
1291
|
+
referencingElement.set('$ref', this.normalizeSelfReference($ref));
|
|
751
1292
|
path.skip();
|
|
752
1293
|
return;
|
|
753
1294
|
}
|
|
@@ -904,9 +1445,9 @@ class OpenAPI2BundleVisitor {
|
|
|
904
1445
|
const isInternalReference = this.entryURI === retrievalURI;
|
|
905
1446
|
const isExternalReference = !isInternalReference;
|
|
906
1447
|
if (isInternalReference) {
|
|
907
|
-
// normalize self-
|
|
1448
|
+
// normalize self-references to a bare fragment so the bundled
|
|
908
1449
|
// document stays transferable; bare fragments are left untouched
|
|
909
|
-
pathItemElement.set('$ref', this.
|
|
1450
|
+
pathItemElement.set('$ref', this.normalizeSelfReference($ref));
|
|
910
1451
|
return;
|
|
911
1452
|
}
|
|
912
1453
|
|
|
@@ -1313,11 +1854,11 @@ class OpenAPI3_0BundleVisitor {
|
|
|
1313
1854
|
}
|
|
1314
1855
|
|
|
1315
1856
|
/**
|
|
1316
|
-
* Normalizes a self-
|
|
1857
|
+
* Normalizes a self-reference (e.g. `./root.json#/components/schemas/Pet`)
|
|
1317
1858
|
* to a bare fragment (`#/components/schemas/Pet`) so the bundled document stays
|
|
1318
1859
|
* transferable. Bare fragments are returned unchanged.
|
|
1319
1860
|
*/
|
|
1320
|
-
|
|
1861
|
+
normalizeSelfReference(ref) {
|
|
1321
1862
|
return ref.startsWith('#') ? ref : _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.getHash(ref);
|
|
1322
1863
|
}
|
|
1323
1864
|
|
|
@@ -1403,16 +1944,8 @@ class OpenAPI3_0BundleVisitor {
|
|
|
1403
1944
|
*/
|
|
1404
1945
|
basenameOf(jsonPointer, baseURI) {
|
|
1405
1946
|
const tokens = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.parse)(jsonPointer).tree;
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
const lastSlash = baseURI.lastIndexOf('/');
|
|
1409
|
-
const lastDot = baseURI.lastIndexOf('.');
|
|
1410
|
-
const fileName = baseURI.slice(lastSlash + 1);
|
|
1411
|
-
// strip the extension only when the last dot belongs to the file name
|
|
1412
|
-
candidate = lastDot > lastSlash ? baseURI.slice(lastSlash + 1, lastDot) : fileName;
|
|
1413
|
-
}
|
|
1414
|
-
if (candidate === '') candidate = 'Schema';
|
|
1415
|
-
return candidate;
|
|
1947
|
+
const lastToken = tokens.length > 0 ? tokens[tokens.length - 1] : '';
|
|
1948
|
+
return lastToken || _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.getBasename(baseURI) || 'Schema';
|
|
1416
1949
|
}
|
|
1417
1950
|
|
|
1418
1951
|
/**
|
|
@@ -1462,9 +1995,9 @@ class OpenAPI3_0BundleVisitor {
|
|
|
1462
1995
|
const isInternalReference = this.entryURI === retrievalURI;
|
|
1463
1996
|
const isExternalReference = !isInternalReference;
|
|
1464
1997
|
if (isInternalReference) {
|
|
1465
|
-
// normalize self-
|
|
1998
|
+
// normalize self-references to a bare fragment so the bundled
|
|
1466
1999
|
// document stays transferable; bare fragments are left untouched
|
|
1467
|
-
referencingElement.set('$ref', this.
|
|
2000
|
+
referencingElement.set('$ref', this.normalizeSelfReference($ref));
|
|
1468
2001
|
path.skip();
|
|
1469
2002
|
return;
|
|
1470
2003
|
}
|
|
@@ -1503,7 +2036,814 @@ class OpenAPI3_0BundleVisitor {
|
|
|
1503
2036
|
try {
|
|
1504
2037
|
// detect maximum depth of bundling
|
|
1505
2038
|
if (this.reference.depth >= this.options.bundle.maxDepth) {
|
|
1506
|
-
throw new _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_27__["default"](`Maximum bundle depth of "${this.options.bundle.maxDepth}" has been exceeded in file "${this.reference.uri}"`, {
|
|
2039
|
+
throw new _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_27__["default"](`Maximum bundle depth of "${this.options.bundle.maxDepth}" has been exceeded in file "${this.reference.uri}"`, {
|
|
2040
|
+
maxDepth: this.options.bundle.maxDepth,
|
|
2041
|
+
uri: this.reference.uri
|
|
2042
|
+
});
|
|
2043
|
+
}
|
|
2044
|
+
const reference = await this.toReference($ref);
|
|
2045
|
+
|
|
2046
|
+
// possibly non-semantic fragment
|
|
2047
|
+
let referencedElement = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__.evaluate)(reference.value.result, jsonPointer);
|
|
2048
|
+
|
|
2049
|
+
// apply semantics to the fragment so nested references become Reference Objects
|
|
2050
|
+
if (referencedElement.element !== referencedElementType && !(0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_14__.isReferenceElement)(referencedElement)) {
|
|
2051
|
+
const cached = this.getRefracted(referencedElement, referencedElementType);
|
|
2052
|
+
if (cached !== undefined) {
|
|
2053
|
+
referencedElement = cached;
|
|
2054
|
+
} else if ((0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_15__.isReferenceLikeElement)(referencedElement)) {
|
|
2055
|
+
const sourceElement = referencedElement;
|
|
2056
|
+
referencedElement = (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_13__.refractReference)(referencedElement);
|
|
2057
|
+
referencedElement.meta.set('referenced-element', referencedElementType);
|
|
2058
|
+
this.setRefracted(sourceElement, referencedElementType, referencedElement);
|
|
2059
|
+
} else {
|
|
2060
|
+
const sourceElement = referencedElement;
|
|
2061
|
+
referencedElement = (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_13__["default"])(referencedElement, {
|
|
2062
|
+
element: referencedElementType
|
|
2063
|
+
});
|
|
2064
|
+
this.setRefracted(sourceElement, referencedElementType, referencedElement);
|
|
2065
|
+
}
|
|
2066
|
+
}
|
|
2067
|
+
const preferredName = this.baseName(referencedElement, field, jsonPointer, retrievalURI);
|
|
2068
|
+
const componentName = this.uniqueName(preferredName, field);
|
|
2069
|
+
const internalPointer = `#/components/${field}/${(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.escape)(componentName)}`;
|
|
2070
|
+
|
|
2071
|
+
// a rename means two distinct targets resolved to the same name; each
|
|
2072
|
+
// keeps its own component (and origin), so report the rename per severity.
|
|
2073
|
+
// strategy specific options take precedence over the top-level bundle options
|
|
2074
|
+
const onComponentNameCollision = this.options.bundle.strategyOpts['openapi-3-0']?.onComponentNameCollision ?? this.options.bundle.onComponentNameCollision;
|
|
2075
|
+
if (componentName !== preferredName && onComponentNameCollision !== 'off') {
|
|
2076
|
+
const message = `Component "${preferredName}" in components/${field} is referenced with the same name but different content. Renamed to "${componentName}".`;
|
|
2077
|
+
if (onComponentNameCollision === 'error') {
|
|
2078
|
+
throw new _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_25__["default"](message);
|
|
2079
|
+
}
|
|
2080
|
+
const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__["default"](message);
|
|
2081
|
+
annotation.classes.push('warning');
|
|
2082
|
+
annotation.code = 'bundle-component-name-collision';
|
|
2083
|
+
// append (never prepend) so the result element stays ahead of annotations
|
|
2084
|
+
this.entryParseResult.content.push(annotation);
|
|
2085
|
+
}
|
|
2086
|
+
|
|
2087
|
+
// reserve the assignment and component name before recursing so cyclic
|
|
2088
|
+
// references terminate
|
|
2089
|
+
this.assignments.set(canonicalKey, internalPointer);
|
|
2090
|
+
if (!this.reservedNames.has(field)) this.reservedNames.set(field, new Set());
|
|
2091
|
+
this.reservedNames.get(field).add(componentName);
|
|
2092
|
+
|
|
2093
|
+
// own a copy of the fragment and bundle its own external references
|
|
2094
|
+
const hoistedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneDeep)(referencedElement);
|
|
2095
|
+
const visitor = new OpenAPI3_0BundleVisitor({
|
|
2096
|
+
reference,
|
|
2097
|
+
options: this.options,
|
|
2098
|
+
assignments: this.assignments,
|
|
2099
|
+
reservedNames: this.reservedNames,
|
|
2100
|
+
refractCache: this.refractCache,
|
|
2101
|
+
inlineStack: this.inlineStack
|
|
2102
|
+
});
|
|
2103
|
+
const bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_9__.traverseAsync)(hoistedElement, visitor, {
|
|
2104
|
+
mutable: true
|
|
2105
|
+
});
|
|
2106
|
+
|
|
2107
|
+
// annotate the hoisted fragment with info about its origin
|
|
2108
|
+
if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isElement)(bundledElement)) {
|
|
2109
|
+
bundledElement.meta.set('ref-origin', reference.uri);
|
|
2110
|
+
}
|
|
2111
|
+
|
|
2112
|
+
// place the bundled fragment into the entry document's components
|
|
2113
|
+
this.ensureComponentsField(field).set(componentName, bundledElement);
|
|
2114
|
+
|
|
2115
|
+
// rewrite the referencing element to point at the hoisted fragment
|
|
2116
|
+
referencingElement.set('$ref', internalPointer);
|
|
2117
|
+
path.skip();
|
|
2118
|
+
} catch (error) {
|
|
2119
|
+
this.handleError(`Error while bundling Reference Object. Cannot resolve $ref "${$ref}": ${error.message}`, error, referencingElement, '$ref', $ref, path);
|
|
2120
|
+
path.skip();
|
|
2121
|
+
}
|
|
2122
|
+
}
|
|
2123
|
+
|
|
2124
|
+
/**
|
|
2125
|
+
* Path Item Object is not a Components Object field in OpenAPI 3.0
|
|
2126
|
+
* (unlike 3.1 which has `components.pathItems`). An external Path Item
|
|
2127
|
+
* reference therefore cannot be hoisted; it is inlined in place instead,
|
|
2128
|
+
* after bundling its own external references.
|
|
2129
|
+
*/
|
|
2130
|
+
async PathItemElement(path) {
|
|
2131
|
+
const pathItemElement = path.node;
|
|
2132
|
+
|
|
2133
|
+
// ignore Path Item Objects without a $ref field
|
|
2134
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(pathItemElement.$ref)) {
|
|
2135
|
+
return;
|
|
2136
|
+
}
|
|
2137
|
+
const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(pathItemElement.$ref);
|
|
2138
|
+
const retrievalURI = this.toBaseURI($ref);
|
|
2139
|
+
const isInternalReference = this.entryURI === retrievalURI;
|
|
2140
|
+
const isExternalReference = !isInternalReference;
|
|
2141
|
+
if (isInternalReference) {
|
|
2142
|
+
// normalize self-references to a bare fragment so the bundled
|
|
2143
|
+
// document stays transferable; bare fragments are left untouched
|
|
2144
|
+
pathItemElement.set('$ref', this.normalizeSelfReference($ref));
|
|
2145
|
+
return;
|
|
2146
|
+
}
|
|
2147
|
+
|
|
2148
|
+
// honor the resolve.external switch
|
|
2149
|
+
if (!this.options.resolve.external && isExternalReference) {
|
|
2150
|
+
return;
|
|
2151
|
+
}
|
|
2152
|
+
const $refBaseURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.resolve(retrievalURI, $ref);
|
|
2153
|
+
const jsonPointer = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.URIFragmentIdentifier.fromURIReference($refBaseURI);
|
|
2154
|
+
const canonicalKey = `${retrievalURI}#${jsonPointer}`;
|
|
2155
|
+
|
|
2156
|
+
// a circular external Path Item reference cannot be inlined without
|
|
2157
|
+
// recursing forever; leave the $ref in place to break the cycle
|
|
2158
|
+
if (this.inlineStack.has(canonicalKey)) {
|
|
2159
|
+
return;
|
|
2160
|
+
}
|
|
2161
|
+
try {
|
|
2162
|
+
// detect maximum depth of bundling
|
|
2163
|
+
if (this.reference.depth >= this.options.bundle.maxDepth) {
|
|
2164
|
+
throw new _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_27__["default"](`Maximum bundle depth of "${this.options.bundle.maxDepth}" has been exceeded in file "${this.reference.uri}"`, {
|
|
2165
|
+
maxDepth: this.options.bundle.maxDepth,
|
|
2166
|
+
uri: this.reference.uri
|
|
2167
|
+
});
|
|
2168
|
+
}
|
|
2169
|
+
const reference = await this.toReference($ref);
|
|
2170
|
+
let referencedElement = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__.evaluate)(reference.value.result, jsonPointer);
|
|
2171
|
+
|
|
2172
|
+
// apply Path Item semantics to the referenced fragment
|
|
2173
|
+
if (!(0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_14__.isPathItemElement)(referencedElement)) {
|
|
2174
|
+
const cached = this.getRefracted(referencedElement, 'pathItem');
|
|
2175
|
+
if (cached !== undefined) {
|
|
2176
|
+
referencedElement = cached;
|
|
2177
|
+
} else {
|
|
2178
|
+
const sourceElement = referencedElement;
|
|
2179
|
+
referencedElement = (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_13__.refractPathItem)(referencedElement);
|
|
2180
|
+
this.setRefracted(sourceElement, 'pathItem', referencedElement);
|
|
2181
|
+
}
|
|
2182
|
+
}
|
|
2183
|
+
|
|
2184
|
+
// own a copy and bundle the external references it contains
|
|
2185
|
+
const inlinedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneDeep)(referencedElement);
|
|
2186
|
+
this.inlineStack.add(canonicalKey);
|
|
2187
|
+
const visitor = new OpenAPI3_0BundleVisitor({
|
|
2188
|
+
reference,
|
|
2189
|
+
options: this.options,
|
|
2190
|
+
assignments: this.assignments,
|
|
2191
|
+
reservedNames: this.reservedNames,
|
|
2192
|
+
refractCache: this.refractCache,
|
|
2193
|
+
inlineStack: this.inlineStack
|
|
2194
|
+
});
|
|
2195
|
+
let bundledElement;
|
|
2196
|
+
try {
|
|
2197
|
+
bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_9__.traverseAsync)(inlinedElement, visitor, {
|
|
2198
|
+
mutable: true
|
|
2199
|
+
});
|
|
2200
|
+
} finally {
|
|
2201
|
+
this.inlineStack.delete(canonicalKey);
|
|
2202
|
+
}
|
|
2203
|
+
|
|
2204
|
+
// merge sibling fields from the referencing Path Item over the referenced
|
|
2205
|
+
// one. The referencing `$ref` is being resolved away and is skipped; the
|
|
2206
|
+
// referenced element keeps its own `$ref` if one survived (i.e. it was
|
|
2207
|
+
// left in place to break a circular external Path Item chain).
|
|
2208
|
+
pathItemElement.forEach((_value, keyElement, item) => {
|
|
2209
|
+
const key = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(keyElement);
|
|
2210
|
+
if (key === '$ref') return;
|
|
2211
|
+
bundledElement.remove(key);
|
|
2212
|
+
bundledElement.content.push(item);
|
|
2213
|
+
});
|
|
2214
|
+
bundledElement.meta.set('ref-origin', reference.uri);
|
|
2215
|
+
path.replaceWith(bundledElement);
|
|
2216
|
+
} catch (error) {
|
|
2217
|
+
this.handleError(`Error while bundling Path Item Object. Cannot resolve $ref "${$ref}": ${error.message}`, error, pathItemElement, '$ref', $ref, path);
|
|
2218
|
+
}
|
|
2219
|
+
}
|
|
2220
|
+
|
|
2221
|
+
/**
|
|
2222
|
+
* Example Object `externalValue` points at arbitrary external content that
|
|
2223
|
+
* has no place in the Components Object. The referenced value is inlined into
|
|
2224
|
+
* the Example's `value` field.
|
|
2225
|
+
*/
|
|
2226
|
+
async ExampleElement(path) {
|
|
2227
|
+
const exampleElement = path.node;
|
|
2228
|
+
|
|
2229
|
+
// ignore Example Objects without an externalValue field
|
|
2230
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(exampleElement.externalValue)) {
|
|
2231
|
+
return;
|
|
2232
|
+
}
|
|
2233
|
+
|
|
2234
|
+
// value and externalValue fields are mutually exclusive
|
|
2235
|
+
if (exampleElement.hasKey('value') && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(exampleElement.externalValue)) {
|
|
2236
|
+
throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_8__["default"]('ExampleElement value and externalValue fields are mutually exclusive', {
|
|
2237
|
+
value: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(exampleElement.value),
|
|
2238
|
+
externalValue: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(exampleElement.externalValue)
|
|
2239
|
+
});
|
|
2240
|
+
}
|
|
2241
|
+
const externalValue = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(exampleElement.externalValue);
|
|
2242
|
+
const retrievalURI = this.toBaseURI(externalValue);
|
|
2243
|
+
const isInternalReference = this.entryURI === retrievalURI;
|
|
2244
|
+
const isExternalReference = !isInternalReference;
|
|
2245
|
+
|
|
2246
|
+
// honor the resolve.external switch
|
|
2247
|
+
if (!this.options.resolve.external && isExternalReference) {
|
|
2248
|
+
return;
|
|
2249
|
+
}
|
|
2250
|
+
try {
|
|
2251
|
+
const reference = await this.toReference(externalValue);
|
|
2252
|
+
const valueElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneShallow)(reference.value.result);
|
|
2253
|
+
valueElement.meta.set('ref-origin', reference.uri);
|
|
2254
|
+
const exampleElementCopy = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneShallow)(exampleElement);
|
|
2255
|
+
exampleElementCopy.value = valueElement;
|
|
2256
|
+
exampleElementCopy.remove('externalValue');
|
|
2257
|
+
path.replaceWith(exampleElementCopy);
|
|
2258
|
+
} catch (error) {
|
|
2259
|
+
this.handleError(`Error while bundling Example Object. Cannot resolve externalValue "${externalValue}": ${error.message}`, error, exampleElement, 'externalValue', externalValue, path);
|
|
2260
|
+
}
|
|
2261
|
+
}
|
|
2262
|
+
|
|
2263
|
+
/**
|
|
2264
|
+
* Link Object `operationRef` points at an Operation Object, which has no
|
|
2265
|
+
* Components Object field in OpenAPI 3.0 and therefore cannot be hoisted or
|
|
2266
|
+
* inlined. To keep the link resolvable from the bundled document, an external
|
|
2267
|
+
* `operationRef` is rewritten to its absolute URI. Internal `operationRef`
|
|
2268
|
+
* values and `operationId` links are left untouched.
|
|
2269
|
+
*/
|
|
2270
|
+
async LinkElement(path) {
|
|
2271
|
+
const linkElement = path.node;
|
|
2272
|
+
|
|
2273
|
+
// operationRef and operationId fields are mutually exclusive
|
|
2274
|
+
if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(linkElement.operationRef) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(linkElement.operationId)) {
|
|
2275
|
+
throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_8__["default"]('LinkElement operationRef and operationId fields are mutually exclusive', {
|
|
2276
|
+
operationRef: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(linkElement.operationRef),
|
|
2277
|
+
operationId: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(linkElement.operationId)
|
|
2278
|
+
});
|
|
2279
|
+
}
|
|
2280
|
+
|
|
2281
|
+
// only external operationRef links need adjusting
|
|
2282
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(linkElement.operationRef)) {
|
|
2283
|
+
return;
|
|
2284
|
+
}
|
|
2285
|
+
const operationRef = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(linkElement.operationRef);
|
|
2286
|
+
const retrievalURI = this.toBaseURI(operationRef);
|
|
2287
|
+
const isInternalReference = this.entryURI === retrievalURI;
|
|
2288
|
+
if (isInternalReference) {
|
|
2289
|
+
// normalize a self-reference operationRef to a bare fragment so the bundled
|
|
2290
|
+
// document stays transferable; bare fragments are left untouched
|
|
2291
|
+
linkElement.set('operationRef', this.normalizeSelfReference(operationRef));
|
|
2292
|
+
return;
|
|
2293
|
+
}
|
|
2294
|
+
|
|
2295
|
+
// honor the resolve.external switch
|
|
2296
|
+
if (!this.options.resolve.external) {
|
|
2297
|
+
return;
|
|
2298
|
+
}
|
|
2299
|
+
|
|
2300
|
+
// rewrite to an absolute URI so the link keeps resolving once the document
|
|
2301
|
+
// is treated as self-contained
|
|
2302
|
+
const absoluteURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.resolve(this.reference.uri, operationRef);
|
|
2303
|
+
if (absoluteURI !== operationRef) {
|
|
2304
|
+
linkElement.set('operationRef', absoluteURI);
|
|
2305
|
+
}
|
|
2306
|
+
}
|
|
2307
|
+
}
|
|
2308
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI3_0BundleVisitor);
|
|
2309
|
+
|
|
2310
|
+
/***/ },
|
|
2311
|
+
|
|
2312
|
+
/***/ 16432
|
|
2313
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
2314
|
+
|
|
2315
|
+
"use strict";
|
|
2316
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2317
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2318
|
+
/* harmony export */ OpenAPI3_1BundleVisitor: () => (/* reexport safe */ _visitor_ts__WEBPACK_IMPORTED_MODULE_7__["default"]),
|
|
2319
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
2320
|
+
/* harmony export */ });
|
|
2321
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12111);
|
|
2322
|
+
/* harmony import */ var _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(80796);
|
|
2323
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7822);
|
|
2324
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(76332);
|
|
2325
|
+
/* harmony import */ var _Reference_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(98979);
|
|
2326
|
+
/* harmony import */ var _ReferenceSet_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(24131);
|
|
2327
|
+
/* harmony import */ var _BundleStrategy_ts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(75508);
|
|
2328
|
+
/* harmony import */ var _visitor_ts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(31066);
|
|
2329
|
+
|
|
2330
|
+
|
|
2331
|
+
|
|
2332
|
+
|
|
2333
|
+
|
|
2334
|
+
|
|
2335
|
+
|
|
2336
|
+
|
|
2337
|
+
/**
|
|
2338
|
+
* @public
|
|
2339
|
+
*/
|
|
2340
|
+
|
|
2341
|
+
/**
|
|
2342
|
+
* @public
|
|
2343
|
+
*/
|
|
2344
|
+
class OpenAPI3_1BundleStrategy extends _BundleStrategy_ts__WEBPACK_IMPORTED_MODULE_6__["default"] {
|
|
2345
|
+
constructor(options) {
|
|
2346
|
+
super({
|
|
2347
|
+
...(options ?? {}),
|
|
2348
|
+
name: 'openapi-3-1'
|
|
2349
|
+
});
|
|
2350
|
+
}
|
|
2351
|
+
canBundle(file) {
|
|
2352
|
+
// assert by media type
|
|
2353
|
+
if (file.mediaType !== 'text/plain') {
|
|
2354
|
+
return _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_2__["default"].includes(file.mediaType);
|
|
2355
|
+
}
|
|
2356
|
+
|
|
2357
|
+
// assert by inspecting ApiDOM
|
|
2358
|
+
return (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__.isOpenApi3_1Element)(file.parseResult?.result);
|
|
2359
|
+
}
|
|
2360
|
+
async bundle(file, options) {
|
|
2361
|
+
const immutableRefSet = options.bundle.refSet ?? new _ReferenceSet_ts__WEBPACK_IMPORTED_MODULE_5__["default"]();
|
|
2362
|
+
const mutableRefSet = new _ReferenceSet_ts__WEBPACK_IMPORTED_MODULE_5__["default"]();
|
|
2363
|
+
let refSet = immutableRefSet;
|
|
2364
|
+
let reference;
|
|
2365
|
+
|
|
2366
|
+
// determine the initial reference
|
|
2367
|
+
if (!immutableRefSet.has(file.uri)) {
|
|
2368
|
+
reference = new _Reference_ts__WEBPACK_IMPORTED_MODULE_4__["default"]({
|
|
2369
|
+
uri: file.uri,
|
|
2370
|
+
value: file.parseResult
|
|
2371
|
+
});
|
|
2372
|
+
immutableRefSet.add(reference);
|
|
2373
|
+
} else {
|
|
2374
|
+
// pre-computed refSet was provided as configuration option
|
|
2375
|
+
reference = immutableRefSet.find(ref => ref.uri === file.uri);
|
|
2376
|
+
}
|
|
2377
|
+
|
|
2378
|
+
/**
|
|
2379
|
+
* Clone refSet due the bundling process being mutable.
|
|
2380
|
+
* We don't want to mutate the original refSet and the references.
|
|
2381
|
+
*/
|
|
2382
|
+
if (options.bundle.immutable) {
|
|
2383
|
+
immutableRefSet.refs.map(ref => new _Reference_ts__WEBPACK_IMPORTED_MODULE_4__["default"]({
|
|
2384
|
+
...ref,
|
|
2385
|
+
value: (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(ref.value)
|
|
2386
|
+
})).forEach(ref => mutableRefSet.add(ref));
|
|
2387
|
+
reference = mutableRefSet.find(ref => ref.uri === file.uri);
|
|
2388
|
+
refSet = mutableRefSet;
|
|
2389
|
+
}
|
|
2390
|
+
const visitor = new _visitor_ts__WEBPACK_IMPORTED_MODULE_7__["default"]({
|
|
2391
|
+
reference: reference,
|
|
2392
|
+
options
|
|
2393
|
+
});
|
|
2394
|
+
await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_1__.traverseAsync)(refSet.rootRef.value, visitor, {
|
|
2395
|
+
mutable: true
|
|
2396
|
+
});
|
|
2397
|
+
const parseResult = reference.value;
|
|
2398
|
+
|
|
2399
|
+
/**
|
|
2400
|
+
* Release all memory if this refSet was not provided as a configuration option.
|
|
2401
|
+
* If provided as configuration option, then provider is responsible for cleanup.
|
|
2402
|
+
*/
|
|
2403
|
+
if (options.bundle.refSet === null) {
|
|
2404
|
+
immutableRefSet.clean();
|
|
2405
|
+
}
|
|
2406
|
+
mutableRefSet.clean();
|
|
2407
|
+
return parseResult;
|
|
2408
|
+
}
|
|
2409
|
+
}
|
|
2410
|
+
|
|
2411
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI3_1BundleStrategy);
|
|
2412
|
+
|
|
2413
|
+
/***/ },
|
|
2414
|
+
|
|
2415
|
+
/***/ 31066
|
|
2416
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
2417
|
+
|
|
2418
|
+
"use strict";
|
|
2419
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2420
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2421
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
2422
|
+
/* harmony export */ });
|
|
2423
|
+
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(87009);
|
|
2424
|
+
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6352);
|
|
2425
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25162);
|
|
2426
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12111);
|
|
2427
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(97071);
|
|
2428
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(84660);
|
|
2429
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(37205);
|
|
2430
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(44673);
|
|
2431
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(16280);
|
|
2432
|
+
/* harmony import */ var _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(44641);
|
|
2433
|
+
/* harmony import */ var _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(80796);
|
|
2434
|
+
/* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(12020);
|
|
2435
|
+
/* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(61198);
|
|
2436
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(21314);
|
|
2437
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(24329);
|
|
2438
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(29881);
|
|
2439
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(76332);
|
|
2440
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(23806);
|
|
2441
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(52645);
|
|
2442
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(23031);
|
|
2443
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(63842);
|
|
2444
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(87455);
|
|
2445
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(16363);
|
|
2446
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(55122);
|
|
2447
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(71117);
|
|
2448
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(72257);
|
|
2449
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(69511);
|
|
2450
|
+
/* harmony import */ var _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(81002);
|
|
2451
|
+
/* harmony import */ var _errors_UnresolvableReferenceError_ts__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(8853);
|
|
2452
|
+
/* harmony import */ var _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(16843);
|
|
2453
|
+
/* harmony import */ var _errors_MaximumResolveDepthError_ts__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(51325);
|
|
2454
|
+
/* harmony import */ var _errors_EvaluationJsonSchemaUriError_ts__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(44477);
|
|
2455
|
+
/* harmony import */ var _util_url_ts__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(30658);
|
|
2456
|
+
/* harmony import */ var _parse_index_ts__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(35014);
|
|
2457
|
+
/* harmony import */ var _Reference_ts__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(98979);
|
|
2458
|
+
/* harmony import */ var _File_ts__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(10682);
|
|
2459
|
+
/* harmony import */ var _dereference_strategies_openapi_3_1_selectors_$anchor_ts__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(32054);
|
|
2460
|
+
/* harmony import */ var _dereference_strategies_openapi_3_1_selectors_uri_ts__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(56481);
|
|
2461
|
+
/* harmony import */ var _dereference_strategies_openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(60888);
|
|
2462
|
+
/* harmony import */ var _util_ts__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(25939);
|
|
2463
|
+
|
|
2464
|
+
|
|
2465
|
+
|
|
2466
|
+
|
|
2467
|
+
|
|
2468
|
+
|
|
2469
|
+
|
|
2470
|
+
|
|
2471
|
+
|
|
2472
|
+
|
|
2473
|
+
|
|
2474
|
+
|
|
2475
|
+
|
|
2476
|
+
|
|
2477
|
+
|
|
2478
|
+
|
|
2479
|
+
|
|
2480
|
+
|
|
2481
|
+
|
|
2482
|
+
|
|
2483
|
+
/**
|
|
2484
|
+
* Maps the `referenced-element` meta value (set during refraction) to the
|
|
2485
|
+
* Components Object field where the referenced element should be hoisted.
|
|
2486
|
+
* Field names are sourced from the Components Object fixed fields so they
|
|
2487
|
+
* cannot drift from the namespace definition.
|
|
2488
|
+
*/
|
|
2489
|
+
const cf = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__.fixedFields)(_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__.ComponentsElement, {
|
|
2490
|
+
indexed: true
|
|
2491
|
+
});
|
|
2492
|
+
const componentFieldByReferencedElement = {
|
|
2493
|
+
schema: cf.schemas.name,
|
|
2494
|
+
response: cf.responses.name,
|
|
2495
|
+
parameter: cf.parameters.name,
|
|
2496
|
+
example: cf.examples.name,
|
|
2497
|
+
requestBody: cf.requestBodies.name,
|
|
2498
|
+
header: cf.headers.name,
|
|
2499
|
+
securityScheme: cf.securitySchemes.name,
|
|
2500
|
+
link: cf.links.name,
|
|
2501
|
+
callback: cf.callbacks.name,
|
|
2502
|
+
pathItem: cf.pathItems.name
|
|
2503
|
+
};
|
|
2504
|
+
|
|
2505
|
+
/**
|
|
2506
|
+
* Maps a Components Object field to the named-content element the namespace
|
|
2507
|
+
* uses for it, so a bundle-created field matches a parsed/refracted one
|
|
2508
|
+
* (e.g. carries the `components-schemas` class) rather than being a generic
|
|
2509
|
+
* object.
|
|
2510
|
+
*/
|
|
2511
|
+
const componentFieldElementByField = {
|
|
2512
|
+
[cf.schemas.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_25__["default"],
|
|
2513
|
+
[cf.responses.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_24__["default"],
|
|
2514
|
+
[cf.parameters.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_21__["default"],
|
|
2515
|
+
[cf.examples.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__["default"],
|
|
2516
|
+
[cf.requestBodies.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_23__["default"],
|
|
2517
|
+
[cf.headers.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__["default"],
|
|
2518
|
+
[cf.securitySchemes.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_26__["default"],
|
|
2519
|
+
[cf.links.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__["default"],
|
|
2520
|
+
[cf.callbacks.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__["default"],
|
|
2521
|
+
[cf.pathItems.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_22__["default"]
|
|
2522
|
+
};
|
|
2523
|
+
|
|
2524
|
+
/**
|
|
2525
|
+
* @public
|
|
2526
|
+
*/
|
|
2527
|
+
|
|
2528
|
+
/**
|
|
2529
|
+
* @public
|
|
2530
|
+
*/
|
|
2531
|
+
class OpenAPI3_1BundleVisitor {
|
|
2532
|
+
reference;
|
|
2533
|
+
options;
|
|
2534
|
+
|
|
2535
|
+
/**
|
|
2536
|
+
* The base URI (without hash) of the entry document. A reference is
|
|
2537
|
+
* considered internal when it resolves to this URI and external otherwise.
|
|
2538
|
+
* Derived from the shared refSet's root reference.
|
|
2539
|
+
*/
|
|
2540
|
+
get entryURI() {
|
|
2541
|
+
return _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.stripHash(this.reference.refSet?.rootRef?.uri ?? '');
|
|
2542
|
+
}
|
|
2543
|
+
|
|
2544
|
+
/**
|
|
2545
|
+
* The entry parse result. Derived from the shared refSet's root reference.
|
|
2546
|
+
*/
|
|
2547
|
+
get entryParseResult() {
|
|
2548
|
+
return this.reference.refSet.rootRef.value;
|
|
2549
|
+
}
|
|
2550
|
+
|
|
2551
|
+
/**
|
|
2552
|
+
* The entry document element. Hoisted external fragments are placed into its
|
|
2553
|
+
* `components` object. The `canBundle` guard guarantees it is an
|
|
2554
|
+
* OpenApi3_1Element.
|
|
2555
|
+
*/
|
|
2556
|
+
get entryResult() {
|
|
2557
|
+
return this.entryParseResult.result;
|
|
2558
|
+
}
|
|
2559
|
+
|
|
2560
|
+
/**
|
|
2561
|
+
* Shared across the entry document and every external document visitor.
|
|
2562
|
+
* Guarantees each external fragment is hoisted exactly once and gives us a
|
|
2563
|
+
* stable internal pointer to rewrite every referencing element to.
|
|
2564
|
+
*/
|
|
2565
|
+
assignments;
|
|
2566
|
+
|
|
2567
|
+
/**
|
|
2568
|
+
* Component names already reserved per Components Object field. Reserved
|
|
2569
|
+
* before recursion so collision suffixing (`Pet`, `Pet-2`, ...) accounts for
|
|
2570
|
+
* components that are still being bundled.
|
|
2571
|
+
*/
|
|
2572
|
+
reservedNames;
|
|
2573
|
+
|
|
2574
|
+
/**
|
|
2575
|
+
* Caches refracted fragments keyed by source element and target element type.
|
|
2576
|
+
* The type is part of the key because the same source can be refracted into
|
|
2577
|
+
* different semantic elements depending on the referencing context (e.g. a
|
|
2578
|
+
* generic object referenced once as a Parameter and once as a Response).
|
|
2579
|
+
*/
|
|
2580
|
+
refractCache;
|
|
2581
|
+
constructor({
|
|
2582
|
+
reference,
|
|
2583
|
+
options,
|
|
2584
|
+
assignments = new Map(),
|
|
2585
|
+
reservedNames = new Map(),
|
|
2586
|
+
refractCache = new WeakMap()
|
|
2587
|
+
}) {
|
|
2588
|
+
this.reference = reference;
|
|
2589
|
+
this.options = options;
|
|
2590
|
+
this.assignments = assignments;
|
|
2591
|
+
this.reservedNames = reservedNames;
|
|
2592
|
+
this.refractCache = refractCache;
|
|
2593
|
+
}
|
|
2594
|
+
getRefracted(source, type) {
|
|
2595
|
+
return this.refractCache.get(source)?.get(type);
|
|
2596
|
+
}
|
|
2597
|
+
setRefracted(source, type, refracted) {
|
|
2598
|
+
let byType = this.refractCache.get(source);
|
|
2599
|
+
if (byType === undefined) {
|
|
2600
|
+
byType = new Map();
|
|
2601
|
+
this.refractCache.set(source, byType);
|
|
2602
|
+
}
|
|
2603
|
+
byType.set(type, refracted);
|
|
2604
|
+
}
|
|
2605
|
+
toBaseURI(uri) {
|
|
2606
|
+
return _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.resolve(this.reference.uri, _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.sanitize(_util_url_ts__WEBPACK_IMPORTED_MODULE_32__.stripHash(uri)));
|
|
2607
|
+
}
|
|
2608
|
+
async toReference(uri) {
|
|
2609
|
+
// detect maximum depth of resolution
|
|
2610
|
+
if (this.reference.depth >= this.options.resolve.maxDepth) {
|
|
2611
|
+
throw new _errors_MaximumResolveDepthError_ts__WEBPACK_IMPORTED_MODULE_30__["default"](`Maximum resolution depth of ${this.options.resolve.maxDepth} has been exceeded by file "${this.reference.uri}"`, {
|
|
2612
|
+
maxDepth: this.options.resolve.maxDepth,
|
|
2613
|
+
uri: this.reference.uri
|
|
2614
|
+
});
|
|
2615
|
+
}
|
|
2616
|
+
const baseURI = this.toBaseURI(uri);
|
|
2617
|
+
const {
|
|
2618
|
+
refSet
|
|
2619
|
+
} = this.reference;
|
|
2620
|
+
|
|
2621
|
+
// we've already processed this Reference in past
|
|
2622
|
+
if (refSet.has(baseURI)) {
|
|
2623
|
+
return refSet.find((0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(baseURI, 'uri'));
|
|
2624
|
+
}
|
|
2625
|
+
const parseResult = await (0,_parse_index_ts__WEBPACK_IMPORTED_MODULE_33__["default"])(_util_url_ts__WEBPACK_IMPORTED_MODULE_32__.unsanitize(baseURI), {
|
|
2626
|
+
...this.options,
|
|
2627
|
+
parse: {
|
|
2628
|
+
...this.options.parse,
|
|
2629
|
+
mediaType: 'text/plain'
|
|
2630
|
+
}
|
|
2631
|
+
});
|
|
2632
|
+
const reference = new _Reference_ts__WEBPACK_IMPORTED_MODULE_34__["default"]({
|
|
2633
|
+
uri: baseURI,
|
|
2634
|
+
value: parseResult,
|
|
2635
|
+
depth: this.reference.depth + 1
|
|
2636
|
+
});
|
|
2637
|
+
refSet.add(reference);
|
|
2638
|
+
return reference;
|
|
2639
|
+
}
|
|
2640
|
+
|
|
2641
|
+
/**
|
|
2642
|
+
* Normalizes a self-reference (e.g. `./root.json#/components/schemas/Pet`)
|
|
2643
|
+
* to a bare fragment (`#/components/schemas/Pet`) so the bundled document stays
|
|
2644
|
+
* transferable. Bare fragments are returned unchanged.
|
|
2645
|
+
*/
|
|
2646
|
+
normalizeSelfReference(ref) {
|
|
2647
|
+
return ref.startsWith('#') ? ref : _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.getHash(ref);
|
|
2648
|
+
}
|
|
2649
|
+
|
|
2650
|
+
/**
|
|
2651
|
+
* Handles an error according to the `bundle.continueOnError` option.
|
|
2652
|
+
*
|
|
2653
|
+
* For new errors: wraps in UnresolvableReferenceError with structured
|
|
2654
|
+
* context. For errors already wrapped by a nested visitor: prepends the
|
|
2655
|
+
* current hop to the trace.
|
|
2656
|
+
*
|
|
2657
|
+
* Inner/intermediate visitors always throw to let the trace accumulate. Only
|
|
2658
|
+
* the entry document visitor respects continueOnError (callback/swallow/throw).
|
|
2659
|
+
*/
|
|
2660
|
+
handleError(message, error, referencingElement, refFieldName, refFieldValue, visitorPath) {
|
|
2661
|
+
// a collision reported as `error` is a deliberate hard stop with no
|
|
2662
|
+
// resolution-failure analog, so pass it through unchanged. A maxDepth
|
|
2663
|
+
// breach (MaximumBundleDepthError, which also extends BundleError) is a
|
|
2664
|
+
// resolution failure and flows through below — wrapped and subject to
|
|
2665
|
+
// continueOnError, like dereferencing.
|
|
2666
|
+
if (error instanceof _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_27__["default"] && !(error instanceof _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_29__["default"])) {
|
|
2667
|
+
throw error;
|
|
2668
|
+
}
|
|
2669
|
+
const {
|
|
2670
|
+
continueOnError
|
|
2671
|
+
} = this.options.bundle;
|
|
2672
|
+
const isEntryDocument = _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.stripHash(this.reference.refSet?.rootRef?.uri ?? '') === this.reference.uri;
|
|
2673
|
+
const uri = this.reference.uri;
|
|
2674
|
+
const type = referencingElement.element;
|
|
2675
|
+
const codeFrame = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__["default"])(referencingElement);
|
|
2676
|
+
const location = visitorPath.formatPath();
|
|
2677
|
+
const hop = {
|
|
2678
|
+
uri,
|
|
2679
|
+
type,
|
|
2680
|
+
refFieldName,
|
|
2681
|
+
refFieldValue,
|
|
2682
|
+
location,
|
|
2683
|
+
codeFrame
|
|
2684
|
+
};
|
|
2685
|
+
let unresolvedError;
|
|
2686
|
+
if (error instanceof _errors_UnresolvableReferenceError_ts__WEBPACK_IMPORTED_MODULE_28__["default"]) {
|
|
2687
|
+
// @ts-ignore
|
|
2688
|
+
error.trace = [hop, ...error.trace];
|
|
2689
|
+
unresolvedError = error;
|
|
2690
|
+
} else {
|
|
2691
|
+
unresolvedError = new _errors_UnresolvableReferenceError_ts__WEBPACK_IMPORTED_MODULE_28__["default"](message, {
|
|
2692
|
+
cause: error,
|
|
2693
|
+
type,
|
|
2694
|
+
uri,
|
|
2695
|
+
location,
|
|
2696
|
+
codeFrame,
|
|
2697
|
+
refFieldName,
|
|
2698
|
+
refFieldValue,
|
|
2699
|
+
trace: []
|
|
2700
|
+
});
|
|
2701
|
+
}
|
|
2702
|
+
if (!isEntryDocument || continueOnError === false) throw unresolvedError;
|
|
2703
|
+
if (typeof continueOnError === 'function') continueOnError(unresolvedError);
|
|
2704
|
+
}
|
|
2705
|
+
|
|
2706
|
+
/**
|
|
2707
|
+
* Lazily creates the Components Object (and the requested field within it)
|
|
2708
|
+
* on the entry document, returning the field where a fragment is hoisted.
|
|
2709
|
+
*/
|
|
2710
|
+
ensureComponentsField(field) {
|
|
2711
|
+
const entryResult = this.entryResult;
|
|
2712
|
+
let components = entryResult.components;
|
|
2713
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isObjectElement)(components)) {
|
|
2714
|
+
components = new _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__.ComponentsElement();
|
|
2715
|
+
entryResult.components = components;
|
|
2716
|
+
}
|
|
2717
|
+
let fieldElement = components.get(field);
|
|
2718
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isObjectElement)(fieldElement)) {
|
|
2719
|
+
const FieldElement = componentFieldElementByField[field] ?? _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__["default"];
|
|
2720
|
+
fieldElement = new FieldElement();
|
|
2721
|
+
components.set(field, fieldElement);
|
|
2722
|
+
}
|
|
2723
|
+
return fieldElement;
|
|
2724
|
+
}
|
|
2725
|
+
|
|
2726
|
+
/**
|
|
2727
|
+
* Derives a component name from the referenced JSON Pointer's last token,
|
|
2728
|
+
* falling back to the referenced file's basename.
|
|
2729
|
+
*/
|
|
2730
|
+
basenameOf(jsonPointer, baseURI) {
|
|
2731
|
+
const tokens = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.parse)(jsonPointer).tree;
|
|
2732
|
+
const lastToken = tokens.length > 0 ? tokens[tokens.length - 1] : '';
|
|
2733
|
+
return lastToken || _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.getBasename(baseURI) || 'Schema';
|
|
2734
|
+
}
|
|
2735
|
+
|
|
2736
|
+
/**
|
|
2737
|
+
* Computes the base component name (before collision suffixing) according to
|
|
2738
|
+
* the configured naming strategy.
|
|
2739
|
+
*/
|
|
2740
|
+
baseName(element, field, jsonPointer, baseURI) {
|
|
2741
|
+
// strategy specific options take precedence over the top-level bundle options
|
|
2742
|
+
const componentNamesStrategy = this.options.bundle.strategyOpts['openapi-3-1']?.componentNamesStrategy ?? this.options.bundle.componentNamesStrategy;
|
|
2743
|
+
if (typeof componentNamesStrategy === 'function') {
|
|
2744
|
+
const resolved = componentNamesStrategy({
|
|
2745
|
+
element,
|
|
2746
|
+
field,
|
|
2747
|
+
jsonPointer,
|
|
2748
|
+
baseURI
|
|
2749
|
+
});
|
|
2750
|
+
if (typeof resolved === 'string' && resolved !== '') {
|
|
2751
|
+
return resolved;
|
|
2752
|
+
}
|
|
2753
|
+
return this.basenameOf(jsonPointer, baseURI);
|
|
2754
|
+
}
|
|
2755
|
+
if (componentNamesStrategy === 'title') {
|
|
2756
|
+
const title = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isObjectElement)(element) ? (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(element.get('title')) : undefined;
|
|
2757
|
+
if (typeof title === 'string' && title.trim() !== '') {
|
|
2758
|
+
const name = (0,_util_ts__WEBPACK_IMPORTED_MODULE_39__.sanitizeComponentName)((0,_util_ts__WEBPACK_IMPORTED_MODULE_39__.toPascalCase)(title));
|
|
2759
|
+
if (name !== '') return name;
|
|
2760
|
+
}
|
|
2761
|
+
// fall back to basename when no usable title is present
|
|
2762
|
+
}
|
|
2763
|
+
return this.basenameOf(jsonPointer, baseURI);
|
|
2764
|
+
}
|
|
2765
|
+
|
|
2766
|
+
/**
|
|
2767
|
+
* Computes a collision-free component name within the target field. A name is
|
|
2768
|
+
* taken if it's already placed in components or reserved by a component that
|
|
2769
|
+
* is still being bundled (reserved before recursion).
|
|
2770
|
+
*/
|
|
2771
|
+
uniqueName(candidate, field) {
|
|
2772
|
+
const fieldElement = this.ensureComponentsField(field);
|
|
2773
|
+
const reserved = this.reservedNames.get(field) ?? new Set();
|
|
2774
|
+
return (0,_util_ts__WEBPACK_IMPORTED_MODULE_39__.uniqueName)(candidate, name => fieldElement.hasKey(name) || reserved.has(name));
|
|
2775
|
+
}
|
|
2776
|
+
|
|
2777
|
+
/**
|
|
2778
|
+
* Reports a collision-forced rename according to the configured severity.
|
|
2779
|
+
* A rename means two distinct targets resolved to the same name; each keeps
|
|
2780
|
+
* its own component (and origin), so report the rename per severity.
|
|
2781
|
+
*/
|
|
2782
|
+
reportNameCollision(preferredName, componentName, field) {
|
|
2783
|
+
// strategy specific options take precedence over the top-level bundle options
|
|
2784
|
+
const onComponentNameCollision = this.options.bundle.strategyOpts['openapi-3-1']?.onComponentNameCollision ?? this.options.bundle.onComponentNameCollision;
|
|
2785
|
+
if (componentName === preferredName || onComponentNameCollision === 'off') {
|
|
2786
|
+
return;
|
|
2787
|
+
}
|
|
2788
|
+
const message = `Component "${preferredName}" in components/${field} is referenced with the same name but different content. Renamed to "${componentName}".`;
|
|
2789
|
+
if (onComponentNameCollision === 'error') {
|
|
2790
|
+
throw new _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_27__["default"](message);
|
|
2791
|
+
}
|
|
2792
|
+
const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_5__["default"](message);
|
|
2793
|
+
annotation.classes.push('warning');
|
|
2794
|
+
annotation.code = 'bundle-component-name-collision';
|
|
2795
|
+
// append (never prepend) so the result element stays ahead of annotations
|
|
2796
|
+
this.entryParseResult.content.push(annotation);
|
|
2797
|
+
}
|
|
2798
|
+
async ReferenceElement(path) {
|
|
2799
|
+
const referencingElement = path.node;
|
|
2800
|
+
const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(referencingElement.$ref);
|
|
2801
|
+
const retrievalURI = this.toBaseURI($ref);
|
|
2802
|
+
const isInternalReference = this.entryURI === retrievalURI;
|
|
2803
|
+
const isExternalReference = !isInternalReference;
|
|
2804
|
+
if (isInternalReference) {
|
|
2805
|
+
// normalize self-references to a bare fragment so the bundled
|
|
2806
|
+
// document stays transferable; bare fragments are left untouched
|
|
2807
|
+
referencingElement.set('$ref', this.normalizeSelfReference($ref));
|
|
2808
|
+
path.skip();
|
|
2809
|
+
return;
|
|
2810
|
+
}
|
|
2811
|
+
|
|
2812
|
+
// honor the resolve.external switch
|
|
2813
|
+
if (!this.options.resolve.external && isExternalReference) {
|
|
2814
|
+
path.skip();
|
|
2815
|
+
return;
|
|
2816
|
+
}
|
|
2817
|
+
const $refBaseURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.resolve(retrievalURI, $ref);
|
|
2818
|
+
const jsonPointer = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.URIFragmentIdentifier.fromURIReference($refBaseURI);
|
|
2819
|
+
|
|
2820
|
+
// the target bucket depends on the referencing context, so it's part of the
|
|
2821
|
+
// identity: the same external target referenced as e.g. both a parameter and
|
|
2822
|
+
// a response must be hoisted into both components fields. The refractor sets
|
|
2823
|
+
// `referenced-element` for every Reference Object position; the `schemas`
|
|
2824
|
+
// fallback is a defensive default for the (unexpected) untagged case.
|
|
2825
|
+
const referencedElementType = referencingElement.meta.get('referenced-element');
|
|
2826
|
+
const field = componentFieldByReferencedElement[referencedElementType] ?? componentFieldByReferencedElement.schema;
|
|
2827
|
+
const canonicalKey = `${field}\t${retrievalURI}#${jsonPointer}`;
|
|
2828
|
+
|
|
2829
|
+
// already hoisted (or being hoisted) — just rewrite the pointer.
|
|
2830
|
+
//
|
|
2831
|
+
// this is also how circular references terminate: the assignment is
|
|
2832
|
+
// reserved BEFORE recursing into the fragment (see below), so a reference
|
|
2833
|
+
// that cycles back (directly or indirectly) finds its pointer already
|
|
2834
|
+
// reserved here and is rewritten without recursing. Cycles are deliberately
|
|
2835
|
+
// preserved as internal `$ref`s pointing at each other — that is valid,
|
|
2836
|
+
// serializable output; resolving the cycle (if desired) is dereferencing's
|
|
2837
|
+
// job, not bundling's.
|
|
2838
|
+
if (this.assignments.has(canonicalKey)) {
|
|
2839
|
+
referencingElement.set('$ref', this.assignments.get(canonicalKey));
|
|
2840
|
+
path.skip();
|
|
2841
|
+
return;
|
|
2842
|
+
}
|
|
2843
|
+
try {
|
|
2844
|
+
// detect maximum depth of bundling
|
|
2845
|
+
if (this.reference.depth >= this.options.bundle.maxDepth) {
|
|
2846
|
+
throw new _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_29__["default"](`Maximum bundle depth of "${this.options.bundle.maxDepth}" has been exceeded in file "${this.reference.uri}"`, {
|
|
1507
2847
|
maxDepth: this.options.bundle.maxDepth,
|
|
1508
2848
|
uri: this.reference.uri
|
|
1509
2849
|
});
|
|
@@ -1511,21 +2851,21 @@ class OpenAPI3_0BundleVisitor {
|
|
|
1511
2851
|
const reference = await this.toReference($ref);
|
|
1512
2852
|
|
|
1513
2853
|
// possibly non-semantic fragment
|
|
1514
|
-
let referencedElement = (0,
|
|
2854
|
+
let referencedElement = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.evaluate)(reference.value.result, jsonPointer);
|
|
1515
2855
|
|
|
1516
2856
|
// apply semantics to the fragment so nested references become Reference Objects
|
|
1517
|
-
if (referencedElement.element !== referencedElementType && !(0,
|
|
2857
|
+
if (referencedElement.element !== referencedElementType && !(0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__.isReferenceElement)(referencedElement)) {
|
|
1518
2858
|
const cached = this.getRefracted(referencedElement, referencedElementType);
|
|
1519
2859
|
if (cached !== undefined) {
|
|
1520
2860
|
referencedElement = cached;
|
|
1521
|
-
} else if ((0,
|
|
2861
|
+
} else if ((0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_13__.isReferenceLikeElement)(referencedElement)) {
|
|
1522
2862
|
const sourceElement = referencedElement;
|
|
1523
|
-
referencedElement = (0,
|
|
2863
|
+
referencedElement = (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__.refractReference)(referencedElement);
|
|
1524
2864
|
referencedElement.meta.set('referenced-element', referencedElementType);
|
|
1525
2865
|
this.setRefracted(sourceElement, referencedElementType, referencedElement);
|
|
1526
2866
|
} else {
|
|
1527
2867
|
const sourceElement = referencedElement;
|
|
1528
|
-
referencedElement = (0,
|
|
2868
|
+
referencedElement = (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__["default"])(referencedElement, {
|
|
1529
2869
|
element: referencedElementType
|
|
1530
2870
|
});
|
|
1531
2871
|
this.setRefracted(sourceElement, referencedElementType, referencedElement);
|
|
@@ -1533,23 +2873,8 @@ class OpenAPI3_0BundleVisitor {
|
|
|
1533
2873
|
}
|
|
1534
2874
|
const preferredName = this.baseName(referencedElement, field, jsonPointer, retrievalURI);
|
|
1535
2875
|
const componentName = this.uniqueName(preferredName, field);
|
|
1536
|
-
const internalPointer = `#/components/${field}/${(0,
|
|
1537
|
-
|
|
1538
|
-
// a rename means two distinct targets resolved to the same name; each
|
|
1539
|
-
// keeps its own component (and origin), so report the rename per severity.
|
|
1540
|
-
// strategy specific options take precedence over the top-level bundle options
|
|
1541
|
-
const onComponentNameCollision = this.options.bundle.strategyOpts['openapi-3-0']?.onComponentNameCollision ?? this.options.bundle.onComponentNameCollision;
|
|
1542
|
-
if (componentName !== preferredName && onComponentNameCollision !== 'off') {
|
|
1543
|
-
const message = `Component "${preferredName}" in components/${field} is referenced with the same name but different content. Renamed to "${componentName}".`;
|
|
1544
|
-
if (onComponentNameCollision === 'error') {
|
|
1545
|
-
throw new _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_25__["default"](message);
|
|
1546
|
-
}
|
|
1547
|
-
const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__["default"](message);
|
|
1548
|
-
annotation.classes.push('warning');
|
|
1549
|
-
annotation.code = 'bundle-component-name-collision';
|
|
1550
|
-
// append (never prepend) so the result element stays ahead of annotations
|
|
1551
|
-
this.entryParseResult.content.push(annotation);
|
|
1552
|
-
}
|
|
2876
|
+
const internalPointer = `#/components/${field}/${(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.escape)(componentName)}`;
|
|
2877
|
+
this.reportNameCollision(preferredName, componentName, field);
|
|
1553
2878
|
|
|
1554
2879
|
// reserve the assignment and component name before recursing so cyclic
|
|
1555
2880
|
// references terminate
|
|
@@ -1558,21 +2883,20 @@ class OpenAPI3_0BundleVisitor {
|
|
|
1558
2883
|
this.reservedNames.get(field).add(componentName);
|
|
1559
2884
|
|
|
1560
2885
|
// own a copy of the fragment and bundle its own external references
|
|
1561
|
-
const hoistedElement = (0,
|
|
1562
|
-
const visitor = new
|
|
2886
|
+
const hoistedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.cloneDeep)(referencedElement);
|
|
2887
|
+
const visitor = new OpenAPI3_1BundleVisitor({
|
|
1563
2888
|
reference,
|
|
1564
2889
|
options: this.options,
|
|
1565
2890
|
assignments: this.assignments,
|
|
1566
2891
|
reservedNames: this.reservedNames,
|
|
1567
|
-
refractCache: this.refractCache
|
|
1568
|
-
inlineStack: this.inlineStack
|
|
2892
|
+
refractCache: this.refractCache
|
|
1569
2893
|
});
|
|
1570
|
-
const bundledElement = await (0,
|
|
2894
|
+
const bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_10__.traverseAsync)(hoistedElement, visitor, {
|
|
1571
2895
|
mutable: true
|
|
1572
2896
|
});
|
|
1573
2897
|
|
|
1574
2898
|
// annotate the hoisted fragment with info about its origin
|
|
1575
|
-
if ((0,
|
|
2899
|
+
if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isElement)(bundledElement)) {
|
|
1576
2900
|
bundledElement.meta.set('ref-origin', reference.uri);
|
|
1577
2901
|
}
|
|
1578
2902
|
|
|
@@ -1589,99 +2913,265 @@ class OpenAPI3_0BundleVisitor {
|
|
|
1589
2913
|
}
|
|
1590
2914
|
|
|
1591
2915
|
/**
|
|
1592
|
-
*
|
|
1593
|
-
*
|
|
1594
|
-
*
|
|
1595
|
-
*
|
|
2916
|
+
* Unlike OpenAPI 3.0 (which has no `components.pathItems` field and therefore
|
|
2917
|
+
* inlines external Path Items in place), OpenAPI 3.1 hoists an external Path
|
|
2918
|
+
* Item Object into `components.pathItems` and rewrites the referencing `$ref`
|
|
2919
|
+
* to an internal pointer — mirroring how Reference Objects are bundled.
|
|
2920
|
+
* Sibling fields next to the `$ref` (e.g. `summary`, `description`) are kept
|
|
2921
|
+
* on the referencing element.
|
|
1596
2922
|
*/
|
|
1597
2923
|
async PathItemElement(path) {
|
|
1598
2924
|
const pathItemElement = path.node;
|
|
1599
2925
|
|
|
1600
2926
|
// ignore Path Item Objects without a $ref field
|
|
1601
|
-
if (!(0,
|
|
2927
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(pathItemElement.$ref)) {
|
|
1602
2928
|
return;
|
|
1603
2929
|
}
|
|
1604
|
-
const $ref = (0,
|
|
2930
|
+
const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(pathItemElement.$ref);
|
|
1605
2931
|
const retrievalURI = this.toBaseURI($ref);
|
|
1606
2932
|
const isInternalReference = this.entryURI === retrievalURI;
|
|
1607
2933
|
const isExternalReference = !isInternalReference;
|
|
1608
2934
|
if (isInternalReference) {
|
|
1609
|
-
// normalize self-
|
|
2935
|
+
// normalize self-references to a bare fragment so the bundled
|
|
1610
2936
|
// document stays transferable; bare fragments are left untouched
|
|
1611
|
-
pathItemElement.set('$ref', this.
|
|
2937
|
+
pathItemElement.set('$ref', this.normalizeSelfReference($ref));
|
|
2938
|
+
path.skip();
|
|
1612
2939
|
return;
|
|
1613
2940
|
}
|
|
1614
2941
|
|
|
1615
2942
|
// honor the resolve.external switch
|
|
1616
2943
|
if (!this.options.resolve.external && isExternalReference) {
|
|
2944
|
+
path.skip();
|
|
1617
2945
|
return;
|
|
1618
2946
|
}
|
|
1619
|
-
const $refBaseURI =
|
|
1620
|
-
const jsonPointer =
|
|
1621
|
-
const
|
|
2947
|
+
const $refBaseURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.resolve(retrievalURI, $ref);
|
|
2948
|
+
const jsonPointer = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.URIFragmentIdentifier.fromURIReference($refBaseURI);
|
|
2949
|
+
const field = cf.pathItems.name;
|
|
2950
|
+
const canonicalKey = `${field}\t${retrievalURI}#${jsonPointer}`;
|
|
1622
2951
|
|
|
1623
|
-
//
|
|
1624
|
-
//
|
|
1625
|
-
|
|
2952
|
+
// already hoisted (or being hoisted) — just rewrite the pointer. The
|
|
2953
|
+
// assignment is reserved BEFORE recursing, so a circular Path Item chain
|
|
2954
|
+
// terminates here with an internal pointer instead of recursing forever.
|
|
2955
|
+
if (this.assignments.has(canonicalKey)) {
|
|
2956
|
+
pathItemElement.set('$ref', this.assignments.get(canonicalKey));
|
|
2957
|
+
path.skip();
|
|
1626
2958
|
return;
|
|
1627
2959
|
}
|
|
1628
2960
|
try {
|
|
1629
2961
|
// detect maximum depth of bundling
|
|
1630
2962
|
if (this.reference.depth >= this.options.bundle.maxDepth) {
|
|
1631
|
-
throw new
|
|
2963
|
+
throw new _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_29__["default"](`Maximum bundle depth of "${this.options.bundle.maxDepth}" has been exceeded in file "${this.reference.uri}"`, {
|
|
1632
2964
|
maxDepth: this.options.bundle.maxDepth,
|
|
1633
2965
|
uri: this.reference.uri
|
|
1634
2966
|
});
|
|
1635
2967
|
}
|
|
1636
2968
|
const reference = await this.toReference($ref);
|
|
1637
|
-
let referencedElement = (0,
|
|
2969
|
+
let referencedElement = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.evaluate)(reference.value.result, jsonPointer);
|
|
1638
2970
|
|
|
1639
2971
|
// apply Path Item semantics to the referenced fragment
|
|
1640
|
-
if (!(0,
|
|
2972
|
+
if (!(0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__.isPathItemElement)(referencedElement)) {
|
|
1641
2973
|
const cached = this.getRefracted(referencedElement, 'pathItem');
|
|
1642
2974
|
if (cached !== undefined) {
|
|
1643
2975
|
referencedElement = cached;
|
|
1644
2976
|
} else {
|
|
1645
2977
|
const sourceElement = referencedElement;
|
|
1646
|
-
referencedElement = (0,
|
|
2978
|
+
referencedElement = (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__.refractPathItem)(referencedElement);
|
|
1647
2979
|
this.setRefracted(sourceElement, 'pathItem', referencedElement);
|
|
1648
2980
|
}
|
|
1649
2981
|
}
|
|
2982
|
+
const preferredName = this.baseName(referencedElement, field, jsonPointer, retrievalURI);
|
|
2983
|
+
const componentName = this.uniqueName(preferredName, field);
|
|
2984
|
+
const internalPointer = `#/components/${field}/${(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.escape)(componentName)}`;
|
|
2985
|
+
this.reportNameCollision(preferredName, componentName, field);
|
|
1650
2986
|
|
|
1651
|
-
//
|
|
1652
|
-
|
|
1653
|
-
this.
|
|
1654
|
-
|
|
2987
|
+
// reserve the assignment and component name before recursing so cyclic
|
|
2988
|
+
// references terminate
|
|
2989
|
+
this.assignments.set(canonicalKey, internalPointer);
|
|
2990
|
+
if (!this.reservedNames.has(field)) this.reservedNames.set(field, new Set());
|
|
2991
|
+
this.reservedNames.get(field).add(componentName);
|
|
2992
|
+
|
|
2993
|
+
// own a copy of the fragment and bundle its own external references
|
|
2994
|
+
const hoistedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.cloneDeep)(referencedElement);
|
|
2995
|
+
const visitor = new OpenAPI3_1BundleVisitor({
|
|
1655
2996
|
reference,
|
|
1656
2997
|
options: this.options,
|
|
1657
2998
|
assignments: this.assignments,
|
|
1658
2999
|
reservedNames: this.reservedNames,
|
|
1659
|
-
refractCache: this.refractCache
|
|
1660
|
-
inlineStack: this.inlineStack
|
|
3000
|
+
refractCache: this.refractCache
|
|
1661
3001
|
});
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
3002
|
+
const bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_10__.traverseAsync)(hoistedElement, visitor, {
|
|
3003
|
+
mutable: true
|
|
3004
|
+
});
|
|
3005
|
+
|
|
3006
|
+
// a `$ref` surviving on the hoisted Path Item means it pointed at another
|
|
3007
|
+
// Path Item (a chain or cycle); it has already been rewritten to an
|
|
3008
|
+
// internal `#/components/pathItems/...` pointer by the child traversal
|
|
3009
|
+
bundledElement.meta.set('ref-origin', reference.uri);
|
|
3010
|
+
|
|
3011
|
+
// place the bundled Path Item into the entry document's components
|
|
3012
|
+
this.ensureComponentsField(field).set(componentName, bundledElement);
|
|
3013
|
+
|
|
3014
|
+
// rewrite the referencing Path Item to point at the hoisted one, keeping
|
|
3015
|
+
// any sibling fields (e.g. summary, description) next to the $ref
|
|
3016
|
+
pathItemElement.set('$ref', internalPointer);
|
|
3017
|
+
path.skip();
|
|
3018
|
+
} catch (error) {
|
|
3019
|
+
this.handleError(`Error while bundling Path Item Object. Cannot resolve $ref "${$ref}": ${error.message}`, error, pathItemElement, '$ref', $ref, path);
|
|
3020
|
+
path.skip();
|
|
3021
|
+
}
|
|
3022
|
+
}
|
|
3023
|
+
|
|
3024
|
+
/**
|
|
3025
|
+
* Schema Objects in OpenAPI 3.1 are a JSON Schema 2020-12 dialect, so they are
|
|
3026
|
+
* bundled per the JSON Schema Compound Document rules: the external schema
|
|
3027
|
+
* RESOURCE is embedded verbatim into `components.schemas` (carrying its `$id`),
|
|
3028
|
+
* and the referencing `$ref` is left UNCHANGED — it keeps resolving against the
|
|
3029
|
+
* embedded resource's `$id`. This mirrors the canonical hyperjump
|
|
3030
|
+
* `json-schema-bundle` behavior (the whole resource is embedded once, keyed by
|
|
3031
|
+
* its `$id`; references are not rewritten).
|
|
3032
|
+
*/
|
|
3033
|
+
async SchemaElement(path) {
|
|
3034
|
+
const referencingElement = path.node;
|
|
3035
|
+
|
|
3036
|
+
// skip current referencing schema as $ref keyword was not defined
|
|
3037
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(referencingElement.$ref)) {
|
|
3038
|
+
return;
|
|
3039
|
+
}
|
|
3040
|
+
const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(referencingElement.$ref);
|
|
3041
|
+
try {
|
|
3042
|
+
// compute baseURI using rules around $id and $ref keywords. The current
|
|
3043
|
+
// document's URI is the retrieval URI — derive it directly (not via
|
|
3044
|
+
// toReference) so an internal $ref needs no resolution and never trips the
|
|
3045
|
+
// resolve.maxDepth guard, matching how ReferenceElement returns early.
|
|
3046
|
+
const retrievalURI = this.reference.uri;
|
|
3047
|
+
const $refBaseURI = (0,_dereference_strategies_openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_38__.resolveSchema$refField)(retrievalURI, referencingElement);
|
|
3048
|
+
const $refBaseURIStrippedHash = _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.stripHash($refBaseURI);
|
|
3049
|
+
const file = new _File_ts__WEBPACK_IMPORTED_MODULE_35__["default"]({
|
|
3050
|
+
uri: $refBaseURIStrippedHash
|
|
3051
|
+
});
|
|
3052
|
+
const isUnknownURI = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(r => r.canRead(file), this.options.resolve.resolvers);
|
|
3053
|
+
const isURL = !isUnknownURI;
|
|
3054
|
+
const isInternalReference = _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.stripHash(this.reference.uri) === $refBaseURIStrippedHash;
|
|
3055
|
+
const isExternalReference = !isInternalReference;
|
|
3056
|
+
|
|
3057
|
+
// internal Schema Object $refs resolve against the in-document $id graph;
|
|
3058
|
+
// leaving them untouched keeps that resolution valid. Unlike Reference
|
|
3059
|
+
// Objects, a JSON Schema $ref is NOT normalized to a bare fragment.
|
|
3060
|
+
if (isInternalReference) {
|
|
3061
|
+
return;
|
|
3062
|
+
}
|
|
3063
|
+
|
|
3064
|
+
// honor the resolve.external switch
|
|
3065
|
+
if (!this.options.resolve.external && isExternalReference) {
|
|
3066
|
+
return;
|
|
3067
|
+
}
|
|
3068
|
+
|
|
3069
|
+
// detect maximum depth of bundling before fetching the external resource,
|
|
3070
|
+
// matching ReferenceElement/PathItemElement (which check before toReference)
|
|
3071
|
+
if (this.reference.depth >= this.options.bundle.maxDepth) {
|
|
3072
|
+
throw new _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_29__["default"](`Maximum bundle depth of "${this.options.bundle.maxDepth}" has been exceeded in file "${this.reference.uri}"`, {
|
|
3073
|
+
maxDepth: this.options.bundle.maxDepth,
|
|
3074
|
+
uri: this.reference.uri
|
|
1666
3075
|
});
|
|
1667
|
-
} finally {
|
|
1668
|
-
this.inlineStack.delete(canonicalKey);
|
|
1669
3076
|
}
|
|
1670
3077
|
|
|
1671
|
-
//
|
|
1672
|
-
//
|
|
1673
|
-
//
|
|
1674
|
-
//
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
3078
|
+
// locate the external schema resource the $ref targets, reusing the
|
|
3079
|
+
// dereference strategy's classification. First try to resolve the target
|
|
3080
|
+
// as a canonical URI / URL against the current document's $id graph; if
|
|
3081
|
+
// that fails, fall back to fetching the external document and resolving
|
|
3082
|
+
// the fragment there as a $anchor or JSON Pointer.
|
|
3083
|
+
let schemaReference = this.reference;
|
|
3084
|
+
try {
|
|
3085
|
+
const referenceAsSchema = (0,_dereference_strategies_openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_38__.maybeRefractToSchemaElement)(schemaReference.value.result);
|
|
3086
|
+
(0,_dereference_strategies_openapi_3_1_selectors_uri_ts__WEBPACK_IMPORTED_MODULE_37__.evaluate)($refBaseURI, referenceAsSchema);
|
|
3087
|
+
} catch (error) {
|
|
3088
|
+
if (isURL && error instanceof _errors_EvaluationJsonSchemaUriError_ts__WEBPACK_IMPORTED_MODULE_31__["default"]) {
|
|
3089
|
+
if ((0,_dereference_strategies_openapi_3_1_selectors_$anchor_ts__WEBPACK_IMPORTED_MODULE_36__.isAnchor)((0,_dereference_strategies_openapi_3_1_selectors_$anchor_ts__WEBPACK_IMPORTED_MODULE_36__.uriToAnchor)($refBaseURI))) {
|
|
3090
|
+
schemaReference = await this.toReference(_util_url_ts__WEBPACK_IMPORTED_MODULE_32__.unsanitize($refBaseURI));
|
|
3091
|
+
const selector = (0,_dereference_strategies_openapi_3_1_selectors_$anchor_ts__WEBPACK_IMPORTED_MODULE_36__.uriToAnchor)($refBaseURI);
|
|
3092
|
+
const referenceAsSchema = (0,_dereference_strategies_openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_38__.maybeRefractToSchemaElement)(schemaReference.value.result);
|
|
3093
|
+
(0,_dereference_strategies_openapi_3_1_selectors_$anchor_ts__WEBPACK_IMPORTED_MODULE_36__.evaluate)(selector, referenceAsSchema);
|
|
3094
|
+
} else {
|
|
3095
|
+
schemaReference = await this.toReference(_util_url_ts__WEBPACK_IMPORTED_MODULE_32__.unsanitize($refBaseURI));
|
|
3096
|
+
const selector = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.URIFragmentIdentifier.fromURIReference($refBaseURI);
|
|
3097
|
+
const referenceAsSchema = (0,_dereference_strategies_openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_38__.maybeRefractToSchemaElement)(schemaReference.value.result);
|
|
3098
|
+
(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.evaluate)(referenceAsSchema, selector);
|
|
3099
|
+
}
|
|
3100
|
+
} else {
|
|
3101
|
+
throw error;
|
|
3102
|
+
}
|
|
3103
|
+
}
|
|
3104
|
+
|
|
3105
|
+
// a $ref that resolves (by $id/$anchor/pointer) within the current document
|
|
3106
|
+
// is internal even when its URI form (e.g. a URN or absolute $id) is not a
|
|
3107
|
+
// bare fragment. Leave it untouched — it resolves against the in-document
|
|
3108
|
+
// $id graph, and embedding the current document into itself would be wrong.
|
|
3109
|
+
if (_util_url_ts__WEBPACK_IMPORTED_MODULE_32__.stripHash(schemaReference.uri) === _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.stripHash(this.reference.uri)) {
|
|
3110
|
+
return;
|
|
3111
|
+
}
|
|
3112
|
+
|
|
3113
|
+
// the resource to embed is the WHOLE external document (its root schema),
|
|
3114
|
+
// identified by its $id. A $ref into a fragment of the document embeds the
|
|
3115
|
+
// entire document resource once; the fragment keeps resolving against the
|
|
3116
|
+
// embedded $id.
|
|
3117
|
+
const resourceRoot = (0,_dereference_strategies_openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_38__.maybeRefractToSchemaElement)(schemaReference.value.result);
|
|
3118
|
+
const resourceBaseURI = (0,_dereference_strategies_openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_38__.resolveSchema$idField)(_util_url_ts__WEBPACK_IMPORTED_MODULE_32__.stripHash(schemaReference.uri), resourceRoot) ?? _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.stripHash(schemaReference.uri);
|
|
3119
|
+
const field = cf.schemas.name;
|
|
3120
|
+
const canonicalKey = `${field}\t${resourceBaseURI}`;
|
|
3121
|
+
|
|
3122
|
+
// resource already embedded (or being embedded) — leave the referencing
|
|
3123
|
+
// $ref untouched and stop. This also terminates circular external schema
|
|
3124
|
+
// references, since the assignment is reserved BEFORE recursion.
|
|
3125
|
+
if (this.assignments.has(canonicalKey)) {
|
|
3126
|
+
path.skip();
|
|
3127
|
+
return;
|
|
3128
|
+
}
|
|
3129
|
+
|
|
3130
|
+
// own a copy of the resource and ensure it carries a $id so the unchanged
|
|
3131
|
+
// $ref still resolves against it once embedded
|
|
3132
|
+
const embeddedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.cloneDeep)(resourceRoot);
|
|
3133
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(embeddedElement.$id)) {
|
|
3134
|
+
embeddedElement.set('$id', resourceBaseURI);
|
|
3135
|
+
}
|
|
3136
|
+
|
|
3137
|
+
// the embedded thing is the WHOLE resource (keyed by its $id), so its name
|
|
3138
|
+
// is derived from the resource URI, not the $ref fragment — passing a root
|
|
3139
|
+
// pointer makes baseName fall back to the resource basename
|
|
3140
|
+
const preferredName = this.baseName(embeddedElement, field, '', resourceBaseURI);
|
|
3141
|
+
const componentName = this.uniqueName(preferredName, field);
|
|
3142
|
+
this.reportNameCollision(preferredName, componentName, field);
|
|
3143
|
+
|
|
3144
|
+
// reserve the assignment and component name before recursing so circular
|
|
3145
|
+
// external schema references terminate
|
|
3146
|
+
this.assignments.set(canonicalKey, `#/components/${field}/${(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.escape)(componentName)}`);
|
|
3147
|
+
if (!this.reservedNames.has(field)) this.reservedNames.set(field, new Set());
|
|
3148
|
+
this.reservedNames.get(field).add(componentName);
|
|
3149
|
+
|
|
3150
|
+
// bundle external references contained within the embedded resource;
|
|
3151
|
+
// nested external resources land flat in the same components.schemas
|
|
3152
|
+
const visitor = new OpenAPI3_1BundleVisitor({
|
|
3153
|
+
reference: schemaReference,
|
|
3154
|
+
options: this.options,
|
|
3155
|
+
assignments: this.assignments,
|
|
3156
|
+
reservedNames: this.reservedNames,
|
|
3157
|
+
refractCache: this.refractCache
|
|
1680
3158
|
});
|
|
1681
|
-
bundledElement.
|
|
1682
|
-
|
|
3159
|
+
const bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_10__.traverseAsync)(embeddedElement, visitor, {
|
|
3160
|
+
mutable: true
|
|
3161
|
+
});
|
|
3162
|
+
|
|
3163
|
+
// annotate the embedded resource with info about its origin
|
|
3164
|
+
bundledElement.meta.set('ref-origin', schemaReference.uri);
|
|
3165
|
+
|
|
3166
|
+
// place the embedded resource into the entry document's components
|
|
3167
|
+
this.ensureComponentsField(field).set(componentName, bundledElement);
|
|
3168
|
+
|
|
3169
|
+
// the referencing $ref is left UNCHANGED — it resolves against the
|
|
3170
|
+
// embedded resource's $id
|
|
3171
|
+
path.skip();
|
|
1683
3172
|
} catch (error) {
|
|
1684
|
-
this.handleError(`Error while bundling
|
|
3173
|
+
this.handleError(`Error while bundling Schema Object. Cannot resolve $ref "${$ref}": ${error.message}`, error, referencingElement, '$ref', $ref, path);
|
|
3174
|
+
path.skip();
|
|
1685
3175
|
}
|
|
1686
3176
|
}
|
|
1687
3177
|
|
|
@@ -1694,18 +3184,18 @@ class OpenAPI3_0BundleVisitor {
|
|
|
1694
3184
|
const exampleElement = path.node;
|
|
1695
3185
|
|
|
1696
3186
|
// ignore Example Objects without an externalValue field
|
|
1697
|
-
if (!(0,
|
|
3187
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(exampleElement.externalValue)) {
|
|
1698
3188
|
return;
|
|
1699
3189
|
}
|
|
1700
3190
|
|
|
1701
3191
|
// value and externalValue fields are mutually exclusive
|
|
1702
|
-
if (exampleElement.hasKey('value') && (0,
|
|
1703
|
-
throw new
|
|
1704
|
-
value: (0,
|
|
1705
|
-
externalValue: (0,
|
|
3192
|
+
if (exampleElement.hasKey('value') && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(exampleElement.externalValue)) {
|
|
3193
|
+
throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_9__["default"]('ExampleElement value and externalValue fields are mutually exclusive', {
|
|
3194
|
+
value: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(exampleElement.value),
|
|
3195
|
+
externalValue: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(exampleElement.externalValue)
|
|
1706
3196
|
});
|
|
1707
3197
|
}
|
|
1708
|
-
const externalValue = (0,
|
|
3198
|
+
const externalValue = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(exampleElement.externalValue);
|
|
1709
3199
|
const retrievalURI = this.toBaseURI(externalValue);
|
|
1710
3200
|
const isInternalReference = this.entryURI === retrievalURI;
|
|
1711
3201
|
const isExternalReference = !isInternalReference;
|
|
@@ -1716,9 +3206,9 @@ class OpenAPI3_0BundleVisitor {
|
|
|
1716
3206
|
}
|
|
1717
3207
|
try {
|
|
1718
3208
|
const reference = await this.toReference(externalValue);
|
|
1719
|
-
const valueElement = (0,
|
|
3209
|
+
const valueElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.cloneShallow)(reference.value.result);
|
|
1720
3210
|
valueElement.meta.set('ref-origin', reference.uri);
|
|
1721
|
-
const exampleElementCopy = (0,
|
|
3211
|
+
const exampleElementCopy = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.cloneShallow)(exampleElement);
|
|
1722
3212
|
exampleElementCopy.value = valueElement;
|
|
1723
3213
|
exampleElementCopy.remove('externalValue');
|
|
1724
3214
|
path.replaceWith(exampleElementCopy);
|
|
@@ -1729,7 +3219,7 @@ class OpenAPI3_0BundleVisitor {
|
|
|
1729
3219
|
|
|
1730
3220
|
/**
|
|
1731
3221
|
* Link Object `operationRef` points at an Operation Object, which has no
|
|
1732
|
-
* Components Object field in OpenAPI 3.
|
|
3222
|
+
* Components Object field in OpenAPI 3.1 and therefore cannot be hoisted or
|
|
1733
3223
|
* inlined. To keep the link resolvable from the bundled document, an external
|
|
1734
3224
|
* `operationRef` is rewritten to its absolute URI. Internal `operationRef`
|
|
1735
3225
|
* values and `operationId` links are left untouched.
|
|
@@ -1738,24 +3228,24 @@ class OpenAPI3_0BundleVisitor {
|
|
|
1738
3228
|
const linkElement = path.node;
|
|
1739
3229
|
|
|
1740
3230
|
// operationRef and operationId fields are mutually exclusive
|
|
1741
|
-
if ((0,
|
|
1742
|
-
throw new
|
|
1743
|
-
operationRef: (0,
|
|
1744
|
-
operationId: (0,
|
|
3231
|
+
if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(linkElement.operationRef) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(linkElement.operationId)) {
|
|
3232
|
+
throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_9__["default"]('LinkElement operationRef and operationId fields are mutually exclusive', {
|
|
3233
|
+
operationRef: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(linkElement.operationRef),
|
|
3234
|
+
operationId: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(linkElement.operationId)
|
|
1745
3235
|
});
|
|
1746
3236
|
}
|
|
1747
3237
|
|
|
1748
3238
|
// only external operationRef links need adjusting
|
|
1749
|
-
if (!(0,
|
|
3239
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(linkElement.operationRef)) {
|
|
1750
3240
|
return;
|
|
1751
3241
|
}
|
|
1752
|
-
const operationRef = (0,
|
|
3242
|
+
const operationRef = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(linkElement.operationRef);
|
|
1753
3243
|
const retrievalURI = this.toBaseURI(operationRef);
|
|
1754
3244
|
const isInternalReference = this.entryURI === retrievalURI;
|
|
1755
3245
|
if (isInternalReference) {
|
|
1756
|
-
// normalize self-
|
|
3246
|
+
// normalize a self-reference operationRef to a bare fragment so the bundled
|
|
1757
3247
|
// document stays transferable; bare fragments are left untouched
|
|
1758
|
-
linkElement.set('operationRef', this.
|
|
3248
|
+
linkElement.set('operationRef', this.normalizeSelfReference(operationRef));
|
|
1759
3249
|
return;
|
|
1760
3250
|
}
|
|
1761
3251
|
|
|
@@ -1766,58 +3256,13 @@ class OpenAPI3_0BundleVisitor {
|
|
|
1766
3256
|
|
|
1767
3257
|
// rewrite to an absolute URI so the link keeps resolving once the document
|
|
1768
3258
|
// is treated as self-contained
|
|
1769
|
-
const absoluteURI =
|
|
3259
|
+
const absoluteURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.resolve(this.reference.uri, operationRef);
|
|
1770
3260
|
if (absoluteURI !== operationRef) {
|
|
1771
3261
|
linkElement.set('operationRef', absoluteURI);
|
|
1772
3262
|
}
|
|
1773
3263
|
}
|
|
1774
3264
|
}
|
|
1775
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (
|
|
1776
|
-
|
|
1777
|
-
/***/ },
|
|
1778
|
-
|
|
1779
|
-
/***/ 16432
|
|
1780
|
-
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1781
|
-
|
|
1782
|
-
"use strict";
|
|
1783
|
-
__webpack_require__.r(__webpack_exports__);
|
|
1784
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1785
|
-
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
1786
|
-
/* harmony export */ });
|
|
1787
|
-
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7822);
|
|
1788
|
-
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(76332);
|
|
1789
|
-
/* harmony import */ var _BundleStrategy_ts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(75508);
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
/**
|
|
1794
|
-
* @public
|
|
1795
|
-
*/
|
|
1796
|
-
|
|
1797
|
-
/**
|
|
1798
|
-
* @public
|
|
1799
|
-
*/
|
|
1800
|
-
class OpenAPI3_1BundleStrategy extends _BundleStrategy_ts__WEBPACK_IMPORTED_MODULE_2__["default"] {
|
|
1801
|
-
constructor(options) {
|
|
1802
|
-
super({
|
|
1803
|
-
...(options ?? {}),
|
|
1804
|
-
name: 'openapi-3-1'
|
|
1805
|
-
});
|
|
1806
|
-
}
|
|
1807
|
-
canBundle(file) {
|
|
1808
|
-
// assert by media type
|
|
1809
|
-
if (file.mediaType !== 'text/plain') {
|
|
1810
|
-
return _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_0__["default"].includes(file.mediaType);
|
|
1811
|
-
}
|
|
1812
|
-
|
|
1813
|
-
// assert by inspecting ApiDOM
|
|
1814
|
-
return (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_1__.isOpenApi3_1Element)(file.parseResult?.result);
|
|
1815
|
-
}
|
|
1816
|
-
async bundle(file) {
|
|
1817
|
-
return file.parseResult;
|
|
1818
|
-
}
|
|
1819
|
-
}
|
|
1820
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI3_1BundleStrategy);
|
|
3265
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI3_1BundleVisitor);
|
|
1821
3266
|
|
|
1822
3267
|
/***/ },
|
|
1823
3268
|
|
|
@@ -10705,6 +12150,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
10705
12150
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
10706
12151
|
/* harmony export */ cwd: () => (/* binding */ cwd),
|
|
10707
12152
|
/* harmony export */ fromFileSystemPath: () => (/* binding */ fromFileSystemPath),
|
|
12153
|
+
/* harmony export */ getBasename: () => (/* binding */ getBasename),
|
|
10708
12154
|
/* harmony export */ getExtension: () => (/* binding */ getExtension),
|
|
10709
12155
|
/* harmony export */ getHash: () => (/* binding */ getHash),
|
|
10710
12156
|
/* harmony export */ getProtocol: () => (/* binding */ getProtocol),
|
|
@@ -10764,19 +12210,40 @@ const getProtocol = url => {
|
|
|
10764
12210
|
*/
|
|
10765
12211
|
const hasProtocol = (0,ramda__WEBPACK_IMPORTED_MODULE_3__["default"])(getProtocol, ramda_adjunct__WEBPACK_IMPORTED_MODULE_6__["default"]);
|
|
10766
12212
|
|
|
12213
|
+
/**
|
|
12214
|
+
* Returns the final path segment of the given URI (the part after the last
|
|
12215
|
+
* `/`). Inputs are URIs, whose path separator is `/` — filesystem paths are
|
|
12216
|
+
* forward-slashed by `sanitize` before reaching here.
|
|
12217
|
+
*/
|
|
12218
|
+
const getFilename = uri => uri.slice(uri.lastIndexOf('/') + 1);
|
|
12219
|
+
|
|
10767
12220
|
/**
|
|
10768
12221
|
* Returns the lower-cased file extension of the given URL,
|
|
10769
12222
|
* or an empty string if it has no extension.
|
|
10770
12223
|
* @public
|
|
10771
12224
|
*/
|
|
10772
12225
|
const getExtension = url => {
|
|
10773
|
-
const
|
|
12226
|
+
const fileName = getFilename(url);
|
|
12227
|
+
const lastDotPosition = fileName.lastIndexOf('.');
|
|
10774
12228
|
if (lastDotPosition >= 0) {
|
|
10775
|
-
return
|
|
12229
|
+
return fileName.substring(lastDotPosition).toLowerCase();
|
|
10776
12230
|
}
|
|
10777
12231
|
return '';
|
|
10778
12232
|
};
|
|
10779
12233
|
|
|
12234
|
+
/**
|
|
12235
|
+
* Returns the final path segment of the given URI with its file extension
|
|
12236
|
+
* removed (e.g. `./schemas/Pet.json` -> `Pet`). Returns the whole segment when
|
|
12237
|
+
* there is no extension, and the whole URI when there is no path segment
|
|
12238
|
+
* (e.g. a URN).
|
|
12239
|
+
* @public
|
|
12240
|
+
*/
|
|
12241
|
+
const getBasename = uri => {
|
|
12242
|
+
const fileName = getFilename(uri);
|
|
12243
|
+
const extension = getExtension(uri);
|
|
12244
|
+
return extension === '' ? fileName : fileName.slice(0, -extension.length);
|
|
12245
|
+
};
|
|
12246
|
+
|
|
10780
12247
|
/**
|
|
10781
12248
|
* Determines whether the given path is a filesystem path.
|
|
10782
12249
|
* This includes "file://" URLs.
|
|
@@ -50707,6 +52174,149 @@ const refractWorkflow = (value, options = {}) => refract(value, {
|
|
|
50707
52174
|
});
|
|
50708
52175
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (refract);
|
|
50709
52176
|
|
|
52177
|
+
/***/ },
|
|
52178
|
+
|
|
52179
|
+
/***/ 90016
|
|
52180
|
+
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
52181
|
+
|
|
52182
|
+
"use strict";
|
|
52183
|
+
__webpack_require__.r(__webpack_exports__);
|
|
52184
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
52185
|
+
/* harmony export */ ArazzoElement: () => (/* reexport safe */ _elements_Arazzo_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]),
|
|
52186
|
+
/* harmony export */ ArazzoSpecification1Element: () => (/* reexport safe */ _elements_ArazzoSpecification1_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]),
|
|
52187
|
+
/* harmony export */ ComponentsElement: () => (/* reexport safe */ _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]),
|
|
52188
|
+
/* harmony export */ CriterionElement: () => (/* reexport safe */ _elements_Criterion_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]),
|
|
52189
|
+
/* harmony export */ CriterionExpressionTypeElement: () => (/* reexport safe */ _elements_CriterionExpressionType_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]),
|
|
52190
|
+
/* harmony export */ FailureActionElement: () => (/* reexport safe */ _elements_FailureAction_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]),
|
|
52191
|
+
/* harmony export */ InfoElement: () => (/* reexport safe */ _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_8__["default"]),
|
|
52192
|
+
/* harmony export */ JSONSchemaElement: () => (/* reexport safe */ _elements_JSONSchema_mjs__WEBPACK_IMPORTED_MODULE_9__["default"]),
|
|
52193
|
+
/* harmony export */ ParameterElement: () => (/* reexport safe */ _elements_Parameter_mjs__WEBPACK_IMPORTED_MODULE_10__["default"]),
|
|
52194
|
+
/* harmony export */ PayloadReplacementElement: () => (/* reexport safe */ _elements_PayloadReplacement_mjs__WEBPACK_IMPORTED_MODULE_11__["default"]),
|
|
52195
|
+
/* harmony export */ RequestBodyElement: () => (/* reexport safe */ _elements_RequestBody_mjs__WEBPACK_IMPORTED_MODULE_12__["default"]),
|
|
52196
|
+
/* harmony export */ ReusableElement: () => (/* reexport safe */ _elements_Reusable_mjs__WEBPACK_IMPORTED_MODULE_13__["default"]),
|
|
52197
|
+
/* harmony export */ SourceDescriptionElement: () => (/* reexport safe */ _elements_SourceDescription_mjs__WEBPACK_IMPORTED_MODULE_14__["default"]),
|
|
52198
|
+
/* harmony export */ StepElement: () => (/* reexport safe */ _elements_Step_mjs__WEBPACK_IMPORTED_MODULE_15__["default"]),
|
|
52199
|
+
/* harmony export */ SuccessActionElement: () => (/* reexport safe */ _elements_SuccessAction_mjs__WEBPACK_IMPORTED_MODULE_16__["default"]),
|
|
52200
|
+
/* harmony export */ WorkflowElement: () => (/* reexport safe */ _elements_Workflow_mjs__WEBPACK_IMPORTED_MODULE_17__["default"])
|
|
52201
|
+
/* harmony export */ });
|
|
52202
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60572);
|
|
52203
|
+
/* harmony import */ var ramda_adjunct__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34606);
|
|
52204
|
+
/* harmony import */ var _elements_Arazzo_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12400);
|
|
52205
|
+
/* harmony import */ var _elements_ArazzoSpecification1_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(53540);
|
|
52206
|
+
/* harmony import */ var _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36245);
|
|
52207
|
+
/* harmony import */ var _elements_Criterion_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(59302);
|
|
52208
|
+
/* harmony import */ var _elements_CriterionExpressionType_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(90696);
|
|
52209
|
+
/* harmony import */ var _elements_FailureAction_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(32623);
|
|
52210
|
+
/* harmony import */ var _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(59801);
|
|
52211
|
+
/* harmony import */ var _elements_JSONSchema_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(99922);
|
|
52212
|
+
/* harmony import */ var _elements_Parameter_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(66726);
|
|
52213
|
+
/* harmony import */ var _elements_PayloadReplacement_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(2923);
|
|
52214
|
+
/* harmony import */ var _elements_RequestBody_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(44452);
|
|
52215
|
+
/* harmony import */ var _elements_Reusable_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(8954);
|
|
52216
|
+
/* harmony import */ var _elements_SourceDescription_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(43368);
|
|
52217
|
+
/* harmony import */ var _elements_Step_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(67923);
|
|
52218
|
+
/* harmony import */ var _elements_SuccessAction_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(256);
|
|
52219
|
+
/* harmony import */ var _elements_Workflow_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(46750);
|
|
52220
|
+
/* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(62707);
|
|
52221
|
+
|
|
52222
|
+
|
|
52223
|
+
|
|
52224
|
+
|
|
52225
|
+
|
|
52226
|
+
|
|
52227
|
+
|
|
52228
|
+
|
|
52229
|
+
|
|
52230
|
+
|
|
52231
|
+
|
|
52232
|
+
|
|
52233
|
+
|
|
52234
|
+
|
|
52235
|
+
|
|
52236
|
+
|
|
52237
|
+
|
|
52238
|
+
|
|
52239
|
+
|
|
52240
|
+
/**
|
|
52241
|
+
* @public
|
|
52242
|
+
*/
|
|
52243
|
+
const resolvedSpec = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__.resolveSpecification)(_specification_mjs__WEBPACK_IMPORTED_MODULE_18__["default"]);
|
|
52244
|
+
const getFixedFields = fixedFieldsSpec => {
|
|
52245
|
+
return Object.entries(fixedFieldsSpec).map(([name, fieldSpec]) => {
|
|
52246
|
+
if ((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_1__["default"])(fieldSpec)) {
|
|
52247
|
+
return {
|
|
52248
|
+
name,
|
|
52249
|
+
...fieldSpec
|
|
52250
|
+
};
|
|
52251
|
+
}
|
|
52252
|
+
return {
|
|
52253
|
+
name,
|
|
52254
|
+
$visitor: fieldSpec
|
|
52255
|
+
};
|
|
52256
|
+
});
|
|
52257
|
+
};
|
|
52258
|
+
Object.defineProperty(_elements_ArazzoSpecification1_mjs__WEBPACK_IMPORTED_MODULE_3__["default"], 'fixedFields', {
|
|
52259
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.ArazzoSpecification.fixedFields),
|
|
52260
|
+
enumerable: true
|
|
52261
|
+
});
|
|
52262
|
+
Object.defineProperty(_elements_Components_mjs__WEBPACK_IMPORTED_MODULE_4__["default"], 'fixedFields', {
|
|
52263
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Components.fixedFields),
|
|
52264
|
+
enumerable: true
|
|
52265
|
+
});
|
|
52266
|
+
Object.defineProperty(_elements_Criterion_mjs__WEBPACK_IMPORTED_MODULE_5__["default"], 'fixedFields', {
|
|
52267
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Criterion.fixedFields),
|
|
52268
|
+
enumerable: true
|
|
52269
|
+
});
|
|
52270
|
+
Object.defineProperty(_elements_CriterionExpressionType_mjs__WEBPACK_IMPORTED_MODULE_6__["default"], 'fixedFields', {
|
|
52271
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.CriterionExpressionType.fixedFields),
|
|
52272
|
+
enumerable: true
|
|
52273
|
+
});
|
|
52274
|
+
Object.defineProperty(_elements_FailureAction_mjs__WEBPACK_IMPORTED_MODULE_7__["default"], 'fixedFields', {
|
|
52275
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.FailureAction.fixedFields),
|
|
52276
|
+
enumerable: true
|
|
52277
|
+
});
|
|
52278
|
+
Object.defineProperty(_elements_Info_mjs__WEBPACK_IMPORTED_MODULE_8__["default"], 'fixedFields', {
|
|
52279
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Info.fixedFields),
|
|
52280
|
+
enumerable: true
|
|
52281
|
+
});
|
|
52282
|
+
Object.defineProperty(_elements_JSONSchema_mjs__WEBPACK_IMPORTED_MODULE_9__["default"], 'fixedFields', {
|
|
52283
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.JSONSchema.fixedFields),
|
|
52284
|
+
enumerable: true
|
|
52285
|
+
});
|
|
52286
|
+
Object.defineProperty(_elements_Parameter_mjs__WEBPACK_IMPORTED_MODULE_10__["default"], 'fixedFields', {
|
|
52287
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Parameter.fixedFields),
|
|
52288
|
+
enumerable: true
|
|
52289
|
+
});
|
|
52290
|
+
Object.defineProperty(_elements_PayloadReplacement_mjs__WEBPACK_IMPORTED_MODULE_11__["default"], 'fixedFields', {
|
|
52291
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.PayloadReplacement.fixedFields),
|
|
52292
|
+
enumerable: true
|
|
52293
|
+
});
|
|
52294
|
+
Object.defineProperty(_elements_RequestBody_mjs__WEBPACK_IMPORTED_MODULE_12__["default"], 'fixedFields', {
|
|
52295
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.RequestBody.fixedFields),
|
|
52296
|
+
enumerable: true
|
|
52297
|
+
});
|
|
52298
|
+
Object.defineProperty(_elements_Reusable_mjs__WEBPACK_IMPORTED_MODULE_13__["default"], 'fixedFields', {
|
|
52299
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Reusable.fixedFields),
|
|
52300
|
+
enumerable: true
|
|
52301
|
+
});
|
|
52302
|
+
Object.defineProperty(_elements_SourceDescription_mjs__WEBPACK_IMPORTED_MODULE_14__["default"], 'fixedFields', {
|
|
52303
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.SourceDescription.fixedFields),
|
|
52304
|
+
enumerable: true
|
|
52305
|
+
});
|
|
52306
|
+
Object.defineProperty(_elements_Step_mjs__WEBPACK_IMPORTED_MODULE_15__["default"], 'fixedFields', {
|
|
52307
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Step.fixedFields),
|
|
52308
|
+
enumerable: true
|
|
52309
|
+
});
|
|
52310
|
+
Object.defineProperty(_elements_SuccessAction_mjs__WEBPACK_IMPORTED_MODULE_16__["default"], 'fixedFields', {
|
|
52311
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.SuccessAction.fixedFields),
|
|
52312
|
+
enumerable: true
|
|
52313
|
+
});
|
|
52314
|
+
Object.defineProperty(_elements_Workflow_mjs__WEBPACK_IMPORTED_MODULE_17__["default"], 'fixedFields', {
|
|
52315
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Workflow.fixedFields),
|
|
52316
|
+
enumerable: true
|
|
52317
|
+
});
|
|
52318
|
+
|
|
52319
|
+
|
|
50710
52320
|
/***/ },
|
|
50711
52321
|
|
|
50712
52322
|
/***/ 59726
|
|
@@ -87543,6 +89153,254 @@ const refractJsonSchemaDialect = (value, options = {}) => refract(value, {
|
|
|
87543
89153
|
});
|
|
87544
89154
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (refract);
|
|
87545
89155
|
|
|
89156
|
+
/***/ },
|
|
89157
|
+
|
|
89158
|
+
/***/ 52645
|
|
89159
|
+
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
89160
|
+
|
|
89161
|
+
"use strict";
|
|
89162
|
+
__webpack_require__.r(__webpack_exports__);
|
|
89163
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
89164
|
+
/* harmony export */ CallbackElement: () => (/* reexport safe */ _elements_Callback_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]),
|
|
89165
|
+
/* harmony export */ ComponentsElement: () => (/* reexport safe */ _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]),
|
|
89166
|
+
/* harmony export */ ContactElement: () => (/* reexport safe */ _elements_Contact_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]),
|
|
89167
|
+
/* harmony export */ DiscriminatorElement: () => (/* reexport safe */ _elements_Discriminator_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]),
|
|
89168
|
+
/* harmony export */ EncodingElement: () => (/* reexport safe */ _elements_Encoding_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]),
|
|
89169
|
+
/* harmony export */ ExampleElement: () => (/* reexport safe */ _elements_Example_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]),
|
|
89170
|
+
/* harmony export */ ExternalDocumentationElement: () => (/* reexport safe */ _elements_ExternalDocumentation_mjs__WEBPACK_IMPORTED_MODULE_8__["default"]),
|
|
89171
|
+
/* harmony export */ HeaderElement: () => (/* reexport safe */ _elements_Header_mjs__WEBPACK_IMPORTED_MODULE_9__["default"]),
|
|
89172
|
+
/* harmony export */ InfoElement: () => (/* reexport safe */ _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_10__["default"]),
|
|
89173
|
+
/* harmony export */ JsonSchemaDialectElement: () => (/* reexport safe */ _elements_JsonSchemaDialect_mjs__WEBPACK_IMPORTED_MODULE_11__["default"]),
|
|
89174
|
+
/* harmony export */ LicenseElement: () => (/* reexport safe */ _elements_License_mjs__WEBPACK_IMPORTED_MODULE_12__["default"]),
|
|
89175
|
+
/* harmony export */ LinkElement: () => (/* reexport safe */ _elements_Link_mjs__WEBPACK_IMPORTED_MODULE_13__["default"]),
|
|
89176
|
+
/* harmony export */ MediaTypeElement: () => (/* reexport safe */ _elements_MediaType_mjs__WEBPACK_IMPORTED_MODULE_14__["default"]),
|
|
89177
|
+
/* harmony export */ OAuthFlowElement: () => (/* reexport safe */ _elements_OAuthFlow_mjs__WEBPACK_IMPORTED_MODULE_15__["default"]),
|
|
89178
|
+
/* harmony export */ OAuthFlowsElement: () => (/* reexport safe */ _elements_OAuthFlows_mjs__WEBPACK_IMPORTED_MODULE_16__["default"]),
|
|
89179
|
+
/* harmony export */ OpenApi3_1Element: () => (/* reexport safe */ _elements_OpenApi3_1_mjs__WEBPACK_IMPORTED_MODULE_18__["default"]),
|
|
89180
|
+
/* harmony export */ OpenapiElement: () => (/* reexport safe */ _elements_Openapi_mjs__WEBPACK_IMPORTED_MODULE_17__["default"]),
|
|
89181
|
+
/* harmony export */ OperationElement: () => (/* reexport safe */ _elements_Operation_mjs__WEBPACK_IMPORTED_MODULE_19__["default"]),
|
|
89182
|
+
/* harmony export */ ParameterElement: () => (/* reexport safe */ _elements_Parameter_mjs__WEBPACK_IMPORTED_MODULE_20__["default"]),
|
|
89183
|
+
/* harmony export */ PathItemElement: () => (/* reexport safe */ _elements_PathItem_mjs__WEBPACK_IMPORTED_MODULE_21__["default"]),
|
|
89184
|
+
/* harmony export */ PathsElement: () => (/* reexport safe */ _elements_Paths_mjs__WEBPACK_IMPORTED_MODULE_22__["default"]),
|
|
89185
|
+
/* harmony export */ ReferenceElement: () => (/* reexport safe */ _elements_Reference_mjs__WEBPACK_IMPORTED_MODULE_23__["default"]),
|
|
89186
|
+
/* harmony export */ RequestBodyElement: () => (/* reexport safe */ _elements_RequestBody_mjs__WEBPACK_IMPORTED_MODULE_24__["default"]),
|
|
89187
|
+
/* harmony export */ ResponseElement: () => (/* reexport safe */ _elements_Response_mjs__WEBPACK_IMPORTED_MODULE_25__["default"]),
|
|
89188
|
+
/* harmony export */ ResponsesElement: () => (/* reexport safe */ _elements_Responses_mjs__WEBPACK_IMPORTED_MODULE_26__["default"]),
|
|
89189
|
+
/* harmony export */ SchemaElement: () => (/* reexport safe */ _elements_Schema_mjs__WEBPACK_IMPORTED_MODULE_27__["default"]),
|
|
89190
|
+
/* harmony export */ SecurityRequirementElement: () => (/* reexport safe */ _elements_SecurityRequirement_mjs__WEBPACK_IMPORTED_MODULE_28__["default"]),
|
|
89191
|
+
/* harmony export */ SecuritySchemeElement: () => (/* reexport safe */ _elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_29__["default"]),
|
|
89192
|
+
/* harmony export */ ServerElement: () => (/* reexport safe */ _elements_Server_mjs__WEBPACK_IMPORTED_MODULE_30__["default"]),
|
|
89193
|
+
/* harmony export */ ServerVariableElement: () => (/* reexport safe */ _elements_ServerVariable_mjs__WEBPACK_IMPORTED_MODULE_31__["default"]),
|
|
89194
|
+
/* harmony export */ TagElement: () => (/* reexport safe */ _elements_Tag_mjs__WEBPACK_IMPORTED_MODULE_32__["default"]),
|
|
89195
|
+
/* harmony export */ XmlElement: () => (/* reexport safe */ _elements_Xml_mjs__WEBPACK_IMPORTED_MODULE_33__["default"])
|
|
89196
|
+
/* harmony export */ });
|
|
89197
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60572);
|
|
89198
|
+
/* harmony import */ var ramda_adjunct__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34606);
|
|
89199
|
+
/* harmony import */ var _elements_Callback_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8041);
|
|
89200
|
+
/* harmony import */ var _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(68772);
|
|
89201
|
+
/* harmony import */ var _elements_Contact_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16368);
|
|
89202
|
+
/* harmony import */ var _elements_Discriminator_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(13456);
|
|
89203
|
+
/* harmony import */ var _elements_Encoding_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(67071);
|
|
89204
|
+
/* harmony import */ var _elements_Example_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(91210);
|
|
89205
|
+
/* harmony import */ var _elements_ExternalDocumentation_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(82753);
|
|
89206
|
+
/* harmony import */ var _elements_Header_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(10391);
|
|
89207
|
+
/* harmony import */ var _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(80064);
|
|
89208
|
+
/* harmony import */ var _elements_JsonSchemaDialect_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(66035);
|
|
89209
|
+
/* harmony import */ var _elements_License_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(10673);
|
|
89210
|
+
/* harmony import */ var _elements_Link_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(64720);
|
|
89211
|
+
/* harmony import */ var _elements_MediaType_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(91784);
|
|
89212
|
+
/* harmony import */ var _elements_OAuthFlow_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(73645);
|
|
89213
|
+
/* harmony import */ var _elements_OAuthFlows_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(28308);
|
|
89214
|
+
/* harmony import */ var _elements_Openapi_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(14540);
|
|
89215
|
+
/* harmony import */ var _elements_OpenApi3_1_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(81793);
|
|
89216
|
+
/* harmony import */ var _elements_Operation_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(54427);
|
|
89217
|
+
/* harmony import */ var _elements_Parameter_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(5849);
|
|
89218
|
+
/* harmony import */ var _elements_PathItem_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(43360);
|
|
89219
|
+
/* harmony import */ var _elements_Paths_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(85652);
|
|
89220
|
+
/* harmony import */ var _elements_Reference_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(36539);
|
|
89221
|
+
/* harmony import */ var _elements_RequestBody_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(71387);
|
|
89222
|
+
/* harmony import */ var _elements_Response_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(51193);
|
|
89223
|
+
/* harmony import */ var _elements_Responses_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(77080);
|
|
89224
|
+
/* harmony import */ var _elements_Schema_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(26385);
|
|
89225
|
+
/* harmony import */ var _elements_SecurityRequirement_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(87051);
|
|
89226
|
+
/* harmony import */ var _elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(3719);
|
|
89227
|
+
/* harmony import */ var _elements_Server_mjs__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(93497);
|
|
89228
|
+
/* harmony import */ var _elements_ServerVariable_mjs__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(7929);
|
|
89229
|
+
/* harmony import */ var _elements_Tag_mjs__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(24224);
|
|
89230
|
+
/* harmony import */ var _elements_Xml_mjs__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(10931);
|
|
89231
|
+
/* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(56110);
|
|
89232
|
+
|
|
89233
|
+
|
|
89234
|
+
|
|
89235
|
+
/**
|
|
89236
|
+
* OpenAPI 3.1 specification elements.
|
|
89237
|
+
*/
|
|
89238
|
+
|
|
89239
|
+
|
|
89240
|
+
|
|
89241
|
+
|
|
89242
|
+
|
|
89243
|
+
|
|
89244
|
+
|
|
89245
|
+
|
|
89246
|
+
|
|
89247
|
+
|
|
89248
|
+
|
|
89249
|
+
|
|
89250
|
+
|
|
89251
|
+
|
|
89252
|
+
|
|
89253
|
+
|
|
89254
|
+
|
|
89255
|
+
|
|
89256
|
+
|
|
89257
|
+
|
|
89258
|
+
|
|
89259
|
+
|
|
89260
|
+
|
|
89261
|
+
|
|
89262
|
+
|
|
89263
|
+
|
|
89264
|
+
|
|
89265
|
+
|
|
89266
|
+
|
|
89267
|
+
|
|
89268
|
+
|
|
89269
|
+
|
|
89270
|
+
|
|
89271
|
+
/**
|
|
89272
|
+
* @public
|
|
89273
|
+
*/
|
|
89274
|
+
// Resolve specification to dereference $ref pointers
|
|
89275
|
+
const resolvedSpec = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__.resolveSpecification)(_specification_mjs__WEBPACK_IMPORTED_MODULE_34__["default"]);
|
|
89276
|
+
|
|
89277
|
+
// Extract fixed fields as list of { name, alias?, $visitor }
|
|
89278
|
+
const getFixedFields = fixedFieldsSpec => {
|
|
89279
|
+
return Object.entries(fixedFieldsSpec).map(([name, fieldSpec]) => {
|
|
89280
|
+
if ((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_1__["default"])(fieldSpec)) {
|
|
89281
|
+
return {
|
|
89282
|
+
name,
|
|
89283
|
+
...fieldSpec
|
|
89284
|
+
};
|
|
89285
|
+
}
|
|
89286
|
+
return {
|
|
89287
|
+
name,
|
|
89288
|
+
$visitor: fieldSpec
|
|
89289
|
+
};
|
|
89290
|
+
});
|
|
89291
|
+
};
|
|
89292
|
+
|
|
89293
|
+
// OpenAPI 3.1 specification elements
|
|
89294
|
+
Object.defineProperty(_elements_OpenApi3_1_mjs__WEBPACK_IMPORTED_MODULE_18__["default"], 'fixedFields', {
|
|
89295
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.OpenApi.fixedFields),
|
|
89296
|
+
enumerable: true
|
|
89297
|
+
});
|
|
89298
|
+
Object.defineProperty(_elements_Info_mjs__WEBPACK_IMPORTED_MODULE_10__["default"], 'fixedFields', {
|
|
89299
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Info.fixedFields),
|
|
89300
|
+
enumerable: true
|
|
89301
|
+
});
|
|
89302
|
+
Object.defineProperty(_elements_Contact_mjs__WEBPACK_IMPORTED_MODULE_4__["default"], 'fixedFields', {
|
|
89303
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Contact.fixedFields),
|
|
89304
|
+
enumerable: true
|
|
89305
|
+
});
|
|
89306
|
+
Object.defineProperty(_elements_License_mjs__WEBPACK_IMPORTED_MODULE_12__["default"], 'fixedFields', {
|
|
89307
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.License.fixedFields),
|
|
89308
|
+
enumerable: true
|
|
89309
|
+
});
|
|
89310
|
+
Object.defineProperty(_elements_Server_mjs__WEBPACK_IMPORTED_MODULE_30__["default"], 'fixedFields', {
|
|
89311
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Server.fixedFields),
|
|
89312
|
+
enumerable: true
|
|
89313
|
+
});
|
|
89314
|
+
Object.defineProperty(_elements_ServerVariable_mjs__WEBPACK_IMPORTED_MODULE_31__["default"], 'fixedFields', {
|
|
89315
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.ServerVariable.fixedFields),
|
|
89316
|
+
enumerable: true
|
|
89317
|
+
});
|
|
89318
|
+
Object.defineProperty(_elements_Components_mjs__WEBPACK_IMPORTED_MODULE_3__["default"], 'fixedFields', {
|
|
89319
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Components.fixedFields),
|
|
89320
|
+
enumerable: true
|
|
89321
|
+
});
|
|
89322
|
+
Object.defineProperty(_elements_PathItem_mjs__WEBPACK_IMPORTED_MODULE_21__["default"], 'fixedFields', {
|
|
89323
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.PathItem.fixedFields),
|
|
89324
|
+
enumerable: true
|
|
89325
|
+
});
|
|
89326
|
+
Object.defineProperty(_elements_Operation_mjs__WEBPACK_IMPORTED_MODULE_19__["default"], 'fixedFields', {
|
|
89327
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Operation.fixedFields),
|
|
89328
|
+
enumerable: true
|
|
89329
|
+
});
|
|
89330
|
+
Object.defineProperty(_elements_ExternalDocumentation_mjs__WEBPACK_IMPORTED_MODULE_8__["default"], 'fixedFields', {
|
|
89331
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.ExternalDocumentation.fixedFields),
|
|
89332
|
+
enumerable: true
|
|
89333
|
+
});
|
|
89334
|
+
Object.defineProperty(_elements_Parameter_mjs__WEBPACK_IMPORTED_MODULE_20__["default"], 'fixedFields', {
|
|
89335
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Parameter.fixedFields),
|
|
89336
|
+
enumerable: true
|
|
89337
|
+
});
|
|
89338
|
+
Object.defineProperty(_elements_RequestBody_mjs__WEBPACK_IMPORTED_MODULE_24__["default"], 'fixedFields', {
|
|
89339
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.RequestBody.fixedFields),
|
|
89340
|
+
enumerable: true
|
|
89341
|
+
});
|
|
89342
|
+
Object.defineProperty(_elements_MediaType_mjs__WEBPACK_IMPORTED_MODULE_14__["default"], 'fixedFields', {
|
|
89343
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.MediaType.fixedFields),
|
|
89344
|
+
enumerable: true
|
|
89345
|
+
});
|
|
89346
|
+
Object.defineProperty(_elements_Encoding_mjs__WEBPACK_IMPORTED_MODULE_6__["default"], 'fixedFields', {
|
|
89347
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Encoding.fixedFields),
|
|
89348
|
+
enumerable: true
|
|
89349
|
+
});
|
|
89350
|
+
Object.defineProperty(_elements_Responses_mjs__WEBPACK_IMPORTED_MODULE_26__["default"], 'fixedFields', {
|
|
89351
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Responses.fixedFields),
|
|
89352
|
+
enumerable: true
|
|
89353
|
+
});
|
|
89354
|
+
Object.defineProperty(_elements_Response_mjs__WEBPACK_IMPORTED_MODULE_25__["default"], 'fixedFields', {
|
|
89355
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Response.fixedFields),
|
|
89356
|
+
enumerable: true
|
|
89357
|
+
});
|
|
89358
|
+
Object.defineProperty(_elements_Example_mjs__WEBPACK_IMPORTED_MODULE_7__["default"], 'fixedFields', {
|
|
89359
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Example.fixedFields),
|
|
89360
|
+
enumerable: true
|
|
89361
|
+
});
|
|
89362
|
+
Object.defineProperty(_elements_Link_mjs__WEBPACK_IMPORTED_MODULE_13__["default"], 'fixedFields', {
|
|
89363
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Link.fixedFields),
|
|
89364
|
+
enumerable: true
|
|
89365
|
+
});
|
|
89366
|
+
Object.defineProperty(_elements_Header_mjs__WEBPACK_IMPORTED_MODULE_9__["default"], 'fixedFields', {
|
|
89367
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Header.fixedFields),
|
|
89368
|
+
enumerable: true
|
|
89369
|
+
});
|
|
89370
|
+
Object.defineProperty(_elements_Tag_mjs__WEBPACK_IMPORTED_MODULE_32__["default"], 'fixedFields', {
|
|
89371
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Tag.fixedFields),
|
|
89372
|
+
enumerable: true
|
|
89373
|
+
});
|
|
89374
|
+
Object.defineProperty(_elements_Reference_mjs__WEBPACK_IMPORTED_MODULE_23__["default"], 'fixedFields', {
|
|
89375
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Reference.fixedFields),
|
|
89376
|
+
enumerable: true
|
|
89377
|
+
});
|
|
89378
|
+
Object.defineProperty(_elements_Schema_mjs__WEBPACK_IMPORTED_MODULE_27__["default"], 'fixedFields', {
|
|
89379
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Schema.fixedFields),
|
|
89380
|
+
enumerable: true
|
|
89381
|
+
});
|
|
89382
|
+
Object.defineProperty(_elements_Discriminator_mjs__WEBPACK_IMPORTED_MODULE_5__["default"], 'fixedFields', {
|
|
89383
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Discriminator.fixedFields),
|
|
89384
|
+
enumerable: true
|
|
89385
|
+
});
|
|
89386
|
+
Object.defineProperty(_elements_Xml_mjs__WEBPACK_IMPORTED_MODULE_33__["default"], 'fixedFields', {
|
|
89387
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.XML.fixedFields),
|
|
89388
|
+
enumerable: true
|
|
89389
|
+
});
|
|
89390
|
+
Object.defineProperty(_elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_29__["default"], 'fixedFields', {
|
|
89391
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.SecurityScheme.fixedFields),
|
|
89392
|
+
enumerable: true
|
|
89393
|
+
});
|
|
89394
|
+
Object.defineProperty(_elements_OAuthFlows_mjs__WEBPACK_IMPORTED_MODULE_16__["default"], 'fixedFields', {
|
|
89395
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.OAuthFlows.fixedFields),
|
|
89396
|
+
enumerable: true
|
|
89397
|
+
});
|
|
89398
|
+
Object.defineProperty(_elements_OAuthFlow_mjs__WEBPACK_IMPORTED_MODULE_15__["default"], 'fixedFields', {
|
|
89399
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.OAuthFlow.fixedFields),
|
|
89400
|
+
enumerable: true
|
|
89401
|
+
});
|
|
89402
|
+
|
|
89403
|
+
|
|
87546
89404
|
/***/ },
|
|
87547
89405
|
|
|
87548
89406
|
/***/ 68201
|
|
@@ -102974,48 +104832,48 @@ var __webpack_exports__ = {};
|
|
|
102974
104832
|
"use strict";
|
|
102975
104833
|
__webpack_require__.r(__webpack_exports__);
|
|
102976
104834
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
102977
|
-
/* harmony export */ BundleError: () => (/* reexport safe */
|
|
102978
|
-
/* harmony export */ BundleStrategy: () => (/* reexport safe */
|
|
102979
|
-
/* harmony export */ DereferenceAncestorLineage: () => (/* reexport safe */
|
|
102980
|
-
/* harmony export */ DereferenceError: () => (/* reexport safe */
|
|
102981
|
-
/* harmony export */ DereferenceStrategy: () => (/* reexport safe */
|
|
102982
|
-
/* harmony export */ EvaluationElementIdError: () => (/* reexport safe */
|
|
102983
|
-
/* harmony export */ EvaluationJsonSchema$anchorError: () => (/* reexport safe */
|
|
102984
|
-
/* harmony export */ EvaluationJsonSchemaUriError: () => (/* reexport safe */
|
|
102985
|
-
/* harmony export */ File: () => (/* reexport safe */
|
|
102986
|
-
/* harmony export */ HTTPResolver: () => (/* reexport safe */
|
|
102987
|
-
/* harmony export */ InvalidJsonSchema$anchorError: () => (/* reexport safe */
|
|
102988
|
-
/* harmony export */ JsonSchema$anchorError: () => (/* reexport safe */
|
|
102989
|
-
/* harmony export */ JsonSchemaURIError: () => (/* reexport safe */
|
|
102990
|
-
/* harmony export */ MaximumBundleDepthError: () => (/* reexport safe */
|
|
102991
|
-
/* harmony export */ MaximumDereferenceDepthError: () => (/* reexport safe */
|
|
102992
|
-
/* harmony export */ MaximumResolveDepthError: () => (/* reexport safe */
|
|
102993
|
-
/* harmony export */ ParseError: () => (/* reexport safe */
|
|
102994
|
-
/* harmony export */ Parser: () => (/* reexport safe */
|
|
102995
|
-
/* harmony export */ ParserError: () => (/* reexport safe */
|
|
102996
|
-
/* harmony export */ PluginError: () => (/* reexport safe */
|
|
102997
|
-
/* harmony export */ Reference: () => (/* reexport safe */
|
|
102998
|
-
/* harmony export */ ReferenceSet: () => (/* reexport safe */
|
|
102999
|
-
/* harmony export */ ResolveError: () => (/* reexport safe */
|
|
103000
|
-
/* harmony export */ ResolveStrategy: () => (/* reexport safe */
|
|
103001
|
-
/* harmony export */ Resolver: () => (/* reexport safe */
|
|
103002
|
-
/* harmony export */ ResolverError: () => (/* reexport safe */
|
|
103003
|
-
/* harmony export */ UnmatchedBundleStrategyError: () => (/* reexport safe */
|
|
103004
|
-
/* harmony export */ UnmatchedDereferenceStrategyError: () => (/* reexport safe */
|
|
103005
|
-
/* harmony export */ UnmatchedParserError: () => (/* reexport safe */
|
|
103006
|
-
/* harmony export */ UnmatchedResolveStrategyError: () => (/* reexport safe */
|
|
103007
|
-
/* harmony export */ UnmatchedResolverError: () => (/* reexport safe */
|
|
103008
|
-
/* harmony export */ UnresolvableReferenceError: () => (/* reexport safe */
|
|
103009
|
-
/* harmony export */ bundle: () => (/* reexport safe */
|
|
103010
|
-
/* harmony export */ dereference: () => (/* reexport safe */
|
|
103011
|
-
/* harmony export */ dereferenceApiDOM: () => (/* reexport safe */
|
|
103012
|
-
/* harmony export */ mergeOptions: () => (/* reexport safe */
|
|
103013
|
-
/* harmony export */ options: () => (/* reexport safe */
|
|
103014
|
-
/* harmony export */ parse: () => (/* reexport safe */
|
|
103015
|
-
/* harmony export */ readFile: () => (/* reexport safe */
|
|
103016
|
-
/* harmony export */ resolve: () => (/* reexport safe */
|
|
103017
|
-
/* harmony export */ resolveApiDOM: () => (/* reexport safe */
|
|
103018
|
-
/* harmony export */ url: () => (/* reexport safe */
|
|
104835
|
+
/* harmony export */ BundleError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.BundleError),
|
|
104836
|
+
/* harmony export */ BundleStrategy: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.BundleStrategy),
|
|
104837
|
+
/* harmony export */ DereferenceAncestorLineage: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.DereferenceAncestorLineage),
|
|
104838
|
+
/* harmony export */ DereferenceError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.DereferenceError),
|
|
104839
|
+
/* harmony export */ DereferenceStrategy: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.DereferenceStrategy),
|
|
104840
|
+
/* harmony export */ EvaluationElementIdError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.EvaluationElementIdError),
|
|
104841
|
+
/* harmony export */ EvaluationJsonSchema$anchorError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.EvaluationJsonSchema$anchorError),
|
|
104842
|
+
/* harmony export */ EvaluationJsonSchemaUriError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.EvaluationJsonSchemaUriError),
|
|
104843
|
+
/* harmony export */ File: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.File),
|
|
104844
|
+
/* harmony export */ HTTPResolver: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.HTTPResolver),
|
|
104845
|
+
/* harmony export */ InvalidJsonSchema$anchorError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.InvalidJsonSchema$anchorError),
|
|
104846
|
+
/* harmony export */ JsonSchema$anchorError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.JsonSchema$anchorError),
|
|
104847
|
+
/* harmony export */ JsonSchemaURIError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.JsonSchemaURIError),
|
|
104848
|
+
/* harmony export */ MaximumBundleDepthError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.MaximumBundleDepthError),
|
|
104849
|
+
/* harmony export */ MaximumDereferenceDepthError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.MaximumDereferenceDepthError),
|
|
104850
|
+
/* harmony export */ MaximumResolveDepthError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.MaximumResolveDepthError),
|
|
104851
|
+
/* harmony export */ ParseError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.ParseError),
|
|
104852
|
+
/* harmony export */ Parser: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.Parser),
|
|
104853
|
+
/* harmony export */ ParserError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.ParserError),
|
|
104854
|
+
/* harmony export */ PluginError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.PluginError),
|
|
104855
|
+
/* harmony export */ Reference: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.Reference),
|
|
104856
|
+
/* harmony export */ ReferenceSet: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.ReferenceSet),
|
|
104857
|
+
/* harmony export */ ResolveError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.ResolveError),
|
|
104858
|
+
/* harmony export */ ResolveStrategy: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.ResolveStrategy),
|
|
104859
|
+
/* harmony export */ Resolver: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.Resolver),
|
|
104860
|
+
/* harmony export */ ResolverError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.ResolverError),
|
|
104861
|
+
/* harmony export */ UnmatchedBundleStrategyError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.UnmatchedBundleStrategyError),
|
|
104862
|
+
/* harmony export */ UnmatchedDereferenceStrategyError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.UnmatchedDereferenceStrategyError),
|
|
104863
|
+
/* harmony export */ UnmatchedParserError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.UnmatchedParserError),
|
|
104864
|
+
/* harmony export */ UnmatchedResolveStrategyError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.UnmatchedResolveStrategyError),
|
|
104865
|
+
/* harmony export */ UnmatchedResolverError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.UnmatchedResolverError),
|
|
104866
|
+
/* harmony export */ UnresolvableReferenceError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.UnresolvableReferenceError),
|
|
104867
|
+
/* harmony export */ bundle: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.bundle),
|
|
104868
|
+
/* harmony export */ dereference: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.dereference),
|
|
104869
|
+
/* harmony export */ dereferenceApiDOM: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.dereferenceApiDOM),
|
|
104870
|
+
/* harmony export */ mergeOptions: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.mergeOptions),
|
|
104871
|
+
/* harmony export */ options: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.options),
|
|
104872
|
+
/* harmony export */ parse: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.parse),
|
|
104873
|
+
/* harmony export */ readFile: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.readFile),
|
|
104874
|
+
/* harmony export */ resolve: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.resolve),
|
|
104875
|
+
/* harmony export */ resolveApiDOM: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.resolveApiDOM),
|
|
104876
|
+
/* harmony export */ url: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_37__.url)
|
|
103019
104877
|
/* harmony export */ });
|
|
103020
104878
|
/* harmony import */ var _resolve_resolvers_file_index_node_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50365);
|
|
103021
104879
|
/* harmony import */ var _resolve_resolvers_http_axios_index_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16341);
|
|
@@ -103052,8 +104910,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
103052
104910
|
/* harmony import */ var _bundle_strategies_openapi_2_index_ts__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(11157);
|
|
103053
104911
|
/* harmony import */ var _bundle_strategies_openapi_3_0_index_ts__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(12087);
|
|
103054
104912
|
/* harmony import */ var _bundle_strategies_openapi_3_1_index_ts__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(16432);
|
|
103055
|
-
/* harmony import */ var
|
|
103056
|
-
/* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(
|
|
104913
|
+
/* harmony import */ var _bundle_strategies_arazzo_1_index_ts__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(17435);
|
|
104914
|
+
/* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(98363);
|
|
104915
|
+
/* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(33906);
|
|
104916
|
+
|
|
103057
104917
|
|
|
103058
104918
|
|
|
103059
104919
|
|
|
@@ -103090,7 +104950,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
103090
104950
|
|
|
103091
104951
|
|
|
103092
104952
|
|
|
103093
|
-
|
|
104953
|
+
_index_ts__WEBPACK_IMPORTED_MODULE_36__["default"].parse.parsers = [new _parse_parsers_openapi_json_2_index_ts__WEBPACK_IMPORTED_MODULE_9__["default"]({
|
|
103094
104954
|
allowEmpty: true,
|
|
103095
104955
|
sourceMap: false
|
|
103096
104956
|
}), new _parse_parsers_openapi_yaml_2_index_ts__WEBPACK_IMPORTED_MODULE_10__["default"]({
|
|
@@ -103138,14 +104998,14 @@ _index_ts__WEBPACK_IMPORTED_MODULE_35__["default"].parse.parsers = [new _parse_p
|
|
|
103138
104998
|
}), new _parse_parsers_binary_index_node_ts__WEBPACK_IMPORTED_MODULE_24__["default"]({
|
|
103139
104999
|
allowEmpty: true
|
|
103140
105000
|
})];
|
|
103141
|
-
|
|
105001
|
+
_index_ts__WEBPACK_IMPORTED_MODULE_36__["default"].resolve.resolvers = [new _resolve_resolvers_file_index_node_ts__WEBPACK_IMPORTED_MODULE_0__["default"](), new _resolve_resolvers_http_axios_index_ts__WEBPACK_IMPORTED_MODULE_1__["default"]({
|
|
103142
105002
|
timeout: 5000,
|
|
103143
105003
|
redirects: 5,
|
|
103144
105004
|
withCredentials: false
|
|
103145
105005
|
})];
|
|
103146
|
-
|
|
103147
|
-
|
|
103148
|
-
|
|
105006
|
+
_index_ts__WEBPACK_IMPORTED_MODULE_36__["default"].resolve.strategies = [new _resolve_strategies_openapi_2_index_ts__WEBPACK_IMPORTED_MODULE_2__["default"](), new _resolve_strategies_openapi_3_0_index_ts__WEBPACK_IMPORTED_MODULE_3__["default"](), new _resolve_strategies_openapi_3_1_index_ts__WEBPACK_IMPORTED_MODULE_4__["default"](), new _resolve_strategies_asyncapi_2_index_ts__WEBPACK_IMPORTED_MODULE_5__["default"](), new _resolve_strategies_arazzo_1_index_ts__WEBPACK_IMPORTED_MODULE_6__["default"](), new _resolve_strategies_overlay_1_index_ts__WEBPACK_IMPORTED_MODULE_7__["default"](), new _resolve_strategies_apidom_index_ts__WEBPACK_IMPORTED_MODULE_8__["default"]()];
|
|
105007
|
+
_index_ts__WEBPACK_IMPORTED_MODULE_36__["default"].dereference.strategies = [new _dereference_strategies_openapi_2_index_ts__WEBPACK_IMPORTED_MODULE_26__["default"](), new _dereference_strategies_openapi_3_0_index_ts__WEBPACK_IMPORTED_MODULE_27__["default"](), new _dereference_strategies_openapi_3_1_index_ts__WEBPACK_IMPORTED_MODULE_28__["default"](), new _dereference_strategies_asyncapi_2_index_ts__WEBPACK_IMPORTED_MODULE_29__["default"](), new _dereference_strategies_arazzo_1_index_ts__WEBPACK_IMPORTED_MODULE_30__["default"](), new _dereference_strategies_overlay_1_index_ts__WEBPACK_IMPORTED_MODULE_31__["default"](), new _dereference_strategies_apidom_index_ts__WEBPACK_IMPORTED_MODULE_25__["default"]()];
|
|
105008
|
+
_index_ts__WEBPACK_IMPORTED_MODULE_36__["default"].bundle.strategies = [new _bundle_strategies_openapi_2_index_ts__WEBPACK_IMPORTED_MODULE_32__["default"](), new _bundle_strategies_openapi_3_0_index_ts__WEBPACK_IMPORTED_MODULE_33__["default"](), new _bundle_strategies_openapi_3_1_index_ts__WEBPACK_IMPORTED_MODULE_34__["default"](), new _bundle_strategies_arazzo_1_index_ts__WEBPACK_IMPORTED_MODULE_35__["default"]()];
|
|
103149
105009
|
|
|
103150
105010
|
})();
|
|
103151
105011
|
|