@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
@@ -1,27 +1,184 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConfigTypes = void 0;
4
+ const config_external_schemas_1 = require("./config-external-schemas");
4
5
  const _1 = require(".");
5
6
  const utils_1 = require("../utils");
6
- const ConfigRoot = {
7
+ const builtInRulesList = [
8
+ 'spec',
9
+ 'info-contact',
10
+ 'info-license',
11
+ 'info-license-url',
12
+ 'operation-2xx-response',
13
+ 'operation-4xx-response',
14
+ 'operation-4xx-problem-details-rfc7807',
15
+ 'assertions',
16
+ 'operation-operationId-unique',
17
+ 'operation-parameters-unique',
18
+ 'path-parameters-defined',
19
+ 'operation-tag-defined',
20
+ 'no-example-value-and-externalValue',
21
+ 'no-enum-type-mismatch',
22
+ 'no-path-trailing-slash',
23
+ 'no-empty-servers',
24
+ 'path-declaration-must-exist',
25
+ 'operation-operationId-url-safe',
26
+ 'operation-operationId',
27
+ 'operation-summary',
28
+ 'tags-alphabetical',
29
+ 'no-server-example.com',
30
+ 'no-server-trailing-slash',
31
+ 'tag-description',
32
+ 'operation-description',
33
+ 'no-unused-components',
34
+ 'path-not-include-query',
35
+ 'path-params-defined',
36
+ 'parameter-description',
37
+ 'operation-singular-tag',
38
+ 'security-defined',
39
+ 'no-unresolved-refs',
40
+ 'paths-kebab-case',
41
+ 'boolean-parameter-prefixes',
42
+ 'path-http-verbs-order',
43
+ 'no-invalid-media-type-examples',
44
+ 'no-identical-paths',
45
+ 'no-ambiguous-paths',
46
+ 'no-undefined-server-variable',
47
+ 'no-server-variables-empty-enum',
48
+ 'no-http-verbs-in-paths',
49
+ 'path-excludes-patterns',
50
+ 'request-mime-type',
51
+ 'response-mime-type',
52
+ 'path-segment-plural',
53
+ 'no-invalid-schema-examples',
54
+ 'no-invalid-parameter-examples',
55
+ 'response-contains-header',
56
+ 'response-contains-property',
57
+ 'scalar-property-missing-example',
58
+ 'spec-components-invalid-map-name',
59
+ 'required-string-property-missing-min-length',
60
+ 'spec-strict-refs',
61
+ 'component-name-unique',
62
+ ];
63
+ const nodeTypesList = [
64
+ 'any',
65
+ 'Root',
66
+ 'Tag',
67
+ 'TagList',
68
+ 'ExternalDocs',
69
+ 'Server',
70
+ 'ServerList',
71
+ 'ServerVariable',
72
+ 'ServerVariablesMap',
73
+ 'SecurityRequirement',
74
+ 'SecurityRequirementList',
75
+ 'Info',
76
+ 'Contact',
77
+ 'License',
78
+ 'Paths',
79
+ 'PathItem',
80
+ 'Parameter',
81
+ 'ParameterList',
82
+ 'Operation',
83
+ 'Callback',
84
+ 'CallbacksMap',
85
+ 'RequestBody',
86
+ 'MediaTypesMap',
87
+ 'MediaType',
88
+ 'Example',
89
+ 'ExamplesMap',
90
+ 'Encoding',
91
+ 'EncodingMap',
92
+ 'Header',
93
+ 'HeadersMap',
94
+ 'Responses',
95
+ 'Response',
96
+ 'Link',
97
+ 'LinksMap',
98
+ 'Schema',
99
+ 'Xml',
100
+ 'SchemaProperties',
101
+ 'DiscriminatorMapping',
102
+ 'Discriminator',
103
+ 'Components',
104
+ 'NamedSchemas',
105
+ 'NamedResponses',
106
+ 'NamedParameters',
107
+ 'NamedExamples',
108
+ 'NamedRequestBodies',
109
+ 'NamedHeaders',
110
+ 'NamedSecuritySchemes',
111
+ 'NamedLinks',
112
+ 'NamedCallbacks',
113
+ 'ImplicitFlow',
114
+ 'PasswordFlow',
115
+ 'ClientCredentials',
116
+ 'AuthorizationCode',
117
+ 'OAuth2Flows',
118
+ 'SecurityScheme',
119
+ 'XCodeSample',
120
+ 'XCodeSampleList',
121
+ 'WebhooksMap',
122
+ 'SpecExtension',
123
+ ];
124
+ const ConfigStyleguide = {
7
125
  properties: {
8
- organization: { type: 'string' },
9
- apis: 'ConfigApis',
10
- lint: 'RootConfigLint',
11
- 'features.openapi': 'ConfigReferenceDocs',
12
- 'features.mockServer': 'ConfigMockServer',
126
+ extends: {
127
+ type: 'array',
128
+ items: {
129
+ type: 'string',
130
+ },
131
+ },
132
+ rules: 'Rules',
133
+ oas2Rules: 'Rules',
134
+ oas3_0Rules: 'Rules',
135
+ oas3_1Rules: 'Rules',
136
+ preprocessors: { type: 'object' },
137
+ oas2Preprocessors: { type: 'object' },
138
+ oas3_0Preprocessors: { type: 'object' },
139
+ oas3_1Preprocessors: { type: 'object' },
140
+ decorators: { type: 'object' },
141
+ oas2Decorators: { type: 'object' },
142
+ oas3_0Decorators: { type: 'object' },
143
+ oas3_1Decorators: { type: 'object' },
13
144
  },
14
145
  };
146
+ const RootConfigStyleguide = {
147
+ properties: Object.assign({ plugins: {
148
+ type: 'array',
149
+ items: { type: 'string' },
150
+ } }, ConfigStyleguide.properties),
151
+ };
152
+ const ConfigRoot = {
153
+ properties: Object.assign(Object.assign({ organization: { type: 'string' }, apis: 'ConfigApis' }, RootConfigStyleguide.properties), { theme: 'ConfigRootTheme', 'features.openapi': 'ConfigReferenceDocs', 'features.mockServer': 'ConfigMockServer', region: { enum: ['us', 'eu'] }, telemetry: { enum: ['on', 'off'] }, resolve: {
154
+ properties: {
155
+ http: 'ConfigHTTP',
156
+ doNotResolveExamples: { type: 'boolean' },
157
+ },
158
+ }, files: {
159
+ type: 'array',
160
+ items: {
161
+ type: 'string',
162
+ },
163
+ }, redirects: { type: 'object', additionalProperties: config_external_schemas_1.redirectConfigSchema }, licenseKey: { type: 'string' }, seo: config_external_schemas_1.seoConfigSchema, rbac: config_external_schemas_1.rbacConfigSchema, responseHeaders: config_external_schemas_1.responseHeaderSchema, mockServer: config_external_schemas_1.mockServerConfigSchema, sso: config_external_schemas_1.ssoConfigSchema, developerOnboarding: config_external_schemas_1.devOnboardingConfigSchema, i18n: config_external_schemas_1.i18nConfigSchema }),
164
+ };
15
165
  const ConfigApis = {
16
166
  properties: {},
17
167
  additionalProperties: 'ConfigApisProperties',
18
168
  };
19
169
  const ConfigApisProperties = {
20
- properties: {
21
- root: { type: 'string' },
22
- lint: 'ConfigLint',
23
- 'features.openapi': 'ConfigReferenceDocs',
24
- },
170
+ properties: Object.assign(Object.assign({ root: { type: 'string' }, labels: {
171
+ type: 'array',
172
+ items: {
173
+ type: 'string',
174
+ },
175
+ }, lint: 'ConfigStyleguide', styleguide: 'ConfigStyleguide' }, ConfigStyleguide.properties), { 'features.openapi': 'ConfigReferenceDocs', 'features.mockServer': 'ConfigMockServer', theme: 'ConfigRootTheme', files: {
176
+ type: 'array',
177
+ items: {
178
+ type: 'string',
179
+ },
180
+ }, title: { type: 'string' }, rbac: { type: 'object' }, metadata: { type: 'object' } }),
181
+ required: ['root'],
25
182
  };
26
183
  const ConfigHTTP = {
27
184
  properties: {
@@ -33,45 +190,144 @@ const ConfigHTTP = {
33
190
  },
34
191
  },
35
192
  };
36
- const ConfigLint = {
37
- properties: {
38
- extends: {
39
- type: 'array',
40
- items: {
41
- type: 'string',
42
- },
193
+ const ConfigRootTheme = {
194
+ properties: Object.assign(Object.assign({}, config_external_schemas_1.themeConfigSchema.properties), { openapi: 'ConfigReferenceDocs', mockServer: 'ConfigMockServer' }),
195
+ };
196
+ const Rules = {
197
+ properties: {},
198
+ additionalProperties: (value, key) => {
199
+ if (key.startsWith('rule/')) {
200
+ return 'Assert';
201
+ }
202
+ else if (key.startsWith('assert/')) {
203
+ // keep the old assert/ prefix as an alias
204
+ return 'Assert';
205
+ }
206
+ else if (builtInRulesList.includes(key) || utils_1.isCustomRuleId(key)) {
207
+ if (typeof value === 'string') {
208
+ return { enum: ['error', 'warn', 'off'] };
209
+ }
210
+ else {
211
+ return 'ObjectRule';
212
+ }
213
+ }
214
+ // Otherwise is considered as invalid
215
+ return;
216
+ },
217
+ };
218
+ const ObjectRule = {
219
+ properties: {
220
+ severity: { enum: ['error', 'warn', 'off'] },
221
+ },
222
+ additionalProperties: {},
223
+ required: ['severity'],
224
+ };
225
+ const AssertionDefinitionSubject = {
226
+ properties: {
227
+ type: { enum: nodeTypesList },
228
+ property: (value) => {
229
+ if (Array.isArray(value)) {
230
+ return { type: 'array', items: { type: 'string' } };
231
+ }
232
+ else if (value === null) {
233
+ return null;
234
+ }
235
+ else {
236
+ return { type: 'string' };
237
+ }
43
238
  },
44
- doNotResolveExamples: { type: 'boolean' },
45
- rules: { type: 'object' },
46
- oas2Rules: { type: 'object' },
47
- oas3_0Rules: { type: 'object' },
48
- oas3_1Rules: { type: 'object' },
49
- preprocessors: { type: 'object' },
50
- oas2Preprocessors: { type: 'object' },
51
- oas3_0Preprocessors: { type: 'object' },
52
- oas3_1Preprocessors: { type: 'object' },
53
- decorators: { type: 'object' },
54
- oas2Decorators: { type: 'object' },
55
- oas3_0Decorators: { type: 'object' },
56
- oas3_1Decorators: { type: 'object' },
57
- resolve: {
58
- properties: {
59
- http: 'ConfigHTTP',
60
- },
239
+ filterInParentKeys: { type: 'array', items: { type: 'string' } },
240
+ filterOutParentKeys: { type: 'array', items: { type: 'string' } },
241
+ matchParentKeys: { type: 'string' },
242
+ },
243
+ required: ['type'],
244
+ };
245
+ const AssertionDefinitionAssertions = {
246
+ properties: {
247
+ enum: { type: 'array', items: { type: 'string' } },
248
+ pattern: { type: 'string' },
249
+ notPattern: { type: 'string' },
250
+ casing: {
251
+ enum: [
252
+ 'camelCase',
253
+ 'kebab-case',
254
+ 'snake_case',
255
+ 'PascalCase',
256
+ 'MACRO_CASE',
257
+ 'COBOL-CASE',
258
+ 'flatcase',
259
+ ],
61
260
  },
261
+ mutuallyExclusive: { type: 'array', items: { type: 'string' } },
262
+ mutuallyRequired: { type: 'array', items: { type: 'string' } },
263
+ required: { type: 'array', items: { type: 'string' } },
264
+ requireAny: { type: 'array', items: { type: 'string' } },
265
+ disallowed: { type: 'array', items: { type: 'string' } },
266
+ defined: { type: 'boolean' },
267
+ // undefined: { type: 'boolean' }, // TODO: Remove `undefined` assertion from codebase overall
268
+ nonEmpty: { type: 'boolean' },
269
+ minLength: { type: 'integer' },
270
+ maxLength: { type: 'integer' },
271
+ ref: (value) => typeof value === 'string' ? { type: 'string' } : { type: 'boolean' },
272
+ const: (value) => {
273
+ if (typeof value === 'string') {
274
+ return { type: 'string' };
275
+ }
276
+ if (typeof value === 'number') {
277
+ return { type: 'number' };
278
+ }
279
+ if (typeof value === 'boolean') {
280
+ return { type: 'boolean' };
281
+ }
282
+ else {
283
+ return;
284
+ }
285
+ },
286
+ },
287
+ additionalProperties: (_value, key) => {
288
+ if (/^\w+\/\w+$/.test(key))
289
+ return { type: 'object' };
290
+ return;
62
291
  },
63
292
  };
64
- const RootConfigLint = {
65
- properties: Object.assign({ plugins: {
66
- type: 'array',
67
- items: { type: 'string' },
68
- } }, ConfigLint.properties),
293
+ const AssertDefinition = {
294
+ properties: {
295
+ subject: 'AssertionDefinitionSubject',
296
+ assertions: 'AssertionDefinitionAssertions',
297
+ },
298
+ required: ['subject', 'assertions'],
299
+ };
300
+ const Assert = {
301
+ properties: {
302
+ subject: 'AssertionDefinitionSubject',
303
+ assertions: 'AssertionDefinitionAssertions',
304
+ where: _1.listOf('AssertDefinition'),
305
+ message: { type: 'string' },
306
+ suggest: { type: 'array', items: { type: 'string' } },
307
+ severity: { enum: ['error', 'warn', 'off'] },
308
+ },
309
+ required: ['subject', 'assertions'],
69
310
  };
70
311
  const ConfigLanguage = {
71
312
  properties: {
72
313
  label: { type: 'string' },
73
- lang: { type: 'string' },
314
+ lang: {
315
+ enum: [
316
+ 'curl',
317
+ 'C#',
318
+ 'Go',
319
+ 'Java',
320
+ 'Java8+Apache',
321
+ 'JavaScript',
322
+ 'Node.js',
323
+ 'PHP',
324
+ 'Python',
325
+ 'R',
326
+ 'Ruby',
327
+ ],
328
+ },
74
329
  },
330
+ required: ['lang'],
75
331
  };
76
332
  const ConfigLabels = {
77
333
  properties: {
@@ -93,11 +349,17 @@ const ConfigLabels = {
93
349
  };
94
350
  const ConfigSidebarLinks = {
95
351
  properties: {
96
- placement: { type: 'string' },
352
+ beforeInfo: _1.listOf('CommonConfigSidebarLinks'),
353
+ end: _1.listOf('CommonConfigSidebarLinks'),
354
+ },
355
+ };
356
+ const CommonConfigSidebarLinks = {
357
+ properties: {
97
358
  label: { type: 'string' },
98
359
  link: { type: 'string' },
99
360
  target: { type: 'string' },
100
361
  },
362
+ required: ['label', 'link'],
101
363
  };
102
364
  const CommonThemeColors = {
103
365
  properties: {
@@ -133,7 +395,7 @@ const HttpColors = {
133
395
  };
134
396
  const ResponseColors = {
135
397
  properties: {
136
- errors: 'CommonColorProps',
398
+ error: 'CommonColorProps',
137
399
  info: 'CommonColorProps',
138
400
  redirect: 'CommonColorProps',
139
401
  success: 'CommonColorProps',
@@ -205,11 +467,14 @@ const HttpBadgesConfig = {
205
467
  const LabelControls = {
206
468
  properties: {
207
469
  top: { type: 'string' },
470
+ width: { type: 'string' },
471
+ height: { type: 'string' },
208
472
  },
209
473
  };
210
474
  const Panels = {
211
475
  properties: {
212
476
  borderRadius: { type: 'string' },
477
+ backgroundColor: { type: 'string' },
213
478
  },
214
479
  };
215
480
  const TryItButton = {
@@ -242,6 +507,7 @@ const StackedConfig = {
242
507
  const ThreePanelConfig = {
243
508
  properties: {
244
509
  maxWidth: 'Breakpoints',
510
+ middlePanelMaxWidth: 'Breakpoints',
245
511
  },
246
512
  };
247
513
  const Layout = {
@@ -301,7 +567,18 @@ const Heading = {
301
567
  properties: Object.assign(Object.assign({}, FontConfig.properties), { color: { type: 'string' }, transform: { type: 'string' } }),
302
568
  };
303
569
  const CodeConfig = {
304
- properties: Object.assign(Object.assign({}, FontConfig.properties), { backgroundColor: { type: 'string' }, color: { type: 'string' }, wordBreak: { type: 'string' }, wrap: { type: 'boolean' } }),
570
+ properties: Object.assign(Object.assign({}, FontConfig.properties), { backgroundColor: { type: 'string' }, color: { type: 'string' }, wordBreak: {
571
+ enum: [
572
+ 'break-all',
573
+ 'break-word',
574
+ 'keep-all',
575
+ 'normal',
576
+ 'revert',
577
+ 'unset',
578
+ 'inherit',
579
+ 'initial',
580
+ ],
581
+ }, wrap: { type: 'boolean' } }),
305
582
  };
306
583
  const HeadingsConfig = {
307
584
  properties: utils_1.omitObjectProps(FontConfig.properties, ['fontSize']),
@@ -311,11 +588,12 @@ const LinksConfig = {
311
588
  color: { type: 'string' },
312
589
  hover: { type: 'string' },
313
590
  textDecoration: { type: 'string' },
591
+ hoverTextDecoration: { type: 'string' },
314
592
  visited: { type: 'string' },
315
593
  },
316
594
  };
317
595
  const Typography = {
318
- properties: Object.assign(Object.assign({ code: 'CodeConfig', fieldName: 'FontConfig' }, utils_1.pickObjectProps(FontConfig.properties, ['fontSize', 'fontFamily'])), { fontWeightBold: { type: 'string' }, fontWeightLight: { type: 'string' }, fontWeightRegular: { type: 'string' }, heading1: 'Heading', heading2: 'Heading', heading3: 'Heading', headings: 'HeadingsConfig', lineHeight: { type: 'string' }, links: 'LinksConfig', optimizeSpeed: { type: 'boolean' }, rightPanelHeading: 'Heading', smoothing: { type: 'string' } }),
596
+ properties: Object.assign(Object.assign({ code: 'CodeConfig', fieldName: 'FontConfig' }, utils_1.pickObjectProps(FontConfig.properties, ['fontSize', 'fontFamily'])), { fontWeightBold: { type: 'string' }, fontWeightLight: { type: 'string' }, fontWeightRegular: { type: 'string' }, heading1: 'Heading', heading2: 'Heading', heading3: 'Heading', headings: 'HeadingsConfig', lineHeight: { type: 'string' }, links: 'LinksConfig', optimizeSpeed: { type: 'boolean' }, rightPanelHeading: 'Heading', smoothing: { enum: ['auto', 'none', 'antialiased', 'subpixel-antialiased', 'grayscale'] } }),
319
597
  };
320
598
  const TokenProps = {
321
599
  properties: Object.assign({ color: { type: 'string' } }, utils_1.omitObjectProps(FontConfig.properties, ['fontWeight'])),
@@ -334,6 +612,12 @@ const Logo = {
334
612
  maxWidth: { type: 'string' },
335
613
  },
336
614
  };
615
+ const Fab = {
616
+ properties: {
617
+ backgroundColor: { type: 'string' },
618
+ color: { type: 'string' },
619
+ },
620
+ };
337
621
  const ButtonOverrides = {
338
622
  properties: {
339
623
  custom: { type: 'string' },
@@ -373,6 +657,7 @@ const ConfigTheme = {
373
657
  components: 'Components',
374
658
  layout: 'Layout',
375
659
  logo: 'Logo',
660
+ fab: 'Fab',
376
661
  overrides: 'Overrides',
377
662
  rightPanel: 'RightPanel',
378
663
  schema: 'Schema',
@@ -381,7 +666,7 @@ const ConfigTheme = {
381
666
  spacing: 'ThemeSpacing',
382
667
  typography: 'Typography',
383
668
  links: { properties: { color: { type: 'string' } } },
384
- codeSample: { properties: { backgroundColor: { type: 'string' } } },
669
+ codeSample: { properties: { backgroundColor: { type: 'string' } } }, // deprecated
385
670
  },
386
671
  };
387
672
  const GenerateCodeSamples = {
@@ -389,6 +674,7 @@ const GenerateCodeSamples = {
389
674
  skipOptionalParameters: { type: 'boolean' },
390
675
  languages: _1.listOf('ConfigLanguage'),
391
676
  },
677
+ required: ['languages'],
392
678
  };
393
679
  const ConfigReferenceDocs = {
394
680
  properties: {
@@ -401,6 +687,9 @@ const ConfigReferenceDocs = {
401
687
  disableSidebar: { type: 'boolean' },
402
688
  downloadDefinitionUrl: { type: 'string' },
403
689
  expandDefaultServerVariables: { type: 'boolean' },
690
+ enumSkipQuotes: { type: 'boolean' },
691
+ expandDefaultRequest: { type: 'boolean' },
692
+ expandDefaultResponse: { type: 'boolean' },
404
693
  expandResponses: { type: 'string' },
405
694
  expandSingleSchemaField: { type: 'boolean' },
406
695
  generateCodeSamples: 'GenerateCodeSamples',
@@ -411,14 +700,25 @@ const ConfigReferenceDocs = {
411
700
  hideLoading: { type: 'boolean' },
412
701
  hideLogo: { type: 'boolean' },
413
702
  hideRequestPayloadSample: { type: 'boolean' },
703
+ hideRightPanel: { type: 'boolean' },
414
704
  hideSchemaPattern: { type: 'boolean' },
415
705
  hideSchemaTitles: { type: 'boolean' },
416
706
  hideSingleRequestSampleTab: { type: 'boolean' },
707
+ hideSecuritySection: { type: 'boolean' },
417
708
  hideTryItPanel: { type: 'boolean' },
709
+ hideFab: { type: 'boolean' },
710
+ hideOneOfDescription: { type: 'boolean' },
418
711
  htmlTemplate: { type: 'string' },
419
- jsonSampleExpandLevel: { type: 'string' },
712
+ jsonSampleExpandLevel: (value) => {
713
+ if (typeof value === 'number') {
714
+ return { type: 'number', minimum: 1 };
715
+ }
716
+ else {
717
+ return { type: 'string' };
718
+ }
719
+ },
420
720
  labels: 'ConfigLabels',
421
- layout: { type: 'string' },
721
+ layout: { enum: ['stacked', 'three-panel'] },
422
722
  maxDisplayedEnumValues: { type: 'number' },
423
723
  menuToggle: { type: 'boolean' },
424
724
  nativeScrollbars: { type: 'boolean' },
@@ -426,35 +726,82 @@ const ConfigReferenceDocs = {
426
726
  oAuth2RedirectURI: { type: 'string' },
427
727
  onDeepLinkClick: { type: 'object' },
428
728
  onlyRequiredInSamples: { type: 'boolean' },
429
- pagination: { type: 'string' },
729
+ pagination: { enum: ['none', 'section', 'item'] },
430
730
  pathInMiddlePanel: { type: 'boolean' },
431
- payloadSampleIdx: { type: 'number' },
731
+ payloadSampleIdx: { type: 'number', minimum: 0 },
432
732
  requestInterceptor: { type: 'object' },
433
733
  requiredPropsFirst: { type: 'boolean' },
434
734
  routingBasePath: { type: 'string' },
735
+ routingStrategy: { type: 'string' },
435
736
  samplesTabsMaxCount: { type: 'number' },
436
- schemaExpansionLevel: { type: 'string' },
737
+ schemaExpansionLevel: (value) => {
738
+ if (typeof value === 'number') {
739
+ return { type: 'number', minimum: 0 };
740
+ }
741
+ else {
742
+ return { type: 'string' };
743
+ }
744
+ },
437
745
  schemaDefinitionsTagName: { type: 'string' },
438
- scrollYOffset: { type: 'string' },
746
+ minCharacterLengthToInitSearch: { type: 'number', minimum: 1 },
747
+ maxResponseHeadersToShowInTryIt: { type: 'number', minimum: 0 },
748
+ scrollYOffset: (value) => {
749
+ if (typeof value === 'number') {
750
+ return { type: 'number' };
751
+ }
752
+ else {
753
+ return { type: 'string' };
754
+ }
755
+ },
439
756
  searchAutoExpand: { type: 'boolean' },
440
- searchFieldLevelBoost: { type: 'number' },
441
- searchMode: { type: 'string' },
757
+ searchFieldLevelBoost: { type: 'number', minimum: 0 },
758
+ searchMaxDepth: { type: 'number', minimum: 1 },
759
+ searchMode: { enum: ['default', 'path-only'] },
442
760
  searchOperationTitleBoost: { type: 'number' },
443
761
  searchTagTitleBoost: { type: 'number' },
762
+ sendXUserAgentInTryIt: { type: 'boolean' },
444
763
  showChangeLayoutButton: { type: 'boolean' },
445
764
  showConsole: { type: 'boolean' },
446
- showExtensions: { type: 'boolean' },
765
+ showExtensions: (value) => {
766
+ if (typeof value === 'boolean') {
767
+ return { type: 'boolean' };
768
+ }
769
+ else {
770
+ return {
771
+ type: 'array',
772
+ items: {
773
+ type: 'string',
774
+ },
775
+ };
776
+ }
777
+ },
447
778
  showNextButton: { type: 'boolean' },
448
779
  showRightPanelToggle: { type: 'boolean' },
780
+ showSecuritySchemeType: { type: 'boolean' },
781
+ showWebhookVerb: { type: 'boolean' },
782
+ showObjectSchemaExamples: { type: 'boolean' },
783
+ disableTryItRequestUrlEncoding: { type: 'boolean' },
449
784
  sidebarLinks: 'ConfigSidebarLinks',
450
- sideNavStyle: { type: 'string' },
785
+ sideNavStyle: { enum: ['summary-only', 'path-first', 'id-only'] },
451
786
  simpleOneOfTypeLabel: { type: 'boolean' },
452
787
  sortEnumValuesAlphabetically: { type: 'boolean' },
453
788
  sortOperationsAlphabetically: { type: 'boolean' },
454
789
  sortPropsAlphabetically: { type: 'boolean' },
455
790
  sortTagsAlphabetically: { type: 'boolean' },
791
+ suppressWarnings: { type: 'boolean' },
792
+ unstable_externalDescription: { type: 'boolean' },
456
793
  unstable_ignoreMimeParameters: { type: 'boolean' },
457
794
  untrustedDefinition: { type: 'boolean' },
795
+ mockServer: {
796
+ properties: {
797
+ url: { type: 'string' },
798
+ position: { enum: ['first', 'last', 'replace', 'off'] },
799
+ description: { type: 'string' },
800
+ },
801
+ },
802
+ showAccessMode: { type: 'boolean' },
803
+ preserveOriginalExtensionsName: { type: 'boolean' },
804
+ markdownHeadingsAnchorLevel: { type: 'number' },
458
805
  },
459
806
  additionalProperties: { type: 'string' },
460
807
  };
@@ -465,18 +812,22 @@ const ConfigMockServer = {
465
812
  },
466
813
  };
467
814
  exports.ConfigTypes = {
815
+ Assert,
468
816
  ConfigRoot,
469
817
  ConfigApis,
470
818
  ConfigApisProperties,
471
- RootConfigLint,
472
- ConfigLint,
819
+ RootConfigStyleguide,
820
+ ConfigStyleguide,
473
821
  ConfigReferenceDocs,
474
822
  ConfigMockServer,
475
823
  ConfigHTTP,
476
824
  ConfigLanguage,
477
825
  ConfigLabels,
478
826
  ConfigSidebarLinks,
827
+ CommonConfigSidebarLinks,
479
828
  ConfigTheme,
829
+ ConfigRootTheme,
830
+ AssertDefinition,
480
831
  ThemeColors,
481
832
  CommonThemeColors,
482
833
  BorderThemeColors,
@@ -507,9 +858,12 @@ exports.ConfigTypes = {
507
858
  TokenProps,
508
859
  CodeBlock,
509
860
  Logo,
861
+ Fab,
510
862
  ButtonOverrides,
511
863
  Overrides,
864
+ ObjectRule,
512
865
  RightPanel,
866
+ Rules,
513
867
  Shape,
514
868
  ThemeSpacing,
515
869
  GenerateCodeSamples,
@@ -520,4 +874,6 @@ exports.ConfigTypes = {
520
874
  Sidebar,
521
875
  Heading,
522
876
  Typography,
877
+ AssertionDefinitionAssertions,
878
+ AssertionDefinitionSubject,
523
879
  };
@@ -147,9 +147,10 @@ export interface Oas3Schema {
147
147
  xml?: Oas3Xml;
148
148
  'x-tags'?: string[];
149
149
  }
150
- export interface Oas3_1Schema extends Oas3Schema {
150
+ export declare type Oas3_1Schema = Oas3Schema & {
151
+ type?: string | string[];
151
152
  examples?: any[];
152
- }
153
+ };
153
154
  export interface Oas3_1Definition extends Oas3Definition {
154
155
  webhooks?: Oas3_1Webhooks;
155
156
  }