@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,350 @@
1
+ import { ArrayElement, ObjectElement, isStringElement, isElement, isMemberElement, isArrayElement, includesClasses, cloneDeep, toValue } from '@speclynx/apidom-core';
2
+
3
+ /**
4
+ * OpenAPI 2.0 specification elements.
5
+ */
6
+ import InfoElement from "../../elements/Info.mjs";
7
+ import ContactElement from "../../elements/Contact.mjs";
8
+ import LicenseElement from "../../elements/License.mjs";
9
+ import PathsElement from "../../elements/Paths.mjs";
10
+ import PathItemElement from "../../elements/PathItem.mjs";
11
+ import OperationElement from "../../elements/Operation.mjs";
12
+ import ExternalDocumentationElement from "../../elements/ExternalDocumentation.mjs";
13
+ import ParameterElement from "../../elements/Parameter.mjs";
14
+ import ItemsElement from "../../elements/Items.mjs";
15
+ import ResponsesElement from "../../elements/Responses.mjs";
16
+ import ResponseElement from "../../elements/Response.mjs";
17
+ import HeadersElement from "../../elements/Headers.mjs";
18
+ import ExampleElement from "../../elements/Example.mjs";
19
+ import HeaderElement from "../../elements/Header.mjs";
20
+ import TagElement from "../../elements/Tag.mjs";
21
+ import SchemaElement from "../../elements/Schema.mjs";
22
+ import XmlElement from "../../elements/Xml.mjs";
23
+ import DefinitionsElement from "../../elements/Definitions.mjs";
24
+ import ParametersDefinitionsElement from "../../elements/ParametersDefinitions.mjs";
25
+ import ResponsesDefinitionsElement from "../../elements/ResponsesDefinitions.mjs";
26
+ import SecurityDefinitionsElement from "../../elements/SecurityDefinitions.mjs";
27
+ import SecuritySchemeElement from "../../elements/SecurityScheme.mjs";
28
+ import ScopesElement from "../../elements/Scopes.mjs";
29
+ import SecurityRequirementElement from "../../elements/SecurityRequirement.mjs"; // non-concrete Elements (NCEs)
30
+ import OperationConsumesElement from "../../elements/nces/OperationConsumes.mjs";
31
+ import OperationParametersElement from "../../elements/nces/OperationParameters.mjs";
32
+ import OperationProducesElement from "../../elements/nces/OperationProduces.mjs";
33
+ import OperationSchemesElement from "../../elements/nces/OperationSchemes.mjs";
34
+ import OperationSecurityElement from "../../elements/nces/OperationSecurity.mjs";
35
+ import OperationTagsElement from "../../elements/nces/OperationTags.mjs";
36
+ import PathItemParametersElement from "../../elements/nces/PathItemParameters.mjs";
37
+ import SwaggerSchemesElement from "../../elements/nces/SwaggerSchemes.mjs";
38
+ import SwaggerConsumesElement from "../../elements/nces/SwaggerConsumes.mjs";
39
+ import SwaggerProducesElement from "../../elements/nces/SwaggerProduces.mjs";
40
+ import SwaggerSecurityElement from "../../elements/nces/SwaggerSecurity.mjs";
41
+ import SwaggerTagsElement from "../../elements/nces/SwaggerTags.mjs";
42
+ import { getNodeType } from "../../traversal/visitor.mjs";
43
+ /**
44
+ * This plugin is specific to YAML 1.2 format, which allows defining key-value pairs
45
+ * with empty key, empty value, or both. If the value is not provided in YAML format,
46
+ * this plugin compensates for this missing value with the most appropriate semantic element type.
47
+ *
48
+ * https://yaml.org/spec/1.2.2/#72-empty-nodes
49
+ *
50
+ * @example
51
+ *
52
+ * ```yaml
53
+ * swagger: "2.0"
54
+ * info:
55
+ * ```
56
+ * Refracting result without this plugin:
57
+ *
58
+ * (SwaggerElement
59
+ * (MemberElement
60
+ * (StringElement)
61
+ * (SwaggerVersionElement))
62
+ * (MemberElement
63
+ * (StringElement)
64
+ * (StringElement))
65
+ *
66
+ * Refracting result with this plugin:
67
+ *
68
+ * (SwaggerElement
69
+ * (MemberElement
70
+ * (StringElement)
71
+ * (SwaggerVersionElement))
72
+ * (MemberElement
73
+ * (StringElement)
74
+ * (InfoElement))
75
+ */
76
+ const isEmptyElement = element => isStringElement(element) && includesClasses(['yaml-e-node', 'yaml-e-scalar'], element);
77
+ const schema = {
78
+ // concrete types handling (CTs)
79
+ SwaggerElement: {
80
+ info(...args) {
81
+ return new InfoElement(...args);
82
+ },
83
+ schemes(...args) {
84
+ return new SwaggerSchemesElement(...args);
85
+ },
86
+ consumes(...args) {
87
+ return new SwaggerConsumesElement(...args);
88
+ },
89
+ produces(...args) {
90
+ return new SwaggerProducesElement(...args);
91
+ },
92
+ paths(...args) {
93
+ return new PathsElement(...args);
94
+ },
95
+ definitions(...args) {
96
+ return new DefinitionsElement(...args);
97
+ },
98
+ parameters(...args) {
99
+ return new ParametersDefinitionsElement(...args);
100
+ },
101
+ responses(...args) {
102
+ return new ResponsesDefinitionsElement(...args);
103
+ },
104
+ securityDefinitions(...args) {
105
+ return new SecurityDefinitionsElement(...args);
106
+ },
107
+ security(...args) {
108
+ return new SwaggerSecurityElement(...args);
109
+ },
110
+ tags(...args) {
111
+ return new SwaggerTagsElement(...args);
112
+ },
113
+ externalDocs(...args) {
114
+ return new ExternalDocumentationElement(...args);
115
+ }
116
+ },
117
+ InfoElement: {
118
+ contact(...args) {
119
+ return new ContactElement(...args);
120
+ },
121
+ license(...args) {
122
+ return new LicenseElement(...args);
123
+ }
124
+ },
125
+ PathsElement: {
126
+ '[key: *]': function key(...args) {
127
+ return new PathItemElement(...args);
128
+ }
129
+ },
130
+ PathItemElement: {
131
+ get(...args) {
132
+ return new OperationElement(...args);
133
+ },
134
+ put(...args) {
135
+ return new OperationElement(...args);
136
+ },
137
+ post(...args) {
138
+ return new OperationElement(...args);
139
+ },
140
+ delete(...args) {
141
+ return new OperationElement(...args);
142
+ },
143
+ options(...args) {
144
+ return new OperationElement(...args);
145
+ },
146
+ head(...args) {
147
+ return new OperationElement(...args);
148
+ },
149
+ patch(...args) {
150
+ return new OperationElement(...args);
151
+ },
152
+ parameters(...args) {
153
+ return new PathItemParametersElement(...args);
154
+ }
155
+ },
156
+ OperationElement: {
157
+ tags(...args) {
158
+ return new OperationTagsElement(...args);
159
+ },
160
+ externalDocs(...args) {
161
+ return new ExternalDocumentationElement(...args);
162
+ },
163
+ consumes(...args) {
164
+ return new OperationConsumesElement(...args);
165
+ },
166
+ produces(...args) {
167
+ return new OperationProducesElement(...args);
168
+ },
169
+ parameters(...args) {
170
+ return new OperationParametersElement(...args);
171
+ },
172
+ responses(...args) {
173
+ return new ResponsesElement(...args);
174
+ },
175
+ schemes(...args) {
176
+ return new OperationSchemesElement(...args);
177
+ },
178
+ security(...args) {
179
+ return new OperationSecurityElement(...args);
180
+ }
181
+ },
182
+ ParameterElement: {
183
+ schema(...args) {
184
+ return new SchemaElement(...args);
185
+ },
186
+ items(...args) {
187
+ return new ItemsElement(...args);
188
+ }
189
+ },
190
+ ItemsElement: {
191
+ items(...args) {
192
+ return new ItemsElement(...args);
193
+ }
194
+ },
195
+ ResponsesElement: {
196
+ '[key: *]': function key(...args) {
197
+ return new ResponseElement(...args);
198
+ }
199
+ },
200
+ ResponseElement: {
201
+ schema(...args) {
202
+ return new SchemaElement(...args);
203
+ },
204
+ headers(...args) {
205
+ return new HeadersElement(...args);
206
+ },
207
+ examples(...args) {
208
+ return new ExampleElement(...args);
209
+ }
210
+ },
211
+ HeadersElement: {
212
+ '[key: *]': function key(...args) {
213
+ return new HeaderElement(...args);
214
+ }
215
+ },
216
+ HeaderElement: {
217
+ items(...args) {
218
+ return new ItemsElement(...args);
219
+ }
220
+ },
221
+ TagElement: {
222
+ externalDocs(...args) {
223
+ return new ExternalDocumentationElement(...args);
224
+ }
225
+ },
226
+ SchemaElement: {
227
+ items(...args) {
228
+ return new SchemaElement(...args);
229
+ },
230
+ allOf(...args) {
231
+ const element = new ArrayElement(...args);
232
+ element.classes.push('json-schema-allOf');
233
+ return element;
234
+ },
235
+ properties(...args) {
236
+ const element = new ObjectElement(...args);
237
+ element.classes.push('json-schema-properties');
238
+ return element;
239
+ },
240
+ additionalProperties(...args) {
241
+ return new SchemaElement(...args);
242
+ },
243
+ xml(...args) {
244
+ return new XmlElement(...args);
245
+ },
246
+ externalDocs(...args) {
247
+ return new ExternalDocumentationElement(...args);
248
+ }
249
+ },
250
+ DefinitionsElement: {
251
+ '[key: *]': function key(...args) {
252
+ return new SchemaElement(...args);
253
+ }
254
+ },
255
+ ParametersDefinitionsElement: {
256
+ '[key: *]': function key(...args) {
257
+ return new ParameterElement(...args);
258
+ }
259
+ },
260
+ ResponsesDefinitionsElement: {
261
+ '[key: *]': function key(...args) {
262
+ return new ResponseElement(...args);
263
+ }
264
+ },
265
+ SecurityDefinitionsElement: {
266
+ '[key: *]': function key(...args) {
267
+ return new SecuritySchemeElement(...args);
268
+ }
269
+ },
270
+ SecuritySchemeElement: {
271
+ scopes(...args) {
272
+ return new ScopesElement(...args);
273
+ }
274
+ },
275
+ SecurityRequirementElement: {
276
+ '[key: *]': function key(...args) {
277
+ return new ArrayElement(...args);
278
+ }
279
+ },
280
+ // non-concrete types handling (NCEs)
281
+ [OperationParametersElement.primaryClass]: {
282
+ '<*>': function asterisk(...args) {
283
+ return new ParameterElement(...args);
284
+ }
285
+ },
286
+ [OperationSecurityElement.primaryClass]: {
287
+ '<*>': function asterisk(...args) {
288
+ return new SecurityRequirementElement(...args);
289
+ }
290
+ },
291
+ [PathItemParametersElement.primaryClass]: {
292
+ '<*>': function asterisk(...args) {
293
+ return new ParameterElement(...args);
294
+ }
295
+ },
296
+ [SwaggerSecurityElement.primaryClass]: {
297
+ '<*>': function asterisk(...args) {
298
+ return new SecurityRequirementElement(...args);
299
+ }
300
+ },
301
+ [SwaggerTagsElement.primaryClass]: {
302
+ '<*>': function asterisk(...args) {
303
+ return new TagElement(...args);
304
+ }
305
+ },
306
+ 'json-schema-properties': {
307
+ '[key: *]': function key(...args) {
308
+ return new SchemaElement(...args);
309
+ }
310
+ },
311
+ 'json-schema-allOf': {
312
+ '<*>': function asterisk(...args) {
313
+ return new SchemaElement(...args);
314
+ }
315
+ }
316
+ };
317
+ const findElementFactory = (ancestor, keyName) => {
318
+ const elementType = getNodeType(ancestor); // @ts-ignore
319
+ const keyMapping = schema[elementType] || schema[toValue(ancestor.classes.first)];
320
+ return typeof keyMapping === 'undefined' ? undefined : Object.hasOwn(keyMapping, '[key: *]') ? keyMapping['[key: *]'] : keyMapping[keyName];
321
+ };
322
+
323
+ /**
324
+ * @public
325
+ */
326
+ const plugin = () => () => ({
327
+ visitor: {
328
+ StringElement(element, key, parent, path, ancestors) {
329
+ if (!isEmptyElement(element)) return undefined;
330
+ const lineage = [...ancestors, parent].filter(isElement);
331
+ const parentElement = lineage.at(-1);
332
+ let elementFactory;
333
+ let context;
334
+ if (isArrayElement(parentElement)) {
335
+ context = element;
336
+ elementFactory = findElementFactory(parentElement, '<*>');
337
+ } else if (isMemberElement(parentElement)) {
338
+ context = lineage.at(-2);
339
+ elementFactory = findElementFactory(context, toValue(parentElement.key));
340
+ }
341
+
342
+ // no element factory found
343
+ if (typeof elementFactory !== 'function') return undefined;
344
+ return elementFactory.call({
345
+ context
346
+ }, undefined, cloneDeep(element.meta), cloneDeep(element.attributes));
347
+ }
348
+ }
349
+ });
350
+ export default plugin;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.isSwaggerExtension = exports.isReferenceLikeElement = void 0;
5
+ var _ramda = require("ramda");
6
+ var _apidomCore = require("@speclynx/apidom-core");
7
+ /**
8
+ * @public
9
+ */
10
+
11
+ /**
12
+ * @public
13
+ */
14
+ const isSwaggerExtension = element => {
15
+ return (0, _apidomCore.isStringElement)(element.key) && (0, _ramda.startsWith)('x-', (0, _apidomCore.toValue)(element.key));
16
+ };
17
+
18
+ /**
19
+ * @public
20
+ */
21
+ exports.isSwaggerExtension = isSwaggerExtension;
22
+ const isReferenceLikeElement = element => {
23
+ return (0, _apidomCore.isObjectElement)(element) && element.hasKey('$ref');
24
+ };
25
+ exports.isReferenceLikeElement = isReferenceLikeElement;
@@ -0,0 +1,20 @@
1
+ import { startsWith } from 'ramda';
2
+ import { isStringElement, toValue, isObjectElement } from '@speclynx/apidom-core';
3
+
4
+ /**
5
+ * @public
6
+ */
7
+
8
+ /**
9
+ * @public
10
+ */
11
+ export const isSwaggerExtension = element => {
12
+ return isStringElement(element.key) && startsWith('x-', toValue(element.key));
13
+ };
14
+
15
+ /**
16
+ * @public
17
+ */
18
+ export const isReferenceLikeElement = element => {
19
+ return isObjectElement(element) && element.hasKey('$ref');
20
+ };
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ exports.__esModule = true;
5
+ var _Swagger = _interopRequireDefault(require("../elements/Swagger.cjs"));
6
+ exports.SwaggerElement = _Swagger.default;
7
+ var _SwaggerVersion = _interopRequireDefault(require("../elements/SwaggerVersion.cjs"));
8
+ exports.SwaggerVersionElement = _SwaggerVersion.default;
9
+ var _Info = _interopRequireDefault(require("../elements/Info.cjs"));
10
+ exports.InfoElement = _Info.default;
11
+ var _Contact = _interopRequireDefault(require("../elements/Contact.cjs"));
12
+ exports.ContactElement = _Contact.default;
13
+ var _License = _interopRequireDefault(require("../elements/License.cjs"));
14
+ exports.LicenseElement = _License.default;
15
+ var _Paths = _interopRequireDefault(require("../elements/Paths.cjs"));
16
+ exports.PathsElement = _Paths.default;
17
+ var _PathItem = _interopRequireDefault(require("../elements/PathItem.cjs"));
18
+ exports.PathItemElement = _PathItem.default;
19
+ var _Operation = _interopRequireDefault(require("../elements/Operation.cjs"));
20
+ exports.OperationElement = _Operation.default;
21
+ var _ExternalDocumentation = _interopRequireDefault(require("../elements/ExternalDocumentation.cjs"));
22
+ exports.ExternalDocumentationElement = _ExternalDocumentation.default;
23
+ var _Parameter = _interopRequireDefault(require("../elements/Parameter.cjs"));
24
+ exports.ParameterElement = _Parameter.default;
25
+ var _Items = _interopRequireDefault(require("../elements/Items.cjs"));
26
+ exports.ItemsElement = _Items.default;
27
+ var _Responses = _interopRequireDefault(require("../elements/Responses.cjs"));
28
+ exports.ResponsesElement = _Responses.default;
29
+ var _Response = _interopRequireDefault(require("../elements/Response.cjs"));
30
+ exports.ResponseElement = _Response.default;
31
+ var _Headers = _interopRequireDefault(require("../elements/Headers.cjs"));
32
+ exports.HeadersElement = _Headers.default;
33
+ var _Example = _interopRequireDefault(require("../elements/Example.cjs"));
34
+ exports.ExampleElement = _Example.default;
35
+ var _Header = _interopRequireDefault(require("../elements/Header.cjs"));
36
+ exports.HeaderElement = _Header.default;
37
+ var _Tag = _interopRequireDefault(require("../elements/Tag.cjs"));
38
+ exports.TagElement = _Tag.default;
39
+ var _Reference = _interopRequireDefault(require("../elements/Reference.cjs"));
40
+ exports.ReferenceElement = _Reference.default;
41
+ var _Schema = _interopRequireDefault(require("../elements/Schema.cjs"));
42
+ exports.SchemaElement = _Schema.default;
43
+ var _Xml = _interopRequireDefault(require("../elements/Xml.cjs"));
44
+ exports.XmlElement = _Xml.default;
45
+ var _Definitions = _interopRequireDefault(require("../elements/Definitions.cjs"));
46
+ exports.DefinitionsElement = _Definitions.default;
47
+ var _ParametersDefinitions = _interopRequireDefault(require("../elements/ParametersDefinitions.cjs"));
48
+ exports.ParametersDefinitionsElement = _ParametersDefinitions.default;
49
+ var _ResponsesDefinitions = _interopRequireDefault(require("../elements/ResponsesDefinitions.cjs"));
50
+ exports.ResponsesDefinitionsElement = _ResponsesDefinitions.default;
51
+ var _SecurityDefinitions = _interopRequireDefault(require("../elements/SecurityDefinitions.cjs"));
52
+ exports.SecurityDefinitionsElement = _SecurityDefinitions.default;
53
+ var _SecurityScheme = _interopRequireDefault(require("../elements/SecurityScheme.cjs"));
54
+ exports.SecuritySchemeElement = _SecurityScheme.default;
55
+ var _Scopes = _interopRequireDefault(require("../elements/Scopes.cjs"));
56
+ exports.ScopesElement = _Scopes.default;
57
+ var _SecurityRequirement = _interopRequireDefault(require("../elements/SecurityRequirement.cjs"));
58
+ exports.SecurityRequirementElement = _SecurityRequirement.default;
59
+ var _index = require("./index.cjs");
60
+ // register refractors specific to element types
61
+ _Swagger.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'Swagger', '$visitor']);
62
+ _SwaggerVersion.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'SwaggerVersion', '$visitor']);
63
+ _Info.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'Info', '$visitor']);
64
+ _Contact.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'Contact', '$visitor']);
65
+ _License.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'License', '$visitor']);
66
+ _Paths.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'Paths', '$visitor']);
67
+ _PathItem.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'PathItem', '$visitor']);
68
+ _Operation.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'Operation', '$visitor']);
69
+ _ExternalDocumentation.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'ExternalDocumentation', '$visitor']);
70
+ _Parameter.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'Parameter', '$visitor']);
71
+ _Items.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'Items', '$visitor']);
72
+ _Responses.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'Responses', '$visitor']);
73
+ _Response.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'Response', '$visitor']);
74
+ _Headers.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'Headers', '$visitor']);
75
+ _Example.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'Example', '$visitor']);
76
+ _Header.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'Header', '$visitor']);
77
+ _Tag.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'Tag', '$visitor']);
78
+ _Reference.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'Reference', '$visitor']);
79
+ _Schema.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'Schema', '$visitor']);
80
+ _Xml.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'XML', '$visitor']);
81
+ _Definitions.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'Definitions', '$visitor']);
82
+ _ParametersDefinitions.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'ParametersDefinitions', '$visitor']);
83
+ _ResponsesDefinitions.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'ResponsesDefinitions', '$visitor']);
84
+ _SecurityDefinitions.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'SecurityDefinitions', '$visitor']);
85
+ _SecurityScheme.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'SecurityScheme', '$visitor']);
86
+ _Scopes.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'Scopes', '$visitor']);
87
+ _SecurityRequirement.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'SecurityRequirement', '$visitor']);
@@ -0,0 +1,56 @@
1
+ import SwaggerElement from "../elements/Swagger.mjs";
2
+ import SwaggerVersionElement from "../elements/SwaggerVersion.mjs";
3
+ import InfoElement from "../elements/Info.mjs";
4
+ import ContactElement from "../elements/Contact.mjs";
5
+ import LicenseElement from "../elements/License.mjs";
6
+ import PathsElement from "../elements/Paths.mjs";
7
+ import PathItemElement from "../elements/PathItem.mjs";
8
+ import OperationElement from "../elements/Operation.mjs";
9
+ import ExternalDocumentationElement from "../elements/ExternalDocumentation.mjs";
10
+ import ParameterElement from "../elements/Parameter.mjs";
11
+ import ItemsElement from "../elements/Items.mjs";
12
+ import ResponsesElement from "../elements/Responses.mjs";
13
+ import ResponseElement from "../elements/Response.mjs";
14
+ import HeadersElement from "../elements/Headers.mjs";
15
+ import ExampleElement from "../elements/Example.mjs";
16
+ import HeaderElement from "../elements/Header.mjs";
17
+ import TagElement from "../elements/Tag.mjs";
18
+ import ReferenceElement from "../elements/Reference.mjs";
19
+ import SchemaElement from "../elements/Schema.mjs";
20
+ import XmlElement from "../elements/Xml.mjs";
21
+ import DefinitionsElement from "../elements/Definitions.mjs";
22
+ import ParametersDefinitionsElement from "../elements/ParametersDefinitions.mjs";
23
+ import ResponsesDefinitionsElement from "../elements/ResponsesDefinitions.mjs";
24
+ import SecurityDefinitionsElement from "../elements/SecurityDefinitions.mjs";
25
+ import SecuritySchemeElement from "../elements/SecurityScheme.mjs";
26
+ import ScopesElement from "../elements/Scopes.mjs";
27
+ import SecurityRequirementElement from "../elements/SecurityRequirement.mjs";
28
+ import { createRefractor } from "./index.mjs"; // register refractors specific to element types
29
+ SwaggerElement.refract = createRefractor(['visitors', 'document', 'objects', 'Swagger', '$visitor']);
30
+ SwaggerVersionElement.refract = createRefractor(['visitors', 'document', 'objects', 'SwaggerVersion', '$visitor']);
31
+ InfoElement.refract = createRefractor(['visitors', 'document', 'objects', 'Info', '$visitor']);
32
+ ContactElement.refract = createRefractor(['visitors', 'document', 'objects', 'Contact', '$visitor']);
33
+ LicenseElement.refract = createRefractor(['visitors', 'document', 'objects', 'License', '$visitor']);
34
+ PathsElement.refract = createRefractor(['visitors', 'document', 'objects', 'Paths', '$visitor']);
35
+ PathItemElement.refract = createRefractor(['visitors', 'document', 'objects', 'PathItem', '$visitor']);
36
+ OperationElement.refract = createRefractor(['visitors', 'document', 'objects', 'Operation', '$visitor']);
37
+ ExternalDocumentationElement.refract = createRefractor(['visitors', 'document', 'objects', 'ExternalDocumentation', '$visitor']);
38
+ ParameterElement.refract = createRefractor(['visitors', 'document', 'objects', 'Parameter', '$visitor']);
39
+ ItemsElement.refract = createRefractor(['visitors', 'document', 'objects', 'Items', '$visitor']);
40
+ ResponsesElement.refract = createRefractor(['visitors', 'document', 'objects', 'Responses', '$visitor']);
41
+ ResponseElement.refract = createRefractor(['visitors', 'document', 'objects', 'Response', '$visitor']);
42
+ HeadersElement.refract = createRefractor(['visitors', 'document', 'objects', 'Headers', '$visitor']);
43
+ ExampleElement.refract = createRefractor(['visitors', 'document', 'objects', 'Example', '$visitor']);
44
+ HeaderElement.refract = createRefractor(['visitors', 'document', 'objects', 'Header', '$visitor']);
45
+ TagElement.refract = createRefractor(['visitors', 'document', 'objects', 'Tag', '$visitor']);
46
+ ReferenceElement.refract = createRefractor(['visitors', 'document', 'objects', 'Reference', '$visitor']);
47
+ SchemaElement.refract = createRefractor(['visitors', 'document', 'objects', 'Schema', '$visitor']);
48
+ XmlElement.refract = createRefractor(['visitors', 'document', 'objects', 'XML', '$visitor']);
49
+ DefinitionsElement.refract = createRefractor(['visitors', 'document', 'objects', 'Definitions', '$visitor']);
50
+ ParametersDefinitionsElement.refract = createRefractor(['visitors', 'document', 'objects', 'ParametersDefinitions', '$visitor']);
51
+ ResponsesDefinitionsElement.refract = createRefractor(['visitors', 'document', 'objects', 'ResponsesDefinitions', '$visitor']);
52
+ SecurityDefinitionsElement.refract = createRefractor(['visitors', 'document', 'objects', 'SecurityDefinitions', '$visitor']);
53
+ SecuritySchemeElement.refract = createRefractor(['visitors', 'document', 'objects', 'SecurityScheme', '$visitor']);
54
+ ScopesElement.refract = createRefractor(['visitors', 'document', 'objects', 'Scopes', '$visitor']);
55
+ SecurityRequirementElement.refract = createRefractor(['visitors', 'document', 'objects', 'SecurityRequirement', '$visitor']);
56
+ 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 };