@speclynx/apidom-parser-adapter-overlay-yaml-1 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-overlay-yaml-1
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-overlay-yaml-1
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-overlay-yaml-1
@@ -29711,13 +29711,14 @@ const dispatchPluginsSync = (element, plugins, options = {}) => {
29711
29711
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDispatchPluginsOptions, options);
29712
29712
  const {
29713
29713
  toolboxCreator,
29714
- visitorOptions
29714
+ visitorOptions,
29715
+ traverseOptions
29715
29716
  } = mergedOptions;
29716
29717
  const toolbox = toolboxCreator();
29717
29718
  const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
29718
29719
  const mergedPluginsVisitor = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.mergeVisitors)(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])({}, 'visitor')), visitorOptions);
29719
29720
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['pre'], []));
29720
- const newElement = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverse)(element, mergedPluginsVisitor);
29721
+ const newElement = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverse)(element, mergedPluginsVisitor, traverseOptions);
29721
29722
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['post'], []));
29722
29723
  return newElement;
29723
29724
  };
@@ -29726,13 +29727,14 @@ const dispatchPluginsAsync = async (element, plugins, options = {}) => {
29726
29727
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDispatchPluginsOptions, options);
29727
29728
  const {
29728
29729
  toolboxCreator,
29729
- visitorOptions
29730
+ visitorOptions,
29731
+ traverseOptions
29730
29732
  } = mergedOptions;
29731
29733
  const toolbox = toolboxCreator();
29732
29734
  const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
29733
29735
  const mergedPluginsVisitor = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.mergeVisitorsAsync)(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])({}, 'visitor')), visitorOptions);
29734
29736
  await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['pre'], [])));
29735
- const newElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverseAsync)(element, mergedPluginsVisitor);
29737
+ const newElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverseAsync)(element, mergedPluginsVisitor, traverseOptions);
29736
29738
  await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['post'], [])));
29737
29739
  return newElement;
29738
29740
  };
@@ -37949,10 +37951,12 @@ function* traverseGenerator(root, visitor, options) {
37949
37951
  nodePredicate,
37950
37952
  nodeCloneFn,
37951
37953
  detectCycles,
37954
+ skipVisited,
37952
37955
  mutable,
37953
37956
  mutationFn
37954
37957
  } = options;
37955
37958
  const keyMapIsFunction = typeof keyMap === 'function';
37959
+ const visitedNodes = skipVisited ? new WeakSet() : null;
37956
37960
  let stack;
37957
37961
  let inArray = Array.isArray(root);
37958
37962
  let keys = [root];
@@ -38038,6 +38042,14 @@ function* traverseGenerator(root, visitor, options) {
38038
38042
  continue;
38039
38043
  }
38040
38044
 
38045
+ // Skip already-visited nodes (handles DAG structures from cloneShallow)
38046
+ if (skipVisited && !isLeaving) {
38047
+ if (visitedNodes.has(node)) {
38048
+ continue;
38049
+ }
38050
+ visitedNodes.add(node);
38051
+ }
38052
+
38041
38053
  // Always create Path for the current node (needed for parentPath chain)
38042
38054
  currentPath = new _Path_mjs__WEBPACK_IMPORTED_MODULE_2__.Path(node, parent, parentPath, key, inArray);
38043
38055
  const visitFn = (0,_visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
@@ -38181,6 +38193,7 @@ const traverse = (root, visitor, options = {}) => {
38181
38193
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
38182
38194
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
38183
38195
  detectCycles: options.detectCycles ?? true,
38196
+ skipVisited: options.skipVisited ?? false,
38184
38197
  mutable: options.mutable ?? false,
38185
38198
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
38186
38199
  };
@@ -38212,6 +38225,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
38212
38225
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
38213
38226
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
38214
38227
  detectCycles: options.detectCycles ?? true,
38228
+ skipVisited: options.skipVisited ?? false,
38215
38229
  mutable: options.mutable ?? false,
38216
38230
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
38217
38231
  };