@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,1008 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AsyncApi2Types = exports.AsyncApi2Bindings = exports.Dependencies = exports.SecuritySchemeFlows = exports.Discriminator = exports.DiscriminatorMapping = exports.SchemaProperties = exports.Schema = exports.MessageExample = exports.CorrelationId = exports.License = exports.Contact = exports.ServerVariable = exports.ServerMap = exports.ExternalDocs = exports.Tag = void 0;
4
+ const _1 = require(".");
5
+ const ref_utils_1 = require("../ref-utils");
6
+ const Root = {
7
+ properties: {
8
+ asyncapi: null, // TODO: validate semver format and supported version
9
+ info: 'Info',
10
+ id: { type: 'string' },
11
+ servers: 'ServerMap',
12
+ channels: 'ChannelMap',
13
+ components: 'Components',
14
+ tags: 'TagList',
15
+ externalDocs: 'ExternalDocs',
16
+ defaultContentType: { type: 'string' },
17
+ },
18
+ required: ['asyncapi', 'channels', 'info'],
19
+ };
20
+ const Channel = {
21
+ properties: {
22
+ description: { type: 'string' },
23
+ subscribe: 'Operation',
24
+ publish: 'Operation',
25
+ parameters: 'ParametersMap',
26
+ bindings: 'ChannelBindings',
27
+ servers: { type: 'array', items: { type: 'string' } },
28
+ },
29
+ };
30
+ const ChannelMap = {
31
+ properties: {},
32
+ additionalProperties: 'Channel',
33
+ };
34
+ const ChannelBindings = {
35
+ properties: {},
36
+ allowed() {
37
+ // allow all supported values, not all have deep linting
38
+ return [
39
+ 'http',
40
+ 'ws',
41
+ 'kafka',
42
+ 'anypointmq',
43
+ 'amqp',
44
+ 'amqp1',
45
+ 'mqtt',
46
+ 'mqtt5',
47
+ 'nats',
48
+ 'jms',
49
+ 'sns',
50
+ 'solace',
51
+ 'sqs',
52
+ 'stomp',
53
+ 'redis',
54
+ 'mercure',
55
+ 'ibmmq',
56
+ 'googlepubsub',
57
+ 'pulsar',
58
+ ];
59
+ },
60
+ additionalProperties: { type: 'object' },
61
+ };
62
+ exports.Tag = {
63
+ properties: {
64
+ name: { type: 'string' },
65
+ description: { type: 'string' },
66
+ externalDocs: 'ExternalDocs',
67
+ },
68
+ required: ['name'],
69
+ };
70
+ exports.ExternalDocs = {
71
+ properties: {
72
+ description: { type: 'string' },
73
+ url: { type: 'string' },
74
+ },
75
+ required: ['url'],
76
+ };
77
+ const SecurityRequirement = {
78
+ properties: {},
79
+ additionalProperties: { type: 'array', items: { type: 'string' } },
80
+ };
81
+ const ServerBindings = {
82
+ properties: {},
83
+ allowed() {
84
+ // allow all supported values, not all have deep linting
85
+ return [
86
+ 'http',
87
+ 'ws',
88
+ 'kafka',
89
+ 'anypointmq',
90
+ 'amqp',
91
+ 'amqp1',
92
+ 'mqtt',
93
+ 'mqtt5',
94
+ 'nats',
95
+ 'jms',
96
+ 'sns',
97
+ 'solace',
98
+ 'sqs',
99
+ 'stomp',
100
+ 'redis',
101
+ 'mercure',
102
+ 'ibmmq',
103
+ 'googlepubsub',
104
+ 'pulsar',
105
+ ];
106
+ },
107
+ additionalProperties: { type: 'object' },
108
+ };
109
+ const Server = {
110
+ properties: {
111
+ url: { type: 'string' },
112
+ protocol: { type: 'string' },
113
+ protocolVersion: { type: 'string' },
114
+ description: { type: 'string' },
115
+ variables: 'ServerVariablesMap',
116
+ security: 'SecurityRequirementList',
117
+ bindings: 'ServerBindings',
118
+ tags: 'TagList',
119
+ },
120
+ required: ['url', 'protocol'],
121
+ };
122
+ exports.ServerMap = {
123
+ properties: {},
124
+ additionalProperties: (_value, key) =>
125
+ // eslint-disable-next-line no-useless-escape
126
+ key.match(/^[A-Za-z0-9_\-]+$/) ? 'Server' : undefined,
127
+ };
128
+ exports.ServerVariable = {
129
+ properties: {
130
+ enum: {
131
+ type: 'array',
132
+ items: { type: 'string' },
133
+ },
134
+ default: { type: 'string' },
135
+ description: { type: 'string' },
136
+ examples: {
137
+ type: 'array',
138
+ items: { type: 'string' },
139
+ },
140
+ },
141
+ required: [],
142
+ };
143
+ const Info = {
144
+ properties: {
145
+ title: { type: 'string' },
146
+ version: { type: 'string' },
147
+ description: { type: 'string' },
148
+ termsOfService: { type: 'string' },
149
+ contact: 'Contact',
150
+ license: 'License',
151
+ },
152
+ required: ['title', 'version'],
153
+ };
154
+ exports.Contact = {
155
+ properties: {
156
+ name: { type: 'string' },
157
+ url: { type: 'string' },
158
+ email: { type: 'string' },
159
+ },
160
+ };
161
+ exports.License = {
162
+ properties: {
163
+ name: { type: 'string' },
164
+ url: { type: 'string' },
165
+ },
166
+ required: ['name'],
167
+ };
168
+ const Parameter = {
169
+ properties: {
170
+ description: { type: 'string' },
171
+ schema: 'Schema',
172
+ location: { type: 'string' },
173
+ },
174
+ };
175
+ exports.CorrelationId = {
176
+ properties: {
177
+ description: { type: 'string' },
178
+ location: { type: 'string' },
179
+ },
180
+ required: ['location'],
181
+ };
182
+ const Message = {
183
+ properties: {
184
+ messageId: { type: 'string' },
185
+ headers: 'Schema',
186
+ payload: 'Schema', // TODO: strictly this does not cover all cases
187
+ correlationId: 'CorrelationId',
188
+ schemaFormat: { type: 'string' }, // TODO: support official list of schema formats and custom values
189
+ contentType: { type: 'string' },
190
+ name: { type: 'string' },
191
+ title: { type: 'string' },
192
+ summary: { type: 'string' },
193
+ description: { type: 'string' },
194
+ tags: 'TagList',
195
+ externalDocs: 'ExternalDocs',
196
+ bindings: 'MessageBindings',
197
+ examples: 'MessageExampleList',
198
+ traits: 'MessageTraitList',
199
+ },
200
+ additionalProperties: {},
201
+ };
202
+ const MessageBindings = {
203
+ properties: {},
204
+ allowed() {
205
+ // allow all supported values, not all have deep linting
206
+ return [
207
+ 'http',
208
+ 'ws',
209
+ 'kafka',
210
+ 'anypointmq',
211
+ 'amqp',
212
+ 'amqp1',
213
+ 'mqtt',
214
+ 'mqtt5',
215
+ 'nats',
216
+ 'jms',
217
+ 'sns',
218
+ 'solace',
219
+ 'sqs',
220
+ 'stomp',
221
+ 'redis',
222
+ 'mercure',
223
+ 'ibmmq',
224
+ 'googlepubsub',
225
+ 'pulsar',
226
+ ];
227
+ },
228
+ additionalProperties: { type: 'object' },
229
+ };
230
+ const OperationBindings = {
231
+ properties: {},
232
+ allowed() {
233
+ // allow all supported values, not all have deep linting
234
+ return [
235
+ 'http',
236
+ 'ws',
237
+ 'kafka',
238
+ 'anypointmq',
239
+ 'amqp',
240
+ 'amqp1',
241
+ 'mqtt',
242
+ 'mqtt5',
243
+ 'nats',
244
+ 'jms',
245
+ 'sns',
246
+ 'solace',
247
+ 'sqs',
248
+ 'stomp',
249
+ 'redis',
250
+ 'mercure',
251
+ 'ibmmq',
252
+ 'googlepubsub',
253
+ 'pulsar',
254
+ ];
255
+ },
256
+ additionalProperties: { type: 'object' },
257
+ };
258
+ const OperationTrait = {
259
+ properties: {
260
+ tags: 'TagList',
261
+ summary: { type: 'string' },
262
+ description: { type: 'string' },
263
+ externalDocs: 'ExternalDocs',
264
+ operationId: { type: 'string' },
265
+ security: 'SecurityRequirementList',
266
+ bindings: 'OperationBindings',
267
+ },
268
+ required: [],
269
+ };
270
+ const MessageTrait = {
271
+ properties: {
272
+ messageId: { type: 'string' },
273
+ headers: 'Schema',
274
+ correlationId: 'CorrelationId',
275
+ schemaFormat: { type: 'string' },
276
+ contentType: { type: 'string' },
277
+ name: { type: 'string' },
278
+ title: { type: 'string' },
279
+ summary: { type: 'string' },
280
+ description: { type: 'string' },
281
+ tags: 'TagList',
282
+ externalDocs: 'ExternalDocs',
283
+ bindings: 'MessageBindings',
284
+ examples: 'MessageExampleList',
285
+ },
286
+ additionalProperties: {},
287
+ };
288
+ const Operation = {
289
+ properties: {
290
+ tags: 'TagList',
291
+ summary: { type: 'string' },
292
+ description: { type: 'string' },
293
+ externalDocs: 'ExternalDocs',
294
+ operationId: { type: 'string' },
295
+ security: 'SecurityRequirementList',
296
+ bindings: 'OperationBindings',
297
+ traits: 'OperationTraitList',
298
+ message: 'Message',
299
+ },
300
+ required: [],
301
+ };
302
+ exports.MessageExample = {
303
+ properties: {
304
+ payload: { isExample: true },
305
+ summary: { type: 'string' },
306
+ name: { type: 'string' },
307
+ headers: { type: 'object' },
308
+ },
309
+ };
310
+ exports.Schema = {
311
+ properties: {
312
+ $id: { type: 'string' },
313
+ $schema: { type: 'string' },
314
+ definitions: 'NamedSchemas',
315
+ externalDocs: 'ExternalDocs',
316
+ discriminator: 'Discriminator',
317
+ myArbitraryKeyword: { type: 'boolean' },
318
+ title: { type: 'string' },
319
+ multipleOf: { type: 'number', minimum: 0 },
320
+ maximum: { type: 'number' },
321
+ minimum: { type: 'number' },
322
+ exclusiveMaximum: { type: 'number' },
323
+ exclusiveMinimum: { type: 'number' },
324
+ maxLength: { type: 'integer', minimum: 0 },
325
+ minLength: { type: 'integer', minimum: 0 },
326
+ pattern: { type: 'string' },
327
+ maxItems: { type: 'integer', minimum: 0 },
328
+ minItems: { type: 'integer', minimum: 0 },
329
+ uniqueItems: { type: 'boolean' },
330
+ maxProperties: { type: 'integer', minimum: 0 },
331
+ minProperties: { type: 'integer', minimum: 0 },
332
+ required: { type: 'array', items: { type: 'string' } },
333
+ enum: { type: 'array' },
334
+ type: (value) => {
335
+ return Array.isArray(value)
336
+ ? {
337
+ type: 'array',
338
+ items: { enum: ['object', 'array', 'string', 'number', 'integer', 'boolean', 'null'] },
339
+ }
340
+ : {
341
+ enum: ['object', 'array', 'string', 'number', 'integer', 'boolean', 'null'],
342
+ };
343
+ },
344
+ allOf: (0, _1.listOf)('Schema'),
345
+ anyOf: (0, _1.listOf)('Schema'),
346
+ oneOf: (0, _1.listOf)('Schema'),
347
+ not: 'Schema',
348
+ if: 'Schema',
349
+ then: 'Schema',
350
+ else: 'Schema',
351
+ contains: 'Schema',
352
+ patternProperties: { type: 'object' },
353
+ propertyNames: 'Schema',
354
+ properties: 'SchemaProperties',
355
+ items: (value) => {
356
+ return Array.isArray(value) ? (0, _1.listOf)('Schema') : 'Schema';
357
+ },
358
+ additionalProperties: (value) => {
359
+ return typeof value === 'boolean' ? { type: 'boolean' } : 'Schema';
360
+ },
361
+ description: { type: 'string' },
362
+ format: { type: 'string' },
363
+ contentEncoding: { type: 'string' },
364
+ contentMediaType: { type: 'string' },
365
+ default: null,
366
+ readOnly: { type: 'boolean' },
367
+ writeOnly: { type: 'boolean' },
368
+ examples: { type: 'array' },
369
+ example: { isExample: true },
370
+ deprecated: { type: 'boolean' },
371
+ const: null,
372
+ $comment: { type: 'string' },
373
+ additionalItems: (value) => {
374
+ return typeof value === 'boolean' ? { type: 'boolean' } : 'Schema';
375
+ },
376
+ dependencies: 'Dependencies',
377
+ },
378
+ };
379
+ exports.SchemaProperties = {
380
+ properties: {},
381
+ additionalProperties: (value) => {
382
+ return typeof value === 'boolean' ? { type: 'boolean' } : 'Schema';
383
+ },
384
+ };
385
+ exports.DiscriminatorMapping = {
386
+ properties: {},
387
+ additionalProperties: (value) => {
388
+ if ((0, ref_utils_1.isMappingRef)(value)) {
389
+ return { type: 'string', directResolveAs: 'Schema' };
390
+ }
391
+ else {
392
+ return { type: 'string' };
393
+ }
394
+ },
395
+ };
396
+ exports.Discriminator = {
397
+ properties: {
398
+ propertyName: { type: 'string' },
399
+ mapping: 'DiscriminatorMapping',
400
+ },
401
+ required: ['propertyName'],
402
+ };
403
+ const Components = {
404
+ properties: {
405
+ messages: 'NamedMessages',
406
+ parameters: 'NamedParameters',
407
+ schemas: 'NamedSchemas',
408
+ correlationIds: 'NamedCorrelationIds',
409
+ messageTraits: 'NamedMessageTraits',
410
+ operationTraits: 'NamedOperationTraits',
411
+ securitySchemes: 'NamedSecuritySchemes',
412
+ servers: 'ServerMap',
413
+ serverVariables: 'ServerVariablesMap',
414
+ channels: 'ChannelMap',
415
+ serverBindings: 'ServerBindings',
416
+ channelBindings: 'ChannelBindings',
417
+ operationBindings: 'OperationBindings',
418
+ messageBindings: 'MessageBindings',
419
+ },
420
+ };
421
+ const ImplicitFlow = {
422
+ properties: {
423
+ refreshUrl: { type: 'string' },
424
+ scopes: { type: 'object', additionalProperties: { type: 'string' } }, // TODO: validate scopes
425
+ authorizationUrl: { type: 'string' },
426
+ },
427
+ required: ['authorizationUrl', 'scopes'],
428
+ };
429
+ const PasswordFlow = {
430
+ properties: {
431
+ refreshUrl: { type: 'string' },
432
+ scopes: { type: 'object', additionalProperties: { type: 'string' } }, // TODO: validate scopes
433
+ tokenUrl: { type: 'string' },
434
+ },
435
+ required: ['tokenUrl', 'scopes'],
436
+ };
437
+ const ClientCredentials = {
438
+ properties: {
439
+ refreshUrl: { type: 'string' },
440
+ scopes: { type: 'object', additionalProperties: { type: 'string' } }, // TODO: validate scopes
441
+ tokenUrl: { type: 'string' },
442
+ },
443
+ required: ['tokenUrl', 'scopes'],
444
+ };
445
+ const AuthorizationCode = {
446
+ properties: {
447
+ refreshUrl: { type: 'string' },
448
+ authorizationUrl: { type: 'string' },
449
+ scopes: { type: 'object', additionalProperties: { type: 'string' } }, // TODO: validate scopes
450
+ tokenUrl: { type: 'string' },
451
+ },
452
+ required: ['authorizationUrl', 'tokenUrl', 'scopes'],
453
+ };
454
+ exports.SecuritySchemeFlows = {
455
+ properties: {
456
+ implicit: 'ImplicitFlow',
457
+ password: 'PasswordFlow',
458
+ clientCredentials: 'ClientCredentials',
459
+ authorizationCode: 'AuthorizationCode',
460
+ },
461
+ };
462
+ const SecurityScheme = {
463
+ properties: {
464
+ type: {
465
+ enum: [
466
+ 'userPassword',
467
+ 'apiKey',
468
+ 'X509',
469
+ 'symmetricEncryption',
470
+ 'asymmetricEncryption',
471
+ 'httpApiKey',
472
+ 'http',
473
+ 'oauth2',
474
+ 'openIdConnect',
475
+ 'plain',
476
+ 'scramSha256',
477
+ 'scramSha512',
478
+ 'gssapi',
479
+ ],
480
+ },
481
+ description: { type: 'string' },
482
+ name: { type: 'string' },
483
+ in: { type: 'string', enum: ['query', 'header', 'cookie', 'user', 'password'] },
484
+ scheme: { type: 'string' },
485
+ bearerFormat: { type: 'string' },
486
+ flows: 'SecuritySchemeFlows',
487
+ openIdConnectUrl: { type: 'string' },
488
+ },
489
+ required(value) {
490
+ switch (value?.type) {
491
+ case 'apiKey':
492
+ return ['type', 'in'];
493
+ case 'httpApiKey':
494
+ return ['type', 'name', 'in'];
495
+ case 'http':
496
+ return ['type', 'scheme'];
497
+ case 'oauth2':
498
+ return ['type', 'flows'];
499
+ case 'openIdConnect':
500
+ return ['type', 'openIdConnectUrl'];
501
+ default:
502
+ return ['type'];
503
+ }
504
+ },
505
+ allowed(value) {
506
+ switch (value?.type) {
507
+ case 'apiKey':
508
+ return ['type', 'in', 'description'];
509
+ case 'httpApiKey':
510
+ return ['type', 'name', 'in', 'description'];
511
+ case 'http':
512
+ return ['type', 'scheme', 'bearerFormat', 'description'];
513
+ case 'oauth2':
514
+ return ['type', 'flows', 'description'];
515
+ case 'openIdConnect':
516
+ return ['type', 'openIdConnectUrl', 'description'];
517
+ default:
518
+ return ['type', 'description'];
519
+ }
520
+ },
521
+ extensionsPrefix: 'x-',
522
+ };
523
+ exports.Dependencies = {
524
+ properties: {},
525
+ additionalProperties: (value) => {
526
+ return Array.isArray(value) ? { type: 'array', items: { type: 'string' } } : 'Schema';
527
+ },
528
+ };
529
+ // --- Per-protocol node types
530
+ // http
531
+ const HttpChannelBinding = {
532
+ properties: {}, // empty object
533
+ };
534
+ ChannelBindings.properties.http = HttpChannelBinding;
535
+ const HttpServerBinding = {
536
+ properties: {}, // empty object
537
+ };
538
+ ServerBindings.properties.http = HttpServerBinding;
539
+ const HttpMessageBinding = {
540
+ properties: {
541
+ headers: 'Schema',
542
+ bindingVersion: { type: 'string' },
543
+ },
544
+ };
545
+ MessageBindings.properties.http = HttpMessageBinding;
546
+ const HttpOperationBinding = {
547
+ properties: {
548
+ type: { type: 'string' },
549
+ method: {
550
+ type: 'string',
551
+ enum: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'CONNECT', 'TRACE'],
552
+ },
553
+ headers: 'Schema',
554
+ bindingVersion: { type: 'string' },
555
+ },
556
+ };
557
+ OperationBindings.properties.http = HttpOperationBinding;
558
+ // ws
559
+ const WsChannelBinding = {
560
+ properties: {
561
+ method: { type: 'string' },
562
+ query: 'Schema',
563
+ headers: 'Schema',
564
+ bindingVersion: { type: 'string' },
565
+ },
566
+ };
567
+ ChannelBindings.properties.ws = WsChannelBinding;
568
+ const WsServerBinding = {
569
+ properties: {}, // empty object
570
+ };
571
+ ServerBindings.properties.ws = WsServerBinding;
572
+ const WsMessageBinding = {
573
+ properties: {}, // empty object
574
+ };
575
+ MessageBindings.properties.ws = WsMessageBinding;
576
+ const WsOperationBinding = {
577
+ properties: {}, // empty object
578
+ };
579
+ OperationBindings.properties.ws = WsOperationBinding;
580
+ // kafka
581
+ const KafkaTopicConfiguration = {
582
+ properties: {
583
+ 'cleanup.policy': { type: 'array', items: { enum: ['delete', 'compact'] } },
584
+ 'retention.ms': { type: 'integer' },
585
+ 'retention.bytes': { type: 'integer' },
586
+ 'delete.retention.ms': { type: 'integer' },
587
+ 'max.message.bytes': { type: 'integer' },
588
+ },
589
+ };
590
+ const KafkaChannelBinding = {
591
+ properties: {
592
+ topic: { type: 'string' },
593
+ partitions: { type: 'integer' },
594
+ replicas: { type: 'integer' },
595
+ topicConfiguration: 'KafkaTopicConfiguration',
596
+ bindingVersion: { type: 'string' },
597
+ },
598
+ };
599
+ ChannelBindings.properties.kafka = KafkaChannelBinding;
600
+ const KafkaServerBinding = {
601
+ properties: {}, // empty object
602
+ };
603
+ ServerBindings.properties.kafka = KafkaServerBinding;
604
+ const KafkaMessageBinding = {
605
+ properties: {
606
+ key: 'Schema', // TODO: add avro support
607
+ schemaIdLocation: { type: 'string' },
608
+ schemaIdPayloadEncoding: { type: 'string' },
609
+ schemaLookupStrategy: { type: 'string' },
610
+ bindingVersion: { type: 'string' },
611
+ },
612
+ };
613
+ MessageBindings.properties.kafka = KafkaMessageBinding;
614
+ const KafkaOperationBinding = {
615
+ properties: {
616
+ groupId: 'Schema',
617
+ clientId: 'Schema',
618
+ bindingVersion: { type: 'string' },
619
+ },
620
+ };
621
+ OperationBindings.properties.kafka = KafkaOperationBinding;
622
+ // anypointmq
623
+ const AnypointmqChannelBinding = {
624
+ properties: {
625
+ destination: { type: 'string' },
626
+ destinationType: { type: 'string' },
627
+ bindingVersion: { type: 'string' },
628
+ },
629
+ };
630
+ ChannelBindings.properties.anypointmq = AnypointmqChannelBinding;
631
+ const AnypointmqServerBinding = {
632
+ properties: {}, // empty object
633
+ };
634
+ ServerBindings.properties.anypointmq = AnypointmqServerBinding;
635
+ const AnypointmqMessageBinding = {
636
+ properties: {
637
+ headers: 'Schema',
638
+ bindingVersion: { type: 'string' },
639
+ },
640
+ };
641
+ MessageBindings.properties.anypointmq = AnypointmqMessageBinding;
642
+ const AnypointmqOperationBinding = {
643
+ properties: {}, // empty object
644
+ };
645
+ OperationBindings.properties.anypointmq = AnypointmqOperationBinding;
646
+ // amqp
647
+ const AmqpChannelBinding = {
648
+ properties: {}, // empty object
649
+ };
650
+ ChannelBindings.properties.amqp = AmqpChannelBinding;
651
+ const AmqpServerBinding = {
652
+ properties: {}, // empty object
653
+ };
654
+ ServerBindings.properties.amqp = AmqpServerBinding;
655
+ const AmqpMessageBinding = {
656
+ properties: {
657
+ contentEncoding: { type: 'string' },
658
+ messageType: { type: 'string' },
659
+ bindingVersion: { type: 'string' },
660
+ },
661
+ };
662
+ MessageBindings.properties.amqp = AmqpMessageBinding;
663
+ const AmqpOperationBinding = {
664
+ // TODO: some fields are subscribe only
665
+ properties: {
666
+ expiration: { type: 'integer' },
667
+ userId: { type: 'string' },
668
+ cc: { type: 'array', items: { type: 'string' } },
669
+ priority: { type: 'integer' },
670
+ deliveryMode: { type: 'integer' }, // TODO: enum: [1, 2]
671
+ mandatory: { type: 'boolean' },
672
+ bcc: { type: 'array', items: { type: 'string' } },
673
+ replyTo: { type: 'string' },
674
+ timestamp: { type: 'boolean' },
675
+ ack: { type: 'boolean' },
676
+ bindingVersion: { type: 'string' },
677
+ },
678
+ };
679
+ OperationBindings.properties.amqp = AmqpOperationBinding;
680
+ // amqp1
681
+ const Amqp1ChannelBinding = {
682
+ properties: {}, // empty object
683
+ };
684
+ ChannelBindings.properties.amqp1 = Amqp1ChannelBinding;
685
+ const Amqp1ServerBinding = {
686
+ properties: {}, // empty object
687
+ };
688
+ ServerBindings.properties.amqp1 = Amqp1ServerBinding;
689
+ const Amqp1MessageBinding = {
690
+ properties: {}, // empty object
691
+ };
692
+ MessageBindings.properties.amqp1 = Amqp1MessageBinding;
693
+ const Amqp1OperationBinding = {
694
+ properties: {}, // empty object
695
+ };
696
+ OperationBindings.properties.amqp1 = Amqp1OperationBinding;
697
+ // mqtt
698
+ const MqttChannelBinding = {
699
+ properties: {
700
+ qos: { type: 'integer' },
701
+ retain: { type: 'boolean' },
702
+ bindingVersion: { type: 'string' },
703
+ },
704
+ };
705
+ ChannelBindings.properties.mqtt = MqttChannelBinding;
706
+ const MqttServerBindingLastWill = {
707
+ properties: {
708
+ topic: { type: 'string' },
709
+ qos: { type: 'integer' },
710
+ message: { type: 'string' },
711
+ retain: { type: 'boolean' },
712
+ },
713
+ };
714
+ const MqttServerBinding = {
715
+ properties: {
716
+ clientId: { type: 'string' },
717
+ cleanSession: { type: 'boolean' },
718
+ lastWill: 'MqttServerBindingLastWill',
719
+ keepAlive: { type: 'integer' },
720
+ bindingVersion: { type: 'string' },
721
+ },
722
+ };
723
+ ServerBindings.properties.mqtt = MqttServerBinding;
724
+ const MqttMessageBinding = {
725
+ properties: {
726
+ bindingVersion: { type: 'string' },
727
+ },
728
+ };
729
+ MessageBindings.properties.mqtt = MqttMessageBinding;
730
+ const MqttOperationBinding = {
731
+ properties: {
732
+ qos: { type: 'integer' },
733
+ retain: { type: 'boolean' },
734
+ bindingVersion: { type: 'string' },
735
+ },
736
+ };
737
+ OperationBindings.properties.mqtt = MqttOperationBinding;
738
+ // mqtt5
739
+ const Mqtt5ChannelBinding = {
740
+ properties: {}, // empty object
741
+ };
742
+ ChannelBindings.properties.mqtt5 = Mqtt5ChannelBinding;
743
+ const Mqtt5ServerBinding = {
744
+ properties: {}, // empty object
745
+ };
746
+ ServerBindings.properties.mqtt5 = Mqtt5ServerBinding;
747
+ const Mqtt5MessageBinding = {
748
+ properties: {}, // empty object
749
+ };
750
+ MessageBindings.properties.mqtt5 = Mqtt5MessageBinding;
751
+ const Mqtt5OperationBinding = {
752
+ properties: {}, // empty object
753
+ };
754
+ OperationBindings.properties.mqtt5 = Mqtt5OperationBinding;
755
+ // nats
756
+ const NatsChannelBinding = {
757
+ properties: {}, // empty object
758
+ };
759
+ ChannelBindings.properties.nats = NatsChannelBinding;
760
+ const NatsServerBinding = {
761
+ properties: {}, // empty object
762
+ };
763
+ ServerBindings.properties.nats = NatsServerBinding;
764
+ const NatsMessageBinding = {
765
+ properties: {}, // empty object
766
+ };
767
+ MessageBindings.properties.nats = NatsMessageBinding;
768
+ const NatsOperationBinding = {
769
+ properties: {
770
+ queue: { type: 'string' },
771
+ bindingVersion: { type: 'string' },
772
+ },
773
+ };
774
+ OperationBindings.properties.nats = NatsOperationBinding;
775
+ // jms
776
+ const JmsChannelBinding = {
777
+ properties: {
778
+ destination: { type: 'string' },
779
+ destinationType: { type: 'string' },
780
+ bindingVersion: { type: 'string' },
781
+ },
782
+ };
783
+ ChannelBindings.properties.jms = JmsChannelBinding;
784
+ const JmsServerBinding = {
785
+ properties: {}, // empty object
786
+ };
787
+ ServerBindings.properties.jms = JmsServerBinding;
788
+ const JmsMessageBinding = {
789
+ properties: {
790
+ headers: 'Schema',
791
+ bindingVersion: { type: 'string' },
792
+ },
793
+ };
794
+ MessageBindings.properties.jms = JmsMessageBinding;
795
+ const JmsOperationBinding = {
796
+ properties: {
797
+ headers: 'Schema',
798
+ bindingVersion: { type: 'string' },
799
+ },
800
+ };
801
+ OperationBindings.properties.jms = JmsOperationBinding;
802
+ // sns
803
+ // solace
804
+ const SolaceChannelBinding = {
805
+ properties: {}, // empty object
806
+ };
807
+ ChannelBindings.properties.solace = SolaceChannelBinding;
808
+ const SolaceServerBinding = {
809
+ properties: {
810
+ bindingVersion: { type: 'string' },
811
+ msgVpn: { type: 'string' },
812
+ },
813
+ };
814
+ ServerBindings.properties.solace = SolaceServerBinding;
815
+ const SolaceMessageBinding = {
816
+ properties: {}, // empty object
817
+ };
818
+ MessageBindings.properties.solace = SolaceMessageBinding;
819
+ const SolaceDestination = {
820
+ properties: {
821
+ destinationType: { type: 'string', enum: ['queue', 'topic'] },
822
+ deliveryMode: { type: 'string', enum: ['direct', 'persistent'] },
823
+ 'queue.name': { type: 'string' },
824
+ 'queue.topicSubscriptions': { type: 'array', items: { type: 'string' } },
825
+ 'queue.accessType': { type: 'string', enum: ['exclusive', 'nonexclusive'] },
826
+ 'queue.maxMsgSpoolSize': { type: 'string' },
827
+ 'queue.maxTtl': { type: 'string' },
828
+ 'topic.topicSubscriptions': { type: 'array', items: { type: 'string' } },
829
+ },
830
+ };
831
+ const SolaceOperationBinding = {
832
+ properties: {
833
+ bindingVersion: { type: 'string' },
834
+ destinations: (0, _1.listOf)('SolaceDestination'),
835
+ },
836
+ };
837
+ OperationBindings.properties.solace = SolaceOperationBinding;
838
+ // sqs
839
+ // stomp
840
+ const StompChannelBinding = {
841
+ properties: {}, // empty object
842
+ };
843
+ ChannelBindings.properties.stomp = StompChannelBinding;
844
+ const StompServerBinding = {
845
+ properties: {}, // empty object
846
+ };
847
+ ServerBindings.properties.stomp = StompServerBinding;
848
+ const StompMessageBinding = {
849
+ properties: {}, // empty object
850
+ };
851
+ MessageBindings.properties.stomp = StompMessageBinding;
852
+ const StompOperationBinding = {
853
+ properties: {}, // empty object
854
+ };
855
+ OperationBindings.properties.stomp = StompOperationBinding;
856
+ // redis
857
+ const RedisChannelBinding = {
858
+ properties: {}, // empty object
859
+ };
860
+ ChannelBindings.properties.redis = RedisChannelBinding;
861
+ const RedisServerBinding = {
862
+ properties: {}, // empty object
863
+ };
864
+ ServerBindings.properties.redis = RedisServerBinding;
865
+ const RedisMessageBinding = {
866
+ properties: {}, // empty object
867
+ };
868
+ MessageBindings.properties.redis = RedisMessageBinding;
869
+ const RedisOperationBinding = {
870
+ properties: {}, // empty object
871
+ };
872
+ OperationBindings.properties.redis = RedisOperationBinding;
873
+ // mercure
874
+ const MercureChannelBinding = {
875
+ properties: {}, // empty object
876
+ };
877
+ ChannelBindings.properties.mercure = MercureChannelBinding;
878
+ const MercureServerBinding = {
879
+ properties: {}, // empty object
880
+ };
881
+ ServerBindings.properties.mercure = MercureServerBinding;
882
+ const MercureMessageBinding = {
883
+ properties: {}, // empty object
884
+ };
885
+ MessageBindings.properties.mercure = MercureMessageBinding;
886
+ const MercureOperationBinding = {
887
+ properties: {}, // empty object
888
+ };
889
+ OperationBindings.properties.mercure = MercureOperationBinding;
890
+ // ibmmq
891
+ // googlepubsub
892
+ // pulsar
893
+ // --- End per-protocol node types
894
+ exports.AsyncApi2Bindings = {
895
+ HttpServerBinding,
896
+ HttpChannelBinding,
897
+ HttpMessageBinding,
898
+ HttpOperationBinding,
899
+ WsServerBinding,
900
+ WsChannelBinding,
901
+ WsMessageBinding,
902
+ WsOperationBinding,
903
+ KafkaServerBinding,
904
+ KafkaTopicConfiguration,
905
+ KafkaChannelBinding,
906
+ KafkaMessageBinding,
907
+ KafkaOperationBinding,
908
+ AnypointmqServerBinding,
909
+ AnypointmqChannelBinding,
910
+ AnypointmqMessageBinding,
911
+ AnypointmqOperationBinding,
912
+ AmqpServerBinding,
913
+ AmqpChannelBinding,
914
+ AmqpMessageBinding,
915
+ AmqpOperationBinding,
916
+ Amqp1ServerBinding,
917
+ Amqp1ChannelBinding,
918
+ Amqp1MessageBinding,
919
+ Amqp1OperationBinding,
920
+ MqttServerBindingLastWill,
921
+ MqttServerBinding,
922
+ MqttChannelBinding,
923
+ MqttMessageBinding,
924
+ MqttOperationBinding,
925
+ Mqtt5ServerBinding,
926
+ Mqtt5ChannelBinding,
927
+ Mqtt5MessageBinding,
928
+ Mqtt5OperationBinding,
929
+ NatsServerBinding,
930
+ NatsChannelBinding,
931
+ NatsMessageBinding,
932
+ NatsOperationBinding,
933
+ JmsServerBinding,
934
+ JmsChannelBinding,
935
+ JmsMessageBinding,
936
+ JmsOperationBinding,
937
+ SolaceServerBinding,
938
+ SolaceChannelBinding,
939
+ SolaceMessageBinding,
940
+ SolaceDestination,
941
+ SolaceOperationBinding,
942
+ StompServerBinding,
943
+ StompChannelBinding,
944
+ StompMessageBinding,
945
+ StompOperationBinding,
946
+ RedisServerBinding,
947
+ RedisChannelBinding,
948
+ RedisMessageBinding,
949
+ RedisOperationBinding,
950
+ MercureServerBinding,
951
+ MercureChannelBinding,
952
+ MercureMessageBinding,
953
+ MercureOperationBinding,
954
+ ServerBindings,
955
+ ChannelBindings,
956
+ MessageBindings,
957
+ OperationBindings,
958
+ };
959
+ exports.AsyncApi2Types = {
960
+ ...exports.AsyncApi2Bindings,
961
+ Root,
962
+ Tag: exports.Tag,
963
+ TagList: (0, _1.listOf)('Tag'),
964
+ ServerMap: exports.ServerMap,
965
+ ExternalDocs: exports.ExternalDocs,
966
+ Server,
967
+ ServerVariable: exports.ServerVariable,
968
+ ServerVariablesMap: (0, _1.mapOf)('ServerVariable'),
969
+ SecurityRequirement,
970
+ SecurityRequirementList: (0, _1.listOf)('SecurityRequirement'),
971
+ Info,
972
+ Contact: exports.Contact,
973
+ License: exports.License,
974
+ ChannelMap,
975
+ Channel,
976
+ Parameter,
977
+ ParametersMap: (0, _1.mapOf)('Parameter'),
978
+ Operation,
979
+ Schema: exports.Schema,
980
+ MessageExample: exports.MessageExample,
981
+ SchemaProperties: exports.SchemaProperties,
982
+ DiscriminatorMapping: exports.DiscriminatorMapping,
983
+ Discriminator: exports.Discriminator,
984
+ Components,
985
+ NamedSchemas: (0, _1.mapOf)('Schema'),
986
+ NamedMessages: (0, _1.mapOf)('Message'),
987
+ NamedMessageTraits: (0, _1.mapOf)('MessageTrait'),
988
+ NamedOperationTraits: (0, _1.mapOf)('OperationTrait'),
989
+ NamedParameters: (0, _1.mapOf)('Parameter'),
990
+ NamedSecuritySchemes: (0, _1.mapOf)('SecurityScheme'),
991
+ NamedCorrelationIds: (0, _1.mapOf)('CorrelationId'),
992
+ ImplicitFlow,
993
+ PasswordFlow,
994
+ ClientCredentials,
995
+ AuthorizationCode,
996
+ SecuritySchemeFlows: exports.SecuritySchemeFlows,
997
+ SecurityScheme,
998
+ Message,
999
+ MessageBindings,
1000
+ OperationBindings,
1001
+ OperationTrait,
1002
+ OperationTraitList: (0, _1.listOf)('OperationTrait'),
1003
+ MessageTrait,
1004
+ MessageTraitList: (0, _1.listOf)('MessageTrait'),
1005
+ MessageExampleList: (0, _1.listOf)('MessageExample'),
1006
+ CorrelationId: exports.CorrelationId,
1007
+ Dependencies: exports.Dependencies,
1008
+ };