@asyncapi/react-component 1.3.8 → 1.4.1
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/browser/index.js +6 -30
- package/browser/index.js.LICENSE.txt +1 -1
- package/browser/standalone/index.js +6 -30
- package/browser/standalone/index.js.LICENSE.txt +1 -1
- package/browser/standalone/without-parser.js +3 -9
- package/browser/standalone/without-parser.js.LICENSE.txt +1 -1
- package/browser/without-parser.js +3 -9
- package/browser/without-parser.js.LICENSE.txt +1 -1
- package/lib/cjs/containers/AsyncApi/AsyncApi.js +1 -1
- package/lib/cjs/containers/AsyncApi/Standalone.js +1 -1
- package/lib/cjs/containers/Servers/Security.js +2 -2
- package/lib/cjs/containers/Servers/Security.js.map +1 -1
- package/lib/cjs/helpers/message.js.map +1 -1
- package/lib/cjs/helpers/parser.js +1 -1
- package/lib/cjs/helpers/schema.js +1 -1
- package/lib/cjs/helpers/schema.js.map +1 -1
- package/lib/cjs/helpers/specification.js +2 -2
- package/lib/cjs/helpers/specification.js.map +1 -1
- package/lib/esm/containers/AsyncApi/AsyncApi.js +1 -1
- package/lib/esm/containers/AsyncApi/Standalone.js +1 -1
- package/lib/esm/containers/Servers/Security.js +2 -2
- package/lib/esm/containers/Servers/Security.js.map +1 -1
- package/lib/esm/helpers/message.js.map +1 -1
- package/lib/esm/helpers/parser.js +1 -1
- package/lib/esm/helpers/schema.js +1 -1
- package/lib/esm/helpers/schema.js.map +1 -1
- package/lib/esm/helpers/specification.js +2 -2
- package/lib/esm/helpers/specification.js.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/Standalone.d.ts +2 -2
- package/lib/types/containers/AsyncApi/Standalone.d.ts.map +1 -1
- package/lib/types/helpers/schema.d.ts +1 -1
- package/lib/types/helpers/schema.d.ts.map +1 -1
- package/lib/types/helpers/specification.d.ts +1 -3
- package/lib/types/helpers/specification.d.ts.map +1 -1
- package/lib/types/types.d.ts +2 -2
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/styles/default.css +26 -42
- package/styles/default.min.css +1 -1
|
@@ -68,7 +68,7 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
|
68
68
|
PERFORMANCE OF THIS SOFTWARE.
|
|
69
69
|
***************************************************************************** */
|
|
70
70
|
|
|
71
|
-
/*! @license DOMPurify 2.
|
|
71
|
+
/*! @license DOMPurify 2.4.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.7/LICENSE */
|
|
72
72
|
|
|
73
73
|
/*! https://mths.be/punycode v1.4.0 by @mathias */
|
|
74
74
|
|
|
@@ -52,7 +52,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
52
52
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
53
53
|
function step(op) {
|
|
54
54
|
if (f) throw new TypeError("Generator is already executing.");
|
|
55
|
-
while (_) try {
|
|
55
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
56
56
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
57
57
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
58
58
|
switch (op[0]) {
|
|
@@ -63,7 +63,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
63
63
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
64
64
|
function step(op) {
|
|
65
65
|
if (f) throw new TypeError("Generator is already executing.");
|
|
66
|
-
while (_) try {
|
|
66
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
67
67
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
68
68
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
69
69
|
switch (op[0]) {
|
|
@@ -25,8 +25,8 @@ var Security = function (_a) {
|
|
|
25
25
|
.map(function (requirement) {
|
|
26
26
|
var requirements = requirement.all();
|
|
27
27
|
var key = Object.keys(requirements)[0];
|
|
28
|
-
var def = securitySchemes[
|
|
29
|
-
var requiredScopes = requirements[
|
|
28
|
+
var def = securitySchemes[Number(key)];
|
|
29
|
+
var requiredScopes = requirements[Number(key)];
|
|
30
30
|
if (!def) {
|
|
31
31
|
return null;
|
|
32
32
|
}
|
|
@@ -1 +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?.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?.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
|
+
{"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?.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[Number(key)];\n const requiredScopes: any = requirements[Number(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?.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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/helpers/message.ts"],"names":[],"mappings":";;;AAEA,mDAAyC;AAIzC;IAAA;IAoFA,CAAC;IAnFQ,8BAAe,GAAtB,UAAuB,MAAW,EAAE,OAAiB;QAAjB,wBAAA,EAAA,YAAiB;QACnD,IAAI;YACF,OAAO,IAAI,CAAC,eAAe,CAAC,IAAA,wBAAM,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;SAC5D;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,EAAE,CAAC;SACX;IACH,CAAC;IAEM,8BAAe,GAAtB,UAAuB,MAAW;QAAlC,iBAaC;QAZC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAClE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,EAAwB;oBAAvB,YAAY,QAAA,EAAE,QAAQ,QAAA;gBAChE,IACE,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC;oBACrC,CAAC,YAAY,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAC7C;oBACA,GAAG,CAAC,YAAY,CAAC,GAAG,KAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;iBACpD;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/helpers/message.ts"],"names":[],"mappings":"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","sourcesContent":["import { MessageInterface } from '@asyncapi/parser';\n// @ts-ignore\nimport { sample } from 'openapi-sampler';\n\nimport { MessageExample } from '../types';\n\nexport class MessageHelpers {\n static generateExample(schema: any, options: any = {}) {\n try {\n return this.sanitizeExample(sample(schema, options)) || '';\n } catch (e) {\n return '';\n }\n }\n\n static sanitizeExample(schema: any): any {\n if (typeof schema === 'object' && schema && !Array.isArray(schema)) {\n return Object.entries(schema).reduce((obj, [propertyName, property]) => {\n if (\n !propertyName.startsWith('x-parser-') &&\n !propertyName.startsWith('x-schema-private-')\n ) {\n obj[propertyName] = this.sanitizeExample(property);\n }\n return obj;\n }, {} as Record<string, unknown>);\n }\n return schema;\n }\n\n static getPayloadExamples(\n msg: MessageInterface,\n ): MessageExample[] | undefined {\n const examples = msg.examples().all();\n\n if (examples.some(e => e.hasPayload())) {\n const messageExamples = examples\n .flatMap(e => {\n if (!e.payload()) {\n return;\n }\n return {\n name: e.name(),\n summary: e.summary(),\n example: e.payload(),\n };\n })\n .filter(Boolean) as MessageExample[];\n\n if (messageExamples.length > 0) {\n return messageExamples;\n }\n }\n\n const payload = msg.payload();\n if (payload?.examples()) {\n return payload.examples()?.map(example => ({ example }));\n }\n return;\n }\n\n static getHeadersExamples(\n msg: MessageInterface,\n ): MessageExample[] | undefined {\n const examples = msg.examples().all();\n if (examples.some(e => e.hasHeaders())) {\n const messageExamples = examples\n .flatMap(e => {\n if (!e.hasHeaders()) {\n return;\n }\n return {\n name: e.name(),\n summary: e.summary(),\n example: e.headers(),\n };\n })\n .filter(Boolean) as MessageExample[];\n\n if (messageExamples.length > 0) {\n return messageExamples;\n }\n }\n\n const headers = msg.headers();\n if (headers?.examples()) {\n return headers.examples()?.map(example => ({ example }));\n }\n return undefined;\n }\n}\n"]}
|
|
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
18
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
19
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
20
|
switch (op[0]) {
|
|
@@ -267,7 +267,7 @@ var SchemaHelpers = (function () {
|
|
|
267
267
|
type: 'object',
|
|
268
268
|
properties: Object.entries(records).reduce(function (obj, _a) {
|
|
269
269
|
var propertyName = _a[0], propertySchema = _a[1];
|
|
270
|
-
obj[propertyName] = __assign({},
|
|
270
|
+
obj[propertyName] = __assign({}, propertySchema.json());
|
|
271
271
|
return obj;
|
|
272
272
|
}, {})
|
|
273
273
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/helpers/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n SchemaInterface,\n ChannelParametersInterface,\n ServerVariablesInterface,\n SchemaV2 as SchemaClass,\n ExtensionInterface,\n ExtensionsInterface,\n} from '@asyncapi/parser';\n\nexport enum SchemaCustomTypes {\n // for `true` and `{}` schemas\n ANY = 'any',\n // for schemas without `type` keyword\n RESTRICTED_ANY = 'restricted any',\n // for `false` and `{ not: {}, ... }` schemas\n NEVER = 'never',\n // for types that we cannot infer\n UNKNOWN = 'unknown',\n}\n\nconst jsonSchemaTypes = [\n 'string',\n 'number',\n 'integer',\n 'boolean',\n 'array',\n 'object',\n 'null',\n];\nconst jsonSchemaKeywordTypes: Record<string, string> = {\n // string\n maxLength: 'string',\n minLength: 'string',\n pattern: 'string',\n contentMediaType: 'string',\n contentEncoding: 'string',\n // number\n multipleOf: 'number',\n maximum: 'number',\n exclusiveMaximum: 'number',\n minimum: 'number',\n exclusiveMinimum: 'number',\n // array\n items: 'array',\n maxItems: 'array',\n minItems: 'array',\n uniqueItems: 'array',\n contains: 'array',\n additionalItems: 'array',\n // object\n maxProperties: 'object',\n minProperties: 'object',\n required: 'object',\n properties: 'object',\n patternProperties: 'object',\n propertyNames: 'object',\n dependencies: 'object',\n additionalProperties: 'object',\n};\nconst jsonSchemaKeywords = Object.keys(jsonSchemaKeywordTypes);\n\nexport class SchemaHelpers {\n static extRenderAdditionalInfo = 'x-schema-private-render-additional-info';\n static extRawValue = 'x-schema-private-raw-value';\n static extParameterLocation = 'x-schema-private-parameter-location';\n\n static toSchemaType(schema: SchemaInterface): string {\n if (!schema || typeof schema.json !== 'function') {\n return SchemaCustomTypes.UNKNOWN;\n }\n if (schema.isBooleanSchema()) {\n if (schema.json() === true) {\n return SchemaCustomTypes.ANY;\n } else {\n return SchemaCustomTypes.NEVER;\n }\n }\n // handle case with `{}` schemas\n if (Object.keys(schema.json()).length === 0) {\n return SchemaCustomTypes.ANY;\n }\n // handle case with `{ not: {}, ... }` schemas\n const not = schema.not();\n if (not && this.inferType(not) === SchemaCustomTypes.ANY) {\n return SchemaCustomTypes.NEVER;\n }\n\n let type = this.inferType(schema);\n if (Array.isArray(type)) {\n return type.map(t => this.toType(t, schema)).join(' | ');\n }\n type = this.toType(type, schema);\n const combinedType = this.toCombinedType(schema);\n\n if (type && combinedType) {\n return `${type} ${combinedType}`;\n }\n if (combinedType) {\n return combinedType;\n }\n\n if (type === 'object' && schema.title()) {\n type += ' [' + schema.title() + ']';\n }\n return type;\n }\n\n static applicatorSchemaName(\n idx: number,\n firstCase: string,\n otherCases: string,\n title?: string,\n ) {\n const suffix = title ? ` ${title}:` : ':';\n if (idx === 0) {\n return `${firstCase}${suffix}`;\n } else {\n return `${otherCases}${suffix}`;\n }\n }\n\n static prettifyValue(value: any, strict = true): string {\n const typeOf = typeof value;\n if (typeOf === 'string') {\n return strict ? `\"${value}\"` : value;\n }\n if (typeOf === 'number' || typeOf === 'bigint' || typeOf === 'boolean') {\n return `${value}`;\n }\n if (Array.isArray(value)) {\n return `[${value.toString()}]`;\n }\n return JSON.stringify(value);\n }\n\n static humanizeConstraints(schema: SchemaInterface): string[] {\n const constraints: string[] = [];\n\n // related to number/integer\n const numberRange = this.humanizeNumberRangeConstraint(\n schema.minimum(),\n schema.exclusiveMinimum(),\n schema.maximum(),\n schema.exclusiveMaximum(),\n );\n if (numberRange !== undefined) {\n constraints.push(numberRange);\n }\n const multipleOfConstraint = this.humanizeMultipleOfConstraint(\n schema.multipleOf(),\n );\n if (multipleOfConstraint !== undefined) {\n constraints.push(multipleOfConstraint);\n }\n\n // related to string\n const stringRange = this.humanizeRangeConstraint(\n 'characters',\n schema.minLength(),\n schema.maxLength(),\n );\n if (stringRange !== undefined) {\n constraints.push(stringRange);\n }\n\n // related to array\n const hasUniqueItems = schema.uniqueItems();\n const arrayRange = this.humanizeRangeConstraint(\n hasUniqueItems ? 'unique items' : 'items',\n schema.minItems(),\n schema.maxItems(),\n );\n if (arrayRange !== undefined) {\n constraints.push(arrayRange);\n }\n\n // related to object\n const objectRange = this.humanizeRangeConstraint(\n 'properties',\n schema.minProperties(),\n schema.maxProperties(),\n );\n if (objectRange !== undefined) {\n constraints.push(objectRange);\n }\n\n return constraints;\n }\n\n static isExpandable(schema: SchemaInterface): boolean {\n let type = this.inferType(schema);\n type = Array.isArray(type) ? type : [type];\n if (type.includes('object') || type.includes('array')) {\n return true;\n }\n\n if (\n schema.oneOf() ||\n schema.anyOf() ||\n schema.allOf() ||\n Object.keys(schema.properties() || {}).length > 0 ||\n schema.items() ||\n schema.not() ||\n schema.if() ||\n schema.then() ||\n schema.else()\n ) {\n return true;\n }\n\n const customExtensions = this.getCustomExtensions(schema);\n if (customExtensions && Object.keys(customExtensions).length) {\n return true;\n }\n\n return false;\n }\n\n static serverVariablesToSchema(\n urlVariables?: ServerVariablesInterface,\n ): SchemaInterface | undefined {\n if (!urlVariables || urlVariables.length === 0) {\n return undefined;\n }\n const obj = {};\n urlVariables.all().forEach(variable => {\n obj[variable.id()] = { ...(variable.json() || {}) };\n obj[variable.id()].type = 'string';\n });\n\n const json = {\n type: 'object',\n properties: obj,\n required: Object.keys(obj),\n [this.extRenderAdditionalInfo]: false,\n };\n return new SchemaClass(json as any);\n }\n\n static parametersToSchema(\n parameters?: ChannelParametersInterface,\n ): SchemaInterface | undefined {\n if (!parameters || parameters.isEmpty()) {\n return undefined;\n }\n const obj = {};\n parameters.all().forEach(parameter => {\n const parameterSchema = parameter.schema();\n obj[parameter.id()] = { ...(parameterSchema?.json() ?? {}) };\n obj[parameter.id()].description = parameter.hasDescription()\n ? parameter.description()\n : undefined;\n obj[parameter.id()][this.extParameterLocation] = parameter.hasLocation()\n ? parameter.location()\n : undefined;\n });\n\n const json = {\n type: 'object',\n properties: obj,\n required: Object.keys(obj),\n [this.extRenderAdditionalInfo]: false,\n };\n return new SchemaClass(json as any);\n }\n\n static jsonToSchema(value: any): any {\n const json = this.jsonFieldToSchema(value);\n return new SchemaClass(json);\n }\n\n /**\n * Retrieves from given value all custom extensions (value with key started by `x-`).\n * However, it skips those private extensions that begin with `x-parser-` and `x-schema-private-`.\n *\n * @param value\n */\n static getCustomExtensions(value: any) {\n if (!value || typeof value.extensions !== 'function') {\n return;\n }\n const extensions = value.extensions() as ExtensionsInterface;\n const filteredExtensions = {};\n for (const ext of extensions.all()) {\n const extType = ext as ExtensionInterface;\n if (\n !extType.id().startsWith('x-parser-') &&\n !extType.id().startsWith('x-schema-private-')\n ) {\n filteredExtensions[extType.id()] = extType.value();\n }\n }\n return filteredExtensions;\n }\n\n /**\n * Retrieves from given schema all dependent required requires by given propertyName from `dependencies` object.\n *\n * @param propertyName\n * @param schema\n */\n static getDependentRequired(\n propertyName: string,\n schema: SchemaInterface,\n ): string[] | undefined {\n const dependentRequired: string[] = [];\n const dependencies = schema.dependencies();\n if (!dependencies) {\n return;\n }\n\n for (const [prop, array] of Object.entries(dependencies)) {\n if (Array.isArray(array) && array.includes(propertyName)) {\n dependentRequired.push(prop);\n }\n }\n return dependentRequired.length ? dependentRequired : undefined;\n }\n\n /**\n * Retrieves from given schema all dependent schemas from `dependencies` object.\n *\n * @param schema\n */\n static getDependentSchemas(\n schema: SchemaInterface,\n ): SchemaInterface | undefined {\n const dependencies = schema.dependencies();\n if (!dependencies) {\n return;\n }\n\n const records: Record<string, SchemaInterface> = {};\n for (const [prop, propSchema] of Object.entries(dependencies)) {\n if (typeof propSchema === 'object' && !Array.isArray(propSchema)) {\n records[prop] = propSchema;\n }\n }\n if (!Object.keys(records).length) {\n return undefined;\n }\n\n const json = {\n type: 'object',\n properties: Object.entries(records).reduce(\n (obj, [propertyName, propertySchema]) => {\n obj[propertyName] = { ...(propertySchema.json() || {}) };\n return obj;\n },\n {},\n ),\n [this.extRenderAdditionalInfo]: false,\n };\n return new SchemaClass(json as any);\n }\n\n private static toType(type: string, schema: SchemaInterface): string {\n if (schema.isCircular()) {\n return type;\n }\n if (type === 'array') {\n const items = schema.items();\n if (Array.isArray(items)) {\n return this.toItemsType(items, schema);\n }\n if (!items) {\n return `array<${SchemaCustomTypes.ANY}>`;\n }\n return `array<${this.toSchemaType(items) || SchemaCustomTypes.UNKNOWN}>`;\n }\n return type;\n }\n\n private static toItemsType(\n items: SchemaInterface[],\n schema: SchemaInterface,\n ): string {\n const types = items.map(item => this.toSchemaType(item)).join(', ');\n const additionalItems = schema.additionalItems();\n if (additionalItems !== undefined && additionalItems !== false) {\n const additionalType =\n additionalItems === true\n ? SchemaCustomTypes.ANY\n : this.toSchemaType(additionalItems);\n return `tuple<${types ||\n SchemaCustomTypes.UNKNOWN}, ...optional<${additionalType}>>`;\n }\n return `tuple<${types || SchemaCustomTypes.UNKNOWN}>`;\n }\n\n private static toCombinedType(schema: SchemaInterface): string | undefined {\n const oneOf = schema.oneOf();\n if (oneOf) {\n return 'oneOf';\n }\n if (schema.anyOf()) {\n return 'anyOf';\n }\n if (schema.allOf()) {\n return 'allOf';\n }\n return;\n }\n\n private static inferType(schema: SchemaInterface): string[] | string {\n let types = schema.type();\n\n if (types !== undefined) {\n if (Array.isArray(types)) {\n // if types have `integer` and `number` types, `integer` is unnecessary\n if (types.includes('integer') && types.includes('number')) {\n types = types.filter(t => t !== 'integer');\n }\n return types.length === 1 ? types[0] : types;\n }\n return types;\n }\n\n const constValue = schema.const();\n if (constValue !== undefined) {\n return typeof constValue;\n }\n const enumValue = schema.enum();\n if (Array.isArray(enumValue) && enumValue.length) {\n const inferredType = Array.from(new Set(enumValue.map(e => typeof e)));\n return inferredType.length === 1 ? inferredType[0] : inferredType;\n }\n\n const schemaKeys = Object.keys(schema.json() || {}) || [];\n const hasInferredTypes = jsonSchemaKeywords.some(key =>\n schemaKeys.includes(key),\n );\n if (hasInferredTypes === true) {\n return SchemaCustomTypes.RESTRICTED_ANY;\n }\n if (this.toCombinedType(schema)) {\n return '';\n }\n return SchemaCustomTypes.ANY;\n }\n\n private static humanizeNumberRangeConstraint(\n min: number | undefined,\n exclusiveMin: number | undefined,\n max: number | undefined,\n exclusiveMax: number | undefined,\n ): string | undefined {\n const hasExclusiveMin = exclusiveMin !== undefined;\n const hasMin = min !== undefined || hasExclusiveMin;\n const hasExclusiveMax = exclusiveMax !== undefined;\n const hasMax = max !== undefined || hasExclusiveMax;\n\n let numberRange;\n if (hasMin && hasMax) {\n numberRange = hasExclusiveMin ? '( ' : '[ ';\n numberRange += hasExclusiveMin ? exclusiveMin : min;\n numberRange += ' .. ';\n numberRange += hasExclusiveMax ? exclusiveMax : max;\n numberRange += hasExclusiveMax ? ' )' : ' ]';\n } else if (hasMin) {\n numberRange = hasExclusiveMin ? '> ' : '>= ';\n numberRange += hasExclusiveMin ? exclusiveMin : min;\n } else if (hasMax) {\n numberRange = hasExclusiveMax ? '< ' : '<= ';\n numberRange += hasExclusiveMax ? exclusiveMax : max;\n }\n return numberRange;\n }\n\n private static humanizeMultipleOfConstraint(\n multipleOf: number | undefined,\n ): string | undefined {\n if (multipleOf === undefined) {\n return;\n }\n const strigifiedMultipleOf = multipleOf.toString(10);\n if (!/^0\\.0*1$/.test(strigifiedMultipleOf)) {\n return `multiple of ${strigifiedMultipleOf}`;\n }\n return `decimal places <= ${strigifiedMultipleOf.split('.')[1].length}`;\n }\n\n private static humanizeRangeConstraint(\n description: string,\n min: number | undefined,\n max: number | undefined,\n ): string | undefined {\n let stringRange;\n if (min !== undefined && max !== undefined) {\n if (min === max) {\n stringRange = `${min} ${description}`;\n } else {\n stringRange = `[ ${min} .. ${max} ] ${description}`;\n }\n } else if (max !== undefined) {\n stringRange = `<= ${max} ${description}`;\n } else if (min !== undefined) {\n if (min === 1) {\n stringRange = 'non-empty';\n } else {\n stringRange = `>= ${min} ${description}`;\n }\n }\n return stringRange;\n }\n\n private static jsonFieldToSchema(value: any): any {\n if (value === undefined || value === null) {\n return {\n type: 'string',\n const: '',\n [this.extRawValue]: true,\n };\n }\n if (typeof value !== 'object') {\n const str =\n typeof value.toString === 'function' ? value.toString() : value;\n return {\n type: 'string',\n const: str,\n [this.extRawValue]: true,\n };\n }\n if (this.isJSONSchema(value)) {\n return value;\n }\n if (Array.isArray(value)) {\n return {\n type: 'array',\n items: value.map(v => this.jsonFieldToSchema(v)),\n [this.extRenderAdditionalInfo]: false,\n };\n }\n return {\n type: 'object',\n properties: Object.entries(value).reduce((obj, [k, v]) => {\n obj[k] = this.jsonFieldToSchema(v);\n return obj;\n }, {}),\n [this.extRenderAdditionalInfo]: false,\n };\n }\n\n private static isJSONSchema(value: any): boolean {\n if (\n value &&\n typeof value === 'object' &&\n (jsonSchemaTypes.includes(value.type) ||\n (Array.isArray(value.type) &&\n value.type.some((t: string) => !jsonSchemaTypes.includes(t))))\n ) {\n return true;\n }\n return false;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/helpers/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n SchemaInterface,\n ChannelParametersInterface,\n ServerVariablesInterface,\n SchemaV2 as SchemaClass,\n ExtensionInterface,\n ExtensionsInterface,\n} from '@asyncapi/parser';\n\nexport enum SchemaCustomTypes {\n // for `true` and `{}` schemas\n ANY = 'any',\n // for schemas without `type` keyword\n RESTRICTED_ANY = 'restricted any',\n // for `false` and `{ not: {}, ... }` schemas\n NEVER = 'never',\n // for types that we cannot infer\n UNKNOWN = 'unknown',\n}\n\nconst jsonSchemaTypes = [\n 'string',\n 'number',\n 'integer',\n 'boolean',\n 'array',\n 'object',\n 'null',\n];\nconst jsonSchemaKeywordTypes: Record<string, string> = {\n // string\n maxLength: 'string',\n minLength: 'string',\n pattern: 'string',\n contentMediaType: 'string',\n contentEncoding: 'string',\n // number\n multipleOf: 'number',\n maximum: 'number',\n exclusiveMaximum: 'number',\n minimum: 'number',\n exclusiveMinimum: 'number',\n // array\n items: 'array',\n maxItems: 'array',\n minItems: 'array',\n uniqueItems: 'array',\n contains: 'array',\n additionalItems: 'array',\n // object\n maxProperties: 'object',\n minProperties: 'object',\n required: 'object',\n properties: 'object',\n patternProperties: 'object',\n propertyNames: 'object',\n dependencies: 'object',\n additionalProperties: 'object',\n};\nconst jsonSchemaKeywords = Object.keys(jsonSchemaKeywordTypes);\n\nexport class SchemaHelpers {\n static extRenderAdditionalInfo = 'x-schema-private-render-additional-info';\n static extRawValue = 'x-schema-private-raw-value';\n static extParameterLocation = 'x-schema-private-parameter-location';\n\n static toSchemaType(schema: SchemaInterface): string {\n if (!schema || typeof schema.json !== 'function') {\n return SchemaCustomTypes.UNKNOWN;\n }\n if (schema.isBooleanSchema()) {\n if (schema.json() === true) {\n return SchemaCustomTypes.ANY;\n } else {\n return SchemaCustomTypes.NEVER;\n }\n }\n // handle case with `{}` schemas\n if (Object.keys(schema.json()).length === 0) {\n return SchemaCustomTypes.ANY;\n }\n // handle case with `{ not: {}, ... }` schemas\n const not = schema.not();\n if (not && this.inferType(not) === SchemaCustomTypes.ANY) {\n return SchemaCustomTypes.NEVER;\n }\n\n let type = this.inferType(schema);\n if (Array.isArray(type)) {\n return type.map(t => this.toType(t, schema)).join(' | ');\n }\n type = this.toType(type, schema);\n const combinedType = this.toCombinedType(schema);\n\n if (type && combinedType) {\n return `${type} ${combinedType}`;\n }\n if (combinedType) {\n return combinedType;\n }\n\n if (type === 'object' && schema.title()) {\n type += ' [' + schema.title() + ']';\n }\n return type;\n }\n\n static applicatorSchemaName(\n idx: number,\n firstCase: string,\n otherCases: string,\n title?: string,\n ) {\n const suffix = title ? ` ${title}:` : ':';\n if (idx === 0) {\n return `${firstCase}${suffix}`;\n } else {\n return `${otherCases}${suffix}`;\n }\n }\n\n static prettifyValue(value: any, strict = true): string {\n const typeOf = typeof value;\n if (typeOf === 'string') {\n return strict ? `\"${value}\"` : value;\n }\n if (typeOf === 'number' || typeOf === 'bigint' || typeOf === 'boolean') {\n return `${value}`;\n }\n if (Array.isArray(value)) {\n return `[${value.toString()}]`;\n }\n return JSON.stringify(value);\n }\n\n static humanizeConstraints(schema: SchemaInterface): string[] {\n const constraints: string[] = [];\n\n // related to number/integer\n const numberRange = this.humanizeNumberRangeConstraint(\n schema.minimum(),\n schema.exclusiveMinimum(),\n schema.maximum(),\n schema.exclusiveMaximum(),\n );\n if (numberRange !== undefined) {\n constraints.push(numberRange);\n }\n const multipleOfConstraint = this.humanizeMultipleOfConstraint(\n schema.multipleOf(),\n );\n if (multipleOfConstraint !== undefined) {\n constraints.push(multipleOfConstraint);\n }\n\n // related to string\n const stringRange = this.humanizeRangeConstraint(\n 'characters',\n schema.minLength(),\n schema.maxLength(),\n );\n if (stringRange !== undefined) {\n constraints.push(stringRange);\n }\n\n // related to array\n const hasUniqueItems = schema.uniqueItems();\n const arrayRange = this.humanizeRangeConstraint(\n hasUniqueItems ? 'unique items' : 'items',\n schema.minItems(),\n schema.maxItems(),\n );\n if (arrayRange !== undefined) {\n constraints.push(arrayRange);\n }\n\n // related to object\n const objectRange = this.humanizeRangeConstraint(\n 'properties',\n schema.minProperties(),\n schema.maxProperties(),\n );\n if (objectRange !== undefined) {\n constraints.push(objectRange);\n }\n\n return constraints;\n }\n\n static isExpandable(schema: SchemaInterface): boolean {\n let type = this.inferType(schema);\n type = Array.isArray(type) ? type : [type];\n if (type.includes('object') || type.includes('array')) {\n return true;\n }\n\n if (\n schema.oneOf() ||\n schema.anyOf() ||\n schema.allOf() ||\n Object.keys(schema.properties() || {}).length > 0 ||\n schema.items() ||\n schema.not() ||\n schema.if() ||\n schema.then() ||\n schema.else()\n ) {\n return true;\n }\n\n const customExtensions = this.getCustomExtensions(schema);\n if (customExtensions && Object.keys(customExtensions).length) {\n return true;\n }\n\n return false;\n }\n\n static serverVariablesToSchema(\n urlVariables?: ServerVariablesInterface,\n ): SchemaInterface | undefined {\n if (!urlVariables || urlVariables.length === 0) {\n return undefined;\n }\n const obj: Record<string, Record<string, unknown>> = {};\n urlVariables.all().forEach(variable => {\n obj[variable.id()] = { ...(variable.json() || {}) };\n obj[variable.id()].type = 'string';\n });\n\n const json = {\n type: 'object',\n properties: obj,\n required: Object.keys(obj),\n [this.extRenderAdditionalInfo]: false,\n };\n return new SchemaClass(json as any);\n }\n\n static parametersToSchema(\n parameters?: ChannelParametersInterface,\n ): SchemaInterface | undefined {\n if (!parameters || parameters.isEmpty()) {\n return undefined;\n }\n const obj: Record<string, Record<string, unknown>> = {};\n parameters.all().forEach(parameter => {\n const parameterSchema = parameter.schema();\n obj[parameter.id()] = { ...(parameterSchema?.json() ?? {}) };\n obj[parameter.id()].description = parameter.hasDescription()\n ? parameter.description()\n : undefined;\n obj[parameter.id()][this.extParameterLocation] = parameter.hasLocation()\n ? parameter.location()\n : undefined;\n });\n\n const json = {\n type: 'object',\n properties: obj,\n required: Object.keys(obj),\n [this.extRenderAdditionalInfo]: false,\n };\n return new SchemaClass(json as any);\n }\n\n static jsonToSchema(value: any): any {\n const json = this.jsonFieldToSchema(value);\n return new SchemaClass(json);\n }\n\n /**\n * Retrieves from given value all custom extensions (value with key started by `x-`).\n * However, it skips those private extensions that begin with `x-parser-` and `x-schema-private-`.\n *\n * @param value\n */\n static getCustomExtensions(value: any) {\n if (!value || typeof value.extensions !== 'function') {\n return;\n }\n const extensions = value.extensions() as ExtensionsInterface;\n const filteredExtensions: Record<string, unknown> = {};\n for (const ext of extensions.all()) {\n const extType = ext as ExtensionInterface;\n if (\n !extType.id().startsWith('x-parser-') &&\n !extType.id().startsWith('x-schema-private-')\n ) {\n filteredExtensions[extType.id()] = extType.value();\n }\n }\n return filteredExtensions;\n }\n\n /**\n * Retrieves from given schema all dependent required requires by given propertyName from `dependencies` object.\n *\n * @param propertyName\n * @param schema\n */\n static getDependentRequired(\n propertyName: string,\n schema: SchemaInterface,\n ): string[] | undefined {\n const dependentRequired: string[] = [];\n const dependencies = schema.dependencies();\n if (!dependencies) {\n return;\n }\n\n for (const [prop, array] of Object.entries(dependencies)) {\n if (Array.isArray(array) && array.includes(propertyName)) {\n dependentRequired.push(prop);\n }\n }\n return dependentRequired.length ? dependentRequired : undefined;\n }\n\n /**\n * Retrieves from given schema all dependent schemas from `dependencies` object.\n *\n * @param schema\n */\n static getDependentSchemas(\n schema: SchemaInterface,\n ): SchemaInterface | undefined {\n const dependencies = schema.dependencies();\n if (!dependencies) {\n return;\n }\n\n const records: Record<string, SchemaInterface> = {};\n for (const [prop, propSchema] of Object.entries(dependencies)) {\n if (typeof propSchema === 'object' && !Array.isArray(propSchema)) {\n records[prop] = propSchema;\n }\n }\n if (!Object.keys(records).length) {\n return undefined;\n }\n\n const json = {\n type: 'object',\n properties: Object.entries(records).reduce(\n (obj, [propertyName, propertySchema]) => {\n obj[propertyName] = {\n ...(propertySchema.json() as Record<string, unknown>),\n };\n return obj;\n },\n {} as Record<string, unknown>,\n ),\n [this.extRenderAdditionalInfo]: false,\n };\n return new SchemaClass(json as any);\n }\n\n private static toType(type: string, schema: SchemaInterface): string {\n if (schema.isCircular()) {\n return type;\n }\n if (type === 'array') {\n const items = schema.items();\n if (Array.isArray(items)) {\n return this.toItemsType(items, schema);\n }\n if (!items) {\n return `array<${SchemaCustomTypes.ANY}>`;\n }\n return `array<${this.toSchemaType(items) || SchemaCustomTypes.UNKNOWN}>`;\n }\n return type;\n }\n\n private static toItemsType(\n items: SchemaInterface[],\n schema: SchemaInterface,\n ): string {\n const types = items.map(item => this.toSchemaType(item)).join(', ');\n const additionalItems = schema.additionalItems();\n if (additionalItems !== undefined && additionalItems !== false) {\n const additionalType =\n additionalItems === true\n ? SchemaCustomTypes.ANY\n : this.toSchemaType(additionalItems);\n return `tuple<${types ||\n SchemaCustomTypes.UNKNOWN}, ...optional<${additionalType}>>`;\n }\n return `tuple<${types || SchemaCustomTypes.UNKNOWN}>`;\n }\n\n private static toCombinedType(schema: SchemaInterface): string | undefined {\n const oneOf = schema.oneOf();\n if (oneOf) {\n return 'oneOf';\n }\n if (schema.anyOf()) {\n return 'anyOf';\n }\n if (schema.allOf()) {\n return 'allOf';\n }\n return;\n }\n\n private static inferType(schema: SchemaInterface): string[] | string {\n let types = schema.type();\n\n if (types !== undefined) {\n if (Array.isArray(types)) {\n // if types have `integer` and `number` types, `integer` is unnecessary\n if (types.includes('integer') && types.includes('number')) {\n types = types.filter(t => t !== 'integer');\n }\n return types.length === 1 ? types[0] : types;\n }\n return types;\n }\n\n const constValue = schema.const();\n if (constValue !== undefined) {\n return typeof constValue;\n }\n const enumValue = schema.enum();\n if (Array.isArray(enumValue) && enumValue.length) {\n const inferredType = Array.from(new Set(enumValue.map(e => typeof e)));\n return inferredType.length === 1 ? inferredType[0] : inferredType;\n }\n\n const schemaKeys = Object.keys(schema.json() || {}) || [];\n const hasInferredTypes = jsonSchemaKeywords.some(key =>\n schemaKeys.includes(key),\n );\n if (hasInferredTypes === true) {\n return SchemaCustomTypes.RESTRICTED_ANY;\n }\n if (this.toCombinedType(schema)) {\n return '';\n }\n return SchemaCustomTypes.ANY;\n }\n\n private static humanizeNumberRangeConstraint(\n min: number | undefined,\n exclusiveMin: number | undefined,\n max: number | undefined,\n exclusiveMax: number | undefined,\n ): string | undefined {\n const hasExclusiveMin = exclusiveMin !== undefined;\n const hasMin = min !== undefined || hasExclusiveMin;\n const hasExclusiveMax = exclusiveMax !== undefined;\n const hasMax = max !== undefined || hasExclusiveMax;\n\n let numberRange;\n if (hasMin && hasMax) {\n numberRange = hasExclusiveMin ? '( ' : '[ ';\n numberRange += hasExclusiveMin ? exclusiveMin : min;\n numberRange += ' .. ';\n numberRange += hasExclusiveMax ? exclusiveMax : max;\n numberRange += hasExclusiveMax ? ' )' : ' ]';\n } else if (hasMin) {\n numberRange = hasExclusiveMin ? '> ' : '>= ';\n numberRange += hasExclusiveMin ? exclusiveMin : min;\n } else if (hasMax) {\n numberRange = hasExclusiveMax ? '< ' : '<= ';\n numberRange += hasExclusiveMax ? exclusiveMax : max;\n }\n return numberRange;\n }\n\n private static humanizeMultipleOfConstraint(\n multipleOf: number | undefined,\n ): string | undefined {\n if (multipleOf === undefined) {\n return;\n }\n const strigifiedMultipleOf = multipleOf.toString(10);\n if (!/^0\\.0*1$/.test(strigifiedMultipleOf)) {\n return `multiple of ${strigifiedMultipleOf}`;\n }\n return `decimal places <= ${strigifiedMultipleOf.split('.')[1].length}`;\n }\n\n private static humanizeRangeConstraint(\n description: string,\n min: number | undefined,\n max: number | undefined,\n ): string | undefined {\n let stringRange;\n if (min !== undefined && max !== undefined) {\n if (min === max) {\n stringRange = `${min} ${description}`;\n } else {\n stringRange = `[ ${min} .. ${max} ] ${description}`;\n }\n } else if (max !== undefined) {\n stringRange = `<= ${max} ${description}`;\n } else if (min !== undefined) {\n if (min === 1) {\n stringRange = 'non-empty';\n } else {\n stringRange = `>= ${min} ${description}`;\n }\n }\n return stringRange;\n }\n\n private static jsonFieldToSchema(value: any): any {\n if (value === undefined || value === null) {\n return {\n type: 'string',\n const: '',\n [this.extRawValue]: true,\n };\n }\n if (typeof value !== 'object') {\n const str =\n typeof value.toString === 'function' ? value.toString() : value;\n return {\n type: 'string',\n const: str,\n [this.extRawValue]: true,\n };\n }\n if (this.isJSONSchema(value)) {\n return value;\n }\n if (Array.isArray(value)) {\n return {\n type: 'array',\n items: value.map(v => this.jsonFieldToSchema(v)),\n [this.extRenderAdditionalInfo]: false,\n };\n }\n return {\n type: 'object',\n properties: Object.entries(value).reduce((obj, [k, v]) => {\n obj[k] = this.jsonFieldToSchema(v);\n return obj;\n }, {} as Record<string, unknown>),\n [this.extRenderAdditionalInfo]: false,\n };\n }\n\n private static isJSONSchema(value: any): boolean {\n if (\n value &&\n typeof value === 'object' &&\n (jsonSchemaTypes.includes(value.type) ||\n (Array.isArray(value.type) &&\n value.type.some((t: string) => !jsonSchemaTypes.includes(t))))\n ) {\n return true;\n }\n return false;\n }\n}\n"]}
|
|
@@ -63,10 +63,10 @@ var SpecificationHelpers = (function () {
|
|
|
63
63
|
.all()
|
|
64
64
|
.forEach(function (tag) {
|
|
65
65
|
if (tags[tag.name()]) {
|
|
66
|
-
tags[tag.name()]
|
|
66
|
+
tags[tag.name()].push(_);
|
|
67
67
|
}
|
|
68
68
|
else {
|
|
69
|
-
tags[tag.name()] = _;
|
|
69
|
+
tags[tag.name()] = [_];
|
|
70
70
|
}
|
|
71
71
|
});
|
|
72
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specification.js","sourceRoot":"","sources":["../../../src/helpers/specification.ts"],"names":[],"mappings":";;;AAAA,2CAO0B;AAC1B,0DAAsE;AAEtE;IAAA;IA6FA,CAAC;IAzFQ,uCAAkB,GAAzB,UACE,MAAW;QAEX,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,IAAA,2BAAkB,EAAC,MAAM,CAAC,EAAE;YAC9B,OAAO,MAAM,CAAC;SACf;QAED,IAAI,IAAA,8BAAqB,EAAC,MAAM,CAAC,EAAE;YAEjC,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YACjC,OAAO,IAAA,2BAAkB,EAAC,UAAU,CAAC,CAAC;SACvC;QAGD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,IAAI;gBACF,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;aAC7B;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,SAAS,CAAC;aAClB;SACF;QAGD,IAAI,IAAA,gCAAqB,EAAC,MAAM,CAAC,EAAE;YACjC,OAAO,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAC;SAC5B;QAED,OAAO,IAAA,2BAAkB,EAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAKM,gCAAW,GAAlB,UACE,MAAW,EACX,IAAmC;QAEnC,IAAM,WAAW,GACf,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC5D,OAAO,KAAK,CAAC;SACd;QACD,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,WAAW,CAAC,IAAI,CAAC,UAAC,GAAiB;YACxC,OAAC,IAAuB,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,EAAvB,CAAuB,CAAC;QAA3D,CAA2D,CAC5D,CAAC;IACJ,CAAC;IAKM,mCAAc,GAArB,UAAsB,IAA+B;QACnD,IAAM,IAAI,GAAG,IAAI,GAAG,EAAwB,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,UAAC,EAAc;gBAAb,CAAC,QAAA,EAAE,SAAS,QAAA;YAC5D,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,GAAG,MAAM,IAAG,CAAC,EAAE;gBAChC,SAAS;qBACN,IAAI,EAAE;qBACN,GAAG,EAAE;qBACL,OAAO,CAAC,UAAA,GAAG,IAAI,OAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,EAAzB,CAAyB,CAAC,CAAC;aAC9C;QACH,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAKM,gCAAW,GAAlB,UAAmB,IAA+B;QAChD,IAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"specification.js","sourceRoot":"","sources":["../../../src/helpers/specification.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AsyncAPIDocumentInterface,\n TagInterface,\n isAsyncAPIDocument,\n isOldAsyncAPIDocument,\n toAsyncAPIDocument,\n unstringify,\n} from '@asyncapi/parser';\nimport { isStringifiedDocument } from '@asyncapi/parser/cjs/document';\n\nexport class SpecificationHelpers {\n /**\n * Returns parsed AsyncAPI specification.\n */\n static retrieveParsedSpec(\n schema: any,\n ): AsyncAPIDocumentInterface | undefined {\n if (!schema) {\n return undefined;\n }\n\n if (isAsyncAPIDocument(schema)) {\n return schema;\n }\n\n if (isOldAsyncAPIDocument(schema)) {\n // Is from old parser\n const parsedJSON = schema.json();\n return toAsyncAPIDocument(parsedJSON);\n }\n\n // check if input is a string and try parse it\n if (typeof schema === 'string') {\n try {\n schema = JSON.parse(schema);\n } catch (e) {\n return undefined;\n }\n }\n\n // at the end check if schema is a parsed JS object (as output from AsyncAPI Parser)\n if (isStringifiedDocument(schema)) {\n return unstringify(schema);\n }\n\n return toAsyncAPIDocument(schema);\n }\n\n /**\n * Check if given schema have one of the specified tags.\n */\n static containTags(\n schema: any,\n tags: TagInterface | TagInterface[],\n ): boolean {\n const tagsToCheck =\n typeof schema.tags === 'function' ? schema.tags() : undefined;\n if (tagsToCheck === undefined || !Array.isArray(tagsToCheck)) {\n return false;\n }\n tags = Array.isArray(tags) ? tags : [tags];\n return tagsToCheck.some((tag: TagInterface) =>\n (tags as TagInterface[]).some(t => t.name() === tag.name()),\n );\n }\n\n /**\n * Return all tags from operations\n */\n static operationsTags(spec: AsyncAPIDocumentInterface) {\n const tags = new Map<string, TagInterface>();\n Object.entries(spec.operations().all()).forEach(([_, operation]) => {\n if (operation?.tags().length > 0) {\n operation\n .tags()\n .all()\n .forEach(tag => tags.set(tag.name(), tag));\n }\n });\n return Array.from(tags.values());\n }\n\n /**\n * Return all tags from servers\n */\n static serversTags(spec: AsyncAPIDocumentInterface) {\n const tags: Record<string, string[]> = {};\n Object.entries(spec.servers()).forEach(([_, server]) => {\n if (server.tags().length > 0) {\n server\n .tags()\n .all()\n .forEach(tag => {\n if (tags[tag.name()]) {\n tags[tag.name()].push(_);\n } else {\n tags[tag.name()] = [_];\n }\n });\n }\n });\n return tags;\n }\n}\n"]}
|
|
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
28
28
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
29
29
|
function step(op) {
|
|
30
30
|
if (f) throw new TypeError("Generator is already executing.");
|
|
31
|
-
while (_) try {
|
|
31
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
32
32
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
33
33
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
34
34
|
switch (op[0]) {
|
|
@@ -39,7 +39,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
39
39
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
40
40
|
function step(op) {
|
|
41
41
|
if (f) throw new TypeError("Generator is already executing.");
|
|
42
|
-
while (_) try {
|
|
42
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
43
43
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
44
44
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
45
45
|
switch (op[0]) {
|
|
@@ -19,8 +19,8 @@ export var Security = function (_a) {
|
|
|
19
19
|
.map(function (requirement) {
|
|
20
20
|
var requirements = requirement.all();
|
|
21
21
|
var key = Object.keys(requirements)[0];
|
|
22
|
-
var def = securitySchemes[
|
|
23
|
-
var requiredScopes = requirements[
|
|
22
|
+
var def = securitySchemes[Number(key)];
|
|
23
|
+
var requiredScopes = requirements[Number(key)];
|
|
24
24
|
if (!def) {
|
|
25
25
|
return null;
|
|
26
26
|
}
|
|
@@ -1 +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?.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?.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
|
+
{"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?.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[Number(key)];\n const requiredScopes: any = requirements[Number(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?.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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/helpers/message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAIzC;IAAA;IAoFA,CAAC;IAnFQ,8BAAe,GAAtB,UAAuB,MAAW,EAAE,OAAiB;QAAjB,wBAAA,EAAA,YAAiB;QACnD,IAAI;YACF,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;SAC5D;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,EAAE,CAAC;SACX;IACH,CAAC;IAEM,8BAAe,GAAtB,UAAuB,MAAW;QAAlC,iBAaC;QAZC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAClE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,EAAwB;oBAAvB,YAAY,QAAA,EAAE,QAAQ,QAAA;gBAChE,IACE,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC;oBACrC,CAAC,YAAY,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAC7C;oBACA,GAAG,CAAC,YAAY,CAAC,GAAG,KAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;iBACpD;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/helpers/message.ts"],"names":[],"mappings":"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","sourcesContent":["import { MessageInterface } from '@asyncapi/parser';\n// @ts-ignore\nimport { sample } from 'openapi-sampler';\n\nimport { MessageExample } from '../types';\n\nexport class MessageHelpers {\n static generateExample(schema: any, options: any = {}) {\n try {\n return this.sanitizeExample(sample(schema, options)) || '';\n } catch (e) {\n return '';\n }\n }\n\n static sanitizeExample(schema: any): any {\n if (typeof schema === 'object' && schema && !Array.isArray(schema)) {\n return Object.entries(schema).reduce((obj, [propertyName, property]) => {\n if (\n !propertyName.startsWith('x-parser-') &&\n !propertyName.startsWith('x-schema-private-')\n ) {\n obj[propertyName] = this.sanitizeExample(property);\n }\n return obj;\n }, {} as Record<string, unknown>);\n }\n return schema;\n }\n\n static getPayloadExamples(\n msg: MessageInterface,\n ): MessageExample[] | undefined {\n const examples = msg.examples().all();\n\n if (examples.some(e => e.hasPayload())) {\n const messageExamples = examples\n .flatMap(e => {\n if (!e.payload()) {\n return;\n }\n return {\n name: e.name(),\n summary: e.summary(),\n example: e.payload(),\n };\n })\n .filter(Boolean) as MessageExample[];\n\n if (messageExamples.length > 0) {\n return messageExamples;\n }\n }\n\n const payload = msg.payload();\n if (payload?.examples()) {\n return payload.examples()?.map(example => ({ example }));\n }\n return;\n }\n\n static getHeadersExamples(\n msg: MessageInterface,\n ): MessageExample[] | undefined {\n const examples = msg.examples().all();\n if (examples.some(e => e.hasHeaders())) {\n const messageExamples = examples\n .flatMap(e => {\n if (!e.hasHeaders()) {\n return;\n }\n return {\n name: e.name(),\n summary: e.summary(),\n example: e.headers(),\n };\n })\n .filter(Boolean) as MessageExample[];\n\n if (messageExamples.length > 0) {\n return messageExamples;\n }\n }\n\n const headers = msg.headers();\n if (headers?.examples()) {\n return headers.examples()?.map(example => ({ example }));\n }\n return undefined;\n }\n}\n"]}
|
|
@@ -13,7 +13,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
13
13
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
14
|
function step(op) {
|
|
15
15
|
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
-
while (_) try {
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
17
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
18
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
19
|
switch (op[0]) {
|
|
@@ -264,7 +264,7 @@ var SchemaHelpers = (function () {
|
|
|
264
264
|
type: 'object',
|
|
265
265
|
properties: Object.entries(records).reduce(function (obj, _a) {
|
|
266
266
|
var propertyName = _a[0], propertySchema = _a[1];
|
|
267
|
-
obj[propertyName] = __assign({},
|
|
267
|
+
obj[propertyName] = __assign({}, propertySchema.json());
|
|
268
268
|
return obj;
|
|
269
269
|
}, {})
|
|
270
270
|
},
|