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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/NOTICE +16 -7
  3. package/README.md +18 -13
  4. package/dist/apidom-ns-openapi-2.browser.js +9354 -13260
  5. package/dist/apidom-ns-openapi-2.browser.min.js +1 -1
  6. package/package.json +10 -9
  7. package/src/elements/Contact.cjs +2 -2
  8. package/src/elements/Contact.mjs +1 -1
  9. package/src/elements/Definitions.cjs +2 -2
  10. package/src/elements/Definitions.mjs +1 -1
  11. package/src/elements/Example.cjs +2 -2
  12. package/src/elements/Example.mjs +1 -1
  13. package/src/elements/ExternalDocumentation.cjs +2 -2
  14. package/src/elements/ExternalDocumentation.mjs +1 -1
  15. package/src/elements/Header.cjs +10 -10
  16. package/src/elements/Header.mjs +10 -10
  17. package/src/elements/Headers.cjs +2 -2
  18. package/src/elements/Headers.mjs +1 -1
  19. package/src/elements/Info.cjs +2 -2
  20. package/src/elements/Info.mjs +1 -1
  21. package/src/elements/Items.cjs +10 -10
  22. package/src/elements/Items.mjs +10 -10
  23. package/src/elements/License.cjs +2 -2
  24. package/src/elements/License.mjs +1 -1
  25. package/src/elements/Operation.cjs +3 -3
  26. package/src/elements/Operation.mjs +1 -1
  27. package/src/elements/Parameter.cjs +11 -11
  28. package/src/elements/Parameter.mjs +11 -11
  29. package/src/elements/ParametersDefinitions.cjs +2 -2
  30. package/src/elements/ParametersDefinitions.mjs +1 -1
  31. package/src/elements/PathItem.cjs +23 -23
  32. package/src/elements/PathItem.mjs +22 -22
  33. package/src/elements/Paths.cjs +2 -2
  34. package/src/elements/Paths.mjs +1 -1
  35. package/src/elements/Reference.cjs +2 -2
  36. package/src/elements/Reference.mjs +1 -1
  37. package/src/elements/Response.cjs +2 -2
  38. package/src/elements/Response.mjs +1 -1
  39. package/src/elements/Responses.cjs +2 -2
  40. package/src/elements/Responses.mjs +1 -1
  41. package/src/elements/ResponsesDefinitions.cjs +2 -2
  42. package/src/elements/ResponsesDefinitions.mjs +1 -1
  43. package/src/elements/Schema.cjs +43 -8
  44. package/src/elements/Schema.mjs +43 -9
  45. package/src/elements/Scopes.cjs +2 -2
  46. package/src/elements/Scopes.mjs +1 -1
  47. package/src/elements/SecurityDefinitions.cjs +2 -2
  48. package/src/elements/SecurityDefinitions.mjs +1 -1
  49. package/src/elements/SecurityRequirement.cjs +2 -2
  50. package/src/elements/SecurityRequirement.mjs +1 -1
  51. package/src/elements/SecurityScheme.cjs +2 -2
  52. package/src/elements/SecurityScheme.mjs +1 -1
  53. package/src/elements/Swagger.cjs +2 -2
  54. package/src/elements/Swagger.mjs +1 -1
  55. package/src/elements/SwaggerVersion.cjs +2 -2
  56. package/src/elements/SwaggerVersion.mjs +1 -1
  57. package/src/elements/Tag.cjs +2 -2
  58. package/src/elements/Tag.mjs +1 -1
  59. package/src/elements/Xml.cjs +2 -2
  60. package/src/elements/Xml.mjs +1 -1
  61. package/src/elements/nces/OperationConsumes.cjs +2 -2
  62. package/src/elements/nces/OperationConsumes.mjs +1 -1
  63. package/src/elements/nces/OperationParameters.cjs +2 -2
  64. package/src/elements/nces/OperationParameters.mjs +1 -1
  65. package/src/elements/nces/OperationProduces.cjs +2 -2
  66. package/src/elements/nces/OperationProduces.mjs +1 -1
  67. package/src/elements/nces/OperationSchemes.cjs +2 -2
  68. package/src/elements/nces/OperationSchemes.mjs +1 -1
  69. package/src/elements/nces/OperationSecurity.cjs +2 -2
  70. package/src/elements/nces/OperationSecurity.mjs +1 -1
  71. package/src/elements/nces/OperationTags.cjs +2 -2
  72. package/src/elements/nces/OperationTags.mjs +1 -1
  73. package/src/elements/nces/PathItemParameters.cjs +2 -2
  74. package/src/elements/nces/PathItemParameters.mjs +1 -1
  75. package/src/elements/nces/SwaggerConsumes.cjs +2 -2
  76. package/src/elements/nces/SwaggerConsumes.mjs +1 -1
  77. package/src/elements/nces/SwaggerProduces.cjs +2 -2
  78. package/src/elements/nces/SwaggerProduces.mjs +1 -1
  79. package/src/elements/nces/SwaggerSchemes.cjs +2 -2
  80. package/src/elements/nces/SwaggerSchemes.mjs +1 -1
  81. package/src/elements/nces/SwaggerSecurity.cjs +2 -2
  82. package/src/elements/nces/SwaggerSecurity.mjs +1 -1
  83. package/src/elements/nces/SwaggerTags.cjs +2 -2
  84. package/src/elements/nces/SwaggerTags.mjs +1 -1
  85. package/src/index.cjs +65 -45
  86. package/src/index.mjs +6 -5
  87. package/src/namespace.mjs +2 -2
  88. package/src/predicates.cjs +54 -190
  89. package/src/predicates.mjs +27 -190
  90. package/src/refractor/index.cjs +279 -17
  91. package/src/refractor/index.mjs +251 -16
  92. package/src/refractor/inspect.cjs +157 -0
  93. package/src/refractor/inspect.mjs +126 -0
  94. package/src/refractor/plugins/replace-empty-element.cjs +20 -14
  95. package/src/refractor/plugins/replace-empty-element.mjs +14 -8
  96. package/src/refractor/predicates.cjs +3 -2
  97. package/src/refractor/predicates.mjs +2 -1
  98. package/src/refractor/specification.cjs +41 -12
  99. package/src/refractor/specification.mjs +41 -12
  100. package/src/refractor/toolbox.cjs +8 -3
  101. package/src/refractor/toolbox.mjs +6 -2
  102. package/src/refractor/visitors/FallbackVisitor.cjs +4 -4
  103. package/src/refractor/visitors/FallbackVisitor.mjs +4 -4
  104. package/src/refractor/visitors/SpecificationExtensionVisitor.cjs +4 -4
  105. package/src/refractor/visitors/SpecificationExtensionVisitor.mjs +4 -4
  106. package/src/refractor/visitors/SpecificationVisitor.cjs +4 -3
  107. package/src/refractor/visitors/SpecificationVisitor.mjs +3 -2
  108. package/src/refractor/visitors/Visitor.cjs +10 -8
  109. package/src/refractor/visitors/Visitor.mjs +11 -9
  110. package/src/refractor/visitors/generics/AlternatingVisitor.cjs +3 -3
  111. package/src/refractor/visitors/generics/AlternatingVisitor.mjs +3 -3
  112. package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +10 -7
  113. package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +9 -6
  114. package/src/refractor/visitors/generics/MixedFieldsVisitor.cjs +13 -6
  115. package/src/refractor/visitors/generics/MixedFieldsVisitor.mjs +13 -6
  116. package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +9 -6
  117. package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +8 -5
  118. package/src/refractor/visitors/open-api-2/BasePathVisitor.cjs +2 -3
  119. package/src/refractor/visitors/open-api-2/BasePathVisitor.mjs +2 -3
  120. package/src/refractor/visitors/open-api-2/ConsumesVisitor.cjs +5 -4
  121. package/src/refractor/visitors/open-api-2/ConsumesVisitor.mjs +4 -3
  122. package/src/refractor/visitors/open-api-2/HostVisitor.cjs +2 -3
  123. package/src/refractor/visitors/open-api-2/HostVisitor.mjs +2 -3
  124. package/src/refractor/visitors/open-api-2/ProducesVisitor.cjs +5 -4
  125. package/src/refractor/visitors/open-api-2/ProducesVisitor.mjs +4 -3
  126. package/src/refractor/visitors/open-api-2/SchemesVisitor.cjs +5 -4
  127. package/src/refractor/visitors/open-api-2/SchemesVisitor.mjs +4 -3
  128. package/src/refractor/visitors/open-api-2/SecurityVisitor.cjs +5 -11
  129. package/src/refractor/visitors/open-api-2/SecurityVisitor.mjs +5 -10
  130. package/src/refractor/visitors/open-api-2/SwaggerVisitor.cjs +5 -10
  131. package/src/refractor/visitors/open-api-2/SwaggerVisitor.mjs +6 -10
  132. package/src/refractor/visitors/open-api-2/TagsVisitor.cjs +5 -11
  133. package/src/refractor/visitors/open-api-2/TagsVisitor.mjs +5 -10
  134. package/src/refractor/visitors/open-api-2/bases.cjs +72 -0
  135. package/src/refractor/visitors/open-api-2/bases.mjs +67 -0
  136. package/src/refractor/visitors/open-api-2/contact/index.cjs +2 -8
  137. package/src/refractor/visitors/open-api-2/contact/index.mjs +2 -7
  138. package/src/refractor/visitors/open-api-2/definitions/index.cjs +5 -12
  139. package/src/refractor/visitors/open-api-2/definitions/index.mjs +5 -11
  140. package/src/refractor/visitors/open-api-2/example/index.cjs +2 -8
  141. package/src/refractor/visitors/open-api-2/example/index.mjs +2 -7
  142. package/src/refractor/visitors/open-api-2/external-documentation/index.cjs +2 -8
  143. package/src/refractor/visitors/open-api-2/external-documentation/index.mjs +2 -7
  144. package/src/refractor/visitors/open-api-2/header/index.cjs +2 -8
  145. package/src/refractor/visitors/open-api-2/header/index.mjs +2 -7
  146. package/src/refractor/visitors/open-api-2/headers/index.cjs +2 -8
  147. package/src/refractor/visitors/open-api-2/headers/index.mjs +2 -7
  148. package/src/refractor/visitors/open-api-2/index.cjs +2 -8
  149. package/src/refractor/visitors/open-api-2/index.mjs +2 -7
  150. package/src/refractor/visitors/open-api-2/info/VersionVisitor.cjs +2 -3
  151. package/src/refractor/visitors/open-api-2/info/VersionVisitor.mjs +2 -3
  152. package/src/refractor/visitors/open-api-2/info/index.cjs +2 -8
  153. package/src/refractor/visitors/open-api-2/info/index.mjs +2 -7
  154. package/src/refractor/visitors/open-api-2/items/index.cjs +2 -8
  155. package/src/refractor/visitors/open-api-2/items/index.mjs +2 -7
  156. package/src/refractor/visitors/open-api-2/license/index.cjs +2 -8
  157. package/src/refractor/visitors/open-api-2/license/index.mjs +2 -7
  158. package/src/refractor/visitors/open-api-2/operation/ConsumesVisitor.cjs +5 -4
  159. package/src/refractor/visitors/open-api-2/operation/ConsumesVisitor.mjs +4 -3
  160. package/src/refractor/visitors/open-api-2/operation/ParametersVisitor.cjs +6 -12
  161. package/src/refractor/visitors/open-api-2/operation/ParametersVisitor.mjs +6 -11
  162. package/src/refractor/visitors/open-api-2/operation/ProducesVisitor.cjs +5 -4
  163. package/src/refractor/visitors/open-api-2/operation/ProducesVisitor.mjs +4 -3
  164. package/src/refractor/visitors/open-api-2/operation/SchemesVisitor.cjs +5 -4
  165. package/src/refractor/visitors/open-api-2/operation/SchemesVisitor.mjs +4 -3
  166. package/src/refractor/visitors/open-api-2/operation/SecurityVisitor.cjs +5 -11
  167. package/src/refractor/visitors/open-api-2/operation/SecurityVisitor.mjs +5 -10
  168. package/src/refractor/visitors/open-api-2/operation/TagsVisitor.cjs +5 -4
  169. package/src/refractor/visitors/open-api-2/operation/TagsVisitor.mjs +4 -3
  170. package/src/refractor/visitors/open-api-2/operation/index.cjs +2 -8
  171. package/src/refractor/visitors/open-api-2/operation/index.mjs +2 -7
  172. package/src/refractor/visitors/open-api-2/parameter/index.cjs +2 -8
  173. package/src/refractor/visitors/open-api-2/parameter/index.mjs +2 -7
  174. package/src/refractor/visitors/open-api-2/parameters-definitions/index.cjs +2 -8
  175. package/src/refractor/visitors/open-api-2/parameters-definitions/index.mjs +2 -7
  176. package/src/refractor/visitors/open-api-2/path-item/$RefVisitor.cjs +2 -3
  177. package/src/refractor/visitors/open-api-2/path-item/$RefVisitor.mjs +2 -3
  178. package/src/refractor/visitors/open-api-2/path-item/ParametersVisitor.cjs +6 -12
  179. package/src/refractor/visitors/open-api-2/path-item/ParametersVisitor.mjs +6 -11
  180. package/src/refractor/visitors/open-api-2/path-item/index.cjs +8 -14
  181. package/src/refractor/visitors/open-api-2/path-item/index.mjs +7 -12
  182. package/src/refractor/visitors/open-api-2/paths/index.cjs +6 -13
  183. package/src/refractor/visitors/open-api-2/paths/index.mjs +6 -12
  184. package/src/refractor/visitors/open-api-2/reference/$RefVisitor.cjs +2 -3
  185. package/src/refractor/visitors/open-api-2/reference/$RefVisitor.mjs +2 -3
  186. package/src/refractor/visitors/open-api-2/reference/index.cjs +6 -13
  187. package/src/refractor/visitors/open-api-2/reference/index.mjs +5 -11
  188. package/src/refractor/visitors/open-api-2/response/index.cjs +2 -8
  189. package/src/refractor/visitors/open-api-2/response/index.mjs +2 -7
  190. package/src/refractor/visitors/open-api-2/responses/DefaultVisitor.cjs +6 -12
  191. package/src/refractor/visitors/open-api-2/responses/DefaultVisitor.mjs +6 -11
  192. package/src/refractor/visitors/open-api-2/responses/index.cjs +8 -14
  193. package/src/refractor/visitors/open-api-2/responses/index.mjs +8 -13
  194. package/src/refractor/visitors/open-api-2/responses-definitions/index.cjs +2 -8
  195. package/src/refractor/visitors/open-api-2/responses-definitions/index.mjs +2 -7
  196. package/src/refractor/visitors/open-api-2/schema/AllOfVisitor.cjs +3 -4
  197. package/src/refractor/visitors/open-api-2/schema/AllOfVisitor.mjs +3 -4
  198. package/src/refractor/visitors/open-api-2/schema/ItemsVisitor.cjs +9 -15
  199. package/src/refractor/visitors/open-api-2/schema/ItemsVisitor.mjs +8 -13
  200. package/src/refractor/visitors/open-api-2/schema/PropertiesVisitor.cjs +3 -4
  201. package/src/refractor/visitors/open-api-2/schema/PropertiesVisitor.mjs +3 -4
  202. package/src/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.cjs +3 -4
  203. package/src/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.mjs +3 -4
  204. package/src/refractor/visitors/open-api-2/schema/index.cjs +2 -8
  205. package/src/refractor/visitors/open-api-2/schema/index.mjs +2 -7
  206. package/src/refractor/visitors/open-api-2/scopes/index.cjs +2 -8
  207. package/src/refractor/visitors/open-api-2/scopes/index.mjs +2 -7
  208. package/src/refractor/visitors/open-api-2/security-definitions/index.cjs +2 -8
  209. package/src/refractor/visitors/open-api-2/security-definitions/index.mjs +2 -7
  210. package/src/refractor/visitors/open-api-2/security-requirement/index.cjs +2 -8
  211. package/src/refractor/visitors/open-api-2/security-requirement/index.mjs +2 -7
  212. package/src/refractor/visitors/open-api-2/security-scheme/index.cjs +2 -8
  213. package/src/refractor/visitors/open-api-2/security-scheme/index.mjs +2 -7
  214. package/src/refractor/visitors/open-api-2/tag/index.cjs +2 -8
  215. package/src/refractor/visitors/open-api-2/tag/index.mjs +2 -7
  216. package/src/refractor/visitors/open-api-2/xml/index.cjs +2 -8
  217. package/src/refractor/visitors/open-api-2/xml/index.mjs +2 -7
  218. package/types/apidom-ns-openapi-2.d.ts +541 -565
  219. package/src/refractor/registration.cjs +0 -87
  220. package/src/refractor/registration.mjs +0 -56
  221. package/src/traversal/visitor.cjs +0 -56
  222. package/src/traversal/visitor.mjs +0 -53
@@ -1,4 +1,3 @@
1
- import { createPredicate } from '@speclynx/apidom-core';
2
1
  import SwaggerElement from "./elements/Swagger.mjs";
3
2
  import SwaggerVersionElement from "./elements/SwaggerVersion.mjs";
4
3
  import InfoElement from "./elements/Info.mjs";
@@ -29,296 +28,134 @@ import ScopesElement from "./elements/Scopes.mjs";
29
28
  /**
30
29
  * @public
31
30
  */
32
- export const isSwaggerElement = createPredicate(({
33
- hasBasicElementProps,
34
- isElementType,
35
- primitiveEq
36
- }) => {
37
- return element => element instanceof SwaggerElement || hasBasicElementProps(element) && isElementType('swagger', element) && primitiveEq('object', element);
38
- });
31
+ export const isSwaggerElement = element => element instanceof SwaggerElement;
39
32
 
40
33
  /**
41
34
  * @public
42
35
  */
43
- export const isSwaggerVersionElement = createPredicate(({
44
- hasBasicElementProps,
45
- isElementType,
46
- primitiveEq
47
- }) => {
48
- return element => element instanceof SwaggerVersionElement || hasBasicElementProps(element) && isElementType('swaggerVersion', element) && primitiveEq('string', element);
49
- });
36
+ export const isSwaggerVersionElement = element => element instanceof SwaggerVersionElement;
50
37
 
51
38
  /**
52
39
  * @public
53
40
  */
54
- export const isInfoElement = createPredicate(({
55
- hasBasicElementProps,
56
- isElementType,
57
- primitiveEq
58
- }) => {
59
- return element => element instanceof InfoElement || hasBasicElementProps(element) && isElementType('info', element) && primitiveEq('object', element);
60
- });
41
+ export const isInfoElement = element => element instanceof InfoElement;
61
42
 
62
43
  /**
63
44
  * @public
64
45
  */
65
- export const isLicenseElement = createPredicate(({
66
- hasBasicElementProps,
67
- isElementType,
68
- primitiveEq
69
- }) => {
70
- return element => element instanceof LicenseElement || hasBasicElementProps(element) && isElementType('license', element) && primitiveEq('object', element);
71
- });
46
+ export const isLicenseElement = element => element instanceof LicenseElement;
72
47
 
73
48
  /**
74
49
  * @public
75
50
  */
76
- export const isContactElement = createPredicate(({
77
- hasBasicElementProps,
78
- isElementType,
79
- primitiveEq
80
- }) => {
81
- return element => element instanceof ContactElement || hasBasicElementProps(element) && isElementType('contact', element) && primitiveEq('object', element);
82
- });
51
+ export const isContactElement = element => element instanceof ContactElement;
83
52
 
84
53
  /**
85
54
  * @public
86
55
  */
87
- export const isPathsElement = createPredicate(({
88
- hasBasicElementProps,
89
- isElementType,
90
- primitiveEq
91
- }) => {
92
- return element => element instanceof PathsElement || hasBasicElementProps(element) && isElementType('paths', element) && primitiveEq('object', element);
93
- });
56
+ export const isPathsElement = element => element instanceof PathsElement;
94
57
 
95
58
  /**
96
59
  * @public
97
60
  */
98
- export const isPathItemElement = createPredicate(({
99
- hasBasicElementProps,
100
- isElementType,
101
- primitiveEq
102
- }) => {
103
- return element => element instanceof PathItemElement || hasBasicElementProps(element) && isElementType('pathItem', element) && primitiveEq('object', element);
104
- });
61
+ export const isPathItemElement = element => element instanceof PathItemElement;
105
62
 
106
63
  /**
107
64
  * @public
108
65
  */
109
- export const isOperationElement = createPredicate(({
110
- hasBasicElementProps,
111
- isElementType,
112
- primitiveEq
113
- }) => {
114
- return element => element instanceof OperationElement || hasBasicElementProps(element) && isElementType('operation', element) && primitiveEq('object', element);
115
- });
66
+ export const isOperationElement = element => element instanceof OperationElement;
116
67
 
117
68
  /**
118
69
  * @public
119
70
  */
120
- export const isExternalDocumentationElement = createPredicate(({
121
- hasBasicElementProps,
122
- isElementType,
123
- primitiveEq
124
- }) => {
125
- return element => element instanceof ExternalDocumentationElement || hasBasicElementProps(element) && isElementType('externalDocumentation', element) && primitiveEq('object', element);
126
- });
71
+ export const isExternalDocumentationElement = element => element instanceof ExternalDocumentationElement;
127
72
 
128
73
  /**
129
74
  * @public
130
75
  */
131
- export const isParameterElement = createPredicate(({
132
- hasBasicElementProps,
133
- isElementType,
134
- primitiveEq
135
- }) => {
136
- return element => element instanceof ParameterElement || hasBasicElementProps(element) && isElementType('parameter', element) && primitiveEq('object', element);
137
- });
76
+ export const isParameterElement = element => element instanceof ParameterElement;
138
77
 
139
78
  /**
140
79
  * @public
141
80
  */
142
- export const isItemsElement = createPredicate(({
143
- hasBasicElementProps,
144
- isElementType,
145
- primitiveEq
146
- }) => {
147
- return element => element instanceof ItemsElement || hasBasicElementProps(element) && isElementType('items', element) && primitiveEq('object', element);
148
- });
81
+ export const isItemsElement = element => element instanceof ItemsElement;
149
82
 
150
83
  /**
151
84
  * @public
152
85
  */
153
- export const isResponsesElement = createPredicate(({
154
- hasBasicElementProps,
155
- isElementType,
156
- primitiveEq
157
- }) => {
158
- return element => element instanceof ResponsesElement || hasBasicElementProps(element) && isElementType('responses', element) && primitiveEq('object', element);
159
- });
86
+ export const isResponsesElement = element => element instanceof ResponsesElement;
160
87
 
161
88
  /**
162
89
  * @public
163
90
  */
164
- export const isResponseElement = createPredicate(({
165
- hasBasicElementProps,
166
- isElementType,
167
- primitiveEq
168
- }) => {
169
- return element => element instanceof ResponseElement || hasBasicElementProps(element) && isElementType('response', element) && primitiveEq('object', element);
170
- });
91
+ export const isResponseElement = element => element instanceof ResponseElement;
171
92
 
172
93
  /**
173
94
  * @public
174
95
  */
175
- export const isHeadersElement = createPredicate(({
176
- hasBasicElementProps,
177
- isElementType,
178
- primitiveEq
179
- }) => {
180
- return element => element instanceof HeadersElement || hasBasicElementProps(element) && isElementType('headers', element) && primitiveEq('object', element);
181
- });
96
+ export const isHeadersElement = element => element instanceof HeadersElement;
182
97
 
183
98
  /**
184
99
  * @public
185
100
  */
186
- export const isExampleElement = createPredicate(({
187
- hasBasicElementProps,
188
- isElementType,
189
- primitiveEq
190
- }) => {
191
- return element => element instanceof ExampleElement || hasBasicElementProps(element) && isElementType('example', element) && primitiveEq('object', element);
192
- });
101
+ export const isExampleElement = element => element instanceof ExampleElement;
193
102
 
194
103
  /**
195
104
  * @public
196
105
  */
197
- export const isHeaderElement = createPredicate(({
198
- hasBasicElementProps,
199
- isElementType,
200
- primitiveEq
201
- }) => {
202
- return element => element instanceof HeaderElement || hasBasicElementProps(element) && isElementType('header', element) && primitiveEq('object', element);
203
- });
106
+ export const isHeaderElement = element => element instanceof HeaderElement;
204
107
 
205
108
  /**
206
109
  * @public
207
110
  */
208
- export const isTagElement = createPredicate(({
209
- hasBasicElementProps,
210
- isElementType,
211
- primitiveEq
212
- }) => {
213
- return element => element instanceof TagElement || hasBasicElementProps(element) && isElementType('tag', element) && primitiveEq('object', element);
214
- });
111
+ export const isTagElement = element => element instanceof TagElement;
215
112
 
216
113
  /**
217
114
  * @public
218
115
  */
219
- export const isReferenceElement = createPredicate(({
220
- hasBasicElementProps,
221
- isElementType,
222
- primitiveEq
223
- }) => {
224
- return element => element instanceof ReferenceElement || hasBasicElementProps(element) && isElementType('reference', element) && primitiveEq('object', element);
225
- });
116
+ export const isReferenceElement = element => element instanceof ReferenceElement;
226
117
 
227
118
  /**
228
119
  * @public
229
120
  */
230
- export const isSchemaElement = createPredicate(({
231
- hasBasicElementProps,
232
- isElementType,
233
- primitiveEq
234
- }) => {
235
- return element => element instanceof SchemaElement || hasBasicElementProps(element) && isElementType('schema', element) && primitiveEq('object', element);
236
- });
121
+ export const isSchemaElement = element => element instanceof SchemaElement;
237
122
 
238
123
  /**
239
124
  * @public
240
125
  */
241
- export const isXmlElement = createPredicate(({
242
- hasBasicElementProps,
243
- isElementType,
244
- primitiveEq
245
- }) => {
246
- return element => element instanceof XmlElement || hasBasicElementProps(element) && isElementType('xml', element) && primitiveEq('object', element);
247
- });
126
+ export const isXmlElement = element => element instanceof XmlElement;
248
127
 
249
128
  /**
250
129
  * @public
251
130
  */
252
- export const isResponsesDefinitionsElement = createPredicate(({
253
- hasBasicElementProps,
254
- isElementType,
255
- primitiveEq
256
- }) => {
257
- return element => element instanceof ResponsesDefinitionsElement || hasBasicElementProps(element) && isElementType('responsesDefinitions', element) && primitiveEq('object', element);
258
- });
131
+ export const isResponsesDefinitionsElement = element => element instanceof ResponsesDefinitionsElement;
259
132
 
260
133
  /**
261
134
  * @public
262
135
  */
263
- export const isSecurityDefinitionsElement = createPredicate(({
264
- hasBasicElementProps,
265
- isElementType,
266
- primitiveEq
267
- }) => {
268
- return element => element instanceof SecurityDefinitionsElement || hasBasicElementProps(element) && isElementType('securityDefinitions', element) && primitiveEq('object', element);
269
- });
136
+ export const isSecurityDefinitionsElement = element => element instanceof SecurityDefinitionsElement;
270
137
 
271
138
  /**
272
139
  * @public
273
140
  */
274
- export const isDefinitionsElement = createPredicate(({
275
- hasBasicElementProps,
276
- isElementType,
277
- primitiveEq
278
- }) => {
279
- return element => element instanceof DefinitionsElement || hasBasicElementProps(element) && isElementType('definitions', element) && primitiveEq('object', element);
280
- });
141
+ export const isDefinitionsElement = element => element instanceof DefinitionsElement;
281
142
 
282
143
  /**
283
144
  * @public
284
145
  */
285
- export const isParametersDefinitionsElement = createPredicate(({
286
- hasBasicElementProps,
287
- isElementType,
288
- primitiveEq
289
- }) => {
290
- return element => element instanceof ParametersDefinitionsElement || hasBasicElementProps(element) && isElementType('parametersDefinitions', element) && primitiveEq('object', element);
291
- });
146
+ export const isParametersDefinitionsElement = element => element instanceof ParametersDefinitionsElement;
292
147
 
293
148
  /**
294
149
  * @public
295
150
  */
296
- export const isSecuritySchemeElement = createPredicate(({
297
- hasBasicElementProps,
298
- isElementType,
299
- primitiveEq
300
- }) => {
301
- return element => element instanceof SecuritySchemeElement || hasBasicElementProps(element) && isElementType('securityScheme', element) && primitiveEq('object', element);
302
- });
151
+ export const isSecuritySchemeElement = element => element instanceof SecuritySchemeElement;
303
152
 
304
153
  /**
305
154
  * @public
306
155
  */
307
- export const isScopesElement = createPredicate(({
308
- hasBasicElementProps,
309
- isElementType,
310
- primitiveEq
311
- }) => {
312
- return element => element instanceof ScopesElement || hasBasicElementProps(element) && isElementType('scopes', element) && primitiveEq('object', element);
313
- });
156
+ export const isScopesElement = element => element instanceof ScopesElement;
314
157
 
315
158
  /**
316
159
  * @public
317
160
  */
318
- export const isSecurityRequirementElement = createPredicate(({
319
- hasBasicElementProps,
320
- isElementType,
321
- primitiveEq
322
- }) => {
323
- return element => element instanceof SecurityRequirementElement || hasBasicElementProps(element) && isElementType('securityRequirement', element) && primitiveEq('object', element);
324
- });
161
+ export const isSecurityRequirementElement = element => element instanceof SecurityRequirementElement;
@@ -2,51 +2,313 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
4
  exports.__esModule = true;
5
- exports.default = exports.createRefractor = void 0;
5
+ exports.refractXml = exports.refractTag = exports.refractSwagger = exports.refractSecurityScheme = exports.refractSecurityRequirement = exports.refractSecurityDefinitions = exports.refractScopes = exports.refractSchema = exports.refractResponsesDefinitions = exports.refractResponses = exports.refractResponse = exports.refractReference = exports.refractPaths = exports.refractPathItem = exports.refractParametersDefinitions = exports.refractParameter = exports.refractOperation = exports.refractLicense = exports.refractItems = exports.refractInfo = exports.refractHeaders = exports.refractHeader = exports.refractExternalDocumentation = exports.refractExample = exports.refractDefinitions = exports.refractContact = exports.default = void 0;
6
6
  var _apidomCore = require("@speclynx/apidom-core");
7
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
8
+ var _apidomTraverse = require("@speclynx/apidom-traverse");
7
9
  var _ramda = require("ramda");
8
10
  var _specification = _interopRequireDefault(require("./specification.cjs"));
9
- var _visitor = require("../traversal/visitor.cjs");
10
11
  var _toolbox = _interopRequireDefault(require("./toolbox.cjs"));
12
+ /**
13
+ * @public
14
+ */
15
+
16
+ /**
17
+ * @public
18
+ */
19
+
11
20
  /**
12
21
  * @public
13
22
  */
14
23
  const refract = (value, {
15
- specPath = ['visitors', 'document', 'objects', 'Swagger', '$visitor'],
16
- plugins = []
24
+ element = 'swagger',
25
+ plugins = [],
26
+ specificationObj = _specification.default
17
27
  } = {}) => {
18
- const element = (0, _apidomCore.refract)(value);
19
- const resolvedSpec = (0, _apidomCore.dereference)(_specification.default);
28
+ const genericElement = (0, _apidomDatamodel.refract)(value);
29
+ const resolvedSpec = (0, _apidomCore.resolveSpecification)(specificationObj);
30
+ const elementMap = resolvedSpec.elementMap;
31
+ const specPath = elementMap[element];
32
+ if (!specPath) {
33
+ throw new Error(`Unknown element type: "${element}"`);
34
+ }
20
35
 
21
36
  /**
22
37
  * This is where generic ApiDOM becomes semantic (namespace applied).
23
38
  * We don't allow consumers to hook into this translation.
24
- * Though we allow consumers to define their onw plugins on already transformed ApiDOM.
39
+ * Though we allow consumers to define their own plugins on already transformed ApiDOM.
25
40
  */
26
41
  const RootVisitorClass = (0, _ramda.path)(specPath, resolvedSpec);
27
42
  const rootVisitor = new RootVisitorClass({
28
43
  specObj: resolvedSpec
29
44
  });
30
- (0, _apidomCore.visit)(element, rootVisitor);
45
+ (0, _apidomTraverse.traverse)(genericElement, rootVisitor);
31
46
 
32
47
  /**
33
48
  * Running plugins visitors means extra single traversal === performance hit.
34
49
  */
35
50
  return (0, _apidomCore.dispatchRefractorPlugins)(rootVisitor.element, plugins, {
36
- toolboxCreator: _toolbox.default,
37
- visitorOptions: {
38
- keyMap: _visitor.keyMap,
39
- nodeTypeGetter: _visitor.getNodeType
40
- }
51
+ toolboxCreator: _toolbox.default
41
52
  });
42
53
  };
43
54
 
44
55
  /**
56
+ * Refracts a value into a SwaggerElement.
57
+ * @public
58
+ */
59
+ const refractSwagger = (value, options = {}) => refract(value, {
60
+ ...options,
61
+ element: 'swagger'
62
+ });
63
+
64
+ /**
65
+ * Refracts a value into an InfoElement.
66
+ * @public
67
+ */
68
+ exports.refractSwagger = refractSwagger;
69
+ const refractInfo = (value, options = {}) => refract(value, {
70
+ ...options,
71
+ element: 'info'
72
+ });
73
+
74
+ /**
75
+ * Refracts a value into a ContactElement.
76
+ * @public
77
+ */
78
+ exports.refractInfo = refractInfo;
79
+ const refractContact = (value, options = {}) => refract(value, {
80
+ ...options,
81
+ element: 'contact'
82
+ });
83
+
84
+ /**
85
+ * Refracts a value into a LicenseElement.
86
+ * @public
87
+ */
88
+ exports.refractContact = refractContact;
89
+ const refractLicense = (value, options = {}) => refract(value, {
90
+ ...options,
91
+ element: 'license'
92
+ });
93
+
94
+ /**
95
+ * Refracts a value into a PathsElement.
96
+ * @public
97
+ */
98
+ exports.refractLicense = refractLicense;
99
+ const refractPaths = (value, options = {}) => refract(value, {
100
+ ...options,
101
+ element: 'paths'
102
+ });
103
+
104
+ /**
105
+ * Refracts a value into a PathItemElement.
106
+ * @public
107
+ */
108
+ exports.refractPaths = refractPaths;
109
+ const refractPathItem = (value, options = {}) => refract(value, {
110
+ ...options,
111
+ element: 'pathItem'
112
+ });
113
+
114
+ /**
115
+ * Refracts a value into an OperationElement.
116
+ * @public
117
+ */
118
+ exports.refractPathItem = refractPathItem;
119
+ const refractOperation = (value, options = {}) => refract(value, {
120
+ ...options,
121
+ element: 'operation'
122
+ });
123
+
124
+ /**
125
+ * Refracts a value into an ExternalDocumentationElement.
126
+ * @public
127
+ */
128
+ exports.refractOperation = refractOperation;
129
+ const refractExternalDocumentation = (value, options = {}) => refract(value, {
130
+ ...options,
131
+ element: 'externalDocumentation'
132
+ });
133
+
134
+ /**
135
+ * Refracts a value into a ParameterElement.
136
+ * @public
137
+ */
138
+ exports.refractExternalDocumentation = refractExternalDocumentation;
139
+ const refractParameter = (value, options = {}) => refract(value, {
140
+ ...options,
141
+ element: 'parameter'
142
+ });
143
+
144
+ /**
145
+ * Refracts a value into an ItemsElement.
146
+ * @public
147
+ */
148
+ exports.refractParameter = refractParameter;
149
+ const refractItems = (value, options = {}) => refract(value, {
150
+ ...options,
151
+ element: 'items'
152
+ });
153
+
154
+ /**
155
+ * Refracts a value into a ResponsesElement.
156
+ * @public
157
+ */
158
+ exports.refractItems = refractItems;
159
+ const refractResponses = (value, options = {}) => refract(value, {
160
+ ...options,
161
+ element: 'responses'
162
+ });
163
+
164
+ /**
165
+ * Refracts a value into a ResponseElement.
166
+ * @public
167
+ */
168
+ exports.refractResponses = refractResponses;
169
+ const refractResponse = (value, options = {}) => refract(value, {
170
+ ...options,
171
+ element: 'response'
172
+ });
173
+
174
+ /**
175
+ * Refracts a value into a HeadersElement.
176
+ * @public
177
+ */
178
+ exports.refractResponse = refractResponse;
179
+ const refractHeaders = (value, options = {}) => refract(value, {
180
+ ...options,
181
+ element: 'headers'
182
+ });
183
+
184
+ /**
185
+ * Refracts a value into an ExampleElement.
186
+ * @public
187
+ */
188
+ exports.refractHeaders = refractHeaders;
189
+ const refractExample = (value, options = {}) => refract(value, {
190
+ ...options,
191
+ element: 'example'
192
+ });
193
+
194
+ /**
195
+ * Refracts a value into a HeaderElement.
196
+ * @public
197
+ */
198
+ exports.refractExample = refractExample;
199
+ const refractHeader = (value, options = {}) => refract(value, {
200
+ ...options,
201
+ element: 'header'
202
+ });
203
+
204
+ /**
205
+ * Refracts a value into a TagElement.
206
+ * @public
207
+ */
208
+ exports.refractHeader = refractHeader;
209
+ const refractTag = (value, options = {}) => refract(value, {
210
+ ...options,
211
+ element: 'tag'
212
+ });
213
+
214
+ /**
215
+ * Refracts a value into a ReferenceElement.
216
+ * @public
217
+ */
218
+ exports.refractTag = refractTag;
219
+ const refractReference = (value, options = {}) => refract(value, {
220
+ ...options,
221
+ element: 'reference'
222
+ });
223
+
224
+ /**
225
+ * Refracts a value into a SchemaElement.
226
+ * @public
227
+ */
228
+ exports.refractReference = refractReference;
229
+ const refractSchema = (value, options = {}) => refract(value, {
230
+ ...options,
231
+ element: 'schema'
232
+ });
233
+
234
+ /**
235
+ * Refracts a value into an XmlElement.
236
+ * @public
237
+ */
238
+ exports.refractSchema = refractSchema;
239
+ const refractXml = (value, options = {}) => refract(value, {
240
+ ...options,
241
+ element: 'xml'
242
+ });
243
+
244
+ /**
245
+ * Refracts a value into a DefinitionsElement.
246
+ * @public
247
+ */
248
+ exports.refractXml = refractXml;
249
+ const refractDefinitions = (value, options = {}) => refract(value, {
250
+ ...options,
251
+ element: 'definitions'
252
+ });
253
+
254
+ /**
255
+ * Refracts a value into a ParametersDefinitionsElement.
256
+ * @public
257
+ */
258
+ exports.refractDefinitions = refractDefinitions;
259
+ const refractParametersDefinitions = (value, options = {}) => refract(value, {
260
+ ...options,
261
+ element: 'parametersDefinitions'
262
+ });
263
+
264
+ /**
265
+ * Refracts a value into a ResponsesDefinitionsElement.
266
+ * @public
267
+ */
268
+ exports.refractParametersDefinitions = refractParametersDefinitions;
269
+ const refractResponsesDefinitions = (value, options = {}) => refract(value, {
270
+ ...options,
271
+ element: 'responsesDefinitions'
272
+ });
273
+
274
+ /**
275
+ * Refracts a value into a SecurityDefinitionsElement.
276
+ * @public
277
+ */
278
+ exports.refractResponsesDefinitions = refractResponsesDefinitions;
279
+ const refractSecurityDefinitions = (value, options = {}) => refract(value, {
280
+ ...options,
281
+ element: 'securityDefinitions'
282
+ });
283
+
284
+ /**
285
+ * Refracts a value into a SecuritySchemeElement.
286
+ * @public
287
+ */
288
+ exports.refractSecurityDefinitions = refractSecurityDefinitions;
289
+ const refractSecurityScheme = (value, options = {}) => refract(value, {
290
+ ...options,
291
+ element: 'securityScheme'
292
+ });
293
+
294
+ /**
295
+ * Refracts a value into a ScopesElement.
296
+ * @public
297
+ */
298
+ exports.refractSecurityScheme = refractSecurityScheme;
299
+ const refractScopes = (value, options = {}) => refract(value, {
300
+ ...options,
301
+ element: 'scopes'
302
+ });
303
+
304
+ /**
305
+ * Refracts a value into a SecurityRequirementElement.
45
306
  * @public
46
307
  */
47
- const createRefractor = specPath => (value, options = {}) => refract(value, {
48
- specPath,
49
- ...options
308
+ exports.refractScopes = refractScopes;
309
+ const refractSecurityRequirement = (value, options = {}) => refract(value, {
310
+ ...options,
311
+ element: 'securityRequirement'
50
312
  });
51
- exports.createRefractor = createRefractor;
313
+ exports.refractSecurityRequirement = refractSecurityRequirement;
52
314
  var _default = exports.default = refract;