@redocly/openapi-core 0.0.0-snapshot.1737554067

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 (322) hide show
  1. package/README.md +268 -0
  2. package/lib/benchmark/benches/lint-with-many-rules.bench.d.ts +4 -0
  3. package/lib/benchmark/benches/lint-with-many-rules.bench.js +38 -0
  4. package/lib/benchmark/benches/lint-with-nested-rule.bench.d.ts +4 -0
  5. package/lib/benchmark/benches/lint-with-nested-rule.bench.js +44 -0
  6. package/lib/benchmark/benches/lint-with-no-rules.bench.d.ts +4 -0
  7. package/lib/benchmark/benches/lint-with-no-rules.bench.js +25 -0
  8. package/lib/benchmark/benches/lint-with-top-level-rule-report.bench.d.ts +4 -0
  9. package/lib/benchmark/benches/lint-with-top-level-rule-report.bench.js +37 -0
  10. package/lib/benchmark/benches/lint-with-top-level-rule.bench.d.ts +4 -0
  11. package/lib/benchmark/benches/lint-with-top-level-rule.bench.js +36 -0
  12. package/lib/benchmark/benches/recommended-oas3.bench.d.ts +3 -0
  13. package/lib/benchmark/benches/recommended-oas3.bench.js +21 -0
  14. package/lib/benchmark/benches/resolve-with-no-external.bench.d.ts +3 -0
  15. package/lib/benchmark/benches/resolve-with-no-external.bench.js +22 -0
  16. package/lib/benchmark/utils.d.ts +6 -0
  17. package/lib/benchmark/utils.js +34 -0
  18. package/lib/bundle.d.ts +50 -0
  19. package/lib/bundle.js +385 -0
  20. package/lib/config/all.d.ts +3 -0
  21. package/lib/config/all.js +227 -0
  22. package/lib/config/builtIn.d.ts +3 -0
  23. package/lib/config/builtIn.js +53 -0
  24. package/lib/config/config-resolvers.d.ts +30 -0
  25. package/lib/config/config-resolvers.js +447 -0
  26. package/lib/config/config.d.ts +53 -0
  27. package/lib/config/config.js +320 -0
  28. package/lib/config/index.d.ts +7 -0
  29. package/lib/config/index.js +23 -0
  30. package/lib/config/load.d.ts +38 -0
  31. package/lib/config/load.js +140 -0
  32. package/lib/config/minimal.d.ts +3 -0
  33. package/lib/config/minimal.js +203 -0
  34. package/lib/config/recommended-strict.d.ts +3 -0
  35. package/lib/config/recommended-strict.js +203 -0
  36. package/lib/config/recommended.d.ts +3 -0
  37. package/lib/config/recommended.js +203 -0
  38. package/lib/config/rules.d.ts +10 -0
  39. package/lib/config/rules.js +37 -0
  40. package/lib/config/spec.d.ts +3 -0
  41. package/lib/config/spec.js +29 -0
  42. package/lib/config/types.d.ts +189 -0
  43. package/lib/config/types.js +2 -0
  44. package/lib/config/utils.d.ts +19 -0
  45. package/lib/config/utils.js +308 -0
  46. package/lib/decorators/arazzo/index.d.ts +1 -0
  47. package/lib/decorators/arazzo/index.js +4 -0
  48. package/lib/decorators/async2/index.d.ts +1 -0
  49. package/lib/decorators/async2/index.js +4 -0
  50. package/lib/decorators/async3/index.d.ts +1 -0
  51. package/lib/decorators/async3/index.js +4 -0
  52. package/lib/decorators/common/filters/filter-helper.d.ts +3 -0
  53. package/lib/decorators/common/filters/filter-helper.js +66 -0
  54. package/lib/decorators/common/filters/filter-in.d.ts +2 -0
  55. package/lib/decorators/common/filters/filter-in.js +17 -0
  56. package/lib/decorators/common/filters/filter-out.d.ts +2 -0
  57. package/lib/decorators/common/filters/filter-out.js +17 -0
  58. package/lib/decorators/common/info-description-override.d.ts +2 -0
  59. package/lib/decorators/common/info-description-override.js +24 -0
  60. package/lib/decorators/common/info-override.d.ts +2 -0
  61. package/lib/decorators/common/info-override.js +17 -0
  62. package/lib/decorators/common/media-type-examples-override.d.ts +2 -0
  63. package/lib/decorators/common/media-type-examples-override.js +59 -0
  64. package/lib/decorators/common/operation-description-override.d.ts +2 -0
  65. package/lib/decorators/common/operation-description-override.js +29 -0
  66. package/lib/decorators/common/registry-dependencies.d.ts +2 -0
  67. package/lib/decorators/common/registry-dependencies.js +24 -0
  68. package/lib/decorators/common/remove-x-internal.d.ts +2 -0
  69. package/lib/decorators/common/remove-x-internal.js +69 -0
  70. package/lib/decorators/common/tag-description-override.d.ts +2 -0
  71. package/lib/decorators/common/tag-description-override.js +25 -0
  72. package/lib/decorators/oas2/index.d.ts +11 -0
  73. package/lib/decorators/oas2/index.js +21 -0
  74. package/lib/decorators/oas2/remove-unused-components.d.ts +2 -0
  75. package/lib/decorators/oas2/remove-unused-components.js +89 -0
  76. package/lib/decorators/oas3/index.d.ts +12 -0
  77. package/lib/decorators/oas3/index.js +23 -0
  78. package/lib/decorators/oas3/remove-unused-components.d.ts +2 -0
  79. package/lib/decorators/oas3/remove-unused-components.js +100 -0
  80. package/lib/env.d.ts +2 -0
  81. package/lib/env.js +7 -0
  82. package/lib/format/codeframes.d.ts +22 -0
  83. package/lib/format/codeframes.js +185 -0
  84. package/lib/format/format.d.ts +20 -0
  85. package/lib/format/format.js +365 -0
  86. package/lib/index.d.ts +26 -0
  87. package/lib/index.js +98 -0
  88. package/lib/js-yaml/index.d.ts +3 -0
  89. package/lib/js-yaml/index.js +15 -0
  90. package/lib/lint.d.ts +32 -0
  91. package/lib/lint.js +118 -0
  92. package/lib/logger.d.ts +10 -0
  93. package/lib/logger.js +31 -0
  94. package/lib/oas-types.d.ts +36 -0
  95. package/lib/oas-types.js +92 -0
  96. package/lib/output.d.ts +3 -0
  97. package/lib/output.js +9 -0
  98. package/lib/redocly/domains.d.ts +14 -0
  99. package/lib/redocly/domains.js +41 -0
  100. package/lib/redocly/index.d.ts +30 -0
  101. package/lib/redocly/index.js +131 -0
  102. package/lib/redocly/redocly-client-types.d.ts +8 -0
  103. package/lib/redocly/redocly-client-types.js +2 -0
  104. package/lib/redocly/registry-api-types.d.ts +29 -0
  105. package/lib/redocly/registry-api-types.js +2 -0
  106. package/lib/redocly/registry-api.d.ts +17 -0
  107. package/lib/redocly/registry-api.js +96 -0
  108. package/lib/ref-utils.d.ts +27 -0
  109. package/lib/ref-utils.js +85 -0
  110. package/lib/resolve.d.ts +66 -0
  111. package/lib/resolve.js +342 -0
  112. package/lib/rules/ajv.d.ts +10 -0
  113. package/lib/rules/ajv.js +82 -0
  114. package/lib/rules/arazzo/criteria-unique.d.ts +2 -0
  115. package/lib/rules/arazzo/criteria-unique.js +71 -0
  116. package/lib/rules/arazzo/index.d.ts +3 -0
  117. package/lib/rules/arazzo/index.js +36 -0
  118. package/lib/rules/arazzo/parameters-unique.d.ts +2 -0
  119. package/lib/rules/arazzo/parameters-unique.js +32 -0
  120. package/lib/rules/arazzo/requestBody-replacements-unique.d.ts +2 -0
  121. package/lib/rules/arazzo/requestBody-replacements-unique.js +28 -0
  122. package/lib/rules/arazzo/sourceDescription-type.d.ts +2 -0
  123. package/lib/rules/arazzo/sourceDescription-type.js +22 -0
  124. package/lib/rules/arazzo/sourceDescriptions-name-unique.d.ts +2 -0
  125. package/lib/rules/arazzo/sourceDescriptions-name-unique.js +24 -0
  126. package/lib/rules/arazzo/sourceDescriptions-not-empty.d.ts +2 -0
  127. package/lib/rules/arazzo/sourceDescriptions-not-empty.js +18 -0
  128. package/lib/rules/arazzo/step-onFailure-unique.d.ts +2 -0
  129. package/lib/rules/arazzo/step-onFailure-unique.js +32 -0
  130. package/lib/rules/arazzo/step-onSuccess-unique.d.ts +2 -0
  131. package/lib/rules/arazzo/step-onSuccess-unique.js +32 -0
  132. package/lib/rules/arazzo/stepId-unique.d.ts +2 -0
  133. package/lib/rules/arazzo/stepId-unique.js +26 -0
  134. package/lib/rules/arazzo/workflow-dependsOn.d.ts +2 -0
  135. package/lib/rules/arazzo/workflow-dependsOn.js +56 -0
  136. package/lib/rules/arazzo/workflowId-unique.d.ts +2 -0
  137. package/lib/rules/arazzo/workflowId-unique.js +22 -0
  138. package/lib/rules/async2/channels-kebab-case.d.ts +2 -0
  139. package/lib/rules/async2/channels-kebab-case.js +19 -0
  140. package/lib/rules/async2/index.d.ts +3 -0
  141. package/lib/rules/async2/index.js +27 -0
  142. package/lib/rules/async2/no-channel-trailing-slash.d.ts +2 -0
  143. package/lib/rules/async2/no-channel-trailing-slash.js +16 -0
  144. package/lib/rules/async3/channels-kebab-case.d.ts +2 -0
  145. package/lib/rules/async3/channels-kebab-case.js +19 -0
  146. package/lib/rules/async3/index.d.ts +3 -0
  147. package/lib/rules/async3/index.js +27 -0
  148. package/lib/rules/async3/no-channel-trailing-slash.d.ts +2 -0
  149. package/lib/rules/async3/no-channel-trailing-slash.js +16 -0
  150. package/lib/rules/common/assertions/asserts.d.ts +30 -0
  151. package/lib/rules/common/assertions/asserts.js +281 -0
  152. package/lib/rules/common/assertions/index.d.ts +27 -0
  153. package/lib/rules/common/assertions/index.js +24 -0
  154. package/lib/rules/common/assertions/utils.d.ts +28 -0
  155. package/lib/rules/common/assertions/utils.js +226 -0
  156. package/lib/rules/common/info-contact.d.ts +2 -0
  157. package/lib/rules/common/info-contact.js +17 -0
  158. package/lib/rules/common/info-license-strict.d.ts +2 -0
  159. package/lib/rules/common/info-license-strict.js +26 -0
  160. package/lib/rules/common/info-license-url.d.ts +2 -0
  161. package/lib/rules/common/info-license-url.js +12 -0
  162. package/lib/rules/common/info-license.d.ts +2 -0
  163. package/lib/rules/common/info-license.js +17 -0
  164. package/lib/rules/common/no-ambiguous-paths.d.ts +2 -0
  165. package/lib/rules/common/no-ambiguous-paths.js +45 -0
  166. package/lib/rules/common/no-enum-type-mismatch.d.ts +2 -0
  167. package/lib/rules/common/no-enum-type-mismatch.js +41 -0
  168. package/lib/rules/common/no-http-verbs-in-paths.d.ts +2 -0
  169. package/lib/rules/common/no-http-verbs-in-paths.js +33 -0
  170. package/lib/rules/common/no-identical-paths.d.ts +2 -0
  171. package/lib/rules/common/no-identical-paths.js +24 -0
  172. package/lib/rules/common/no-invalid-parameter-examples.d.ts +1 -0
  173. package/lib/rules/common/no-invalid-parameter-examples.js +24 -0
  174. package/lib/rules/common/no-invalid-schema-examples.d.ts +1 -0
  175. package/lib/rules/common/no-invalid-schema-examples.js +22 -0
  176. package/lib/rules/common/no-path-trailing-slash.d.ts +2 -0
  177. package/lib/rules/common/no-path-trailing-slash.js +16 -0
  178. package/lib/rules/common/no-required-schema-properties-undefined.d.ts +2 -0
  179. package/lib/rules/common/no-required-schema-properties-undefined.js +36 -0
  180. package/lib/rules/common/operation-2xx-response.d.ts +2 -0
  181. package/lib/rules/common/operation-2xx-response.js +23 -0
  182. package/lib/rules/common/operation-4xx-response.d.ts +2 -0
  183. package/lib/rules/common/operation-4xx-response.js +23 -0
  184. package/lib/rules/common/operation-description.d.ts +2 -0
  185. package/lib/rules/common/operation-description.js +12 -0
  186. package/lib/rules/common/operation-operationId-unique.d.ts +2 -0
  187. package/lib/rules/common/operation-operationId-unique.js +20 -0
  188. package/lib/rules/common/operation-operationId-url-safe.d.ts +2 -0
  189. package/lib/rules/common/operation-operationId-url-safe.js +18 -0
  190. package/lib/rules/common/operation-operationId.d.ts +2 -0
  191. package/lib/rules/common/operation-operationId.js +16 -0
  192. package/lib/rules/common/operation-parameters-unique.d.ts +2 -0
  193. package/lib/rules/common/operation-parameters-unique.js +40 -0
  194. package/lib/rules/common/operation-singular-tag.d.ts +2 -0
  195. package/lib/rules/common/operation-singular-tag.js +16 -0
  196. package/lib/rules/common/operation-summary.d.ts +2 -0
  197. package/lib/rules/common/operation-summary.js +12 -0
  198. package/lib/rules/common/operation-tag-defined.d.ts +2 -0
  199. package/lib/rules/common/operation-tag-defined.js +24 -0
  200. package/lib/rules/common/parameter-description.d.ts +2 -0
  201. package/lib/rules/common/parameter-description.js +22 -0
  202. package/lib/rules/common/path-declaration-must-exist.d.ts +2 -0
  203. package/lib/rules/common/path-declaration-must-exist.js +16 -0
  204. package/lib/rules/common/path-excludes-patterns.d.ts +2 -0
  205. package/lib/rules/common/path-excludes-patterns.js +22 -0
  206. package/lib/rules/common/path-http-verbs-order.d.ts +2 -0
  207. package/lib/rules/common/path-http-verbs-order.js +26 -0
  208. package/lib/rules/common/path-not-include-query.d.ts +2 -0
  209. package/lib/rules/common/path-not-include-query.js +18 -0
  210. package/lib/rules/common/path-params-defined.d.ts +2 -0
  211. package/lib/rules/common/path-params-defined.js +58 -0
  212. package/lib/rules/common/path-segment-plural.d.ts +2 -0
  213. package/lib/rules/common/path-segment-plural.js +33 -0
  214. package/lib/rules/common/paths-kebab-case.d.ts +2 -0
  215. package/lib/rules/common/paths-kebab-case.js +20 -0
  216. package/lib/rules/common/required-string-property-missing-min-length.d.ts +2 -0
  217. package/lib/rules/common/required-string-property-missing-min-length.js +37 -0
  218. package/lib/rules/common/response-contains-header.d.ts +2 -0
  219. package/lib/rules/common/response-contains-header.js +29 -0
  220. package/lib/rules/common/scalar-property-missing-example.d.ts +2 -0
  221. package/lib/rules/common/scalar-property-missing-example.js +42 -0
  222. package/lib/rules/common/security-defined.d.ts +2 -0
  223. package/lib/rules/common/security-defined.js +65 -0
  224. package/lib/rules/common/spec-strict-refs.d.ts +2 -0
  225. package/lib/rules/common/spec-strict-refs.js +30 -0
  226. package/lib/rules/common/struct.d.ts +2 -0
  227. package/lib/rules/common/struct.js +158 -0
  228. package/lib/rules/common/tag-description.d.ts +2 -0
  229. package/lib/rules/common/tag-description.js +12 -0
  230. package/lib/rules/common/tags-alphabetical.d.ts +2 -0
  231. package/lib/rules/common/tags-alphabetical.js +23 -0
  232. package/lib/rules/no-unresolved-refs.d.ts +5 -0
  233. package/lib/rules/no-unresolved-refs.js +46 -0
  234. package/lib/rules/oas2/boolean-parameter-prefixes.d.ts +5 -0
  235. package/lib/rules/oas2/boolean-parameter-prefixes.js +22 -0
  236. package/lib/rules/oas2/index.d.ts +3 -0
  237. package/lib/rules/oas2/index.js +98 -0
  238. package/lib/rules/oas2/request-mime-type.d.ts +2 -0
  239. package/lib/rules/oas2/request-mime-type.js +17 -0
  240. package/lib/rules/oas2/response-contains-property.d.ts +2 -0
  241. package/lib/rules/oas2/response-contains-property.js +37 -0
  242. package/lib/rules/oas2/response-mime-type.d.ts +2 -0
  243. package/lib/rules/oas2/response-mime-type.js +17 -0
  244. package/lib/rules/oas3/array-parameter-serialization.d.ts +5 -0
  245. package/lib/rules/oas3/array-parameter-serialization.js +29 -0
  246. package/lib/rules/oas3/boolean-parameter-prefixes.d.ts +5 -0
  247. package/lib/rules/oas3/boolean-parameter-prefixes.js +24 -0
  248. package/lib/rules/oas3/component-name-unique.d.ts +2 -0
  249. package/lib/rules/oas3/component-name-unique.js +133 -0
  250. package/lib/rules/oas3/index.d.ts +3 -0
  251. package/lib/rules/oas3/index.js +122 -0
  252. package/lib/rules/oas3/no-empty-servers.d.ts +2 -0
  253. package/lib/rules/oas3/no-empty-servers.js +23 -0
  254. package/lib/rules/oas3/no-example-value-and-externalValue.d.ts +2 -0
  255. package/lib/rules/oas3/no-example-value-and-externalValue.js +16 -0
  256. package/lib/rules/oas3/no-invalid-media-type-examples.d.ts +2 -0
  257. package/lib/rules/oas3/no-invalid-media-type-examples.js +39 -0
  258. package/lib/rules/oas3/no-server-example.com.d.ts +2 -0
  259. package/lib/rules/oas3/no-server-example.com.js +18 -0
  260. package/lib/rules/oas3/no-server-trailing-slash.d.ts +2 -0
  261. package/lib/rules/oas3/no-server-trailing-slash.js +18 -0
  262. package/lib/rules/oas3/no-server-variables-empty-enum.d.ts +2 -0
  263. package/lib/rules/oas3/no-server-variables-empty-enum.js +66 -0
  264. package/lib/rules/oas3/no-undefined-server-variable.d.ts +2 -0
  265. package/lib/rules/oas3/no-undefined-server-variable.js +31 -0
  266. package/lib/rules/oas3/no-unused-components.d.ts +2 -0
  267. package/lib/rules/oas3/no-unused-components.js +73 -0
  268. package/lib/rules/oas3/operation-4xx-problem-details-rfc7807.d.ts +5 -0
  269. package/lib/rules/oas3/operation-4xx-problem-details-rfc7807.js +36 -0
  270. package/lib/rules/oas3/request-mime-type.d.ts +2 -0
  271. package/lib/rules/oas3/request-mime-type.js +31 -0
  272. package/lib/rules/oas3/response-contains-property.d.ts +2 -0
  273. package/lib/rules/oas3/response-contains-property.js +39 -0
  274. package/lib/rules/oas3/response-mime-type.d.ts +2 -0
  275. package/lib/rules/oas3/response-mime-type.js +31 -0
  276. package/lib/rules/oas3/spec-components-invalid-map-name.d.ts +2 -0
  277. package/lib/rules/oas3/spec-components-invalid-map-name.js +62 -0
  278. package/lib/rules/other/stats.d.ts +41 -0
  279. package/lib/rules/other/stats.js +75 -0
  280. package/lib/rules/spot/no-criteria-xpath.d.ts +2 -0
  281. package/lib/rules/spot/no-criteria-xpath.js +21 -0
  282. package/lib/rules/spot/spot-supported-versions.d.ts +2 -0
  283. package/lib/rules/spot/spot-supported-versions.js +21 -0
  284. package/lib/rules/utils.d.ts +22 -0
  285. package/lib/rules/utils.js +183 -0
  286. package/lib/types/arazzo.d.ts +2 -0
  287. package/lib/types/arazzo.js +311 -0
  288. package/lib/types/asyncapi2.d.ts +17 -0
  289. package/lib/types/asyncapi2.js +1008 -0
  290. package/lib/types/asyncapi3.d.ts +2 -0
  291. package/lib/types/asyncapi3.js +347 -0
  292. package/lib/types/index.d.ts +57 -0
  293. package/lib/types/index.js +94 -0
  294. package/lib/types/json-schema-adapter.d.ts +3 -0
  295. package/lib/types/json-schema-adapter.js +159 -0
  296. package/lib/types/oas2.d.ts +3 -0
  297. package/lib/types/oas2.js +456 -0
  298. package/lib/types/oas3.d.ts +7 -0
  299. package/lib/types/oas3.js +554 -0
  300. package/lib/types/oas3_1.d.ts +6 -0
  301. package/lib/types/oas3_1.js +285 -0
  302. package/lib/types/redocly-yaml.d.ts +26 -0
  303. package/lib/types/redocly-yaml.js +1126 -0
  304. package/lib/typings/arazzo.d.ts +131 -0
  305. package/lib/typings/arazzo.js +5 -0
  306. package/lib/typings/asyncapi.d.ts +21 -0
  307. package/lib/typings/asyncapi.js +2 -0
  308. package/lib/typings/asyncapi3.d.ts +53 -0
  309. package/lib/typings/asyncapi3.js +2 -0
  310. package/lib/typings/common.d.ts +8 -0
  311. package/lib/typings/common.js +2 -0
  312. package/lib/typings/openapi.d.ts +355 -0
  313. package/lib/typings/openapi.js +2 -0
  314. package/lib/typings/swagger.d.ts +217 -0
  315. package/lib/typings/swagger.js +2 -0
  316. package/lib/utils.d.ts +70 -0
  317. package/lib/utils.js +301 -0
  318. package/lib/visitors.d.ts +229 -0
  319. package/lib/visitors.js +176 -0
  320. package/lib/walk.d.ts +78 -0
  321. package/lib/walk.js +290 -0
  322. package/package.json +59 -0
package/lib/bundle.js ADDED
@@ -0,0 +1,385 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OasVersion = void 0;
4
+ exports.bundleConfig = bundleConfig;
5
+ exports.bundle = bundle;
6
+ exports.bundleFromString = bundleFromString;
7
+ exports.bundleDocument = bundleDocument;
8
+ exports.mapTypeToComponent = mapTypeToComponent;
9
+ const resolve_1 = require("./resolve");
10
+ const visitors_1 = require("./visitors");
11
+ const types_1 = require("./types");
12
+ const walk_1 = require("./walk");
13
+ const oas_types_1 = require("./oas-types");
14
+ const ref_utils_1 = require("./ref-utils");
15
+ const rules_1 = require("./config/rules");
16
+ const no_unresolved_refs_1 = require("./rules/no-unresolved-refs");
17
+ const utils_1 = require("./utils");
18
+ const domains_1 = require("./redocly/domains");
19
+ const remove_unused_components_1 = require("./decorators/oas2/remove-unused-components");
20
+ const remove_unused_components_2 = require("./decorators/oas3/remove-unused-components");
21
+ const redocly_yaml_1 = require("./types/redocly-yaml");
22
+ var OasVersion;
23
+ (function (OasVersion) {
24
+ OasVersion["Version2"] = "oas2";
25
+ OasVersion["Version3_0"] = "oas3_0";
26
+ OasVersion["Version3_1"] = "oas3_1";
27
+ })(OasVersion || (exports.OasVersion = OasVersion = {}));
28
+ async function bundleConfig(document, resolvedRefMap) {
29
+ const types = (0, types_1.normalizeTypes)(redocly_yaml_1.ConfigTypes);
30
+ const ctx = {
31
+ problems: [],
32
+ oasVersion: oas_types_1.SpecVersion.OAS3_0,
33
+ refTypes: new Map(),
34
+ visitorsData: {},
35
+ };
36
+ const bundleVisitor = (0, visitors_1.normalizeVisitors)([
37
+ {
38
+ severity: 'error',
39
+ ruleId: 'configBundler',
40
+ visitor: {
41
+ ref: {
42
+ leave(node, ctx, resolved) {
43
+ replaceRef(node, resolved, ctx);
44
+ },
45
+ },
46
+ },
47
+ },
48
+ ], types);
49
+ (0, walk_1.walkDocument)({
50
+ document,
51
+ rootType: types.ConfigRoot,
52
+ normalizedVisitors: bundleVisitor,
53
+ resolvedRefMap,
54
+ ctx,
55
+ });
56
+ return document.parsed ?? {};
57
+ }
58
+ async function bundle(opts) {
59
+ const { ref, doc, externalRefResolver = new resolve_1.BaseResolver(opts.config.resolve), base = null, } = opts;
60
+ if (!(ref || doc)) {
61
+ throw new Error('Document or reference is required.\n');
62
+ }
63
+ const document = doc === undefined ? await externalRefResolver.resolveDocument(base, ref, true) : doc;
64
+ if (document instanceof Error) {
65
+ throw document;
66
+ }
67
+ opts.collectSpecData?.(document.parsed);
68
+ return bundleDocument({
69
+ document,
70
+ ...opts,
71
+ config: opts.config.styleguide,
72
+ externalRefResolver,
73
+ });
74
+ }
75
+ async function bundleFromString(opts) {
76
+ const { source, absoluteRef, externalRefResolver = new resolve_1.BaseResolver(opts.config.resolve) } = opts;
77
+ const document = (0, resolve_1.makeDocumentFromString)(source, absoluteRef || '/');
78
+ return bundleDocument({
79
+ document,
80
+ ...opts,
81
+ externalRefResolver,
82
+ config: opts.config.styleguide,
83
+ });
84
+ }
85
+ async function bundleDocument(opts) {
86
+ const { document, config, customTypes, externalRefResolver, dereference = false, skipRedoclyRegistryRefs = false, removeUnusedComponents = false, keepUrlRefs = false, } = opts;
87
+ const specVersion = (0, oas_types_1.detectSpec)(document.parsed);
88
+ const specMajorVersion = (0, oas_types_1.getMajorSpecVersion)(specVersion);
89
+ const rules = config.getRulesForSpecVersion(specMajorVersion);
90
+ const types = (0, types_1.normalizeTypes)(config.extendTypes(customTypes ?? (0, oas_types_1.getTypes)(specVersion), specVersion), config);
91
+ const preprocessors = (0, rules_1.initRules)(rules, config, 'preprocessors', specVersion);
92
+ const decorators = (0, rules_1.initRules)(rules, config, 'decorators', specVersion);
93
+ const ctx = {
94
+ problems: [],
95
+ oasVersion: specVersion,
96
+ refTypes: new Map(),
97
+ visitorsData: {},
98
+ };
99
+ if (removeUnusedComponents) {
100
+ decorators.push({
101
+ severity: 'error',
102
+ ruleId: 'remove-unused-components',
103
+ visitor: specMajorVersion === oas_types_1.SpecMajorVersion.OAS2
104
+ ? (0, remove_unused_components_1.RemoveUnusedComponents)({})
105
+ : (0, remove_unused_components_2.RemoveUnusedComponents)({}),
106
+ });
107
+ }
108
+ let resolvedRefMap = await (0, resolve_1.resolveDocument)({
109
+ rootDocument: document,
110
+ rootType: types.Root,
111
+ externalRefResolver,
112
+ });
113
+ if (preprocessors.length > 0) {
114
+ // Make additional pass to resolve refs defined in preprocessors.
115
+ (0, walk_1.walkDocument)({
116
+ document,
117
+ rootType: types.Root,
118
+ normalizedVisitors: (0, visitors_1.normalizeVisitors)(preprocessors, types),
119
+ resolvedRefMap,
120
+ ctx,
121
+ });
122
+ resolvedRefMap = await (0, resolve_1.resolveDocument)({
123
+ rootDocument: document,
124
+ rootType: types.Root,
125
+ externalRefResolver,
126
+ });
127
+ }
128
+ const bundleVisitor = (0, visitors_1.normalizeVisitors)([
129
+ {
130
+ severity: 'error',
131
+ ruleId: 'bundler',
132
+ visitor: makeBundleVisitor(specMajorVersion, dereference, skipRedoclyRegistryRefs, document, resolvedRefMap, keepUrlRefs),
133
+ },
134
+ ...decorators,
135
+ ], types);
136
+ (0, walk_1.walkDocument)({
137
+ document,
138
+ rootType: types.Root,
139
+ normalizedVisitors: bundleVisitor,
140
+ resolvedRefMap,
141
+ ctx,
142
+ });
143
+ return {
144
+ bundle: document,
145
+ problems: ctx.problems.map((problem) => config.addProblemToIgnore(problem)),
146
+ fileDependencies: externalRefResolver.getFiles(),
147
+ rootType: types.Root,
148
+ refTypes: ctx.refTypes,
149
+ visitorsData: ctx.visitorsData,
150
+ };
151
+ }
152
+ function mapTypeToComponent(typeName, version) {
153
+ switch (version) {
154
+ case oas_types_1.SpecMajorVersion.OAS3:
155
+ switch (typeName) {
156
+ case 'Schema':
157
+ return 'schemas';
158
+ case 'Parameter':
159
+ return 'parameters';
160
+ case 'Response':
161
+ return 'responses';
162
+ case 'Example':
163
+ return 'examples';
164
+ case 'RequestBody':
165
+ return 'requestBodies';
166
+ case 'Header':
167
+ return 'headers';
168
+ case 'SecuritySchema':
169
+ return 'securitySchemes';
170
+ case 'Link':
171
+ return 'links';
172
+ case 'Callback':
173
+ return 'callbacks';
174
+ default:
175
+ return null;
176
+ }
177
+ case oas_types_1.SpecMajorVersion.OAS2:
178
+ switch (typeName) {
179
+ case 'Schema':
180
+ return 'definitions';
181
+ case 'Parameter':
182
+ return 'parameters';
183
+ case 'Response':
184
+ return 'responses';
185
+ default:
186
+ return null;
187
+ }
188
+ case oas_types_1.SpecMajorVersion.Async2:
189
+ switch (typeName) {
190
+ case 'Schema':
191
+ return 'schemas';
192
+ case 'Parameter':
193
+ return 'parameters';
194
+ default:
195
+ return null;
196
+ }
197
+ case oas_types_1.SpecMajorVersion.Async3:
198
+ switch (typeName) {
199
+ case 'Schema':
200
+ return 'schemas';
201
+ case 'Parameter':
202
+ return 'parameters';
203
+ default:
204
+ return null;
205
+ }
206
+ case oas_types_1.SpecMajorVersion.Arazzo1:
207
+ switch (typeName) {
208
+ case 'Root.workflows_items.parameters_items':
209
+ case 'Root.workflows_items.steps_items.parameters_items':
210
+ return 'parameters';
211
+ default:
212
+ return null;
213
+ }
214
+ }
215
+ }
216
+ function replaceRef(ref, resolved, ctx) {
217
+ if (!(0, utils_1.isPlainObject)(resolved.node)) {
218
+ ctx.parent[ctx.key] = resolved.node;
219
+ }
220
+ else {
221
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
222
+ // @ts-ignore
223
+ delete ref.$ref;
224
+ const obj = Object.assign({}, resolved.node, ref);
225
+ Object.assign(ref, obj); // assign ref itself again so ref fields take precedence
226
+ }
227
+ }
228
+ // function oas3Move
229
+ function makeBundleVisitor(version, dereference, skipRedoclyRegistryRefs, rootDocument, resolvedRefMap, keepUrlRefs) {
230
+ let components;
231
+ let rootLocation;
232
+ const visitor = {
233
+ ref: {
234
+ leave(node, ctx, resolved) {
235
+ if (!resolved.location || resolved.node === undefined) {
236
+ (0, no_unresolved_refs_1.reportUnresolvedRef)(resolved, ctx.report, ctx.location);
237
+ return;
238
+ }
239
+ if (resolved.location.source === rootDocument.source &&
240
+ resolved.location.source === ctx.location.source &&
241
+ ctx.type.name !== 'scalar' &&
242
+ !dereference) {
243
+ return;
244
+ }
245
+ // do not bundle registry URL before push, otherwise we can't record dependencies
246
+ if (skipRedoclyRegistryRefs && (0, domains_1.isRedoclyRegistryURL)(node.$ref)) {
247
+ return;
248
+ }
249
+ if (keepUrlRefs && (0, ref_utils_1.isAbsoluteUrl)(node.$ref)) {
250
+ return;
251
+ }
252
+ const componentType = mapTypeToComponent(ctx.type.name, version);
253
+ if (!componentType) {
254
+ replaceRef(node, resolved, ctx);
255
+ }
256
+ else {
257
+ if (dereference) {
258
+ saveComponent(componentType, resolved, ctx);
259
+ replaceRef(node, resolved, ctx);
260
+ }
261
+ else {
262
+ node.$ref = saveComponent(componentType, resolved, ctx);
263
+ resolveBundledComponent(node, resolved, ctx);
264
+ }
265
+ }
266
+ },
267
+ },
268
+ Example: {
269
+ leave(node, ctx) {
270
+ if ((0, ref_utils_1.isExternalValue)(node) && node.value === undefined) {
271
+ const resolved = ctx.resolve({ $ref: node.externalValue });
272
+ if (!resolved.location || resolved.node === undefined) {
273
+ (0, no_unresolved_refs_1.reportUnresolvedRef)(resolved, ctx.report, ctx.location);
274
+ return;
275
+ }
276
+ if (keepUrlRefs && (0, ref_utils_1.isAbsoluteUrl)(node.externalValue)) {
277
+ return;
278
+ }
279
+ node.value = ctx.resolve({ $ref: node.externalValue }).node;
280
+ delete node.externalValue;
281
+ }
282
+ },
283
+ },
284
+ Root: {
285
+ enter(root, ctx) {
286
+ rootLocation = ctx.location;
287
+ if (version === oas_types_1.SpecMajorVersion.OAS3) {
288
+ components = root.components = root.components || {};
289
+ }
290
+ else if (version === oas_types_1.SpecMajorVersion.OAS2) {
291
+ components = root;
292
+ }
293
+ else if (version === oas_types_1.SpecMajorVersion.Async2) {
294
+ components = root.components = root.components || {};
295
+ }
296
+ else if (version === oas_types_1.SpecMajorVersion.Async3) {
297
+ components = root.components = root.components || {};
298
+ }
299
+ else if (version === oas_types_1.SpecMajorVersion.Arazzo1) {
300
+ components = root.components = root.components || {};
301
+ }
302
+ },
303
+ },
304
+ };
305
+ if (version === oas_types_1.SpecMajorVersion.OAS3) {
306
+ visitor.DiscriminatorMapping = {
307
+ leave(mapping, ctx) {
308
+ for (const name of Object.keys(mapping)) {
309
+ const $ref = mapping[name];
310
+ const resolved = ctx.resolve({ $ref });
311
+ if (!resolved.location || resolved.node === undefined) {
312
+ (0, no_unresolved_refs_1.reportUnresolvedRef)(resolved, ctx.report, ctx.location.child(name));
313
+ return;
314
+ }
315
+ const componentType = mapTypeToComponent('Schema', version);
316
+ mapping[name] = saveComponent(componentType, resolved, ctx);
317
+ }
318
+ },
319
+ };
320
+ }
321
+ function resolveBundledComponent(node, resolved, ctx) {
322
+ const newRefId = (0, resolve_1.makeRefId)(ctx.location.source.absoluteRef, node.$ref);
323
+ resolvedRefMap.set(newRefId, {
324
+ document: rootDocument,
325
+ isRemote: false,
326
+ node: resolved.node,
327
+ nodePointer: node.$ref,
328
+ resolved: true,
329
+ });
330
+ }
331
+ function saveComponent(componentType, target, ctx) {
332
+ components[componentType] = components[componentType] || {};
333
+ const name = getComponentName(target, componentType, ctx);
334
+ components[componentType][name] = target.node;
335
+ if (version === oas_types_1.SpecMajorVersion.OAS3 ||
336
+ version === oas_types_1.SpecMajorVersion.Async2 ||
337
+ version === oas_types_1.SpecMajorVersion.Async3) {
338
+ return `#/components/${componentType}/${name}`;
339
+ }
340
+ else {
341
+ return `#/${componentType}/${name}`;
342
+ }
343
+ }
344
+ function isEqualOrEqualRef(node, target, ctx) {
345
+ if ((0, ref_utils_1.isRef)(node) &&
346
+ ctx.resolve(node, rootLocation.absolutePointer).location?.absolutePointer ===
347
+ target.location.absolutePointer) {
348
+ return true;
349
+ }
350
+ return (0, utils_1.dequal)(node, target.node);
351
+ }
352
+ function getComponentName(target, componentType, ctx) {
353
+ const [fileRef, pointer] = [target.location.source.absoluteRef, target.location.pointer];
354
+ const componentsGroup = components[componentType];
355
+ let name = '';
356
+ const refParts = pointer.slice(2).split('/').filter(utils_1.isTruthy); // slice(2) removes "#/"
357
+ while (refParts.length > 0) {
358
+ name = refParts.pop() + (name ? `-${name}` : '');
359
+ if (!componentsGroup ||
360
+ !componentsGroup[name] ||
361
+ isEqualOrEqualRef(componentsGroup[name], target, ctx)) {
362
+ return name;
363
+ }
364
+ }
365
+ name = (0, ref_utils_1.refBaseName)(fileRef) + (name ? `_${name}` : '');
366
+ if (!componentsGroup[name] || isEqualOrEqualRef(componentsGroup[name], target, ctx)) {
367
+ return name;
368
+ }
369
+ const prevName = name;
370
+ let serialId = 2;
371
+ while (componentsGroup[name] && !isEqualOrEqualRef(componentsGroup[name], target, ctx)) {
372
+ name = `${prevName}-${serialId}`;
373
+ serialId++;
374
+ }
375
+ if (!componentsGroup[name]) {
376
+ ctx.report({
377
+ message: `Two schemas are referenced with the same name but different content. Renamed ${prevName} to ${name}.`,
378
+ location: ctx.location,
379
+ forceSeverity: 'warn',
380
+ });
381
+ }
382
+ return name;
383
+ }
384
+ return visitor;
385
+ }
@@ -0,0 +1,3 @@
1
+ import type { PluginStyleguideConfig } from './types';
2
+ declare const all: PluginStyleguideConfig<'built-in'>;
3
+ export default all;
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const all = {
4
+ rules: {
5
+ struct: 'error',
6
+ },
7
+ oas2Rules: {
8
+ 'boolean-parameter-prefixes': 'error',
9
+ 'info-contact': 'error',
10
+ 'info-license': 'error',
11
+ 'info-license-url': 'error',
12
+ 'info-license-strict': 'error',
13
+ 'no-path-trailing-slash': 'error',
14
+ 'no-identical-paths': 'error',
15
+ 'no-ambiguous-paths': 'error',
16
+ 'no-invalid-schema-examples': 'error',
17
+ 'no-invalid-parameter-examples': 'error',
18
+ 'no-http-verbs-in-paths': 'error',
19
+ 'no-enum-type-mismatch': 'error',
20
+ 'no-unresolved-refs': 'error',
21
+ 'no-required-schema-properties-undefined': 'error',
22
+ 'operation-summary': 'error',
23
+ 'operation-operationId': 'error',
24
+ 'operation-operationId-unique': 'error',
25
+ 'operation-operationId-url-safe': 'error',
26
+ 'operation-description': 'error',
27
+ 'operation-2xx-response': 'error',
28
+ 'operation-4xx-response': 'error',
29
+ 'operation-parameters-unique': 'error',
30
+ 'operation-tag-defined': 'error',
31
+ 'operation-singular-tag': 'error',
32
+ 'parameter-description': 'error',
33
+ 'path-declaration-must-exist': 'error',
34
+ 'path-not-include-query': 'error',
35
+ 'path-parameters-defined': 'error',
36
+ 'paths-kebab-case': 'error',
37
+ 'path-excludes-patterns': {
38
+ severity: 'error',
39
+ patterns: [],
40
+ },
41
+ 'path-http-verbs-order': 'error',
42
+ 'path-params-defined': 'error',
43
+ 'path-segment-plural': 'error',
44
+ 'required-string-property-missing-min-length': 'error',
45
+ 'response-contains-header': 'error',
46
+ 'request-mime-type': {
47
+ severity: 'error',
48
+ allowedValues: ['application/json'],
49
+ },
50
+ 'response-mime-type': {
51
+ severity: 'error',
52
+ allowedValues: ['application/json'],
53
+ },
54
+ 'response-contains-property': 'error',
55
+ 'security-defined': 'error',
56
+ 'spec-strict-refs': 'error',
57
+ 'scalar-property-missing-example': 'error',
58
+ 'tag-description': 'error',
59
+ 'tags-alphabetical': 'error',
60
+ },
61
+ oas3_0Rules: {
62
+ 'array-parameter-serialization': 'error',
63
+ 'boolean-parameter-prefixes': 'error',
64
+ 'component-name-unique': 'error',
65
+ 'info-contact': 'error',
66
+ 'info-license': 'error',
67
+ 'info-license-url': 'error',
68
+ 'info-license-strict': 'error',
69
+ 'no-path-trailing-slash': 'error',
70
+ 'no-identical-paths': 'error',
71
+ 'no-ambiguous-paths': 'error',
72
+ 'no-invalid-schema-examples': 'error',
73
+ 'no-invalid-parameter-examples': 'error',
74
+ 'no-http-verbs-in-paths': 'error',
75
+ 'no-enum-type-mismatch': 'error',
76
+ 'no-unresolved-refs': 'error',
77
+ 'no-required-schema-properties-undefined': 'error',
78
+ 'no-invalid-media-type-examples': 'error',
79
+ 'no-server-example.com': 'error',
80
+ 'no-server-trailing-slash': 'error',
81
+ 'no-empty-servers': 'error',
82
+ 'no-example-value-and-externalValue': 'error',
83
+ 'no-unused-components': 'error',
84
+ 'no-undefined-server-variable': 'error',
85
+ 'no-server-variables-empty-enum': 'error',
86
+ 'operation-summary': 'error',
87
+ 'operation-operationId': 'error',
88
+ 'operation-operationId-unique': 'error',
89
+ 'operation-operationId-url-safe': 'error',
90
+ 'operation-description': 'error',
91
+ 'operation-2xx-response': 'error',
92
+ 'operation-4xx-response': 'error',
93
+ 'operation-4xx-problem-details-rfc7807': 'error',
94
+ 'operation-parameters-unique': 'error',
95
+ 'operation-tag-defined': 'error',
96
+ 'operation-singular-tag': 'error',
97
+ 'parameter-description': 'error',
98
+ 'path-declaration-must-exist': 'error',
99
+ 'path-not-include-query': 'error',
100
+ 'path-parameters-defined': 'error',
101
+ 'paths-kebab-case': 'error',
102
+ 'path-excludes-patterns': {
103
+ severity: 'error',
104
+ patterns: [],
105
+ },
106
+ 'path-http-verbs-order': 'error',
107
+ 'path-params-defined': 'error',
108
+ 'path-segment-plural': 'error',
109
+ 'required-string-property-missing-min-length': 'error',
110
+ 'response-contains-header': 'error',
111
+ 'request-mime-type': {
112
+ severity: 'error',
113
+ allowedValues: ['application/json'],
114
+ },
115
+ 'response-mime-type': {
116
+ severity: 'error',
117
+ allowedValues: ['application/json'],
118
+ },
119
+ 'response-contains-property': 'error',
120
+ 'security-defined': 'error',
121
+ 'spec-strict-refs': 'error',
122
+ 'scalar-property-missing-example': 'error',
123
+ 'spec-components-invalid-map-name': 'error',
124
+ 'tag-description': 'error',
125
+ 'tags-alphabetical': 'error',
126
+ },
127
+ oas3_1Rules: {
128
+ 'array-parameter-serialization': 'error',
129
+ 'boolean-parameter-prefixes': 'error',
130
+ 'component-name-unique': 'error',
131
+ 'info-contact': 'error',
132
+ 'info-license': 'error',
133
+ 'info-license-url': 'error',
134
+ 'info-license-strict': 'error',
135
+ 'no-path-trailing-slash': 'error',
136
+ 'no-identical-paths': 'error',
137
+ 'no-ambiguous-paths': 'error',
138
+ 'no-invalid-schema-examples': 'error',
139
+ 'no-invalid-parameter-examples': 'error',
140
+ 'no-http-verbs-in-paths': 'error',
141
+ 'no-enum-type-mismatch': 'error',
142
+ 'no-unresolved-refs': 'error',
143
+ 'no-required-schema-properties-undefined': 'error',
144
+ 'no-invalid-media-type-examples': 'error',
145
+ 'no-server-example.com': 'error',
146
+ 'no-server-trailing-slash': 'error',
147
+ 'no-empty-servers': 'error',
148
+ 'no-example-value-and-externalValue': 'error',
149
+ 'no-unused-components': 'error',
150
+ 'no-undefined-server-variable': 'error',
151
+ 'no-server-variables-empty-enum': 'error',
152
+ 'parameter-description': 'error',
153
+ 'path-declaration-must-exist': 'error',
154
+ 'path-not-include-query': 'error',
155
+ 'path-parameters-defined': 'error',
156
+ 'paths-kebab-case': 'error',
157
+ 'path-excludes-patterns': {
158
+ severity: 'error',
159
+ patterns: [],
160
+ },
161
+ 'path-http-verbs-order': 'error',
162
+ 'path-params-defined': 'error',
163
+ 'path-segment-plural': 'error',
164
+ 'operation-summary': 'error',
165
+ 'operation-operationId': 'error',
166
+ 'operation-operationId-unique': 'error',
167
+ 'operation-operationId-url-safe': 'error',
168
+ 'operation-description': 'error',
169
+ 'operation-2xx-response': 'error',
170
+ 'operation-4xx-response': 'error',
171
+ 'operation-4xx-problem-details-rfc7807': 'error',
172
+ 'operation-parameters-unique': 'error',
173
+ 'operation-tag-defined': 'error',
174
+ 'operation-singular-tag': 'error',
175
+ 'required-string-property-missing-min-length': 'error',
176
+ 'response-contains-header': 'error',
177
+ 'request-mime-type': {
178
+ severity: 'error',
179
+ allowedValues: ['application/json'],
180
+ },
181
+ 'response-mime-type': {
182
+ severity: 'error',
183
+ allowedValues: ['application/json'],
184
+ },
185
+ 'response-contains-property': 'error',
186
+ 'security-defined': 'error',
187
+ 'spec-strict-refs': 'error',
188
+ 'scalar-property-missing-example': 'error',
189
+ 'spec-components-invalid-map-name': 'error',
190
+ 'tag-description': 'error',
191
+ 'tags-alphabetical': 'error',
192
+ },
193
+ async2Rules: {
194
+ 'channels-kebab-case': 'error',
195
+ 'info-contact': 'error',
196
+ 'info-license-strict': 'error',
197
+ 'no-channel-trailing-slash': 'error',
198
+ 'operation-operationId': 'error',
199
+ 'tag-description': 'error',
200
+ 'tags-alphabetical': 'error',
201
+ },
202
+ async3Rules: {
203
+ 'channels-kebab-case': 'error',
204
+ 'info-contact': 'error',
205
+ 'info-license-strict': 'error',
206
+ 'no-channel-trailing-slash': 'error',
207
+ 'operation-operationId': 'error',
208
+ 'tag-description': 'error',
209
+ 'tags-alphabetical': 'error',
210
+ },
211
+ arazzo1Rules: {
212
+ 'criteria-unique': 'error',
213
+ 'no-criteria-xpath': 'off',
214
+ 'parameters-unique': 'error',
215
+ 'requestBody-replacements-unique': 'error',
216
+ 'sourceDescription-type': 'error',
217
+ 'step-onSuccess-unique': 'error',
218
+ 'step-onFailure-unique': 'error',
219
+ 'stepId-unique': 'error',
220
+ 'sourceDescription-name-unique': 'error',
221
+ 'sourceDescriptions-not-empty': 'error',
222
+ 'spot-supported-versions': 'off',
223
+ 'workflowId-unique': 'error',
224
+ 'workflow-dependsOn': 'error',
225
+ },
226
+ };
227
+ exports.default = all;
@@ -0,0 +1,3 @@
1
+ import type { StyleguideRawConfig, Plugin } from './types';
2
+ export declare const builtInConfigs: Record<string, StyleguideRawConfig>;
3
+ export declare const defaultPlugin: Plugin<'built-in'>;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultPlugin = exports.builtInConfigs = void 0;
4
+ const recommended_1 = require("./recommended");
5
+ const recommended_strict_1 = require("./recommended-strict");
6
+ const all_1 = require("./all");
7
+ const minimal_1 = require("./minimal");
8
+ const spec_1 = require("./spec");
9
+ const oas3_1 = require("../rules/oas3");
10
+ const oas2_1 = require("../rules/oas2");
11
+ const async2_1 = require("../rules/async2");
12
+ const async3_1 = require("../rules/async3");
13
+ const arazzo_1 = require("../rules/arazzo");
14
+ const oas3_2 = require("../decorators/oas3");
15
+ const oas2_2 = require("../decorators/oas2");
16
+ const async2_2 = require("../decorators/async2");
17
+ const async3_2 = require("../decorators/async3");
18
+ const arazzo_2 = require("../decorators/arazzo");
19
+ exports.builtInConfigs = {
20
+ recommended: recommended_1.default,
21
+ 'recommended-strict': recommended_strict_1.default,
22
+ minimal: minimal_1.default,
23
+ all: all_1.default,
24
+ spec: spec_1.default,
25
+ 'redocly-registry': {
26
+ decorators: { 'registry-dependencies': 'on' },
27
+ },
28
+ };
29
+ exports.defaultPlugin = {
30
+ id: '', // default plugin doesn't have id
31
+ rules: {
32
+ oas3: oas3_1.rules,
33
+ oas2: oas2_1.rules,
34
+ async2: async2_1.rules,
35
+ async3: async3_1.rules,
36
+ arazzo1: arazzo_1.rules,
37
+ },
38
+ preprocessors: {
39
+ oas3: oas3_1.preprocessors,
40
+ oas2: oas2_1.preprocessors,
41
+ async2: async2_1.preprocessors,
42
+ async3: async3_1.preprocessors,
43
+ arazzo1: arazzo_1.preprocessors,
44
+ },
45
+ decorators: {
46
+ oas3: oas3_2.decorators,
47
+ oas2: oas2_2.decorators,
48
+ async2: async2_2.decorators,
49
+ async3: async3_2.decorators,
50
+ arazzo1: arazzo_2.decorators,
51
+ },
52
+ configs: exports.builtInConfigs,
53
+ };