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