@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
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SourceDescriptionsNameUnique = void 0;
4
+ const SourceDescriptionsNameUnique = () => {
5
+ const seenSourceDescriptions = new Set();
6
+ return {
7
+ SourceDescriptions: {
8
+ enter(sourceDescriptions, { report, location }) {
9
+ if (!sourceDescriptions.length)
10
+ return;
11
+ for (const sourceDescription of sourceDescriptions) {
12
+ if (seenSourceDescriptions.has(sourceDescription.name)) {
13
+ report({
14
+ message: 'The `name` must be unique amongst all SourceDescriptions.',
15
+ location: location.child([sourceDescriptions.indexOf(sourceDescription)]),
16
+ });
17
+ }
18
+ seenSourceDescriptions.add(sourceDescription.name);
19
+ }
20
+ },
21
+ },
22
+ };
23
+ };
24
+ exports.SourceDescriptionsNameUnique = SourceDescriptionsNameUnique;
@@ -0,0 +1,2 @@
1
+ import type { Arazzo1Rule } from '../../visitors';
2
+ export declare const SourceDescriptionsNotEmpty: Arazzo1Rule;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SourceDescriptionsNotEmpty = void 0;
4
+ const SourceDescriptionsNotEmpty = () => {
5
+ return {
6
+ SourceDescriptions: {
7
+ enter(sourceDescriptions, { report, location }) {
8
+ if (!sourceDescriptions?.length) {
9
+ report({
10
+ message: 'The `sourceDescriptions` list must have at least one entry.',
11
+ location,
12
+ });
13
+ }
14
+ },
15
+ },
16
+ };
17
+ };
18
+ exports.SourceDescriptionsNotEmpty = SourceDescriptionsNotEmpty;
@@ -0,0 +1,2 @@
1
+ import type { Arazzo1Rule } from '../../visitors';
2
+ export declare const StepOnFailureUnique: Arazzo1Rule;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StepOnFailureUnique = void 0;
4
+ const StepOnFailureUnique = () => {
5
+ return {
6
+ OnFailureActionList: {
7
+ enter(onFailureActionList, { report, location }) {
8
+ if (!onFailureActionList)
9
+ return;
10
+ const seenFailureActions = new Set();
11
+ for (const onFailureAction of onFailureActionList) {
12
+ if (seenFailureActions.has(onFailureAction?.name)) {
13
+ report({
14
+ message: 'The action `name` must be unique amongst listed `onFailure` actions.',
15
+ location: location.child([onFailureActionList.indexOf(onFailureAction)]),
16
+ });
17
+ }
18
+ if (seenFailureActions.has(onFailureAction?.reference)) {
19
+ report({
20
+ message: 'The action `reference` must be unique amongst listed `onFailure` actions.',
21
+ location: location.child([onFailureActionList.indexOf(onFailureAction)]),
22
+ });
23
+ }
24
+ onFailureAction?.name
25
+ ? seenFailureActions.add(onFailureAction.name)
26
+ : seenFailureActions.add(onFailureAction.reference);
27
+ }
28
+ },
29
+ },
30
+ };
31
+ };
32
+ exports.StepOnFailureUnique = StepOnFailureUnique;
@@ -0,0 +1,2 @@
1
+ import type { Arazzo1Rule } from '../../visitors';
2
+ export declare const StepOnSuccessUnique: Arazzo1Rule;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StepOnSuccessUnique = void 0;
4
+ const StepOnSuccessUnique = () => {
5
+ return {
6
+ OnSuccessActionList: {
7
+ enter(onSuccessActionList, { report, location }) {
8
+ if (!onSuccessActionList)
9
+ return;
10
+ const seenSuccessActions = new Set();
11
+ for (const onSuccessAction of onSuccessActionList) {
12
+ if (seenSuccessActions.has(onSuccessAction?.name)) {
13
+ report({
14
+ message: 'The action `name` must be unique amongst listed `onSuccess` actions.',
15
+ location: location.child([onSuccessActionList.indexOf(onSuccessAction)]),
16
+ });
17
+ }
18
+ if (seenSuccessActions.has(onSuccessAction?.reference)) {
19
+ report({
20
+ message: 'The action `reference` must be unique amongst listed `onSuccess` actions.',
21
+ location: location.child([onSuccessActionList.indexOf(onSuccessAction)]),
22
+ });
23
+ }
24
+ onSuccessAction?.name
25
+ ? seenSuccessActions.add(onSuccessAction.name)
26
+ : seenSuccessActions.add(onSuccessAction.reference);
27
+ }
28
+ },
29
+ },
30
+ };
31
+ };
32
+ exports.StepOnSuccessUnique = StepOnSuccessUnique;
@@ -0,0 +1,2 @@
1
+ import type { Arazzo1Rule } from '../../visitors';
2
+ export declare const StepIdUnique: Arazzo1Rule;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StepIdUnique = void 0;
4
+ const StepIdUnique = () => {
5
+ return {
6
+ Workflow: {
7
+ enter(workflow, { report, location }) {
8
+ if (!workflow.steps)
9
+ return;
10
+ const seenSteps = new Set();
11
+ for (const step of workflow.steps) {
12
+ if (!step.stepId)
13
+ return;
14
+ if (seenSteps.has(step.stepId)) {
15
+ report({
16
+ message: 'The `stepId` must be unique amongst all steps described in the workflow.',
17
+ location: location.child(['steps', workflow.steps.indexOf(step)]),
18
+ });
19
+ }
20
+ seenSteps.add(step.stepId);
21
+ }
22
+ },
23
+ },
24
+ };
25
+ };
26
+ exports.StepIdUnique = StepIdUnique;
@@ -0,0 +1,2 @@
1
+ import type { Arazzo1Rule } from '../../visitors';
2
+ export declare const WorkflowDependsOn: Arazzo1Rule;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkflowDependsOn = void 0;
4
+ const WorkflowDependsOn = () => {
5
+ const seenWorkflow = new Set();
6
+ const existingSourceDescriptions = new Set();
7
+ const existingWorkflowIds = new Set();
8
+ return {
9
+ SourceDescriptions: {
10
+ enter(sourceDescriptions) {
11
+ for (const sourceDescription of sourceDescriptions) {
12
+ existingSourceDescriptions.add(sourceDescription.name);
13
+ }
14
+ },
15
+ },
16
+ Workflows: {
17
+ enter(workflows) {
18
+ for (const workflow of workflows) {
19
+ existingWorkflowIds.add(workflow.workflowId);
20
+ }
21
+ },
22
+ },
23
+ Workflow: {
24
+ leave(workflow, { report, location }) {
25
+ if (!workflow.dependsOn)
26
+ return;
27
+ for (const item of workflow.dependsOn) {
28
+ // Possible dependsOn workflow pattern: $sourceDescriptions.<name>.<workflowId>
29
+ if (item.startsWith('$sourceDescriptions.')) {
30
+ const sourceDescriptionName = item.split('.')[1];
31
+ if (!existingSourceDescriptions.has(sourceDescriptionName)) {
32
+ report({
33
+ message: `SourceDescription ${sourceDescriptionName} must be defined in sourceDescriptions.`,
34
+ location: location.child([`dependsOn`, workflow.dependsOn.indexOf(item)]),
35
+ });
36
+ }
37
+ }
38
+ if (!item.startsWith('$sourceDescriptions') && !existingWorkflowIds.has(item)) {
39
+ report({
40
+ message: `Workflow ${item} must be defined in workflows.`,
41
+ location: location.child([`dependsOn`, workflow.dependsOn.indexOf(item)]),
42
+ });
43
+ }
44
+ if (seenWorkflow.has(item)) {
45
+ report({
46
+ message: 'Every workflow in dependsOn must be unique.',
47
+ location: location.child([`dependsOn`]),
48
+ });
49
+ }
50
+ seenWorkflow.add(item);
51
+ }
52
+ },
53
+ },
54
+ };
55
+ };
56
+ exports.WorkflowDependsOn = WorkflowDependsOn;
@@ -0,0 +1,2 @@
1
+ import type { Arazzo1Rule } from '../../visitors';
2
+ export declare const WorkflowIdUnique: Arazzo1Rule;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkflowIdUnique = void 0;
4
+ const WorkflowIdUnique = () => {
5
+ const seenWorkflow = new Set();
6
+ return {
7
+ Workflow: {
8
+ enter(workflow, { report, location }) {
9
+ if (!workflow.workflowId)
10
+ return;
11
+ if (seenWorkflow.has(workflow.workflowId)) {
12
+ report({
13
+ message: 'Every workflow must have a unique `workflowId`.',
14
+ location: location.child([workflow.workflowId]),
15
+ });
16
+ }
17
+ seenWorkflow.add(workflow.workflowId);
18
+ },
19
+ },
20
+ };
21
+ };
22
+ exports.WorkflowIdUnique = WorkflowIdUnique;
@@ -0,0 +1,2 @@
1
+ import type { Async2Rule } from '../../visitors';
2
+ export declare const ChannelsKebabCase: Async2Rule;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChannelsKebabCase = void 0;
4
+ const ChannelsKebabCase = () => {
5
+ return {
6
+ Channel(_channel, { report, key }) {
7
+ const segments = key
8
+ .split(/[/.:]/) // split on / or : as likely channel namespacers
9
+ .filter((s) => s !== ''); // filter out empty segments
10
+ if (!segments.every((segment) => /^{.+}$/.test(segment) || /^[a-z0-9-.]+$/.test(segment))) {
11
+ report({
12
+ message: `\`${key}\` does not use kebab-case.`,
13
+ location: { reportOnKey: true },
14
+ });
15
+ }
16
+ },
17
+ };
18
+ };
19
+ exports.ChannelsKebabCase = ChannelsKebabCase;
@@ -0,0 +1,3 @@
1
+ import type { Async2RuleSet } from '../../oas-types';
2
+ export declare const rules: Async2RuleSet<'built-in'>;
3
+ export declare const preprocessors: {};
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.preprocessors = exports.rules = void 0;
4
+ const assertions_1 = require("../common/assertions");
5
+ const struct_1 = require("../common/struct");
6
+ const info_contact_1 = require("../common/info-contact");
7
+ const info_license_strict_1 = require("../common/info-license-strict");
8
+ const operation_operationId_1 = require("../common/operation-operationId");
9
+ const tag_description_1 = require("../common/tag-description");
10
+ const tags_alphabetical_1 = require("../common/tags-alphabetical");
11
+ const channels_kebab_case_1 = require("./channels-kebab-case");
12
+ const no_channel_trailing_slash_1 = require("./no-channel-trailing-slash");
13
+ exports.rules = {
14
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
15
+ //@ts-ignore TODO: This is depricated property `spec` and should be removed in the future
16
+ spec: struct_1.Struct,
17
+ struct: struct_1.Struct,
18
+ assertions: assertions_1.Assertions,
19
+ 'info-contact': info_contact_1.InfoContact,
20
+ 'info-license-strict': info_license_strict_1.InfoLicenseStrict,
21
+ 'operation-operationId': operation_operationId_1.OperationOperationId,
22
+ 'channels-kebab-case': channels_kebab_case_1.ChannelsKebabCase,
23
+ 'no-channel-trailing-slash': no_channel_trailing_slash_1.NoChannelTrailingSlash,
24
+ 'tag-description': tag_description_1.TagDescription,
25
+ 'tags-alphabetical': tags_alphabetical_1.TagsAlphabetical,
26
+ };
27
+ exports.preprocessors = {};
@@ -0,0 +1,2 @@
1
+ import type { Async2Rule } from '../../visitors';
2
+ export declare const NoChannelTrailingSlash: Async2Rule;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NoChannelTrailingSlash = void 0;
4
+ const NoChannelTrailingSlash = () => {
5
+ return {
6
+ Channel(_channel, { report, key, location }) {
7
+ if (key.endsWith('/') && key !== '/') {
8
+ report({
9
+ message: `\`${key}\` should not have a trailing slash.`,
10
+ location: location.key(),
11
+ });
12
+ }
13
+ },
14
+ };
15
+ };
16
+ exports.NoChannelTrailingSlash = NoChannelTrailingSlash;
@@ -0,0 +1,2 @@
1
+ import type { Async3Rule } from '../../visitors';
2
+ export declare const ChannelsKebabCase: Async3Rule;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChannelsKebabCase = void 0;
4
+ const ChannelsKebabCase = () => {
5
+ return {
6
+ Channel(channel, { report }) {
7
+ const segments = (channel.address || '')
8
+ .split(/[/.:]/) // split on / or : as likely channel namespacers
9
+ .filter((s) => s !== ''); // filter out empty segments
10
+ if (!segments.every((segment) => /^{.+}$/.test(segment) || /^[a-z0-9-.]+$/.test(segment))) {
11
+ report({
12
+ message: `\`${channel.address}\` does not use kebab-case.`,
13
+ location: { reportOnKey: true },
14
+ });
15
+ }
16
+ },
17
+ };
18
+ };
19
+ exports.ChannelsKebabCase = ChannelsKebabCase;
@@ -0,0 +1,3 @@
1
+ import type { Async3RuleSet } from '../../oas-types';
2
+ export declare const rules: Async3RuleSet<'built-in'>;
3
+ export declare const preprocessors: {};
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.preprocessors = exports.rules = void 0;
4
+ const assertions_1 = require("../common/assertions");
5
+ const struct_1 = require("../common/struct");
6
+ const info_contact_1 = require("../common/info-contact");
7
+ const info_license_strict_1 = require("../common/info-license-strict");
8
+ const operation_operationId_1 = require("../common/operation-operationId");
9
+ const tag_description_1 = require("../common/tag-description");
10
+ const tags_alphabetical_1 = require("../common/tags-alphabetical");
11
+ const channels_kebab_case_1 = require("./channels-kebab-case");
12
+ const no_channel_trailing_slash_1 = require("./no-channel-trailing-slash");
13
+ exports.rules = {
14
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
15
+ //@ts-ignore TODO: This is depricated property `spec` and should be removed in the future
16
+ spec: struct_1.Struct,
17
+ struct: struct_1.Struct,
18
+ assertions: assertions_1.Assertions,
19
+ 'info-contact': info_contact_1.InfoContact,
20
+ 'info-license-strict': info_license_strict_1.InfoLicenseStrict,
21
+ 'operation-operationId': operation_operationId_1.OperationOperationId,
22
+ 'channels-kebab-case': channels_kebab_case_1.ChannelsKebabCase,
23
+ 'no-channel-trailing-slash': no_channel_trailing_slash_1.NoChannelTrailingSlash,
24
+ 'tag-description': tag_description_1.TagDescription,
25
+ 'tags-alphabetical': tags_alphabetical_1.TagsAlphabetical,
26
+ };
27
+ exports.preprocessors = {};
@@ -0,0 +1,2 @@
1
+ import type { Async3Rule } from '../../visitors';
2
+ export declare const NoChannelTrailingSlash: Async3Rule;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NoChannelTrailingSlash = void 0;
4
+ const NoChannelTrailingSlash = () => {
5
+ return {
6
+ Channel(channel, { report, location }) {
7
+ if (channel.address.endsWith('/') && channel.address !== '/') {
8
+ report({
9
+ message: `\`${channel.address}\` should not have a trailing slash.`,
10
+ location: location.key(),
11
+ });
12
+ }
13
+ },
14
+ };
15
+ };
16
+ exports.NoChannelTrailingSlash = NoChannelTrailingSlash;
@@ -0,0 +1,30 @@
1
+ import type { AssertionContext, AssertResult, CustomFunction } from '../../../config/types';
2
+ import type { Location } from '../../../ref-utils';
3
+ export type AssertionFnContext = AssertionContext & {
4
+ baseLocation: Location;
5
+ rawValue?: any;
6
+ };
7
+ export type AssertionFn = (value: any, condition: any, ctx: AssertionFnContext) => AssertResult[];
8
+ export type Asserts = {
9
+ pattern: AssertionFn;
10
+ notPattern: AssertionFn;
11
+ enum: AssertionFn;
12
+ defined: AssertionFn;
13
+ required: AssertionFn;
14
+ disallowed: AssertionFn;
15
+ undefined: AssertionFn;
16
+ nonEmpty: AssertionFn;
17
+ minLength: AssertionFn;
18
+ maxLength: AssertionFn;
19
+ casing: AssertionFn;
20
+ sortOrder: AssertionFn;
21
+ mutuallyExclusive: AssertionFn;
22
+ mutuallyRequired: AssertionFn;
23
+ requireAny: AssertionFn;
24
+ ref: AssertionFn;
25
+ const: AssertionFn;
26
+ };
27
+ export declare const runOnKeysSet: Set<keyof Asserts>;
28
+ export declare const runOnValuesSet: Set<keyof Asserts>;
29
+ export declare const asserts: Asserts;
30
+ export declare function buildAssertCustomFunction(fn: CustomFunction): AssertionFn;