@redocly/openapi-core 1.0.0-beta.99 → 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 (382) 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 +10 -15
  8. package/lib/bundle.js +32 -12
  9. package/lib/config/all.d.ts +2 -2
  10. package/lib/config/all.js +16 -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 +7 -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.js +2 -2
  94. package/lib/rules/common/scalar-property-missing-example.js +2 -1
  95. package/lib/rules/common/security-defined.d.ts +2 -0
  96. package/lib/rules/common/{operation-security-defined.js → security-defined.js} +25 -6
  97. package/lib/rules/common/spec-strict-refs.d.ts +2 -0
  98. package/lib/rules/common/spec-strict-refs.js +30 -0
  99. package/lib/rules/common/spec.js +41 -18
  100. package/lib/rules/common/tags-alphabetical.js +1 -1
  101. package/lib/rules/oas2/index.d.ts +3 -2
  102. package/lib/rules/oas2/index.js +10 -8
  103. package/lib/rules/oas2/remove-unused-components.js +6 -6
  104. package/lib/rules/oas2/request-mime-type.d.ts +1 -1
  105. package/lib/rules/oas2/request-mime-type.js +1 -1
  106. package/lib/rules/oas2/response-mime-type.d.ts +1 -1
  107. package/lib/rules/oas2/response-mime-type.js +1 -1
  108. package/lib/rules/oas3/component-name-unique.d.ts +2 -0
  109. package/lib/rules/oas3/component-name-unique.js +124 -0
  110. package/lib/rules/oas3/index.js +18 -10
  111. package/lib/rules/oas3/no-empty-servers.js +2 -2
  112. package/lib/rules/oas3/no-invalid-media-type-examples.js +2 -2
  113. package/lib/rules/oas3/no-server-variables-empty-enum.d.ts +2 -0
  114. package/lib/rules/oas3/{no-servers-empty-enum.js → no-server-variables-empty-enum.js} +5 -5
  115. package/lib/rules/oas3/no-unused-components.js +2 -2
  116. package/lib/rules/oas3/operation-4xx-problem-details-rfc7807.d.ts +5 -0
  117. package/lib/rules/oas3/operation-4xx-problem-details-rfc7807.js +36 -0
  118. package/lib/rules/oas3/remove-unused-components.js +6 -6
  119. package/lib/rules/oas3/request-mime-type.d.ts +1 -1
  120. package/lib/rules/oas3/request-mime-type.js +1 -1
  121. package/lib/rules/oas3/response-mime-type.d.ts +1 -1
  122. package/lib/rules/oas3/response-mime-type.js +1 -1
  123. package/lib/rules/oas3/spec-components-invalid-map-name.d.ts +2 -0
  124. package/lib/rules/oas3/spec-components-invalid-map-name.js +62 -0
  125. package/lib/rules/other/stats.d.ts +2 -2
  126. package/lib/rules/other/stats.js +45 -16
  127. package/lib/rules/utils.d.ts +5 -2
  128. package/lib/rules/utils.js +54 -6
  129. package/lib/types/config-external-schemas.d.ts +2193 -0
  130. package/lib/types/config-external-schemas.js +805 -0
  131. package/lib/types/index.d.ts +3 -2
  132. package/lib/types/index.js +9 -1
  133. package/lib/types/oas2.js +91 -15
  134. package/lib/types/oas3.js +125 -46
  135. package/lib/types/oas3_1.js +23 -19
  136. package/lib/types/redocly-yaml.js +406 -60
  137. package/lib/utils.d.ts +15 -4
  138. package/lib/utils.js +72 -8
  139. package/lib/visitors.d.ts +20 -16
  140. package/lib/visitors.js +28 -3
  141. package/lib/walk.d.ts +11 -19
  142. package/lib/walk.js +74 -53
  143. package/package.json +5 -6
  144. package/__tests__/utils.ts +0 -86
  145. package/lib/rules/common/info-description.d.ts +0 -2
  146. package/lib/rules/common/info-description.js +0 -12
  147. package/lib/rules/common/license-url.d.ts +0 -2
  148. package/lib/rules/common/license-url.js +0 -12
  149. package/lib/rules/common/operation-security-defined.d.ts +0 -2
  150. package/lib/rules/oas3/no-servers-empty-enum.d.ts +0 -2
  151. package/src/__tests__/__snapshots__/bundle.test.ts.snap +0 -255
  152. package/src/__tests__/bundle.test.ts +0 -156
  153. package/src/__tests__/codeframes.test.ts +0 -531
  154. package/src/__tests__/fixtures/extension.js +0 -24
  155. package/src/__tests__/fixtures/refs/definitions.yaml +0 -3
  156. package/src/__tests__/fixtures/refs/examples.yaml +0 -8
  157. package/src/__tests__/fixtures/refs/external-request-body.yaml +0 -13
  158. package/src/__tests__/fixtures/refs/externalref.yaml +0 -35
  159. package/src/__tests__/fixtures/refs/hosted.yaml +0 -35
  160. package/src/__tests__/fixtures/refs/openapi-with-external-refs-conflicting-names.yaml +0 -21
  161. package/src/__tests__/fixtures/refs/openapi-with-external-refs.yaml +0 -33
  162. package/src/__tests__/fixtures/refs/openapi-with-url-refs.yaml +0 -18
  163. package/src/__tests__/fixtures/refs/param-b.yaml +0 -1
  164. package/src/__tests__/fixtures/refs/param-c.yaml +0 -1
  165. package/src/__tests__/fixtures/refs/rename.yaml +0 -1
  166. package/src/__tests__/fixtures/refs/requestBody.yaml +0 -9
  167. package/src/__tests__/fixtures/refs/schema-a.yaml +0 -1
  168. package/src/__tests__/fixtures/refs/simple.yaml +0 -1
  169. package/src/__tests__/fixtures/refs/vendor.schema.yaml +0 -20
  170. package/src/__tests__/fixtures/resolve/External.yaml +0 -10
  171. package/src/__tests__/fixtures/resolve/External2.yaml +0 -4
  172. package/src/__tests__/fixtures/resolve/description.md +0 -3
  173. package/src/__tests__/fixtures/resolve/externalInfo.yaml +0 -4
  174. package/src/__tests__/fixtures/resolve/externalLicense.yaml +0 -1
  175. package/src/__tests__/fixtures/resolve/openapi-with-back.yaml +0 -13
  176. package/src/__tests__/fixtures/resolve/openapi-with-md-description.yaml +0 -5
  177. package/src/__tests__/fixtures/resolve/openapi.yaml +0 -28
  178. package/src/__tests__/fixtures/resolve/schemas/type-a.yaml +0 -10
  179. package/src/__tests__/fixtures/resolve/schemas/type-b.yaml +0 -6
  180. package/src/__tests__/fixtures/resolve/transitive/a.yaml +0 -1
  181. package/src/__tests__/fixtures/resolve/transitive/components.yaml +0 -5
  182. package/src/__tests__/fixtures/resolve/transitive/schemas.yaml +0 -3
  183. package/src/__tests__/js-yaml.test.ts +0 -71
  184. package/src/__tests__/lint.test.ts +0 -195
  185. package/src/__tests__/login.test.ts +0 -17
  186. package/src/__tests__/normalizeVisitors.test.ts +0 -151
  187. package/src/__tests__/ref-utils.test.ts +0 -120
  188. package/src/__tests__/resolve-http.test.ts +0 -77
  189. package/src/__tests__/resolve.test.ts +0 -405
  190. package/src/__tests__/utils.test.ts +0 -85
  191. package/src/__tests__/walk.test.ts +0 -1485
  192. package/src/benchmark/benches/lint-with-many-rules.bench.ts +0 -35
  193. package/src/benchmark/benches/lint-with-nested-rule.bench.ts +0 -39
  194. package/src/benchmark/benches/lint-with-no-rules.bench.ts +0 -20
  195. package/src/benchmark/benches/lint-with-top-level-rule-report.bench.ts +0 -36
  196. package/src/benchmark/benches/lint-with-top-level-rule.bench.ts +0 -32
  197. package/src/benchmark/benches/rebilly.yaml +0 -32267
  198. package/src/benchmark/benches/recommended-oas3.bench.ts +0 -22
  199. package/src/benchmark/benches/resolve-with-no-external.bench.ts +0 -23
  200. package/src/benchmark/benchmark.js +0 -307
  201. package/src/benchmark/colors.js +0 -29
  202. package/src/benchmark/fork.js +0 -83
  203. package/src/benchmark/utils.ts +0 -36
  204. package/src/bundle.ts +0 -386
  205. package/src/config/__tests__/__snapshots__/config-resolvers.test.ts.snap +0 -157
  206. package/src/config/__tests__/config-resolvers.test.ts +0 -429
  207. package/src/config/__tests__/config.test.ts +0 -244
  208. package/src/config/__tests__/fixtures/plugin-config.yaml +0 -3
  209. package/src/config/__tests__/fixtures/plugin.js +0 -56
  210. package/src/config/__tests__/fixtures/resolve-config/api/nested-config.yaml +0 -12
  211. package/src/config/__tests__/fixtures/resolve-config/api/plugin.js +0 -67
  212. package/src/config/__tests__/fixtures/resolve-config/local-config-with-circular.yaml +0 -8
  213. package/src/config/__tests__/fixtures/resolve-config/local-config-with-file.yaml +0 -19
  214. package/src/config/__tests__/fixtures/resolve-config/local-config.yaml +0 -10
  215. package/src/config/__tests__/fixtures/resolve-config/plugin.js +0 -66
  216. package/src/config/__tests__/fixtures/resolve-remote-configs/nested-remote-config.yaml +0 -4
  217. package/src/config/__tests__/fixtures/resolve-remote-configs/remote-config.yaml +0 -5
  218. package/src/config/__tests__/load.test.ts +0 -83
  219. package/src/config/__tests__/resolve-plugins.test.ts +0 -27
  220. package/src/config/all.ts +0 -66
  221. package/src/config/builtIn.ts +0 -37
  222. package/src/config/config-resolvers.ts +0 -359
  223. package/src/config/config.ts +0 -312
  224. package/src/config/index.ts +0 -7
  225. package/src/config/load.ts +0 -84
  226. package/src/config/minimal.ts +0 -58
  227. package/src/config/recommended.ts +0 -58
  228. package/src/config/rules.ts +0 -46
  229. package/src/config/types.ts +0 -168
  230. package/src/config/utils.ts +0 -208
  231. package/src/decorators/__tests__/remove-x-internal.test.ts +0 -316
  232. package/src/decorators/common/info-description-override.ts +0 -24
  233. package/src/decorators/common/operation-description-override.ts +0 -30
  234. package/src/decorators/common/registry-dependencies.ts +0 -25
  235. package/src/decorators/common/remove-x-internal.ts +0 -59
  236. package/src/decorators/common/tag-description-override.ts +0 -25
  237. package/src/decorators/oas2/index.ts +0 -14
  238. package/src/decorators/oas3/index.ts +0 -14
  239. package/src/format/codeframes.ts +0 -210
  240. package/src/format/format.ts +0 -339
  241. package/src/index.ts +0 -68
  242. package/src/js-yaml/index.ts +0 -18
  243. package/src/lint.ts +0 -125
  244. package/src/oas-types.ts +0 -62
  245. package/src/redocly/__tests__/redocly-client.test.ts +0 -140
  246. package/src/redocly/index.ts +0 -182
  247. package/src/redocly/redocly-client-types.ts +0 -10
  248. package/src/redocly/registry-api-types.ts +0 -32
  249. package/src/redocly/registry-api.ts +0 -134
  250. package/src/ref-utils.ts +0 -80
  251. package/src/resolve.ts +0 -378
  252. package/src/rules/__tests__/fixtures/invalid-yaml.yaml +0 -1
  253. package/src/rules/__tests__/fixtures/ref.yaml +0 -1
  254. package/src/rules/__tests__/no-unresolved-refs.test.ts +0 -168
  255. package/src/rules/ajv.ts +0 -103
  256. package/src/rules/common/__tests__/info-description.test.ts +0 -102
  257. package/src/rules/common/__tests__/info-license.test.ts +0 -62
  258. package/src/rules/common/__tests__/license-url.test.ts +0 -63
  259. package/src/rules/common/__tests__/no-ambiguous-paths.test.ts +0 -96
  260. package/src/rules/common/__tests__/no-enum-type-mismatch.test.ts +0 -209
  261. package/src/rules/common/__tests__/no-identical-paths.test.ts +0 -58
  262. package/src/rules/common/__tests__/no-path-trailing-slash.test.ts +0 -85
  263. package/src/rules/common/__tests__/operation-2xx-response.test.ts +0 -91
  264. package/src/rules/common/__tests__/operation-4xx-response.test.ts +0 -107
  265. package/src/rules/common/__tests__/operation-operationId-unique.test.ts +0 -76
  266. package/src/rules/common/__tests__/operation-operationId-url-safe.test.ts +0 -45
  267. package/src/rules/common/__tests__/operation-parameters-unique.test.ts +0 -167
  268. package/src/rules/common/__tests__/operation-security-defined.test.ts +0 -69
  269. package/src/rules/common/__tests__/operation-singular-tag.test.ts +0 -72
  270. package/src/rules/common/__tests__/path-http-verbs-order.test.ts +0 -95
  271. package/src/rules/common/__tests__/path-not-include-query.test.ts +0 -64
  272. package/src/rules/common/__tests__/path-params-defined.test.ts +0 -133
  273. package/src/rules/common/__tests__/paths-kebab-case.test.ts +0 -108
  274. package/src/rules/common/__tests__/scalar-property-missing-example.test.ts +0 -207
  275. package/src/rules/common/__tests__/spec.test.ts +0 -62
  276. package/src/rules/common/__tests__/tag-description.test.ts +0 -65
  277. package/src/rules/common/__tests__/tags-alphabetical.test.ts +0 -64
  278. package/src/rules/common/assertions/__tests__/asserts.test.ts +0 -231
  279. package/src/rules/common/assertions/__tests__/index.test.ts +0 -65
  280. package/src/rules/common/assertions/__tests__/utils.test.ts +0 -89
  281. package/src/rules/common/assertions/asserts.ts +0 -137
  282. package/src/rules/common/assertions/index.ts +0 -75
  283. package/src/rules/common/assertions/utils.ts +0 -167
  284. package/src/rules/common/info-contact.ts +0 -15
  285. package/src/rules/common/info-description.ts +0 -10
  286. package/src/rules/common/info-license-url.ts +0 -15
  287. package/src/rules/common/license-url.ts +0 -10
  288. package/src/rules/common/no-ambiguous-paths.ts +0 -50
  289. package/src/rules/common/no-enum-type-mismatch.ts +0 -49
  290. package/src/rules/common/no-http-verbs-in-paths.ts +0 -36
  291. package/src/rules/common/no-identical-paths.ts +0 -24
  292. package/src/rules/common/no-invalid-parameter-examples.ts +0 -36
  293. package/src/rules/common/no-invalid-schema-examples.ts +0 -27
  294. package/src/rules/common/no-path-trailing-slash.ts +0 -15
  295. package/src/rules/common/operation-2xx-response.ts +0 -16
  296. package/src/rules/common/operation-4xx-response.ts +0 -17
  297. package/src/rules/common/operation-description.ts +0 -13
  298. package/src/rules/common/operation-operationId-unique.ts +0 -21
  299. package/src/rules/common/operation-operationId-url-safe.ts +0 -19
  300. package/src/rules/common/operation-operationId.ts +0 -17
  301. package/src/rules/common/operation-parameters-unique.ts +0 -48
  302. package/src/rules/common/operation-security-defined.ts +0 -45
  303. package/src/rules/common/operation-singular-tag.ts +0 -17
  304. package/src/rules/common/operation-summary.ts +0 -13
  305. package/src/rules/common/operation-tag-defined.ts +0 -26
  306. package/src/rules/common/parameter-description.ts +0 -22
  307. package/src/rules/common/path-declaration-must-exist.ts +0 -15
  308. package/src/rules/common/path-excludes-patterns.ts +0 -23
  309. package/src/rules/common/path-http-verbs-order.ts +0 -30
  310. package/src/rules/common/path-not-include-query.ts +0 -17
  311. package/src/rules/common/path-params-defined.ts +0 -58
  312. package/src/rules/common/path-segment-plural.ts +0 -31
  313. package/src/rules/common/paths-kebab-case.ts +0 -16
  314. package/src/rules/common/response-contains-header.ts +0 -30
  315. package/src/rules/common/scalar-property-missing-example.ts +0 -55
  316. package/src/rules/common/spec.ts +0 -143
  317. package/src/rules/common/tag-description.ts +0 -10
  318. package/src/rules/common/tags-alphabetical.ts +0 -20
  319. package/src/rules/no-unresolved-refs.ts +0 -51
  320. package/src/rules/oas2/__tests__/boolean-parameter-prefixes.test.ts +0 -110
  321. package/src/rules/oas2/__tests__/response-contains-header.test.ts +0 -174
  322. package/src/rules/oas2/__tests__/response-contains-property.test.ts +0 -155
  323. package/src/rules/oas2/__tests__/spec/fixtures/description.md +0 -1
  324. package/src/rules/oas2/__tests__/spec/info.test.ts +0 -355
  325. package/src/rules/oas2/__tests__/spec/operation.test.ts +0 -123
  326. package/src/rules/oas2/__tests__/spec/paths.test.ts +0 -245
  327. package/src/rules/oas2/__tests__/spec/referenceableScalars.test.ts +0 -31
  328. package/src/rules/oas2/__tests__/spec/utils.ts +0 -32
  329. package/src/rules/oas2/boolean-parameter-prefixes.ts +0 -26
  330. package/src/rules/oas2/index.ts +0 -89
  331. package/src/rules/oas2/remove-unused-components.ts +0 -76
  332. package/src/rules/oas2/request-mime-type.ts +0 -17
  333. package/src/rules/oas2/response-contains-property.ts +0 -36
  334. package/src/rules/oas2/response-mime-type.ts +0 -17
  335. package/src/rules/oas3/__tests__/boolean-parameter-prefixes.test.ts +0 -111
  336. package/src/rules/oas3/__tests__/fixtures/common.yaml +0 -11
  337. package/src/rules/oas3/__tests__/no-empty-enum-servers.com.test.ts +0 -205
  338. package/src/rules/oas3/__tests__/no-example-value-and-externalValue.test.ts +0 -65
  339. package/src/rules/oas3/__tests__/no-invalid-media-type-examples.test.ts +0 -392
  340. package/src/rules/oas3/__tests__/no-server-example.com.test.ts +0 -60
  341. package/src/rules/oas3/__tests__/no-server-trailing-slash.test.ts +0 -79
  342. package/src/rules/oas3/__tests__/no-unused-components.test.ts +0 -131
  343. package/src/rules/oas3/__tests__/response-contains-header.test.ts +0 -273
  344. package/src/rules/oas3/__tests__/response-contains-property.test.ts +0 -403
  345. package/src/rules/oas3/__tests__/spec/callbacks.test.ts +0 -41
  346. package/src/rules/oas3/__tests__/spec/fixtures/description.md +0 -1
  347. package/src/rules/oas3/__tests__/spec/info.test.ts +0 -391
  348. package/src/rules/oas3/__tests__/spec/operation.test.ts +0 -253
  349. package/src/rules/oas3/__tests__/spec/paths.test.ts +0 -284
  350. package/src/rules/oas3/__tests__/spec/referenceableScalars.test.ts +0 -77
  351. package/src/rules/oas3/__tests__/spec/servers.test.ts +0 -499
  352. package/src/rules/oas3/__tests__/spec/spec.test.ts +0 -288
  353. package/src/rules/oas3/__tests__/spec/utils.ts +0 -32
  354. package/src/rules/oas3/boolean-parameter-prefixes.ts +0 -28
  355. package/src/rules/oas3/index.ts +0 -105
  356. package/src/rules/oas3/no-empty-servers.ts +0 -22
  357. package/src/rules/oas3/no-example-value-and-externalValue.ts +0 -14
  358. package/src/rules/oas3/no-invalid-media-type-examples.ts +0 -41
  359. package/src/rules/oas3/no-server-example.com.ts +0 -14
  360. package/src/rules/oas3/no-server-trailing-slash.ts +0 -15
  361. package/src/rules/oas3/no-servers-empty-enum.ts +0 -67
  362. package/src/rules/oas3/no-undefined-server-variable.ts +0 -30
  363. package/src/rules/oas3/no-unused-components.ts +0 -75
  364. package/src/rules/oas3/remove-unused-components.ts +0 -84
  365. package/src/rules/oas3/request-mime-type.ts +0 -31
  366. package/src/rules/oas3/response-contains-property.ts +0 -38
  367. package/src/rules/oas3/response-mime-type.ts +0 -31
  368. package/src/rules/other/stats.ts +0 -44
  369. package/src/rules/utils.ts +0 -123
  370. package/src/types/index.ts +0 -138
  371. package/src/types/oas2.ts +0 -397
  372. package/src/types/oas3.ts +0 -515
  373. package/src/types/oas3_1.ts +0 -253
  374. package/src/types/redocly-yaml.ts +0 -647
  375. package/src/typings/common.ts +0 -9
  376. package/src/typings/openapi.ts +0 -298
  377. package/src/typings/swagger.ts +0 -236
  378. package/src/utils.ts +0 -193
  379. package/src/visitors.ts +0 -448
  380. package/src/walk.ts +0 -416
  381. package/tsconfig.json +0 -8
  382. 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
  };