@speclynx/apidom-parser-adapter-asyncapi-json-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-parser-adapter-asyncapi-json-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-parser-adapter-asyncapi-json-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-parser-adapter-asyncapi-json-2
@@ -20272,13 +20272,14 @@ const dispatchPluginsSync = (element, plugins, options = {}) => {
20272
20272
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDispatchPluginsOptions, options);
20273
20273
  const {
20274
20274
  toolboxCreator,
20275
- visitorOptions
20275
+ visitorOptions,
20276
+ traverseOptions
20276
20277
  } = mergedOptions;
20277
20278
  const toolbox = toolboxCreator();
20278
20279
  const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
20279
20280
  const mergedPluginsVisitor = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.mergeVisitors)(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])({}, 'visitor')), visitorOptions);
20280
20281
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['pre'], []));
20281
- const newElement = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverse)(element, mergedPluginsVisitor);
20282
+ const newElement = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverse)(element, mergedPluginsVisitor, traverseOptions);
20282
20283
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['post'], []));
20283
20284
  return newElement;
20284
20285
  };
@@ -20287,13 +20288,14 @@ const dispatchPluginsAsync = async (element, plugins, options = {}) => {
20287
20288
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDispatchPluginsOptions, options);
20288
20289
  const {
20289
20290
  toolboxCreator,
20290
- visitorOptions
20291
+ visitorOptions,
20292
+ traverseOptions
20291
20293
  } = mergedOptions;
20292
20294
  const toolbox = toolboxCreator();
20293
20295
  const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
20294
20296
  const mergedPluginsVisitor = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.mergeVisitorsAsync)(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])({}, 'visitor')), visitorOptions);
20295
20297
  await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['pre'], [])));
20296
- const newElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverseAsync)(element, mergedPluginsVisitor);
20298
+ const newElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverseAsync)(element, mergedPluginsVisitor, traverseOptions);
20297
20299
  await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['post'], [])));
20298
20300
  return newElement;
20299
20301
  };
@@ -42758,10 +42760,12 @@ function* traverseGenerator(root, visitor, options) {
42758
42760
  nodePredicate,
42759
42761
  nodeCloneFn,
42760
42762
  detectCycles,
42763
+ skipVisited,
42761
42764
  mutable,
42762
42765
  mutationFn
42763
42766
  } = options;
42764
42767
  const keyMapIsFunction = typeof keyMap === 'function';
42768
+ const visitedNodes = skipVisited ? new WeakSet() : null;
42765
42769
  let stack;
42766
42770
  let inArray = Array.isArray(root);
42767
42771
  let keys = [root];
@@ -42847,6 +42851,14 @@ function* traverseGenerator(root, visitor, options) {
42847
42851
  continue;
42848
42852
  }
42849
42853
 
42854
+ // Skip already-visited nodes (handles DAG structures from cloneShallow)
42855
+ if (skipVisited && !isLeaving) {
42856
+ if (visitedNodes.has(node)) {
42857
+ continue;
42858
+ }
42859
+ visitedNodes.add(node);
42860
+ }
42861
+
42850
42862
  // Always create Path for the current node (needed for parentPath chain)
42851
42863
  currentPath = new _Path_mjs__WEBPACK_IMPORTED_MODULE_2__.Path(node, parent, parentPath, key, inArray);
42852
42864
  const visitFn = (0,_visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
@@ -42990,6 +43002,7 @@ const traverse = (root, visitor, options = {}) => {
42990
43002
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
42991
43003
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
42992
43004
  detectCycles: options.detectCycles ?? true,
43005
+ skipVisited: options.skipVisited ?? false,
42993
43006
  mutable: options.mutable ?? false,
42994
43007
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
42995
43008
  };
@@ -43021,6 +43034,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
43021
43034
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
43022
43035
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
43023
43036
  detectCycles: options.detectCycles ?? true,
43037
+ skipVisited: options.skipVisited ?? false,
43024
43038
  mutable: options.mutable ?? false,
43025
43039
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
43026
43040
  };