@speclynx/apidom-reference 4.12.1 → 4.14.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.
@@ -288,23 +288,1495 @@ class BundleStrategy {
288
288
 
289
289
  /***/ },
290
290
 
291
+ /***/ 11157
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 */ OpenAPI2BundleVisitor: () => (/* 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_openapi_2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3677);
303
+ /* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26365);
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__(45979);
308
+
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+ /**
317
+ * @public
318
+ */
319
+
320
+ /**
321
+ * @public
322
+ */
323
+ class OpenAPI2BundleStrategy extends _BundleStrategy_ts__WEBPACK_IMPORTED_MODULE_6__["default"] {
324
+ constructor(options) {
325
+ super({
326
+ ...(options ?? {}),
327
+ name: 'openapi-2'
328
+ });
329
+ }
330
+ canBundle(file) {
331
+ // assert by media type
332
+ if (file.mediaType !== 'text/plain') {
333
+ return _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_2__["default"].includes(file.mediaType);
334
+ }
335
+
336
+ // assert by inspecting ApiDOM
337
+ return (0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_3__.isSwaggerElement)(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__ = (OpenAPI2BundleStrategy);
391
+
392
+ /***/ },
393
+
394
+ /***/ 45979
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__(6352);
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__(97071);
406
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84660);
407
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(37205);
408
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(44673);
409
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(16280);
410
+ /* harmony import */ var _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(80796);
411
+ /* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(12020);
412
+ /* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(61198);
413
+ /* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(61500);
414
+ /* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(86059);
415
+ /* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(59014);
416
+ /* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(3498);
417
+ /* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(26365);
418
+ /* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(72880);
419
+ /* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(60574);
420
+ /* harmony import */ var _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(81002);
421
+ /* harmony import */ var _errors_UnresolvableReferenceError_ts__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(8853);
422
+ /* harmony import */ var _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(16843);
423
+ /* harmony import */ var _errors_MaximumResolveDepthError_ts__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(51325);
424
+ /* harmony import */ var _util_url_ts__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(30658);
425
+ /* harmony import */ var _parse_index_ts__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(35014);
426
+ /* harmony import */ var _Reference_ts__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(98979);
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
+ * Maps the `referenced-element` meta value (set during refraction) to the
444
+ * top-level Swagger Object field where the referenced element should be
445
+ * hoisted. Unlike OpenAPI 3.x, OpenAPI 2.0 has no single Components Object;
446
+ * reusable definitions live directly under the document root. Field names are
447
+ * sourced from the Swagger Object fixed fields so they cannot drift from the
448
+ * namespace definition.
449
+ */
450
+ const sf = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__.fixedFields)(_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_17__.SwaggerElement, {
451
+ indexed: true
452
+ });
453
+ const fieldByReferencedElement = {
454
+ schema: sf.definitions.name,
455
+ parameter: sf.parameters.name,
456
+ response: sf.responses.name
457
+ };
458
+
459
+ /**
460
+ * Maps a top-level Swagger Object field to the named-content element the
461
+ * namespace uses for it, so a bundle-created field matches a parsed/refracted
462
+ * one (e.g. carries the `definitions` class) rather than being a generic
463
+ * object.
464
+ */
465
+ const fieldElementByField = {
466
+ [sf.definitions.name]: _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_17__.DefinitionsElement,
467
+ [sf.parameters.name]: _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_17__.ParametersDefinitionsElement,
468
+ [sf.responses.name]: _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_17__.ResponsesDefinitionsElement
469
+ };
470
+
471
+ /**
472
+ * @public
473
+ */
474
+
475
+ /**
476
+ * @public
477
+ */
478
+ class OpenAPI2BundleVisitor {
479
+ reference;
480
+ options;
481
+
482
+ /**
483
+ * The base URI (without hash) of the entry document. A reference is
484
+ * considered internal when it resolves to this URI and external otherwise.
485
+ * Derived from the shared refSet's root reference.
486
+ */
487
+ get entryURI() {
488
+ return _util_url_ts__WEBPACK_IMPORTED_MODULE_22__.stripHash(this.reference.refSet?.rootRef?.uri ?? '');
489
+ }
490
+
491
+ /**
492
+ * The entry parse result. Derived from the shared refSet's root reference.
493
+ */
494
+ get entryParseResult() {
495
+ return this.reference.refSet.rootRef.value;
496
+ }
497
+
498
+ /**
499
+ * The entry document element. Hoisted external fragments are placed into its
500
+ * top-level definition fields. The `canBundle` guard guarantees it is a
501
+ * SwaggerElement.
502
+ */
503
+ get entryResult() {
504
+ return this.entryParseResult.result;
505
+ }
506
+
507
+ /**
508
+ * Shared across the entry document and every external document visitor.
509
+ * Guarantees each external fragment is hoisted exactly once and gives us a
510
+ * stable internal pointer to rewrite every referencing element to.
511
+ */
512
+ assignments;
513
+
514
+ /**
515
+ * Component names already reserved per definition field. Reserved before
516
+ * recursion so collision suffixing (`Pet`, `Pet-2`, ...) accounts for
517
+ * components that are still being bundled.
518
+ */
519
+ reservedNames;
520
+
521
+ /**
522
+ * Caches refracted fragments keyed by source element and target element type.
523
+ * The type is part of the key because the same source can be refracted into
524
+ * different semantic elements depending on the referencing context (e.g. a
525
+ * generic object referenced once as a Parameter and once as a Response).
526
+ */
527
+ refractCache;
528
+
529
+ /**
530
+ * Canonical URIs of Path Item Objects currently being inlined. Path Items
531
+ * are not a top-level definition field in OpenAPI 2.0, so the `assignments`
532
+ * map can't break their cycles. This stack guards against circular external
533
+ * Path Item references.
534
+ */
535
+ inlineStack;
536
+ constructor({
537
+ reference,
538
+ options,
539
+ assignments = new Map(),
540
+ reservedNames = new Map(),
541
+ refractCache = new WeakMap(),
542
+ inlineStack = new Set()
543
+ }) {
544
+ this.reference = reference;
545
+ this.options = options;
546
+ this.inlineStack = inlineStack;
547
+ this.assignments = assignments;
548
+ this.reservedNames = reservedNames;
549
+ this.refractCache = refractCache;
550
+ }
551
+ getRefracted(source, type) {
552
+ return this.refractCache.get(source)?.get(type);
553
+ }
554
+ setRefracted(source, type, refracted) {
555
+ let byType = this.refractCache.get(source);
556
+ if (byType === undefined) {
557
+ byType = new Map();
558
+ this.refractCache.set(source, byType);
559
+ }
560
+ byType.set(type, refracted);
561
+ }
562
+ toBaseURI(uri) {
563
+ return _util_url_ts__WEBPACK_IMPORTED_MODULE_22__.resolve(this.reference.uri, _util_url_ts__WEBPACK_IMPORTED_MODULE_22__.sanitize(_util_url_ts__WEBPACK_IMPORTED_MODULE_22__.stripHash(uri)));
564
+ }
565
+ async toReference(uri) {
566
+ // detect maximum depth of resolution
567
+ if (this.reference.depth >= this.options.resolve.maxDepth) {
568
+ throw new _errors_MaximumResolveDepthError_ts__WEBPACK_IMPORTED_MODULE_21__["default"](`Maximum resolution depth of ${this.options.resolve.maxDepth} has been exceeded by file "${this.reference.uri}"`, {
569
+ maxDepth: this.options.resolve.maxDepth,
570
+ uri: this.reference.uri
571
+ });
572
+ }
573
+ const baseURI = this.toBaseURI(uri);
574
+ const {
575
+ refSet
576
+ } = this.reference;
577
+
578
+ // we've already processed this Reference in past
579
+ if (refSet.has(baseURI)) {
580
+ return refSet.find((0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(baseURI, 'uri'));
581
+ }
582
+ const parseResult = await (0,_parse_index_ts__WEBPACK_IMPORTED_MODULE_23__["default"])(_util_url_ts__WEBPACK_IMPORTED_MODULE_22__.unsanitize(baseURI), {
583
+ ...this.options,
584
+ parse: {
585
+ ...this.options.parse,
586
+ mediaType: 'text/plain'
587
+ }
588
+ });
589
+ const reference = new _Reference_ts__WEBPACK_IMPORTED_MODULE_24__["default"]({
590
+ uri: baseURI,
591
+ value: parseResult,
592
+ depth: this.reference.depth + 1
593
+ });
594
+ refSet.add(reference);
595
+ return reference;
596
+ }
597
+
598
+ /**
599
+ * Normalizes a self-reference (e.g. `./root.json#/definitions/Pet`)
600
+ * to a bare fragment (`#/definitions/Pet`) so the bundled document stays
601
+ * transferable. Bare fragments are returned unchanged.
602
+ */
603
+ normalizeSelfReference(ref) {
604
+ return ref.startsWith('#') ? ref : _util_url_ts__WEBPACK_IMPORTED_MODULE_22__.getHash(ref);
605
+ }
606
+
607
+ /**
608
+ * Handles an error according to the `bundle.continueOnError` option.
609
+ *
610
+ * For new errors: wraps in UnresolvableReferenceError with structured
611
+ * context. For errors already wrapped by a nested visitor: prepends the
612
+ * current hop to the trace.
613
+ *
614
+ * Inner/intermediate visitors always throw to let the trace accumulate. Only
615
+ * the entry document visitor respects continueOnError (callback/swallow/throw).
616
+ */
617
+ handleError(message, error, referencingElement, refFieldName, refFieldValue, visitorPath) {
618
+ // a collision reported as `error` is a deliberate hard stop with no
619
+ // resolution-failure analog, so pass it through unchanged. A maxDepth
620
+ // breach (MaximumBundleDepthError, which also extends BundleError) is a
621
+ // resolution failure and flows through below — wrapped and subject to
622
+ // continueOnError, like dereferencing.
623
+ if (error instanceof _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_18__["default"] && !(error instanceof _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_20__["default"])) {
624
+ throw error;
625
+ }
626
+ const {
627
+ continueOnError
628
+ } = this.options.bundle;
629
+ const isEntryDocument = _util_url_ts__WEBPACK_IMPORTED_MODULE_22__.stripHash(this.reference.refSet?.rootRef?.uri ?? '') === this.reference.uri;
630
+ const uri = this.reference.uri;
631
+ const type = referencingElement.element;
632
+ const codeFrame = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(referencingElement);
633
+ const location = visitorPath.formatPath();
634
+ const hop = {
635
+ uri,
636
+ type,
637
+ refFieldName,
638
+ refFieldValue,
639
+ location,
640
+ codeFrame
641
+ };
642
+ let unresolvedError;
643
+ if (error instanceof _errors_UnresolvableReferenceError_ts__WEBPACK_IMPORTED_MODULE_19__["default"]) {
644
+ // @ts-ignore
645
+ error.trace = [hop, ...error.trace];
646
+ unresolvedError = error;
647
+ } else {
648
+ unresolvedError = new _errors_UnresolvableReferenceError_ts__WEBPACK_IMPORTED_MODULE_19__["default"](message, {
649
+ cause: error,
650
+ type,
651
+ uri,
652
+ location,
653
+ codeFrame,
654
+ refFieldName,
655
+ refFieldValue,
656
+ trace: []
657
+ });
658
+ }
659
+ if (!isEntryDocument || continueOnError === false) throw unresolvedError;
660
+ if (typeof continueOnError === 'function') continueOnError(unresolvedError);
661
+ }
662
+
663
+ /**
664
+ * Lazily creates the requested top-level definition field on the entry
665
+ * document, returning the field where a fragment is hoisted.
666
+ */
667
+ ensureField(field) {
668
+ const entryResult = this.entryResult;
669
+ let fieldElement = entryResult.get(field);
670
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isObjectElement)(fieldElement)) {
671
+ const FieldElement = fieldElementByField[field] ?? _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"];
672
+ fieldElement = new FieldElement();
673
+ entryResult.set(field, fieldElement);
674
+ }
675
+ return fieldElement;
676
+ }
677
+
678
+ /**
679
+ * Derives a component name from the referenced JSON Pointer's last token,
680
+ * falling back to the referenced file's basename.
681
+ */
682
+ basenameOf(jsonPointer, baseURI) {
683
+ const tokens = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__.parse)(jsonPointer).tree;
684
+ const lastToken = tokens.length > 0 ? tokens[tokens.length - 1] : '';
685
+ return lastToken || _util_url_ts__WEBPACK_IMPORTED_MODULE_22__.getBasename(baseURI) || 'Schema';
686
+ }
687
+
688
+ /**
689
+ * Computes the base component name (before collision suffixing) according to
690
+ * the configured naming strategy.
691
+ */
692
+ baseName(element, field, jsonPointer, baseURI) {
693
+ // strategy specific options take precedence over the top-level bundle options
694
+ const componentNamesStrategy = this.options.bundle.strategyOpts['openapi-2']?.componentNamesStrategy ?? this.options.bundle.componentNamesStrategy;
695
+ if (typeof componentNamesStrategy === 'function') {
696
+ const resolved = componentNamesStrategy({
697
+ element,
698
+ field,
699
+ jsonPointer,
700
+ baseURI
701
+ });
702
+ if (typeof resolved === 'string' && resolved !== '') {
703
+ return resolved;
704
+ }
705
+ return this.basenameOf(jsonPointer, baseURI);
706
+ }
707
+ if (componentNamesStrategy === 'title') {
708
+ const title = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isObjectElement)(element) ? (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(element.get('title')) : undefined;
709
+ if (typeof title === 'string' && title.trim() !== '') {
710
+ const name = (0,_util_ts__WEBPACK_IMPORTED_MODULE_25__.sanitizeComponentName)((0,_util_ts__WEBPACK_IMPORTED_MODULE_25__.toPascalCase)(title));
711
+ if (name !== '') return name;
712
+ }
713
+ // fall back to basename when no usable title is present
714
+ }
715
+ return this.basenameOf(jsonPointer, baseURI);
716
+ }
717
+
718
+ /**
719
+ * Computes a collision-free component name within the target field. A name is
720
+ * taken if it's already placed in the field or reserved by a component that
721
+ * is still being bundled (reserved before recursion).
722
+ */
723
+ uniqueName(candidate, field) {
724
+ const fieldElement = this.ensureField(field);
725
+ const reserved = this.reservedNames.get(field) ?? new Set();
726
+ return (0,_util_ts__WEBPACK_IMPORTED_MODULE_25__.uniqueName)(candidate, name => fieldElement.hasKey(name) || reserved.has(name));
727
+ }
728
+
729
+ /**
730
+ * Bundles a Reference Object (parameters/responses) or a JSON Reference
731
+ * Object (schemas). The two reference flavors differ only in their predicate
732
+ * and refraction helpers, so the shared logic is parameterized here.
733
+ */
734
+ async bundleReference(path, referencingElement, isSemanticReference, isReferenceLike, refractReferenceFn, label) {
735
+ const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(referencingElement.$ref);
736
+ const retrievalURI = this.toBaseURI($ref);
737
+ const isInternalReference = this.entryURI === retrievalURI;
738
+ const isExternalReference = !isInternalReference;
739
+ if (isInternalReference) {
740
+ // normalize self-references to a bare fragment so the bundled
741
+ // document stays transferable; bare fragments are left untouched
742
+ referencingElement.set('$ref', this.normalizeSelfReference($ref));
743
+ path.skip();
744
+ return;
745
+ }
746
+
747
+ // honor the resolve.external switch
748
+ if (!this.options.resolve.external && isExternalReference) {
749
+ path.skip();
750
+ return;
751
+ }
752
+ const $refBaseURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_22__.resolve(retrievalURI, $ref);
753
+ const jsonPointer = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__.URIFragmentIdentifier.fromURIReference($refBaseURI);
754
+
755
+ // the target field depends on the referencing context, so it's part of the
756
+ // identity: the same external target referenced as e.g. both a parameter and
757
+ // a response must be hoisted into both fields. The refractor sets
758
+ // `referenced-element` for every Reference Object position; the `schema`
759
+ // fallback is a defensive default for the (unexpected) untagged case.
760
+ const referencedElementType = referencingElement.meta.get('referenced-element');
761
+ const field = fieldByReferencedElement[referencedElementType] ?? fieldByReferencedElement.schema;
762
+ const canonicalKey = `${field}\t${retrievalURI}#${jsonPointer}`;
763
+
764
+ // already hoisted (or being hoisted) — just rewrite the pointer.
765
+ //
766
+ // this is also how circular references terminate: the assignment is
767
+ // reserved BEFORE recursing into the fragment (see below), so a reference
768
+ // that cycles back (directly or indirectly) finds its pointer already
769
+ // reserved here and is rewritten without recursing. Cycles are deliberately
770
+ // preserved as internal `$ref`s pointing at each other — that is valid,
771
+ // serializable output; resolving the cycle (if desired) is dereferencing's
772
+ // job, not bundling's.
773
+ if (this.assignments.has(canonicalKey)) {
774
+ referencingElement.set('$ref', this.assignments.get(canonicalKey));
775
+ path.skip();
776
+ return;
777
+ }
778
+ try {
779
+ // detect maximum depth of bundling
780
+ if (this.reference.depth >= this.options.bundle.maxDepth) {
781
+ throw new _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_20__["default"](`Maximum bundle depth of "${this.options.bundle.maxDepth}" has been exceeded in file "${this.reference.uri}"`, {
782
+ maxDepth: this.options.bundle.maxDepth,
783
+ uri: this.reference.uri
784
+ });
785
+ }
786
+ const reference = await this.toReference($ref);
787
+
788
+ // possibly non-semantic fragment
789
+ let referencedElement = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__.evaluate)(reference.value.result, jsonPointer);
790
+
791
+ // apply semantics to the fragment so nested references become Reference Objects
792
+ if (referencedElement.element !== referencedElementType && !isSemanticReference(referencedElement)) {
793
+ const cached = this.getRefracted(referencedElement, referencedElementType);
794
+ if (cached !== undefined) {
795
+ referencedElement = cached;
796
+ } else if (isReferenceLike(referencedElement)) {
797
+ const sourceElement = referencedElement;
798
+ referencedElement = refractReferenceFn(referencedElement);
799
+ referencedElement.meta.set('referenced-element', referencedElementType);
800
+ this.setRefracted(sourceElement, referencedElementType, referencedElement);
801
+ } else {
802
+ const sourceElement = referencedElement;
803
+ referencedElement = (0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_13__["default"])(referencedElement, {
804
+ element: referencedElementType
805
+ });
806
+ this.setRefracted(sourceElement, referencedElementType, referencedElement);
807
+ }
808
+ }
809
+ const preferredName = this.baseName(referencedElement, field, jsonPointer, retrievalURI);
810
+ const componentName = this.uniqueName(preferredName, field);
811
+ const internalPointer = `#/${field}/${(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__.escape)(componentName)}`;
812
+
813
+ // a rename means two distinct targets resolved to the same name; each
814
+ // keeps its own component (and origin), so report the rename per severity.
815
+ // strategy specific options take precedence over the top-level bundle options
816
+ const onComponentNameCollision = this.options.bundle.strategyOpts['openapi-2']?.onComponentNameCollision ?? this.options.bundle.onComponentNameCollision;
817
+ if (componentName !== preferredName && onComponentNameCollision !== 'off') {
818
+ const message = `Component "${preferredName}" in ${field} is referenced with the same name but different content. Renamed to "${componentName}".`;
819
+ if (onComponentNameCollision === 'error') {
820
+ throw new _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_18__["default"](message);
821
+ }
822
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__["default"](message);
823
+ annotation.classes.push('warning');
824
+ annotation.code = 'bundle-component-name-collision';
825
+ // append (never prepend) so the result element stays ahead of annotations
826
+ this.entryParseResult.content.push(annotation);
827
+ }
828
+
829
+ // reserve the assignment and component name before recursing so cyclic
830
+ // references terminate
831
+ this.assignments.set(canonicalKey, internalPointer);
832
+ if (!this.reservedNames.has(field)) this.reservedNames.set(field, new Set());
833
+ this.reservedNames.get(field).add(componentName);
834
+
835
+ // own a copy of the fragment and bundle its own external references
836
+ const hoistedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneDeep)(referencedElement);
837
+ const visitor = new OpenAPI2BundleVisitor({
838
+ reference,
839
+ options: this.options,
840
+ assignments: this.assignments,
841
+ reservedNames: this.reservedNames,
842
+ refractCache: this.refractCache,
843
+ inlineStack: this.inlineStack
844
+ });
845
+ const bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_8__.traverseAsync)(hoistedElement, visitor, {
846
+ mutable: true
847
+ });
848
+
849
+ // annotate the hoisted fragment with info about its origin
850
+ if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isElement)(bundledElement)) {
851
+ bundledElement.meta.set('ref-origin', reference.uri);
852
+ }
853
+
854
+ // place the bundled fragment into the entry document's definitions
855
+ this.ensureField(field).set(componentName, bundledElement);
856
+
857
+ // rewrite the referencing element to point at the hoisted fragment
858
+ referencingElement.set('$ref', internalPointer);
859
+ path.skip();
860
+ } catch (error) {
861
+ this.handleError(`Error while bundling ${label}. Cannot resolve $ref "${$ref}": ${error.message}`, error, referencingElement, '$ref', $ref, path);
862
+ path.skip();
863
+ }
864
+ }
865
+
866
+ /**
867
+ * Reference Object covers reusable Parameter and Response Objects, which are
868
+ * hoisted into the top-level `parameters` and `responses` fields.
869
+ */
870
+ async ReferenceElement(path) {
871
+ await this.bundleReference(path, path.node, _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_15__.isReferenceElement, _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_16__.isReferenceLikeElement, _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_13__.refractReference, 'Reference Object');
872
+ }
873
+
874
+ /**
875
+ * JSON Reference Object covers reusable Schema Objects, which are hoisted
876
+ * into the top-level `definitions` field.
877
+ */
878
+ async JSONReferenceElement(path) {
879
+ await this.bundleReference(path, path.node, _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_12__.isJSONReferenceElement, _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_14__.isJSONReferenceLikeElement, _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_11__.refractJSONReference, 'JSON Reference Object');
880
+ }
881
+
882
+ /**
883
+ * Path Item Object is not a top-level definition field in OpenAPI 2.0, so an
884
+ * external Path Item reference cannot be hoisted; it is inlined in place
885
+ * instead, after bundling its own external references.
886
+ */
887
+ async PathItemElement(path) {
888
+ const pathItemElement = path.node;
889
+
890
+ // ignore Path Item Objects without a $ref field
891
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(pathItemElement.$ref)) {
892
+ return;
893
+ }
894
+ const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(pathItemElement.$ref);
895
+ const retrievalURI = this.toBaseURI($ref);
896
+ const isInternalReference = this.entryURI === retrievalURI;
897
+ const isExternalReference = !isInternalReference;
898
+ if (isInternalReference) {
899
+ // normalize self-references to a bare fragment so the bundled
900
+ // document stays transferable; bare fragments are left untouched
901
+ pathItemElement.set('$ref', this.normalizeSelfReference($ref));
902
+ return;
903
+ }
904
+
905
+ // honor the resolve.external switch
906
+ if (!this.options.resolve.external && isExternalReference) {
907
+ return;
908
+ }
909
+ const $refBaseURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_22__.resolve(retrievalURI, $ref);
910
+ const jsonPointer = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__.URIFragmentIdentifier.fromURIReference($refBaseURI);
911
+ const canonicalKey = `${retrievalURI}#${jsonPointer}`;
912
+
913
+ // a circular external Path Item reference cannot be inlined without
914
+ // recursing forever; leave the $ref in place to break the cycle
915
+ if (this.inlineStack.has(canonicalKey)) {
916
+ return;
917
+ }
918
+ try {
919
+ // detect maximum depth of bundling
920
+ if (this.reference.depth >= this.options.bundle.maxDepth) {
921
+ throw new _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_20__["default"](`Maximum bundle depth of "${this.options.bundle.maxDepth}" has been exceeded in file "${this.reference.uri}"`, {
922
+ maxDepth: this.options.bundle.maxDepth,
923
+ uri: this.reference.uri
924
+ });
925
+ }
926
+ const reference = await this.toReference($ref);
927
+ let referencedElement = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__.evaluate)(reference.value.result, jsonPointer);
928
+
929
+ // apply Path Item semantics to the referenced fragment
930
+ if (!(0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_15__.isPathItemElement)(referencedElement)) {
931
+ const cached = this.getRefracted(referencedElement, 'pathItem');
932
+ if (cached !== undefined) {
933
+ referencedElement = cached;
934
+ } else {
935
+ const sourceElement = referencedElement;
936
+ referencedElement = (0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_13__.refractPathItem)(referencedElement);
937
+ this.setRefracted(sourceElement, 'pathItem', referencedElement);
938
+ }
939
+ }
940
+
941
+ // own a copy and bundle the external references it contains
942
+ const inlinedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneDeep)(referencedElement);
943
+ this.inlineStack.add(canonicalKey);
944
+ const visitor = new OpenAPI2BundleVisitor({
945
+ reference,
946
+ options: this.options,
947
+ assignments: this.assignments,
948
+ reservedNames: this.reservedNames,
949
+ refractCache: this.refractCache,
950
+ inlineStack: this.inlineStack
951
+ });
952
+ let bundledElement;
953
+ try {
954
+ bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_8__.traverseAsync)(inlinedElement, visitor, {
955
+ mutable: true
956
+ });
957
+ } finally {
958
+ this.inlineStack.delete(canonicalKey);
959
+ }
960
+
961
+ // merge sibling fields from the referencing Path Item over the referenced
962
+ // one. The referencing `$ref` is being resolved away and is skipped; the
963
+ // referenced element keeps its own `$ref` if one survived (i.e. it was
964
+ // left in place to break a circular external Path Item chain).
965
+ pathItemElement.forEach((_value, keyElement, item) => {
966
+ const key = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(keyElement);
967
+ if (key === '$ref') return;
968
+ bundledElement.remove(key);
969
+ bundledElement.content.push(item);
970
+ });
971
+ bundledElement.meta.set('ref-origin', reference.uri);
972
+ path.replaceWith(bundledElement);
973
+ } catch (error) {
974
+ this.handleError(`Error while bundling Path Item Object. Cannot resolve $ref "${$ref}": ${error.message}`, error, pathItemElement, '$ref', $ref, path);
975
+ }
976
+ }
977
+ }
978
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI2BundleVisitor);
979
+
980
+ /***/ },
981
+
291
982
  /***/ 12087
292
983
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
293
984
 
294
985
  "use strict";
295
986
  __webpack_require__.r(__webpack_exports__);
296
987
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
297
- /* harmony export */ OpenAPI3_0BundleVisitor: () => (/* reexport safe */ _visitor_ts__WEBPACK_IMPORTED_MODULE_7__["default"]),
988
+ /* harmony export */ OpenAPI3_0BundleVisitor: () => (/* reexport safe */ _visitor_ts__WEBPACK_IMPORTED_MODULE_7__["default"]),
989
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
990
+ /* harmony export */ });
991
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12111);
992
+ /* harmony import */ var _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(80796);
993
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(43151);
994
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(32131);
995
+ /* harmony import */ var _Reference_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(98979);
996
+ /* harmony import */ var _ReferenceSet_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(24131);
997
+ /* harmony import */ var _BundleStrategy_ts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(75508);
998
+ /* harmony import */ var _visitor_ts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(74985);
999
+
1000
+
1001
+
1002
+
1003
+
1004
+
1005
+
1006
+
1007
+ /**
1008
+ * @public
1009
+ */
1010
+
1011
+ /**
1012
+ * @public
1013
+ */
1014
+ class OpenAPI3_0BundleStrategy extends _BundleStrategy_ts__WEBPACK_IMPORTED_MODULE_6__["default"] {
1015
+ constructor(options) {
1016
+ super({
1017
+ ...(options ?? {}),
1018
+ name: 'openapi-3-0'
1019
+ });
1020
+ }
1021
+ canBundle(file) {
1022
+ // assert by media type
1023
+ if (file.mediaType !== 'text/plain') {
1024
+ return _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_2__["default"].includes(file.mediaType);
1025
+ }
1026
+
1027
+ // assert by inspecting ApiDOM
1028
+ return (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_3__.isOpenApi3_0Element)(file.parseResult?.result);
1029
+ }
1030
+ async bundle(file, options) {
1031
+ const immutableRefSet = options.bundle.refSet ?? new _ReferenceSet_ts__WEBPACK_IMPORTED_MODULE_5__["default"]();
1032
+ const mutableRefSet = new _ReferenceSet_ts__WEBPACK_IMPORTED_MODULE_5__["default"]();
1033
+ let refSet = immutableRefSet;
1034
+ let reference;
1035
+
1036
+ // determine the initial reference
1037
+ if (!immutableRefSet.has(file.uri)) {
1038
+ reference = new _Reference_ts__WEBPACK_IMPORTED_MODULE_4__["default"]({
1039
+ uri: file.uri,
1040
+ value: file.parseResult
1041
+ });
1042
+ immutableRefSet.add(reference);
1043
+ } else {
1044
+ // pre-computed refSet was provided as configuration option
1045
+ reference = immutableRefSet.find(ref => ref.uri === file.uri);
1046
+ }
1047
+
1048
+ /**
1049
+ * Clone refSet due the bundling process being mutable.
1050
+ * We don't want to mutate the original refSet and the references.
1051
+ */
1052
+ if (options.bundle.immutable) {
1053
+ immutableRefSet.refs.map(ref => new _Reference_ts__WEBPACK_IMPORTED_MODULE_4__["default"]({
1054
+ ...ref,
1055
+ value: (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(ref.value)
1056
+ })).forEach(ref => mutableRefSet.add(ref));
1057
+ reference = mutableRefSet.find(ref => ref.uri === file.uri);
1058
+ refSet = mutableRefSet;
1059
+ }
1060
+ const visitor = new _visitor_ts__WEBPACK_IMPORTED_MODULE_7__["default"]({
1061
+ reference: reference,
1062
+ options
1063
+ });
1064
+ await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_1__.traverseAsync)(refSet.rootRef.value, visitor, {
1065
+ mutable: true
1066
+ });
1067
+ const parseResult = reference.value;
1068
+
1069
+ /**
1070
+ * Release all memory if this refSet was not provided as a configuration option.
1071
+ * If provided as configuration option, then provider is responsible for cleanup.
1072
+ */
1073
+ if (options.bundle.refSet === null) {
1074
+ immutableRefSet.clean();
1075
+ }
1076
+ mutableRefSet.clean();
1077
+ return parseResult;
1078
+ }
1079
+ }
1080
+
1081
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI3_0BundleStrategy);
1082
+
1083
+ /***/ },
1084
+
1085
+ /***/ 74985
1086
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1087
+
1088
+ "use strict";
1089
+ __webpack_require__.r(__webpack_exports__);
1090
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1091
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1092
+ /* harmony export */ });
1093
+ /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6352);
1094
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25162);
1095
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12111);
1096
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(97071);
1097
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84660);
1098
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(37205);
1099
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(44673);
1100
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(16280);
1101
+ /* harmony import */ var _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(44641);
1102
+ /* harmony import */ var _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(80796);
1103
+ /* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(12020);
1104
+ /* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(61198);
1105
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(30609);
1106
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(64708);
1107
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(32131);
1108
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(21314);
1109
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(29881);
1110
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(23806);
1111
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(23031);
1112
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(63842);
1113
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(87455);
1114
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(55122);
1115
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(71117);
1116
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(72257);
1117
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(69511);
1118
+ /* harmony import */ var _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(81002);
1119
+ /* harmony import */ var _errors_UnresolvableReferenceError_ts__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(8853);
1120
+ /* harmony import */ var _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(16843);
1121
+ /* harmony import */ var _errors_MaximumResolveDepthError_ts__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(51325);
1122
+ /* harmony import */ var _util_url_ts__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(30658);
1123
+ /* harmony import */ var _parse_index_ts__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(35014);
1124
+ /* harmony import */ var _Reference_ts__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(98979);
1125
+ /* harmony import */ var _util_ts__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(25939);
1126
+
1127
+
1128
+
1129
+
1130
+
1131
+
1132
+
1133
+
1134
+
1135
+
1136
+
1137
+
1138
+
1139
+
1140
+
1141
+ /**
1142
+ * Maps the `referenced-element` meta value (set during refraction) to the
1143
+ * Components Object field where the referenced element should be hoisted.
1144
+ * Field names are sourced from the Components Object fixed fields so they
1145
+ * cannot drift from the namespace definition.
1146
+ */
1147
+ const cf = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__.fixedFields)(_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_12__["default"], {
1148
+ indexed: true
1149
+ });
1150
+ const componentFieldByReferencedElement = {
1151
+ schema: cf.schemas.name,
1152
+ response: cf.responses.name,
1153
+ parameter: cf.parameters.name,
1154
+ example: cf.examples.name,
1155
+ requestBody: cf.requestBodies.name,
1156
+ header: cf.headers.name,
1157
+ securityScheme: cf.securitySchemes.name,
1158
+ link: cf.links.name,
1159
+ callback: cf.callbacks.name
1160
+ };
1161
+
1162
+ /**
1163
+ * Maps a Components Object field to the named-content element the namespace
1164
+ * uses for it, so a bundle-created field matches a parsed/refracted one
1165
+ * (e.g. carries the `components-schemas` class) rather than being a generic
1166
+ * object.
1167
+ */
1168
+ const componentFieldElementByField = {
1169
+ [cf.schemas.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_23__["default"],
1170
+ [cf.responses.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_22__["default"],
1171
+ [cf.parameters.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_20__["default"],
1172
+ [cf.examples.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_17__["default"],
1173
+ [cf.requestBodies.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_21__["default"],
1174
+ [cf.headers.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_18__["default"],
1175
+ [cf.securitySchemes.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_24__["default"],
1176
+ [cf.links.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_19__["default"],
1177
+ [cf.callbacks.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_16__["default"]
1178
+ };
1179
+
1180
+ /**
1181
+ * @public
1182
+ */
1183
+
1184
+ /**
1185
+ * @public
1186
+ */
1187
+ class OpenAPI3_0BundleVisitor {
1188
+ reference;
1189
+ options;
1190
+
1191
+ /**
1192
+ * The base URI (without hash) of the entry document. A reference is
1193
+ * considered internal when it resolves to this URI and external otherwise.
1194
+ * Derived from the shared refSet's root reference.
1195
+ */
1196
+ get entryURI() {
1197
+ return _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.stripHash(this.reference.refSet?.rootRef?.uri ?? '');
1198
+ }
1199
+
1200
+ /**
1201
+ * The entry parse result. Derived from the shared refSet's root reference.
1202
+ */
1203
+ get entryParseResult() {
1204
+ return this.reference.refSet.rootRef.value;
1205
+ }
1206
+
1207
+ /**
1208
+ * The entry document element. Hoisted external fragments are placed into its
1209
+ * `components` object. The `canBundle` guard guarantees it is an
1210
+ * OpenApi3_0Element.
1211
+ */
1212
+ get entryResult() {
1213
+ return this.entryParseResult.result;
1214
+ }
1215
+
1216
+ /**
1217
+ * Shared across the entry document and every external document visitor.
1218
+ * Guarantees each external fragment is hoisted exactly once and gives us a
1219
+ * stable internal pointer to rewrite every referencing element to.
1220
+ */
1221
+ assignments;
1222
+
1223
+ /**
1224
+ * Component names already reserved per Components Object field. Reserved
1225
+ * before recursion so collision suffixing (`Pet`, `Pet-2`, ...) accounts for
1226
+ * components that are still being bundled.
1227
+ */
1228
+ reservedNames;
1229
+
1230
+ /**
1231
+ * Caches refracted fragments keyed by source element and target element type.
1232
+ * The type is part of the key because the same source can be refracted into
1233
+ * different semantic elements depending on the referencing context (e.g. a
1234
+ * generic object referenced once as a Parameter and once as a Response).
1235
+ */
1236
+ refractCache;
1237
+
1238
+ /**
1239
+ * Canonical URIs of Path Item Objects currently being inlined. Path Items
1240
+ * are not hoisted into Components Object (no `components.pathItems` in
1241
+ * OpenAPI 3.0), so the `assignments` map can't break their cycles. This
1242
+ * stack guards against circular external Path Item references.
1243
+ */
1244
+ inlineStack;
1245
+ constructor({
1246
+ reference,
1247
+ options,
1248
+ assignments = new Map(),
1249
+ reservedNames = new Map(),
1250
+ refractCache = new WeakMap(),
1251
+ inlineStack = new Set()
1252
+ }) {
1253
+ this.reference = reference;
1254
+ this.options = options;
1255
+ this.inlineStack = inlineStack;
1256
+ this.assignments = assignments;
1257
+ this.reservedNames = reservedNames;
1258
+ this.refractCache = refractCache;
1259
+ }
1260
+ getRefracted(source, type) {
1261
+ return this.refractCache.get(source)?.get(type);
1262
+ }
1263
+ setRefracted(source, type, refracted) {
1264
+ let byType = this.refractCache.get(source);
1265
+ if (byType === undefined) {
1266
+ byType = new Map();
1267
+ this.refractCache.set(source, byType);
1268
+ }
1269
+ byType.set(type, refracted);
1270
+ }
1271
+ toBaseURI(uri) {
1272
+ return _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.resolve(this.reference.uri, _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.sanitize(_util_url_ts__WEBPACK_IMPORTED_MODULE_29__.stripHash(uri)));
1273
+ }
1274
+ async toReference(uri) {
1275
+ // detect maximum depth of resolution
1276
+ if (this.reference.depth >= this.options.resolve.maxDepth) {
1277
+ throw new _errors_MaximumResolveDepthError_ts__WEBPACK_IMPORTED_MODULE_28__["default"](`Maximum resolution depth of ${this.options.resolve.maxDepth} has been exceeded by file "${this.reference.uri}"`, {
1278
+ maxDepth: this.options.resolve.maxDepth,
1279
+ uri: this.reference.uri
1280
+ });
1281
+ }
1282
+ const baseURI = this.toBaseURI(uri);
1283
+ const {
1284
+ refSet
1285
+ } = this.reference;
1286
+
1287
+ // we've already processed this Reference in past
1288
+ if (refSet.has(baseURI)) {
1289
+ return refSet.find((0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(baseURI, 'uri'));
1290
+ }
1291
+ const parseResult = await (0,_parse_index_ts__WEBPACK_IMPORTED_MODULE_30__["default"])(_util_url_ts__WEBPACK_IMPORTED_MODULE_29__.unsanitize(baseURI), {
1292
+ ...this.options,
1293
+ parse: {
1294
+ ...this.options.parse,
1295
+ mediaType: 'text/plain'
1296
+ }
1297
+ });
1298
+ const reference = new _Reference_ts__WEBPACK_IMPORTED_MODULE_31__["default"]({
1299
+ uri: baseURI,
1300
+ value: parseResult,
1301
+ depth: this.reference.depth + 1
1302
+ });
1303
+ refSet.add(reference);
1304
+ return reference;
1305
+ }
1306
+
1307
+ /**
1308
+ * Normalizes a self-reference (e.g. `./root.json#/components/schemas/Pet`)
1309
+ * to a bare fragment (`#/components/schemas/Pet`) so the bundled document stays
1310
+ * transferable. Bare fragments are returned unchanged.
1311
+ */
1312
+ normalizeSelfReference(ref) {
1313
+ return ref.startsWith('#') ? ref : _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.getHash(ref);
1314
+ }
1315
+
1316
+ /**
1317
+ * Handles an error according to the `bundle.continueOnError` option.
1318
+ *
1319
+ * For new errors: wraps in UnresolvableReferenceError with structured
1320
+ * context. For errors already wrapped by a nested visitor: prepends the
1321
+ * current hop to the trace.
1322
+ *
1323
+ * Inner/intermediate visitors always throw to let the trace accumulate. Only
1324
+ * the entry document visitor respects continueOnError (callback/swallow/throw).
1325
+ */
1326
+ handleError(message, error, referencingElement, refFieldName, refFieldValue, visitorPath) {
1327
+ // a collision reported as `error` is a deliberate hard stop with no
1328
+ // resolution-failure analog, so pass it through unchanged. A maxDepth
1329
+ // breach (MaximumBundleDepthError, which also extends BundleError) is a
1330
+ // resolution failure and flows through below — wrapped and subject to
1331
+ // continueOnError, like dereferencing.
1332
+ if (error instanceof _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_25__["default"] && !(error instanceof _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_27__["default"])) {
1333
+ throw error;
1334
+ }
1335
+ const {
1336
+ continueOnError
1337
+ } = this.options.bundle;
1338
+ const isEntryDocument = _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.stripHash(this.reference.refSet?.rootRef?.uri ?? '') === this.reference.uri;
1339
+ const uri = this.reference.uri;
1340
+ const type = referencingElement.element;
1341
+ const codeFrame = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(referencingElement);
1342
+ const location = visitorPath.formatPath();
1343
+ const hop = {
1344
+ uri,
1345
+ type,
1346
+ refFieldName,
1347
+ refFieldValue,
1348
+ location,
1349
+ codeFrame
1350
+ };
1351
+ let unresolvedError;
1352
+ if (error instanceof _errors_UnresolvableReferenceError_ts__WEBPACK_IMPORTED_MODULE_26__["default"]) {
1353
+ // @ts-ignore
1354
+ error.trace = [hop, ...error.trace];
1355
+ unresolvedError = error;
1356
+ } else {
1357
+ unresolvedError = new _errors_UnresolvableReferenceError_ts__WEBPACK_IMPORTED_MODULE_26__["default"](message, {
1358
+ cause: error,
1359
+ type,
1360
+ uri,
1361
+ location,
1362
+ codeFrame,
1363
+ refFieldName,
1364
+ refFieldValue,
1365
+ trace: []
1366
+ });
1367
+ }
1368
+ if (!isEntryDocument || continueOnError === false) throw unresolvedError;
1369
+ if (typeof continueOnError === 'function') continueOnError(unresolvedError);
1370
+ }
1371
+
1372
+ /**
1373
+ * Lazily creates the Components Object (and the requested field within it)
1374
+ * on the entry document, returning the field where a fragment is hoisted.
1375
+ */
1376
+ ensureComponentsField(field) {
1377
+ const entryResult = this.entryResult;
1378
+ let components = entryResult.components;
1379
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isObjectElement)(components)) {
1380
+ components = new _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_12__["default"]();
1381
+ entryResult.components = components;
1382
+ }
1383
+ let fieldElement = components.get(field);
1384
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isObjectElement)(fieldElement)) {
1385
+ const FieldElement = componentFieldElementByField[field] ?? _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"];
1386
+ fieldElement = new FieldElement();
1387
+ components.set(field, fieldElement);
1388
+ }
1389
+ return fieldElement;
1390
+ }
1391
+
1392
+ /**
1393
+ * Derives a component name from the referenced JSON Pointer's last token,
1394
+ * falling back to the referenced file's basename.
1395
+ */
1396
+ basenameOf(jsonPointer, baseURI) {
1397
+ const tokens = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.parse)(jsonPointer).tree;
1398
+ const lastToken = tokens.length > 0 ? tokens[tokens.length - 1] : '';
1399
+ return lastToken || _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.getBasename(baseURI) || 'Schema';
1400
+ }
1401
+
1402
+ /**
1403
+ * Computes the base component name (before collision suffixing) according to
1404
+ * the configured naming strategy.
1405
+ */
1406
+ baseName(element, field, jsonPointer, baseURI) {
1407
+ // strategy specific options take precedence over the top-level bundle options
1408
+ const componentNamesStrategy = this.options.bundle.strategyOpts['openapi-3-0']?.componentNamesStrategy ?? this.options.bundle.componentNamesStrategy;
1409
+ if (typeof componentNamesStrategy === 'function') {
1410
+ const resolved = componentNamesStrategy({
1411
+ element,
1412
+ field,
1413
+ jsonPointer,
1414
+ baseURI
1415
+ });
1416
+ if (typeof resolved === 'string' && resolved !== '') {
1417
+ return resolved;
1418
+ }
1419
+ return this.basenameOf(jsonPointer, baseURI);
1420
+ }
1421
+ if (componentNamesStrategy === 'title') {
1422
+ const title = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isObjectElement)(element) ? (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(element.get('title')) : undefined;
1423
+ if (typeof title === 'string' && title.trim() !== '') {
1424
+ const name = (0,_util_ts__WEBPACK_IMPORTED_MODULE_32__.sanitizeComponentName)((0,_util_ts__WEBPACK_IMPORTED_MODULE_32__.toPascalCase)(title));
1425
+ if (name !== '') return name;
1426
+ }
1427
+ // fall back to basename when no usable title is present
1428
+ }
1429
+ return this.basenameOf(jsonPointer, baseURI);
1430
+ }
1431
+
1432
+ /**
1433
+ * Computes a collision-free component name within the target field. A name is
1434
+ * taken if it's already placed in components or reserved by a component that
1435
+ * is still being bundled (reserved before recursion).
1436
+ */
1437
+ uniqueName(candidate, field) {
1438
+ const fieldElement = this.ensureComponentsField(field);
1439
+ const reserved = this.reservedNames.get(field) ?? new Set();
1440
+ return (0,_util_ts__WEBPACK_IMPORTED_MODULE_32__.uniqueName)(candidate, name => fieldElement.hasKey(name) || reserved.has(name));
1441
+ }
1442
+ async ReferenceElement(path) {
1443
+ const referencingElement = path.node;
1444
+ const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(referencingElement.$ref);
1445
+ const retrievalURI = this.toBaseURI($ref);
1446
+ const isInternalReference = this.entryURI === retrievalURI;
1447
+ const isExternalReference = !isInternalReference;
1448
+ if (isInternalReference) {
1449
+ // normalize self-references to a bare fragment so the bundled
1450
+ // document stays transferable; bare fragments are left untouched
1451
+ referencingElement.set('$ref', this.normalizeSelfReference($ref));
1452
+ path.skip();
1453
+ return;
1454
+ }
1455
+
1456
+ // honor the resolve.external switch
1457
+ if (!this.options.resolve.external && isExternalReference) {
1458
+ path.skip();
1459
+ return;
1460
+ }
1461
+ const $refBaseURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.resolve(retrievalURI, $ref);
1462
+ const jsonPointer = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.URIFragmentIdentifier.fromURIReference($refBaseURI);
1463
+
1464
+ // the target bucket depends on the referencing context, so it's part of the
1465
+ // identity: the same external target referenced as e.g. both a parameter and
1466
+ // a response must be hoisted into both components fields. The refractor sets
1467
+ // `referenced-element` for every Reference Object position; the `schemas`
1468
+ // fallback is a defensive default for the (unexpected) untagged case.
1469
+ const referencedElementType = referencingElement.meta.get('referenced-element');
1470
+ const field = componentFieldByReferencedElement[referencedElementType] ?? componentFieldByReferencedElement.schema;
1471
+ const canonicalKey = `${field}\t${retrievalURI}#${jsonPointer}`;
1472
+
1473
+ // already hoisted (or being hoisted) — just rewrite the pointer.
1474
+ //
1475
+ // this is also how circular references terminate: the assignment is
1476
+ // reserved BEFORE recursing into the fragment (see below), so a reference
1477
+ // that cycles back (directly or indirectly) finds its pointer already
1478
+ // reserved here and is rewritten without recursing. Cycles are deliberately
1479
+ // preserved as internal `$ref`s pointing at each other — that is valid,
1480
+ // serializable output; resolving the cycle (if desired) is dereferencing's
1481
+ // job, not bundling's.
1482
+ if (this.assignments.has(canonicalKey)) {
1483
+ referencingElement.set('$ref', this.assignments.get(canonicalKey));
1484
+ path.skip();
1485
+ return;
1486
+ }
1487
+ try {
1488
+ // detect maximum depth of bundling
1489
+ if (this.reference.depth >= this.options.bundle.maxDepth) {
1490
+ 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}"`, {
1491
+ maxDepth: this.options.bundle.maxDepth,
1492
+ uri: this.reference.uri
1493
+ });
1494
+ }
1495
+ const reference = await this.toReference($ref);
1496
+
1497
+ // possibly non-semantic fragment
1498
+ let referencedElement = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__.evaluate)(reference.value.result, jsonPointer);
1499
+
1500
+ // apply semantics to the fragment so nested references become Reference Objects
1501
+ if (referencedElement.element !== referencedElementType && !(0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_14__.isReferenceElement)(referencedElement)) {
1502
+ const cached = this.getRefracted(referencedElement, referencedElementType);
1503
+ if (cached !== undefined) {
1504
+ referencedElement = cached;
1505
+ } else if ((0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_15__.isReferenceLikeElement)(referencedElement)) {
1506
+ const sourceElement = referencedElement;
1507
+ referencedElement = (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_13__.refractReference)(referencedElement);
1508
+ referencedElement.meta.set('referenced-element', referencedElementType);
1509
+ this.setRefracted(sourceElement, referencedElementType, referencedElement);
1510
+ } else {
1511
+ const sourceElement = referencedElement;
1512
+ referencedElement = (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_13__["default"])(referencedElement, {
1513
+ element: referencedElementType
1514
+ });
1515
+ this.setRefracted(sourceElement, referencedElementType, referencedElement);
1516
+ }
1517
+ }
1518
+ const preferredName = this.baseName(referencedElement, field, jsonPointer, retrievalURI);
1519
+ const componentName = this.uniqueName(preferredName, field);
1520
+ const internalPointer = `#/components/${field}/${(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.escape)(componentName)}`;
1521
+
1522
+ // a rename means two distinct targets resolved to the same name; each
1523
+ // keeps its own component (and origin), so report the rename per severity.
1524
+ // strategy specific options take precedence over the top-level bundle options
1525
+ const onComponentNameCollision = this.options.bundle.strategyOpts['openapi-3-0']?.onComponentNameCollision ?? this.options.bundle.onComponentNameCollision;
1526
+ if (componentName !== preferredName && onComponentNameCollision !== 'off') {
1527
+ const message = `Component "${preferredName}" in components/${field} is referenced with the same name but different content. Renamed to "${componentName}".`;
1528
+ if (onComponentNameCollision === 'error') {
1529
+ throw new _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_25__["default"](message);
1530
+ }
1531
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__["default"](message);
1532
+ annotation.classes.push('warning');
1533
+ annotation.code = 'bundle-component-name-collision';
1534
+ // append (never prepend) so the result element stays ahead of annotations
1535
+ this.entryParseResult.content.push(annotation);
1536
+ }
1537
+
1538
+ // reserve the assignment and component name before recursing so cyclic
1539
+ // references terminate
1540
+ this.assignments.set(canonicalKey, internalPointer);
1541
+ if (!this.reservedNames.has(field)) this.reservedNames.set(field, new Set());
1542
+ this.reservedNames.get(field).add(componentName);
1543
+
1544
+ // own a copy of the fragment and bundle its own external references
1545
+ const hoistedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneDeep)(referencedElement);
1546
+ const visitor = new OpenAPI3_0BundleVisitor({
1547
+ reference,
1548
+ options: this.options,
1549
+ assignments: this.assignments,
1550
+ reservedNames: this.reservedNames,
1551
+ refractCache: this.refractCache,
1552
+ inlineStack: this.inlineStack
1553
+ });
1554
+ const bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_9__.traverseAsync)(hoistedElement, visitor, {
1555
+ mutable: true
1556
+ });
1557
+
1558
+ // annotate the hoisted fragment with info about its origin
1559
+ if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isElement)(bundledElement)) {
1560
+ bundledElement.meta.set('ref-origin', reference.uri);
1561
+ }
1562
+
1563
+ // place the bundled fragment into the entry document's components
1564
+ this.ensureComponentsField(field).set(componentName, bundledElement);
1565
+
1566
+ // rewrite the referencing element to point at the hoisted fragment
1567
+ referencingElement.set('$ref', internalPointer);
1568
+ path.skip();
1569
+ } catch (error) {
1570
+ this.handleError(`Error while bundling Reference Object. Cannot resolve $ref "${$ref}": ${error.message}`, error, referencingElement, '$ref', $ref, path);
1571
+ path.skip();
1572
+ }
1573
+ }
1574
+
1575
+ /**
1576
+ * Path Item Object is not a Components Object field in OpenAPI 3.0
1577
+ * (unlike 3.1 which has `components.pathItems`). An external Path Item
1578
+ * reference therefore cannot be hoisted; it is inlined in place instead,
1579
+ * after bundling its own external references.
1580
+ */
1581
+ async PathItemElement(path) {
1582
+ const pathItemElement = path.node;
1583
+
1584
+ // ignore Path Item Objects without a $ref field
1585
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(pathItemElement.$ref)) {
1586
+ return;
1587
+ }
1588
+ const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(pathItemElement.$ref);
1589
+ const retrievalURI = this.toBaseURI($ref);
1590
+ const isInternalReference = this.entryURI === retrievalURI;
1591
+ const isExternalReference = !isInternalReference;
1592
+ if (isInternalReference) {
1593
+ // normalize self-references to a bare fragment so the bundled
1594
+ // document stays transferable; bare fragments are left untouched
1595
+ pathItemElement.set('$ref', this.normalizeSelfReference($ref));
1596
+ return;
1597
+ }
1598
+
1599
+ // honor the resolve.external switch
1600
+ if (!this.options.resolve.external && isExternalReference) {
1601
+ return;
1602
+ }
1603
+ const $refBaseURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.resolve(retrievalURI, $ref);
1604
+ const jsonPointer = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.URIFragmentIdentifier.fromURIReference($refBaseURI);
1605
+ const canonicalKey = `${retrievalURI}#${jsonPointer}`;
1606
+
1607
+ // a circular external Path Item reference cannot be inlined without
1608
+ // recursing forever; leave the $ref in place to break the cycle
1609
+ if (this.inlineStack.has(canonicalKey)) {
1610
+ return;
1611
+ }
1612
+ try {
1613
+ // detect maximum depth of bundling
1614
+ if (this.reference.depth >= this.options.bundle.maxDepth) {
1615
+ 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}"`, {
1616
+ maxDepth: this.options.bundle.maxDepth,
1617
+ uri: this.reference.uri
1618
+ });
1619
+ }
1620
+ const reference = await this.toReference($ref);
1621
+ let referencedElement = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__.evaluate)(reference.value.result, jsonPointer);
1622
+
1623
+ // apply Path Item semantics to the referenced fragment
1624
+ if (!(0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_14__.isPathItemElement)(referencedElement)) {
1625
+ const cached = this.getRefracted(referencedElement, 'pathItem');
1626
+ if (cached !== undefined) {
1627
+ referencedElement = cached;
1628
+ } else {
1629
+ const sourceElement = referencedElement;
1630
+ referencedElement = (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_13__.refractPathItem)(referencedElement);
1631
+ this.setRefracted(sourceElement, 'pathItem', referencedElement);
1632
+ }
1633
+ }
1634
+
1635
+ // own a copy and bundle the external references it contains
1636
+ const inlinedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneDeep)(referencedElement);
1637
+ this.inlineStack.add(canonicalKey);
1638
+ const visitor = new OpenAPI3_0BundleVisitor({
1639
+ reference,
1640
+ options: this.options,
1641
+ assignments: this.assignments,
1642
+ reservedNames: this.reservedNames,
1643
+ refractCache: this.refractCache,
1644
+ inlineStack: this.inlineStack
1645
+ });
1646
+ let bundledElement;
1647
+ try {
1648
+ bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_9__.traverseAsync)(inlinedElement, visitor, {
1649
+ mutable: true
1650
+ });
1651
+ } finally {
1652
+ this.inlineStack.delete(canonicalKey);
1653
+ }
1654
+
1655
+ // merge sibling fields from the referencing Path Item over the referenced
1656
+ // one. The referencing `$ref` is being resolved away and is skipped; the
1657
+ // referenced element keeps its own `$ref` if one survived (i.e. it was
1658
+ // left in place to break a circular external Path Item chain).
1659
+ pathItemElement.forEach((_value, keyElement, item) => {
1660
+ const key = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(keyElement);
1661
+ if (key === '$ref') return;
1662
+ bundledElement.remove(key);
1663
+ bundledElement.content.push(item);
1664
+ });
1665
+ bundledElement.meta.set('ref-origin', reference.uri);
1666
+ path.replaceWith(bundledElement);
1667
+ } catch (error) {
1668
+ this.handleError(`Error while bundling Path Item Object. Cannot resolve $ref "${$ref}": ${error.message}`, error, pathItemElement, '$ref', $ref, path);
1669
+ }
1670
+ }
1671
+
1672
+ /**
1673
+ * Example Object `externalValue` points at arbitrary external content that
1674
+ * has no place in the Components Object. The referenced value is inlined into
1675
+ * the Example's `value` field.
1676
+ */
1677
+ async ExampleElement(path) {
1678
+ const exampleElement = path.node;
1679
+
1680
+ // ignore Example Objects without an externalValue field
1681
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(exampleElement.externalValue)) {
1682
+ return;
1683
+ }
1684
+
1685
+ // value and externalValue fields are mutually exclusive
1686
+ if (exampleElement.hasKey('value') && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(exampleElement.externalValue)) {
1687
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_8__["default"]('ExampleElement value and externalValue fields are mutually exclusive', {
1688
+ value: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(exampleElement.value),
1689
+ externalValue: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(exampleElement.externalValue)
1690
+ });
1691
+ }
1692
+ const externalValue = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(exampleElement.externalValue);
1693
+ const retrievalURI = this.toBaseURI(externalValue);
1694
+ const isInternalReference = this.entryURI === retrievalURI;
1695
+ const isExternalReference = !isInternalReference;
1696
+
1697
+ // honor the resolve.external switch
1698
+ if (!this.options.resolve.external && isExternalReference) {
1699
+ return;
1700
+ }
1701
+ try {
1702
+ const reference = await this.toReference(externalValue);
1703
+ const valueElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneShallow)(reference.value.result);
1704
+ valueElement.meta.set('ref-origin', reference.uri);
1705
+ const exampleElementCopy = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneShallow)(exampleElement);
1706
+ exampleElementCopy.value = valueElement;
1707
+ exampleElementCopy.remove('externalValue');
1708
+ path.replaceWith(exampleElementCopy);
1709
+ } catch (error) {
1710
+ this.handleError(`Error while bundling Example Object. Cannot resolve externalValue "${externalValue}": ${error.message}`, error, exampleElement, 'externalValue', externalValue, path);
1711
+ }
1712
+ }
1713
+
1714
+ /**
1715
+ * Link Object `operationRef` points at an Operation Object, which has no
1716
+ * Components Object field in OpenAPI 3.0 and therefore cannot be hoisted or
1717
+ * inlined. To keep the link resolvable from the bundled document, an external
1718
+ * `operationRef` is rewritten to its absolute URI. Internal `operationRef`
1719
+ * values and `operationId` links are left untouched.
1720
+ */
1721
+ async LinkElement(path) {
1722
+ const linkElement = path.node;
1723
+
1724
+ // operationRef and operationId fields are mutually exclusive
1725
+ if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(linkElement.operationRef) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(linkElement.operationId)) {
1726
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_8__["default"]('LinkElement operationRef and operationId fields are mutually exclusive', {
1727
+ operationRef: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(linkElement.operationRef),
1728
+ operationId: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(linkElement.operationId)
1729
+ });
1730
+ }
1731
+
1732
+ // only external operationRef links need adjusting
1733
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(linkElement.operationRef)) {
1734
+ return;
1735
+ }
1736
+ const operationRef = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(linkElement.operationRef);
1737
+ const retrievalURI = this.toBaseURI(operationRef);
1738
+ const isInternalReference = this.entryURI === retrievalURI;
1739
+ if (isInternalReference) {
1740
+ // normalize a self-reference operationRef to a bare fragment so the bundled
1741
+ // document stays transferable; bare fragments are left untouched
1742
+ linkElement.set('operationRef', this.normalizeSelfReference(operationRef));
1743
+ return;
1744
+ }
1745
+
1746
+ // honor the resolve.external switch
1747
+ if (!this.options.resolve.external) {
1748
+ return;
1749
+ }
1750
+
1751
+ // rewrite to an absolute URI so the link keeps resolving once the document
1752
+ // is treated as self-contained
1753
+ const absoluteURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.resolve(this.reference.uri, operationRef);
1754
+ if (absoluteURI !== operationRef) {
1755
+ linkElement.set('operationRef', absoluteURI);
1756
+ }
1757
+ }
1758
+ }
1759
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI3_0BundleVisitor);
1760
+
1761
+ /***/ },
1762
+
1763
+ /***/ 16432
1764
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1765
+
1766
+ "use strict";
1767
+ __webpack_require__.r(__webpack_exports__);
1768
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1769
+ /* harmony export */ OpenAPI3_1BundleVisitor: () => (/* reexport safe */ _visitor_ts__WEBPACK_IMPORTED_MODULE_7__["default"]),
298
1770
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
299
1771
  /* harmony export */ });
300
1772
  /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12111);
301
1773
  /* harmony import */ var _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(80796);
302
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(43151);
303
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(32131);
1774
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7822);
1775
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(76332);
304
1776
  /* harmony import */ var _Reference_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(98979);
305
1777
  /* harmony import */ var _ReferenceSet_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(24131);
306
1778
  /* harmony import */ var _BundleStrategy_ts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(75508);
307
- /* harmony import */ var _visitor_ts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(74985);
1779
+ /* harmony import */ var _visitor_ts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(31066);
308
1780
 
309
1781
 
310
1782
 
@@ -320,21 +1792,21 @@ __webpack_require__.r(__webpack_exports__);
320
1792
  /**
321
1793
  * @public
322
1794
  */
323
- class OpenAPI3_0BundleStrategy extends _BundleStrategy_ts__WEBPACK_IMPORTED_MODULE_6__["default"] {
1795
+ class OpenAPI3_1BundleStrategy extends _BundleStrategy_ts__WEBPACK_IMPORTED_MODULE_6__["default"] {
324
1796
  constructor(options) {
325
1797
  super({
326
1798
  ...(options ?? {}),
327
- name: 'openapi-3-0'
1799
+ name: 'openapi-3-1'
328
1800
  });
329
1801
  }
330
1802
  canBundle(file) {
331
1803
  // assert by media type
332
1804
  if (file.mediaType !== 'text/plain') {
333
- return _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_2__["default"].includes(file.mediaType);
1805
+ return _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_2__["default"].includes(file.mediaType);
334
1806
  }
335
1807
 
336
1808
  // assert by inspecting ApiDOM
337
- return (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_3__.isOpenApi3_0Element)(file.parseResult?.result);
1809
+ return (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__.isOpenApi3_1Element)(file.parseResult?.result);
338
1810
  }
339
1811
  async bundle(file, options) {
340
1812
  const immutableRefSet = options.bundle.refSet ?? new _ReferenceSet_ts__WEBPACK_IMPORTED_MODULE_5__["default"]();
@@ -387,11 +1859,11 @@ class OpenAPI3_0BundleStrategy extends _BundleStrategy_ts__WEBPACK_IMPORTED_MODU
387
1859
  }
388
1860
  }
389
1861
 
390
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI3_0BundleStrategy);
1862
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI3_1BundleStrategy);
391
1863
 
392
1864
  /***/ },
393
1865
 
394
- /***/ 74985
1866
+ /***/ 31066
395
1867
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
396
1868
 
397
1869
  "use strict";
@@ -399,39 +1871,51 @@ __webpack_require__.r(__webpack_exports__);
399
1871
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
400
1872
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
401
1873
  /* harmony export */ });
402
- /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6352);
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__(97071);
406
- /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84660);
407
- /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(37205);
408
- /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(44673);
409
- /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(16280);
410
- /* harmony import */ var _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(44641);
411
- /* harmony import */ var _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(80796);
412
- /* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(12020);
413
- /* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(61198);
414
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(30609);
415
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(64708);
416
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(32131);
417
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(21314);
418
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(29881);
419
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(23806);
420
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(23031);
421
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(63842);
422
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(87455);
423
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(55122);
424
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(71117);
425
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(72257);
426
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(69511);
427
- /* harmony import */ var _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(81002);
428
- /* harmony import */ var _errors_UnresolvableReferenceError_ts__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(8853);
429
- /* harmony import */ var _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(16843);
430
- /* harmony import */ var _errors_MaximumResolveDepthError_ts__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(51325);
431
- /* harmony import */ var _util_url_ts__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(30658);
432
- /* harmony import */ var _parse_index_ts__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(35014);
433
- /* harmony import */ var _Reference_ts__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(98979);
434
- /* harmony import */ var _util_ts__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(25939);
1874
+ /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(87009);
1875
+ /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6352);
1876
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25162);
1877
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12111);
1878
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(97071);
1879
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(84660);
1880
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(37205);
1881
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(44673);
1882
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(16280);
1883
+ /* harmony import */ var _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(44641);
1884
+ /* harmony import */ var _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(80796);
1885
+ /* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(12020);
1886
+ /* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(61198);
1887
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(21314);
1888
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(24329);
1889
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(29881);
1890
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(76332);
1891
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(23806);
1892
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(52645);
1893
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(23031);
1894
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(63842);
1895
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(87455);
1896
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(16363);
1897
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(55122);
1898
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(71117);
1899
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(72257);
1900
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(69511);
1901
+ /* harmony import */ var _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(81002);
1902
+ /* harmony import */ var _errors_UnresolvableReferenceError_ts__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(8853);
1903
+ /* harmony import */ var _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(16843);
1904
+ /* harmony import */ var _errors_MaximumResolveDepthError_ts__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(51325);
1905
+ /* harmony import */ var _errors_EvaluationJsonSchemaUriError_ts__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(44477);
1906
+ /* harmony import */ var _util_url_ts__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(30658);
1907
+ /* harmony import */ var _parse_index_ts__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(35014);
1908
+ /* harmony import */ var _Reference_ts__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(98979);
1909
+ /* harmony import */ var _File_ts__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(10682);
1910
+ /* harmony import */ var _dereference_strategies_openapi_3_1_selectors_$anchor_ts__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(32054);
1911
+ /* harmony import */ var _dereference_strategies_openapi_3_1_selectors_uri_ts__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(56481);
1912
+ /* harmony import */ var _dereference_strategies_openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(60888);
1913
+ /* harmony import */ var _util_ts__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(25939);
1914
+
1915
+
1916
+
1917
+
1918
+
435
1919
 
436
1920
 
437
1921
 
@@ -453,7 +1937,7 @@ __webpack_require__.r(__webpack_exports__);
453
1937
  * Field names are sourced from the Components Object fixed fields so they
454
1938
  * cannot drift from the namespace definition.
455
1939
  */
456
- const cf = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__.fixedFields)(_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_12__["default"], {
1940
+ const cf = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__.fixedFields)(_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__.ComponentsElement, {
457
1941
  indexed: true
458
1942
  });
459
1943
  const componentFieldByReferencedElement = {
@@ -465,7 +1949,8 @@ const componentFieldByReferencedElement = {
465
1949
  header: cf.headers.name,
466
1950
  securityScheme: cf.securitySchemes.name,
467
1951
  link: cf.links.name,
468
- callback: cf.callbacks.name
1952
+ callback: cf.callbacks.name,
1953
+ pathItem: cf.pathItems.name
469
1954
  };
470
1955
 
471
1956
  /**
@@ -475,15 +1960,16 @@ const componentFieldByReferencedElement = {
475
1960
  * object.
476
1961
  */
477
1962
  const componentFieldElementByField = {
478
- [cf.schemas.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_23__["default"],
479
- [cf.responses.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_22__["default"],
480
- [cf.parameters.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_20__["default"],
481
- [cf.examples.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_17__["default"],
482
- [cf.requestBodies.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_21__["default"],
483
- [cf.headers.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_18__["default"],
484
- [cf.securitySchemes.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_24__["default"],
485
- [cf.links.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_19__["default"],
486
- [cf.callbacks.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_16__["default"]
1963
+ [cf.schemas.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_25__["default"],
1964
+ [cf.responses.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_24__["default"],
1965
+ [cf.parameters.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_21__["default"],
1966
+ [cf.examples.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__["default"],
1967
+ [cf.requestBodies.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_23__["default"],
1968
+ [cf.headers.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__["default"],
1969
+ [cf.securitySchemes.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_26__["default"],
1970
+ [cf.links.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__["default"],
1971
+ [cf.callbacks.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__["default"],
1972
+ [cf.pathItems.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_22__["default"]
487
1973
  };
488
1974
 
489
1975
  /**
@@ -493,7 +1979,7 @@ const componentFieldElementByField = {
493
1979
  /**
494
1980
  * @public
495
1981
  */
496
- class OpenAPI3_0BundleVisitor {
1982
+ class OpenAPI3_1BundleVisitor {
497
1983
  reference;
498
1984
  options;
499
1985
 
@@ -503,7 +1989,7 @@ class OpenAPI3_0BundleVisitor {
503
1989
  * Derived from the shared refSet's root reference.
504
1990
  */
505
1991
  get entryURI() {
506
- return _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.stripHash(this.reference.refSet?.rootRef?.uri ?? '');
1992
+ return _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.stripHash(this.reference.refSet?.rootRef?.uri ?? '');
507
1993
  }
508
1994
 
509
1995
  /**
@@ -516,7 +2002,7 @@ class OpenAPI3_0BundleVisitor {
516
2002
  /**
517
2003
  * The entry document element. Hoisted external fragments are placed into its
518
2004
  * `components` object. The `canBundle` guard guarantees it is an
519
- * OpenApi3_0Element.
2005
+ * OpenApi3_1Element.
520
2006
  */
521
2007
  get entryResult() {
522
2008
  return this.entryParseResult.result;
@@ -543,25 +2029,15 @@ class OpenAPI3_0BundleVisitor {
543
2029
  * generic object referenced once as a Parameter and once as a Response).
544
2030
  */
545
2031
  refractCache;
546
-
547
- /**
548
- * Canonical URIs of Path Item Objects currently being inlined. Path Items
549
- * are not hoisted into Components Object (no `components.pathItems` in
550
- * OpenAPI 3.0), so the `assignments` map can't break their cycles. This
551
- * stack guards against circular external Path Item references.
552
- */
553
- inlineStack;
554
2032
  constructor({
555
2033
  reference,
556
2034
  options,
557
2035
  assignments = new Map(),
558
2036
  reservedNames = new Map(),
559
- refractCache = new WeakMap(),
560
- inlineStack = new Set()
2037
+ refractCache = new WeakMap()
561
2038
  }) {
562
2039
  this.reference = reference;
563
2040
  this.options = options;
564
- this.inlineStack = inlineStack;
565
2041
  this.assignments = assignments;
566
2042
  this.reservedNames = reservedNames;
567
2043
  this.refractCache = refractCache;
@@ -578,12 +2054,12 @@ class OpenAPI3_0BundleVisitor {
578
2054
  byType.set(type, refracted);
579
2055
  }
580
2056
  toBaseURI(uri) {
581
- return _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.resolve(this.reference.uri, _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.sanitize(_util_url_ts__WEBPACK_IMPORTED_MODULE_29__.stripHash(uri)));
2057
+ 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)));
582
2058
  }
583
2059
  async toReference(uri) {
584
2060
  // detect maximum depth of resolution
585
2061
  if (this.reference.depth >= this.options.resolve.maxDepth) {
586
- throw new _errors_MaximumResolveDepthError_ts__WEBPACK_IMPORTED_MODULE_28__["default"](`Maximum resolution depth of ${this.options.resolve.maxDepth} has been exceeded by file "${this.reference.uri}"`, {
2062
+ 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}"`, {
587
2063
  maxDepth: this.options.resolve.maxDepth,
588
2064
  uri: this.reference.uri
589
2065
  });
@@ -595,16 +2071,16 @@ class OpenAPI3_0BundleVisitor {
595
2071
 
596
2072
  // we've already processed this Reference in past
597
2073
  if (refSet.has(baseURI)) {
598
- return refSet.find((0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(baseURI, 'uri'));
2074
+ return refSet.find((0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(baseURI, 'uri'));
599
2075
  }
600
- const parseResult = await (0,_parse_index_ts__WEBPACK_IMPORTED_MODULE_30__["default"])(_util_url_ts__WEBPACK_IMPORTED_MODULE_29__.unsanitize(baseURI), {
2076
+ const parseResult = await (0,_parse_index_ts__WEBPACK_IMPORTED_MODULE_33__["default"])(_util_url_ts__WEBPACK_IMPORTED_MODULE_32__.unsanitize(baseURI), {
601
2077
  ...this.options,
602
2078
  parse: {
603
2079
  ...this.options.parse,
604
2080
  mediaType: 'text/plain'
605
2081
  }
606
2082
  });
607
- const reference = new _Reference_ts__WEBPACK_IMPORTED_MODULE_31__["default"]({
2083
+ const reference = new _Reference_ts__WEBPACK_IMPORTED_MODULE_34__["default"]({
608
2084
  uri: baseURI,
609
2085
  value: parseResult,
610
2086
  depth: this.reference.depth + 1
@@ -614,12 +2090,12 @@ class OpenAPI3_0BundleVisitor {
614
2090
  }
615
2091
 
616
2092
  /**
617
- * Normalizes a self-file reference (e.g. `./root.json#/components/schemas/Pet`)
2093
+ * Normalizes a self-reference (e.g. `./root.json#/components/schemas/Pet`)
618
2094
  * to a bare fragment (`#/components/schemas/Pet`) so the bundled document stays
619
2095
  * transferable. Bare fragments are returned unchanged.
620
2096
  */
621
- normalizeSelfFileRef(ref) {
622
- return ref.startsWith('#') ? ref : _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.getHash(ref);
2097
+ normalizeSelfReference(ref) {
2098
+ return ref.startsWith('#') ? ref : _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.getHash(ref);
623
2099
  }
624
2100
 
625
2101
  /**
@@ -638,16 +2114,16 @@ class OpenAPI3_0BundleVisitor {
638
2114
  // breach (MaximumBundleDepthError, which also extends BundleError) is a
639
2115
  // resolution failure and flows through below — wrapped and subject to
640
2116
  // continueOnError, like dereferencing.
641
- if (error instanceof _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_25__["default"] && !(error instanceof _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_27__["default"])) {
2117
+ if (error instanceof _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_27__["default"] && !(error instanceof _errors_MaximumBundleDepthError_ts__WEBPACK_IMPORTED_MODULE_29__["default"])) {
642
2118
  throw error;
643
2119
  }
644
2120
  const {
645
2121
  continueOnError
646
2122
  } = this.options.bundle;
647
- const isEntryDocument = _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.stripHash(this.reference.refSet?.rootRef?.uri ?? '') === this.reference.uri;
2123
+ const isEntryDocument = _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.stripHash(this.reference.refSet?.rootRef?.uri ?? '') === this.reference.uri;
648
2124
  const uri = this.reference.uri;
649
2125
  const type = referencingElement.element;
650
- const codeFrame = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(referencingElement);
2126
+ const codeFrame = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__["default"])(referencingElement);
651
2127
  const location = visitorPath.formatPath();
652
2128
  const hop = {
653
2129
  uri,
@@ -658,12 +2134,12 @@ class OpenAPI3_0BundleVisitor {
658
2134
  codeFrame
659
2135
  };
660
2136
  let unresolvedError;
661
- if (error instanceof _errors_UnresolvableReferenceError_ts__WEBPACK_IMPORTED_MODULE_26__["default"]) {
2137
+ if (error instanceof _errors_UnresolvableReferenceError_ts__WEBPACK_IMPORTED_MODULE_28__["default"]) {
662
2138
  // @ts-ignore
663
2139
  error.trace = [hop, ...error.trace];
664
2140
  unresolvedError = error;
665
2141
  } else {
666
- unresolvedError = new _errors_UnresolvableReferenceError_ts__WEBPACK_IMPORTED_MODULE_26__["default"](message, {
2142
+ unresolvedError = new _errors_UnresolvableReferenceError_ts__WEBPACK_IMPORTED_MODULE_28__["default"](message, {
667
2143
  cause: error,
668
2144
  type,
669
2145
  uri,
@@ -685,13 +2161,13 @@ class OpenAPI3_0BundleVisitor {
685
2161
  ensureComponentsField(field) {
686
2162
  const entryResult = this.entryResult;
687
2163
  let components = entryResult.components;
688
- if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isObjectElement)(components)) {
689
- components = new _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_12__["default"]();
2164
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isObjectElement)(components)) {
2165
+ components = new _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__.ComponentsElement();
690
2166
  entryResult.components = components;
691
2167
  }
692
2168
  let fieldElement = components.get(field);
693
- if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isObjectElement)(fieldElement)) {
694
- const FieldElement = componentFieldElementByField[field] ?? _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"];
2169
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isObjectElement)(fieldElement)) {
2170
+ const FieldElement = componentFieldElementByField[field] ?? _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__["default"];
695
2171
  fieldElement = new FieldElement();
696
2172
  components.set(field, fieldElement);
697
2173
  }
@@ -703,17 +2179,9 @@ class OpenAPI3_0BundleVisitor {
703
2179
  * falling back to the referenced file's basename.
704
2180
  */
705
2181
  basenameOf(jsonPointer, baseURI) {
706
- const tokens = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.parse)(jsonPointer).tree;
707
- let candidate = tokens.length > 0 ? tokens[tokens.length - 1] : '';
708
- if (candidate === '') {
709
- const lastSlash = baseURI.lastIndexOf('/');
710
- const lastDot = baseURI.lastIndexOf('.');
711
- const fileName = baseURI.slice(lastSlash + 1);
712
- // strip the extension only when the last dot belongs to the file name
713
- candidate = lastDot > lastSlash ? baseURI.slice(lastSlash + 1, lastDot) : fileName;
714
- }
715
- if (candidate === '') candidate = 'Schema';
716
- return candidate;
2182
+ const tokens = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.parse)(jsonPointer).tree;
2183
+ const lastToken = tokens.length > 0 ? tokens[tokens.length - 1] : '';
2184
+ return lastToken || _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.getBasename(baseURI) || 'Schema';
717
2185
  }
718
2186
 
719
2187
  /**
@@ -722,7 +2190,7 @@ class OpenAPI3_0BundleVisitor {
722
2190
  */
723
2191
  baseName(element, field, jsonPointer, baseURI) {
724
2192
  // strategy specific options take precedence over the top-level bundle options
725
- const componentNamesStrategy = this.options.bundle.strategyOpts['openapi-3-0']?.componentNamesStrategy ?? this.options.bundle.componentNamesStrategy;
2193
+ const componentNamesStrategy = this.options.bundle.strategyOpts['openapi-3-1']?.componentNamesStrategy ?? this.options.bundle.componentNamesStrategy;
726
2194
  if (typeof componentNamesStrategy === 'function') {
727
2195
  const resolved = componentNamesStrategy({
728
2196
  element,
@@ -736,9 +2204,9 @@ class OpenAPI3_0BundleVisitor {
736
2204
  return this.basenameOf(jsonPointer, baseURI);
737
2205
  }
738
2206
  if (componentNamesStrategy === 'title') {
739
- const title = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isObjectElement)(element) ? (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(element.get('title')) : undefined;
2207
+ 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;
740
2208
  if (typeof title === 'string' && title.trim() !== '') {
741
- const name = (0,_util_ts__WEBPACK_IMPORTED_MODULE_32__.sanitizeComponentName)((0,_util_ts__WEBPACK_IMPORTED_MODULE_32__.toPascalCase)(title));
2209
+ const name = (0,_util_ts__WEBPACK_IMPORTED_MODULE_39__.sanitizeComponentName)((0,_util_ts__WEBPACK_IMPORTED_MODULE_39__.toPascalCase)(title));
742
2210
  if (name !== '') return name;
743
2211
  }
744
2212
  // fall back to basename when no usable title is present
@@ -754,18 +2222,40 @@ class OpenAPI3_0BundleVisitor {
754
2222
  uniqueName(candidate, field) {
755
2223
  const fieldElement = this.ensureComponentsField(field);
756
2224
  const reserved = this.reservedNames.get(field) ?? new Set();
757
- return (0,_util_ts__WEBPACK_IMPORTED_MODULE_32__.uniqueName)(candidate, name => fieldElement.hasKey(name) || reserved.has(name));
2225
+ return (0,_util_ts__WEBPACK_IMPORTED_MODULE_39__.uniqueName)(candidate, name => fieldElement.hasKey(name) || reserved.has(name));
2226
+ }
2227
+
2228
+ /**
2229
+ * Reports a collision-forced rename according to the configured severity.
2230
+ * A rename means two distinct targets resolved to the same name; each keeps
2231
+ * its own component (and origin), so report the rename per severity.
2232
+ */
2233
+ reportNameCollision(preferredName, componentName, field) {
2234
+ // strategy specific options take precedence over the top-level bundle options
2235
+ const onComponentNameCollision = this.options.bundle.strategyOpts['openapi-3-1']?.onComponentNameCollision ?? this.options.bundle.onComponentNameCollision;
2236
+ if (componentName === preferredName || onComponentNameCollision === 'off') {
2237
+ return;
2238
+ }
2239
+ const message = `Component "${preferredName}" in components/${field} is referenced with the same name but different content. Renamed to "${componentName}".`;
2240
+ if (onComponentNameCollision === 'error') {
2241
+ throw new _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_27__["default"](message);
2242
+ }
2243
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_5__["default"](message);
2244
+ annotation.classes.push('warning');
2245
+ annotation.code = 'bundle-component-name-collision';
2246
+ // append (never prepend) so the result element stays ahead of annotations
2247
+ this.entryParseResult.content.push(annotation);
758
2248
  }
759
2249
  async ReferenceElement(path) {
760
2250
  const referencingElement = path.node;
761
- const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(referencingElement.$ref);
2251
+ const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(referencingElement.$ref);
762
2252
  const retrievalURI = this.toBaseURI($ref);
763
2253
  const isInternalReference = this.entryURI === retrievalURI;
764
2254
  const isExternalReference = !isInternalReference;
765
2255
  if (isInternalReference) {
766
- // normalize self-file references to a bare fragment so the bundled
2256
+ // normalize self-references to a bare fragment so the bundled
767
2257
  // document stays transferable; bare fragments are left untouched
768
- referencingElement.set('$ref', this.normalizeSelfFileRef($ref));
2258
+ referencingElement.set('$ref', this.normalizeSelfReference($ref));
769
2259
  path.skip();
770
2260
  return;
771
2261
  }
@@ -775,8 +2265,8 @@ class OpenAPI3_0BundleVisitor {
775
2265
  path.skip();
776
2266
  return;
777
2267
  }
778
- const $refBaseURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.resolve(retrievalURI, $ref);
779
- const jsonPointer = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.URIFragmentIdentifier.fromURIReference($refBaseURI);
2268
+ const $refBaseURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.resolve(retrievalURI, $ref);
2269
+ const jsonPointer = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.URIFragmentIdentifier.fromURIReference($refBaseURI);
780
2270
 
781
2271
  // the target bucket depends on the referencing context, so it's part of the
782
2272
  // identity: the same external target referenced as e.g. both a parameter and
@@ -804,7 +2294,7 @@ class OpenAPI3_0BundleVisitor {
804
2294
  try {
805
2295
  // detect maximum depth of bundling
806
2296
  if (this.reference.depth >= this.options.bundle.maxDepth) {
807
- 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}"`, {
2297
+ 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}"`, {
808
2298
  maxDepth: this.options.bundle.maxDepth,
809
2299
  uri: this.reference.uri
810
2300
  });
@@ -812,21 +2302,21 @@ class OpenAPI3_0BundleVisitor {
812
2302
  const reference = await this.toReference($ref);
813
2303
 
814
2304
  // possibly non-semantic fragment
815
- let referencedElement = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__.evaluate)(reference.value.result, jsonPointer);
2305
+ let referencedElement = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.evaluate)(reference.value.result, jsonPointer);
816
2306
 
817
2307
  // apply semantics to the fragment so nested references become Reference Objects
818
- if (referencedElement.element !== referencedElementType && !(0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_14__.isReferenceElement)(referencedElement)) {
2308
+ if (referencedElement.element !== referencedElementType && !(0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__.isReferenceElement)(referencedElement)) {
819
2309
  const cached = this.getRefracted(referencedElement, referencedElementType);
820
2310
  if (cached !== undefined) {
821
2311
  referencedElement = cached;
822
- } else if ((0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_15__.isReferenceLikeElement)(referencedElement)) {
2312
+ } else if ((0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_13__.isReferenceLikeElement)(referencedElement)) {
823
2313
  const sourceElement = referencedElement;
824
- referencedElement = (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_13__.refractReference)(referencedElement);
2314
+ referencedElement = (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__.refractReference)(referencedElement);
825
2315
  referencedElement.meta.set('referenced-element', referencedElementType);
826
2316
  this.setRefracted(sourceElement, referencedElementType, referencedElement);
827
2317
  } else {
828
2318
  const sourceElement = referencedElement;
829
- referencedElement = (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_13__["default"])(referencedElement, {
2319
+ referencedElement = (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__["default"])(referencedElement, {
830
2320
  element: referencedElementType
831
2321
  });
832
2322
  this.setRefracted(sourceElement, referencedElementType, referencedElement);
@@ -834,23 +2324,8 @@ class OpenAPI3_0BundleVisitor {
834
2324
  }
835
2325
  const preferredName = this.baseName(referencedElement, field, jsonPointer, retrievalURI);
836
2326
  const componentName = this.uniqueName(preferredName, field);
837
- const internalPointer = `#/components/${field}/${(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.escape)(componentName)}`;
838
-
839
- // a rename means two distinct targets resolved to the same name; each
840
- // keeps its own component (and origin), so report the rename per severity.
841
- // strategy specific options take precedence over the top-level bundle options
842
- const onComponentNameCollision = this.options.bundle.strategyOpts['openapi-3-0']?.onComponentNameCollision ?? this.options.bundle.onComponentNameCollision;
843
- if (componentName !== preferredName && onComponentNameCollision !== 'off') {
844
- const message = `Component "${preferredName}" in components/${field} is referenced with the same name but different content. Renamed to "${componentName}".`;
845
- if (onComponentNameCollision === 'error') {
846
- throw new _errors_BundleError_ts__WEBPACK_IMPORTED_MODULE_25__["default"](message);
847
- }
848
- const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__["default"](message);
849
- annotation.classes.push('warning');
850
- annotation.code = 'bundle-component-name-collision';
851
- // append (never prepend) so the result element stays ahead of annotations
852
- this.entryParseResult.content.push(annotation);
853
- }
2327
+ const internalPointer = `#/components/${field}/${(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.escape)(componentName)}`;
2328
+ this.reportNameCollision(preferredName, componentName, field);
854
2329
 
855
2330
  // reserve the assignment and component name before recursing so cyclic
856
2331
  // references terminate
@@ -859,21 +2334,20 @@ class OpenAPI3_0BundleVisitor {
859
2334
  this.reservedNames.get(field).add(componentName);
860
2335
 
861
2336
  // own a copy of the fragment and bundle its own external references
862
- const hoistedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneDeep)(referencedElement);
863
- const visitor = new OpenAPI3_0BundleVisitor({
2337
+ const hoistedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.cloneDeep)(referencedElement);
2338
+ const visitor = new OpenAPI3_1BundleVisitor({
864
2339
  reference,
865
2340
  options: this.options,
866
2341
  assignments: this.assignments,
867
2342
  reservedNames: this.reservedNames,
868
- refractCache: this.refractCache,
869
- inlineStack: this.inlineStack
2343
+ refractCache: this.refractCache
870
2344
  });
871
- const bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_9__.traverseAsync)(hoistedElement, visitor, {
2345
+ const bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_10__.traverseAsync)(hoistedElement, visitor, {
872
2346
  mutable: true
873
2347
  });
874
2348
 
875
2349
  // annotate the hoisted fragment with info about its origin
876
- if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isElement)(bundledElement)) {
2350
+ if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isElement)(bundledElement)) {
877
2351
  bundledElement.meta.set('ref-origin', reference.uri);
878
2352
  }
879
2353
 
@@ -890,99 +2364,265 @@ class OpenAPI3_0BundleVisitor {
890
2364
  }
891
2365
 
892
2366
  /**
893
- * Path Item Object is not a Components Object field in OpenAPI 3.0
894
- * (unlike 3.1 which has `components.pathItems`). An external Path Item
895
- * reference therefore cannot be hoisted; it is inlined in place instead,
896
- * after bundling its own external references.
2367
+ * Unlike OpenAPI 3.0 (which has no `components.pathItems` field and therefore
2368
+ * inlines external Path Items in place), OpenAPI 3.1 hoists an external Path
2369
+ * Item Object into `components.pathItems` and rewrites the referencing `$ref`
2370
+ * to an internal pointer — mirroring how Reference Objects are bundled.
2371
+ * Sibling fields next to the `$ref` (e.g. `summary`, `description`) are kept
2372
+ * on the referencing element.
897
2373
  */
898
2374
  async PathItemElement(path) {
899
2375
  const pathItemElement = path.node;
900
2376
 
901
2377
  // ignore Path Item Objects without a $ref field
902
- if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(pathItemElement.$ref)) {
2378
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(pathItemElement.$ref)) {
903
2379
  return;
904
2380
  }
905
- const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(pathItemElement.$ref);
2381
+ const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(pathItemElement.$ref);
906
2382
  const retrievalURI = this.toBaseURI($ref);
907
2383
  const isInternalReference = this.entryURI === retrievalURI;
908
2384
  const isExternalReference = !isInternalReference;
909
2385
  if (isInternalReference) {
910
- // normalize self-file references to a bare fragment so the bundled
2386
+ // normalize self-references to a bare fragment so the bundled
911
2387
  // document stays transferable; bare fragments are left untouched
912
- pathItemElement.set('$ref', this.normalizeSelfFileRef($ref));
2388
+ pathItemElement.set('$ref', this.normalizeSelfReference($ref));
2389
+ path.skip();
913
2390
  return;
914
2391
  }
915
2392
 
916
2393
  // honor the resolve.external switch
917
2394
  if (!this.options.resolve.external && isExternalReference) {
2395
+ path.skip();
918
2396
  return;
919
2397
  }
920
- const $refBaseURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.resolve(retrievalURI, $ref);
921
- const jsonPointer = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.URIFragmentIdentifier.fromURIReference($refBaseURI);
922
- const canonicalKey = `${retrievalURI}#${jsonPointer}`;
2398
+ const $refBaseURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.resolve(retrievalURI, $ref);
2399
+ const jsonPointer = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.URIFragmentIdentifier.fromURIReference($refBaseURI);
2400
+ const field = cf.pathItems.name;
2401
+ const canonicalKey = `${field}\t${retrievalURI}#${jsonPointer}`;
923
2402
 
924
- // a circular external Path Item reference cannot be inlined without
925
- // recursing forever; leave the $ref in place to break the cycle
926
- if (this.inlineStack.has(canonicalKey)) {
2403
+ // already hoisted (or being hoisted) — just rewrite the pointer. The
2404
+ // assignment is reserved BEFORE recursing, so a circular Path Item chain
2405
+ // terminates here with an internal pointer instead of recursing forever.
2406
+ if (this.assignments.has(canonicalKey)) {
2407
+ pathItemElement.set('$ref', this.assignments.get(canonicalKey));
2408
+ path.skip();
927
2409
  return;
928
2410
  }
929
2411
  try {
930
2412
  // detect maximum depth of bundling
931
2413
  if (this.reference.depth >= this.options.bundle.maxDepth) {
932
- 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}"`, {
2414
+ 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}"`, {
933
2415
  maxDepth: this.options.bundle.maxDepth,
934
2416
  uri: this.reference.uri
935
2417
  });
936
2418
  }
937
2419
  const reference = await this.toReference($ref);
938
- let referencedElement = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__.evaluate)(reference.value.result, jsonPointer);
2420
+ let referencedElement = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.evaluate)(reference.value.result, jsonPointer);
939
2421
 
940
2422
  // apply Path Item semantics to the referenced fragment
941
- if (!(0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_14__.isPathItemElement)(referencedElement)) {
2423
+ if (!(0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__.isPathItemElement)(referencedElement)) {
942
2424
  const cached = this.getRefracted(referencedElement, 'pathItem');
943
2425
  if (cached !== undefined) {
944
2426
  referencedElement = cached;
945
2427
  } else {
946
2428
  const sourceElement = referencedElement;
947
- referencedElement = (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_13__.refractPathItem)(referencedElement);
2429
+ referencedElement = (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__.refractPathItem)(referencedElement);
948
2430
  this.setRefracted(sourceElement, 'pathItem', referencedElement);
949
2431
  }
950
2432
  }
2433
+ const preferredName = this.baseName(referencedElement, field, jsonPointer, retrievalURI);
2434
+ const componentName = this.uniqueName(preferredName, field);
2435
+ const internalPointer = `#/components/${field}/${(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.escape)(componentName)}`;
2436
+ this.reportNameCollision(preferredName, componentName, field);
951
2437
 
952
- // own a copy and bundle the external references it contains
953
- const inlinedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneDeep)(referencedElement);
954
- this.inlineStack.add(canonicalKey);
955
- const visitor = new OpenAPI3_0BundleVisitor({
2438
+ // reserve the assignment and component name before recursing so cyclic
2439
+ // references terminate
2440
+ this.assignments.set(canonicalKey, internalPointer);
2441
+ if (!this.reservedNames.has(field)) this.reservedNames.set(field, new Set());
2442
+ this.reservedNames.get(field).add(componentName);
2443
+
2444
+ // own a copy of the fragment and bundle its own external references
2445
+ const hoistedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.cloneDeep)(referencedElement);
2446
+ const visitor = new OpenAPI3_1BundleVisitor({
956
2447
  reference,
957
2448
  options: this.options,
958
2449
  assignments: this.assignments,
959
2450
  reservedNames: this.reservedNames,
960
- refractCache: this.refractCache,
961
- inlineStack: this.inlineStack
2451
+ refractCache: this.refractCache
962
2452
  });
963
- let bundledElement;
964
- try {
965
- bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_9__.traverseAsync)(inlinedElement, visitor, {
966
- mutable: true
2453
+ const bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_10__.traverseAsync)(hoistedElement, visitor, {
2454
+ mutable: true
2455
+ });
2456
+
2457
+ // a `$ref` surviving on the hoisted Path Item means it pointed at another
2458
+ // Path Item (a chain or cycle); it has already been rewritten to an
2459
+ // internal `#/components/pathItems/...` pointer by the child traversal
2460
+ bundledElement.meta.set('ref-origin', reference.uri);
2461
+
2462
+ // place the bundled Path Item into the entry document's components
2463
+ this.ensureComponentsField(field).set(componentName, bundledElement);
2464
+
2465
+ // rewrite the referencing Path Item to point at the hoisted one, keeping
2466
+ // any sibling fields (e.g. summary, description) next to the $ref
2467
+ pathItemElement.set('$ref', internalPointer);
2468
+ path.skip();
2469
+ } catch (error) {
2470
+ this.handleError(`Error while bundling Path Item Object. Cannot resolve $ref "${$ref}": ${error.message}`, error, pathItemElement, '$ref', $ref, path);
2471
+ path.skip();
2472
+ }
2473
+ }
2474
+
2475
+ /**
2476
+ * Schema Objects in OpenAPI 3.1 are a JSON Schema 2020-12 dialect, so they are
2477
+ * bundled per the JSON Schema Compound Document rules: the external schema
2478
+ * RESOURCE is embedded verbatim into `components.schemas` (carrying its `$id`),
2479
+ * and the referencing `$ref` is left UNCHANGED — it keeps resolving against the
2480
+ * embedded resource's `$id`. This mirrors the canonical hyperjump
2481
+ * `json-schema-bundle` behavior (the whole resource is embedded once, keyed by
2482
+ * its `$id`; references are not rewritten).
2483
+ */
2484
+ async SchemaElement(path) {
2485
+ const referencingElement = path.node;
2486
+
2487
+ // skip current referencing schema as $ref keyword was not defined
2488
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(referencingElement.$ref)) {
2489
+ return;
2490
+ }
2491
+ const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(referencingElement.$ref);
2492
+ try {
2493
+ // compute baseURI using rules around $id and $ref keywords. The current
2494
+ // document's URI is the retrieval URI — derive it directly (not via
2495
+ // toReference) so an internal $ref needs no resolution and never trips the
2496
+ // resolve.maxDepth guard, matching how ReferenceElement returns early.
2497
+ const retrievalURI = this.reference.uri;
2498
+ const $refBaseURI = (0,_dereference_strategies_openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_38__.resolveSchema$refField)(retrievalURI, referencingElement);
2499
+ const $refBaseURIStrippedHash = _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.stripHash($refBaseURI);
2500
+ const file = new _File_ts__WEBPACK_IMPORTED_MODULE_35__["default"]({
2501
+ uri: $refBaseURIStrippedHash
2502
+ });
2503
+ const isUnknownURI = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(r => r.canRead(file), this.options.resolve.resolvers);
2504
+ const isURL = !isUnknownURI;
2505
+ const isInternalReference = _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.stripHash(this.reference.uri) === $refBaseURIStrippedHash;
2506
+ const isExternalReference = !isInternalReference;
2507
+
2508
+ // internal Schema Object $refs resolve against the in-document $id graph;
2509
+ // leaving them untouched keeps that resolution valid. Unlike Reference
2510
+ // Objects, a JSON Schema $ref is NOT normalized to a bare fragment.
2511
+ if (isInternalReference) {
2512
+ return;
2513
+ }
2514
+
2515
+ // honor the resolve.external switch
2516
+ if (!this.options.resolve.external && isExternalReference) {
2517
+ return;
2518
+ }
2519
+
2520
+ // detect maximum depth of bundling before fetching the external resource,
2521
+ // matching ReferenceElement/PathItemElement (which check before toReference)
2522
+ if (this.reference.depth >= this.options.bundle.maxDepth) {
2523
+ 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}"`, {
2524
+ maxDepth: this.options.bundle.maxDepth,
2525
+ uri: this.reference.uri
967
2526
  });
968
- } finally {
969
- this.inlineStack.delete(canonicalKey);
970
2527
  }
971
2528
 
972
- // merge sibling fields from the referencing Path Item over the referenced
973
- // one. The referencing `$ref` is being resolved away and is skipped; the
974
- // referenced element keeps its own `$ref` if one survived (i.e. it was
975
- // left in place to break a circular external Path Item chain).
976
- pathItemElement.forEach((_value, keyElement, item) => {
977
- const key = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(keyElement);
978
- if (key === '$ref') return;
979
- bundledElement.remove(key);
980
- bundledElement.content.push(item);
2529
+ // locate the external schema resource the $ref targets, reusing the
2530
+ // dereference strategy's classification. First try to resolve the target
2531
+ // as a canonical URI / URL against the current document's $id graph; if
2532
+ // that fails, fall back to fetching the external document and resolving
2533
+ // the fragment there as a $anchor or JSON Pointer.
2534
+ let schemaReference = this.reference;
2535
+ try {
2536
+ const referenceAsSchema = (0,_dereference_strategies_openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_38__.maybeRefractToSchemaElement)(schemaReference.value.result);
2537
+ (0,_dereference_strategies_openapi_3_1_selectors_uri_ts__WEBPACK_IMPORTED_MODULE_37__.evaluate)($refBaseURI, referenceAsSchema);
2538
+ } catch (error) {
2539
+ if (isURL && error instanceof _errors_EvaluationJsonSchemaUriError_ts__WEBPACK_IMPORTED_MODULE_31__["default"]) {
2540
+ 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))) {
2541
+ schemaReference = await this.toReference(_util_url_ts__WEBPACK_IMPORTED_MODULE_32__.unsanitize($refBaseURI));
2542
+ const selector = (0,_dereference_strategies_openapi_3_1_selectors_$anchor_ts__WEBPACK_IMPORTED_MODULE_36__.uriToAnchor)($refBaseURI);
2543
+ const referenceAsSchema = (0,_dereference_strategies_openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_38__.maybeRefractToSchemaElement)(schemaReference.value.result);
2544
+ (0,_dereference_strategies_openapi_3_1_selectors_$anchor_ts__WEBPACK_IMPORTED_MODULE_36__.evaluate)(selector, referenceAsSchema);
2545
+ } else {
2546
+ schemaReference = await this.toReference(_util_url_ts__WEBPACK_IMPORTED_MODULE_32__.unsanitize($refBaseURI));
2547
+ const selector = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.URIFragmentIdentifier.fromURIReference($refBaseURI);
2548
+ const referenceAsSchema = (0,_dereference_strategies_openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_38__.maybeRefractToSchemaElement)(schemaReference.value.result);
2549
+ (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.evaluate)(referenceAsSchema, selector);
2550
+ }
2551
+ } else {
2552
+ throw error;
2553
+ }
2554
+ }
2555
+
2556
+ // a $ref that resolves (by $id/$anchor/pointer) within the current document
2557
+ // is internal even when its URI form (e.g. a URN or absolute $id) is not a
2558
+ // bare fragment. Leave it untouched — it resolves against the in-document
2559
+ // $id graph, and embedding the current document into itself would be wrong.
2560
+ if (_util_url_ts__WEBPACK_IMPORTED_MODULE_32__.stripHash(schemaReference.uri) === _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.stripHash(this.reference.uri)) {
2561
+ return;
2562
+ }
2563
+
2564
+ // the resource to embed is the WHOLE external document (its root schema),
2565
+ // identified by its $id. A $ref into a fragment of the document embeds the
2566
+ // entire document resource once; the fragment keeps resolving against the
2567
+ // embedded $id.
2568
+ const resourceRoot = (0,_dereference_strategies_openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_38__.maybeRefractToSchemaElement)(schemaReference.value.result);
2569
+ 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);
2570
+ const field = cf.schemas.name;
2571
+ const canonicalKey = `${field}\t${resourceBaseURI}`;
2572
+
2573
+ // resource already embedded (or being embedded) — leave the referencing
2574
+ // $ref untouched and stop. This also terminates circular external schema
2575
+ // references, since the assignment is reserved BEFORE recursion.
2576
+ if (this.assignments.has(canonicalKey)) {
2577
+ path.skip();
2578
+ return;
2579
+ }
2580
+
2581
+ // own a copy of the resource and ensure it carries a $id so the unchanged
2582
+ // $ref still resolves against it once embedded
2583
+ const embeddedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.cloneDeep)(resourceRoot);
2584
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(embeddedElement.$id)) {
2585
+ embeddedElement.set('$id', resourceBaseURI);
2586
+ }
2587
+
2588
+ // the embedded thing is the WHOLE resource (keyed by its $id), so its name
2589
+ // is derived from the resource URI, not the $ref fragment — passing a root
2590
+ // pointer makes baseName fall back to the resource basename
2591
+ const preferredName = this.baseName(embeddedElement, field, '', resourceBaseURI);
2592
+ const componentName = this.uniqueName(preferredName, field);
2593
+ this.reportNameCollision(preferredName, componentName, field);
2594
+
2595
+ // reserve the assignment and component name before recursing so circular
2596
+ // external schema references terminate
2597
+ this.assignments.set(canonicalKey, `#/components/${field}/${(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.escape)(componentName)}`);
2598
+ if (!this.reservedNames.has(field)) this.reservedNames.set(field, new Set());
2599
+ this.reservedNames.get(field).add(componentName);
2600
+
2601
+ // bundle external references contained within the embedded resource;
2602
+ // nested external resources land flat in the same components.schemas
2603
+ const visitor = new OpenAPI3_1BundleVisitor({
2604
+ reference: schemaReference,
2605
+ options: this.options,
2606
+ assignments: this.assignments,
2607
+ reservedNames: this.reservedNames,
2608
+ refractCache: this.refractCache
981
2609
  });
982
- bundledElement.meta.set('ref-origin', reference.uri);
983
- path.replaceWith(bundledElement);
2610
+ const bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_10__.traverseAsync)(embeddedElement, visitor, {
2611
+ mutable: true
2612
+ });
2613
+
2614
+ // annotate the embedded resource with info about its origin
2615
+ bundledElement.meta.set('ref-origin', schemaReference.uri);
2616
+
2617
+ // place the embedded resource into the entry document's components
2618
+ this.ensureComponentsField(field).set(componentName, bundledElement);
2619
+
2620
+ // the referencing $ref is left UNCHANGED — it resolves against the
2621
+ // embedded resource's $id
2622
+ path.skip();
984
2623
  } catch (error) {
985
- this.handleError(`Error while bundling Path Item Object. Cannot resolve $ref "${$ref}": ${error.message}`, error, pathItemElement, '$ref', $ref, path);
2624
+ this.handleError(`Error while bundling Schema Object. Cannot resolve $ref "${$ref}": ${error.message}`, error, referencingElement, '$ref', $ref, path);
2625
+ path.skip();
986
2626
  }
987
2627
  }
988
2628
 
@@ -995,18 +2635,18 @@ class OpenAPI3_0BundleVisitor {
995
2635
  const exampleElement = path.node;
996
2636
 
997
2637
  // ignore Example Objects without an externalValue field
998
- if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(exampleElement.externalValue)) {
2638
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(exampleElement.externalValue)) {
999
2639
  return;
1000
2640
  }
1001
2641
 
1002
2642
  // value and externalValue fields are mutually exclusive
1003
- if (exampleElement.hasKey('value') && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(exampleElement.externalValue)) {
1004
- throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_8__["default"]('ExampleElement value and externalValue fields are mutually exclusive', {
1005
- value: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(exampleElement.value),
1006
- externalValue: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(exampleElement.externalValue)
2643
+ if (exampleElement.hasKey('value') && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(exampleElement.externalValue)) {
2644
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_9__["default"]('ExampleElement value and externalValue fields are mutually exclusive', {
2645
+ value: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(exampleElement.value),
2646
+ externalValue: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(exampleElement.externalValue)
1007
2647
  });
1008
2648
  }
1009
- const externalValue = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(exampleElement.externalValue);
2649
+ const externalValue = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(exampleElement.externalValue);
1010
2650
  const retrievalURI = this.toBaseURI(externalValue);
1011
2651
  const isInternalReference = this.entryURI === retrievalURI;
1012
2652
  const isExternalReference = !isInternalReference;
@@ -1017,9 +2657,9 @@ class OpenAPI3_0BundleVisitor {
1017
2657
  }
1018
2658
  try {
1019
2659
  const reference = await this.toReference(externalValue);
1020
- const valueElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneShallow)(reference.value.result);
2660
+ const valueElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.cloneShallow)(reference.value.result);
1021
2661
  valueElement.meta.set('ref-origin', reference.uri);
1022
- const exampleElementCopy = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneShallow)(exampleElement);
2662
+ const exampleElementCopy = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.cloneShallow)(exampleElement);
1023
2663
  exampleElementCopy.value = valueElement;
1024
2664
  exampleElementCopy.remove('externalValue');
1025
2665
  path.replaceWith(exampleElementCopy);
@@ -1030,7 +2670,7 @@ class OpenAPI3_0BundleVisitor {
1030
2670
 
1031
2671
  /**
1032
2672
  * Link Object `operationRef` points at an Operation Object, which has no
1033
- * Components Object field in OpenAPI 3.0 and therefore cannot be hoisted or
2673
+ * Components Object field in OpenAPI 3.1 and therefore cannot be hoisted or
1034
2674
  * inlined. To keep the link resolvable from the bundled document, an external
1035
2675
  * `operationRef` is rewritten to its absolute URI. Internal `operationRef`
1036
2676
  * values and `operationId` links are left untouched.
@@ -1039,24 +2679,24 @@ class OpenAPI3_0BundleVisitor {
1039
2679
  const linkElement = path.node;
1040
2680
 
1041
2681
  // operationRef and operationId fields are mutually exclusive
1042
- if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(linkElement.operationRef) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(linkElement.operationId)) {
1043
- throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_8__["default"]('LinkElement operationRef and operationId fields are mutually exclusive', {
1044
- operationRef: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(linkElement.operationRef),
1045
- operationId: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(linkElement.operationId)
2682
+ if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(linkElement.operationRef) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(linkElement.operationId)) {
2683
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_9__["default"]('LinkElement operationRef and operationId fields are mutually exclusive', {
2684
+ operationRef: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(linkElement.operationRef),
2685
+ operationId: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(linkElement.operationId)
1046
2686
  });
1047
2687
  }
1048
2688
 
1049
2689
  // only external operationRef links need adjusting
1050
- if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(linkElement.operationRef)) {
2690
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(linkElement.operationRef)) {
1051
2691
  return;
1052
2692
  }
1053
- const operationRef = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(linkElement.operationRef);
2693
+ const operationRef = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(linkElement.operationRef);
1054
2694
  const retrievalURI = this.toBaseURI(operationRef);
1055
2695
  const isInternalReference = this.entryURI === retrievalURI;
1056
2696
  if (isInternalReference) {
1057
- // normalize self-file operationRef to a bare fragment so the bundled
2697
+ // normalize a self-reference operationRef to a bare fragment so the bundled
1058
2698
  // document stays transferable; bare fragments are left untouched
1059
- linkElement.set('operationRef', this.normalizeSelfFileRef(operationRef));
2699
+ linkElement.set('operationRef', this.normalizeSelfReference(operationRef));
1060
2700
  return;
1061
2701
  }
1062
2702
 
@@ -1067,58 +2707,13 @@ class OpenAPI3_0BundleVisitor {
1067
2707
 
1068
2708
  // rewrite to an absolute URI so the link keeps resolving once the document
1069
2709
  // is treated as self-contained
1070
- const absoluteURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_29__.resolve(this.reference.uri, operationRef);
2710
+ const absoluteURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_32__.resolve(this.reference.uri, operationRef);
1071
2711
  if (absoluteURI !== operationRef) {
1072
2712
  linkElement.set('operationRef', absoluteURI);
1073
2713
  }
1074
2714
  }
1075
2715
  }
1076
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI3_0BundleVisitor);
1077
-
1078
- /***/ },
1079
-
1080
- /***/ 16432
1081
- (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1082
-
1083
- "use strict";
1084
- __webpack_require__.r(__webpack_exports__);
1085
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1086
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1087
- /* harmony export */ });
1088
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7822);
1089
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(76332);
1090
- /* harmony import */ var _BundleStrategy_ts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(75508);
1091
-
1092
-
1093
-
1094
- /**
1095
- * @public
1096
- */
1097
-
1098
- /**
1099
- * @public
1100
- */
1101
- class OpenAPI3_1BundleStrategy extends _BundleStrategy_ts__WEBPACK_IMPORTED_MODULE_2__["default"] {
1102
- constructor(options) {
1103
- super({
1104
- ...(options ?? {}),
1105
- name: 'openapi-3-1'
1106
- });
1107
- }
1108
- canBundle(file) {
1109
- // assert by media type
1110
- if (file.mediaType !== 'text/plain') {
1111
- return _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_0__["default"].includes(file.mediaType);
1112
- }
1113
-
1114
- // assert by inspecting ApiDOM
1115
- return (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_1__.isOpenApi3_1Element)(file.parseResult?.result);
1116
- }
1117
- async bundle(file) {
1118
- return file.parseResult;
1119
- }
1120
- }
1121
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI3_1BundleStrategy);
2716
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI3_1BundleVisitor);
1122
2717
 
1123
2718
  /***/ },
1124
2719
 
@@ -10006,6 +11601,7 @@ __webpack_require__.r(__webpack_exports__);
10006
11601
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10007
11602
  /* harmony export */ cwd: () => (/* binding */ cwd),
10008
11603
  /* harmony export */ fromFileSystemPath: () => (/* binding */ fromFileSystemPath),
11604
+ /* harmony export */ getBasename: () => (/* binding */ getBasename),
10009
11605
  /* harmony export */ getExtension: () => (/* binding */ getExtension),
10010
11606
  /* harmony export */ getHash: () => (/* binding */ getHash),
10011
11607
  /* harmony export */ getProtocol: () => (/* binding */ getProtocol),
@@ -10065,19 +11661,40 @@ const getProtocol = url => {
10065
11661
  */
10066
11662
  const hasProtocol = (0,ramda__WEBPACK_IMPORTED_MODULE_3__["default"])(getProtocol, ramda_adjunct__WEBPACK_IMPORTED_MODULE_6__["default"]);
10067
11663
 
11664
+ /**
11665
+ * Returns the final path segment of the given URI (the part after the last
11666
+ * `/`). Inputs are URIs, whose path separator is `/` — filesystem paths are
11667
+ * forward-slashed by `sanitize` before reaching here.
11668
+ */
11669
+ const getFilename = uri => uri.slice(uri.lastIndexOf('/') + 1);
11670
+
10068
11671
  /**
10069
11672
  * Returns the lower-cased file extension of the given URL,
10070
11673
  * or an empty string if it has no extension.
10071
11674
  * @public
10072
11675
  */
10073
11676
  const getExtension = url => {
10074
- const lastDotPosition = url.lastIndexOf('.');
11677
+ const fileName = getFilename(url);
11678
+ const lastDotPosition = fileName.lastIndexOf('.');
10075
11679
  if (lastDotPosition >= 0) {
10076
- return url.substring(lastDotPosition).toLowerCase();
11680
+ return fileName.substring(lastDotPosition).toLowerCase();
10077
11681
  }
10078
11682
  return '';
10079
11683
  };
10080
11684
 
11685
+ /**
11686
+ * Returns the final path segment of the given URI with its file extension
11687
+ * removed (e.g. `./schemas/Pet.json` -> `Pet`). Returns the whole segment when
11688
+ * there is no extension, and the whole URI when there is no path segment
11689
+ * (e.g. a URN).
11690
+ * @public
11691
+ */
11692
+ const getBasename = uri => {
11693
+ const fileName = getFilename(uri);
11694
+ const extension = getExtension(uri);
11695
+ return extension === '' ? fileName : fileName.slice(0, -extension.length);
11696
+ };
11697
+
10081
11698
  /**
10082
11699
  * Determines whether the given path is a filesystem path.
10083
11700
  * This includes "file://" URLs.
@@ -74126,6 +75743,199 @@ const refractSecurityRequirement = (value, options = {}) => refract(value, {
74126
75743
  });
74127
75744
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (refract);
74128
75745
 
75746
+ /***/ },
75747
+
75748
+ /***/ 60574
75749
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
75750
+
75751
+ "use strict";
75752
+ __webpack_require__.r(__webpack_exports__);
75753
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
75754
+ /* harmony export */ ContactElement: () => (/* reexport safe */ _elements_Contact_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]),
75755
+ /* harmony export */ DefinitionsElement: () => (/* reexport safe */ _elements_Definitions_mjs__WEBPACK_IMPORTED_MODULE_22__["default"]),
75756
+ /* harmony export */ ExampleElement: () => (/* reexport safe */ _elements_Example_mjs__WEBPACK_IMPORTED_MODULE_16__["default"]),
75757
+ /* harmony export */ ExternalDocumentationElement: () => (/* reexport safe */ _elements_ExternalDocumentation_mjs__WEBPACK_IMPORTED_MODULE_10__["default"]),
75758
+ /* harmony export */ HeaderElement: () => (/* reexport safe */ _elements_Header_mjs__WEBPACK_IMPORTED_MODULE_17__["default"]),
75759
+ /* harmony export */ HeadersElement: () => (/* reexport safe */ _elements_Headers_mjs__WEBPACK_IMPORTED_MODULE_15__["default"]),
75760
+ /* harmony export */ InfoElement: () => (/* reexport safe */ _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]),
75761
+ /* harmony export */ ItemsElement: () => (/* reexport safe */ _elements_Items_mjs__WEBPACK_IMPORTED_MODULE_12__["default"]),
75762
+ /* harmony export */ LicenseElement: () => (/* reexport safe */ _elements_License_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]),
75763
+ /* harmony export */ OperationElement: () => (/* reexport safe */ _elements_Operation_mjs__WEBPACK_IMPORTED_MODULE_9__["default"]),
75764
+ /* harmony export */ ParameterElement: () => (/* reexport safe */ _elements_Parameter_mjs__WEBPACK_IMPORTED_MODULE_11__["default"]),
75765
+ /* harmony export */ ParametersDefinitionsElement: () => (/* reexport safe */ _elements_ParametersDefinitions_mjs__WEBPACK_IMPORTED_MODULE_23__["default"]),
75766
+ /* harmony export */ PathItemElement: () => (/* reexport safe */ _elements_PathItem_mjs__WEBPACK_IMPORTED_MODULE_8__["default"]),
75767
+ /* harmony export */ PathsElement: () => (/* reexport safe */ _elements_Paths_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]),
75768
+ /* harmony export */ ReferenceElement: () => (/* reexport safe */ _elements_Reference_mjs__WEBPACK_IMPORTED_MODULE_19__["default"]),
75769
+ /* harmony export */ ResponseElement: () => (/* reexport safe */ _elements_Response_mjs__WEBPACK_IMPORTED_MODULE_14__["default"]),
75770
+ /* harmony export */ ResponsesDefinitionsElement: () => (/* reexport safe */ _elements_ResponsesDefinitions_mjs__WEBPACK_IMPORTED_MODULE_24__["default"]),
75771
+ /* harmony export */ ResponsesElement: () => (/* reexport safe */ _elements_Responses_mjs__WEBPACK_IMPORTED_MODULE_13__["default"]),
75772
+ /* harmony export */ SchemaElement: () => (/* reexport safe */ _elements_Schema_mjs__WEBPACK_IMPORTED_MODULE_20__["default"]),
75773
+ /* harmony export */ ScopesElement: () => (/* reexport safe */ _elements_Scopes_mjs__WEBPACK_IMPORTED_MODULE_27__["default"]),
75774
+ /* harmony export */ SecurityDefinitionsElement: () => (/* reexport safe */ _elements_SecurityDefinitions_mjs__WEBPACK_IMPORTED_MODULE_25__["default"]),
75775
+ /* harmony export */ SecurityRequirementElement: () => (/* reexport safe */ _elements_SecurityRequirement_mjs__WEBPACK_IMPORTED_MODULE_28__["default"]),
75776
+ /* harmony export */ SecuritySchemeElement: () => (/* reexport safe */ _elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_26__["default"]),
75777
+ /* harmony export */ SwaggerElement: () => (/* reexport safe */ _elements_Swagger_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]),
75778
+ /* harmony export */ SwaggerVersionElement: () => (/* reexport safe */ _elements_SwaggerVersion_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]),
75779
+ /* harmony export */ TagElement: () => (/* reexport safe */ _elements_Tag_mjs__WEBPACK_IMPORTED_MODULE_18__["default"]),
75780
+ /* harmony export */ XmlElement: () => (/* reexport safe */ _elements_Xml_mjs__WEBPACK_IMPORTED_MODULE_21__["default"])
75781
+ /* harmony export */ });
75782
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60572);
75783
+ /* harmony import */ var ramda_adjunct__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34606);
75784
+ /* harmony import */ var _elements_Swagger_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25077);
75785
+ /* harmony import */ var _elements_SwaggerVersion_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(85263);
75786
+ /* harmony import */ var _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(60135);
75787
+ /* harmony import */ var _elements_Contact_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(22389);
75788
+ /* harmony import */ var _elements_License_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(67684);
75789
+ /* harmony import */ var _elements_Paths_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(38253);
75790
+ /* harmony import */ var _elements_PathItem_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(83419);
75791
+ /* harmony import */ var _elements_Operation_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(87162);
75792
+ /* harmony import */ var _elements_ExternalDocumentation_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(65292);
75793
+ /* harmony import */ var _elements_Parameter_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(52508);
75794
+ /* harmony import */ var _elements_Items_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(52445);
75795
+ /* harmony import */ var _elements_Responses_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(31297);
75796
+ /* harmony import */ var _elements_Response_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(96730);
75797
+ /* harmony import */ var _elements_Headers_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(35811);
75798
+ /* harmony import */ var _elements_Example_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(523);
75799
+ /* harmony import */ var _elements_Header_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(53188);
75800
+ /* harmony import */ var _elements_Tag_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(19561);
75801
+ /* harmony import */ var _elements_Reference_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(94170);
75802
+ /* harmony import */ var _elements_Schema_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(89750);
75803
+ /* harmony import */ var _elements_Xml_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(73418);
75804
+ /* harmony import */ var _elements_Definitions_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(50703);
75805
+ /* harmony import */ var _elements_ParametersDefinitions_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(15783);
75806
+ /* harmony import */ var _elements_ResponsesDefinitions_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(23133);
75807
+ /* harmony import */ var _elements_SecurityDefinitions_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(35553);
75808
+ /* harmony import */ var _elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(63100);
75809
+ /* harmony import */ var _elements_Scopes_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(91408);
75810
+ /* harmony import */ var _elements_SecurityRequirement_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(66234);
75811
+ /* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(59845);
75812
+
75813
+
75814
+
75815
+ /**
75816
+ * OpenAPI 2.0 specification elements.
75817
+ */
75818
+
75819
+
75820
+
75821
+
75822
+
75823
+
75824
+
75825
+
75826
+
75827
+
75828
+
75829
+
75830
+
75831
+
75832
+
75833
+
75834
+
75835
+
75836
+
75837
+
75838
+
75839
+
75840
+
75841
+
75842
+
75843
+
75844
+
75845
+
75846
+ /**
75847
+ * @public
75848
+ */
75849
+ // Resolve specification to dereference $ref pointers
75850
+ const resolvedSpec = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__.resolveSpecification)(_specification_mjs__WEBPACK_IMPORTED_MODULE_29__["default"]);
75851
+
75852
+ // Extract fixed fields as list of { name, alias?, $visitor }
75853
+ const getFixedFields = fixedFieldsSpec => {
75854
+ return Object.entries(fixedFieldsSpec).map(([name, fieldSpec]) => {
75855
+ if ((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_1__["default"])(fieldSpec)) {
75856
+ return {
75857
+ name,
75858
+ ...fieldSpec
75859
+ };
75860
+ }
75861
+ return {
75862
+ name,
75863
+ $visitor: fieldSpec
75864
+ };
75865
+ });
75866
+ };
75867
+
75868
+ // OpenAPI 2.0 specification elements
75869
+ Object.defineProperty(_elements_Swagger_mjs__WEBPACK_IMPORTED_MODULE_2__["default"], 'fixedFields', {
75870
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Swagger.fixedFields),
75871
+ enumerable: true
75872
+ });
75873
+ Object.defineProperty(_elements_Info_mjs__WEBPACK_IMPORTED_MODULE_4__["default"], 'fixedFields', {
75874
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Info.fixedFields),
75875
+ enumerable: true
75876
+ });
75877
+ Object.defineProperty(_elements_Contact_mjs__WEBPACK_IMPORTED_MODULE_5__["default"], 'fixedFields', {
75878
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Contact.fixedFields),
75879
+ enumerable: true
75880
+ });
75881
+ Object.defineProperty(_elements_License_mjs__WEBPACK_IMPORTED_MODULE_6__["default"], 'fixedFields', {
75882
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.License.fixedFields),
75883
+ enumerable: true
75884
+ });
75885
+ Object.defineProperty(_elements_PathItem_mjs__WEBPACK_IMPORTED_MODULE_8__["default"], 'fixedFields', {
75886
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.PathItem.fixedFields),
75887
+ enumerable: true
75888
+ });
75889
+ Object.defineProperty(_elements_Operation_mjs__WEBPACK_IMPORTED_MODULE_9__["default"], 'fixedFields', {
75890
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Operation.fixedFields),
75891
+ enumerable: true
75892
+ });
75893
+ Object.defineProperty(_elements_ExternalDocumentation_mjs__WEBPACK_IMPORTED_MODULE_10__["default"], 'fixedFields', {
75894
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.ExternalDocumentation.fixedFields),
75895
+ enumerable: true
75896
+ });
75897
+ Object.defineProperty(_elements_Parameter_mjs__WEBPACK_IMPORTED_MODULE_11__["default"], 'fixedFields', {
75898
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Parameter.fixedFields),
75899
+ enumerable: true
75900
+ });
75901
+ Object.defineProperty(_elements_Items_mjs__WEBPACK_IMPORTED_MODULE_12__["default"], 'fixedFields', {
75902
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Items.fixedFields),
75903
+ enumerable: true
75904
+ });
75905
+ Object.defineProperty(_elements_Responses_mjs__WEBPACK_IMPORTED_MODULE_13__["default"], 'fixedFields', {
75906
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Responses.fixedFields),
75907
+ enumerable: true
75908
+ });
75909
+ Object.defineProperty(_elements_Response_mjs__WEBPACK_IMPORTED_MODULE_14__["default"], 'fixedFields', {
75910
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Response.fixedFields),
75911
+ enumerable: true
75912
+ });
75913
+ Object.defineProperty(_elements_Header_mjs__WEBPACK_IMPORTED_MODULE_17__["default"], 'fixedFields', {
75914
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Header.fixedFields),
75915
+ enumerable: true
75916
+ });
75917
+ Object.defineProperty(_elements_Tag_mjs__WEBPACK_IMPORTED_MODULE_18__["default"], 'fixedFields', {
75918
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Tag.fixedFields),
75919
+ enumerable: true
75920
+ });
75921
+ Object.defineProperty(_elements_Reference_mjs__WEBPACK_IMPORTED_MODULE_19__["default"], 'fixedFields', {
75922
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Reference.fixedFields),
75923
+ enumerable: true
75924
+ });
75925
+ Object.defineProperty(_elements_Schema_mjs__WEBPACK_IMPORTED_MODULE_20__["default"], 'fixedFields', {
75926
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Schema.fixedFields),
75927
+ enumerable: true
75928
+ });
75929
+ Object.defineProperty(_elements_Xml_mjs__WEBPACK_IMPORTED_MODULE_21__["default"], 'fixedFields', {
75930
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.XML.fixedFields),
75931
+ enumerable: true
75932
+ });
75933
+ Object.defineProperty(_elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_26__["default"], 'fixedFields', {
75934
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.SecurityScheme.fixedFields),
75935
+ enumerable: true
75936
+ });
75937
+
75938
+
74129
75939
  /***/ },
74130
75940
 
74131
75941
  /***/ 72880
@@ -86651,6 +88461,254 @@ const refractJsonSchemaDialect = (value, options = {}) => refract(value, {
86651
88461
  });
86652
88462
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (refract);
86653
88463
 
88464
+ /***/ },
88465
+
88466
+ /***/ 52645
88467
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
88468
+
88469
+ "use strict";
88470
+ __webpack_require__.r(__webpack_exports__);
88471
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
88472
+ /* harmony export */ CallbackElement: () => (/* reexport safe */ _elements_Callback_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]),
88473
+ /* harmony export */ ComponentsElement: () => (/* reexport safe */ _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]),
88474
+ /* harmony export */ ContactElement: () => (/* reexport safe */ _elements_Contact_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]),
88475
+ /* harmony export */ DiscriminatorElement: () => (/* reexport safe */ _elements_Discriminator_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]),
88476
+ /* harmony export */ EncodingElement: () => (/* reexport safe */ _elements_Encoding_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]),
88477
+ /* harmony export */ ExampleElement: () => (/* reexport safe */ _elements_Example_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]),
88478
+ /* harmony export */ ExternalDocumentationElement: () => (/* reexport safe */ _elements_ExternalDocumentation_mjs__WEBPACK_IMPORTED_MODULE_8__["default"]),
88479
+ /* harmony export */ HeaderElement: () => (/* reexport safe */ _elements_Header_mjs__WEBPACK_IMPORTED_MODULE_9__["default"]),
88480
+ /* harmony export */ InfoElement: () => (/* reexport safe */ _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_10__["default"]),
88481
+ /* harmony export */ JsonSchemaDialectElement: () => (/* reexport safe */ _elements_JsonSchemaDialect_mjs__WEBPACK_IMPORTED_MODULE_11__["default"]),
88482
+ /* harmony export */ LicenseElement: () => (/* reexport safe */ _elements_License_mjs__WEBPACK_IMPORTED_MODULE_12__["default"]),
88483
+ /* harmony export */ LinkElement: () => (/* reexport safe */ _elements_Link_mjs__WEBPACK_IMPORTED_MODULE_13__["default"]),
88484
+ /* harmony export */ MediaTypeElement: () => (/* reexport safe */ _elements_MediaType_mjs__WEBPACK_IMPORTED_MODULE_14__["default"]),
88485
+ /* harmony export */ OAuthFlowElement: () => (/* reexport safe */ _elements_OAuthFlow_mjs__WEBPACK_IMPORTED_MODULE_15__["default"]),
88486
+ /* harmony export */ OAuthFlowsElement: () => (/* reexport safe */ _elements_OAuthFlows_mjs__WEBPACK_IMPORTED_MODULE_16__["default"]),
88487
+ /* harmony export */ OpenApi3_1Element: () => (/* reexport safe */ _elements_OpenApi3_1_mjs__WEBPACK_IMPORTED_MODULE_18__["default"]),
88488
+ /* harmony export */ OpenapiElement: () => (/* reexport safe */ _elements_Openapi_mjs__WEBPACK_IMPORTED_MODULE_17__["default"]),
88489
+ /* harmony export */ OperationElement: () => (/* reexport safe */ _elements_Operation_mjs__WEBPACK_IMPORTED_MODULE_19__["default"]),
88490
+ /* harmony export */ ParameterElement: () => (/* reexport safe */ _elements_Parameter_mjs__WEBPACK_IMPORTED_MODULE_20__["default"]),
88491
+ /* harmony export */ PathItemElement: () => (/* reexport safe */ _elements_PathItem_mjs__WEBPACK_IMPORTED_MODULE_21__["default"]),
88492
+ /* harmony export */ PathsElement: () => (/* reexport safe */ _elements_Paths_mjs__WEBPACK_IMPORTED_MODULE_22__["default"]),
88493
+ /* harmony export */ ReferenceElement: () => (/* reexport safe */ _elements_Reference_mjs__WEBPACK_IMPORTED_MODULE_23__["default"]),
88494
+ /* harmony export */ RequestBodyElement: () => (/* reexport safe */ _elements_RequestBody_mjs__WEBPACK_IMPORTED_MODULE_24__["default"]),
88495
+ /* harmony export */ ResponseElement: () => (/* reexport safe */ _elements_Response_mjs__WEBPACK_IMPORTED_MODULE_25__["default"]),
88496
+ /* harmony export */ ResponsesElement: () => (/* reexport safe */ _elements_Responses_mjs__WEBPACK_IMPORTED_MODULE_26__["default"]),
88497
+ /* harmony export */ SchemaElement: () => (/* reexport safe */ _elements_Schema_mjs__WEBPACK_IMPORTED_MODULE_27__["default"]),
88498
+ /* harmony export */ SecurityRequirementElement: () => (/* reexport safe */ _elements_SecurityRequirement_mjs__WEBPACK_IMPORTED_MODULE_28__["default"]),
88499
+ /* harmony export */ SecuritySchemeElement: () => (/* reexport safe */ _elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_29__["default"]),
88500
+ /* harmony export */ ServerElement: () => (/* reexport safe */ _elements_Server_mjs__WEBPACK_IMPORTED_MODULE_30__["default"]),
88501
+ /* harmony export */ ServerVariableElement: () => (/* reexport safe */ _elements_ServerVariable_mjs__WEBPACK_IMPORTED_MODULE_31__["default"]),
88502
+ /* harmony export */ TagElement: () => (/* reexport safe */ _elements_Tag_mjs__WEBPACK_IMPORTED_MODULE_32__["default"]),
88503
+ /* harmony export */ XmlElement: () => (/* reexport safe */ _elements_Xml_mjs__WEBPACK_IMPORTED_MODULE_33__["default"])
88504
+ /* harmony export */ });
88505
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60572);
88506
+ /* harmony import */ var ramda_adjunct__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34606);
88507
+ /* harmony import */ var _elements_Callback_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8041);
88508
+ /* harmony import */ var _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(68772);
88509
+ /* harmony import */ var _elements_Contact_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16368);
88510
+ /* harmony import */ var _elements_Discriminator_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(13456);
88511
+ /* harmony import */ var _elements_Encoding_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(67071);
88512
+ /* harmony import */ var _elements_Example_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(91210);
88513
+ /* harmony import */ var _elements_ExternalDocumentation_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(82753);
88514
+ /* harmony import */ var _elements_Header_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(10391);
88515
+ /* harmony import */ var _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(80064);
88516
+ /* harmony import */ var _elements_JsonSchemaDialect_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(66035);
88517
+ /* harmony import */ var _elements_License_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(10673);
88518
+ /* harmony import */ var _elements_Link_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(64720);
88519
+ /* harmony import */ var _elements_MediaType_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(91784);
88520
+ /* harmony import */ var _elements_OAuthFlow_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(73645);
88521
+ /* harmony import */ var _elements_OAuthFlows_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(28308);
88522
+ /* harmony import */ var _elements_Openapi_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(14540);
88523
+ /* harmony import */ var _elements_OpenApi3_1_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(81793);
88524
+ /* harmony import */ var _elements_Operation_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(54427);
88525
+ /* harmony import */ var _elements_Parameter_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(5849);
88526
+ /* harmony import */ var _elements_PathItem_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(43360);
88527
+ /* harmony import */ var _elements_Paths_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(85652);
88528
+ /* harmony import */ var _elements_Reference_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(36539);
88529
+ /* harmony import */ var _elements_RequestBody_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(71387);
88530
+ /* harmony import */ var _elements_Response_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(51193);
88531
+ /* harmony import */ var _elements_Responses_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(77080);
88532
+ /* harmony import */ var _elements_Schema_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(26385);
88533
+ /* harmony import */ var _elements_SecurityRequirement_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(87051);
88534
+ /* harmony import */ var _elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(3719);
88535
+ /* harmony import */ var _elements_Server_mjs__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(93497);
88536
+ /* harmony import */ var _elements_ServerVariable_mjs__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(7929);
88537
+ /* harmony import */ var _elements_Tag_mjs__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(24224);
88538
+ /* harmony import */ var _elements_Xml_mjs__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(10931);
88539
+ /* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(56110);
88540
+
88541
+
88542
+
88543
+ /**
88544
+ * OpenAPI 3.1 specification elements.
88545
+ */
88546
+
88547
+
88548
+
88549
+
88550
+
88551
+
88552
+
88553
+
88554
+
88555
+
88556
+
88557
+
88558
+
88559
+
88560
+
88561
+
88562
+
88563
+
88564
+
88565
+
88566
+
88567
+
88568
+
88569
+
88570
+
88571
+
88572
+
88573
+
88574
+
88575
+
88576
+
88577
+
88578
+
88579
+ /**
88580
+ * @public
88581
+ */
88582
+ // Resolve specification to dereference $ref pointers
88583
+ const resolvedSpec = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__.resolveSpecification)(_specification_mjs__WEBPACK_IMPORTED_MODULE_34__["default"]);
88584
+
88585
+ // Extract fixed fields as list of { name, alias?, $visitor }
88586
+ const getFixedFields = fixedFieldsSpec => {
88587
+ return Object.entries(fixedFieldsSpec).map(([name, fieldSpec]) => {
88588
+ if ((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_1__["default"])(fieldSpec)) {
88589
+ return {
88590
+ name,
88591
+ ...fieldSpec
88592
+ };
88593
+ }
88594
+ return {
88595
+ name,
88596
+ $visitor: fieldSpec
88597
+ };
88598
+ });
88599
+ };
88600
+
88601
+ // OpenAPI 3.1 specification elements
88602
+ Object.defineProperty(_elements_OpenApi3_1_mjs__WEBPACK_IMPORTED_MODULE_18__["default"], 'fixedFields', {
88603
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.OpenApi.fixedFields),
88604
+ enumerable: true
88605
+ });
88606
+ Object.defineProperty(_elements_Info_mjs__WEBPACK_IMPORTED_MODULE_10__["default"], 'fixedFields', {
88607
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Info.fixedFields),
88608
+ enumerable: true
88609
+ });
88610
+ Object.defineProperty(_elements_Contact_mjs__WEBPACK_IMPORTED_MODULE_4__["default"], 'fixedFields', {
88611
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Contact.fixedFields),
88612
+ enumerable: true
88613
+ });
88614
+ Object.defineProperty(_elements_License_mjs__WEBPACK_IMPORTED_MODULE_12__["default"], 'fixedFields', {
88615
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.License.fixedFields),
88616
+ enumerable: true
88617
+ });
88618
+ Object.defineProperty(_elements_Server_mjs__WEBPACK_IMPORTED_MODULE_30__["default"], 'fixedFields', {
88619
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Server.fixedFields),
88620
+ enumerable: true
88621
+ });
88622
+ Object.defineProperty(_elements_ServerVariable_mjs__WEBPACK_IMPORTED_MODULE_31__["default"], 'fixedFields', {
88623
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.ServerVariable.fixedFields),
88624
+ enumerable: true
88625
+ });
88626
+ Object.defineProperty(_elements_Components_mjs__WEBPACK_IMPORTED_MODULE_3__["default"], 'fixedFields', {
88627
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Components.fixedFields),
88628
+ enumerable: true
88629
+ });
88630
+ Object.defineProperty(_elements_PathItem_mjs__WEBPACK_IMPORTED_MODULE_21__["default"], 'fixedFields', {
88631
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.PathItem.fixedFields),
88632
+ enumerable: true
88633
+ });
88634
+ Object.defineProperty(_elements_Operation_mjs__WEBPACK_IMPORTED_MODULE_19__["default"], 'fixedFields', {
88635
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Operation.fixedFields),
88636
+ enumerable: true
88637
+ });
88638
+ Object.defineProperty(_elements_ExternalDocumentation_mjs__WEBPACK_IMPORTED_MODULE_8__["default"], 'fixedFields', {
88639
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.ExternalDocumentation.fixedFields),
88640
+ enumerable: true
88641
+ });
88642
+ Object.defineProperty(_elements_Parameter_mjs__WEBPACK_IMPORTED_MODULE_20__["default"], 'fixedFields', {
88643
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Parameter.fixedFields),
88644
+ enumerable: true
88645
+ });
88646
+ Object.defineProperty(_elements_RequestBody_mjs__WEBPACK_IMPORTED_MODULE_24__["default"], 'fixedFields', {
88647
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.RequestBody.fixedFields),
88648
+ enumerable: true
88649
+ });
88650
+ Object.defineProperty(_elements_MediaType_mjs__WEBPACK_IMPORTED_MODULE_14__["default"], 'fixedFields', {
88651
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.MediaType.fixedFields),
88652
+ enumerable: true
88653
+ });
88654
+ Object.defineProperty(_elements_Encoding_mjs__WEBPACK_IMPORTED_MODULE_6__["default"], 'fixedFields', {
88655
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Encoding.fixedFields),
88656
+ enumerable: true
88657
+ });
88658
+ Object.defineProperty(_elements_Responses_mjs__WEBPACK_IMPORTED_MODULE_26__["default"], 'fixedFields', {
88659
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Responses.fixedFields),
88660
+ enumerable: true
88661
+ });
88662
+ Object.defineProperty(_elements_Response_mjs__WEBPACK_IMPORTED_MODULE_25__["default"], 'fixedFields', {
88663
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Response.fixedFields),
88664
+ enumerable: true
88665
+ });
88666
+ Object.defineProperty(_elements_Example_mjs__WEBPACK_IMPORTED_MODULE_7__["default"], 'fixedFields', {
88667
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Example.fixedFields),
88668
+ enumerable: true
88669
+ });
88670
+ Object.defineProperty(_elements_Link_mjs__WEBPACK_IMPORTED_MODULE_13__["default"], 'fixedFields', {
88671
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Link.fixedFields),
88672
+ enumerable: true
88673
+ });
88674
+ Object.defineProperty(_elements_Header_mjs__WEBPACK_IMPORTED_MODULE_9__["default"], 'fixedFields', {
88675
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Header.fixedFields),
88676
+ enumerable: true
88677
+ });
88678
+ Object.defineProperty(_elements_Tag_mjs__WEBPACK_IMPORTED_MODULE_32__["default"], 'fixedFields', {
88679
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Tag.fixedFields),
88680
+ enumerable: true
88681
+ });
88682
+ Object.defineProperty(_elements_Reference_mjs__WEBPACK_IMPORTED_MODULE_23__["default"], 'fixedFields', {
88683
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Reference.fixedFields),
88684
+ enumerable: true
88685
+ });
88686
+ Object.defineProperty(_elements_Schema_mjs__WEBPACK_IMPORTED_MODULE_27__["default"], 'fixedFields', {
88687
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Schema.fixedFields),
88688
+ enumerable: true
88689
+ });
88690
+ Object.defineProperty(_elements_Discriminator_mjs__WEBPACK_IMPORTED_MODULE_5__["default"], 'fixedFields', {
88691
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Discriminator.fixedFields),
88692
+ enumerable: true
88693
+ });
88694
+ Object.defineProperty(_elements_Xml_mjs__WEBPACK_IMPORTED_MODULE_33__["default"], 'fixedFields', {
88695
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.XML.fixedFields),
88696
+ enumerable: true
88697
+ });
88698
+ Object.defineProperty(_elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_29__["default"], 'fixedFields', {
88699
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.SecurityScheme.fixedFields),
88700
+ enumerable: true
88701
+ });
88702
+ Object.defineProperty(_elements_OAuthFlows_mjs__WEBPACK_IMPORTED_MODULE_16__["default"], 'fixedFields', {
88703
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.OAuthFlows.fixedFields),
88704
+ enumerable: true
88705
+ });
88706
+ Object.defineProperty(_elements_OAuthFlow_mjs__WEBPACK_IMPORTED_MODULE_15__["default"], 'fixedFields', {
88707
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.OAuthFlow.fixedFields),
88708
+ enumerable: true
88709
+ });
88710
+
88711
+
86654
88712
  /***/ },
86655
88713
 
86656
88714
  /***/ 68201
@@ -102082,48 +104140,48 @@ var __webpack_exports__ = {};
102082
104140
  "use strict";
102083
104141
  __webpack_require__.r(__webpack_exports__);
102084
104142
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
102085
- /* harmony export */ BundleError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.BundleError),
102086
- /* harmony export */ BundleStrategy: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.BundleStrategy),
102087
- /* harmony export */ DereferenceAncestorLineage: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.DereferenceAncestorLineage),
102088
- /* harmony export */ DereferenceError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.DereferenceError),
102089
- /* harmony export */ DereferenceStrategy: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.DereferenceStrategy),
102090
- /* harmony export */ EvaluationElementIdError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.EvaluationElementIdError),
102091
- /* harmony export */ EvaluationJsonSchema$anchorError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.EvaluationJsonSchema$anchorError),
102092
- /* harmony export */ EvaluationJsonSchemaUriError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.EvaluationJsonSchemaUriError),
102093
- /* harmony export */ File: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.File),
102094
- /* harmony export */ HTTPResolver: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.HTTPResolver),
102095
- /* harmony export */ InvalidJsonSchema$anchorError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.InvalidJsonSchema$anchorError),
102096
- /* harmony export */ JsonSchema$anchorError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.JsonSchema$anchorError),
102097
- /* harmony export */ JsonSchemaURIError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.JsonSchemaURIError),
102098
- /* harmony export */ MaximumBundleDepthError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.MaximumBundleDepthError),
102099
- /* harmony export */ MaximumDereferenceDepthError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.MaximumDereferenceDepthError),
102100
- /* harmony export */ MaximumResolveDepthError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.MaximumResolveDepthError),
102101
- /* harmony export */ ParseError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.ParseError),
102102
- /* harmony export */ Parser: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.Parser),
102103
- /* harmony export */ ParserError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.ParserError),
102104
- /* harmony export */ PluginError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.PluginError),
102105
- /* harmony export */ Reference: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.Reference),
102106
- /* harmony export */ ReferenceSet: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.ReferenceSet),
102107
- /* harmony export */ ResolveError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.ResolveError),
102108
- /* harmony export */ ResolveStrategy: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.ResolveStrategy),
102109
- /* harmony export */ Resolver: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.Resolver),
102110
- /* harmony export */ ResolverError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.ResolverError),
102111
- /* harmony export */ UnmatchedBundleStrategyError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.UnmatchedBundleStrategyError),
102112
- /* harmony export */ UnmatchedDereferenceStrategyError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.UnmatchedDereferenceStrategyError),
102113
- /* harmony export */ UnmatchedParserError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.UnmatchedParserError),
102114
- /* harmony export */ UnmatchedResolveStrategyError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.UnmatchedResolveStrategyError),
102115
- /* harmony export */ UnmatchedResolverError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.UnmatchedResolverError),
102116
- /* harmony export */ UnresolvableReferenceError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.UnresolvableReferenceError),
102117
- /* harmony export */ bundle: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.bundle),
102118
- /* harmony export */ dereference: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.dereference),
102119
- /* harmony export */ dereferenceApiDOM: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.dereferenceApiDOM),
102120
- /* harmony export */ mergeOptions: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.mergeOptions),
102121
- /* harmony export */ options: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.options),
102122
- /* harmony export */ parse: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.parse),
102123
- /* harmony export */ readFile: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.readFile),
102124
- /* harmony export */ resolve: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.resolve),
102125
- /* harmony export */ resolveApiDOM: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.resolveApiDOM),
102126
- /* harmony export */ url: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_35__.url)
104143
+ /* harmony export */ BundleError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.BundleError),
104144
+ /* harmony export */ BundleStrategy: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.BundleStrategy),
104145
+ /* harmony export */ DereferenceAncestorLineage: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.DereferenceAncestorLineage),
104146
+ /* harmony export */ DereferenceError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.DereferenceError),
104147
+ /* harmony export */ DereferenceStrategy: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.DereferenceStrategy),
104148
+ /* harmony export */ EvaluationElementIdError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.EvaluationElementIdError),
104149
+ /* harmony export */ EvaluationJsonSchema$anchorError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.EvaluationJsonSchema$anchorError),
104150
+ /* harmony export */ EvaluationJsonSchemaUriError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.EvaluationJsonSchemaUriError),
104151
+ /* harmony export */ File: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.File),
104152
+ /* harmony export */ HTTPResolver: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.HTTPResolver),
104153
+ /* harmony export */ InvalidJsonSchema$anchorError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.InvalidJsonSchema$anchorError),
104154
+ /* harmony export */ JsonSchema$anchorError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.JsonSchema$anchorError),
104155
+ /* harmony export */ JsonSchemaURIError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.JsonSchemaURIError),
104156
+ /* harmony export */ MaximumBundleDepthError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.MaximumBundleDepthError),
104157
+ /* harmony export */ MaximumDereferenceDepthError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.MaximumDereferenceDepthError),
104158
+ /* harmony export */ MaximumResolveDepthError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.MaximumResolveDepthError),
104159
+ /* harmony export */ ParseError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.ParseError),
104160
+ /* harmony export */ Parser: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.Parser),
104161
+ /* harmony export */ ParserError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.ParserError),
104162
+ /* harmony export */ PluginError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.PluginError),
104163
+ /* harmony export */ Reference: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.Reference),
104164
+ /* harmony export */ ReferenceSet: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.ReferenceSet),
104165
+ /* harmony export */ ResolveError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.ResolveError),
104166
+ /* harmony export */ ResolveStrategy: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.ResolveStrategy),
104167
+ /* harmony export */ Resolver: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.Resolver),
104168
+ /* harmony export */ ResolverError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.ResolverError),
104169
+ /* harmony export */ UnmatchedBundleStrategyError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.UnmatchedBundleStrategyError),
104170
+ /* harmony export */ UnmatchedDereferenceStrategyError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.UnmatchedDereferenceStrategyError),
104171
+ /* harmony export */ UnmatchedParserError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.UnmatchedParserError),
104172
+ /* harmony export */ UnmatchedResolveStrategyError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.UnmatchedResolveStrategyError),
104173
+ /* harmony export */ UnmatchedResolverError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.UnmatchedResolverError),
104174
+ /* harmony export */ UnresolvableReferenceError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.UnresolvableReferenceError),
104175
+ /* harmony export */ bundle: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.bundle),
104176
+ /* harmony export */ dereference: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.dereference),
104177
+ /* harmony export */ dereferenceApiDOM: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.dereferenceApiDOM),
104178
+ /* harmony export */ mergeOptions: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.mergeOptions),
104179
+ /* harmony export */ options: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.options),
104180
+ /* harmony export */ parse: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.parse),
104181
+ /* harmony export */ readFile: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.readFile),
104182
+ /* harmony export */ resolve: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.resolve),
104183
+ /* harmony export */ resolveApiDOM: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.resolveApiDOM),
104184
+ /* harmony export */ url: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_36__.url)
102127
104185
  /* harmony export */ });
102128
104186
  /* harmony import */ var _resolve_resolvers_file_index_node_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50365);
102129
104187
  /* harmony import */ var _resolve_resolvers_http_axios_index_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16341);
@@ -102157,10 +104215,12 @@ __webpack_require__.r(__webpack_exports__);
102157
104215
  /* harmony import */ var _dereference_strategies_asyncapi_2_index_ts__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(12683);
102158
104216
  /* harmony import */ var _dereference_strategies_arazzo_1_index_ts__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(82941);
102159
104217
  /* harmony import */ var _dereference_strategies_overlay_1_index_ts__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(39782);
102160
- /* harmony import */ var _bundle_strategies_openapi_3_0_index_ts__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(12087);
102161
- /* harmony import */ var _bundle_strategies_openapi_3_1_index_ts__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(16432);
102162
- /* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(98363);
102163
- /* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(33906);
104218
+ /* harmony import */ var _bundle_strategies_openapi_2_index_ts__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(11157);
104219
+ /* harmony import */ var _bundle_strategies_openapi_3_0_index_ts__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(12087);
104220
+ /* harmony import */ var _bundle_strategies_openapi_3_1_index_ts__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(16432);
104221
+ /* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(98363);
104222
+ /* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(33906);
104223
+
102164
104224
 
102165
104225
 
102166
104226
 
@@ -102196,7 +104256,7 @@ __webpack_require__.r(__webpack_exports__);
102196
104256
 
102197
104257
 
102198
104258
 
102199
- _index_ts__WEBPACK_IMPORTED_MODULE_34__["default"].parse.parsers = [new _parse_parsers_openapi_json_2_index_ts__WEBPACK_IMPORTED_MODULE_9__["default"]({
104259
+ _index_ts__WEBPACK_IMPORTED_MODULE_35__["default"].parse.parsers = [new _parse_parsers_openapi_json_2_index_ts__WEBPACK_IMPORTED_MODULE_9__["default"]({
102200
104260
  allowEmpty: true,
102201
104261
  sourceMap: false
102202
104262
  }), new _parse_parsers_openapi_yaml_2_index_ts__WEBPACK_IMPORTED_MODULE_10__["default"]({
@@ -102244,14 +104304,14 @@ _index_ts__WEBPACK_IMPORTED_MODULE_34__["default"].parse.parsers = [new _parse_p
102244
104304
  }), new _parse_parsers_binary_index_node_ts__WEBPACK_IMPORTED_MODULE_24__["default"]({
102245
104305
  allowEmpty: true
102246
104306
  })];
102247
- _index_ts__WEBPACK_IMPORTED_MODULE_34__["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"]({
104307
+ _index_ts__WEBPACK_IMPORTED_MODULE_35__["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"]({
102248
104308
  timeout: 5000,
102249
104309
  redirects: 5,
102250
104310
  withCredentials: false
102251
104311
  })];
102252
- _index_ts__WEBPACK_IMPORTED_MODULE_34__["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"]()];
102253
- _index_ts__WEBPACK_IMPORTED_MODULE_34__["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"]()];
102254
- _index_ts__WEBPACK_IMPORTED_MODULE_34__["default"].bundle.strategies = [new _bundle_strategies_openapi_3_0_index_ts__WEBPACK_IMPORTED_MODULE_32__["default"](), new _bundle_strategies_openapi_3_1_index_ts__WEBPACK_IMPORTED_MODULE_33__["default"]()];
104312
+ _index_ts__WEBPACK_IMPORTED_MODULE_35__["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"]()];
104313
+ _index_ts__WEBPACK_IMPORTED_MODULE_35__["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"]()];
104314
+ _index_ts__WEBPACK_IMPORTED_MODULE_35__["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"]()];
102255
104315
 
102256
104316
  })();
102257
104317