@speclynx/apidom-ns-openapi-2 4.0.2 → 4.0.4

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 (220) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/apidom-ns-openapi-2.browser.js +7 -7
  3. package/dist/apidom-ns-openapi-2.browser.min.js +1 -1
  4. package/package.json +7 -7
  5. package/src/elements/Contact.cjs +33 -0
  6. package/src/elements/Contact.mjs +30 -0
  7. package/src/elements/Definitions.cjs +15 -0
  8. package/src/elements/Definitions.mjs +12 -0
  9. package/src/elements/Example.cjs +15 -0
  10. package/src/elements/Example.mjs +12 -0
  11. package/src/elements/ExternalDocumentation.cjs +27 -0
  12. package/src/elements/ExternalDocumentation.mjs +24 -0
  13. package/src/elements/Header.cjs +185 -0
  14. package/src/elements/Header.mjs +182 -0
  15. package/src/elements/Headers.cjs +15 -0
  16. package/src/elements/Headers.mjs +12 -0
  17. package/src/elements/Info.cjs +52 -0
  18. package/src/elements/Info.mjs +48 -0
  19. package/src/elements/Items.cjs +190 -0
  20. package/src/elements/Items.mjs +187 -0
  21. package/src/elements/License.cjs +27 -0
  22. package/src/elements/License.mjs +24 -0
  23. package/src/elements/Operation.cjs +78 -0
  24. package/src/elements/Operation.mjs +74 -0
  25. package/src/elements/Parameter.cjs +230 -0
  26. package/src/elements/Parameter.mjs +226 -0
  27. package/src/elements/ParametersDefinitions.cjs +15 -0
  28. package/src/elements/ParametersDefinitions.mjs +12 -0
  29. package/src/elements/PathItem.cjs +69 -0
  30. package/src/elements/PathItem.mjs +65 -0
  31. package/src/elements/Paths.cjs +15 -0
  32. package/src/elements/Paths.mjs +12 -0
  33. package/src/elements/Reference.cjs +22 -0
  34. package/src/elements/Reference.mjs +19 -0
  35. package/src/elements/Response.cjs +39 -0
  36. package/src/elements/Response.mjs +35 -0
  37. package/src/elements/Responses.cjs +21 -0
  38. package/src/elements/Responses.mjs +17 -0
  39. package/src/elements/ResponsesDefinitions.cjs +15 -0
  40. package/src/elements/ResponsesDefinitions.mjs +12 -0
  41. package/src/elements/Schema.cjs +151 -0
  42. package/src/elements/Schema.mjs +147 -0
  43. package/src/elements/Scopes.cjs +15 -0
  44. package/src/elements/Scopes.mjs +12 -0
  45. package/src/elements/SecurityDefinitions.cjs +15 -0
  46. package/src/elements/SecurityDefinitions.mjs +12 -0
  47. package/src/elements/SecurityRequirement.cjs +15 -0
  48. package/src/elements/SecurityRequirement.mjs +12 -0
  49. package/src/elements/SecurityScheme.cjs +63 -0
  50. package/src/elements/SecurityScheme.mjs +60 -0
  51. package/src/elements/Swagger.cjs +106 -0
  52. package/src/elements/Swagger.mjs +102 -0
  53. package/src/elements/SwaggerVersion.cjs +17 -0
  54. package/src/elements/SwaggerVersion.mjs +14 -0
  55. package/src/elements/Tag.cjs +33 -0
  56. package/src/elements/Tag.mjs +29 -0
  57. package/src/elements/Xml.cjs +45 -0
  58. package/src/elements/Xml.mjs +42 -0
  59. package/src/elements/nces/OperationConsumes.cjs +16 -0
  60. package/src/elements/nces/OperationConsumes.mjs +13 -0
  61. package/src/elements/nces/OperationParameters.cjs +17 -0
  62. package/src/elements/nces/OperationParameters.mjs +14 -0
  63. package/src/elements/nces/OperationProduces.cjs +16 -0
  64. package/src/elements/nces/OperationProduces.mjs +13 -0
  65. package/src/elements/nces/OperationSchemes.cjs +16 -0
  66. package/src/elements/nces/OperationSchemes.mjs +13 -0
  67. package/src/elements/nces/OperationSecurity.cjs +17 -0
  68. package/src/elements/nces/OperationSecurity.mjs +14 -0
  69. package/src/elements/nces/OperationTags.cjs +17 -0
  70. package/src/elements/nces/OperationTags.mjs +14 -0
  71. package/src/elements/nces/PathItemParameters.cjs +17 -0
  72. package/src/elements/nces/PathItemParameters.mjs +14 -0
  73. package/src/elements/nces/SwaggerConsumes.cjs +16 -0
  74. package/src/elements/nces/SwaggerConsumes.mjs +13 -0
  75. package/src/elements/nces/SwaggerProduces.cjs +16 -0
  76. package/src/elements/nces/SwaggerProduces.mjs +13 -0
  77. package/src/elements/nces/SwaggerSchemes.cjs +16 -0
  78. package/src/elements/nces/SwaggerSchemes.mjs +13 -0
  79. package/src/elements/nces/SwaggerSecurity.cjs +17 -0
  80. package/src/elements/nces/SwaggerSecurity.mjs +14 -0
  81. package/src/elements/nces/SwaggerTags.cjs +16 -0
  82. package/src/elements/nces/SwaggerTags.mjs +13 -0
  83. package/src/index.cjs +156 -0
  84. package/src/index.mjs +32 -0
  85. package/src/media-types.cjs +34 -0
  86. package/src/media-types.mjs +30 -0
  87. package/src/namespace.cjs +71 -0
  88. package/src/namespace.mjs +66 -0
  89. package/src/predicates.cjs +193 -0
  90. package/src/predicates.mjs +161 -0
  91. package/src/refractor/index.cjs +316 -0
  92. package/src/refractor/index.mjs +283 -0
  93. package/src/refractor/inspect.cjs +157 -0
  94. package/src/refractor/inspect.mjs +126 -0
  95. package/src/refractor/plugins/replace-empty-element.cjs +366 -0
  96. package/src/refractor/plugins/replace-empty-element.mjs +358 -0
  97. package/src/refractor/predicates.cjs +26 -0
  98. package/src/refractor/predicates.mjs +21 -0
  99. package/src/refractor/specification.cjs +519 -0
  100. package/src/refractor/specification.mjs +513 -0
  101. package/src/refractor/toolbox.cjs +28 -0
  102. package/src/refractor/toolbox.mjs +21 -0
  103. package/src/refractor/visitors/FallbackVisitor.cjs +24 -0
  104. package/src/refractor/visitors/FallbackVisitor.mjs +18 -0
  105. package/src/refractor/visitors/SpecificationExtensionVisitor.cjs +18 -0
  106. package/src/refractor/visitors/SpecificationExtensionVisitor.mjs +13 -0
  107. package/src/refractor/visitors/SpecificationVisitor.cjs +75 -0
  108. package/src/refractor/visitors/SpecificationVisitor.mjs +69 -0
  109. package/src/refractor/visitors/Visitor.cjs +36 -0
  110. package/src/refractor/visitors/Visitor.mjs +33 -0
  111. package/src/refractor/visitors/generics/AlternatingVisitor.cjs +42 -0
  112. package/src/refractor/visitors/generics/AlternatingVisitor.mjs +35 -0
  113. package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +73 -0
  114. package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +66 -0
  115. package/src/refractor/visitors/generics/MapVisitor.cjs +21 -0
  116. package/src/refractor/visitors/generics/MapVisitor.mjs +15 -0
  117. package/src/refractor/visitors/generics/MixedFieldsVisitor.cjs +67 -0
  118. package/src/refractor/visitors/generics/MixedFieldsVisitor.mjs +61 -0
  119. package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +72 -0
  120. package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +66 -0
  121. package/src/refractor/visitors/open-api-2/BasePathVisitor.cjs +16 -0
  122. package/src/refractor/visitors/open-api-2/BasePathVisitor.mjs +11 -0
  123. package/src/refractor/visitors/open-api-2/ConsumesVisitor.cjs +23 -0
  124. package/src/refractor/visitors/open-api-2/ConsumesVisitor.mjs +18 -0
  125. package/src/refractor/visitors/open-api-2/HostVisitor.cjs +16 -0
  126. package/src/refractor/visitors/open-api-2/HostVisitor.mjs +11 -0
  127. package/src/refractor/visitors/open-api-2/ProducesVisitor.cjs +23 -0
  128. package/src/refractor/visitors/open-api-2/ProducesVisitor.mjs +18 -0
  129. package/src/refractor/visitors/open-api-2/SchemesVisitor.cjs +23 -0
  130. package/src/refractor/visitors/open-api-2/SchemesVisitor.mjs +18 -0
  131. package/src/refractor/visitors/open-api-2/SecurityVisitor.cjs +27 -0
  132. package/src/refractor/visitors/open-api-2/SecurityVisitor.mjs +22 -0
  133. package/src/refractor/visitors/open-api-2/SwaggerVisitor.cjs +21 -0
  134. package/src/refractor/visitors/open-api-2/SwaggerVisitor.mjs +16 -0
  135. package/src/refractor/visitors/open-api-2/TagsVisitor.cjs +27 -0
  136. package/src/refractor/visitors/open-api-2/TagsVisitor.mjs +22 -0
  137. package/src/refractor/visitors/open-api-2/bases.cjs +72 -0
  138. package/src/refractor/visitors/open-api-2/bases.mjs +67 -0
  139. package/src/refractor/visitors/open-api-2/contact/index.cjs +20 -0
  140. package/src/refractor/visitors/open-api-2/contact/index.mjs +15 -0
  141. package/src/refractor/visitors/open-api-2/definitions/index.cjs +31 -0
  142. package/src/refractor/visitors/open-api-2/definitions/index.mjs +26 -0
  143. package/src/refractor/visitors/open-api-2/example/index.cjs +20 -0
  144. package/src/refractor/visitors/open-api-2/example/index.mjs +15 -0
  145. package/src/refractor/visitors/open-api-2/external-documentation/index.cjs +20 -0
  146. package/src/refractor/visitors/open-api-2/external-documentation/index.mjs +15 -0
  147. package/src/refractor/visitors/open-api-2/header/index.cjs +20 -0
  148. package/src/refractor/visitors/open-api-2/header/index.mjs +15 -0
  149. package/src/refractor/visitors/open-api-2/headers/index.cjs +20 -0
  150. package/src/refractor/visitors/open-api-2/headers/index.mjs +15 -0
  151. package/src/refractor/visitors/open-api-2/index.cjs +21 -0
  152. package/src/refractor/visitors/open-api-2/index.mjs +16 -0
  153. package/src/refractor/visitors/open-api-2/info/VersionVisitor.cjs +17 -0
  154. package/src/refractor/visitors/open-api-2/info/VersionVisitor.mjs +12 -0
  155. package/src/refractor/visitors/open-api-2/info/index.cjs +20 -0
  156. package/src/refractor/visitors/open-api-2/info/index.mjs +15 -0
  157. package/src/refractor/visitors/open-api-2/items/index.cjs +22 -0
  158. package/src/refractor/visitors/open-api-2/items/index.mjs +17 -0
  159. package/src/refractor/visitors/open-api-2/license/index.cjs +20 -0
  160. package/src/refractor/visitors/open-api-2/license/index.mjs +15 -0
  161. package/src/refractor/visitors/open-api-2/operation/ConsumesVisitor.cjs +23 -0
  162. package/src/refractor/visitors/open-api-2/operation/ConsumesVisitor.mjs +18 -0
  163. package/src/refractor/visitors/open-api-2/operation/ParametersVisitor.cjs +32 -0
  164. package/src/refractor/visitors/open-api-2/operation/ParametersVisitor.mjs +27 -0
  165. package/src/refractor/visitors/open-api-2/operation/ProducesVisitor.cjs +23 -0
  166. package/src/refractor/visitors/open-api-2/operation/ProducesVisitor.mjs +18 -0
  167. package/src/refractor/visitors/open-api-2/operation/SchemesVisitor.cjs +23 -0
  168. package/src/refractor/visitors/open-api-2/operation/SchemesVisitor.mjs +18 -0
  169. package/src/refractor/visitors/open-api-2/operation/SecurityVisitor.cjs +27 -0
  170. package/src/refractor/visitors/open-api-2/operation/SecurityVisitor.mjs +22 -0
  171. package/src/refractor/visitors/open-api-2/operation/TagsVisitor.cjs +23 -0
  172. package/src/refractor/visitors/open-api-2/operation/TagsVisitor.mjs +18 -0
  173. package/src/refractor/visitors/open-api-2/operation/index.cjs +19 -0
  174. package/src/refractor/visitors/open-api-2/operation/index.mjs +14 -0
  175. package/src/refractor/visitors/open-api-2/parameter/index.cjs +20 -0
  176. package/src/refractor/visitors/open-api-2/parameter/index.mjs +15 -0
  177. package/src/refractor/visitors/open-api-2/parameters-definitions/index.cjs +19 -0
  178. package/src/refractor/visitors/open-api-2/parameters-definitions/index.mjs +14 -0
  179. package/src/refractor/visitors/open-api-2/path-item/$RefVisitor.cjs +16 -0
  180. package/src/refractor/visitors/open-api-2/path-item/$RefVisitor.mjs +11 -0
  181. package/src/refractor/visitors/open-api-2/path-item/ParametersVisitor.cjs +32 -0
  182. package/src/refractor/visitors/open-api-2/path-item/ParametersVisitor.mjs +27 -0
  183. package/src/refractor/visitors/open-api-2/path-item/index.cjs +39 -0
  184. package/src/refractor/visitors/open-api-2/path-item/index.mjs +34 -0
  185. package/src/refractor/visitors/open-api-2/paths/index.cjs +37 -0
  186. package/src/refractor/visitors/open-api-2/paths/index.mjs +32 -0
  187. package/src/refractor/visitors/open-api-2/reference/$RefVisitor.cjs +16 -0
  188. package/src/refractor/visitors/open-api-2/reference/$RefVisitor.mjs +11 -0
  189. package/src/refractor/visitors/open-api-2/reference/index.cjs +29 -0
  190. package/src/refractor/visitors/open-api-2/reference/index.mjs +24 -0
  191. package/src/refractor/visitors/open-api-2/response/index.cjs +20 -0
  192. package/src/refractor/visitors/open-api-2/response/index.mjs +15 -0
  193. package/src/refractor/visitors/open-api-2/responses/DefaultVisitor.cjs +36 -0
  194. package/src/refractor/visitors/open-api-2/responses/DefaultVisitor.mjs +31 -0
  195. package/src/refractor/visitors/open-api-2/responses/index.cjs +45 -0
  196. package/src/refractor/visitors/open-api-2/responses/index.mjs +40 -0
  197. package/src/refractor/visitors/open-api-2/responses-definitions/index.cjs +19 -0
  198. package/src/refractor/visitors/open-api-2/responses-definitions/index.mjs +14 -0
  199. package/src/refractor/visitors/open-api-2/schema/AllOfVisitor.cjs +24 -0
  200. package/src/refractor/visitors/open-api-2/schema/AllOfVisitor.mjs +20 -0
  201. package/src/refractor/visitors/open-api-2/schema/ItemsVisitor.cjs +26 -0
  202. package/src/refractor/visitors/open-api-2/schema/ItemsVisitor.mjs +23 -0
  203. package/src/refractor/visitors/open-api-2/schema/PropertiesVisitor.cjs +24 -0
  204. package/src/refractor/visitors/open-api-2/schema/PropertiesVisitor.mjs +20 -0
  205. package/src/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.cjs +23 -0
  206. package/src/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.mjs +19 -0
  207. package/src/refractor/visitors/open-api-2/schema/index.cjs +20 -0
  208. package/src/refractor/visitors/open-api-2/schema/index.mjs +15 -0
  209. package/src/refractor/visitors/open-api-2/scopes/index.cjs +20 -0
  210. package/src/refractor/visitors/open-api-2/scopes/index.mjs +15 -0
  211. package/src/refractor/visitors/open-api-2/security-definitions/index.cjs +20 -0
  212. package/src/refractor/visitors/open-api-2/security-definitions/index.mjs +15 -0
  213. package/src/refractor/visitors/open-api-2/security-requirement/index.cjs +19 -0
  214. package/src/refractor/visitors/open-api-2/security-requirement/index.mjs +14 -0
  215. package/src/refractor/visitors/open-api-2/security-scheme/index.cjs +20 -0
  216. package/src/refractor/visitors/open-api-2/security-scheme/index.mjs +15 -0
  217. package/src/refractor/visitors/open-api-2/tag/index.cjs +20 -0
  218. package/src/refractor/visitors/open-api-2/tag/index.mjs +15 -0
  219. package/src/refractor/visitors/open-api-2/xml/index.cjs +20 -0
  220. package/src/refractor/visitors/open-api-2/xml/index.mjs +15 -0
@@ -0,0 +1,283 @@
1
+ import { resolveSpecification, dispatchRefractorPlugins } from '@speclynx/apidom-core';
2
+ import { refract as baseRefract } from '@speclynx/apidom-datamodel';
3
+ import { traverse } from '@speclynx/apidom-traverse';
4
+ import { path } from 'ramda';
5
+ import specification from "./specification.mjs";
6
+ import createToolbox from "./toolbox.mjs";
7
+ /**
8
+ * @public
9
+ */
10
+ /**
11
+ * @public
12
+ */
13
+ /**
14
+ * @public
15
+ */
16
+ const refract = (value, {
17
+ element = 'swagger',
18
+ plugins = [],
19
+ specificationObj = specification,
20
+ consume = false
21
+ } = {}) => {
22
+ const genericElement = baseRefract(value);
23
+ const resolvedSpec = resolveSpecification(specificationObj);
24
+ const elementMap = resolvedSpec.elementMap;
25
+ const specPath = elementMap[element];
26
+ if (!specPath) {
27
+ throw new Error(`Unknown element type: "${element}"`);
28
+ }
29
+
30
+ /**
31
+ * This is where generic ApiDOM becomes semantic (namespace applied).
32
+ * We don't allow consumers to hook into this translation.
33
+ * Though we allow consumers to define their own plugins on already transformed ApiDOM.
34
+ */
35
+ const RootVisitorClass = path(specPath, resolvedSpec);
36
+ const rootVisitor = new RootVisitorClass({
37
+ specObj: resolvedSpec,
38
+ consume
39
+ });
40
+ traverse(genericElement, rootVisitor);
41
+
42
+ /**
43
+ * Running plugins visitors means extra single traversal === performance hit.
44
+ */
45
+ return dispatchRefractorPlugins(rootVisitor.element, plugins, {
46
+ toolboxCreator: createToolbox
47
+ });
48
+ };
49
+
50
+ /**
51
+ * Refracts a value into a SwaggerElement.
52
+ * @public
53
+ */
54
+ export const refractSwagger = (value, options = {}) => refract(value, {
55
+ ...options,
56
+ element: 'swagger'
57
+ });
58
+
59
+ /**
60
+ * Refracts a value into an InfoElement.
61
+ * @public
62
+ */
63
+ export const refractInfo = (value, options = {}) => refract(value, {
64
+ ...options,
65
+ element: 'info'
66
+ });
67
+
68
+ /**
69
+ * Refracts a value into a ContactElement.
70
+ * @public
71
+ */
72
+ export const refractContact = (value, options = {}) => refract(value, {
73
+ ...options,
74
+ element: 'contact'
75
+ });
76
+
77
+ /**
78
+ * Refracts a value into a LicenseElement.
79
+ * @public
80
+ */
81
+ export const refractLicense = (value, options = {}) => refract(value, {
82
+ ...options,
83
+ element: 'license'
84
+ });
85
+
86
+ /**
87
+ * Refracts a value into a PathsElement.
88
+ * @public
89
+ */
90
+ export const refractPaths = (value, options = {}) => refract(value, {
91
+ ...options,
92
+ element: 'paths'
93
+ });
94
+
95
+ /**
96
+ * Refracts a value into a PathItemElement.
97
+ * @public
98
+ */
99
+ export const refractPathItem = (value, options = {}) => refract(value, {
100
+ ...options,
101
+ element: 'pathItem'
102
+ });
103
+
104
+ /**
105
+ * Refracts a value into an OperationElement.
106
+ * @public
107
+ */
108
+ export const refractOperation = (value, options = {}) => refract(value, {
109
+ ...options,
110
+ element: 'operation'
111
+ });
112
+
113
+ /**
114
+ * Refracts a value into an ExternalDocumentationElement.
115
+ * @public
116
+ */
117
+ export const refractExternalDocumentation = (value, options = {}) => refract(value, {
118
+ ...options,
119
+ element: 'externalDocumentation'
120
+ });
121
+
122
+ /**
123
+ * Refracts a value into a ParameterElement.
124
+ * @public
125
+ */
126
+ export const refractParameter = (value, options = {}) => refract(value, {
127
+ ...options,
128
+ element: 'parameter'
129
+ });
130
+
131
+ /**
132
+ * Refracts a value into an ItemsElement.
133
+ * @public
134
+ */
135
+ export const refractItems = (value, options = {}) => refract(value, {
136
+ ...options,
137
+ element: 'items'
138
+ });
139
+
140
+ /**
141
+ * Refracts a value into a ResponsesElement.
142
+ * @public
143
+ */
144
+ export const refractResponses = (value, options = {}) => refract(value, {
145
+ ...options,
146
+ element: 'responses'
147
+ });
148
+
149
+ /**
150
+ * Refracts a value into a ResponseElement.
151
+ * @public
152
+ */
153
+ export const refractResponse = (value, options = {}) => refract(value, {
154
+ ...options,
155
+ element: 'response'
156
+ });
157
+
158
+ /**
159
+ * Refracts a value into a HeadersElement.
160
+ * @public
161
+ */
162
+ export const refractHeaders = (value, options = {}) => refract(value, {
163
+ ...options,
164
+ element: 'headers'
165
+ });
166
+
167
+ /**
168
+ * Refracts a value into an ExampleElement.
169
+ * @public
170
+ */
171
+ export const refractExample = (value, options = {}) => refract(value, {
172
+ ...options,
173
+ element: 'example'
174
+ });
175
+
176
+ /**
177
+ * Refracts a value into a HeaderElement.
178
+ * @public
179
+ */
180
+ export const refractHeader = (value, options = {}) => refract(value, {
181
+ ...options,
182
+ element: 'header'
183
+ });
184
+
185
+ /**
186
+ * Refracts a value into a TagElement.
187
+ * @public
188
+ */
189
+ export const refractTag = (value, options = {}) => refract(value, {
190
+ ...options,
191
+ element: 'tag'
192
+ });
193
+
194
+ /**
195
+ * Refracts a value into a ReferenceElement.
196
+ * @public
197
+ */
198
+ export const refractReference = (value, options = {}) => refract(value, {
199
+ ...options,
200
+ element: 'reference'
201
+ });
202
+
203
+ /**
204
+ * Refracts a value into a SchemaElement.
205
+ * @public
206
+ */
207
+ export const refractSchema = (value, options = {}) => refract(value, {
208
+ ...options,
209
+ element: 'schema'
210
+ });
211
+
212
+ /**
213
+ * Refracts a value into an XmlElement.
214
+ * @public
215
+ */
216
+ export const refractXml = (value, options = {}) => refract(value, {
217
+ ...options,
218
+ element: 'xml'
219
+ });
220
+
221
+ /**
222
+ * Refracts a value into a DefinitionsElement.
223
+ * @public
224
+ */
225
+ export const refractDefinitions = (value, options = {}) => refract(value, {
226
+ ...options,
227
+ element: 'definitions'
228
+ });
229
+
230
+ /**
231
+ * Refracts a value into a ParametersDefinitionsElement.
232
+ * @public
233
+ */
234
+ export const refractParametersDefinitions = (value, options = {}) => refract(value, {
235
+ ...options,
236
+ element: 'parametersDefinitions'
237
+ });
238
+
239
+ /**
240
+ * Refracts a value into a ResponsesDefinitionsElement.
241
+ * @public
242
+ */
243
+ export const refractResponsesDefinitions = (value, options = {}) => refract(value, {
244
+ ...options,
245
+ element: 'responsesDefinitions'
246
+ });
247
+
248
+ /**
249
+ * Refracts a value into a SecurityDefinitionsElement.
250
+ * @public
251
+ */
252
+ export const refractSecurityDefinitions = (value, options = {}) => refract(value, {
253
+ ...options,
254
+ element: 'securityDefinitions'
255
+ });
256
+
257
+ /**
258
+ * Refracts a value into a SecuritySchemeElement.
259
+ * @public
260
+ */
261
+ export const refractSecurityScheme = (value, options = {}) => refract(value, {
262
+ ...options,
263
+ element: 'securityScheme'
264
+ });
265
+
266
+ /**
267
+ * Refracts a value into a ScopesElement.
268
+ * @public
269
+ */
270
+ export const refractScopes = (value, options = {}) => refract(value, {
271
+ ...options,
272
+ element: 'scopes'
273
+ });
274
+
275
+ /**
276
+ * Refracts a value into a SecurityRequirementElement.
277
+ * @public
278
+ */
279
+ export const refractSecurityRequirement = (value, options = {}) => refract(value, {
280
+ ...options,
281
+ element: 'securityRequirement'
282
+ });
283
+ export default refract;
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ exports.__esModule = true;
5
+ var _apidomCore = require("@speclynx/apidom-core");
6
+ var _ramdaAdjunct = require("ramda-adjunct");
7
+ var _Swagger = _interopRequireDefault(require("../elements/Swagger.cjs"));
8
+ exports.SwaggerElement = _Swagger.default;
9
+ var _SwaggerVersion = _interopRequireDefault(require("../elements/SwaggerVersion.cjs"));
10
+ exports.SwaggerVersionElement = _SwaggerVersion.default;
11
+ var _Info = _interopRequireDefault(require("../elements/Info.cjs"));
12
+ exports.InfoElement = _Info.default;
13
+ var _Contact = _interopRequireDefault(require("../elements/Contact.cjs"));
14
+ exports.ContactElement = _Contact.default;
15
+ var _License = _interopRequireDefault(require("../elements/License.cjs"));
16
+ exports.LicenseElement = _License.default;
17
+ var _Paths = _interopRequireDefault(require("../elements/Paths.cjs"));
18
+ exports.PathsElement = _Paths.default;
19
+ var _PathItem = _interopRequireDefault(require("../elements/PathItem.cjs"));
20
+ exports.PathItemElement = _PathItem.default;
21
+ var _Operation = _interopRequireDefault(require("../elements/Operation.cjs"));
22
+ exports.OperationElement = _Operation.default;
23
+ var _ExternalDocumentation = _interopRequireDefault(require("../elements/ExternalDocumentation.cjs"));
24
+ exports.ExternalDocumentationElement = _ExternalDocumentation.default;
25
+ var _Parameter = _interopRequireDefault(require("../elements/Parameter.cjs"));
26
+ exports.ParameterElement = _Parameter.default;
27
+ var _Items = _interopRequireDefault(require("../elements/Items.cjs"));
28
+ exports.ItemsElement = _Items.default;
29
+ var _Responses = _interopRequireDefault(require("../elements/Responses.cjs"));
30
+ exports.ResponsesElement = _Responses.default;
31
+ var _Response = _interopRequireDefault(require("../elements/Response.cjs"));
32
+ exports.ResponseElement = _Response.default;
33
+ var _Headers = _interopRequireDefault(require("../elements/Headers.cjs"));
34
+ exports.HeadersElement = _Headers.default;
35
+ var _Example = _interopRequireDefault(require("../elements/Example.cjs"));
36
+ exports.ExampleElement = _Example.default;
37
+ var _Header = _interopRequireDefault(require("../elements/Header.cjs"));
38
+ exports.HeaderElement = _Header.default;
39
+ var _Tag = _interopRequireDefault(require("../elements/Tag.cjs"));
40
+ exports.TagElement = _Tag.default;
41
+ var _Reference = _interopRequireDefault(require("../elements/Reference.cjs"));
42
+ exports.ReferenceElement = _Reference.default;
43
+ var _Schema = _interopRequireDefault(require("../elements/Schema.cjs"));
44
+ exports.SchemaElement = _Schema.default;
45
+ var _Xml = _interopRequireDefault(require("../elements/Xml.cjs"));
46
+ exports.XmlElement = _Xml.default;
47
+ var _Definitions = _interopRequireDefault(require("../elements/Definitions.cjs"));
48
+ exports.DefinitionsElement = _Definitions.default;
49
+ var _ParametersDefinitions = _interopRequireDefault(require("../elements/ParametersDefinitions.cjs"));
50
+ exports.ParametersDefinitionsElement = _ParametersDefinitions.default;
51
+ var _ResponsesDefinitions = _interopRequireDefault(require("../elements/ResponsesDefinitions.cjs"));
52
+ exports.ResponsesDefinitionsElement = _ResponsesDefinitions.default;
53
+ var _SecurityDefinitions = _interopRequireDefault(require("../elements/SecurityDefinitions.cjs"));
54
+ exports.SecurityDefinitionsElement = _SecurityDefinitions.default;
55
+ var _SecurityScheme = _interopRequireDefault(require("../elements/SecurityScheme.cjs"));
56
+ exports.SecuritySchemeElement = _SecurityScheme.default;
57
+ var _Scopes = _interopRequireDefault(require("../elements/Scopes.cjs"));
58
+ exports.ScopesElement = _Scopes.default;
59
+ var _SecurityRequirement = _interopRequireDefault(require("../elements/SecurityRequirement.cjs"));
60
+ exports.SecurityRequirementElement = _SecurityRequirement.default;
61
+ var _specification = _interopRequireDefault(require("./specification.cjs"));
62
+ /**
63
+ * OpenAPI 2.0 specification elements.
64
+ */
65
+
66
+ /**
67
+ * @public
68
+ */
69
+
70
+ // Resolve specification to dereference $ref pointers
71
+ const resolvedSpec = (0, _apidomCore.resolveSpecification)(_specification.default);
72
+
73
+ // Extract fixed fields as list of { name, alias?, $visitor }
74
+ const getFixedFields = fixedFieldsSpec => {
75
+ return Object.entries(fixedFieldsSpec).map(([name, fieldSpec]) => {
76
+ if ((0, _ramdaAdjunct.isPlainObject)(fieldSpec)) {
77
+ return {
78
+ name,
79
+ ...fieldSpec
80
+ };
81
+ }
82
+ return {
83
+ name,
84
+ $visitor: fieldSpec
85
+ };
86
+ });
87
+ };
88
+
89
+ // OpenAPI 2.0 specification elements
90
+ Object.defineProperty(_Swagger.default, 'fixedFields', {
91
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Swagger.fixedFields),
92
+ enumerable: true
93
+ });
94
+ Object.defineProperty(_Info.default, 'fixedFields', {
95
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Info.fixedFields),
96
+ enumerable: true
97
+ });
98
+ Object.defineProperty(_Contact.default, 'fixedFields', {
99
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Contact.fixedFields),
100
+ enumerable: true
101
+ });
102
+ Object.defineProperty(_License.default, 'fixedFields', {
103
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.License.fixedFields),
104
+ enumerable: true
105
+ });
106
+ Object.defineProperty(_PathItem.default, 'fixedFields', {
107
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.PathItem.fixedFields),
108
+ enumerable: true
109
+ });
110
+ Object.defineProperty(_Operation.default, 'fixedFields', {
111
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Operation.fixedFields),
112
+ enumerable: true
113
+ });
114
+ Object.defineProperty(_ExternalDocumentation.default, 'fixedFields', {
115
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.ExternalDocumentation.fixedFields),
116
+ enumerable: true
117
+ });
118
+ Object.defineProperty(_Parameter.default, 'fixedFields', {
119
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Parameter.fixedFields),
120
+ enumerable: true
121
+ });
122
+ Object.defineProperty(_Items.default, 'fixedFields', {
123
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Items.fixedFields),
124
+ enumerable: true
125
+ });
126
+ Object.defineProperty(_Responses.default, 'fixedFields', {
127
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Responses.fixedFields),
128
+ enumerable: true
129
+ });
130
+ Object.defineProperty(_Response.default, 'fixedFields', {
131
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Response.fixedFields),
132
+ enumerable: true
133
+ });
134
+ Object.defineProperty(_Header.default, 'fixedFields', {
135
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Header.fixedFields),
136
+ enumerable: true
137
+ });
138
+ Object.defineProperty(_Tag.default, 'fixedFields', {
139
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Tag.fixedFields),
140
+ enumerable: true
141
+ });
142
+ Object.defineProperty(_Reference.default, 'fixedFields', {
143
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Reference.fixedFields),
144
+ enumerable: true
145
+ });
146
+ Object.defineProperty(_Schema.default, 'fixedFields', {
147
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Schema.fixedFields),
148
+ enumerable: true
149
+ });
150
+ Object.defineProperty(_Xml.default, 'fixedFields', {
151
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.XML.fixedFields),
152
+ enumerable: true
153
+ });
154
+ Object.defineProperty(_SecurityScheme.default, 'fixedFields', {
155
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.SecurityScheme.fixedFields),
156
+ enumerable: true
157
+ });
@@ -0,0 +1,126 @@
1
+ import { resolveSpecification } from '@speclynx/apidom-core';
2
+ import { isPlainObject } from 'ramda-adjunct';
3
+
4
+ /**
5
+ * OpenAPI 2.0 specification elements.
6
+ */
7
+ import SwaggerElement from "../elements/Swagger.mjs";
8
+ import SwaggerVersionElement from "../elements/SwaggerVersion.mjs";
9
+ import InfoElement from "../elements/Info.mjs";
10
+ import ContactElement from "../elements/Contact.mjs";
11
+ import LicenseElement from "../elements/License.mjs";
12
+ import PathsElement from "../elements/Paths.mjs";
13
+ import PathItemElement from "../elements/PathItem.mjs";
14
+ import OperationElement from "../elements/Operation.mjs";
15
+ import ExternalDocumentationElement from "../elements/ExternalDocumentation.mjs";
16
+ import ParameterElement from "../elements/Parameter.mjs";
17
+ import ItemsElement from "../elements/Items.mjs";
18
+ import ResponsesElement from "../elements/Responses.mjs";
19
+ import ResponseElement from "../elements/Response.mjs";
20
+ import HeadersElement from "../elements/Headers.mjs";
21
+ import ExampleElement from "../elements/Example.mjs";
22
+ import HeaderElement from "../elements/Header.mjs";
23
+ import TagElement from "../elements/Tag.mjs";
24
+ import ReferenceElement from "../elements/Reference.mjs";
25
+ import SchemaElement from "../elements/Schema.mjs";
26
+ import XmlElement from "../elements/Xml.mjs";
27
+ import DefinitionsElement from "../elements/Definitions.mjs";
28
+ import ParametersDefinitionsElement from "../elements/ParametersDefinitions.mjs";
29
+ import ResponsesDefinitionsElement from "../elements/ResponsesDefinitions.mjs";
30
+ import SecurityDefinitionsElement from "../elements/SecurityDefinitions.mjs";
31
+ import SecuritySchemeElement from "../elements/SecurityScheme.mjs";
32
+ import ScopesElement from "../elements/Scopes.mjs";
33
+ import SecurityRequirementElement from "../elements/SecurityRequirement.mjs";
34
+ import specification from "./specification.mjs";
35
+ /**
36
+ * @public
37
+ */
38
+ // Resolve specification to dereference $ref pointers
39
+ const resolvedSpec = resolveSpecification(specification);
40
+
41
+ // Extract fixed fields as list of { name, alias?, $visitor }
42
+ const getFixedFields = fixedFieldsSpec => {
43
+ return Object.entries(fixedFieldsSpec).map(([name, fieldSpec]) => {
44
+ if (isPlainObject(fieldSpec)) {
45
+ return {
46
+ name,
47
+ ...fieldSpec
48
+ };
49
+ }
50
+ return {
51
+ name,
52
+ $visitor: fieldSpec
53
+ };
54
+ });
55
+ };
56
+
57
+ // OpenAPI 2.0 specification elements
58
+ Object.defineProperty(SwaggerElement, 'fixedFields', {
59
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Swagger.fixedFields),
60
+ enumerable: true
61
+ });
62
+ Object.defineProperty(InfoElement, 'fixedFields', {
63
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Info.fixedFields),
64
+ enumerable: true
65
+ });
66
+ Object.defineProperty(ContactElement, 'fixedFields', {
67
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Contact.fixedFields),
68
+ enumerable: true
69
+ });
70
+ Object.defineProperty(LicenseElement, 'fixedFields', {
71
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.License.fixedFields),
72
+ enumerable: true
73
+ });
74
+ Object.defineProperty(PathItemElement, 'fixedFields', {
75
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.PathItem.fixedFields),
76
+ enumerable: true
77
+ });
78
+ Object.defineProperty(OperationElement, 'fixedFields', {
79
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Operation.fixedFields),
80
+ enumerable: true
81
+ });
82
+ Object.defineProperty(ExternalDocumentationElement, 'fixedFields', {
83
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.ExternalDocumentation.fixedFields),
84
+ enumerable: true
85
+ });
86
+ Object.defineProperty(ParameterElement, 'fixedFields', {
87
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Parameter.fixedFields),
88
+ enumerable: true
89
+ });
90
+ Object.defineProperty(ItemsElement, 'fixedFields', {
91
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Items.fixedFields),
92
+ enumerable: true
93
+ });
94
+ Object.defineProperty(ResponsesElement, 'fixedFields', {
95
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Responses.fixedFields),
96
+ enumerable: true
97
+ });
98
+ Object.defineProperty(ResponseElement, 'fixedFields', {
99
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Response.fixedFields),
100
+ enumerable: true
101
+ });
102
+ Object.defineProperty(HeaderElement, 'fixedFields', {
103
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Header.fixedFields),
104
+ enumerable: true
105
+ });
106
+ Object.defineProperty(TagElement, 'fixedFields', {
107
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Tag.fixedFields),
108
+ enumerable: true
109
+ });
110
+ Object.defineProperty(ReferenceElement, 'fixedFields', {
111
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Reference.fixedFields),
112
+ enumerable: true
113
+ });
114
+ Object.defineProperty(SchemaElement, 'fixedFields', {
115
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Schema.fixedFields),
116
+ enumerable: true
117
+ });
118
+ Object.defineProperty(XmlElement, 'fixedFields', {
119
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.XML.fixedFields),
120
+ enumerable: true
121
+ });
122
+ Object.defineProperty(SecuritySchemeElement, 'fixedFields', {
123
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.SecurityScheme.fixedFields),
124
+ enumerable: true
125
+ });
126
+ export { SwaggerElement, SwaggerVersionElement, InfoElement, ContactElement, LicenseElement, PathsElement, PathItemElement, OperationElement, ExternalDocumentationElement, ParameterElement, ItemsElement, ResponsesElement, ResponseElement, HeadersElement, ExampleElement, HeaderElement, TagElement, ReferenceElement, SchemaElement, XmlElement, DefinitionsElement, ParametersDefinitionsElement, ResponsesDefinitionsElement, SecurityDefinitionsElement, SecuritySchemeElement, ScopesElement, SecurityRequirementElement };