@asyncapi/react-component 1.0.0-next.8 → 1.0.0
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.
- package/README.md +121 -36
- package/browser/index.js +32 -14
- package/browser/index.js.LICENSE.txt +88 -0
- package/browser/standalone/index.js +32 -43
- package/browser/standalone/index.js.LICENSE.txt +112 -0
- package/browser/standalone/without-parser.js +14 -41
- package/browser/standalone/without-parser.js.LICENSE.txt +110 -0
- package/browser/without-parser.js +14 -12
- package/browser/without-parser.js.LICENSE.txt +86 -0
- package/lib/cjs/components/Bindings.js +14 -5
- package/lib/cjs/components/Bindings.js.map +1 -1
- package/lib/cjs/components/CollapseButton.js +11 -7
- package/lib/cjs/components/CollapseButton.js.map +1 -1
- package/lib/cjs/components/Extensions.js +4 -3
- package/lib/cjs/components/Extensions.js.map +1 -1
- package/lib/cjs/components/Href.js +2 -1
- package/lib/cjs/components/Href.js.map +1 -1
- package/lib/cjs/components/JSONSnippet.js +2 -1
- package/lib/cjs/components/JSONSnippet.js.map +1 -1
- package/lib/cjs/components/Markdown.js +3 -2
- package/lib/cjs/components/Markdown.js.map +1 -1
- package/lib/cjs/components/Schema.js +77 -60
- package/lib/cjs/components/Schema.js.map +1 -1
- package/lib/cjs/components/Tag.js +3 -2
- package/lib/cjs/components/Tag.js.map +1 -1
- package/lib/cjs/components/Tags.js +3 -2
- package/lib/cjs/components/Tags.js.map +1 -1
- package/lib/cjs/components/index.js +5 -1
- package/lib/cjs/components/index.js.map +1 -1
- package/lib/cjs/config/config.js.map +1 -1
- package/lib/cjs/config/default.js +9 -1
- package/lib/cjs/config/default.js.map +1 -1
- package/lib/cjs/config/index.js +5 -1
- package/lib/cjs/config/index.js.map +1 -1
- package/lib/cjs/constants.js +12 -48
- package/lib/cjs/constants.js.map +1 -1
- package/lib/cjs/containers/AsyncApi/AsyncApi.js +28 -12
- package/lib/cjs/containers/AsyncApi/AsyncApi.js.map +1 -1
- package/lib/cjs/containers/AsyncApi/Layout.js +33 -21
- package/lib/cjs/containers/AsyncApi/Layout.js.map +1 -1
- package/lib/cjs/containers/AsyncApi/Standalone.js +8 -2
- package/lib/cjs/containers/AsyncApi/Standalone.js.map +1 -1
- package/lib/cjs/containers/Error/Error.js +4 -3
- package/lib/cjs/containers/Error/Error.js.map +1 -1
- package/lib/cjs/containers/Info/Info.js +11 -10
- package/lib/cjs/containers/Info/Info.js.map +1 -1
- package/lib/cjs/containers/Messages/Message.js +23 -10
- package/lib/cjs/containers/Messages/Message.js.map +1 -1
- package/lib/cjs/containers/Messages/MessageExample.js +25 -13
- package/lib/cjs/containers/Messages/MessageExample.js.map +1 -1
- package/lib/cjs/containers/Messages/Messages.js +14 -9
- package/lib/cjs/containers/Messages/Messages.js.map +1 -1
- package/lib/cjs/containers/Operations/Operation.js +88 -38
- package/lib/cjs/containers/Operations/Operation.js.map +1 -1
- package/lib/cjs/containers/Operations/Operations.js +20 -13
- package/lib/cjs/containers/Operations/Operations.js.map +1 -1
- package/lib/cjs/containers/Schemas/Schema.js +21 -0
- package/lib/cjs/containers/Schemas/Schema.js.map +1 -0
- package/lib/cjs/containers/Schemas/Schemas.js +29 -0
- package/lib/cjs/containers/Schemas/Schemas.js.map +1 -0
- package/lib/cjs/containers/Servers/Security.js +150 -0
- package/lib/cjs/containers/Servers/Security.js.map +1 -0
- package/lib/cjs/containers/Servers/Server.js +15 -8
- package/lib/cjs/containers/Servers/Server.js.map +1 -1
- package/lib/cjs/containers/Servers/Servers.js +12 -7
- package/lib/cjs/containers/Servers/Servers.js.map +1 -1
- package/lib/cjs/containers/Sidebar/Sidebar.js +201 -141
- package/lib/cjs/containers/Sidebar/Sidebar.js.map +1 -1
- package/lib/cjs/contexts/index.js +6 -1
- package/lib/cjs/contexts/index.js.map +1 -1
- package/lib/cjs/contexts/useConfig.js +10 -0
- package/lib/cjs/contexts/useConfig.js.map +1 -0
- package/lib/cjs/contexts/useSpec.js +7 -3
- package/lib/cjs/contexts/useSpec.js.map +1 -1
- package/lib/cjs/helpers/bindingsHelpers.js +24 -0
- package/lib/cjs/helpers/bindingsHelpers.js.map +1 -0
- package/lib/cjs/helpers/common.js +17 -0
- package/lib/cjs/helpers/common.js.map +1 -0
- package/lib/cjs/helpers/index.js +6 -3
- package/lib/cjs/helpers/index.js.map +1 -1
- package/lib/cjs/helpers/marked.js +2 -2
- package/lib/cjs/helpers/marked.js.map +1 -1
- package/lib/cjs/helpers/message.js +39 -9
- package/lib/cjs/helpers/message.js.map +1 -1
- package/lib/cjs/helpers/parser.js +16 -15
- package/lib/cjs/helpers/parser.js.map +1 -1
- package/lib/cjs/helpers/schema.js +186 -149
- package/lib/cjs/helpers/schema.js.map +1 -1
- package/lib/cjs/helpers/server.js +49 -0
- package/lib/cjs/helpers/server.js.map +1 -1
- package/lib/cjs/helpers/specification.js +36 -21
- package/lib/cjs/helpers/specification.js.map +1 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/types.js +4 -51
- package/lib/cjs/types.js.map +1 -1
- package/lib/cjs/without-parser.js.map +1 -1
- package/lib/esm/components/Bindings.js +12 -4
- package/lib/esm/components/Bindings.js.map +1 -1
- package/lib/esm/components/CollapseButton.js +9 -6
- package/lib/esm/components/CollapseButton.js.map +1 -1
- package/lib/esm/components/Extensions.js +2 -2
- package/lib/esm/components/Extensions.js.map +1 -1
- package/lib/esm/components/Href.js.map +1 -1
- package/lib/esm/components/JSONSnippet.js.map +1 -1
- package/lib/esm/components/Markdown.js +1 -1
- package/lib/esm/components/Markdown.js.map +1 -1
- package/lib/esm/components/Schema.js +71 -59
- package/lib/esm/components/Schema.js.map +1 -1
- package/lib/esm/components/Tag.js +1 -1
- package/lib/esm/components/Tag.js.map +1 -1
- package/lib/esm/components/Tags.js +1 -1
- package/lib/esm/components/Tags.js.map +1 -1
- package/lib/esm/components/index.js.map +1 -1
- package/lib/esm/config/config.js.map +1 -1
- package/lib/esm/config/default.js +9 -1
- package/lib/esm/config/default.js.map +1 -1
- package/lib/esm/config/index.js.map +1 -1
- package/lib/esm/constants.js +10 -47
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/containers/AsyncApi/AsyncApi.js +22 -10
- package/lib/esm/containers/AsyncApi/AsyncApi.js.map +1 -1
- package/lib/esm/containers/AsyncApi/Layout.js +28 -20
- package/lib/esm/containers/AsyncApi/Layout.js.map +1 -1
- package/lib/esm/containers/AsyncApi/Standalone.js +3 -1
- package/lib/esm/containers/AsyncApi/Standalone.js.map +1 -1
- package/lib/esm/containers/Error/Error.js +2 -2
- package/lib/esm/containers/Error/Error.js.map +1 -1
- package/lib/esm/containers/Info/Info.js +8 -8
- package/lib/esm/containers/Info/Info.js.map +1 -1
- package/lib/esm/containers/Messages/Message.js +21 -9
- package/lib/esm/containers/Messages/Message.js.map +1 -1
- package/lib/esm/containers/Messages/MessageExample.js +17 -11
- package/lib/esm/containers/Messages/MessageExample.js.map +1 -1
- package/lib/esm/containers/Messages/Messages.js +13 -9
- package/lib/esm/containers/Messages/Messages.js.map +1 -1
- package/lib/esm/containers/Operations/Operation.js +87 -39
- package/lib/esm/containers/Operations/Operation.js.map +1 -1
- package/lib/esm/containers/Operations/Operations.js +19 -13
- package/lib/esm/containers/Operations/Operations.js.map +1 -1
- package/lib/esm/containers/Schemas/Schema.js +14 -0
- package/lib/esm/containers/Schemas/Schema.js.map +1 -0
- package/lib/esm/containers/Schemas/Schemas.js +22 -0
- package/lib/esm/containers/Schemas/Schemas.js.map +1 -0
- package/lib/esm/containers/Servers/Security.js +143 -0
- package/lib/esm/containers/Servers/Security.js.map +1 -0
- package/lib/esm/containers/Servers/Server.js +15 -9
- package/lib/esm/containers/Servers/Server.js.map +1 -1
- package/lib/esm/containers/Servers/Servers.js +11 -7
- package/lib/esm/containers/Servers/Servers.js.map +1 -1
- package/lib/esm/containers/Sidebar/Sidebar.js +191 -136
- package/lib/esm/containers/Sidebar/Sidebar.js.map +1 -1
- package/lib/esm/contexts/index.js +1 -0
- package/lib/esm/contexts/index.js.map +1 -1
- package/lib/esm/contexts/useConfig.js +6 -0
- package/lib/esm/contexts/useConfig.js.map +1 -0
- package/lib/esm/contexts/useSpec.js +2 -2
- package/lib/esm/contexts/useSpec.js.map +1 -1
- package/lib/esm/helpers/bindingsHelpers.js +21 -0
- package/lib/esm/helpers/bindingsHelpers.js.map +1 -0
- package/lib/esm/helpers/common.js +14 -0
- package/lib/esm/helpers/common.js.map +1 -0
- package/lib/esm/helpers/index.js +1 -2
- package/lib/esm/helpers/index.js.map +1 -1
- package/lib/esm/helpers/marked.js +1 -1
- package/lib/esm/helpers/marked.js.map +1 -1
- package/lib/esm/helpers/message.js +38 -8
- package/lib/esm/helpers/message.js.map +1 -1
- package/lib/esm/helpers/parser.js +17 -13
- package/lib/esm/helpers/parser.js.map +1 -1
- package/lib/esm/helpers/schema.js +182 -142
- package/lib/esm/helpers/schema.js.map +1 -1
- package/lib/esm/helpers/server.js +49 -0
- package/lib/esm/helpers/server.js.map +1 -1
- package/lib/esm/helpers/specification.js +36 -18
- package/lib/esm/helpers/specification.js.map +1 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/types.js +2 -46
- package/lib/esm/types.js.map +1 -1
- package/lib/esm/without-parser.js.map +1 -1
- package/lib/types/components/Bindings.d.ts +2 -1
- package/lib/types/components/Bindings.d.ts.map +1 -1
- package/lib/types/components/CollapseButton.d.ts +1 -0
- package/lib/types/components/CollapseButton.d.ts.map +1 -1
- package/lib/types/components/Extensions.d.ts.map +1 -1
- package/lib/types/components/Schema.d.ts +5 -4
- package/lib/types/components/Schema.d.ts.map +1 -1
- package/lib/types/components/Tag.d.ts +2 -2
- package/lib/types/components/Tag.d.ts.map +1 -1
- package/lib/types/components/Tags.d.ts +2 -2
- package/lib/types/components/Tags.d.ts.map +1 -1
- package/lib/types/config/config.d.ts +8 -0
- package/lib/types/config/config.d.ts.map +1 -1
- package/lib/types/config/default.d.ts.map +1 -1
- package/lib/types/constants.d.ts +10 -26
- package/lib/types/constants.d.ts.map +1 -1
- package/lib/types/containers/AsyncApi/AsyncApi.d.ts +2 -2
- package/lib/types/containers/AsyncApi/AsyncApi.d.ts.map +1 -1
- package/lib/types/containers/AsyncApi/Layout.d.ts +2 -2
- package/lib/types/containers/AsyncApi/Layout.d.ts.map +1 -1
- package/lib/types/containers/AsyncApi/Standalone.d.ts +2 -2
- package/lib/types/containers/AsyncApi/Standalone.d.ts.map +1 -1
- package/lib/types/containers/Info/Info.d.ts.map +1 -1
- package/lib/types/containers/Messages/Message.d.ts +3 -2
- package/lib/types/containers/Messages/Message.d.ts.map +1 -1
- package/lib/types/containers/Messages/MessageExample.d.ts +5 -4
- package/lib/types/containers/Messages/MessageExample.d.ts.map +1 -1
- package/lib/types/containers/Messages/Messages.d.ts.map +1 -1
- package/lib/types/containers/Operations/Operation.d.ts +4 -3
- package/lib/types/containers/Operations/Operation.d.ts.map +1 -1
- package/lib/types/containers/Operations/Operations.d.ts.map +1 -1
- package/lib/types/containers/Schemas/Schema.d.ts +9 -0
- package/lib/types/containers/Schemas/Schema.d.ts.map +1 -0
- package/lib/types/containers/Schemas/Schemas.d.ts +3 -0
- package/lib/types/containers/Schemas/Schemas.d.ts.map +1 -0
- package/lib/types/containers/Servers/Security.d.ts +10 -0
- package/lib/types/containers/Servers/Security.d.ts.map +1 -0
- package/lib/types/containers/Servers/Server.d.ts +2 -2
- package/lib/types/containers/Servers/Server.d.ts.map +1 -1
- package/lib/types/containers/Servers/Servers.d.ts.map +1 -1
- package/lib/types/containers/Sidebar/Sidebar.d.ts +1 -9
- package/lib/types/containers/Sidebar/Sidebar.d.ts.map +1 -1
- package/lib/types/contexts/index.d.ts +1 -0
- package/lib/types/contexts/index.d.ts.map +1 -1
- package/lib/types/contexts/useConfig.d.ts +5 -0
- package/lib/types/contexts/useConfig.d.ts.map +1 -0
- package/lib/types/contexts/useSpec.d.ts +3 -5
- package/lib/types/contexts/useSpec.d.ts.map +1 -1
- package/lib/types/helpers/bindingsHelpers.d.ts +8 -0
- package/lib/types/helpers/bindingsHelpers.d.ts.map +1 -0
- package/lib/types/helpers/common.d.ts +5 -0
- package/lib/types/helpers/common.d.ts.map +1 -0
- package/lib/types/helpers/index.d.ts +1 -2
- package/lib/types/helpers/index.d.ts.map +1 -1
- package/lib/types/helpers/message.d.ts +4 -3
- package/lib/types/helpers/message.d.ts.map +1 -1
- package/lib/types/helpers/parser.d.ts.map +1 -1
- package/lib/types/helpers/schema.d.ts +16 -12
- package/lib/types/helpers/schema.d.ts.map +1 -1
- package/lib/types/helpers/server.d.ts +6 -1
- package/lib/types/helpers/server.d.ts.map +1 -1
- package/lib/types/helpers/specification.d.ts +7 -4
- package/lib/types/helpers/specification.d.ts.map +1 -1
- package/lib/types/types.d.ts +12 -305
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +30 -17
- package/styles/default.css +752 -658
- package/styles/default.min.css +3 -3
- package/lib/cjs/containers/Servers/ServerSecurity.js +0 -101
- package/lib/cjs/containers/Servers/ServerSecurity.js.map +0 -1
- package/lib/cjs/helpers/bemClasses.js +0 -49
- package/lib/cjs/helpers/bemClasses.js.map +0 -1
- package/lib/cjs/helpers/toKebabCase.js +0 -15
- package/lib/cjs/helpers/toKebabCase.js.map +0 -1
- package/lib/esm/containers/Servers/ServerSecurity.js +0 -95
- package/lib/esm/containers/Servers/ServerSecurity.js.map +0 -1
- package/lib/esm/helpers/bemClasses.js +0 -46
- package/lib/esm/helpers/bemClasses.js.map +0 -1
- package/lib/esm/helpers/toKebabCase.js +0 -11
- package/lib/esm/helpers/toKebabCase.js.map +0 -1
- package/lib/types/containers/Servers/ServerSecurity.d.ts +0 -8
- package/lib/types/containers/Servers/ServerSecurity.d.ts.map +0 -1
- package/lib/types/helpers/bemClasses.d.ts +0 -14
- package/lib/types/helpers/bemClasses.d.ts.map +0 -1
- package/lib/types/helpers/toKebabCase.d.ts +0 -2
- package/lib/types/helpers/toKebabCase.d.ts.map +0 -1
|
@@ -1,57 +1,105 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
1
12
|
import React from 'react';
|
|
2
13
|
import { Message } from '../Messages/Message';
|
|
14
|
+
import { Security } from '../Servers/Security';
|
|
3
15
|
import { Href, Markdown, Schema, Bindings, Tags, Extensions, } from '../../components';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
16
|
+
import { useConfig } from '../../contexts';
|
|
17
|
+
import { CommonHelpers, SchemaHelpers } from '../../helpers';
|
|
18
|
+
import { EXTERAL_DOCUMENTATION_TEXT, PUBLISH_LABEL_DEFAULT_TEXT, SUBSCRIBE_LABEL_DEFAULT_TEXT, } from '../../constants';
|
|
6
19
|
import { PayloadType } from '../../types';
|
|
7
|
-
export var Operation = function (
|
|
8
|
-
var
|
|
9
|
-
|
|
20
|
+
export var Operation = function (props) {
|
|
21
|
+
var config = useConfig();
|
|
22
|
+
var _a = props.type, type = _a === void 0 ? PayloadType.PUBLISH : _a, operation = props.operation, channelName = props.channelName, channel = props.channel;
|
|
23
|
+
if (!operation || !channel) {
|
|
10
24
|
return null;
|
|
11
25
|
}
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var parameters =
|
|
15
|
-
|
|
16
|
-
|
|
26
|
+
var servers = typeof channel.servers === 'function' && channel.servers().all();
|
|
27
|
+
var security = typeof operation.security === 'function' && operation.security();
|
|
28
|
+
var parameters = channel.parameters() !== undefined
|
|
29
|
+
? SchemaHelpers.parametersToSchema(channel.parameters())
|
|
30
|
+
: undefined;
|
|
31
|
+
return (React.createElement("div", null,
|
|
17
32
|
React.createElement("div", { className: "panel-item--center px-8" },
|
|
18
|
-
React.createElement(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
channel.hasDescription() && (React.createElement("div", { className: "mt-2" },
|
|
26
|
-
React.createElement(Markdown, null, channel.description()))),
|
|
27
|
-
operationSummary && (React.createElement("p", { className: "text-gray-600 text-sm mt-2" }, operationSummary)),
|
|
28
|
-
operation.hasDescription() && (React.createElement("div", { className: "mt-2" },
|
|
29
|
-
React.createElement(Markdown, null, operation.description()))),
|
|
30
|
-
externalDocs && (React.createElement("ul", { className: "leading-normal mt-2 mb-4 space-x-2 space-y-2" }, externalDocs && (React.createElement("li", { className: "inline-block" },
|
|
31
|
-
React.createElement(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() },
|
|
32
|
-
React.createElement("span", null, EXTERAL_DOCUMENTATION_TEXT)))))),
|
|
33
|
-
operationId && (React.createElement("div", { className: "border bg-gray-100 rounded px-4 py-2 mt-2" },
|
|
34
|
-
React.createElement("div", { className: "text-sm text-gray-700" },
|
|
35
|
-
"Operation ID",
|
|
36
|
-
React.createElement("span", { className: "border text-orange-600 rounded text-xs ml-2 py-0 px-2" }, operationId)))),
|
|
37
|
-
parameters && (React.createElement("div", { className: "mt-2" },
|
|
33
|
+
React.createElement(OperationInfo, __assign({}, props)),
|
|
34
|
+
servers && servers.length > 0 ? (React.createElement("div", { className: "mt-2 text-sm" },
|
|
35
|
+
React.createElement("p", null, "Available only on servers:"),
|
|
36
|
+
React.createElement("ul", { className: "flex flex-wrap leading-normal" }, servers.map(function (server) { return (React.createElement("li", { className: "inline-block mt-2 mr-2", key: server.id() },
|
|
37
|
+
React.createElement("a", { href: "#".concat(CommonHelpers.getIdentifier('server-' + server.id(), 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" },
|
|
38
|
+
React.createElement("span", { className: "underline" }, server.id())))); })))) : null,
|
|
39
|
+
parameters && (React.createElement("div", { className: "mt-2", id: CommonHelpers.getIdentifier("operation-".concat(type, "-").concat(channelName, "-parameters"), config) },
|
|
38
40
|
React.createElement(Schema, { schemaName: "Parameters", schema: parameters, expanded: true }))),
|
|
39
|
-
|
|
40
|
-
React.createElement(
|
|
41
|
-
channel.
|
|
42
|
-
React.createElement(Bindings, { name: "Channel
|
|
43
|
-
React.createElement(Extensions, { item:
|
|
44
|
-
operation.
|
|
41
|
+
security && (React.createElement("div", { className: "mt-2", id: CommonHelpers.getIdentifier("operation-".concat(type, "-").concat(channelName, "-security"), config) },
|
|
42
|
+
React.createElement(Security, { security: security, header: "Additional security requirements" }))),
|
|
43
|
+
channel.bindings() && (React.createElement("div", { className: "mt-2" },
|
|
44
|
+
React.createElement(Bindings, { name: "Channel specific information", bindings: channel.bindings() }))),
|
|
45
|
+
React.createElement(Extensions, { name: "Channel Extensions", item: channel }),
|
|
46
|
+
operation.bindings() && (React.createElement("div", { className: "mt-2" },
|
|
47
|
+
React.createElement(Bindings, { name: "Operation specific information", bindings: operation.bindings() }))),
|
|
48
|
+
React.createElement(Extensions, { name: "Operation Extensions", item: operation }),
|
|
49
|
+
operation.tags() && (React.createElement("div", { className: "mt-2" },
|
|
45
50
|
React.createElement(Tags, { tags: operation.tags() })))),
|
|
46
|
-
React.createElement("div", { className: "w-full mt-4" }, operation.
|
|
51
|
+
React.createElement("div", { className: "w-full mt-4", id: CommonHelpers.getIdentifier("operation-".concat(type, "-").concat(channelName, "-message"), config) }, operation.messages().length > 1 ? (React.createElement("div", { className: "mt-2" },
|
|
47
52
|
React.createElement("p", { className: "px-8" },
|
|
48
53
|
"Accepts ",
|
|
49
54
|
React.createElement("strong", null, "one of"),
|
|
50
55
|
" the following messages:"),
|
|
51
|
-
React.createElement("ul", null, operation
|
|
56
|
+
React.createElement("ul", null, operation
|
|
57
|
+
.messages()
|
|
58
|
+
.all()
|
|
59
|
+
.map(function (msg, idx) { return (React.createElement("li", { className: "mt-4", key: idx },
|
|
52
60
|
React.createElement(Message, { message: msg, index: idx, showExamples: true }))); })))) : (React.createElement("div", { className: "mt-2" },
|
|
53
61
|
React.createElement("p", { className: "px-8" }, "Accepts the following message:"),
|
|
54
62
|
React.createElement("div", { className: "mt-2" },
|
|
55
|
-
React.createElement(Message, { message: operation.
|
|
63
|
+
React.createElement(Message, { message: operation.messages().all()[0], showExamples: true })))))));
|
|
64
|
+
};
|
|
65
|
+
function getTypeInformation(_a) {
|
|
66
|
+
var _b, _c;
|
|
67
|
+
var _d = _a.type, type = _d === void 0 ? PayloadType.PUBLISH : _d, config = _a.config;
|
|
68
|
+
if (type === PayloadType.SUBSCRIBE) {
|
|
69
|
+
return {
|
|
70
|
+
borderColor: 'border-green-600 text-green-600',
|
|
71
|
+
typeLabel: (_b = config.subscribeLabel) !== null && _b !== void 0 ? _b : SUBSCRIBE_LABEL_DEFAULT_TEXT,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
borderColor: 'border-blue-600 text-blue-500',
|
|
76
|
+
typeLabel: (_c = config.publishLabel) !== null && _c !== void 0 ? _c : PUBLISH_LABEL_DEFAULT_TEXT,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export var OperationInfo = function (props) {
|
|
80
|
+
var _a = props.type, type = _a === void 0 ? PayloadType.PUBLISH : _a, operation = props.operation, channelName = props.channelName, channel = props.channel;
|
|
81
|
+
var config = useConfig();
|
|
82
|
+
var operationSummary = operation.summary();
|
|
83
|
+
var externalDocs = operation.externalDocs();
|
|
84
|
+
var operationId = operation.id();
|
|
85
|
+
var _b = getTypeInformation({ type: type, config: config }), borderColor = _b.borderColor, typeLabel = _b.typeLabel;
|
|
86
|
+
return (React.createElement(React.Fragment, null,
|
|
87
|
+
React.createElement("div", { className: "mb-4" },
|
|
88
|
+
React.createElement("h3", null,
|
|
89
|
+
React.createElement("span", { className: "font-mono border uppercase p-1 rounded mr-2 ".concat(borderColor), title: type }, typeLabel),
|
|
90
|
+
' ',
|
|
91
|
+
React.createElement("span", { className: "font-mono text-base" }, channelName))),
|
|
92
|
+
channel.hasDescription() && (React.createElement("div", { className: "mt-2" },
|
|
93
|
+
React.createElement(Markdown, null, channel.description()))),
|
|
94
|
+
operationSummary && (React.createElement("p", { className: "text-gray-600 text-sm mt-2" }, operationSummary)),
|
|
95
|
+
operation.hasDescription() && (React.createElement("div", { className: "mt-2" },
|
|
96
|
+
React.createElement(Markdown, null, operation.description()))),
|
|
97
|
+
externalDocs && (React.createElement("ul", { className: "leading-normal mt-2 mb-4 space-x-2 space-y-2" }, externalDocs && (React.createElement("li", { className: "inline-block" },
|
|
98
|
+
React.createElement(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() },
|
|
99
|
+
React.createElement("span", null, EXTERAL_DOCUMENTATION_TEXT)))))),
|
|
100
|
+
operationId && (React.createElement("div", { className: "border bg-gray-100 rounded px-4 py-2 mt-2" },
|
|
101
|
+
React.createElement("div", { className: "text-sm text-gray-700" },
|
|
102
|
+
"Operation ID",
|
|
103
|
+
React.createElement("span", { className: "border text-orange-600 rounded text-xs ml-2 py-0 px-2" }, operationId))))));
|
|
56
104
|
};
|
|
57
105
|
//# 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 { ChannelInterface, OperationInterface } 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 {\n EXTERAL_DOCUMENTATION_TEXT,\n PUBLISH_LABEL_DEFAULT_TEXT,\n SUBSCRIBE_LABEL_DEFAULT_TEXT,\n} from '../../constants';\nimport { PayloadType } from '../../types';\nimport { ConfigInterface } from '../../config/config';\ninterface Props {\n type: PayloadType;\n operation: OperationInterface;\n channelName: string;\n channel: ChannelInterface;\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 =\n typeof channel.servers === 'function' && channel.servers().all();\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 =\n channel.parameters() !== undefined\n ? SchemaHelpers.parametersToSchema(channel.parameters())\n : undefined;\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.id()}>\n <a\n href={`#${CommonHelpers.getIdentifier(\n 'server-' + server.id(),\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.id()}</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.bindings() && (\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.bindings() && (\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.tags() && (\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.messages().length > 1 ? (\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\n .messages()\n .all()\n .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.messages().all()[0]}\n showExamples={true}\n />\n </div>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nfunction getTypeInformation({\n type = PayloadType.PUBLISH,\n config,\n}: {\n type: PayloadType;\n config: ConfigInterface;\n}): { borderColor: string; typeLabel: string } {\n if (type === PayloadType.SUBSCRIBE) {\n return {\n borderColor: 'border-green-600 text-green-600',\n typeLabel: config.subscribeLabel ?? SUBSCRIBE_LABEL_DEFAULT_TEXT,\n };\n }\n // type === PayloadType.PUBLISH\n return {\n borderColor: 'border-blue-600 text-blue-500',\n typeLabel: config.publishLabel ?? PUBLISH_LABEL_DEFAULT_TEXT,\n };\n}\n\nexport const OperationInfo: React.FunctionComponent<Props> = props => {\n const { type = PayloadType.PUBLISH, operation, channelName, channel } = props;\n const config = useConfig();\n const operationSummary = operation.summary();\n const externalDocs = operation.externalDocs();\n const operationId = operation.id();\n const { borderColor, typeLabel } = getTypeInformation({ type, config });\n\n return (\n <>\n <div className=\"mb-4\">\n <h3>\n <span\n className={`font-mono border uppercase p-1 rounded mr-2 ${borderColor}`}\n title={type}\n >\n {typeLabel}\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"]}
|
|
@@ -1,26 +1,32 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Operation } from './Operation';
|
|
3
|
-
import { useSpec } from '../../contexts';
|
|
4
|
-
import {
|
|
3
|
+
import { useConfig, useSpec } from '../../contexts';
|
|
4
|
+
import { CommonHelpers } from '../../helpers';
|
|
5
5
|
import { OPERATIONS_TEXT } from '../../constants';
|
|
6
|
+
import { PayloadType } from '../../types';
|
|
6
7
|
export var Operations = function () {
|
|
7
|
-
var
|
|
8
|
-
|
|
8
|
+
var operations = useSpec()
|
|
9
|
+
.operations()
|
|
10
|
+
.all();
|
|
11
|
+
var config = useConfig();
|
|
12
|
+
if (!Object.keys(operations).length) {
|
|
9
13
|
return null;
|
|
10
14
|
}
|
|
11
15
|
var operationsList = [];
|
|
12
|
-
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
operations.forEach(function (operation) {
|
|
17
|
+
var _a;
|
|
18
|
+
var channel = operation.channels().all()[0];
|
|
19
|
+
var channelAddress = (_a = channel === null || channel === void 0 ? void 0 : channel.address()) !== null && _a !== void 0 ? _a : '';
|
|
20
|
+
if (operation.isSend()) {
|
|
21
|
+
operationsList.push(React.createElement("li", { className: "mb-12", key: "pub-".concat(operation.id()), id: CommonHelpers.getIdentifier("operation-".concat(PayloadType.PUBLISH, "-").concat(operation.id()), config) },
|
|
22
|
+
React.createElement(Operation, { type: PayloadType.PUBLISH, operation: operation, channelName: channelAddress, channel: channel })));
|
|
17
23
|
}
|
|
18
|
-
if (
|
|
19
|
-
operationsList.push(React.createElement("li", { className: "mb-12", key: "sub-"
|
|
20
|
-
React.createElement(Operation, { type: PayloadType.SUBSCRIBE, operation:
|
|
24
|
+
if (operation.isReceive()) {
|
|
25
|
+
operationsList.push(React.createElement("li", { className: "mb-12", key: "sub-".concat(operation.id()), id: CommonHelpers.getIdentifier("operation-".concat(PayloadType.SUBSCRIBE, "-").concat(operation.id()), config) },
|
|
26
|
+
React.createElement(Operation, { type: PayloadType.SUBSCRIBE, operation: operation, channelName: channelAddress, channel: channel })));
|
|
21
27
|
}
|
|
22
28
|
});
|
|
23
|
-
return (React.createElement("section", { id: "operations
|
|
29
|
+
return (React.createElement("section", { id: "".concat(CommonHelpers.getIdentifier('operations', config)), className: "mt-16" },
|
|
24
30
|
React.createElement("h2", { className: "2xl:w-7/12 text-3xl font-light mb-4 px-8" }, OPERATIONS_TEXT),
|
|
25
31
|
React.createElement("ul", null, operationsList)));
|
|
26
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Operations.js","sourceRoot":"","sources":["../../../../src/containers/Operations/Operations.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Operations.js","sourceRoot":"","sources":["../../../../src/containers/Operations/Operations.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,IAAM,UAAU,GAA4B;IACjD,IAAM,UAAU,GAAG,OAAO,EAAE;SACzB,UAAU,EAAE;SACZ,GAAG,EAAE,CAAC;IACT,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE;QACnC,OAAO,IAAI,CAAC;KACb;IAED,IAAM,cAAc,GAAyB,EAAE,CAAC;IAChD,UAAU,CAAC,OAAO,CAAC,UAAA,SAAS;;QAC1B,IAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAM,cAAc,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,EAAE,mCAAI,EAAE,CAAC;QAChD,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE;YACtB,cAAc,CAAC,IAAI,CACjB,4BACE,SAAS,EAAC,OAAO,EACjB,GAAG,EAAE,cAAO,SAAS,CAAC,EAAE,EAAE,CAAE,EAC5B,EAAE,EAAE,aAAa,CAAC,aAAa,CAC7B,oBAAa,WAAW,CAAC,OAAO,cAAI,SAAS,CAAC,EAAE,EAAE,CAAE,EACpD,MAAM,CACP;gBAED,oBAAC,SAAS,IACR,IAAI,EAAE,WAAW,CAAC,OAAO,EACzB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,cAAc,EAC3B,OAAO,EAAE,OAAO,GAChB,CACC,CACN,CAAC;SACH;QACD,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE;YACzB,cAAc,CAAC,IAAI,CACjB,4BACE,SAAS,EAAC,OAAO,EACjB,GAAG,EAAE,cAAO,SAAS,CAAC,EAAE,EAAE,CAAE,EAC5B,EAAE,EAAE,aAAa,CAAC,aAAa,CAC7B,oBAAa,WAAW,CAAC,SAAS,cAAI,SAAS,CAAC,EAAE,EAAE,CAAE,EACtD,MAAM,CACP;gBAED,oBAAC,SAAS,IACR,IAAI,EAAE,WAAW,CAAC,SAAS,EAC3B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,cAAc,EAC3B,OAAO,EAAE,OAAO,GAChB,CACC,CACN,CAAC;SACH;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,iCACE,EAAE,EAAE,UAAG,aAAa,CAAC,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,CAAE,EAC1D,SAAS,EAAC,OAAO;QAEjB,4BAAI,SAAS,EAAC,0CAA0C,IACrD,eAAe,CACb;QACL,gCAAK,cAAc,CAAM,CACjB,CACX,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { Operation } from './Operation';\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 operations = useSpec()\n .operations()\n .all();\n const config = useConfig();\n\n if (!Object.keys(operations).length) {\n return null;\n }\n\n const operationsList: React.ReactNodeArray = [];\n operations.forEach(operation => {\n const channel = operation.channels().all()[0];\n const channelAddress = channel?.address() ?? '';\n if (operation.isSend()) {\n operationsList.push(\n <li\n className=\"mb-12\"\n key={`pub-${operation.id()}`}\n id={CommonHelpers.getIdentifier(\n `operation-${PayloadType.PUBLISH}-${operation.id()}`,\n config,\n )}\n >\n <Operation\n type={PayloadType.PUBLISH}\n operation={operation}\n channelName={channelAddress}\n channel={channel}\n />\n </li>,\n );\n }\n if (operation.isReceive()) {\n operationsList.push(\n <li\n className=\"mb-12\"\n key={`sub-${operation.id()}`}\n id={CommonHelpers.getIdentifier(\n `operation-${PayloadType.SUBSCRIBE}-${operation.id()}`,\n config,\n )}\n >\n <Operation\n type={PayloadType.SUBSCRIBE}\n operation={operation}\n channelName={channelAddress}\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,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Schema as SchemaComponent } from '../../components';
|
|
3
|
+
export var Schema = function (_a) {
|
|
4
|
+
var schemaName = _a.schemaName, schema = _a.schema;
|
|
5
|
+
if (!schema) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
return (React.createElement("div", null,
|
|
9
|
+
React.createElement("div", { className: "panel-item--center px-8" },
|
|
10
|
+
React.createElement("div", { className: "shadow rounded px-4 py-2 border bg-gray-200" },
|
|
11
|
+
React.createElement(SchemaComponent, { schemaName: schemaName, schema: schema }))),
|
|
12
|
+
React.createElement("div", { className: "w-full mt-4" })));
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=Schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../../src/containers/Schemas/Schema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAO7D,MAAM,CAAC,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,6BAAK,SAAS,EAAC,yBAAyB;YACtC,6BAAK,SAAS,EAAC,6CAA6C;gBAC1D,oBAAC,eAAe,IAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAI,CACvD,CACF;QAEN,6BAAK,SAAS,EAAC,aAAa,GAAG,CAC3B,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { SchemaInterface } from '@asyncapi/parser';\n\nimport { Schema as SchemaComponent } from '../../components';\n\ninterface Props {\n schemaName: string;\n schema: SchemaInterface;\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,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Schema } from './Schema';
|
|
3
|
+
import { useConfig, useSpec } from '../../contexts';
|
|
4
|
+
import { CommonHelpers } from '../../helpers';
|
|
5
|
+
import { SCHEMAS_TEXT } from '../../constants';
|
|
6
|
+
export var Schemas = function () {
|
|
7
|
+
var asyncapi = useSpec();
|
|
8
|
+
var config = useConfig();
|
|
9
|
+
var schemas = !asyncapi.components().isEmpty() &&
|
|
10
|
+
asyncapi
|
|
11
|
+
.components()
|
|
12
|
+
.schemas()
|
|
13
|
+
.all();
|
|
14
|
+
if (!schemas || schemas.length === 0) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return (React.createElement("section", { id: "".concat(CommonHelpers.getIdentifier('schemas', config)), className: "mt-16" },
|
|
18
|
+
React.createElement("h2", { className: "2xl:w-7/12 text-3xl font-light mb-4 px-8" }, SCHEMAS_TEXT),
|
|
19
|
+
React.createElement("ul", null, schemas.map(function (schema) { return (React.createElement("li", { className: "mb-4", key: schema.id(), id: CommonHelpers.getIdentifier("schema-".concat(schema.id()), config) },
|
|
20
|
+
React.createElement(Schema, { schemaName: schema.id(), schema: schema }))); }))));
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=Schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Schemas.js","sourceRoot":"","sources":["../../../../src/containers/Schemas/Schemas.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,QAAQ,GAAG,OAAO,EAAE,CAAC;IAC3B,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAM,OAAO,GACX,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;QAChC,QAAQ;aACL,UAAU,EAAE;aACZ,OAAO,EAAE;aACT,GAAG,EAAE,CAAC;IAEX,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACpC,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,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,CACrB,4BACE,SAAS,EAAC,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,EAChB,EAAE,EAAE,aAAa,CAAC,aAAa,CAAC,iBAAU,MAAM,CAAC,EAAE,EAAE,CAAE,EAAE,MAAM,CAAC;YAEhE,oBAAC,MAAM,IAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,GAAI,CAChD,CACN,EARsB,CAQtB,CAAC,CACC,CACG,CACX,CAAC;AACJ,CAAC,CAAC","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 =\n !asyncapi.components().isEmpty() &&\n asyncapi\n .components()\n .schemas()\n .all();\n\n if (!schemas || 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 {schemas.map(schema => (\n <li\n className=\"mb-4\"\n key={schema.id()}\n id={CommonHelpers.getIdentifier(`schema-${schema.id()}`, config)}\n >\n <Schema schemaName={schema.id()} schema={schema} />\n </li>\n ))}\n </ul>\n </section>\n );\n};\n"]}
|
|
@@ -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 {
|
|
3
|
-
import { Markdown, Schema, Bindings } from '../../components';
|
|
4
|
-
import {
|
|
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
|
|
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()
|
|
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
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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,
|
|
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,21 @@
|
|
|
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
|
-
var servers = useSpec()
|
|
7
|
-
|
|
7
|
+
var servers = useSpec()
|
|
8
|
+
.servers()
|
|
9
|
+
.all();
|
|
10
|
+
var config = useConfig();
|
|
11
|
+
if (!servers.length) {
|
|
8
12
|
return null;
|
|
9
13
|
}
|
|
10
|
-
return (React.createElement("section", { id: "servers
|
|
14
|
+
return (React.createElement("section", { id: "".concat(CommonHelpers.getIdentifier('servers', config)), className: "mt-16" },
|
|
11
15
|
React.createElement("h2", { className: "2xl:w-7/12 text-3xl font-light mb-4 px-8" }, SERVERS_TEXT),
|
|
12
|
-
React.createElement("ul", null,
|
|
13
|
-
var serverName =
|
|
14
|
-
return (React.createElement("li", { className: "mb-4", key: serverName },
|
|
16
|
+
React.createElement("ul", null, servers.map(function (server) {
|
|
17
|
+
var serverName = server.id();
|
|
18
|
+
return (React.createElement("li", { className: "mb-4", key: serverName, id: "".concat(CommonHelpers.getIdentifier("server-".concat(serverName), config)) },
|
|
15
19
|
React.createElement(Server, { serverName: serverName, server: server, key: serverName })));
|
|
16
20
|
}))));
|
|
17
21
|
};
|