@speclynx/apidom-ns-openapi-2 1.12.2 → 2.1.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 (222) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/NOTICE +16 -7
  3. package/README.md +18 -13
  4. package/dist/apidom-ns-openapi-2.browser.js +15352 -12648
  5. package/dist/apidom-ns-openapi-2.browser.min.js +1 -1
  6. package/package.json +10 -9
  7. package/src/elements/Contact.cjs +2 -2
  8. package/src/elements/Contact.mjs +1 -1
  9. package/src/elements/Definitions.cjs +2 -2
  10. package/src/elements/Definitions.mjs +1 -1
  11. package/src/elements/Example.cjs +2 -2
  12. package/src/elements/Example.mjs +1 -1
  13. package/src/elements/ExternalDocumentation.cjs +2 -2
  14. package/src/elements/ExternalDocumentation.mjs +1 -1
  15. package/src/elements/Header.cjs +10 -10
  16. package/src/elements/Header.mjs +10 -10
  17. package/src/elements/Headers.cjs +2 -2
  18. package/src/elements/Headers.mjs +1 -1
  19. package/src/elements/Info.cjs +2 -2
  20. package/src/elements/Info.mjs +1 -1
  21. package/src/elements/Items.cjs +10 -10
  22. package/src/elements/Items.mjs +10 -10
  23. package/src/elements/License.cjs +2 -2
  24. package/src/elements/License.mjs +1 -1
  25. package/src/elements/Operation.cjs +3 -3
  26. package/src/elements/Operation.mjs +1 -1
  27. package/src/elements/Parameter.cjs +11 -11
  28. package/src/elements/Parameter.mjs +11 -11
  29. package/src/elements/ParametersDefinitions.cjs +2 -2
  30. package/src/elements/ParametersDefinitions.mjs +1 -1
  31. package/src/elements/PathItem.cjs +23 -23
  32. package/src/elements/PathItem.mjs +22 -22
  33. package/src/elements/Paths.cjs +2 -2
  34. package/src/elements/Paths.mjs +1 -1
  35. package/src/elements/Reference.cjs +2 -2
  36. package/src/elements/Reference.mjs +1 -1
  37. package/src/elements/Response.cjs +2 -2
  38. package/src/elements/Response.mjs +1 -1
  39. package/src/elements/Responses.cjs +2 -2
  40. package/src/elements/Responses.mjs +1 -1
  41. package/src/elements/ResponsesDefinitions.cjs +2 -2
  42. package/src/elements/ResponsesDefinitions.mjs +1 -1
  43. package/src/elements/Schema.cjs +43 -8
  44. package/src/elements/Schema.mjs +43 -9
  45. package/src/elements/Scopes.cjs +2 -2
  46. package/src/elements/Scopes.mjs +1 -1
  47. package/src/elements/SecurityDefinitions.cjs +2 -2
  48. package/src/elements/SecurityDefinitions.mjs +1 -1
  49. package/src/elements/SecurityRequirement.cjs +2 -2
  50. package/src/elements/SecurityRequirement.mjs +1 -1
  51. package/src/elements/SecurityScheme.cjs +2 -2
  52. package/src/elements/SecurityScheme.mjs +1 -1
  53. package/src/elements/Swagger.cjs +2 -2
  54. package/src/elements/Swagger.mjs +1 -1
  55. package/src/elements/SwaggerVersion.cjs +2 -2
  56. package/src/elements/SwaggerVersion.mjs +1 -1
  57. package/src/elements/Tag.cjs +2 -2
  58. package/src/elements/Tag.mjs +1 -1
  59. package/src/elements/Xml.cjs +2 -2
  60. package/src/elements/Xml.mjs +1 -1
  61. package/src/elements/nces/OperationConsumes.cjs +2 -2
  62. package/src/elements/nces/OperationConsumes.mjs +1 -1
  63. package/src/elements/nces/OperationParameters.cjs +2 -2
  64. package/src/elements/nces/OperationParameters.mjs +1 -1
  65. package/src/elements/nces/OperationProduces.cjs +2 -2
  66. package/src/elements/nces/OperationProduces.mjs +1 -1
  67. package/src/elements/nces/OperationSchemes.cjs +2 -2
  68. package/src/elements/nces/OperationSchemes.mjs +1 -1
  69. package/src/elements/nces/OperationSecurity.cjs +2 -2
  70. package/src/elements/nces/OperationSecurity.mjs +1 -1
  71. package/src/elements/nces/OperationTags.cjs +2 -2
  72. package/src/elements/nces/OperationTags.mjs +1 -1
  73. package/src/elements/nces/PathItemParameters.cjs +2 -2
  74. package/src/elements/nces/PathItemParameters.mjs +1 -1
  75. package/src/elements/nces/SwaggerConsumes.cjs +2 -2
  76. package/src/elements/nces/SwaggerConsumes.mjs +1 -1
  77. package/src/elements/nces/SwaggerProduces.cjs +2 -2
  78. package/src/elements/nces/SwaggerProduces.mjs +1 -1
  79. package/src/elements/nces/SwaggerSchemes.cjs +2 -2
  80. package/src/elements/nces/SwaggerSchemes.mjs +1 -1
  81. package/src/elements/nces/SwaggerSecurity.cjs +2 -2
  82. package/src/elements/nces/SwaggerSecurity.mjs +1 -1
  83. package/src/elements/nces/SwaggerTags.cjs +2 -2
  84. package/src/elements/nces/SwaggerTags.mjs +1 -1
  85. package/src/index.cjs +65 -45
  86. package/src/index.mjs +6 -5
  87. package/src/namespace.mjs +2 -2
  88. package/src/predicates.cjs +54 -190
  89. package/src/predicates.mjs +27 -190
  90. package/src/refractor/index.cjs +279 -17
  91. package/src/refractor/index.mjs +251 -16
  92. package/src/refractor/inspect.cjs +157 -0
  93. package/src/refractor/inspect.mjs +126 -0
  94. package/src/refractor/plugins/replace-empty-element.cjs +20 -14
  95. package/src/refractor/plugins/replace-empty-element.mjs +14 -8
  96. package/src/refractor/predicates.cjs +3 -2
  97. package/src/refractor/predicates.mjs +2 -1
  98. package/src/refractor/specification.cjs +41 -12
  99. package/src/refractor/specification.mjs +41 -12
  100. package/src/refractor/toolbox.cjs +8 -3
  101. package/src/refractor/toolbox.mjs +6 -2
  102. package/src/refractor/visitors/FallbackVisitor.cjs +4 -4
  103. package/src/refractor/visitors/FallbackVisitor.mjs +4 -4
  104. package/src/refractor/visitors/SpecificationExtensionVisitor.cjs +4 -4
  105. package/src/refractor/visitors/SpecificationExtensionVisitor.mjs +4 -4
  106. package/src/refractor/visitors/SpecificationVisitor.cjs +4 -3
  107. package/src/refractor/visitors/SpecificationVisitor.mjs +3 -2
  108. package/src/refractor/visitors/Visitor.cjs +10 -8
  109. package/src/refractor/visitors/Visitor.mjs +11 -9
  110. package/src/refractor/visitors/generics/AlternatingVisitor.cjs +3 -3
  111. package/src/refractor/visitors/generics/AlternatingVisitor.mjs +3 -3
  112. package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +10 -7
  113. package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +9 -6
  114. package/src/refractor/visitors/generics/MixedFieldsVisitor.cjs +13 -6
  115. package/src/refractor/visitors/generics/MixedFieldsVisitor.mjs +13 -6
  116. package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +9 -6
  117. package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +8 -5
  118. package/src/refractor/visitors/open-api-2/BasePathVisitor.cjs +2 -3
  119. package/src/refractor/visitors/open-api-2/BasePathVisitor.mjs +2 -3
  120. package/src/refractor/visitors/open-api-2/ConsumesVisitor.cjs +5 -4
  121. package/src/refractor/visitors/open-api-2/ConsumesVisitor.mjs +4 -3
  122. package/src/refractor/visitors/open-api-2/HostVisitor.cjs +2 -3
  123. package/src/refractor/visitors/open-api-2/HostVisitor.mjs +2 -3
  124. package/src/refractor/visitors/open-api-2/ProducesVisitor.cjs +5 -4
  125. package/src/refractor/visitors/open-api-2/ProducesVisitor.mjs +4 -3
  126. package/src/refractor/visitors/open-api-2/SchemesVisitor.cjs +5 -4
  127. package/src/refractor/visitors/open-api-2/SchemesVisitor.mjs +4 -3
  128. package/src/refractor/visitors/open-api-2/SecurityVisitor.cjs +5 -11
  129. package/src/refractor/visitors/open-api-2/SecurityVisitor.mjs +5 -10
  130. package/src/refractor/visitors/open-api-2/SwaggerVisitor.cjs +5 -10
  131. package/src/refractor/visitors/open-api-2/SwaggerVisitor.mjs +6 -10
  132. package/src/refractor/visitors/open-api-2/TagsVisitor.cjs +5 -11
  133. package/src/refractor/visitors/open-api-2/TagsVisitor.mjs +5 -10
  134. package/src/refractor/visitors/open-api-2/bases.cjs +72 -0
  135. package/src/refractor/visitors/open-api-2/bases.mjs +67 -0
  136. package/src/refractor/visitors/open-api-2/contact/index.cjs +2 -8
  137. package/src/refractor/visitors/open-api-2/contact/index.mjs +2 -7
  138. package/src/refractor/visitors/open-api-2/definitions/index.cjs +5 -12
  139. package/src/refractor/visitors/open-api-2/definitions/index.mjs +5 -11
  140. package/src/refractor/visitors/open-api-2/example/index.cjs +2 -8
  141. package/src/refractor/visitors/open-api-2/example/index.mjs +2 -7
  142. package/src/refractor/visitors/open-api-2/external-documentation/index.cjs +2 -8
  143. package/src/refractor/visitors/open-api-2/external-documentation/index.mjs +2 -7
  144. package/src/refractor/visitors/open-api-2/header/index.cjs +2 -8
  145. package/src/refractor/visitors/open-api-2/header/index.mjs +2 -7
  146. package/src/refractor/visitors/open-api-2/headers/index.cjs +2 -8
  147. package/src/refractor/visitors/open-api-2/headers/index.mjs +2 -7
  148. package/src/refractor/visitors/open-api-2/index.cjs +2 -8
  149. package/src/refractor/visitors/open-api-2/index.mjs +2 -7
  150. package/src/refractor/visitors/open-api-2/info/VersionVisitor.cjs +2 -3
  151. package/src/refractor/visitors/open-api-2/info/VersionVisitor.mjs +2 -3
  152. package/src/refractor/visitors/open-api-2/info/index.cjs +2 -8
  153. package/src/refractor/visitors/open-api-2/info/index.mjs +2 -7
  154. package/src/refractor/visitors/open-api-2/items/index.cjs +2 -8
  155. package/src/refractor/visitors/open-api-2/items/index.mjs +2 -7
  156. package/src/refractor/visitors/open-api-2/license/index.cjs +2 -8
  157. package/src/refractor/visitors/open-api-2/license/index.mjs +2 -7
  158. package/src/refractor/visitors/open-api-2/operation/ConsumesVisitor.cjs +5 -4
  159. package/src/refractor/visitors/open-api-2/operation/ConsumesVisitor.mjs +4 -3
  160. package/src/refractor/visitors/open-api-2/operation/ParametersVisitor.cjs +6 -12
  161. package/src/refractor/visitors/open-api-2/operation/ParametersVisitor.mjs +6 -11
  162. package/src/refractor/visitors/open-api-2/operation/ProducesVisitor.cjs +5 -4
  163. package/src/refractor/visitors/open-api-2/operation/ProducesVisitor.mjs +4 -3
  164. package/src/refractor/visitors/open-api-2/operation/SchemesVisitor.cjs +5 -4
  165. package/src/refractor/visitors/open-api-2/operation/SchemesVisitor.mjs +4 -3
  166. package/src/refractor/visitors/open-api-2/operation/SecurityVisitor.cjs +5 -11
  167. package/src/refractor/visitors/open-api-2/operation/SecurityVisitor.mjs +5 -10
  168. package/src/refractor/visitors/open-api-2/operation/TagsVisitor.cjs +5 -4
  169. package/src/refractor/visitors/open-api-2/operation/TagsVisitor.mjs +4 -3
  170. package/src/refractor/visitors/open-api-2/operation/index.cjs +2 -8
  171. package/src/refractor/visitors/open-api-2/operation/index.mjs +2 -7
  172. package/src/refractor/visitors/open-api-2/parameter/index.cjs +2 -8
  173. package/src/refractor/visitors/open-api-2/parameter/index.mjs +2 -7
  174. package/src/refractor/visitors/open-api-2/parameters-definitions/index.cjs +2 -8
  175. package/src/refractor/visitors/open-api-2/parameters-definitions/index.mjs +2 -7
  176. package/src/refractor/visitors/open-api-2/path-item/$RefVisitor.cjs +2 -3
  177. package/src/refractor/visitors/open-api-2/path-item/$RefVisitor.mjs +2 -3
  178. package/src/refractor/visitors/open-api-2/path-item/ParametersVisitor.cjs +6 -12
  179. package/src/refractor/visitors/open-api-2/path-item/ParametersVisitor.mjs +6 -11
  180. package/src/refractor/visitors/open-api-2/path-item/index.cjs +8 -14
  181. package/src/refractor/visitors/open-api-2/path-item/index.mjs +7 -12
  182. package/src/refractor/visitors/open-api-2/paths/index.cjs +6 -13
  183. package/src/refractor/visitors/open-api-2/paths/index.mjs +6 -12
  184. package/src/refractor/visitors/open-api-2/reference/$RefVisitor.cjs +2 -3
  185. package/src/refractor/visitors/open-api-2/reference/$RefVisitor.mjs +2 -3
  186. package/src/refractor/visitors/open-api-2/reference/index.cjs +6 -13
  187. package/src/refractor/visitors/open-api-2/reference/index.mjs +5 -11
  188. package/src/refractor/visitors/open-api-2/response/index.cjs +2 -8
  189. package/src/refractor/visitors/open-api-2/response/index.mjs +2 -7
  190. package/src/refractor/visitors/open-api-2/responses/DefaultVisitor.cjs +6 -12
  191. package/src/refractor/visitors/open-api-2/responses/DefaultVisitor.mjs +6 -11
  192. package/src/refractor/visitors/open-api-2/responses/index.cjs +8 -14
  193. package/src/refractor/visitors/open-api-2/responses/index.mjs +8 -13
  194. package/src/refractor/visitors/open-api-2/responses-definitions/index.cjs +2 -8
  195. package/src/refractor/visitors/open-api-2/responses-definitions/index.mjs +2 -7
  196. package/src/refractor/visitors/open-api-2/schema/AllOfVisitor.cjs +3 -4
  197. package/src/refractor/visitors/open-api-2/schema/AllOfVisitor.mjs +3 -4
  198. package/src/refractor/visitors/open-api-2/schema/ItemsVisitor.cjs +9 -15
  199. package/src/refractor/visitors/open-api-2/schema/ItemsVisitor.mjs +8 -13
  200. package/src/refractor/visitors/open-api-2/schema/PropertiesVisitor.cjs +3 -4
  201. package/src/refractor/visitors/open-api-2/schema/PropertiesVisitor.mjs +3 -4
  202. package/src/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.cjs +3 -4
  203. package/src/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.mjs +3 -4
  204. package/src/refractor/visitors/open-api-2/schema/index.cjs +2 -8
  205. package/src/refractor/visitors/open-api-2/schema/index.mjs +2 -7
  206. package/src/refractor/visitors/open-api-2/scopes/index.cjs +2 -8
  207. package/src/refractor/visitors/open-api-2/scopes/index.mjs +2 -7
  208. package/src/refractor/visitors/open-api-2/security-definitions/index.cjs +2 -8
  209. package/src/refractor/visitors/open-api-2/security-definitions/index.mjs +2 -7
  210. package/src/refractor/visitors/open-api-2/security-requirement/index.cjs +2 -8
  211. package/src/refractor/visitors/open-api-2/security-requirement/index.mjs +2 -7
  212. package/src/refractor/visitors/open-api-2/security-scheme/index.cjs +2 -8
  213. package/src/refractor/visitors/open-api-2/security-scheme/index.mjs +2 -7
  214. package/src/refractor/visitors/open-api-2/tag/index.cjs +2 -8
  215. package/src/refractor/visitors/open-api-2/tag/index.mjs +2 -7
  216. package/src/refractor/visitors/open-api-2/xml/index.cjs +2 -8
  217. package/src/refractor/visitors/open-api-2/xml/index.mjs +2 -7
  218. package/types/apidom-ns-openapi-2.d.ts +541 -565
  219. package/src/refractor/registration.cjs +0 -87
  220. package/src/refractor/registration.mjs +0 -56
  221. package/src/traversal/visitor.cjs +0 -56
  222. package/src/traversal/visitor.mjs +0 -53
package/CHANGELOG.md CHANGED
@@ -3,6 +3,29 @@
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
+ # [2.1.0](https://github.com/speclynx/apidom/compare/v2.0.1...v2.1.0) (2026-01-17)
7
+
8
+ **Note:** Version bump only for package @speclynx/apidom-ns-openapi-2
9
+
10
+ ## [2.0.1](https://github.com/speclynx/apidom/compare/v2.0.0...v2.0.1) (2026-01-14)
11
+
12
+ **Note:** Version bump only for package @speclynx/apidom-ns-openapi-2
13
+
14
+ # [2.0.0](https://github.com/speclynx/apidom/compare/v1.12.2...v2.0.0) (2026-01-14)
15
+
16
+ ### Bug Fixes
17
+
18
+ - limit source maps memory consuption ([#20](https://github.com/speclynx/apidom/issues/20)) ([4a0574f](https://github.com/speclynx/apidom/commit/4a0574fd6d466be7c33c8a5871baacd384918d22))
19
+
20
+ ### Features
21
+
22
+ - apply innovations learned during last 3 years ([#11](https://github.com/speclynx/apidom/issues/11)) ([cfdbbfc](https://github.com/speclynx/apidom/commit/cfdbbfc2721b0dadc77eeba31dd4e8768c078d22))
23
+
24
+ ### BREAKING CHANGES
25
+
26
+ - source maps have been completely rewritten
27
+ - breaking changes introduced to every package public API
28
+
6
29
  ## [1.12.2](https://github.com/speclynx/apidom/compare/v1.12.1...v1.12.2) (2025-12-23)
7
30
 
8
31
  **Note:** Version bump only for package @speclynx/apidom-ns-openapi-2
package/NOTICE CHANGED
@@ -5,11 +5,6 @@ This distribution includes modifications by SpecLynx.
5
5
  All such modifications are licensed under the Apache License, Version 2.0.
6
6
  A copy of the Apache 2.0 license can be found in `LICENSES/Apache-2.0.txt`.
7
7
 
8
- ApiDOM
9
- Copyright 2020 SmartBear Software Inc.
10
- ApiDOM is licensed under Apache 2.0 license.
11
- Copy of the Apache 2.0 license can be found in `LICENSES/Apache-2.0.txt` file.
12
-
13
8
  json-schema-ref-parser
14
9
  Copyright (c) 2015 James Messinger
15
10
  File packages/apidom-reference/src/util/url.ts (the file) was originally created under MIT license in https://github.com/APIDevTools/json-schema-ref-parser repository.
@@ -18,8 +13,8 @@ Copy of the MIT license can be found in `LICENSES/MIT.txt` file.
18
13
 
19
14
  graphql-js
20
15
  Copyright (c) GraphQL Contributors
21
- File packages/apidom-ast/src/traversal/visitor.ts (the file) was originally created under MIT license in https://github.com/graphql/graphql-js repository.
22
- The file has been copied into this project and modified. All modifications are licensed under Apache 2.0 License.
16
+ File packages/apidom-traverse/src/traversal.ts (the file) was originally inspired by https://github.com/graphql/graphql-js repository.
17
+ All modifications are licensed under Apache 2.0 License.
23
18
  Copy of the MIT license can be found in `LICENSES/MIT.txt` file.
24
19
 
25
20
  babel-plugin-add-import-extension
@@ -54,6 +49,20 @@ Copyright (c) 2012 James Halliday, Josh Duff, and other contributors
54
49
  Copy of the MIT license can be found in `LICENSES/MIT.txt` file.
55
50
  All modifications are licensed under Apache 2.0 License.
56
51
 
52
+ ApiDOM
53
+ Copyright 2020 SmartBear Software Inc.
54
+ ApiDOM is licensed under Apache 2.0 license.
55
+ Copy of the Apache 2.0 license can be found in `LICENSES/Apache-2.0.txt` file.
56
+
57
+ minim
58
+ Copyright (c) 2014 Stephen Mizell
59
+ The apidom-datamodel package contains code originally created under the MIT
60
+ License as part of the Minim project (https://github.com/refractproject/minim).
61
+ This code has been copied into this project and modified.
62
+ The original portions remain licensed under the MIT License. Our modifications
63
+ to that code are licensed under the Apache License 2.0.
64
+ Copy of the MIT license can be found in `LICENSES/MIT.txt` file.
65
+
57
66
  ---
58
67
 
59
68
  If the SPDX-FileCopyrightText and SPDX-License-Identifier tags are not present in the file,
package/README.md CHANGED
@@ -15,20 +15,21 @@ You can install this package via [npm CLI](https://docs.npmjs.com/cli) by runnin
15
15
  ## OpenAPI 2.0 namespace
16
16
 
17
17
  OpenAPI 2.0 namespace consists of [number of elements](https://github.com/speclynx/apidom/tree/main/packages/apidom-ns-openapi-2/src/elements) implemented on top
18
- of [primitive ones](https://github.com/refractproject/minim/tree/master/lib/primitives).
18
+ of [primitive ones](https://github.com/speclynx/apidom/tree/main/packages/apidom-datamodel/src/primitives).
19
19
 
20
20
  ```js
21
- import { createNamespace } from '@speclynx/apidom-core';
21
+ import { Namespace } from '@speclynx/apidom-datamodel';
22
22
  import openApi2Namespace from '@speclynx/apidom-ns-openapi-2';
23
23
 
24
- const namespace = createNamespace(openApi2Namespace);
24
+ const namespace = new Namespace();
25
+ namespace.use(openApi2Namespace);
25
26
 
26
27
  const objectElement = new namespace.elements.Object();
27
28
  const swaggerElement = new namespace.elements.Swagger();
28
29
  ```
29
30
 
30
- When namespace instance is created in this way, it will extend the base namespace
31
- with the namespace provided as an argument.
31
+ When a namespace instance is created in this way, calling `use()` with the namespace plugin
32
+ will extend the base namespace with the OpenAPI 2.0 elements.
32
33
 
33
34
  Elements from the namespace can also be used directly by importing them.
34
35
 
@@ -54,23 +55,24 @@ isSwaggerElement(swaggerElement); // => true
54
55
 
55
56
  ## Traversal
56
57
 
57
- Traversing ApiDOM in this namespace is possible by using `visit` function from `apidom` package.
58
- This package comes with its own [keyMap](https://github.com/speclynx/apidom/blob/main/packages/apidom-ns-openapi-2/src/traversal/visitor.ts#L11) and [nodeTypeGetter](https://github.com/speclynx/apidom/blob/main/packages/apidom-ns-openapi-2/src/traversal/visitor.ts#L4).
59
- To learn more about these `visit` configuration options please refer to [@speclynx/apidom-ast documentation](https://github.com/speclynx/apidom/blob/main/packages/apidom-ast/README.md#visit).
58
+ Traversing ApiDOM in this namespace is possible by using `traverse` function from `@speclynx/apidom-traverse` package.
59
+ `traverse` uses a Path-based visitor API where visitor methods receive a `Path` object,
60
+ and the actual element is accessed via `path.node`.
60
61
 
61
62
  ```js
62
- import { visit } from '@speclynx/apidom-core';
63
- import { SwaggerElement, keyMap, getNodeType } from '@speclynx/apidom-ns-openapi-2';
63
+ import { traverse } from '@speclynx/apidom-traverse';
64
+ import { SwaggerElement } from '@speclynx/apidom-ns-openapi-2';
64
65
 
65
66
  const element = new SwaggerElement();
66
67
 
67
68
  const visitor = {
68
- SwaggerElement(swaggerElement) {
69
+ SwaggerElement(path) {
70
+ const swaggerElement = path.node;
69
71
  console.dir(swaggerElement);
70
72
  },
71
73
  };
72
74
 
73
- visit(element, visitor, { keyMap, nodeTypeGetter: getNodeType });
75
+ traverse(element, visitor);
74
76
  ```
75
77
 
76
78
  ## Refractors
@@ -110,6 +112,8 @@ InfoElement.refract(objectElement); // => InfoElement({ title = 'my title', desc
110
112
  ### Refractor plugins
111
113
 
112
114
  Refractors can accept plugins as a second argument of refract static method.
115
+ Plugin visitors use the Path-based API where visitor methods receive a `Path` object,
116
+ and the actual element is accessed via `path.node`.
113
117
 
114
118
  ```js
115
119
  import { ObjectElement } from '@speclynx/apidom-core';
@@ -127,7 +131,8 @@ const plugin = ({ predicates, namespace }) => ({
127
131
  console.dir('runs before traversal');
128
132
  },
129
133
  visitor: {
130
- InfoElement(infoElement) {
134
+ InfoElement(path) {
135
+ const infoElement = path.node;
131
136
  infoElement.version = '2.0.0';
132
137
  },
133
138
  },