@redocly/openapi-core 1.19.0 → 1.20.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 (338) hide show
  1. package/CHANGELOG.md +14 -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 +5 -1
  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 +5 -1
  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 +5 -1
  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 +17 -13
  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 +16 -12
  13. package/lib/benchmark/utils.d.ts +3 -3
  14. package/lib/benchmark/utils.js +3 -3
  15. package/lib/config/all.js +4 -1
  16. package/lib/config/builtIn.js +15 -20
  17. package/lib/config/config-resolvers.d.ts +1 -1
  18. package/lib/config/config-resolvers.js +67 -28
  19. package/lib/config/config.d.ts +3 -2
  20. package/lib/config/load.d.ts +1 -1
  21. package/lib/config/minimal.js +4 -0
  22. package/lib/config/recommended-strict.js +5 -1
  23. package/lib/config/recommended.js +5 -1
  24. package/lib/config/types.d.ts +9 -2
  25. package/lib/config/utils.d.ts +3 -1
  26. package/lib/config/utils.js +8 -0
  27. package/lib/decorators/common/filters/filter-helper.d.ts +1 -1
  28. package/lib/decorators/common/filters/filter-in.d.ts +1 -1
  29. package/lib/decorators/common/filters/filter-out.d.ts +1 -1
  30. package/lib/decorators/common/info-description-override.d.ts +1 -1
  31. package/lib/decorators/common/info-override.d.ts +1 -1
  32. package/lib/decorators/common/media-type-examples-override.d.ts +1 -1
  33. package/lib/decorators/common/operation-description-override.d.ts +1 -1
  34. package/lib/decorators/common/registry-dependencies.d.ts +1 -1
  35. package/lib/decorators/common/remove-x-internal.d.ts +1 -1
  36. package/lib/decorators/common/tag-description-override.d.ts +1 -1
  37. package/lib/decorators/oas2/index.d.ts +1 -1
  38. package/lib/decorators/oas3/index.d.ts +1 -1
  39. package/lib/format/codeframes.d.ts +1 -1
  40. package/lib/format/format.d.ts +1 -1
  41. package/lib/format/format.js +1 -1
  42. package/lib/js-yaml/index.d.ts +1 -1
  43. package/lib/lint.d.ts +1 -1
  44. package/lib/logger.js +2 -2
  45. package/lib/oas-types.d.ts +2 -2
  46. package/lib/redocly/domains.d.ts +1 -1
  47. package/lib/redocly/index.d.ts +1 -1
  48. package/lib/ref-utils.d.ts +2 -2
  49. package/lib/ref-utils.js +1 -0
  50. package/lib/resolve.d.ts +2 -2
  51. package/lib/rules/ajv.d.ts +1 -1
  52. package/lib/rules/arazzo/index.js +2 -0
  53. package/lib/rules/async2/channels-kebab-case.d.ts +1 -1
  54. package/lib/rules/async2/index.js +2 -0
  55. package/lib/rules/async2/no-channel-trailing-slash.d.ts +1 -1
  56. package/lib/rules/async3/channels-kebab-case.d.ts +1 -1
  57. package/lib/rules/async3/index.js +2 -0
  58. package/lib/rules/async3/no-channel-trailing-slash.d.ts +1 -1
  59. package/lib/rules/common/assertions/asserts.d.ts +2 -2
  60. package/lib/rules/common/assertions/index.d.ts +1 -2
  61. package/lib/rules/common/assertions/utils.d.ts +1 -1
  62. package/lib/rules/common/info-contact.d.ts +1 -1
  63. package/lib/rules/common/info-license-strict.d.ts +2 -0
  64. package/lib/rules/common/info-license-strict.js +26 -0
  65. package/lib/rules/common/info-license-url.d.ts +1 -1
  66. package/lib/rules/common/info-license.d.ts +1 -1
  67. package/lib/rules/common/no-ambiguous-paths.d.ts +1 -1
  68. package/lib/rules/common/no-enum-type-mismatch.d.ts +1 -1
  69. package/lib/rules/common/no-http-verbs-in-paths.d.ts +1 -1
  70. package/lib/rules/common/no-identical-paths.d.ts +1 -1
  71. package/lib/rules/common/no-path-trailing-slash.d.ts +1 -1
  72. package/lib/rules/common/no-required-schema-properties-undefined.d.ts +1 -1
  73. package/lib/rules/common/operation-2xx-response.d.ts +1 -1
  74. package/lib/rules/common/operation-4xx-response.d.ts +1 -1
  75. package/lib/rules/common/operation-description.d.ts +1 -1
  76. package/lib/rules/common/operation-operationId-unique.d.ts +1 -1
  77. package/lib/rules/common/operation-operationId-url-safe.d.ts +1 -1
  78. package/lib/rules/common/operation-operationId-url-safe.js +1 -0
  79. package/lib/rules/common/operation-operationId.d.ts +1 -1
  80. package/lib/rules/common/operation-parameters-unique.d.ts +1 -1
  81. package/lib/rules/common/operation-singular-tag.d.ts +1 -1
  82. package/lib/rules/common/operation-summary.d.ts +1 -1
  83. package/lib/rules/common/operation-tag-defined.d.ts +1 -1
  84. package/lib/rules/common/parameter-description.d.ts +1 -1
  85. package/lib/rules/common/path-declaration-must-exist.d.ts +1 -1
  86. package/lib/rules/common/path-excludes-patterns.d.ts +1 -1
  87. package/lib/rules/common/path-http-verbs-order.d.ts +1 -1
  88. package/lib/rules/common/path-not-include-query.d.ts +1 -1
  89. package/lib/rules/common/path-params-defined.d.ts +1 -1
  90. package/lib/rules/common/path-segment-plural.d.ts +1 -1
  91. package/lib/rules/common/paths-kebab-case.d.ts +1 -1
  92. package/lib/rules/common/required-string-property-missing-min-length.d.ts +1 -1
  93. package/lib/rules/common/response-contains-header.d.ts +1 -1
  94. package/lib/rules/common/security-defined.d.ts +1 -1
  95. package/lib/rules/common/spec-strict-refs.d.ts +1 -1
  96. package/lib/rules/common/tag-description.d.ts +1 -1
  97. package/lib/rules/common/tags-alphabetical.d.ts +1 -1
  98. package/lib/rules/no-unresolved-refs.d.ts +3 -3
  99. package/lib/rules/oas2/boolean-parameter-prefixes.d.ts +1 -1
  100. package/lib/rules/oas2/index.d.ts +1 -1
  101. package/lib/rules/oas2/index.js +2 -0
  102. package/lib/rules/oas2/response-contains-property.d.ts +1 -1
  103. package/lib/rules/oas3/array-parameter-serialization.d.ts +1 -1
  104. package/lib/rules/oas3/boolean-parameter-prefixes.d.ts +1 -1
  105. package/lib/rules/oas3/component-name-unique.d.ts +1 -1
  106. package/lib/rules/oas3/index.d.ts +1 -1
  107. package/lib/rules/oas3/index.js +2 -0
  108. package/lib/rules/oas3/no-empty-servers.d.ts +1 -1
  109. package/lib/rules/oas3/no-example-value-and-externalValue.d.ts +1 -1
  110. package/lib/rules/oas3/no-invalid-media-type-examples.d.ts +1 -1
  111. package/lib/rules/oas3/no-server-example.com.d.ts +1 -1
  112. package/lib/rules/oas3/no-server-example.com.js +1 -0
  113. package/lib/rules/oas3/no-server-trailing-slash.d.ts +1 -1
  114. package/lib/rules/oas3/no-server-variables-empty-enum.d.ts +1 -1
  115. package/lib/rules/oas3/no-undefined-server-variable.d.ts +1 -1
  116. package/lib/rules/oas3/no-unused-components.d.ts +1 -1
  117. package/lib/rules/oas3/response-contains-property.d.ts +1 -1
  118. package/lib/rules/oas3/spec-components-invalid-map-name.d.ts +1 -1
  119. package/lib/rules/other/stats.d.ts +3 -3
  120. package/lib/rules/other/stats.js +5 -3
  121. package/lib/rules/spot/parameters-no-body-inside-in.d.ts +2 -0
  122. package/lib/rules/spot/parameters-no-body-inside-in.js +18 -0
  123. package/lib/rules/utils.d.ts +4 -2
  124. package/lib/rules/utils.js +27 -1
  125. package/lib/types/arazzo.d.ts +1 -2275
  126. package/lib/types/arazzo.js +246 -309
  127. package/lib/types/asyncapi2.d.ts +1 -1
  128. package/lib/types/asyncapi2.js +3 -1
  129. package/lib/types/asyncapi3.d.ts +1 -1
  130. package/lib/types/json-schema-adapter.d.ts +1 -1
  131. package/lib/types/oas3.d.ts +4 -0
  132. package/lib/types/oas3.js +9 -9
  133. package/lib/types/oas3_1.d.ts +3 -0
  134. package/lib/types/oas3_1.js +8 -8
  135. package/lib/types/redocly-yaml.d.ts +6 -6
  136. package/lib/types/redocly-yaml.js +4 -1
  137. package/lib/typings/arazzo.d.ts +145 -27
  138. package/lib/typings/common.d.ts +1 -1
  139. package/lib/typings/swagger.d.ts +2 -2
  140. package/lib/visitors.d.ts +18 -1
  141. package/lib/walk.d.ts +3 -3
  142. package/package.json +2 -2
  143. package/src/__tests__/bundle.test.ts +4 -4
  144. package/src/__tests__/lint.test.ts +29 -21
  145. package/src/__tests__/walk.test.ts +25 -25
  146. package/src/benchmark/benches/lint-with-many-rules.bench.ts +7 -1
  147. package/src/benchmark/benches/lint-with-nested-rule.bench.ts +7 -1
  148. package/src/benchmark/benches/lint-with-no-rules.bench.ts +8 -1
  149. package/src/benchmark/benches/lint-with-top-level-rule-report.bench.ts +18 -13
  150. package/src/benchmark/benches/lint-with-top-level-rule.bench.ts +17 -11
  151. package/src/benchmark/fork.js +4 -0
  152. package/src/benchmark/utils.ts +6 -5
  153. package/src/bundle.ts +2 -1
  154. package/src/config/__tests__/__snapshots__/config-resolvers.test.ts.snap +10 -2
  155. package/src/config/__tests__/config-resolvers.test.ts +82 -0
  156. package/src/config/__tests__/fixtures/resolve-config/local-config-with-commonjs-export-function.yaml +2 -0
  157. package/src/config/__tests__/fixtures/resolve-config/local-config-with-esm.yaml +2 -0
  158. package/src/config/__tests__/fixtures/resolve-config/plugin-esm.mjs +10 -0
  159. package/src/config/__tests__/fixtures/resolve-config/plugin-with-export-function.cjs +10 -0
  160. package/src/config/__tests__/resolve-plugins.test.ts +4 -1
  161. package/src/config/all.ts +4 -1
  162. package/src/config/builtIn.ts +5 -10
  163. package/src/config/config-resolvers.ts +78 -23
  164. package/src/config/config.ts +7 -8
  165. package/src/config/load.ts +2 -2
  166. package/src/config/minimal.ts +4 -0
  167. package/src/config/recommended-strict.ts +5 -1
  168. package/src/config/recommended.ts +5 -1
  169. package/src/config/types.ts +19 -3
  170. package/src/config/utils.ts +13 -2
  171. package/src/decorators/__tests__/filter-in.test.ts +29 -26
  172. package/src/decorators/__tests__/filter-out.test.ts +32 -23
  173. package/src/decorators/__tests__/media-type-examples-override.test.ts +45 -45
  174. package/src/decorators/__tests__/remove-x-internal.test.ts +8 -5
  175. package/src/decorators/common/filters/filter-helper.ts +2 -1
  176. package/src/decorators/common/filters/filter-in.ts +2 -1
  177. package/src/decorators/common/filters/filter-out.ts +2 -1
  178. package/src/decorators/common/info-description-override.ts +3 -2
  179. package/src/decorators/common/info-override.ts +1 -1
  180. package/src/decorators/common/media-type-examples-override.ts +4 -3
  181. package/src/decorators/common/operation-description-override.ts +5 -4
  182. package/src/decorators/common/registry-dependencies.ts +2 -2
  183. package/src/decorators/common/remove-x-internal.ts +3 -2
  184. package/src/decorators/common/tag-description-override.ts +3 -2
  185. package/src/decorators/oas2/__tests__/remove-unused-components.test.ts +3 -3
  186. package/src/decorators/oas2/index.ts +2 -1
  187. package/src/decorators/oas2/remove-unused-components.ts +1 -1
  188. package/src/decorators/oas3/__tests__/remove-unused-components.test.ts +4 -4
  189. package/src/decorators/oas3/index.ts +2 -1
  190. package/src/decorators/oas3/remove-unused-components.ts +1 -1
  191. package/src/format/codeframes.ts +2 -1
  192. package/src/format/format.ts +9 -4
  193. package/src/js-yaml/index.ts +3 -1
  194. package/src/lint.ts +2 -1
  195. package/src/logger.ts +2 -2
  196. package/src/oas-types.ts +14 -13
  197. package/src/redocly/domains.ts +1 -1
  198. package/src/redocly/index.ts +3 -3
  199. package/src/redocly/registry-api.ts +5 -3
  200. package/src/ref-utils.ts +4 -2
  201. package/src/resolve.ts +6 -4
  202. package/src/rules/__tests__/no-unresolved-refs.test.ts +21 -7
  203. package/src/rules/ajv.ts +2 -1
  204. package/src/rules/arazzo/__tests__/parameters-no-body-inside-in.test.ts +76 -0
  205. package/src/rules/arazzo/index.ts +5 -2
  206. package/src/rules/async2/__tests__/channels-kebab-case.test.ts +9 -5
  207. package/src/rules/async2/__tests__/no-channel-trailing-slash.test.ts +3 -3
  208. package/src/rules/async2/channels-kebab-case.ts +2 -2
  209. package/src/rules/async2/index.ts +4 -1
  210. package/src/rules/async2/no-channel-trailing-slash.ts +2 -2
  211. package/src/rules/async3/__tests__/channels-kebab-case.test.ts +9 -5
  212. package/src/rules/async3/__tests__/no-channel-trailing-slash.test.ts +3 -3
  213. package/src/rules/async3/channels-kebab-case.ts +3 -3
  214. package/src/rules/async3/index.ts +4 -1
  215. package/src/rules/async3/no-channel-trailing-slash.ts +3 -3
  216. package/src/rules/common/__tests__/info-license-strict.test.ts +141 -0
  217. package/src/rules/common/__tests__/info-license.test.ts +2 -2
  218. package/src/rules/common/__tests__/license-url.test.ts +2 -2
  219. package/src/rules/common/__tests__/no-ambiguous-paths.test.ts +1 -1
  220. package/src/rules/common/__tests__/no-enum-type-mismatch.test.ts +5 -5
  221. package/src/rules/common/__tests__/no-identical-paths.test.ts +1 -1
  222. package/src/rules/common/__tests__/no-invalid-parameter-examples.test.ts +1 -1
  223. package/src/rules/common/__tests__/no-invalid-schema-examples.test.ts +1 -1
  224. package/src/rules/common/__tests__/no-path-trailing-slash.test.ts +4 -4
  225. package/src/rules/common/__tests__/no-required-schema-properties-undefined.test.ts +11 -11
  226. package/src/rules/common/__tests__/operation-2xx-response.test.ts +8 -6
  227. package/src/rules/common/__tests__/operation-4xx-response.test.ts +9 -7
  228. package/src/rules/common/__tests__/operation-operationId-unique.test.ts +2 -2
  229. package/src/rules/common/__tests__/operation-operationId-url-safe.test.ts +1 -1
  230. package/src/rules/common/__tests__/operation-parameters-unique.test.ts +4 -4
  231. package/src/rules/common/__tests__/operation-singular-tag.test.ts +2 -2
  232. package/src/rules/common/__tests__/path-http-verbs-order.test.ts +2 -2
  233. package/src/rules/common/__tests__/path-not-include-query.test.ts +2 -2
  234. package/src/rules/common/__tests__/path-params-defined.test.ts +5 -5
  235. package/src/rules/common/__tests__/paths-kebab-case.test.ts +6 -4
  236. package/src/rules/common/__tests__/scalar-property-missing-example.test.ts +8 -8
  237. package/src/rules/common/__tests__/security-defined.test.ts +14 -8
  238. package/src/rules/common/__tests__/spec-strict-refs.test.ts +1 -1
  239. package/src/rules/common/__tests__/spec.test.ts +10 -10
  240. package/src/rules/common/__tests__/tag-description.test.ts +2 -2
  241. package/src/rules/common/__tests__/tags-alphabetical.test.ts +6 -4
  242. package/src/rules/common/assertions/asserts.ts +5 -9
  243. package/src/rules/common/assertions/index.ts +1 -2
  244. package/src/rules/common/assertions/utils.ts +4 -2
  245. package/src/rules/common/info-contact.ts +2 -1
  246. package/src/rules/common/info-license-strict.ts +24 -0
  247. package/src/rules/common/info-license-url.ts +2 -1
  248. package/src/rules/common/info-license.ts +2 -1
  249. package/src/rules/common/no-ambiguous-paths.ts +4 -4
  250. package/src/rules/common/no-enum-type-mismatch.ts +5 -4
  251. package/src/rules/common/no-http-verbs-in-paths.ts +5 -4
  252. package/src/rules/common/no-identical-paths.ts +4 -4
  253. package/src/rules/common/no-invalid-parameter-examples.ts +3 -2
  254. package/src/rules/common/no-path-trailing-slash.ts +2 -2
  255. package/src/rules/common/no-required-schema-properties-undefined.ts +5 -4
  256. package/src/rules/common/operation-2xx-response.ts +3 -2
  257. package/src/rules/common/operation-4xx-response.ts +3 -2
  258. package/src/rules/common/operation-description.ts +5 -4
  259. package/src/rules/common/operation-operationId-unique.ts +4 -4
  260. package/src/rules/common/operation-operationId-url-safe.ts +5 -4
  261. package/src/rules/common/operation-operationId.ts +5 -4
  262. package/src/rules/common/operation-parameters-unique.ts +4 -4
  263. package/src/rules/common/operation-singular-tag.ts +4 -4
  264. package/src/rules/common/operation-summary.ts +5 -4
  265. package/src/rules/common/operation-tag-defined.ts +4 -4
  266. package/src/rules/common/parameter-description.ts +4 -4
  267. package/src/rules/common/path-declaration-must-exist.ts +2 -2
  268. package/src/rules/common/path-excludes-patterns.ts +4 -4
  269. package/src/rules/common/path-http-verbs-order.ts +4 -4
  270. package/src/rules/common/path-not-include-query.ts +2 -2
  271. package/src/rules/common/path-params-defined.ts +4 -4
  272. package/src/rules/common/path-segment-plural.ts +3 -2
  273. package/src/rules/common/paths-kebab-case.ts +2 -2
  274. package/src/rules/common/required-string-property-missing-min-length.ts +4 -4
  275. package/src/rules/common/response-contains-header.ts +5 -4
  276. package/src/rules/common/scalar-property-missing-example.ts +2 -1
  277. package/src/rules/common/security-defined.ts +5 -5
  278. package/src/rules/common/spec-strict-refs.ts +2 -1
  279. package/src/rules/common/spec.ts +3 -2
  280. package/src/rules/common/tag-description.ts +2 -1
  281. package/src/rules/common/tags-alphabetical.ts +4 -4
  282. package/src/rules/no-unresolved-refs.ts +4 -3
  283. package/src/rules/oas2/__tests__/boolean-parameter-prefixes.test.ts +7 -5
  284. package/src/rules/oas2/__tests__/response-contains-header.test.ts +14 -8
  285. package/src/rules/oas2/__tests__/response-contains-property.test.ts +14 -8
  286. package/src/rules/oas2/__tests__/spec/referenceableScalars.test.ts +3 -1
  287. package/src/rules/oas2/boolean-parameter-prefixes.ts +1 -1
  288. package/src/rules/oas2/index.ts +4 -2
  289. package/src/rules/oas2/request-mime-type.ts +2 -1
  290. package/src/rules/oas2/response-contains-property.ts +3 -2
  291. package/src/rules/oas2/response-mime-type.ts +2 -1
  292. package/src/rules/oas3/__tests__/array-parameter-serialization.test.ts +18 -6
  293. package/src/rules/oas3/__tests__/boolean-parameter-prefixes.test.ts +7 -5
  294. package/src/rules/oas3/__tests__/no-empty-enum-servers.com.test.ts +6 -6
  295. package/src/rules/oas3/__tests__/no-example-value-and-externalValue.test.ts +2 -2
  296. package/src/rules/oas3/__tests__/no-invalid-media-type-examples.test.ts +34 -24
  297. package/src/rules/oas3/__tests__/no-server-example.com.test.ts +3 -3
  298. package/src/rules/oas3/__tests__/no-server-trailing-slash.test.ts +3 -3
  299. package/src/rules/oas3/__tests__/no-unused-components.test.ts +1 -1
  300. package/src/rules/oas3/__tests__/operation-4xx-problem-details-rfc7807.test.ts +3 -3
  301. package/src/rules/oas3/__tests__/response-contains-header.test.ts +34 -22
  302. package/src/rules/oas3/__tests__/response-contains-property.test.ts +34 -20
  303. package/src/rules/oas3/__tests__/spec/spec.test.ts +12 -3
  304. package/src/rules/oas3/__tests__/spec-components-invalid-map-name.test.ts +9 -3
  305. package/src/rules/oas3/__tests__/utils/lint-document-for-test.ts +1 -1
  306. package/src/rules/oas3/array-parameter-serialization.ts +3 -2
  307. package/src/rules/oas3/boolean-parameter-prefixes.ts +1 -1
  308. package/src/rules/oas3/component-name-unique.ts +3 -3
  309. package/src/rules/oas3/index.ts +3 -1
  310. package/src/rules/oas3/no-empty-servers.ts +1 -1
  311. package/src/rules/oas3/no-example-value-and-externalValue.ts +1 -1
  312. package/src/rules/oas3/no-invalid-media-type-examples.ts +6 -4
  313. package/src/rules/oas3/no-server-example.com.ts +2 -1
  314. package/src/rules/oas3/no-server-trailing-slash.ts +1 -1
  315. package/src/rules/oas3/no-server-variables-empty-enum.ts +2 -2
  316. package/src/rules/oas3/no-undefined-server-variable.ts +1 -1
  317. package/src/rules/oas3/no-unused-components.ts +2 -2
  318. package/src/rules/oas3/operation-4xx-problem-details-rfc7807.ts +2 -1
  319. package/src/rules/oas3/request-mime-type.ts +2 -1
  320. package/src/rules/oas3/response-contains-property.ts +3 -2
  321. package/src/rules/oas3/response-mime-type.ts +2 -1
  322. package/src/rules/oas3/spec-components-invalid-map-name.ts +3 -3
  323. package/src/rules/other/stats.ts +8 -6
  324. package/src/rules/spot/parameters-no-body-inside-in.ts +17 -0
  325. package/src/rules/utils.ts +41 -4
  326. package/src/types/arazzo.ts +257 -334
  327. package/src/types/asyncapi2.ts +4 -1
  328. package/src/types/asyncapi3.ts +3 -1
  329. package/src/types/json-schema-adapter.ts +2 -2
  330. package/src/types/oas3.ts +4 -4
  331. package/src/types/oas3_1.ts +3 -3
  332. package/src/types/redocly-yaml.ts +7 -4
  333. package/src/typings/arazzo.ts +169 -41
  334. package/src/typings/common.ts +1 -0
  335. package/src/typings/swagger.ts +2 -2
  336. package/src/visitors.ts +40 -1
  337. package/src/walk.ts +3 -3
  338. package/tsconfig.tsbuildinfo +1 -1
@@ -4,7 +4,8 @@ const recommended = {
4
4
  rules: {
5
5
  'info-contact': 'off',
6
6
  'info-license': 'warn',
7
- 'info-license-url': 'warn',
7
+ 'info-license-url': 'off',
8
+ 'info-license-strict': 'warn',
8
9
  'tag-description': 'warn',
9
10
  'tags-alphabetical': 'off',
10
11
  'parameter-description': 'off',
@@ -90,6 +91,7 @@ const recommended = {
90
91
  async2Rules: {
91
92
  spec: 'error',
92
93
  'info-contact': 'off',
94
+ 'info-license-strict': 'warn',
93
95
  'operation-operationId': 'warn',
94
96
  'tag-description': 'warn',
95
97
  'tags-alphabetical': 'off',
@@ -99,6 +101,7 @@ const recommended = {
99
101
  async3Rules: {
100
102
  spec: 'error',
101
103
  'info-contact': 'off',
104
+ 'info-license-strict': 'warn',
102
105
  'operation-operationId': 'warn',
103
106
  'tag-description': 'warn',
104
107
  'tags-alphabetical': 'off',
@@ -107,6 +110,7 @@ const recommended = {
107
110
  },
108
111
  arazzoRules: {
109
112
  spec: 'error',
113
+ 'parameters-no-body-inside-in': 'off',
110
114
  },
111
115
  };
112
116
  exports.default = recommended;
@@ -1,9 +1,9 @@
1
+ import type { Location } from '../ref-utils';
1
2
  import type { ProblemSeverity, UserContext } from '../walk';
2
3
  import type { Oas3PreprocessorsSet, SpecMajorVersion, Oas3DecoratorsSet, Oas2RuleSet, Oas2PreprocessorsSet, Oas2DecoratorsSet, Oas3RuleSet, SpecVersion, Async2PreprocessorsSet, Async2DecoratorsSet, Async2RuleSet, Async3PreprocessorsSet, Async3DecoratorsSet, Async3RuleSet, ArazzoRuleSet, ArazzoPreprocessorsSet, ArazzoDecoratorsSet, RuleMap } from '../oas-types';
3
4
  import type { NodeType } from '../types';
4
- import { Location } from '../ref-utils';
5
5
  import type { SkipFunctionContext } from '../visitors';
6
- import { BuiltInAsync2RuleId, BuiltInAsync3RuleId, BuiltInCommonOASRuleId, BuiltInOAS2RuleId, BuiltInOAS3RuleId, BuiltInArazzoRuleId } from '../types/redocly-yaml';
6
+ import type { BuiltInAsync2RuleId, BuiltInAsync3RuleId, BuiltInCommonOASRuleId, BuiltInOAS2RuleId, BuiltInOAS3RuleId, BuiltInArazzoRuleId } from '../types/redocly-yaml';
7
7
  export type RuleSeverity = ProblemSeverity | 'off';
8
8
  export type RuleSettings = {
9
9
  severity: RuleSeverity;
@@ -92,6 +92,13 @@ export type Plugin = {
92
92
  typeExtension?: TypeExtensionsConfig;
93
93
  assertions?: AssertionsConfig;
94
94
  };
95
+ type PluginCreatorOptions = {
96
+ contentDir: string;
97
+ };
98
+ export type PluginCreator = (options: PluginCreatorOptions) => Plugin | Promise<Plugin>;
99
+ export type ImportedPlugin = {
100
+ default?: PluginCreator;
101
+ } | PluginCreator | Plugin;
95
102
  export type PluginStyleguideConfig<T = undefined> = Omit<StyleguideRawConfig<T>, 'plugins' | 'extends'>;
96
103
  export type ResolveHeader = {
97
104
  name: string;
@@ -1,5 +1,5 @@
1
1
  import { Config } from './config';
2
- import type { Api, DeprecatedInRawConfig, FlatRawConfig, Plugin, RawConfig, RawResolveConfig, ResolveConfig, ResolvedStyleguideConfig, RulesFields } from './types';
2
+ import type { Api, DeprecatedInRawConfig, ImportedPlugin, FlatRawConfig, RawConfig, RawResolveConfig, ResolveConfig, ResolvedStyleguideConfig, RulesFields, Plugin, PluginCreator } from './types';
3
3
  export declare function parsePresetName(presetName: string): {
4
4
  pluginId: string;
5
5
  configName: string;
@@ -15,3 +15,5 @@ export declare function getUniquePlugins(plugins: Plugin[]): Plugin[];
15
15
  export declare class ConfigValidationError extends Error {
16
16
  }
17
17
  export declare function deepCloneMapWithJSON<K, V>(originalMap: Map<K, V>): Map<K, V>;
18
+ export declare function isDeprecatedPluginFormat(plugin: ImportedPlugin | undefined): plugin is Plugin;
19
+ export declare function isCommonJsPlugin(plugin: ImportedPlugin | undefined): plugin is PluginCreator;
@@ -11,6 +11,8 @@ exports.transformConfig = transformConfig;
11
11
  exports.getResolveConfig = getResolveConfig;
12
12
  exports.getUniquePlugins = getUniquePlugins;
13
13
  exports.deepCloneMapWithJSON = deepCloneMapWithJSON;
14
+ exports.isDeprecatedPluginFormat = isDeprecatedPluginFormat;
15
+ exports.isCommonJsPlugin = isCommonJsPlugin;
14
16
  const utils_1 = require("../utils");
15
17
  const config_1 = require("./config");
16
18
  const logger_1 = require("../logger");
@@ -288,3 +290,9 @@ exports.ConfigValidationError = ConfigValidationError;
288
290
  function deepCloneMapWithJSON(originalMap) {
289
291
  return new Map(JSON.parse(JSON.stringify([...originalMap])));
290
292
  }
293
+ function isDeprecatedPluginFormat(plugin) {
294
+ return plugin !== undefined && typeof plugin === 'object' && 'id' in plugin;
295
+ }
296
+ function isCommonJsPlugin(plugin) {
297
+ return typeof plugin === 'function';
298
+ }
@@ -1,3 +1,3 @@
1
- import { UserContext } from '../../../walk';
1
+ import type { UserContext } from '../../../walk';
2
2
  export declare function filter(node: any, ctx: UserContext, criteria: (item: any) => boolean): void;
3
3
  export declare function checkIfMatchByStrategy(nodeValue: any, decoratorValue: any, strategy: 'all' | 'any'): boolean;
@@ -1,2 +1,2 @@
1
- import { Oas2Decorator, Oas3Decorator } from '../../../visitors';
1
+ import type { Oas2Decorator, Oas3Decorator } from '../../../visitors';
2
2
  export declare const FilterIn: Oas3Decorator | Oas2Decorator;
@@ -1,2 +1,2 @@
1
- import { Oas2Decorator, Oas3Decorator } from '../../../visitors';
1
+ import type { Oas2Decorator, Oas3Decorator } from '../../../visitors';
2
2
  export declare const FilterOut: Oas3Decorator | Oas2Decorator;
@@ -1,2 +1,2 @@
1
- import { Oas3Decorator, Oas2Decorator } from '../../visitors';
1
+ import type { Oas3Decorator, Oas2Decorator } from '../../visitors';
2
2
  export declare const InfoDescriptionOverride: Oas3Decorator | Oas2Decorator;
@@ -1,2 +1,2 @@
1
- import { Oas3Decorator, Oas2Decorator } from '../../visitors';
1
+ import type { Oas3Decorator, Oas2Decorator } from '../../visitors';
2
2
  export declare const InfoOverride: Oas3Decorator | Oas2Decorator;
@@ -1,2 +1,2 @@
1
- import { Oas3Decorator } from '../../visitors';
1
+ import type { Oas3Decorator } from '../../visitors';
2
2
  export declare const MediaTypeExamplesOverride: Oas3Decorator;
@@ -1,2 +1,2 @@
1
- import { Oas3Decorator, Oas2Decorator } from '../../visitors';
1
+ import type { Oas3Decorator, Oas2Decorator } from '../../visitors';
2
2
  export declare const OperationDescriptionOverride: Oas3Decorator | Oas2Decorator;
@@ -1,2 +1,2 @@
1
- import { Oas3Decorator, Oas2Decorator } from '../../visitors';
1
+ import type { Oas3Decorator, Oas2Decorator } from '../../visitors';
2
2
  export declare const RegistryDependencies: Oas3Decorator | Oas2Decorator;
@@ -1,2 +1,2 @@
1
- import { Oas3Decorator, Oas2Decorator } from '../../visitors';
1
+ import type { Oas3Decorator, Oas2Decorator } from '../../visitors';
2
2
  export declare const RemoveXInternal: Oas3Decorator | Oas2Decorator;
@@ -1,2 +1,2 @@
1
- import { Oas3Decorator, Oas2Decorator } from '../../visitors';
1
+ import type { Oas3Decorator, Oas2Decorator } from '../../visitors';
2
2
  export declare const TagDescriptionOverride: Oas3Decorator | Oas2Decorator;
@@ -1,4 +1,4 @@
1
- import { Oas2Decorator } from '../../visitors';
1
+ import type { Oas2Decorator } from '../../visitors';
2
2
  export declare const decorators: {
3
3
  'registry-dependencies': Oas2Decorator;
4
4
  'operation-description-override': Oas2Decorator;
@@ -1,4 +1,4 @@
1
- import { Oas3Decorator } from '../../visitors';
1
+ import type { Oas3Decorator } from '../../visitors';
2
2
  export declare const decorators: {
3
3
  'registry-dependencies': Oas3Decorator;
4
4
  'operation-description-override': Oas3Decorator;
@@ -1,5 +1,5 @@
1
1
  import * as yamlAst from 'yaml-ast-parser';
2
- import { LineColLocationObject, LocationObject } from '../walk';
2
+ import type { LineColLocationObject, LocationObject } from '../walk';
3
3
  type YAMLMapping = yamlAst.YAMLMapping & {
4
4
  kind: yamlAst.Kind.MAPPING;
5
5
  };
@@ -1,4 +1,4 @@
1
- import { NormalizedProblem } from '../walk';
1
+ import type { NormalizedProblem } from '../walk';
2
2
  export type Totals = {
3
3
  errors: number;
4
4
  warnings: number;
@@ -5,10 +5,10 @@ exports.formatProblems = formatProblems;
5
5
  const path = require("path");
6
6
  const logger_1 = require("../logger");
7
7
  const output_1 = require("../output");
8
- const coreVersion = require('../../package.json').version;
9
8
  const codeframes_1 = require("./codeframes");
10
9
  const env_1 = require("../env");
11
10
  const ref_utils_1 = require("../ref-utils");
11
+ const coreVersion = require('../../package.json').version;
12
12
  const ERROR_MESSAGE = {
13
13
  INVALID_SEVERITY_LEVEL: 'Invalid severity level; accepted values: error or warn',
14
14
  };
@@ -1,3 +1,3 @@
1
- import { LoadOptions, DumpOptions } from 'js-yaml';
1
+ import type { LoadOptions, DumpOptions } from 'js-yaml';
2
2
  export declare const parseYaml: (str: string, opts?: LoadOptions) => unknown;
3
3
  export declare const stringifyYaml: (obj: any, opts?: DumpOptions) => string;
package/lib/lint.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { BaseResolver } from './resolve';
2
- import { StyleguideConfig, Config } from './config';
2
+ import type { StyleguideConfig, Config } from './config';
3
3
  import type { Document, ResolvedRefMap } from './resolve';
4
4
  import type { ProblemSeverity } from './walk';
5
5
  import type { NodeType } from './types';
package/lib/logger.js CHANGED
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.logger = exports.colorize = exports.colorOptions = void 0;
4
4
  const colorette = require("colorette");
5
- var colorette_1 = require("colorette");
6
- Object.defineProperty(exports, "colorOptions", { enumerable: true, get: function () { return colorette_1.options; } });
7
5
  const env_1 = require("./env");
8
6
  const utils_1 = require("./utils");
7
+ var colorette_1 = require("colorette");
8
+ Object.defineProperty(exports, "colorOptions", { enumerable: true, get: function () { return colorette_1.options; } });
9
9
  exports.colorize = new Proxy(colorette, {
10
10
  get(target, prop) {
11
11
  if (env_1.isBrowser) {
@@ -1,5 +1,5 @@
1
- import type { Oas3Rule, Oas3Preprocessor, Oas2Rule, Oas2Preprocessor, Async2Preprocessor, Async2Rule, Async3Preprocessor, Async3Rule, ArazzoPreprocessor, ArazzoRule } from './visitors';
2
1
  import type { BuiltInAsync2RuleId, BuiltInAsync3RuleId, BuiltInCommonOASRuleId, BuiltInArazzoRuleId, BuiltInOAS2RuleId, BuiltInOAS3RuleId } from './types/redocly-yaml';
2
+ import type { Oas3Rule, Oas3Preprocessor, Oas2Rule, Oas2Preprocessor, Async2Preprocessor, Async2Rule, Async3Preprocessor, Async3Rule, ArazzoPreprocessor, ArazzoRule } from './visitors';
3
3
  export declare enum SpecVersion {
4
4
  OAS2 = "oas2",
5
5
  OAS3_0 = "oas3_0",
@@ -33,4 +33,4 @@ export type Async3DecoratorsSet = Record<string, Async3Preprocessor>;
33
33
  export type ArazzoDecoratorsSet = Record<string, ArazzoPreprocessor>;
34
34
  export declare function detectSpec(root: unknown): SpecVersion;
35
35
  export declare function getMajorSpecVersion(version: SpecVersion): SpecMajorVersion;
36
- export declare function getTypes(spec: SpecVersion): Record<string, import("./types").NodeType> | Record<"Root" | "Tag" | "ExternalDocs" | "SecurityRequirement" | "Info" | "Contact" | "License" | "Paths" | "PathItem" | "Parameter" | "Operation" | "Example" | "Header" | "Responses" | "Response" | "Schema" | "Xml" | "SchemaProperties" | "NamedSchemas" | "NamedResponses" | "NamedParameters" | "NamedSecuritySchemes" | "SecurityScheme" | "Examples" | "ExamplesMap" | "TagList" | "SecurityRequirementList" | "ParameterList" | "ParameterItems" | "TagGroup" | "TagGroups" | "EnumDescriptions" | "Logo" | "XCodeSample" | "XCodeSampleList" | "XServer" | "XServerList", import("./types").NodeType> | Record<"Root" | "Tag" | "ExternalDocs" | "Server" | "ServerVariable" | "SecurityRequirement" | "Info" | "Contact" | "License" | "Paths" | "PathItem" | "Callback" | "CallbacksMap" | "Parameter" | "Operation" | "RequestBody" | "MediaTypesMap" | "MediaType" | "Example" | "Encoding" | "Header" | "Responses" | "Response" | "Link" | "Schema" | "Xml" | "SchemaProperties" | "DiscriminatorMapping" | "Discriminator" | "Components" | "NamedSchemas" | "NamedResponses" | "NamedParameters" | "NamedExamples" | "NamedRequestBodies" | "NamedHeaders" | "NamedSecuritySchemes" | "NamedLinks" | "NamedCallbacks" | "ImplicitFlow" | "PasswordFlow" | "ClientCredentials" | "AuthorizationCode" | "OAuth2Flows" | "SecurityScheme" | "ServerVariablesMap" | "ExamplesMap" | "EncodingMap" | "HeadersMap" | "LinksMap" | "TagList" | "SecurityRequirementList" | "ParameterList" | "TagGroup" | "TagGroups" | "EnumDescriptions" | "Logo" | "XCodeSample" | "XCodeSampleList" | "ServerList" | "XUsePkce" | "WebhooksMap", import("./types").NodeType> | Record<"Root" | "Info" | "License" | "Operation" | "Schema" | "SchemaProperties" | "Components" | "SecurityScheme" | "PatternProperties" | "NamedPathItems" | "DependentRequired", import("./types").NodeType>;
36
+ export declare function getTypes(spec: SpecVersion): Record<string, import("./types").NodeType> | Record<"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", import("./types").NodeType> | Record<"Root" | "Tag" | "TagList" | "ExternalDocs" | "SecurityRequirement" | "SecurityRequirementList" | "Info" | "Contact" | "License" | "Paths" | "PathItem" | "Parameter" | "ParameterList" | "Operation" | "Example" | "ExamplesMap" | "Header" | "Responses" | "Response" | "Schema" | "Xml" | "SchemaProperties" | "NamedSchemas" | "NamedResponses" | "NamedParameters" | "NamedSecuritySchemes" | "SecurityScheme" | "TagGroup" | "TagGroups" | "EnumDescriptions" | "Logo" | "XCodeSample" | "XCodeSampleList" | "Server" | "ServerList" | "ServerVariable" | "ServerVariablesMap" | "Callback" | "CallbacksMap" | "RequestBody" | "MediaTypesMap" | "MediaType" | "Encoding" | "EncodingMap" | "HeadersMap" | "Link" | "LinksMap" | "DiscriminatorMapping" | "Discriminator" | "Components" | "NamedExamples" | "NamedRequestBodies" | "NamedHeaders" | "NamedLinks" | "NamedCallbacks" | "ImplicitFlow" | "PasswordFlow" | "ClientCredentials" | "AuthorizationCode" | "OAuth2Flows" | "XUsePkce" | "WebhooksMap", import("./types").NodeType> | Record<"Root" | "Info" | "License" | "Operation" | "Schema" | "SchemaProperties" | "SecurityScheme" | "Components" | "PatternProperties" | "NamedPathItems" | "DependentRequired", import("./types").NodeType>;
@@ -1,4 +1,4 @@
1
- import { Region } from '../config/types';
1
+ import type { Region } from '../config/types';
2
2
  export declare const DEFAULT_REGION = "us";
3
3
  export declare const DOMAINS: {
4
4
  us: string;
@@ -1,5 +1,5 @@
1
1
  import { RegistryApi } from './registry-api';
2
- import { RegionalToken, RegionalTokenWithValidity } from './redocly-client-types';
2
+ import type { RegionalToken, RegionalTokenWithValidity } from './redocly-client-types';
3
3
  import type { AccessTokens, Region } from '../config/types';
4
4
  export declare const TOKEN_FILENAME = ".redocly-config.json";
5
5
  export declare class RedoclyClient {
@@ -1,5 +1,5 @@
1
- import { Source } from './resolve';
2
- import { OasRef } from './typings/openapi';
1
+ import type { Source } from './resolve';
2
+ import type { OasRef } from './typings/openapi';
3
3
  export declare function joinPointer(base: string, key: string | number): string;
4
4
  export declare function isRef(node: any): node is OasRef;
5
5
  export declare class Location {
package/lib/ref-utils.js CHANGED
@@ -60,6 +60,7 @@ function pointerBaseName(pointer) {
60
60
  return parts[parts.length - 1];
61
61
  }
62
62
  function refBaseName(ref) {
63
+ // eslint-disable-next-line no-useless-escape
63
64
  const parts = ref.split(/[\/\\]/); // split by '\' and '/'
64
65
  return parts[parts.length - 1].replace(/\.[^.]+$/, ''); // replace extension with empty string
65
66
  }
package/lib/resolve.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { YAMLNode, LoadOptions } from 'yaml-ast-parser';
2
- import { NormalizedNodeType } from './types';
3
- import { ResolveConfig } from './config/types';
2
+ import type { NormalizedNodeType } from './types';
3
+ import type { ResolveConfig } from './config/types';
4
4
  export type CollectedRefs = Map<string, Document>;
5
5
  export declare class Source {
6
6
  absoluteRef: string;
@@ -1,4 +1,4 @@
1
- import { Location } from '../ref-utils';
1
+ import type { Location } from '../ref-utils';
2
2
  import type { ErrorObject } from '@redocly/ajv/dist/2020';
3
3
  import type { ResolveFn } from '../walk';
4
4
  export declare function releaseAjvInstance(): void;
@@ -3,8 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.preprocessors = exports.rules = void 0;
4
4
  const spec_1 = require("../common/spec");
5
5
  const assertions_1 = require("../common/assertions");
6
+ const parameters_no_body_inside_in_1 = require("../spot/parameters-no-body-inside-in");
6
7
  exports.rules = {
7
8
  spec: spec_1.Spec,
8
9
  assertions: assertions_1.Assertions,
10
+ 'parameters-no-body-inside-in': parameters_no_body_inside_in_1.ParametersNoBodyInsideIn,
9
11
  };
10
12
  exports.preprocessors = {};
@@ -1,2 +1,2 @@
1
- import { Async2Rule } from '../../visitors';
1
+ import type { Async2Rule } from '../../visitors';
2
2
  export declare const ChannelsKebabCase: Async2Rule;
@@ -4,6 +4,7 @@ exports.preprocessors = exports.rules = void 0;
4
4
  const assertions_1 = require("../common/assertions");
5
5
  const spec_1 = require("../common/spec");
6
6
  const info_contact_1 = require("../common/info-contact");
7
+ const info_license_strict_1 = require("../common/info-license-strict");
7
8
  const operation_operationId_1 = require("../common/operation-operationId");
8
9
  const tag_description_1 = require("../common/tag-description");
9
10
  const tags_alphabetical_1 = require("../common/tags-alphabetical");
@@ -13,6 +14,7 @@ exports.rules = {
13
14
  spec: spec_1.Spec,
14
15
  assertions: assertions_1.Assertions,
15
16
  'info-contact': info_contact_1.InfoContact,
17
+ 'info-license-strict': info_license_strict_1.InfoLicenseStrict,
16
18
  'operation-operationId': operation_operationId_1.OperationOperationId,
17
19
  'channels-kebab-case': channels_kebab_case_1.ChannelsKebabCase,
18
20
  'no-channel-trailing-slash': no_channel_trailing_slash_1.NoChannelTrailingSlash,
@@ -1,2 +1,2 @@
1
- import { Async2Rule } from '../../visitors';
1
+ import type { Async2Rule } from '../../visitors';
2
2
  export declare const NoChannelTrailingSlash: Async2Rule;
@@ -1,2 +1,2 @@
1
- import { Async3Rule } from '../../visitors';
1
+ import type { Async3Rule } from '../../visitors';
2
2
  export declare const ChannelsKebabCase: Async3Rule;
@@ -4,6 +4,7 @@ exports.preprocessors = exports.rules = void 0;
4
4
  const assertions_1 = require("../common/assertions");
5
5
  const spec_1 = require("../common/spec");
6
6
  const info_contact_1 = require("../common/info-contact");
7
+ const info_license_strict_1 = require("../common/info-license-strict");
7
8
  const operation_operationId_1 = require("../common/operation-operationId");
8
9
  const tag_description_1 = require("../common/tag-description");
9
10
  const tags_alphabetical_1 = require("../common/tags-alphabetical");
@@ -13,6 +14,7 @@ exports.rules = {
13
14
  spec: spec_1.Spec,
14
15
  assertions: assertions_1.Assertions,
15
16
  'info-contact': info_contact_1.InfoContact,
17
+ 'info-license-strict': info_license_strict_1.InfoLicenseStrict,
16
18
  'operation-operationId': operation_operationId_1.OperationOperationId,
17
19
  'channels-kebab-case': channels_kebab_case_1.ChannelsKebabCase,
18
20
  'no-channel-trailing-slash': no_channel_trailing_slash_1.NoChannelTrailingSlash,
@@ -1,2 +1,2 @@
1
- import { Async3Rule } from '../../visitors';
1
+ import type { Async3Rule } from '../../visitors';
2
2
  export declare const NoChannelTrailingSlash: Async3Rule;
@@ -1,5 +1,5 @@
1
- import { AssertionContext, AssertResult, CustomFunction } from 'core/src/config/types';
2
- import { Location } from '../../../ref-utils';
1
+ import type { AssertionContext, AssertResult, CustomFunction } from '../../../config/types';
2
+ import type { Location } from '../../../ref-utils';
3
3
  export type AssertionFnContext = AssertionContext & {
4
4
  baseLocation: Location;
5
5
  rawValue?: any;
@@ -1,5 +1,4 @@
1
- import { asserts } from './asserts';
2
- import type { AssertionFn } from './asserts';
1
+ import type { asserts, AssertionFn } from './asserts';
3
2
  import type { ArazzoVisitor, Async2Visitor, Async3Visitor, Oas2Visitor, Oas3Visitor } from '../../../visitors';
4
3
  import type { RuleSeverity } from '../../../config';
5
4
  export type AssertionLocators = {
@@ -1,4 +1,4 @@
1
- import { Asserts } from './asserts';
1
+ import type { Asserts } from './asserts';
2
2
  import type { AssertionContext, AssertResult } from '../../../config';
3
3
  import type { Assertion, AssertionDefinition } from '.';
4
4
  import type { Oas2Visitor, Oas3Visitor, VisitFunction } from '../../../visitors';
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const InfoContact: Oas3Rule | Oas2Rule;
@@ -0,0 +1,2 @@
1
+ import type { Oas3Rule, Oas2Rule, Async2Rule, Async3Rule } from '../../visitors';
2
+ export declare const InfoLicenseStrict: Oas2Rule | Oas3Rule | Async2Rule | Async3Rule;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InfoLicenseStrict = void 0;
4
+ const oas_types_1 = require("../../oas-types");
5
+ const utils_1 = require("../utils");
6
+ const InfoLicenseStrict = () => {
7
+ let specVersion;
8
+ return {
9
+ Root: {
10
+ enter(root) {
11
+ specVersion = (0, oas_types_1.detectSpec)(root);
12
+ },
13
+ License: {
14
+ leave(license, ctx) {
15
+ if (specVersion === 'oas3_1') {
16
+ (0, utils_1.validateOneOfDefinedAndNonEmpty)(['url', 'identifier'], license, ctx);
17
+ }
18
+ else {
19
+ (0, utils_1.validateDefinedAndNonEmpty)('url', license, ctx);
20
+ }
21
+ },
22
+ },
23
+ },
24
+ };
25
+ };
26
+ exports.InfoLicenseStrict = InfoLicenseStrict;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const InfoLicenseUrl: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const InfoLicense: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const NoAmbiguousPaths: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const NoEnumTypeMismatch: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const NoHttpVerbsInPaths: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const NoIdenticalPaths: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const NoPathTrailingSlash: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas2Rule, Oas3Rule } from '../../visitors';
1
+ import type { Oas2Rule, Oas3Rule } from '../../visitors';
2
2
  export declare const NoRequiredSchemaPropertiesUndefined: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const Operation2xxResponse: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const Operation4xxResponse: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const OperationDescription: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const OperationIdUnique: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const OperationIdUrlSafe: Oas3Rule | Oas2Rule;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OperationIdUrlSafe = void 0;
4
+ // eslint-disable-next-line no-useless-escape
4
5
  const validUrlSymbols = /^[A-Za-z0-9-._~:/?#\[\]@!\$&'()*+,;=]*$/;
5
6
  const OperationIdUrlSafe = () => {
6
7
  return {
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const OperationOperationId: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const OperationParametersUnique: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const OperationSingularTag: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const OperationSummary: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const OperationTagDefined: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const ParameterDescription: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const PathDeclarationMustExist: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas2Rule, Oas3Rule } from '../../visitors';
1
+ import type { Oas2Rule, Oas3Rule } from '../../visitors';
2
2
  export declare const PathExcludesPatterns: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const PathHttpVerbsOrder: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const PathNotIncludeQuery: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const PathParamsDefined: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const PathSegmentPlural: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const PathsKebabCase: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule } from 'core/src/visitors';
1
+ import type { Oas3Rule } from 'core/src/visitors';
2
2
  export declare const RequiredStringPropertyMissingMinLength: Oas3Rule;
@@ -1,2 +1,2 @@
1
- import { Oas2Rule, Oas3Rule } from '../../visitors';
1
+ import type { Oas2Rule, Oas3Rule } from '../../visitors';
2
2
  export declare const ResponseContainsHeader: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas3Rule, Oas2Rule } from '../../visitors';
1
+ import type { Oas3Rule, Oas2Rule } from '../../visitors';
2
2
  export declare const SecurityDefined: Oas3Rule | Oas2Rule;
@@ -1,2 +1,2 @@
1
- import { Oas2Rule, Oas3Rule } from '../../visitors';
1
+ import type { Oas2Rule, Oas3Rule } from '../../visitors';
2
2
  export declare const SpecStrictRefs: Oas3Rule | Oas2Rule;