@speclynx/apidom-parser-adapter-openapi-yaml-3-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-openapi-yaml-3-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-openapi-yaml-3-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-openapi-yaml-3-1
@@ -30902,13 +30902,14 @@ const dispatchPluginsSync = (element, plugins, options = {}) => {
30902
30902
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDispatchPluginsOptions, options);
30903
30903
  const {
30904
30904
  toolboxCreator,
30905
- visitorOptions
30905
+ visitorOptions,
30906
+ traverseOptions
30906
30907
  } = mergedOptions;
30907
30908
  const toolbox = toolboxCreator();
30908
30909
  const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
30909
30910
  const mergedPluginsVisitor = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.mergeVisitors)(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])({}, 'visitor')), visitorOptions);
30910
30911
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['pre'], []));
30911
- const newElement = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverse)(element, mergedPluginsVisitor);
30912
+ const newElement = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverse)(element, mergedPluginsVisitor, traverseOptions);
30912
30913
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['post'], []));
30913
30914
  return newElement;
30914
30915
  };
@@ -30917,13 +30918,14 @@ const dispatchPluginsAsync = async (element, plugins, options = {}) => {
30917
30918
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDispatchPluginsOptions, options);
30918
30919
  const {
30919
30920
  toolboxCreator,
30920
- visitorOptions
30921
+ visitorOptions,
30922
+ traverseOptions
30921
30923
  } = mergedOptions;
30922
30924
  const toolbox = toolboxCreator();
30923
30925
  const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
30924
30926
  const mergedPluginsVisitor = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.mergeVisitorsAsync)(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])({}, 'visitor')), visitorOptions);
30925
30927
  await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['pre'], [])));
30926
- const newElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverseAsync)(element, mergedPluginsVisitor);
30928
+ const newElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverseAsync)(element, mergedPluginsVisitor, traverseOptions);
30927
30929
  await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['post'], [])));
30928
30930
  return newElement;
30929
30931
  };
@@ -53202,10 +53204,12 @@ function* traverseGenerator(root, visitor, options) {
53202
53204
  nodePredicate,
53203
53205
  nodeCloneFn,
53204
53206
  detectCycles,
53207
+ skipVisited,
53205
53208
  mutable,
53206
53209
  mutationFn
53207
53210
  } = options;
53208
53211
  const keyMapIsFunction = typeof keyMap === 'function';
53212
+ const visitedNodes = skipVisited ? new WeakSet() : null;
53209
53213
  let stack;
53210
53214
  let inArray = Array.isArray(root);
53211
53215
  let keys = [root];
@@ -53291,6 +53295,14 @@ function* traverseGenerator(root, visitor, options) {
53291
53295
  continue;
53292
53296
  }
53293
53297
 
53298
+ // Skip already-visited nodes (handles DAG structures from cloneShallow)
53299
+ if (skipVisited && !isLeaving) {
53300
+ if (visitedNodes.has(node)) {
53301
+ continue;
53302
+ }
53303
+ visitedNodes.add(node);
53304
+ }
53305
+
53294
53306
  // Always create Path for the current node (needed for parentPath chain)
53295
53307
  currentPath = new _Path_mjs__WEBPACK_IMPORTED_MODULE_2__.Path(node, parent, parentPath, key, inArray);
53296
53308
  const visitFn = (0,_visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
@@ -53434,6 +53446,7 @@ const traverse = (root, visitor, options = {}) => {
53434
53446
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
53435
53447
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
53436
53448
  detectCycles: options.detectCycles ?? true,
53449
+ skipVisited: options.skipVisited ?? false,
53437
53450
  mutable: options.mutable ?? false,
53438
53451
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
53439
53452
  };
@@ -53465,6 +53478,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
53465
53478
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
53466
53479
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
53467
53480
  detectCycles: options.detectCycles ?? true,
53481
+ skipVisited: options.skipVisited ?? false,
53468
53482
  mutable: options.mutable ?? false,
53469
53483
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
53470
53484
  };