@redocly/openapi-core 1.18.1 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (411) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/__tests__/utils.ts +14 -7
  3. package/lib/benchmark/benches/lint-with-many-rules.bench.d.ts +1 -0
  4. package/lib/benchmark/benches/lint-with-many-rules.bench.js +7 -3
  5. package/lib/benchmark/benches/lint-with-nested-rule.bench.d.ts +1 -0
  6. package/lib/benchmark/benches/lint-with-nested-rule.bench.js +7 -3
  7. package/lib/benchmark/benches/lint-with-no-rules.bench.d.ts +1 -0
  8. package/lib/benchmark/benches/lint-with-no-rules.bench.js +7 -3
  9. package/lib/benchmark/benches/lint-with-top-level-rule-report.bench.d.ts +1 -0
  10. package/lib/benchmark/benches/lint-with-top-level-rule-report.bench.js +19 -15
  11. package/lib/benchmark/benches/lint-with-top-level-rule.bench.d.ts +1 -0
  12. package/lib/benchmark/benches/lint-with-top-level-rule.bench.js +18 -14
  13. package/lib/benchmark/benches/recommended-oas3.bench.js +2 -2
  14. package/lib/benchmark/benches/resolve-with-no-external.bench.js +2 -2
  15. package/lib/benchmark/utils.d.ts +3 -3
  16. package/lib/benchmark/utils.js +10 -7
  17. package/lib/bundle.d.ts +2 -2
  18. package/lib/bundle.js +127 -120
  19. package/lib/config/all.js +13 -1
  20. package/lib/config/builtIn.js +18 -17
  21. package/lib/config/config-resolvers.d.ts +1 -1
  22. package/lib/config/config-resolvers.js +241 -158
  23. package/lib/config/config.d.ts +4 -3
  24. package/lib/config/config.js +53 -34
  25. package/lib/config/load.d.ts +1 -1
  26. package/lib/config/load.js +105 -117
  27. package/lib/config/minimal.js +13 -0
  28. package/lib/config/recommended-strict.js +14 -1
  29. package/lib/config/recommended.js +14 -1
  30. package/lib/config/rules.d.ts +3 -3
  31. package/lib/config/rules.js +1 -2
  32. package/lib/config/types.d.ts +17 -4
  33. package/lib/config/utils.d.ts +3 -1
  34. package/lib/config/utils.js +78 -49
  35. package/lib/decorators/async3/index.d.ts +1 -0
  36. package/lib/decorators/async3/index.js +4 -0
  37. package/lib/decorators/common/filters/filter-helper.d.ts +1 -1
  38. package/lib/decorators/common/filters/filter-helper.js +2 -3
  39. package/lib/decorators/common/filters/filter-in.d.ts +1 -1
  40. package/lib/decorators/common/filters/filter-in.js +1 -1
  41. package/lib/decorators/common/filters/filter-out.d.ts +1 -1
  42. package/lib/decorators/common/filters/filter-out.js +1 -1
  43. package/lib/decorators/common/info-description-override.d.ts +1 -1
  44. package/lib/decorators/common/info-override.d.ts +1 -1
  45. package/lib/decorators/common/info-override.js +1 -12
  46. package/lib/decorators/common/media-type-examples-override.d.ts +1 -1
  47. package/lib/decorators/common/media-type-examples-override.js +8 -2
  48. package/lib/decorators/common/operation-description-override.d.ts +1 -1
  49. package/lib/decorators/common/registry-dependencies.d.ts +1 -1
  50. package/lib/decorators/common/remove-x-internal.d.ts +1 -1
  51. package/lib/decorators/common/remove-x-internal.js +4 -5
  52. package/lib/decorators/common/tag-description-override.d.ts +1 -1
  53. package/lib/decorators/oas2/index.d.ts +1 -1
  54. package/lib/decorators/oas2/remove-unused-components.js +1 -2
  55. package/lib/decorators/oas3/index.d.ts +1 -1
  56. package/lib/decorators/oas3/remove-unused-components.js +1 -2
  57. package/lib/env.d.ts +0 -1
  58. package/lib/env.js +1 -1
  59. package/lib/format/codeframes.d.ts +1 -1
  60. package/lib/format/codeframes.js +10 -8
  61. package/lib/format/format.d.ts +1 -1
  62. package/lib/format/format.js +24 -16
  63. package/lib/index.d.ts +2 -1
  64. package/lib/index.js +6 -4
  65. package/lib/js-yaml/index.d.ts +1 -1
  66. package/lib/js-yaml/index.js +1 -1
  67. package/lib/lint.d.ts +3 -1
  68. package/lib/lint.js +92 -99
  69. package/lib/logger.js +2 -2
  70. package/lib/oas-types.d.ts +9 -5
  71. package/lib/oas-types.js +22 -12
  72. package/lib/redocly/domains.d.ts +1 -1
  73. package/lib/redocly/domains.js +6 -6
  74. package/lib/redocly/index.d.ts +1 -1
  75. package/lib/redocly/index.js +60 -73
  76. package/lib/redocly/registry-api.js +64 -82
  77. package/lib/ref-utils.d.ts +2 -2
  78. package/lib/ref-utils.js +14 -13
  79. package/lib/resolve.d.ts +2 -2
  80. package/lib/resolve.js +186 -205
  81. package/lib/rules/ajv.d.ts +1 -1
  82. package/lib/rules/ajv.js +10 -8
  83. package/lib/rules/arazzo/index.js +2 -0
  84. package/lib/rules/async2/channels-kebab-case.d.ts +1 -1
  85. package/lib/rules/async2/index.js +2 -0
  86. package/lib/rules/async2/no-channel-trailing-slash.d.ts +1 -1
  87. package/lib/rules/async3/channels-kebab-case.d.ts +2 -0
  88. package/lib/rules/async3/channels-kebab-case.js +19 -0
  89. package/lib/rules/async3/index.d.ts +3 -0
  90. package/lib/rules/async3/index.js +24 -0
  91. package/lib/rules/async3/no-channel-trailing-slash.d.ts +2 -0
  92. package/lib/rules/async3/no-channel-trailing-slash.js +16 -0
  93. package/lib/rules/common/assertions/asserts.d.ts +2 -2
  94. package/lib/rules/common/assertions/asserts.js +5 -5
  95. package/lib/rules/common/assertions/index.d.ts +4 -4
  96. package/lib/rules/common/assertions/utils.d.ts +1 -1
  97. package/lib/rules/common/assertions/utils.js +43 -28
  98. package/lib/rules/common/info-contact.d.ts +1 -1
  99. package/lib/rules/common/info-license-strict.d.ts +2 -0
  100. package/lib/rules/common/info-license-strict.js +26 -0
  101. package/lib/rules/common/info-license-url.d.ts +1 -1
  102. package/lib/rules/common/info-license.d.ts +1 -1
  103. package/lib/rules/common/no-ambiguous-paths.d.ts +1 -1
  104. package/lib/rules/common/no-enum-type-mismatch.d.ts +1 -1
  105. package/lib/rules/common/no-http-verbs-in-paths.d.ts +1 -1
  106. package/lib/rules/common/no-identical-paths.d.ts +1 -1
  107. package/lib/rules/common/no-invalid-parameter-examples.js +1 -2
  108. package/lib/rules/common/no-invalid-schema-examples.js +1 -2
  109. package/lib/rules/common/no-path-trailing-slash.d.ts +1 -1
  110. package/lib/rules/common/no-required-schema-properties-undefined.d.ts +1 -1
  111. package/lib/rules/common/no-required-schema-properties-undefined.js +1 -2
  112. package/lib/rules/common/operation-2xx-response.d.ts +1 -1
  113. package/lib/rules/common/operation-4xx-response.d.ts +1 -1
  114. package/lib/rules/common/operation-description.d.ts +1 -1
  115. package/lib/rules/common/operation-operationId-unique.d.ts +1 -1
  116. package/lib/rules/common/operation-operationId-url-safe.d.ts +1 -1
  117. package/lib/rules/common/operation-operationId-url-safe.js +1 -0
  118. package/lib/rules/common/operation-operationId.d.ts +1 -1
  119. package/lib/rules/common/operation-parameters-unique.d.ts +1 -1
  120. package/lib/rules/common/operation-singular-tag.d.ts +1 -1
  121. package/lib/rules/common/operation-summary.d.ts +1 -1
  122. package/lib/rules/common/operation-tag-defined.d.ts +1 -1
  123. package/lib/rules/common/operation-tag-defined.js +1 -2
  124. package/lib/rules/common/parameter-description.d.ts +1 -1
  125. package/lib/rules/common/path-declaration-must-exist.d.ts +1 -1
  126. package/lib/rules/common/path-excludes-patterns.d.ts +1 -1
  127. package/lib/rules/common/path-http-verbs-order.d.ts +1 -1
  128. package/lib/rules/common/path-http-verbs-order.js +1 -1
  129. package/lib/rules/common/path-not-include-query.d.ts +1 -1
  130. package/lib/rules/common/path-params-defined.d.ts +1 -1
  131. package/lib/rules/common/path-segment-plural.d.ts +1 -1
  132. package/lib/rules/common/paths-kebab-case.d.ts +1 -1
  133. package/lib/rules/common/required-string-property-missing-min-length.d.ts +1 -1
  134. package/lib/rules/common/required-string-property-missing-min-length.js +2 -2
  135. package/lib/rules/common/response-contains-header.d.ts +1 -1
  136. package/lib/rules/common/response-contains-header.js +2 -2
  137. package/lib/rules/common/security-defined.d.ts +1 -1
  138. package/lib/rules/common/security-defined.js +3 -7
  139. package/lib/rules/common/spec-strict-refs.d.ts +1 -1
  140. package/lib/rules/common/spec.d.ts +2 -2
  141. package/lib/rules/common/spec.js +6 -7
  142. package/lib/rules/common/tag-description.d.ts +1 -1
  143. package/lib/rules/common/tags-alphabetical.d.ts +1 -1
  144. package/lib/rules/no-unresolved-refs.d.ts +3 -3
  145. package/lib/rules/no-unresolved-refs.js +3 -4
  146. package/lib/rules/oas2/boolean-parameter-prefixes.d.ts +1 -1
  147. package/lib/rules/oas2/index.d.ts +1 -1
  148. package/lib/rules/oas2/index.js +2 -0
  149. package/lib/rules/oas2/response-contains-property.d.ts +1 -1
  150. package/lib/rules/oas2/response-contains-property.js +1 -2
  151. package/lib/rules/oas3/array-parameter-serialization.d.ts +1 -1
  152. package/lib/rules/oas3/array-parameter-serialization.js +1 -2
  153. package/lib/rules/oas3/boolean-parameter-prefixes.d.ts +1 -1
  154. package/lib/rules/oas3/component-name-unique.d.ts +1 -1
  155. package/lib/rules/oas3/component-name-unique.js +2 -4
  156. package/lib/rules/oas3/index.d.ts +1 -1
  157. package/lib/rules/oas3/index.js +2 -0
  158. package/lib/rules/oas3/no-empty-servers.d.ts +1 -1
  159. package/lib/rules/oas3/no-example-value-and-externalValue.d.ts +1 -1
  160. package/lib/rules/oas3/no-invalid-media-type-examples.d.ts +1 -1
  161. package/lib/rules/oas3/no-invalid-media-type-examples.js +1 -2
  162. package/lib/rules/oas3/no-server-example.com.d.ts +1 -1
  163. package/lib/rules/oas3/no-server-example.com.js +1 -0
  164. package/lib/rules/oas3/no-server-trailing-slash.d.ts +1 -1
  165. package/lib/rules/oas3/no-server-variables-empty-enum.d.ts +1 -1
  166. package/lib/rules/oas3/no-server-variables-empty-enum.js +1 -2
  167. package/lib/rules/oas3/no-undefined-server-variable.d.ts +1 -1
  168. package/lib/rules/oas3/no-undefined-server-variable.js +2 -3
  169. package/lib/rules/oas3/no-unused-components.d.ts +1 -1
  170. package/lib/rules/oas3/no-unused-components.js +1 -2
  171. package/lib/rules/oas3/response-contains-property.d.ts +1 -1
  172. package/lib/rules/oas3/response-contains-property.js +1 -2
  173. package/lib/rules/oas3/spec-components-invalid-map-name.d.ts +1 -1
  174. package/lib/rules/other/stats.d.ts +3 -3
  175. package/lib/rules/other/stats.js +5 -3
  176. package/lib/rules/spot/parameters-no-body-inside-in.d.ts +2 -0
  177. package/lib/rules/spot/parameters-no-body-inside-in.js +18 -0
  178. package/lib/rules/utils.d.ts +4 -2
  179. package/lib/rules/utils.js +41 -13
  180. package/lib/types/arazzo.d.ts +1 -2275
  181. package/lib/types/arazzo.js +246 -309
  182. package/lib/types/asyncapi2.d.ts +17 -0
  183. package/lib/types/{asyncapi.js → asyncapi2.js} +59 -53
  184. package/lib/types/asyncapi3.d.ts +2 -0
  185. package/lib/types/asyncapi3.js +347 -0
  186. package/lib/types/index.js +19 -10
  187. package/lib/types/json-schema-adapter.d.ts +1 -1
  188. package/lib/types/json-schema-adapter.js +4 -18
  189. package/lib/types/oas2.js +6 -6
  190. package/lib/types/oas3.d.ts +4 -0
  191. package/lib/types/oas3.js +19 -19
  192. package/lib/types/oas3_1.d.ts +3 -0
  193. package/lib/types/oas3_1.js +20 -14
  194. package/lib/types/redocly-yaml.d.ts +8 -6
  195. package/lib/types/redocly-yaml.js +135 -36
  196. package/lib/typings/arazzo.d.ts +145 -27
  197. package/lib/typings/asyncapi3.d.ts +53 -0
  198. package/lib/typings/asyncapi3.js +2 -0
  199. package/lib/typings/common.d.ts +1 -1
  200. package/lib/typings/swagger.d.ts +2 -2
  201. package/lib/utils.d.ts +4 -3
  202. package/lib/utils.js +55 -72
  203. package/lib/visitors.d.ts +29 -1
  204. package/lib/visitors.js +21 -8
  205. package/lib/walk.d.ts +3 -3
  206. package/lib/walk.js +30 -23
  207. package/package.json +3 -3
  208. package/src/__tests__/bundle.test.ts +144 -2
  209. package/src/__tests__/lint.test.ts +29 -21
  210. package/src/__tests__/walk.test.ts +25 -25
  211. package/src/benchmark/benches/lint-with-many-rules.bench.ts +7 -1
  212. package/src/benchmark/benches/lint-with-nested-rule.bench.ts +7 -1
  213. package/src/benchmark/benches/lint-with-no-rules.bench.ts +8 -1
  214. package/src/benchmark/benches/lint-with-top-level-rule-report.bench.ts +18 -13
  215. package/src/benchmark/benches/lint-with-top-level-rule.bench.ts +17 -11
  216. package/src/benchmark/fork.js +4 -0
  217. package/src/benchmark/utils.ts +6 -5
  218. package/src/bundle.ts +19 -4
  219. package/src/config/__tests__/__snapshots__/config-resolvers.test.ts.snap +32 -2
  220. package/src/config/__tests__/__snapshots__/config.test.ts.snap +24 -0
  221. package/src/config/__tests__/config-resolvers.test.ts +82 -0
  222. package/src/config/__tests__/config.test.ts +11 -0
  223. package/src/config/__tests__/fixtures/resolve-config/local-config-with-commonjs-export-function.yaml +2 -0
  224. package/src/config/__tests__/fixtures/resolve-config/local-config-with-esm.yaml +2 -0
  225. package/src/config/__tests__/fixtures/resolve-config/plugin-esm.mjs +10 -0
  226. package/src/config/__tests__/fixtures/resolve-config/plugin-with-export-function.cjs +10 -0
  227. package/src/config/__tests__/resolve-plugins.test.ts +4 -1
  228. package/src/config/all.ts +13 -1
  229. package/src/config/builtIn.ts +9 -8
  230. package/src/config/config-resolvers.ts +92 -21
  231. package/src/config/config.ts +31 -13
  232. package/src/config/load.ts +2 -2
  233. package/src/config/minimal.ts +13 -0
  234. package/src/config/recommended-strict.ts +14 -1
  235. package/src/config/recommended.ts +14 -1
  236. package/src/config/rules.ts +12 -4
  237. package/src/config/types.ts +34 -5
  238. package/src/config/utils.ts +28 -2
  239. package/src/decorators/__tests__/filter-in.test.ts +29 -26
  240. package/src/decorators/__tests__/filter-out.test.ts +32 -23
  241. package/src/decorators/__tests__/media-type-examples-override.test.ts +45 -45
  242. package/src/decorators/__tests__/remove-x-internal.test.ts +8 -5
  243. package/src/decorators/async3/index.ts +1 -0
  244. package/src/decorators/common/filters/filter-helper.ts +2 -1
  245. package/src/decorators/common/filters/filter-in.ts +2 -1
  246. package/src/decorators/common/filters/filter-out.ts +2 -1
  247. package/src/decorators/common/info-description-override.ts +3 -2
  248. package/src/decorators/common/info-override.ts +1 -1
  249. package/src/decorators/common/media-type-examples-override.ts +4 -3
  250. package/src/decorators/common/operation-description-override.ts +5 -4
  251. package/src/decorators/common/registry-dependencies.ts +2 -2
  252. package/src/decorators/common/remove-x-internal.ts +5 -4
  253. package/src/decorators/common/tag-description-override.ts +3 -2
  254. package/src/decorators/oas2/__tests__/remove-unused-components.test.ts +3 -3
  255. package/src/decorators/oas2/index.ts +2 -1
  256. package/src/decorators/oas2/remove-unused-components.ts +1 -1
  257. package/src/decorators/oas3/__tests__/remove-unused-components.test.ts +4 -4
  258. package/src/decorators/oas3/index.ts +2 -1
  259. package/src/decorators/oas3/remove-unused-components.ts +1 -1
  260. package/src/format/codeframes.ts +2 -1
  261. package/src/format/format.ts +9 -4
  262. package/src/index.ts +2 -1
  263. package/src/js-yaml/index.ts +3 -1
  264. package/src/lint.ts +28 -4
  265. package/src/logger.ts +2 -2
  266. package/src/oas-types.ts +41 -22
  267. package/src/redocly/domains.ts +1 -1
  268. package/src/redocly/index.ts +3 -3
  269. package/src/redocly/registry-api.ts +5 -3
  270. package/src/ref-utils.ts +4 -2
  271. package/src/resolve.ts +6 -4
  272. package/src/rules/__tests__/no-unresolved-refs.test.ts +21 -7
  273. package/src/rules/ajv.ts +2 -1
  274. package/src/rules/arazzo/__tests__/parameters-no-body-inside-in.test.ts +76 -0
  275. package/src/rules/arazzo/index.ts +6 -3
  276. package/src/rules/async2/__tests__/channels-kebab-case.test.ts +9 -5
  277. package/src/rules/async2/__tests__/no-channel-trailing-slash.test.ts +3 -3
  278. package/src/rules/async2/channels-kebab-case.ts +2 -2
  279. package/src/rules/async2/index.ts +9 -6
  280. package/src/rules/async2/no-channel-trailing-slash.ts +2 -2
  281. package/src/rules/async3/__tests__/channels-kebab-case.test.ts +145 -0
  282. package/src/rules/async3/__tests__/no-channel-trailing-slash.test.ts +96 -0
  283. package/src/rules/async3/channels-kebab-case.ts +19 -0
  284. package/src/rules/async3/index.ts +26 -0
  285. package/src/rules/async3/no-channel-trailing-slash.ts +16 -0
  286. package/src/rules/common/__tests__/info-license-strict.test.ts +141 -0
  287. package/src/rules/common/__tests__/info-license.test.ts +2 -2
  288. package/src/rules/common/__tests__/license-url.test.ts +2 -2
  289. package/src/rules/common/__tests__/no-ambiguous-paths.test.ts +1 -1
  290. package/src/rules/common/__tests__/no-enum-type-mismatch.test.ts +5 -5
  291. package/src/rules/common/__tests__/no-identical-paths.test.ts +1 -1
  292. package/src/rules/common/__tests__/no-invalid-parameter-examples.test.ts +1 -1
  293. package/src/rules/common/__tests__/no-invalid-schema-examples.test.ts +1 -1
  294. package/src/rules/common/__tests__/no-path-trailing-slash.test.ts +4 -4
  295. package/src/rules/common/__tests__/no-required-schema-properties-undefined.test.ts +11 -11
  296. package/src/rules/common/__tests__/operation-2xx-response.test.ts +8 -6
  297. package/src/rules/common/__tests__/operation-4xx-response.test.ts +9 -7
  298. package/src/rules/common/__tests__/operation-operationId-unique.test.ts +2 -2
  299. package/src/rules/common/__tests__/operation-operationId-url-safe.test.ts +1 -1
  300. package/src/rules/common/__tests__/operation-parameters-unique.test.ts +4 -4
  301. package/src/rules/common/__tests__/operation-singular-tag.test.ts +2 -2
  302. package/src/rules/common/__tests__/path-http-verbs-order.test.ts +2 -2
  303. package/src/rules/common/__tests__/path-not-include-query.test.ts +2 -2
  304. package/src/rules/common/__tests__/path-params-defined.test.ts +5 -5
  305. package/src/rules/common/__tests__/paths-kebab-case.test.ts +6 -4
  306. package/src/rules/common/__tests__/scalar-property-missing-example.test.ts +8 -8
  307. package/src/rules/common/__tests__/security-defined.test.ts +14 -8
  308. package/src/rules/common/__tests__/spec-strict-refs.test.ts +1 -1
  309. package/src/rules/common/__tests__/spec.test.ts +10 -10
  310. package/src/rules/common/__tests__/tag-description.test.ts +2 -2
  311. package/src/rules/common/__tests__/tags-alphabetical.test.ts +6 -4
  312. package/src/rules/common/assertions/asserts.ts +5 -9
  313. package/src/rules/common/assertions/index.ts +12 -4
  314. package/src/rules/common/assertions/utils.ts +4 -2
  315. package/src/rules/common/info-contact.ts +2 -1
  316. package/src/rules/common/info-license-strict.ts +24 -0
  317. package/src/rules/common/info-license-url.ts +2 -1
  318. package/src/rules/common/info-license.ts +2 -1
  319. package/src/rules/common/no-ambiguous-paths.ts +4 -4
  320. package/src/rules/common/no-enum-type-mismatch.ts +5 -4
  321. package/src/rules/common/no-http-verbs-in-paths.ts +5 -4
  322. package/src/rules/common/no-identical-paths.ts +4 -4
  323. package/src/rules/common/no-invalid-parameter-examples.ts +3 -2
  324. package/src/rules/common/no-path-trailing-slash.ts +2 -2
  325. package/src/rules/common/no-required-schema-properties-undefined.ts +5 -4
  326. package/src/rules/common/operation-2xx-response.ts +3 -2
  327. package/src/rules/common/operation-4xx-response.ts +3 -2
  328. package/src/rules/common/operation-description.ts +5 -4
  329. package/src/rules/common/operation-operationId-unique.ts +4 -4
  330. package/src/rules/common/operation-operationId-url-safe.ts +5 -4
  331. package/src/rules/common/operation-operationId.ts +5 -4
  332. package/src/rules/common/operation-parameters-unique.ts +4 -4
  333. package/src/rules/common/operation-singular-tag.ts +4 -4
  334. package/src/rules/common/operation-summary.ts +5 -4
  335. package/src/rules/common/operation-tag-defined.ts +4 -4
  336. package/src/rules/common/parameter-description.ts +4 -4
  337. package/src/rules/common/path-declaration-must-exist.ts +2 -2
  338. package/src/rules/common/path-excludes-patterns.ts +4 -4
  339. package/src/rules/common/path-http-verbs-order.ts +4 -4
  340. package/src/rules/common/path-not-include-query.ts +2 -2
  341. package/src/rules/common/path-params-defined.ts +4 -4
  342. package/src/rules/common/path-segment-plural.ts +3 -2
  343. package/src/rules/common/paths-kebab-case.ts +2 -2
  344. package/src/rules/common/required-string-property-missing-min-length.ts +4 -4
  345. package/src/rules/common/response-contains-header.ts +5 -4
  346. package/src/rules/common/scalar-property-missing-example.ts +2 -1
  347. package/src/rules/common/security-defined.ts +5 -5
  348. package/src/rules/common/spec-strict-refs.ts +2 -1
  349. package/src/rules/common/spec.ts +4 -3
  350. package/src/rules/common/tag-description.ts +2 -1
  351. package/src/rules/common/tags-alphabetical.ts +4 -4
  352. package/src/rules/no-unresolved-refs.ts +4 -3
  353. package/src/rules/oas2/__tests__/boolean-parameter-prefixes.test.ts +7 -5
  354. package/src/rules/oas2/__tests__/response-contains-header.test.ts +14 -8
  355. package/src/rules/oas2/__tests__/response-contains-property.test.ts +14 -8
  356. package/src/rules/oas2/__tests__/spec/referenceableScalars.test.ts +3 -1
  357. package/src/rules/oas2/boolean-parameter-prefixes.ts +1 -1
  358. package/src/rules/oas2/index.ts +8 -6
  359. package/src/rules/oas2/request-mime-type.ts +2 -1
  360. package/src/rules/oas2/response-contains-property.ts +3 -2
  361. package/src/rules/oas2/response-mime-type.ts +2 -1
  362. package/src/rules/oas3/__tests__/array-parameter-serialization.test.ts +18 -6
  363. package/src/rules/oas3/__tests__/boolean-parameter-prefixes.test.ts +7 -5
  364. package/src/rules/oas3/__tests__/no-empty-enum-servers.com.test.ts +6 -6
  365. package/src/rules/oas3/__tests__/no-example-value-and-externalValue.test.ts +2 -2
  366. package/src/rules/oas3/__tests__/no-invalid-media-type-examples.test.ts +34 -24
  367. package/src/rules/oas3/__tests__/no-server-example.com.test.ts +3 -3
  368. package/src/rules/oas3/__tests__/no-server-trailing-slash.test.ts +3 -3
  369. package/src/rules/oas3/__tests__/no-unused-components.test.ts +1 -1
  370. package/src/rules/oas3/__tests__/operation-4xx-problem-details-rfc7807.test.ts +3 -3
  371. package/src/rules/oas3/__tests__/response-contains-header.test.ts +34 -22
  372. package/src/rules/oas3/__tests__/response-contains-property.test.ts +34 -20
  373. package/src/rules/oas3/__tests__/spec/spec.test.ts +12 -3
  374. package/src/rules/oas3/__tests__/spec-components-invalid-map-name.test.ts +9 -3
  375. package/src/rules/oas3/__tests__/utils/lint-document-for-test.ts +1 -1
  376. package/src/rules/oas3/array-parameter-serialization.ts +3 -2
  377. package/src/rules/oas3/boolean-parameter-prefixes.ts +1 -1
  378. package/src/rules/oas3/component-name-unique.ts +3 -3
  379. package/src/rules/oas3/index.ts +42 -38
  380. package/src/rules/oas3/no-empty-servers.ts +1 -1
  381. package/src/rules/oas3/no-example-value-and-externalValue.ts +1 -1
  382. package/src/rules/oas3/no-invalid-media-type-examples.ts +6 -4
  383. package/src/rules/oas3/no-server-example.com.ts +2 -1
  384. package/src/rules/oas3/no-server-trailing-slash.ts +1 -1
  385. package/src/rules/oas3/no-server-variables-empty-enum.ts +2 -2
  386. package/src/rules/oas3/no-undefined-server-variable.ts +1 -1
  387. package/src/rules/oas3/no-unused-components.ts +2 -2
  388. package/src/rules/oas3/operation-4xx-problem-details-rfc7807.ts +2 -1
  389. package/src/rules/oas3/request-mime-type.ts +2 -1
  390. package/src/rules/oas3/response-contains-property.ts +3 -2
  391. package/src/rules/oas3/response-mime-type.ts +2 -1
  392. package/src/rules/oas3/spec-components-invalid-map-name.ts +3 -3
  393. package/src/rules/other/stats.ts +8 -6
  394. package/src/rules/spot/parameters-no-body-inside-in.ts +17 -0
  395. package/src/rules/utils.ts +41 -4
  396. package/src/types/arazzo.ts +257 -334
  397. package/src/types/{asyncapi.ts → asyncapi2.ts} +41 -35
  398. package/src/types/asyncapi3.ts +383 -0
  399. package/src/types/json-schema-adapter.ts +2 -2
  400. package/src/types/oas3.ts +4 -4
  401. package/src/types/oas3_1.ts +5 -4
  402. package/src/types/redocly-yaml.ts +21 -4
  403. package/src/typings/arazzo.ts +169 -41
  404. package/src/typings/asyncapi3.ts +61 -0
  405. package/src/typings/common.ts +1 -0
  406. package/src/typings/swagger.ts +2 -2
  407. package/src/utils.ts +5 -3
  408. package/src/visitors.ts +58 -1
  409. package/src/walk.ts +3 -3
  410. package/tsconfig.tsbuildinfo +1 -1
  411. package/lib/types/asyncapi.d.ts +0 -2
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isNamedType = exports.normalizeTypes = exports.SpecExtension = exports.mapOf = exports.listOf = void 0;
3
+ exports.SpecExtension = void 0;
4
+ exports.listOf = listOf;
5
+ exports.mapOf = mapOf;
6
+ exports.normalizeTypes = normalizeTypes;
7
+ exports.isNamedType = isNamedType;
4
8
  function listOf(typeName) {
5
9
  return {
6
10
  name: `${typeName}List`,
@@ -8,7 +12,6 @@ function listOf(typeName) {
8
12
  items: typeName,
9
13
  };
10
14
  }
11
- exports.listOf = listOf;
12
15
  function mapOf(typeName) {
13
16
  return {
14
17
  name: `${typeName}Map`,
@@ -16,7 +19,6 @@ function mapOf(typeName) {
16
19
  additionalProperties: () => typeName,
17
20
  };
18
21
  }
19
- exports.mapOf = mapOf;
20
22
  exports.SpecExtension = {
21
23
  name: 'SpecExtension',
22
24
  properties: {},
@@ -26,7 +28,10 @@ exports.SpecExtension = {
26
28
  function normalizeTypes(types, options = {}) {
27
29
  const normalizedTypes = {};
28
30
  for (const typeName of Object.keys(types)) {
29
- normalizedTypes[typeName] = Object.assign(Object.assign({}, types[typeName]), { name: typeName });
31
+ normalizedTypes[typeName] = {
32
+ ...types[typeName],
33
+ name: typeName,
34
+ };
30
35
  }
31
36
  for (const type of Object.values(normalizedTypes)) {
32
37
  normalizeType(type);
@@ -46,7 +51,10 @@ function normalizeTypes(types, options = {}) {
46
51
  for (const [propName, prop] of Object.entries(type.properties)) {
47
52
  mappedProps[propName] = resolveType(prop);
48
53
  if (options.doNotResolveExamples && prop && prop.isExample) {
49
- mappedProps[propName] = Object.assign(Object.assign({}, prop), { resolvable: false });
54
+ mappedProps[propName] = {
55
+ ...prop,
56
+ resolvable: false,
57
+ };
50
58
  }
51
59
  }
52
60
  type.properties = mappedProps;
@@ -66,20 +74,21 @@ function normalizeTypes(types, options = {}) {
66
74
  };
67
75
  }
68
76
  else if (type && type.name) {
69
- type = Object.assign({}, type);
77
+ type = { ...type };
70
78
  normalizeType(type);
71
79
  return type;
72
80
  }
73
81
  else if (type && type.directResolveAs) {
74
- return Object.assign(Object.assign({}, type), { directResolveAs: resolveType(type.directResolveAs) });
82
+ return {
83
+ ...type,
84
+ directResolveAs: resolveType(type.directResolveAs),
85
+ };
75
86
  }
76
87
  else {
77
88
  return type;
78
89
  }
79
90
  }
80
91
  }
81
- exports.normalizeTypes = normalizeTypes;
82
92
  function isNamedType(t) {
83
- return typeof (t === null || t === void 0 ? void 0 : t.name) === 'string';
93
+ return typeof t?.name === 'string';
84
94
  }
85
- exports.isNamedType = isNamedType;
@@ -1,3 +1,3 @@
1
- import type { NodeType } from '.';
2
1
  import type { JSONSchema } from 'json-schema-to-ts';
2
+ import type { NodeType } from '.';
3
3
  export declare function getNodeTypesFromJSONSchema(schemaName: string, entrySchema: JSONSchema): Record<string, NodeType>;
@@ -1,18 +1,7 @@
1
1
  "use strict";
2
2
  // For internal usage only
3
- var __rest = (this && this.__rest) || function (s, e) {
4
- var t = {};
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
6
- t[p] = s[p];
7
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
8
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
10
- t[p[i]] = s[p[i]];
11
- }
12
- return t;
13
- };
14
3
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.getNodeTypesFromJSONSchema = void 0;
4
+ exports.getNodeTypesFromJSONSchema = getNodeTypesFromJSONSchema;
16
5
  const _2020_1 = require("@redocly/ajv/dist/2020");
17
6
  const utils_1 = require("../utils");
18
7
  const ajv = new _2020_1.default({
@@ -37,7 +26,6 @@ function findOneOf(schemaOneOf, oneOfs) {
37
26
  };
38
27
  }
39
28
  function transformJSONSchemaToNodeType(propertyName, schema, ctx) {
40
- var _a;
41
29
  if (!schema || typeof schema === 'boolean') {
42
30
  throw new Error(`Unexpected schema in ${propertyName}.`);
43
31
  }
@@ -54,7 +42,7 @@ function transformJSONSchemaToNodeType(propertyName, schema, ctx) {
54
42
  schema.type === 'number' ||
55
43
  schema.type === 'integer' ||
56
44
  schema.type === 'boolean') {
57
- const { default: _, format: _format } = schema, rest = __rest(schema, ["default", "format"]);
45
+ const { default: _, format: _format, ...rest } = schema;
58
46
  return rest;
59
47
  }
60
48
  if (schema.type === 'object' && !schema.properties && !schema.oneOf) {
@@ -82,16 +70,15 @@ function transformJSONSchemaToNodeType(propertyName, schema, ctx) {
82
70
  }
83
71
  if (schema.oneOf) {
84
72
  if (schema.discriminator) {
85
- const discriminatedPropertyName = (_a = schema.discriminator) === null || _a === void 0 ? void 0 : _a.propertyName;
73
+ const discriminatedPropertyName = schema.discriminator?.propertyName;
86
74
  if (!discriminatedPropertyName) {
87
75
  throw new Error(`Unexpected discriminator without a propertyName in ${propertyName}.`);
88
76
  }
89
77
  const oneOfs = schema.oneOf.map((option, i) => {
90
- var _a;
91
78
  if (typeof option === 'boolean') {
92
79
  throw new Error(`Unexpected boolean schema in ${propertyName} at position ${i} in oneOf.`);
93
80
  }
94
- const discriminatedProperty = (_a = option === null || option === void 0 ? void 0 : option.properties) === null || _a === void 0 ? void 0 : _a[discriminatedPropertyName];
81
+ const discriminatedProperty = option?.properties?.[discriminatedPropertyName];
95
82
  if (!discriminatedProperty || typeof discriminatedProperty === 'boolean') {
96
83
  throw new Error(`Unexpected property '${discriminatedProperty}' schema in ${propertyName} at position ${i} in oneOf.`);
97
84
  }
@@ -170,4 +157,3 @@ function getNodeTypesFromJSONSchema(schemaName, entrySchema) {
170
157
  transformJSONSchemaToNodeType(schemaName, entrySchema, ctx);
171
158
  return ctx;
172
159
  }
173
- exports.getNodeTypesFromJSONSchema = getNodeTypesFromJSONSchema;
package/lib/types/oas2.js CHANGED
@@ -71,7 +71,7 @@ const Paths = {
71
71
  };
72
72
  const PathItem = {
73
73
  properties: {
74
- $ref: { type: 'string' },
74
+ $ref: { type: 'string' }, // TODO: verify special $ref handling for Path Item
75
75
  parameters: 'ParameterList',
76
76
  get: 'Operation',
77
77
  put: 'Operation',
@@ -98,7 +98,7 @@ const Operation = {
98
98
  deprecated: { type: 'boolean' },
99
99
  security: 'SecurityRequirementList',
100
100
  'x-codeSamples': 'XCodeSampleList',
101
- 'x-code-samples': 'XCodeSampleList',
101
+ 'x-code-samples': 'XCodeSampleList', // deprecated
102
102
  'x-hideTryItPanel': { type: 'boolean' },
103
103
  },
104
104
  required: ['responses'],
@@ -359,11 +359,11 @@ const SecurityScheme = {
359
359
  'x-defaultClientId': { type: 'string' },
360
360
  },
361
361
  required(value) {
362
- switch (value === null || value === void 0 ? void 0 : value.type) {
362
+ switch (value?.type) {
363
363
  case 'apiKey':
364
364
  return ['type', 'name', 'in'];
365
365
  case 'oauth2':
366
- switch (value === null || value === void 0 ? void 0 : value.flow) {
366
+ switch (value?.flow) {
367
367
  case 'implicit':
368
368
  return ['type', 'flow', 'authorizationUrl', 'scopes'];
369
369
  case 'accessCode':
@@ -379,13 +379,13 @@ const SecurityScheme = {
379
379
  }
380
380
  },
381
381
  allowed(value) {
382
- switch (value === null || value === void 0 ? void 0 : value.type) {
382
+ switch (value?.type) {
383
383
  case 'basic':
384
384
  return ['type', 'description'];
385
385
  case 'apiKey':
386
386
  return ['type', 'name', 'in', 'description'];
387
387
  case 'oauth2':
388
- switch (value === null || value === void 0 ? void 0 : value.flow) {
388
+ switch (value?.flow) {
389
389
  case 'implicit':
390
390
  return ['type', 'flow', 'authorizationUrl', 'description', 'scopes'];
391
391
  case 'accessCode':
@@ -1,3 +1,7 @@
1
1
  import type { NodeType } from '.';
2
2
  import type { Oas3NodeType } from './redocly-yaml';
3
+ export declare const ExternalDocs: NodeType;
4
+ export declare const Xml: NodeType;
5
+ export declare const DiscriminatorMapping: NodeType;
6
+ export declare const Discriminator: NodeType;
3
7
  export declare const Oas3Types: Record<Oas3NodeType, NodeType>;
package/lib/types/oas3.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Oas3Types = void 0;
3
+ exports.Oas3Types = exports.Discriminator = exports.DiscriminatorMapping = exports.Xml = exports.ExternalDocs = void 0;
4
4
  const _1 = require(".");
5
5
  const ref_utils_1 = require("../ref-utils");
6
6
  const responseCodeRegexp = /^[0-9][0-9Xx]{2}$/;
@@ -39,7 +39,7 @@ const TagGroup = {
39
39
  },
40
40
  extensionsPrefix: 'x-',
41
41
  };
42
- const ExternalDocs = {
42
+ exports.ExternalDocs = {
43
43
  properties: {
44
44
  description: { type: 'string' },
45
45
  url: { type: 'string' },
@@ -119,7 +119,7 @@ const WebhooksMap = {
119
119
  };
120
120
  const PathItem = {
121
121
  properties: {
122
- $ref: { type: 'string' },
122
+ $ref: { type: 'string' }, // TODO: verify special $ref handling for Path Item
123
123
  servers: 'ServerList',
124
124
  parameters: 'ParameterList',
125
125
  summary: { type: 'string' },
@@ -175,7 +175,7 @@ const Operation = {
175
175
  deprecated: { type: 'boolean' },
176
176
  callbacks: 'CallbacksMap',
177
177
  'x-codeSamples': 'XCodeSampleList',
178
- 'x-code-samples': 'XCodeSampleList',
178
+ 'x-code-samples': 'XCodeSampleList', // deprecated
179
179
  'x-hideTryItPanel': { type: 'boolean' },
180
180
  },
181
181
  required: ['responses'],
@@ -273,8 +273,8 @@ const Link = {
273
273
  properties: {
274
274
  operationRef: { type: 'string' },
275
275
  operationId: { type: 'string' },
276
- parameters: null,
277
- requestBody: null,
276
+ parameters: null, // TODO: figure out how to describe/validate this
277
+ requestBody: null, // TODO: figure out how to describe/validate this
278
278
  description: { type: 'string' },
279
279
  server: 'Server',
280
280
  },
@@ -339,7 +339,7 @@ const Schema = {
339
339
  },
340
340
  extensionsPrefix: 'x-',
341
341
  };
342
- const Xml = {
342
+ exports.Xml = {
343
343
  properties: {
344
344
  name: { type: 'string' },
345
345
  namespace: { type: 'string' },
@@ -353,7 +353,7 @@ const SchemaProperties = {
353
353
  properties: {},
354
354
  additionalProperties: 'Schema',
355
355
  };
356
- const DiscriminatorMapping = {
356
+ exports.DiscriminatorMapping = {
357
357
  properties: {},
358
358
  additionalProperties: (value) => {
359
359
  if ((0, ref_utils_1.isMappingRef)(value)) {
@@ -364,7 +364,7 @@ const DiscriminatorMapping = {
364
364
  }
365
365
  },
366
366
  };
367
- const Discriminator = {
367
+ exports.Discriminator = {
368
368
  properties: {
369
369
  propertyName: { type: 'string' },
370
370
  mapping: 'DiscriminatorMapping',
@@ -389,7 +389,7 @@ const Components = {
389
389
  const ImplicitFlow = {
390
390
  properties: {
391
391
  refreshUrl: { type: 'string' },
392
- scopes: { type: 'object', additionalProperties: { type: 'string' } },
392
+ scopes: { type: 'object', additionalProperties: { type: 'string' } }, // TODO: validate scopes
393
393
  authorizationUrl: { type: 'string' },
394
394
  },
395
395
  required: ['authorizationUrl', 'scopes'],
@@ -398,7 +398,7 @@ const ImplicitFlow = {
398
398
  const PasswordFlow = {
399
399
  properties: {
400
400
  refreshUrl: { type: 'string' },
401
- scopes: { type: 'object', additionalProperties: { type: 'string' } },
401
+ scopes: { type: 'object', additionalProperties: { type: 'string' } }, // TODO: validate scopes
402
402
  tokenUrl: { type: 'string' },
403
403
  },
404
404
  required: ['tokenUrl', 'scopes'],
@@ -407,7 +407,7 @@ const PasswordFlow = {
407
407
  const ClientCredentials = {
408
408
  properties: {
409
409
  refreshUrl: { type: 'string' },
410
- scopes: { type: 'object', additionalProperties: { type: 'string' } },
410
+ scopes: { type: 'object', additionalProperties: { type: 'string' } }, // TODO: validate scopes
411
411
  tokenUrl: { type: 'string' },
412
412
  },
413
413
  required: ['tokenUrl', 'scopes'],
@@ -417,7 +417,7 @@ const AuthorizationCode = {
417
417
  properties: {
418
418
  refreshUrl: { type: 'string' },
419
419
  authorizationUrl: { type: 'string' },
420
- scopes: { type: 'object', additionalProperties: { type: 'string' } },
420
+ scopes: { type: 'object', additionalProperties: { type: 'string' } }, // TODO: validate scopes
421
421
  tokenUrl: { type: 'string' },
422
422
  'x-usePkce': (value) => {
423
423
  if (typeof value === 'boolean') {
@@ -453,7 +453,7 @@ const SecurityScheme = {
453
453
  'x-defaultClientId': { type: 'string' },
454
454
  },
455
455
  required(value) {
456
- switch (value === null || value === void 0 ? void 0 : value.type) {
456
+ switch (value?.type) {
457
457
  case 'apiKey':
458
458
  return ['type', 'name', 'in'];
459
459
  case 'http':
@@ -467,7 +467,7 @@ const SecurityScheme = {
467
467
  }
468
468
  },
469
469
  allowed(value) {
470
- switch (value === null || value === void 0 ? void 0 : value.type) {
470
+ switch (value?.type) {
471
471
  case 'apiKey':
472
472
  return ['type', 'name', 'in', 'description'];
473
473
  case 'http':
@@ -494,7 +494,7 @@ exports.Oas3Types = {
494
494
  TagList: (0, _1.listOf)('Tag'),
495
495
  TagGroups: (0, _1.listOf)('TagGroup'),
496
496
  TagGroup,
497
- ExternalDocs,
497
+ ExternalDocs: exports.ExternalDocs,
498
498
  Server,
499
499
  ServerList: (0, _1.listOf)('Server'),
500
500
  ServerVariable,
@@ -526,10 +526,10 @@ exports.Oas3Types = {
526
526
  Link,
527
527
  Logo,
528
528
  Schema,
529
- Xml,
529
+ Xml: exports.Xml,
530
530
  SchemaProperties,
531
- DiscriminatorMapping,
532
- Discriminator,
531
+ DiscriminatorMapping: exports.DiscriminatorMapping,
532
+ Discriminator: exports.Discriminator,
533
533
  Components,
534
534
  LinksMap: (0, _1.mapOf)('Link'),
535
535
  NamedSchemas: (0, _1.mapOf)('Schema'),
@@ -1,3 +1,6 @@
1
1
  import type { NodeType } from '.';
2
2
  import type { Oas3_1NodeType } from './redocly-yaml';
3
+ export declare const Schema: NodeType;
4
+ export declare const SchemaProperties: NodeType;
5
+ export declare const DependentRequired: NodeType;
3
6
  export declare const Oas3_1Types: Record<Oas3_1NodeType, NodeType>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Oas3_1Types = void 0;
3
+ exports.Oas3_1Types = exports.DependentRequired = exports.SchemaProperties = exports.Schema = void 0;
4
4
  const _1 = require(".");
5
5
  const oas3_1 = require("./oas3");
6
6
  const Root = {
@@ -76,12 +76,12 @@ const Operation = {
76
76
  deprecated: { type: 'boolean' },
77
77
  callbacks: 'CallbacksMap',
78
78
  'x-codeSamples': 'XCodeSampleList',
79
- 'x-code-samples': 'XCodeSampleList',
79
+ 'x-code-samples': 'XCodeSampleList', // deprecated
80
80
  'x-hideTryItPanel': { type: 'boolean' },
81
81
  },
82
82
  extensionsPrefix: 'x-',
83
83
  };
84
- const Schema = {
84
+ exports.Schema = {
85
85
  properties: {
86
86
  $id: { type: 'string' },
87
87
  $anchor: { type: 'string' },
@@ -134,7 +134,7 @@ const Schema = {
134
134
  contains: 'Schema',
135
135
  minContains: { type: 'integer', minimum: 0 },
136
136
  maxContains: { type: 'integer', minimum: 0 },
137
- patternProperties: 'SchemaProperties',
137
+ patternProperties: 'PatternProperties',
138
138
  propertyNames: 'Schema',
139
139
  unevaluatedItems: (value) => {
140
140
  if (typeof value === 'boolean') {
@@ -183,7 +183,7 @@ const Schema = {
183
183
  },
184
184
  extensionsPrefix: 'x-',
185
185
  };
186
- const SchemaProperties = {
186
+ exports.SchemaProperties = {
187
187
  properties: {},
188
188
  additionalProperties: (value) => {
189
189
  if (typeof value === 'boolean') {
@@ -206,7 +206,7 @@ const SecurityScheme = {
206
206
  openIdConnectUrl: { type: 'string' },
207
207
  },
208
208
  required(value) {
209
- switch (value === null || value === void 0 ? void 0 : value.type) {
209
+ switch (value?.type) {
210
210
  case 'apiKey':
211
211
  return ['type', 'name', 'in'];
212
212
  case 'http':
@@ -220,13 +220,13 @@ const SecurityScheme = {
220
220
  }
221
221
  },
222
222
  allowed(value) {
223
- switch (value === null || value === void 0 ? void 0 : value.type) {
223
+ switch (value?.type) {
224
224
  case 'apiKey':
225
225
  return ['type', 'name', 'in', 'description'];
226
226
  case 'http':
227
227
  return ['type', 'scheme', 'bearerFormat', 'description'];
228
228
  case 'oauth2':
229
- switch (value === null || value === void 0 ? void 0 : value.flows) {
229
+ switch (value?.flows) {
230
230
  case 'implicit':
231
231
  return ['type', 'flows', 'authorizationUrl', 'refreshUrl', 'description', 'scopes'];
232
232
  case 'password':
@@ -263,15 +263,21 @@ const SecurityScheme = {
263
263
  },
264
264
  extensionsPrefix: 'x-',
265
265
  };
266
- const DependentRequired = {
266
+ exports.DependentRequired = {
267
267
  properties: {},
268
268
  additionalProperties: { type: 'array', items: { type: 'string' } },
269
269
  };
270
- exports.Oas3_1Types = Object.assign(Object.assign({}, oas3_1.Oas3Types), { Info,
270
+ exports.Oas3_1Types = {
271
+ ...oas3_1.Oas3Types,
272
+ Info,
271
273
  Root,
272
- Schema,
273
- SchemaProperties,
274
+ Schema: exports.Schema,
275
+ SchemaProperties: exports.SchemaProperties,
276
+ PatternProperties: exports.SchemaProperties,
274
277
  License,
275
- Components, NamedPathItems: (0, _1.mapOf)('PathItem'), SecurityScheme,
278
+ Components,
279
+ NamedPathItems: (0, _1.mapOf)('PathItem'),
280
+ SecurityScheme,
276
281
  Operation,
277
- DependentRequired });
282
+ DependentRequired: exports.DependentRequired,
283
+ };
@@ -1,21 +1,23 @@
1
- import type { NodeType } from '.';
2
1
  import type { JSONSchema } from 'json-schema-to-ts';
3
- import { Config } from '../config';
4
- declare const builtInCommonOASRules: readonly ["spec", "info-contact", "operation-operationId", "tag-description", "tags-alphabetical", "info-license-url", "info-license", "no-ambiguous-paths", "no-enum-type-mismatch", "no-http-verbs-in-paths", "no-identical-paths", "no-invalid-parameter-examples", "no-invalid-schema-examples", "no-path-trailing-slash", "operation-2xx-response", "operation-4xx-response", "operation-description", "operation-operationId-unique", "operation-operationId-url-safe", "operation-parameters-unique", "operation-singular-tag", "operation-summary", "operation-tag-defined", "parameter-description", "path-declaration-must-exist", "path-excludes-patterns", "path-http-verbs-order", "path-not-include-query", "path-params-defined", "path-parameters-defined", "path-segment-plural", "paths-kebab-case", "required-string-property-missing-min-length", "response-contains-header", "scalar-property-missing-example", "security-defined", "spec-strict-refs", "no-unresolved-refs", "no-required-schema-properties-undefined"];
2
+ import type { NodeType } from '.';
3
+ import type { Config } from '../config';
4
+ declare const builtInCommonOASRules: readonly ["spec", "info-contact", "operation-operationId", "tag-description", "tags-alphabetical", "info-license-url", "info-license-strict", "info-license", "no-ambiguous-paths", "no-enum-type-mismatch", "no-http-verbs-in-paths", "no-identical-paths", "no-invalid-parameter-examples", "no-invalid-schema-examples", "no-path-trailing-slash", "operation-2xx-response", "operation-4xx-response", "operation-description", "operation-operationId-unique", "operation-operationId-url-safe", "operation-parameters-unique", "operation-singular-tag", "operation-summary", "operation-tag-defined", "parameter-description", "path-declaration-must-exist", "path-excludes-patterns", "path-http-verbs-order", "path-not-include-query", "path-params-defined", "path-parameters-defined", "path-segment-plural", "paths-kebab-case", "required-string-property-missing-min-length", "response-contains-header", "scalar-property-missing-example", "security-defined", "spec-strict-refs", "no-unresolved-refs", "no-required-schema-properties-undefined"];
5
5
  export type BuiltInCommonOASRuleId = typeof builtInCommonOASRules[number];
6
6
  declare const builtInOAS2Rules: readonly ["boolean-parameter-prefixes", "request-mime-type", "response-contains-property", "response-mime-type"];
7
7
  export type BuiltInOAS2RuleId = typeof builtInOAS2Rules[number];
8
8
  declare const builtInOAS3Rules: readonly ["boolean-parameter-prefixes", "component-name-unique", "no-empty-servers", "no-example-value-and-externalValue", "no-invalid-media-type-examples", "no-server-example.com", "no-server-trailing-slash", "no-server-variables-empty-enum", "no-undefined-server-variable", "no-unused-components", "operation-4xx-problem-details-rfc7807", "request-mime-type", "response-contains-property", "response-mime-type", "spec-components-invalid-map-name", "array-parameter-serialization"];
9
9
  export type BuiltInOAS3RuleId = typeof builtInOAS3Rules[number];
10
- declare const builtInAsync2Rules: readonly ["spec", "info-contact", "operation-operationId", "tag-description", "tags-alphabetical", "channels-kebab-case", "no-channel-trailing-slash"];
10
+ declare const builtInAsync2Rules: readonly ["spec", "info-contact", "info-license-strict", "operation-operationId", "tag-description", "tags-alphabetical", "channels-kebab-case", "no-channel-trailing-slash"];
11
+ declare const builtInAsync3Rules: readonly ["spec", "info-contact", "info-license-strict", "operation-operationId", "tag-description", "tags-alphabetical", "channels-kebab-case", "no-channel-trailing-slash"];
11
12
  export type BuiltInAsync2RuleId = typeof builtInAsync2Rules[number];
12
- declare const builtInArazzoRules: readonly ["spec"];
13
+ export type BuiltInAsync3RuleId = typeof builtInAsync3Rules[number];
14
+ declare const builtInArazzoRules: readonly ["spec", "parameters-no-body-inside-in"];
13
15
  export type BuiltInArazzoRuleId = typeof builtInArazzoRules[number];
14
16
  declare const oas2NodeTypesList: readonly ["Root", "Tag", "TagList", "ExternalDocs", "SecurityRequirement", "SecurityRequirementList", "Info", "Contact", "License", "Paths", "PathItem", "Parameter", "ParameterList", "ParameterItems", "Operation", "Example", "ExamplesMap", "Examples", "Header", "Responses", "Response", "Schema", "Xml", "SchemaProperties", "NamedSchemas", "NamedResponses", "NamedParameters", "NamedSecuritySchemes", "SecurityScheme", "TagGroup", "TagGroups", "EnumDescriptions", "Logo", "XCodeSample", "XCodeSampleList", "XServer", "XServerList"];
15
17
  export type Oas2NodeType = typeof oas2NodeTypesList[number];
16
18
  declare const oas3NodeTypesList: readonly ["Root", "Tag", "TagList", "ExternalDocs", "Server", "ServerList", "ServerVariable", "ServerVariablesMap", "SecurityRequirement", "SecurityRequirementList", "Info", "Contact", "License", "Paths", "PathItem", "Parameter", "ParameterList", "Operation", "Callback", "CallbacksMap", "RequestBody", "MediaTypesMap", "MediaType", "Example", "ExamplesMap", "Encoding", "EncodingMap", "Header", "HeadersMap", "Responses", "Response", "Link", "LinksMap", "Schema", "Xml", "SchemaProperties", "DiscriminatorMapping", "Discriminator", "Components", "NamedSchemas", "NamedResponses", "NamedParameters", "NamedExamples", "NamedRequestBodies", "NamedHeaders", "NamedSecuritySchemes", "NamedLinks", "NamedCallbacks", "ImplicitFlow", "PasswordFlow", "ClientCredentials", "AuthorizationCode", "OAuth2Flows", "SecurityScheme", "TagGroup", "TagGroups", "EnumDescriptions", "Logo", "XCodeSample", "XCodeSampleList", "XUsePkce", "WebhooksMap"];
17
19
  export type Oas3NodeType = typeof oas3NodeTypesList[number];
18
- declare const oas3_1NodeTypesList: readonly ["Root", "Schema", "SchemaProperties", "Info", "License", "Components", "NamedPathItems", "SecurityScheme", "Operation", "DependentRequired"];
20
+ declare const oas3_1NodeTypesList: readonly ["Root", "Schema", "SchemaProperties", "PatternProperties", "Info", "License", "Components", "NamedPathItems", "SecurityScheme", "Operation", "DependentRequired"];
19
21
  export type Oas3_1NodeType = typeof oas3_1NodeTypesList[number];
20
22
  export declare function createConfigTypes(extraSchemas: JSONSchema, config?: Config): {
21
23
  ConfigRoot: NodeType;