@speclynx/apidom-ns-openapi-2 1.12.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 (228) hide show
  1. package/CHANGELOG.md +84 -0
  2. package/LICENSE +202 -0
  3. package/LICENSES/AFL-3.0.txt +182 -0
  4. package/LICENSES/Apache-2.0.txt +202 -0
  5. package/LICENSES/BSD-3-Clause.txt +26 -0
  6. package/LICENSES/MIT.txt +9 -0
  7. package/NOTICE +65 -0
  8. package/README.md +215 -0
  9. package/dist/apidom-ns-openapi-2.browser.js +23072 -0
  10. package/dist/apidom-ns-openapi-2.browser.min.js +1 -0
  11. package/package.json +65 -0
  12. package/src/elements/Contact.cjs +33 -0
  13. package/src/elements/Contact.mjs +30 -0
  14. package/src/elements/Definitions.cjs +15 -0
  15. package/src/elements/Definitions.mjs +12 -0
  16. package/src/elements/Example.cjs +15 -0
  17. package/src/elements/Example.mjs +12 -0
  18. package/src/elements/ExternalDocumentation.cjs +27 -0
  19. package/src/elements/ExternalDocumentation.mjs +24 -0
  20. package/src/elements/Header.cjs +185 -0
  21. package/src/elements/Header.mjs +182 -0
  22. package/src/elements/Headers.cjs +15 -0
  23. package/src/elements/Headers.mjs +12 -0
  24. package/src/elements/Info.cjs +52 -0
  25. package/src/elements/Info.mjs +48 -0
  26. package/src/elements/Items.cjs +190 -0
  27. package/src/elements/Items.mjs +187 -0
  28. package/src/elements/License.cjs +27 -0
  29. package/src/elements/License.mjs +24 -0
  30. package/src/elements/Operation.cjs +78 -0
  31. package/src/elements/Operation.mjs +74 -0
  32. package/src/elements/Parameter.cjs +230 -0
  33. package/src/elements/Parameter.mjs +226 -0
  34. package/src/elements/ParametersDefinitions.cjs +15 -0
  35. package/src/elements/ParametersDefinitions.mjs +12 -0
  36. package/src/elements/PathItem.cjs +69 -0
  37. package/src/elements/PathItem.mjs +65 -0
  38. package/src/elements/Paths.cjs +15 -0
  39. package/src/elements/Paths.mjs +12 -0
  40. package/src/elements/Reference.cjs +22 -0
  41. package/src/elements/Reference.mjs +19 -0
  42. package/src/elements/Response.cjs +39 -0
  43. package/src/elements/Response.mjs +35 -0
  44. package/src/elements/Responses.cjs +21 -0
  45. package/src/elements/Responses.mjs +17 -0
  46. package/src/elements/ResponsesDefinitions.cjs +15 -0
  47. package/src/elements/ResponsesDefinitions.mjs +12 -0
  48. package/src/elements/Schema.cjs +116 -0
  49. package/src/elements/Schema.mjs +113 -0
  50. package/src/elements/Scopes.cjs +15 -0
  51. package/src/elements/Scopes.mjs +12 -0
  52. package/src/elements/SecurityDefinitions.cjs +15 -0
  53. package/src/elements/SecurityDefinitions.mjs +12 -0
  54. package/src/elements/SecurityRequirement.cjs +15 -0
  55. package/src/elements/SecurityRequirement.mjs +12 -0
  56. package/src/elements/SecurityScheme.cjs +63 -0
  57. package/src/elements/SecurityScheme.mjs +60 -0
  58. package/src/elements/Swagger.cjs +106 -0
  59. package/src/elements/Swagger.mjs +102 -0
  60. package/src/elements/SwaggerVersion.cjs +17 -0
  61. package/src/elements/SwaggerVersion.mjs +14 -0
  62. package/src/elements/Tag.cjs +33 -0
  63. package/src/elements/Tag.mjs +29 -0
  64. package/src/elements/Xml.cjs +45 -0
  65. package/src/elements/Xml.mjs +42 -0
  66. package/src/elements/nces/OperationConsumes.cjs +16 -0
  67. package/src/elements/nces/OperationConsumes.mjs +13 -0
  68. package/src/elements/nces/OperationParameters.cjs +17 -0
  69. package/src/elements/nces/OperationParameters.mjs +14 -0
  70. package/src/elements/nces/OperationProduces.cjs +16 -0
  71. package/src/elements/nces/OperationProduces.mjs +13 -0
  72. package/src/elements/nces/OperationSchemes.cjs +16 -0
  73. package/src/elements/nces/OperationSchemes.mjs +13 -0
  74. package/src/elements/nces/OperationSecurity.cjs +17 -0
  75. package/src/elements/nces/OperationSecurity.mjs +14 -0
  76. package/src/elements/nces/OperationTags.cjs +17 -0
  77. package/src/elements/nces/OperationTags.mjs +14 -0
  78. package/src/elements/nces/PathItemParameters.cjs +17 -0
  79. package/src/elements/nces/PathItemParameters.mjs +14 -0
  80. package/src/elements/nces/SwaggerConsumes.cjs +16 -0
  81. package/src/elements/nces/SwaggerConsumes.mjs +13 -0
  82. package/src/elements/nces/SwaggerProduces.cjs +16 -0
  83. package/src/elements/nces/SwaggerProduces.mjs +13 -0
  84. package/src/elements/nces/SwaggerSchemes.cjs +16 -0
  85. package/src/elements/nces/SwaggerSchemes.mjs +13 -0
  86. package/src/elements/nces/SwaggerSecurity.cjs +17 -0
  87. package/src/elements/nces/SwaggerSecurity.mjs +14 -0
  88. package/src/elements/nces/SwaggerTags.cjs +16 -0
  89. package/src/elements/nces/SwaggerTags.mjs +13 -0
  90. package/src/index.cjs +135 -0
  91. package/src/index.mjs +31 -0
  92. package/src/media-types.cjs +34 -0
  93. package/src/media-types.mjs +30 -0
  94. package/src/namespace.cjs +71 -0
  95. package/src/namespace.mjs +66 -0
  96. package/src/predicates.cjs +329 -0
  97. package/src/predicates.mjs +324 -0
  98. package/src/refractor/index.cjs +52 -0
  99. package/src/refractor/index.mjs +46 -0
  100. package/src/refractor/plugins/replace-empty-element.cjs +358 -0
  101. package/src/refractor/plugins/replace-empty-element.mjs +350 -0
  102. package/src/refractor/predicates.cjs +25 -0
  103. package/src/refractor/predicates.mjs +20 -0
  104. package/src/refractor/registration.cjs +87 -0
  105. package/src/refractor/registration.mjs +56 -0
  106. package/src/refractor/specification.cjs +490 -0
  107. package/src/refractor/specification.mjs +484 -0
  108. package/src/refractor/toolbox.cjs +23 -0
  109. package/src/refractor/toolbox.mjs +17 -0
  110. package/src/refractor/visitors/FallbackVisitor.cjs +24 -0
  111. package/src/refractor/visitors/FallbackVisitor.mjs +18 -0
  112. package/src/refractor/visitors/SpecificationExtensionVisitor.cjs +18 -0
  113. package/src/refractor/visitors/SpecificationExtensionVisitor.mjs +13 -0
  114. package/src/refractor/visitors/SpecificationVisitor.cjs +74 -0
  115. package/src/refractor/visitors/SpecificationVisitor.mjs +68 -0
  116. package/src/refractor/visitors/Visitor.cjs +31 -0
  117. package/src/refractor/visitors/Visitor.mjs +28 -0
  118. package/src/refractor/visitors/generics/AlternatingVisitor.cjs +42 -0
  119. package/src/refractor/visitors/generics/AlternatingVisitor.mjs +35 -0
  120. package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +67 -0
  121. package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +60 -0
  122. package/src/refractor/visitors/generics/MapVisitor.cjs +21 -0
  123. package/src/refractor/visitors/generics/MapVisitor.mjs +15 -0
  124. package/src/refractor/visitors/generics/MixedFieldsVisitor.cjs +60 -0
  125. package/src/refractor/visitors/generics/MixedFieldsVisitor.mjs +54 -0
  126. package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +67 -0
  127. package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +61 -0
  128. package/src/refractor/visitors/open-api-2/BasePathVisitor.cjs +17 -0
  129. package/src/refractor/visitors/open-api-2/BasePathVisitor.mjs +12 -0
  130. package/src/refractor/visitors/open-api-2/ConsumesVisitor.cjs +22 -0
  131. package/src/refractor/visitors/open-api-2/ConsumesVisitor.mjs +17 -0
  132. package/src/refractor/visitors/open-api-2/HostVisitor.cjs +17 -0
  133. package/src/refractor/visitors/open-api-2/HostVisitor.mjs +12 -0
  134. package/src/refractor/visitors/open-api-2/ProducesVisitor.cjs +22 -0
  135. package/src/refractor/visitors/open-api-2/ProducesVisitor.mjs +17 -0
  136. package/src/refractor/visitors/open-api-2/SchemesVisitor.cjs +22 -0
  137. package/src/refractor/visitors/open-api-2/SchemesVisitor.mjs +17 -0
  138. package/src/refractor/visitors/open-api-2/SecurityVisitor.cjs +33 -0
  139. package/src/refractor/visitors/open-api-2/SecurityVisitor.mjs +27 -0
  140. package/src/refractor/visitors/open-api-2/SwaggerVisitor.cjs +26 -0
  141. package/src/refractor/visitors/open-api-2/SwaggerVisitor.mjs +20 -0
  142. package/src/refractor/visitors/open-api-2/TagsVisitor.cjs +33 -0
  143. package/src/refractor/visitors/open-api-2/TagsVisitor.mjs +27 -0
  144. package/src/refractor/visitors/open-api-2/contact/index.cjs +26 -0
  145. package/src/refractor/visitors/open-api-2/contact/index.mjs +20 -0
  146. package/src/refractor/visitors/open-api-2/definitions/index.cjs +38 -0
  147. package/src/refractor/visitors/open-api-2/definitions/index.mjs +32 -0
  148. package/src/refractor/visitors/open-api-2/example/index.cjs +26 -0
  149. package/src/refractor/visitors/open-api-2/example/index.mjs +20 -0
  150. package/src/refractor/visitors/open-api-2/external-documentation/index.cjs +26 -0
  151. package/src/refractor/visitors/open-api-2/external-documentation/index.mjs +20 -0
  152. package/src/refractor/visitors/open-api-2/header/index.cjs +26 -0
  153. package/src/refractor/visitors/open-api-2/header/index.mjs +20 -0
  154. package/src/refractor/visitors/open-api-2/headers/index.cjs +26 -0
  155. package/src/refractor/visitors/open-api-2/headers/index.mjs +20 -0
  156. package/src/refractor/visitors/open-api-2/index.cjs +26 -0
  157. package/src/refractor/visitors/open-api-2/index.mjs +20 -0
  158. package/src/refractor/visitors/open-api-2/info/VersionVisitor.cjs +18 -0
  159. package/src/refractor/visitors/open-api-2/info/VersionVisitor.mjs +13 -0
  160. package/src/refractor/visitors/open-api-2/info/index.cjs +26 -0
  161. package/src/refractor/visitors/open-api-2/info/index.mjs +20 -0
  162. package/src/refractor/visitors/open-api-2/items/index.cjs +28 -0
  163. package/src/refractor/visitors/open-api-2/items/index.mjs +22 -0
  164. package/src/refractor/visitors/open-api-2/license/index.cjs +26 -0
  165. package/src/refractor/visitors/open-api-2/license/index.mjs +20 -0
  166. package/src/refractor/visitors/open-api-2/operation/ConsumesVisitor.cjs +22 -0
  167. package/src/refractor/visitors/open-api-2/operation/ConsumesVisitor.mjs +17 -0
  168. package/src/refractor/visitors/open-api-2/operation/ParametersVisitor.cjs +38 -0
  169. package/src/refractor/visitors/open-api-2/operation/ParametersVisitor.mjs +32 -0
  170. package/src/refractor/visitors/open-api-2/operation/ProducesVisitor.cjs +22 -0
  171. package/src/refractor/visitors/open-api-2/operation/ProducesVisitor.mjs +17 -0
  172. package/src/refractor/visitors/open-api-2/operation/SchemesVisitor.cjs +22 -0
  173. package/src/refractor/visitors/open-api-2/operation/SchemesVisitor.mjs +17 -0
  174. package/src/refractor/visitors/open-api-2/operation/SecurityVisitor.cjs +33 -0
  175. package/src/refractor/visitors/open-api-2/operation/SecurityVisitor.mjs +27 -0
  176. package/src/refractor/visitors/open-api-2/operation/TagsVisitor.cjs +22 -0
  177. package/src/refractor/visitors/open-api-2/operation/TagsVisitor.mjs +17 -0
  178. package/src/refractor/visitors/open-api-2/operation/index.cjs +25 -0
  179. package/src/refractor/visitors/open-api-2/operation/index.mjs +19 -0
  180. package/src/refractor/visitors/open-api-2/parameter/index.cjs +26 -0
  181. package/src/refractor/visitors/open-api-2/parameter/index.mjs +20 -0
  182. package/src/refractor/visitors/open-api-2/parameters-definitions/index.cjs +25 -0
  183. package/src/refractor/visitors/open-api-2/parameters-definitions/index.mjs +19 -0
  184. package/src/refractor/visitors/open-api-2/path-item/$RefVisitor.cjs +17 -0
  185. package/src/refractor/visitors/open-api-2/path-item/$RefVisitor.mjs +12 -0
  186. package/src/refractor/visitors/open-api-2/path-item/ParametersVisitor.cjs +38 -0
  187. package/src/refractor/visitors/open-api-2/path-item/ParametersVisitor.mjs +32 -0
  188. package/src/refractor/visitors/open-api-2/path-item/index.cjs +45 -0
  189. package/src/refractor/visitors/open-api-2/path-item/index.mjs +39 -0
  190. package/src/refractor/visitors/open-api-2/paths/index.cjs +43 -0
  191. package/src/refractor/visitors/open-api-2/paths/index.mjs +37 -0
  192. package/src/refractor/visitors/open-api-2/reference/$RefVisitor.cjs +17 -0
  193. package/src/refractor/visitors/open-api-2/reference/$RefVisitor.mjs +12 -0
  194. package/src/refractor/visitors/open-api-2/reference/index.cjs +36 -0
  195. package/src/refractor/visitors/open-api-2/reference/index.mjs +30 -0
  196. package/src/refractor/visitors/open-api-2/response/index.cjs +26 -0
  197. package/src/refractor/visitors/open-api-2/response/index.mjs +20 -0
  198. package/src/refractor/visitors/open-api-2/responses/DefaultVisitor.cjs +42 -0
  199. package/src/refractor/visitors/open-api-2/responses/DefaultVisitor.mjs +36 -0
  200. package/src/refractor/visitors/open-api-2/responses/index.cjs +52 -0
  201. package/src/refractor/visitors/open-api-2/responses/index.mjs +46 -0
  202. package/src/refractor/visitors/open-api-2/responses-definitions/index.cjs +25 -0
  203. package/src/refractor/visitors/open-api-2/responses-definitions/index.mjs +19 -0
  204. package/src/refractor/visitors/open-api-2/schema/AllOfVisitor.cjs +25 -0
  205. package/src/refractor/visitors/open-api-2/schema/AllOfVisitor.mjs +21 -0
  206. package/src/refractor/visitors/open-api-2/schema/ItemsVisitor.cjs +32 -0
  207. package/src/refractor/visitors/open-api-2/schema/ItemsVisitor.mjs +28 -0
  208. package/src/refractor/visitors/open-api-2/schema/PropertiesVisitor.cjs +25 -0
  209. package/src/refractor/visitors/open-api-2/schema/PropertiesVisitor.mjs +21 -0
  210. package/src/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.cjs +24 -0
  211. package/src/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.mjs +20 -0
  212. package/src/refractor/visitors/open-api-2/schema/index.cjs +26 -0
  213. package/src/refractor/visitors/open-api-2/schema/index.mjs +20 -0
  214. package/src/refractor/visitors/open-api-2/scopes/index.cjs +26 -0
  215. package/src/refractor/visitors/open-api-2/scopes/index.mjs +20 -0
  216. package/src/refractor/visitors/open-api-2/security-definitions/index.cjs +26 -0
  217. package/src/refractor/visitors/open-api-2/security-definitions/index.mjs +20 -0
  218. package/src/refractor/visitors/open-api-2/security-requirement/index.cjs +25 -0
  219. package/src/refractor/visitors/open-api-2/security-requirement/index.mjs +19 -0
  220. package/src/refractor/visitors/open-api-2/security-scheme/index.cjs +26 -0
  221. package/src/refractor/visitors/open-api-2/security-scheme/index.mjs +20 -0
  222. package/src/refractor/visitors/open-api-2/tag/index.cjs +26 -0
  223. package/src/refractor/visitors/open-api-2/tag/index.mjs +20 -0
  224. package/src/refractor/visitors/open-api-2/xml/index.cjs +26 -0
  225. package/src/refractor/visitors/open-api-2/xml/index.mjs +20 -0
  226. package/src/traversal/visitor.cjs +56 -0
  227. package/src/traversal/visitor.mjs +53 -0
  228. package/types/apidom-ns-openapi-2.d.ts +2485 -0
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ exports.__esModule = true;
5
+ exports.default = exports.createRefractor = void 0;
6
+ var _apidomCore = require("@speclynx/apidom-core");
7
+ var _ramda = require("ramda");
8
+ var _specification = _interopRequireDefault(require("./specification.cjs"));
9
+ var _visitor = require("../traversal/visitor.cjs");
10
+ var _toolbox = _interopRequireDefault(require("./toolbox.cjs"));
11
+ /**
12
+ * @public
13
+ */
14
+ const refract = (value, {
15
+ specPath = ['visitors', 'document', 'objects', 'Swagger', '$visitor'],
16
+ plugins = []
17
+ } = {}) => {
18
+ const element = (0, _apidomCore.refract)(value);
19
+ const resolvedSpec = (0, _apidomCore.dereference)(_specification.default);
20
+
21
+ /**
22
+ * This is where generic ApiDOM becomes semantic (namespace applied).
23
+ * We don't allow consumers to hook into this translation.
24
+ * Though we allow consumers to define their onw plugins on already transformed ApiDOM.
25
+ */
26
+ const RootVisitorClass = (0, _ramda.path)(specPath, resolvedSpec);
27
+ const rootVisitor = new RootVisitorClass({
28
+ specObj: resolvedSpec
29
+ });
30
+ (0, _apidomCore.visit)(element, rootVisitor);
31
+
32
+ /**
33
+ * Running plugins visitors means extra single traversal === performance hit.
34
+ */
35
+ return (0, _apidomCore.dispatchRefractorPlugins)(rootVisitor.element, plugins, {
36
+ toolboxCreator: _toolbox.default,
37
+ visitorOptions: {
38
+ keyMap: _visitor.keyMap,
39
+ nodeTypeGetter: _visitor.getNodeType
40
+ }
41
+ });
42
+ };
43
+
44
+ /**
45
+ * @public
46
+ */
47
+ const createRefractor = specPath => (value, options = {}) => refract(value, {
48
+ specPath,
49
+ ...options
50
+ });
51
+ exports.createRefractor = createRefractor;
52
+ var _default = exports.default = refract;
@@ -0,0 +1,46 @@
1
+ import { visit, dereference, refract as baseRefract, dispatchRefractorPlugins } from '@speclynx/apidom-core';
2
+ import { path } from 'ramda';
3
+ import specification from "./specification.mjs";
4
+ import { keyMap, getNodeType } from "../traversal/visitor.mjs";
5
+ import createToolbox from "./toolbox.mjs";
6
+ /**
7
+ * @public
8
+ */
9
+ const refract = (value, {
10
+ specPath = ['visitors', 'document', 'objects', 'Swagger', '$visitor'],
11
+ plugins = []
12
+ } = {}) => {
13
+ const element = baseRefract(value);
14
+ const resolvedSpec = dereference(specification);
15
+
16
+ /**
17
+ * This is where generic ApiDOM becomes semantic (namespace applied).
18
+ * We don't allow consumers to hook into this translation.
19
+ * Though we allow consumers to define their onw plugins on already transformed ApiDOM.
20
+ */
21
+ const RootVisitorClass = path(specPath, resolvedSpec);
22
+ const rootVisitor = new RootVisitorClass({
23
+ specObj: resolvedSpec
24
+ });
25
+ visit(element, rootVisitor);
26
+
27
+ /**
28
+ * Running plugins visitors means extra single traversal === performance hit.
29
+ */
30
+ return dispatchRefractorPlugins(rootVisitor.element, plugins, {
31
+ toolboxCreator: createToolbox,
32
+ visitorOptions: {
33
+ keyMap,
34
+ nodeTypeGetter: getNodeType
35
+ }
36
+ });
37
+ };
38
+
39
+ /**
40
+ * @public
41
+ */
42
+ export const createRefractor = specPath => (value, options = {}) => refract(value, {
43
+ specPath,
44
+ ...options
45
+ });
46
+ export default refract;
@@ -0,0 +1,358 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _apidomCore = require("@speclynx/apidom-core");
7
+ var _Info = _interopRequireDefault(require("../../elements/Info.cjs"));
8
+ var _Contact = _interopRequireDefault(require("../../elements/Contact.cjs"));
9
+ var _License = _interopRequireDefault(require("../../elements/License.cjs"));
10
+ var _Paths = _interopRequireDefault(require("../../elements/Paths.cjs"));
11
+ var _PathItem = _interopRequireDefault(require("../../elements/PathItem.cjs"));
12
+ var _Operation = _interopRequireDefault(require("../../elements/Operation.cjs"));
13
+ var _ExternalDocumentation = _interopRequireDefault(require("../../elements/ExternalDocumentation.cjs"));
14
+ var _Parameter = _interopRequireDefault(require("../../elements/Parameter.cjs"));
15
+ var _Items = _interopRequireDefault(require("../../elements/Items.cjs"));
16
+ var _Responses = _interopRequireDefault(require("../../elements/Responses.cjs"));
17
+ var _Response = _interopRequireDefault(require("../../elements/Response.cjs"));
18
+ var _Headers = _interopRequireDefault(require("../../elements/Headers.cjs"));
19
+ var _Example = _interopRequireDefault(require("../../elements/Example.cjs"));
20
+ var _Header = _interopRequireDefault(require("../../elements/Header.cjs"));
21
+ var _Tag = _interopRequireDefault(require("../../elements/Tag.cjs"));
22
+ var _Schema = _interopRequireDefault(require("../../elements/Schema.cjs"));
23
+ var _Xml = _interopRequireDefault(require("../../elements/Xml.cjs"));
24
+ var _Definitions = _interopRequireDefault(require("../../elements/Definitions.cjs"));
25
+ var _ParametersDefinitions = _interopRequireDefault(require("../../elements/ParametersDefinitions.cjs"));
26
+ var _ResponsesDefinitions = _interopRequireDefault(require("../../elements/ResponsesDefinitions.cjs"));
27
+ var _SecurityDefinitions = _interopRequireDefault(require("../../elements/SecurityDefinitions.cjs"));
28
+ var _SecurityScheme = _interopRequireDefault(require("../../elements/SecurityScheme.cjs"));
29
+ var _Scopes = _interopRequireDefault(require("../../elements/Scopes.cjs"));
30
+ var _SecurityRequirement = _interopRequireDefault(require("../../elements/SecurityRequirement.cjs"));
31
+ var _OperationConsumes = _interopRequireDefault(require("../../elements/nces/OperationConsumes.cjs"));
32
+ var _OperationParameters = _interopRequireDefault(require("../../elements/nces/OperationParameters.cjs"));
33
+ var _OperationProduces = _interopRequireDefault(require("../../elements/nces/OperationProduces.cjs"));
34
+ var _OperationSchemes = _interopRequireDefault(require("../../elements/nces/OperationSchemes.cjs"));
35
+ var _OperationSecurity = _interopRequireDefault(require("../../elements/nces/OperationSecurity.cjs"));
36
+ var _OperationTags = _interopRequireDefault(require("../../elements/nces/OperationTags.cjs"));
37
+ var _PathItemParameters = _interopRequireDefault(require("../../elements/nces/PathItemParameters.cjs"));
38
+ var _SwaggerSchemes = _interopRequireDefault(require("../../elements/nces/SwaggerSchemes.cjs"));
39
+ var _SwaggerConsumes = _interopRequireDefault(require("../../elements/nces/SwaggerConsumes.cjs"));
40
+ var _SwaggerProduces = _interopRequireDefault(require("../../elements/nces/SwaggerProduces.cjs"));
41
+ var _SwaggerSecurity = _interopRequireDefault(require("../../elements/nces/SwaggerSecurity.cjs"));
42
+ var _SwaggerTags = _interopRequireDefault(require("../../elements/nces/SwaggerTags.cjs"));
43
+ var _visitor = require("../../traversal/visitor.cjs");
44
+ /**
45
+ * OpenAPI 2.0 specification elements.
46
+ */
47
+
48
+ // non-concrete Elements (NCEs)
49
+
50
+ /**
51
+ * This plugin is specific to YAML 1.2 format, which allows defining key-value pairs
52
+ * with empty key, empty value, or both. If the value is not provided in YAML format,
53
+ * this plugin compensates for this missing value with the most appropriate semantic element type.
54
+ *
55
+ * https://yaml.org/spec/1.2.2/#72-empty-nodes
56
+ *
57
+ * @example
58
+ *
59
+ * ```yaml
60
+ * swagger: "2.0"
61
+ * info:
62
+ * ```
63
+ * Refracting result without this plugin:
64
+ *
65
+ * (SwaggerElement
66
+ * (MemberElement
67
+ * (StringElement)
68
+ * (SwaggerVersionElement))
69
+ * (MemberElement
70
+ * (StringElement)
71
+ * (StringElement))
72
+ *
73
+ * Refracting result with this plugin:
74
+ *
75
+ * (SwaggerElement
76
+ * (MemberElement
77
+ * (StringElement)
78
+ * (SwaggerVersionElement))
79
+ * (MemberElement
80
+ * (StringElement)
81
+ * (InfoElement))
82
+ */
83
+
84
+ const isEmptyElement = element => (0, _apidomCore.isStringElement)(element) && (0, _apidomCore.includesClasses)(['yaml-e-node', 'yaml-e-scalar'], element);
85
+ const schema = {
86
+ // concrete types handling (CTs)
87
+ SwaggerElement: {
88
+ info(...args) {
89
+ return new _Info.default(...args);
90
+ },
91
+ schemes(...args) {
92
+ return new _SwaggerSchemes.default(...args);
93
+ },
94
+ consumes(...args) {
95
+ return new _SwaggerConsumes.default(...args);
96
+ },
97
+ produces(...args) {
98
+ return new _SwaggerProduces.default(...args);
99
+ },
100
+ paths(...args) {
101
+ return new _Paths.default(...args);
102
+ },
103
+ definitions(...args) {
104
+ return new _Definitions.default(...args);
105
+ },
106
+ parameters(...args) {
107
+ return new _ParametersDefinitions.default(...args);
108
+ },
109
+ responses(...args) {
110
+ return new _ResponsesDefinitions.default(...args);
111
+ },
112
+ securityDefinitions(...args) {
113
+ return new _SecurityDefinitions.default(...args);
114
+ },
115
+ security(...args) {
116
+ return new _SwaggerSecurity.default(...args);
117
+ },
118
+ tags(...args) {
119
+ return new _SwaggerTags.default(...args);
120
+ },
121
+ externalDocs(...args) {
122
+ return new _ExternalDocumentation.default(...args);
123
+ }
124
+ },
125
+ InfoElement: {
126
+ contact(...args) {
127
+ return new _Contact.default(...args);
128
+ },
129
+ license(...args) {
130
+ return new _License.default(...args);
131
+ }
132
+ },
133
+ PathsElement: {
134
+ '[key: *]': function key(...args) {
135
+ return new _PathItem.default(...args);
136
+ }
137
+ },
138
+ PathItemElement: {
139
+ get(...args) {
140
+ return new _Operation.default(...args);
141
+ },
142
+ put(...args) {
143
+ return new _Operation.default(...args);
144
+ },
145
+ post(...args) {
146
+ return new _Operation.default(...args);
147
+ },
148
+ delete(...args) {
149
+ return new _Operation.default(...args);
150
+ },
151
+ options(...args) {
152
+ return new _Operation.default(...args);
153
+ },
154
+ head(...args) {
155
+ return new _Operation.default(...args);
156
+ },
157
+ patch(...args) {
158
+ return new _Operation.default(...args);
159
+ },
160
+ parameters(...args) {
161
+ return new _PathItemParameters.default(...args);
162
+ }
163
+ },
164
+ OperationElement: {
165
+ tags(...args) {
166
+ return new _OperationTags.default(...args);
167
+ },
168
+ externalDocs(...args) {
169
+ return new _ExternalDocumentation.default(...args);
170
+ },
171
+ consumes(...args) {
172
+ return new _OperationConsumes.default(...args);
173
+ },
174
+ produces(...args) {
175
+ return new _OperationProduces.default(...args);
176
+ },
177
+ parameters(...args) {
178
+ return new _OperationParameters.default(...args);
179
+ },
180
+ responses(...args) {
181
+ return new _Responses.default(...args);
182
+ },
183
+ schemes(...args) {
184
+ return new _OperationSchemes.default(...args);
185
+ },
186
+ security(...args) {
187
+ return new _OperationSecurity.default(...args);
188
+ }
189
+ },
190
+ ParameterElement: {
191
+ schema(...args) {
192
+ return new _Schema.default(...args);
193
+ },
194
+ items(...args) {
195
+ return new _Items.default(...args);
196
+ }
197
+ },
198
+ ItemsElement: {
199
+ items(...args) {
200
+ return new _Items.default(...args);
201
+ }
202
+ },
203
+ ResponsesElement: {
204
+ '[key: *]': function key(...args) {
205
+ return new _Response.default(...args);
206
+ }
207
+ },
208
+ ResponseElement: {
209
+ schema(...args) {
210
+ return new _Schema.default(...args);
211
+ },
212
+ headers(...args) {
213
+ return new _Headers.default(...args);
214
+ },
215
+ examples(...args) {
216
+ return new _Example.default(...args);
217
+ }
218
+ },
219
+ HeadersElement: {
220
+ '[key: *]': function key(...args) {
221
+ return new _Header.default(...args);
222
+ }
223
+ },
224
+ HeaderElement: {
225
+ items(...args) {
226
+ return new _Items.default(...args);
227
+ }
228
+ },
229
+ TagElement: {
230
+ externalDocs(...args) {
231
+ return new _ExternalDocumentation.default(...args);
232
+ }
233
+ },
234
+ SchemaElement: {
235
+ items(...args) {
236
+ return new _Schema.default(...args);
237
+ },
238
+ allOf(...args) {
239
+ const element = new _apidomCore.ArrayElement(...args);
240
+ element.classes.push('json-schema-allOf');
241
+ return element;
242
+ },
243
+ properties(...args) {
244
+ const element = new _apidomCore.ObjectElement(...args);
245
+ element.classes.push('json-schema-properties');
246
+ return element;
247
+ },
248
+ additionalProperties(...args) {
249
+ return new _Schema.default(...args);
250
+ },
251
+ xml(...args) {
252
+ return new _Xml.default(...args);
253
+ },
254
+ externalDocs(...args) {
255
+ return new _ExternalDocumentation.default(...args);
256
+ }
257
+ },
258
+ DefinitionsElement: {
259
+ '[key: *]': function key(...args) {
260
+ return new _Schema.default(...args);
261
+ }
262
+ },
263
+ ParametersDefinitionsElement: {
264
+ '[key: *]': function key(...args) {
265
+ return new _Parameter.default(...args);
266
+ }
267
+ },
268
+ ResponsesDefinitionsElement: {
269
+ '[key: *]': function key(...args) {
270
+ return new _Response.default(...args);
271
+ }
272
+ },
273
+ SecurityDefinitionsElement: {
274
+ '[key: *]': function key(...args) {
275
+ return new _SecurityScheme.default(...args);
276
+ }
277
+ },
278
+ SecuritySchemeElement: {
279
+ scopes(...args) {
280
+ return new _Scopes.default(...args);
281
+ }
282
+ },
283
+ SecurityRequirementElement: {
284
+ '[key: *]': function key(...args) {
285
+ return new _apidomCore.ArrayElement(...args);
286
+ }
287
+ },
288
+ // non-concrete types handling (NCEs)
289
+ [_OperationParameters.default.primaryClass]: {
290
+ '<*>': function asterisk(...args) {
291
+ return new _Parameter.default(...args);
292
+ }
293
+ },
294
+ [_OperationSecurity.default.primaryClass]: {
295
+ '<*>': function asterisk(...args) {
296
+ return new _SecurityRequirement.default(...args);
297
+ }
298
+ },
299
+ [_PathItemParameters.default.primaryClass]: {
300
+ '<*>': function asterisk(...args) {
301
+ return new _Parameter.default(...args);
302
+ }
303
+ },
304
+ [_SwaggerSecurity.default.primaryClass]: {
305
+ '<*>': function asterisk(...args) {
306
+ return new _SecurityRequirement.default(...args);
307
+ }
308
+ },
309
+ [_SwaggerTags.default.primaryClass]: {
310
+ '<*>': function asterisk(...args) {
311
+ return new _Tag.default(...args);
312
+ }
313
+ },
314
+ 'json-schema-properties': {
315
+ '[key: *]': function key(...args) {
316
+ return new _Schema.default(...args);
317
+ }
318
+ },
319
+ 'json-schema-allOf': {
320
+ '<*>': function asterisk(...args) {
321
+ return new _Schema.default(...args);
322
+ }
323
+ }
324
+ };
325
+ const findElementFactory = (ancestor, keyName) => {
326
+ const elementType = (0, _visitor.getNodeType)(ancestor); // @ts-ignore
327
+ const keyMapping = schema[elementType] || schema[(0, _apidomCore.toValue)(ancestor.classes.first)];
328
+ return typeof keyMapping === 'undefined' ? undefined : Object.hasOwn(keyMapping, '[key: *]') ? keyMapping['[key: *]'] : keyMapping[keyName];
329
+ };
330
+
331
+ /**
332
+ * @public
333
+ */
334
+ const plugin = () => () => ({
335
+ visitor: {
336
+ StringElement(element, key, parent, path, ancestors) {
337
+ if (!isEmptyElement(element)) return undefined;
338
+ const lineage = [...ancestors, parent].filter(_apidomCore.isElement);
339
+ const parentElement = lineage.at(-1);
340
+ let elementFactory;
341
+ let context;
342
+ if ((0, _apidomCore.isArrayElement)(parentElement)) {
343
+ context = element;
344
+ elementFactory = findElementFactory(parentElement, '<*>');
345
+ } else if ((0, _apidomCore.isMemberElement)(parentElement)) {
346
+ context = lineage.at(-2);
347
+ elementFactory = findElementFactory(context, (0, _apidomCore.toValue)(parentElement.key));
348
+ }
349
+
350
+ // no element factory found
351
+ if (typeof elementFactory !== 'function') return undefined;
352
+ return elementFactory.call({
353
+ context
354
+ }, undefined, (0, _apidomCore.cloneDeep)(element.meta), (0, _apidomCore.cloneDeep)(element.attributes));
355
+ }
356
+ }
357
+ });
358
+ var _default = exports.default = plugin;