@speclynx/apidom-ns-openapi-2 1.12.2 → 2.0.1

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 +19 -0
  2. package/NOTICE +16 -7
  3. package/README.md +18 -13
  4. package/dist/apidom-ns-openapi-2.browser.js +9354 -13260
  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
@@ -1,4 +1,6 @@
1
- import { ArrayElement, ObjectElement, isStringElement, isElement, isMemberElement, isArrayElement, includesClasses, cloneDeep, toValue } from '@speclynx/apidom-core';
1
+ import { ArrayElement, ObjectElement, isStringElement, isElement, isMemberElement, isArrayElement, includesClasses, cloneDeep, SourceMapElement } from '@speclynx/apidom-datamodel';
2
+ import { toValue } from '@speclynx/apidom-core';
3
+ import { getNodeType } from '@speclynx/apidom-traverse';
2
4
 
3
5
  /**
4
6
  * OpenAPI 2.0 specification elements.
@@ -39,7 +41,6 @@ import SwaggerConsumesElement from "../../elements/nces/SwaggerConsumes.mjs";
39
41
  import SwaggerProducesElement from "../../elements/nces/SwaggerProduces.mjs";
40
42
  import SwaggerSecurityElement from "../../elements/nces/SwaggerSecurity.mjs";
41
43
  import SwaggerTagsElement from "../../elements/nces/SwaggerTags.mjs";
42
- import { getNodeType } from "../../traversal/visitor.mjs";
43
44
  /**
44
45
  * This plugin is specific to YAML 1.2 format, which allows defining key-value pairs
45
46
  * with empty key, empty value, or both. If the value is not provided in YAML format,
@@ -73,7 +74,7 @@ import { getNodeType } from "../../traversal/visitor.mjs";
73
74
  * (StringElement)
74
75
  * (InfoElement))
75
76
  */
76
- const isEmptyElement = element => isStringElement(element) && includesClasses(['yaml-e-node', 'yaml-e-scalar'], element);
77
+ const isEmptyElement = element => isStringElement(element) && includesClasses(element, ['yaml-e-node', 'yaml-e-scalar']);
77
78
  const schema = {
78
79
  // concrete types handling (CTs)
79
80
  SwaggerElement: {
@@ -325,9 +326,12 @@ const findElementFactory = (ancestor, keyName) => {
325
326
  */
326
327
  const plugin = () => () => ({
327
328
  visitor: {
328
- StringElement(element, key, parent, path, ancestors) {
329
- if (!isEmptyElement(element)) return undefined;
330
- const lineage = [...ancestors, parent].filter(isElement);
329
+ StringElement(path) {
330
+ const element = path.node;
331
+ if (!isEmptyElement(element)) return;
332
+
333
+ // getAncestorNodes() returns [parent, grandparent, ..., root], so reverse to get [root, ..., parent]
334
+ const lineage = path.getAncestorNodes().reverse().filter(isElement);
331
335
  const parentElement = lineage.at(-1);
332
336
  let elementFactory;
333
337
  let context;
@@ -340,10 +344,12 @@ const plugin = () => () => ({
340
344
  }
341
345
 
342
346
  // no element factory found
343
- if (typeof elementFactory !== 'function') return undefined;
344
- return elementFactory.call({
347
+ if (typeof elementFactory !== 'function') return;
348
+ const replacement = elementFactory.call({
345
349
  context
346
350
  }, undefined, cloneDeep(element.meta), cloneDeep(element.attributes));
351
+ SourceMapElement.transfer(element, replacement);
352
+ path.replaceWith(replacement);
347
353
  }
348
354
  }
349
355
  });
@@ -3,6 +3,7 @@
3
3
  exports.__esModule = true;
4
4
  exports.isSwaggerExtension = exports.isReferenceLikeElement = void 0;
5
5
  var _ramda = require("ramda");
6
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
6
7
  var _apidomCore = require("@speclynx/apidom-core");
7
8
  /**
8
9
  * @public
@@ -12,7 +13,7 @@ var _apidomCore = require("@speclynx/apidom-core");
12
13
  * @public
13
14
  */
14
15
  const isSwaggerExtension = element => {
15
- return (0, _apidomCore.isStringElement)(element.key) && (0, _ramda.startsWith)('x-', (0, _apidomCore.toValue)(element.key));
16
+ return (0, _apidomDatamodel.isStringElement)(element.key) && (0, _ramda.startsWith)('x-', (0, _apidomCore.toValue)(element.key));
16
17
  };
17
18
 
18
19
  /**
@@ -20,6 +21,6 @@ const isSwaggerExtension = element => {
20
21
  */
21
22
  exports.isSwaggerExtension = isSwaggerExtension;
22
23
  const isReferenceLikeElement = element => {
23
- return (0, _apidomCore.isObjectElement)(element) && element.hasKey('$ref');
24
+ return (0, _apidomDatamodel.isObjectElement)(element) && element.hasKey('$ref');
24
25
  };
25
26
  exports.isReferenceLikeElement = isReferenceLikeElement;
@@ -1,5 +1,6 @@
1
1
  import { startsWith } from 'ramda';
2
- import { isStringElement, toValue, isObjectElement } from '@speclynx/apidom-core';
2
+ import { isStringElement, isObjectElement } from '@speclynx/apidom-datamodel';
3
+ import { toValue } from '@speclynx/apidom-core';
3
4
 
4
5
  /**
5
6
  * @public
@@ -84,6 +84,7 @@ const specification = {
84
84
  // OpenAPI 2 specific visitors
85
85
  Swagger: {
86
86
  $visitor: _index.default,
87
+ element: 'swagger',
87
88
  fixedFields: {
88
89
  swagger: _SwaggerVisitor.default,
89
90
  info: {
@@ -118,6 +119,7 @@ const specification = {
118
119
  },
119
120
  Info: {
120
121
  $visitor: _index2.default,
122
+ element: 'info',
121
123
  fixedFields: {
122
124
  title: {
123
125
  $ref: '#/visitors/value'
@@ -139,6 +141,7 @@ const specification = {
139
141
  },
140
142
  Contact: {
141
143
  $visitor: _index3.default,
144
+ element: 'contact',
142
145
  fixedFields: {
143
146
  name: {
144
147
  $ref: '#/visitors/value'
@@ -153,6 +156,7 @@ const specification = {
153
156
  },
154
157
  License: {
155
158
  $visitor: _index4.default,
159
+ element: 'license',
156
160
  fixedFields: {
157
161
  name: {
158
162
  $ref: '#/visitors/value'
@@ -163,10 +167,12 @@ const specification = {
163
167
  }
164
168
  },
165
169
  Paths: {
166
- $visitor: _index5.default
170
+ $visitor: _index5.default,
171
+ element: 'paths'
167
172
  },
168
173
  PathItem: {
169
174
  $visitor: _index6.default,
175
+ element: 'pathItem',
170
176
  fixedFields: {
171
177
  $ref: _$RefVisitor.default,
172
178
  get: {
@@ -195,6 +201,7 @@ const specification = {
195
201
  },
196
202
  Operation: {
197
203
  $visitor: _index7.default,
204
+ element: 'operation',
198
205
  fixedFields: {
199
206
  tags: _TagsVisitor2.default,
200
207
  summary: {
@@ -224,6 +231,7 @@ const specification = {
224
231
  },
225
232
  ExternalDocumentation: {
226
233
  $visitor: _index8.default,
234
+ element: 'externalDocumentation',
227
235
  fixedFields: {
228
236
  description: {
229
237
  $ref: '#/visitors/value'
@@ -235,6 +243,7 @@ const specification = {
235
243
  },
236
244
  Parameter: {
237
245
  $visitor: _index9.default,
246
+ element: 'parameter',
238
247
  fixedFields: {
239
248
  name: {
240
249
  $ref: '#/visitors/value'
@@ -248,7 +257,8 @@ const specification = {
248
257
  type: jsonSchemaFixedFields.type,
249
258
  format: jsonSchemaFixedFields.format,
250
259
  items: {
251
- $ref: '#/visitors/document/objects/Items'
260
+ $visitor: _index0.default,
261
+ alias: 'itemsField'
252
262
  },
253
263
  collectionFormat: {
254
264
  $ref: '#/visitors/value'
@@ -270,11 +280,13 @@ const specification = {
270
280
  },
271
281
  Items: {
272
282
  $visitor: _index0.default,
283
+ element: 'items',
273
284
  fixedFields: {
274
285
  type: jsonSchemaFixedFields.type,
275
286
  format: jsonSchemaFixedFields.format,
276
287
  items: {
277
- $ref: '#/visitors/document/objects/Items'
288
+ $visitor: _index0.default,
289
+ alias: 'itemsField'
278
290
  },
279
291
  collectionFormat: {
280
292
  $ref: '#/visitors/value'
@@ -296,12 +308,14 @@ const specification = {
296
308
  },
297
309
  Responses: {
298
310
  $visitor: _index1.default,
311
+ element: 'responses',
299
312
  fixedFields: {
300
313
  default: _DefaultVisitor.default
301
314
  }
302
315
  },
303
316
  Response: {
304
317
  $visitor: _index10.default,
318
+ element: 'response',
305
319
  fixedFields: {
306
320
  description: {
307
321
  $ref: '#/visitors/value'
@@ -316,19 +330,23 @@ const specification = {
316
330
  }
317
331
  },
318
332
  Headers: {
319
- $visitor: _index11.default
333
+ $visitor: _index11.default,
334
+ element: 'headers'
320
335
  },
321
336
  Example: {
322
- $visitor: _index12.default
337
+ $visitor: _index12.default,
338
+ element: 'example'
323
339
  },
324
340
  Header: {
325
341
  $visitor: _index13.default,
342
+ element: 'header',
326
343
  fixedFields: {
327
344
  description: jsonSchemaFixedFields.description,
328
345
  type: jsonSchemaFixedFields.type,
329
346
  format: jsonSchemaFixedFields.format,
330
347
  items: {
331
- $ref: '#/visitors/document/objects/Items'
348
+ $visitor: _index0.default,
349
+ alias: 'itemsField'
332
350
  },
333
351
  collectionFormat: {
334
352
  $ref: '#/visitors/value'
@@ -350,6 +368,7 @@ const specification = {
350
368
  },
351
369
  Tag: {
352
370
  $visitor: _index14.default,
371
+ element: 'tag',
353
372
  fixedFields: {
354
373
  name: {
355
374
  $ref: '#/visitors/value'
@@ -364,12 +383,14 @@ const specification = {
364
383
  },
365
384
  Reference: {
366
385
  $visitor: _index15.default,
386
+ element: 'reference',
367
387
  fixedFields: {
368
388
  $ref: _$RefVisitor2.default
369
389
  }
370
390
  },
371
391
  Schema: {
372
392
  $visitor: _index16.default,
393
+ element: 'schema',
373
394
  fixedFields: {
374
395
  // the following properties are taken directly from the JSON Schema definition and follow the same specifications
375
396
  format: jsonSchemaFixedFields.format,
@@ -415,6 +436,7 @@ const specification = {
415
436
  },
416
437
  XML: {
417
438
  $visitor: _index17.default,
439
+ element: 'xml',
418
440
  fixedFields: {
419
441
  name: {
420
442
  $ref: '#/visitors/value'
@@ -434,19 +456,24 @@ const specification = {
434
456
  }
435
457
  },
436
458
  Definitions: {
437
- $visitor: _index18.default
459
+ $visitor: _index18.default,
460
+ element: 'definitions'
438
461
  },
439
462
  ParametersDefinitions: {
440
- $visitor: _index20.default
463
+ $visitor: _index20.default,
464
+ element: 'parametersDefinitions'
441
465
  },
442
466
  ResponsesDefinitions: {
443
- $visitor: _index19.default
467
+ $visitor: _index19.default,
468
+ element: 'responsesDefinitions'
444
469
  },
445
470
  SecurityDefinitions: {
446
- $visitor: _index21.default
471
+ $visitor: _index21.default,
472
+ element: 'securityDefinitions'
447
473
  },
448
474
  SecurityScheme: {
449
475
  $visitor: _index22.default,
476
+ element: 'securityScheme',
450
477
  fixedFields: {
451
478
  type: {
452
479
  $ref: '#/visitors/value'
@@ -475,10 +502,12 @@ const specification = {
475
502
  }
476
503
  },
477
504
  Scopes: {
478
- $visitor: _index23.default
505
+ $visitor: _index23.default,
506
+ element: 'scopes'
479
507
  },
480
508
  SecurityRequirement: {
481
- $visitor: _index24.default
509
+ $visitor: _index24.default,
510
+ element: 'securityRequirement'
482
511
  }
483
512
  },
484
513
  extension: {
@@ -78,6 +78,7 @@ const specification = {
78
78
  // OpenAPI 2 specific visitors
79
79
  Swagger: {
80
80
  $visitor: SwaggerVisitor,
81
+ element: 'swagger',
81
82
  fixedFields: {
82
83
  swagger: SwaggerSwaggerVisitor,
83
84
  info: {
@@ -112,6 +113,7 @@ const specification = {
112
113
  },
113
114
  Info: {
114
115
  $visitor: InfoVisitor,
116
+ element: 'info',
115
117
  fixedFields: {
116
118
  title: {
117
119
  $ref: '#/visitors/value'
@@ -133,6 +135,7 @@ const specification = {
133
135
  },
134
136
  Contact: {
135
137
  $visitor: ContactVisitor,
138
+ element: 'contact',
136
139
  fixedFields: {
137
140
  name: {
138
141
  $ref: '#/visitors/value'
@@ -147,6 +150,7 @@ const specification = {
147
150
  },
148
151
  License: {
149
152
  $visitor: LicenseVisitor,
153
+ element: 'license',
150
154
  fixedFields: {
151
155
  name: {
152
156
  $ref: '#/visitors/value'
@@ -157,10 +161,12 @@ const specification = {
157
161
  }
158
162
  },
159
163
  Paths: {
160
- $visitor: PathsVisitor
164
+ $visitor: PathsVisitor,
165
+ element: 'paths'
161
166
  },
162
167
  PathItem: {
163
168
  $visitor: PathItemVisitor,
169
+ element: 'pathItem',
164
170
  fixedFields: {
165
171
  $ref: PathItem$RefVisitor,
166
172
  get: {
@@ -189,6 +195,7 @@ const specification = {
189
195
  },
190
196
  Operation: {
191
197
  $visitor: OperationVisitor,
198
+ element: 'operation',
192
199
  fixedFields: {
193
200
  tags: OperationTagsVisitor,
194
201
  summary: {
@@ -218,6 +225,7 @@ const specification = {
218
225
  },
219
226
  ExternalDocumentation: {
220
227
  $visitor: ExternalDocumentationElement,
228
+ element: 'externalDocumentation',
221
229
  fixedFields: {
222
230
  description: {
223
231
  $ref: '#/visitors/value'
@@ -229,6 +237,7 @@ const specification = {
229
237
  },
230
238
  Parameter: {
231
239
  $visitor: ParameterVisitor,
240
+ element: 'parameter',
232
241
  fixedFields: {
233
242
  name: {
234
243
  $ref: '#/visitors/value'
@@ -242,7 +251,8 @@ const specification = {
242
251
  type: jsonSchemaFixedFields.type,
243
252
  format: jsonSchemaFixedFields.format,
244
253
  items: {
245
- $ref: '#/visitors/document/objects/Items'
254
+ $visitor: ItemsVisitor,
255
+ alias: 'itemsField'
246
256
  },
247
257
  collectionFormat: {
248
258
  $ref: '#/visitors/value'
@@ -264,11 +274,13 @@ const specification = {
264
274
  },
265
275
  Items: {
266
276
  $visitor: ItemsVisitor,
277
+ element: 'items',
267
278
  fixedFields: {
268
279
  type: jsonSchemaFixedFields.type,
269
280
  format: jsonSchemaFixedFields.format,
270
281
  items: {
271
- $ref: '#/visitors/document/objects/Items'
282
+ $visitor: ItemsVisitor,
283
+ alias: 'itemsField'
272
284
  },
273
285
  collectionFormat: {
274
286
  $ref: '#/visitors/value'
@@ -290,12 +302,14 @@ const specification = {
290
302
  },
291
303
  Responses: {
292
304
  $visitor: ResponsesVisitor,
305
+ element: 'responses',
293
306
  fixedFields: {
294
307
  default: ResponsesDefaultVisitor
295
308
  }
296
309
  },
297
310
  Response: {
298
311
  $visitor: ResponseVisitor,
312
+ element: 'response',
299
313
  fixedFields: {
300
314
  description: {
301
315
  $ref: '#/visitors/value'
@@ -310,19 +324,23 @@ const specification = {
310
324
  }
311
325
  },
312
326
  Headers: {
313
- $visitor: HeadersVisitor
327
+ $visitor: HeadersVisitor,
328
+ element: 'headers'
314
329
  },
315
330
  Example: {
316
- $visitor: ExampleVisitor
331
+ $visitor: ExampleVisitor,
332
+ element: 'example'
317
333
  },
318
334
  Header: {
319
335
  $visitor: HeaderVisitor,
336
+ element: 'header',
320
337
  fixedFields: {
321
338
  description: jsonSchemaFixedFields.description,
322
339
  type: jsonSchemaFixedFields.type,
323
340
  format: jsonSchemaFixedFields.format,
324
341
  items: {
325
- $ref: '#/visitors/document/objects/Items'
342
+ $visitor: ItemsVisitor,
343
+ alias: 'itemsField'
326
344
  },
327
345
  collectionFormat: {
328
346
  $ref: '#/visitors/value'
@@ -344,6 +362,7 @@ const specification = {
344
362
  },
345
363
  Tag: {
346
364
  $visitor: TagVisitor,
365
+ element: 'tag',
347
366
  fixedFields: {
348
367
  name: {
349
368
  $ref: '#/visitors/value'
@@ -358,12 +377,14 @@ const specification = {
358
377
  },
359
378
  Reference: {
360
379
  $visitor: ReferenceVisitor,
380
+ element: 'reference',
361
381
  fixedFields: {
362
382
  $ref: Reference$RefVisitor
363
383
  }
364
384
  },
365
385
  Schema: {
366
386
  $visitor: SchemaVisitor,
387
+ element: 'schema',
367
388
  fixedFields: {
368
389
  // the following properties are taken directly from the JSON Schema definition and follow the same specifications
369
390
  format: jsonSchemaFixedFields.format,
@@ -409,6 +430,7 @@ const specification = {
409
430
  },
410
431
  XML: {
411
432
  $visitor: XmlVisitor,
433
+ element: 'xml',
412
434
  fixedFields: {
413
435
  name: {
414
436
  $ref: '#/visitors/value'
@@ -428,19 +450,24 @@ const specification = {
428
450
  }
429
451
  },
430
452
  Definitions: {
431
- $visitor: DefinitionsVisitor
453
+ $visitor: DefinitionsVisitor,
454
+ element: 'definitions'
432
455
  },
433
456
  ParametersDefinitions: {
434
- $visitor: ParametersDefinitionsVisitor
457
+ $visitor: ParametersDefinitionsVisitor,
458
+ element: 'parametersDefinitions'
435
459
  },
436
460
  ResponsesDefinitions: {
437
- $visitor: ResponsesDefinitionsVisitor
461
+ $visitor: ResponsesDefinitionsVisitor,
462
+ element: 'responsesDefinitions'
438
463
  },
439
464
  SecurityDefinitions: {
440
- $visitor: SecurityDefinitionsVisitor
465
+ $visitor: SecurityDefinitionsVisitor,
466
+ element: 'securityDefinitions'
441
467
  },
442
468
  SecurityScheme: {
443
469
  $visitor: SecuritySchemeVisitor,
470
+ element: 'securityScheme',
444
471
  fixedFields: {
445
472
  type: {
446
473
  $ref: '#/visitors/value'
@@ -469,10 +496,12 @@ const specification = {
469
496
  }
470
497
  },
471
498
  Scopes: {
472
- $visitor: ScopesVisitor
499
+ $visitor: ScopesVisitor,
500
+ element: 'scopes'
473
501
  },
474
502
  SecurityRequirement: {
475
- $visitor: SecurityRequirementVisitor
503
+ $visitor: SecurityRequirementVisitor,
504
+ element: 'securityRequirement'
476
505
  }
477
506
  },
478
507
  extension: {
@@ -4,17 +4,22 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
4
4
  var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
5
5
  exports.__esModule = true;
6
6
  exports.default = void 0;
7
- var _apidomCore = require("@speclynx/apidom-core");
7
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
8
8
  var openApi2Predicates = _interopRequireWildcard(require("../predicates.cjs"));
9
9
  var refractorPredicates = _interopRequireWildcard(require("./predicates.cjs"));
10
10
  var _namespace = _interopRequireDefault(require("../namespace.cjs"));
11
+ /**
12
+ * @public
13
+ */
14
+
11
15
  const createToolbox = () => {
12
- const namespace = (0, _apidomCore.createNamespace)(_namespace.default);
16
+ const namespace = new _apidomDatamodel.Namespace();
13
17
  const predicates = {
14
18
  ...refractorPredicates,
15
19
  ...openApi2Predicates,
16
- isStringElement: _apidomCore.isStringElement
20
+ isStringElement: _apidomDatamodel.isStringElement
17
21
  };
22
+ namespace.use(_namespace.default);
18
23
  return {
19
24
  predicates,
20
25
  namespace
@@ -1,14 +1,18 @@
1
- import { createNamespace, isStringElement } from '@speclynx/apidom-core';
1
+ import { isStringElement, Namespace } from '@speclynx/apidom-datamodel';
2
2
  import * as openApi2Predicates from "../predicates.mjs";
3
3
  import * as refractorPredicates from "./predicates.mjs";
4
4
  import openApi2Namespace from "../namespace.mjs";
5
+ /**
6
+ * @public
7
+ */
5
8
  const createToolbox = () => {
6
- const namespace = createNamespace(openApi2Namespace);
9
+ const namespace = new Namespace();
7
10
  const predicates = {
8
11
  ...refractorPredicates,
9
12
  ...openApi2Predicates,
10
13
  isStringElement
11
14
  };
15
+ namespace.use(openApi2Namespace);
12
16
  return {
13
17
  predicates,
14
18
  namespace
@@ -3,7 +3,7 @@
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
4
  exports.__esModule = true;
5
5
  exports.default = void 0;
6
- var _apidomCore = require("@speclynx/apidom-core");
6
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
7
7
  var _Visitor = _interopRequireDefault(require("./Visitor.cjs"));
8
8
  /**
9
9
  * This visitor is responsible for falling back to current traversed element
@@ -16,9 +16,9 @@ var _Visitor = _interopRequireDefault(require("./Visitor.cjs"));
16
16
  * @public
17
17
  */
18
18
  class FallbackVisitor extends _Visitor.default {
19
- enter(element) {
20
- this.element = (0, _apidomCore.cloneDeep)(element);
21
- return _apidomCore.BREAK;
19
+ enter(path) {
20
+ this.element = (0, _apidomDatamodel.cloneDeep)(path.node);
21
+ path.stop();
22
22
  }
23
23
  }
24
24
  var _default = exports.default = FallbackVisitor;
@@ -1,4 +1,4 @@
1
- import { BREAK, cloneDeep } from '@speclynx/apidom-core';
1
+ import { cloneDeep } from '@speclynx/apidom-datamodel';
2
2
  import Visitor from "./Visitor.mjs";
3
3
  /**
4
4
  * This visitor is responsible for falling back to current traversed element
@@ -10,9 +10,9 @@ import Visitor from "./Visitor.mjs";
10
10
  * @public
11
11
  */
12
12
  class FallbackVisitor extends Visitor {
13
- enter(element) {
14
- this.element = cloneDeep(element);
15
- return BREAK;
13
+ enter(path) {
14
+ this.element = cloneDeep(path.node);
15
+ path.stop();
16
16
  }
17
17
  }
18
18
  export default FallbackVisitor;
@@ -3,16 +3,16 @@
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
4
  exports.__esModule = true;
5
5
  exports.default = void 0;
6
- var _apidomCore = require("@speclynx/apidom-core");
6
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
7
7
  var _SpecificationVisitor = _interopRequireDefault(require("./SpecificationVisitor.cjs"));
8
8
  /**
9
9
  * @public
10
10
  */
11
11
  class SpecificationExtensionVisitor extends _SpecificationVisitor.default {
12
- MemberElement(memberElement) {
13
- this.element = (0, _apidomCore.cloneDeep)(memberElement);
12
+ MemberElement(path) {
13
+ this.element = (0, _apidomDatamodel.cloneDeep)(path.node);
14
14
  this.element.classes.push('specification-extension');
15
- return _apidomCore.BREAK;
15
+ path.stop();
16
16
  }
17
17
  }
18
18
  var _default = exports.default = SpecificationExtensionVisitor;
@@ -1,13 +1,13 @@
1
- import { BREAK, cloneDeep } from '@speclynx/apidom-core';
1
+ import { cloneDeep } from '@speclynx/apidom-datamodel';
2
2
  import SpecificationVisitor from "./SpecificationVisitor.mjs";
3
3
  /**
4
4
  * @public
5
5
  */
6
6
  class SpecificationExtensionVisitor extends SpecificationVisitor {
7
- MemberElement(memberElement) {
8
- this.element = cloneDeep(memberElement);
7
+ MemberElement(path) {
8
+ this.element = cloneDeep(path.node);
9
9
  this.element.classes.push('specification-extension');
10
- return BREAK;
10
+ path.stop();
11
11
  }
12
12
  }
13
13
  export default SpecificationExtensionVisitor;
@@ -5,7 +5,8 @@ exports.__esModule = true;
5
5
  exports.default = void 0;
6
6
  var _ramda = require("ramda");
7
7
  var _ramdaAdjunct = require("ramda-adjunct");
8
- var _apidomCore = require("@speclynx/apidom-core");
8
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
9
+ var _apidomTraverse = require("@speclynx/apidom-traverse");
9
10
  var _Visitor = _interopRequireDefault(require("./Visitor.cjs"));
10
11
  var _FallbackVisitor = _interopRequireDefault(require("./FallbackVisitor.cjs"));
11
12
  /**
@@ -65,9 +66,9 @@ class SpecificationVisitor extends _Visitor.default {
65
66
  */
66
67
  const visitor = this.retrieveVisitorInstance(specPath, options);
67
68
  if (visitor instanceof _FallbackVisitor.default && visitor?.constructor === _FallbackVisitor.default) {
68
- return (0, _apidomCore.cloneDeep)(element);
69
+ return (0, _apidomDatamodel.cloneDeep)(element);
69
70
  }
70
- (0, _apidomCore.visit)(element, visitor, options);
71
+ (0, _apidomTraverse.traverse)(element, visitor);
71
72
  return visitor.element;
72
73
  }
73
74
  }
@@ -1,6 +1,7 @@
1
1
  import { pathSatisfies, path, pick } from 'ramda';
2
2
  import { isFunction } from 'ramda-adjunct';
3
- import { visit, cloneDeep } from '@speclynx/apidom-core';
3
+ import { cloneDeep } from '@speclynx/apidom-datamodel';
4
+ import { traverse } from '@speclynx/apidom-traverse';
4
5
  import Visitor from "./Visitor.mjs";
5
6
  import FallbackVisitor from "./FallbackVisitor.mjs";
6
7
  /**
@@ -61,7 +62,7 @@ class SpecificationVisitor extends Visitor {
61
62
  if (visitor instanceof FallbackVisitor && visitor?.constructor === FallbackVisitor) {
62
63
  return cloneDeep(element);
63
64
  }
64
- visit(element, visitor, options);
65
+ traverse(element, visitor);
65
66
  return visitor.element;
66
67
  }
67
68
  }