@asyncapi/react-component 2.6.4 → 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 (82) hide show
  1. package/LICENSE +201 -202
  2. package/README.md +15 -9
  3. package/browser/index.js +1 -1
  4. package/browser/standalone/index.js +1 -1
  5. package/browser/standalone/without-parser.js +1 -1
  6. package/browser/without-parser.js +1 -1
  7. package/lib/cjs/components/CollapseButton.js +4 -4
  8. package/lib/cjs/components/CollapseButton.js.map +1 -1
  9. package/lib/cjs/components/PluginSlotRenderer.js +21 -0
  10. package/lib/cjs/components/PluginSlotRenderer.js.map +1 -0
  11. package/lib/cjs/constants.js +2 -1
  12. package/lib/cjs/constants.js.map +1 -1
  13. package/lib/cjs/containers/AsyncApi/AsyncApi.js +2 -2
  14. package/lib/cjs/containers/AsyncApi/AsyncApi.js.map +1 -1
  15. package/lib/cjs/containers/AsyncApi/Layout.js +15 -13
  16. package/lib/cjs/containers/AsyncApi/Layout.js.map +1 -1
  17. package/lib/cjs/containers/AsyncApi/Standalone.js +99 -3
  18. package/lib/cjs/containers/AsyncApi/Standalone.js.map +1 -1
  19. package/lib/cjs/containers/Info/Info.js +9 -1
  20. package/lib/cjs/containers/Info/Info.js.map +1 -1
  21. package/lib/cjs/containers/Operations/Operation.js +8 -1
  22. package/lib/cjs/containers/Operations/Operation.js.map +1 -1
  23. package/lib/cjs/containers/Sidebar/Sidebar.js +6 -7
  24. package/lib/cjs/containers/Sidebar/Sidebar.js.map +1 -1
  25. package/lib/cjs/contexts/usePlugin.js +10 -0
  26. package/lib/cjs/contexts/usePlugin.js.map +1 -0
  27. package/lib/cjs/helpers/pluginManager.js +116 -0
  28. package/lib/cjs/helpers/pluginManager.js.map +1 -0
  29. package/lib/cjs/index.js +3 -1
  30. package/lib/cjs/index.js.map +1 -1
  31. package/lib/cjs/types.js +6 -1
  32. package/lib/cjs/types.js.map +1 -1
  33. package/lib/esm/components/CollapseButton.js +4 -4
  34. package/lib/esm/components/CollapseButton.js.map +1 -1
  35. package/lib/esm/components/PluginSlotRenderer.js +15 -0
  36. package/lib/esm/components/PluginSlotRenderer.js.map +1 -0
  37. package/lib/esm/constants.js +1 -0
  38. package/lib/esm/constants.js.map +1 -1
  39. package/lib/esm/containers/AsyncApi/AsyncApi.js +2 -2
  40. package/lib/esm/containers/AsyncApi/AsyncApi.js.map +1 -1
  41. package/lib/esm/containers/AsyncApi/Layout.js +15 -13
  42. package/lib/esm/containers/AsyncApi/Layout.js.map +1 -1
  43. package/lib/esm/containers/AsyncApi/Standalone.js +99 -3
  44. package/lib/esm/containers/AsyncApi/Standalone.js.map +1 -1
  45. package/lib/esm/containers/Info/Info.js +9 -1
  46. package/lib/esm/containers/Info/Info.js.map +1 -1
  47. package/lib/esm/containers/Operations/Operation.js +9 -2
  48. package/lib/esm/containers/Operations/Operation.js.map +1 -1
  49. package/lib/esm/containers/Sidebar/Sidebar.js +6 -7
  50. package/lib/esm/containers/Sidebar/Sidebar.js.map +1 -1
  51. package/lib/esm/contexts/usePlugin.js +6 -0
  52. package/lib/esm/contexts/usePlugin.js.map +1 -0
  53. package/lib/esm/helpers/pluginManager.js +113 -0
  54. package/lib/esm/helpers/pluginManager.js.map +1 -0
  55. package/lib/esm/index.js +1 -0
  56. package/lib/esm/index.js.map +1 -1
  57. package/lib/esm/types.js +5 -0
  58. package/lib/esm/types.js.map +1 -1
  59. package/lib/types/components/PluginSlotRenderer.d.ts +11 -0
  60. package/lib/types/components/PluginSlotRenderer.d.ts.map +1 -0
  61. package/lib/types/constants.d.ts +1 -0
  62. package/lib/types/constants.d.ts.map +1 -1
  63. package/lib/types/containers/AsyncApi/AsyncApi.d.ts +5 -1
  64. package/lib/types/containers/AsyncApi/AsyncApi.d.ts.map +1 -1
  65. package/lib/types/containers/AsyncApi/Layout.d.ts +2 -0
  66. package/lib/types/containers/AsyncApi/Layout.d.ts.map +1 -1
  67. package/lib/types/containers/AsyncApi/Standalone.d.ts +13 -1
  68. package/lib/types/containers/AsyncApi/Standalone.d.ts.map +1 -1
  69. package/lib/types/containers/Info/Info.d.ts.map +1 -1
  70. package/lib/types/containers/Operations/Operation.d.ts.map +1 -1
  71. package/lib/types/containers/Sidebar/Sidebar.d.ts.map +1 -1
  72. package/lib/types/contexts/usePlugin.d.ts +5 -0
  73. package/lib/types/contexts/usePlugin.d.ts.map +1 -0
  74. package/lib/types/helpers/pluginManager.d.ts +26 -0
  75. package/lib/types/helpers/pluginManager.d.ts.map +1 -0
  76. package/lib/types/index.d.ts +1 -1
  77. package/lib/types/index.d.ts.map +1 -1
  78. package/lib/types/types.d.ts +38 -0
  79. package/lib/types/types.d.ts.map +1 -1
  80. package/package.json +5 -4
  81. package/styles/default.css +15 -0
  82. package/styles/default.min.css +1 -1
@@ -46,12 +46,9 @@ export var Sidebar = function () {
46
46
  React.createElement("a", { className: "flex break-words no-underline text-gray-700 mt-2 hover:text-gray-900", href: "#schema-".concat(schema.id()), onClick: function () { return setShowSidebar(false); } },
47
47
  React.createElement("div", { className: "break-all inline-block" }, schema.id()))));
48
48
  }))));
49
- var operationList = hasOperations && (React.createElement(React.Fragment, null,
50
- React.createElement("li", { className: "mb-3 mt-9" },
51
- React.createElement("a", { className: "text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900", href: "#operations", onClick: function () { return setShowSidebar(false); } }, "Operations"),
52
- React.createElement(OperationsList, null)),
53
- showMessages && messagesList,
54
- showSchemas && schemasList));
49
+ var operationList = hasOperations && (React.createElement("li", { className: "mb-3 mt-9" },
50
+ React.createElement("a", { className: "text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900", href: "#operations", onClick: function () { return setShowSidebar(false); } }, "Operations"),
51
+ React.createElement(OperationsList, null)));
55
52
  return (React.createElement(SidebarContext.Provider, { value: { setShowSidebar: setShowSidebar } },
56
53
  React.createElement("div", { className: "burger-menu rounded-full h-16 w-16 bg-white fixed bottom-16 right-8 flex items-center justify-center z-30 cursor-pointer shadow-md bg-teal-500", onClick: function () { return setShowSidebar(function (prev) { return !prev; }); }, "data-lol": showSidebar },
57
54
  React.createElement("svg", { viewBox: "0 0 100 70", width: "40", height: "30", className: "fill-current text-gray-200" },
@@ -71,7 +68,9 @@ export var Sidebar = function () {
71
68
  asyncapi.servers().length > 0 && (React.createElement("li", { className: "mb-3 mt-9" },
72
69
  React.createElement("a", { className: "text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900", href: "#servers", onClick: function () { return setShowSidebar(false); } }, "Servers"),
73
70
  React.createElement(ServersList, null))),
74
- operationList))))));
71
+ operationList,
72
+ showMessages && messagesList,
73
+ showSchemas && schemasList))))));
75
74
  };
76
75
  var ServersList = function () {
77
76
  var _a, _b;
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../../src/containers/Sidebar/Sidebar.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useContext } from 'react';\nimport { CollapseButton } from '../../components';\nimport { useConfig, useSpec } from '../../contexts';\nimport { CommonHelpers } from '../../helpers';\nimport { PayloadType } from '../../types';\nimport { TagObject, filterObjectsByTags } from '../../helpers/sidebar';\n\nconst SidebarContext = React.createContext<{\n setShowSidebar: React.Dispatch<React.SetStateAction<boolean>>;\n}>({\n setShowSidebar: (value: boolean | ((prevValue: boolean) => boolean)) => value,\n});\n\nexport const Sidebar: React.FunctionComponent = () => {\n const [showSidebar, setShowSidebar] = useState(false);\n const asyncapi = useSpec();\n const config = useConfig();\n\n const info = asyncapi.info();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const logo = info.extensions().get('x-logo')?.value();\n const components = asyncapi.components();\n const messages = components?.messages().all();\n const schemas = components?.schemas().all();\n const hasOperations = asyncapi.operations().length > 0;\n\n const showMessages = config.show?.messages;\n const showSchemas = config.show?.schemas;\n\n const messagesList = messages?.length > 0 && (\n <li className=\"mb-3 mt-9\">\n <a\n className=\"text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900\"\n href=\"#messages\"\n onClick={() => setShowSidebar(false)}\n >\n Messages\n </a>\n <ul className=\"text-sm mt-2\">\n {messages.map((message, index) => (\n <li key={`menu-message-list-${message.name() ?? index}`}>\n <a\n className=\"flex break-words no-underline text-gray-700 mt-2 hover:text-gray-900\"\n href={`#message-${message.name() ?? message.id()}`}\n onClick={() => setShowSidebar(false)}\n >\n <div className=\"break-all inline-block\">{message.id()}</div>\n </a>\n </li>\n ))}\n </ul>\n </li>\n );\n\n const schemasList = schemas?.length > 0 && (\n <li className=\"mb-3 mt-9\">\n <a\n className=\"text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900\"\n href=\"#schemas\"\n onClick={() => setShowSidebar(false)}\n >\n Schemas\n </a>\n <ul className=\"text-sm mt-2\">\n {schemas.map((schema, index) => (\n <li key={`menu-message-list-${schema.id() ?? index}`}>\n <a\n className=\"flex break-words no-underline text-gray-700 mt-2 hover:text-gray-900\"\n href={`#schema-${schema.id()}`}\n onClick={() => setShowSidebar(false)}\n >\n <div className=\"break-all inline-block\">{schema.id()}</div>\n </a>\n </li>\n ))}\n </ul>\n </li>\n );\n\n const operationList = hasOperations && (\n <>\n <li className=\"mb-3 mt-9\">\n <a\n className=\"text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900\"\n href=\"#operations\"\n onClick={() => setShowSidebar(false)}\n >\n Operations\n </a>\n <OperationsList />\n </li>\n {showMessages && messagesList}\n {showSchemas && schemasList}\n </>\n );\n\n return (\n <SidebarContext.Provider value={{ setShowSidebar }}>\n <div\n className=\"burger-menu rounded-full h-16 w-16 bg-white fixed bottom-16 right-8 flex items-center justify-center z-30 cursor-pointer shadow-md bg-teal-500\"\n onClick={() => setShowSidebar((prev) => !prev)}\n data-lol={showSidebar}\n >\n <svg\n viewBox=\"0 0 100 70\"\n width=\"40\"\n height=\"30\"\n className=\"fill-current text-gray-200\"\n >\n <rect width=\"100\" height=\"10\" />\n <rect y=\"30\" width=\"100\" height=\"10\" />\n <rect y=\"60\" width=\"100\" height=\"10\" />\n </svg>\n </div>\n <div\n className={`${\n showSidebar ? 'block fixed w-full' : 'hidden'\n } sidebar relative w-64 max-h-screen h-full bg-gray-200 shadow z-20`}\n >\n <div\n className={`${\n showSidebar ? 'sidebar--wrapper' : ''\n } block fixed max-h-screen h-full font-sans px-4 pt-8 pb-16 overflow-y-auto bg-gray-200`}\n >\n <div className=\"sidebar--content\">\n <div>\n {logo ? (\n // eslint-disable-next-line @next/next/no-img-element\n <img\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n src={logo}\n alt={`${info.title()} logo, ${info.version()} version`}\n />\n ) : (\n <h1 className=\"text-2xl font-light\">\n {info.title()} {info.version()}\n </h1>\n )}\n </div>\n\n <ul className=\"text-sm mt-10 relative\">\n <li className=\"mb-3\">\n <a\n className=\"text-gray-700 no-underline hover:text-gray-900\"\n href=\"#introduction\"\n onClick={() => setShowSidebar(false)}\n >\n Introduction\n </a>\n </li>\n {asyncapi.servers().length > 0 && (\n <li className=\"mb-3 mt-9\">\n <a\n className=\"text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900\"\n href=\"#servers\"\n onClick={() => setShowSidebar(false)}\n >\n Servers\n </a>\n <ServersList />\n </li>\n )}\n {operationList}\n </ul>\n </div>\n </div>\n </div>\n </SidebarContext.Provider>\n );\n};\n\nconst ServersList: React.FunctionComponent = () => {\n const sidebarConfig = useConfig().sidebar;\n const asyncapi = useSpec();\n const servers = asyncapi.servers().all();\n const showServers = sidebarConfig?.showServers ?? 'byDefault';\n\n if (showServers === 'byDefault') {\n return (\n <ul className=\"text-sm mt-2\">\n {servers.map((server) => (\n <ServerItem serverName={server.id()} key={server.id()} />\n ))}\n </ul>\n );\n }\n\n let specTagNames: string[];\n if (showServers === 'bySpecTags') {\n specTagNames = (asyncapi.info().tags().all() ?? []).map((tag) =>\n tag.name(),\n );\n } else {\n const serverTagNamesSet = new Set<string>();\n servers.forEach((server) => {\n server.tags().forEach((t) => serverTagNamesSet.add(t.name()));\n });\n specTagNames = Array.from(serverTagNamesSet);\n }\n\n const serializedServers: TagObject[] = servers.map((server) => ({\n name: server.id(),\n tags: server.tags(),\n data: {},\n }));\n const { tagged, untagged } = filterObjectsByTags(\n specTagNames,\n serializedServers,\n );\n return (\n <ul className=\"text-sm mt-2\">\n {Array.from(tagged.entries()).map(([tag, taggedServers]) => (\n <li key={tag}>\n <ItemsByTagItem tagName={tag}>\n {taggedServers.map(({ name: serverName }) => (\n <ServerItem serverName={serverName} key={serverName} />\n ))}\n </ItemsByTagItem>\n </li>\n ))}\n {untagged.length > 0 ? (\n <li>\n <ItemsByTagItem tagName=\"Untagged\">\n {untagged.map(({ name: serverName }) => (\n <ServerItem serverName={serverName} key={serverName} />\n ))}\n </ItemsByTagItem>\n </li>\n ) : null}\n </ul>\n );\n};\n\ninterface OperationItemProps {\n label: string;\n type: PayloadType;\n operationHrefId: string;\n}\nconst OperationsList: React.FunctionComponent = () => {\n const config = useConfig();\n const sidebarConfig = config.sidebar;\n const asyncapi = useSpec();\n const operations = asyncapi.operations().all();\n const showOperations = sidebarConfig?.showOperations ?? 'byDefault';\n\n const processedOperations: TagObject<OperationItemProps>[] = operations.map(\n (operation) => {\n const operationChannel = operation.channels();\n const operationHrefId = CommonHelpers.getOperationIdentifier({\n operation,\n config,\n });\n const type = CommonHelpers.getOperationType(operation);\n\n const specV = asyncapi.version();\n const version = specV.localeCompare('2.6.0', undefined, {\n numeric: true,\n });\n let label = '';\n if (version === 0 || sidebarConfig?.useChannelAddressAsIdentifier) {\n // old version uses different labels for the operations\n const operationChannels = operationChannel.all();\n const channelAddress = operationChannels[0]?.address() ?? '';\n const operationSummary = operation.summary();\n label = operationSummary ?? channelAddress;\n } else {\n label = operation.id() ?? '';\n }\n return {\n name: `${type}-${operation.id()}`,\n tags: operation.tags(),\n data: {\n label,\n type,\n operationHrefId,\n },\n };\n },\n );\n\n if (showOperations === 'byDefault') {\n return (\n <ul className=\"text-sm mt-2\">\n {processedOperations.map(({ name, data }) => (\n <OperationItem key={name} {...data} />\n ))}\n </ul>\n );\n }\n\n let operationTagNames: string[];\n if (showOperations === 'bySpecTags') {\n operationTagNames = (asyncapi.info().tags().all() ?? []).map((tag) =>\n tag.name(),\n );\n } else {\n const operationTagNamesSet = new Set<string>();\n operations.forEach((operation) => {\n operation\n .tags()\n .all()\n .forEach((t) => operationTagNamesSet.add(t.name()));\n });\n operationTagNames = Array.from(operationTagNamesSet);\n }\n\n const { tagged, untagged } = filterObjectsByTags(\n operationTagNames,\n processedOperations,\n );\n return (\n <ul className=\"text-sm mt-2\">\n {Array.from(tagged.entries()).map(([tag, taggedOperations]) => (\n <li key={tag}>\n <ItemsByTagItem tagName={tag}>\n {taggedOperations.map(({ name, data }) => (\n <OperationItem key={name} {...data} />\n ))}\n </ItemsByTagItem>\n </li>\n ))}\n {untagged.length > 0 ? (\n <li>\n <ItemsByTagItem tagName=\"Untagged\">\n {untagged.map(({ name, data }) => (\n <OperationItem key={name} {...data} />\n ))}\n </ItemsByTagItem>\n </li>\n ) : null}\n </ul>\n );\n};\n\nconst OperationItem: React.FunctionComponent<OperationItemProps> = ({\n type,\n operationHrefId,\n label,\n}) => {\n const config = useConfig();\n const { setShowSidebar } = useContext(SidebarContext);\n const specV = useSpec().version();\n const version = specV.localeCompare('2.6.0', undefined, { numeric: true });\n const isAsyncAPIv2 = version === 0;\n const { typeLabel, backgroundColor } =\n CommonHelpers.getOperationDesignInformation({\n type,\n config,\n isAsyncAPIv2,\n });\n const bgColors = [\n 'bg-red-600',\n 'bg-orange-600',\n 'bg-green-600',\n 'bg-blue-600',\n ];\n\n return (\n <li key={`menu-operation-list-${operationHrefId}`}>\n <a\n className=\"flex no-underline text-gray-700 mb-2 hover:text-gray-900\"\n href={`#${operationHrefId}`}\n onClick={() => setShowSidebar(false)}\n >\n <strong\n className={`h-6 no-underline text-white uppercase p-1 mr-2 rounded text-xs ${bgColors.includes(backgroundColor) && backgroundColor}`}\n title={typeLabel}\n >\n {typeLabel}\n </strong>\n <span className=\"break-all inline-block\">{label}</span>\n </a>\n </li>\n );\n};\n\ninterface ServerItemProps {\n serverName: string;\n}\n\nconst ServerItem: React.FunctionComponent<ServerItemProps> = ({\n serverName,\n}) => {\n const { setShowSidebar } = useContext(SidebarContext);\n\n return (\n <li>\n <a\n className=\"flex no-underline text-gray-700 mb-2 hover:text-gray-900\"\n href={`#server-${serverName}`}\n onClick={() => setShowSidebar(false)}\n >\n <span className=\"break-all inline-block\">{serverName}</span>\n </a>\n </li>\n );\n};\n\ninterface ItemsByTagItemProps {\n tagName: string;\n children: React.ReactNode;\n}\n\nconst ItemsByTagItem: React.FunctionComponent<ItemsByTagItemProps> = ({\n tagName,\n children,\n}) => {\n const [expand, setExpand] = useState(false);\n\n return (\n <div>\n <CollapseButton\n onClick={() => setExpand((prev) => !prev)}\n chevronProps={{\n className: expand ? '-rotate-180' : '-rotate-90',\n }}\n >\n <span className=\"text-sm inline-block mt-1 font-extralight\">\n {tagName}\n </span>\n </CollapseButton>\n <ul className={`${expand ? 'block' : 'hidden'} text-sm mt-2 font-light`}>\n {children}\n </ul>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../../src/containers/Sidebar/Sidebar.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useContext } from 'react';\nimport { CollapseButton } from '../../components';\nimport { useConfig, useSpec } from '../../contexts';\nimport { CommonHelpers } from '../../helpers';\nimport { PayloadType } from '../../types';\nimport { TagObject, filterObjectsByTags } from '../../helpers/sidebar';\n\nconst SidebarContext = React.createContext<{\n setShowSidebar: React.Dispatch<React.SetStateAction<boolean>>;\n}>({\n setShowSidebar: (value: boolean | ((prevValue: boolean) => boolean)) => value,\n});\n\nexport const Sidebar: React.FunctionComponent = () => {\n const [showSidebar, setShowSidebar] = useState(false);\n const asyncapi = useSpec();\n const config = useConfig();\n\n const info = asyncapi.info();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const logo = info.extensions().get('x-logo')?.value();\n const components = asyncapi.components();\n const messages = components?.messages().all();\n const schemas = components?.schemas().all();\n const hasOperations = asyncapi.operations().length > 0;\n\n const showMessages = config.show?.messages;\n const showSchemas = config.show?.schemas;\n\n const messagesList = messages?.length > 0 && (\n <li className=\"mb-3 mt-9\">\n <a\n className=\"text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900\"\n href=\"#messages\"\n onClick={() => setShowSidebar(false)}\n >\n Messages\n </a>\n <ul className=\"text-sm mt-2\">\n {messages.map((message, index) => (\n <li key={`menu-message-list-${message.name() ?? index}`}>\n <a\n className=\"flex break-words no-underline text-gray-700 mt-2 hover:text-gray-900\"\n href={`#message-${message.name() ?? message.id()}`}\n onClick={() => setShowSidebar(false)}\n >\n <div className=\"break-all inline-block\">{message.id()}</div>\n </a>\n </li>\n ))}\n </ul>\n </li>\n );\n\n const schemasList = schemas?.length > 0 && (\n <li className=\"mb-3 mt-9\">\n <a\n className=\"text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900\"\n href=\"#schemas\"\n onClick={() => setShowSidebar(false)}\n >\n Schemas\n </a>\n <ul className=\"text-sm mt-2\">\n {schemas.map((schema, index) => (\n <li key={`menu-message-list-${schema.id() ?? index}`}>\n <a\n className=\"flex break-words no-underline text-gray-700 mt-2 hover:text-gray-900\"\n href={`#schema-${schema.id()}`}\n onClick={() => setShowSidebar(false)}\n >\n <div className=\"break-all inline-block\">{schema.id()}</div>\n </a>\n </li>\n ))}\n </ul>\n </li>\n );\n\n const operationList = hasOperations && (\n <li className=\"mb-3 mt-9\">\n <a\n className=\"text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900\"\n href=\"#operations\"\n onClick={() => setShowSidebar(false)}\n >\n Operations\n </a>\n <OperationsList />\n </li>\n );\n\n return (\n <SidebarContext.Provider value={{ setShowSidebar }}>\n <div\n className=\"burger-menu rounded-full h-16 w-16 bg-white fixed bottom-16 right-8 flex items-center justify-center z-30 cursor-pointer shadow-md bg-teal-500\"\n onClick={() => setShowSidebar((prev) => !prev)}\n data-lol={showSidebar}\n >\n <svg\n viewBox=\"0 0 100 70\"\n width=\"40\"\n height=\"30\"\n className=\"fill-current text-gray-200\"\n >\n <rect width=\"100\" height=\"10\" />\n <rect y=\"30\" width=\"100\" height=\"10\" />\n <rect y=\"60\" width=\"100\" height=\"10\" />\n </svg>\n </div>\n <div\n className={`${\n showSidebar ? 'block fixed w-full' : 'hidden'\n } sidebar relative w-64 max-h-screen h-full bg-gray-200 shadow z-20`}\n >\n <div\n className={`${\n showSidebar ? 'sidebar--wrapper' : ''\n } block fixed max-h-screen h-full font-sans px-4 pt-8 pb-16 overflow-y-auto bg-gray-200`}\n >\n <div className=\"sidebar--content\">\n <div>\n {logo ? (\n // eslint-disable-next-line @next/next/no-img-element\n <img\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n src={logo}\n alt={`${info.title()} logo, ${info.version()} version`}\n />\n ) : (\n <h1 className=\"text-2xl font-light\">\n {info.title()} {info.version()}\n </h1>\n )}\n </div>\n\n <ul className=\"text-sm mt-10 relative\">\n <li className=\"mb-3\">\n <a\n className=\"text-gray-700 no-underline hover:text-gray-900\"\n href=\"#introduction\"\n onClick={() => setShowSidebar(false)}\n >\n Introduction\n </a>\n </li>\n {asyncapi.servers().length > 0 && (\n <li className=\"mb-3 mt-9\">\n <a\n className=\"text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900\"\n href=\"#servers\"\n onClick={() => setShowSidebar(false)}\n >\n Servers\n </a>\n <ServersList />\n </li>\n )}\n {operationList}\n {showMessages && messagesList}\n {showSchemas && schemasList}\n </ul>\n </div>\n </div>\n </div>\n </SidebarContext.Provider>\n );\n};\n\nconst ServersList: React.FunctionComponent = () => {\n const sidebarConfig = useConfig().sidebar;\n const asyncapi = useSpec();\n const servers = asyncapi.servers().all();\n const showServers = sidebarConfig?.showServers ?? 'byDefault';\n\n if (showServers === 'byDefault') {\n return (\n <ul className=\"text-sm mt-2\">\n {servers.map((server) => (\n <ServerItem serverName={server.id()} key={server.id()} />\n ))}\n </ul>\n );\n }\n\n let specTagNames: string[];\n if (showServers === 'bySpecTags') {\n specTagNames = (asyncapi.info().tags().all() ?? []).map((tag) =>\n tag.name(),\n );\n } else {\n const serverTagNamesSet = new Set<string>();\n servers.forEach((server) => {\n server.tags().forEach((t) => serverTagNamesSet.add(t.name()));\n });\n specTagNames = Array.from(serverTagNamesSet);\n }\n\n const serializedServers: TagObject[] = servers.map((server) => ({\n name: server.id(),\n tags: server.tags(),\n data: {},\n }));\n const { tagged, untagged } = filterObjectsByTags(\n specTagNames,\n serializedServers,\n );\n return (\n <ul className=\"text-sm mt-2\">\n {Array.from(tagged.entries()).map(([tag, taggedServers]) => (\n <li key={tag}>\n <ItemsByTagItem tagName={tag}>\n {taggedServers.map(({ name: serverName }) => (\n <ServerItem serverName={serverName} key={serverName} />\n ))}\n </ItemsByTagItem>\n </li>\n ))}\n {untagged.length > 0 ? (\n <li>\n <ItemsByTagItem tagName=\"Untagged\">\n {untagged.map(({ name: serverName }) => (\n <ServerItem serverName={serverName} key={serverName} />\n ))}\n </ItemsByTagItem>\n </li>\n ) : null}\n </ul>\n );\n};\n\ninterface OperationItemProps {\n label: string;\n type: PayloadType;\n operationHrefId: string;\n}\nconst OperationsList: React.FunctionComponent = () => {\n const config = useConfig();\n const sidebarConfig = config.sidebar;\n const asyncapi = useSpec();\n const operations = asyncapi.operations().all();\n const showOperations = sidebarConfig?.showOperations ?? 'byDefault';\n\n const processedOperations: TagObject<OperationItemProps>[] = operations.map(\n (operation) => {\n const operationChannel = operation.channels();\n const operationHrefId = CommonHelpers.getOperationIdentifier({\n operation,\n config,\n });\n const type = CommonHelpers.getOperationType(operation);\n\n const specV = asyncapi.version();\n const version = specV.localeCompare('2.6.0', undefined, {\n numeric: true,\n });\n let label = '';\n if (version === 0 || sidebarConfig?.useChannelAddressAsIdentifier) {\n // old version uses different labels for the operations\n const operationChannels = operationChannel.all();\n const channelAddress = operationChannels[0]?.address() ?? '';\n const operationSummary = operation.summary();\n label = operationSummary ?? channelAddress;\n } else {\n label = operation.id() ?? '';\n }\n return {\n name: `${type}-${operation.id()}`,\n tags: operation.tags(),\n data: {\n label,\n type,\n operationHrefId,\n },\n };\n },\n );\n\n if (showOperations === 'byDefault') {\n return (\n <ul className=\"text-sm mt-2\">\n {processedOperations.map(({ name, data }) => (\n <OperationItem key={name} {...data} />\n ))}\n </ul>\n );\n }\n\n let operationTagNames: string[];\n if (showOperations === 'bySpecTags') {\n operationTagNames = (asyncapi.info().tags().all() ?? []).map((tag) =>\n tag.name(),\n );\n } else {\n const operationTagNamesSet = new Set<string>();\n operations.forEach((operation) => {\n operation\n .tags()\n .all()\n .forEach((t) => operationTagNamesSet.add(t.name()));\n });\n operationTagNames = Array.from(operationTagNamesSet);\n }\n\n const { tagged, untagged } = filterObjectsByTags(\n operationTagNames,\n processedOperations,\n );\n return (\n <ul className=\"text-sm mt-2\">\n {Array.from(tagged.entries()).map(([tag, taggedOperations]) => (\n <li key={tag}>\n <ItemsByTagItem tagName={tag}>\n {taggedOperations.map(({ name, data }) => (\n <OperationItem key={name} {...data} />\n ))}\n </ItemsByTagItem>\n </li>\n ))}\n {untagged.length > 0 ? (\n <li>\n <ItemsByTagItem tagName=\"Untagged\">\n {untagged.map(({ name, data }) => (\n <OperationItem key={name} {...data} />\n ))}\n </ItemsByTagItem>\n </li>\n ) : null}\n </ul>\n );\n};\n\nconst OperationItem: React.FunctionComponent<OperationItemProps> = ({\n type,\n operationHrefId,\n label,\n}) => {\n const config = useConfig();\n const { setShowSidebar } = useContext(SidebarContext);\n const specV = useSpec().version();\n const version = specV.localeCompare('2.6.0', undefined, { numeric: true });\n const isAsyncAPIv2 = version === 0;\n const { typeLabel, backgroundColor } =\n CommonHelpers.getOperationDesignInformation({\n type,\n config,\n isAsyncAPIv2,\n });\n const bgColors = [\n 'bg-red-600',\n 'bg-orange-600',\n 'bg-green-600',\n 'bg-blue-600',\n ];\n\n return (\n <li key={`menu-operation-list-${operationHrefId}`}>\n <a\n className=\"flex no-underline text-gray-700 mb-2 hover:text-gray-900\"\n href={`#${operationHrefId}`}\n onClick={() => setShowSidebar(false)}\n >\n <strong\n className={`h-6 no-underline text-white uppercase p-1 mr-2 rounded text-xs ${bgColors.includes(backgroundColor) && backgroundColor}`}\n title={typeLabel}\n >\n {typeLabel}\n </strong>\n <span className=\"break-all inline-block\">{label}</span>\n </a>\n </li>\n );\n};\n\ninterface ServerItemProps {\n serverName: string;\n}\n\nconst ServerItem: React.FunctionComponent<ServerItemProps> = ({\n serverName,\n}) => {\n const { setShowSidebar } = useContext(SidebarContext);\n\n return (\n <li>\n <a\n className=\"flex no-underline text-gray-700 mb-2 hover:text-gray-900\"\n href={`#server-${serverName}`}\n onClick={() => setShowSidebar(false)}\n >\n <span className=\"break-all inline-block\">{serverName}</span>\n </a>\n </li>\n );\n};\n\ninterface ItemsByTagItemProps {\n tagName: string;\n children: React.ReactNode;\n}\n\nconst ItemsByTagItem: React.FunctionComponent<ItemsByTagItemProps> = ({\n tagName,\n children,\n}) => {\n const [expand, setExpand] = useState(false);\n\n return (\n <div>\n <CollapseButton\n onClick={() => setExpand((prev) => !prev)}\n chevronProps={{\n className: expand ? '-rotate-180' : '-rotate-90',\n }}\n >\n <span className=\"text-sm inline-block mt-1 font-extralight\">\n {tagName}\n </span>\n </CollapseButton>\n <ul className={`${expand ? 'block' : 'hidden'} text-sm mt-2 font-light`}>\n {children}\n </ul>\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"]}
package/lib/esm/types.js CHANGED
@@ -8,4 +8,9 @@ export var PayloadType;
8
8
  PayloadType["REQUEST"] = "request";
9
9
  PayloadType["REPLY"] = "reply";
10
10
  })(PayloadType || (PayloadType = {}));
11
+ export var PluginSlot;
12
+ (function (PluginSlot) {
13
+ PluginSlot["OPERATION"] = "operation";
14
+ PluginSlot["INFO"] = "info";
15
+ })(PluginSlot || (PluginSlot = {}));
11
16
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,yBAAyB,CACvC,MAAmB;IAEnB,OAAQ,MAAkC,CAAC,GAAG,KAAK,SAAS,CAAC;AAC/D,CAAC;AAYD,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;AACjB,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB","sourcesContent":["import { AsyncAPIDocumentInterface, BaseModel } from '@asyncapi/parser';\n\nexport type PropsSchema =\n | string\n | FetchingSchemaInterface\n | AsyncAPIDocumentInterface\n | object;\n\nexport type NullableAsyncApi = AsyncAPIDocumentInterface | null;\n\nexport interface AsyncApiState {\n validatedSchema: NullableAsyncApi;\n error?: ErrorObject;\n}\n\nexport function isFetchingSchemaInterface(\n schema: PropsSchema,\n): schema is FetchingSchemaInterface {\n return (schema as FetchingSchemaInterface).url !== undefined;\n}\n\nexport interface FetchingSchemaInterface {\n url: string;\n requestOptions?: RequestInit;\n}\n\nexport interface ParserReturn {\n asyncapi?: AsyncAPIDocumentInterface;\n error?: ErrorObject;\n}\n\nexport enum PayloadType {\n SEND = 'send',\n RECEIVE = 'receive',\n REQUEST = 'request',\n REPLY = 'reply',\n}\n\nexport interface MessageExample {\n name?: string;\n summary?: string;\n example: unknown;\n}\n\nexport interface ValidationError {\n title: string;\n location?: {\n jsonPointer: string;\n startLine: number;\n startColumn: number;\n startOffset: number;\n endLine: number;\n endColumn: number;\n endOffset: number;\n };\n}\n\nexport interface ErrorObject {\n type: string;\n title: string;\n detail?: string;\n parsedJSON?: unknown;\n validationErrors?: ValidationError[];\n location?: {\n startLine: number;\n startColumn: number;\n startOffset: number;\n };\n refs?: {\n title: string;\n jsonPointer: string;\n startLine: number;\n startColumn: number;\n startOffset: number;\n endLine: number;\n endColumn: number;\n endOffset: number;\n }[];\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface ExtensionComponentProps<V = any> {\n propertyName: string;\n propertyValue: V;\n document: AsyncAPIDocumentInterface;\n parent: BaseModel;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,yBAAyB,CACvC,MAAmB;IAEnB,OAAQ,MAAkC,CAAC,GAAG,KAAK,SAAS,CAAC;AAC/D,CAAC;AAYD,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;AACjB,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAsDD,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,qCAAuB,CAAA;IACvB,2BAAa,CAAA;AACf,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB","sourcesContent":["import { AsyncAPIDocumentInterface, BaseModel } from '@asyncapi/parser';\n\nexport type PropsSchema =\n | string\n | FetchingSchemaInterface\n | AsyncAPIDocumentInterface\n | object;\n\nexport type NullableAsyncApi = AsyncAPIDocumentInterface | null;\n\nexport interface AsyncApiState {\n validatedSchema: NullableAsyncApi;\n error?: ErrorObject;\n}\n\nexport function isFetchingSchemaInterface(\n schema: PropsSchema,\n): schema is FetchingSchemaInterface {\n return (schema as FetchingSchemaInterface).url !== undefined;\n}\n\nexport interface FetchingSchemaInterface {\n url: string;\n requestOptions?: RequestInit;\n}\n\nexport interface ParserReturn {\n asyncapi?: AsyncAPIDocumentInterface;\n error?: ErrorObject;\n}\n\nexport enum PayloadType {\n SEND = 'send',\n RECEIVE = 'receive',\n REQUEST = 'request',\n REPLY = 'reply',\n}\n\nexport interface MessageExample {\n name?: string;\n summary?: string;\n example: unknown;\n}\n\nexport interface ValidationError {\n title: string;\n location?: {\n jsonPointer: string;\n startLine: number;\n startColumn: number;\n startOffset: number;\n endLine: number;\n endColumn: number;\n endOffset: number;\n };\n}\n\nexport interface ErrorObject {\n type: string;\n title: string;\n detail?: string;\n parsedJSON?: unknown;\n validationErrors?: ValidationError[];\n location?: {\n startLine: number;\n startColumn: number;\n startOffset: number;\n };\n refs?: {\n title: string;\n jsonPointer: string;\n startLine: number;\n startColumn: number;\n startOffset: number;\n endLine: number;\n endColumn: number;\n endOffset: number;\n }[];\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface ExtensionComponentProps<V = any> {\n propertyName: string;\n propertyValue: V;\n document: AsyncAPIDocumentInterface;\n parent: BaseModel;\n}\n\n// Plugin interface\n\nexport enum PluginSlot {\n OPERATION = 'operation',\n INFO = 'info',\n}\n\nexport interface PluginContext {\n schema?: PropsSchema;\n}\n\nexport interface ComponentSlotProps {\n context: PluginContext;\n onClose?: () => void;\n}\n\nexport interface AsyncApiPlugin {\n name: string;\n version: string;\n description?: string;\n\n install(api: PluginAPI): void;\n}\n\nexport type PluginInstance =\n | AsyncApiPlugin\n | React.ComponentType<ComponentSlotProps>;\n\nexport type EventListener = (...args: unknown[]) => void;\n\nexport interface MessageBus {\n on(eventName: string, callback: (data: unknown) => void): void;\n off(eventName: string, callback: (data: unknown) => void): void;\n emit(eventName: string, data: unknown): void;\n listeners(eventName: string): EventListener[];\n eventNames(): string[];\n}\n\nexport interface PluginAPI {\n registerComponent(\n slot: PluginSlot,\n component: React.ComponentType<ComponentSlotProps>,\n options?: { priority?: number; label?: string },\n ): void;\n\n onSpecLoaded(callback: (spec: unknown) => void): void;\n\n getContext(): PluginContext;\n\n on(eventName: string, callback: (data: unknown) => void): void;\n off(eventName: string, callback: (data: unknown) => void): void;\n emit(eventName: string, data: unknown): void;\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { PluginManager } from '../helpers/pluginManager';
3
+ import { PluginContext, PluginSlot } from '../types';
4
+ interface SlotRendererProps {
5
+ slot: PluginSlot;
6
+ context: PluginContext;
7
+ pluginManager?: PluginManager;
8
+ }
9
+ declare const SlotRenderer: React.FC<SlotRendererProps>;
10
+ export { SlotRenderer };
11
+ //# sourceMappingURL=PluginSlotRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginSlotRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/PluginSlotRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAErD,UAAU,iBAAiB;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,aAAa,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA2B7C,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -66,4 +66,5 @@ export declare const EXPAND_ERROR_BUTTON_TEXT = "Expand";
66
66
  export declare const COLLAPSE_ERROR_BUTTON_TEXT = "Collapse";
67
67
  export declare const SECURITY_TEXT = "Security";
68
68
  export declare const URL_VARIABLES_TEXT = "URL Variables";
69
+ export declare const PLUGINEVENTS: string[];
69
70
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,aAAa,CAAC;AACrC,eAAO,MAAM,kBAAkB,iDACiB,CAAC;AACjD,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,eAAe,eAAe,CAAC;AAE5C,eAAO,MAAM,sBAAsB,4DACwB,CAAC;AAC5D,eAAO,MAAM,OAAO,YAAY,CAAC;AAEjC,eAAO,MAAM,oBAAoB,2BAA2B,CAAC;AAC7D,eAAO,MAAM,oBAAoB,2BAA2B,CAAC;AAC7D,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,eAAO,MAAM,sCAAsC,gDACJ,CAAC;AAChD,eAAO,MAAM,6CAA6C,wCACnB,CAAC;AACxC,eAAO,MAAM,wCAAwC,wDACE,CAAC;AACxD,eAAO,MAAM,+CAA+C,gDACb,CAAC;AAChD,eAAO,MAAM,0BAA0B,gDACQ,CAAC;AAChD,eAAO,MAAM,wBAAwB,wCAAwC,CAAC;AAE9E,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,SAAS,SAAS,CAAC;AAChC,eAAO,MAAM,QAAQ,QAAQ,CAAC;AAC9B,eAAO,MAAM,UAAU,UAAU,CAAC;AAClC,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AACxD,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAClD,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAC1D,eAAO,MAAM,aAAa,aAAa,CAAC;AACxC,eAAO,MAAM,SAAS,SAAS,CAAC;AAChC,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAElD,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAChD,eAAO,MAAM,SAAS,SAAS,CAAC;AAChC,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAC9C,eAAO,MAAM,cAAc,cAAc,CAAC;AAC1C,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAClD,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,+BAA+B,YAAY,CAAC;AACzD,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,0BAA0B,YAAY,CAAC;AACpD,eAAO,MAAM,YAAY,UAAU,CAAC;AACpC,eAAO,MAAM,0BAA0B,UAAU,CAAC;AAClD,eAAO,MAAM,aAAa,aAAa,CAAC;AACxC,eAAO,MAAM,cAAc,cAAc,CAAC;AAE1C,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,aAAa,aAAa,CAAC;AACxC,eAAO,MAAM,YAAY,YAAY,CAAC;AAEtC,eAAO,MAAM,aAAa,aAAa,CAAC;AACxC,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AACtD,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AACzD,eAAO,MAAM,SAAS,SAAS,CAAC;AAChC,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AACtD,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AACzD,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AACtD,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AACxD,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAC5D,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AAExD,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAE3D,eAAO,MAAM,SAAS,SAAS,CAAC;AAChC,eAAO,MAAM,QAAQ,QAAQ,CAAC;AAC9B,eAAO,MAAM,UAAU,UAAU,CAAC;AAClC,eAAO,MAAM,wBAAwB,WAAW,CAAC;AACjD,eAAO,MAAM,0BAA0B,aAAa,CAAC;AAErD,eAAO,MAAM,aAAa,aAAa,CAAC;AAExC,eAAO,MAAM,kBAAkB,kBAAkB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,14 @@
1
1
  import React, { Component } from 'react';
2
2
  import { AsyncAPIDocumentInterface } from '@asyncapi/parser';
3
- import { ErrorObject, PropsSchema } from '../../types';
3
+ import { ErrorObject, PropsSchema, AsyncApiPlugin } from '../../types';
4
4
  import { ConfigInterface } from '../../config';
5
+ import { PluginManager } from '../../helpers/pluginManager';
5
6
  export interface AsyncApiProps {
6
7
  schema: PropsSchema;
7
8
  config?: Partial<ConfigInterface>;
9
+ plugins?: AsyncApiPlugin[];
10
+ onPluginEvent?: (eventName: string, data: unknown) => void;
11
+ onPluginManagerReady?: (pluginManager: PluginManager) => void;
8
12
  }
9
13
  interface AsyncAPIState {
10
14
  asyncapi?: AsyncAPIDocumentInterface;
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncApi.d.ts","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/AsyncApi.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAI7D,OAAO,EAEL,WAAW,EACX,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACnC;AAED,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,cAAM,iBAAkB,SAAQ,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACrE,KAAK,EAAE,aAAa,CAGlB;IAEI,iBAAiB;IAOjB,kBAAkB,CAAC,SAAS,EAAE,aAAa;IAUjD,MAAM;YAcQ,WAAW;CAwB1B;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"AsyncApi.d.ts","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/AsyncApi.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAI7D,OAAO,EAEL,WAAW,EACX,WAAW,EACX,cAAc,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3D,oBAAoB,CAAC,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC;CAC/D;AAED,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,cAAM,iBAAkB,SAAQ,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACrE,KAAK,EAAE,aAAa,CAGlB;IAEI,iBAAiB;IAOjB,kBAAkB,CAAC,SAAS,EAAE,aAAa;IAUjD,MAAM;YAkBQ,WAAW;CAwB1B;AAED,eAAe,iBAAiB,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import React from 'react';
2
2
  import { AsyncAPIDocumentInterface } from '@asyncapi/parser';
3
3
  import { ConfigInterface } from '../../config';
4
+ import { PluginManager } from '../../helpers/pluginManager';
4
5
  interface Props {
5
6
  asyncapi: AsyncAPIDocumentInterface;
6
7
  config: ConfigInterface;
8
+ pluginManager?: PluginManager;
7
9
  }
8
10
  declare const AsyncApiLayout: React.FunctionComponent<Props>;
9
11
  export default AsyncApiLayout;
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.d.ts","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/Layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAU7D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAI/C,UAAU,KAAK;IACb,QAAQ,EAAE,yBAAyB,CAAC;IACpC,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAkDlD,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"Layout.d.ts","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/Layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAU7D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,UAAU,KAAK;IACb,QAAQ,EAAE,yBAAyB,CAAC;IACpC,MAAM,EAAE,eAAe,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAqDlD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,22 +1,34 @@
1
1
  import React, { Component } from 'react';
2
2
  import { AsyncAPIDocumentInterface } from '@asyncapi/parser';
3
- import { ErrorObject, PropsSchema } from '../../types';
3
+ import { AsyncApiPlugin, ErrorObject, PropsSchema } from '../../types';
4
4
  import { ConfigInterface } from '../../config';
5
+ import { PluginManager } from '../../helpers/pluginManager';
5
6
  export interface AsyncApiProps {
6
7
  schema: PropsSchema;
7
8
  config?: Partial<ConfigInterface>;
9
+ plugins?: AsyncApiPlugin[];
10
+ onPluginEvent?: (eventName: string, data: unknown) => void;
11
+ onPluginManagerReady?: (pluginManager: PluginManager) => void;
8
12
  error?: ErrorObject;
9
13
  }
10
14
  interface AsyncAPIState {
11
15
  asyncapi?: AsyncAPIDocumentInterface;
12
16
  error?: ErrorObject;
17
+ pm?: PluginManager;
13
18
  }
14
19
  declare class AsyncApiComponent extends Component<AsyncApiProps, AsyncAPIState> {
20
+ private readonly registeredPlugins;
21
+ private readonly propsPlugins;
15
22
  state: AsyncAPIState;
16
23
  constructor(props: AsyncApiProps);
17
24
  componentDidMount(): void;
18
25
  componentDidUpdate(prevProps: AsyncApiProps): void;
19
26
  render(): false | React.JSX.Element | null | undefined;
27
+ private handler;
28
+ private setupEventListeners;
29
+ private cleanupEventListeners;
30
+ private registerPlugins;
31
+ private updatePlugins;
20
32
  private updateState;
21
33
  }
22
34
  export default AsyncApiComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"Standalone.d.ts","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/Standalone.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAG7D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,eAAe,EAAiB,MAAM,cAAc,CAAC;AAK9D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,cAAM,iBAAkB,SAAQ,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACrE,KAAK,EAAE,aAAa,CAGlB;gBAEU,KAAK,EAAE,aAAa;IAShC,iBAAiB;IAMjB,kBAAkB,CAAC,SAAS,EAAE,aAAa;IAS3C,MAAM;IA0CN,OAAO,CAAC,WAAW;CAQpB;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"Standalone.d.ts","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/Standalone.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,eAAe,EAAiB,MAAM,cAAc,CAAC;AAI9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3D,oBAAoB,CAAC,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9D,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,EAAE,CAAC,EAAE,aAAa,CAAC;CACpB;AAED,cAAM,iBAAkB,SAAQ,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACrE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAElD,KAAK,EAAE,aAAa,CAMlB;gBAEU,KAAK,EAAE,aAAa;IAShC,iBAAiB;IAYjB,kBAAkB,CAAC,SAAS,EAAE,aAAa;IAmB3C,MAAM;IAgDN,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,aAAa;IAqCrB,OAAO,CAAC,WAAW;CASpB;AAED,eAAe,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Info.d.ts","sourceRoot":"","sources":["../../../../src/containers/Info/Info.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,iBAmIxB,CAAC"}
1
+ {"version":3,"file":"Info.d.ts","sourceRoot":"","sources":["../../../../src/containers/Info/Info.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAe1B,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,iBA6IxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Operation.d.ts","sourceRoot":"","sources":["../../../../src/containers/Operations/Operation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAexE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,UAAU,KAAK;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAwIpD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAsExD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAiI7D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CA+FpE,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAiDpE,CAAC"}
1
+ {"version":3,"file":"Operation.d.ts","sourceRoot":"","sources":["../../../../src/containers/Operations/Operation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAexE,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AAKtD,UAAU,KAAK;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAuIpD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAgFxD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAiI7D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CA+FpE,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAiDpE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../../src/containers/Sidebar/Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAapD,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,iBA4J3B,CAAC"}
1
+ {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../../src/containers/Sidebar/Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAapD,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,iBA0J3B,CAAC"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { PluginManager } from '../helpers/pluginManager';
3
+ export declare const PluginContext: import("react").Context<PluginManager | undefined>;
4
+ export declare function usePlugin(): PluginManager | undefined;
5
+ //# sourceMappingURL=usePlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePlugin.d.ts","sourceRoot":"","sources":["../../../src/contexts/usePlugin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,eAAO,MAAM,aAAa,oDAEzB,CAAC;AAEF,wBAAgB,SAAS,8BAExB"}
@@ -0,0 +1,26 @@
1
+ /// <reference types="react" />
2
+ import { AsyncApiPlugin, ComponentSlotProps, EventListener, MessageBus, PluginContext, PluginSlot } from '../types';
3
+ declare class PluginManager implements MessageBus {
4
+ private readonly plugins;
5
+ private readonly slotComponents;
6
+ private readonly eventListeners;
7
+ private context;
8
+ constructor(initialContext: PluginContext);
9
+ register(plugin: AsyncApiPlugin): void;
10
+ unregister(pluginName: string): void;
11
+ private createPluginAPI;
12
+ on(eventName: string, callback: (data: unknown) => void): void;
13
+ off(eventName: string, callback: (data: unknown) => void): void;
14
+ emit(eventName: string, data: unknown): void;
15
+ listeners(eventName: string): EventListener[];
16
+ eventNames(): string[];
17
+ getComponentsForSlot(slot: PluginSlot): React.ComponentType<ComponentSlotProps>[];
18
+ updateContext(updates: PluginContext): void;
19
+ getPlugin(name: string): AsyncApiPlugin | undefined;
20
+ listPlugins(): {
21
+ name: string;
22
+ version: string;
23
+ }[];
24
+ }
25
+ export { PluginManager };
26
+ //# sourceMappingURL=pluginManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginManager.d.ts","sourceRoot":"","sources":["../../../src/helpers/pluginManager.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,UAAU,EAEV,aAAa,EACb,UAAU,EACX,MAAM,UAAU,CAAC;AAElB,cAAM,aAAc,YAAW,UAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAC7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAQ3B;IACJ,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyC;IACxE,OAAO,CAAC,OAAO,CAAgB;gBAEnB,cAAc,EAAE,aAAa;IAIzC,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAWtC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAmBpC,OAAO,CAAC,eAAe;IAsCvB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAO9D,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAUxD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAOnD,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,EAAE;IAK7C,UAAU,IAAI,MAAM,EAAE;IAItB,oBAAoB,CAClB,IAAI,EAAE,UAAU,GACf,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE;IAI5C,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAI3C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAInD,WAAW,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE;CAMnD;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -2,7 +2,7 @@ import AsyncApiComponent from './containers/AsyncApi/AsyncApi';
2
2
  import AsyncApiComponentWP from './containers/AsyncApi/Standalone';
3
3
  export { AsyncApiProps } from './containers/AsyncApi/AsyncApi';
4
4
  export { ConfigInterface } from './config/config';
5
- export { FetchingSchemaInterface, ExtensionComponentProps } from './types';
5
+ export { FetchingSchemaInterface, ExtensionComponentProps, AsyncApiPlugin, PluginAPI, PluginSlot, PluginContext, } from './types';
6
6
  import { hljs } from './helpers';
7
7
  export { AsyncApiComponentWP, hljs };
8
8
  export default AsyncApiComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,mBAAmB,MAAM,kCAAkC,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAE3E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;AACrC,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,mBAAmB,MAAM,kCAAkC,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,cAAc,EACd,SAAS,EACT,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;AACrC,eAAe,iBAAiB,CAAC"}
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { AsyncAPIDocumentInterface, BaseModel } from '@asyncapi/parser';
2
3
  export type PropsSchema = string | FetchingSchemaInterface | AsyncAPIDocumentInterface | object;
3
4
  export type NullableAsyncApi = AsyncAPIDocumentInterface | null;
@@ -65,4 +66,41 @@ export interface ExtensionComponentProps<V = any> {
65
66
  document: AsyncAPIDocumentInterface;
66
67
  parent: BaseModel;
67
68
  }
69
+ export declare enum PluginSlot {
70
+ OPERATION = "operation",
71
+ INFO = "info"
72
+ }
73
+ export interface PluginContext {
74
+ schema?: PropsSchema;
75
+ }
76
+ export interface ComponentSlotProps {
77
+ context: PluginContext;
78
+ onClose?: () => void;
79
+ }
80
+ export interface AsyncApiPlugin {
81
+ name: string;
82
+ version: string;
83
+ description?: string;
84
+ install(api: PluginAPI): void;
85
+ }
86
+ export type PluginInstance = AsyncApiPlugin | React.ComponentType<ComponentSlotProps>;
87
+ export type EventListener = (...args: unknown[]) => void;
88
+ export interface MessageBus {
89
+ on(eventName: string, callback: (data: unknown) => void): void;
90
+ off(eventName: string, callback: (data: unknown) => void): void;
91
+ emit(eventName: string, data: unknown): void;
92
+ listeners(eventName: string): EventListener[];
93
+ eventNames(): string[];
94
+ }
95
+ export interface PluginAPI {
96
+ registerComponent(slot: PluginSlot, component: React.ComponentType<ComponentSlotProps>, options?: {
97
+ priority?: number;
98
+ label?: string;
99
+ }): void;
100
+ onSpecLoaded(callback: (spec: unknown) => void): void;
101
+ getContext(): PluginContext;
102
+ on(eventName: string, callback: (data: unknown) => void): void;
103
+ off(eventName: string, callback: (data: unknown) => void): void;
104
+ emit(eventName: string, data: unknown): void;
105
+ }
68
106
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAExE,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,uBAAuB,GACvB,yBAAyB,GACzB,MAAM,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,yBAAyB,GAAG,IAAI,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,gBAAgB,CAAC;IAClC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,WAAW,GAClB,MAAM,IAAI,uBAAuB,CAEnC;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,WAAW,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;CACL;AAGD,MAAM,WAAW,uBAAuB,CAAC,CAAC,GAAG,GAAG;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,CAAC,CAAC;IACjB,QAAQ,EAAE,yBAAyB,CAAC;IACpC,MAAM,EAAE,SAAS,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}