@speclynx/apidom-parser-adapter-openapi-yaml-2 4.7.1 → 4.9.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.9.0](https://github.com/speclynx/apidom/compare/v4.8.0...v4.9.0) (2026-04-17)
7
+
8
+ **Note:** Version bump only for package @speclynx/apidom-parser-adapter-openapi-yaml-2
9
+
10
+ # [4.8.0](https://github.com/speclynx/apidom/compare/v4.7.1...v4.8.0) (2026-04-17)
11
+
12
+ **Note:** Version bump only for package @speclynx/apidom-parser-adapter-openapi-yaml-2
13
+
6
14
  ## [4.7.1](https://github.com/speclynx/apidom/compare/v4.7.0...v4.7.1) (2026-04-16)
7
15
 
8
16
  **Note:** Version bump only for package @speclynx/apidom-parser-adapter-openapi-yaml-2
@@ -30649,13 +30649,14 @@ const dispatchPluginsSync = (element, plugins, options = {}) => {
30649
30649
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDispatchPluginsOptions, options);
30650
30650
  const {
30651
30651
  toolboxCreator,
30652
- visitorOptions
30652
+ visitorOptions,
30653
+ traverseOptions
30653
30654
  } = mergedOptions;
30654
30655
  const toolbox = toolboxCreator();
30655
30656
  const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
30656
30657
  const mergedPluginsVisitor = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.mergeVisitors)(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])({}, 'visitor')), visitorOptions);
30657
30658
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['pre'], []));
30658
- const newElement = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverse)(element, mergedPluginsVisitor);
30659
+ const newElement = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverse)(element, mergedPluginsVisitor, traverseOptions);
30659
30660
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['post'], []));
30660
30661
  return newElement;
30661
30662
  };
@@ -30664,13 +30665,14 @@ const dispatchPluginsAsync = async (element, plugins, options = {}) => {
30664
30665
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDispatchPluginsOptions, options);
30665
30666
  const {
30666
30667
  toolboxCreator,
30667
- visitorOptions
30668
+ visitorOptions,
30669
+ traverseOptions
30668
30670
  } = mergedOptions;
30669
30671
  const toolbox = toolboxCreator();
30670
30672
  const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
30671
30673
  const mergedPluginsVisitor = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.mergeVisitorsAsync)(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])({}, 'visitor')), visitorOptions);
30672
30674
  await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['pre'], [])));
30673
- const newElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverseAsync)(element, mergedPluginsVisitor);
30675
+ const newElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverseAsync)(element, mergedPluginsVisitor, traverseOptions);
30674
30676
  await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['post'], [])));
30675
30677
  return newElement;
30676
30678
  };
@@ -45322,10 +45324,12 @@ function* traverseGenerator(root, visitor, options) {
45322
45324
  nodePredicate,
45323
45325
  nodeCloneFn,
45324
45326
  detectCycles,
45327
+ skipVisited,
45325
45328
  mutable,
45326
45329
  mutationFn
45327
45330
  } = options;
45328
45331
  const keyMapIsFunction = typeof keyMap === 'function';
45332
+ const visitedNodes = skipVisited ? new WeakSet() : null;
45329
45333
  let stack;
45330
45334
  let inArray = Array.isArray(root);
45331
45335
  let keys = [root];
@@ -45411,6 +45415,14 @@ function* traverseGenerator(root, visitor, options) {
45411
45415
  continue;
45412
45416
  }
45413
45417
 
45418
+ // Skip already-visited nodes (handles DAG structures from cloneShallow)
45419
+ if (skipVisited && !isLeaving) {
45420
+ if (visitedNodes.has(node)) {
45421
+ continue;
45422
+ }
45423
+ visitedNodes.add(node);
45424
+ }
45425
+
45414
45426
  // Always create Path for the current node (needed for parentPath chain)
45415
45427
  currentPath = new _Path_mjs__WEBPACK_IMPORTED_MODULE_2__.Path(node, parent, parentPath, key, inArray);
45416
45428
  const visitFn = (0,_visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
@@ -45554,6 +45566,7 @@ const traverse = (root, visitor, options = {}) => {
45554
45566
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
45555
45567
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
45556
45568
  detectCycles: options.detectCycles ?? true,
45569
+ skipVisited: options.skipVisited ?? false,
45557
45570
  mutable: options.mutable ?? false,
45558
45571
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
45559
45572
  };
@@ -45585,6 +45598,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
45585
45598
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
45586
45599
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
45587
45600
  detectCycles: options.detectCycles ?? true,
45601
+ skipVisited: options.skipVisited ?? false,
45588
45602
  mutable: options.mutable ?? false,
45589
45603
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
45590
45604
  };