@redocly/openapi-core 1.0.0-beta.125 → 1.0.0-beta.127

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 (281) hide show
  1. package/lib/bundle.js +5 -2
  2. package/lib/config/all.js +8 -1
  3. package/lib/resolve.js +5 -1
  4. package/lib/rules/common/required-string-property-missing-min-length.d.ts +1 -1
  5. package/lib/rules/common/required-string-property-missing-min-length.js +3 -3
  6. package/lib/rules/common/spec.js +1 -0
  7. package/lib/rules/oas2/index.js +1 -1
  8. package/lib/rules/oas2/request-mime-type.d.ts +1 -1
  9. package/lib/rules/oas2/response-mime-type.d.ts +1 -1
  10. package/lib/rules/oas3/index.js +1 -1
  11. package/lib/rules/oas3/operation-4xx-problem-details-rfc7807.d.ts +2 -2
  12. package/lib/rules/oas3/operation-4xx-problem-details-rfc7807.js +3 -3
  13. package/lib/rules/oas3/request-mime-type.d.ts +1 -1
  14. package/lib/rules/oas3/response-mime-type.d.ts +1 -1
  15. package/lib/walk.d.ts +6 -5
  16. package/lib/walk.js +23 -27
  17. package/package.json +1 -1
  18. package/__tests__/utils.ts +0 -88
  19. package/src/__tests__/__snapshots__/bundle.test.ts.snap +0 -437
  20. package/src/__tests__/bundle.test.ts +0 -236
  21. package/src/__tests__/codeframes.test.ts +0 -530
  22. package/src/__tests__/fixtures/.redocly.lint-ignore.yaml +0 -5
  23. package/src/__tests__/fixtures/extension.js +0 -24
  24. package/src/__tests__/fixtures/refs/definitions.yaml +0 -3
  25. package/src/__tests__/fixtures/refs/examples.yaml +0 -8
  26. package/src/__tests__/fixtures/refs/external-request-body.yaml +0 -13
  27. package/src/__tests__/fixtures/refs/externalref.yaml +0 -35
  28. package/src/__tests__/fixtures/refs/hosted.yaml +0 -35
  29. package/src/__tests__/fixtures/refs/openapi-with-external-refs-conflicting-names.yaml +0 -21
  30. package/src/__tests__/fixtures/refs/openapi-with-external-refs.yaml +0 -33
  31. package/src/__tests__/fixtures/refs/openapi-with-url-refs.yaml +0 -18
  32. package/src/__tests__/fixtures/refs/param-b.yaml +0 -1
  33. package/src/__tests__/fixtures/refs/param-c.yaml +0 -1
  34. package/src/__tests__/fixtures/refs/rename.yaml +0 -1
  35. package/src/__tests__/fixtures/refs/requestBody.yaml +0 -9
  36. package/src/__tests__/fixtures/refs/schema-a.yaml +0 -1
  37. package/src/__tests__/fixtures/refs/simple.yaml +0 -1
  38. package/src/__tests__/fixtures/refs/vendor.schema.yaml +0 -20
  39. package/src/__tests__/fixtures/resolve/External.yaml +0 -10
  40. package/src/__tests__/fixtures/resolve/External2.yaml +0 -4
  41. package/src/__tests__/fixtures/resolve/description.md +0 -3
  42. package/src/__tests__/fixtures/resolve/externalInfo.yaml +0 -4
  43. package/src/__tests__/fixtures/resolve/externalLicense.yaml +0 -1
  44. package/src/__tests__/fixtures/resolve/openapi-with-back.yaml +0 -13
  45. package/src/__tests__/fixtures/resolve/openapi-with-md-description.yaml +0 -5
  46. package/src/__tests__/fixtures/resolve/openapi.yaml +0 -28
  47. package/src/__tests__/fixtures/resolve/schemas/type-a.yaml +0 -10
  48. package/src/__tests__/fixtures/resolve/schemas/type-b.yaml +0 -6
  49. package/src/__tests__/fixtures/resolve/transitive/a.yaml +0 -1
  50. package/src/__tests__/fixtures/resolve/transitive/components.yaml +0 -5
  51. package/src/__tests__/fixtures/resolve/transitive/schemas.yaml +0 -3
  52. package/src/__tests__/format.test.ts +0 -76
  53. package/src/__tests__/js-yaml.test.ts +0 -73
  54. package/src/__tests__/lint.test.ts +0 -388
  55. package/src/__tests__/logger-browser.test.ts +0 -53
  56. package/src/__tests__/logger.test.ts +0 -47
  57. package/src/__tests__/login.test.ts +0 -17
  58. package/src/__tests__/normalizeVisitors.test.ts +0 -151
  59. package/src/__tests__/output-browser.test.ts +0 -18
  60. package/src/__tests__/output.test.ts +0 -15
  61. package/src/__tests__/ref-utils.test.ts +0 -120
  62. package/src/__tests__/resolve-http.test.ts +0 -77
  63. package/src/__tests__/resolve.test.ts +0 -408
  64. package/src/__tests__/utils-browser.test.ts +0 -11
  65. package/src/__tests__/utils.test.ts +0 -144
  66. package/src/__tests__/walk.test.ts +0 -1545
  67. package/src/benchmark/benches/lint-with-many-rules.bench.ts +0 -35
  68. package/src/benchmark/benches/lint-with-nested-rule.bench.ts +0 -39
  69. package/src/benchmark/benches/lint-with-no-rules.bench.ts +0 -20
  70. package/src/benchmark/benches/lint-with-top-level-rule-report.bench.ts +0 -35
  71. package/src/benchmark/benches/lint-with-top-level-rule.bench.ts +0 -32
  72. package/src/benchmark/benches/rebilly.yaml +0 -32275
  73. package/src/benchmark/benches/recommended-oas3.bench.ts +0 -22
  74. package/src/benchmark/benches/resolve-with-no-external.bench.ts +0 -23
  75. package/src/benchmark/benchmark.js +0 -311
  76. package/src/benchmark/colors.js +0 -29
  77. package/src/benchmark/fork.js +0 -83
  78. package/src/benchmark/utils.ts +0 -36
  79. package/src/bundle.ts +0 -399
  80. package/src/config/__tests__/__snapshots__/config-resolvers.test.ts.snap +0 -161
  81. package/src/config/__tests__/__snapshots__/config.test.ts.snap +0 -144
  82. package/src/config/__tests__/config-resolvers.test.ts +0 -491
  83. package/src/config/__tests__/config.test.ts +0 -307
  84. package/src/config/__tests__/fixtures/ingore-file.ts +0 -8
  85. package/src/config/__tests__/fixtures/load-redocly.yaml +0 -2
  86. package/src/config/__tests__/fixtures/plugin-config.yaml +0 -2
  87. package/src/config/__tests__/fixtures/plugin.js +0 -56
  88. package/src/config/__tests__/fixtures/resolve-config/api/nested-config.yaml +0 -11
  89. package/src/config/__tests__/fixtures/resolve-config/api/plugin.js +0 -69
  90. package/src/config/__tests__/fixtures/resolve-config/local-config-with-circular.yaml +0 -7
  91. package/src/config/__tests__/fixtures/resolve-config/local-config-with-custom-function.yaml +0 -17
  92. package/src/config/__tests__/fixtures/resolve-config/local-config-with-file.yaml +0 -18
  93. package/src/config/__tests__/fixtures/resolve-config/local-config-with-wrong-custom-function.yaml +0 -15
  94. package/src/config/__tests__/fixtures/resolve-config/local-config.yaml +0 -9
  95. package/src/config/__tests__/fixtures/resolve-config/plugin.js +0 -80
  96. package/src/config/__tests__/fixtures/resolve-remote-configs/nested-remote-config.yaml +0 -3
  97. package/src/config/__tests__/fixtures/resolve-remote-configs/remote-config.yaml +0 -4
  98. package/src/config/__tests__/load.test.ts +0 -167
  99. package/src/config/__tests__/resolve-plugins.test.ts +0 -27
  100. package/src/config/__tests__/utils.test.ts +0 -204
  101. package/src/config/all.ts +0 -66
  102. package/src/config/builtIn.ts +0 -37
  103. package/src/config/config-resolvers.ts +0 -465
  104. package/src/config/config.ts +0 -330
  105. package/src/config/index.ts +0 -7
  106. package/src/config/load.ts +0 -144
  107. package/src/config/minimal.ts +0 -60
  108. package/src/config/recommended.ts +0 -60
  109. package/src/config/rules.ts +0 -54
  110. package/src/config/types.ts +0 -216
  111. package/src/config/utils.ts +0 -333
  112. package/src/decorators/__tests__/filter-in.test.ts +0 -310
  113. package/src/decorators/__tests__/filter-out.test.ts +0 -335
  114. package/src/decorators/__tests__/media-type-examples-override.test.ts +0 -665
  115. package/src/decorators/__tests__/remove-x-internal.test.ts +0 -316
  116. package/src/decorators/__tests__/resources/request.yaml +0 -3
  117. package/src/decorators/__tests__/resources/response.yaml +0 -3
  118. package/src/decorators/common/filters/filter-helper.ts +0 -72
  119. package/src/decorators/common/filters/filter-in.ts +0 -18
  120. package/src/decorators/common/filters/filter-out.ts +0 -18
  121. package/src/decorators/common/info-description-override.ts +0 -24
  122. package/src/decorators/common/info-override.ts +0 -15
  123. package/src/decorators/common/media-type-examples-override.ts +0 -79
  124. package/src/decorators/common/operation-description-override.ts +0 -30
  125. package/src/decorators/common/registry-dependencies.ts +0 -25
  126. package/src/decorators/common/remove-x-internal.ts +0 -59
  127. package/src/decorators/common/tag-description-override.ts +0 -25
  128. package/src/decorators/oas2/index.ts +0 -20
  129. package/src/decorators/oas3/index.ts +0 -22
  130. package/src/env.ts +0 -5
  131. package/src/format/codeframes.ts +0 -216
  132. package/src/format/format.ts +0 -375
  133. package/src/index.ts +0 -71
  134. package/src/js-yaml/index.ts +0 -14
  135. package/src/lint.ts +0 -130
  136. package/src/logger.ts +0 -34
  137. package/src/oas-types.ts +0 -57
  138. package/src/output.ts +0 -7
  139. package/src/redocly/__tests__/redocly-client.test.ts +0 -146
  140. package/src/redocly/index.ts +0 -187
  141. package/src/redocly/redocly-client-types.ts +0 -10
  142. package/src/redocly/registry-api-types.ts +0 -32
  143. package/src/redocly/registry-api.ts +0 -149
  144. package/src/ref-utils.ts +0 -85
  145. package/src/resolve.ts +0 -412
  146. package/src/rules/__tests__/fixtures/code-sample.php +0 -9
  147. package/src/rules/__tests__/fixtures/invalid-yaml.yaml +0 -1
  148. package/src/rules/__tests__/fixtures/ref.yaml +0 -1
  149. package/src/rules/__tests__/no-unresolved-refs.test.ts +0 -257
  150. package/src/rules/__tests__/utils.test.ts +0 -160
  151. package/src/rules/ajv.ts +0 -102
  152. package/src/rules/common/__tests__/info-license.test.ts +0 -62
  153. package/src/rules/common/__tests__/license-url.test.ts +0 -63
  154. package/src/rules/common/__tests__/no-ambiguous-paths.test.ts +0 -96
  155. package/src/rules/common/__tests__/no-enum-type-mismatch.test.ts +0 -210
  156. package/src/rules/common/__tests__/no-identical-paths.test.ts +0 -58
  157. package/src/rules/common/__tests__/no-path-trailing-slash.test.ts +0 -85
  158. package/src/rules/common/__tests__/operation-2xx-response.test.ts +0 -192
  159. package/src/rules/common/__tests__/operation-4xx-response.test.ts +0 -231
  160. package/src/rules/common/__tests__/operation-operationId-unique.test.ts +0 -76
  161. package/src/rules/common/__tests__/operation-operationId-url-safe.test.ts +0 -45
  162. package/src/rules/common/__tests__/operation-parameters-unique.test.ts +0 -167
  163. package/src/rules/common/__tests__/operation-singular-tag.test.ts +0 -72
  164. package/src/rules/common/__tests__/path-http-verbs-order.test.ts +0 -95
  165. package/src/rules/common/__tests__/path-not-include-query.test.ts +0 -64
  166. package/src/rules/common/__tests__/path-params-defined.test.ts +0 -202
  167. package/src/rules/common/__tests__/paths-kebab-case.test.ts +0 -108
  168. package/src/rules/common/__tests__/scalar-property-missing-example.test.ts +0 -264
  169. package/src/rules/common/__tests__/security-defined.test.ts +0 -175
  170. package/src/rules/common/__tests__/spec.test.ts +0 -555
  171. package/src/rules/common/__tests__/tag-description.test.ts +0 -65
  172. package/src/rules/common/__tests__/tags-alphabetical.test.ts +0 -64
  173. package/src/rules/common/assertions/__tests__/asserts.test.ts +0 -869
  174. package/src/rules/common/assertions/__tests__/index.test.ts +0 -100
  175. package/src/rules/common/assertions/__tests__/utils.test.ts +0 -236
  176. package/src/rules/common/assertions/asserts.ts +0 -357
  177. package/src/rules/common/assertions/index.ts +0 -56
  178. package/src/rules/common/assertions/utils.ts +0 -331
  179. package/src/rules/common/info-contact.ts +0 -15
  180. package/src/rules/common/info-license-url.ts +0 -10
  181. package/src/rules/common/info-license.ts +0 -15
  182. package/src/rules/common/no-ambiguous-paths.ts +0 -50
  183. package/src/rules/common/no-enum-type-mismatch.ts +0 -52
  184. package/src/rules/common/no-http-verbs-in-paths.ts +0 -36
  185. package/src/rules/common/no-identical-paths.ts +0 -24
  186. package/src/rules/common/no-invalid-parameter-examples.ts +0 -36
  187. package/src/rules/common/no-invalid-schema-examples.ts +0 -27
  188. package/src/rules/common/no-path-trailing-slash.ts +0 -15
  189. package/src/rules/common/operation-2xx-response.ts +0 -24
  190. package/src/rules/common/operation-4xx-response.ts +0 -24
  191. package/src/rules/common/operation-description.ts +0 -13
  192. package/src/rules/common/operation-operationId-unique.ts +0 -21
  193. package/src/rules/common/operation-operationId-url-safe.ts +0 -19
  194. package/src/rules/common/operation-operationId.ts +0 -17
  195. package/src/rules/common/operation-parameters-unique.ts +0 -48
  196. package/src/rules/common/operation-singular-tag.ts +0 -17
  197. package/src/rules/common/operation-summary.ts +0 -13
  198. package/src/rules/common/operation-tag-defined.ts +0 -26
  199. package/src/rules/common/parameter-description.ts +0 -22
  200. package/src/rules/common/path-declaration-must-exist.ts +0 -15
  201. package/src/rules/common/path-excludes-patterns.ts +0 -23
  202. package/src/rules/common/path-http-verbs-order.ts +0 -30
  203. package/src/rules/common/path-not-include-query.ts +0 -17
  204. package/src/rules/common/path-params-defined.ts +0 -65
  205. package/src/rules/common/path-segment-plural.ts +0 -31
  206. package/src/rules/common/paths-kebab-case.ts +0 -19
  207. package/src/rules/common/required-string-property-missing-min-length.ts +0 -44
  208. package/src/rules/common/response-contains-header.ts +0 -35
  209. package/src/rules/common/scalar-property-missing-example.ts +0 -58
  210. package/src/rules/common/security-defined.ts +0 -65
  211. package/src/rules/common/spec.ts +0 -174
  212. package/src/rules/common/tag-description.ts +0 -10
  213. package/src/rules/common/tags-alphabetical.ts +0 -20
  214. package/src/rules/no-unresolved-refs.ts +0 -51
  215. package/src/rules/oas2/__tests__/boolean-parameter-prefixes.test.ts +0 -110
  216. package/src/rules/oas2/__tests__/response-contains-header.test.ts +0 -174
  217. package/src/rules/oas2/__tests__/response-contains-property.test.ts +0 -155
  218. package/src/rules/oas2/__tests__/spec/fixtures/description.md +0 -1
  219. package/src/rules/oas2/__tests__/spec/info.test.ts +0 -355
  220. package/src/rules/oas2/__tests__/spec/operation.test.ts +0 -123
  221. package/src/rules/oas2/__tests__/spec/paths.test.ts +0 -245
  222. package/src/rules/oas2/__tests__/spec/referenceableScalars.test.ts +0 -35
  223. package/src/rules/oas2/__tests__/spec/utils.ts +0 -32
  224. package/src/rules/oas2/boolean-parameter-prefixes.ts +0 -26
  225. package/src/rules/oas2/index.ts +0 -89
  226. package/src/rules/oas2/remove-unused-components.ts +0 -81
  227. package/src/rules/oas2/request-mime-type.ts +0 -17
  228. package/src/rules/oas2/response-contains-property.ts +0 -36
  229. package/src/rules/oas2/response-mime-type.ts +0 -17
  230. package/src/rules/oas3/__tests__/boolean-parameter-prefixes.test.ts +0 -111
  231. package/src/rules/oas3/__tests__/fixtures/common.yaml +0 -11
  232. package/src/rules/oas3/__tests__/no-empty-enum-servers.com.test.ts +0 -205
  233. package/src/rules/oas3/__tests__/no-example-value-and-externalValue.test.ts +0 -65
  234. package/src/rules/oas3/__tests__/no-invalid-media-type-examples.test.ts +0 -473
  235. package/src/rules/oas3/__tests__/no-server-example.com.test.ts +0 -60
  236. package/src/rules/oas3/__tests__/no-server-trailing-slash.test.ts +0 -79
  237. package/src/rules/oas3/__tests__/no-unused-components.test.ts +0 -131
  238. package/src/rules/oas3/__tests__/operation-4xx-problem-details-rfc7807.test.ts +0 -145
  239. package/src/rules/oas3/__tests__/response-contains-header.test.ts +0 -389
  240. package/src/rules/oas3/__tests__/response-contains-property.test.ts +0 -403
  241. package/src/rules/oas3/__tests__/spec/callbacks.test.ts +0 -41
  242. package/src/rules/oas3/__tests__/spec/fixtures/description.md +0 -1
  243. package/src/rules/oas3/__tests__/spec/info.test.ts +0 -391
  244. package/src/rules/oas3/__tests__/spec/operation.test.ts +0 -253
  245. package/src/rules/oas3/__tests__/spec/paths.test.ts +0 -284
  246. package/src/rules/oas3/__tests__/spec/referenceableScalars.test.ts +0 -77
  247. package/src/rules/oas3/__tests__/spec/servers.test.ts +0 -505
  248. package/src/rules/oas3/__tests__/spec/spec.test.ts +0 -298
  249. package/src/rules/oas3/__tests__/spec/utils.ts +0 -32
  250. package/src/rules/oas3/__tests__/spec-components-invalid-map-name.test.ts +0 -305
  251. package/src/rules/oas3/boolean-parameter-prefixes.ts +0 -28
  252. package/src/rules/oas3/index.ts +0 -109
  253. package/src/rules/oas3/no-empty-servers.ts +0 -22
  254. package/src/rules/oas3/no-example-value-and-externalValue.ts +0 -14
  255. package/src/rules/oas3/no-invalid-media-type-examples.ts +0 -49
  256. package/src/rules/oas3/no-server-example.com.ts +0 -14
  257. package/src/rules/oas3/no-server-trailing-slash.ts +0 -15
  258. package/src/rules/oas3/no-server-variables-empty-enum.ts +0 -66
  259. package/src/rules/oas3/no-undefined-server-variable.ts +0 -30
  260. package/src/rules/oas3/no-unused-components.ts +0 -75
  261. package/src/rules/oas3/operation-4xx-problem-details-rfc7807.ts +0 -36
  262. package/src/rules/oas3/remove-unused-components.ts +0 -95
  263. package/src/rules/oas3/request-mime-type.ts +0 -31
  264. package/src/rules/oas3/response-contains-property.ts +0 -38
  265. package/src/rules/oas3/response-mime-type.ts +0 -31
  266. package/src/rules/oas3/spec-components-invalid-map-name.ts +0 -74
  267. package/src/rules/other/stats.ts +0 -73
  268. package/src/rules/utils.ts +0 -191
  269. package/src/types/index.ts +0 -149
  270. package/src/types/oas2.ts +0 -478
  271. package/src/types/oas3.ts +0 -597
  272. package/src/types/oas3_1.ts +0 -258
  273. package/src/types/redocly-yaml.ts +0 -1010
  274. package/src/typings/common.ts +0 -17
  275. package/src/typings/openapi.ts +0 -298
  276. package/src/typings/swagger.ts +0 -236
  277. package/src/utils.ts +0 -276
  278. package/src/visitors.ts +0 -491
  279. package/src/walk.ts +0 -453
  280. package/tsconfig.json +0 -8
  281. package/tsconfig.tsbuildinfo +0 -1
package/src/types/oas2.ts DELETED
@@ -1,478 +0,0 @@
1
- import { NodeType, listOf, mapOf } from '.';
2
-
3
- const responseCodeRegexp = /^[0-9][0-9Xx]{2}$/;
4
-
5
- const Root: NodeType = {
6
- properties: {
7
- swagger: { type: 'string' },
8
- info: 'Info',
9
- host: { type: 'string' },
10
- basePath: { type: 'string' },
11
- schemes: { type: 'array', items: { type: 'string' } },
12
- consumes: { type: 'array', items: { type: 'string' } },
13
- produces: { type: 'array', items: { type: 'string' } },
14
- paths: 'Paths',
15
- definitions: 'NamedSchemas',
16
- parameters: 'NamedParameters',
17
- responses: 'NamedResponses',
18
- securityDefinitions: 'NamedSecuritySchemes',
19
- security: 'SecurityRequirementList',
20
- tags: 'TagList',
21
- externalDocs: 'ExternalDocs',
22
- 'x-servers': 'XServerList',
23
- 'x-tagGroups': 'TagGroups',
24
- 'x-ignoredHeaderParameters': { type: 'array', items: { type: 'string' } },
25
- },
26
- required: ['swagger', 'paths', 'info'],
27
- extensionsPrefix: 'x-',
28
- };
29
-
30
- const Info: NodeType = {
31
- properties: {
32
- title: { type: 'string' },
33
- description: { type: 'string' },
34
- termsOfService: { type: 'string' },
35
- contact: 'Contact',
36
- license: 'License',
37
- version: { type: 'string' },
38
- 'x-logo': 'Logo',
39
- },
40
- required: ['title', 'version'],
41
- extensionsPrefix: 'x-',
42
- };
43
-
44
- const Logo: NodeType = {
45
- properties: {
46
- url: { type: 'string' },
47
- altText: { type: 'string' },
48
- backgroundColor: { type: 'string' },
49
- href: { type: 'string' },
50
- },
51
- extensionsPrefix: 'x-',
52
- };
53
-
54
- const Contact: NodeType = {
55
- properties: {
56
- name: { type: 'string' },
57
- url: { type: 'string' },
58
- email: { type: 'string' },
59
- },
60
- extensionsPrefix: 'x-',
61
- };
62
-
63
- const License: NodeType = {
64
- properties: {
65
- name: { type: 'string' },
66
- url: { type: 'string' },
67
- },
68
- required: ['name'],
69
- extensionsPrefix: 'x-',
70
- };
71
-
72
- const Paths: NodeType = {
73
- properties: {},
74
- additionalProperties: (_value: any, key: string) =>
75
- key.startsWith('/') ? 'PathItem' : undefined,
76
- };
77
-
78
- const PathItem: NodeType = {
79
- properties: {
80
- $ref: { type: 'string' }, // TODO: verify special $ref handling for Path Item
81
- parameters: 'ParameterList',
82
-
83
- get: 'Operation',
84
- put: 'Operation',
85
- post: 'Operation',
86
- delete: 'Operation',
87
- options: 'Operation',
88
- head: 'Operation',
89
- patch: 'Operation',
90
- },
91
- extensionsPrefix: 'x-',
92
- };
93
-
94
- const Operation: NodeType = {
95
- properties: {
96
- tags: { type: 'array', items: { type: 'string' } },
97
- summary: { type: 'string' },
98
- description: { type: 'string' },
99
- externalDocs: 'ExternalDocs',
100
- operationId: { type: 'string' },
101
- consumes: { type: 'array', items: { type: 'string' } },
102
- produces: { type: 'array', items: { type: 'string' } },
103
- parameters: 'ParameterList',
104
- responses: 'Responses',
105
- schemes: { type: 'array', items: { type: 'string' } },
106
- deprecated: { type: 'boolean' },
107
- security: 'SecurityRequirementList',
108
- 'x-codeSamples': 'XCodeSampleList',
109
- 'x-code-samples': 'XCodeSampleList', // deprecated
110
- 'x-hideTryItPanel': { type: 'boolean' },
111
- },
112
- required: ['responses'],
113
- extensionsPrefix: 'x-',
114
- };
115
-
116
- const XCodeSample: NodeType = {
117
- properties: {
118
- lang: { type: 'string' },
119
- label: { type: 'string' },
120
- source: { type: 'string' },
121
- },
122
- };
123
-
124
- const XServer: NodeType = {
125
- properties: {
126
- url: { type: 'string' },
127
- description: { type: 'string' },
128
- },
129
- required: ['url'],
130
- };
131
-
132
- const ExternalDocs: NodeType = {
133
- properties: {
134
- description: { type: 'string' },
135
- url: { type: 'string' },
136
- },
137
- required: ['url'],
138
- extensionsPrefix: 'x-',
139
- };
140
-
141
- const Parameter: NodeType = {
142
- properties: {
143
- name: { type: 'string' },
144
- in: { type: 'string', enum: ['query', 'header', 'path', 'formData', 'body'] },
145
- description: { type: 'string' },
146
- required: { type: 'boolean' },
147
- schema: 'Schema',
148
- type: { type: 'string', enum: ['string', 'number', 'integer', 'boolean', 'array', 'file'] },
149
- format: { type: 'string' },
150
- allowEmptyValue: { type: 'boolean' },
151
- items: 'ParameterItems',
152
- collectionFormat: { type: 'string', enum: ['csv', 'ssv', 'tsv', 'pipes', 'multi'] },
153
- default: null,
154
- maximum: { type: 'integer' },
155
- exclusiveMaximum: { type: 'boolean' },
156
- minimum: { type: 'integer' },
157
- exclusiveMinimum: { type: 'boolean' },
158
- maxLength: { type: 'integer' },
159
- minLength: { type: 'integer' },
160
- pattern: { type: 'string' },
161
- maxItems: { type: 'integer' },
162
- minItems: { type: 'integer' },
163
- uniqueItems: { type: 'boolean' },
164
- enum: { type: 'array' },
165
- multipleOf: { type: 'number' },
166
- 'x-example': 'Example',
167
- 'x-examples': 'ExamplesMap',
168
- },
169
- required(value) {
170
- if (!value || !value.in) {
171
- return ['name', 'in'];
172
- }
173
- if (value.in === 'body') {
174
- return ['name', 'in', 'schema'];
175
- } else {
176
- if (value.type === 'array') {
177
- return ['name', 'in', 'type', 'items'];
178
- } else {
179
- return ['name', 'in', 'type'];
180
- }
181
- }
182
- },
183
- extensionsPrefix: 'x-',
184
- };
185
-
186
- const ParameterItems: NodeType = {
187
- properties: {
188
- type: { type: 'string', enum: ['string', 'number', 'integer', 'boolean', 'array'] },
189
- format: { type: 'string' },
190
- items: 'ParameterItems',
191
- collectionFormat: { type: 'string', enum: ['csv', 'ssv', 'tsv', 'pipes', 'multi'] },
192
- default: null,
193
- maximum: { type: 'integer' },
194
- exclusiveMaximum: { type: 'boolean' },
195
- minimum: { type: 'integer' },
196
- exclusiveMinimum: { type: 'boolean' },
197
- maxLength: { type: 'integer' },
198
- minLength: { type: 'integer' },
199
- pattern: { type: 'string' },
200
- maxItems: { type: 'integer' },
201
- minItems: { type: 'integer' },
202
- uniqueItems: { type: 'boolean' },
203
- enum: { type: 'array' },
204
- multipleOf: { type: 'number' },
205
- },
206
- required(value) {
207
- if (value && value.type === 'array') {
208
- return ['type', 'items'];
209
- } else {
210
- return ['type'];
211
- }
212
- },
213
- extensionsPrefix: 'x-',
214
- };
215
-
216
- const Responses: NodeType = {
217
- properties: {
218
- default: 'Response',
219
- },
220
- additionalProperties: (_v: any, key: string) =>
221
- responseCodeRegexp.test(key) ? 'Response' : undefined,
222
- };
223
-
224
- const Response: NodeType = {
225
- properties: {
226
- description: { type: 'string' },
227
- schema: 'Schema',
228
- headers: mapOf('Header'),
229
- examples: 'Examples',
230
- 'x-summary': { type: 'string' },
231
- },
232
- required: ['description'],
233
- extensionsPrefix: 'x-',
234
- };
235
-
236
- const Examples: NodeType = {
237
- properties: {},
238
- additionalProperties: { isExample: true },
239
- };
240
-
241
- const Header: NodeType = {
242
- properties: {
243
- description: { type: 'string' },
244
- type: { type: 'string', enum: ['string', 'number', 'integer', 'boolean', 'array'] },
245
- format: { type: 'string' },
246
- items: 'ParameterItems',
247
- collectionFormat: { type: 'string', enum: ['csv', 'ssv', 'tsv', 'pipes', 'multi'] },
248
- default: null,
249
- maximum: { type: 'integer' },
250
- exclusiveMaximum: { type: 'boolean' },
251
- minimum: { type: 'integer' },
252
- exclusiveMinimum: { type: 'boolean' },
253
- maxLength: { type: 'integer' },
254
- minLength: { type: 'integer' },
255
- pattern: { type: 'string' },
256
- maxItems: { type: 'integer' },
257
- minItems: { type: 'integer' },
258
- uniqueItems: { type: 'boolean' },
259
- enum: { type: 'array' },
260
- multipleOf: { type: 'number' },
261
- },
262
- required(value) {
263
- if (value && value.type === 'array') {
264
- return ['type', 'items'];
265
- } else {
266
- return ['type'];
267
- }
268
- },
269
- extensionsPrefix: 'x-',
270
- };
271
-
272
- const Tag: NodeType = {
273
- properties: {
274
- name: { type: 'string' },
275
- description: { type: 'string' },
276
- externalDocs: 'ExternalDocs',
277
- 'x-traitTag': { type: 'boolean' },
278
- 'x-displayName': { type: 'string' },
279
- },
280
- required: ['name'],
281
- extensionsPrefix: 'x-',
282
- };
283
-
284
- const TagGroup: NodeType = {
285
- properties: {
286
- name: { type: 'string' },
287
- tags: { type: 'array', items: { type: 'string' } },
288
- },
289
- };
290
-
291
- const Schema: NodeType = {
292
- properties: {
293
- format: { type: 'string' },
294
- title: { type: 'string' },
295
- description: { type: 'string' },
296
- default: null,
297
- multipleOf: { type: 'number' },
298
- maximum: { type: 'number' },
299
- minimum: { type: 'number' },
300
- exclusiveMaximum: { type: 'boolean' },
301
- exclusiveMinimum: { type: 'boolean' },
302
- maxLength: { type: 'number' },
303
- minLength: { type: 'number' },
304
- pattern: { type: 'string' },
305
- maxItems: { type: 'number' },
306
- minItems: { type: 'number' },
307
- uniqueItems: { type: 'boolean' },
308
- maxProperties: { type: 'number' },
309
- minProperties: { type: 'number' },
310
- required: { type: 'array', items: { type: 'string' } },
311
- enum: { type: 'array' },
312
- type: {
313
- type: 'string',
314
- enum: ['object', 'array', 'string', 'number', 'integer', 'boolean', 'null'],
315
- },
316
- items: (value: any) => {
317
- if (Array.isArray(value)) {
318
- return listOf('Schema');
319
- } else {
320
- return 'Schema';
321
- }
322
- },
323
- allOf: listOf('Schema'),
324
- properties: 'SchemaProperties',
325
- additionalProperties: (value: any) => {
326
- if (typeof value === 'boolean') {
327
- return { type: 'boolean' };
328
- } else {
329
- return 'Schema';
330
- }
331
- },
332
- discriminator: { type: 'string' },
333
- readOnly: { type: 'boolean' },
334
- xml: 'Xml',
335
- externalDocs: 'ExternalDocs',
336
- example: { isExample: true },
337
- 'x-tags': { type: 'array', items: { type: 'string' } },
338
- 'x-nullable': { type: 'boolean' },
339
- 'x-extendedDiscriminator': { type: 'string' },
340
- 'x-additionalPropertiesName': { type: 'string' },
341
- 'x-explicitMappingOnly': { type: 'boolean' },
342
- 'x-enumDescriptions': 'EnumDescriptions',
343
- },
344
- extensionsPrefix: 'x-',
345
- };
346
-
347
- const EnumDescriptions: NodeType = {
348
- properties: {},
349
- additionalProperties: { type: 'string' },
350
- };
351
-
352
- const SchemaProperties: NodeType = {
353
- properties: {},
354
- additionalProperties: 'Schema',
355
- };
356
-
357
- const Xml: NodeType = {
358
- properties: {
359
- name: { type: 'string' },
360
- namespace: { type: 'string' },
361
- prefix: { type: 'string' },
362
- attribute: { type: 'boolean' },
363
- wrapped: { type: 'boolean' },
364
- },
365
- extensionsPrefix: 'x-',
366
- };
367
-
368
- const SecurityScheme: NodeType = {
369
- properties: {
370
- type: { enum: ['basic', 'apiKey', 'oauth2'] },
371
- description: { type: 'string' },
372
- name: { type: 'string' },
373
- in: { type: 'string', enum: ['query', 'header'] },
374
- flow: { enum: ['implicit', 'password', 'application', 'accessCode'] },
375
- authorizationUrl: { type: 'string' },
376
- tokenUrl: { type: 'string' },
377
- scopes: { type: 'object', additionalProperties: { type: 'string' } },
378
- 'x-defaultClientId': { type: 'string' },
379
- },
380
- required(value) {
381
- switch (value?.type) {
382
- case 'apiKey':
383
- return ['type', 'name', 'in'];
384
- case 'oauth2':
385
- switch (value?.flow) {
386
- case 'implicit':
387
- return ['type', 'flow', 'authorizationUrl', 'scopes'];
388
- case 'accessCode':
389
- return ['type', 'flow', 'authorizationUrl', 'tokenUrl', 'scopes'];
390
- case 'application':
391
- case 'password':
392
- return ['type', 'flow', 'tokenUrl', 'scopes'];
393
- default:
394
- return ['type', 'flow', 'scopes'];
395
- }
396
- default:
397
- return ['type'];
398
- }
399
- },
400
- allowed(value) {
401
- switch (value?.type) {
402
- case 'basic':
403
- return ['type', 'description'];
404
- case 'apiKey':
405
- return ['type', 'name', 'in', 'description'];
406
- case 'oauth2':
407
- switch (value?.flow) {
408
- case 'implicit':
409
- return ['type', 'flow', 'authorizationUrl', 'description', 'scopes'];
410
- case 'accessCode':
411
- return ['type', 'flow', 'authorizationUrl', 'tokenUrl', 'description', 'scopes'];
412
- case 'application':
413
- case 'password':
414
- return ['type', 'flow', 'tokenUrl', 'description', 'scopes'];
415
- default:
416
- return ['type', 'flow', 'tokenUrl', 'authorizationUrl', 'description', 'scopes'];
417
- }
418
- default:
419
- return ['type', 'description'];
420
- }
421
- },
422
- extensionsPrefix: 'x-',
423
- };
424
-
425
- const SecurityRequirement: NodeType = {
426
- properties: {},
427
- additionalProperties: { type: 'array', items: { type: 'string' } },
428
- };
429
-
430
- const Example: NodeType = {
431
- properties: {
432
- value: { isExample: true },
433
- summary: { type: 'string' },
434
- description: { type: 'string' },
435
- externalValue: { type: 'string' },
436
- },
437
- extensionsPrefix: 'x-',
438
- };
439
-
440
- export const Oas2Types: Record<string, NodeType> = {
441
- Root,
442
- Tag,
443
- TagList: listOf('Tag'),
444
- TagGroups: listOf('TagGroup'),
445
- TagGroup,
446
- ExternalDocs,
447
- Example,
448
- ExamplesMap: mapOf('Example'),
449
- EnumDescriptions,
450
- SecurityRequirement,
451
- SecurityRequirementList: listOf('SecurityRequirement'),
452
- Info,
453
- Contact,
454
- License,
455
- Logo,
456
- Paths,
457
- PathItem,
458
- Parameter,
459
- ParameterItems,
460
- ParameterList: listOf('Parameter'),
461
- Operation,
462
- Examples,
463
- Header,
464
- Responses,
465
- Response,
466
- Schema,
467
- Xml,
468
- SchemaProperties,
469
- NamedSchemas: mapOf('Schema'),
470
- NamedResponses: mapOf('Response'),
471
- NamedParameters: mapOf('Parameter'),
472
- NamedSecuritySchemes: mapOf('SecurityScheme'),
473
- SecurityScheme,
474
- XCodeSample,
475
- XCodeSampleList: listOf('XCodeSample'),
476
- XServerList: listOf('XServer'),
477
- XServer,
478
- };