@eventcatalog/core 0.1.19 → 0.2.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 (356) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +126 -43
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/eslint/.cache_1bay4w0 +1 -1
  6. package/.next/cache/next-server.js.nft.json +1 -1
  7. package/.next/cache/webpack/client-production/0.pack +0 -0
  8. package/.next/cache/webpack/client-production/index.pack +0 -0
  9. package/.next/cache/webpack/server-production/0.pack +0 -0
  10. package/.next/cache/webpack/server-production/index.pack +0 -0
  11. package/.next/next-server.js.nft.json +1 -1
  12. package/.next/prerender-manifest.json +1 -1
  13. package/.next/routes-manifest.json +1 -1
  14. package/.next/server/chunks/{730.js → 189.js} +184 -2
  15. package/.next/server/chunks/267.js +255 -0
  16. package/.next/server/chunks/{681.js → 29.js} +275 -40
  17. package/.next/server/chunks/484.js +12 -3
  18. package/.next/server/chunks/50.js +392 -0
  19. package/.next/server/chunks/526.js +15 -4
  20. package/.next/server/chunks/565.js +3 -3
  21. package/.next/server/chunks/778.js +76 -0
  22. package/.next/server/chunks/797.js +92 -0
  23. package/.next/server/chunks/854.js +103 -0
  24. package/.next/server/chunks/938.js +3 -2
  25. package/.next/server/chunks/944.js +102 -153
  26. package/.next/server/pages/404.html +1 -1
  27. package/.next/server/pages/500.html +1 -1
  28. package/.next/server/pages/_app.js +5 -1
  29. package/.next/server/pages/domains/Shopping/events/AddedItemToCart/logs.html +1 -0
  30. package/.next/server/pages/{events → domains/Shopping/events}/AddedItemToCart/logs.json +0 -0
  31. package/.next/server/pages/domains/Shopping/events/AddedItemToCart/v/0.0.1.html +58 -0
  32. package/.next/server/pages/domains/Shopping/events/AddedItemToCart/v/0.0.1.json +1 -0
  33. package/.next/server/pages/domains/Shopping/events/AddedItemToCart/v/0.0.2.html +65 -0
  34. package/.next/server/pages/domains/Shopping/events/AddedItemToCart/v/0.0.2.json +1 -0
  35. package/.next/server/pages/domains/Shopping/events/AddedItemToCart.html +65 -0
  36. package/.next/server/pages/domains/Shopping/events/AddedItemToCart.json +1 -0
  37. package/.next/server/pages/domains/Shopping/services/Basket Service.html +2 -0
  38. package/.next/server/pages/domains/Shopping/services/Basket Service.json +1 -0
  39. package/.next/server/pages/domains/Shopping/services/Data Lake.html +2 -0
  40. package/.next/server/pages/domains/Shopping/services/Data Lake.json +1 -0
  41. package/.next/server/pages/domains/Shopping.html +2 -0
  42. package/.next/server/pages/domains/Shopping.json +1 -0
  43. package/.next/server/pages/domains/[domain]/events/[name]/logs.js +243 -0
  44. package/.next/server/pages/domains/[domain]/events/[name]/logs.js.nft.json +1 -0
  45. package/.next/server/pages/domains/[domain]/events/[name]/v/[version].js +352 -0
  46. package/.next/server/pages/domains/[domain]/events/[name]/v/[version].js.nft.json +1 -0
  47. package/.next/server/pages/domains/[domain]/events/[name].js +270 -0
  48. package/.next/server/pages/domains/[domain]/events/[name].js.nft.json +1 -0
  49. package/.next/server/pages/domains/[domain]/services/[name].js +318 -0
  50. package/.next/server/pages/domains/[domain]/services/[name].js.nft.json +1 -0
  51. package/.next/server/pages/domains/[domain].js +504 -0
  52. package/.next/server/pages/domains/[domain].js.nft.json +1 -0
  53. package/.next/server/pages/domains.html +2 -0
  54. package/.next/server/pages/domains.js +318 -0
  55. package/.next/server/pages/domains.js.nft.json +1 -0
  56. package/.next/server/pages/domains.json +1 -0
  57. package/.next/server/pages/events/OrderComplete/logs.html +1 -1
  58. package/.next/server/pages/events/OrderComplete.html +2 -2
  59. package/.next/server/pages/events/OrderComplete.json +1 -1
  60. package/.next/server/pages/events/OrderConfirmed/logs.html +1 -1
  61. package/.next/server/pages/events/OrderConfirmed.html +2 -2
  62. package/.next/server/pages/events/OrderConfirmed.json +1 -1
  63. package/.next/server/pages/events/OrderRequested/logs.html +1 -1
  64. package/.next/server/pages/events/OrderRequested.html +2 -2
  65. package/.next/server/pages/events/OrderRequested.json +1 -1
  66. package/.next/server/pages/events/PaymentProcessed/logs.html +1 -1
  67. package/.next/server/pages/events/PaymentProcessed.html +2 -2
  68. package/.next/server/pages/events/PaymentProcessed.json +1 -1
  69. package/.next/server/pages/events/RemovedItemFromCart/logs.html +1 -1
  70. package/.next/server/pages/events/RemovedItemFromCart.html +2 -2
  71. package/.next/server/pages/events/RemovedItemFromCart.json +1 -1
  72. package/.next/server/pages/events/ShipmentDelivered/logs.html +1 -1
  73. package/.next/server/pages/events/ShipmentDelivered.html +2 -2
  74. package/.next/server/pages/events/ShipmentDelivered.json +1 -1
  75. package/.next/server/pages/events/ShipmentDispatched/logs.html +1 -1
  76. package/.next/server/pages/events/ShipmentDispatched.html +2 -2
  77. package/.next/server/pages/events/ShipmentDispatched.json +1 -1
  78. package/.next/server/pages/events/ShipmentPrepared/logs.html +1 -1
  79. package/.next/server/pages/events/ShipmentPrepared.html +2 -2
  80. package/.next/server/pages/events/ShipmentPrepared.json +1 -1
  81. package/.next/server/pages/events/[name]/logs.js +1 -243
  82. package/.next/server/pages/events/[name]/logs.js.nft.json +1 -1
  83. package/.next/server/pages/events/[name]/v/[version].js +10 -5
  84. package/.next/server/pages/events/[name]/v/[version].js.nft.json +1 -1
  85. package/.next/server/pages/events/[name].js +2 -2
  86. package/.next/server/pages/events/[name].js.nft.json +1 -1
  87. package/.next/server/pages/events.html +3 -3
  88. package/.next/server/pages/events.js +39 -14
  89. package/.next/server/pages/events.js.nft.json +1 -1
  90. package/.next/server/pages/events.json +1 -1
  91. package/.next/server/pages/index.html +1 -1
  92. package/.next/server/pages/overview.html +1 -1
  93. package/.next/server/pages/overview.js +4 -4
  94. package/.next/server/pages/overview.js.nft.json +1 -1
  95. package/.next/server/pages/overview.json +1 -1
  96. package/.next/server/pages/services/Basket Service.html +1 -2
  97. package/.next/server/pages/services/Basket Service.json +1 -1
  98. package/.next/server/pages/services/Data Lake.html +1 -2
  99. package/.next/server/pages/services/Data Lake.json +1 -1
  100. package/.next/server/pages/services/Payment Service.html +2 -2
  101. package/.next/server/pages/services/Payment Service.json +1 -1
  102. package/.next/server/pages/services/Shipping Service.html +2 -2
  103. package/.next/server/pages/services/Shipping Service.json +1 -1
  104. package/.next/server/pages/services/[name].js +1 -505
  105. package/.next/server/pages/services/[name].js.nft.json +1 -1
  106. package/.next/server/pages/services.html +3 -3
  107. package/.next/server/pages/services.js +1 -1
  108. package/.next/server/pages/services.js.nft.json +1 -1
  109. package/.next/server/pages/services.json +1 -1
  110. package/.next/server/pages/users/[id].js +35 -13
  111. package/.next/server/pages/users/[id].js.nft.json +1 -1
  112. package/.next/server/pages/users/dboyne.html +6 -5
  113. package/.next/server/pages/users/dboyne.json +1 -1
  114. package/.next/server/pages/users/mSmith.html +3 -3
  115. package/.next/server/pages/users/mSmith.json +1 -1
  116. package/.next/server/pages/visualiser.html +4 -3
  117. package/.next/server/pages/visualiser.js +149 -149
  118. package/.next/server/pages/visualiser.js.nft.json +1 -1
  119. package/.next/server/pages/visualiser.json +1 -1
  120. package/.next/server/pages-manifest.json +6 -0
  121. package/.next/static/chunks/109-716dea1303010b4f.js +1 -0
  122. package/.next/static/chunks/169-b33dfdaf2847d062.js +1 -0
  123. package/.next/static/chunks/178-e9a666e11fb7c88d.js +1 -0
  124. package/.next/static/chunks/585-aa9262ea1bcf9d5b.js +1 -0
  125. package/.next/static/chunks/650-555944cc1eb7714e.js +1 -0
  126. package/.next/static/chunks/962-17a425b16c23bd0f.js +1 -0
  127. package/.next/static/chunks/pages/_app-d88c877888678e85.js +1 -0
  128. package/.next/static/chunks/pages/domains/[domain]/events/[name]/logs-7317f2121b8f0d8c.js +1 -0
  129. package/.next/static/chunks/pages/domains/[domain]/events/[name]/v/[version]-a7fa6002267ccd3b.js +1 -0
  130. package/.next/static/chunks/pages/domains/[domain]/events/[name]-a5fb5b26471e703b.js +1 -0
  131. package/.next/static/chunks/pages/domains/[domain]/services/[name]-80d6d803e5466b81.js +1 -0
  132. package/.next/static/chunks/pages/domains/[domain]-e39d527b56fd45c8.js +1 -0
  133. package/.next/static/chunks/pages/domains-6ab78cb1bc2f4200.js +1 -0
  134. package/.next/static/chunks/pages/events/[name]/v/[version]-93d978734b0dc0a3.js +1 -0
  135. package/.next/static/chunks/pages/events/{[name]-813780e7042af288.js → [name]-d3d2a03948b8dfeb.js} +1 -1
  136. package/.next/static/chunks/pages/events-5a41c37b360b2fce.js +1 -0
  137. package/.next/static/chunks/pages/{overview-2f0bfad06c84e437.js → overview-dc5e91549c7e3d52.js} +1 -1
  138. package/.next/static/chunks/pages/services/[name]-148079bb388f8c53.js +1 -0
  139. package/.next/static/chunks/pages/services-7fe5a823f1b25f18.js +1 -0
  140. package/.next/static/chunks/pages/users/[id]-b255611073ef76e0.js +1 -0
  141. package/.next/static/chunks/pages/visualiser-2fc8224670ac5dff.js +1 -0
  142. package/.next/static/chunks/webpack-b17b8ef11b94ba66.js +1 -0
  143. package/{out/_next/static/css/4a01a08d48b115f7.css → .next/static/css/70ede87da43120f8.css} +1 -1
  144. package/.next/static/sTHntsHUajnk_njFTxiB5/_buildManifest.js +1 -0
  145. package/.next/static/{jznFKGTbxJsAeYNZE4XtO → sTHntsHUajnk_njFTxiB5}/_middlewareManifest.js +0 -0
  146. package/.next/static/sTHntsHUajnk_njFTxiB5/_ssgManifest.js +1 -0
  147. package/.next/trace +57 -56
  148. package/CHANGELOG.md +6 -0
  149. package/components/Grids/DomainGrid.tsx +53 -0
  150. package/components/Grids/EventGrid.tsx +12 -5
  151. package/components/Grids/ServiceGrid.tsx +3 -3
  152. package/components/Header.tsx +2 -1
  153. package/components/Mdx/NodeGraph/GraphElements.tsx +1 -1
  154. package/components/Mdx/NodeGraph/GraphLayout.ts +6 -2
  155. package/components/Mdx/NodeGraph/NodeGraph.tsx +13 -3
  156. package/components/Mdx/NodeGraph/__tests__/GraphElements.spec.ts +8 -4
  157. package/components/Mdx/NodeGraph/__tests__/GraphLayout.spec.ts +2 -2
  158. package/components/Sidebars/DomainSidebar.tsx +55 -0
  159. package/components/Sidebars/EventSidebar.tsx +61 -111
  160. package/components/Sidebars/ServiceSidebar.tsx +47 -125
  161. package/components/Sidebars/components/ExternalLinks.tsx +28 -0
  162. package/components/Sidebars/components/ItemList.tsx +32 -0
  163. package/components/Sidebars/components/Owners.tsx +38 -0
  164. package/components/Sidebars/components/Tags.tsx +45 -0
  165. package/lib/__tests__/assets/domains/User/events/UserCreated/index.md +16 -0
  166. package/lib/__tests__/assets/domains/User/events/UserRemoved/examples/Basic.cs +31 -0
  167. package/lib/__tests__/assets/domains/User/events/UserRemoved/examples/Basic.js +1 -0
  168. package/lib/__tests__/assets/domains/User/events/UserRemoved/index.md +16 -0
  169. package/lib/__tests__/assets/domains/User/events/UserRemoved/schema.json +4 -0
  170. package/lib/__tests__/assets/domains/User/index.md +12 -0
  171. package/lib/__tests__/assets/domains/User/services/User Service/index.md +15 -0
  172. package/lib/__tests__/assets/events/AddedItemToCart/index.md +0 -2
  173. package/lib/__tests__/assets/services/Basket Service/index.md +1 -1
  174. package/lib/__tests__/domains.spec.ts +267 -0
  175. package/lib/__tests__/events.spec.ts +216 -90
  176. package/lib/__tests__/graphs.spec.ts +4 -4
  177. package/lib/__tests__/services.spec.ts +62 -7
  178. package/lib/domains.ts +148 -0
  179. package/lib/events.ts +68 -22
  180. package/lib/graphs.ts +6 -3
  181. package/lib/services.ts +51 -13
  182. package/out/404/index.html +1 -1
  183. package/out/_next/data/{jznFKGTbxJsAeYNZE4XtO → sTHntsHUajnk_njFTxiB5/domains/Shopping}/events/AddedItemToCart/logs.json +0 -0
  184. package/out/_next/data/sTHntsHUajnk_njFTxiB5/domains/Shopping/events/AddedItemToCart/v/0.0.1.json +1 -0
  185. package/out/_next/data/sTHntsHUajnk_njFTxiB5/domains/Shopping/events/AddedItemToCart/v/0.0.2.json +1 -0
  186. package/out/_next/data/sTHntsHUajnk_njFTxiB5/domains/Shopping/events/AddedItemToCart.json +1 -0
  187. package/out/_next/data/sTHntsHUajnk_njFTxiB5/domains/Shopping/services/Basket Service.json +1 -0
  188. package/out/_next/data/sTHntsHUajnk_njFTxiB5/domains/Shopping/services/Data Lake.json +1 -0
  189. package/out/_next/data/sTHntsHUajnk_njFTxiB5/domains/Shopping.json +1 -0
  190. package/out/_next/data/sTHntsHUajnk_njFTxiB5/domains.json +1 -0
  191. package/out/_next/data/{jznFKGTbxJsAeYNZE4XtO → sTHntsHUajnk_njFTxiB5}/events/OrderComplete/logs.json +0 -0
  192. package/out/_next/data/sTHntsHUajnk_njFTxiB5/events/OrderComplete.json +1 -0
  193. package/out/_next/data/{jznFKGTbxJsAeYNZE4XtO → sTHntsHUajnk_njFTxiB5}/events/OrderConfirmed/logs.json +0 -0
  194. package/out/_next/data/sTHntsHUajnk_njFTxiB5/events/OrderConfirmed.json +1 -0
  195. package/out/_next/data/{jznFKGTbxJsAeYNZE4XtO → sTHntsHUajnk_njFTxiB5}/events/OrderRequested/logs.json +0 -0
  196. package/out/_next/data/sTHntsHUajnk_njFTxiB5/events/OrderRequested.json +1 -0
  197. package/out/_next/data/{jznFKGTbxJsAeYNZE4XtO → sTHntsHUajnk_njFTxiB5}/events/PaymentProcessed/logs.json +0 -0
  198. package/out/_next/data/sTHntsHUajnk_njFTxiB5/events/PaymentProcessed.json +1 -0
  199. package/out/_next/data/{jznFKGTbxJsAeYNZE4XtO → sTHntsHUajnk_njFTxiB5}/events/RemovedItemFromCart/logs.json +0 -0
  200. package/out/_next/data/sTHntsHUajnk_njFTxiB5/events/RemovedItemFromCart.json +1 -0
  201. package/out/_next/data/{jznFKGTbxJsAeYNZE4XtO → sTHntsHUajnk_njFTxiB5}/events/ShipmentDelivered/logs.json +0 -0
  202. package/out/_next/data/sTHntsHUajnk_njFTxiB5/events/ShipmentDelivered.json +1 -0
  203. package/out/_next/data/{jznFKGTbxJsAeYNZE4XtO → sTHntsHUajnk_njFTxiB5}/events/ShipmentDispatched/logs.json +0 -0
  204. package/out/_next/data/sTHntsHUajnk_njFTxiB5/events/ShipmentDispatched.json +1 -0
  205. package/out/_next/data/{jznFKGTbxJsAeYNZE4XtO → sTHntsHUajnk_njFTxiB5}/events/ShipmentPrepared/logs.json +0 -0
  206. package/out/_next/data/sTHntsHUajnk_njFTxiB5/events/ShipmentPrepared.json +1 -0
  207. package/out/_next/data/sTHntsHUajnk_njFTxiB5/events.json +1 -0
  208. package/out/_next/data/sTHntsHUajnk_njFTxiB5/overview.json +1 -0
  209. package/out/_next/data/sTHntsHUajnk_njFTxiB5/services/Basket Service.json +1 -0
  210. package/out/_next/data/sTHntsHUajnk_njFTxiB5/services/Data Lake.json +1 -0
  211. package/out/_next/data/sTHntsHUajnk_njFTxiB5/services/Payment Service.json +1 -0
  212. package/out/_next/data/sTHntsHUajnk_njFTxiB5/services/Shipping Service.json +1 -0
  213. package/out/_next/data/sTHntsHUajnk_njFTxiB5/services.json +1 -0
  214. package/out/_next/data/sTHntsHUajnk_njFTxiB5/users/dboyne.json +1 -0
  215. package/out/_next/data/sTHntsHUajnk_njFTxiB5/users/mSmith.json +1 -0
  216. package/out/_next/data/sTHntsHUajnk_njFTxiB5/visualiser.json +1 -0
  217. package/out/_next/static/chunks/109-716dea1303010b4f.js +1 -0
  218. package/out/_next/static/chunks/169-b33dfdaf2847d062.js +1 -0
  219. package/out/_next/static/chunks/178-e9a666e11fb7c88d.js +1 -0
  220. package/out/_next/static/chunks/585-aa9262ea1bcf9d5b.js +1 -0
  221. package/out/_next/static/chunks/650-555944cc1eb7714e.js +1 -0
  222. package/out/_next/static/chunks/962-17a425b16c23bd0f.js +1 -0
  223. package/out/_next/static/chunks/pages/_app-d88c877888678e85.js +1 -0
  224. package/out/_next/static/chunks/pages/domains/[domain]/events/[name]/logs-7317f2121b8f0d8c.js +1 -0
  225. package/out/_next/static/chunks/pages/domains/[domain]/events/[name]/v/[version]-a7fa6002267ccd3b.js +1 -0
  226. package/out/_next/static/chunks/pages/domains/[domain]/events/[name]-a5fb5b26471e703b.js +1 -0
  227. package/out/_next/static/chunks/pages/domains/[domain]/services/[name]-80d6d803e5466b81.js +1 -0
  228. package/out/_next/static/chunks/pages/domains/[domain]-e39d527b56fd45c8.js +1 -0
  229. package/out/_next/static/chunks/pages/domains-6ab78cb1bc2f4200.js +1 -0
  230. package/out/_next/static/chunks/pages/events/[name]/v/[version]-93d978734b0dc0a3.js +1 -0
  231. package/out/_next/static/chunks/pages/events/{[name]-813780e7042af288.js → [name]-d3d2a03948b8dfeb.js} +1 -1
  232. package/out/_next/static/chunks/pages/events-5a41c37b360b2fce.js +1 -0
  233. package/out/_next/static/chunks/pages/{overview-2f0bfad06c84e437.js → overview-dc5e91549c7e3d52.js} +1 -1
  234. package/out/_next/static/chunks/pages/services/[name]-148079bb388f8c53.js +1 -0
  235. package/out/_next/static/chunks/pages/services-7fe5a823f1b25f18.js +1 -0
  236. package/out/_next/static/chunks/pages/users/[id]-b255611073ef76e0.js +1 -0
  237. package/out/_next/static/chunks/pages/visualiser-2fc8224670ac5dff.js +1 -0
  238. package/out/_next/static/chunks/webpack-b17b8ef11b94ba66.js +1 -0
  239. package/{.next/static/css/4a01a08d48b115f7.css → out/_next/static/css/70ede87da43120f8.css} +1 -1
  240. package/out/_next/static/sTHntsHUajnk_njFTxiB5/_buildManifest.js +1 -0
  241. package/out/_next/static/{jznFKGTbxJsAeYNZE4XtO → sTHntsHUajnk_njFTxiB5}/_middlewareManifest.js +0 -0
  242. package/out/_next/static/sTHntsHUajnk_njFTxiB5/_ssgManifest.js +1 -0
  243. package/out/domains/Shopping/events/AddedItemToCart/index.html +65 -0
  244. package/out/domains/Shopping/events/AddedItemToCart/logs/index.html +1 -0
  245. package/out/domains/Shopping/events/AddedItemToCart/v/0.0.1/index.html +58 -0
  246. package/out/domains/Shopping/events/AddedItemToCart/v/0.0.2/index.html +65 -0
  247. package/out/domains/Shopping/index.html +2 -0
  248. package/out/domains/Shopping/services/Basket Service/index.html +2 -0
  249. package/out/domains/Shopping/services/Data Lake/index.html +2 -0
  250. package/out/domains/index.html +2 -0
  251. package/out/events/OrderComplete/index.html +2 -2
  252. package/out/events/OrderComplete/logs/index.html +1 -1
  253. package/out/events/OrderConfirmed/index.html +2 -2
  254. package/out/events/OrderConfirmed/logs/index.html +1 -1
  255. package/out/events/OrderRequested/index.html +2 -2
  256. package/out/events/OrderRequested/logs/index.html +1 -1
  257. package/out/events/PaymentProcessed/index.html +2 -2
  258. package/out/events/PaymentProcessed/logs/index.html +1 -1
  259. package/out/events/RemovedItemFromCart/index.html +2 -2
  260. package/out/events/RemovedItemFromCart/logs/index.html +1 -1
  261. package/out/events/ShipmentDelivered/index.html +2 -2
  262. package/out/events/ShipmentDelivered/logs/index.html +1 -1
  263. package/out/events/ShipmentDispatched/index.html +2 -2
  264. package/out/events/ShipmentDispatched/logs/index.html +1 -1
  265. package/out/events/ShipmentPrepared/index.html +2 -2
  266. package/out/events/ShipmentPrepared/logs/index.html +1 -1
  267. package/out/events/index.html +3 -3
  268. package/out/index.html +1 -1
  269. package/out/overview/index.html +1 -1
  270. package/out/services/Basket Service/index.html +1 -2
  271. package/out/services/Data Lake/index.html +1 -2
  272. package/out/services/Payment Service/index.html +2 -2
  273. package/out/services/Shipping Service/index.html +2 -2
  274. package/out/services/index.html +3 -3
  275. package/out/users/dboyne/index.html +6 -5
  276. package/out/users/mSmith/index.html +3 -3
  277. package/out/visualiser/index.html +4 -3
  278. package/package.json +2 -2
  279. package/pages/domains/[domain]/events/[name]/logs.tsx +29 -0
  280. package/pages/domains/[domain]/events/[name]/v/[version].tsx +39 -0
  281. package/pages/domains/[domain]/events/[name].tsx +46 -0
  282. package/pages/domains/[domain]/index.tsx +138 -0
  283. package/pages/domains/[domain]/services/[name].tsx +42 -0
  284. package/pages/domains.tsx +64 -0
  285. package/pages/events/[name]/logs.tsx +6 -4
  286. package/pages/events/[name]/v/[version].tsx +3 -2
  287. package/pages/events/[name].tsx +26 -12
  288. package/pages/events.tsx +59 -33
  289. package/pages/overview.tsx +3 -3
  290. package/pages/services/[name].tsx +8 -8
  291. package/pages/users/[id].tsx +15 -5
  292. package/pages/visualiser.tsx +98 -82
  293. package/scripts/move-schemas-for-download.js +25 -10
  294. package/tailwind.config.js +11 -1
  295. package/.next/server/pages/events/AddedItemToCart/logs.html +0 -1
  296. package/.next/server/pages/events/AddedItemToCart/v/0.0.1.html +0 -58
  297. package/.next/server/pages/events/AddedItemToCart/v/0.0.1.json +0 -1
  298. package/.next/server/pages/events/AddedItemToCart/v/0.0.2.html +0 -65
  299. package/.next/server/pages/events/AddedItemToCart/v/0.0.2.json +0 -1
  300. package/.next/server/pages/events/AddedItemToCart.html +0 -65
  301. package/.next/server/pages/events/AddedItemToCart.json +0 -1
  302. package/.next/static/chunks/109-a08539311d3d6672.js +0 -1
  303. package/.next/static/chunks/178-87f01d17ab32dd4f.js +0 -1
  304. package/.next/static/chunks/252-08ab418f9b6821dd.js +0 -1
  305. package/.next/static/chunks/650-343888e13f994a09.js +0 -1
  306. package/.next/static/chunks/962-20c87db3880df896.js +0 -1
  307. package/.next/static/chunks/pages/_app-f1bd719e11eb827e.js +0 -1
  308. package/.next/static/chunks/pages/events/[name]/v/[version]-33051dbc32f5fe4e.js +0 -1
  309. package/.next/static/chunks/pages/events-1f39499146c9c75f.js +0 -1
  310. package/.next/static/chunks/pages/services/[name]-142d7fa515cfc532.js +0 -1
  311. package/.next/static/chunks/pages/services-f52121c6dc1211aa.js +0 -1
  312. package/.next/static/chunks/pages/users/[id]-d3140bb155f8fb45.js +0 -1
  313. package/.next/static/chunks/pages/visualiser-e4e3757e74f19df7.js +0 -1
  314. package/.next/static/chunks/webpack-fb340c369157e229.js +0 -1
  315. package/.next/static/jznFKGTbxJsAeYNZE4XtO/_buildManifest.js +0 -1
  316. package/.next/static/jznFKGTbxJsAeYNZE4XtO/_ssgManifest.js +0 -1
  317. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/events/AddedItemToCart/v/0.0.1.json +0 -1
  318. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/events/AddedItemToCart/v/0.0.2.json +0 -1
  319. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/events/AddedItemToCart.json +0 -1
  320. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/events/OrderComplete.json +0 -1
  321. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/events/OrderConfirmed.json +0 -1
  322. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/events/OrderRequested.json +0 -1
  323. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/events/PaymentProcessed.json +0 -1
  324. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/events/RemovedItemFromCart.json +0 -1
  325. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/events/ShipmentDelivered.json +0 -1
  326. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/events/ShipmentDispatched.json +0 -1
  327. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/events/ShipmentPrepared.json +0 -1
  328. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/events.json +0 -1
  329. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/overview.json +0 -1
  330. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/services/Basket Service.json +0 -1
  331. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/services/Data Lake.json +0 -1
  332. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/services/Payment Service.json +0 -1
  333. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/services/Shipping Service.json +0 -1
  334. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/services.json +0 -1
  335. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/users/dboyne.json +0 -1
  336. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/users/mSmith.json +0 -1
  337. package/out/_next/data/jznFKGTbxJsAeYNZE4XtO/visualiser.json +0 -1
  338. package/out/_next/static/chunks/109-a08539311d3d6672.js +0 -1
  339. package/out/_next/static/chunks/178-87f01d17ab32dd4f.js +0 -1
  340. package/out/_next/static/chunks/252-08ab418f9b6821dd.js +0 -1
  341. package/out/_next/static/chunks/650-343888e13f994a09.js +0 -1
  342. package/out/_next/static/chunks/962-20c87db3880df896.js +0 -1
  343. package/out/_next/static/chunks/pages/_app-f1bd719e11eb827e.js +0 -1
  344. package/out/_next/static/chunks/pages/events/[name]/v/[version]-33051dbc32f5fe4e.js +0 -1
  345. package/out/_next/static/chunks/pages/events-1f39499146c9c75f.js +0 -1
  346. package/out/_next/static/chunks/pages/services/[name]-142d7fa515cfc532.js +0 -1
  347. package/out/_next/static/chunks/pages/services-f52121c6dc1211aa.js +0 -1
  348. package/out/_next/static/chunks/pages/users/[id]-d3140bb155f8fb45.js +0 -1
  349. package/out/_next/static/chunks/pages/visualiser-e4e3757e74f19df7.js +0 -1
  350. package/out/_next/static/chunks/webpack-fb340c369157e229.js +0 -1
  351. package/out/_next/static/jznFKGTbxJsAeYNZE4XtO/_buildManifest.js +0 -1
  352. package/out/_next/static/jznFKGTbxJsAeYNZE4XtO/_ssgManifest.js +0 -1
  353. package/out/events/AddedItemToCart/index.html +0 -65
  354. package/out/events/AddedItemToCart/logs/index.html +0 -1
  355. package/out/events/AddedItemToCart/v/0.0.1/index.html +0 -58
  356. package/out/events/AddedItemToCart/v/0.0.2/index.html +0 -65
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @eventcatalog/core
2
2
 
3
+ ## 0.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`8352416`](https://github.com/boyney123/eventcatalog/commit/835241609aa03cb8158b7a5a1c662c57f8e22505) [#204](https://github.com/boyney123/eventcatalog/pull/204) Thanks [@boyney123](https://github.com/boyney123)! - feat: adding domain support to eventcatalog
8
+
3
9
  ## 0.1.19
4
10
 
5
11
  ### Patch Changes
@@ -0,0 +1,53 @@
1
+ import React from 'react';
2
+ import Link from 'next/link';
3
+
4
+ import { CubeIcon } from '@heroicons/react/outline';
5
+
6
+ import { Domain } from '@eventcatalog/types';
7
+
8
+ import getBackgroundColor from '@/utils/random-bg';
9
+
10
+ interface DomainGridProps {
11
+ domains: Domain[];
12
+ }
13
+
14
+ function DomainGrid({ domains = [] }: DomainGridProps) {
15
+ return (
16
+ <ul className="mt-3 grid grid-cols-1 gap-5 md:grid-cols-2">
17
+ {domains.map((domain) => (
18
+ <li key={domain.name} className="flex">
19
+ <Link href={`/domains/${domain.name}`}>
20
+ <a className="flex shadow-sm w-full">
21
+ <div
22
+ style={{
23
+ background: getBackgroundColor(domain.name),
24
+ }}
25
+ className="w-4 rounded-l-md"
26
+ />
27
+ <div className="w-full border-t border-r border-b border-gray-200 bg-white rounded-r-md ">
28
+ <div className="p-4 text-sm space-y-2 flex flex-col justify-between h-full">
29
+ <div>
30
+ <span className="text-gray-900 font-bold">{domain.name}</span>
31
+ <div className="text-gray-500 text-xs font-normal mt-2 line-clamp-3">{domain.summary}</div>
32
+ </div>
33
+ <div className="flex space-x-4 text-xs pt-2 relative bottom-0 left-0">
34
+ <div className=" font-medium text-gray-500">
35
+ <CubeIcon className="h-4 w-4 text-green-400 inline-block mr-2" aria-hidden="true" />
36
+ Services ({domain.services.length})
37
+ </div>
38
+ <div className=" font-medium text-gray-500">
39
+ <CubeIcon className="h-4 w-4 text-indigo-400 inline-block mr-2" aria-hidden="true" />
40
+ Events ({domain.events.length})
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ </a>
46
+ </Link>
47
+ </li>
48
+ ))}
49
+ </ul>
50
+ );
51
+ }
52
+
53
+ export default DomainGrid;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import Link from 'next/link';
3
3
 
4
- import { CubeIcon } from '@heroicons/react/outline';
4
+ import { CubeIcon, CollectionIcon } from '@heroicons/react/outline';
5
5
 
6
6
  import { Event } from '@eventcatalog/types';
7
7
  import getBackgroundColor from '@/utils/random-bg';
@@ -21,11 +21,12 @@ function EventGrid({ events = [], showMermaidDiagrams = false }: EventGridProps)
21
21
  return (
22
22
  <ul className="mt-3 grid grid-cols-1 gap-5 md:grid-cols-2">
23
23
  {events.map((event) => {
24
- const { draft: isDraft } = event;
24
+ const { draft: isDraft, domain } = event;
25
+ const eventURL = domain ? `/domains/${domain}/events/${event.name}` : `/events/${event.name}`;
25
26
 
26
27
  return (
27
28
  <li key={event.name} className="flex">
28
- <Link href={`/events/${event.name}`}>
29
+ <Link href={eventURL}>
29
30
  <a className="flex shadow-sm rounded-md w-full">
30
31
  <div
31
32
  style={{
@@ -58,12 +59,18 @@ function EventGrid({ events = [], showMermaidDiagrams = false }: EventGridProps)
58
59
  <div className="flex space-x-4 text-xs pt-2 relative bottom-0 left-0">
59
60
  <div className=" font-medium text-gray-500">
60
61
  <CubeIcon className="h-4 w-4 text-green-400 inline-block mr-2" aria-hidden="true" />
61
- Producers ({event.producers.length})
62
+ Producers ({event.producerNames.length})
62
63
  </div>
63
64
  <div className=" font-medium text-gray-500">
64
65
  <CubeIcon className="h-4 w-4 text-indigo-400 inline-block mr-2" aria-hidden="true" />
65
- Subscribers ({event.consumers.length})
66
+ Subscribers ({event.consumerNames.length})
66
67
  </div>
68
+ {event.domain && (
69
+ <div className=" font-medium text-gray-500">
70
+ <CollectionIcon className="h-4 w-4 text-yellow-400 inline-block mr-2" aria-hidden="true" />
71
+ {event.domain}
72
+ </div>
73
+ )}
67
74
  </div>
68
75
  </div>
69
76
  </div>
@@ -17,11 +17,11 @@ function ServiceGrid({ services = [], showMermaidDiagrams = false }: ServiceGrid
17
17
  return (
18
18
  <ul className="mt-3 grid grid-cols-1 gap-5 md:grid-cols-2">
19
19
  {services.map((service) => {
20
- const { draft: isDraft } = service;
21
-
20
+ const { draft: isDraft, domain } = service;
21
+ const serviceUrl = domain ? `/domains/${domain}/services/${service.name}` : `/services/${service.name}`;
22
22
  return (
23
23
  <li key={service.name} className="flex">
24
- <Link href={`/services/${service.name}`}>
24
+ <Link href={serviceUrl}>
25
25
  <a className="flex shadow-sm w-full">
26
26
  <div
27
27
  style={{
@@ -6,6 +6,7 @@ import { useConfig } from '@/hooks/EventCatalog';
6
6
  const navigation = [
7
7
  { name: 'Events', href: '/events' },
8
8
  { name: 'Services', href: '/services' },
9
+ { name: 'Domains', href: '/domains' },
9
10
  { name: 'Visualiser', href: '/visualiser' },
10
11
  { name: '3D Node Graph', href: '/overview' },
11
12
  ];
@@ -46,7 +47,7 @@ export default function Example() {
46
47
  <div className="hidden sm:block sm:ml-6">
47
48
  <div className="flex space-x-4">
48
49
  {navigation.map((item) => {
49
- const current = router.pathname.includes(item.href);
50
+ const current = router.pathname === item.href;
50
51
  return (
51
52
  <Link key={item.name} href={item.href}>
52
53
  <a
@@ -44,7 +44,7 @@ const getNodeLabel = ({ type, label, includeIcon }: { type: NODE_TYPES; label: a
44
44
  * @param isAnimated - whether to animate the graph
45
45
  */
46
46
  export const getEventElements = (
47
- { name: eventName, producers: eventProducers, consumers: eventConsumers }: Event,
47
+ { name: eventName, producerNames: eventProducers, consumerNames: eventConsumers }: Event,
48
48
  rootNodeColor = '#2563eb',
49
49
  isAnimated = true,
50
50
  includeLabels = false,
@@ -48,10 +48,14 @@ export const calcCanvasHeight = (data, type): number => {
48
48
  const minHeight = 300;
49
49
  const nodeSpacing = nodeDefaultHeight + verticalOffset;
50
50
  let nodesHeight = 0;
51
+
51
52
  if (type === 'event') {
52
- nodesHeight = Math.max(data.producers.length, data.consumers.length) * nodeSpacing;
53
- } else {
53
+ nodesHeight = Math.max(data.producerNames.length, data.consumerNames.length) * nodeSpacing;
54
+ }
55
+
56
+ if (type === 'service') {
54
57
  nodesHeight = Math.max(data.publishes.length, data.subscribes.length) * nodeSpacing;
55
58
  }
59
+
56
60
  return Math.max(minHeight, nodesHeight);
57
61
  };
@@ -1,13 +1,13 @@
1
1
  import React, { useCallback, useEffect, useRef, useState } from 'react';
2
2
  import Link from 'next/link';
3
3
  import ReactFlow, { Controls, ReactFlowProvider, useStoreState, Background, useZoomPanHelper } from 'react-flow-renderer';
4
- import { Event, Service } from '@eventcatalog/types';
4
+ import { Domain, Event, Service } from '@eventcatalog/types';
5
5
  import { getEventElements, getServiceElements } from './GraphElements';
6
6
  import createGraphLayout, { calcCanvasHeight } from './GraphLayout';
7
7
 
8
8
  interface NodeGraphBuilderProps {
9
- data: Event | Service;
10
- source: 'event' | 'service';
9
+ data: Event | Service | Domain;
10
+ source: 'event' | 'service' | 'domain';
11
11
  title?: string;
12
12
  subtitle?: string;
13
13
  rootNodeColor?: string;
@@ -45,9 +45,19 @@ function NodeGraphBuilder({
45
45
  subtitle,
46
46
  }: NodeGraphBuilderProps) {
47
47
  const getElements = () => {
48
+ if (source === 'domain') {
49
+ const domainData = data as Domain;
50
+ const totalEventElements = domainData.events.map((event) => getEventElements(event, rootNodeColor, isAnimated, true, true));
51
+ const totalServiceElements = domainData.services.map((service) =>
52
+ getServiceElements(service, rootNodeColor, isAnimated, true, true)
53
+ );
54
+ return totalEventElements.flat().concat(totalServiceElements.flat());
55
+ }
56
+
48
57
  if (source === 'event') {
49
58
  return getEventElements(data as Event, rootNodeColor, isAnimated, includeEdgeLabels, includeNodeIcons);
50
59
  }
60
+
51
61
  return getServiceElements(data as Service, rootNodeColor, isAnimated, includeEdgeLabels, includeNodeIcons);
52
62
  };
53
63
 
@@ -62,8 +62,8 @@ describe('GraphElements', () => {
62
62
  const event = {
63
63
  name: 'My Event',
64
64
  version: '0.0.1',
65
- producers: ['Service 1'],
66
- consumers: ['Service 2'],
65
+ producerNames: ['Service 1'],
66
+ consumerNames: ['Service 2'],
67
67
  };
68
68
  const rootNodeColor = '#2563eb';
69
69
  const isAnimated = true;
@@ -77,8 +77,12 @@ describe('GraphElements', () => {
77
77
  const event = {
78
78
  name: 'My Event',
79
79
  version: '0.0.1',
80
- producers: ['Service 1', 'Service 2', 'very very very very very very very very very very very very long name Service 3'],
81
- consumers: [
80
+ producerNames: [
81
+ 'Service 1',
82
+ 'Service 2',
83
+ 'very very very very very very very very very very very very long name Service 3',
84
+ ],
85
+ consumerNames: [
82
86
  'Service 4',
83
87
  'Service 5',
84
88
  'Service 6',
@@ -85,8 +85,8 @@ describe('GraphLayout', () => {
85
85
  describe('calcCanvasHeight', () => {
86
86
  it('takes all events and calculate the canvas height', () => {
87
87
  const data = {
88
- producers: [1, 2, 3, 4, 5, 6, 7, 8],
89
- consumers: [1, 2, 3, 4, 5],
88
+ producerNames: [1, 2, 3, 4, 5, 6, 7, 8],
89
+ consumerNames: [1, 2, 3, 4, 5],
90
90
  };
91
91
  const result = calcCanvasHeight(data, 'event');
92
92
  expect(result).toEqual(544);
@@ -0,0 +1,55 @@
1
+ import React from 'react';
2
+ import Link from 'next/link';
3
+ import type { Domain } from '@eventcatalog/types';
4
+ import { CubeIcon } from '@heroicons/react/outline';
5
+ import ExternalLinks from './components/ExternalLinks';
6
+ import Tags from './components/Tags';
7
+ import Owners from './components/Owners';
8
+ import ItemList from './components/ItemList';
9
+
10
+ interface DomainSideBarProps {
11
+ domain: Domain;
12
+ }
13
+
14
+ function ServiceSidebar({ domain }: DomainSideBarProps) {
15
+ const { name, owners, services, events, tags = [], externalLinks } = domain;
16
+
17
+ return (
18
+ <aside className="hidden xl:block xl:pl-8 divide-y divide-gray-200">
19
+ <h2 className="sr-only">Details</h2>
20
+
21
+ {events.length > 0 && (
22
+ <ItemList
23
+ title={`Events (${events.length})`}
24
+ titleIcon={{ icon: CubeIcon, className: 'text-indigo-400' }}
25
+ items={events.map((event) => ({ label: event.name, href: `/domains/${name}/events/${event.name}`, bgColor: 'indigo' }))}
26
+ />
27
+ )}
28
+
29
+ {services.length > 0 && (
30
+ <ItemList
31
+ title={`Services (${services.length})`}
32
+ titleIcon={{ icon: CubeIcon, className: 'text-green-400' }}
33
+ items={services.map((service) => ({
34
+ label: service.name,
35
+ href: `/domains/${name}/services/${service.name}`,
36
+ bgColor: 'green',
37
+ }))}
38
+ />
39
+ )}
40
+
41
+ {owners.length > 0 && <Owners owners={owners} />}
42
+
43
+ <Link href={`/visualiser?type=domain&name=${domain.name}`}>
44
+ <a className="hidden w-full md:inline-flex h-10 justify-center px-4 py-2 border border-gray-300 shadow-sm text-sm font-medium rounded-md text-gray-800 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-200">
45
+ <span>View in Visualiser</span>
46
+ </a>
47
+ </Link>
48
+
49
+ {externalLinks.length > 0 && <ExternalLinks externalLinks={externalLinks} />}
50
+ {tags.length > 0 && <Tags tags={tags} />}
51
+ </aside>
52
+ );
53
+ }
54
+
55
+ export default ServiceSidebar;
@@ -1,20 +1,38 @@
1
1
  import React from 'react';
2
2
  import Link from 'next/link';
3
3
  import getConfig from 'next/config';
4
- import { CubeIcon, DownloadIcon, ExternalLinkIcon } from '@heroicons/react/outline';
4
+ import { CubeIcon, DownloadIcon, CollectionIcon } from '@heroicons/react/outline';
5
5
  import type { Event } from '@eventcatalog/types';
6
- import { useUser } from '@/hooks/EventCatalog';
6
+
7
+ import ExternalLinks from './components/ExternalLinks';
8
+ import Owners from './components/Owners';
9
+ import ItemList from './components/ItemList';
7
10
 
8
11
  interface EventSideBarProps {
9
12
  event: Event;
13
+ urlPath: string;
10
14
  loadedVersion?: string;
11
15
  isOldVersion?: boolean;
12
16
  }
13
17
 
14
- function EventSideBar({ event, loadedVersion, isOldVersion }: EventSideBarProps) {
15
- const { getUserById } = useUser();
18
+ const getServiceLink = (serviceName: string, event: Event) => {
19
+ const allEventServices = [...event.consumers, ...event.producers];
20
+ const matchedService = allEventServices.find((service) => service.name === serviceName);
21
+ if (matchedService) return `/domains/${matchedService.domain}/services/${serviceName}`;
22
+ return `/services/${serviceName}`;
23
+ };
16
24
 
17
- const { name: eventName, owners, producers, consumers, historicVersions, externalLinks, schema } = event;
25
+ function EventSideBar({ event, loadedVersion, isOldVersion, urlPath }: EventSideBarProps) {
26
+ const {
27
+ name: eventName,
28
+ owners,
29
+ producerNames: producers,
30
+ consumerNames: consumers,
31
+ historicVersions,
32
+ externalLinks,
33
+ schema,
34
+ domain,
35
+ } = event;
18
36
  const { publicRuntimeConfig: { basePath = '' } = {} } = getConfig();
19
37
 
20
38
  const getSchemaDownloadURL = () => {
@@ -25,60 +43,54 @@ function EventSideBar({ event, loadedVersion, isOldVersion }: EventSideBarProps)
25
43
  };
26
44
 
27
45
  return (
28
- <aside className="hidden xl:block xl:pl-8">
46
+ <aside className="hidden xl:block xl:pl-8 divide-y divide-gray-200">
29
47
  <h2 className="sr-only">Details</h2>
30
48
 
31
- <div className="pt-6 py-6 space-y-8">
32
- <div>
33
- <h2 className="text-sm font-medium text-gray-500">
34
- <CubeIcon className="h-5 w-5 text-green-400 inline-block mr-2" aria-hidden="true" />
35
- Producers
36
- </h2>
37
- <ul className="mt-2 leading-8">
38
- {producers.map((producer) => (
39
- <li className="inline mr-1" key={producer}>
40
- <Link href={`/services/${producer}`}>
41
- <a className="relative inline-flex items-center rounded-full border border-gray-300 px-3 py-0.5">
42
- <div className="absolute flex-shrink-0 flex items-center justify-center">
43
- <span className="h-1.5 w-1.5 rounded-full bg-green-500 animate animate-pulse" aria-hidden="true" />
44
- </div>
45
- <div className="ml-3.5 text-sm font-medium text-gray-900">{producer}</div>
46
- </a>
47
- </Link>
48
- </li>
49
- ))}
50
- </ul>
51
- </div>
52
- </div>
53
- <div className="border-t border-gray-200 py-6 space-y-8">
54
- <div>
55
- <h2 className="text-sm font-medium text-gray-500">
56
- <CubeIcon className="h-5 w-5 text-indigo-400 inline-block mr-2" aria-hidden="true" />
57
- Consumers
58
- </h2>
59
- <ul className="mt-2 leading-8">
60
- {consumers.map((consumer) => (
61
- <li className="inline" key={consumer}>
62
- <Link href={`/services/${consumer}`}>
49
+ {producers.length > 0 && (
50
+ <ItemList
51
+ title={`Producers (${producers.length})`}
52
+ titleIcon={{ icon: CubeIcon, className: 'text-green-400' }}
53
+ items={producers.map((producer) => ({ label: producer, href: getServiceLink(producer, event), bgColor: 'green' }))}
54
+ />
55
+ )}
56
+
57
+ {consumers.length > 0 && (
58
+ <ItemList
59
+ title={`Consumers (${consumers.length})`}
60
+ titleIcon={{ icon: CubeIcon, className: 'text-indigo-400' }}
61
+ items={consumers.map((consumer) => ({ label: consumer, href: getServiceLink(consumer, event), bgColor: 'indigo' }))}
62
+ />
63
+ )}
64
+
65
+ {domain && (
66
+ <div className="py-6 space-y-8">
67
+ <div>
68
+ <h2 className="text-sm font-medium text-gray-500">
69
+ <CollectionIcon className="h-5 w-5 text-yellow-400 inline-block mr-2" aria-hidden="true" />
70
+ Domain
71
+ </h2>
72
+ <ul className="mt-2 leading-8">
73
+ <li className="inline">
74
+ <Link href={`/domains/${domain}`}>
63
75
  <a href="#" className="relative inline-flex items-center rounded-full border border-gray-300 px-3 py-0.5">
64
76
  <div className="absolute flex-shrink-0 flex items-center justify-center">
65
- <span className="h-1.5 w-1.5 rounded-full bg-indigo-500 animate animate-pulse" aria-hidden="true" />
77
+ <span className="h-1.5 w-1.5 rounded-full bg-yellow-500 animate animate-pulse" aria-hidden="true" />
66
78
  </div>
67
- <div className="ml-3.5 text-sm font-medium text-gray-900">{consumer}</div>
79
+ <div className="ml-3.5 text-sm font-medium text-gray-900">{domain}</div>
68
80
  </a>
69
81
  </Link>
70
82
  </li>
71
- ))}
72
- </ul>
83
+ </ul>
84
+ </div>
73
85
  </div>
74
- </div>
86
+ )}
75
87
  {historicVersions.length > 0 && (
76
- <div className="border-t border-gray-200 py-6">
88
+ <div className=" py-6">
77
89
  <div>
78
90
  <h2 className="text-sm font-medium text-gray-500">Event Versions</h2>
79
91
  <ul className="mt-2 leading-8 text-left text-blue-500">
80
92
  <li className="text-sm inline ">
81
- <Link href={`/events/${eventName}`}>
93
+ <Link href={urlPath}>
82
94
  <a>
83
95
  <span
84
96
  className={`inline-flex mr-2 items-center px-2.5 py-0.5 rounded-full text-xs font-medium -top-0.5 relative ${
@@ -100,7 +112,7 @@ function EventSideBar({ event, loadedVersion, isOldVersion }: EventSideBarProps)
100
112
  : 'bg-blue-100 text-blue-800';
101
113
  return (
102
114
  <li className="text-sm inline" key={version}>
103
- <Link href={`/events/${eventName}/v/${version}`}>
115
+ <Link href={`${urlPath}/v/${version}`}>
104
116
  <a>
105
117
  <span
106
118
  className={`inline-flex mr-2 items-center px-2.5 py-0.5 rounded-full text-xs font-medium -top-0.5 relative ${styles}`}
@@ -116,59 +128,10 @@ function EventSideBar({ event, loadedVersion, isOldVersion }: EventSideBarProps)
116
128
  </div>
117
129
  </div>
118
130
  )}
119
- {/* <div className="border-t border-gray-200 py-6 space-y-8">
120
- <div>
121
- <h2 className="text-sm font-medium text-gray-500">
122
- <MapIcon className="h-5 w-5 text-red-400 inline-block mr-2" aria-hidden="true" />
123
- Domains
124
- </h2>
125
- <ul role="list" className="mt-2 leading-8">
126
- {domains.map((domain) => {
127
- return (
128
- <li className="inline" key={domain}>
129
- <a
130
- href="#"
131
- className="relative inline-flex items-center rounded-full border border-gray-300 px-3 py-0.5"
132
- >
133
- <div className="absolute flex-shrink-0 flex items-center justify-center">
134
- <span className="h-1.5 w-1.5 rounded-full bg-red-500" aria-hidden="true" />
135
- </div>
136
- <div className="ml-3.5 text-sm font-medium text-gray-900">{domain}</div>
137
- </a>{' '}
138
- </li>
139
- )
140
- })}
141
- </ul>
142
- </div>
143
- </div> */}
144
- {owners && owners.length > 0 && (
145
- <div className="border-t border-gray-200 py-6 space-y-8">
146
- <div>
147
- <h2 className="text-sm font-medium text-gray-500">Event Owners</h2>
148
- <ul className="mt-4 leading-8 space-y-2">
149
- {owners.map((id) => {
150
- const user = getUserById(id);
151
131
 
152
- if (!user) return null;
132
+ {owners.length > 0 && <Owners owners={owners} />}
153
133
 
154
- return (
155
- <li className="flex justify-start" key={id}>
156
- <Link href={`/users/${id}`}>
157
- <a className="flex items-center space-x-3">
158
- <div className="flex-shrink-0">
159
- <img className="h-5 w-5 rounded-full" src={user.avatarUrl} alt="" />
160
- </div>
161
- <div className="text-sm font-medium text-gray-900">{user.name}</div>
162
- </a>
163
- </Link>
164
- </li>
165
- );
166
- })}
167
- </ul>
168
- </div>
169
- </div>
170
- )}
171
- <div className="border-t border-gray-200 py-6 space-y-1">
134
+ <div className=" py-6 space-y-1">
172
135
  {schema && (
173
136
  <a
174
137
  href={getSchemaDownloadURL()}
@@ -194,20 +157,7 @@ function EventSideBar({ event, loadedVersion, isOldVersion }: EventSideBarProps)
194
157
  </a>
195
158
  </Link>
196
159
 
197
- {externalLinks.length > 0 &&
198
- externalLinks.map((tag) => (
199
- <a
200
- href={tag.url}
201
- target="_blank"
202
- type="button"
203
- className="hidden w-full md:inline-flex h-10 justify-center px-4 py-2 border border-teal-300 shadow-sm text-sm font-medium rounded-md text-teal-800 hover:bg-teal-100 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-teal-200"
204
- rel="noreferrer"
205
- key={tag.url}
206
- >
207
- <ExternalLinkIcon className="-ml-1 mr-2 h-5 w-5 text-teal-200" aria-hidden="true" />
208
- <span>{`${tag.label}`}</span>
209
- </a>
210
- ))}
160
+ {externalLinks.length > 0 && <ExternalLinks externalLinks={externalLinks} />}
211
161
  </div>
212
162
  </aside>
213
163
  );