@speclynx/apidom-ns-openapi-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-ns-openapi-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-ns-openapi-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-ns-openapi-3-0
@@ -24977,13 +24977,14 @@ const dispatchPluginsSync = (element, plugins, options = {}) => {
24977
24977
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDispatchPluginsOptions, options);
24978
24978
  const {
24979
24979
  toolboxCreator,
24980
- visitorOptions
24980
+ visitorOptions,
24981
+ traverseOptions
24981
24982
  } = mergedOptions;
24982
24983
  const toolbox = toolboxCreator();
24983
24984
  const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
24984
24985
  const mergedPluginsVisitor = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.mergeVisitors)(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])({}, 'visitor')), visitorOptions);
24985
24986
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['pre'], []));
24986
- const newElement = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverse)(element, mergedPluginsVisitor);
24987
+ const newElement = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverse)(element, mergedPluginsVisitor, traverseOptions);
24987
24988
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['post'], []));
24988
24989
  return newElement;
24989
24990
  };
@@ -24992,13 +24993,14 @@ const dispatchPluginsAsync = async (element, plugins, options = {}) => {
24992
24993
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDispatchPluginsOptions, options);
24993
24994
  const {
24994
24995
  toolboxCreator,
24995
- visitorOptions
24996
+ visitorOptions,
24997
+ traverseOptions
24996
24998
  } = mergedOptions;
24997
24999
  const toolbox = toolboxCreator();
24998
25000
  const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
24999
25001
  const mergedPluginsVisitor = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.mergeVisitorsAsync)(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])({}, 'visitor')), visitorOptions);
25000
25002
  await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['pre'], [])));
25001
- const newElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverseAsync)(element, mergedPluginsVisitor);
25003
+ const newElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverseAsync)(element, mergedPluginsVisitor, traverseOptions);
25002
25004
  await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['post'], [])));
25003
25005
  return newElement;
25004
25006
  };
@@ -31023,10 +31025,12 @@ function* traverseGenerator(root, visitor, options) {
31023
31025
  nodePredicate,
31024
31026
  nodeCloneFn,
31025
31027
  detectCycles,
31028
+ skipVisited,
31026
31029
  mutable,
31027
31030
  mutationFn
31028
31031
  } = options;
31029
31032
  const keyMapIsFunction = typeof keyMap === 'function';
31033
+ const visitedNodes = skipVisited ? new WeakSet() : null;
31030
31034
  let stack;
31031
31035
  let inArray = Array.isArray(root);
31032
31036
  let keys = [root];
@@ -31112,6 +31116,14 @@ function* traverseGenerator(root, visitor, options) {
31112
31116
  continue;
31113
31117
  }
31114
31118
 
31119
+ // Skip already-visited nodes (handles DAG structures from cloneShallow)
31120
+ if (skipVisited && !isLeaving) {
31121
+ if (visitedNodes.has(node)) {
31122
+ continue;
31123
+ }
31124
+ visitedNodes.add(node);
31125
+ }
31126
+
31115
31127
  // Always create Path for the current node (needed for parentPath chain)
31116
31128
  currentPath = new _Path_mjs__WEBPACK_IMPORTED_MODULE_2__.Path(node, parent, parentPath, key, inArray);
31117
31129
  const visitFn = (0,_visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
@@ -31255,6 +31267,7 @@ const traverse = (root, visitor, options = {}) => {
31255
31267
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
31256
31268
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
31257
31269
  detectCycles: options.detectCycles ?? true,
31270
+ skipVisited: options.skipVisited ?? false,
31258
31271
  mutable: options.mutable ?? false,
31259
31272
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
31260
31273
  };
@@ -31286,6 +31299,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
31286
31299
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
31287
31300
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
31288
31301
  detectCycles: options.detectCycles ?? true,
31302
+ skipVisited: options.skipVisited ?? false,
31289
31303
  mutable: options.mutable ?? false,
31290
31304
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
31291
31305
  };