@speclynx/apidom-ns-openapi-3-0 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
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-ns-openapi-3-0
|
|
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-ns-openapi-3-0
|
|
@@ -31023,10 +31023,12 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
31023
31023
|
nodePredicate,
|
|
31024
31024
|
nodeCloneFn,
|
|
31025
31025
|
detectCycles,
|
|
31026
|
+
skipVisited,
|
|
31026
31027
|
mutable,
|
|
31027
31028
|
mutationFn
|
|
31028
31029
|
} = options;
|
|
31029
31030
|
const keyMapIsFunction = typeof keyMap === 'function';
|
|
31031
|
+
const visitedNodes = skipVisited ? new WeakSet() : null;
|
|
31030
31032
|
let stack;
|
|
31031
31033
|
let inArray = Array.isArray(root);
|
|
31032
31034
|
let keys = [root];
|
|
@@ -31112,6 +31114,14 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
31112
31114
|
continue;
|
|
31113
31115
|
}
|
|
31114
31116
|
|
|
31117
|
+
// Skip already-visited nodes (handles DAG structures from cloneShallow)
|
|
31118
|
+
if (skipVisited && !isLeaving) {
|
|
31119
|
+
if (visitedNodes.has(node)) {
|
|
31120
|
+
continue;
|
|
31121
|
+
}
|
|
31122
|
+
visitedNodes.add(node);
|
|
31123
|
+
}
|
|
31124
|
+
|
|
31115
31125
|
// Always create Path for the current node (needed for parentPath chain)
|
|
31116
31126
|
currentPath = new _Path_mjs__WEBPACK_IMPORTED_MODULE_2__.Path(node, parent, parentPath, key, inArray);
|
|
31117
31127
|
const visitFn = (0,_visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
|
|
@@ -31255,6 +31265,7 @@ const traverse = (root, visitor, options = {}) => {
|
|
|
31255
31265
|
nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
|
|
31256
31266
|
nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
|
|
31257
31267
|
detectCycles: options.detectCycles ?? true,
|
|
31268
|
+
skipVisited: options.skipVisited ?? false,
|
|
31258
31269
|
mutable: options.mutable ?? false,
|
|
31259
31270
|
mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
|
|
31260
31271
|
};
|
|
@@ -31286,6 +31297,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
|
|
|
31286
31297
|
nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
|
|
31287
31298
|
nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
|
|
31288
31299
|
detectCycles: options.detectCycles ?? true,
|
|
31300
|
+
skipVisited: options.skipVisited ?? false,
|
|
31289
31301
|
mutable: options.mutable ?? false,
|
|
31290
31302
|
mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
|
|
31291
31303
|
};
|