@speclynx/apidom-ns-openapi-3-1 4.7.0 → 4.8.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.8.0](https://github.com/speclynx/apidom/compare/v4.7.1...v4.8.0) (2026-04-17)
7
+
8
+ **Note:** Version bump only for package @speclynx/apidom-ns-openapi-3-1
9
+
10
+ ## [4.7.1](https://github.com/speclynx/apidom/compare/v4.7.0...v4.7.1) (2026-04-16)
11
+
12
+ **Note:** Version bump only for package @speclynx/apidom-ns-openapi-3-1
13
+
6
14
  # [4.7.0](https://github.com/speclynx/apidom/compare/v4.6.0...v4.7.0) (2026-04-12)
7
15
 
8
16
  **Note:** Version bump only for package @speclynx/apidom-ns-openapi-3-1
@@ -37056,10 +37056,12 @@ function* traverseGenerator(root, visitor, options) {
37056
37056
  nodePredicate,
37057
37057
  nodeCloneFn,
37058
37058
  detectCycles,
37059
+ skipVisited,
37059
37060
  mutable,
37060
37061
  mutationFn
37061
37062
  } = options;
37062
37063
  const keyMapIsFunction = typeof keyMap === 'function';
37064
+ const visitedNodes = skipVisited ? new WeakSet() : null;
37063
37065
  let stack;
37064
37066
  let inArray = Array.isArray(root);
37065
37067
  let keys = [root];
@@ -37145,6 +37147,14 @@ function* traverseGenerator(root, visitor, options) {
37145
37147
  continue;
37146
37148
  }
37147
37149
 
37150
+ // Skip already-visited nodes (handles DAG structures from cloneShallow)
37151
+ if (skipVisited && !isLeaving) {
37152
+ if (visitedNodes.has(node)) {
37153
+ continue;
37154
+ }
37155
+ visitedNodes.add(node);
37156
+ }
37157
+
37148
37158
  // Always create Path for the current node (needed for parentPath chain)
37149
37159
  currentPath = new _Path_mjs__WEBPACK_IMPORTED_MODULE_2__.Path(node, parent, parentPath, key, inArray);
37150
37160
  const visitFn = (0,_visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
@@ -37165,11 +37175,6 @@ function* traverseGenerator(root, visitor, options) {
37165
37175
  if (currentPath.shouldStop) {
37166
37176
  break;
37167
37177
  }
37168
- if (currentPath.shouldSkip) {
37169
- if (!isLeaving) {
37170
- continue;
37171
- }
37172
- }
37173
37178
  if (currentPath.removed) {
37174
37179
  edits.push([key, null]);
37175
37180
  if (!isLeaving) {
@@ -37179,12 +37184,19 @@ function* traverseGenerator(root, visitor, options) {
37179
37184
  const replacement = currentPath._getReplacementNode();
37180
37185
  edits.push([key, replacement]);
37181
37186
  if (!isLeaving) {
37187
+ if (currentPath.shouldSkip) {
37188
+ continue;
37189
+ }
37182
37190
  if (nodePredicate(replacement)) {
37183
37191
  node = replacement;
37184
37192
  } else {
37185
37193
  continue;
37186
37194
  }
37187
37195
  }
37196
+ } else if (currentPath.shouldSkip) {
37197
+ if (!isLeaving) {
37198
+ continue;
37199
+ }
37188
37200
  } else if (result !== undefined) {
37189
37201
  // Support return value replacement for backwards compatibility
37190
37202
  edits.push([key, result]);
@@ -37286,6 +37298,7 @@ const traverse = (root, visitor, options = {}) => {
37286
37298
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
37287
37299
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
37288
37300
  detectCycles: options.detectCycles ?? true,
37301
+ skipVisited: options.skipVisited ?? false,
37289
37302
  mutable: options.mutable ?? false,
37290
37303
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
37291
37304
  };
@@ -37317,6 +37330,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
37317
37330
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
37318
37331
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
37319
37332
  detectCycles: options.detectCycles ?? true,
37333
+ skipVisited: options.skipVisited ?? false,
37320
37334
  mutable: options.mutable ?? false,
37321
37335
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
37322
37336
  };