@speclynx/apidom-parser-adapter-arazzo-json-1 4.7.0 → 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,14 @@
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-arazzo-json-1
9
+
10
+ ## [4.7.1](https://github.com/speclynx/apidom/compare/v4.7.0...v4.7.1) (2026-04-16)
11
+
12
+ **Note:** Version bump only for package @speclynx/apidom-parser-adapter-arazzo-json-1
13
+
6
14
  # [4.7.0](https://github.com/speclynx/apidom/compare/v4.6.0...v4.7.0) (2026-04-12)
7
15
 
8
16
  **Note:** Version bump only for package @speclynx/apidom-parser-adapter-arazzo-json-1
@@ -33182,10 +33182,12 @@ function* traverseGenerator(root, visitor, options) {
33182
33182
  nodePredicate,
33183
33183
  nodeCloneFn,
33184
33184
  detectCycles,
33185
+ skipVisited,
33185
33186
  mutable,
33186
33187
  mutationFn
33187
33188
  } = options;
33188
33189
  const keyMapIsFunction = typeof keyMap === 'function';
33190
+ const visitedNodes = skipVisited ? new WeakSet() : null;
33189
33191
  let stack;
33190
33192
  let inArray = Array.isArray(root);
33191
33193
  let keys = [root];
@@ -33271,6 +33273,14 @@ function* traverseGenerator(root, visitor, options) {
33271
33273
  continue;
33272
33274
  }
33273
33275
 
33276
+ // Skip already-visited nodes (handles DAG structures from cloneShallow)
33277
+ if (skipVisited && !isLeaving) {
33278
+ if (visitedNodes.has(node)) {
33279
+ continue;
33280
+ }
33281
+ visitedNodes.add(node);
33282
+ }
33283
+
33274
33284
  // Always create Path for the current node (needed for parentPath chain)
33275
33285
  currentPath = new _Path_mjs__WEBPACK_IMPORTED_MODULE_2__.Path(node, parent, parentPath, key, inArray);
33276
33286
  const visitFn = (0,_visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
@@ -33291,11 +33301,6 @@ function* traverseGenerator(root, visitor, options) {
33291
33301
  if (currentPath.shouldStop) {
33292
33302
  break;
33293
33303
  }
33294
- if (currentPath.shouldSkip) {
33295
- if (!isLeaving) {
33296
- continue;
33297
- }
33298
- }
33299
33304
  if (currentPath.removed) {
33300
33305
  edits.push([key, null]);
33301
33306
  if (!isLeaving) {
@@ -33305,12 +33310,19 @@ function* traverseGenerator(root, visitor, options) {
33305
33310
  const replacement = currentPath._getReplacementNode();
33306
33311
  edits.push([key, replacement]);
33307
33312
  if (!isLeaving) {
33313
+ if (currentPath.shouldSkip) {
33314
+ continue;
33315
+ }
33308
33316
  if (nodePredicate(replacement)) {
33309
33317
  node = replacement;
33310
33318
  } else {
33311
33319
  continue;
33312
33320
  }
33313
33321
  }
33322
+ } else if (currentPath.shouldSkip) {
33323
+ if (!isLeaving) {
33324
+ continue;
33325
+ }
33314
33326
  } else if (result !== undefined) {
33315
33327
  // Support return value replacement for backwards compatibility
33316
33328
  edits.push([key, result]);
@@ -33412,6 +33424,7 @@ const traverse = (root, visitor, options = {}) => {
33412
33424
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
33413
33425
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
33414
33426
  detectCycles: options.detectCycles ?? true,
33427
+ skipVisited: options.skipVisited ?? false,
33415
33428
  mutable: options.mutable ?? false,
33416
33429
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
33417
33430
  };
@@ -33443,6 +33456,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
33443
33456
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
33444
33457
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
33445
33458
  detectCycles: options.detectCycles ?? true,
33459
+ skipVisited: options.skipVisited ?? false,
33446
33460
  mutable: options.mutable ?? false,
33447
33461
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
33448
33462
  };