@asyncapi/react-component 1.0.0-next.5 → 1.0.0-next.50

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 (286) hide show
  1. package/README.md +75 -4
  2. package/browser/index.js +32 -14
  3. package/browser/index.js.LICENSE.txt +88 -0
  4. package/browser/standalone/index.js +32 -0
  5. package/browser/standalone/index.js.LICENSE.txt +112 -0
  6. package/browser/standalone/without-parser.js +14 -0
  7. package/browser/standalone/without-parser.js.LICENSE.txt +110 -0
  8. package/browser/without-parser.js +14 -12
  9. package/browser/without-parser.js.LICENSE.txt +86 -0
  10. package/lib/cjs/components/Bindings.js +12 -4
  11. package/lib/cjs/components/Bindings.js.map +1 -1
  12. package/lib/cjs/components/CollapseButton.js +11 -7
  13. package/lib/cjs/components/CollapseButton.js.map +1 -1
  14. package/lib/cjs/components/Extensions.js +4 -3
  15. package/lib/cjs/components/Extensions.js.map +1 -1
  16. package/lib/cjs/components/Href.js +2 -1
  17. package/lib/cjs/components/Href.js.map +1 -1
  18. package/lib/cjs/components/JSONSnippet.js +17 -0
  19. package/lib/cjs/components/JSONSnippet.js.map +1 -0
  20. package/lib/cjs/components/Markdown.js +4 -4
  21. package/lib/cjs/components/Markdown.js.map +1 -1
  22. package/lib/cjs/components/Schema.js +75 -58
  23. package/lib/cjs/components/Schema.js.map +1 -1
  24. package/lib/cjs/components/Tag.js +3 -2
  25. package/lib/cjs/components/Tag.js.map +1 -1
  26. package/lib/cjs/components/Tags.js +2 -1
  27. package/lib/cjs/components/Tags.js.map +1 -1
  28. package/lib/cjs/components/index.js +6 -2
  29. package/lib/cjs/components/index.js.map +1 -1
  30. package/lib/cjs/config/config.js.map +1 -1
  31. package/lib/cjs/config/default.js +9 -1
  32. package/lib/cjs/config/default.js.map +1 -1
  33. package/lib/cjs/config/index.js +5 -1
  34. package/lib/cjs/config/index.js.map +1 -1
  35. package/lib/cjs/constants.js +5 -48
  36. package/lib/cjs/constants.js.map +1 -1
  37. package/lib/cjs/containers/AsyncApi/AsyncApi.js +8 -2
  38. package/lib/cjs/containers/AsyncApi/AsyncApi.js.map +1 -1
  39. package/lib/cjs/containers/AsyncApi/Layout.js +33 -21
  40. package/lib/cjs/containers/AsyncApi/Layout.js.map +1 -1
  41. package/lib/cjs/containers/AsyncApi/Standalone.js +8 -2
  42. package/lib/cjs/containers/AsyncApi/Standalone.js.map +1 -1
  43. package/lib/cjs/containers/Error/Error.js +4 -3
  44. package/lib/cjs/containers/Error/Error.js.map +1 -1
  45. package/lib/cjs/containers/Info/Info.js +11 -10
  46. package/lib/cjs/containers/Info/Info.js.map +1 -1
  47. package/lib/cjs/containers/Messages/Message.js +23 -10
  48. package/lib/cjs/containers/Messages/Message.js.map +1 -1
  49. package/lib/cjs/containers/Messages/MessageExample.js +26 -14
  50. package/lib/cjs/containers/Messages/MessageExample.js.map +1 -1
  51. package/lib/cjs/containers/Messages/Messages.js +11 -7
  52. package/lib/cjs/containers/Messages/Messages.js.map +1 -1
  53. package/lib/cjs/containers/Operations/Operation.js +73 -37
  54. package/lib/cjs/containers/Operations/Operation.js.map +1 -1
  55. package/lib/cjs/containers/Operations/Operations.js +16 -13
  56. package/lib/cjs/containers/Operations/Operations.js.map +1 -1
  57. package/lib/cjs/containers/Schemas/Schema.js +21 -0
  58. package/lib/cjs/containers/Schemas/Schema.js.map +1 -0
  59. package/lib/cjs/containers/Schemas/Schemas.js +28 -0
  60. package/lib/cjs/containers/Schemas/Schemas.js.map +1 -0
  61. package/lib/cjs/containers/Servers/Security.js +150 -0
  62. package/lib/cjs/containers/Servers/Security.js.map +1 -0
  63. package/lib/cjs/containers/Servers/Server.js +15 -8
  64. package/lib/cjs/containers/Servers/Server.js.map +1 -1
  65. package/lib/cjs/containers/Servers/Servers.js +7 -4
  66. package/lib/cjs/containers/Servers/Servers.js.map +1 -1
  67. package/lib/cjs/containers/Sidebar/Sidebar.js +213 -140
  68. package/lib/cjs/containers/Sidebar/Sidebar.js.map +1 -1
  69. package/lib/cjs/contexts/index.js +6 -1
  70. package/lib/cjs/contexts/index.js.map +1 -1
  71. package/lib/cjs/contexts/useConfig.js +10 -0
  72. package/lib/cjs/contexts/useConfig.js.map +1 -0
  73. package/lib/cjs/contexts/useSpec.js +7 -3
  74. package/lib/cjs/contexts/useSpec.js.map +1 -1
  75. package/lib/cjs/helpers/common.js +17 -0
  76. package/lib/cjs/helpers/common.js.map +1 -0
  77. package/lib/cjs/helpers/index.js +7 -4
  78. package/lib/cjs/helpers/index.js.map +1 -1
  79. package/lib/cjs/helpers/marked.js +34 -0
  80. package/lib/cjs/helpers/marked.js.map +1 -0
  81. package/lib/cjs/helpers/message.js +39 -9
  82. package/lib/cjs/helpers/message.js.map +1 -1
  83. package/lib/cjs/helpers/parser.js +14 -15
  84. package/lib/cjs/helpers/parser.js.map +1 -1
  85. package/lib/cjs/helpers/schema.js +157 -135
  86. package/lib/cjs/helpers/schema.js.map +1 -1
  87. package/lib/cjs/helpers/server.js +49 -0
  88. package/lib/cjs/helpers/server.js.map +1 -1
  89. package/lib/cjs/helpers/specification.js +36 -21
  90. package/lib/cjs/helpers/specification.js.map +1 -1
  91. package/lib/cjs/index.js +3 -1
  92. package/lib/cjs/index.js.map +1 -1
  93. package/lib/cjs/types.js +4 -51
  94. package/lib/cjs/types.js.map +1 -1
  95. package/lib/cjs/without-parser.js +3 -0
  96. package/lib/cjs/without-parser.js.map +1 -1
  97. package/lib/esm/components/Bindings.js +10 -3
  98. package/lib/esm/components/Bindings.js.map +1 -1
  99. package/lib/esm/components/CollapseButton.js +9 -6
  100. package/lib/esm/components/CollapseButton.js.map +1 -1
  101. package/lib/esm/components/Extensions.js +2 -2
  102. package/lib/esm/components/Extensions.js.map +1 -1
  103. package/lib/esm/components/Href.js.map +1 -1
  104. package/lib/esm/components/JSONSnippet.js +10 -0
  105. package/lib/esm/components/JSONSnippet.js.map +1 -0
  106. package/lib/esm/components/Markdown.js +2 -3
  107. package/lib/esm/components/Markdown.js.map +1 -1
  108. package/lib/esm/components/Schema.js +69 -57
  109. package/lib/esm/components/Schema.js.map +1 -1
  110. package/lib/esm/components/Tag.js +1 -1
  111. package/lib/esm/components/Tag.js.map +1 -1
  112. package/lib/esm/components/Tags.js.map +1 -1
  113. package/lib/esm/components/index.js +1 -1
  114. package/lib/esm/components/index.js.map +1 -1
  115. package/lib/esm/config/config.js.map +1 -1
  116. package/lib/esm/config/default.js +9 -1
  117. package/lib/esm/config/default.js.map +1 -1
  118. package/lib/esm/config/index.js.map +1 -1
  119. package/lib/esm/constants.js +3 -47
  120. package/lib/esm/constants.js.map +1 -1
  121. package/lib/esm/containers/AsyncApi/AsyncApi.js +2 -0
  122. package/lib/esm/containers/AsyncApi/AsyncApi.js.map +1 -1
  123. package/lib/esm/containers/AsyncApi/Layout.js +28 -20
  124. package/lib/esm/containers/AsyncApi/Layout.js.map +1 -1
  125. package/lib/esm/containers/AsyncApi/Standalone.js +3 -1
  126. package/lib/esm/containers/AsyncApi/Standalone.js.map +1 -1
  127. package/lib/esm/containers/Error/Error.js +2 -2
  128. package/lib/esm/containers/Error/Error.js.map +1 -1
  129. package/lib/esm/containers/Info/Info.js +8 -8
  130. package/lib/esm/containers/Info/Info.js.map +1 -1
  131. package/lib/esm/containers/Messages/Message.js +21 -9
  132. package/lib/esm/containers/Messages/Message.js.map +1 -1
  133. package/lib/esm/containers/Messages/MessageExample.js +19 -13
  134. package/lib/esm/containers/Messages/MessageExample.js.map +1 -1
  135. package/lib/esm/containers/Messages/Messages.js +10 -7
  136. package/lib/esm/containers/Messages/Messages.js.map +1 -1
  137. package/lib/esm/containers/Operations/Operation.js +72 -38
  138. package/lib/esm/containers/Operations/Operation.js.map +1 -1
  139. package/lib/esm/containers/Operations/Operations.js +15 -13
  140. package/lib/esm/containers/Operations/Operations.js.map +1 -1
  141. package/lib/esm/containers/Schemas/Schema.js +14 -0
  142. package/lib/esm/containers/Schemas/Schema.js.map +1 -0
  143. package/lib/esm/containers/Schemas/Schemas.js +21 -0
  144. package/lib/esm/containers/Schemas/Schemas.js.map +1 -0
  145. package/lib/esm/containers/Servers/Security.js +143 -0
  146. package/lib/esm/containers/Servers/Security.js.map +1 -0
  147. package/lib/esm/containers/Servers/Server.js +15 -9
  148. package/lib/esm/containers/Servers/Server.js.map +1 -1
  149. package/lib/esm/containers/Servers/Servers.js +5 -3
  150. package/lib/esm/containers/Servers/Servers.js.map +1 -1
  151. package/lib/esm/containers/Sidebar/Sidebar.js +203 -135
  152. package/lib/esm/containers/Sidebar/Sidebar.js.map +1 -1
  153. package/lib/esm/contexts/index.js +1 -0
  154. package/lib/esm/contexts/index.js.map +1 -1
  155. package/lib/esm/contexts/useConfig.js +6 -0
  156. package/lib/esm/contexts/useConfig.js.map +1 -0
  157. package/lib/esm/contexts/useSpec.js +2 -2
  158. package/lib/esm/contexts/useSpec.js.map +1 -1
  159. package/lib/esm/helpers/common.js +14 -0
  160. package/lib/esm/helpers/common.js.map +1 -0
  161. package/lib/esm/helpers/index.js +2 -3
  162. package/lib/esm/helpers/index.js.map +1 -1
  163. package/lib/esm/helpers/marked.js +27 -0
  164. package/lib/esm/helpers/marked.js.map +1 -0
  165. package/lib/esm/helpers/message.js +38 -8
  166. package/lib/esm/helpers/message.js.map +1 -1
  167. package/lib/esm/helpers/parser.js +15 -13
  168. package/lib/esm/helpers/parser.js.map +1 -1
  169. package/lib/esm/helpers/schema.js +152 -127
  170. package/lib/esm/helpers/schema.js.map +1 -1
  171. package/lib/esm/helpers/server.js +49 -0
  172. package/lib/esm/helpers/server.js.map +1 -1
  173. package/lib/esm/helpers/specification.js +36 -18
  174. package/lib/esm/helpers/specification.js.map +1 -1
  175. package/lib/esm/index.js +2 -1
  176. package/lib/esm/index.js.map +1 -1
  177. package/lib/esm/types.js +2 -46
  178. package/lib/esm/types.js.map +1 -1
  179. package/lib/esm/without-parser.js +2 -0
  180. package/lib/esm/without-parser.js.map +1 -1
  181. package/lib/types/components/Bindings.d.ts.map +1 -1
  182. package/lib/types/components/CollapseButton.d.ts +1 -0
  183. package/lib/types/components/CollapseButton.d.ts.map +1 -1
  184. package/lib/types/components/Extensions.d.ts.map +1 -1
  185. package/lib/types/components/JSONSnippet.d.ts +7 -0
  186. package/lib/types/components/JSONSnippet.d.ts.map +1 -0
  187. package/lib/types/components/Markdown.d.ts.map +1 -1
  188. package/lib/types/components/Schema.d.ts +5 -4
  189. package/lib/types/components/Schema.d.ts.map +1 -1
  190. package/lib/types/components/Tag.d.ts +2 -2
  191. package/lib/types/components/Tag.d.ts.map +1 -1
  192. package/lib/types/components/Tags.d.ts +2 -2
  193. package/lib/types/components/Tags.d.ts.map +1 -1
  194. package/lib/types/components/index.d.ts +1 -1
  195. package/lib/types/components/index.d.ts.map +1 -1
  196. package/lib/types/config/config.d.ts +8 -0
  197. package/lib/types/config/config.d.ts.map +1 -1
  198. package/lib/types/config/default.d.ts.map +1 -1
  199. package/lib/types/constants.d.ts +3 -26
  200. package/lib/types/constants.d.ts.map +1 -1
  201. package/lib/types/containers/AsyncApi/AsyncApi.d.ts +2 -2
  202. package/lib/types/containers/AsyncApi/AsyncApi.d.ts.map +1 -1
  203. package/lib/types/containers/AsyncApi/Layout.d.ts +2 -2
  204. package/lib/types/containers/AsyncApi/Layout.d.ts.map +1 -1
  205. package/lib/types/containers/AsyncApi/Standalone.d.ts +2 -2
  206. package/lib/types/containers/AsyncApi/Standalone.d.ts.map +1 -1
  207. package/lib/types/containers/Info/Info.d.ts.map +1 -1
  208. package/lib/types/containers/Messages/Message.d.ts +3 -2
  209. package/lib/types/containers/Messages/Message.d.ts.map +1 -1
  210. package/lib/types/containers/Messages/MessageExample.d.ts +5 -4
  211. package/lib/types/containers/Messages/MessageExample.d.ts.map +1 -1
  212. package/lib/types/containers/Messages/Messages.d.ts.map +1 -1
  213. package/lib/types/containers/Operations/Operation.d.ts +4 -3
  214. package/lib/types/containers/Operations/Operation.d.ts.map +1 -1
  215. package/lib/types/containers/Operations/Operations.d.ts.map +1 -1
  216. package/lib/types/containers/Schemas/Schema.d.ts +9 -0
  217. package/lib/types/containers/Schemas/Schema.d.ts.map +1 -0
  218. package/lib/types/containers/Schemas/Schemas.d.ts +3 -0
  219. package/lib/types/containers/Schemas/Schemas.d.ts.map +1 -0
  220. package/lib/types/containers/Servers/Security.d.ts +10 -0
  221. package/lib/types/containers/Servers/Security.d.ts.map +1 -0
  222. package/lib/types/containers/Servers/Server.d.ts +2 -2
  223. package/lib/types/containers/Servers/Server.d.ts.map +1 -1
  224. package/lib/types/containers/Servers/Servers.d.ts.map +1 -1
  225. package/lib/types/containers/Sidebar/Sidebar.d.ts +1 -9
  226. package/lib/types/containers/Sidebar/Sidebar.d.ts.map +1 -1
  227. package/lib/types/contexts/index.d.ts +1 -0
  228. package/lib/types/contexts/index.d.ts.map +1 -1
  229. package/lib/types/contexts/useConfig.d.ts +5 -0
  230. package/lib/types/contexts/useConfig.d.ts.map +1 -0
  231. package/lib/types/contexts/useSpec.d.ts +3 -5
  232. package/lib/types/contexts/useSpec.d.ts.map +1 -1
  233. package/lib/types/helpers/common.d.ts +5 -0
  234. package/lib/types/helpers/common.d.ts.map +1 -0
  235. package/lib/types/helpers/index.d.ts +2 -3
  236. package/lib/types/helpers/index.d.ts.map +1 -1
  237. package/lib/types/helpers/marked.d.ts +4 -0
  238. package/lib/types/helpers/marked.d.ts.map +1 -0
  239. package/lib/types/helpers/message.d.ts +4 -3
  240. package/lib/types/helpers/message.d.ts.map +1 -1
  241. package/lib/types/helpers/parser.d.ts.map +1 -1
  242. package/lib/types/helpers/schema.d.ts +16 -12
  243. package/lib/types/helpers/schema.d.ts.map +1 -1
  244. package/lib/types/helpers/server.d.ts +6 -1
  245. package/lib/types/helpers/server.d.ts.map +1 -1
  246. package/lib/types/helpers/specification.d.ts +7 -4
  247. package/lib/types/helpers/specification.d.ts.map +1 -1
  248. package/lib/types/index.d.ts +2 -1
  249. package/lib/types/index.d.ts.map +1 -1
  250. package/lib/types/types.d.ts +12 -305
  251. package/lib/types/types.d.ts.map +1 -1
  252. package/lib/types/without-parser.d.ts +2 -0
  253. package/lib/types/without-parser.d.ts.map +1 -1
  254. package/package.json +43 -19
  255. package/styles/default.css +907 -642
  256. package/styles/default.min.css +4 -2
  257. package/lib/cjs/components/Code.js +0 -15
  258. package/lib/cjs/components/Code.js.map +0 -1
  259. package/lib/cjs/containers/Servers/ServerSecurity.js +0 -101
  260. package/lib/cjs/containers/Servers/ServerSecurity.js.map +0 -1
  261. package/lib/cjs/helpers/bemClasses.js +0 -49
  262. package/lib/cjs/helpers/bemClasses.js.map +0 -1
  263. package/lib/cjs/helpers/formatJsonHighlight.js +0 -61
  264. package/lib/cjs/helpers/formatJsonHighlight.js.map +0 -1
  265. package/lib/cjs/helpers/toKebabCase.js +0 -15
  266. package/lib/cjs/helpers/toKebabCase.js.map +0 -1
  267. package/lib/esm/components/Code.js +0 -9
  268. package/lib/esm/components/Code.js.map +0 -1
  269. package/lib/esm/containers/Servers/ServerSecurity.js +0 -95
  270. package/lib/esm/containers/Servers/ServerSecurity.js.map +0 -1
  271. package/lib/esm/helpers/bemClasses.js +0 -46
  272. package/lib/esm/helpers/bemClasses.js.map +0 -1
  273. package/lib/esm/helpers/formatJsonHighlight.js +0 -57
  274. package/lib/esm/helpers/formatJsonHighlight.js.map +0 -1
  275. package/lib/esm/helpers/toKebabCase.js +0 -11
  276. package/lib/esm/helpers/toKebabCase.js.map +0 -1
  277. package/lib/types/components/Code.d.ts +0 -7
  278. package/lib/types/components/Code.d.ts.map +0 -1
  279. package/lib/types/containers/Servers/ServerSecurity.d.ts +0 -8
  280. package/lib/types/containers/Servers/ServerSecurity.d.ts.map +0 -1
  281. package/lib/types/helpers/bemClasses.d.ts +0 -14
  282. package/lib/types/helpers/bemClasses.d.ts.map +0 -1
  283. package/lib/types/helpers/formatJsonHighlight.d.ts +0 -2
  284. package/lib/types/helpers/formatJsonHighlight.d.ts.map +0 -1
  285. package/lib/types/helpers/toKebabCase.d.ts +0 -2
  286. package/lib/types/helpers/toKebabCase.d.ts.map +0 -1
@@ -0,0 +1,143 @@
1
+ import React from 'react';
2
+ import { Href, Markdown } from '../../components';
3
+ import { useSpec } from '../../contexts';
4
+ import { ServerHelpers } from '../../helpers';
5
+ export var Security = function (_a) {
6
+ var _b = _a.security, security = _b === void 0 ? [] : _b, _c = _a.protocol, protocol = _c === void 0 ? '' : _c, _d = _a.header, header = _d === void 0 ? 'Security' : _d;
7
+ var asyncapi = useSpec();
8
+ var securitySchemes = !asyncapi.components().isEmpty() && asyncapi.components().securitySchemes();
9
+ var renderedSecurities;
10
+ if (!security ||
11
+ !security.length ||
12
+ !securitySchemes ||
13
+ !Object.keys(securitySchemes).length) {
14
+ if (protocol === 'kafka' || protocol === 'kafka-secure') {
15
+ renderedSecurities = (React.createElement(SecurityItem, { protocol: protocol, securitySchema: null }));
16
+ }
17
+ }
18
+ else {
19
+ var securities = Object.values(security)
20
+ .map(function (requirement) {
21
+ var requirements = requirement.all();
22
+ var key = Object.keys(requirements)[0];
23
+ var def = securitySchemes[String(key)];
24
+ var requiredScopes = requirements[String(key)];
25
+ if (!def) {
26
+ return null;
27
+ }
28
+ return (React.createElement(SecurityItem, { protocol: protocol, securitySchema: def, requiredScopes: requiredScopes, key: def.type() }));
29
+ })
30
+ .filter(Boolean);
31
+ renderedSecurities = (React.createElement("ul", null, securities.map(function (s, idx) { return (React.createElement("li", { className: "mt-2", key: idx }, s)); })));
32
+ }
33
+ if (!renderedSecurities) {
34
+ return null;
35
+ }
36
+ return (React.createElement("div", { className: "text-sm mt-4" },
37
+ React.createElement("h5", { className: "text-gray-800" },
38
+ header,
39
+ ":"),
40
+ renderedSecurities));
41
+ };
42
+ function collectSecuritySchemas(securitySchema, requiredScopes) {
43
+ if (requiredScopes === void 0) { requiredScopes = []; }
44
+ var schemas = [];
45
+ if (securitySchema) {
46
+ if (securitySchema.name()) {
47
+ schemas.push(React.createElement("span", null,
48
+ "Name: ",
49
+ securitySchema.name()));
50
+ }
51
+ if (securitySchema.in()) {
52
+ schemas.push(React.createElement("span", null,
53
+ "In: ",
54
+ securitySchema.in()));
55
+ }
56
+ if (securitySchema.scheme()) {
57
+ schemas.push(React.createElement("span", null,
58
+ "Scheme: ",
59
+ securitySchema.scheme()));
60
+ }
61
+ if (securitySchema.bearerFormat()) {
62
+ schemas.push(React.createElement("span", null,
63
+ "Bearer format: ",
64
+ securitySchema.bearerFormat()));
65
+ }
66
+ if (securitySchema.openIdConnectUrl()) {
67
+ schemas.push(React.createElement(Href, { href: securitySchema.openIdConnectUrl(), className: "underline" }, "Connect URL"));
68
+ }
69
+ if (requiredScopes.length) {
70
+ schemas.push(React.createElement("span", null,
71
+ "Required scopes: ",
72
+ requiredScopes.join(', ')));
73
+ }
74
+ }
75
+ return schemas;
76
+ }
77
+ var SecurityItem = function (_a) {
78
+ var securitySchema = _a.securitySchema, protocol = _a.protocol, requiredScopes = _a.requiredScopes;
79
+ var schemas = collectSecuritySchemas(securitySchema, requiredScopes);
80
+ var renderedKafkaSecurity;
81
+ if (['kafka', 'kafka-secure'].includes(protocol)) {
82
+ var _b = ServerHelpers.getKafkaSecurity(protocol, securitySchema), securityProtocol = _b.securityProtocol, saslMechanism = _b.saslMechanism;
83
+ renderedKafkaSecurity = (React.createElement("div", { className: "px-4 py-2 ml-2 mb-2 border border-gray-400 bg-gray-100 rounded" },
84
+ securityProtocol && (React.createElement("div", { className: "mt-1" },
85
+ React.createElement("span", { className: "text-xs font-bold text-gray-600 mt-1 mr-1 uppercase" }, "security.protocol:"),
86
+ React.createElement("span", { className: "inline-block font-bold no-underline bg-indigo-400 text-white text-xs rounded py-0 px-1 ml-1" }, securityProtocol))),
87
+ saslMechanism && (React.createElement("div", { className: "mt-1" },
88
+ React.createElement("span", { className: "text-xs font-bold text-gray-600 mt-1 mr-1 uppercase" }, "sasl.mechanism:"),
89
+ React.createElement("span", { className: "inline-block font-bold no-underline bg-indigo-400 text-white text-xs rounded py-0 px-1 ml-1" }, saslMechanism)))));
90
+ }
91
+ var flows = securitySchema === null || securitySchema === void 0 ? void 0 : securitySchema.flows();
92
+ var unwrappedFlows = {};
93
+ if (flows === null || flows === void 0 ? void 0 : flows.hasImplicit()) {
94
+ unwrappedFlows.implicit = flows.implicit();
95
+ }
96
+ if (flows === null || flows === void 0 ? void 0 : flows.hasAuthorizationCode()) {
97
+ unwrappedFlows.authorizationCode = flows.authorizationCode();
98
+ }
99
+ if (flows === null || flows === void 0 ? void 0 : flows.hasClientCredentials()) {
100
+ unwrappedFlows.clientCredentials = flows.clientCredentials();
101
+ }
102
+ if (flows === null || flows === void 0 ? void 0 : flows.hasPassword()) {
103
+ unwrappedFlows.password = flows.implicit();
104
+ }
105
+ var renderedFlows = Object.entries(unwrappedFlows).map(function (_a) {
106
+ var flowName = _a[0], flow = _a[1];
107
+ var authorizationUrl = flow.authorizationUrl();
108
+ var tokenUrl = flow.tokenUrl();
109
+ var refreshUrl = flow.refreshUrl();
110
+ var scopes = flow.scopes();
111
+ return (React.createElement("div", { className: "px-4 py-2 ml-2 mb-2 border border-gray-400 bg-gray-100 rounded", key: flowName },
112
+ React.createElement("div", null,
113
+ React.createElement("span", { className: "text-xs font-bold text-gray-600 mt-1 mr-1 uppercase" }, "Flow:"),
114
+ React.createElement("span", { className: "text-xs font-bold text-gray-600 mt-1 mr-1 uppercase" }, ServerHelpers.flowName(flowName))),
115
+ authorizationUrl && (React.createElement("div", { className: "mt-1" },
116
+ React.createElement("span", { className: "text-xs font-bold text-gray-600 mt-1 mr-1 uppercase" }, "Auth URL:"),
117
+ React.createElement(Href, { href: authorizationUrl, className: "underline" }, authorizationUrl))),
118
+ tokenUrl && (React.createElement("div", { className: "mt-1" },
119
+ React.createElement("span", { className: "text-xs font-bold text-gray-600 mt-1 mr-1 uppercase" }, "Token URL:"),
120
+ React.createElement(Href, { href: tokenUrl, className: "underline" }, tokenUrl))),
121
+ refreshUrl && (React.createElement("div", { className: "mt-1" },
122
+ React.createElement("span", { className: "text-xs font-bold text-gray-600 mt-1 mr-1 uppercase" }, "Refresh URL:"),
123
+ React.createElement(Href, { href: refreshUrl, className: "underline" }, refreshUrl))),
124
+ scopes && (React.createElement("div", { className: "mt-1" },
125
+ React.createElement("span", { className: "text-xs font-bold text-gray-600 mt-1 mr-1 uppercase" }, "Scopes:"),
126
+ React.createElement("ul", { className: "inline-block" }, scopes &&
127
+ Object.entries(scopes).map(function (_a) {
128
+ var scopeName = _a[0], scopeDesc = _a[1];
129
+ return (React.createElement("li", { className: "inline-block font-bold no-underline bg-indigo-400 text-white text-xs rounded py-0 px-1 ml-1", title: scopeDesc, key: scopeName }, scopeName));
130
+ }))))));
131
+ });
132
+ return (React.createElement("div", null,
133
+ securitySchema && schemas && (React.createElement("div", null,
134
+ React.createElement("span", null,
135
+ ServerHelpers.securityType(securitySchema.type()),
136
+ schemas.length > 0 && (React.createElement("ul", { className: "inline-block ml-2" }, schemas.map(function (schema, idx) { return (React.createElement("li", { className: "inline-block font-bold no-underline bg-blue-400 text-white text-xs uppercase rounded px-2 py-0 ml-1", key: idx }, schema)); })))))),
137
+ securitySchema && securitySchema.hasDescription() && (React.createElement("div", null,
138
+ React.createElement(Markdown, null, securitySchema.description()))),
139
+ renderedFlows && renderedFlows.length > 0 && (React.createElement("ul", { className: "my-2" },
140
+ React.createElement("li", null, renderedFlows))),
141
+ renderedKafkaSecurity && React.createElement("div", null, renderedKafkaSecurity)));
142
+ };
143
+ //# sourceMappingURL=Security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Security.js","sourceRoot":"","sources":["../../../../src/containers/Servers/Security.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n OAuthFlowInterface,\n SecurityRequirementsInterface,\n SecuritySchemeInterface,\n} from '@asyncapi/parser';\n\nimport { Href, Markdown } from '../../components';\nimport { useSpec } from '../../contexts';\nimport { ServerHelpers } from '../../helpers';\n\ninterface Props {\n security: SecurityRequirementsInterface[];\n protocol?: string;\n header?: string;\n}\n\nexport const Security: React.FunctionComponent<Props> = ({\n security = [],\n protocol = '',\n header = 'Security',\n}) => {\n const asyncapi = useSpec();\n const securitySchemes =\n !asyncapi.components().isEmpty() && asyncapi.components().securitySchemes();\n\n let renderedSecurities;\n if (\n !security ||\n !security.length ||\n !securitySchemes ||\n !Object.keys(securitySchemes).length\n ) {\n if (protocol === 'kafka' || protocol === 'kafka-secure') {\n renderedSecurities = (\n <SecurityItem protocol={protocol} securitySchema={null} />\n );\n }\n } else {\n const securities: React.ReactNodeArray = Object.values(security)\n .map(requirement => {\n const requirements = requirement.all();\n const key = Object.keys(requirements)[0];\n const def = securitySchemes[String(key)];\n const requiredScopes: string[] = requirements[String(key)];\n\n if (!def) {\n return null;\n }\n return (\n <SecurityItem\n protocol={protocol}\n securitySchema={def}\n requiredScopes={requiredScopes}\n key={def.type()}\n />\n );\n })\n .filter(Boolean);\n\n renderedSecurities = (\n <ul>\n {securities.map((s, idx) => (\n <li className=\"mt-2\" key={idx}>\n {s}\n </li>\n ))}\n </ul>\n );\n }\n\n if (!renderedSecurities) {\n return null;\n }\n\n return (\n <div className=\"text-sm mt-4\">\n <h5 className=\"text-gray-800\">{header}:</h5>\n {renderedSecurities}\n </div>\n );\n};\n\nfunction collectSecuritySchemas(\n securitySchema: SecuritySchemeInterface | null,\n requiredScopes: string[] = [],\n): React.ReactNodeArray {\n const schemas: React.ReactNodeArray = [];\n if (securitySchema) {\n if (securitySchema.name()) {\n schemas.push(<span>Name: {securitySchema.name()}</span>);\n }\n if (securitySchema.in()) {\n schemas.push(<span>In: {securitySchema.in()}</span>);\n }\n if (securitySchema.scheme()) {\n schemas.push(<span>Scheme: {securitySchema.scheme()}</span>);\n }\n if (securitySchema.bearerFormat()) {\n schemas.push(<span>Bearer format: {securitySchema.bearerFormat()}</span>);\n }\n if (securitySchema.openIdConnectUrl()) {\n schemas.push(\n <Href\n href={securitySchema.openIdConnectUrl() as string}\n className=\"underline\"\n >\n Connect URL\n </Href>,\n );\n }\n if (requiredScopes.length) {\n schemas.push(<span>Required scopes: {requiredScopes.join(', ')}</span>);\n }\n }\n return schemas;\n}\n\ninterface SecurityItemProps {\n securitySchema: SecuritySchemeInterface | null;\n protocol: string;\n requiredScopes?: string[];\n}\n\nconst SecurityItem: React.FunctionComponent<SecurityItemProps> = ({\n securitySchema,\n protocol,\n requiredScopes,\n}) => {\n const schemas: React.ReactNodeArray = collectSecuritySchemas(\n securitySchema,\n requiredScopes,\n );\n\n let renderedKafkaSecurity;\n if (['kafka', 'kafka-secure'].includes(protocol)) {\n const { securityProtocol, saslMechanism } = ServerHelpers.getKafkaSecurity(\n protocol,\n securitySchema,\n );\n\n renderedKafkaSecurity = (\n <div className=\"px-4 py-2 ml-2 mb-2 border border-gray-400 bg-gray-100 rounded\">\n {securityProtocol && (\n <div className=\"mt-1\">\n <span className=\"text-xs font-bold text-gray-600 mt-1 mr-1 uppercase\">\n security.protocol:\n </span>\n <span className=\"inline-block font-bold no-underline bg-indigo-400 text-white text-xs rounded py-0 px-1 ml-1\">\n {securityProtocol}\n </span>\n </div>\n )}\n {saslMechanism && (\n <div className=\"mt-1\">\n <span className=\"text-xs font-bold text-gray-600 mt-1 mr-1 uppercase\">\n sasl.mechanism:\n </span>\n <span className=\"inline-block font-bold no-underline bg-indigo-400 text-white text-xs rounded py-0 px-1 ml-1\">\n {saslMechanism}\n </span>\n </div>\n )}\n </div>\n );\n }\n\n const flows = securitySchema?.flows();\n const unwrappedFlows: Record<string, OAuthFlowInterface> = {};\n if (flows?.hasImplicit()) {\n unwrappedFlows.implicit = flows.implicit() as OAuthFlowInterface;\n }\n if (flows?.hasAuthorizationCode()) {\n unwrappedFlows.authorizationCode = flows.authorizationCode() as OAuthFlowInterface;\n }\n if (flows?.hasClientCredentials()) {\n unwrappedFlows.clientCredentials = flows.clientCredentials() as OAuthFlowInterface;\n }\n if (flows?.hasPassword()) {\n unwrappedFlows.password = flows.implicit() as OAuthFlowInterface;\n }\n const renderedFlows = Object.entries(unwrappedFlows).map(\n ([flowName, flow]) => {\n const authorizationUrl = flow.authorizationUrl();\n const tokenUrl = flow.tokenUrl();\n const refreshUrl = flow.refreshUrl();\n const scopes = flow.scopes();\n\n return (\n <div\n className=\"px-4 py-2 ml-2 mb-2 border border-gray-400 bg-gray-100 rounded\"\n key={flowName}\n >\n <div>\n <span className=\"text-xs font-bold text-gray-600 mt-1 mr-1 uppercase\">\n Flow:\n </span>\n <span className=\"text-xs font-bold text-gray-600 mt-1 mr-1 uppercase\">\n {ServerHelpers.flowName(flowName)}\n </span>\n </div>\n\n {authorizationUrl && (\n <div className=\"mt-1\">\n <span className=\"text-xs font-bold text-gray-600 mt-1 mr-1 uppercase\">\n Auth URL:\n </span>\n <Href href={authorizationUrl} className=\"underline\">\n {authorizationUrl}\n </Href>\n </div>\n )}\n {tokenUrl && (\n <div className=\"mt-1\">\n <span className=\"text-xs font-bold text-gray-600 mt-1 mr-1 uppercase\">\n Token URL:\n </span>\n <Href href={tokenUrl} className=\"underline\">\n {tokenUrl}\n </Href>\n </div>\n )}\n {refreshUrl && (\n <div className=\"mt-1\">\n <span className=\"text-xs font-bold text-gray-600 mt-1 mr-1 uppercase\">\n Refresh URL:\n </span>\n <Href href={refreshUrl} className=\"underline\">\n {refreshUrl}\n </Href>\n </div>\n )}\n {scopes && (\n <div className=\"mt-1\">\n <span className=\"text-xs font-bold text-gray-600 mt-1 mr-1 uppercase\">\n Scopes:\n </span>\n <ul className=\"inline-block\">\n {scopes &&\n Object.entries(scopes).map(([scopeName, scopeDesc]) => (\n <li\n className=\"inline-block font-bold no-underline bg-indigo-400 text-white text-xs rounded py-0 px-1 ml-1\"\n title={scopeDesc}\n key={scopeName}\n >\n {scopeName}\n </li>\n ))}\n </ul>\n </div>\n )}\n </div>\n );\n },\n );\n\n return (\n <div>\n {securitySchema && schemas && (\n <div>\n <span>\n {ServerHelpers.securityType(securitySchema.type())}\n {schemas.length > 0 && (\n <ul className=\"inline-block ml-2\">\n {schemas.map((schema, idx) => (\n <li\n className=\"inline-block font-bold no-underline bg-blue-400 text-white text-xs uppercase rounded px-2 py-0 ml-1\"\n key={idx}\n >\n {schema}\n </li>\n ))}\n </ul>\n )}\n </span>\n </div>\n )}\n\n {securitySchema && securitySchema.hasDescription() && (\n <div>\n <Markdown>{securitySchema.description()}</Markdown>\n </div>\n )}\n\n {renderedFlows && renderedFlows.length > 0 && (\n <ul className=\"my-2\">\n <li>{renderedFlows}</li>\n </ul>\n )}\n\n {renderedKafkaSecurity && <div>{renderedKafkaSecurity}</div>}\n </div>\n );\n};\n"]}
@@ -1,31 +1,37 @@
1
1
  import React from 'react';
2
- import { ServerSecurity } from './ServerSecurity';
3
- import { Markdown, Schema, Bindings } from '../../components';
4
- import { SchemaHelpers } from '../../helpers';
2
+ import { Security } from './Security';
3
+ import { Markdown, Schema, Bindings, Tags, Extensions } from '../../components';
4
+ import { useConfig } from '../../contexts';
5
+ import { CommonHelpers, SchemaHelpers } from '../../helpers';
5
6
  export var Server = function (_a) {
6
7
  var serverName = _a.serverName, server = _a.server;
8
+ var config = useConfig();
7
9
  if (!server) {
8
10
  return null;
9
11
  }
10
12
  var urlVariables = SchemaHelpers.serverVariablesToSchema(server.variables());
11
13
  var protocolVersion = server.protocolVersion();
12
- var serverRequirements = server.security();
14
+ var security = server.security();
13
15
  return (React.createElement("div", { className: "panel-item" },
14
16
  React.createElement("div", { className: "panel-item--center px-8" },
15
17
  React.createElement("div", { className: "shadow rounded bg-gray-200 p-4 border bg-gray-100" },
16
18
  React.createElement("div", null,
17
19
  React.createElement("span", { className: "font-mono text-base" }, server.url()),
18
20
  React.createElement("span", { className: "bg-teal-500 font-bold no-underline text-white uppercase rounded mx-2 px-2 py-1 text-sm" }, protocolVersion
19
- ? server.protocol() + " " + protocolVersion
21
+ ? "".concat(server.protocol(), " ").concat(protocolVersion)
20
22
  : server.protocol()),
21
23
  React.createElement("span", { className: "bg-blue-500 font-bold no-underline text-white uppercase rounded px-2 py-1 text-sm" }, serverName)),
22
24
  server.hasDescription() && (React.createElement("div", { className: "mt-2" },
23
25
  React.createElement(Markdown, null, server.description()))),
24
- urlVariables && (React.createElement("div", { className: "mt-2" },
26
+ urlVariables && (React.createElement("div", { className: "mt-2", id: "".concat(CommonHelpers.getIdentifier("server-".concat(serverName, "-url-variables"), config)) },
25
27
  React.createElement(Schema, { schemaName: "URL Variables", schema: urlVariables, expanded: true }))),
26
- serverRequirements && (React.createElement(ServerSecurity, { serverRequirements: serverRequirements })),
27
- server.hasBindings() && (React.createElement("div", { className: "mt-2" },
28
- React.createElement(Bindings, { bindings: server.bindings() }))))),
28
+ React.createElement("div", { id: "".concat(CommonHelpers.getIdentifier("server-".concat(serverName, "-security"), config)) },
29
+ React.createElement(Security, { protocol: server.protocol(), security: security })),
30
+ server.bindings() && (React.createElement("div", { className: "mt-2" },
31
+ React.createElement(Bindings, { name: "Server specific information", bindings: server.bindings() }))),
32
+ React.createElement(Extensions, { name: "Server Extensions", item: server }),
33
+ server.tags().length > 0 && (React.createElement("div", { className: "mt-2" },
34
+ React.createElement(Tags, { tags: server.tags() }))))),
29
35
  React.createElement("div", { className: "panel-item--right" })));
30
36
  };
31
37
  //# sourceMappingURL=Server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../../../src/containers/Servers/Server.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAO9C,MAAM,CAAC,IAAM,MAAM,GAAmC,UAAC,EAGtD;QAFC,UAAU,gBAAA,EACV,MAAM,YAAA;IAEN,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,IAAM,YAAY,GAAG,aAAa,CAAC,uBAAuB,CACxD,MAAM,CAAC,SAAS,EAAE,CACnB,CAAC;IACF,IAAM,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IACjD,IAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAE7C,OAAO,CACL,6BAAK,SAAS,EAAC,YAAY;QACzB,6BAAK,SAAS,EAAC,yBAAyB;YACtC,6BAAK,SAAS,EAAC,mDAAmD;gBAChE;oBACE,8BAAM,SAAS,EAAC,qBAAqB,IAAE,MAAM,CAAC,GAAG,EAAE,CAAQ;oBAC3D,8BAAM,SAAS,EAAC,wFAAwF,IACrG,eAAe;wBACd,CAAC,CAAI,MAAM,CAAC,QAAQ,EAAE,SAAI,eAAiB;wBAC3C,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAChB;oBACP,8BAAM,SAAS,EAAC,mFAAmF,IAChG,UAAU,CACN,CACH;gBAEL,MAAM,CAAC,cAAc,EAAE,IAAI,CAC1B,6BAAK,SAAS,EAAC,MAAM;oBACnB,oBAAC,QAAQ,QAAE,MAAM,CAAC,WAAW,EAAE,CAAY,CACvC,CACP;gBAEA,YAAY,IAAI,CACf,6BAAK,SAAS,EAAC,MAAM;oBACnB,oBAAC,MAAM,IACL,UAAU,EAAC,eAAe,EAC1B,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,IAAI,GACd,CACE,CACP;gBAEA,kBAAkB,IAAI,CACrB,oBAAC,cAAc,IAAC,kBAAkB,EAAE,kBAAkB,GAAI,CAC3D;gBAEA,MAAM,CAAC,WAAW,EAAE,IAAI,CACvB,6BAAK,SAAS,EAAC,MAAM;oBACnB,oBAAC,QAAQ,IAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,GAAI,CACrC,CACP,CACG,CACF;QAEN,6BAAK,SAAS,EAAC,mBAAmB,GAAG,CACjC,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../../../src/containers/Servers/Server.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEhF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAO7D,MAAM,CAAC,IAAM,MAAM,GAAmC,UAAC,EAGtD;QAFC,UAAU,gBAAA,EACV,MAAM,YAAA;IAEN,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,IAAM,YAAY,GAAG,aAAa,CAAC,uBAAuB,CACxD,MAAM,CAAC,SAAS,EAAE,CACnB,CAAC;IACF,IAAM,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IACjD,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAEnC,OAAO,CACL,6BAAK,SAAS,EAAC,YAAY;QACzB,6BAAK,SAAS,EAAC,yBAAyB;YACtC,6BAAK,SAAS,EAAC,mDAAmD;gBAChE;oBACE,8BAAM,SAAS,EAAC,qBAAqB,IAAE,MAAM,CAAC,GAAG,EAAE,CAAQ;oBAC3D,8BAAM,SAAS,EAAC,wFAAwF,IACrG,eAAe;wBACd,CAAC,CAAC,UAAG,MAAM,CAAC,QAAQ,EAAE,cAAI,eAAe,CAAE;wBAC3C,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAChB;oBACP,8BAAM,SAAS,EAAC,mFAAmF,IAChG,UAAU,CACN,CACH;gBAEL,MAAM,CAAC,cAAc,EAAE,IAAI,CAC1B,6BAAK,SAAS,EAAC,MAAM;oBACnB,oBAAC,QAAQ,QAAE,MAAM,CAAC,WAAW,EAAE,CAAY,CACvC,CACP;gBAEA,YAAY,IAAI,CACf,6BACE,SAAS,EAAC,MAAM,EAChB,EAAE,EAAE,UAAG,aAAa,CAAC,aAAa,CAChC,iBAAU,UAAU,mBAAgB,EACpC,MAAM,CACP,CAAE;oBAEH,oBAAC,MAAM,IACL,UAAU,EAAC,eAAe,EAC1B,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,IAAI,GACd,CACE,CACP;gBAGC,6BACE,EAAE,EAAE,UAAG,aAAa,CAAC,aAAa,CAChC,iBAAU,UAAU,cAAW,EAC/B,MAAM,CACP,CAAE;oBAEH,oBAAC,QAAQ,IAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAI,CACzD;gBAGP,MAAM,CAAC,QAAQ,EAAE,IAAI,CACpB,6BAAK,SAAS,EAAC,MAAM;oBACnB,oBAAC,QAAQ,IACP,IAAI,EAAC,6BAA6B,EAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,GAC3B,CACE,CACP;gBAED,oBAAC,UAAU,IAAC,IAAI,EAAC,mBAAmB,EAAC,IAAI,EAAE,MAAM,GAAI;gBAEpD,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAC3B,6BAAK,SAAS,EAAC,MAAM;oBACnB,oBAAC,IAAI,IAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAI,CACzB,CACP,CACG,CACF;QAEN,6BAAK,SAAS,EAAC,mBAAmB,GAAG,CACjC,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { ServerInterface } from '@asyncapi/parser';\n\nimport { Security } from './Security';\nimport { Markdown, Schema, Bindings, Tags, Extensions } from '../../components';\n\nimport { useConfig } from '../../contexts';\nimport { CommonHelpers, SchemaHelpers } from '../../helpers';\n\ninterface Props {\n serverName: string;\n server: ServerInterface;\n}\n\nexport const Server: React.FunctionComponent<Props> = ({\n serverName,\n server,\n}) => {\n const config = useConfig();\n\n if (!server) {\n return null;\n }\n\n const urlVariables = SchemaHelpers.serverVariablesToSchema(\n server.variables(),\n );\n const protocolVersion = server.protocolVersion();\n const security = server.security();\n\n return (\n <div className=\"panel-item\">\n <div className=\"panel-item--center px-8\">\n <div className=\"shadow rounded bg-gray-200 p-4 border bg-gray-100\">\n <div>\n <span className=\"font-mono text-base\">{server.url()}</span>\n <span className=\"bg-teal-500 font-bold no-underline text-white uppercase rounded mx-2 px-2 py-1 text-sm\">\n {protocolVersion\n ? `${server.protocol()} ${protocolVersion}`\n : server.protocol()}\n </span>\n <span className=\"bg-blue-500 font-bold no-underline text-white uppercase rounded px-2 py-1 text-sm\">\n {serverName}\n </span>\n </div>\n\n {server.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{server.description()}</Markdown>\n </div>\n )}\n\n {urlVariables && (\n <div\n className=\"mt-2\"\n id={`${CommonHelpers.getIdentifier(\n `server-${serverName}-url-variables`,\n config,\n )}`}\n >\n <Schema\n schemaName=\"URL Variables\"\n schema={urlVariables}\n expanded={true}\n />\n </div>\n )}\n\n {\n <div\n id={`${CommonHelpers.getIdentifier(\n `server-${serverName}-security`,\n config,\n )}`}\n >\n <Security protocol={server.protocol()} security={security} />\n </div>\n }\n\n {server.bindings() && (\n <div className=\"mt-2\">\n <Bindings\n name=\"Server specific information\"\n bindings={server.bindings()}\n />\n </div>\n )}\n\n <Extensions name=\"Server Extensions\" item={server} />\n\n {server.tags().length > 0 && (\n <div className=\"mt-2\">\n <Tags tags={server.tags()} />\n </div>\n )}\n </div>\n </div>\n\n <div className=\"panel-item--right\" />\n </div>\n );\n};\n"]}
@@ -1,17 +1,19 @@
1
1
  import React from 'react';
2
2
  import { Server } from './Server';
3
- import { useSpec } from '../../contexts';
3
+ import { useConfig, useSpec } from '../../contexts';
4
+ import { CommonHelpers } from '../../helpers';
4
5
  import { SERVERS_TEXT } from '../../constants';
5
6
  export var Servers = function () {
6
7
  var servers = useSpec().servers();
8
+ var config = useConfig();
7
9
  if (!Object.keys(servers).length) {
8
10
  return null;
9
11
  }
10
- return (React.createElement("section", { id: "servers", className: "mt-16" },
12
+ return (React.createElement("section", { id: "".concat(CommonHelpers.getIdentifier('servers', config)), className: "mt-16" },
11
13
  React.createElement("h2", { className: "2xl:w-7/12 text-3xl font-light mb-4 px-8" }, SERVERS_TEXT),
12
14
  React.createElement("ul", null, Object.entries(servers).map(function (_a) {
13
15
  var serverName = _a[0], server = _a[1];
14
- return (React.createElement("li", { className: "mb-4", key: serverName },
16
+ return (React.createElement("li", { className: "mb-4", key: serverName, id: "".concat(CommonHelpers.getIdentifier("server-".concat(serverName), config)) },
15
17
  React.createElement(Server, { serverName: serverName, server: server, key: serverName })));
16
18
  }))));
17
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Servers.js","sourceRoot":"","sources":["../../../../src/containers/Servers/Servers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,CAAC,IAAM,OAAO,GAA4B;IAC9C,IAAM,OAAO,GAAG,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;IAEpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;QAChC,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,iCAAS,EAAE,EAAC,SAAS,EAAC,SAAS,EAAC,OAAO;QACrC,4BAAI,SAAS,EAAC,0CAA0C,IACrD,YAAY,CACV;QACL,gCACG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAC,EAAoB;gBAAnB,UAAU,QAAA,EAAE,MAAM,QAAA;YAAM,OAAA,CACrD,4BAAI,SAAS,EAAC,MAAM,EAAC,GAAG,EAAE,UAAU;gBAClC,oBAAC,MAAM,IAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAI,CAChE,CACN;QAJsD,CAItD,CAAC,CACC,CACG,CACX,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Servers.js","sourceRoot":"","sources":["../../../../src/containers/Servers/Servers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,CAAC,IAAM,OAAO,GAA4B;IAC9C,IAAM,OAAO,GAAG,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;IACpC,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;QAChC,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,iCACE,EAAE,EAAE,UAAG,aAAa,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAE,EACvD,SAAS,EAAC,OAAO;QAEjB,4BAAI,SAAS,EAAC,0CAA0C,IACrD,YAAY,CACV;QACL,gCACG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAC,EAAoB;gBAAnB,UAAU,QAAA,EAAE,MAAM,QAAA;YAAM,OAAA,CACrD,4BACE,SAAS,EAAC,MAAM,EAChB,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,UAAG,aAAa,CAAC,aAAa,CAChC,iBAAU,UAAU,CAAE,EACtB,MAAM,CACP,CAAE;gBAEH,oBAAC,MAAM,IAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAI,CAChE,CACN;QAXsD,CAWtD,CAAC,CACC,CACG,CACX,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { Server } from './Server';\n\nimport { useConfig, useSpec } from '../../contexts';\nimport { CommonHelpers } from '../../helpers';\nimport { SERVERS_TEXT } from '../../constants';\n\nexport const Servers: React.FunctionComponent = () => {\n const servers = useSpec().servers();\n const config = useConfig();\n\n if (!Object.keys(servers).length) {\n return null;\n }\n\n return (\n <section\n id={`${CommonHelpers.getIdentifier('servers', config)}`}\n className=\"mt-16\"\n >\n <h2 className=\"2xl:w-7/12 text-3xl font-light mb-4 px-8\">\n {SERVERS_TEXT}\n </h2>\n <ul>\n {Object.entries(servers).map(([serverName, server]) => (\n <li\n className=\"mb-4\"\n key={serverName}\n id={`${CommonHelpers.getIdentifier(\n `server-${serverName}`,\n config,\n )}`}\n >\n <Server serverName={serverName} server={server} key={serverName} />\n </li>\n ))}\n </ul>\n </section>\n );\n};\n"]}