@speclynx/apidom-ns-openapi-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-ns-openapi-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-ns-openapi-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-ns-openapi-2
@@ -22202,13 +22202,14 @@ const dispatchPluginsSync = (element, plugins, options = {}) => {
22202
22202
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDispatchPluginsOptions, options);
22203
22203
  const {
22204
22204
  toolboxCreator,
22205
- visitorOptions
22205
+ visitorOptions,
22206
+ traverseOptions
22206
22207
  } = mergedOptions;
22207
22208
  const toolbox = toolboxCreator();
22208
22209
  const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
22209
22210
  const mergedPluginsVisitor = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.mergeVisitors)(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])({}, 'visitor')), visitorOptions);
22210
22211
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['pre'], []));
22211
- const newElement = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverse)(element, mergedPluginsVisitor);
22212
+ const newElement = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverse)(element, mergedPluginsVisitor, traverseOptions);
22212
22213
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['post'], []));
22213
22214
  return newElement;
22214
22215
  };
@@ -22217,13 +22218,14 @@ const dispatchPluginsAsync = async (element, plugins, options = {}) => {
22217
22218
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDispatchPluginsOptions, options);
22218
22219
  const {
22219
22220
  toolboxCreator,
22220
- visitorOptions
22221
+ visitorOptions,
22222
+ traverseOptions
22221
22223
  } = mergedOptions;
22222
22224
  const toolbox = toolboxCreator();
22223
22225
  const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
22224
22226
  const mergedPluginsVisitor = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.mergeVisitorsAsync)(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])({}, 'visitor')), visitorOptions);
22225
22227
  await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['pre'], [])));
22226
- const newElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverseAsync)(element, mergedPluginsVisitor);
22228
+ const newElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverseAsync)(element, mergedPluginsVisitor, traverseOptions);
22227
22229
  await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['post'], [])));
22228
22230
  return newElement;
22229
22231
  };
@@ -28424,10 +28426,12 @@ function* traverseGenerator(root, visitor, options) {
28424
28426
  nodePredicate,
28425
28427
  nodeCloneFn,
28426
28428
  detectCycles,
28429
+ skipVisited,
28427
28430
  mutable,
28428
28431
  mutationFn
28429
28432
  } = options;
28430
28433
  const keyMapIsFunction = typeof keyMap === 'function';
28434
+ const visitedNodes = skipVisited ? new WeakSet() : null;
28431
28435
  let stack;
28432
28436
  let inArray = Array.isArray(root);
28433
28437
  let keys = [root];
@@ -28513,6 +28517,14 @@ function* traverseGenerator(root, visitor, options) {
28513
28517
  continue;
28514
28518
  }
28515
28519
 
28520
+ // Skip already-visited nodes (handles DAG structures from cloneShallow)
28521
+ if (skipVisited && !isLeaving) {
28522
+ if (visitedNodes.has(node)) {
28523
+ continue;
28524
+ }
28525
+ visitedNodes.add(node);
28526
+ }
28527
+
28516
28528
  // Always create Path for the current node (needed for parentPath chain)
28517
28529
  currentPath = new _Path_mjs__WEBPACK_IMPORTED_MODULE_2__.Path(node, parent, parentPath, key, inArray);
28518
28530
  const visitFn = (0,_visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
@@ -28656,6 +28668,7 @@ const traverse = (root, visitor, options = {}) => {
28656
28668
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
28657
28669
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
28658
28670
  detectCycles: options.detectCycles ?? true,
28671
+ skipVisited: options.skipVisited ?? false,
28659
28672
  mutable: options.mutable ?? false,
28660
28673
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
28661
28674
  };
@@ -28687,6 +28700,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
28687
28700
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
28688
28701
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
28689
28702
  detectCycles: options.detectCycles ?? true,
28703
+ skipVisited: options.skipVisited ?? false,
28690
28704
  mutable: options.mutable ?? false,
28691
28705
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
28692
28706
  };