@speclynx/apidom-ns-openapi-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-ns-openapi-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-ns-openapi-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-ns-openapi-3-1
@@ -21777,13 +21777,14 @@ const dispatchPluginsSync = (element, plugins, options = {}) => {
21777
21777
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDispatchPluginsOptions, options);
21778
21778
  const {
21779
21779
  toolboxCreator,
21780
- visitorOptions
21780
+ visitorOptions,
21781
+ traverseOptions
21781
21782
  } = mergedOptions;
21782
21783
  const toolbox = toolboxCreator();
21783
21784
  const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
21784
21785
  const mergedPluginsVisitor = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.mergeVisitors)(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])({}, 'visitor')), visitorOptions);
21785
21786
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['pre'], []));
21786
- const newElement = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverse)(element, mergedPluginsVisitor);
21787
+ const newElement = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverse)(element, mergedPluginsVisitor, traverseOptions);
21787
21788
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['post'], []));
21788
21789
  return newElement;
21789
21790
  };
@@ -21792,13 +21793,14 @@ const dispatchPluginsAsync = async (element, plugins, options = {}) => {
21792
21793
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDispatchPluginsOptions, options);
21793
21794
  const {
21794
21795
  toolboxCreator,
21795
- visitorOptions
21796
+ visitorOptions,
21797
+ traverseOptions
21796
21798
  } = mergedOptions;
21797
21799
  const toolbox = toolboxCreator();
21798
21800
  const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
21799
21801
  const mergedPluginsVisitor = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.mergeVisitorsAsync)(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])({}, 'visitor')), visitorOptions);
21800
21802
  await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['pre'], [])));
21801
- const newElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverseAsync)(element, mergedPluginsVisitor);
21803
+ const newElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverseAsync)(element, mergedPluginsVisitor, traverseOptions);
21802
21804
  await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['post'], [])));
21803
21805
  return newElement;
21804
21806
  };
@@ -37056,10 +37058,12 @@ function* traverseGenerator(root, visitor, options) {
37056
37058
  nodePredicate,
37057
37059
  nodeCloneFn,
37058
37060
  detectCycles,
37061
+ skipVisited,
37059
37062
  mutable,
37060
37063
  mutationFn
37061
37064
  } = options;
37062
37065
  const keyMapIsFunction = typeof keyMap === 'function';
37066
+ const visitedNodes = skipVisited ? new WeakSet() : null;
37063
37067
  let stack;
37064
37068
  let inArray = Array.isArray(root);
37065
37069
  let keys = [root];
@@ -37145,6 +37149,14 @@ function* traverseGenerator(root, visitor, options) {
37145
37149
  continue;
37146
37150
  }
37147
37151
 
37152
+ // Skip already-visited nodes (handles DAG structures from cloneShallow)
37153
+ if (skipVisited && !isLeaving) {
37154
+ if (visitedNodes.has(node)) {
37155
+ continue;
37156
+ }
37157
+ visitedNodes.add(node);
37158
+ }
37159
+
37148
37160
  // Always create Path for the current node (needed for parentPath chain)
37149
37161
  currentPath = new _Path_mjs__WEBPACK_IMPORTED_MODULE_2__.Path(node, parent, parentPath, key, inArray);
37150
37162
  const visitFn = (0,_visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
@@ -37288,6 +37300,7 @@ const traverse = (root, visitor, options = {}) => {
37288
37300
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
37289
37301
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
37290
37302
  detectCycles: options.detectCycles ?? true,
37303
+ skipVisited: options.skipVisited ?? false,
37291
37304
  mutable: options.mutable ?? false,
37292
37305
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
37293
37306
  };
@@ -37319,6 +37332,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
37319
37332
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
37320
37333
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
37321
37334
  detectCycles: options.detectCycles ?? true,
37335
+ skipVisited: options.skipVisited ?? false,
37322
37336
  mutable: options.mutable ?? false,
37323
37337
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
37324
37338
  };