@speclynx/apidom-ns-openapi-3-1 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-1
|
|
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-1
|
|
@@ -37056,10 +37056,12 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
37056
37056
|
nodePredicate,
|
|
37057
37057
|
nodeCloneFn,
|
|
37058
37058
|
detectCycles,
|
|
37059
|
+
skipVisited,
|
|
37059
37060
|
mutable,
|
|
37060
37061
|
mutationFn
|
|
37061
37062
|
} = options;
|
|
37062
37063
|
const keyMapIsFunction = typeof keyMap === 'function';
|
|
37064
|
+
const visitedNodes = skipVisited ? new WeakSet() : null;
|
|
37063
37065
|
let stack;
|
|
37064
37066
|
let inArray = Array.isArray(root);
|
|
37065
37067
|
let keys = [root];
|
|
@@ -37145,6 +37147,14 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
37145
37147
|
continue;
|
|
37146
37148
|
}
|
|
37147
37149
|
|
|
37150
|
+
// Skip already-visited nodes (handles DAG structures from cloneShallow)
|
|
37151
|
+
if (skipVisited && !isLeaving) {
|
|
37152
|
+
if (visitedNodes.has(node)) {
|
|
37153
|
+
continue;
|
|
37154
|
+
}
|
|
37155
|
+
visitedNodes.add(node);
|
|
37156
|
+
}
|
|
37157
|
+
|
|
37148
37158
|
// Always create Path for the current node (needed for parentPath chain)
|
|
37149
37159
|
currentPath = new _Path_mjs__WEBPACK_IMPORTED_MODULE_2__.Path(node, parent, parentPath, key, inArray);
|
|
37150
37160
|
const visitFn = (0,_visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
|
|
@@ -37288,6 +37298,7 @@ const traverse = (root, visitor, options = {}) => {
|
|
|
37288
37298
|
nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
|
|
37289
37299
|
nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
|
|
37290
37300
|
detectCycles: options.detectCycles ?? true,
|
|
37301
|
+
skipVisited: options.skipVisited ?? false,
|
|
37291
37302
|
mutable: options.mutable ?? false,
|
|
37292
37303
|
mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
|
|
37293
37304
|
};
|
|
@@ -37319,6 +37330,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
|
|
|
37319
37330
|
nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
|
|
37320
37331
|
nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
|
|
37321
37332
|
detectCycles: options.detectCycles ?? true,
|
|
37333
|
+
skipVisited: options.skipVisited ?? false,
|
|
37322
37334
|
mutable: options.mutable ?? false,
|
|
37323
37335
|
mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
|
|
37324
37336
|
};
|