@speclynx/apidom-ns-openapi-3-0 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 (356) hide show
  1. package/CHANGELOG.md +88 -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 +221 -0
  9. package/dist/apidom-ns-openapi-3-0.browser.js +25840 -0
  10. package/dist/apidom-ns-openapi-3-0.browser.min.js +1 -0
  11. package/package.json +65 -0
  12. package/src/elements/Callback.cjs +15 -0
  13. package/src/elements/Callback.mjs +12 -0
  14. package/src/elements/Components.cjs +69 -0
  15. package/src/elements/Components.mjs +66 -0
  16. package/src/elements/Contact.cjs +33 -0
  17. package/src/elements/Contact.mjs +30 -0
  18. package/src/elements/Discriminator.cjs +27 -0
  19. package/src/elements/Discriminator.mjs +24 -0
  20. package/src/elements/Encoding.cjs +45 -0
  21. package/src/elements/Encoding.mjs +42 -0
  22. package/src/elements/Example.cjs +39 -0
  23. package/src/elements/Example.mjs +36 -0
  24. package/src/elements/ExternalDocumentation.cjs +27 -0
  25. package/src/elements/ExternalDocumentation.mjs +24 -0
  26. package/src/elements/Header.cjs +90 -0
  27. package/src/elements/Header.mjs +86 -0
  28. package/src/elements/Info.cjs +52 -0
  29. package/src/elements/Info.mjs +48 -0
  30. package/src/elements/License.cjs +27 -0
  31. package/src/elements/License.mjs +24 -0
  32. package/src/elements/Link.cjs +63 -0
  33. package/src/elements/Link.mjs +59 -0
  34. package/src/elements/MediaType.cjs +39 -0
  35. package/src/elements/MediaType.mjs +35 -0
  36. package/src/elements/OAuthFlow.cjs +39 -0
  37. package/src/elements/OAuthFlow.mjs +36 -0
  38. package/src/elements/OAuthFlows.cjs +39 -0
  39. package/src/elements/OAuthFlows.mjs +35 -0
  40. package/src/elements/OpenApi3-0.cjs +65 -0
  41. package/src/elements/OpenApi3-0.mjs +61 -0
  42. package/src/elements/Openapi.cjs +17 -0
  43. package/src/elements/Openapi.mjs +14 -0
  44. package/src/elements/Operation.cjs +90 -0
  45. package/src/elements/Operation.mjs +86 -0
  46. package/src/elements/Parameter.cjs +102 -0
  47. package/src/elements/Parameter.mjs +98 -0
  48. package/src/elements/PathItem.cjs +93 -0
  49. package/src/elements/PathItem.mjs +89 -0
  50. package/src/elements/Paths.cjs +15 -0
  51. package/src/elements/Paths.mjs +12 -0
  52. package/src/elements/Reference.cjs +22 -0
  53. package/src/elements/Reference.mjs +19 -0
  54. package/src/elements/RequestBody.cjs +36 -0
  55. package/src/elements/RequestBody.mjs +33 -0
  56. package/src/elements/Response.cjs +39 -0
  57. package/src/elements/Response.mjs +36 -0
  58. package/src/elements/Responses.cjs +21 -0
  59. package/src/elements/Responses.mjs +17 -0
  60. package/src/elements/Schema.cjs +170 -0
  61. package/src/elements/Schema.mjs +166 -0
  62. package/src/elements/SecurityRequirement.cjs +15 -0
  63. package/src/elements/SecurityRequirement.mjs +12 -0
  64. package/src/elements/SecurityScheme.cjs +63 -0
  65. package/src/elements/SecurityScheme.mjs +59 -0
  66. package/src/elements/Server.cjs +33 -0
  67. package/src/elements/Server.mjs +30 -0
  68. package/src/elements/ServerVariable.cjs +33 -0
  69. package/src/elements/ServerVariable.mjs +30 -0
  70. package/src/elements/Tag.cjs +33 -0
  71. package/src/elements/Tag.mjs +29 -0
  72. package/src/elements/Xml.cjs +45 -0
  73. package/src/elements/Xml.mjs +42 -0
  74. package/src/elements/nces/ComponentsCallbacks.cjs +16 -0
  75. package/src/elements/nces/ComponentsCallbacks.mjs +13 -0
  76. package/src/elements/nces/ComponentsExamples.cjs +17 -0
  77. package/src/elements/nces/ComponentsExamples.mjs +14 -0
  78. package/src/elements/nces/ComponentsHeaders.cjs +16 -0
  79. package/src/elements/nces/ComponentsHeaders.mjs +13 -0
  80. package/src/elements/nces/ComponentsLinks.cjs +16 -0
  81. package/src/elements/nces/ComponentsLinks.mjs +13 -0
  82. package/src/elements/nces/ComponentsParameters.cjs +17 -0
  83. package/src/elements/nces/ComponentsParameters.mjs +14 -0
  84. package/src/elements/nces/ComponentsRequestBodies.cjs +16 -0
  85. package/src/elements/nces/ComponentsRequestBodies.mjs +13 -0
  86. package/src/elements/nces/ComponentsResponses.cjs +16 -0
  87. package/src/elements/nces/ComponentsResponses.mjs +13 -0
  88. package/src/elements/nces/ComponentsSchemas.cjs +16 -0
  89. package/src/elements/nces/ComponentsSchemas.mjs +13 -0
  90. package/src/elements/nces/ComponentsSecuritySchemes.cjs +16 -0
  91. package/src/elements/nces/ComponentsSecuritySchemes.mjs +13 -0
  92. package/src/elements/nces/DiscriminatorMapping.cjs +16 -0
  93. package/src/elements/nces/DiscriminatorMapping.mjs +13 -0
  94. package/src/elements/nces/EncodingHeaders.cjs +16 -0
  95. package/src/elements/nces/EncodingHeaders.mjs +13 -0
  96. package/src/elements/nces/HeaderContent.cjs +17 -0
  97. package/src/elements/nces/HeaderContent.mjs +14 -0
  98. package/src/elements/nces/HeaderExamples.cjs +17 -0
  99. package/src/elements/nces/HeaderExamples.mjs +14 -0
  100. package/src/elements/nces/LinkParameters.cjs +16 -0
  101. package/src/elements/nces/LinkParameters.mjs +13 -0
  102. package/src/elements/nces/MediaTypeEncoding.cjs +16 -0
  103. package/src/elements/nces/MediaTypeEncoding.mjs +13 -0
  104. package/src/elements/nces/MediaTypeExamples.cjs +17 -0
  105. package/src/elements/nces/MediaTypeExamples.mjs +14 -0
  106. package/src/elements/nces/OAuthFlowScopes.cjs +16 -0
  107. package/src/elements/nces/OAuthFlowScopes.mjs +13 -0
  108. package/src/elements/nces/OperationCallbacks.cjs +16 -0
  109. package/src/elements/nces/OperationCallbacks.mjs +13 -0
  110. package/src/elements/nces/OperationParameters.cjs +17 -0
  111. package/src/elements/nces/OperationParameters.mjs +14 -0
  112. package/src/elements/nces/OperationSecurity.cjs +17 -0
  113. package/src/elements/nces/OperationSecurity.mjs +14 -0
  114. package/src/elements/nces/OperationServers.cjs +17 -0
  115. package/src/elements/nces/OperationServers.mjs +14 -0
  116. package/src/elements/nces/OperationTags.cjs +16 -0
  117. package/src/elements/nces/OperationTags.mjs +13 -0
  118. package/src/elements/nces/ParameterContent.cjs +17 -0
  119. package/src/elements/nces/ParameterContent.mjs +14 -0
  120. package/src/elements/nces/ParameterExamples.cjs +17 -0
  121. package/src/elements/nces/ParameterExamples.mjs +14 -0
  122. package/src/elements/nces/PathItemParameters.cjs +17 -0
  123. package/src/elements/nces/PathItemParameters.mjs +14 -0
  124. package/src/elements/nces/PathItemServers.cjs +17 -0
  125. package/src/elements/nces/PathItemServers.mjs +14 -0
  126. package/src/elements/nces/RequestBodyContent.cjs +17 -0
  127. package/src/elements/nces/RequestBodyContent.mjs +14 -0
  128. package/src/elements/nces/ResponseContent.cjs +17 -0
  129. package/src/elements/nces/ResponseContent.mjs +14 -0
  130. package/src/elements/nces/ResponseHeaders.cjs +16 -0
  131. package/src/elements/nces/ResponseHeaders.mjs +13 -0
  132. package/src/elements/nces/ResponseLinks.cjs +16 -0
  133. package/src/elements/nces/ResponseLinks.mjs +13 -0
  134. package/src/elements/nces/Security.cjs +16 -0
  135. package/src/elements/nces/Security.mjs +13 -0
  136. package/src/elements/nces/ServerVariables.cjs +16 -0
  137. package/src/elements/nces/ServerVariables.mjs +13 -0
  138. package/src/elements/nces/Servers.cjs +16 -0
  139. package/src/elements/nces/Servers.mjs +13 -0
  140. package/src/elements/nces/Tags.cjs +16 -0
  141. package/src/elements/nces/Tags.mjs +13 -0
  142. package/src/index.cjs +185 -0
  143. package/src/index.mjs +54 -0
  144. package/src/media-types.cjs +34 -0
  145. package/src/media-types.mjs +30 -0
  146. package/src/namespace.cjs +80 -0
  147. package/src/namespace.mjs +74 -0
  148. package/src/predicates.cjs +330 -0
  149. package/src/predicates.mjs +322 -0
  150. package/src/refractor/index.cjs +52 -0
  151. package/src/refractor/index.mjs +46 -0
  152. package/src/refractor/plugins/replace-empty-element.cjs +627 -0
  153. package/src/refractor/plugins/replace-empty-element.mjs +619 -0
  154. package/src/refractor/predicates.cjs +36 -0
  155. package/src/refractor/predicates.mjs +31 -0
  156. package/src/refractor/registration.cjs +99 -0
  157. package/src/refractor/registration.mjs +64 -0
  158. package/src/refractor/specification.cjs +644 -0
  159. package/src/refractor/specification.mjs +639 -0
  160. package/src/refractor/toolbox.cjs +38 -0
  161. package/src/refractor/toolbox.mjs +30 -0
  162. package/src/refractor/visitors/FallbackVisitor.cjs +24 -0
  163. package/src/refractor/visitors/FallbackVisitor.mjs +18 -0
  164. package/src/refractor/visitors/SpecificationExtensionVisitor.cjs +18 -0
  165. package/src/refractor/visitors/SpecificationExtensionVisitor.mjs +13 -0
  166. package/src/refractor/visitors/SpecificationVisitor.cjs +84 -0
  167. package/src/refractor/visitors/SpecificationVisitor.mjs +78 -0
  168. package/src/refractor/visitors/Visitor.cjs +31 -0
  169. package/src/refractor/visitors/Visitor.mjs +28 -0
  170. package/src/refractor/visitors/generics/AlternatingVisitor.cjs +42 -0
  171. package/src/refractor/visitors/generics/AlternatingVisitor.mjs +35 -0
  172. package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +67 -0
  173. package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +60 -0
  174. package/src/refractor/visitors/generics/MapVisitor.cjs +21 -0
  175. package/src/refractor/visitors/generics/MapVisitor.mjs +15 -0
  176. package/src/refractor/visitors/generics/MixedFieldsVisitor.cjs +60 -0
  177. package/src/refractor/visitors/generics/MixedFieldsVisitor.mjs +54 -0
  178. package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +67 -0
  179. package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +61 -0
  180. package/src/refractor/visitors/open-api-3-0/ContentVisitor.cjs +26 -0
  181. package/src/refractor/visitors/open-api-3-0/ContentVisitor.mjs +20 -0
  182. package/src/refractor/visitors/open-api-3-0/ExamplesVisitor.cjs +37 -0
  183. package/src/refractor/visitors/open-api-3-0/ExamplesVisitor.mjs +31 -0
  184. package/src/refractor/visitors/open-api-3-0/OpenapiVisitor.cjs +26 -0
  185. package/src/refractor/visitors/open-api-3-0/OpenapiVisitor.mjs +20 -0
  186. package/src/refractor/visitors/open-api-3-0/ParametersVisitor.cjs +38 -0
  187. package/src/refractor/visitors/open-api-3-0/ParametersVisitor.mjs +32 -0
  188. package/src/refractor/visitors/open-api-3-0/SecurityVisitor.cjs +36 -0
  189. package/src/refractor/visitors/open-api-3-0/SecurityVisitor.mjs +30 -0
  190. package/src/refractor/visitors/open-api-3-0/ServersVisitor.cjs +34 -0
  191. package/src/refractor/visitors/open-api-3-0/ServersVisitor.mjs +28 -0
  192. package/src/refractor/visitors/open-api-3-0/TagsVisitor.cjs +34 -0
  193. package/src/refractor/visitors/open-api-3-0/TagsVisitor.mjs +28 -0
  194. package/src/refractor/visitors/open-api-3-0/callback/index.cjs +41 -0
  195. package/src/refractor/visitors/open-api-3-0/callback/index.mjs +35 -0
  196. package/src/refractor/visitors/open-api-3-0/components/CallbacksVisitor.cjs +35 -0
  197. package/src/refractor/visitors/open-api-3-0/components/CallbacksVisitor.mjs +29 -0
  198. package/src/refractor/visitors/open-api-3-0/components/ExamplesVisitor.cjs +36 -0
  199. package/src/refractor/visitors/open-api-3-0/components/ExamplesVisitor.mjs +30 -0
  200. package/src/refractor/visitors/open-api-3-0/components/HeadersVisitor.cjs +43 -0
  201. package/src/refractor/visitors/open-api-3-0/components/HeadersVisitor.mjs +37 -0
  202. package/src/refractor/visitors/open-api-3-0/components/LinksVisitor.cjs +35 -0
  203. package/src/refractor/visitors/open-api-3-0/components/LinksVisitor.mjs +29 -0
  204. package/src/refractor/visitors/open-api-3-0/components/ParametersVisitor.cjs +36 -0
  205. package/src/refractor/visitors/open-api-3-0/components/ParametersVisitor.mjs +30 -0
  206. package/src/refractor/visitors/open-api-3-0/components/RequestBodiesVisitor.cjs +35 -0
  207. package/src/refractor/visitors/open-api-3-0/components/RequestBodiesVisitor.mjs +29 -0
  208. package/src/refractor/visitors/open-api-3-0/components/ResponsesVisitor.cjs +43 -0
  209. package/src/refractor/visitors/open-api-3-0/components/ResponsesVisitor.mjs +37 -0
  210. package/src/refractor/visitors/open-api-3-0/components/SchemasVisitor.cjs +36 -0
  211. package/src/refractor/visitors/open-api-3-0/components/SchemasVisitor.mjs +30 -0
  212. package/src/refractor/visitors/open-api-3-0/components/SecuritySchemesVisitor.cjs +35 -0
  213. package/src/refractor/visitors/open-api-3-0/components/SecuritySchemesVisitor.mjs +29 -0
  214. package/src/refractor/visitors/open-api-3-0/components/index.cjs +26 -0
  215. package/src/refractor/visitors/open-api-3-0/components/index.mjs +20 -0
  216. package/src/refractor/visitors/open-api-3-0/contact/index.cjs +26 -0
  217. package/src/refractor/visitors/open-api-3-0/contact/index.mjs +20 -0
  218. package/src/refractor/visitors/open-api-3-0/distriminator/MappingVisitor.cjs +25 -0
  219. package/src/refractor/visitors/open-api-3-0/distriminator/MappingVisitor.mjs +19 -0
  220. package/src/refractor/visitors/open-api-3-0/distriminator/index.cjs +26 -0
  221. package/src/refractor/visitors/open-api-3-0/distriminator/index.mjs +20 -0
  222. package/src/refractor/visitors/open-api-3-0/encoding/HeadersVisitor.cjs +44 -0
  223. package/src/refractor/visitors/open-api-3-0/encoding/HeadersVisitor.mjs +38 -0
  224. package/src/refractor/visitors/open-api-3-0/encoding/index.cjs +41 -0
  225. package/src/refractor/visitors/open-api-3-0/encoding/index.mjs +35 -0
  226. package/src/refractor/visitors/open-api-3-0/example/ExternalValueVisitor.cjs +17 -0
  227. package/src/refractor/visitors/open-api-3-0/example/ExternalValueVisitor.mjs +12 -0
  228. package/src/refractor/visitors/open-api-3-0/example/index.cjs +36 -0
  229. package/src/refractor/visitors/open-api-3-0/example/index.mjs +30 -0
  230. package/src/refractor/visitors/open-api-3-0/external-documentation/index.cjs +26 -0
  231. package/src/refractor/visitors/open-api-3-0/external-documentation/index.mjs +20 -0
  232. package/src/refractor/visitors/open-api-3-0/header/ContentVisitor.cjs +17 -0
  233. package/src/refractor/visitors/open-api-3-0/header/ContentVisitor.mjs +12 -0
  234. package/src/refractor/visitors/open-api-3-0/header/ExamplesVisitor.cjs +17 -0
  235. package/src/refractor/visitors/open-api-3-0/header/ExamplesVisitor.mjs +12 -0
  236. package/src/refractor/visitors/open-api-3-0/header/SchemaVisitor.cjs +38 -0
  237. package/src/refractor/visitors/open-api-3-0/header/SchemaVisitor.mjs +32 -0
  238. package/src/refractor/visitors/open-api-3-0/header/index.cjs +26 -0
  239. package/src/refractor/visitors/open-api-3-0/header/index.mjs +20 -0
  240. package/src/refractor/visitors/open-api-3-0/index.cjs +30 -0
  241. package/src/refractor/visitors/open-api-3-0/index.mjs +24 -0
  242. package/src/refractor/visitors/open-api-3-0/info/VersionVisitor.cjs +18 -0
  243. package/src/refractor/visitors/open-api-3-0/info/VersionVisitor.mjs +13 -0
  244. package/src/refractor/visitors/open-api-3-0/info/index.cjs +26 -0
  245. package/src/refractor/visitors/open-api-3-0/info/index.mjs +20 -0
  246. package/src/refractor/visitors/open-api-3-0/license/index.cjs +26 -0
  247. package/src/refractor/visitors/open-api-3-0/license/index.mjs +20 -0
  248. package/src/refractor/visitors/open-api-3-0/link/OperationIdVisitor.cjs +17 -0
  249. package/src/refractor/visitors/open-api-3-0/link/OperationIdVisitor.mjs +12 -0
  250. package/src/refractor/visitors/open-api-3-0/link/OperationRefVisitor.cjs +17 -0
  251. package/src/refractor/visitors/open-api-3-0/link/OperationRefVisitor.mjs +12 -0
  252. package/src/refractor/visitors/open-api-3-0/link/ParametersVisitor.cjs +25 -0
  253. package/src/refractor/visitors/open-api-3-0/link/ParametersVisitor.mjs +19 -0
  254. package/src/refractor/visitors/open-api-3-0/link/index.cjs +36 -0
  255. package/src/refractor/visitors/open-api-3-0/link/index.mjs +30 -0
  256. package/src/refractor/visitors/open-api-3-0/media-type/EncodingVisitor.cjs +25 -0
  257. package/src/refractor/visitors/open-api-3-0/media-type/EncodingVisitor.mjs +19 -0
  258. package/src/refractor/visitors/open-api-3-0/media-type/ExamplesVisitor.cjs +17 -0
  259. package/src/refractor/visitors/open-api-3-0/media-type/ExamplesVisitor.mjs +12 -0
  260. package/src/refractor/visitors/open-api-3-0/media-type/SchemaVisitor.cjs +38 -0
  261. package/src/refractor/visitors/open-api-3-0/media-type/SchemaVisitor.mjs +32 -0
  262. package/src/refractor/visitors/open-api-3-0/media-type/index.cjs +26 -0
  263. package/src/refractor/visitors/open-api-3-0/media-type/index.mjs +20 -0
  264. package/src/refractor/visitors/open-api-3-0/oauth-flow/ScopesVisitor.cjs +25 -0
  265. package/src/refractor/visitors/open-api-3-0/oauth-flow/ScopesVisitor.mjs +19 -0
  266. package/src/refractor/visitors/open-api-3-0/oauth-flow/index.cjs +26 -0
  267. package/src/refractor/visitors/open-api-3-0/oauth-flow/index.mjs +20 -0
  268. package/src/refractor/visitors/open-api-3-0/oauth-flows/index.cjs +26 -0
  269. package/src/refractor/visitors/open-api-3-0/oauth-flows/index.mjs +20 -0
  270. package/src/refractor/visitors/open-api-3-0/operation/CallbacksVisitor.cjs +36 -0
  271. package/src/refractor/visitors/open-api-3-0/operation/CallbacksVisitor.mjs +30 -0
  272. package/src/refractor/visitors/open-api-3-0/operation/ParametersVisitor.cjs +17 -0
  273. package/src/refractor/visitors/open-api-3-0/operation/ParametersVisitor.mjs +12 -0
  274. package/src/refractor/visitors/open-api-3-0/operation/RequestBodyVisitor.cjs +36 -0
  275. package/src/refractor/visitors/open-api-3-0/operation/RequestBodyVisitor.mjs +30 -0
  276. package/src/refractor/visitors/open-api-3-0/operation/SecurityVisitor.cjs +33 -0
  277. package/src/refractor/visitors/open-api-3-0/operation/SecurityVisitor.mjs +27 -0
  278. package/src/refractor/visitors/open-api-3-0/operation/ServersVisitor.cjs +17 -0
  279. package/src/refractor/visitors/open-api-3-0/operation/ServersVisitor.mjs +12 -0
  280. package/src/refractor/visitors/open-api-3-0/operation/TagsVisitor.cjs +26 -0
  281. package/src/refractor/visitors/open-api-3-0/operation/TagsVisitor.mjs +20 -0
  282. package/src/refractor/visitors/open-api-3-0/operation/index.cjs +25 -0
  283. package/src/refractor/visitors/open-api-3-0/operation/index.mjs +19 -0
  284. package/src/refractor/visitors/open-api-3-0/parameter/ContentVisitor.cjs +17 -0
  285. package/src/refractor/visitors/open-api-3-0/parameter/ContentVisitor.mjs +12 -0
  286. package/src/refractor/visitors/open-api-3-0/parameter/ExamplesVisitor.cjs +17 -0
  287. package/src/refractor/visitors/open-api-3-0/parameter/ExamplesVisitor.mjs +12 -0
  288. package/src/refractor/visitors/open-api-3-0/parameter/SchemaVisitor.cjs +38 -0
  289. package/src/refractor/visitors/open-api-3-0/parameter/SchemaVisitor.mjs +32 -0
  290. package/src/refractor/visitors/open-api-3-0/parameter/index.cjs +41 -0
  291. package/src/refractor/visitors/open-api-3-0/parameter/index.mjs +35 -0
  292. package/src/refractor/visitors/open-api-3-0/path-item/$RefVisitor.cjs +17 -0
  293. package/src/refractor/visitors/open-api-3-0/path-item/$RefVisitor.mjs +12 -0
  294. package/src/refractor/visitors/open-api-3-0/path-item/ParametersVisitor.cjs +17 -0
  295. package/src/refractor/visitors/open-api-3-0/path-item/ParametersVisitor.mjs +12 -0
  296. package/src/refractor/visitors/open-api-3-0/path-item/ServersVisitor.cjs +17 -0
  297. package/src/refractor/visitors/open-api-3-0/path-item/ServersVisitor.mjs +12 -0
  298. package/src/refractor/visitors/open-api-3-0/path-item/index.cjs +45 -0
  299. package/src/refractor/visitors/open-api-3-0/path-item/index.mjs +39 -0
  300. package/src/refractor/visitors/open-api-3-0/paths/index.cjs +42 -0
  301. package/src/refractor/visitors/open-api-3-0/paths/index.mjs +36 -0
  302. package/src/refractor/visitors/open-api-3-0/reference/$RefVisitor.cjs +17 -0
  303. package/src/refractor/visitors/open-api-3-0/reference/$RefVisitor.mjs +12 -0
  304. package/src/refractor/visitors/open-api-3-0/reference/index.cjs +36 -0
  305. package/src/refractor/visitors/open-api-3-0/reference/index.mjs +30 -0
  306. package/src/refractor/visitors/open-api-3-0/request-body/ContentVisitor.cjs +17 -0
  307. package/src/refractor/visitors/open-api-3-0/request-body/ContentVisitor.mjs +12 -0
  308. package/src/refractor/visitors/open-api-3-0/request-body/index.cjs +40 -0
  309. package/src/refractor/visitors/open-api-3-0/request-body/index.mjs +34 -0
  310. package/src/refractor/visitors/open-api-3-0/response/ContentVisitor.cjs +17 -0
  311. package/src/refractor/visitors/open-api-3-0/response/ContentVisitor.mjs +12 -0
  312. package/src/refractor/visitors/open-api-3-0/response/HeadersVisitor.cjs +44 -0
  313. package/src/refractor/visitors/open-api-3-0/response/HeadersVisitor.mjs +38 -0
  314. package/src/refractor/visitors/open-api-3-0/response/LinksVisitor.cjs +35 -0
  315. package/src/refractor/visitors/open-api-3-0/response/LinksVisitor.mjs +29 -0
  316. package/src/refractor/visitors/open-api-3-0/response/index.cjs +49 -0
  317. package/src/refractor/visitors/open-api-3-0/response/index.mjs +43 -0
  318. package/src/refractor/visitors/open-api-3-0/responses/DefaultVisitor.cjs +42 -0
  319. package/src/refractor/visitors/open-api-3-0/responses/DefaultVisitor.mjs +36 -0
  320. package/src/refractor/visitors/open-api-3-0/responses/index.cjs +49 -0
  321. package/src/refractor/visitors/open-api-3-0/responses/index.mjs +43 -0
  322. package/src/refractor/visitors/open-api-3-0/schema/AllOfVisitor.cjs +26 -0
  323. package/src/refractor/visitors/open-api-3-0/schema/AllOfVisitor.mjs +22 -0
  324. package/src/refractor/visitors/open-api-3-0/schema/AnyOfVisitor.cjs +26 -0
  325. package/src/refractor/visitors/open-api-3-0/schema/AnyOfVisitor.mjs +22 -0
  326. package/src/refractor/visitors/open-api-3-0/schema/ItemsVisitor.cjs +28 -0
  327. package/src/refractor/visitors/open-api-3-0/schema/ItemsVisitor.mjs +24 -0
  328. package/src/refractor/visitors/open-api-3-0/schema/OneOfVisitor.cjs +26 -0
  329. package/src/refractor/visitors/open-api-3-0/schema/OneOfVisitor.mjs +22 -0
  330. package/src/refractor/visitors/open-api-3-0/schema/PropertiesVisitor.cjs +26 -0
  331. package/src/refractor/visitors/open-api-3-0/schema/PropertiesVisitor.mjs +22 -0
  332. package/src/refractor/visitors/open-api-3-0/schema/SchemaOrReferenceVisitor.cjs +25 -0
  333. package/src/refractor/visitors/open-api-3-0/schema/SchemaOrReferenceVisitor.mjs +21 -0
  334. package/src/refractor/visitors/open-api-3-0/schema/TypeVisitor.cjs +20 -0
  335. package/src/refractor/visitors/open-api-3-0/schema/TypeVisitor.mjs +16 -0
  336. package/src/refractor/visitors/open-api-3-0/schema/index.cjs +26 -0
  337. package/src/refractor/visitors/open-api-3-0/schema/index.mjs +20 -0
  338. package/src/refractor/visitors/open-api-3-0/security-requirement/index.cjs +25 -0
  339. package/src/refractor/visitors/open-api-3-0/security-requirement/index.mjs +19 -0
  340. package/src/refractor/visitors/open-api-3-0/security-scheme/index.cjs +26 -0
  341. package/src/refractor/visitors/open-api-3-0/security-scheme/index.mjs +20 -0
  342. package/src/refractor/visitors/open-api-3-0/server/UrlVisitor.cjs +17 -0
  343. package/src/refractor/visitors/open-api-3-0/server/UrlVisitor.mjs +12 -0
  344. package/src/refractor/visitors/open-api-3-0/server/VariablesVisitor.cjs +25 -0
  345. package/src/refractor/visitors/open-api-3-0/server/VariablesVisitor.mjs +19 -0
  346. package/src/refractor/visitors/open-api-3-0/server/index.cjs +26 -0
  347. package/src/refractor/visitors/open-api-3-0/server/index.mjs +20 -0
  348. package/src/refractor/visitors/open-api-3-0/server-variable/index.cjs +26 -0
  349. package/src/refractor/visitors/open-api-3-0/server-variable/index.mjs +20 -0
  350. package/src/refractor/visitors/open-api-3-0/tag/index.cjs +26 -0
  351. package/src/refractor/visitors/open-api-3-0/tag/index.mjs +20 -0
  352. package/src/refractor/visitors/open-api-3-0/xml/index.cjs +26 -0
  353. package/src/refractor/visitors/open-api-3-0/xml/index.mjs +20 -0
  354. package/src/traversal/visitor.cjs +57 -0
  355. package/src/traversal/visitor.mjs +54 -0
  356. package/types/apidom-ns-openapi-3-0.d.ts +3383 -0
@@ -0,0 +1,619 @@
1
+ import { ArrayElement, ObjectElement, isStringElement, isArrayElement, isElement, isMemberElement, includesClasses, cloneDeep, toValue } from '@speclynx/apidom-core';
2
+
3
+ /**
4
+ * OpenAPI 3.0.x 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 ComponentsElement from "../../elements/Components.mjs";
12
+ import ExternalDocumentationElement from "../../elements/ExternalDocumentation.mjs";
13
+ import OperationElement from "../../elements/Operation.mjs";
14
+ import SchemaElement from "../../elements/Schema.mjs";
15
+ import RequestBodyElement from "../../elements/RequestBody.mjs";
16
+ import ResponsesElement from "../../elements/Responses.mjs";
17
+ import ResponseElement from "../../elements/Response.mjs";
18
+ import ServerElement from "../../elements/Server.mjs";
19
+ import DiscriminatorElement from "../../elements/Discriminator.mjs";
20
+ import XmlElement from "../../elements/Xml.mjs";
21
+ import OAuthFlowsElement from "../../elements/OAuthFlows.mjs";
22
+ import OAuthFlowElement from "../../elements/OAuthFlow.mjs";
23
+ import ServerVariableElement from "../../elements/ServerVariable.mjs";
24
+ import ParameterElement from "../../elements/Parameter.mjs";
25
+ import ExampleElement from "../../elements/Example.mjs";
26
+ import HeaderElement from "../../elements/Header.mjs";
27
+ import SecuritySchemeElement from "../../elements/SecurityScheme.mjs";
28
+ import LinkElement from "../../elements/Link.mjs";
29
+ import CallbackElement from "../../elements/Callback.mjs";
30
+ import MediaTypeElement from "../../elements/MediaType.mjs";
31
+ import EncodingElement from "../../elements/Encoding.mjs";
32
+ import SecurityRequirementElement from "../../elements/SecurityRequirement.mjs";
33
+ import TagElement from "../../elements/Tag.mjs"; // non-concrete Elements (NCEs)
34
+ import ServersElement from "../../elements/nces/Servers.mjs";
35
+ import SecurityElement from "../../elements/nces/Security.mjs";
36
+ import TagsElement from "../../elements/nces/Tags.mjs";
37
+ import ServerVariablesElement from "../../elements/nces/ServerVariables.mjs";
38
+ import ComponentsSchemasElement from "../../elements/nces/ComponentsSchemas.mjs";
39
+ import ComponentsResponsesElement from "../../elements/nces/ComponentsResponses.mjs";
40
+ import ComponentsParametersElement from "../../elements/nces/ComponentsParameters.mjs";
41
+ import ComponentsExamplesElement from "../../elements/nces/ComponentsExamples.mjs";
42
+ import ComponentsRequestBodiesElement from "../../elements/nces/ComponentsRequestBodies.mjs";
43
+ import ComponentsHeadersElement from "../../elements/nces/ComponentsHeaders.mjs";
44
+ import ComponentsSecuritySchemesElement from "../../elements/nces/ComponentsSecuritySchemes.mjs";
45
+ import ComponentsLinksElement from "../../elements/nces/ComponentsLinks.mjs";
46
+ import ComponentsCallbacksElement from "../../elements/nces/ComponentsCallbacks.mjs";
47
+ import PathItemServersElement from "../../elements/nces/PathItemServers.mjs";
48
+ import PathItemParametersElement from "../../elements/nces/PathItemParameters.mjs";
49
+ import OperationParametersElement from "../../elements/nces/OperationParameters.mjs";
50
+ import ParameterExamplesElement from "../../elements/nces/ParameterExamples.mjs";
51
+ import ParameterContentElement from "../../elements/nces/ParameterContent.mjs";
52
+ import OperationTagsElement from "../../elements/nces/OperationTags.mjs";
53
+ import OperationCallbacksElement from "../../elements/nces/OperationCallbacks.mjs";
54
+ import OperationSecurityElement from "../../elements/nces/OperationSecurity.mjs";
55
+ import OperationServersElement from "../../elements/nces/OperationServers.mjs";
56
+ import RequestBodyContentElement from "../../elements/nces/RequestBodyContent.mjs";
57
+ import MediaTypeExamplesElement from "../../elements/nces/MediaTypeExamples.mjs";
58
+ import MediaTypeEncodingElement from "../../elements/nces/MediaTypeEncoding.mjs";
59
+ import EncodingHeadersElement from "../../elements/nces/EncodingHeaders.mjs";
60
+ import ResponseHeadersElement from "../../elements/nces/ResponseHeaders.mjs";
61
+ import ResponseContentElement from "../../elements/nces/ResponseContent.mjs";
62
+ import ResponseLinksElement from "../../elements/nces/ResponseLinks.mjs";
63
+ import DiscriminatorMappingElement from "../../elements/nces/DiscriminatorMapping.mjs";
64
+ import OAuthFlowScopesElement from "../../elements/nces/OAuthFlowScopes.mjs";
65
+ import LinkParametersElement from "../../elements/nces/LinkParameters.mjs";
66
+ import HeaderExamplesElement from "../../elements/nces/HeaderExamples.mjs";
67
+ import HeaderContentElement from "../../elements/nces/HeaderContent.mjs";
68
+ import { getNodeType } from "../../traversal/visitor.mjs";
69
+ /**
70
+ * This plugin is specific to YAML 1.2 format, which allows defining key-value pairs
71
+ * with empty key, empty value, or both. If the value is not provided in YAML format,
72
+ * this plugin compensates for this missing value with the most appropriate semantic element type.
73
+ *
74
+ * https://yaml.org/spec/1.2.2/#72-empty-nodes
75
+ *
76
+ * @example
77
+ *
78
+ * ```yaml
79
+ * openapi: 3.0.4
80
+ * info:
81
+ * ```
82
+ * Refracting result without this plugin:
83
+ *
84
+ * (OpenApi3_0Element
85
+ * (MemberElement
86
+ * (StringElement)
87
+ * (OpenapiElement))
88
+ * (MemberElement
89
+ * (StringElement)
90
+ * (StringElement))
91
+ *
92
+ * Refracting result with this plugin:
93
+ *
94
+ * (OpenApi3_0Element
95
+ * (MemberElement
96
+ * (StringElement)
97
+ * (OpenapiElement))
98
+ * (MemberElement
99
+ * (StringElement)
100
+ * (InfoElement))
101
+ */
102
+ const isEmptyElement = element => isStringElement(element) && includesClasses(['yaml-e-node', 'yaml-e-scalar'], element);
103
+ const schema = {
104
+ // concrete types handling (CTs)
105
+ OpenApi3_0Element: {
106
+ info(...args) {
107
+ return new InfoElement(...args);
108
+ },
109
+ servers(...args) {
110
+ return new ServersElement(...args);
111
+ },
112
+ paths(...args) {
113
+ return new PathsElement(...args);
114
+ },
115
+ components(...args) {
116
+ return new ComponentsElement(...args);
117
+ },
118
+ security(...args) {
119
+ return new SecurityElement(...args);
120
+ },
121
+ tags(...args) {
122
+ return new TagsElement(...args);
123
+ },
124
+ externalDocs(...args) {
125
+ return new ExternalDocumentationElement(...args);
126
+ }
127
+ },
128
+ InfoElement: {
129
+ contact(...args) {
130
+ return new ContactElement(...args);
131
+ },
132
+ license(...args) {
133
+ return new LicenseElement(...args);
134
+ }
135
+ },
136
+ ServerElement: {
137
+ variables(...args) {
138
+ return new ServerVariablesElement(...args);
139
+ }
140
+ },
141
+ ServerVariableElement: {
142
+ enum(...args) {
143
+ return new ArrayElement(...args);
144
+ }
145
+ },
146
+ PathsElement: {
147
+ '[key: *]': function key(...args) {
148
+ return new PathItemElement(...args);
149
+ }
150
+ },
151
+ PathItemElement: {
152
+ get(...args) {
153
+ return new OperationElement(...args);
154
+ },
155
+ put(...args) {
156
+ return new OperationElement(...args);
157
+ },
158
+ post(...args) {
159
+ return new OperationElement(...args);
160
+ },
161
+ delete(...args) {
162
+ return new OperationElement(...args);
163
+ },
164
+ options(...args) {
165
+ return new OperationElement(...args);
166
+ },
167
+ head(...args) {
168
+ return new OperationElement(...args);
169
+ },
170
+ patch(...args) {
171
+ return new OperationElement(...args);
172
+ },
173
+ trace(...args) {
174
+ return new OperationElement(...args);
175
+ },
176
+ servers(...args) {
177
+ return new PathItemServersElement(...args);
178
+ },
179
+ parameters(...args) {
180
+ return new PathItemParametersElement(...args);
181
+ }
182
+ },
183
+ OperationElement: {
184
+ tags(...args) {
185
+ return new OperationTagsElement(...args);
186
+ },
187
+ externalDocs(...args) {
188
+ return new ExternalDocumentationElement(...args);
189
+ },
190
+ parameters(...args) {
191
+ return new OperationParametersElement(...args);
192
+ },
193
+ requestBody(...args) {
194
+ return new RequestBodyElement(...args);
195
+ },
196
+ responses(...args) {
197
+ return new ResponsesElement(...args);
198
+ },
199
+ callbacks(...args) {
200
+ return new OperationCallbacksElement(...args);
201
+ },
202
+ security(...args) {
203
+ return new OperationSecurityElement(...args);
204
+ },
205
+ servers(...args) {
206
+ return new OperationServersElement(...args);
207
+ }
208
+ },
209
+ ParameterElement: {
210
+ schema(...args) {
211
+ return new SchemaElement(...args);
212
+ },
213
+ examples(...args) {
214
+ return new ParameterExamplesElement(...args);
215
+ },
216
+ content(...args) {
217
+ return new ParameterContentElement(...args);
218
+ }
219
+ },
220
+ RequestBodyElement: {
221
+ content(...args) {
222
+ return new RequestBodyContentElement(...args);
223
+ }
224
+ },
225
+ MediaTypeElement: {
226
+ schema(...args) {
227
+ return new SchemaElement(...args);
228
+ },
229
+ examples(...args) {
230
+ return new MediaTypeExamplesElement(...args);
231
+ },
232
+ encoding(...args) {
233
+ return new MediaTypeEncodingElement(...args);
234
+ }
235
+ },
236
+ EncodingElement: {
237
+ headers(...args) {
238
+ return new EncodingHeadersElement(...args);
239
+ }
240
+ },
241
+ ResponsesElement: {
242
+ '[key: *]': function key(...args) {
243
+ return new ResponseElement(...args);
244
+ }
245
+ },
246
+ ResponseElement: {
247
+ headers(...args) {
248
+ return new ResponseHeadersElement(...args);
249
+ },
250
+ content(...args) {
251
+ return new ResponseContentElement(...args);
252
+ },
253
+ links(...args) {
254
+ return new ResponseLinksElement(...args);
255
+ }
256
+ },
257
+ CallbackElement: {
258
+ '[key: *]': function key(...args) {
259
+ return new PathItemElement(...args);
260
+ }
261
+ },
262
+ LinkElement: {
263
+ parameters(...args) {
264
+ return new LinkParametersElement(...args);
265
+ },
266
+ server(...args) {
267
+ return new ServerElement(...args);
268
+ }
269
+ },
270
+ HeaderElement: {
271
+ schema(...args) {
272
+ return new SchemaElement(...args);
273
+ },
274
+ examples(...args) {
275
+ return new HeaderExamplesElement(...args);
276
+ },
277
+ content(...args) {
278
+ return new HeaderContentElement(...args);
279
+ }
280
+ },
281
+ ComponentsElement: {
282
+ schemas(...args) {
283
+ return new ComponentsSchemasElement(...args);
284
+ },
285
+ responses(...args) {
286
+ return new ComponentsResponsesElement(...args);
287
+ },
288
+ parameters(...args) {
289
+ return new ComponentsParametersElement(...args);
290
+ },
291
+ examples(...args) {
292
+ return new ComponentsExamplesElement(...args);
293
+ },
294
+ requestBodies(...args) {
295
+ return new ComponentsRequestBodiesElement(...args);
296
+ },
297
+ headers(...args) {
298
+ return new ComponentsHeadersElement(...args);
299
+ },
300
+ securitySchemes(...args) {
301
+ return new ComponentsSecuritySchemesElement(...args);
302
+ },
303
+ links(...args) {
304
+ return new ComponentsLinksElement(...args);
305
+ },
306
+ callbacks(...args) {
307
+ return new ComponentsCallbacksElement(...args);
308
+ }
309
+ },
310
+ SecurityRequirementElement: {
311
+ '[key: *]': function key(...args) {
312
+ return new ArrayElement(...args);
313
+ }
314
+ },
315
+ TagElement: {
316
+ externalDocs(...args) {
317
+ return new ExternalDocumentationElement(...args);
318
+ }
319
+ },
320
+ SchemaElement: {
321
+ definitions(...args) {
322
+ const element = new ObjectElement(...args);
323
+ element.classes.push('json-schema-definitions');
324
+ return element;
325
+ },
326
+ allOf(...args) {
327
+ const element = new ArrayElement(...args);
328
+ element.classes.push('json-schema-allOf');
329
+ return element;
330
+ },
331
+ anyOf(...args) {
332
+ const element = new ArrayElement(...args);
333
+ element.classes.push('json-schema-anyOf');
334
+ return element;
335
+ },
336
+ oneOf(...args) {
337
+ const element = new ArrayElement(...args);
338
+ element.classes.push('json-schema-oneOf');
339
+ return element;
340
+ },
341
+ not(...args) {
342
+ return new SchemaElement(...args);
343
+ },
344
+ items(...args) {
345
+ return new SchemaElement(...args);
346
+ },
347
+ properties(...args) {
348
+ const element = new ObjectElement(...args);
349
+ element.classes.push('json-schema-properties');
350
+ return element;
351
+ },
352
+ patternProperties(...args) {
353
+ const element = new ObjectElement(...args);
354
+ element.classes.push('json-schema-patternProperties');
355
+ return element;
356
+ },
357
+ additionalProperties(...args) {
358
+ return new SchemaElement(...args);
359
+ },
360
+ enum(...args) {
361
+ const element = new ArrayElement(...args);
362
+ element.classes.push('json-schema-enum');
363
+ return element;
364
+ },
365
+ required(...args) {
366
+ const element = new ArrayElement(...args);
367
+ element.classes.push('json-schema-required');
368
+ return element;
369
+ },
370
+ discriminator(...args) {
371
+ return new DiscriminatorElement(...args);
372
+ },
373
+ xml(...args) {
374
+ return new XmlElement(...args);
375
+ },
376
+ externalDocs(...args) {
377
+ return new ExternalDocumentationElement(...args);
378
+ }
379
+ },
380
+ DiscriminatorElement: {
381
+ mapping(...args) {
382
+ return new DiscriminatorMappingElement(...args);
383
+ }
384
+ },
385
+ SecuritySchemeElement: {
386
+ flows(...args) {
387
+ return new OAuthFlowsElement(...args);
388
+ }
389
+ },
390
+ OAuthFlowsElement: {
391
+ implicit(...args) {
392
+ return new OAuthFlowElement(...args);
393
+ },
394
+ password(...args) {
395
+ return new OAuthFlowElement(...args);
396
+ },
397
+ clientCredentials(...args) {
398
+ return new OAuthFlowElement(...args);
399
+ },
400
+ authorizationCode(...args) {
401
+ return new OAuthFlowElement(...args);
402
+ }
403
+ },
404
+ OAuthFlowElement: {
405
+ scopes(...args) {
406
+ return new OAuthFlowScopesElement(...args);
407
+ }
408
+ },
409
+ // non-concrete types handling (NCEs)
410
+ [ServerVariablesElement.primaryClass]: {
411
+ '[key: *]': function key(...args) {
412
+ return new ServerVariableElement(...args);
413
+ }
414
+ },
415
+ [ComponentsSchemasElement.primaryClass]: {
416
+ '[key: *]': function key(...args) {
417
+ return new SchemaElement(...args);
418
+ }
419
+ },
420
+ [ComponentsResponsesElement.primaryClass]: {
421
+ '[key: *]': function key(...args) {
422
+ return new ResponseElement(...args);
423
+ }
424
+ },
425
+ [ComponentsParametersElement.primaryClass]: {
426
+ '[key: *]': function key(...args) {
427
+ return new ParameterElement(...args);
428
+ }
429
+ },
430
+ [ComponentsExamplesElement.primaryClass]: {
431
+ '[key: *]': function key(...args) {
432
+ return new ExampleElement(...args);
433
+ }
434
+ },
435
+ [ComponentsRequestBodiesElement.primaryClass]: {
436
+ '[key: *]': function key(...args) {
437
+ return new RequestBodyElement(...args);
438
+ }
439
+ },
440
+ [ComponentsHeadersElement.primaryClass]: {
441
+ '[key: *]': function key(...args) {
442
+ return new HeaderElement(...args);
443
+ }
444
+ },
445
+ [ComponentsSecuritySchemesElement.primaryClass]: {
446
+ '[key: *]': function key(...args) {
447
+ return new SecuritySchemeElement(...args);
448
+ }
449
+ },
450
+ [ComponentsLinksElement.primaryClass]: {
451
+ '[key: *]': function key(...args) {
452
+ return new LinkElement(...args);
453
+ }
454
+ },
455
+ [ComponentsCallbacksElement.primaryClass]: {
456
+ '[key: *]': function key(...args) {
457
+ return new CallbackElement(...args);
458
+ }
459
+ },
460
+ [OperationCallbacksElement.primaryClass]: {
461
+ '[key: *]': function key(...args) {
462
+ return new CallbackElement(...args);
463
+ }
464
+ },
465
+ [ParameterExamplesElement.primaryClass]: {
466
+ '[key: *]': function key(...args) {
467
+ return new ExampleElement(...args);
468
+ }
469
+ },
470
+ [ParameterContentElement.primaryClass]: {
471
+ '[key: *]': function key(...args) {
472
+ return new MediaTypeElement(...args);
473
+ }
474
+ },
475
+ [RequestBodyContentElement.primaryClass]: {
476
+ '[key: *]': function key(...args) {
477
+ return new MediaTypeElement(...args);
478
+ }
479
+ },
480
+ [MediaTypeExamplesElement.primaryClass]: {
481
+ '[key: *]': function key(...args) {
482
+ return new ExampleElement(...args);
483
+ }
484
+ },
485
+ [MediaTypeEncodingElement.primaryClass]: {
486
+ '[key: *]': function key(...args) {
487
+ return new EncodingElement(...args);
488
+ }
489
+ },
490
+ [EncodingHeadersElement.primaryClass]: {
491
+ '[key: *]': function key(...args) {
492
+ return new HeaderElement(...args);
493
+ }
494
+ },
495
+ [ResponseHeadersElement.primaryClass]: {
496
+ '[key: *]': function key(...args) {
497
+ return new HeaderElement(...args);
498
+ }
499
+ },
500
+ [ResponseContentElement.primaryClass]: {
501
+ '[key: *]': function key(...args) {
502
+ return new MediaTypeElement(...args);
503
+ }
504
+ },
505
+ [ResponseLinksElement.primaryClass]: {
506
+ '[key: *]': function key(...args) {
507
+ return new LinkElement(...args);
508
+ }
509
+ },
510
+ 'json-schema-$defs': {
511
+ '[key: *]': function key(...args) {
512
+ return new SchemaElement(...args);
513
+ }
514
+ },
515
+ 'json-schema-dependentSchemas': {
516
+ '[key: *]': function key(...args) {
517
+ return new SchemaElement(...args);
518
+ }
519
+ },
520
+ 'json-schema-properties': {
521
+ '[key: *]': function key(...args) {
522
+ return new SchemaElement(...args);
523
+ }
524
+ },
525
+ [ServersElement.primaryClass]: {
526
+ '<*>': function asterisk(...args) {
527
+ return new ServerElement(...args);
528
+ }
529
+ },
530
+ [SecurityElement.primaryClass]: {
531
+ '<*>': function asterisk(...args) {
532
+ return new SecurityRequirementElement(...args);
533
+ }
534
+ },
535
+ [TagsElement.primaryClass]: {
536
+ '<*>': function asterisk(...args) {
537
+ return new TagElement(...args);
538
+ }
539
+ },
540
+ [PathItemServersElement.primaryClass]: {
541
+ '<*>': function asterisk(...args) {
542
+ return new ServerElement(...args);
543
+ }
544
+ },
545
+ [PathItemParametersElement.primaryClass]: {
546
+ '<*>': function asterisk(...args) {
547
+ return new ParameterElement(...args);
548
+ }
549
+ },
550
+ [OperationParametersElement.primaryClass]: {
551
+ '<*>': function asterisk(...args) {
552
+ return new ParameterElement(...args);
553
+ }
554
+ },
555
+ [OperationSecurityElement.primaryClass]: {
556
+ '<*>': function asterisk(...args) {
557
+ return new SecurityRequirementElement(...args);
558
+ }
559
+ },
560
+ [OperationServersElement.primaryClass]: {
561
+ '<*>': function asterisk(...args) {
562
+ return new ServerElement(...args);
563
+ }
564
+ },
565
+ 'json-schema-allOf': {
566
+ '<*>': function asterisk(...args) {
567
+ return new SchemaElement(...args);
568
+ }
569
+ },
570
+ 'json-schema-anyOf': {
571
+ '<*>': function asterisk(...args) {
572
+ return new SchemaElement(...args);
573
+ }
574
+ },
575
+ 'json-schema-oneOf': {
576
+ '<*>': function asterisk(...args) {
577
+ return new SchemaElement(...args);
578
+ }
579
+ },
580
+ 'json-schema-prefixItems': {
581
+ '<*>': function asterisk(...args) {
582
+ return new SchemaElement(...args);
583
+ }
584
+ }
585
+ };
586
+ const findElementFactory = (ancestor, keyName) => {
587
+ const elementType = getNodeType(ancestor); // @ts-ignore
588
+ const keyMapping = schema[elementType] || schema[toValue(ancestor.classes.first)];
589
+ return typeof keyMapping === 'undefined' ? undefined : Object.hasOwn(keyMapping, '[key: *]') ? keyMapping['[key: *]'] : keyMapping[keyName];
590
+ };
591
+
592
+ /**
593
+ * @public
594
+ */
595
+ const plugin = () => () => ({
596
+ visitor: {
597
+ StringElement(element, key, parent, path, ancestors) {
598
+ if (!isEmptyElement(element)) return undefined;
599
+ const lineage = [...ancestors, parent].filter(isElement);
600
+ const parentElement = lineage.at(-1);
601
+ let elementFactory;
602
+ let context;
603
+ if (isArrayElement(parentElement)) {
604
+ context = element;
605
+ elementFactory = findElementFactory(parentElement, '<*>');
606
+ } else if (isMemberElement(parentElement)) {
607
+ context = lineage.at(-2);
608
+ elementFactory = findElementFactory(context, toValue(parentElement.key));
609
+ }
610
+
611
+ // no element factory found
612
+ if (typeof elementFactory !== 'function') return undefined;
613
+ return elementFactory.call({
614
+ context
615
+ }, undefined, cloneDeep(element.meta), cloneDeep(element.attributes));
616
+ }
617
+ }
618
+ });
619
+ export default plugin;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.isTagLikeElement = exports.isServerLikeElement = exports.isReferenceLikeElement = exports.isOpenApiExtension = 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 isReferenceLikeElement = element => {
15
+ return (0, _apidomCore.isObjectElement)(element) && element.hasKey('$ref');
16
+ };
17
+
18
+ /**
19
+ * @public
20
+ */
21
+ exports.isReferenceLikeElement = isReferenceLikeElement;
22
+ const isServerLikeElement = exports.isServerLikeElement = _apidomCore.isObjectElement;
23
+
24
+ /**
25
+ * @public
26
+ */
27
+ const isTagLikeElement = exports.isTagLikeElement = _apidomCore.isObjectElement;
28
+
29
+ /**
30
+ * @public
31
+ */
32
+ const isOpenApiExtension = element => {
33
+ // @ts-ignore
34
+ return (0, _apidomCore.isStringElement)(element.key) && (0, _ramda.startsWith)('x-', (0, _apidomCore.toValue)(element.key));
35
+ };
36
+ exports.isOpenApiExtension = isOpenApiExtension;
@@ -0,0 +1,31 @@
1
+ import { startsWith } from 'ramda';
2
+ import { isStringElement, isObjectElement, toValue } from '@speclynx/apidom-core';
3
+
4
+ /**
5
+ * @public
6
+ */
7
+
8
+ /**
9
+ * @public
10
+ */
11
+ export const isReferenceLikeElement = element => {
12
+ return isObjectElement(element) && element.hasKey('$ref');
13
+ };
14
+
15
+ /**
16
+ * @public
17
+ */
18
+ export const isServerLikeElement = isObjectElement;
19
+
20
+ /**
21
+ * @public
22
+ */
23
+ export const isTagLikeElement = isObjectElement;
24
+
25
+ /**
26
+ * @public
27
+ */
28
+ export const isOpenApiExtension = element => {
29
+ // @ts-ignore
30
+ return isStringElement(element.key) && startsWith('x-', toValue(element.key));
31
+ };