@asyncapi/react-component 1.0.0-next.48 → 1.0.0-next.49

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 (127) hide show
  1. package/browser/index.js +32 -27
  2. package/browser/index.js.LICENSE.txt +88 -0
  3. package/browser/standalone/index.js +32 -51
  4. package/browser/standalone/index.js.LICENSE.txt +112 -0
  5. package/browser/standalone/without-parser.js +14 -41
  6. package/browser/standalone/without-parser.js.LICENSE.txt +110 -0
  7. package/browser/without-parser.js +14 -12
  8. package/browser/without-parser.js.LICENSE.txt +86 -0
  9. package/lib/cjs/components/Schema.js +40 -57
  10. package/lib/cjs/components/Schema.js.map +1 -1
  11. package/lib/cjs/components/Tag.js.map +1 -1
  12. package/lib/cjs/components/Tags.js.map +1 -1
  13. package/lib/cjs/containers/AsyncApi/AsyncApi.js.map +1 -1
  14. package/lib/cjs/containers/AsyncApi/Layout.js.map +1 -1
  15. package/lib/cjs/containers/AsyncApi/Standalone.js.map +1 -1
  16. package/lib/cjs/containers/Info/Info.js +6 -6
  17. package/lib/cjs/containers/Info/Info.js.map +1 -1
  18. package/lib/cjs/containers/Messages/Message.js +3 -3
  19. package/lib/cjs/containers/Messages/Message.js.map +1 -1
  20. package/lib/cjs/containers/Messages/MessageExample.js.map +1 -1
  21. package/lib/cjs/containers/Messages/Messages.js +1 -1
  22. package/lib/cjs/containers/Messages/Messages.js.map +1 -1
  23. package/lib/cjs/containers/Operations/Operation.js +9 -7
  24. package/lib/cjs/containers/Operations/Operation.js.map +1 -1
  25. package/lib/cjs/containers/Operations/Operations.js +10 -10
  26. package/lib/cjs/containers/Operations/Operations.js.map +1 -1
  27. package/lib/cjs/containers/Schemas/Schema.js.map +1 -1
  28. package/lib/cjs/containers/Schemas/Schemas.js +1 -1
  29. package/lib/cjs/containers/Schemas/Schemas.js.map +1 -1
  30. package/lib/cjs/containers/Servers/Security.js +44 -32
  31. package/lib/cjs/containers/Servers/Security.js.map +1 -1
  32. package/lib/cjs/containers/Servers/Server.js +2 -2
  33. package/lib/cjs/containers/Servers/Server.js.map +1 -1
  34. package/lib/cjs/containers/Sidebar/Sidebar.js +42 -31
  35. package/lib/cjs/containers/Sidebar/Sidebar.js.map +1 -1
  36. package/lib/cjs/contexts/useSpec.js.map +1 -1
  37. package/lib/cjs/helpers/message.js +16 -14
  38. package/lib/cjs/helpers/message.js.map +1 -1
  39. package/lib/cjs/helpers/parser.js +14 -17
  40. package/lib/cjs/helpers/parser.js.map +1 -1
  41. package/lib/cjs/helpers/schema.js +18 -24
  42. package/lib/cjs/helpers/schema.js.map +1 -1
  43. package/lib/cjs/helpers/server.js.map +1 -1
  44. package/lib/cjs/helpers/specification.js +21 -26
  45. package/lib/cjs/helpers/specification.js.map +1 -1
  46. package/lib/cjs/types.js.map +1 -1
  47. package/lib/esm/components/Schema.js +40 -57
  48. package/lib/esm/components/Schema.js.map +1 -1
  49. package/lib/esm/components/Tag.js.map +1 -1
  50. package/lib/esm/components/Tags.js.map +1 -1
  51. package/lib/esm/containers/AsyncApi/AsyncApi.js.map +1 -1
  52. package/lib/esm/containers/AsyncApi/Layout.js.map +1 -1
  53. package/lib/esm/containers/AsyncApi/Standalone.js.map +1 -1
  54. package/lib/esm/containers/Info/Info.js +6 -6
  55. package/lib/esm/containers/Info/Info.js.map +1 -1
  56. package/lib/esm/containers/Messages/Message.js +3 -3
  57. package/lib/esm/containers/Messages/Message.js.map +1 -1
  58. package/lib/esm/containers/Messages/MessageExample.js.map +1 -1
  59. package/lib/esm/containers/Messages/Messages.js +1 -1
  60. package/lib/esm/containers/Messages/Messages.js.map +1 -1
  61. package/lib/esm/containers/Operations/Operation.js +9 -7
  62. package/lib/esm/containers/Operations/Operation.js.map +1 -1
  63. package/lib/esm/containers/Operations/Operations.js +10 -10
  64. package/lib/esm/containers/Operations/Operations.js.map +1 -1
  65. package/lib/esm/containers/Schemas/Schema.js.map +1 -1
  66. package/lib/esm/containers/Schemas/Schemas.js +1 -1
  67. package/lib/esm/containers/Schemas/Schemas.js.map +1 -1
  68. package/lib/esm/containers/Servers/Security.js +44 -32
  69. package/lib/esm/containers/Servers/Security.js.map +1 -1
  70. package/lib/esm/containers/Servers/Server.js +2 -2
  71. package/lib/esm/containers/Servers/Server.js.map +1 -1
  72. package/lib/esm/containers/Sidebar/Sidebar.js +42 -31
  73. package/lib/esm/containers/Sidebar/Sidebar.js.map +1 -1
  74. package/lib/esm/contexts/useSpec.js.map +1 -1
  75. package/lib/esm/helpers/message.js +16 -14
  76. package/lib/esm/helpers/message.js.map +1 -1
  77. package/lib/esm/helpers/parser.js +15 -15
  78. package/lib/esm/helpers/parser.js.map +1 -1
  79. package/lib/esm/helpers/schema.js +14 -17
  80. package/lib/esm/helpers/schema.js.map +1 -1
  81. package/lib/esm/helpers/server.js.map +1 -1
  82. package/lib/esm/helpers/specification.js +21 -23
  83. package/lib/esm/helpers/specification.js.map +1 -1
  84. package/lib/esm/types.js.map +1 -1
  85. package/lib/types/components/Schema.d.ts +2 -2
  86. package/lib/types/components/Schema.d.ts.map +1 -1
  87. package/lib/types/components/Tag.d.ts +2 -2
  88. package/lib/types/components/Tag.d.ts.map +1 -1
  89. package/lib/types/components/Tags.d.ts +2 -2
  90. package/lib/types/components/Tags.d.ts.map +1 -1
  91. package/lib/types/containers/AsyncApi/AsyncApi.d.ts +2 -2
  92. package/lib/types/containers/AsyncApi/AsyncApi.d.ts.map +1 -1
  93. package/lib/types/containers/AsyncApi/Layout.d.ts +2 -2
  94. package/lib/types/containers/AsyncApi/Layout.d.ts.map +1 -1
  95. package/lib/types/containers/AsyncApi/Standalone.d.ts +2 -2
  96. package/lib/types/containers/AsyncApi/Standalone.d.ts.map +1 -1
  97. package/lib/types/containers/Info/Info.d.ts.map +1 -1
  98. package/lib/types/containers/Messages/Message.d.ts +2 -2
  99. package/lib/types/containers/Messages/Message.d.ts.map +1 -1
  100. package/lib/types/containers/Messages/MessageExample.d.ts +3 -3
  101. package/lib/types/containers/Messages/MessageExample.d.ts.map +1 -1
  102. package/lib/types/containers/Messages/Messages.d.ts.map +1 -1
  103. package/lib/types/containers/Operations/Operation.d.ts +3 -3
  104. package/lib/types/containers/Operations/Operation.d.ts.map +1 -1
  105. package/lib/types/containers/Operations/Operations.d.ts.map +1 -1
  106. package/lib/types/containers/Schemas/Schema.d.ts +2 -2
  107. package/lib/types/containers/Schemas/Schema.d.ts.map +1 -1
  108. package/lib/types/containers/Schemas/Schemas.d.ts.map +1 -1
  109. package/lib/types/containers/Servers/Security.d.ts +2 -2
  110. package/lib/types/containers/Servers/Security.d.ts.map +1 -1
  111. package/lib/types/containers/Servers/Server.d.ts +2 -2
  112. package/lib/types/containers/Servers/Server.d.ts.map +1 -1
  113. package/lib/types/containers/Sidebar/Sidebar.d.ts.map +1 -1
  114. package/lib/types/contexts/useSpec.d.ts +3 -3
  115. package/lib/types/contexts/useSpec.d.ts.map +1 -1
  116. package/lib/types/helpers/message.d.ts +3 -3
  117. package/lib/types/helpers/message.d.ts.map +1 -1
  118. package/lib/types/helpers/parser.d.ts.map +1 -1
  119. package/lib/types/helpers/schema.d.ts +8 -9
  120. package/lib/types/helpers/schema.d.ts.map +1 -1
  121. package/lib/types/helpers/server.d.ts +2 -2
  122. package/lib/types/helpers/server.d.ts.map +1 -1
  123. package/lib/types/helpers/specification.d.ts +5 -5
  124. package/lib/types/helpers/specification.d.ts.map +1 -1
  125. package/lib/types/types.d.ts +4 -4
  126. package/lib/types/types.d.ts.map +1 -1
  127. package/package.json +12 -11
@@ -43,22 +43,25 @@ var SidebarContext = react_1.default.createContext({
43
43
  setShowSidebar: function (value) { return value; },
44
44
  });
45
45
  var Sidebar = function () {
46
- var _a = (0, react_1.useState)(false), showSidebar = _a[0], setShowSidebar = _a[1];
46
+ var _a;
47
+ var _b = (0, react_1.useState)(false), showSidebar = _b[0], setShowSidebar = _b[1];
47
48
  var asyncapi = (0, contexts_1.useSpec)();
48
49
  var info = asyncapi.info();
49
- var logo = info.ext('x-logo');
50
- var components = asyncapi.hasComponents() && asyncapi.components();
50
+ var logo = (_a = info
51
+ .extensions()
52
+ .get('x-logo')) === null || _a === void 0 ? void 0 : _a.value();
53
+ var components = asyncapi.components();
51
54
  var messages = components && components.messages();
52
55
  var schemas = components && components.schemas();
53
- var hasOperations = asyncapi.hasChannels() &&
54
- Object.values(asyncapi.channels()).some(function (channel) { return channel.hasPublish() || channel.hasSubscribe(); });
56
+ var hasOperations = asyncapi.channels().length > 0 &&
57
+ Object.values(asyncapi.channels()).some(function (channel) { return channel.operations().length > 0; });
55
58
  var messagesList = messages && Object.keys(messages).length > 0 && (react_1.default.createElement("li", { className: "mb-3 mt-9" },
56
59
  react_1.default.createElement("a", { className: "text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900", href: "#messages", onClick: function () { return setShowSidebar(false); } }, "Messages"),
57
60
  react_1.default.createElement("ul", { className: "text-sm mt-2" }, Object.entries(messages).map(function (_a) {
58
61
  var messageName = _a[0], message = _a[1];
59
62
  return (react_1.default.createElement("li", { key: messageName },
60
63
  react_1.default.createElement("a", { className: "flex break-words no-underline text-gray-700 mt-2 hover:text-gray-900", href: "#message-".concat(messageName), onClick: function () { return setShowSidebar(false); } },
61
- react_1.default.createElement("div", { className: "break-all inline-block" }, message.uid()))));
64
+ react_1.default.createElement("div", { className: "break-all inline-block" }, message.id()))));
62
65
  }))));
63
66
  var schemasList = schemas && Object.keys(schemas).length > 0 && (react_1.default.createElement("li", { className: "mb-3 mt-9" },
64
67
  react_1.default.createElement("a", { className: "text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900", href: "#schemas", onClick: function () { return setShowSidebar(false); } }, "Schemas"),
@@ -81,7 +84,7 @@ var Sidebar = function () {
81
84
  react_1.default.createElement("ul", { className: "text-sm mt-10 relative" },
82
85
  react_1.default.createElement("li", { className: "mb-3" },
83
86
  react_1.default.createElement("a", { className: "text-gray-700 no-underline hover:text-gray-900", href: "#introduction", onClick: function () { return setShowSidebar(false); } }, "Introduction")),
84
- asyncapi.hasServers() && (react_1.default.createElement("li", { className: "mb-3 mt-9" },
87
+ asyncapi.servers().length > 0 && (react_1.default.createElement("li", { className: "mb-3 mt-9" },
85
88
  react_1.default.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"),
86
89
  react_1.default.createElement(ServersList, null))),
87
90
  hasOperations && (react_1.default.createElement(react_1.default.Fragment, null,
@@ -129,7 +132,7 @@ var ServersList = function () {
129
132
  }
130
133
  var specTagNames;
131
134
  if (showServers === 'bySpecTags') {
132
- specTagNames = (asyncapi.tags() || []).map(function (tag) { return tag.name(); });
135
+ specTagNames = (asyncapi.info().tags() || []).map(function (tag) { return tag.name(); });
133
136
  }
134
137
  else {
135
138
  var serverTagNamesSet_1 = new Set();
@@ -168,50 +171,58 @@ var ServersList = function () {
168
171
  var OperationsList = function () {
169
172
  var sidebarConfig = (0, contexts_1.useConfig)().sidebar;
170
173
  var asyncapi = (0, contexts_1.useSpec)();
171
- var channels = asyncapi.channels();
174
+ var operations = asyncapi.operations();
172
175
  var showOperations = (sidebarConfig === null || sidebarConfig === void 0 ? void 0 : sidebarConfig.showOperations) || 'byDefault';
173
- var operations = [];
174
- Object.entries(channels).forEach(function (_a) {
175
- var channelName = _a[0], channel = _a[1];
176
- if (channel.hasPublish()) {
177
- var operation = channel.publish();
178
- operations.push({
179
- name: "publish-".concat(channelName),
176
+ var processedOperations = [];
177
+ Object.entries(operations).forEach(function (_a) {
178
+ var operationId = _a[0], operation = _a[1];
179
+ if (operation.isSend()) {
180
+ processedOperations.push({
181
+ name: "publish-".concat(operationId),
180
182
  object: operation,
181
- data: { channelName: channelName, kind: 'publish', summary: operation.summary() },
183
+ data: {
184
+ channelName: operation
185
+ .channels()
186
+ .all()[0]
187
+ .address() || '',
188
+ kind: 'publish',
189
+ summary: operation.summary() || '',
190
+ },
182
191
  });
183
192
  }
184
- if (channel.hasSubscribe()) {
185
- var operation = channel.subscribe();
186
- operations.push({
187
- name: "subscribe-".concat(channelName),
193
+ if (operation.isReceive()) {
194
+ processedOperations.push({
195
+ name: "subscribe-".concat(operationId),
188
196
  object: operation,
189
- data: { channelName: channelName, kind: 'subscribe', summary: operation.summary() },
197
+ data: {
198
+ channelName: operation
199
+ .channels()
200
+ .all()[0]
201
+ .address() || '',
202
+ kind: 'subscribe',
203
+ summary: operation.summary() || '',
204
+ },
190
205
  });
191
206
  }
192
207
  });
193
208
  if (showOperations === 'byDefault') {
194
- return (react_1.default.createElement("ul", { className: "text-sm mt-2" }, operations.map(function (_a) {
209
+ return (react_1.default.createElement("ul", { className: "text-sm mt-2" }, processedOperations.map(function (_a) {
195
210
  var name = _a.name, data = _a.data;
196
211
  return (react_1.default.createElement(OperationItem, __assign({ key: name }, data)));
197
212
  })));
198
213
  }
199
214
  var operationTagNames;
200
215
  if (showOperations === 'bySpecTags') {
201
- operationTagNames = (asyncapi.tags() || []).map(function (tag) { return tag.name(); });
216
+ operationTagNames = (asyncapi.info().tags() || []).map(function (tag) { return tag.name(); });
202
217
  }
203
218
  else {
204
219
  var operationTagNamesSet_1 = new Set();
205
- Object.values(operations).forEach(function (_a) {
206
- var object = _a.object;
207
- if (typeof object.tags !== 'function') {
208
- return;
209
- }
210
- object.tags().forEach(function (t) { return operationTagNamesSet_1.add(t.name()); });
220
+ Object.values(operations).forEach(function (operation) {
221
+ operation.tags().forEach(function (t) { return operationTagNamesSet_1.add(t.name()); });
211
222
  });
212
223
  operationTagNames = Array.from(operationTagNamesSet_1);
213
224
  }
214
- var _a = filterObjectsByTags(operationTagNames, operations), tagged = _a.tagged, untagged = _a.untagged;
225
+ var _a = filterObjectsByTags(operationTagNames, processedOperations), tagged = _a.tagged, untagged = _a.untagged;
215
226
  return (react_1.default.createElement("ul", { className: "text-sm mt-2" },
216
227
  Array.from(tagged.entries()).map(function (_a) {
217
228
  var tag = _a[0], taggedOperations = _a[1];
@@ -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';\n\nimport { CollapseButton } from '../../components';\nimport { useConfig, useSpec } from '../../contexts';\nimport {\n PUBLISH_LABEL_DEFAULT_TEXT,\n SUBSCRIBE_LABEL_DEFAULT_TEXT,\n} from '../../constants';\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\n const info = asyncapi.info();\n const logo = info.ext('x-logo');\n const components = asyncapi.hasComponents() && asyncapi.components();\n const messages = components && components.messages();\n const schemas = components && components.schemas();\n const hasOperations =\n asyncapi.hasChannels() &&\n Object.values(asyncapi.channels()).some(\n channel => channel.hasPublish() || channel.hasSubscribe(),\n );\n\n const messagesList = messages && Object.keys(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 {Object.entries(messages).map(([messageName, message]) => (\n <li key={messageName}>\n <a\n className=\"flex break-words no-underline text-gray-700 mt-2 hover:text-gray-900\"\n href={`#message-${messageName}`}\n onClick={() => setShowSidebar(false)}\n >\n <div className=\"break-all inline-block\">{message.uid()}</div>\n </a>\n </li>\n ))}\n </ul>\n </li>\n );\n\n const schemasList = schemas && Object.keys(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 {Object.keys(schemas).map(schemaName => (\n <li key={schemaName}>\n <a\n className=\"flex break-words no-underline text-gray-700 mt-2 hover:text-gray-900\"\n href={`#schema-${schemaName}`}\n onClick={() => setShowSidebar(false)}\n >\n <div className=\"break-all inline-block\">{schemaName}</div>\n </a>\n </li>\n ))}\n </ul>\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 // className={`${\n // showSidebar ? 'block fixed w-full' : 'hidden'\n // } sidebar bg-gray-200 font-sans font-light px-4 py-8 z-20 shadow overflow-auto`}\n >\n <div\n className={`${\n showSidebar ? 'w-full' : ''\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 <img\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.hasServers() && (\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 {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 {messagesList}\n {schemasList}\n </>\n )}\n </ul>\n </div>\n </div>\n </div>\n </SidebarContext.Provider>\n );\n};\n\ninterface TagObject<T = any> {\n name: string;\n object: { tags?: () => Array<{ name: () => string }> };\n data: T;\n}\n\nfunction filterObjectsByTags<T = any>(\n tags: string[],\n objects: Array<TagObject<T>>,\n): { tagged: Map<string, TagObject[]>; untagged: TagObject[] } {\n const taggedObjects = new Set<TagObject>();\n const tagged = new Map<string, TagObject[]>();\n\n tags.forEach(tag => {\n const taggedForTag: TagObject[] = [];\n objects.forEach(obj => {\n const object = obj.object;\n if (typeof object.tags !== 'function') {\n return;\n }\n\n const objectTags = (object.tags() || []).map(t => t.name());\n const hasTag = objectTags.includes(tag);\n if (hasTag) {\n taggedForTag.push(obj);\n taggedObjects.add(obj);\n }\n });\n tagged.set(tag, taggedForTag);\n });\n\n const untagged: TagObject[] = [];\n objects.forEach(obj => {\n if (!taggedObjects.has(obj)) {\n untagged.push(obj);\n }\n });\n\n return { tagged, untagged };\n}\n\nconst ServersList: React.FunctionComponent = () => {\n const sidebarConfig = useConfig().sidebar;\n const asyncapi = useSpec();\n const servers = asyncapi.servers();\n const showServers = sidebarConfig?.showServers || 'byDefault';\n\n if (showServers === 'byDefault') {\n return (\n <ul className=\"text-sm mt-2\">\n {Object.keys(servers).map(serverName => (\n <ServerItem serverName={serverName} key={serverName} />\n ))}\n </ul>\n );\n }\n\n let specTagNames: string[];\n if (showServers === 'bySpecTags') {\n specTagNames = (asyncapi.tags() || []).map(tag => tag.name());\n } else {\n const serverTagNamesSet = new Set<string>();\n Object.values(servers).forEach(server => {\n if (typeof server.tags !== 'function') {\n return;\n }\n server.tags().forEach(t => serverTagNamesSet.add(t.name()));\n });\n specTagNames = Array.from(serverTagNamesSet);\n }\n\n const serializedServers: TagObject[] = Object.entries(servers).map(\n ([serverName, server]) => ({\n name: serverName,\n object: server,\n data: {},\n }),\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\nconst OperationsList: React.FunctionComponent = () => {\n const sidebarConfig = useConfig().sidebar;\n const asyncapi = useSpec();\n const channels = asyncapi.channels();\n const showOperations = sidebarConfig?.showOperations || 'byDefault';\n\n const operations: Array<TagObject<{\n channelName: string;\n summary: string;\n kind: 'publish' | 'subscribe';\n }>> = [];\n Object.entries(channels).forEach(([channelName, channel]) => {\n if (channel.hasPublish()) {\n const operation = channel.publish();\n operations.push({\n name: `publish-${channelName}`,\n object: operation,\n data: { channelName, kind: 'publish', summary: operation.summary() },\n });\n }\n if (channel.hasSubscribe()) {\n const operation = channel.subscribe();\n operations.push({\n name: `subscribe-${channelName}`,\n object: operation,\n data: { channelName, kind: 'subscribe', summary: operation.summary() },\n });\n }\n });\n\n if (showOperations === 'byDefault') {\n return (\n <ul className=\"text-sm mt-2\">\n {operations.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.tags() || []).map(tag => tag.name());\n } else {\n const operationTagNamesSet = new Set<string>();\n Object.values(operations).forEach(({ object }) => {\n if (typeof object.tags !== 'function') {\n return;\n }\n object.tags().forEach(t => operationTagNamesSet.add(t.name()));\n });\n operationTagNames = Array.from(operationTagNamesSet);\n }\n\n const { tagged, untagged } = filterObjectsByTags(\n operationTagNames,\n operations,\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\ninterface OperationItemProps {\n channelName: string;\n summary: string;\n kind: 'publish' | 'subscribe';\n}\n\nconst OperationItem: React.FunctionComponent<OperationItemProps> = ({\n channelName,\n summary,\n kind,\n}) => {\n const config = useConfig();\n const { setShowSidebar } = useContext(SidebarContext);\n\n const isPublish = kind === 'publish';\n let label: string = '';\n if (isPublish) {\n label = config.publishLabel || PUBLISH_LABEL_DEFAULT_TEXT;\n } else {\n label = config.subscribeLabel || SUBSCRIBE_LABEL_DEFAULT_TEXT;\n }\n\n return (\n <li>\n <a\n className=\"flex no-underline text-gray-700 mb-2 hover:text-gray-900\"\n href={`#operation-${kind}-${channelName}`}\n onClick={() => setShowSidebar(false)}\n >\n <span\n className={`${\n isPublish ? 'bg-blue-600' : 'bg-green-600'\n } font-bold h-6 no-underline text-white uppercase p-1 mr-2 rounded text-xs`}\n title={isPublish ? 'Publish' : 'Subscribe'}\n >\n {label}\n </span>\n <span className=\"break-all inline-block\">{summary || channelName}</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}\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';\n\nimport { CollapseButton } from '../../components';\nimport { useConfig, useSpec } from '../../contexts';\nimport {\n PUBLISH_LABEL_DEFAULT_TEXT,\n SUBSCRIBE_LABEL_DEFAULT_TEXT,\n} from '../../constants';\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\n const info = asyncapi.info();\n const logo = info\n .extensions()\n .get('x-logo')\n ?.value();\n const components = asyncapi.components();\n const messages = components && components.messages();\n const schemas = components && components.schemas();\n const hasOperations =\n asyncapi.channels().length > 0 &&\n Object.values(asyncapi.channels()).some(\n channel => channel.operations().length > 0,\n );\n\n const messagesList = messages && Object.keys(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 {Object.entries(messages).map(([messageName, message]) => (\n <li key={messageName}>\n <a\n className=\"flex break-words no-underline text-gray-700 mt-2 hover:text-gray-900\"\n href={`#message-${messageName}`}\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 && Object.keys(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 {Object.keys(schemas).map(schemaName => (\n <li key={schemaName}>\n <a\n className=\"flex break-words no-underline text-gray-700 mt-2 hover:text-gray-900\"\n href={`#schema-${schemaName}`}\n onClick={() => setShowSidebar(false)}\n >\n <div className=\"break-all inline-block\">{schemaName}</div>\n </a>\n </li>\n ))}\n </ul>\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 // className={`${\n // showSidebar ? 'block fixed w-full' : 'hidden'\n // } sidebar bg-gray-200 font-sans font-light px-4 py-8 z-20 shadow overflow-auto`}\n >\n <div\n className={`${\n showSidebar ? 'w-full' : ''\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 <img\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 {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 {messagesList}\n {schemasList}\n </>\n )}\n </ul>\n </div>\n </div>\n </div>\n </SidebarContext.Provider>\n );\n};\n\ninterface TagObject<T = any> {\n name: string;\n object: { tags?: () => Array<{ name: () => string }> };\n data: T;\n}\n\nfunction filterObjectsByTags<T = any>(\n tags: string[],\n objects: Array<TagObject<T>>,\n): { tagged: Map<string, TagObject[]>; untagged: TagObject[] } {\n const taggedObjects = new Set<TagObject>();\n const tagged = new Map<string, TagObject[]>();\n\n tags.forEach(tag => {\n const taggedForTag: TagObject[] = [];\n objects.forEach(obj => {\n const object = obj.object;\n if (typeof object.tags !== 'function') {\n return;\n }\n\n const objectTags = (object.tags() || []).map(t => t.name());\n const hasTag = objectTags.includes(tag);\n if (hasTag) {\n taggedForTag.push(obj);\n taggedObjects.add(obj);\n }\n });\n tagged.set(tag, taggedForTag);\n });\n\n const untagged: TagObject[] = [];\n objects.forEach(obj => {\n if (!taggedObjects.has(obj)) {\n untagged.push(obj);\n }\n });\n\n return { tagged, untagged };\n}\n\nconst ServersList: React.FunctionComponent = () => {\n const sidebarConfig = useConfig().sidebar;\n const asyncapi = useSpec();\n const servers = asyncapi.servers();\n const showServers = sidebarConfig?.showServers || 'byDefault';\n\n if (showServers === 'byDefault') {\n return (\n <ul className=\"text-sm mt-2\">\n {Object.keys(servers).map(serverName => (\n <ServerItem serverName={serverName} key={serverName} />\n ))}\n </ul>\n );\n }\n\n let specTagNames: string[];\n if (showServers === 'bySpecTags') {\n specTagNames = (asyncapi.info().tags() || []).map(tag => tag.name());\n } else {\n const serverTagNamesSet = new Set<string>();\n Object.values(servers).forEach(server => {\n if (typeof server.tags !== 'function') {\n return;\n }\n server.tags().forEach(t => serverTagNamesSet.add(t.name()));\n });\n specTagNames = Array.from(serverTagNamesSet);\n }\n\n const serializedServers: TagObject[] = Object.entries(servers).map(\n ([serverName, server]) => ({\n name: serverName,\n object: server,\n data: {},\n }),\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\nconst OperationsList: React.FunctionComponent = () => {\n const sidebarConfig = useConfig().sidebar;\n const asyncapi = useSpec();\n const operations = asyncapi.operations();\n const showOperations = sidebarConfig?.showOperations || 'byDefault';\n\n const processedOperations: Array<TagObject<{\n channelName: string;\n summary: string;\n kind: 'publish' | 'subscribe';\n }>> = [];\n Object.entries(operations).forEach(([operationId, operation]) => {\n if (operation.isSend()) {\n processedOperations.push({\n name: `publish-${operationId}`,\n object: operation,\n data: {\n channelName:\n operation\n .channels()\n .all()[0]\n .address() || '',\n kind: 'publish',\n summary: operation.summary() || '',\n },\n });\n }\n if (operation.isReceive()) {\n processedOperations.push({\n name: `subscribe-${operationId}`,\n object: operation,\n data: {\n channelName:\n operation\n .channels()\n .all()[0]\n .address() || '',\n kind: 'subscribe',\n summary: operation.summary() || '',\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() || []).map(tag => tag.name());\n } else {\n const operationTagNamesSet = new Set<string>();\n Object.values(operations).forEach(operation => {\n operation.tags().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\ninterface OperationItemProps {\n channelName: string;\n summary: string;\n kind: 'publish' | 'subscribe';\n}\n\nconst OperationItem: React.FunctionComponent<OperationItemProps> = ({\n channelName,\n summary,\n kind,\n}) => {\n const config = useConfig();\n const { setShowSidebar } = useContext(SidebarContext);\n\n const isPublish = kind === 'publish';\n let label: string = '';\n if (isPublish) {\n label = config.publishLabel || PUBLISH_LABEL_DEFAULT_TEXT;\n } else {\n label = config.subscribeLabel || SUBSCRIBE_LABEL_DEFAULT_TEXT;\n }\n\n return (\n <li>\n <a\n className=\"flex no-underline text-gray-700 mb-2 hover:text-gray-900\"\n href={`#operation-${kind}-${channelName}`}\n onClick={() => setShowSidebar(false)}\n >\n <span\n className={`${\n isPublish ? 'bg-blue-600' : 'bg-green-600'\n } font-bold h-6 no-underline text-white uppercase p-1 mr-2 rounded text-xs`}\n title={isPublish ? 'Publish' : 'Subscribe'}\n >\n {label}\n </span>\n <span className=\"break-all inline-block\">{summary || channelName}</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}\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 +1 @@
1
- {"version":3,"file":"useSpec.js","sourceRoot":"","sources":["../../../src/contexts/useSpec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA0C;AAG7B,QAAA,oBAAoB,GAAG,eAAK,CAAC,aAAa,CACrD,IAAW,CACZ,CAAC;AAEF,SAAgB,OAAO;IACrB,OAAO,IAAA,kBAAU,EAAC,4BAAoB,CAAC,CAAC;AAC1C,CAAC;AAFD,0BAEC","sourcesContent":["import React, { useContext } from 'react';\nimport { AsyncAPIDocument } from '@asyncapi/parser';\n\nexport const SpecificationContext = React.createContext<AsyncAPIDocument>(\n null as any,\n);\n\nexport function useSpec() {\n return useContext(SpecificationContext);\n}\n"]}
1
+ {"version":3,"file":"useSpec.js","sourceRoot":"","sources":["../../../src/contexts/useSpec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA0C;AAG7B,QAAA,oBAAoB,GAAG,eAAK,CAAC,aAAa,CAErD,IAAW,CAAC,CAAC;AAEf,SAAgB,OAAO;IACrB,OAAO,IAAA,kBAAU,EAAC,4BAAoB,CAAC,CAAC;AAC1C,CAAC;AAFD,0BAEC","sourcesContent":["import React, { useContext } from 'react';\nimport { AsyncAPIDocumentInterface } from '@asyncapi/parser';\n\nexport const SpecificationContext = React.createContext<\n AsyncAPIDocumentInterface\n>(null as any);\n\nexport function useSpec() {\n return useContext(SpecificationContext);\n}\n"]}
@@ -29,17 +29,18 @@ var MessageHelpers = (function () {
29
29
  return schema;
30
30
  };
31
31
  MessageHelpers.getPayloadExamples = function (msg) {
32
- var examples = msg.examples();
33
- if (Array.isArray(examples) && examples.some(function (e) { return e.payload; })) {
32
+ var _a;
33
+ var examples = msg.examples().all();
34
+ if (examples.some(function (e) { return e.hasPayload(); })) {
34
35
  var messageExamples = examples
35
36
  .flatMap(function (e) {
36
- if (!e.payload) {
37
+ if (!e.payload()) {
37
38
  return;
38
39
  }
39
40
  return {
40
- name: e.name,
41
- summary: e.summary,
42
- example: e.payload,
41
+ name: e.name(),
42
+ summary: e.summary(),
43
+ example: e.payload(),
43
44
  };
44
45
  })
45
46
  .filter(Boolean);
@@ -49,22 +50,23 @@ var MessageHelpers = (function () {
49
50
  }
50
51
  var payload = msg.payload();
51
52
  if (payload && payload.examples()) {
52
- return payload.examples().map(function (example) { return ({ example: example }); });
53
+ return (_a = payload.examples()) === null || _a === void 0 ? void 0 : _a.map(function (example) { return ({ example: example }); });
53
54
  }
54
55
  return;
55
56
  };
56
57
  MessageHelpers.getHeadersExamples = function (msg) {
57
- var examples = msg.examples();
58
- if (Array.isArray(examples) && examples.some(function (e) { return e.headers; })) {
58
+ var _a;
59
+ var examples = msg.examples().all();
60
+ if (examples.some(function (e) { return e.hasHeaders(); })) {
59
61
  var messageExamples = examples
60
62
  .flatMap(function (e) {
61
- if (!e.headers) {
63
+ if (!e.hasHeaders()) {
62
64
  return;
63
65
  }
64
66
  return {
65
- name: e.name,
66
- summary: e.summary,
67
- example: e.headers,
67
+ name: e.name(),
68
+ summary: e.summary(),
69
+ example: e.headers(),
68
70
  };
69
71
  })
70
72
  .filter(Boolean);
@@ -74,7 +76,7 @@ var MessageHelpers = (function () {
74
76
  }
75
77
  var headers = msg.headers();
76
78
  if (headers && headers.examples()) {
77
- return headers.examples().map(function (example) { return ({ example: example }); });
79
+ return (_a = headers.examples()) === null || _a === void 0 ? void 0 : _a.map(function (example) { return ({ example: example }); });
78
80
  }
79
81
  return;
80
82
  };
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/helpers/message.ts"],"names":[],"mappings":"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","sourcesContent":["import { Message } from '@asyncapi/parser';\n// @ts-ignore\nimport { sample } from 'openapi-sampler';\n\nimport { MessageExample } from '../types';\n\nexport class MessageHelpers {\n static generateExample(schema: any, options: any = {}) {\n try {\n return this.sanitizeExample(sample(schema, options)) || '';\n } catch (e) {\n return '';\n }\n }\n\n static sanitizeExample(schema: any): any {\n if (typeof schema === 'object' && schema && !Array.isArray(schema)) {\n return Object.entries(schema).reduce((obj, [propertyName, property]) => {\n if (\n !propertyName.startsWith('x-parser-') &&\n !propertyName.startsWith('x-schema-private-')\n ) {\n obj[propertyName] = this.sanitizeExample(property);\n }\n return obj;\n }, {});\n }\n return schema;\n }\n\n static getPayloadExamples(msg: Message): MessageExample[] | undefined {\n const examples = msg.examples();\n if (Array.isArray(examples) && examples.some(e => e.payload)) {\n const messageExamples = examples\n .flatMap(e => {\n if (!e.payload) {\n return;\n }\n return {\n name: e.name,\n summary: e.summary,\n example: e.payload,\n };\n })\n .filter(Boolean) as MessageExample[];\n\n if (messageExamples.length > 0) {\n return messageExamples;\n }\n }\n\n const payload = msg.payload();\n if (payload && payload.examples()) {\n return payload.examples().map(example => ({ example }));\n }\n\n return;\n }\n\n static getHeadersExamples(msg: Message): MessageExample[] | undefined {\n const examples = msg.examples();\n if (Array.isArray(examples) && examples.some(e => e.headers)) {\n const messageExamples = examples\n .flatMap(e => {\n if (!e.headers) {\n return;\n }\n return {\n name: e.name,\n summary: e.summary,\n example: e.headers,\n };\n })\n .filter(Boolean) as MessageExample[];\n\n if (messageExamples.length > 0) {\n return messageExamples;\n }\n }\n\n const headers = msg.headers();\n if (headers && headers.examples()) {\n return headers.examples().map(example => ({ example }));\n }\n\n return;\n }\n}\n"]}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/helpers/message.ts"],"names":[],"mappings":"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","sourcesContent":["import { MessageInterface } from '@asyncapi/parser';\n// @ts-ignore\nimport { sample } from 'openapi-sampler';\n\nimport { MessageExample } from '../types';\n\nexport class MessageHelpers {\n static generateExample(schema: any, options: any = {}) {\n try {\n return this.sanitizeExample(sample(schema, options)) || '';\n } catch (e) {\n return '';\n }\n }\n\n static sanitizeExample(schema: any): any {\n if (typeof schema === 'object' && schema && !Array.isArray(schema)) {\n return Object.entries(schema).reduce((obj, [propertyName, property]) => {\n if (\n !propertyName.startsWith('x-parser-') &&\n !propertyName.startsWith('x-schema-private-')\n ) {\n obj[propertyName] = this.sanitizeExample(property);\n }\n return obj;\n }, {});\n }\n return schema;\n }\n\n static getPayloadExamples(\n msg: MessageInterface,\n ): MessageExample[] | undefined {\n const examples = msg.examples().all();\n\n if (examples.some(e => e.hasPayload())) {\n const messageExamples = examples\n .flatMap(e => {\n if (!e.payload()) {\n return;\n }\n return {\n name: e.name(),\n summary: e.summary(),\n example: e.payload(),\n };\n })\n .filter(Boolean) as MessageExample[];\n\n if (messageExamples.length > 0) {\n return messageExamples;\n }\n }\n\n const payload = msg.payload();\n if (payload && payload.examples()) {\n return payload.examples()?.map(example => ({ example }));\n }\n\n return;\n }\n\n static getHeadersExamples(\n msg: MessageInterface,\n ): MessageExample[] | undefined {\n const examples = msg.examples().all();\n if (examples.some(e => e.hasHeaders())) {\n const messageExamples = examples\n .flatMap(e => {\n if (!e.hasHeaders()) {\n return;\n }\n return {\n name: e.name(),\n summary: e.summary(),\n example: e.headers(),\n };\n })\n .filter(Boolean) as MessageExample[];\n\n if (messageExamples.length > 0) {\n return messageExamples;\n }\n }\n\n const headers = msg.headers();\n if (headers && headers.examples()) {\n return headers.examples()?.map(example => ({ example }));\n }\n\n return;\n }\n}\n"]}
@@ -35,33 +35,29 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
35
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
36
  }
37
37
  };
38
- var __importDefault = (this && this.__importDefault) || function (mod) {
39
- return (mod && mod.__esModule) ? mod : { "default": mod };
40
- };
41
38
  Object.defineProperty(exports, "__esModule", { value: true });
42
39
  exports.Parser = void 0;
43
40
  var parser_1 = require("@asyncapi/parser");
44
- var openapi_schema_parser_1 = __importDefault(require("@asyncapi/openapi-schema-parser"));
45
- var avro_schema_parser_1 = __importDefault(require("@asyncapi/avro-schema-parser"));
46
- var protobuf_schema_parser_1 = __importDefault(require("@asyncapi/protobuf-schema-parser"));
41
+ var openapi_schema_parser_1 = require("@asyncapi/openapi-schema-parser");
42
+ var avro_schema_parser_1 = require("@asyncapi/avro-schema-parser");
47
43
  var constants_1 = require("../constants");
48
- (0, parser_1.registerSchemaParser)(openapi_schema_parser_1.default);
49
- (0, parser_1.registerSchemaParser)(avro_schema_parser_1.default);
50
- (0, parser_1.registerSchemaParser)(protobuf_schema_parser_1.default);
44
+ var asyncapiParser = new parser_1.Parser();
45
+ asyncapiParser.registerSchemaParser((0, openapi_schema_parser_1.OpenAPISchemaParser)());
46
+ asyncapiParser.registerSchemaParser((0, avro_schema_parser_1.AvroSchemaParser)());
51
47
  var Parser = (function () {
52
48
  function Parser() {
53
49
  }
54
50
  Parser.parse = function (content, parserOptions) {
55
51
  return __awaiter(this, void 0, void 0, function () {
56
- var asyncapi, err_1;
52
+ var document_1, err_1;
57
53
  return __generator(this, function (_a) {
58
54
  switch (_a.label) {
59
55
  case 0:
60
56
  _a.trys.push([0, 2, , 3]);
61
- return [4, (0, parser_1.parse)(content, parserOptions)];
57
+ return [4, asyncapiParser.parse(content, parserOptions)];
62
58
  case 1:
63
- asyncapi = _a.sent();
64
- return [2, { asyncapi: asyncapi }];
59
+ document_1 = (_a.sent()).document;
60
+ return [2, { asyncapi: document_1 }];
65
61
  case 2:
66
62
  err_1 = _a.sent();
67
63
  return [2, this.handleError(err_1)];
@@ -72,15 +68,16 @@ var Parser = (function () {
72
68
  };
73
69
  Parser.parseFromUrl = function (arg, parserOptions) {
74
70
  return __awaiter(this, void 0, void 0, function () {
75
- var asyncapi, err_2;
71
+ var fromResult, document_2, err_2;
76
72
  return __generator(this, function (_a) {
77
73
  switch (_a.label) {
78
74
  case 0:
79
75
  _a.trys.push([0, 2, , 3]);
80
- return [4, (0, parser_1.parseFromUrl)(arg.url, arg.requestOptions, parserOptions)];
76
+ fromResult = (0, parser_1.fromURL)(asyncapiParser, arg.url, arg.requestOptions);
77
+ return [4, fromResult.parse(parserOptions)];
81
78
  case 1:
82
- asyncapi = _a.sent();
83
- return [2, { asyncapi: asyncapi }];
79
+ document_2 = (_a.sent()).document;
80
+ return [2, { asyncapi: document_2 }];
84
81
  case 2:
85
82
  err_2 = _a.sent();
86
83
  return [2, this.handleError(err_2)];
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/helpers/parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6E;AAE7E,0FAAkE;AAElE,oFAA4D;AAE5D,4FAAiE;AAIjE,0CAAsD;AAEtD,IAAA,6BAAoB,EAAC,+BAAmB,CAAC,CAAC;AAC1C,IAAA,6BAAoB,EAAC,4BAAgB,CAAC,CAAC;AACvC,IAAA,6BAAoB,EAAC,gCAAiB,CAAC,CAAC;AAExC;IAAA;IAqCA,CAAC;IApCc,YAAK,GAAlB,UACE,OAAqB,EACrB,aAAmB;;;;;;;wBAGA,WAAM,IAAA,cAAK,EAAC,OAAO,EAAE,aAAa,CAAC,EAAA;;wBAA9C,QAAQ,GAAG,SAAmC;wBACpD,WAAO,EAAE,QAAQ,UAAA,EAAE,EAAC;;;wBAEpB,WAAO,IAAI,CAAC,WAAW,CAAC,KAAkB,CAAC,EAAC;;;;;KAE/C;IAEY,mBAAY,GAAzB,UACE,GAA4B,EAC5B,aAAmB;;;;;;;wBAGA,WAAM,IAAA,qBAAY,EACjC,GAAG,CAAC,GAAG,EACP,GAAG,CAAC,cAAc,EAClB,aAAa,CACd,EAAA;;wBAJK,QAAQ,GAAG,SAIhB;wBACD,WAAO,EAAE,QAAQ,UAAA,EAAE,EAAC;;;wBAEpB,WAAO,IAAI,CAAC,WAAW,CAAC,KAAkB,CAAC,EAAC;;;;;KAE/C;IAEc,kBAAW,GAAG,UAAC,GAAgB;QAC5C,IAAI,GAAG,CAAC,IAAI,KAAK,kCAAsB,EAAE;YACvC,OAAO;gBACL,KAAK,EAAE,GAAG;aACX,CAAC;SACH;QACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACxB,CAAC,CAAC;IACJ,aAAC;CAAA,AArCD,IAqCC;AArCY,wBAAM","sourcesContent":["import { parse, parseFromUrl, registerSchemaParser } from '@asyncapi/parser';\n// @ts-ignore\nimport openapiSchemaParser from '@asyncapi/openapi-schema-parser';\n// @ts-ignore\nimport avroSchemaParser from '@asyncapi/avro-schema-parser';\n// @ts-ignore\nimport protoSchemaParser from '@asyncapi/protobuf-schema-parser';\n\nimport { ErrorObject, ParserReturn, FetchingSchemaInterface } from '../types';\n\nimport { VALIDATION_ERRORS_TYPE } from '../constants';\n\nregisterSchemaParser(openapiSchemaParser);\nregisterSchemaParser(avroSchemaParser);\nregisterSchemaParser(protoSchemaParser);\n\nexport class Parser {\n static async parse(\n content: string | any,\n parserOptions?: any,\n ): Promise<ParserReturn> {\n try {\n const asyncapi = await parse(content, parserOptions);\n return { asyncapi };\n } catch (err) {\n return this.handleError(err as ErrorObject);\n }\n }\n\n static async parseFromUrl(\n arg: FetchingSchemaInterface,\n parserOptions?: any,\n ): Promise<ParserReturn> {\n try {\n const asyncapi = await parseFromUrl(\n arg.url,\n arg.requestOptions,\n parserOptions,\n );\n return { asyncapi };\n } catch (err) {\n return this.handleError(err as ErrorObject);\n }\n }\n\n private static handleError = (err: ErrorObject): ParserReturn => {\n if (err.type === VALIDATION_ERRORS_TYPE) {\n return {\n error: err,\n };\n }\n return { error: err };\n };\n}\n"]}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/helpers/parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAqE;AACrE,yEAAsE;AACtE,mEAAgE;AAMhE,0CAAsD;AAEtD,IAAM,cAAc,GAAG,IAAI,eAAc,EAAE,CAAC;AAC5C,cAAc,CAAC,oBAAoB,CAAC,IAAA,2CAAmB,GAAE,CAAC,CAAC;AAC3D,cAAc,CAAC,oBAAoB,CAAC,IAAA,qCAAgB,GAAE,CAAC,CAAC;AAIxD;IAAA;IAkCA,CAAC;IAjCc,YAAK,GAAlB,UACE,OAAqB,EACrB,aAAmB;;;;;;;wBAGI,WAAM,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,EAAA;;wBAA/D,aAAa,CAAA,SAAkD,CAAA,SAAvD;wBAChB,WAAO,EAAE,QAAQ,EAAE,UAAQ,EAAE,EAAC;;;wBAE9B,WAAO,IAAI,CAAC,WAAW,CAAC,KAAkB,CAAC,EAAC;;;;;KAE/C;IAEY,mBAAY,GAAzB,UACE,GAA4B,EAC5B,aAAmB;;;;;;;wBAGX,UAAU,GAAG,IAAA,gBAAO,EAAC,cAAc,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;wBACnD,WAAM,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,EAAA;;wBAAlD,aAAa,CAAA,SAAqC,CAAA,SAA1C;wBAChB,WAAO,EAAE,QAAQ,EAAE,UAAQ,EAAE,EAAC;;;wBAE9B,WAAO,IAAI,CAAC,WAAW,CAAC,KAAkB,CAAC,EAAC;;;;;KAE/C;IAEc,kBAAW,GAAG,UAAC,GAAgB;QAC5C,IAAI,GAAG,CAAC,IAAI,KAAK,kCAAsB,EAAE;YACvC,OAAO;gBACL,KAAK,EAAE,GAAG;aACX,CAAC;SACH;QACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACxB,CAAC,CAAC;IACJ,aAAC;CAAA,AAlCD,IAkCC;AAlCY,wBAAM","sourcesContent":["import { Parser as AsyncapiParser, fromURL } from '@asyncapi/parser';\nimport { OpenAPISchemaParser } from '@asyncapi/openapi-schema-parser';\nimport { AvroSchemaParser } from '@asyncapi/avro-schema-parser';\n// @ts-ignore\nimport protoSchemaParser from '@asyncapi/protobuf-schema-parser';\n\nimport { ErrorObject, ParserReturn, FetchingSchemaInterface } from '../types';\n\nimport { VALIDATION_ERRORS_TYPE } from '../constants';\n\nconst asyncapiParser = new AsyncapiParser();\nasyncapiParser.registerSchemaParser(OpenAPISchemaParser());\nasyncapiParser.registerSchemaParser(AvroSchemaParser());\n// Waiting for schema parser to be upgraded\n// asyncapiParser.registerSchemaParser(protoSchemaParser);\n\nexport class Parser {\n static async parse(\n content: string | any,\n parserOptions?: any,\n ): Promise<ParserReturn> {\n try {\n const { document } = await asyncapiParser.parse(content, parserOptions);\n return { asyncapi: document };\n } catch (err) {\n return this.handleError(err as ErrorObject);\n }\n }\n\n static async parseFromUrl(\n arg: FetchingSchemaInterface,\n parserOptions?: any,\n ): Promise<ParserReturn> {\n try {\n const fromResult = fromURL(asyncapiParser, arg.url, arg.requestOptions);\n const { document } = await fromResult.parse(parserOptions);\n return { asyncapi: document };\n } catch (err) {\n return this.handleError(err as ErrorObject);\n }\n }\n\n private static handleError = (err: ErrorObject): ParserReturn => {\n if (err.type === VALIDATION_ERRORS_TYPE) {\n return {\n error: err,\n };\n }\n return { error: err };\n };\n}\n"]}
@@ -1,10 +1,7 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.SchemaHelpers = exports.SchemaCustomTypes = void 0;
7
- var schema_1 = __importDefault(require("@asyncapi/parser/lib/models/schema"));
4
+ var parser_1 = require("@asyncapi/parser");
8
5
  var SchemaCustomTypes;
9
6
  (function (SchemaCustomTypes) {
10
7
  SchemaCustomTypes["ANY"] = "any";
@@ -133,7 +130,7 @@ var SchemaHelpers = (function () {
133
130
  if (schema.oneOf() ||
134
131
  schema.anyOf() ||
135
132
  schema.allOf() ||
136
- Object.keys(schema.properties()).length ||
133
+ Object.keys(schema.properties() || {}).length > 0 ||
137
134
  schema.items() ||
138
135
  schema.not() ||
139
136
  schema.if() ||
@@ -162,10 +159,9 @@ var SchemaHelpers = (function () {
162
159
  }, {}),
163
160
  required: Object.keys(urlVariables)
164
161
  },
165
- _a[this.extRenderType] = false,
166
162
  _a[this.extRenderAdditionalInfo] = false,
167
163
  _a);
168
- return new schema_1.default(json);
164
+ return new parser_1.SchemaV2(json);
169
165
  };
170
166
  SchemaHelpers.parametersToSchema = function (parameters) {
171
167
  var _a;
@@ -186,27 +182,29 @@ var SchemaHelpers = (function () {
186
182
  }, {}),
187
183
  required: Object.keys(parameters)
188
184
  },
189
- _a[this.extRenderType] = false,
190
185
  _a[this.extRenderAdditionalInfo] = false,
191
186
  _a);
192
- return new schema_1.default(json);
187
+ return new parser_1.SchemaV2(json);
193
188
  };
194
189
  SchemaHelpers.jsonToSchema = function (value) {
195
190
  var json = this.jsonFieldToSchema(value);
196
- return new schema_1.default(json);
191
+ return new parser_1.SchemaV2(json);
197
192
  };
198
193
  SchemaHelpers.getCustomExtensions = function (value) {
199
194
  if (!value || typeof value.extensions !== 'function') {
200
195
  return;
201
196
  }
202
- return Object.entries(value.extensions() || {}).reduce(function (obj, _a) {
203
- var extName = _a[0], ext = _a[1];
204
- if (!extName.startsWith('x-parser-') &&
205
- !extName.startsWith('x-schema-private-')) {
206
- obj[extName] = ext;
197
+ var extensions = value.extensions();
198
+ var filteredExtensions = {};
199
+ for (var _i = 0, _a = Object.values(extensions.all()); _i < _a.length; _i++) {
200
+ var ext = _a[_i];
201
+ var extType = ext;
202
+ if (!extType.id().startsWith('x-parser-') &&
203
+ !extType.id().startsWith('x-schema-private-')) {
204
+ filteredExtensions[extType.id()] = extType.value();
207
205
  }
208
- return obj;
209
- }, {});
206
+ }
207
+ return filteredExtensions;
210
208
  };
211
209
  SchemaHelpers.getDependentRequired = function (propertyName, schema) {
212
210
  var dependentRequired = [];
@@ -246,10 +244,9 @@ var SchemaHelpers = (function () {
246
244
  return obj;
247
245
  }, {})
248
246
  },
249
- _a[this.extRenderType] = false,
250
247
  _a[this.extRenderAdditionalInfo] = false,
251
248
  _a);
252
- return new schema_1.default(json);
249
+ return new parser_1.SchemaV2(json);
253
250
  };
254
251
  SchemaHelpers.toType = function (type, schema) {
255
252
  if (schema.isCircular()) {
@@ -271,8 +268,8 @@ var SchemaHelpers = (function () {
271
268
  var _this = this;
272
269
  var types = items.map(function (item) { return _this.toSchemaType(item); }).join(', ');
273
270
  var additionalItems = schema.additionalItems();
274
- if (additionalItems === undefined || additionalItems.json()) {
275
- var additionalType = additionalItems === undefined || additionalItems.json() === true
271
+ if (additionalItems !== undefined && additionalItems !== false) {
272
+ var additionalType = additionalItems === true
276
273
  ? SchemaCustomTypes.ANY
277
274
  : this.toSchemaType(additionalItems);
278
275
  return "tuple<".concat(types ||
@@ -409,7 +406,6 @@ var SchemaHelpers = (function () {
409
406
  type: 'array',
410
407
  items: value.map(function (v) { return _this.jsonFieldToSchema(v); })
411
408
  },
412
- _c[this.extRenderType] = false,
413
409
  _c[this.extRenderAdditionalInfo] = false,
414
410
  _c;
415
411
  }
@@ -421,7 +417,6 @@ var SchemaHelpers = (function () {
421
417
  return obj;
422
418
  }, {})
423
419
  },
424
- _d[this.extRenderType] = false,
425
420
  _d[this.extRenderAdditionalInfo] = false,
426
421
  _d;
427
422
  };
@@ -435,7 +430,6 @@ var SchemaHelpers = (function () {
435
430
  }
436
431
  return false;
437
432
  };
438
- SchemaHelpers.extRenderType = 'x-schema-private-render-type';
439
433
  SchemaHelpers.extRenderAdditionalInfo = 'x-schema-private-render-additional-info';
440
434
  SchemaHelpers.extRawValue = 'x-schema-private-raw-value';
441
435
  SchemaHelpers.extParameterLocation = 'x-schema-private-parameter-location';