@speclynx/apidom-parser-adapter-arazzo-json-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-arazzo-json-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-arazzo-json-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-arazzo-json-1
@@ -20214,13 +20214,14 @@ const dispatchPluginsSync = (element, plugins, options = {}) => {
20214
20214
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDispatchPluginsOptions, options);
20215
20215
  const {
20216
20216
  toolboxCreator,
20217
- visitorOptions
20217
+ visitorOptions,
20218
+ traverseOptions
20218
20219
  } = mergedOptions;
20219
20220
  const toolbox = toolboxCreator();
20220
20221
  const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
20221
20222
  const mergedPluginsVisitor = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.mergeVisitors)(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])({}, 'visitor')), visitorOptions);
20222
20223
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['pre'], []));
20223
- const newElement = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverse)(element, mergedPluginsVisitor);
20224
+ const newElement = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverse)(element, mergedPluginsVisitor, traverseOptions);
20224
20225
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['post'], []));
20225
20226
  return newElement;
20226
20227
  };
@@ -20229,13 +20230,14 @@ const dispatchPluginsAsync = async (element, plugins, options = {}) => {
20229
20230
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDispatchPluginsOptions, options);
20230
20231
  const {
20231
20232
  toolboxCreator,
20232
- visitorOptions
20233
+ visitorOptions,
20234
+ traverseOptions
20233
20235
  } = mergedOptions;
20234
20236
  const toolbox = toolboxCreator();
20235
20237
  const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
20236
20238
  const mergedPluginsVisitor = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.mergeVisitorsAsync)(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])({}, 'visitor')), visitorOptions);
20237
20239
  await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['pre'], [])));
20238
- const newElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverseAsync)(element, mergedPluginsVisitor);
20240
+ const newElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_0__.traverseAsync)(element, mergedPluginsVisitor, traverseOptions);
20239
20241
  await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(['post'], [])));
20240
20242
  return newElement;
20241
20243
  };
@@ -33182,10 +33184,12 @@ function* traverseGenerator(root, visitor, options) {
33182
33184
  nodePredicate,
33183
33185
  nodeCloneFn,
33184
33186
  detectCycles,
33187
+ skipVisited,
33185
33188
  mutable,
33186
33189
  mutationFn
33187
33190
  } = options;
33188
33191
  const keyMapIsFunction = typeof keyMap === 'function';
33192
+ const visitedNodes = skipVisited ? new WeakSet() : null;
33189
33193
  let stack;
33190
33194
  let inArray = Array.isArray(root);
33191
33195
  let keys = [root];
@@ -33271,6 +33275,14 @@ function* traverseGenerator(root, visitor, options) {
33271
33275
  continue;
33272
33276
  }
33273
33277
 
33278
+ // Skip already-visited nodes (handles DAG structures from cloneShallow)
33279
+ if (skipVisited && !isLeaving) {
33280
+ if (visitedNodes.has(node)) {
33281
+ continue;
33282
+ }
33283
+ visitedNodes.add(node);
33284
+ }
33285
+
33274
33286
  // Always create Path for the current node (needed for parentPath chain)
33275
33287
  currentPath = new _Path_mjs__WEBPACK_IMPORTED_MODULE_2__.Path(node, parent, parentPath, key, inArray);
33276
33288
  const visitFn = (0,_visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
@@ -33414,6 +33426,7 @@ const traverse = (root, visitor, options = {}) => {
33414
33426
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
33415
33427
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
33416
33428
  detectCycles: options.detectCycles ?? true,
33429
+ skipVisited: options.skipVisited ?? false,
33417
33430
  mutable: options.mutable ?? false,
33418
33431
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
33419
33432
  };
@@ -33445,6 +33458,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
33445
33458
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
33446
33459
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
33447
33460
  detectCycles: options.detectCycles ?? true,
33461
+ skipVisited: options.skipVisited ?? false,
33448
33462
  mutable: options.mutable ?? false,
33449
33463
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
33450
33464
  };