@speclynx/apidom-parser-adapter-openapi-yaml-3-0 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-3-0
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-3-0
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-3-0
@@ -30591,13 +30591,14 @@ const dispatchPluginsSync = (element, plugins, options = {}) => {
30591
30591
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDispatchPluginsOptions, options);
30592
30592
  const {
30593
30593
  toolboxCreator,
30594
- visitorOptions
30594
+ visitorOptions,
30595
+ traverseOptions
30595
30596
  } = mergedOptions;
30596
30597
  const toolbox = toolboxCreator();
30597
30598
  const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
30598
30599
  const mergedPluginsVisitor = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.mergeVisitors)(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])({}, 'visitor')), visitorOptions);
30599
30600
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['pre'], []));
30600
- const newElement = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverse)(element, mergedPluginsVisitor);
30601
+ const newElement = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverse)(element, mergedPluginsVisitor, traverseOptions);
30601
30602
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['post'], []));
30602
30603
  return newElement;
30603
30604
  };
@@ -30606,13 +30607,14 @@ const dispatchPluginsAsync = async (element, plugins, options = {}) => {
30606
30607
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDispatchPluginsOptions, options);
30607
30608
  const {
30608
30609
  toolboxCreator,
30609
- visitorOptions
30610
+ visitorOptions,
30611
+ traverseOptions
30610
30612
  } = mergedOptions;
30611
30613
  const toolbox = toolboxCreator();
30612
30614
  const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
30613
30615
  const mergedPluginsVisitor = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.mergeVisitorsAsync)(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])({}, 'visitor')), visitorOptions);
30614
30616
  await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['pre'], [])));
30615
- const newElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverseAsync)(element, mergedPluginsVisitor);
30617
+ const newElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverseAsync)(element, mergedPluginsVisitor, traverseOptions);
30616
30618
  await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['post'], [])));
30617
30619
  return newElement;
30618
30620
  };
@@ -47628,10 +47630,12 @@ function* traverseGenerator(root, visitor, options) {
47628
47630
  nodePredicate,
47629
47631
  nodeCloneFn,
47630
47632
  detectCycles,
47633
+ skipVisited,
47631
47634
  mutable,
47632
47635
  mutationFn
47633
47636
  } = options;
47634
47637
  const keyMapIsFunction = typeof keyMap === 'function';
47638
+ const visitedNodes = skipVisited ? new WeakSet() : null;
47635
47639
  let stack;
47636
47640
  let inArray = Array.isArray(root);
47637
47641
  let keys = [root];
@@ -47717,6 +47721,14 @@ function* traverseGenerator(root, visitor, options) {
47717
47721
  continue;
47718
47722
  }
47719
47723
 
47724
+ // Skip already-visited nodes (handles DAG structures from cloneShallow)
47725
+ if (skipVisited && !isLeaving) {
47726
+ if (visitedNodes.has(node)) {
47727
+ continue;
47728
+ }
47729
+ visitedNodes.add(node);
47730
+ }
47731
+
47720
47732
  // Always create Path for the current node (needed for parentPath chain)
47721
47733
  currentPath = new _Path_mjs__WEBPACK_IMPORTED_MODULE_2__.Path(node, parent, parentPath, key, inArray);
47722
47734
  const visitFn = (0,_visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
@@ -47860,6 +47872,7 @@ const traverse = (root, visitor, options = {}) => {
47860
47872
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
47861
47873
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
47862
47874
  detectCycles: options.detectCycles ?? true,
47875
+ skipVisited: options.skipVisited ?? false,
47863
47876
  mutable: options.mutable ?? false,
47864
47877
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
47865
47878
  };
@@ -47891,6 +47904,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
47891
47904
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
47892
47905
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
47893
47906
  detectCycles: options.detectCycles ?? true,
47907
+ skipVisited: options.skipVisited ?? false,
47894
47908
  mutable: options.mutable ?? false,
47895
47909
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
47896
47910
  };