@asyncapi/react-component 1.0.0-next.4 → 1.0.0-next.40

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 (267) hide show
  1. package/README.md +74 -3
  2. package/browser/index.js +8 -6
  3. package/browser/standalone/index.js +45 -0
  4. package/browser/standalone/without-parser.js +41 -0
  5. package/browser/without-parser.js +6 -6
  6. package/lib/cjs/components/Bindings.js +12 -4
  7. package/lib/cjs/components/Bindings.js.map +1 -1
  8. package/lib/cjs/components/CollapseButton.js +7 -7
  9. package/lib/cjs/components/CollapseButton.js.map +1 -1
  10. package/lib/cjs/components/Extensions.js +4 -3
  11. package/lib/cjs/components/Extensions.js.map +1 -1
  12. package/lib/cjs/components/Href.js +2 -1
  13. package/lib/cjs/components/Href.js.map +1 -1
  14. package/lib/cjs/components/JSONSnippet.js +17 -0
  15. package/lib/cjs/components/JSONSnippet.js.map +1 -0
  16. package/lib/cjs/components/Markdown.js +4 -4
  17. package/lib/cjs/components/Markdown.js.map +1 -1
  18. package/lib/cjs/components/Schema.js +67 -26
  19. package/lib/cjs/components/Schema.js.map +1 -1
  20. package/lib/cjs/components/Tag.js +3 -2
  21. package/lib/cjs/components/Tag.js.map +1 -1
  22. package/lib/cjs/components/Tags.js +2 -1
  23. package/lib/cjs/components/Tags.js.map +1 -1
  24. package/lib/cjs/components/index.js +6 -2
  25. package/lib/cjs/components/index.js.map +1 -1
  26. package/lib/cjs/config/config.js.map +1 -1
  27. package/lib/cjs/config/default.js +1 -0
  28. package/lib/cjs/config/default.js.map +1 -1
  29. package/lib/cjs/config/index.js +5 -1
  30. package/lib/cjs/config/index.js.map +1 -1
  31. package/lib/cjs/constants.js +3 -48
  32. package/lib/cjs/constants.js.map +1 -1
  33. package/lib/cjs/containers/AsyncApi/AsyncApi.js +8 -2
  34. package/lib/cjs/containers/AsyncApi/AsyncApi.js.map +1 -1
  35. package/lib/cjs/containers/AsyncApi/Layout.js +33 -21
  36. package/lib/cjs/containers/AsyncApi/Layout.js.map +1 -1
  37. package/lib/cjs/containers/AsyncApi/Standalone.js +7 -1
  38. package/lib/cjs/containers/AsyncApi/Standalone.js.map +1 -1
  39. package/lib/cjs/containers/Error/Error.js +5 -4
  40. package/lib/cjs/containers/Error/Error.js.map +1 -1
  41. package/lib/cjs/containers/Info/Info.js +5 -4
  42. package/lib/cjs/containers/Info/Info.js.map +1 -1
  43. package/lib/cjs/containers/Messages/Message.js +20 -7
  44. package/lib/cjs/containers/Messages/Message.js.map +1 -1
  45. package/lib/cjs/containers/Messages/MessageExample.js +21 -14
  46. package/lib/cjs/containers/Messages/MessageExample.js.map +1 -1
  47. package/lib/cjs/containers/Messages/Messages.js +11 -7
  48. package/lib/cjs/containers/Messages/Messages.js.map +1 -1
  49. package/lib/cjs/containers/Operations/Operation.js +64 -33
  50. package/lib/cjs/containers/Operations/Operation.js.map +1 -1
  51. package/lib/cjs/containers/Operations/Operations.js +9 -6
  52. package/lib/cjs/containers/Operations/Operations.js.map +1 -1
  53. package/lib/cjs/containers/Schemas/Schema.js +21 -0
  54. package/lib/cjs/containers/Schemas/Schema.js.map +1 -0
  55. package/lib/cjs/containers/Schemas/Schemas.js +28 -0
  56. package/lib/cjs/containers/Schemas/Schemas.js.map +1 -0
  57. package/lib/cjs/containers/Servers/Security.js +138 -0
  58. package/lib/cjs/containers/Servers/Security.js.map +1 -0
  59. package/lib/cjs/containers/Servers/Server.js +11 -7
  60. package/lib/cjs/containers/Servers/Server.js.map +1 -1
  61. package/lib/cjs/containers/Servers/Servers.js +7 -4
  62. package/lib/cjs/containers/Servers/Servers.js.map +1 -1
  63. package/lib/cjs/containers/Sidebar/Sidebar.js +55 -35
  64. package/lib/cjs/containers/Sidebar/Sidebar.js.map +1 -1
  65. package/lib/cjs/contexts/index.js +6 -1
  66. package/lib/cjs/contexts/index.js.map +1 -1
  67. package/lib/cjs/contexts/useConfig.js +10 -0
  68. package/lib/cjs/contexts/useConfig.js.map +1 -0
  69. package/lib/cjs/contexts/useSpec.js +7 -3
  70. package/lib/cjs/contexts/useSpec.js.map +1 -1
  71. package/lib/cjs/helpers/common.js +17 -0
  72. package/lib/cjs/helpers/common.js.map +1 -0
  73. package/lib/cjs/helpers/index.js +7 -4
  74. package/lib/cjs/helpers/index.js.map +1 -1
  75. package/lib/cjs/helpers/marked.js +34 -0
  76. package/lib/cjs/helpers/marked.js.map +1 -0
  77. package/lib/cjs/helpers/message.js +33 -5
  78. package/lib/cjs/helpers/message.js.map +1 -1
  79. package/lib/cjs/helpers/parser.js +4 -4
  80. package/lib/cjs/helpers/parser.js.map +1 -1
  81. package/lib/cjs/helpers/schema.js +141 -114
  82. package/lib/cjs/helpers/schema.js.map +1 -1
  83. package/lib/cjs/helpers/server.js +49 -0
  84. package/lib/cjs/helpers/server.js.map +1 -1
  85. package/lib/cjs/helpers/specification.js +3 -0
  86. package/lib/cjs/helpers/specification.js.map +1 -1
  87. package/lib/cjs/index.js +3 -1
  88. package/lib/cjs/index.js.map +1 -1
  89. package/lib/cjs/types.js +4 -51
  90. package/lib/cjs/types.js.map +1 -1
  91. package/lib/cjs/without-parser.js +3 -0
  92. package/lib/cjs/without-parser.js.map +1 -1
  93. package/lib/esm/components/Bindings.js +10 -3
  94. package/lib/esm/components/Bindings.js.map +1 -1
  95. package/lib/esm/components/CollapseButton.js +5 -6
  96. package/lib/esm/components/CollapseButton.js.map +1 -1
  97. package/lib/esm/components/Extensions.js +2 -2
  98. package/lib/esm/components/Extensions.js.map +1 -1
  99. package/lib/esm/components/Href.js.map +1 -1
  100. package/lib/esm/components/JSONSnippet.js +10 -0
  101. package/lib/esm/components/JSONSnippet.js.map +1 -0
  102. package/lib/esm/components/Markdown.js +2 -3
  103. package/lib/esm/components/Markdown.js.map +1 -1
  104. package/lib/esm/components/Schema.js +61 -25
  105. package/lib/esm/components/Schema.js.map +1 -1
  106. package/lib/esm/components/Tag.js +1 -1
  107. package/lib/esm/components/Tag.js.map +1 -1
  108. package/lib/esm/components/Tags.js.map +1 -1
  109. package/lib/esm/components/index.js +1 -1
  110. package/lib/esm/components/index.js.map +1 -1
  111. package/lib/esm/config/config.js.map +1 -1
  112. package/lib/esm/config/default.js +1 -0
  113. package/lib/esm/config/default.js.map +1 -1
  114. package/lib/esm/config/index.js.map +1 -1
  115. package/lib/esm/constants.js +1 -47
  116. package/lib/esm/constants.js.map +1 -1
  117. package/lib/esm/containers/AsyncApi/AsyncApi.js +2 -0
  118. package/lib/esm/containers/AsyncApi/AsyncApi.js.map +1 -1
  119. package/lib/esm/containers/AsyncApi/Layout.js +28 -20
  120. package/lib/esm/containers/AsyncApi/Layout.js.map +1 -1
  121. package/lib/esm/containers/AsyncApi/Standalone.js +2 -0
  122. package/lib/esm/containers/AsyncApi/Standalone.js.map +1 -1
  123. package/lib/esm/containers/Error/Error.js +3 -3
  124. package/lib/esm/containers/Error/Error.js.map +1 -1
  125. package/lib/esm/containers/Info/Info.js +2 -2
  126. package/lib/esm/containers/Info/Info.js.map +1 -1
  127. package/lib/esm/containers/Messages/Message.js +18 -6
  128. package/lib/esm/containers/Messages/Message.js.map +1 -1
  129. package/lib/esm/containers/Messages/MessageExample.js +13 -12
  130. package/lib/esm/containers/Messages/MessageExample.js.map +1 -1
  131. package/lib/esm/containers/Messages/Messages.js +10 -7
  132. package/lib/esm/containers/Messages/Messages.js.map +1 -1
  133. package/lib/esm/containers/Operations/Operation.js +62 -33
  134. package/lib/esm/containers/Operations/Operation.js.map +1 -1
  135. package/lib/esm/containers/Operations/Operations.js +7 -5
  136. package/lib/esm/containers/Operations/Operations.js.map +1 -1
  137. package/lib/esm/containers/Schemas/Schema.js +14 -0
  138. package/lib/esm/containers/Schemas/Schema.js.map +1 -0
  139. package/lib/esm/containers/Schemas/Schemas.js +21 -0
  140. package/lib/esm/containers/Schemas/Schemas.js.map +1 -0
  141. package/lib/esm/containers/Servers/Security.js +131 -0
  142. package/lib/esm/containers/Servers/Security.js.map +1 -0
  143. package/lib/esm/containers/Servers/Server.js +10 -7
  144. package/lib/esm/containers/Servers/Server.js.map +1 -1
  145. package/lib/esm/containers/Servers/Servers.js +5 -3
  146. package/lib/esm/containers/Servers/Servers.js.map +1 -1
  147. package/lib/esm/containers/Sidebar/Sidebar.js +34 -22
  148. package/lib/esm/containers/Sidebar/Sidebar.js.map +1 -1
  149. package/lib/esm/contexts/index.js +1 -0
  150. package/lib/esm/contexts/index.js.map +1 -1
  151. package/lib/esm/contexts/useConfig.js +6 -0
  152. package/lib/esm/contexts/useConfig.js.map +1 -0
  153. package/lib/esm/contexts/useSpec.js +2 -2
  154. package/lib/esm/contexts/useSpec.js.map +1 -1
  155. package/lib/esm/helpers/common.js +14 -0
  156. package/lib/esm/helpers/common.js.map +1 -0
  157. package/lib/esm/helpers/index.js +2 -3
  158. package/lib/esm/helpers/index.js.map +1 -1
  159. package/lib/esm/helpers/marked.js +27 -0
  160. package/lib/esm/helpers/marked.js.map +1 -0
  161. package/lib/esm/helpers/message.js +32 -4
  162. package/lib/esm/helpers/message.js.map +1 -1
  163. package/lib/esm/helpers/parser.js.map +1 -1
  164. package/lib/esm/helpers/schema.js +140 -113
  165. package/lib/esm/helpers/schema.js.map +1 -1
  166. package/lib/esm/helpers/server.js +49 -0
  167. package/lib/esm/helpers/server.js.map +1 -1
  168. package/lib/esm/helpers/specification.js +5 -2
  169. package/lib/esm/helpers/specification.js.map +1 -1
  170. package/lib/esm/index.js +2 -1
  171. package/lib/esm/index.js.map +1 -1
  172. package/lib/esm/types.js +2 -46
  173. package/lib/esm/types.js.map +1 -1
  174. package/lib/esm/without-parser.js +2 -0
  175. package/lib/esm/without-parser.js.map +1 -1
  176. package/lib/types/components/Bindings.d.ts.map +1 -1
  177. package/lib/types/components/CollapseButton.d.ts +1 -0
  178. package/lib/types/components/CollapseButton.d.ts.map +1 -1
  179. package/lib/types/components/Extensions.d.ts.map +1 -1
  180. package/lib/types/components/JSONSnippet.d.ts +7 -0
  181. package/lib/types/components/JSONSnippet.d.ts.map +1 -0
  182. package/lib/types/components/Markdown.d.ts.map +1 -1
  183. package/lib/types/components/Schema.d.ts +3 -2
  184. package/lib/types/components/Schema.d.ts.map +1 -1
  185. package/lib/types/components/index.d.ts +1 -1
  186. package/lib/types/components/index.d.ts.map +1 -1
  187. package/lib/types/config/config.d.ts +1 -0
  188. package/lib/types/config/config.d.ts.map +1 -1
  189. package/lib/types/config/default.d.ts.map +1 -1
  190. package/lib/types/constants.d.ts +1 -26
  191. package/lib/types/constants.d.ts.map +1 -1
  192. package/lib/types/containers/AsyncApi/Layout.d.ts.map +1 -1
  193. package/lib/types/containers/Messages/Message.d.ts +1 -0
  194. package/lib/types/containers/Messages/Message.d.ts.map +1 -1
  195. package/lib/types/containers/Messages/MessageExample.d.ts +2 -1
  196. package/lib/types/containers/Messages/MessageExample.d.ts.map +1 -1
  197. package/lib/types/containers/Messages/Messages.d.ts.map +1 -1
  198. package/lib/types/containers/Operations/Operation.d.ts +1 -0
  199. package/lib/types/containers/Operations/Operation.d.ts.map +1 -1
  200. package/lib/types/containers/Operations/Operations.d.ts.map +1 -1
  201. package/lib/types/containers/Schemas/Schema.d.ts +9 -0
  202. package/lib/types/containers/Schemas/Schema.d.ts.map +1 -0
  203. package/lib/types/containers/Schemas/Schemas.d.ts +3 -0
  204. package/lib/types/containers/Schemas/Schemas.d.ts.map +1 -0
  205. package/lib/types/containers/Servers/Security.d.ts +10 -0
  206. package/lib/types/containers/Servers/Security.d.ts.map +1 -0
  207. package/lib/types/containers/Servers/Server.d.ts.map +1 -1
  208. package/lib/types/containers/Servers/Servers.d.ts.map +1 -1
  209. package/lib/types/containers/Sidebar/Sidebar.d.ts.map +1 -1
  210. package/lib/types/contexts/index.d.ts +1 -0
  211. package/lib/types/contexts/index.d.ts.map +1 -1
  212. package/lib/types/contexts/useConfig.d.ts +5 -0
  213. package/lib/types/contexts/useConfig.d.ts.map +1 -0
  214. package/lib/types/contexts/useSpec.d.ts +1 -3
  215. package/lib/types/contexts/useSpec.d.ts.map +1 -1
  216. package/lib/types/helpers/common.d.ts +5 -0
  217. package/lib/types/helpers/common.d.ts.map +1 -0
  218. package/lib/types/helpers/index.d.ts +2 -3
  219. package/lib/types/helpers/index.d.ts.map +1 -1
  220. package/lib/types/helpers/marked.d.ts +4 -0
  221. package/lib/types/helpers/marked.d.ts.map +1 -0
  222. package/lib/types/helpers/message.d.ts +3 -2
  223. package/lib/types/helpers/message.d.ts.map +1 -1
  224. package/lib/types/helpers/schema.d.ts +8 -3
  225. package/lib/types/helpers/schema.d.ts.map +1 -1
  226. package/lib/types/helpers/server.d.ts +6 -1
  227. package/lib/types/helpers/server.d.ts.map +1 -1
  228. package/lib/types/helpers/specification.d.ts.map +1 -1
  229. package/lib/types/index.d.ts +2 -1
  230. package/lib/types/index.d.ts.map +1 -1
  231. package/lib/types/types.d.ts +10 -303
  232. package/lib/types/types.d.ts.map +1 -1
  233. package/lib/types/without-parser.d.ts +2 -0
  234. package/lib/types/without-parser.d.ts.map +1 -1
  235. package/package.json +37 -14
  236. package/styles/default.css +903 -642
  237. package/styles/default.min.css +4 -2
  238. package/lib/cjs/components/Code.js +0 -15
  239. package/lib/cjs/components/Code.js.map +0 -1
  240. package/lib/cjs/containers/Servers/ServerSecurity.js +0 -101
  241. package/lib/cjs/containers/Servers/ServerSecurity.js.map +0 -1
  242. package/lib/cjs/helpers/bemClasses.js +0 -49
  243. package/lib/cjs/helpers/bemClasses.js.map +0 -1
  244. package/lib/cjs/helpers/formatJsonHighlight.js +0 -61
  245. package/lib/cjs/helpers/formatJsonHighlight.js.map +0 -1
  246. package/lib/cjs/helpers/toKebabCase.js +0 -15
  247. package/lib/cjs/helpers/toKebabCase.js.map +0 -1
  248. package/lib/esm/components/Code.js +0 -9
  249. package/lib/esm/components/Code.js.map +0 -1
  250. package/lib/esm/containers/Servers/ServerSecurity.js +0 -95
  251. package/lib/esm/containers/Servers/ServerSecurity.js.map +0 -1
  252. package/lib/esm/helpers/bemClasses.js +0 -46
  253. package/lib/esm/helpers/bemClasses.js.map +0 -1
  254. package/lib/esm/helpers/formatJsonHighlight.js +0 -57
  255. package/lib/esm/helpers/formatJsonHighlight.js.map +0 -1
  256. package/lib/esm/helpers/toKebabCase.js +0 -11
  257. package/lib/esm/helpers/toKebabCase.js.map +0 -1
  258. package/lib/types/components/Code.d.ts +0 -7
  259. package/lib/types/components/Code.d.ts.map +0 -1
  260. package/lib/types/containers/Servers/ServerSecurity.d.ts +0 -8
  261. package/lib/types/containers/Servers/ServerSecurity.d.ts.map +0 -1
  262. package/lib/types/helpers/bemClasses.d.ts +0 -14
  263. package/lib/types/helpers/bemClasses.d.ts.map +0 -1
  264. package/lib/types/helpers/formatJsonHighlight.d.ts +0 -2
  265. package/lib/types/helpers/formatJsonHighlight.d.ts.map +0 -1
  266. package/lib/types/helpers/toKebabCase.d.ts +0 -2
  267. package/lib/types/helpers/toKebabCase.d.ts.map +0 -1
@@ -7,18 +7,22 @@ exports.Messages = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
8
  var Message_1 = require("./Message");
9
9
  var contexts_1 = require("../../contexts");
10
+ var helpers_1 = require("../../helpers");
10
11
  var constants_1 = require("../../constants");
11
- exports.Messages = function () {
12
- var messages = contexts_1.useSpec().allMessages();
13
- if (!messages.size) {
12
+ var Messages = function () {
13
+ var asyncapi = (0, contexts_1.useSpec)();
14
+ var config = (0, contexts_1.useConfig)();
15
+ var messages = asyncapi.hasComponents() && asyncapi.components().messages();
16
+ if (!messages || Object.keys(messages).length === 0) {
14
17
  return null;
15
18
  }
16
- return (react_1.default.createElement("section", { id: "messages", className: "mt-16" },
19
+ return (react_1.default.createElement("section", { id: "".concat(helpers_1.CommonHelpers.getIdentifier('messages', config)), className: "mt-16" },
17
20
  react_1.default.createElement("h2", { className: "2xl:w-7/12 text-3xl font-light mb-4 px-8" }, constants_1.MESSAGES_TEXT),
18
- react_1.default.createElement("ul", null, Array.from(messages).map(function (_a, idx) {
21
+ react_1.default.createElement("ul", null, Object.entries(messages).map(function (_a, idx) {
19
22
  var messageName = _a[0], message = _a[1];
20
- return (react_1.default.createElement("li", { className: "mb-4", key: messageName, id: "message-" + message.uid() },
21
- react_1.default.createElement(Message_1.Message, { message: message, index: idx + 1, key: messageName })));
23
+ return (react_1.default.createElement("li", { className: "mb-4", key: messageName, id: helpers_1.CommonHelpers.getIdentifier("message-".concat(messageName), config) },
24
+ react_1.default.createElement(Message_1.Message, { messageName: messageName, message: message, index: idx + 1, key: messageName })));
22
25
  }))));
23
26
  };
27
+ exports.Messages = Messages;
24
28
  //# sourceMappingURL=Messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Messages.js","sourceRoot":"","sources":["../../../../src/containers/Messages/Messages.tsx"],"names":[],"mappings":";;;;;;AAAA,gDAA0B;AAE1B,qCAAoC;AAEpC,2CAAyC;AACzC,6CAAgD;AAEnC,QAAA,QAAQ,GAA4B;IAC/C,IAAM,QAAQ,GAAG,kBAAO,EAAE,CAAC,WAAW,EAAE,CAAC;IAEzC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QAClB,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,2CAAS,EAAE,EAAC,UAAU,EAAC,SAAS,EAAC,OAAO;QACtC,sCAAI,SAAS,EAAC,0CAA0C,IACrD,yBAAa,CACX;QACL,0CACG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,EAAsB,EAAE,GAAG;gBAA1B,WAAW,QAAA,EAAE,OAAO,QAAA;YAAW,OAAA,CACzD,sCACE,SAAS,EAAC,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,aAAW,OAAO,CAAC,GAAG,EAAI;gBAE9B,8BAAC,iBAAO,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,GAAI,CAC5D,CACN;QAR0D,CAQ1D,CAAC,CACC,CACG,CACX,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Messages.js","sourceRoot":"","sources":["../../../../src/containers/Messages/Messages.tsx"],"names":[],"mappings":";;;;;;AAAA,gDAA0B;AAE1B,qCAAoC;AAEpC,2CAAoD;AACpD,yCAA8C;AAC9C,6CAAgD;AAEzC,IAAM,QAAQ,GAA4B;IAC/C,IAAM,QAAQ,GAAG,IAAA,kBAAO,GAAE,CAAC;IAC3B,IAAM,MAAM,GAAG,IAAA,oBAAS,GAAE,CAAC;IAC3B,IAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,EAAE,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;IAE9E,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACnD,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,2CACE,EAAE,EAAE,UAAG,uBAAa,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAE,EACxD,SAAS,EAAC,OAAO;QAEjB,sCAAI,SAAS,EAAC,0CAA0C,IACrD,yBAAa,CACX;QACL,0CACG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,EAAsB,EAAE,GAAG;gBAA1B,WAAW,QAAA,EAAE,OAAO,QAAA;YAAW,OAAA,CAC7D,sCACE,SAAS,EAAC,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,uBAAa,CAAC,aAAa,CAAC,kBAAW,WAAW,CAAE,EAAE,MAAM,CAAC;gBAEjE,8BAAC,iBAAO,IACN,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,GAAG,GAAG,CAAC,EACd,GAAG,EAAE,WAAW,GAChB,CACC,CACN;QAb8D,CAa9D,CAAC,CACC,CACG,CACX,CAAC;AACJ,CAAC,CAAC;AAnCW,QAAA,QAAQ,YAmCnB","sourcesContent":["import React from 'react';\n\nimport { Message } from './Message';\n\nimport { useConfig, useSpec } from '../../contexts';\nimport { CommonHelpers } from '../../helpers';\nimport { MESSAGES_TEXT } from '../../constants';\n\nexport const Messages: React.FunctionComponent = () => {\n const asyncapi = useSpec();\n const config = useConfig();\n const messages = asyncapi.hasComponents() && asyncapi.components().messages();\n\n if (!messages || Object.keys(messages).length === 0) {\n return null;\n }\n\n return (\n <section\n id={`${CommonHelpers.getIdentifier('messages', config)}`}\n className=\"mt-16\"\n >\n <h2 className=\"2xl:w-7/12 text-3xl font-light mb-4 px-8\">\n {MESSAGES_TEXT}\n </h2>\n <ul>\n {Object.entries(messages).map(([messageName, message], idx) => (\n <li\n className=\"mb-4\"\n key={messageName}\n id={CommonHelpers.getIdentifier(`message-${messageName}`, config)}\n >\n <Message\n messageName={messageName}\n message={message}\n index={idx + 1}\n key={messageName}\n />\n </li>\n ))}\n </ul>\n </section>\n );\n};\n"]}
@@ -1,55 +1,58 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
15
  };
5
16
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Operation = void 0;
17
+ exports.OperationInfo = exports.Operation = void 0;
7
18
  var react_1 = __importDefault(require("react"));
8
19
  var Message_1 = require("../Messages/Message");
20
+ var Security_1 = require("../Servers/Security");
9
21
  var components_1 = require("../../components");
22
+ var contexts_1 = require("../../contexts");
10
23
  var helpers_1 = require("../../helpers");
11
24
  var constants_1 = require("../../constants");
12
25
  var types_1 = require("../../types");
13
- exports.Operation = function (_a) {
14
- var _b = _a.type, type = _b === void 0 ? types_1.PayloadType.PUBLISH : _b, operation = _a.operation, channelName = _a.channelName, channel = _a.channel;
15
- if (!operation) {
26
+ var Operation = function (props) {
27
+ var config = (0, contexts_1.useConfig)();
28
+ var _a = props.type, type = _a === void 0 ? types_1.PayloadType.PUBLISH : _a, operation = props.operation, channelName = props.channelName, channel = props.channel;
29
+ if (!operation || !channel) {
16
30
  return null;
17
31
  }
18
- var operationId = operation.id();
19
- var externalDocs = operation.externalDocs();
32
+ var servers = typeof channel.servers === 'function' && channel.servers();
33
+ var security = typeof operation.security === 'function' && operation.security();
20
34
  var parameters = helpers_1.SchemaHelpers.parametersToSchema(channel.parameters());
21
- var operationSummary = operation.summary();
22
- return (react_1.default.createElement("div", { id: "operation-" + type + "-" + channelName },
35
+ return (react_1.default.createElement("div", null,
23
36
  react_1.default.createElement("div", { className: "panel-item--center px-8" },
24
- react_1.default.createElement("div", { className: "mb-4" },
25
- react_1.default.createElement("h3", null,
26
- react_1.default.createElement("span", { className: "font-mono border uppercase p-1 rounded mr-2 " + (type === types_1.PayloadType.PUBLISH
27
- ? 'border-blue-600 text-blue-500'
28
- : 'border-green-600 text-green-600'), title: type }, type === types_1.PayloadType.PUBLISH ? 'PUB' : 'SUB'),
29
- ' ',
30
- react_1.default.createElement("span", { className: "font-mono text-base" }, channelName))),
31
- channel.hasDescription() && (react_1.default.createElement("div", { className: "mt-2" },
32
- react_1.default.createElement(components_1.Markdown, null, channel.description()))),
33
- operationSummary && (react_1.default.createElement("p", { className: "text-gray-600 text-sm mt-2" }, operationSummary)),
34
- operation.hasDescription() && (react_1.default.createElement("div", { className: "mt-2" },
35
- react_1.default.createElement(components_1.Markdown, null, operation.description()))),
36
- externalDocs && (react_1.default.createElement("ul", { className: "leading-normal mt-2 mb-4 space-x-2 space-y-2" }, externalDocs && (react_1.default.createElement("li", { className: "inline-block" },
37
- react_1.default.createElement(components_1.Href, { className: "border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1", href: externalDocs.url() },
38
- react_1.default.createElement("span", null, constants_1.EXTERAL_DOCUMENTATION_TEXT)))))),
39
- operationId && (react_1.default.createElement("div", { className: "border bg-gray-100 rounded px-4 py-2 mt-2" },
40
- react_1.default.createElement("div", { className: "text-sm text-gray-700" },
41
- "Operation ID",
42
- react_1.default.createElement("span", { className: "border text-orange-600 rounded text-xs ml-2 py-0 px-2" }, operationId)))),
43
- parameters && (react_1.default.createElement("div", { className: "mt-2" },
37
+ react_1.default.createElement(exports.OperationInfo, __assign({}, props)),
38
+ servers && servers.length > 0 ? (react_1.default.createElement("div", { className: "mt-2 text-sm" },
39
+ react_1.default.createElement("p", null, "Available only on servers:"),
40
+ react_1.default.createElement("ul", { className: "flex flex-wrap leading-normal" }, servers.map(function (server) { return (react_1.default.createElement("li", { className: "inline-block mt-2 mr-2", key: server },
41
+ react_1.default.createElement("a", { href: "#".concat(helpers_1.CommonHelpers.getIdentifier('server-' + server, config)), className: "border border-solid border-blue-300 hover:bg-blue-300 hover:text-blue-600 text-blue-500 font-bold no-underline text-xs rounded px-3 py-1 cursor-pointer" },
42
+ react_1.default.createElement("span", { className: "underline" }, server)))); })))) : null,
43
+ parameters && (react_1.default.createElement("div", { className: "mt-2", id: helpers_1.CommonHelpers.getIdentifier("operation-".concat(type, "-").concat(channelName, "-parameters"), config) },
44
44
  react_1.default.createElement(components_1.Schema, { schemaName: "Parameters", schema: parameters, expanded: true }))),
45
- operation.hasBindings() && (react_1.default.createElement("div", { className: "mt-2" },
46
- react_1.default.createElement(components_1.Bindings, { name: "Operation Bindings", bindings: operation.bindings() }))),
45
+ security && (react_1.default.createElement("div", { className: "mt-2", id: helpers_1.CommonHelpers.getIdentifier("operation-".concat(type, "-").concat(channelName, "-security"), config) },
46
+ react_1.default.createElement(Security_1.Security, { security: security, header: "Additional security requirements" }))),
47
47
  channel.hasBindings() && (react_1.default.createElement("div", { className: "mt-2" },
48
- react_1.default.createElement(components_1.Bindings, { name: "Channel Bindings", bindings: channel.bindings() }))),
49
- react_1.default.createElement(components_1.Extensions, { item: operation }),
48
+ react_1.default.createElement(components_1.Bindings, { name: "Channel specific information", bindings: channel.bindings() }))),
49
+ react_1.default.createElement(components_1.Extensions, { name: "Channel Extensions", item: channel }),
50
+ operation.hasBindings() && (react_1.default.createElement("div", { className: "mt-2" },
51
+ react_1.default.createElement(components_1.Bindings, { name: "Operation specific information", bindings: operation.bindings() }))),
52
+ react_1.default.createElement(components_1.Extensions, { name: "Operation Extensions", item: operation }),
50
53
  operation.hasTags() && (react_1.default.createElement("div", { className: "mt-2" },
51
54
  react_1.default.createElement(components_1.Tags, { tags: operation.tags() })))),
52
- react_1.default.createElement("div", { className: "w-full mt-4" }, operation.hasMultipleMessages() ? (react_1.default.createElement("div", { className: "mt-2" },
55
+ react_1.default.createElement("div", { className: "w-full mt-4", id: helpers_1.CommonHelpers.getIdentifier("operation-".concat(type, "-").concat(channelName, "-message"), config) }, operation.hasMultipleMessages() ? (react_1.default.createElement("div", { className: "mt-2" },
53
56
  react_1.default.createElement("p", { className: "px-8" },
54
57
  "Accepts ",
55
58
  react_1.default.createElement("strong", null, "one of"),
@@ -60,4 +63,32 @@ exports.Operation = function (_a) {
60
63
  react_1.default.createElement("div", { className: "mt-2" },
61
64
  react_1.default.createElement(Message_1.Message, { message: operation.message(0), showExamples: true })))))));
62
65
  };
66
+ exports.Operation = Operation;
67
+ var OperationInfo = function (_a) {
68
+ var _b = _a.type, type = _b === void 0 ? types_1.PayloadType.PUBLISH : _b, operation = _a.operation, channelName = _a.channelName, channel = _a.channel;
69
+ var operationSummary = operation.summary();
70
+ var externalDocs = operation.externalDocs();
71
+ var operationId = operation.id();
72
+ return (react_1.default.createElement(react_1.default.Fragment, null,
73
+ react_1.default.createElement("div", { className: "mb-4" },
74
+ react_1.default.createElement("h3", null,
75
+ react_1.default.createElement("span", { className: "font-mono border uppercase p-1 rounded mr-2 ".concat(type === types_1.PayloadType.PUBLISH
76
+ ? 'border-blue-600 text-blue-500'
77
+ : 'border-green-600 text-green-600'), title: type }, type === types_1.PayloadType.PUBLISH ? 'PUB' : 'SUB'),
78
+ ' ',
79
+ react_1.default.createElement("span", { className: "font-mono text-base" }, channelName))),
80
+ channel.hasDescription() && (react_1.default.createElement("div", { className: "mt-2" },
81
+ react_1.default.createElement(components_1.Markdown, null, channel.description()))),
82
+ operationSummary && (react_1.default.createElement("p", { className: "text-gray-600 text-sm mt-2" }, operationSummary)),
83
+ operation.hasDescription() && (react_1.default.createElement("div", { className: "mt-2" },
84
+ react_1.default.createElement(components_1.Markdown, null, operation.description()))),
85
+ externalDocs && (react_1.default.createElement("ul", { className: "leading-normal mt-2 mb-4 space-x-2 space-y-2" }, externalDocs && (react_1.default.createElement("li", { className: "inline-block" },
86
+ react_1.default.createElement(components_1.Href, { className: "border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1", href: externalDocs.url() },
87
+ react_1.default.createElement("span", null, constants_1.EXTERAL_DOCUMENTATION_TEXT)))))),
88
+ operationId && (react_1.default.createElement("div", { className: "border bg-gray-100 rounded px-4 py-2 mt-2" },
89
+ react_1.default.createElement("div", { className: "text-sm text-gray-700" },
90
+ "Operation ID",
91
+ react_1.default.createElement("span", { className: "border text-orange-600 rounded text-xs ml-2 py-0 px-2" }, operationId))))));
92
+ };
93
+ exports.OperationInfo = OperationInfo;
63
94
  //# sourceMappingURL=Operation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Operation.js","sourceRoot":"","sources":["../../../../src/containers/Operations/Operation.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Operation.js","sourceRoot":"","sources":["../../../../src/containers/Operations/Operation.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Channel, Operation as OperationType } from '@asyncapi/parser';\n\nimport { Message } from '../Messages/Message';\nimport { Security } from '../Servers/Security';\nimport {\n Href,\n Markdown,\n Schema,\n Bindings,\n Tags,\n Extensions,\n} from '../../components';\n\nimport { useConfig } from '../../contexts';\nimport { CommonHelpers, SchemaHelpers } from '../../helpers';\nimport { EXTERAL_DOCUMENTATION_TEXT } from '../../constants';\nimport { PayloadType } from '../../types';\n\ninterface Props {\n type: PayloadType;\n operation: OperationType;\n channelName: string;\n channel: Channel;\n}\n\nexport const Operation: React.FunctionComponent<Props> = props => {\n const config = useConfig();\n const { type = PayloadType.PUBLISH, operation, channelName, channel } = props;\n\n if (!operation || !channel) {\n return null;\n }\n\n // check typeof as fallback for older version than `2.2.0`\n const servers = typeof channel.servers === 'function' && channel.servers();\n // check typeof as fallback for older version than `2.4.0`\n const security =\n typeof operation.security === 'function' && operation.security();\n const parameters = SchemaHelpers.parametersToSchema(channel.parameters());\n\n return (\n <div>\n <div className=\"panel-item--center px-8\">\n <OperationInfo {...props} />\n\n {servers && servers.length > 0 ? (\n <div className=\"mt-2 text-sm\">\n <p>Available only on servers:</p>\n <ul className=\"flex flex-wrap leading-normal\">\n {servers.map(server => (\n <li className=\"inline-block mt-2 mr-2\" key={server as string}>\n <a\n href={`#${CommonHelpers.getIdentifier(\n 'server-' + server,\n config,\n )}`}\n className=\"border border-solid border-blue-300 hover:bg-blue-300 hover:text-blue-600 text-blue-500 font-bold no-underline text-xs rounded px-3 py-1 cursor-pointer\"\n >\n <span className=\"underline\">{server}</span>\n </a>\n </li>\n ))}\n </ul>\n </div>\n ) : null}\n\n {parameters && (\n <div\n className=\"mt-2\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-parameters`,\n config,\n )}\n >\n <Schema\n schemaName=\"Parameters\"\n schema={parameters}\n expanded={true}\n />\n </div>\n )}\n\n {security && (\n <div\n className=\"mt-2\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-security`,\n config,\n )}\n >\n <Security\n security={security}\n header=\"Additional security requirements\"\n />\n </div>\n )}\n\n {channel.hasBindings() && (\n <div className=\"mt-2\">\n <Bindings\n name=\"Channel specific information\"\n bindings={channel.bindings()}\n />\n </div>\n )}\n\n <Extensions name=\"Channel Extensions\" item={channel} />\n\n {operation.hasBindings() && (\n <div className=\"mt-2\">\n <Bindings\n name=\"Operation specific information\"\n bindings={operation.bindings()}\n />\n </div>\n )}\n\n <Extensions name=\"Operation Extensions\" item={operation} />\n\n {operation.hasTags() && (\n <div className=\"mt-2\">\n <Tags tags={operation.tags()} />\n </div>\n )}\n </div>\n\n <div\n className=\"w-full mt-4\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-message`,\n config,\n )}\n >\n {operation.hasMultipleMessages() ? (\n <div className=\"mt-2\">\n <p className=\"px-8\">\n Accepts <strong>one of</strong> the following messages:\n </p>\n <ul>\n {operation.messages().map((msg, idx) => (\n <li className=\"mt-4\" key={idx}>\n <Message message={msg} index={idx} showExamples={true} />\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className=\"mt-2\">\n <p className=\"px-8\">Accepts the following message:</p>\n <div className=\"mt-2\">\n <Message\n message={(operation.message as (index: number) => any)(0)}\n showExamples={true}\n />\n </div>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport const OperationInfo: React.FunctionComponent<Props> = ({\n type = PayloadType.PUBLISH,\n operation,\n channelName,\n channel,\n}) => {\n const operationSummary = operation.summary();\n const externalDocs = operation.externalDocs();\n const operationId = operation.id();\n\n return (\n <>\n <div className=\"mb-4\">\n <h3>\n <span\n className={`font-mono border uppercase p-1 rounded mr-2 ${\n type === PayloadType.PUBLISH\n ? 'border-blue-600 text-blue-500'\n : 'border-green-600 text-green-600'\n }`}\n title={type}\n >\n {type === PayloadType.PUBLISH ? 'PUB' : 'SUB'}\n </span>{' '}\n <span className=\"font-mono text-base\">{channelName}</span>\n </h3>\n </div>\n\n {channel.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{channel.description()}</Markdown>\n </div>\n )}\n {operationSummary && (\n <p className=\"text-gray-600 text-sm mt-2\">{operationSummary}</p>\n )}\n {operation.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{operation.description()}</Markdown>\n </div>\n )}\n\n {externalDocs && (\n <ul className=\"leading-normal mt-2 mb-4 space-x-2 space-y-2\">\n {externalDocs && (\n <li className=\"inline-block\">\n <Href\n className=\"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1\"\n href={externalDocs.url()}\n >\n <span>{EXTERAL_DOCUMENTATION_TEXT}</span>\n </Href>\n </li>\n )}\n </ul>\n )}\n\n {operationId && (\n <div className=\"border bg-gray-100 rounded px-4 py-2 mt-2\">\n <div className=\"text-sm text-gray-700\">\n Operation ID\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {operationId}\n </span>\n </div>\n </div>\n )}\n </>\n );\n};\n"]}
@@ -7,10 +7,12 @@ exports.Operations = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
8
  var Operation_1 = require("./Operation");
9
9
  var contexts_1 = require("../../contexts");
10
- var types_1 = require("../../types");
10
+ var helpers_1 = require("../../helpers");
11
11
  var constants_1 = require("../../constants");
12
- exports.Operations = function () {
13
- var channels = contexts_1.useSpec().channels();
12
+ var types_1 = require("../../types");
13
+ var Operations = function () {
14
+ var channels = (0, contexts_1.useSpec)().channels();
15
+ var config = (0, contexts_1.useConfig)();
14
16
  if (!Object.keys(channels).length) {
15
17
  return null;
16
18
  }
@@ -18,16 +20,17 @@ exports.Operations = function () {
18
20
  Object.entries(channels).forEach(function (_a) {
19
21
  var channelName = _a[0], channel = _a[1];
20
22
  if (channel.hasPublish()) {
21
- operationsList.push(react_1.default.createElement("li", { className: "mb-12", key: "pub-" + channelName },
23
+ operationsList.push(react_1.default.createElement("li", { className: "mb-12", key: "pub-".concat(channelName), id: helpers_1.CommonHelpers.getIdentifier("operation-".concat(types_1.PayloadType.PUBLISH, "-").concat(channelName), config) },
22
24
  react_1.default.createElement(Operation_1.Operation, { type: types_1.PayloadType.PUBLISH, operation: channel.publish(), channelName: channelName, channel: channel })));
23
25
  }
24
26
  if (channel.hasSubscribe()) {
25
- operationsList.push(react_1.default.createElement("li", { className: "mb-12", key: "sub-" + channelName },
27
+ operationsList.push(react_1.default.createElement("li", { className: "mb-12", key: "sub-".concat(channelName), id: helpers_1.CommonHelpers.getIdentifier("operation-".concat(types_1.PayloadType.SUBSCRIBE, "-").concat(channelName), config) },
26
28
  react_1.default.createElement(Operation_1.Operation, { type: types_1.PayloadType.SUBSCRIBE, operation: channel.subscribe(), channelName: channelName, channel: channel })));
27
29
  }
28
30
  });
29
- return (react_1.default.createElement("section", { id: "operations", className: "mt-16" },
31
+ return (react_1.default.createElement("section", { id: "".concat(helpers_1.CommonHelpers.getIdentifier('operations', config)), className: "mt-16" },
30
32
  react_1.default.createElement("h2", { className: "2xl:w-7/12 text-3xl font-light mb-4 px-8" }, constants_1.OPERATIONS_TEXT),
31
33
  react_1.default.createElement("ul", null, operationsList)));
32
34
  };
35
+ exports.Operations = Operations;
33
36
  //# sourceMappingURL=Operations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Operations.js","sourceRoot":"","sources":["../../../../src/containers/Operations/Operations.tsx"],"names":[],"mappings":";;;;;;AAAA,gDAA0B;AAE1B,yCAAwC;AAExC,2CAAyC;AACzC,qCAA0C;AAC1C,6CAAkD;AAErC,QAAA,UAAU,GAA4B;IACjD,IAAM,QAAQ,GAAG,kBAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;IAEtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE;QACjC,OAAO,IAAI,CAAC;KACb;IAED,IAAM,cAAc,GAAyB,EAAE,CAAC;IAChD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAC,EAAsB;YAArB,WAAW,QAAA,EAAE,OAAO,QAAA;QACrD,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE;YACxB,cAAc,CAAC,IAAI,CACjB,sCAAI,SAAS,EAAC,OAAO,EAAC,GAAG,EAAE,SAAO,WAAa;gBAC7C,8BAAC,qBAAS,IACR,IAAI,EAAE,mBAAW,CAAC,OAAO,EACzB,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,EAC5B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,GAChB,CACC,CACN,CAAC;SACH;QACD,IAAI,OAAO,CAAC,YAAY,EAAE,EAAE;YAC1B,cAAc,CAAC,IAAI,CACjB,sCAAI,SAAS,EAAC,OAAO,EAAC,GAAG,EAAE,SAAO,WAAa;gBAC7C,8BAAC,qBAAS,IACR,IAAI,EAAE,mBAAW,CAAC,SAAS,EAC3B,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,EAC9B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,GAChB,CACC,CACN,CAAC;SACH;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,2CAAS,EAAE,EAAC,YAAY,EAAC,SAAS,EAAC,OAAO;QACxC,sCAAI,SAAS,EAAC,0CAA0C,IACrD,2BAAe,CACb;QACL,0CAAK,cAAc,CAAM,CACjB,CACX,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Operations.js","sourceRoot":"","sources":["../../../../src/containers/Operations/Operations.tsx"],"names":[],"mappings":";;;;;;AAAA,gDAA0B;AAE1B,yCAAwC;AAExC,2CAAoD;AACpD,yCAA8C;AAC9C,6CAAkD;AAClD,qCAA0C;AAEnC,IAAM,UAAU,GAA4B;IACjD,IAAM,QAAQ,GAAG,IAAA,kBAAO,GAAE,CAAC,QAAQ,EAAE,CAAC;IACtC,IAAM,MAAM,GAAG,IAAA,oBAAS,GAAE,CAAC;IAE3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE;QACjC,OAAO,IAAI,CAAC;KACb;IAED,IAAM,cAAc,GAAyB,EAAE,CAAC;IAChD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAC,EAAsB;YAArB,WAAW,QAAA,EAAE,OAAO,QAAA;QACrD,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE;YACxB,cAAc,CAAC,IAAI,CACjB,sCACE,SAAS,EAAC,OAAO,EACjB,GAAG,EAAE,cAAO,WAAW,CAAE,EACzB,EAAE,EAAE,uBAAa,CAAC,aAAa,CAC7B,oBAAa,mBAAW,CAAC,OAAO,cAAI,WAAW,CAAE,EACjD,MAAM,CACP;gBAED,8BAAC,qBAAS,IACR,IAAI,EAAE,mBAAW,CAAC,OAAO,EACzB,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,EAC5B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,GAChB,CACC,CACN,CAAC;SACH;QACD,IAAI,OAAO,CAAC,YAAY,EAAE,EAAE;YAC1B,cAAc,CAAC,IAAI,CACjB,sCACE,SAAS,EAAC,OAAO,EACjB,GAAG,EAAE,cAAO,WAAW,CAAE,EACzB,EAAE,EAAE,uBAAa,CAAC,aAAa,CAC7B,oBAAa,mBAAW,CAAC,SAAS,cAAI,WAAW,CAAE,EACnD,MAAM,CACP;gBAED,8BAAC,qBAAS,IACR,IAAI,EAAE,mBAAW,CAAC,SAAS,EAC3B,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,EAC9B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,GAChB,CACC,CACN,CAAC;SACH;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,2CACE,EAAE,EAAE,UAAG,uBAAa,CAAC,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,CAAE,EAC1D,SAAS,EAAC,OAAO;QAEjB,sCAAI,SAAS,EAAC,0CAA0C,IACrD,2BAAe,CACb;QACL,0CAAK,cAAc,CAAM,CACjB,CACX,CAAC;AACJ,CAAC,CAAC;AA7DW,QAAA,UAAU,cA6DrB","sourcesContent":["import React from 'react';\n\nimport { Operation } from './Operation';\n\nimport { useConfig, useSpec } from '../../contexts';\nimport { CommonHelpers } from '../../helpers';\nimport { OPERATIONS_TEXT } from '../../constants';\nimport { PayloadType } from '../../types';\n\nexport const Operations: React.FunctionComponent = () => {\n const channels = useSpec().channels();\n const config = useConfig();\n\n if (!Object.keys(channels).length) {\n return null;\n }\n\n const operationsList: React.ReactNodeArray = [];\n Object.entries(channels).forEach(([channelName, channel]) => {\n if (channel.hasPublish()) {\n operationsList.push(\n <li\n className=\"mb-12\"\n key={`pub-${channelName}`}\n id={CommonHelpers.getIdentifier(\n `operation-${PayloadType.PUBLISH}-${channelName}`,\n config,\n )}\n >\n <Operation\n type={PayloadType.PUBLISH}\n operation={channel.publish()}\n channelName={channelName}\n channel={channel}\n />\n </li>,\n );\n }\n if (channel.hasSubscribe()) {\n operationsList.push(\n <li\n className=\"mb-12\"\n key={`sub-${channelName}`}\n id={CommonHelpers.getIdentifier(\n `operation-${PayloadType.SUBSCRIBE}-${channelName}`,\n config,\n )}\n >\n <Operation\n type={PayloadType.SUBSCRIBE}\n operation={channel.subscribe()}\n channelName={channelName}\n channel={channel}\n />\n </li>,\n );\n }\n });\n\n return (\n <section\n id={`${CommonHelpers.getIdentifier('operations', config)}`}\n className=\"mt-16\"\n >\n <h2 className=\"2xl:w-7/12 text-3xl font-light mb-4 px-8\">\n {OPERATIONS_TEXT}\n </h2>\n <ul>{operationsList}</ul>\n </section>\n );\n};\n"]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Schema = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var components_1 = require("../../components");
9
+ var Schema = function (_a) {
10
+ var schemaName = _a.schemaName, schema = _a.schema;
11
+ if (!schema) {
12
+ return null;
13
+ }
14
+ return (react_1.default.createElement("div", null,
15
+ react_1.default.createElement("div", { className: "panel-item--center px-8" },
16
+ react_1.default.createElement("div", { className: "shadow rounded px-4 py-2 border bg-gray-200" },
17
+ react_1.default.createElement(components_1.Schema, { schemaName: schemaName, schema: schema }))),
18
+ react_1.default.createElement("div", { className: "w-full mt-4" })));
19
+ };
20
+ exports.Schema = Schema;
21
+ //# sourceMappingURL=Schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../../src/containers/Schemas/Schema.tsx"],"names":[],"mappings":";;;;;;AAAA,gDAA0B;AAG1B,+CAA6D;AAOtD,IAAM,MAAM,GAAmC,UAAC,EAGtD;QAFC,UAAU,gBAAA,EACV,MAAM,YAAA;IAEN,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL;QACE,uCAAK,SAAS,EAAC,yBAAyB;YACtC,uCAAK,SAAS,EAAC,6CAA6C;gBAC1D,8BAAC,mBAAe,IAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAI,CACvD,CACF;QAEN,uCAAK,SAAS,EAAC,aAAa,GAAG,CAC3B,CACP,CAAC;AACJ,CAAC,CAAC;AAnBW,QAAA,MAAM,UAmBjB","sourcesContent":["import React from 'react';\nimport { Schema as SchemaType } from '@asyncapi/parser';\n\nimport { Schema as SchemaComponent } from '../../components';\n\ninterface Props {\n schemaName: string;\n schema: SchemaType;\n}\n\nexport const Schema: React.FunctionComponent<Props> = ({\n schemaName,\n schema,\n}) => {\n if (!schema) {\n return null;\n }\n\n return (\n <div>\n <div className=\"panel-item--center px-8\">\n <div className=\"shadow rounded px-4 py-2 border bg-gray-200\">\n <SchemaComponent schemaName={schemaName} schema={schema} />\n </div>\n </div>\n\n <div className=\"w-full mt-4\" />\n </div>\n );\n};\n"]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Schemas = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var Schema_1 = require("./Schema");
9
+ var contexts_1 = require("../../contexts");
10
+ var helpers_1 = require("../../helpers");
11
+ var constants_1 = require("../../constants");
12
+ var Schemas = function () {
13
+ var asyncapi = (0, contexts_1.useSpec)();
14
+ var config = (0, contexts_1.useConfig)();
15
+ var schemas = asyncapi.hasComponents() && asyncapi.components().schemas();
16
+ if (!schemas || Object.keys(schemas).length === 0) {
17
+ return null;
18
+ }
19
+ return (react_1.default.createElement("section", { id: "".concat(helpers_1.CommonHelpers.getIdentifier('schemas', config)), className: "mt-16" },
20
+ react_1.default.createElement("h2", { className: "2xl:w-7/12 text-3xl font-light mb-4 px-8" }, constants_1.SCHEMAS_TEXT),
21
+ react_1.default.createElement("ul", null, Object.entries(schemas).map(function (_a) {
22
+ var schemaName = _a[0], schema = _a[1];
23
+ return (react_1.default.createElement("li", { className: "mb-4", key: schemaName, id: helpers_1.CommonHelpers.getIdentifier("schema-".concat(schemaName), config) },
24
+ react_1.default.createElement(Schema_1.Schema, { schemaName: schemaName, schema: schema })));
25
+ }))));
26
+ };
27
+ exports.Schemas = Schemas;
28
+ //# sourceMappingURL=Schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Schemas.js","sourceRoot":"","sources":["../../../../src/containers/Schemas/Schemas.tsx"],"names":[],"mappings":";;;;;;AAAA,gDAA0B;AAE1B,mCAAkC;AAElC,2CAAoD;AACpD,yCAA8C;AAC9C,6CAA+C;AAExC,IAAM,OAAO,GAA4B;IAC9C,IAAM,QAAQ,GAAG,IAAA,kBAAO,GAAE,CAAC;IAC3B,IAAM,MAAM,GAAG,IAAA,oBAAS,GAAE,CAAC;IAC3B,IAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,EAAE,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC;IAE5E,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACjD,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,2CACE,EAAE,EAAE,UAAG,uBAAa,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAE,EACvD,SAAS,EAAC,OAAO;QAEjB,sCAAI,SAAS,EAAC,0CAA0C,IACrD,wBAAY,CACV;QACL,0CACG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAC,EAAoB;gBAAnB,UAAU,QAAA,EAAE,MAAM,QAAA;YAAM,OAAA,CACrD,sCACE,SAAS,EAAC,MAAM,EAChB,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,uBAAa,CAAC,aAAa,CAAC,iBAAU,UAAU,CAAE,EAAE,MAAM,CAAC;gBAE/D,8BAAC,eAAM,IAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAI,CAC/C,CACN;QARsD,CAQtD,CAAC,CACC,CACG,CACX,CAAC;AACJ,CAAC,CAAC;AA9BW,QAAA,OAAO,WA8BlB","sourcesContent":["import React from 'react';\n\nimport { Schema } from './Schema';\n\nimport { useConfig, useSpec } from '../../contexts';\nimport { CommonHelpers } from '../../helpers';\nimport { SCHEMAS_TEXT } from '../../constants';\n\nexport const Schemas: React.FunctionComponent = () => {\n const asyncapi = useSpec();\n const config = useConfig();\n const schemas = asyncapi.hasComponents() && asyncapi.components().schemas();\n\n if (!schemas || Object.keys(schemas).length === 0) {\n return null;\n }\n\n return (\n <section\n id={`${CommonHelpers.getIdentifier('schemas', config)}`}\n className=\"mt-16\"\n >\n <h2 className=\"2xl:w-7/12 text-3xl font-light mb-4 px-8\">\n {SCHEMAS_TEXT}\n </h2>\n <ul>\n {Object.entries(schemas).map(([schemaName, schema]) => (\n <li\n className=\"mb-4\"\n key={schemaName}\n id={CommonHelpers.getIdentifier(`schema-${schemaName}`, config)}\n >\n <Schema schemaName={schemaName} schema={schema} />\n </li>\n ))}\n </ul>\n </section>\n );\n};\n"]}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Security = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var components_1 = require("../../components");
9
+ var contexts_1 = require("../../contexts");
10
+ var helpers_1 = require("../../helpers");
11
+ var Security = function (_a) {
12
+ 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;
13
+ var asyncapi = (0, contexts_1.useSpec)();
14
+ var securitySchemes = asyncapi.hasComponents() && asyncapi.components().securitySchemes();
15
+ var renderedSecurities;
16
+ if (!security ||
17
+ !security.length ||
18
+ !securitySchemes ||
19
+ !Object.keys(securitySchemes).length) {
20
+ if (protocol === 'kafka' || protocol === 'kafka-secure') {
21
+ renderedSecurities = (react_1.default.createElement(SecurityItem, { protocol: protocol, securitySchema: null }));
22
+ }
23
+ }
24
+ else {
25
+ var securities = security
26
+ .map(function (requirement) {
27
+ var requirements = requirement.json();
28
+ var key = Object.keys(requirements)[0];
29
+ var def = securitySchemes[String(key)];
30
+ var requiredScopes = requirements[String(key)];
31
+ if (!def) {
32
+ return null;
33
+ }
34
+ return (react_1.default.createElement(SecurityItem, { protocol: protocol, securitySchema: def, requiredScopes: requiredScopes, key: def.type() }));
35
+ })
36
+ .filter(Boolean);
37
+ renderedSecurities = (react_1.default.createElement("ul", null, securities.map(function (s, idx) { return (react_1.default.createElement("li", { className: "mt-2", key: idx }, s)); })));
38
+ }
39
+ if (!renderedSecurities) {
40
+ return null;
41
+ }
42
+ return (react_1.default.createElement("div", { className: "text-sm mt-4" },
43
+ react_1.default.createElement("h5", { className: "text-gray-800" },
44
+ header,
45
+ ":"),
46
+ renderedSecurities));
47
+ };
48
+ exports.Security = Security;
49
+ function collectSecuritySchemas(securitySchema, requiredScopes) {
50
+ if (requiredScopes === void 0) { requiredScopes = []; }
51
+ var schemas = [];
52
+ if (securitySchema) {
53
+ if (securitySchema.name()) {
54
+ schemas.push(react_1.default.createElement("span", null,
55
+ "Name: ",
56
+ securitySchema.name()));
57
+ }
58
+ if (securitySchema.in()) {
59
+ schemas.push(react_1.default.createElement("span", null,
60
+ "In: ",
61
+ securitySchema.in()));
62
+ }
63
+ if (securitySchema.scheme()) {
64
+ schemas.push(react_1.default.createElement("span", null,
65
+ "Scheme: ",
66
+ securitySchema.scheme()));
67
+ }
68
+ if (securitySchema.bearerFormat()) {
69
+ schemas.push(react_1.default.createElement("span", null,
70
+ "Bearer format: ",
71
+ securitySchema.bearerFormat()));
72
+ }
73
+ if (securitySchema.openIdConnectUrl()) {
74
+ schemas.push(react_1.default.createElement(components_1.Href, { href: securitySchema.openIdConnectUrl(), className: "underline" }, "Connect URL"));
75
+ }
76
+ if (requiredScopes.length) {
77
+ schemas.push(react_1.default.createElement("span", null,
78
+ "Required scopes: ",
79
+ requiredScopes.join(', ')));
80
+ }
81
+ }
82
+ return schemas;
83
+ }
84
+ var SecurityItem = function (_a) {
85
+ var securitySchema = _a.securitySchema, protocol = _a.protocol, requiredScopes = _a.requiredScopes;
86
+ var schemas = collectSecuritySchemas(securitySchema, requiredScopes);
87
+ var renderedKafkaSecurity;
88
+ if (['kafka', 'kafka-secure'].includes(protocol)) {
89
+ var _b = helpers_1.ServerHelpers.getKafkaSecurity(protocol, securitySchema), securityProtocol = _b.securityProtocol, saslMechanism = _b.saslMechanism;
90
+ renderedKafkaSecurity = (react_1.default.createElement("div", { className: "px-4 py-2 ml-2 mb-2 border border-gray-400 bg-gray-100 rounded" },
91
+ securityProtocol && (react_1.default.createElement("div", { className: "mt-1" },
92
+ react_1.default.createElement("span", { className: "text-xs font-bold text-gray-600 mt-1 mr-1 uppercase" }, "security.protocol:"),
93
+ react_1.default.createElement("span", { className: "inline-block font-bold no-underline bg-indigo-400 text-white text-xs rounded py-0 px-1 ml-1" }, securityProtocol))),
94
+ saslMechanism && (react_1.default.createElement("div", { className: "mt-1" },
95
+ react_1.default.createElement("span", { className: "text-xs font-bold text-gray-600 mt-1 mr-1 uppercase" }, "sasl.mechanism:"),
96
+ react_1.default.createElement("span", { className: "inline-block font-bold no-underline bg-indigo-400 text-white text-xs rounded py-0 px-1 ml-1" }, saslMechanism)))));
97
+ }
98
+ var flows = securitySchema && securitySchema.flows();
99
+ var renderedFlows = flows &&
100
+ Object.entries(flows).map(function (_a) {
101
+ var flowName = _a[0], flow = _a[1];
102
+ var authorizationUrl = flow.authorizationUrl();
103
+ var tokenUrl = flow.tokenUrl();
104
+ var refreshUrl = flow.refreshUrl();
105
+ var scopes = flow.scopes();
106
+ return (react_1.default.createElement("div", { className: "px-4 py-2 ml-2 mb-2 border border-gray-400 bg-gray-100 rounded", key: flowName },
107
+ react_1.default.createElement("div", null,
108
+ react_1.default.createElement("span", { className: "text-xs font-bold text-gray-600 mt-1 mr-1 uppercase" }, "Flow:"),
109
+ react_1.default.createElement("span", { className: "text-xs font-bold text-gray-600 mt-1 mr-1 uppercase" }, helpers_1.ServerHelpers.flowName(flowName))),
110
+ authorizationUrl && (react_1.default.createElement("div", { className: "mt-1" },
111
+ react_1.default.createElement("span", { className: "text-xs font-bold text-gray-600 mt-1 mr-1 uppercase" }, "Auth URL:"),
112
+ react_1.default.createElement(components_1.Href, { href: authorizationUrl, className: "underline" }, authorizationUrl))),
113
+ tokenUrl && (react_1.default.createElement("div", { className: "mt-1" },
114
+ react_1.default.createElement("span", { className: "text-xs font-bold text-gray-600 mt-1 mr-1 uppercase" }, "Token URL:"),
115
+ react_1.default.createElement(components_1.Href, { href: tokenUrl, className: "underline" }, tokenUrl))),
116
+ refreshUrl && (react_1.default.createElement("div", { className: "mt-1" },
117
+ react_1.default.createElement("span", { className: "text-xs font-bold text-gray-600 mt-1 mr-1 uppercase" }, "Refresh URL:"),
118
+ react_1.default.createElement(components_1.Href, { href: refreshUrl, className: "underline" }, refreshUrl))),
119
+ scopes && (react_1.default.createElement("div", { className: "mt-1" },
120
+ react_1.default.createElement("span", { className: "text-xs font-bold text-gray-600 mt-1 mr-1 uppercase" }, "Scopes:"),
121
+ react_1.default.createElement("ul", { className: "inline-block" }, scopes &&
122
+ Object.entries(scopes).map(function (_a) {
123
+ var scopeName = _a[0], scopeDesc = _a[1];
124
+ return (react_1.default.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));
125
+ }))))));
126
+ });
127
+ return (react_1.default.createElement("div", null,
128
+ securitySchema && schemas && (react_1.default.createElement("div", null,
129
+ react_1.default.createElement("span", null,
130
+ helpers_1.ServerHelpers.securityType(securitySchema.type()),
131
+ schemas.length > 0 && (react_1.default.createElement("ul", { className: "inline-block ml-2" }, schemas.map(function (schema, idx) { return (react_1.default.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)); })))))),
132
+ securitySchema && securitySchema.hasDescription() && (react_1.default.createElement("div", null,
133
+ react_1.default.createElement(components_1.Markdown, null, securitySchema.description()))),
134
+ renderedFlows && renderedFlows.length > 0 && (react_1.default.createElement("ul", { className: "my-2" },
135
+ react_1.default.createElement("li", null, renderedFlows))),
136
+ renderedKafkaSecurity && react_1.default.createElement("div", null, renderedKafkaSecurity)));
137
+ };
138
+ //# 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 { ServerSecurityRequirement, SecurityScheme } from '@asyncapi/parser';\n\nimport { Href, Markdown } from '../../components';\n\nimport { useSpec } from '../../contexts';\nimport { ServerHelpers } from '../../helpers';\n\ninterface Props {\n security: ServerSecurityRequirement[];\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.hasComponents() && 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 = security\n .map(requirement => {\n const requirements = requirement.json();\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: SecurityScheme | 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 href={securitySchema.openIdConnectUrl()} className=\"underline\">\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: SecurityScheme | 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 && securitySchema.flows();\n const renderedFlows =\n flows &&\n Object.entries(flows).map(([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 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"]}
@@ -5,33 +5,37 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Server = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
- var ServerSecurity_1 = require("./ServerSecurity");
8
+ var Security_1 = require("./Security");
9
9
  var components_1 = require("../../components");
10
+ var contexts_1 = require("../../contexts");
10
11
  var helpers_1 = require("../../helpers");
11
- exports.Server = function (_a) {
12
+ var Server = function (_a) {
12
13
  var serverName = _a.serverName, server = _a.server;
14
+ var config = (0, contexts_1.useConfig)();
13
15
  if (!server) {
14
16
  return null;
15
17
  }
16
18
  var urlVariables = helpers_1.SchemaHelpers.serverVariablesToSchema(server.variables());
17
19
  var protocolVersion = server.protocolVersion();
18
- var serverRequirements = server.security();
20
+ var security = server.security();
19
21
  return (react_1.default.createElement("div", { className: "panel-item" },
20
22
  react_1.default.createElement("div", { className: "panel-item--center px-8" },
21
23
  react_1.default.createElement("div", { className: "shadow rounded bg-gray-200 p-4 border bg-gray-100" },
22
24
  react_1.default.createElement("div", null,
23
25
  react_1.default.createElement("span", { className: "font-mono text-base" }, server.url()),
24
26
  react_1.default.createElement("span", { className: "bg-teal-500 font-bold no-underline text-white uppercase rounded mx-2 px-2 py-1 text-sm" }, protocolVersion
25
- ? server.protocol() + " " + protocolVersion
27
+ ? "".concat(server.protocol(), " ").concat(protocolVersion)
26
28
  : server.protocol()),
27
29
  react_1.default.createElement("span", { className: "bg-blue-500 font-bold no-underline text-white uppercase rounded px-2 py-1 text-sm" }, serverName)),
28
30
  server.hasDescription() && (react_1.default.createElement("div", { className: "mt-2" },
29
31
  react_1.default.createElement(components_1.Markdown, null, server.description()))),
30
- urlVariables && (react_1.default.createElement("div", { className: "mt-2" },
32
+ urlVariables && (react_1.default.createElement("div", { className: "mt-2", id: "".concat(helpers_1.CommonHelpers.getIdentifier("server-".concat(serverName, "-url-variables"), config)) },
31
33
  react_1.default.createElement(components_1.Schema, { schemaName: "URL Variables", schema: urlVariables, expanded: true }))),
32
- serverRequirements && (react_1.default.createElement(ServerSecurity_1.ServerSecurity, { serverRequirements: serverRequirements })),
34
+ react_1.default.createElement("div", { id: "".concat(helpers_1.CommonHelpers.getIdentifier("server-".concat(serverName, "-security"), config)) },
35
+ react_1.default.createElement(Security_1.Security, { protocol: server.protocol(), security: security })),
33
36
  server.hasBindings() && (react_1.default.createElement("div", { className: "mt-2" },
34
- react_1.default.createElement(components_1.Bindings, { bindings: server.bindings() }))))),
37
+ react_1.default.createElement(components_1.Bindings, { name: "Server specific information", bindings: server.bindings() }))))),
35
38
  react_1.default.createElement("div", { className: "panel-item--right" })));
36
39
  };
40
+ exports.Server = Server;
37
41
  //# sourceMappingURL=Server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../../../src/containers/Servers/Server.tsx"],"names":[],"mappings":";;;;;;AAAA,gDAA0B;AAG1B,mDAAkD;AAClD,+CAA8D;AAE9D,yCAA8C;AAOjC,QAAA,MAAM,GAAmC,UAAC,EAGtD;QAFC,UAAU,gBAAA,EACV,MAAM,YAAA;IAEN,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,IAAM,YAAY,GAAG,uBAAa,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,uCAAK,SAAS,EAAC,YAAY;QACzB,uCAAK,SAAS,EAAC,yBAAyB;YACtC,uCAAK,SAAS,EAAC,mDAAmD;gBAChE;oBACE,wCAAM,SAAS,EAAC,qBAAqB,IAAE,MAAM,CAAC,GAAG,EAAE,CAAQ;oBAC3D,wCAAM,SAAS,EAAC,wFAAwF,IACrG,eAAe;wBACd,CAAC,CAAI,MAAM,CAAC,QAAQ,EAAE,SAAI,eAAiB;wBAC3C,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAChB;oBACP,wCAAM,SAAS,EAAC,mFAAmF,IAChG,UAAU,CACN,CACH;gBAEL,MAAM,CAAC,cAAc,EAAE,IAAI,CAC1B,uCAAK,SAAS,EAAC,MAAM;oBACnB,8BAAC,qBAAQ,QAAE,MAAM,CAAC,WAAW,EAAE,CAAY,CACvC,CACP;gBAEA,YAAY,IAAI,CACf,uCAAK,SAAS,EAAC,MAAM;oBACnB,8BAAC,mBAAM,IACL,UAAU,EAAC,eAAe,EAC1B,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,IAAI,GACd,CACE,CACP;gBAEA,kBAAkB,IAAI,CACrB,8BAAC,+BAAc,IAAC,kBAAkB,EAAE,kBAAkB,GAAI,CAC3D;gBAEA,MAAM,CAAC,WAAW,EAAE,IAAI,CACvB,uCAAK,SAAS,EAAC,MAAM;oBACnB,8BAAC,qBAAQ,IAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,GAAI,CACrC,CACP,CACG,CACF;QAEN,uCAAK,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,gDAA0B;AAG1B,uCAAsC;AACtC,+CAA8D;AAE9D,2CAA2C;AAC3C,yCAA6D;AAOtD,IAAM,MAAM,GAAmC,UAAC,EAGtD;QAFC,UAAU,gBAAA,EACV,MAAM,YAAA;IAEN,IAAM,MAAM,GAAG,IAAA,oBAAS,GAAE,CAAC;IAE3B,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,IAAM,YAAY,GAAG,uBAAa,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,uCAAK,SAAS,EAAC,YAAY;QACzB,uCAAK,SAAS,EAAC,yBAAyB;YACtC,uCAAK,SAAS,EAAC,mDAAmD;gBAChE;oBACE,wCAAM,SAAS,EAAC,qBAAqB,IAAE,MAAM,CAAC,GAAG,EAAE,CAAQ;oBAC3D,wCAAM,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,wCAAM,SAAS,EAAC,mFAAmF,IAChG,UAAU,CACN,CACH;gBAEL,MAAM,CAAC,cAAc,EAAE,IAAI,CAC1B,uCAAK,SAAS,EAAC,MAAM;oBACnB,8BAAC,qBAAQ,QAAE,MAAM,CAAC,WAAW,EAAE,CAAY,CACvC,CACP;gBAEA,YAAY,IAAI,CACf,uCACE,SAAS,EAAC,MAAM,EAChB,EAAE,EAAE,UAAG,uBAAa,CAAC,aAAa,CAChC,iBAAU,UAAU,mBAAgB,EACpC,MAAM,CACP,CAAE;oBAEH,8BAAC,mBAAM,IACL,UAAU,EAAC,eAAe,EAC1B,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,IAAI,GACd,CACE,CACP;gBAGC,uCACE,EAAE,EAAE,UAAG,uBAAa,CAAC,aAAa,CAChC,iBAAU,UAAU,cAAW,EAC/B,MAAM,CACP,CAAE;oBAEH,8BAAC,mBAAQ,IAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAI,CACzD;gBAGP,MAAM,CAAC,WAAW,EAAE,IAAI,CACvB,uCAAK,SAAS,EAAC,MAAM;oBACnB,8BAAC,qBAAQ,IACP,IAAI,EAAC,6BAA6B,EAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,GAC3B,CACE,CACP,CACG,CACF;QAEN,uCAAK,SAAS,EAAC,mBAAmB,GAAG,CACjC,CACP,CAAC;AACJ,CAAC,CAAC;AA/EW,QAAA,MAAM,UA+EjB","sourcesContent":["import React from 'react';\nimport { Server as ServerType } from '@asyncapi/parser';\n\nimport { Security } from './Security';\nimport { Markdown, Schema, Bindings } from '../../components';\n\nimport { useConfig } from '../../contexts';\nimport { CommonHelpers, SchemaHelpers } from '../../helpers';\n\ninterface Props {\n serverName: string;\n server: ServerType;\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.hasBindings() && (\n <div className=\"mt-2\">\n <Bindings\n name=\"Server specific information\"\n bindings={server.bindings()}\n />\n </div>\n )}\n </div>\n </div>\n\n <div className=\"panel-item--right\" />\n </div>\n );\n};\n"]}
@@ -7,18 +7,21 @@ exports.Servers = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
8
  var Server_1 = require("./Server");
9
9
  var contexts_1 = require("../../contexts");
10
+ var helpers_1 = require("../../helpers");
10
11
  var constants_1 = require("../../constants");
11
- exports.Servers = function () {
12
- var servers = contexts_1.useSpec().servers();
12
+ var Servers = function () {
13
+ var servers = (0, contexts_1.useSpec)().servers();
14
+ var config = (0, contexts_1.useConfig)();
13
15
  if (!Object.keys(servers).length) {
14
16
  return null;
15
17
  }
16
- return (react_1.default.createElement("section", { id: "servers", className: "mt-16" },
18
+ return (react_1.default.createElement("section", { id: "".concat(helpers_1.CommonHelpers.getIdentifier('servers', config)), className: "mt-16" },
17
19
  react_1.default.createElement("h2", { className: "2xl:w-7/12 text-3xl font-light mb-4 px-8" }, constants_1.SERVERS_TEXT),
18
20
  react_1.default.createElement("ul", null, Object.entries(servers).map(function (_a) {
19
21
  var serverName = _a[0], server = _a[1];
20
- return (react_1.default.createElement("li", { className: "mb-4", key: serverName },
22
+ return (react_1.default.createElement("li", { className: "mb-4", key: serverName, id: "".concat(helpers_1.CommonHelpers.getIdentifier("server-".concat(serverName), config)) },
21
23
  react_1.default.createElement(Server_1.Server, { serverName: serverName, server: server, key: serverName })));
22
24
  }))));
23
25
  };
26
+ exports.Servers = Servers;
24
27
  //# sourceMappingURL=Servers.js.map