@speclynx/apidom-parser-adapter-json-schema-json-2020-12 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-parser-adapter-json-schema-json-2020-12
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-parser-adapter-json-schema-json-2020-12
@@ -28967,10 +28967,12 @@ function* traverseGenerator(root, visitor, options) {
28967
28967
  nodePredicate,
28968
28968
  nodeCloneFn,
28969
28969
  detectCycles,
28970
+ skipVisited,
28970
28971
  mutable,
28971
28972
  mutationFn
28972
28973
  } = options;
28973
28974
  const keyMapIsFunction = typeof keyMap === 'function';
28975
+ const visitedNodes = skipVisited ? new WeakSet() : null;
28974
28976
  let stack;
28975
28977
  let inArray = Array.isArray(root);
28976
28978
  let keys = [root];
@@ -29056,6 +29058,14 @@ function* traverseGenerator(root, visitor, options) {
29056
29058
  continue;
29057
29059
  }
29058
29060
 
29061
+ // Skip already-visited nodes (handles DAG structures from cloneShallow)
29062
+ if (skipVisited && !isLeaving) {
29063
+ if (visitedNodes.has(node)) {
29064
+ continue;
29065
+ }
29066
+ visitedNodes.add(node);
29067
+ }
29068
+
29059
29069
  // Always create Path for the current node (needed for parentPath chain)
29060
29070
  currentPath = new _Path_mjs__WEBPACK_IMPORTED_MODULE_2__.Path(node, parent, parentPath, key, inArray);
29061
29071
  const visitFn = (0,_visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
@@ -29199,6 +29209,7 @@ const traverse = (root, visitor, options = {}) => {
29199
29209
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
29200
29210
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
29201
29211
  detectCycles: options.detectCycles ?? true,
29212
+ skipVisited: options.skipVisited ?? false,
29202
29213
  mutable: options.mutable ?? false,
29203
29214
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
29204
29215
  };
@@ -29230,6 +29241,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
29230
29241
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
29231
29242
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
29232
29243
  detectCycles: options.detectCycles ?? true,
29244
+ skipVisited: options.skipVisited ?? false,
29233
29245
  mutable: options.mutable ?? false,
29234
29246
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
29235
29247
  };