@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,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;
@@ -1,17 +1,18 @@
1
1
  "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
2
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.deepCloneMapWithJSON = exports.ConfigValidationError = exports.getUniquePlugins = exports.getResolveConfig = exports.transformConfig = exports.checkForDeprecatedFields = exports.getMergedConfig = exports.mergeExtends = exports.prefixRules = exports.transformApiDefinitionsToApis = exports.parsePresetName = void 0;
3
+ exports.ConfigValidationError = void 0;
4
+ exports.parsePresetName = parsePresetName;
5
+ exports.transformApiDefinitionsToApis = transformApiDefinitionsToApis;
6
+ exports.prefixRules = prefixRules;
7
+ exports.mergeExtends = mergeExtends;
8
+ exports.getMergedConfig = getMergedConfig;
9
+ exports.checkForDeprecatedFields = checkForDeprecatedFields;
10
+ exports.transformConfig = transformConfig;
11
+ exports.getResolveConfig = getResolveConfig;
12
+ exports.getUniquePlugins = getUniquePlugins;
13
+ exports.deepCloneMapWithJSON = deepCloneMapWithJSON;
14
+ exports.isDeprecatedPluginFormat = isDeprecatedPluginFormat;
15
+ exports.isCommonJsPlugin = isCommonJsPlugin;
15
16
  const utils_1 = require("../utils");
16
17
  const config_1 = require("./config");
17
18
  const logger_1 = require("../logger");
@@ -24,7 +25,6 @@ function parsePresetName(presetName) {
24
25
  return { pluginId: '', configName: presetName };
25
26
  }
26
27
  }
27
- exports.parsePresetName = parsePresetName;
28
28
  function transformApiDefinitionsToApis(apiDefinitions) {
29
29
  if (!apiDefinitions)
30
30
  return undefined;
@@ -34,10 +34,7 @@ function transformApiDefinitionsToApis(apiDefinitions) {
34
34
  }
35
35
  return apis;
36
36
  }
37
- exports.transformApiDefinitionsToApis = transformApiDefinitionsToApis;
38
- function extractFlatConfig(_a) {
39
- var _b;
40
- var { plugins, extends: _extends, rules, oas2Rules, oas3_0Rules, oas3_1Rules, async2Rules, arazzoRules, preprocessors, oas2Preprocessors, oas3_0Preprocessors, oas3_1Preprocessors, async2Preprocessors, arazzoPreprocessors, decorators, oas2Decorators, oas3_0Decorators, oas3_1Decorators, async2Decorators, arazzoDecorators } = _a, rawConfigRest = __rest(_a, ["plugins", "extends", "rules", "oas2Rules", "oas3_0Rules", "oas3_1Rules", "async2Rules", "arazzoRules", "preprocessors", "oas2Preprocessors", "oas3_0Preprocessors", "oas3_1Preprocessors", "async2Preprocessors", "arazzoPreprocessors", "decorators", "oas2Decorators", "oas3_0Decorators", "oas3_1Decorators", "async2Decorators", "arazzoDecorators"]);
37
+ function extractFlatConfig({ plugins, extends: _extends, rules, oas2Rules, oas3_0Rules, oas3_1Rules, async2Rules, async3Rules, arazzoRules, preprocessors, oas2Preprocessors, oas3_0Preprocessors, oas3_1Preprocessors, async2Preprocessors, async3Preprocessors, arazzoPreprocessors, decorators, oas2Decorators, oas3_0Decorators, oas3_1Decorators, async2Decorators, async3Decorators, arazzoDecorators, ...rawConfigRest }) {
41
38
  const styleguideConfig = {
42
39
  plugins,
43
40
  extends: _extends,
@@ -46,20 +43,23 @@ function extractFlatConfig(_a) {
46
43
  oas3_0Rules,
47
44
  oas3_1Rules,
48
45
  async2Rules,
46
+ async3Rules,
49
47
  arazzoRules,
50
48
  preprocessors,
51
49
  oas2Preprocessors,
52
50
  oas3_0Preprocessors,
53
51
  oas3_1Preprocessors,
54
52
  async2Preprocessors,
53
+ async3Preprocessors,
55
54
  arazzoPreprocessors,
56
55
  decorators,
57
56
  oas2Decorators,
58
57
  oas3_0Decorators,
59
58
  oas3_1Decorators,
60
59
  async2Decorators,
60
+ async3Decorators,
61
61
  arazzoDecorators,
62
- doNotResolveExamples: (_b = rawConfigRest.resolve) === null || _b === void 0 ? void 0 : _b.doNotResolveExamples,
62
+ doNotResolveExamples: rawConfigRest.resolve?.doNotResolveExamples,
63
63
  };
64
64
  if ((rawConfigRest.lint && rawConfigRest.styleguide) ||
65
65
  (Object.values(styleguideConfig).some(utils_1.isDefined) &&
@@ -77,10 +77,12 @@ function transformApis(legacyApis) {
77
77
  if (!legacyApis)
78
78
  return undefined;
79
79
  const apis = {};
80
- for (let _a of Object.entries(legacyApis)) {
81
- const [apiName, _b] = _a, { lint } = _b, apiContent = __rest(_b, ["lint"]);
80
+ for (const [apiName, { lint, ...apiContent }] of Object.entries(legacyApis)) {
82
81
  const { styleguideConfig, rawConfigRest } = extractFlatConfig(apiContent);
83
- apis[apiName] = Object.assign({ styleguide: styleguideConfig || lint }, rawConfigRest);
82
+ apis[apiName] = {
83
+ styleguide: styleguideConfig || lint,
84
+ ...rawConfigRest,
85
+ };
84
86
  }
85
87
  return apis;
86
88
  }
@@ -93,7 +95,6 @@ function prefixRules(rules, prefix) {
93
95
  }
94
96
  return res;
95
97
  }
96
- exports.prefixRules = prefixRules;
97
98
  function mergeExtends(rulesConfList) {
98
99
  const result = {
99
100
  rules: {},
@@ -101,18 +102,21 @@ function mergeExtends(rulesConfList) {
101
102
  oas3_0Rules: {},
102
103
  oas3_1Rules: {},
103
104
  async2Rules: {},
105
+ async3Rules: {},
104
106
  arazzoRules: {},
105
107
  preprocessors: {},
106
108
  oas2Preprocessors: {},
107
109
  oas3_0Preprocessors: {},
108
110
  oas3_1Preprocessors: {},
109
111
  async2Preprocessors: {},
112
+ async3Preprocessors: {},
110
113
  arazzoPreprocessors: {},
111
114
  decorators: {},
112
115
  oas2Decorators: {},
113
116
  oas3_0Decorators: {},
114
117
  oas3_1Decorators: {},
115
118
  async2Decorators: {},
119
+ async3Decorators: {},
116
120
  arazzoDecorators: {},
117
121
  plugins: [],
118
122
  pluginPaths: [],
@@ -131,6 +135,8 @@ function mergeExtends(rulesConfList) {
131
135
  (0, utils_1.assignExisting)(result.oas3_1Rules, rulesConf.rules || {});
132
136
  Object.assign(result.async2Rules, rulesConf.async2Rules);
133
137
  (0, utils_1.assignExisting)(result.async2Rules, rulesConf.rules || {});
138
+ Object.assign(result.async3Rules, rulesConf.async3Rules);
139
+ (0, utils_1.assignExisting)(result.async3Rules, rulesConf.rules || {});
134
140
  Object.assign(result.arazzoRules, rulesConf.arazzoRules);
135
141
  (0, utils_1.assignExisting)(result.arazzoRules, rulesConf.rules || {});
136
142
  Object.assign(result.preprocessors, rulesConf.preprocessors);
@@ -142,6 +148,8 @@ function mergeExtends(rulesConfList) {
142
148
  (0, utils_1.assignExisting)(result.oas3_1Preprocessors, rulesConf.preprocessors || {});
143
149
  Object.assign(result.async2Preprocessors, rulesConf.async2Preprocessors);
144
150
  (0, utils_1.assignExisting)(result.async2Preprocessors, rulesConf.preprocessors || {});
151
+ Object.assign(result.async3Preprocessors, rulesConf.async3Preprocessors);
152
+ (0, utils_1.assignExisting)(result.async3Preprocessors, rulesConf.preprocessors || {});
145
153
  Object.assign(result.arazzoPreprocessors, rulesConf.arazzoPreprocessors);
146
154
  (0, utils_1.assignExisting)(result.arazzoPreprocessors, rulesConf.preprocessors || {});
147
155
  Object.assign(result.decorators, rulesConf.decorators);
@@ -153,6 +161,8 @@ function mergeExtends(rulesConfList) {
153
161
  (0, utils_1.assignExisting)(result.oas3_1Decorators, rulesConf.decorators || {});
154
162
  Object.assign(result.async2Decorators, rulesConf.async2Decorators);
155
163
  (0, utils_1.assignExisting)(result.async2Decorators, rulesConf.decorators || {});
164
+ Object.assign(result.async3Decorators, rulesConf.async3Decorators);
165
+ (0, utils_1.assignExisting)(result.async3Decorators, rulesConf.decorators || {});
156
166
  Object.assign(result.arazzoDecorators, rulesConf.arazzoDecorators);
157
167
  (0, utils_1.assignExisting)(result.arazzoDecorators, rulesConf.decorators || {});
158
168
  result.plugins.push(...(rulesConf.plugins || []));
@@ -161,29 +171,38 @@ function mergeExtends(rulesConfList) {
161
171
  }
162
172
  return result;
163
173
  }
164
- exports.mergeExtends = mergeExtends;
165
174
  function getMergedConfig(config, apiName) {
166
- var _a, _b, _c, _d, _e, _f, _g, _h;
167
175
  const extendPaths = [
168
- ...Object.values(config.apis).map((api) => { var _a; return (_a = api === null || api === void 0 ? void 0 : api.styleguide) === null || _a === void 0 ? void 0 : _a.extendPaths; }),
169
- (_b = (_a = config.rawConfig) === null || _a === void 0 ? void 0 : _a.styleguide) === null || _b === void 0 ? void 0 : _b.extendPaths,
176
+ ...Object.values(config.apis).map((api) => api?.styleguide?.extendPaths),
177
+ config.rawConfig?.styleguide?.extendPaths,
170
178
  ]
171
179
  .flat()
172
180
  .filter(utils_1.isTruthy);
173
181
  const pluginPaths = [
174
- ...Object.values(config.apis).map((api) => { var _a; return (_a = api === null || api === void 0 ? void 0 : api.styleguide) === null || _a === void 0 ? void 0 : _a.pluginPaths; }),
175
- (_d = (_c = config.rawConfig) === null || _c === void 0 ? void 0 : _c.styleguide) === null || _d === void 0 ? void 0 : _d.pluginPaths,
182
+ ...Object.values(config.apis).map((api) => api?.styleguide?.pluginPaths),
183
+ config.rawConfig?.styleguide?.pluginPaths,
176
184
  ]
177
185
  .flat()
178
186
  .filter(utils_1.isTruthy);
179
187
  return apiName
180
- ? new config_1.Config(Object.assign(Object.assign({}, config.rawConfig), { styleguide: Object.assign(Object.assign({}, (config.apis[apiName]
181
- ? config.apis[apiName].styleguide
182
- : config.rawConfig.styleguide)), { extendPaths,
183
- pluginPaths }), theme: Object.assign(Object.assign({}, config.rawConfig.theme), (_e = config.apis[apiName]) === null || _e === void 0 ? void 0 : _e.theme), files: [...config.files, ...((_h = (_g = (_f = config.apis) === null || _f === void 0 ? void 0 : _f[apiName]) === null || _g === void 0 ? void 0 : _g.files) !== null && _h !== void 0 ? _h : [])] }), config.configFile)
188
+ ? new config_1.Config({
189
+ ...config.rawConfig,
190
+ styleguide: {
191
+ ...(config.apis[apiName]
192
+ ? config.apis[apiName].styleguide
193
+ : config.rawConfig.styleguide),
194
+ extendPaths,
195
+ pluginPaths,
196
+ },
197
+ theme: {
198
+ ...config.rawConfig.theme,
199
+ ...config.apis[apiName]?.theme,
200
+ },
201
+ files: [...config.files, ...(config.apis?.[apiName]?.files ?? [])],
202
+ // TODO: merge everything else here
203
+ }, config.configFile)
184
204
  : config;
185
205
  }
186
- exports.getMergedConfig = getMergedConfig;
187
206
  function checkForDeprecatedFields(deprecatedField, updatedField, rawConfig, updatedObject) {
188
207
  const isDeprecatedFieldInApis = rawConfig.apis &&
189
208
  Object.values(rawConfig.apis).some((api) => api[deprecatedField]);
@@ -200,9 +219,7 @@ function checkForDeprecatedFields(deprecatedField, updatedField, rawConfig, upda
200
219
  (0, utils_1.showWarningForDeprecatedField)(deprecatedField, updatedField, updatedObject);
201
220
  }
202
221
  }
203
- exports.checkForDeprecatedFields = checkForDeprecatedFields;
204
222
  function transformConfig(rawConfig) {
205
- var _a, _b;
206
223
  const migratedFields = [
207
224
  ['apiDefinitions', 'apis', undefined],
208
225
  ['referenceDocs', 'openapi', 'theme'],
@@ -213,21 +230,31 @@ function transformConfig(rawConfig) {
213
230
  for (const [deprecatedField, updatedField, updatedObject] of migratedFields) {
214
231
  checkForDeprecatedFields(deprecatedField, updatedField, rawConfig, updatedObject);
215
232
  }
216
- const { apis, apiDefinitions, referenceDocs, lint } = rawConfig, rest = __rest(rawConfig, ["apis", "apiDefinitions", "referenceDocs", "lint"]);
233
+ const { apis, apiDefinitions, referenceDocs, lint, ...rest } = rawConfig;
217
234
  const { styleguideConfig, rawConfigRest } = extractFlatConfig(rest);
218
- const transformedConfig = Object.assign({ theme: {
219
- openapi: Object.assign(Object.assign(Object.assign({}, referenceDocs), rawConfig['features.openapi']), (_a = rawConfig.theme) === null || _a === void 0 ? void 0 : _a.openapi),
220
- mockServer: Object.assign(Object.assign({}, rawConfig['features.mockServer']), (_b = rawConfig.theme) === null || _b === void 0 ? void 0 : _b.mockServer),
221
- }, apis: transformApis(apis) || transformApiDefinitionsToApis(apiDefinitions), styleguide: styleguideConfig || lint }, rawConfigRest);
235
+ const transformedConfig = {
236
+ theme: {
237
+ openapi: {
238
+ ...referenceDocs,
239
+ ...rawConfig['features.openapi'],
240
+ ...rawConfig.theme?.openapi,
241
+ },
242
+ mockServer: {
243
+ ...rawConfig['features.mockServer'],
244
+ ...rawConfig.theme?.mockServer,
245
+ },
246
+ },
247
+ apis: transformApis(apis) || transformApiDefinitionsToApis(apiDefinitions),
248
+ styleguide: styleguideConfig || lint,
249
+ ...rawConfigRest,
250
+ };
222
251
  showDeprecationMessages(transformedConfig);
223
252
  return transformedConfig;
224
253
  }
225
- exports.transformConfig = transformConfig;
226
254
  function showDeprecationMessages(config) {
227
- var _a, _b;
228
- let allRules = Object.assign({}, (_a = config.styleguide) === null || _a === void 0 ? void 0 : _a.rules);
255
+ let allRules = { ...config.styleguide?.rules };
229
256
  for (const api of Object.values(config.apis || {})) {
230
- allRules = Object.assign(Object.assign({}, allRules), (_b = api === null || api === void 0 ? void 0 : api.styleguide) === null || _b === void 0 ? void 0 : _b.rules);
257
+ allRules = { ...allRules, ...api?.styleguide?.rules };
231
258
  }
232
259
  for (const ruleKey of Object.keys(allRules)) {
233
260
  if (ruleKey.startsWith('assert/')) {
@@ -236,15 +263,13 @@ function showDeprecationMessages(config) {
236
263
  }
237
264
  }
238
265
  function getResolveConfig(resolve) {
239
- var _a, _b;
240
266
  return {
241
267
  http: {
242
- headers: (_b = (_a = resolve === null || resolve === void 0 ? void 0 : resolve.http) === null || _a === void 0 ? void 0 : _a.headers) !== null && _b !== void 0 ? _b : [],
268
+ headers: resolve?.http?.headers ?? [],
243
269
  customFetch: undefined,
244
270
  },
245
271
  };
246
272
  }
247
- exports.getResolveConfig = getResolveConfig;
248
273
  function getUniquePlugins(plugins) {
249
274
  const seen = new Set();
250
275
  const results = [];
@@ -259,11 +284,15 @@ function getUniquePlugins(plugins) {
259
284
  }
260
285
  return results;
261
286
  }
262
- exports.getUniquePlugins = getUniquePlugins;
263
287
  class ConfigValidationError extends Error {
264
288
  }
265
289
  exports.ConfigValidationError = ConfigValidationError;
266
290
  function deepCloneMapWithJSON(originalMap) {
267
291
  return new Map(JSON.parse(JSON.stringify([...originalMap])));
268
292
  }
269
- exports.deepCloneMapWithJSON = deepCloneMapWithJSON;
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
+ }
@@ -0,0 +1 @@
1
+ export declare const decorators: {};
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decorators = void 0;
4
+ exports.decorators = {};
@@ -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,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkIfMatchByStrategy = exports.filter = void 0;
3
+ exports.filter = filter;
4
+ exports.checkIfMatchByStrategy = checkIfMatchByStrategy;
4
5
  const ref_utils_1 = require("../../../ref-utils");
5
6
  const utils_1 = require("../../../utils");
6
7
  function filter(node, ctx, criteria) {
@@ -43,7 +44,6 @@ function filter(node, ctx, criteria) {
43
44
  delete parent[key];
44
45
  }
45
46
  }
46
- exports.filter = filter;
47
47
  function checkIfMatchByStrategy(nodeValue, decoratorValue, strategy) {
48
48
  if (nodeValue === undefined || decoratorValue === undefined) {
49
49
  return false;
@@ -61,7 +61,6 @@ function checkIfMatchByStrategy(nodeValue, decoratorValue, strategy) {
61
61
  }
62
62
  return false;
63
63
  }
64
- exports.checkIfMatchByStrategy = checkIfMatchByStrategy;
65
64
  function toArrayIfNeeded(value) {
66
65
  return Array.isArray(value) ? value : [value];
67
66
  }
@@ -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;
@@ -5,7 +5,7 @@ const filter_helper_1 = require("./filter-helper");
5
5
  const DEFAULT_STRATEGY = 'any';
6
6
  const FilterIn = ({ property, value, matchStrategy }) => {
7
7
  const strategy = matchStrategy || DEFAULT_STRATEGY;
8
- const filterInCriteria = (item) => (item === null || item === void 0 ? void 0 : item[property]) && !(0, filter_helper_1.checkIfMatchByStrategy)(item === null || item === void 0 ? void 0 : item[property], value, strategy);
8
+ const filterInCriteria = (item) => item?.[property] && !(0, filter_helper_1.checkIfMatchByStrategy)(item?.[property], value, strategy);
9
9
  return {
10
10
  any: {
11
11
  enter: (node, ctx) => {
@@ -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;
@@ -5,7 +5,7 @@ const filter_helper_1 = require("./filter-helper");
5
5
  const DEFAULT_STRATEGY = 'any';
6
6
  const FilterOut = ({ property, value, matchStrategy }) => {
7
7
  const strategy = matchStrategy || DEFAULT_STRATEGY;
8
- const filterOutCriteria = (item) => (0, filter_helper_1.checkIfMatchByStrategy)(item === null || item === void 0 ? void 0 : item[property], value, strategy);
8
+ const filterOutCriteria = (item) => (0, filter_helper_1.checkIfMatchByStrategy)(item?.[property], value, strategy);
9
9
  return {
10
10
  any: {
11
11
  enter: (node, ctx) => {
@@ -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,15 +1,4 @@
1
1
  "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
2
  Object.defineProperty(exports, "__esModule", { value: true });
14
3
  exports.InfoOverride = void 0;
15
4
  const InfoOverride = (newInfo) => {
@@ -19,7 +8,7 @@ const InfoOverride = (newInfo) => {
19
8
  if (typeof newInfo !== 'object' || Array.isArray(newInfo) || newInfo === null) {
20
9
  throw new Error(`"info-override" decorator should be called with an object`);
21
10
  }
22
- const { severity: _ } = newInfo, rest = __rest(newInfo, ["severity"]);
11
+ const { severity: _, ...rest } = newInfo;
23
12
  Object.assign(info, rest);
24
13
  },
25
14
  },
@@ -1,2 +1,2 @@
1
- import { Oas3Decorator } from '../../visitors';
1
+ import type { Oas3Decorator } from '../../visitors';
2
2
  export declare const MediaTypeExamplesOverride: Oas3Decorator;
@@ -23,7 +23,10 @@ const MediaTypeExamplesOverride = ({ operationIds }) => {
23
23
  }
24
24
  resolvedResponse.content = resolvedResponse.content ? resolvedResponse.content : {};
25
25
  Object.keys(properties.responses[responseCode]).forEach((mimeType) => {
26
- resolvedResponse.content[mimeType] = Object.assign(Object.assign({}, resolvedResponse.content[mimeType]), { examples: (0, utils_1.yamlAndJsonSyncReader)(properties.responses[responseCode][mimeType]) });
26
+ resolvedResponse.content[mimeType] = {
27
+ ...resolvedResponse.content[mimeType],
28
+ examples: (0, utils_1.yamlAndJsonSyncReader)(properties.responses[responseCode][mimeType]),
29
+ };
27
30
  });
28
31
  operation.responses[responseCode] = resolvedResponse;
29
32
  }
@@ -35,7 +38,10 @@ const MediaTypeExamplesOverride = ({ operationIds }) => {
35
38
  }
36
39
  resolvedRequest.content = resolvedRequest.content ? resolvedRequest.content : {};
37
40
  Object.keys(properties.request).forEach((mimeType) => {
38
- resolvedRequest.content[mimeType] = Object.assign(Object.assign({}, resolvedRequest.content[mimeType]), { examples: (0, utils_1.yamlAndJsonSyncReader)(properties.request[mimeType]) });
41
+ resolvedRequest.content[mimeType] = {
42
+ ...resolvedRequest.content[mimeType],
43
+ examples: (0, utils_1.yamlAndJsonSyncReader)(properties.request[mimeType]),
44
+ };
39
45
  });
40
46
  operation.requestBody = resolvedRequest;
41
47
  }
@@ -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;
@@ -7,20 +7,19 @@ const DEFAULT_INTERNAL_PROPERTY_NAME = 'x-internal';
7
7
  const RemoveXInternal = ({ internalFlagProperty }) => {
8
8
  const hiddenTag = internalFlagProperty || DEFAULT_INTERNAL_PROPERTY_NAME;
9
9
  function removeInternal(node, ctx) {
10
- var _a, _b, _c, _d;
11
10
  const { parent, key } = ctx;
12
11
  let didDelete = false;
13
12
  if (Array.isArray(node)) {
14
13
  for (let i = 0; i < node.length; i++) {
15
14
  if ((0, ref_utils_1.isRef)(node[i])) {
16
15
  const resolved = ctx.resolve(node[i]);
17
- if ((_a = resolved.node) === null || _a === void 0 ? void 0 : _a[hiddenTag]) {
16
+ if (resolved.node?.[hiddenTag]) {
18
17
  node.splice(i, 1);
19
18
  didDelete = true;
20
19
  i--;
21
20
  }
22
21
  }
23
- if ((_b = node[i]) === null || _b === void 0 ? void 0 : _b[hiddenTag]) {
22
+ if (node[i]?.[hiddenTag]) {
24
23
  node.splice(i, 1);
25
24
  didDelete = true;
26
25
  i--;
@@ -32,12 +31,12 @@ const RemoveXInternal = ({ internalFlagProperty }) => {
32
31
  node = node;
33
32
  if ((0, ref_utils_1.isRef)(node[key])) {
34
33
  const resolved = ctx.resolve(node[key]);
35
- if ((_c = resolved.node) === null || _c === void 0 ? void 0 : _c[hiddenTag]) {
34
+ if (resolved.node?.[hiddenTag]) {
36
35
  delete node[key];
37
36
  didDelete = true;
38
37
  }
39
38
  }
40
- if ((_d = node[key]) === null || _d === void 0 ? void 0 : _d[hiddenTag]) {
39
+ if (node[key]?.[hiddenTag]) {
41
40
  delete node[key];
42
41
  didDelete = true;
43
42
  }
@@ -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;
@@ -5,9 +5,8 @@ const utils_1 = require("../../utils");
5
5
  const RemoveUnusedComponents = () => {
6
6
  const components = new Map();
7
7
  function registerComponent(location, componentType, name) {
8
- var _a, _b;
9
8
  components.set(location.absolutePointer, {
10
- usedIn: (_b = (_a = components.get(location.absolutePointer)) === null || _a === void 0 ? void 0 : _a.usedIn) !== null && _b !== void 0 ? _b : [],
9
+ usedIn: components.get(location.absolutePointer)?.usedIn ?? [],
11
10
  componentType,
12
11
  name,
13
12
  });
@@ -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;
@@ -5,9 +5,8 @@ const utils_1 = require("../../utils");
5
5
  const RemoveUnusedComponents = () => {
6
6
  const components = new Map();
7
7
  function registerComponent(location, componentType, name) {
8
- var _a, _b;
9
8
  components.set(location.absolutePointer, {
10
- usedIn: (_b = (_a = components.get(location.absolutePointer)) === null || _a === void 0 ? void 0 : _a.usedIn) !== null && _b !== void 0 ? _b : [],
9
+ usedIn: components.get(location.absolutePointer)?.usedIn ?? [],
11
10
  componentType,
12
11
  name,
13
12
  });
package/lib/env.d.ts CHANGED
@@ -1,3 +1,2 @@
1
- /// <reference types="node" />
2
1
  export declare const isBrowser: boolean;
3
2
  export declare const env: NodeJS.ProcessEnv;
package/lib/env.js CHANGED
@@ -3,5 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.env = exports.isBrowser = void 0;
4
4
  exports.isBrowser = typeof window !== 'undefined' ||
5
5
  typeof process === 'undefined' ||
6
- (process === null || process === void 0 ? void 0 : process.platform) === 'browser'; // main and worker thread
6
+ process?.platform === 'browser'; // main and worker thread
7
7
  exports.env = exports.isBrowser ? {} : process.env || {};
@@ -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,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAstNodeByPointer = exports.getLineColLocation = exports.getCodeframe = void 0;
3
+ exports.getCodeframe = getCodeframe;
4
+ exports.getLineColLocation = getLineColLocation;
5
+ exports.getAstNodeByPointer = getAstNodeByPointer;
4
6
  const yamlAst = require("yaml-ast-parser");
5
7
  const ref_utils_1 = require("../ref-utils");
6
8
  const logger_1 = require("../logger");
@@ -66,7 +68,6 @@ function getCodeframe(location, color) {
66
68
  return (line.substr(0, startIdx) + variant(line.substring(startIdx, endIdx)) + line.substr(endIdx));
67
69
  }
68
70
  }
69
- exports.getCodeframe = getCodeframe;
70
71
  function printPrefixedLines(lines) {
71
72
  const existingLines = lines.filter(([_, line]) => line !== undefined);
72
73
  const padLen = Math.max(...existingLines.map(([prefix]) => prefix.length));
@@ -107,15 +108,17 @@ function padSize(line) {
107
108
  return line.length;
108
109
  }
109
110
  function getLineColLocation(location) {
110
- var _a, _b;
111
111
  if (location.pointer === undefined)
112
112
  return location;
113
113
  const { source, pointer, reportOnKey } = location;
114
114
  const ast = source.getAst(yamlAst.safeLoad);
115
115
  const astNode = getAstNodeByPointer(ast, pointer, !!reportOnKey);
116
- return Object.assign(Object.assign(Object.assign({}, location), { pointer: undefined }), positionsToLoc(source.body, (_a = astNode === null || astNode === void 0 ? void 0 : astNode.startPosition) !== null && _a !== void 0 ? _a : 1, (_b = astNode === null || astNode === void 0 ? void 0 : astNode.endPosition) !== null && _b !== void 0 ? _b : 1));
116
+ return {
117
+ ...location,
118
+ pointer: undefined,
119
+ ...positionsToLoc(source.body, astNode?.startPosition ?? 1, astNode?.endPosition ?? 1),
120
+ };
117
121
  }
118
- exports.getLineColLocation = getLineColLocation;
119
122
  function positionsToLoc(source, startPos, endPos) {
120
123
  let currentLine = 1;
121
124
  let currentCol = 1;
@@ -136,7 +139,7 @@ function positionsToLoc(source, startPos, endPos) {
136
139
  }
137
140
  currentCol++;
138
141
  }
139
- const end = startPos === endPos ? Object.assign({}, start) : { line: currentLine, col: currentCol + 1 };
142
+ const end = startPos === endPos ? { ...start } : { line: currentLine, col: currentCol + 1 };
140
143
  return { start, end };
141
144
  }
142
145
  function getAstNodeByPointer(root, pointer, reportOnKey) {
@@ -151,7 +154,7 @@ function getAstNodeByPointer(root, pointer, reportOnKey) {
151
154
  if (!mapping)
152
155
  break;
153
156
  currentNode = mapping;
154
- if (!(mapping === null || mapping === void 0 ? void 0 : mapping.value))
157
+ if (!mapping?.value)
155
158
  break; // If node has value - return value, if not - return node itself
156
159
  currentNode = mapping.value;
157
160
  }
@@ -180,4 +183,3 @@ function getAstNodeByPointer(root, pointer, reportOnKey) {
180
183
  }
181
184
  }
182
185
  }
183
- exports.getAstNodeByPointer = getAstNodeByPointer;
@@ -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;