@speclynx/apidom-ns-openapi-3-0 4.10.1 → 4.12.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.
Files changed (180) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/apidom-ns-openapi-3-0.browser.js +40 -8
  3. package/dist/apidom-ns-openapi-3-0.browser.min.js +1 -1
  4. package/package.json +10 -10
  5. package/src/elements/Callback.cjs +3 -1
  6. package/src/elements/Components.cjs +3 -1
  7. package/src/elements/Contact.cjs +3 -1
  8. package/src/elements/Discriminator.cjs +3 -1
  9. package/src/elements/Encoding.cjs +3 -1
  10. package/src/elements/Example.cjs +3 -1
  11. package/src/elements/ExternalDocumentation.cjs +3 -1
  12. package/src/elements/Header.cjs +3 -1
  13. package/src/elements/Info.cjs +3 -1
  14. package/src/elements/License.cjs +3 -1
  15. package/src/elements/Link.cjs +3 -1
  16. package/src/elements/MediaType.cjs +3 -1
  17. package/src/elements/OAuthFlow.cjs +3 -1
  18. package/src/elements/OAuthFlows.cjs +3 -1
  19. package/src/elements/OpenApi3-0.cjs +3 -1
  20. package/src/elements/Openapi.cjs +3 -1
  21. package/src/elements/Operation.cjs +3 -1
  22. package/src/elements/Parameter.cjs +3 -1
  23. package/src/elements/PathItem.cjs +3 -1
  24. package/src/elements/Paths.cjs +3 -1
  25. package/src/elements/Reference.cjs +3 -1
  26. package/src/elements/RequestBody.cjs +3 -1
  27. package/src/elements/Response.cjs +3 -1
  28. package/src/elements/Responses.cjs +3 -1
  29. package/src/elements/Schema.cjs +3 -1
  30. package/src/elements/SecurityRequirement.cjs +3 -1
  31. package/src/elements/SecurityScheme.cjs +3 -1
  32. package/src/elements/Server.cjs +3 -1
  33. package/src/elements/ServerVariable.cjs +3 -1
  34. package/src/elements/Tag.cjs +3 -1
  35. package/src/elements/Xml.cjs +3 -1
  36. package/src/elements/nces/ComponentsCallbacks.cjs +3 -1
  37. package/src/elements/nces/ComponentsExamples.cjs +3 -1
  38. package/src/elements/nces/ComponentsHeaders.cjs +3 -1
  39. package/src/elements/nces/ComponentsLinks.cjs +3 -1
  40. package/src/elements/nces/ComponentsParameters.cjs +3 -1
  41. package/src/elements/nces/ComponentsRequestBodies.cjs +3 -1
  42. package/src/elements/nces/ComponentsResponses.cjs +3 -1
  43. package/src/elements/nces/ComponentsSchemas.cjs +3 -1
  44. package/src/elements/nces/ComponentsSecuritySchemes.cjs +3 -1
  45. package/src/elements/nces/DiscriminatorMapping.cjs +3 -1
  46. package/src/elements/nces/EncodingHeaders.cjs +3 -1
  47. package/src/elements/nces/HeaderContent.cjs +3 -1
  48. package/src/elements/nces/HeaderExamples.cjs +3 -1
  49. package/src/elements/nces/LinkParameters.cjs +3 -1
  50. package/src/elements/nces/MediaTypeEncoding.cjs +3 -1
  51. package/src/elements/nces/MediaTypeExamples.cjs +3 -1
  52. package/src/elements/nces/OAuthFlowScopes.cjs +3 -1
  53. package/src/elements/nces/OperationCallbacks.cjs +3 -1
  54. package/src/elements/nces/OperationParameters.cjs +3 -1
  55. package/src/elements/nces/OperationSecurity.cjs +3 -1
  56. package/src/elements/nces/OperationServers.cjs +3 -1
  57. package/src/elements/nces/OperationTags.cjs +3 -1
  58. package/src/elements/nces/ParameterContent.cjs +3 -1
  59. package/src/elements/nces/ParameterExamples.cjs +3 -1
  60. package/src/elements/nces/PathItemParameters.cjs +3 -1
  61. package/src/elements/nces/PathItemServers.cjs +3 -1
  62. package/src/elements/nces/RequestBodyContent.cjs +3 -1
  63. package/src/elements/nces/ResponseContent.cjs +3 -1
  64. package/src/elements/nces/ResponseHeaders.cjs +3 -1
  65. package/src/elements/nces/ResponseLinks.cjs +3 -1
  66. package/src/elements/nces/Security.cjs +3 -1
  67. package/src/elements/nces/ServerVariables.cjs +3 -1
  68. package/src/elements/nces/Servers.cjs +3 -1
  69. package/src/elements/nces/Tags.cjs +3 -1
  70. package/src/index.cjs +904 -154
  71. package/src/media-types.cjs +3 -1
  72. package/src/namespace.cjs +3 -1
  73. package/src/predicates.cjs +3 -1
  74. package/src/refractor/index.cjs +3 -1
  75. package/src/refractor/inspect.cjs +189 -32
  76. package/src/refractor/plugins/normalize-parameters.cjs +3 -1
  77. package/src/refractor/plugins/normalize-security-requirements.cjs +3 -1
  78. package/src/refractor/plugins/normalize-servers.cjs +3 -1
  79. package/src/refractor/plugins/normalize-storage/index.cjs +3 -1
  80. package/src/refractor/plugins/replace-empty-element.cjs +3 -1
  81. package/src/refractor/predicates.cjs +3 -1
  82. package/src/refractor/specification.cjs +3 -1
  83. package/src/refractor/toolbox.cjs +3 -1
  84. package/src/refractor/visitors/FallbackVisitor.cjs +3 -1
  85. package/src/refractor/visitors/SpecificationExtensionVisitor.cjs +3 -1
  86. package/src/refractor/visitors/SpecificationVisitor.cjs +3 -1
  87. package/src/refractor/visitors/Visitor.cjs +3 -1
  88. package/src/refractor/visitors/generics/AlternatingVisitor.cjs +3 -1
  89. package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +3 -1
  90. package/src/refractor/visitors/generics/MapVisitor.cjs +3 -1
  91. package/src/refractor/visitors/generics/MixedFieldsVisitor.cjs +3 -1
  92. package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +3 -1
  93. package/src/refractor/visitors/open-api-3-0/ContentVisitor.cjs +3 -1
  94. package/src/refractor/visitors/open-api-3-0/ExamplesVisitor.cjs +3 -1
  95. package/src/refractor/visitors/open-api-3-0/OpenapiVisitor.cjs +3 -1
  96. package/src/refractor/visitors/open-api-3-0/ParametersVisitor.cjs +3 -1
  97. package/src/refractor/visitors/open-api-3-0/SecurityVisitor.cjs +3 -1
  98. package/src/refractor/visitors/open-api-3-0/ServersVisitor.cjs +3 -1
  99. package/src/refractor/visitors/open-api-3-0/TagsVisitor.cjs +3 -1
  100. package/src/refractor/visitors/open-api-3-0/bases.cjs +3 -1
  101. package/src/refractor/visitors/open-api-3-0/callback/index.cjs +3 -1
  102. package/src/refractor/visitors/open-api-3-0/components/CallbacksVisitor.cjs +3 -1
  103. package/src/refractor/visitors/open-api-3-0/components/ExamplesVisitor.cjs +3 -1
  104. package/src/refractor/visitors/open-api-3-0/components/HeadersVisitor.cjs +3 -1
  105. package/src/refractor/visitors/open-api-3-0/components/LinksVisitor.cjs +3 -1
  106. package/src/refractor/visitors/open-api-3-0/components/ParametersVisitor.cjs +3 -1
  107. package/src/refractor/visitors/open-api-3-0/components/RequestBodiesVisitor.cjs +3 -1
  108. package/src/refractor/visitors/open-api-3-0/components/ResponsesVisitor.cjs +3 -1
  109. package/src/refractor/visitors/open-api-3-0/components/SchemasVisitor.cjs +3 -1
  110. package/src/refractor/visitors/open-api-3-0/components/SecuritySchemesVisitor.cjs +3 -1
  111. package/src/refractor/visitors/open-api-3-0/components/index.cjs +3 -1
  112. package/src/refractor/visitors/open-api-3-0/contact/index.cjs +3 -1
  113. package/src/refractor/visitors/open-api-3-0/distriminator/MappingVisitor.cjs +3 -1
  114. package/src/refractor/visitors/open-api-3-0/distriminator/index.cjs +3 -1
  115. package/src/refractor/visitors/open-api-3-0/encoding/HeadersVisitor.cjs +3 -1
  116. package/src/refractor/visitors/open-api-3-0/encoding/index.cjs +3 -1
  117. package/src/refractor/visitors/open-api-3-0/example/ExternalValueVisitor.cjs +3 -1
  118. package/src/refractor/visitors/open-api-3-0/example/index.cjs +3 -1
  119. package/src/refractor/visitors/open-api-3-0/external-documentation/index.cjs +3 -1
  120. package/src/refractor/visitors/open-api-3-0/header/ContentVisitor.cjs +3 -1
  121. package/src/refractor/visitors/open-api-3-0/header/ExamplesVisitor.cjs +3 -1
  122. package/src/refractor/visitors/open-api-3-0/header/SchemaVisitor.cjs +3 -1
  123. package/src/refractor/visitors/open-api-3-0/header/index.cjs +3 -1
  124. package/src/refractor/visitors/open-api-3-0/index.cjs +3 -1
  125. package/src/refractor/visitors/open-api-3-0/info/VersionVisitor.cjs +3 -1
  126. package/src/refractor/visitors/open-api-3-0/info/index.cjs +3 -1
  127. package/src/refractor/visitors/open-api-3-0/license/index.cjs +3 -1
  128. package/src/refractor/visitors/open-api-3-0/link/OperationIdVisitor.cjs +3 -1
  129. package/src/refractor/visitors/open-api-3-0/link/OperationRefVisitor.cjs +3 -1
  130. package/src/refractor/visitors/open-api-3-0/link/ParametersVisitor.cjs +3 -1
  131. package/src/refractor/visitors/open-api-3-0/link/index.cjs +3 -1
  132. package/src/refractor/visitors/open-api-3-0/media-type/EncodingVisitor.cjs +3 -1
  133. package/src/refractor/visitors/open-api-3-0/media-type/ExamplesVisitor.cjs +3 -1
  134. package/src/refractor/visitors/open-api-3-0/media-type/SchemaVisitor.cjs +3 -1
  135. package/src/refractor/visitors/open-api-3-0/media-type/index.cjs +3 -1
  136. package/src/refractor/visitors/open-api-3-0/oauth-flow/ScopesVisitor.cjs +3 -1
  137. package/src/refractor/visitors/open-api-3-0/oauth-flow/index.cjs +3 -1
  138. package/src/refractor/visitors/open-api-3-0/oauth-flows/index.cjs +3 -1
  139. package/src/refractor/visitors/open-api-3-0/operation/CallbacksVisitor.cjs +3 -1
  140. package/src/refractor/visitors/open-api-3-0/operation/ParametersVisitor.cjs +3 -1
  141. package/src/refractor/visitors/open-api-3-0/operation/RequestBodyVisitor.cjs +3 -1
  142. package/src/refractor/visitors/open-api-3-0/operation/SecurityVisitor.cjs +3 -1
  143. package/src/refractor/visitors/open-api-3-0/operation/ServersVisitor.cjs +3 -1
  144. package/src/refractor/visitors/open-api-3-0/operation/TagsVisitor.cjs +3 -1
  145. package/src/refractor/visitors/open-api-3-0/operation/index.cjs +3 -1
  146. package/src/refractor/visitors/open-api-3-0/parameter/ContentVisitor.cjs +3 -1
  147. package/src/refractor/visitors/open-api-3-0/parameter/ExamplesVisitor.cjs +3 -1
  148. package/src/refractor/visitors/open-api-3-0/parameter/SchemaVisitor.cjs +3 -1
  149. package/src/refractor/visitors/open-api-3-0/parameter/index.cjs +3 -1
  150. package/src/refractor/visitors/open-api-3-0/path-item/$RefVisitor.cjs +3 -1
  151. package/src/refractor/visitors/open-api-3-0/path-item/ParametersVisitor.cjs +3 -1
  152. package/src/refractor/visitors/open-api-3-0/path-item/ServersVisitor.cjs +3 -1
  153. package/src/refractor/visitors/open-api-3-0/path-item/index.cjs +3 -1
  154. package/src/refractor/visitors/open-api-3-0/paths/index.cjs +3 -1
  155. package/src/refractor/visitors/open-api-3-0/reference/$RefVisitor.cjs +3 -1
  156. package/src/refractor/visitors/open-api-3-0/reference/index.cjs +3 -1
  157. package/src/refractor/visitors/open-api-3-0/request-body/ContentVisitor.cjs +3 -1
  158. package/src/refractor/visitors/open-api-3-0/request-body/index.cjs +3 -1
  159. package/src/refractor/visitors/open-api-3-0/response/ContentVisitor.cjs +3 -1
  160. package/src/refractor/visitors/open-api-3-0/response/HeadersVisitor.cjs +3 -1
  161. package/src/refractor/visitors/open-api-3-0/response/LinksVisitor.cjs +3 -1
  162. package/src/refractor/visitors/open-api-3-0/response/index.cjs +3 -1
  163. package/src/refractor/visitors/open-api-3-0/responses/DefaultVisitor.cjs +3 -1
  164. package/src/refractor/visitors/open-api-3-0/responses/index.cjs +3 -1
  165. package/src/refractor/visitors/open-api-3-0/schema/AllOfVisitor.cjs +3 -1
  166. package/src/refractor/visitors/open-api-3-0/schema/AnyOfVisitor.cjs +3 -1
  167. package/src/refractor/visitors/open-api-3-0/schema/ItemsVisitor.cjs +9 -2
  168. package/src/refractor/visitors/open-api-3-0/schema/OneOfVisitor.cjs +3 -1
  169. package/src/refractor/visitors/open-api-3-0/schema/PropertiesVisitor.cjs +3 -1
  170. package/src/refractor/visitors/open-api-3-0/schema/SchemaOrReferenceVisitor.cjs +3 -1
  171. package/src/refractor/visitors/open-api-3-0/schema/TypeVisitor.cjs +3 -1
  172. package/src/refractor/visitors/open-api-3-0/schema/index.cjs +3 -1
  173. package/src/refractor/visitors/open-api-3-0/security-requirement/index.cjs +3 -1
  174. package/src/refractor/visitors/open-api-3-0/security-scheme/index.cjs +3 -1
  175. package/src/refractor/visitors/open-api-3-0/server/UrlVisitor.cjs +3 -1
  176. package/src/refractor/visitors/open-api-3-0/server/VariablesVisitor.cjs +3 -1
  177. package/src/refractor/visitors/open-api-3-0/server/index.cjs +3 -1
  178. package/src/refractor/visitors/open-api-3-0/server-variable/index.cjs +3 -1
  179. package/src/refractor/visitors/open-api-3-0/tag/index.cjs +3 -1
  180. package/src/refractor/visitors/open-api-3-0/xml/index.cjs +3 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,18 @@
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.12.0](https://github.com/speclynx/apidom/compare/v4.11.1...v4.12.0) (2026-06-23)
7
+
8
+ **Note:** Version bump only for package @speclynx/apidom-ns-openapi-3-0
9
+
10
+ ## [4.11.1](https://github.com/speclynx/apidom/compare/v4.11.0...v4.11.1) (2026-06-10)
11
+
12
+ **Note:** Version bump only for package @speclynx/apidom-ns-openapi-3-0
13
+
14
+ # [4.11.0](https://github.com/speclynx/apidom/compare/v4.10.1...v4.11.0) (2026-06-10)
15
+
16
+ **Note:** Version bump only for package @speclynx/apidom-ns-openapi-3-0
17
+
6
18
  ## [4.10.1](https://github.com/speclynx/apidom/compare/v4.10.0...v4.10.1) (2026-05-20)
7
19
 
8
20
  **Note:** Version bump only for package @speclynx/apidom-ns-openapi-3-0
@@ -30422,6 +30422,14 @@ class Path {
30422
30422
  */
30423
30423
  inList;
30424
30424
 
30425
+ /**
30426
+ * True when this node is a non-descending revisit of an already-visited node
30427
+ * (only under skipVisited: 'enter-only'). Children are not traversed.
30428
+ * Set on both the enter and the matching leave phase, so it is meaningful
30429
+ * in either phase.
30430
+ */
30431
+ revisited = false;
30432
+
30425
30433
  /**
30426
30434
  * Internal state for traversal control.
30427
30435
  */
@@ -31006,6 +31014,10 @@ __webpack_require__.r(__webpack_exports__);
31006
31014
 
31007
31015
 
31008
31016
 
31017
+ /**
31018
+ * Controls handling of already-visited nodes during traversal.
31019
+ * @public
31020
+ */
31009
31021
  /**
31010
31022
  * Options for the traverse function.
31011
31023
  * @public
@@ -31013,6 +31025,12 @@ __webpack_require__.r(__webpack_exports__);
31013
31025
  // =============================================================================
31014
31026
  // Internal types for generator
31015
31027
  // =============================================================================
31028
+
31029
+ const normalizeSkipVisited = v => {
31030
+ if (v === true) return 'skip';
31031
+ if (v === false || v === undefined) return 'never';
31032
+ return v;
31033
+ };
31016
31034
  // =============================================================================
31017
31035
  // Core generator
31018
31036
  // =============================================================================
@@ -31030,7 +31048,7 @@ function* traverseGenerator(root, visitor, options) {
31030
31048
  mutationFn
31031
31049
  } = options;
31032
31050
  const keyMapIsFunction = typeof keyMap === 'function';
31033
- const visitedNodes = skipVisited ? new WeakSet() : null;
31051
+ const visitedNodes = skipVisited !== 'never' ? new WeakSet() : null;
31034
31052
  let stack;
31035
31053
  let inArray = Array.isArray(root);
31036
31054
  let keys = [root];
@@ -31045,6 +31063,7 @@ function* traverseGenerator(root, visitor, options) {
31045
31063
  index += 1;
31046
31064
  const isLeaving = index === keys.length;
31047
31065
  let key;
31066
+ let revisitNoDescend = false;
31048
31067
  const isEdited = isLeaving && edits.length !== 0;
31049
31068
  if (isLeaving) {
31050
31069
  key = ancestors.length === 0 ? undefined : currentPath?.key;
@@ -31086,6 +31105,7 @@ function* traverseGenerator(root, visitor, options) {
31086
31105
  edits = stack.edits;
31087
31106
  const parentInArray = stack.inArray;
31088
31107
  parentPath = stack.parentPath;
31108
+ revisitNoDescend = stack.revisitNoDescend;
31089
31109
  stack = stack.prev;
31090
31110
 
31091
31111
  // Push the edited node to parent's edits for propagation up the tree
@@ -31117,15 +31137,22 @@ function* traverseGenerator(root, visitor, options) {
31117
31137
  }
31118
31138
 
31119
31139
  // Skip already-visited nodes (handles DAG structures from cloneShallow)
31120
- if (skipVisited && !isLeaving) {
31140
+ if (skipVisited !== 'never' && !isLeaving) {
31121
31141
  if (visitedNodes.has(node)) {
31122
- continue;
31142
+ if (skipVisited === 'enter-only') {
31143
+ // fire enter/leave for this occurrence, but don't re-descend
31144
+ revisitNoDescend = true;
31145
+ } else {
31146
+ continue;
31147
+ }
31148
+ } else {
31149
+ visitedNodes.add(node);
31123
31150
  }
31124
- visitedNodes.add(node);
31125
31151
  }
31126
31152
 
31127
31153
  // Always create Path for the current node (needed for parentPath chain)
31128
31154
  currentPath = new _Path_mjs__WEBPACK_IMPORTED_MODULE_2__.Path(node, parent, parentPath, key, inArray);
31155
+ currentPath.revisited = revisitNoDescend;
31129
31156
  const visitFn = (0,_visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
31130
31157
  if (visitFn) {
31131
31158
  // Assign state to visitor
@@ -31189,10 +31216,13 @@ function* traverseGenerator(root, visitor, options) {
31189
31216
  keys,
31190
31217
  edits,
31191
31218
  parentPath,
31219
+ revisitNoDescend,
31192
31220
  prev: stack
31193
31221
  };
31194
31222
  inArray = Array.isArray(node);
31195
- if (inArray) {
31223
+ if (revisitNoDescend) {
31224
+ keys = [];
31225
+ } else if (inArray) {
31196
31226
  keys = node;
31197
31227
  } else if (keyMapIsFunction) {
31198
31228
  keys = keyMap(node);
@@ -31267,7 +31297,7 @@ const traverse = (root, visitor, options = {}) => {
31267
31297
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
31268
31298
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
31269
31299
  detectCycles: options.detectCycles ?? true,
31270
- skipVisited: options.skipVisited ?? false,
31300
+ skipVisited: normalizeSkipVisited(options.skipVisited),
31271
31301
  mutable: options.mutable ?? false,
31272
31302
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
31273
31303
  };
@@ -31299,7 +31329,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
31299
31329
  nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
31300
31330
  nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
31301
31331
  detectCycles: options.detectCycles ?? true,
31302
- skipVisited: options.skipVisited ?? false,
31332
+ skipVisited: normalizeSkipVisited(options.skipVisited),
31303
31333
  mutable: options.mutable ?? false,
31304
31334
  mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
31305
31335
  };
@@ -31767,7 +31797,9 @@ mergeVisitors[Symbol.for('nodejs.util.promisify.custom')] = mergeVisitorsAsync;
31767
31797
  * @internal
31768
31798
  */
31769
31799
  function createPathProxy(originalPath, currentNode) {
31770
- return new _Path_mjs__WEBPACK_IMPORTED_MODULE_4__.Path(currentNode, originalPath.parent, originalPath.parentPath, originalPath.key, originalPath.inList);
31800
+ const proxy = new _Path_mjs__WEBPACK_IMPORTED_MODULE_4__.Path(currentNode, originalPath.parent, originalPath.parentPath, originalPath.key, originalPath.inList);
31801
+ proxy.revisited = originalPath.revisited;
31802
+ return proxy;
31771
31803
  }
31772
31804
 
31773
31805
  /***/ }