@asyncapi/react-component 2.6.5 → 3.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.
Files changed (69) hide show
  1. package/browser/index.js +1 -1
  2. package/browser/standalone/index.js +1 -1
  3. package/browser/standalone/without-parser.js +1 -1
  4. package/browser/without-parser.js +1 -1
  5. package/lib/cjs/components/PluginSlotRenderer.js +21 -0
  6. package/lib/cjs/components/PluginSlotRenderer.js.map +1 -0
  7. package/lib/cjs/constants.js +2 -1
  8. package/lib/cjs/constants.js.map +1 -1
  9. package/lib/cjs/containers/AsyncApi/AsyncApi.js +2 -2
  10. package/lib/cjs/containers/AsyncApi/AsyncApi.js.map +1 -1
  11. package/lib/cjs/containers/AsyncApi/Layout.js +15 -13
  12. package/lib/cjs/containers/AsyncApi/Layout.js.map +1 -1
  13. package/lib/cjs/containers/AsyncApi/Standalone.js +99 -3
  14. package/lib/cjs/containers/AsyncApi/Standalone.js.map +1 -1
  15. package/lib/cjs/containers/Info/Info.js +9 -1
  16. package/lib/cjs/containers/Info/Info.js.map +1 -1
  17. package/lib/cjs/containers/Operations/Operation.js +8 -1
  18. package/lib/cjs/containers/Operations/Operation.js.map +1 -1
  19. package/lib/cjs/contexts/usePlugin.js +10 -0
  20. package/lib/cjs/contexts/usePlugin.js.map +1 -0
  21. package/lib/cjs/helpers/pluginManager.js +116 -0
  22. package/lib/cjs/helpers/pluginManager.js.map +1 -0
  23. package/lib/cjs/index.js +3 -1
  24. package/lib/cjs/index.js.map +1 -1
  25. package/lib/cjs/types.js +6 -1
  26. package/lib/cjs/types.js.map +1 -1
  27. package/lib/esm/components/PluginSlotRenderer.js +15 -0
  28. package/lib/esm/components/PluginSlotRenderer.js.map +1 -0
  29. package/lib/esm/constants.js +1 -0
  30. package/lib/esm/constants.js.map +1 -1
  31. package/lib/esm/containers/AsyncApi/AsyncApi.js +2 -2
  32. package/lib/esm/containers/AsyncApi/AsyncApi.js.map +1 -1
  33. package/lib/esm/containers/AsyncApi/Layout.js +15 -13
  34. package/lib/esm/containers/AsyncApi/Layout.js.map +1 -1
  35. package/lib/esm/containers/AsyncApi/Standalone.js +99 -3
  36. package/lib/esm/containers/AsyncApi/Standalone.js.map +1 -1
  37. package/lib/esm/containers/Info/Info.js +9 -1
  38. package/lib/esm/containers/Info/Info.js.map +1 -1
  39. package/lib/esm/containers/Operations/Operation.js +9 -2
  40. package/lib/esm/containers/Operations/Operation.js.map +1 -1
  41. package/lib/esm/contexts/usePlugin.js +6 -0
  42. package/lib/esm/contexts/usePlugin.js.map +1 -0
  43. package/lib/esm/helpers/pluginManager.js +113 -0
  44. package/lib/esm/helpers/pluginManager.js.map +1 -0
  45. package/lib/esm/index.js +1 -0
  46. package/lib/esm/index.js.map +1 -1
  47. package/lib/esm/types.js +5 -0
  48. package/lib/esm/types.js.map +1 -1
  49. package/lib/types/components/PluginSlotRenderer.d.ts +11 -0
  50. package/lib/types/components/PluginSlotRenderer.d.ts.map +1 -0
  51. package/lib/types/constants.d.ts +1 -0
  52. package/lib/types/constants.d.ts.map +1 -1
  53. package/lib/types/containers/AsyncApi/AsyncApi.d.ts +5 -1
  54. package/lib/types/containers/AsyncApi/AsyncApi.d.ts.map +1 -1
  55. package/lib/types/containers/AsyncApi/Layout.d.ts +2 -0
  56. package/lib/types/containers/AsyncApi/Layout.d.ts.map +1 -1
  57. package/lib/types/containers/AsyncApi/Standalone.d.ts +13 -1
  58. package/lib/types/containers/AsyncApi/Standalone.d.ts.map +1 -1
  59. package/lib/types/containers/Info/Info.d.ts.map +1 -1
  60. package/lib/types/containers/Operations/Operation.d.ts.map +1 -1
  61. package/lib/types/contexts/usePlugin.d.ts +5 -0
  62. package/lib/types/contexts/usePlugin.d.ts.map +1 -0
  63. package/lib/types/helpers/pluginManager.d.ts +26 -0
  64. package/lib/types/helpers/pluginManager.d.ts.map +1 -0
  65. package/lib/types/index.d.ts +1 -1
  66. package/lib/types/index.d.ts.map +1 -1
  67. package/lib/types/types.d.ts +38 -0
  68. package/lib/types/types.d.ts.map +1 -1
  69. package/package.json +5 -4
@@ -29,13 +29,20 @@ import { SpecificationHelpers } from '../../helpers';
29
29
  import { defaultConfig } from '../../config';
30
30
  import AsyncApiLayout from './Layout';
31
31
  import { Error } from '../Error/Error';
32
+ import { PluginManager } from '../../helpers/pluginManager';
33
+ import { PLUGINEVENTS } from '../../constants';
32
34
  var AsyncApiComponent = (function (_super) {
33
35
  __extends(AsyncApiComponent, _super);
34
36
  function AsyncApiComponent(props) {
35
37
  var _this = _super.call(this, props) || this;
38
+ _this.registeredPlugins = new Set();
39
+ _this.propsPlugins = new Set();
36
40
  _this.state = {
37
41
  asyncapi: undefined,
38
42
  error: undefined,
43
+ pm: new PluginManager({
44
+ schema: {},
45
+ }),
39
46
  };
40
47
  var parsedSpec = SpecificationHelpers.retrieveParsedSpec(props.schema);
41
48
  if (parsedSpec) {
@@ -47,18 +54,31 @@ var AsyncApiComponent = (function (_super) {
47
54
  if (!this.state.asyncapi) {
48
55
  this.updateState(this.props.schema);
49
56
  }
57
+ if (this.props.onPluginManagerReady) {
58
+ this.props.onPluginManagerReady(this.state.pm);
59
+ }
60
+ this.setupEventListeners();
61
+ this.registerPlugins();
50
62
  };
51
63
  AsyncApiComponent.prototype.componentDidUpdate = function (prevProps) {
64
+ var _a = this.props, schema = _a.schema, plugins = _a.plugins, onPluginEvent = _a.onPluginEvent;
52
65
  var oldSchema = prevProps.schema;
53
- var newSchema = this.props.schema;
66
+ var newSchema = schema;
54
67
  if (oldSchema !== newSchema) {
55
68
  this.updateState(newSchema);
56
69
  }
70
+ if (onPluginEvent !== prevProps.onPluginEvent) {
71
+ this.cleanupEventListeners();
72
+ this.setupEventListeners();
73
+ }
74
+ if (plugins !== prevProps.plugins) {
75
+ this.updatePlugins(prevProps.plugins, plugins);
76
+ }
57
77
  };
58
78
  AsyncApiComponent.prototype.render = function () {
59
79
  var _a;
60
80
  var _b = this.props, config = _b.config, propError = _b.error;
61
- var _c = this.state, asyncapi = _c.asyncapi, stateError = _c.error;
81
+ var _c = this.state, asyncapi = _c.asyncapi, stateError = _c.error, pm = _c.pm;
62
82
  var error = propError !== null && propError !== void 0 ? propError : stateError;
63
83
  var concatenatedConfig = __assign(__assign(__assign({}, defaultConfig), config), { show: __assign(__assign({}, defaultConfig.show), (!!config && config.show)), expand: __assign(__assign({}, defaultConfig.expand), (!!config && config.expand)), sidebar: __assign(__assign({}, defaultConfig.sidebar), (!!config && config.sidebar)), extensions: __assign(__assign({}, defaultConfig.extensions), (!!config && config.extensions)) });
64
84
  if (!asyncapi) {
@@ -68,15 +88,91 @@ var AsyncApiComponent = (function (_super) {
68
88
  return (((_a = concatenatedConfig.show) === null || _a === void 0 ? void 0 : _a.errors) && (React.createElement("section", { className: "aui-root" },
69
89
  React.createElement(Error, { error: error }))));
70
90
  }
71
- return React.createElement(AsyncApiLayout, { asyncapi: asyncapi, config: concatenatedConfig });
91
+ return (React.createElement(AsyncApiLayout, { asyncapi: asyncapi, config: concatenatedConfig, pluginManager: pm }));
92
+ };
93
+ AsyncApiComponent.prototype.handler = function (eventName) {
94
+ var _this = this;
95
+ return function (data) {
96
+ _this.props.onPluginEvent(eventName, data);
97
+ };
98
+ };
99
+ AsyncApiComponent.prototype.setupEventListeners = function () {
100
+ var _this = this;
101
+ var onPluginEvent = this.props.onPluginEvent;
102
+ var pm = this.state.pm;
103
+ if (!onPluginEvent)
104
+ return;
105
+ PLUGINEVENTS.forEach(function (event) {
106
+ pm === null || pm === void 0 ? void 0 : pm.on(event, _this.handler(event));
107
+ });
108
+ };
109
+ AsyncApiComponent.prototype.cleanupEventListeners = function () {
110
+ var _this = this;
111
+ var pm = this.state.pm;
112
+ PLUGINEVENTS.forEach(function (event) {
113
+ pm === null || pm === void 0 ? void 0 : pm.off(event, _this.handler(event));
114
+ });
115
+ };
116
+ AsyncApiComponent.prototype.registerPlugins = function () {
117
+ var _this = this;
118
+ var plugins = this.props.plugins;
119
+ var pm = this.state.pm;
120
+ plugins === null || plugins === void 0 ? void 0 : plugins.forEach(function (plugin) {
121
+ try {
122
+ pm === null || pm === void 0 ? void 0 : pm.register(plugin);
123
+ _this.registeredPlugins.add(plugin.name);
124
+ _this.propsPlugins.add(plugin.name);
125
+ }
126
+ catch (error) {
127
+ console.error("Failed to register plugin ".concat(plugin.name, ":"), error);
128
+ pm === null || pm === void 0 ? void 0 : pm.emit(PLUGINEVENTS[1], {
129
+ pluginName: plugin.name,
130
+ });
131
+ }
132
+ });
133
+ };
134
+ AsyncApiComponent.prototype.updatePlugins = function (prevPlugins, newPlugins) {
135
+ var _this = this;
136
+ var pm = this.state.pm;
137
+ var prevPluginMap = new Map((prevPlugins !== null && prevPlugins !== void 0 ? prevPlugins : []).map(function (p) { return [p.name, p]; }));
138
+ var newPluginMap = new Map((newPlugins !== null && newPlugins !== void 0 ? newPlugins : []).map(function (p) { return [p.name, p]; }));
139
+ prevPluginMap.forEach(function (_plugin, name) {
140
+ if (!newPluginMap.has(name) && _this.propsPlugins.has(name)) {
141
+ try {
142
+ pm === null || pm === void 0 ? void 0 : pm.unregister(name);
143
+ _this.registeredPlugins.delete(name);
144
+ _this.propsPlugins.delete(name);
145
+ }
146
+ catch (error) {
147
+ console.error("Failed to unregister plugin ".concat(name, ":"), error);
148
+ }
149
+ }
150
+ });
151
+ newPluginMap.forEach(function (plugin, name) {
152
+ if (!prevPluginMap.has(name)) {
153
+ try {
154
+ pm === null || pm === void 0 ? void 0 : pm.register(plugin);
155
+ _this.registeredPlugins.add(name);
156
+ _this.propsPlugins.add(name);
157
+ }
158
+ catch (error) {
159
+ console.error("Failed to register plugin ".concat(name, ":"), error);
160
+ pm === null || pm === void 0 ? void 0 : pm.emit(PLUGINEVENTS[1], {
161
+ pluginName: name,
162
+ });
163
+ }
164
+ }
165
+ });
72
166
  };
73
167
  AsyncApiComponent.prototype.updateState = function (schema) {
168
+ var _a;
74
169
  var parsedSpec = SpecificationHelpers.retrieveParsedSpec(schema);
75
170
  if (!parsedSpec) {
76
171
  this.setState({ asyncapi: undefined });
77
172
  return;
78
173
  }
79
174
  this.setState({ asyncapi: parsedSpec });
175
+ (_a = this.state.pm) === null || _a === void 0 ? void 0 : _a.updateContext({ schema: parsedSpec });
80
176
  };
81
177
  return AsyncApiComponent;
82
178
  }(Component));
@@ -1 +1 @@
1
- {"version":3,"file":"Standalone.js","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/Standalone.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport { AsyncAPIDocumentInterface } from '@asyncapi/parser';\n\nimport { SpecificationHelpers } from '../../helpers';\nimport { ErrorObject, PropsSchema } from '../../types';\nimport { ConfigInterface, defaultConfig } from '../../config';\n\nimport AsyncApiLayout from './Layout';\nimport { Error } from '../Error/Error';\n\nexport interface AsyncApiProps {\n schema: PropsSchema;\n config?: Partial<ConfigInterface>;\n error?: ErrorObject;\n}\n\ninterface AsyncAPIState {\n asyncapi?: AsyncAPIDocumentInterface;\n error?: ErrorObject;\n}\n\nclass AsyncApiComponent extends Component<AsyncApiProps, AsyncAPIState> {\n state: AsyncAPIState = {\n asyncapi: undefined,\n error: undefined,\n };\n\n constructor(props: AsyncApiProps) {\n super(props);\n\n const parsedSpec = SpecificationHelpers.retrieveParsedSpec(props.schema);\n if (parsedSpec) {\n this.state = { asyncapi: parsedSpec };\n }\n }\n\n componentDidMount() {\n if (!this.state.asyncapi) {\n this.updateState(this.props.schema);\n }\n }\n\n componentDidUpdate(prevProps: AsyncApiProps) {\n const oldSchema = prevProps.schema;\n const newSchema = this.props.schema;\n\n if (oldSchema !== newSchema) {\n this.updateState(newSchema);\n }\n }\n\n render() {\n const { config, error: propError } = this.props;\n const { asyncapi, error: stateError } = this.state;\n\n const error = propError ?? stateError;\n const concatenatedConfig: ConfigInterface = {\n ...defaultConfig,\n ...config,\n show: {\n ...defaultConfig.show,\n ...(!!config && config.show),\n },\n expand: {\n ...defaultConfig.expand,\n ...(!!config && config.expand),\n },\n sidebar: {\n ...defaultConfig.sidebar,\n ...(!!config && config.sidebar),\n },\n extensions: {\n ...defaultConfig.extensions,\n ...(!!config && config.extensions),\n },\n };\n\n if (!asyncapi) {\n if (!error) {\n return null;\n }\n return (\n concatenatedConfig.show?.errors && (\n <section className=\"aui-root\">\n <Error error={error} />\n </section>\n )\n );\n }\n\n return <AsyncApiLayout asyncapi={asyncapi} config={concatenatedConfig} />;\n }\n\n private updateState(schema: PropsSchema) {\n const parsedSpec = SpecificationHelpers.retrieveParsedSpec(schema);\n if (!parsedSpec) {\n this.setState({ asyncapi: undefined });\n return;\n }\n this.setState({ asyncapi: parsedSpec });\n }\n}\n\nexport default AsyncApiComponent;\n"]}
1
+ {"version":3,"file":"Standalone.js","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/Standalone.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport { AsyncAPIDocumentInterface } from '@asyncapi/parser';\n\nimport { SpecificationHelpers } from '../../helpers';\nimport { AsyncApiPlugin, ErrorObject, PropsSchema } from '../../types';\nimport { ConfigInterface, defaultConfig } from '../../config';\n\nimport AsyncApiLayout from './Layout';\nimport { Error } from '../Error/Error';\nimport { PluginManager } from '../../helpers/pluginManager';\nimport { PLUGINEVENTS } from '../../constants';\n\nexport interface AsyncApiProps {\n schema: PropsSchema;\n config?: Partial<ConfigInterface>;\n plugins?: AsyncApiPlugin[];\n onPluginEvent?: (eventName: string, data: unknown) => void;\n onPluginManagerReady?: (pluginManager: PluginManager) => void;\n error?: ErrorObject;\n}\n\ninterface AsyncAPIState {\n asyncapi?: AsyncAPIDocumentInterface;\n error?: ErrorObject;\n pm?: PluginManager;\n}\n\nclass AsyncApiComponent extends Component<AsyncApiProps, AsyncAPIState> {\n private readonly registeredPlugins = new Set<string>();\n private readonly propsPlugins = new Set<string>();\n\n state: AsyncAPIState = {\n asyncapi: undefined,\n error: undefined,\n pm: new PluginManager({\n schema: {},\n }),\n };\n\n constructor(props: AsyncApiProps) {\n super(props);\n\n const parsedSpec = SpecificationHelpers.retrieveParsedSpec(props.schema);\n if (parsedSpec) {\n this.state = { asyncapi: parsedSpec };\n }\n }\n\n componentDidMount() {\n if (!this.state.asyncapi) {\n this.updateState(this.props.schema);\n }\n if (this.props.onPluginManagerReady) {\n this.props.onPluginManagerReady(this.state.pm!);\n }\n this.setupEventListeners();\n\n this.registerPlugins();\n }\n\n componentDidUpdate(prevProps: AsyncApiProps) {\n const { schema, plugins, onPluginEvent } = this.props;\n const oldSchema = prevProps.schema;\n const newSchema = schema;\n\n if (oldSchema !== newSchema) {\n this.updateState(newSchema);\n }\n\n if (onPluginEvent !== prevProps.onPluginEvent) {\n this.cleanupEventListeners();\n this.setupEventListeners();\n }\n\n if (plugins !== prevProps.plugins) {\n this.updatePlugins(prevProps.plugins, plugins);\n }\n }\n\n render() {\n const { config, error: propError } = this.props;\n const { asyncapi, error: stateError, pm } = this.state;\n\n const error = propError ?? stateError;\n const concatenatedConfig: ConfigInterface = {\n ...defaultConfig,\n ...config,\n show: {\n ...defaultConfig.show,\n ...(!!config && config.show),\n },\n expand: {\n ...defaultConfig.expand,\n ...(!!config && config.expand),\n },\n sidebar: {\n ...defaultConfig.sidebar,\n ...(!!config && config.sidebar),\n },\n extensions: {\n ...defaultConfig.extensions,\n ...(!!config && config.extensions),\n },\n };\n\n if (!asyncapi) {\n if (!error) {\n return null;\n }\n return (\n concatenatedConfig.show?.errors && (\n <section className=\"aui-root\">\n <Error error={error} />\n </section>\n )\n );\n }\n\n return (\n <AsyncApiLayout\n asyncapi={asyncapi}\n config={concatenatedConfig}\n pluginManager={pm}\n />\n );\n }\n\n private handler(eventName: string) {\n return (data: unknown) => {\n this.props.onPluginEvent!(eventName, data);\n };\n }\n private setupEventListeners() {\n const { onPluginEvent } = this.props;\n const { pm } = this.state;\n\n if (!onPluginEvent) return;\n\n PLUGINEVENTS.forEach((event) => {\n pm?.on(event, this.handler(event));\n });\n }\n\n private cleanupEventListeners() {\n const { pm } = this.state;\n PLUGINEVENTS.forEach((event) => {\n pm?.off(event, this.handler(event));\n });\n }\n\n private registerPlugins() {\n const { plugins } = this.props;\n const { pm } = this.state;\n\n plugins?.forEach((plugin) => {\n try {\n pm?.register(plugin);\n this.registeredPlugins.add(plugin.name);\n this.propsPlugins.add(plugin.name); // Track as props-managed\n } catch (error) {\n console.error(`Failed to register plugin ${plugin.name}:`, error);\n pm?.emit(PLUGINEVENTS[1], {\n pluginName: plugin.name,\n });\n }\n });\n }\n\n private updatePlugins(\n prevPlugins: AsyncApiPlugin[] | undefined,\n newPlugins: AsyncApiPlugin[] | undefined,\n ) {\n const { pm } = this.state;\n\n const prevPluginMap = new Map((prevPlugins ?? []).map((p) => [p.name, p]));\n const newPluginMap = new Map((newPlugins ?? []).map((p) => [p.name, p]));\n\n prevPluginMap.forEach((_plugin, name) => {\n if (!newPluginMap.has(name) && this.propsPlugins.has(name)) {\n try {\n pm?.unregister(name);\n this.registeredPlugins.delete(name);\n this.propsPlugins.delete(name);\n } catch (error) {\n console.error(`Failed to unregister plugin ${name}:`, error);\n }\n }\n });\n\n newPluginMap.forEach((plugin, name) => {\n if (!prevPluginMap.has(name)) {\n try {\n pm?.register(plugin);\n this.registeredPlugins.add(name);\n this.propsPlugins.add(name);\n } catch (error) {\n console.error(`Failed to register plugin ${name}:`, error);\n pm?.emit(PLUGINEVENTS[1], {\n pluginName: name,\n });\n }\n }\n });\n }\n\n private updateState(schema: PropsSchema) {\n const parsedSpec = SpecificationHelpers.retrieveParsedSpec(schema);\n if (!parsedSpec) {\n this.setState({ asyncapi: undefined });\n return;\n }\n this.setState({ asyncapi: parsedSpec });\n this.state.pm?.updateContext({ schema: parsedSpec });\n }\n}\n\nexport default AsyncApiComponent;\n"]}
@@ -2,9 +2,14 @@ import React from 'react';
2
2
  import { Extensions, Href, Markdown, Tags } from '../../components';
3
3
  import { useSpec } from '../../contexts';
4
4
  import { TERMS_OF_SERVICE_TEXT, CONTENT_TYPES_SITE, URL_SUPPORT_TEXT, EXTERAL_DOCUMENTATION_TEXT, } from '../../constants';
5
+ import { PluginManager } from '../../helpers/pluginManager';
6
+ import { SlotRenderer } from '../../components/PluginSlotRenderer';
7
+ import { usePlugin } from '../../contexts/usePlugin';
8
+ import { PluginSlot } from '../../types';
5
9
  export var Info = function () {
6
10
  var _a, _b, _c, _d, _e, _f, _g;
7
11
  var asyncapi = useSpec();
12
+ var pluginManager = usePlugin();
8
13
  var info = asyncapi.info();
9
14
  if (!info) {
10
15
  return null;
@@ -51,7 +56,10 @@ export var Info = function () {
51
56
  asyncapi.info().tags().length > 0 && (React.createElement("div", { className: "mt-4" },
52
57
  React.createElement(Tags, { tags: asyncapi.info().tags() }))),
53
58
  extensions.length > 0 && (React.createElement("div", { className: "mt-4" },
54
- React.createElement(Extensions, { name: "Info Extensions", item: info })))),
59
+ React.createElement(Extensions, { name: "Info Extensions", item: info }))),
60
+ PluginManager && (React.createElement(SlotRenderer, { slot: PluginSlot.INFO, context: {
61
+ schema: info,
62
+ }, pluginManager: pluginManager }))),
55
63
  React.createElement("div", { className: "panel-item--right" })));
56
64
  };
57
65
  //# sourceMappingURL=Info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Info.js","sourceRoot":"","sources":["../../../../src/containers/Info/Info.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Extensions, Href, Markdown, Tags } from '../../components';\nimport { useSpec } from '../../contexts';\nimport {\n TERMS_OF_SERVICE_TEXT,\n CONTENT_TYPES_SITE,\n URL_SUPPORT_TEXT,\n EXTERAL_DOCUMENTATION_TEXT,\n} from '../../constants';\n\nexport const Info: React.FunctionComponent = () => {\n const asyncapi = useSpec();\n\n const info = asyncapi.info();\n if (!info) {\n return null;\n }\n\n const specId = asyncapi.info().id();\n const externalDocs = asyncapi.info().externalDocs();\n const license = info.license();\n const termsOfService = info.termsOfService();\n const defaultContentType = asyncapi.defaultContentType();\n const contact = info.contact();\n const extensions = info.extensions();\n\n const showInfoList =\n license ?? termsOfService ?? defaultContentType ?? contact ?? externalDocs;\n\n return (\n <div className=\"panel-item\">\n <div className=\"panel-item--center px-8 text-left\" id=\"introduction\">\n <div className=\"text-4xl\">\n {info.title()}&nbsp;{info.version()}\n </div>\n\n {showInfoList && (\n <ul className=\"flex flex-wrap mt-2 leading-normal\">\n {license && (\n <li className=\"inline-block mt-2 mr-2\">\n {license.url() ? (\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={license.url() ?? ''}\n >\n <span>{license.name()}</span>\n </Href>\n ) : (\n <strong className=\"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 no-underline text-xs uppercase rounded px-3 py-1\">\n {license.name()}\n </strong>\n )}\n </li>\n )}\n {termsOfService && (\n <li className=\"inline-block mt-2 mr-2\">\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={termsOfService}\n >\n <span>{TERMS_OF_SERVICE_TEXT}</span>\n </Href>\n </li>\n )}\n {defaultContentType && (\n <li className=\"inline-block mt-2 mr-2\">\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={`${CONTENT_TYPES_SITE}/${defaultContentType}`}\n >\n <span>{defaultContentType}</span>\n </Href>\n </li>\n )}\n {externalDocs && (\n <li className=\"inline-block mt-2 mr-2\">\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 title={externalDocs.description() ?? undefined}\n >\n <span>{EXTERAL_DOCUMENTATION_TEXT}</span>\n </Href>\n </li>\n )}\n {contact && (\n <>\n {contact.url() && (\n <li className=\"inline-block mt-2 mr-2\">\n <Href\n className=\"border border-solid border-purple-300 hover:bg-purple-300 hover:text-purple-600 text-purple-500 font-bold no-underline text-xs uppercase rounded px-3 py-1\"\n href={contact.url() ?? ''}\n >\n <span>{contact.name() ?? URL_SUPPORT_TEXT}</span>\n </Href>\n </li>\n )}\n {contact.email() && (\n <li className=\"inline-block mt-2 mr-2\">\n <Href\n className=\"border border-solid border-purple-300 hover:bg-purple-300 hover:text-purple-600 text-purple-500 font-bold no-underline text-xs uppercase rounded px-3 py-1\"\n href={`mailto:${contact.email()}`}\n >\n <span>{contact.email()}</span>\n </Href>\n </li>\n )}\n </>\n )}\n {specId && (\n <li className=\"inline-block mt-2 mr-2\">\n <strong className=\"border border-solid border-blue-300 hover:bg-blue-300 hover:text-blue-600 text-blue-500 no-underline text-xs uppercase rounded px-3 py-1\">\n ID: {specId}\n </strong>\n </li>\n )}\n </ul>\n )}\n\n {info.hasDescription() && (\n <div className=\"mt-4\">\n <Markdown>{info.description()}</Markdown>\n </div>\n )}\n\n {asyncapi.info().tags().length > 0 && (\n <div className=\"mt-4\">\n <Tags tags={asyncapi.info().tags()} />\n </div>\n )}\n\n {extensions.length > 0 && (\n <div className=\"mt-4\">\n <Extensions name=\"Info Extensions\" item={info} />\n </div>\n )}\n </div>\n\n <div className=\"panel-item--right\" />\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"Info.js","sourceRoot":"","sources":["../../../../src/containers/Info/Info.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Extensions, Href, Markdown, Tags } from '../../components';\nimport { useSpec } from '../../contexts';\nimport {\n TERMS_OF_SERVICE_TEXT,\n CONTENT_TYPES_SITE,\n URL_SUPPORT_TEXT,\n EXTERAL_DOCUMENTATION_TEXT,\n} from '../../constants';\nimport { PluginManager } from '../../helpers/pluginManager';\nimport { SlotRenderer } from '../../components/PluginSlotRenderer';\nimport { usePlugin } from '../../contexts/usePlugin';\nimport { PluginSlot } from '../../types';\n\nexport const Info: React.FunctionComponent = () => {\n const asyncapi = useSpec();\n const pluginManager = usePlugin();\n\n const info = asyncapi.info();\n if (!info) {\n return null;\n }\n\n const specId = asyncapi.info().id();\n const externalDocs = asyncapi.info().externalDocs();\n const license = info.license();\n const termsOfService = info.termsOfService();\n const defaultContentType = asyncapi.defaultContentType();\n const contact = info.contact();\n const extensions = info.extensions();\n\n const showInfoList =\n license ?? termsOfService ?? defaultContentType ?? contact ?? externalDocs;\n\n return (\n <div className=\"panel-item\">\n <div className=\"panel-item--center px-8 text-left\" id=\"introduction\">\n <div className=\"text-4xl\">\n {info.title()}&nbsp;{info.version()}\n </div>\n\n {showInfoList && (\n <ul className=\"flex flex-wrap mt-2 leading-normal\">\n {license && (\n <li className=\"inline-block mt-2 mr-2\">\n {license.url() ? (\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={license.url() ?? ''}\n >\n <span>{license.name()}</span>\n </Href>\n ) : (\n <strong className=\"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 no-underline text-xs uppercase rounded px-3 py-1\">\n {license.name()}\n </strong>\n )}\n </li>\n )}\n {termsOfService && (\n <li className=\"inline-block mt-2 mr-2\">\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={termsOfService}\n >\n <span>{TERMS_OF_SERVICE_TEXT}</span>\n </Href>\n </li>\n )}\n {defaultContentType && (\n <li className=\"inline-block mt-2 mr-2\">\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={`${CONTENT_TYPES_SITE}/${defaultContentType}`}\n >\n <span>{defaultContentType}</span>\n </Href>\n </li>\n )}\n {externalDocs && (\n <li className=\"inline-block mt-2 mr-2\">\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 title={externalDocs.description() ?? undefined}\n >\n <span>{EXTERAL_DOCUMENTATION_TEXT}</span>\n </Href>\n </li>\n )}\n {contact && (\n <>\n {contact.url() && (\n <li className=\"inline-block mt-2 mr-2\">\n <Href\n className=\"border border-solid border-purple-300 hover:bg-purple-300 hover:text-purple-600 text-purple-500 font-bold no-underline text-xs uppercase rounded px-3 py-1\"\n href={contact.url() ?? ''}\n >\n <span>{contact.name() ?? URL_SUPPORT_TEXT}</span>\n </Href>\n </li>\n )}\n {contact.email() && (\n <li className=\"inline-block mt-2 mr-2\">\n <Href\n className=\"border border-solid border-purple-300 hover:bg-purple-300 hover:text-purple-600 text-purple-500 font-bold no-underline text-xs uppercase rounded px-3 py-1\"\n href={`mailto:${contact.email()}`}\n >\n <span>{contact.email()}</span>\n </Href>\n </li>\n )}\n </>\n )}\n {specId && (\n <li className=\"inline-block mt-2 mr-2\">\n <strong className=\"border border-solid border-blue-300 hover:bg-blue-300 hover:text-blue-600 text-blue-500 no-underline text-xs uppercase rounded px-3 py-1\">\n ID: {specId}\n </strong>\n </li>\n )}\n </ul>\n )}\n\n {info.hasDescription() && (\n <div className=\"mt-4\">\n <Markdown>{info.description()}</Markdown>\n </div>\n )}\n\n {asyncapi.info().tags().length > 0 && (\n <div className=\"mt-4\">\n <Tags tags={asyncapi.info().tags()} />\n </div>\n )}\n\n {extensions.length > 0 && (\n <div className=\"mt-4\">\n <Extensions name=\"Info Extensions\" item={info} />\n </div>\n )}\n {PluginManager && (\n <SlotRenderer\n slot={PluginSlot.INFO}\n context={{\n schema: info,\n }}\n pluginManager={pluginManager}\n />\n )}\n </div>\n\n <div className=\"panel-item--right\" />\n </div>\n );\n};\n"]}
@@ -17,7 +17,10 @@ import { Href } from '../../components/Href';
17
17
  import { useConfig, useSpec } from '../../contexts';
18
18
  import { CommonHelpers, SchemaHelpers } from '../../helpers';
19
19
  import { EXTERAL_DOCUMENTATION_TEXT } from '../../constants';
20
- import { PayloadType } from '../../types';
20
+ import { PayloadType, PluginSlot } from '../../types';
21
+ import { PluginManager } from '../../helpers/pluginManager';
22
+ import { SlotRenderer } from '../../components/PluginSlotRenderer';
23
+ import { usePlugin } from '../../contexts/usePlugin';
21
24
  export var Operation = function (props) {
22
25
  var _a = props.type, type = _a === void 0 ? PayloadType.SEND : _a, operation = props.operation, channelName = props.channelName, channel = props.channel;
23
26
  var config = useConfig();
@@ -67,6 +70,7 @@ export var Operation = function (props) {
67
70
  export var OperationInfo = function (props) {
68
71
  var _a = props.type, type = _a === void 0 ? PayloadType.SEND : _a, operation = props.operation, channelName = props.channelName, channel = props.channel;
69
72
  var config = useConfig();
73
+ var pluginManager = usePlugin();
70
74
  var operationSummary = operation.summary();
71
75
  var externalDocs = operation.externalDocs();
72
76
  var operationId = operation.id();
@@ -95,7 +99,10 @@ export var OperationInfo = function (props) {
95
99
  operationId && (React.createElement("div", { className: "border bg-gray-100 rounded px-4 py-2 mt-2" },
96
100
  React.createElement("div", { className: "text-sm text-gray-700" },
97
101
  "Operation ID",
98
- React.createElement("span", { className: "bg-orange-600 text-white rounded text-xs ml-2 py-0 px-2" }, operationId))))));
102
+ React.createElement("span", { className: "bg-orange-600 text-white rounded text-xs ml-2 py-0 px-2" }, operationId)))),
103
+ PluginManager && (React.createElement(SlotRenderer, { slot: PluginSlot.OPERATION, context: {
104
+ schema: props,
105
+ }, pluginManager: pluginManager }))));
99
106
  };
100
107
  export var OperationReplyInfo = function (props) {
101
108
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"Operation.js","sourceRoot":"","sources":["../../../../src/containers/Operations/Operation.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAS1C,MAAM,CAAC,IAAM,SAAS,GAAmC,UAAC,KAAK;IACrD,IAAA,KAA6D,KAAK,KAA3C,EAAvB,IAAI,mBAAG,WAAW,CAAC,IAAI,KAAA,EAAE,SAAS,GAA2B,KAAK,UAAhC,EAAE,WAAW,GAAc,KAAK,YAAnB,EAAE,OAAO,GAAK,KAAK,QAAV,CAAW;IAC3E,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE;QAC1B,OAAO,IAAI,CAAC;KACb;IAGD,IAAM,OAAO,GACX,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC;IAEnE,IAAM,QAAQ,GACZ,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;IACnE,IAAM,UAAU,GACd,OAAO,CAAC,UAAU,EAAE,KAAK,SAAS;QAChC,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxD,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,CACL;QACE,6BAAK,SAAS,EAAC,yBAAyB;YACtC,oBAAC,aAAa,eAAK,KAAK,EAAI;YAE3B,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC/B,6BAAK,SAAS,EAAC,cAAc;gBAC3B,4DAAiC;gBACjC,4BAAI,SAAS,EAAC,+BAA+B,IAC1C,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,CACvB,4BAAI,SAAS,EAAC,wBAAwB,EAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;oBACrD,2BACE,IAAI,EAAE,UAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAAI,aAAa,CAAC,aAAa,CAC9D,SAAS,GAAG,MAAM,CAAC,EAAE,EAAE,EACvB,MAAM,CACP,CAAE,EACH,SAAS,EAAC,yJAAyJ;wBAEnK,8BAAM,SAAS,EAAC,WAAW,IAAE,MAAM,CAAC,EAAE,EAAE,CAAQ,CAC9C,CACD,CACN,EAZwB,CAYxB,CAAC,CACC,CACD,CACP,CAAC,CAAC,CAAC,IAAI;YAEP,UAAU,IAAI,CACb,6BACE,SAAS,EAAC,MAAM,EAChB,EAAE,EAAE,aAAa,CAAC,aAAa,CAC7B,oBAAa,IAAI,cAAI,WAAW,gBAAa,EAC7C,MAAM,CACP;gBAED,oBAAC,MAAM,IAAC,UAAU,EAAC,YAAY,EAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,SAAG,CAC3D,CACP;YAEA,QAAQ,IAAI,CACX,6BACE,SAAS,EAAC,MAAM,EAChB,EAAE,EAAE,aAAa,CAAC,aAAa,CAC7B,oBAAa,IAAI,cAAI,WAAW,cAAW,EAC3C,MAAM,CACP;gBAED,oBAAC,QAAQ,IACP,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAC,kCAAkC,GACzC,CACE,CACP;YAEA,OAAO,CAAC,QAAQ,EAAE,IAAI,CACrB,6BAAK,SAAS,EAAC,MAAM;gBACnB,oBAAC,QAAQ,IACP,IAAI,EAAC,8BAA8B,EACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,GAC5B,CACE,CACP;YAED,oBAAC,UAAU,IAAC,IAAI,EAAC,oBAAoB,EAAC,IAAI,EAAE,OAAO,GAAI;YAEtD,SAAS,CAAC,QAAQ,EAAE,IAAI,CACvB,6BAAK,SAAS,EAAC,MAAM;gBACnB,oBAAC,QAAQ,IACP,IAAI,EAAC,gCAAgC,EACrC,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,GAC9B,CACE,CACP;YAED,oBAAC,UAAU,IAAC,IAAI,EAAC,sBAAsB,EAAC,IAAI,EAAE,SAAS,GAAI;YAE1D,SAAS,CAAC,IAAI,EAAE,IAAI,CACnB,6BAAK,SAAS,EAAC,MAAM;gBACnB,oBAAC,IAAI,IAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,GAAI,CAC5B,CACP,CACG;QAEN,6BACE,SAAS,EAAC,aAAa,EACvB,EAAE,EAAE,aAAa,CAAC,aAAa,CAC7B,oBAAa,IAAI,cAAI,WAAW,aAAU,EAC1C,MAAM,CACP,IAEA,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACjC,6BAAK,SAAS,EAAC,MAAM;YACnB,2BAAG,SAAS,EAAC,MAAM;;gBACT,6CAAuB;2CAC7B;YACJ,gCACG,SAAS;iBACP,QAAQ,EAAE;iBACV,GAAG,EAAE;iBACL,GAAG,CAAC,UAAC,GAAG,EAAE,GAAG,IAAK,OAAA,CACjB,4BAAI,SAAS,EAAC,MAAM,EAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;gBAChC,oBAAC,OAAO,IAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,SAAG,CAC/C,CACN,EAJkB,CAIlB,CAAC,CACD,CACD,CACP,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,MAAM;YACnB,2BAAG,SAAS,EAAC,MAAM,qCAAmC;YACtD,6BAAK,SAAS,EAAC,MAAM;gBACnB,oBAAC,OAAO,IAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,SAAG,CAC5D,CACF,CACP,CACG;QAEN,oBAAC,kBAAkB,eAAK,KAAK,EAAI,CAC7B,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,aAAa,GAAmC,UAAC,KAAK;IACzD,IAAA,KAA6D,KAAK,KAA3C,EAAvB,IAAI,mBAAG,WAAW,CAAC,IAAI,KAAA,EAAE,SAAS,GAA2B,KAAK,UAAhC,EAAE,WAAW,GAAc,KAAK,YAAnB,EAAE,OAAO,GAAK,KAAK,QAAV,CAAW;IAC3E,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7C,IAAM,YAAY,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;IAC9C,IAAM,WAAW,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC;IACnC,IAAM,KAAK,GAAG,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;IAClC,IAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,IAAM,YAAY,GAAG,OAAO,KAAK,CAAC,CAAC;IAC7B,IAAA,KACJ,aAAa,CAAC,6BAA6B,CAAC;QAC1C,IAAI,MAAA;QACJ,MAAM,QAAA;QACN,YAAY,cAAA;KACb,CAAC,EALI,eAAe,qBAAA,EAAE,SAAS,eAK9B,CAAC;IACL,OAAO,CACL;QACE,6BAAK,SAAS,EAAC,MAAM;YACnB;gBACE,8BACE,SAAS,EAAE,0DAAmD,eAAe,CAAE,EAC/E,KAAK,EAAE,IAAI,IAEV,SAAS,CACL;gBAAC,GAAG;gBACX,8BAAM,SAAS,EAAC,qBAAqB,IAAE,WAAW,CAAQ,CACvD,CACD;QAEL,OAAO,CAAC,cAAc,EAAE,IAAI,CAC3B,6BAAK,SAAS,EAAC,MAAM;YACnB,oBAAC,QAAQ,QAAE,OAAO,CAAC,WAAW,EAAE,CAAY,CACxC,CACP;QACA,gBAAgB,IAAI,CACnB,2BAAG,SAAS,EAAC,4BAA4B,IAAE,gBAAgB,CAAK,CACjE;QACA,SAAS,CAAC,cAAc,EAAE,IAAI,CAC7B,6BAAK,SAAS,EAAC,MAAM;YACnB,oBAAC,QAAQ,QAAE,SAAS,CAAC,WAAW,EAAE,CAAY,CAC1C,CACP;QAEA,YAAY,IAAI,CACf,4BAAI,SAAS,EAAC,8CAA8C,IACzD,YAAY,IAAI,CACf,4BAAI,SAAS,EAAC,cAAc;YAC1B,oBAAC,IAAI,IACH,SAAS,EAAC,4JAA4J,EACtK,IAAI,EAAE,YAAY,CAAC,GAAG,EAAE;gBAExB,kCAAO,0BAA0B,CAAQ,CACpC,CACJ,CACN,CACE,CACN;QAEA,WAAW,IAAI,CACd,6BAAK,SAAS,EAAC,2CAA2C;YACxD,6BAAK,SAAS,EAAC,uBAAuB;;gBAEpC,8BAAM,SAAS,EAAC,yDAAyD,IACtE,WAAW,CACP,CACH,CACF,CACP,CACA,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,kBAAkB,GAAmC,UAAC,KAAK;;IAC9D,IAAA,KAAuC,KAAK,KAArB,EAAvB,IAAI,mBAAG,WAAW,CAAC,IAAI,KAAA,EAAE,SAAS,GAAK,KAAK,UAAV,CAAW;IAC/C,IAAA,KAAkC,QAAQ,CAAC,KAAK,CAAC,EAAhD,YAAY,QAAA,EAAE,eAAe,QAAmB,CAAC;IAClD,IAAA,KAAgC,QAAQ,CAAC,KAAK,CAAC,EAA9C,WAAW,QAAA,EAAE,cAAc,QAAmB,CAAC;IACtD,IAAI,IAAI,KAAK,WAAW,CAAC,KAAK,IAAI,IAAI,KAAK,WAAW,CAAC,OAAO,EAAE;QAC9D,OAAO,yCAAK,CAAC;KACd;IACD,IAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;IAChC,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO,yCAAK,CAAC;KACd;IAED,IAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IACvC,IAAM,eAAe,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAExC,IAAM,YAAY,GAAG,MAAA,KAAK,CAAC,OAAO,EAAE,0CAAE,QAAQ,EAAE,CAAC;IAEjD,OAAO,CACL,6BAAK,SAAS,EAAC,YAAY;QACzB,6BAAK,SAAS,EAAC,oBAAoB;YACjC,6BAAK,SAAS,EAAC,qBAAqB;gBAClC,6BAAK,SAAS,EAAC,gBAAgB;oBAC7B,6BACE,SAAS,EAAE,iBACT,IAAI,KAAK,WAAW,CAAC,KAAK;4BACxB,CAAC,CAAC,+BAA+B;4BACjC,CAAC,CAAC,6BAA6B,oEAC8B;wBAEjE,wDAAkC,CAC9B;oBACN,6BAAK,SAAS,EAAC,MAAM;wBACnB,6BACE,SAAS,EAAE,mBACT,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,UACtD,GACP;wBACF,6BAAK,SAAS,EAAC,KAAK;4BAClB,4BAAI,SAAS,EAAC,SAAS;gCACrB,8BAAM,SAAS,EAAC,MAAM,EAAC,KAAK,EAAE,IAAI,gCAE3B,CACJ;4BACJ,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,EAAE,EAAC,CAAC,CAAC,CAC5B,6BAAK,SAAS,EAAC,uBAAuB;;gCACgB,GAAG;gCACvD,8BAAM,SAAS,EAAC,uDAAuD;oCACpE,eAAe,CAAC,OAAO,EAAE;oCAAE,GAAG,CAC1B,CACH,CACP,CAAC,CAAC,CAAC,CACF,YAAY,IAAI,IAAI,IAAI,CACtB,6BAAK,SAAS,EAAC,uBAAuB;;gCAE1B,GAAG;gCACb,8BAAM,SAAS,EAAC,uDAAuD,IACpE,YAAY,CACR,CACH,CACP,CACF;4BACD,6BAAK,SAAS,EAAC,MAAM;gCAClB,eAAe,IAAI,CAClB,oBAAC,cAAc,IACb,OAAO,EAAE,cAAM,OAAA,cAAc,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,IAAI,EAAL,CAAK,CAAC,EAA/B,CAA+B,EAC9C,QAAQ,EAAE,WAAW;oCAErB,8BAAM,SAAS,EAAC,uFAAuF,2BAEhG,CACQ,CAClB;gCACA,eAAe,IAAI,CAClB,6BACE,SAAS,EAAE,sBACT,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAChC;oCAEF,oBAAC,yBAAyB,eAAK,KAAK,EAAI;oCAAC,GAAG,CACxC,CACP,CACG,CACF,CACF;oBACN,oBAAC,yBAAyB,eAAK,KAAK,EAAI;oBACvC,aAAa,CAAC,OAAO,EAAE,KAAK,KAAK,IAAI,CACpC,6BAAK,SAAS,EAAC,KAAK;wBAClB,oBAAC,cAAc,IACb,OAAO,EAAE,cAAM,OAAA,eAAe,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,IAAI,EAAL,CAAK,CAAC,EAAhC,CAAgC,EAC/C,QAAQ,EAAE,YAAY;4BAEtB,8BAAM,SAAS,EAAC,uFAAuF;;gCACtF,GAAG;gCACjB,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAC7C,CACQ;wBACjB,6BACE,SAAS,EAAE,sBAAe,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAE,IAE5D,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC1B,6BAAK,SAAS,EAAC,MAAM;4BACnB,gCACG,aAAa,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,GAAG,IAAK,OAAA,CACrC,4BAAI,SAAS,EAAC,MAAM,EAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;gCAChC,oBAAC,OAAO,IAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,SAAG,CAC/C,CACN,EAJsC,CAItC,CAAC,CACC,CACD,CACP,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,MAAM;4BACnB,6BAAK,SAAS,EAAC,MAAM;gCACnB,oBAAC,OAAO,IACN,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAC/B,YAAY,SACZ,CACE,CACF,CACP,CACG,CACF,CACP,CACG,CACF;YAEN,oBAAC,UAAU,IAAC,IAAI,EAAC,4BAA4B,EAAC,IAAI,EAAE,KAAK,GAAI,CACzD,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,yBAAyB,GAAmC,UAAC,EAGzE;;QAFC,YAAuB,EAAvB,IAAI,mBAAG,WAAW,CAAC,IAAI,KAAA,EACvB,SAAS,eAAA;IAET,IAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;IAChC,IAAM,OAAO,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAE,CAAC;IACjC,IAAM,WAAW,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,EAAE,mCAAI,EAAE,CAAC;IAE7C,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAM,OAAO,GACX,OAAO,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA,KAAK,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC;IACpE,IAAM,UAAU,GACd,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,EAAE,MAAK,SAAS;QACjC,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxD,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,yCAAK,CAAC;KACd;IAED,OAAO,CACL;QACG,OAAO,CAAC,OAAO,EAAE,IAAI,CACpB,6BAAK,SAAS,EAAC,4BAA4B;;YAChC,GAAG;YACZ,8BAAM,SAAS,EAAC,kDAAkD,IAC/D,OAAO,CAAC,OAAO,EAAE,CACb,CACH,CACP;QACA,OAAO,CAAC,cAAc,EAAE,IAAI,CAC3B,6BAAK,SAAS,EAAC,MAAM;YACnB,oBAAC,QAAQ,QAAE,OAAO,CAAC,WAAW,EAAE,CAAY,CACxC,CACP;QACA,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC/B,6BAAK,SAAS,EAAC,cAAc;YAC3B,4DAAiC;YACjC,4BAAI,SAAS,EAAC,+BAA+B,IAC1C,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,CACvB,4BAAI,SAAS,EAAC,wBAAwB,EAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;gBACrD,2BACE,IAAI,EAAE,UAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAAI,aAAa,CAAC,aAAa,CAC9D,SAAS,GAAG,MAAM,CAAC,EAAE,EAAE,EACvB,MAAM,CACP,CAAE,EACH,SAAS,EAAC,yJAAyJ;oBAEnK,8BAAM,SAAS,EAAC,WAAW,IAAE,MAAM,CAAC,EAAE,EAAE,CAAQ,CAC9C,CACD,CACN,EAZwB,CAYxB,CAAC,CACC,CACD,CACP,CAAC,CAAC,CAAC,IAAI;QACP,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACrC,6BAAK,SAAS,EAAC,MAAM;YACnB,8BAAM,SAAS,EAAC,uBAAuB,gBAAiB;YACxD,gCACG,OAAO;iBACL,QAAQ,EAAE;iBACV,GAAG,EAAE;iBACL,GAAG,CAAC,UAAC,GAAG,EAAE,GAAG,IAAK,OAAA,CACjB,4BAAI,SAAS,EAAC,MAAM,EAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;gBAChC,oBAAC,OAAO,IAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,SAAG,CAC/C,CACN,EAJkB,CAIlB,CAAC,CACD,CACD,CACP,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,MAAM;YACnB,8BAAM,SAAS,EAAC,uBAAuB,eAAgB;YACvD,6BAAK,SAAS,EAAC,MAAM;gBACnB,oBAAC,OAAO,IAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,SAAG,CAC1D,CACF,CACP;QACA,UAAU,IAAI,CACb,6BACE,SAAS,EAAC,MAAM,EAChB,EAAE,EAAE,aAAa,CAAC,aAAa,CAC7B,oBAAa,IAAI,cAAI,WAAW,gBAAa,EAC7C,MAAM,CACP;YAED,oBAAC,MAAM,IAAC,UAAU,EAAC,YAAY,EAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,SAAG,CAC3D,CACP;QACA,OAAO,CAAC,QAAQ,EAAE,IAAI,CACrB,6BAAK,SAAS,EAAC,MAAM;YACnB,oBAAC,QAAQ,IAAC,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAI,CACtD,CACP,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,yBAAyB,GAAmC,UAAC,EAGzE;QAFC,YAAuB,EAAvB,IAAI,mBAAG,WAAW,CAAC,IAAI,KAAA,EACvB,SAAS,eAAA;IAET,IAAI,IAAI,KAAK,WAAW,CAAC,KAAK,IAAI,IAAI,KAAK,WAAW,CAAC,OAAO,EAAE;QAC9D,OAAO,yCAAK,CAAC;KACd;IACD,IAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;IAChC,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAA,EAAE;QACnB,OAAO,yCAAK,CAAC;KACd;IACD,IAAM,YAAY,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAErC,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,yCAAK,CAAC;KACd;IAED,IAAM,oBAAoB,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IAErD,OAAO,CACL,6BAAK,SAAS,EAAC,MAAM;QACnB,6BACE,SAAS,EAAE,mBACT,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,UACtD,GACP;QACF,6BAAK,SAAS,EAAC,KAAK;YAClB,4BAAI,SAAS,EAAC,SAAS;gBACrB,8BAAM,SAAS,EAAC,gBAAgB,EAAC,KAAK,EAAE,IAAI,gCAErC,CACJ;YACJ,oBAAoB,IAAI,CACvB,6BAAK,SAAS,EAAC,uBAAuB;;gBAEpC,8BAAM,SAAS,EAAC,uDAAuD,IACpE,oBAAoB,CAChB,CACH,CACP;YACA,YAAY,CAAC,cAAc,EAAE,IAAI,CAChC,6BAAK,SAAS,EAAC,MAAM;gBACnB,oBAAC,QAAQ,QAAE,YAAY,CAAC,WAAW,EAAE,CAAY,CAC7C,CACP;YACD,oBAAC,UAAU,IAAC,IAAI,EAAC,oCAAoC,EAAC,IAAI,EAAE,KAAK,GAAI,CACjE,CACF,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React, { useState } from 'react';\nimport { ChannelInterface, OperationInterface } from '@asyncapi/parser';\nimport { Message } from '../Messages/Message';\nimport { Security } from '../Servers/Security';\nimport {\n Markdown,\n Schema,\n Bindings,\n Tags,\n Extensions,\n CollapseButton,\n} from '../../components';\nimport { Href } from '../../components/Href';\nimport { useConfig, useSpec } from '../../contexts';\nimport { CommonHelpers, SchemaHelpers } from '../../helpers';\nimport { EXTERAL_DOCUMENTATION_TEXT } from '../../constants';\nimport { PayloadType } from '../../types';\n\ninterface Props {\n type: PayloadType;\n operation: OperationInterface;\n channelName: string;\n channel: ChannelInterface;\n}\n\nexport const Operation: React.FunctionComponent<Props> = (props) => {\n const { type = PayloadType.SEND, operation, channelName, channel } = props;\n const config = useConfig();\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={`${window.location.pathname}#${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 schemaName=\"Parameters\" schema={parameters} expanded />\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={msg.id()}>\n <Message message={msg} index={idx} showExamples />\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 message={operation.messages().all()[0]} showExamples />\n </div>\n </div>\n )}\n </div>\n\n <OperationReplyInfo {...props} />\n </div>\n );\n};\n\nexport const OperationInfo: React.FunctionComponent<Props> = (props) => {\n const { type = PayloadType.SEND, 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 specV = useSpec().version();\n const version = specV.localeCompare('2.6.0', undefined, { numeric: true });\n const isAsyncAPIv2 = version === 0;\n const { backgroundColor, typeLabel } =\n CommonHelpers.getOperationDesignInformation({\n type,\n config,\n isAsyncAPIv2,\n });\n return (\n <>\n <div className=\"mb-4\">\n <h3>\n <span\n className={`font-mono text-white uppercase p-1 rounded mr-2 ${backgroundColor}`}\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=\"bg-orange-600 text-white rounded text-xs ml-2 py-0 px-2\">\n {operationId}\n </span>\n </div>\n </div>\n )}\n </>\n );\n};\n\nexport const OperationReplyInfo: React.FunctionComponent<Props> = (props) => {\n const { type = PayloadType.SEND, operation } = props;\n const [showMessages, setShowMessages] = useState(false);\n const [showChannel, setShowChannel] = useState(false);\n if (type !== PayloadType.REPLY && type !== PayloadType.REQUEST) {\n return <></>;\n }\n const reply = operation.reply();\n if (reply === undefined) {\n return <></>;\n }\n\n const replyMessages = reply.messages();\n const explicitChannel = reply.channel();\n\n const replyAddress = reply.address()?.location();\n\n return (\n <div className=\"panel-item\">\n <div className=\"panel-item--center\">\n <div className=\"font-mono px-8 py-4\">\n <div className=\"border rounded\">\n <div\n className={`w-full ${\n type === PayloadType.REPLY\n ? 'bg-green-600 border-green-600'\n : 'bg-blue-600 border-blue-600'\n } text-sm rounded-t h-8 px-4 border text-white flex items-center`}\n >\n <strong>REPLY INFORMATION</strong>\n </div>\n <div className=\"flex\">\n <div\n className={`w-1 h-11 ${\n type === PayloadType.REPLY ? 'bg-green-600' : 'bg-blue-600'\n } mt-4`}\n />\n <div className=\"p-4\">\n <h3 className=\"text-xs\">\n <span className=\"mr-2\" title={type}>\n REPLY CHANNEL INFORMATION\n </span>\n </h3>\n {explicitChannel?.address() ? (\n <div className=\"text-xs text-gray-700\">\n Reply will be provided via this designated address:{' '}\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {explicitChannel.address()}{' '}\n </span>\n </div>\n ) : (\n replyAddress != null && (\n <div className=\"text-xs text-gray-700\">\n Reply will be directed to the address specified at this\n location:{' '}\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {replyAddress}\n </span>\n </div>\n )\n )}\n <div className=\"mt-2\">\n {explicitChannel && (\n <CollapseButton\n onClick={() => setShowChannel((prev) => !prev)}\n expanded={showChannel}\n >\n <span className=\"inline-block py-0.5 mr-1 text-gray-500 text-xs text-center rounded focus:outline-none\">\n View channel details\n </span>\n </CollapseButton>\n )}\n {explicitChannel && (\n <div\n className={`w-full mt-4 ${\n showChannel ? 'block' : 'hidden'\n }`}\n >\n <OperationReplyChannelInfo {...props} />{' '}\n </div>\n )}\n </div>\n </div>\n </div>\n <OperationReplyAddressInfo {...props} />\n {replyMessages.isEmpty() === false && (\n <div className=\"p-4\">\n <CollapseButton\n onClick={() => setShowMessages((prev) => !prev)}\n expanded={showMessages}\n >\n <span className=\"inline-block py-0.5 mr-1 text-gray-500 text-xs text-center rounded focus:outline-none\">\n Expected Reply{' '}\n {replyMessages.length > 1 ? 'Messages' : 'Message'}\n </span>\n </CollapseButton>\n <div\n className={`w-full mt-4 ${showMessages ? 'block' : 'hidden'}`}\n >\n {replyMessages.length > 1 ? (\n <div className=\"mt-2\">\n <ul>\n {replyMessages.all().map((msg, idx) => (\n <li className=\"mt-4\" key={msg.id()}>\n <Message message={msg} index={idx} showExamples />\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className=\"mt-2\">\n <div className=\"mt-2\">\n <Message\n message={replyMessages.all()[0]}\n showExamples\n />\n </div>\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n\n <Extensions name=\"Operation Reply Extensions\" item={reply} />\n </div>\n </div>\n );\n};\n\nexport const OperationReplyChannelInfo: React.FunctionComponent<Props> = ({\n type = PayloadType.SEND,\n operation,\n}) => {\n const reply = operation.reply();\n const channel = reply?.channel();\n const channelName = channel?.address() ?? '';\n\n const config = useConfig();\n const servers =\n typeof channel?.servers === 'function' && channel.servers().all();\n const parameters =\n channel?.parameters() !== undefined\n ? SchemaHelpers.parametersToSchema(channel.parameters())\n : undefined;\n\n if (!channel) {\n return <></>;\n }\n\n return (\n <div>\n {channel.address() && (\n <div className=\"mt-2 text-xs text-gray-700\">\n Address:{' '}\n <span className=\"border text-orange-600 rounded text-xs py-0 px-2\">\n {channel.address()}\n </span>\n </div>\n )}\n {channel.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{channel.description()}</Markdown>\n </div>\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={`${window.location.pathname}#${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 {channel.messages().all().length > 1 ? (\n <div className=\"mt-2\">\n <span className=\"text-xs text-gray-700\">Messages:</span>\n <ul>\n {channel\n .messages()\n .all()\n .map((msg, idx) => (\n <li className=\"mt-4\" key={msg.id()}>\n <Message message={msg} index={idx} showExamples />\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className=\"mt-2\">\n <span className=\"text-xs text-gray-700\">Message:</span>\n <div className=\"mt-2\">\n <Message message={channel.messages().all()[0]} showExamples />\n </div>\n </div>\n )}\n {parameters && (\n <div\n className=\"mt-2\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-parameters`,\n config,\n )}\n >\n <Schema schemaName=\"Parameters\" schema={parameters} expanded />\n </div>\n )}\n {channel.bindings() && (\n <div className=\"mt-2\">\n <Bindings name=\"Bindings\" bindings={channel.bindings()} />\n </div>\n )}\n </div>\n );\n};\n\nexport const OperationReplyAddressInfo: React.FunctionComponent<Props> = ({\n type = PayloadType.SEND,\n operation,\n}) => {\n if (type !== PayloadType.REPLY && type !== PayloadType.REQUEST) {\n return <></>;\n }\n const reply = operation.reply();\n if (!reply?.address) {\n return <></>;\n }\n const replyAddress = reply.address();\n\n if (!replyAddress) {\n return <></>;\n }\n\n const replyAddressLocation = replyAddress.location();\n\n return (\n <div className=\"flex\">\n <div\n className={`w-1 h-11 ${\n type === PayloadType.REPLY ? 'bg-green-600' : 'bg-blue-600'\n } mt-4`}\n />\n <div className=\"p-4\">\n <h3 className=\"text-xs\">\n <span className=\"mr-2 uppercase\" title={type}>\n REPLY address information\n </span>\n </h3>\n {replyAddressLocation && (\n <div className=\"text-xs text-gray-700\">\n REPLY will be sent to the address provided in:\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {replyAddressLocation}\n </span>\n </div>\n )}\n {replyAddress.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{replyAddress.description()}</Markdown>\n </div>\n )}\n <Extensions name=\"Operation Reply Address Extensions\" item={reply} />\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"Operation.js","sourceRoot":"","sources":["../../../../src/containers/Operations/Operation.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport { ChannelInterface, OperationInterface } from '@asyncapi/parser';\nimport { Message } from '../Messages/Message';\nimport { Security } from '../Servers/Security';\nimport {\n Markdown,\n Schema,\n Bindings,\n Tags,\n Extensions,\n CollapseButton,\n} from '../../components';\nimport { Href } from '../../components/Href';\nimport { useConfig, useSpec } from '../../contexts';\nimport { CommonHelpers, SchemaHelpers } from '../../helpers';\nimport { EXTERAL_DOCUMENTATION_TEXT } from '../../constants';\nimport { PayloadType, PluginSlot } from '../../types';\nimport { PluginManager } from '../../helpers/pluginManager';\nimport { SlotRenderer } from '../../components/PluginSlotRenderer';\nimport { usePlugin } from '../../contexts/usePlugin';\n\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 { type = PayloadType.SEND, operation, channelName, channel } = props;\n const config = useConfig();\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 {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={`${window.location.pathname}#${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 schemaName=\"Parameters\" schema={parameters} expanded />\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={msg.id()}>\n <Message message={msg} index={idx} showExamples />\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 message={operation.messages().all()[0]} showExamples />\n </div>\n </div>\n )}\n </div>\n\n <OperationReplyInfo {...props} />\n </div>\n );\n};\n\nexport const OperationInfo: React.FunctionComponent<Props> = (props) => {\n const { type = PayloadType.SEND, operation, channelName, channel } = props;\n const config = useConfig();\n const pluginManager = usePlugin();\n const operationSummary = operation.summary();\n const externalDocs = operation.externalDocs();\n const operationId = operation.id();\n const specV = useSpec().version();\n const version = specV.localeCompare('2.6.0', undefined, { numeric: true });\n const isAsyncAPIv2 = version === 0;\n const { backgroundColor, typeLabel } =\n CommonHelpers.getOperationDesignInformation({\n type,\n config,\n isAsyncAPIv2,\n });\n return (\n <>\n <div className=\"mb-4\">\n <h3>\n <span\n className={`font-mono text-white uppercase p-1 rounded mr-2 ${backgroundColor}`}\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=\"bg-orange-600 text-white rounded text-xs ml-2 py-0 px-2\">\n {operationId}\n </span>\n </div>\n </div>\n )}\n {PluginManager && (\n <SlotRenderer\n slot={PluginSlot.OPERATION}\n context={{\n schema: props,\n }}\n pluginManager={pluginManager}\n />\n )}\n </>\n );\n};\n\nexport const OperationReplyInfo: React.FunctionComponent<Props> = (props) => {\n const { type = PayloadType.SEND, operation } = props;\n const [showMessages, setShowMessages] = useState(false);\n const [showChannel, setShowChannel] = useState(false);\n if (type !== PayloadType.REPLY && type !== PayloadType.REQUEST) {\n return <></>;\n }\n const reply = operation.reply();\n if (reply === undefined) {\n return <></>;\n }\n\n const replyMessages = reply.messages();\n const explicitChannel = reply.channel();\n\n const replyAddress = reply.address()?.location();\n\n return (\n <div className=\"panel-item\">\n <div className=\"panel-item--center\">\n <div className=\"font-mono px-8 py-4\">\n <div className=\"border rounded\">\n <div\n className={`w-full ${\n type === PayloadType.REPLY\n ? 'bg-green-600 border-green-600'\n : 'bg-blue-600 border-blue-600'\n } text-sm rounded-t h-8 px-4 border text-white flex items-center`}\n >\n <strong>REPLY INFORMATION</strong>\n </div>\n <div className=\"flex\">\n <div\n className={`w-1 h-11 ${\n type === PayloadType.REPLY ? 'bg-green-600' : 'bg-blue-600'\n } mt-4`}\n />\n <div className=\"p-4\">\n <h3 className=\"text-xs\">\n <span className=\"mr-2\" title={type}>\n REPLY CHANNEL INFORMATION\n </span>\n </h3>\n {explicitChannel?.address() ? (\n <div className=\"text-xs text-gray-700\">\n Reply will be provided via this designated address:{' '}\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {explicitChannel.address()}{' '}\n </span>\n </div>\n ) : (\n replyAddress != null && (\n <div className=\"text-xs text-gray-700\">\n Reply will be directed to the address specified at this\n location:{' '}\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {replyAddress}\n </span>\n </div>\n )\n )}\n <div className=\"mt-2\">\n {explicitChannel && (\n <CollapseButton\n onClick={() => setShowChannel((prev) => !prev)}\n expanded={showChannel}\n >\n <span className=\"inline-block py-0.5 mr-1 text-gray-500 text-xs text-center rounded focus:outline-none\">\n View channel details\n </span>\n </CollapseButton>\n )}\n {explicitChannel && (\n <div\n className={`w-full mt-4 ${\n showChannel ? 'block' : 'hidden'\n }`}\n >\n <OperationReplyChannelInfo {...props} />{' '}\n </div>\n )}\n </div>\n </div>\n </div>\n <OperationReplyAddressInfo {...props} />\n {replyMessages.isEmpty() === false && (\n <div className=\"p-4\">\n <CollapseButton\n onClick={() => setShowMessages((prev) => !prev)}\n expanded={showMessages}\n >\n <span className=\"inline-block py-0.5 mr-1 text-gray-500 text-xs text-center rounded focus:outline-none\">\n Expected Reply{' '}\n {replyMessages.length > 1 ? 'Messages' : 'Message'}\n </span>\n </CollapseButton>\n <div\n className={`w-full mt-4 ${showMessages ? 'block' : 'hidden'}`}\n >\n {replyMessages.length > 1 ? (\n <div className=\"mt-2\">\n <ul>\n {replyMessages.all().map((msg, idx) => (\n <li className=\"mt-4\" key={msg.id()}>\n <Message message={msg} index={idx} showExamples />\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className=\"mt-2\">\n <div className=\"mt-2\">\n <Message\n message={replyMessages.all()[0]}\n showExamples\n />\n </div>\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n\n <Extensions name=\"Operation Reply Extensions\" item={reply} />\n </div>\n </div>\n );\n};\n\nexport const OperationReplyChannelInfo: React.FunctionComponent<Props> = ({\n type = PayloadType.SEND,\n operation,\n}) => {\n const reply = operation.reply();\n const channel = reply?.channel();\n const channelName = channel?.address() ?? '';\n\n const config = useConfig();\n const servers =\n typeof channel?.servers === 'function' && channel.servers().all();\n const parameters =\n channel?.parameters() !== undefined\n ? SchemaHelpers.parametersToSchema(channel.parameters())\n : undefined;\n\n if (!channel) {\n return <></>;\n }\n\n return (\n <div>\n {channel.address() && (\n <div className=\"mt-2 text-xs text-gray-700\">\n Address:{' '}\n <span className=\"border text-orange-600 rounded text-xs py-0 px-2\">\n {channel.address()}\n </span>\n </div>\n )}\n {channel.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{channel.description()}</Markdown>\n </div>\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={`${window.location.pathname}#${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 {channel.messages().all().length > 1 ? (\n <div className=\"mt-2\">\n <span className=\"text-xs text-gray-700\">Messages:</span>\n <ul>\n {channel\n .messages()\n .all()\n .map((msg, idx) => (\n <li className=\"mt-4\" key={msg.id()}>\n <Message message={msg} index={idx} showExamples />\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className=\"mt-2\">\n <span className=\"text-xs text-gray-700\">Message:</span>\n <div className=\"mt-2\">\n <Message message={channel.messages().all()[0]} showExamples />\n </div>\n </div>\n )}\n {parameters && (\n <div\n className=\"mt-2\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-parameters`,\n config,\n )}\n >\n <Schema schemaName=\"Parameters\" schema={parameters} expanded />\n </div>\n )}\n {channel.bindings() && (\n <div className=\"mt-2\">\n <Bindings name=\"Bindings\" bindings={channel.bindings()} />\n </div>\n )}\n </div>\n );\n};\n\nexport const OperationReplyAddressInfo: React.FunctionComponent<Props> = ({\n type = PayloadType.SEND,\n operation,\n}) => {\n if (type !== PayloadType.REPLY && type !== PayloadType.REQUEST) {\n return <></>;\n }\n const reply = operation.reply();\n if (!reply?.address) {\n return <></>;\n }\n const replyAddress = reply.address();\n\n if (!replyAddress) {\n return <></>;\n }\n\n const replyAddressLocation = replyAddress.location();\n\n return (\n <div className=\"flex\">\n <div\n className={`w-1 h-11 ${\n type === PayloadType.REPLY ? 'bg-green-600' : 'bg-blue-600'\n } mt-4`}\n />\n <div className=\"p-4\">\n <h3 className=\"text-xs\">\n <span className=\"mr-2 uppercase\" title={type}>\n REPLY address information\n </span>\n </h3>\n {replyAddressLocation && (\n <div className=\"text-xs text-gray-700\">\n REPLY will be sent to the address provided in:\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {replyAddressLocation}\n </span>\n </div>\n )}\n {replyAddress.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{replyAddress.description()}</Markdown>\n </div>\n )}\n <Extensions name=\"Operation Reply Address Extensions\" item={reply} />\n </div>\n </div>\n );\n};\n"]}
@@ -0,0 +1,6 @@
1
+ import { createContext, useContext } from 'react';
2
+ export var PluginContext = createContext(undefined);
3
+ export function usePlugin() {
4
+ return useContext(PluginContext);
5
+ }
6
+ //# sourceMappingURL=usePlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePlugin.js","sourceRoot":"","sources":["../../../src/contexts/usePlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGlD,MAAM,CAAC,IAAM,aAAa,GAAG,aAAa,CACxC,SAAS,CACV,CAAC;AAEF,MAAM,UAAU,SAAS;IACvB,OAAO,UAAU,CAAC,aAAa,CAAC,CAAC;AACnC,CAAC","sourcesContent":["import { createContext, useContext } from 'react';\nimport { PluginManager } from '../helpers/pluginManager';\n\nexport const PluginContext = createContext<PluginManager | undefined>(\n undefined,\n);\n\nexport function usePlugin() {\n return useContext(PluginContext);\n}\n"]}
@@ -0,0 +1,113 @@
1
+ var PluginManager = (function () {
2
+ function PluginManager(initialContext) {
3
+ this.plugins = new Map();
4
+ this.slotComponents = new Map();
5
+ this.eventListeners = new Map();
6
+ this.context = initialContext;
7
+ }
8
+ PluginManager.prototype.register = function (plugin) {
9
+ if (this.plugins.has(plugin.name)) {
10
+ console.warn("Plugin ".concat(plugin.name, " is already registered"));
11
+ return;
12
+ }
13
+ var api = this.createPluginAPI(plugin);
14
+ plugin.install(api);
15
+ this.plugins.set(plugin.name, plugin);
16
+ };
17
+ PluginManager.prototype.unregister = function (pluginName) {
18
+ var plugin = this.plugins.get(pluginName);
19
+ if (!plugin) {
20
+ console.warn("Plugin \"".concat(pluginName, "\" not found"));
21
+ return;
22
+ }
23
+ this.plugins.delete(pluginName);
24
+ this.slotComponents.forEach(function (components) {
25
+ var index = components.findIndex(function (c) {
26
+ return c.pluginName === pluginName;
27
+ });
28
+ if (index > -1) {
29
+ components.splice(index, 1);
30
+ }
31
+ });
32
+ };
33
+ PluginManager.prototype.createPluginAPI = function (plugin) {
34
+ var _this = this;
35
+ return {
36
+ registerComponent: function (slot, component, options) {
37
+ var _a;
38
+ if (options === void 0) { options = {}; }
39
+ if (!_this.slotComponents.has(slot)) {
40
+ _this.slotComponents.set(slot, []);
41
+ }
42
+ var priority = (_a = options.priority) !== null && _a !== void 0 ? _a : 100;
43
+ _this.slotComponents.get(slot).push({
44
+ component: component,
45
+ priority: priority,
46
+ label: options.label,
47
+ pluginName: plugin === null || plugin === void 0 ? void 0 : plugin.name,
48
+ });
49
+ _this.slotComponents.get(slot).sort(function (a, b) { return b.priority - a.priority; });
50
+ },
51
+ onSpecLoaded: function (callback) {
52
+ _this.on('specLoaded', callback);
53
+ },
54
+ getContext: function () { return _this.context; },
55
+ on: function (eventName, callback) {
56
+ _this.on(eventName, callback);
57
+ },
58
+ off: function (eventName, callback) {
59
+ _this.off(eventName, callback);
60
+ },
61
+ emit: function (eventName, data) {
62
+ _this.emit(eventName, data);
63
+ },
64
+ };
65
+ };
66
+ PluginManager.prototype.on = function (eventName, callback) {
67
+ if (!this.eventListeners.has(eventName)) {
68
+ this.eventListeners.set(eventName, new Set());
69
+ }
70
+ this.eventListeners.get(eventName).add(callback);
71
+ };
72
+ PluginManager.prototype.off = function (eventName, callback) {
73
+ var listeners = this.eventListeners.get(eventName);
74
+ if (listeners) {
75
+ listeners.delete(callback);
76
+ if (listeners.size === 0) {
77
+ this.eventListeners.delete(eventName);
78
+ }
79
+ }
80
+ };
81
+ PluginManager.prototype.emit = function (eventName, data) {
82
+ var eventListeners = this.eventListeners.get(eventName);
83
+ if (eventListeners) {
84
+ eventListeners.forEach(function (callback) { return callback(data); });
85
+ }
86
+ };
87
+ PluginManager.prototype.listeners = function (eventName) {
88
+ var listeners = this.eventListeners.get(eventName);
89
+ return listeners ? Array.from(listeners) : [];
90
+ };
91
+ PluginManager.prototype.eventNames = function () {
92
+ return Array.from(this.eventListeners.keys());
93
+ };
94
+ PluginManager.prototype.getComponentsForSlot = function (slot) {
95
+ var _a;
96
+ return ((_a = this.slotComponents.get(slot)) !== null && _a !== void 0 ? _a : []).map(function (c) { return c.component; });
97
+ };
98
+ PluginManager.prototype.updateContext = function (updates) {
99
+ this.context = updates;
100
+ };
101
+ PluginManager.prototype.getPlugin = function (name) {
102
+ return this.plugins.get(name);
103
+ };
104
+ PluginManager.prototype.listPlugins = function () {
105
+ return Array.from(this.plugins.values()).map(function (p) { return ({
106
+ name: p.name,
107
+ version: p.version,
108
+ }); });
109
+ };
110
+ return PluginManager;
111
+ }());
112
+ export { PluginManager };
113
+ //# sourceMappingURL=pluginManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginManager.js","sourceRoot":"","sources":["../../../src/helpers/pluginManager.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AsyncApiPlugin,\n ComponentSlotProps,\n EventListener,\n MessageBus,\n PluginAPI,\n PluginContext,\n PluginSlot,\n} from '../types';\n\nclass PluginManager implements MessageBus {\n private readonly plugins = new Map<string, AsyncApiPlugin>();\n private readonly slotComponents = new Map<\n PluginSlot,\n {\n component: React.ComponentType<ComponentSlotProps>;\n priority: number;\n label?: string;\n pluginName: string;\n }[]\n >();\n private readonly eventListeners = new Map<string, Set<EventListener>>();\n private context: PluginContext;\n\n constructor(initialContext: PluginContext) {\n this.context = initialContext;\n }\n\n register(plugin: AsyncApiPlugin): void {\n if (this.plugins.has(plugin.name)) {\n console.warn(`Plugin ${plugin.name} is already registered`);\n return;\n }\n\n const api = this.createPluginAPI(plugin);\n plugin.install(api);\n this.plugins.set(plugin.name, plugin);\n }\n\n unregister(pluginName: string): void {\n const plugin = this.plugins.get(pluginName);\n if (!plugin) {\n console.warn(`Plugin \"${pluginName}\" not found`);\n return;\n }\n\n this.plugins.delete(pluginName);\n\n this.slotComponents.forEach((components) => {\n const index = components.findIndex((c) => {\n return c.pluginName === pluginName;\n });\n if (index > -1) {\n components.splice(index, 1);\n }\n });\n }\n\n private createPluginAPI(plugin: AsyncApiPlugin): PluginAPI {\n return {\n registerComponent: (slot, component, options = {}) => {\n if (!this.slotComponents.has(slot)) {\n this.slotComponents.set(slot, []);\n }\n\n const priority = options.priority ?? 100;\n this.slotComponents.get(slot)!.push({\n component,\n priority,\n label: options.label,\n pluginName: plugin?.name,\n });\n\n this.slotComponents.get(slot)!.sort((a, b) => b.priority - a.priority);\n },\n\n onSpecLoaded: (callback) => {\n this.on('specLoaded', callback);\n },\n\n getContext: () => this.context,\n\n on: (eventName, callback) => {\n this.on(eventName, callback);\n },\n\n off: (eventName, callback) => {\n this.off(eventName, callback);\n },\n\n emit: (eventName, data) => {\n this.emit(eventName, data);\n },\n };\n }\n\n on(eventName: string, callback: (data: unknown) => void): void {\n if (!this.eventListeners.has(eventName)) {\n this.eventListeners.set(eventName, new Set());\n }\n this.eventListeners.get(eventName)!.add(callback);\n }\n\n off(eventName: string, callback: (data: unknown) => void): void {\n const listeners = this.eventListeners.get(eventName);\n if (listeners) {\n listeners.delete(callback);\n if (listeners.size === 0) {\n this.eventListeners.delete(eventName);\n }\n }\n }\n\n public emit(eventName: string, data: unknown): void {\n const eventListeners = this.eventListeners.get(eventName);\n if (eventListeners) {\n eventListeners.forEach((callback) => callback(data));\n }\n }\n\n listeners(eventName: string): EventListener[] {\n const listeners = this.eventListeners.get(eventName);\n return listeners ? Array.from(listeners) : [];\n }\n\n eventNames(): string[] {\n return Array.from(this.eventListeners.keys());\n }\n\n getComponentsForSlot(\n slot: PluginSlot,\n ): React.ComponentType<ComponentSlotProps>[] {\n return (this.slotComponents.get(slot) ?? []).map((c) => c.component);\n }\n\n updateContext(updates: PluginContext): void {\n this.context = updates;\n }\n\n getPlugin(name: string): AsyncApiPlugin | undefined {\n return this.plugins.get(name);\n }\n\n listPlugins(): { name: string; version: string }[] {\n return Array.from(this.plugins.values()).map((p) => ({\n name: p.name,\n version: p.version,\n }));\n }\n}\n\nexport { PluginManager };\n"]}
package/lib/esm/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import AsyncApiComponent from './containers/AsyncApi/AsyncApi';
2
2
  import AsyncApiComponentWP from './containers/AsyncApi/Standalone';
3
+ export { PluginSlot, } from './types';
3
4
  import { hljs } from './helpers';
4
5
  export { AsyncApiComponentWP, hljs };
5
6
  export default AsyncApiComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,mBAAmB,MAAM,kCAAkC,CAAC;AAMnE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;AACrC,eAAe,iBAAiB,CAAC","sourcesContent":["import AsyncApiComponent from './containers/AsyncApi/AsyncApi';\nimport AsyncApiComponentWP from './containers/AsyncApi/Standalone';\n\nexport { AsyncApiProps } from './containers/AsyncApi/AsyncApi';\nexport { ConfigInterface } from './config/config';\nexport { FetchingSchemaInterface, ExtensionComponentProps } from './types';\n\nimport { hljs } from './helpers';\n\nexport { AsyncApiComponentWP, hljs };\nexport default AsyncApiComponent;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,mBAAmB,MAAM,kCAAkC,CAAC;AAInE,OAAO,EAKL,UAAU,GAEX,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;AACrC,eAAe,iBAAiB,CAAC","sourcesContent":["import AsyncApiComponent from './containers/AsyncApi/AsyncApi';\nimport AsyncApiComponentWP from './containers/AsyncApi/Standalone';\n\nexport { AsyncApiProps } from './containers/AsyncApi/AsyncApi';\nexport { ConfigInterface } from './config/config';\nexport {\n FetchingSchemaInterface,\n ExtensionComponentProps,\n AsyncApiPlugin,\n PluginAPI,\n PluginSlot,\n PluginContext,\n} from './types';\n\nimport { hljs } from './helpers';\n\nexport { AsyncApiComponentWP, hljs };\nexport default AsyncApiComponent;\n"]}