@swagger-api/apidom-ns-openapi-2 0.79.0

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 (221) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/LICENSES/Apache-2.0.txt +202 -0
  3. package/LICENSES/MIT.txt +9 -0
  4. package/NOTICE +57 -0
  5. package/README.md +215 -0
  6. package/cjs/elements/Contact.cjs +30 -0
  7. package/cjs/elements/Definitions.cjs +12 -0
  8. package/cjs/elements/Example.cjs +12 -0
  9. package/cjs/elements/ExternalDocumentation.cjs +24 -0
  10. package/cjs/elements/Header.cjs +184 -0
  11. package/cjs/elements/Headers.cjs +12 -0
  12. package/cjs/elements/Info.cjs +49 -0
  13. package/cjs/elements/Items.cjs +189 -0
  14. package/cjs/elements/License.cjs +24 -0
  15. package/cjs/elements/Operation.cjs +75 -0
  16. package/cjs/elements/Parameter.cjs +229 -0
  17. package/cjs/elements/ParametersDefinitions.cjs +12 -0
  18. package/cjs/elements/PathItem.cjs +66 -0
  19. package/cjs/elements/Paths.cjs +12 -0
  20. package/cjs/elements/Reference.cjs +19 -0
  21. package/cjs/elements/Response.cjs +36 -0
  22. package/cjs/elements/Responses.cjs +18 -0
  23. package/cjs/elements/ResponsesDefinitions.cjs +12 -0
  24. package/cjs/elements/Schema.cjs +115 -0
  25. package/cjs/elements/Scopes.cjs +12 -0
  26. package/cjs/elements/SecurityDefinitions.cjs +12 -0
  27. package/cjs/elements/SecurityRequirement.cjs +12 -0
  28. package/cjs/elements/SecurityScheme.cjs +60 -0
  29. package/cjs/elements/Swagger.cjs +103 -0
  30. package/cjs/elements/SwaggerVersion.cjs +14 -0
  31. package/cjs/elements/Tag.cjs +30 -0
  32. package/cjs/elements/Xml.cjs +42 -0
  33. package/cjs/elements/nces/OperationConsumes.cjs +13 -0
  34. package/cjs/elements/nces/OperationParameters.cjs +14 -0
  35. package/cjs/elements/nces/OperationProduces.cjs +13 -0
  36. package/cjs/elements/nces/OperationSchemes.cjs +13 -0
  37. package/cjs/elements/nces/OperationSecurity.cjs +14 -0
  38. package/cjs/elements/nces/OperationTags.cjs +13 -0
  39. package/cjs/elements/nces/PathItemParameters.cjs +14 -0
  40. package/cjs/elements/nces/SwaggerConsumes.cjs +13 -0
  41. package/cjs/elements/nces/SwaggerProduces.cjs +13 -0
  42. package/cjs/elements/nces/SwaggerSchemes.cjs +13 -0
  43. package/cjs/elements/nces/SwaggerSecurity.cjs +14 -0
  44. package/cjs/elements/nces/SwaggerTags.cjs +13 -0
  45. package/cjs/index.cjs +134 -0
  46. package/cjs/media-types.cjs +23 -0
  47. package/cjs/namespace.cjs +68 -0
  48. package/cjs/predicates.cjs +222 -0
  49. package/cjs/refractor/index.cjs +47 -0
  50. package/cjs/refractor/plugins/replace-empty-element.cjs +365 -0
  51. package/cjs/refractor/predicates.cjs +14 -0
  52. package/cjs/refractor/registration.cjs +87 -0
  53. package/cjs/refractor/specification.cjs +488 -0
  54. package/cjs/refractor/toolbox.cjs +23 -0
  55. package/cjs/refractor/visitors/FallbackVisitor.cjs +23 -0
  56. package/cjs/refractor/visitors/SpecificationExtensionVisitor.cjs +18 -0
  57. package/cjs/refractor/visitors/SpecificationVisitor.cjs +87 -0
  58. package/cjs/refractor/visitors/Visitor.cjs +22 -0
  59. package/cjs/refractor/visitors/generics/AlternatingVisitor.cjs +27 -0
  60. package/cjs/refractor/visitors/generics/FixedFieldsVisitor.cjs +56 -0
  61. package/cjs/refractor/visitors/generics/MapVisitor.cjs +14 -0
  62. package/cjs/refractor/visitors/generics/MixedFieldsVisitor.cjs +42 -0
  63. package/cjs/refractor/visitors/generics/PatternedFieldsVisitor.cjs +58 -0
  64. package/cjs/refractor/visitors/open-api-2/ConsumesVisitor.cjs +21 -0
  65. package/cjs/refractor/visitors/open-api-2/ProducesVisitor.cjs +21 -0
  66. package/cjs/refractor/visitors/open-api-2/SchemesVisitor.cjs +21 -0
  67. package/cjs/refractor/visitors/open-api-2/SecurityVisitor.cjs +27 -0
  68. package/cjs/refractor/visitors/open-api-2/SwaggerVisitor.cjs +21 -0
  69. package/cjs/refractor/visitors/open-api-2/TagsVisitor.cjs +27 -0
  70. package/cjs/refractor/visitors/open-api-2/contact/index.cjs +20 -0
  71. package/cjs/refractor/visitors/open-api-2/definitions/index.cjs +33 -0
  72. package/cjs/refractor/visitors/open-api-2/example/index.cjs +20 -0
  73. package/cjs/refractor/visitors/open-api-2/external-documentation/index.cjs +20 -0
  74. package/cjs/refractor/visitors/open-api-2/header/index.cjs +20 -0
  75. package/cjs/refractor/visitors/open-api-2/headers/index.cjs +20 -0
  76. package/cjs/refractor/visitors/open-api-2/index.cjs +20 -0
  77. package/cjs/refractor/visitors/open-api-2/info/VersionVisitor.cjs +19 -0
  78. package/cjs/refractor/visitors/open-api-2/info/index.cjs +20 -0
  79. package/cjs/refractor/visitors/open-api-2/items/index.cjs +20 -0
  80. package/cjs/refractor/visitors/open-api-2/license/index.cjs +20 -0
  81. package/cjs/refractor/visitors/open-api-2/operation/ConsumesVisitor.cjs +21 -0
  82. package/cjs/refractor/visitors/open-api-2/operation/ParametersVisitor.cjs +32 -0
  83. package/cjs/refractor/visitors/open-api-2/operation/ProducesVisitor.cjs +21 -0
  84. package/cjs/refractor/visitors/open-api-2/operation/SchemesVisitor.cjs +21 -0
  85. package/cjs/refractor/visitors/open-api-2/operation/SecurityVisitor.cjs +27 -0
  86. package/cjs/refractor/visitors/open-api-2/operation/TagsVisitor.cjs +21 -0
  87. package/cjs/refractor/visitors/open-api-2/operation/index.cjs +19 -0
  88. package/cjs/refractor/visitors/open-api-2/parameter/index.cjs +20 -0
  89. package/cjs/refractor/visitors/open-api-2/parameters-definitions/index.cjs +19 -0
  90. package/cjs/refractor/visitors/open-api-2/path-item/$RefVisitor.cjs +18 -0
  91. package/cjs/refractor/visitors/open-api-2/path-item/ParametersVisitor.cjs +32 -0
  92. package/cjs/refractor/visitors/open-api-2/path-item/index.cjs +40 -0
  93. package/cjs/refractor/visitors/open-api-2/paths/index.cjs +35 -0
  94. package/cjs/refractor/visitors/open-api-2/reference/$RefVisitor.cjs +18 -0
  95. package/cjs/refractor/visitors/open-api-2/reference/index.cjs +33 -0
  96. package/cjs/refractor/visitors/open-api-2/response/index.cjs +20 -0
  97. package/cjs/refractor/visitors/open-api-2/responses/DefaultVisitor.cjs +37 -0
  98. package/cjs/refractor/visitors/open-api-2/responses/index.cjs +46 -0
  99. package/cjs/refractor/visitors/open-api-2/responses-definitions/index.cjs +19 -0
  100. package/cjs/refractor/visitors/open-api-2/schema/AllOfVisitor.cjs +23 -0
  101. package/cjs/refractor/visitors/open-api-2/schema/ItemsVisitor.cjs +31 -0
  102. package/cjs/refractor/visitors/open-api-2/schema/PropertiesVisitor.cjs +23 -0
  103. package/cjs/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.cjs +23 -0
  104. package/cjs/refractor/visitors/open-api-2/schema/index.cjs +20 -0
  105. package/cjs/refractor/visitors/open-api-2/scopes/index.cjs +20 -0
  106. package/cjs/refractor/visitors/open-api-2/security-definitions/index.cjs +19 -0
  107. package/cjs/refractor/visitors/open-api-2/security-requirement/index.cjs +19 -0
  108. package/cjs/refractor/visitors/open-api-2/security-scheme/index.cjs +20 -0
  109. package/cjs/refractor/visitors/open-api-2/tag/index.cjs +20 -0
  110. package/cjs/refractor/visitors/open-api-2/xml/index.cjs +20 -0
  111. package/cjs/traversal/visitor.cjs +53 -0
  112. package/dist/apidom-ns-openapi-2.browser.js +25296 -0
  113. package/dist/apidom-ns-openapi-2.browser.min.js +1 -0
  114. package/es/elements/Contact.mjs +26 -0
  115. package/es/elements/Definitions.mjs +8 -0
  116. package/es/elements/Example.mjs +8 -0
  117. package/es/elements/ExternalDocumentation.mjs +20 -0
  118. package/es/elements/Header.mjs +182 -0
  119. package/es/elements/Headers.mjs +8 -0
  120. package/es/elements/Info.mjs +45 -0
  121. package/es/elements/Items.mjs +187 -0
  122. package/es/elements/License.mjs +20 -0
  123. package/es/elements/Operation.mjs +71 -0
  124. package/es/elements/Parameter.mjs +226 -0
  125. package/es/elements/ParametersDefinitions.mjs +8 -0
  126. package/es/elements/PathItem.mjs +62 -0
  127. package/es/elements/Paths.mjs +8 -0
  128. package/es/elements/Reference.mjs +15 -0
  129. package/es/elements/Response.mjs +32 -0
  130. package/es/elements/Responses.mjs +14 -0
  131. package/es/elements/ResponsesDefinitions.mjs +8 -0
  132. package/es/elements/Schema.mjs +113 -0
  133. package/es/elements/Scopes.mjs +8 -0
  134. package/es/elements/SecurityDefinitions.mjs +8 -0
  135. package/es/elements/SecurityRequirement.mjs +8 -0
  136. package/es/elements/SecurityScheme.mjs +56 -0
  137. package/es/elements/Swagger.mjs +99 -0
  138. package/es/elements/SwaggerVersion.mjs +10 -0
  139. package/es/elements/Tag.mjs +26 -0
  140. package/es/elements/Xml.mjs +38 -0
  141. package/es/elements/nces/OperationConsumes.mjs +9 -0
  142. package/es/elements/nces/OperationParameters.mjs +10 -0
  143. package/es/elements/nces/OperationProduces.mjs +9 -0
  144. package/es/elements/nces/OperationSchemes.mjs +9 -0
  145. package/es/elements/nces/OperationSecurity.mjs +10 -0
  146. package/es/elements/nces/OperationTags.mjs +9 -0
  147. package/es/elements/nces/PathItemParameters.mjs +10 -0
  148. package/es/elements/nces/SwaggerConsumes.mjs +9 -0
  149. package/es/elements/nces/SwaggerProduces.mjs +9 -0
  150. package/es/elements/nces/SwaggerSchemes.mjs +9 -0
  151. package/es/elements/nces/SwaggerSecurity.mjs +10 -0
  152. package/es/elements/nces/SwaggerTags.mjs +9 -0
  153. package/es/index.mjs +31 -0
  154. package/es/media-types.mjs +18 -0
  155. package/es/namespace.mjs +63 -0
  156. package/es/predicates.mjs +217 -0
  157. package/es/refractor/index.mjs +41 -0
  158. package/es/refractor/plugins/replace-empty-element.mjs +357 -0
  159. package/es/refractor/predicates.mjs +8 -0
  160. package/es/refractor/registration.mjs +56 -0
  161. package/es/refractor/specification.mjs +482 -0
  162. package/es/refractor/toolbox.mjs +17 -0
  163. package/es/refractor/visitors/FallbackVisitor.mjs +18 -0
  164. package/es/refractor/visitors/SpecificationExtensionVisitor.mjs +13 -0
  165. package/es/refractor/visitors/SpecificationVisitor.mjs +82 -0
  166. package/es/refractor/visitors/Visitor.mjs +17 -0
  167. package/es/refractor/visitors/generics/AlternatingVisitor.mjs +22 -0
  168. package/es/refractor/visitors/generics/FixedFieldsVisitor.mjs +51 -0
  169. package/es/refractor/visitors/generics/MapVisitor.mjs +9 -0
  170. package/es/refractor/visitors/generics/MixedFieldsVisitor.mjs +37 -0
  171. package/es/refractor/visitors/generics/PatternedFieldsVisitor.mjs +53 -0
  172. package/es/refractor/visitors/open-api-2/ConsumesVisitor.mjs +16 -0
  173. package/es/refractor/visitors/open-api-2/ProducesVisitor.mjs +16 -0
  174. package/es/refractor/visitors/open-api-2/SchemesVisitor.mjs +16 -0
  175. package/es/refractor/visitors/open-api-2/SecurityVisitor.mjs +22 -0
  176. package/es/refractor/visitors/open-api-2/SwaggerVisitor.mjs +16 -0
  177. package/es/refractor/visitors/open-api-2/TagsVisitor.mjs +22 -0
  178. package/es/refractor/visitors/open-api-2/contact/index.mjs +15 -0
  179. package/es/refractor/visitors/open-api-2/definitions/index.mjs +28 -0
  180. package/es/refractor/visitors/open-api-2/example/index.mjs +15 -0
  181. package/es/refractor/visitors/open-api-2/external-documentation/index.mjs +15 -0
  182. package/es/refractor/visitors/open-api-2/header/index.mjs +15 -0
  183. package/es/refractor/visitors/open-api-2/headers/index.mjs +15 -0
  184. package/es/refractor/visitors/open-api-2/index.mjs +15 -0
  185. package/es/refractor/visitors/open-api-2/info/VersionVisitor.mjs +14 -0
  186. package/es/refractor/visitors/open-api-2/info/index.mjs +15 -0
  187. package/es/refractor/visitors/open-api-2/items/index.mjs +15 -0
  188. package/es/refractor/visitors/open-api-2/license/index.mjs +15 -0
  189. package/es/refractor/visitors/open-api-2/operation/ConsumesVisitor.mjs +16 -0
  190. package/es/refractor/visitors/open-api-2/operation/ParametersVisitor.mjs +27 -0
  191. package/es/refractor/visitors/open-api-2/operation/ProducesVisitor.mjs +16 -0
  192. package/es/refractor/visitors/open-api-2/operation/SchemesVisitor.mjs +16 -0
  193. package/es/refractor/visitors/open-api-2/operation/SecurityVisitor.mjs +22 -0
  194. package/es/refractor/visitors/open-api-2/operation/TagsVisitor.mjs +16 -0
  195. package/es/refractor/visitors/open-api-2/operation/index.mjs +14 -0
  196. package/es/refractor/visitors/open-api-2/parameter/index.mjs +15 -0
  197. package/es/refractor/visitors/open-api-2/parameters-definitions/index.mjs +14 -0
  198. package/es/refractor/visitors/open-api-2/path-item/$RefVisitor.mjs +13 -0
  199. package/es/refractor/visitors/open-api-2/path-item/ParametersVisitor.mjs +27 -0
  200. package/es/refractor/visitors/open-api-2/path-item/index.mjs +35 -0
  201. package/es/refractor/visitors/open-api-2/paths/index.mjs +30 -0
  202. package/es/refractor/visitors/open-api-2/reference/$RefVisitor.mjs +13 -0
  203. package/es/refractor/visitors/open-api-2/reference/index.mjs +28 -0
  204. package/es/refractor/visitors/open-api-2/response/index.mjs +15 -0
  205. package/es/refractor/visitors/open-api-2/responses/DefaultVisitor.mjs +32 -0
  206. package/es/refractor/visitors/open-api-2/responses/index.mjs +41 -0
  207. package/es/refractor/visitors/open-api-2/responses-definitions/index.mjs +14 -0
  208. package/es/refractor/visitors/open-api-2/schema/AllOfVisitor.mjs +18 -0
  209. package/es/refractor/visitors/open-api-2/schema/ItemsVisitor.mjs +26 -0
  210. package/es/refractor/visitors/open-api-2/schema/PropertiesVisitor.mjs +18 -0
  211. package/es/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.mjs +18 -0
  212. package/es/refractor/visitors/open-api-2/schema/index.mjs +15 -0
  213. package/es/refractor/visitors/open-api-2/scopes/index.mjs +15 -0
  214. package/es/refractor/visitors/open-api-2/security-definitions/index.mjs +14 -0
  215. package/es/refractor/visitors/open-api-2/security-requirement/index.mjs +14 -0
  216. package/es/refractor/visitors/open-api-2/security-scheme/index.mjs +15 -0
  217. package/es/refractor/visitors/open-api-2/tag/index.mjs +15 -0
  218. package/es/refractor/visitors/open-api-2/xml/index.mjs +15 -0
  219. package/es/traversal/visitor.mjs +50 -0
  220. package/package.json +64 -0
  221. package/types/dist.d.ts +1143 -0
@@ -0,0 +1,27 @@
1
+ import stampit from 'stampit';
2
+ import { BREAK } from '@swagger-api/apidom-core';
3
+ import { isReferenceLikeElement } from "../../../predicates.mjs";
4
+ import { isReferenceElement } from "../../../../predicates.mjs";
5
+ import PathItemParametersElement from "../../../../elements/nces/PathItemParameters.mjs";
6
+ import FallbackVisitor from "../../FallbackVisitor.mjs";
7
+ import SpecificationVisitor from "../../SpecificationVisitor.mjs";
8
+ const ParametersVisitor = stampit(SpecificationVisitor, FallbackVisitor, {
9
+ init() {
10
+ this.element = new PathItemParametersElement();
11
+ },
12
+ methods: {
13
+ ArrayElement(arrayElement) {
14
+ arrayElement.forEach(item => {
15
+ const specPath = isReferenceLikeElement(item) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'Parameter'];
16
+ const element = this.toRefractedElement(specPath, item);
17
+ if (isReferenceElement(element)) {
18
+ element.setMetaProperty('referenced-element', 'parameter');
19
+ }
20
+ this.element.push(element);
21
+ });
22
+ this.copyMetaAndAttributes(arrayElement, this.element);
23
+ return BREAK;
24
+ }
25
+ }
26
+ });
27
+ export default ParametersVisitor;
@@ -0,0 +1,35 @@
1
+ import stampit from 'stampit';
2
+ import { always } from 'ramda';
3
+ import { isStringElement, cloneDeep, toValue } from '@swagger-api/apidom-core';
4
+ import PathItemElement from "../../../../elements/PathItem.mjs";
5
+ import { isOperationElement } from "../../../../predicates.mjs";
6
+ import FixedFieldsVisitor from "../../generics/FixedFieldsVisitor.mjs";
7
+ import FallbackVisitor from "../../FallbackVisitor.mjs";
8
+ const PathItemVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, {
9
+ props: {
10
+ specPath: always(['document', 'objects', 'PathItem'])
11
+ },
12
+ init() {
13
+ this.element = new PathItemElement();
14
+ },
15
+ methods: {
16
+ ObjectElement(objectElement) {
17
+ // @ts-ignore
18
+ const result = FixedFieldsVisitor.compose.methods.ObjectElement.call(this, objectElement);
19
+
20
+ // decorate Operation elements with HTTP method
21
+ this.element.filter(isOperationElement).forEach((operationElement, httpMethodElementCI) => {
22
+ const httpMethodElementCS = cloneDeep(httpMethodElementCI);
23
+ httpMethodElementCS.content = toValue(httpMethodElementCS).toUpperCase();
24
+ operationElement.setMetaProperty('http-method', httpMethodElementCS);
25
+ });
26
+
27
+ // mark this PathItemElement with reference metadata
28
+ if (isStringElement(this.element.$ref)) {
29
+ this.element.classes.push('reference-element');
30
+ }
31
+ return result;
32
+ }
33
+ }
34
+ });
35
+ export default PathItemVisitor;
@@ -0,0 +1,30 @@
1
+ import stampit from 'stampit';
2
+ import { test, always } from 'ramda';
3
+ import { cloneDeep } from '@swagger-api/apidom-core';
4
+ import PathsElement from "../../../../elements/Paths.mjs";
5
+ import PatternedFieldsVisitor from "../../generics/PatternedFieldsVisitor.mjs";
6
+ import FallbackVisitor from "../../FallbackVisitor.mjs";
7
+ import { isPathItemElement } from "../../../../predicates.mjs";
8
+ const PathsVisitor = stampit(PatternedFieldsVisitor, FallbackVisitor, {
9
+ props: {
10
+ fieldPatternPredicate: test(/^\/(?<path>.*)$/),
11
+ specPath: always(['document', 'objects', 'PathItem']),
12
+ canSupportSpecificationExtensions: true
13
+ },
14
+ init() {
15
+ this.element = new PathsElement();
16
+ },
17
+ methods: {
18
+ ObjectElement(objectElement) {
19
+ // @ts-ignore
20
+ const result = PatternedFieldsVisitor.compose.methods.ObjectElement.call(this, objectElement);
21
+
22
+ // decorate every PathItemElement with path metadata
23
+ this.element.filter(isPathItemElement).forEach((pathItemElement, key) => {
24
+ pathItemElement.setMetaProperty('path', cloneDeep(key));
25
+ });
26
+ return result;
27
+ }
28
+ }
29
+ });
30
+ export default PathsVisitor;
@@ -0,0 +1,13 @@
1
+ import stampit from 'stampit';
2
+ import { BREAK, cloneDeep } from '@swagger-api/apidom-core';
3
+ import FallbackVisitor from "../../FallbackVisitor.mjs";
4
+ const $RefVisitor = stampit(FallbackVisitor, {
5
+ methods: {
6
+ StringElement(stringElement) {
7
+ this.element = cloneDeep(stringElement);
8
+ this.element.classes.push('reference-value');
9
+ return BREAK;
10
+ }
11
+ }
12
+ });
13
+ export default $RefVisitor;
@@ -0,0 +1,28 @@
1
+ import stampit from 'stampit';
2
+ import { always } from 'ramda';
3
+ import { isStringElement } from '@swagger-api/apidom-core';
4
+ import ReferenceElement from "../../../../elements/Reference.mjs";
5
+ import FixedFieldsVisitor from "../../generics/FixedFieldsVisitor.mjs";
6
+ import FallbackVisitor from "../../FallbackVisitor.mjs";
7
+ const ReferenceVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, {
8
+ props: {
9
+ specPath: always(['document', 'objects', 'Reference']),
10
+ canSupportSpecificationExtensions: false
11
+ },
12
+ init() {
13
+ this.element = new ReferenceElement();
14
+ },
15
+ methods: {
16
+ ObjectElement(objectElement) {
17
+ // @ts-ignore
18
+ const result = FixedFieldsVisitor.compose.methods.ObjectElement.call(this, objectElement);
19
+
20
+ // mark this ReferenceElement with reference metadata
21
+ if (isStringElement(this.element.$ref)) {
22
+ this.element.classes.push('reference-element');
23
+ }
24
+ return result;
25
+ }
26
+ }
27
+ });
28
+ export default ReferenceVisitor;
@@ -0,0 +1,15 @@
1
+ import stampit from 'stampit';
2
+ import { always } from 'ramda';
3
+ import ResponseElement from "../../../../elements/Response.mjs";
4
+ import FallbackVisitor from "../../FallbackVisitor.mjs";
5
+ import FixedFieldsVisitor from "../../generics/FixedFieldsVisitor.mjs";
6
+ const ResponseVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, {
7
+ props: {
8
+ specPath: always(['document', 'objects', 'Response']),
9
+ canSupportSpecificationExtensions: true
10
+ },
11
+ init() {
12
+ this.element = new ResponseElement();
13
+ }
14
+ });
15
+ export default ResponseVisitor;
@@ -0,0 +1,32 @@
1
+ import stampit from 'stampit';
2
+ import { T as stubTrue } from 'ramda';
3
+ import { isReferenceLikeElement } from "../../../predicates.mjs";
4
+ import { isReferenceElement, isResponseElement } from "../../../../predicates.mjs";
5
+ import AlternatingVisitor from "../../generics/AlternatingVisitor.mjs";
6
+ import FallbackVisitor from "../../FallbackVisitor.mjs";
7
+ const DefaultVisitor = stampit(AlternatingVisitor, FallbackVisitor, {
8
+ props: {
9
+ alternator: [{
10
+ predicate: isReferenceLikeElement,
11
+ specPath: ['document', 'objects', 'Reference']
12
+ }, {
13
+ predicate: stubTrue,
14
+ specPath: ['document', 'objects', 'Response']
15
+ }]
16
+ },
17
+ methods: {
18
+ ObjectElement(objectElement) {
19
+ // @ts-ignore
20
+ const result = AlternatingVisitor.compose.methods.enter.call(this, objectElement);
21
+
22
+ // decorate ReferenceElement with type of referencing element
23
+ if (isReferenceElement(this.element)) {
24
+ this.element.setMetaProperty('referenced-element', 'response');
25
+ } else if (isResponseElement(this.element)) {
26
+ this.element.setMetaProperty('http-status-code', 'default');
27
+ }
28
+ return result;
29
+ }
30
+ }
31
+ });
32
+ export default DefaultVisitor;
@@ -0,0 +1,41 @@
1
+ import stampit from 'stampit';
2
+ import { test, always, range } from 'ramda';
3
+ import { cloneDeep, toValue } from '@swagger-api/apidom-core';
4
+ import ResponsesElement from "../../../../elements/Responses.mjs";
5
+ import MixedFieldsVisitor from "../../generics/MixedFieldsVisitor.mjs";
6
+ import FallbackVisitor from "../../FallbackVisitor.mjs";
7
+ import { isReferenceLikeElement } from "../../../predicates.mjs";
8
+ import { isReferenceElement, isResponseElement } from "../../../../predicates.mjs";
9
+ const ResponsesVisitor = stampit(MixedFieldsVisitor, FallbackVisitor, {
10
+ props: {
11
+ specPathFixedFields: always(['document', 'objects', 'Responses']),
12
+ specPathPatternedFields: element => {
13
+ return isReferenceLikeElement(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'Response'];
14
+ },
15
+ fieldPatternPredicate: test(new RegExp(`^(1XX|2XX|3XX|4XX|5XX|${range(100, 600).join('|')})$`)),
16
+ canSupportSpecificationExtensions: true
17
+ },
18
+ init() {
19
+ this.element = new ResponsesElement();
20
+ },
21
+ methods: {
22
+ ObjectElement(objectElement) {
23
+ // @ts-ignore
24
+ const result = MixedFieldsVisitor.compose.methods.ObjectElement.call(this, objectElement);
25
+
26
+ // decorate every ReferenceElement with metadata about their referencing type
27
+ this.element.filter(isReferenceElement).forEach(referenceElement => {
28
+ referenceElement.setMetaProperty('referenced-element', 'response');
29
+ });
30
+
31
+ // decorate every ResponseElement with metadata about their status code
32
+ this.element.filter(isResponseElement).forEach((value, key) => {
33
+ const httpStatusCode = cloneDeep(key);
34
+ if (!this.fieldPatternPredicate(toValue(httpStatusCode))) return;
35
+ value.setMetaProperty('http-status-code', httpStatusCode);
36
+ });
37
+ return result;
38
+ }
39
+ }
40
+ });
41
+ export default ResponsesVisitor;
@@ -0,0 +1,14 @@
1
+ import stampit from 'stampit';
2
+ import { always } from 'ramda';
3
+ import ResponsesDefinitionsElement from "../../../../elements/ResponsesDefinitions.mjs";
4
+ import MapVisitor from "../../generics/MapVisitor.mjs";
5
+ import FallbackVisitor from "../../FallbackVisitor.mjs";
6
+ const ResponsesDefinitionsVisitor = stampit(MapVisitor, FallbackVisitor, {
7
+ props: {
8
+ specPath: always(['document', 'objects', 'Response'])
9
+ },
10
+ init() {
11
+ this.element = new ResponsesDefinitionsElement();
12
+ }
13
+ });
14
+ export default ResponsesDefinitionsVisitor;
@@ -0,0 +1,18 @@
1
+ import stampit from 'stampit';
2
+ import { specificationObj as JSONSchemaDraft4Specification, isJSONReferenceElement } from '@swagger-api/apidom-ns-json-schema-draft-4';
3
+ const {
4
+ allOf: JSONSchemaAllOfVisitor
5
+ } = JSONSchemaDraft4Specification.visitors.document.objects.JSONSchema.fixedFields;
6
+ const AllOfVisitor = stampit(JSONSchemaAllOfVisitor, {
7
+ methods: {
8
+ ArrayElement(arrayElement) {
9
+ // @ts-ignore
10
+ const result = JSONSchemaAllOfVisitor.compose.methods.ArrayElement.call(this, arrayElement);
11
+ this.element.filter(isJSONReferenceElement).forEach(referenceElement => {
12
+ referenceElement.setMetaProperty('referenced-element', 'schema');
13
+ });
14
+ return result;
15
+ }
16
+ }
17
+ });
18
+ export default AllOfVisitor;
@@ -0,0 +1,26 @@
1
+ import stampit from 'stampit';
2
+ import { specificationObj as JSONSchemaDraft4Specification, isJSONReferenceElement } from '@swagger-api/apidom-ns-json-schema-draft-4';
3
+ const {
4
+ items: JSONSchemaItemsVisitor
5
+ } = JSONSchemaDraft4Specification.visitors.document.objects.JSONSchema.fixedFields;
6
+ const ItemsVisitor = stampit(JSONSchemaItemsVisitor, {
7
+ methods: {
8
+ ObjectElement(objectElement) {
9
+ // @ts-ignore
10
+ const result = JSONSchemaItemsVisitor.compose.methods.ObjectElement.call(this, objectElement);
11
+ if (isJSONReferenceElement(this.element)) {
12
+ this.element.setMetaProperty('referenced-element', 'schema');
13
+ }
14
+ return result;
15
+ },
16
+ ArrayElement(arrayElement) {
17
+ // @ts-ignore
18
+ const result = JSONSchemaItemsVisitor.compose.methods.ArrayElement.call(this, arrayElement);
19
+ this.element.filter(isJSONReferenceElement).forEach(referenceElement => {
20
+ referenceElement.setMetaProperty('referenced-element', 'schema');
21
+ });
22
+ return result;
23
+ }
24
+ }
25
+ });
26
+ export default ItemsVisitor;
@@ -0,0 +1,18 @@
1
+ import stampit from 'stampit';
2
+ import { specificationObj as JSONSchemaDraft4Specification, isJSONReferenceElement } from '@swagger-api/apidom-ns-json-schema-draft-4';
3
+ const {
4
+ properties: JSONSchemaPropertiesVisitor
5
+ } = JSONSchemaDraft4Specification.visitors.document.objects.JSONSchema.fixedFields;
6
+ const PropertiesVisitor = stampit(JSONSchemaPropertiesVisitor, {
7
+ methods: {
8
+ ObjectElement(objectElement) {
9
+ // @ts-ignore
10
+ const result = JSONSchemaPropertiesVisitor.compose.methods.ObjectElement.call(this, objectElement);
11
+ this.element.filter(isJSONReferenceElement).forEach(referenceElement => {
12
+ referenceElement.setMetaProperty('referenced-element', 'schema');
13
+ });
14
+ return result;
15
+ }
16
+ }
17
+ });
18
+ export default PropertiesVisitor;
@@ -0,0 +1,18 @@
1
+ import stampit from 'stampit';
2
+ import { specificationObj as JSONSchemaDraft4Specification, isJSONReferenceElement } from '@swagger-api/apidom-ns-json-schema-draft-4';
3
+ const {
4
+ JSONSchemaOrJSONReferenceVisitor
5
+ } = JSONSchemaDraft4Specification.visitors;
6
+ const SchemaOrJSONReferenceVisitor = stampit(JSONSchemaOrJSONReferenceVisitor, {
7
+ methods: {
8
+ ObjectElement(objectElement) {
9
+ // @ts-ignore
10
+ const result = JSONSchemaOrJSONReferenceVisitor.compose.methods.enter.call(this, objectElement);
11
+ if (isJSONReferenceElement(this.element)) {
12
+ this.element.setMetaProperty('referenced-element', 'schema');
13
+ }
14
+ return result;
15
+ }
16
+ }
17
+ });
18
+ export default SchemaOrJSONReferenceVisitor;
@@ -0,0 +1,15 @@
1
+ import stampit from 'stampit';
2
+ import { always } from 'ramda';
3
+ import SchemaElement from "../../../../elements/Schema.mjs";
4
+ import FallbackVisitor from "../../FallbackVisitor.mjs";
5
+ import FixedFieldsVisitor from "../../generics/FixedFieldsVisitor.mjs";
6
+ const SchemaVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, {
7
+ props: {
8
+ specPath: always(['document', 'objects', 'Schema']),
9
+ canSupportSpecificationExtensions: true
10
+ },
11
+ init() {
12
+ this.element = new SchemaElement();
13
+ }
14
+ });
15
+ export default SchemaVisitor;
@@ -0,0 +1,15 @@
1
+ import stampit from 'stampit';
2
+ import { always } from 'ramda';
3
+ import ScopesElement from "../../../../elements/Scopes.mjs";
4
+ import MapVisitor from "../../generics/MapVisitor.mjs";
5
+ import FallbackVisitor from "../../FallbackVisitor.mjs";
6
+ const ScopesVisitor = stampit(MapVisitor, FallbackVisitor, {
7
+ props: {
8
+ specPath: always(['value']),
9
+ canSupportSpecificationExtensions: true
10
+ },
11
+ init() {
12
+ this.element = new ScopesElement();
13
+ }
14
+ });
15
+ export default ScopesVisitor;
@@ -0,0 +1,14 @@
1
+ import stampit from 'stampit';
2
+ import { always } from 'ramda';
3
+ import SecurityDefinitionsElement from "../../../../elements/SecurityDefinitions.mjs";
4
+ import MapVisitor from "../../generics/MapVisitor.mjs";
5
+ import FallbackVisitor from "../../FallbackVisitor.mjs";
6
+ const SecurityDefinitionsVisitor = stampit(MapVisitor, FallbackVisitor, {
7
+ props: {
8
+ specPath: always(['document', 'objects', 'SecurityScheme'])
9
+ },
10
+ init() {
11
+ this.element = new SecurityDefinitionsElement();
12
+ }
13
+ });
14
+ export default SecurityDefinitionsVisitor;
@@ -0,0 +1,14 @@
1
+ import stampit from 'stampit';
2
+ import { always } from 'ramda';
3
+ import SecurityRequirementElement from "../../../../elements/SecurityRequirement.mjs";
4
+ import MapVisitor from "../../generics/MapVisitor.mjs";
5
+ import FallbackVisitor from "../../FallbackVisitor.mjs";
6
+ const SecurityRequirementVisitor = stampit(MapVisitor, FallbackVisitor, {
7
+ props: {
8
+ specPath: always(['value'])
9
+ },
10
+ init() {
11
+ this.element = new SecurityRequirementElement();
12
+ }
13
+ });
14
+ export default SecurityRequirementVisitor;
@@ -0,0 +1,15 @@
1
+ import stampit from 'stampit';
2
+ import { always } from 'ramda';
3
+ import SecuritySchemeElement from "../../../../elements/SecurityScheme.mjs";
4
+ import FallbackVisitor from "../../FallbackVisitor.mjs";
5
+ import FixedFieldsVisitor from "../../generics/FixedFieldsVisitor.mjs";
6
+ const SecuritySchemeVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, {
7
+ props: {
8
+ specPath: always(['document', 'objects', 'SecurityScheme']),
9
+ canSupportSpecificationExtensions: true
10
+ },
11
+ init() {
12
+ this.element = new SecuritySchemeElement();
13
+ }
14
+ });
15
+ export default SecuritySchemeVisitor;
@@ -0,0 +1,15 @@
1
+ import stampit from 'stampit';
2
+ import { always } from 'ramda';
3
+ import TagElement from "../../../../elements/Tag.mjs";
4
+ import FallbackVisitor from "../../FallbackVisitor.mjs";
5
+ import FixedFieldsVisitor from "../../generics/FixedFieldsVisitor.mjs";
6
+ const TagVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, {
7
+ props: {
8
+ specPath: always(['document', 'objects', 'Tag']),
9
+ canSupportSpecificationExtensions: true
10
+ },
11
+ init() {
12
+ this.element = new TagElement();
13
+ }
14
+ });
15
+ export default TagVisitor;
@@ -0,0 +1,15 @@
1
+ import stampit from 'stampit';
2
+ import { always } from 'ramda';
3
+ import XmlElement from "../../../../elements/Xml.mjs";
4
+ import FallbackVisitor from "../../FallbackVisitor.mjs";
5
+ import FixedFieldsVisitor from "../../generics/FixedFieldsVisitor.mjs";
6
+ const XmlVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, {
7
+ props: {
8
+ specPath: always(['document', 'objects', 'XML']),
9
+ canSupportSpecificationExtensions: true
10
+ },
11
+ init() {
12
+ this.element = new XmlElement();
13
+ }
14
+ });
15
+ export default XmlVisitor;
@@ -0,0 +1,50 @@
1
+ import { keyMap as keyMapBase, isElement } from '@swagger-api/apidom-core';
2
+
3
+ // getNodeType :: Node -> String
4
+ export const getNodeType = element => {
5
+ if (!isElement(element)) {
6
+ return undefined;
7
+ }
8
+ return `${element.element.charAt(0).toUpperCase() + element.element.slice(1)}Element`;
9
+ };
10
+
11
+ /**
12
+ * There are unfortunately two `LinkElement` types. One is from base namespace
13
+ * and the other one if from this namespace. `LinkElement` from base namespace
14
+ * is used extremely rarely, so it's almost always safe during traversing
15
+ * to assume that `LinkElement` is element from this namespace.
16
+ *
17
+ * To be 100% sure that currently visiting `LinkElement` is from this namespace
18
+ * use `isLinkElement` predicate from this namespace to assert for it.
19
+ */
20
+
21
+ export const keyMap = {
22
+ SwaggerElement: ['content'],
23
+ InfoElement: ['content'],
24
+ ContactElement: ['content'],
25
+ LicenseElement: ['content'],
26
+ PathsElement: ['content'],
27
+ PathItemElement: ['content'],
28
+ OperationElement: ['content'],
29
+ ExternalDocumentationElement: ['content'],
30
+ ParameterElement: ['content'],
31
+ ItemsElement: ['content'],
32
+ ExampleElement: ['content'],
33
+ ResponsesElement: ['content'],
34
+ ResponseElement: ['content'],
35
+ HeadersElement: ['content'],
36
+ HeaderElement: ['content'],
37
+ TagElement: ['content'],
38
+ ReferenceElement: ['content'],
39
+ JSONReferenceElement: ['content'],
40
+ SchemaElement: ['content'],
41
+ XmlElement: ['content'],
42
+ DefinitionsElement: ['content'],
43
+ ParametersDefinitionsElement: ['content'],
44
+ ResponsesDefinitionsElement: ['content'],
45
+ SecurityDefinitionsElement: ['content'],
46
+ SecuritySchemeElement: ['content'],
47
+ ScopesElement: ['content'],
48
+ SecurityRequirementElement: ['content'],
49
+ ...keyMapBase
50
+ };
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@swagger-api/apidom-ns-openapi-2",
3
+ "version": "0.79.0",
4
+ "description": "OpenAPI 2.0 namespace for ApiDOM.",
5
+ "publishConfig": {
6
+ "access": "public",
7
+ "registry": "https://registry.npmjs.org"
8
+ },
9
+ "type": "module",
10
+ "sideEffects": [
11
+ "./es/refractor/registration.mjs",
12
+ "./cjs/refractor/registration.cjs"
13
+ ],
14
+ "unpkg": "./dist/apidom-ns-openapi-2.browser.min.js",
15
+ "main": "./cjs/index.cjs",
16
+ "exports": {
17
+ "types": "./types/dist.d.ts",
18
+ "import": "./es/index.mjs",
19
+ "require": "./cjs/index.cjs"
20
+ },
21
+ "types": "./types/dist.d.ts",
22
+ "scripts": {
23
+ "build": "npm run clean && run-p --max-parallel ${CPU_CORES:-2} typescript:declaration build:es build:cjs build:umd:browser",
24
+ "build:es": "cross-env BABEL_ENV=es babel src --out-dir es --extensions '.ts' --out-file-extension '.mjs' --root-mode 'upward'",
25
+ "build:cjs": "cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.ts' --out-file-extension '.cjs' --root-mode 'upward'",
26
+ "build:umd:browser": "cross-env BABEL_ENV=browser webpack --config config/webpack/browser.config.js --progress",
27
+ "lint": "eslint ./",
28
+ "lint:fix": "eslint ./ --fix",
29
+ "clean": "rimraf ./es ./cjs ./dist ./types",
30
+ "test": "cross-env NODE_ENV=test BABEL_ENV=cjs mocha",
31
+ "test:update-snapshots": "cross-env UPDATE_SNAPSHOT=1 BABEL_ENV=cjs mocha",
32
+ "typescript:check-types": "tsc --noEmit",
33
+ "typescript:declaration": "tsc -p declaration.tsconfig.json && rollup -c config/rollup/types.dist.js",
34
+ "prepack": "copyfiles -u 3 ../../LICENSES/* LICENSES && copyfiles -u 2 ../../NOTICE .",
35
+ "postpack": "rimraf NOTICE LICENSES"
36
+ },
37
+ "repository": {
38
+ "type": "git",
39
+ "url": "git+https://github.com/swagger-api/apidom.git"
40
+ },
41
+ "author": "Vladimir Gorej",
42
+ "license": "Apache-2.0",
43
+ "dependencies": {
44
+ "@babel/runtime-corejs3": "^7.20.7",
45
+ "@swagger-api/apidom-core": "^0.79.0",
46
+ "@swagger-api/apidom-error": "^0.79.0",
47
+ "@swagger-api/apidom-ns-json-schema-draft-4": "^0.79.0",
48
+ "@types/ramda": "~0.29.6",
49
+ "ramda": "~0.29.0",
50
+ "ramda-adjunct": "^4.1.1",
51
+ "stampit": "^4.3.2"
52
+ },
53
+ "files": [
54
+ "cjs/",
55
+ "dist/",
56
+ "es/",
57
+ "types/dist.d.ts",
58
+ "LICENSES",
59
+ "NOTICE",
60
+ "README.md",
61
+ "CHANGELOG.md"
62
+ ],
63
+ "gitHead": "8f93ee46d79e57833709f548fa6634f7e62d0aec"
64
+ }