@speclynx/apidom-overlay 4.7.1 → 4.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/dist/apidom-overlay.browser.js +142 -32
- package/dist/apidom-overlay.browser.min.js +1 -1
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [4.8.0](https://github.com/speclynx/apidom/compare/v4.7.1...v4.8.0) (2026-04-17)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @speclynx/apidom-overlay
|
|
9
|
+
|
|
6
10
|
## [4.7.1](https://github.com/speclynx/apidom/compare/v4.7.0...v4.7.1) (2026-04-16)
|
|
7
11
|
|
|
8
12
|
**Note:** Version bump only for package @speclynx/apidom-overlay
|
|
@@ -91289,12 +91289,16 @@ class Arazzo1DereferenceStrategy extends _DereferenceStrategy_mjs__WEBPACK_IMPOR
|
|
|
91289
91289
|
reference = mutableRefSet.find(ref => ref.uri === file.uri);
|
|
91290
91290
|
refSet = mutableRefSet;
|
|
91291
91291
|
}
|
|
91292
|
+
const shouldDetectCircular = ['error', 'replace'].includes(options.dereference.circular);
|
|
91292
91293
|
const visitor = new _visitor_mjs__WEBPACK_IMPORTED_MODULE_9__["default"]({
|
|
91293
91294
|
reference,
|
|
91294
91295
|
options
|
|
91295
91296
|
});
|
|
91296
91297
|
const dereferencedElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_3__.traverseAsync)(refSet.rootRef.value, visitor, {
|
|
91297
|
-
mutable: true
|
|
91298
|
+
mutable: true,
|
|
91299
|
+
...(shouldDetectCircular && {
|
|
91300
|
+
skipVisited: true
|
|
91301
|
+
})
|
|
91298
91302
|
});
|
|
91299
91303
|
|
|
91300
91304
|
/**
|
|
@@ -91718,6 +91722,7 @@ class Arazzo1DereferenceVisitor {
|
|
|
91718
91722
|
indirections;
|
|
91719
91723
|
reference;
|
|
91720
91724
|
options;
|
|
91725
|
+
visited;
|
|
91721
91726
|
|
|
91722
91727
|
/**
|
|
91723
91728
|
* Tracks element ancestors across dive-deep traversal boundaries.
|
|
@@ -91729,12 +91734,14 @@ class Arazzo1DereferenceVisitor {
|
|
|
91729
91734
|
reference,
|
|
91730
91735
|
options,
|
|
91731
91736
|
indirections = [],
|
|
91732
|
-
ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_26__.AncestorLineage()
|
|
91737
|
+
ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_26__.AncestorLineage(),
|
|
91738
|
+
visited = new WeakSet()
|
|
91733
91739
|
}) {
|
|
91734
91740
|
this.indirections = indirections;
|
|
91735
91741
|
this.reference = reference;
|
|
91736
91742
|
this.options = options;
|
|
91737
91743
|
this.ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_26__.AncestorLineage(...ancestors);
|
|
91744
|
+
this.visited = visited;
|
|
91738
91745
|
}
|
|
91739
91746
|
toAncestorLineage(path) {
|
|
91740
91747
|
const ancestorNodes = path.getAncestorNodes();
|
|
@@ -92125,17 +92132,23 @@ class Arazzo1DereferenceVisitor {
|
|
|
92125
92132
|
*/
|
|
92126
92133
|
const isNonEntryDocument = _util_url_mjs__WEBPACK_IMPORTED_MODULE_22__.stripHash(reference.refSet.rootRef.uri) !== reference.uri;
|
|
92127
92134
|
const shouldDetectCircular = ['error', 'replace'].includes(this.options.dereference.circular);
|
|
92128
|
-
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_11__.isJSONSchemaElement)(referencedElement) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(referencedElement.$ref) || shouldDetectCircular) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
92135
|
+
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_11__.isJSONSchemaElement)(referencedElement) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(referencedElement.$ref) || shouldDetectCircular && !this.visited.has(referencedElement)) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
92136
|
+
if (shouldDetectCircular) {
|
|
92137
|
+
this.visited.add(referencedElement);
|
|
92138
|
+
}
|
|
92139
|
+
|
|
92129
92140
|
// append referencing reference to ancestors lineage
|
|
92130
92141
|
directAncestors.add(referencingElement);
|
|
92131
92142
|
const visitor = new Arazzo1DereferenceVisitor({
|
|
92132
92143
|
reference,
|
|
92133
92144
|
indirections: [...this.indirections],
|
|
92134
92145
|
options: this.options,
|
|
92146
|
+
visited: this.visited,
|
|
92135
92147
|
ancestors: ancestorsLineage
|
|
92136
92148
|
});
|
|
92137
92149
|
referencedElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_8__.traverseAsync)(referencedElement, visitor, {
|
|
92138
|
-
mutable: true
|
|
92150
|
+
mutable: true,
|
|
92151
|
+
skipVisited: true
|
|
92139
92152
|
});
|
|
92140
92153
|
|
|
92141
92154
|
// remove referencing reference from ancestors lineage
|
|
@@ -92267,12 +92280,16 @@ class AsyncAPI2DereferenceStrategy extends _DereferenceStrategy_mjs__WEBPACK_IMP
|
|
|
92267
92280
|
reference = mutableRefSet.find(ref => ref.uri === file.uri);
|
|
92268
92281
|
refSet = mutableRefSet;
|
|
92269
92282
|
}
|
|
92283
|
+
const shouldDetectCircular = ['error', 'replace'].includes(options.dereference.circular);
|
|
92270
92284
|
const visitor = new _visitor_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]({
|
|
92271
92285
|
reference,
|
|
92272
92286
|
options
|
|
92273
92287
|
});
|
|
92274
92288
|
const dereferencedElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_1__.traverseAsync)(refSet.rootRef.value, visitor, {
|
|
92275
|
-
mutable: true
|
|
92289
|
+
mutable: true,
|
|
92290
|
+
...(shouldDetectCircular && {
|
|
92291
|
+
skipVisited: true
|
|
92292
|
+
})
|
|
92276
92293
|
});
|
|
92277
92294
|
|
|
92278
92295
|
/**
|
|
@@ -92355,6 +92372,7 @@ class AsyncAPI2DereferenceVisitor {
|
|
|
92355
92372
|
reference;
|
|
92356
92373
|
options;
|
|
92357
92374
|
refractCache;
|
|
92375
|
+
visited;
|
|
92358
92376
|
|
|
92359
92377
|
/**
|
|
92360
92378
|
* Tracks element ancestors across dive-deep traversal boundaries.
|
|
@@ -92367,13 +92385,15 @@ class AsyncAPI2DereferenceVisitor {
|
|
|
92367
92385
|
options,
|
|
92368
92386
|
indirections = [],
|
|
92369
92387
|
ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_17__.AncestorLineage(),
|
|
92370
|
-
refractCache = new WeakMap()
|
|
92388
|
+
refractCache = new WeakMap(),
|
|
92389
|
+
visited = new WeakSet()
|
|
92371
92390
|
}) {
|
|
92372
92391
|
this.indirections = indirections;
|
|
92373
92392
|
this.reference = reference;
|
|
92374
92393
|
this.options = options;
|
|
92375
92394
|
this.ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_17__.AncestorLineage(...ancestors);
|
|
92376
92395
|
this.refractCache = refractCache;
|
|
92396
|
+
this.visited = visited;
|
|
92377
92397
|
}
|
|
92378
92398
|
toAncestorLineage(path) {
|
|
92379
92399
|
const ancestorNodes = path.getAncestorNodes();
|
|
@@ -92622,7 +92642,11 @@ class AsyncAPI2DereferenceVisitor {
|
|
|
92622
92642
|
*/
|
|
92623
92643
|
const isNonEntryDocument = _util_url_mjs__WEBPACK_IMPORTED_MODULE_18__.stripHash(reference.refSet.rootRef.uri) !== reference.uri;
|
|
92624
92644
|
const shouldDetectCircular = ['error', 'replace'].includes(this.options.dereference.circular);
|
|
92625
|
-
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_asyncapi_2__WEBPACK_IMPORTED_MODULE_10__.isReferenceElement)(referencedElement) || shouldDetectCircular) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
92645
|
+
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_asyncapi_2__WEBPACK_IMPORTED_MODULE_10__.isReferenceElement)(referencedElement) || shouldDetectCircular && !this.visited.has(referencedElement)) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
92646
|
+
if (shouldDetectCircular) {
|
|
92647
|
+
this.visited.add(referencedElement);
|
|
92648
|
+
}
|
|
92649
|
+
|
|
92626
92650
|
// append referencing reference to ancestors lineage
|
|
92627
92651
|
directAncestors.add(referencingElement);
|
|
92628
92652
|
const visitor = new AsyncAPI2DereferenceVisitor({
|
|
@@ -92630,10 +92654,12 @@ class AsyncAPI2DereferenceVisitor {
|
|
|
92630
92654
|
indirections: [...this.indirections],
|
|
92631
92655
|
options: this.options,
|
|
92632
92656
|
refractCache: this.refractCache,
|
|
92657
|
+
visited: this.visited,
|
|
92633
92658
|
ancestors: ancestorsLineage
|
|
92634
92659
|
});
|
|
92635
92660
|
referencedElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_7__.traverseAsync)(referencedElement, visitor, {
|
|
92636
|
-
mutable: true
|
|
92661
|
+
mutable: true,
|
|
92662
|
+
skipVisited: true
|
|
92637
92663
|
});
|
|
92638
92664
|
|
|
92639
92665
|
// remove referencing reference from ancestors lineage
|
|
@@ -92774,7 +92800,11 @@ class AsyncAPI2DereferenceVisitor {
|
|
|
92774
92800
|
*/
|
|
92775
92801
|
const isNonEntryDocument = _util_url_mjs__WEBPACK_IMPORTED_MODULE_18__.stripHash(reference.refSet.rootRef.uri) !== reference.uri;
|
|
92776
92802
|
const shouldDetectCircular = ['error', 'replace'].includes(this.options.dereference.circular);
|
|
92777
|
-
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_asyncapi_2__WEBPACK_IMPORTED_MODULE_10__.isChannelItemElement)(referencedElement) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(referencedElement.$ref) || shouldDetectCircular) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
92803
|
+
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_asyncapi_2__WEBPACK_IMPORTED_MODULE_10__.isChannelItemElement)(referencedElement) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(referencedElement.$ref) || shouldDetectCircular && !this.visited.has(referencedElement)) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
92804
|
+
if (shouldDetectCircular) {
|
|
92805
|
+
this.visited.add(referencedElement);
|
|
92806
|
+
}
|
|
92807
|
+
|
|
92778
92808
|
// append referencing reference to ancestors lineage
|
|
92779
92809
|
directAncestors.add(referencingElement);
|
|
92780
92810
|
const visitor = new AsyncAPI2DereferenceVisitor({
|
|
@@ -92782,10 +92812,12 @@ class AsyncAPI2DereferenceVisitor {
|
|
|
92782
92812
|
indirections: [...this.indirections],
|
|
92783
92813
|
options: this.options,
|
|
92784
92814
|
refractCache: this.refractCache,
|
|
92815
|
+
visited: this.visited,
|
|
92785
92816
|
ancestors: ancestorsLineage
|
|
92786
92817
|
});
|
|
92787
92818
|
referencedElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_7__.traverseAsync)(referencedElement, visitor, {
|
|
92788
|
-
mutable: true
|
|
92819
|
+
mutable: true,
|
|
92820
|
+
skipVisited: true
|
|
92789
92821
|
});
|
|
92790
92822
|
|
|
92791
92823
|
// remove referencing reference from ancestors lineage
|
|
@@ -92904,12 +92936,16 @@ class OpenAPI2DereferenceStrategy extends _DereferenceStrategy_mjs__WEBPACK_IMPO
|
|
|
92904
92936
|
reference = mutableRefSet.find(ref => ref.uri === file.uri);
|
|
92905
92937
|
refSet = mutableRefSet;
|
|
92906
92938
|
}
|
|
92939
|
+
const shouldDetectCircular = ['error', 'replace'].includes(options.dereference.circular);
|
|
92907
92940
|
const visitor = new _visitor_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]({
|
|
92908
92941
|
reference: reference,
|
|
92909
92942
|
options
|
|
92910
92943
|
});
|
|
92911
92944
|
const dereferencedElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_3__.traverseAsync)(refSet.rootRef.value, visitor, {
|
|
92912
|
-
mutable: true
|
|
92945
|
+
mutable: true,
|
|
92946
|
+
...(shouldDetectCircular && {
|
|
92947
|
+
skipVisited: true
|
|
92948
|
+
})
|
|
92913
92949
|
});
|
|
92914
92950
|
|
|
92915
92951
|
/**
|
|
@@ -92996,6 +93032,7 @@ class OpenAPI2DereferenceVisitor {
|
|
|
92996
93032
|
reference;
|
|
92997
93033
|
options;
|
|
92998
93034
|
refractCache;
|
|
93035
|
+
visited;
|
|
92999
93036
|
|
|
93000
93037
|
/**
|
|
93001
93038
|
* Tracks element ancestors across dive-deep traversal boundaries.
|
|
@@ -93008,13 +93045,15 @@ class OpenAPI2DereferenceVisitor {
|
|
|
93008
93045
|
options,
|
|
93009
93046
|
indirections = [],
|
|
93010
93047
|
ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_19__.AncestorLineage(),
|
|
93011
|
-
refractCache = new WeakMap()
|
|
93048
|
+
refractCache = new WeakMap(),
|
|
93049
|
+
visited = new WeakSet()
|
|
93012
93050
|
}) {
|
|
93013
93051
|
this.indirections = indirections;
|
|
93014
93052
|
this.reference = reference;
|
|
93015
93053
|
this.options = options;
|
|
93016
93054
|
this.refractCache = refractCache;
|
|
93017
93055
|
this.ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_19__.AncestorLineage(...ancestors);
|
|
93056
|
+
this.visited = visited;
|
|
93018
93057
|
}
|
|
93019
93058
|
toAncestorLineage(path) {
|
|
93020
93059
|
const ancestorNodes = path.getAncestorNodes();
|
|
@@ -93263,7 +93302,11 @@ class OpenAPI2DereferenceVisitor {
|
|
|
93263
93302
|
*/
|
|
93264
93303
|
const isNonEntryDocument = _util_url_mjs__WEBPACK_IMPORTED_MODULE_20__.stripHash(reference.refSet.rootRef.uri) !== reference.uri;
|
|
93265
93304
|
const shouldDetectCircular = ['error', 'replace'].includes(this.options.dereference.circular);
|
|
93266
|
-
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_14__.isReferenceElement)(referencedElement) || shouldDetectCircular) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
93305
|
+
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_14__.isReferenceElement)(referencedElement) || shouldDetectCircular && !this.visited.has(referencedElement)) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
93306
|
+
if (shouldDetectCircular) {
|
|
93307
|
+
this.visited.add(referencedElement);
|
|
93308
|
+
}
|
|
93309
|
+
|
|
93267
93310
|
// append referencing reference to ancestors lineage
|
|
93268
93311
|
directAncestors.add(referencingElement);
|
|
93269
93312
|
const visitor = new OpenAPI2DereferenceVisitor({
|
|
@@ -93271,10 +93314,12 @@ class OpenAPI2DereferenceVisitor {
|
|
|
93271
93314
|
indirections: [...this.indirections],
|
|
93272
93315
|
options: this.options,
|
|
93273
93316
|
refractCache: this.refractCache,
|
|
93317
|
+
visited: this.visited,
|
|
93274
93318
|
ancestors: ancestorsLineage
|
|
93275
93319
|
});
|
|
93276
93320
|
referencedElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_7__.traverseAsync)(referencedElement, visitor, {
|
|
93277
|
-
mutable: true
|
|
93321
|
+
mutable: true,
|
|
93322
|
+
skipVisited: true
|
|
93278
93323
|
});
|
|
93279
93324
|
directAncestors.delete(referencingElement);
|
|
93280
93325
|
}
|
|
@@ -93399,7 +93444,11 @@ class OpenAPI2DereferenceVisitor {
|
|
|
93399
93444
|
*/
|
|
93400
93445
|
const isNonEntryDocument = _util_url_mjs__WEBPACK_IMPORTED_MODULE_20__.stripHash(reference.refSet.rootRef.uri) !== reference.uri;
|
|
93401
93446
|
const shouldDetectCircular = ['error', 'replace'].includes(this.options.dereference.circular);
|
|
93402
|
-
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_14__.isPathItemElement)(referencedElement) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(referencedElement.$ref) || shouldDetectCircular) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
93447
|
+
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_14__.isPathItemElement)(referencedElement) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(referencedElement.$ref) || shouldDetectCircular && !this.visited.has(referencedElement)) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
93448
|
+
if (shouldDetectCircular) {
|
|
93449
|
+
this.visited.add(referencedElement);
|
|
93450
|
+
}
|
|
93451
|
+
|
|
93403
93452
|
// append referencing reference to ancestors lineage
|
|
93404
93453
|
directAncestors.add(referencingElement);
|
|
93405
93454
|
const visitor = new OpenAPI2DereferenceVisitor({
|
|
@@ -93407,10 +93456,12 @@ class OpenAPI2DereferenceVisitor {
|
|
|
93407
93456
|
indirections: [...this.indirections],
|
|
93408
93457
|
options: this.options,
|
|
93409
93458
|
refractCache: this.refractCache,
|
|
93459
|
+
visited: this.visited,
|
|
93410
93460
|
ancestors: ancestorsLineage
|
|
93411
93461
|
});
|
|
93412
93462
|
referencedElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_7__.traverseAsync)(referencedElement, visitor, {
|
|
93413
|
-
mutable: true
|
|
93463
|
+
mutable: true,
|
|
93464
|
+
skipVisited: true
|
|
93414
93465
|
});
|
|
93415
93466
|
|
|
93416
93467
|
// remove referencing reference from ancestors lineage
|
|
@@ -93554,7 +93605,11 @@ class OpenAPI2DereferenceVisitor {
|
|
|
93554
93605
|
*/
|
|
93555
93606
|
const isNonEntryDocument = _util_url_mjs__WEBPACK_IMPORTED_MODULE_20__.stripHash(reference.refSet.rootRef.uri) !== reference.uri;
|
|
93556
93607
|
const shouldDetectCircular = ['error', 'replace'].includes(this.options.dereference.circular);
|
|
93557
|
-
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_11__.isJSONReferenceElement)(referencedElement) || shouldDetectCircular) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
93608
|
+
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_11__.isJSONReferenceElement)(referencedElement) || shouldDetectCircular && !this.visited.has(referencedElement)) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
93609
|
+
if (shouldDetectCircular) {
|
|
93610
|
+
this.visited.add(referencedElement);
|
|
93611
|
+
}
|
|
93612
|
+
|
|
93558
93613
|
// append referencing reference to ancestors lineage
|
|
93559
93614
|
directAncestors.add(referencingElement);
|
|
93560
93615
|
const visitor = new OpenAPI2DereferenceVisitor({
|
|
@@ -93562,10 +93617,12 @@ class OpenAPI2DereferenceVisitor {
|
|
|
93562
93617
|
indirections: [...this.indirections],
|
|
93563
93618
|
options: this.options,
|
|
93564
93619
|
refractCache: this.refractCache,
|
|
93620
|
+
visited: this.visited,
|
|
93565
93621
|
ancestors: ancestorsLineage
|
|
93566
93622
|
});
|
|
93567
93623
|
referencedElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_7__.traverseAsync)(referencedElement, visitor, {
|
|
93568
|
-
mutable: true
|
|
93624
|
+
mutable: true,
|
|
93625
|
+
skipVisited: true
|
|
93569
93626
|
});
|
|
93570
93627
|
|
|
93571
93628
|
// remove referencing reference from ancestors lineage
|
|
@@ -93677,12 +93734,16 @@ class OpenAPI3_0DereferenceStrategy extends _DereferenceStrategy_mjs__WEBPACK_IM
|
|
|
93677
93734
|
reference = mutableRefSet.find(ref => ref.uri === file.uri);
|
|
93678
93735
|
refSet = mutableRefSet;
|
|
93679
93736
|
}
|
|
93737
|
+
const shouldDetectCircular = ['error', 'replace'].includes(options.dereference.circular);
|
|
93680
93738
|
const visitor = new _visitor_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]({
|
|
93681
93739
|
reference: reference,
|
|
93682
93740
|
options
|
|
93683
93741
|
});
|
|
93684
93742
|
const dereferencedElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_1__.traverseAsync)(refSet.rootRef.value, visitor, {
|
|
93685
|
-
mutable: true
|
|
93743
|
+
mutable: true,
|
|
93744
|
+
...(shouldDetectCircular && {
|
|
93745
|
+
skipVisited: true
|
|
93746
|
+
})
|
|
93686
93747
|
});
|
|
93687
93748
|
|
|
93688
93749
|
/**
|
|
@@ -93766,6 +93827,7 @@ class OpenAPI3_0DereferenceVisitor {
|
|
|
93766
93827
|
reference;
|
|
93767
93828
|
options;
|
|
93768
93829
|
refractCache;
|
|
93830
|
+
visited;
|
|
93769
93831
|
|
|
93770
93832
|
/**
|
|
93771
93833
|
* Tracks element ancestors across dive-deep traversal boundaries.
|
|
@@ -93778,13 +93840,15 @@ class OpenAPI3_0DereferenceVisitor {
|
|
|
93778
93840
|
options,
|
|
93779
93841
|
indirections = [],
|
|
93780
93842
|
ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_20__.AncestorLineage(),
|
|
93781
|
-
refractCache = new WeakMap()
|
|
93843
|
+
refractCache = new WeakMap(),
|
|
93844
|
+
visited = new WeakSet()
|
|
93782
93845
|
}) {
|
|
93783
93846
|
this.indirections = indirections;
|
|
93784
93847
|
this.reference = reference;
|
|
93785
93848
|
this.options = options;
|
|
93786
93849
|
this.ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_20__.AncestorLineage(...ancestors);
|
|
93787
93850
|
this.refractCache = refractCache;
|
|
93851
|
+
this.visited = visited;
|
|
93788
93852
|
}
|
|
93789
93853
|
toAncestorLineage(path) {
|
|
93790
93854
|
const ancestorNodes = path.getAncestorNodes();
|
|
@@ -94033,7 +94097,11 @@ class OpenAPI3_0DereferenceVisitor {
|
|
|
94033
94097
|
*/
|
|
94034
94098
|
const isNonEntryDocument = _util_url_mjs__WEBPACK_IMPORTED_MODULE_17__.stripHash(reference.refSet.rootRef.uri) !== reference.uri;
|
|
94035
94099
|
const shouldDetectCircular = ['error', 'replace'].includes(this.options.dereference.circular);
|
|
94036
|
-
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_12__.isReferenceElement)(referencedElement) || shouldDetectCircular) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
94100
|
+
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_12__.isReferenceElement)(referencedElement) || shouldDetectCircular && !this.visited.has(referencedElement)) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
94101
|
+
if (shouldDetectCircular) {
|
|
94102
|
+
this.visited.add(referencedElement);
|
|
94103
|
+
}
|
|
94104
|
+
|
|
94037
94105
|
// append referencing reference to ancestors lineage
|
|
94038
94106
|
directAncestors.add(referencingElement);
|
|
94039
94107
|
const visitor = new OpenAPI3_0DereferenceVisitor({
|
|
@@ -94041,10 +94109,12 @@ class OpenAPI3_0DereferenceVisitor {
|
|
|
94041
94109
|
indirections: [...this.indirections],
|
|
94042
94110
|
options: this.options,
|
|
94043
94111
|
refractCache: this.refractCache,
|
|
94112
|
+
visited: this.visited,
|
|
94044
94113
|
ancestors: ancestorsLineage
|
|
94045
94114
|
});
|
|
94046
94115
|
referencedElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_8__.traverseAsync)(referencedElement, visitor, {
|
|
94047
|
-
mutable: true
|
|
94116
|
+
mutable: true,
|
|
94117
|
+
skipVisited: true
|
|
94048
94118
|
});
|
|
94049
94119
|
|
|
94050
94120
|
// remove referencing reference from ancestors lineage
|
|
@@ -94171,7 +94241,11 @@ class OpenAPI3_0DereferenceVisitor {
|
|
|
94171
94241
|
*/
|
|
94172
94242
|
const isNonEntryDocument = _util_url_mjs__WEBPACK_IMPORTED_MODULE_17__.stripHash(reference.refSet.rootRef.uri) !== reference.uri;
|
|
94173
94243
|
const shouldDetectCircular = ['error', 'replace'].includes(this.options.dereference.circular);
|
|
94174
|
-
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_12__.isPathItemElement)(referencedElement) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(referencedElement.$ref) || shouldDetectCircular) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
94244
|
+
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_12__.isPathItemElement)(referencedElement) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(referencedElement.$ref) || shouldDetectCircular && !this.visited.has(referencedElement)) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
94245
|
+
if (shouldDetectCircular) {
|
|
94246
|
+
this.visited.add(referencedElement);
|
|
94247
|
+
}
|
|
94248
|
+
|
|
94175
94249
|
// append referencing reference to ancestors lineage
|
|
94176
94250
|
directAncestors.add(referencingElement);
|
|
94177
94251
|
const visitor = new OpenAPI3_0DereferenceVisitor({
|
|
@@ -94179,10 +94253,12 @@ class OpenAPI3_0DereferenceVisitor {
|
|
|
94179
94253
|
indirections: [...this.indirections],
|
|
94180
94254
|
options: this.options,
|
|
94181
94255
|
refractCache: this.refractCache,
|
|
94256
|
+
visited: this.visited,
|
|
94182
94257
|
ancestors: ancestorsLineage
|
|
94183
94258
|
});
|
|
94184
94259
|
referencedElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_8__.traverseAsync)(referencedElement, visitor, {
|
|
94185
|
-
mutable: true
|
|
94260
|
+
mutable: true,
|
|
94261
|
+
skipVisited: true
|
|
94186
94262
|
});
|
|
94187
94263
|
|
|
94188
94264
|
// remove referencing reference from ancestors lineage
|
|
@@ -94441,12 +94517,16 @@ class OpenAPI3_1DereferenceStrategy extends _DereferenceStrategy_mjs__WEBPACK_IM
|
|
|
94441
94517
|
reference = mutableRefSet.find(ref => ref.uri === file.uri);
|
|
94442
94518
|
refSet = mutableRefSet;
|
|
94443
94519
|
}
|
|
94520
|
+
const shouldDetectCircular = ['error', 'replace'].includes(options.dereference.circular);
|
|
94444
94521
|
const visitor = new _visitor_mjs__WEBPACK_IMPORTED_MODULE_8__["default"]({
|
|
94445
94522
|
reference: reference,
|
|
94446
94523
|
options
|
|
94447
94524
|
});
|
|
94448
94525
|
const dereferencedElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_2__.traverseAsync)(refSet.rootRef.value, visitor, {
|
|
94449
|
-
mutable: true
|
|
94526
|
+
mutable: true,
|
|
94527
|
+
...(shouldDetectCircular && {
|
|
94528
|
+
skipVisited: true
|
|
94529
|
+
})
|
|
94450
94530
|
});
|
|
94451
94531
|
|
|
94452
94532
|
/**
|
|
@@ -94767,6 +94847,7 @@ class OpenAPI3_1DereferenceVisitor {
|
|
|
94767
94847
|
reference;
|
|
94768
94848
|
options;
|
|
94769
94849
|
refractCache;
|
|
94850
|
+
visited;
|
|
94770
94851
|
|
|
94771
94852
|
/**
|
|
94772
94853
|
* Tracks element ancestors across dive-deep traversal boundaries.
|
|
@@ -94779,13 +94860,15 @@ class OpenAPI3_1DereferenceVisitor {
|
|
|
94779
94860
|
options,
|
|
94780
94861
|
indirections = [],
|
|
94781
94862
|
refractCache = new WeakMap(),
|
|
94782
|
-
ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_28__.AncestorLineage()
|
|
94863
|
+
ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_28__.AncestorLineage(),
|
|
94864
|
+
visited = new WeakSet()
|
|
94783
94865
|
}) {
|
|
94784
94866
|
this.indirections = indirections;
|
|
94785
94867
|
this.reference = reference;
|
|
94786
94868
|
this.options = options;
|
|
94787
94869
|
this.refractCache = refractCache;
|
|
94788
94870
|
this.ancestors = new _util_mjs__WEBPACK_IMPORTED_MODULE_28__.AncestorLineage(...ancestors);
|
|
94871
|
+
this.visited = visited;
|
|
94789
94872
|
}
|
|
94790
94873
|
toAncestorLineage(path) {
|
|
94791
94874
|
const ancestorNodes = path.getAncestorNodes();
|
|
@@ -95034,17 +95117,22 @@ class OpenAPI3_1DereferenceVisitor {
|
|
|
95034
95117
|
*/
|
|
95035
95118
|
const isNonEntryDocument = _util_url_mjs__WEBPACK_IMPORTED_MODULE_23__.stripHash(reference.refSet.rootRef.uri) !== reference.uri;
|
|
95036
95119
|
const shouldDetectCircular = ['error', 'replace'].includes(this.options.dereference.circular);
|
|
95037
|
-
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__.isReferenceElement)(referencedElement) || shouldDetectCircular) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
95120
|
+
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__.isReferenceElement)(referencedElement) || shouldDetectCircular && !this.visited.has(referencedElement)) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
95121
|
+
if (shouldDetectCircular) {
|
|
95122
|
+
this.visited.add(referencedElement);
|
|
95123
|
+
}
|
|
95038
95124
|
directAncestors.add(referencingElement);
|
|
95039
95125
|
const visitor = new OpenAPI3_1DereferenceVisitor({
|
|
95040
95126
|
reference,
|
|
95041
95127
|
indirections: [...this.indirections],
|
|
95042
95128
|
options: this.options,
|
|
95043
95129
|
refractCache: this.refractCache,
|
|
95130
|
+
visited: this.visited,
|
|
95044
95131
|
ancestors: ancestorsLineage
|
|
95045
95132
|
});
|
|
95046
95133
|
referencedElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_10__.traverseAsync)(referencedElement, visitor, {
|
|
95047
|
-
mutable: true
|
|
95134
|
+
mutable: true,
|
|
95135
|
+
skipVisited: true
|
|
95048
95136
|
});
|
|
95049
95137
|
directAncestors.delete(referencingElement);
|
|
95050
95138
|
}
|
|
@@ -95187,17 +95275,22 @@ class OpenAPI3_1DereferenceVisitor {
|
|
|
95187
95275
|
*/
|
|
95188
95276
|
const isNonEntryDocument = _util_url_mjs__WEBPACK_IMPORTED_MODULE_23__.stripHash(reference.refSet.rootRef.uri) !== reference.uri;
|
|
95189
95277
|
const shouldDetectCircular = ['error', 'replace'].includes(this.options.dereference.circular);
|
|
95190
|
-
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__.isPathItemElement)(referencedElement) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.isStringElement)(referencedElement.$ref) || shouldDetectCircular) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
95278
|
+
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__.isPathItemElement)(referencedElement) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.isStringElement)(referencedElement.$ref) || shouldDetectCircular && !this.visited.has(referencedElement)) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
95279
|
+
if (shouldDetectCircular) {
|
|
95280
|
+
this.visited.add(referencedElement);
|
|
95281
|
+
}
|
|
95191
95282
|
directAncestors.add(referencingElement);
|
|
95192
95283
|
const visitor = new OpenAPI3_1DereferenceVisitor({
|
|
95193
95284
|
reference,
|
|
95194
95285
|
indirections: [...this.indirections],
|
|
95195
95286
|
options: this.options,
|
|
95196
95287
|
refractCache: this.refractCache,
|
|
95288
|
+
visited: this.visited,
|
|
95197
95289
|
ancestors: ancestorsLineage
|
|
95198
95290
|
});
|
|
95199
95291
|
referencedElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_10__.traverseAsync)(referencedElement, visitor, {
|
|
95200
|
-
mutable: true
|
|
95292
|
+
mutable: true,
|
|
95293
|
+
skipVisited: true
|
|
95201
95294
|
});
|
|
95202
95295
|
directAncestors.delete(referencingElement);
|
|
95203
95296
|
}
|
|
@@ -95544,17 +95637,22 @@ class OpenAPI3_1DereferenceVisitor {
|
|
|
95544
95637
|
*/
|
|
95545
95638
|
const isNonEntryDocument = _util_url_mjs__WEBPACK_IMPORTED_MODULE_23__.stripHash(reference.refSet.rootRef.uri) !== reference.uri;
|
|
95546
95639
|
const shouldDetectCircular = ['error', 'replace'].includes(this.options.dereference.circular);
|
|
95547
|
-
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__.isSchemaElement)(referencedElement) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.isStringElement)(referencedElement.$ref) || shouldDetectCircular) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
95640
|
+
if ((isExternalReference || isNonEntryDocument || (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__.isSchemaElement)(referencedElement) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.isStringElement)(referencedElement.$ref) || shouldDetectCircular && !this.visited.has(referencedElement)) && !ancestorsLineage.includesCycle(referencedElement)) {
|
|
95641
|
+
if (shouldDetectCircular) {
|
|
95642
|
+
this.visited.add(referencedElement);
|
|
95643
|
+
}
|
|
95548
95644
|
directAncestors.add(referencingElement);
|
|
95549
95645
|
const visitor = new OpenAPI3_1DereferenceVisitor({
|
|
95550
95646
|
reference,
|
|
95551
95647
|
indirections: [...this.indirections],
|
|
95552
95648
|
options: this.options,
|
|
95553
95649
|
refractCache: this.refractCache,
|
|
95650
|
+
visited: this.visited,
|
|
95554
95651
|
ancestors: ancestorsLineage
|
|
95555
95652
|
});
|
|
95556
95653
|
referencedElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_10__.traverseAsync)(referencedElement, visitor, {
|
|
95557
|
-
mutable: true
|
|
95654
|
+
mutable: true,
|
|
95655
|
+
skipVisited: true
|
|
95558
95656
|
});
|
|
95559
95657
|
directAncestors.delete(referencingElement);
|
|
95560
95658
|
}
|
|
@@ -100170,10 +100268,12 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
100170
100268
|
nodePredicate,
|
|
100171
100269
|
nodeCloneFn,
|
|
100172
100270
|
detectCycles,
|
|
100271
|
+
skipVisited,
|
|
100173
100272
|
mutable,
|
|
100174
100273
|
mutationFn
|
|
100175
100274
|
} = options;
|
|
100176
100275
|
const keyMapIsFunction = typeof keyMap === 'function';
|
|
100276
|
+
const visitedNodes = skipVisited ? new WeakSet() : null;
|
|
100177
100277
|
let stack;
|
|
100178
100278
|
let inArray = Array.isArray(root);
|
|
100179
100279
|
let keys = [root];
|
|
@@ -100259,6 +100359,14 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
100259
100359
|
continue;
|
|
100260
100360
|
}
|
|
100261
100361
|
|
|
100362
|
+
// Skip already-visited nodes (handles DAG structures from cloneShallow)
|
|
100363
|
+
if (skipVisited && !isLeaving) {
|
|
100364
|
+
if (visitedNodes.has(node)) {
|
|
100365
|
+
continue;
|
|
100366
|
+
}
|
|
100367
|
+
visitedNodes.add(node);
|
|
100368
|
+
}
|
|
100369
|
+
|
|
100262
100370
|
// Always create Path for the current node (needed for parentPath chain)
|
|
100263
100371
|
currentPath = new _Path_mjs__WEBPACK_IMPORTED_MODULE_2__.Path(node, parent, parentPath, key, inArray);
|
|
100264
100372
|
const visitFn = (0,_visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
|
|
@@ -100402,6 +100510,7 @@ const traverse = (root, visitor, options = {}) => {
|
|
|
100402
100510
|
nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
|
|
100403
100511
|
nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
|
|
100404
100512
|
detectCycles: options.detectCycles ?? true,
|
|
100513
|
+
skipVisited: options.skipVisited ?? false,
|
|
100405
100514
|
mutable: options.mutable ?? false,
|
|
100406
100515
|
mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
|
|
100407
100516
|
};
|
|
@@ -100433,6 +100542,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
|
|
|
100433
100542
|
nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
|
|
100434
100543
|
nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
|
|
100435
100544
|
detectCycles: options.detectCycles ?? true,
|
|
100545
|
+
skipVisited: options.skipVisited ?? false,
|
|
100436
100546
|
mutable: options.mutable ?? false,
|
|
100437
100547
|
mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
|
|
100438
100548
|
};
|