@eventcatalog/core 1.2.7 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (622) hide show
  1. package/.changeset/config.json +11 -0
  2. package/.github/CODEOWNERS +3 -0
  3. package/.github/ISSUE_TEMPLATE.md +1 -0
  4. package/.github/PULL_REQUEST_TEMPLATE.md +18 -0
  5. package/.github/funding.yml +1 -0
  6. package/.github/workflows/lint.yml +22 -0
  7. package/.github/workflows/release.yml +34 -0
  8. package/.github/workflows/verify-build.yml +27 -0
  9. package/.prettierignore +7 -0
  10. package/.prettierrc +10 -0
  11. package/CHANGELOG.md +10 -0
  12. package/LICENSE.md +21 -0
  13. package/README.md +206 -5
  14. package/astro.config.mjs +57 -0
  15. package/bin/dist/eventcatalog.cjs +3139 -0
  16. package/bin/dist/eventcatalog.d.cts +1 -0
  17. package/bin/dist/eventcatalog.d.ts +1 -0
  18. package/bin/dist/eventcatalog.js +3141 -0
  19. package/images/example.png +0 -0
  20. package/package.json +59 -52
  21. package/public/icons/github.svg +1 -0
  22. package/public/icons/x-twitter.svg +1 -0
  23. package/public/logo.png +0 -0
  24. package/public/slack-icon.svg +1 -0
  25. package/scripts/build-ci.js +22 -0
  26. package/scripts/catalog-to-astro-content-directory.js +188 -0
  27. package/scripts/default-files-for-collections/commands.md +8 -0
  28. package/scripts/default-files-for-collections/domains.md +8 -0
  29. package/scripts/default-files-for-collections/events.md +8 -0
  30. package/scripts/default-files-for-collections/services.md +8 -0
  31. package/scripts/default-files-for-collections/teams.md +11 -0
  32. package/scripts/default-files-for-collections/users.md +11 -0
  33. package/scripts/start-catalog-locally.js +23 -0
  34. package/scripts/watcher.js +53 -0
  35. package/src/components/DocsNavigation.astro +110 -0
  36. package/src/components/Header.astro +65 -0
  37. package/src/components/Lists/BasicList.tsx +59 -0
  38. package/src/components/Lists/OwnersList.tsx +101 -0
  39. package/src/components/Lists/PillList.tsx +67 -0
  40. package/src/components/Lists/VersionList.astro +29 -0
  41. package/src/components/MDX/Accordion/Accordion.astro +10 -0
  42. package/src/components/MDX/Accordion/Accordion.tsx +29 -0
  43. package/src/components/MDX/Accordion/AccordionGroup.astro +16 -0
  44. package/{components/Mdx → src/components/MDX}/Admonition.tsx +6 -5
  45. package/src/components/MDX/File.tsx +43 -0
  46. package/src/components/MDX/NodeGraph/DownloadButton.tsx +58 -0
  47. package/src/components/MDX/NodeGraph/NodeGraph.astro +82 -0
  48. package/src/components/MDX/NodeGraph/NodeGraph.tsx +135 -0
  49. package/src/components/MDX/NodeGraph/NodeGraphPortal.tsx +15 -0
  50. package/src/components/MDX/NodeGraph/Nodes/Command.tsx +74 -0
  51. package/src/components/MDX/NodeGraph/Nodes/Event.tsx +74 -0
  52. package/src/components/MDX/NodeGraph/Nodes/Service.tsx +83 -0
  53. package/src/components/MDX/OpenAPI/OpenAPI.tsx +35 -0
  54. package/src/components/MDX/Schema.tsx +45 -0
  55. package/src/components/MDX/components.tsx +24 -0
  56. package/src/components/Search.astro +108 -0
  57. package/src/components/Seo.astro +79 -0
  58. package/src/components/SideBars/DomainSideBar.astro +42 -0
  59. package/src/components/SideBars/MessageSideBar.astro +81 -0
  60. package/src/components/SideBars/ServiceSideBar.astro +93 -0
  61. package/src/components/Tables/DebouncedInput.tsx +32 -0
  62. package/src/components/Tables/Table.tsx +228 -0
  63. package/src/components/Tables/columns/DomainTableColumns.tsx +118 -0
  64. package/src/components/Tables/columns/MessageTableColumns.tsx +159 -0
  65. package/src/components/Tables/columns/ServiceTableColumns.tsx +162 -0
  66. package/src/components/Tables/columns/index.tsx +17 -0
  67. package/src/components/Tables/filters/custom-filters.ts +14 -0
  68. package/src/content/config.ts +119 -0
  69. package/src/env.d.ts +2 -0
  70. package/src/layouts/CustomDocsPageLayout.astro +100 -0
  71. package/src/layouts/DiscoverLayout.astro +120 -0
  72. package/src/layouts/DocsLayout.astro +59 -0
  73. package/src/layouts/PlainPage.astro +29 -0
  74. package/src/layouts/VisualiserLayout.astro +73 -0
  75. package/src/pages/discover/[type]/index.astro +36 -0
  76. package/src/pages/docs/[type]/[id]/[version]/index.astro +215 -0
  77. package/src/pages/docs/[type]/[id]/[version]/spec/index.astro +93 -0
  78. package/src/pages/docs/index.md +4 -0
  79. package/src/pages/docs/teams/[id]/index.astro +127 -0
  80. package/src/pages/docs/users/[id]/index.astro +132 -0
  81. package/src/pages/visualiser/[type]/[id]/[version]/index.astro +46 -0
  82. package/src/pages/visualiser/index.astro +25 -0
  83. package/src/remark-plugins/mermaid.ts +27 -0
  84. package/src/remark-plugins/remark-modified-time.mjs +9 -0
  85. package/src/types/index.ts +2 -0
  86. package/src/utils/collections/util.ts +22 -0
  87. package/src/utils/colors.ts +14 -0
  88. package/src/utils/commands/node-graph.ts +107 -0
  89. package/src/utils/commands.ts +60 -0
  90. package/src/utils/config/catalog.ts +2 -0
  91. package/src/utils/domains/domains.ts +50 -0
  92. package/src/utils/domains/node-graph.ts +60 -0
  93. package/src/utils/events/node-graph.ts +108 -0
  94. package/src/utils/events.ts +62 -0
  95. package/src/utils/example-remark-plugin.mjs +6 -0
  96. package/src/utils/messages.ts +7 -0
  97. package/src/utils/node-graph-utils/utils.ts +31 -0
  98. package/src/utils/services/node-graph.ts +133 -0
  99. package/src/utils/services/services.ts +88 -0
  100. package/src/utils/teams.ts +47 -0
  101. package/src/utils/users.ts +59 -0
  102. package/tailwind.config.mjs +24 -0
  103. package/tsconfig.json +11 -26
  104. package/.next/BUILD_ID +0 -1
  105. package/.next/build-manifest.json +0 -246
  106. package/.next/cache/.tsbuildinfo +0 -1
  107. package/.next/cache/config.json +0 -7
  108. package/.next/cache/eslint/.cache_1bay4w0 +0 -1
  109. package/.next/cache/next-server.js.nft.json +0 -1
  110. package/.next/cache/webpack/client-production/0.pack +0 -0
  111. package/.next/cache/webpack/client-production/index.pack +0 -0
  112. package/.next/cache/webpack/server-production/0.pack +0 -0
  113. package/.next/cache/webpack/server-production/index.pack +0 -0
  114. package/.next/export-detail.json +0 -1
  115. package/.next/export-marker.json +0 -1
  116. package/.next/images-manifest.json +0 -1
  117. package/.next/next-server.js.nft.json +0 -1
  118. package/.next/package.json +0 -1
  119. package/.next/prerender-manifest.json +0 -1
  120. package/.next/react-loadable-manifest.json +0 -2112
  121. package/.next/required-server-files.json +0 -1
  122. package/.next/routes-manifest.json +0 -1
  123. package/.next/server/chunks/109.js +0 -608
  124. package/.next/server/chunks/237.js +0 -109
  125. package/.next/server/chunks/267.js +0 -257
  126. package/.next/server/chunks/274.js +0 -32
  127. package/.next/server/chunks/29.js +0 -675
  128. package/.next/server/chunks/331.js +0 -750
  129. package/.next/server/chunks/362.js +0 -570
  130. package/.next/server/chunks/428.js +0 -84
  131. package/.next/server/chunks/50.js +0 -466
  132. package/.next/server/chunks/526.js +0 -159
  133. package/.next/server/chunks/537.js +0 -136
  134. package/.next/server/chunks/788.js +0 -162
  135. package/.next/server/chunks/797.js +0 -92
  136. package/.next/server/chunks/8.js +0 -173
  137. package/.next/server/chunks/854.js +0 -107
  138. package/.next/server/chunks/938.js +0 -140
  139. package/.next/server/chunks/944.js +0 -721
  140. package/.next/server/chunks/962.js +0 -13
  141. package/.next/server/chunks/97.js +0 -2829
  142. package/.next/server/chunks/992.js +0 -50
  143. package/.next/server/chunks/font-manifest.json +0 -1
  144. package/.next/server/font-manifest.json +0 -1
  145. package/.next/server/middleware-manifest.json +0 -6
  146. package/.next/server/pages/404.html +0 -12
  147. package/.next/server/pages/500.html +0 -12
  148. package/.next/server/pages/_app.js +0 -623
  149. package/.next/server/pages/_app.js.nft.json +0 -1
  150. package/.next/server/pages/_document.js +0 -120
  151. package/.next/server/pages/_document.js.nft.json +0 -1
  152. package/.next/server/pages/_error.js +0 -148
  153. package/.next/server/pages/_error.js.nft.json +0 -1
  154. package/.next/server/pages/domains/Orders/events/OrderComplete/logs.html +0 -1
  155. package/.next/server/pages/domains/Orders/events/OrderComplete/logs.json +0 -1
  156. package/.next/server/pages/domains/Orders/events/OrderComplete.html +0 -40
  157. package/.next/server/pages/domains/Orders/events/OrderComplete.json +0 -1
  158. package/.next/server/pages/domains/Orders/events/OrderConfirmed/logs.html +0 -1
  159. package/.next/server/pages/domains/Orders/events/OrderConfirmed/logs.json +0 -1
  160. package/.next/server/pages/domains/Orders/events/OrderConfirmed.html +0 -40
  161. package/.next/server/pages/domains/Orders/events/OrderConfirmed.json +0 -1
  162. package/.next/server/pages/domains/Orders/events/OrderCreated/logs.html +0 -1
  163. package/.next/server/pages/domains/Orders/events/OrderCreated/logs.json +0 -1
  164. package/.next/server/pages/domains/Orders/events/OrderCreated.html +0 -2
  165. package/.next/server/pages/domains/Orders/events/OrderCreated.json +0 -1
  166. package/.next/server/pages/domains/Orders/events/OrderRequested/logs.html +0 -1
  167. package/.next/server/pages/domains/Orders/events/OrderRequested/logs.json +0 -1
  168. package/.next/server/pages/domains/Orders/events/OrderRequested.html +0 -40
  169. package/.next/server/pages/domains/Orders/events/OrderRequested.json +0 -1
  170. package/.next/server/pages/domains/Orders/services/Orders Service.html +0 -2
  171. package/.next/server/pages/domains/Orders/services/Orders Service.json +0 -1
  172. package/.next/server/pages/domains/Orders.html +0 -2
  173. package/.next/server/pages/domains/Orders.json +0 -1
  174. package/.next/server/pages/domains/Shopping/events/AddedItemToCart/logs.html +0 -1
  175. package/.next/server/pages/domains/Shopping/events/AddedItemToCart/logs.json +0 -1
  176. package/.next/server/pages/domains/Shopping/events/AddedItemToCart/v/0.0.1.html +0 -59
  177. package/.next/server/pages/domains/Shopping/events/AddedItemToCart/v/0.0.1.json +0 -1
  178. package/.next/server/pages/domains/Shopping/events/AddedItemToCart/v/0.0.2.html +0 -66
  179. package/.next/server/pages/domains/Shopping/events/AddedItemToCart/v/0.0.2.json +0 -1
  180. package/.next/server/pages/domains/Shopping/events/AddedItemToCart.html +0 -65
  181. package/.next/server/pages/domains/Shopping/events/AddedItemToCart.json +0 -1
  182. package/.next/server/pages/domains/Shopping/events/RemovedItemFromCart/logs.html +0 -1
  183. package/.next/server/pages/domains/Shopping/events/RemovedItemFromCart/logs.json +0 -1
  184. package/.next/server/pages/domains/Shopping/events/RemovedItemFromCart.html +0 -48
  185. package/.next/server/pages/domains/Shopping/events/RemovedItemFromCart.json +0 -1
  186. package/.next/server/pages/domains/Shopping.html +0 -2
  187. package/.next/server/pages/domains/Shopping.json +0 -1
  188. package/.next/server/pages/domains/[domain]/events/[name]/logs.js +0 -345
  189. package/.next/server/pages/domains/[domain]/events/[name]/logs.js.nft.json +0 -1
  190. package/.next/server/pages/domains/[domain]/events/[name]/v/[version].js +0 -435
  191. package/.next/server/pages/domains/[domain]/events/[name]/v/[version].js.nft.json +0 -1
  192. package/.next/server/pages/domains/[domain]/events/[name].js +0 -354
  193. package/.next/server/pages/domains/[domain]/events/[name].js.nft.json +0 -1
  194. package/.next/server/pages/domains/[domain]/services/[name].js +0 -402
  195. package/.next/server/pages/domains/[domain]/services/[name].js.nft.json +0 -1
  196. package/.next/server/pages/domains/[domain].js +0 -549
  197. package/.next/server/pages/domains/[domain].js.nft.json +0 -1
  198. package/.next/server/pages/domains.html +0 -3
  199. package/.next/server/pages/domains.js +0 -576
  200. package/.next/server/pages/domains.js.nft.json +0 -1
  201. package/.next/server/pages/domains.json +0 -1
  202. package/.next/server/pages/events/PaymentProcessed/logs.html +0 -1
  203. package/.next/server/pages/events/PaymentProcessed/logs.json +0 -1
  204. package/.next/server/pages/events/PaymentProcessed.html +0 -44
  205. package/.next/server/pages/events/PaymentProcessed.json +0 -1
  206. package/.next/server/pages/events/ShipmentDelivered/logs.html +0 -1
  207. package/.next/server/pages/events/ShipmentDelivered/logs.json +0 -1
  208. package/.next/server/pages/events/ShipmentDelivered.html +0 -44
  209. package/.next/server/pages/events/ShipmentDelivered.json +0 -1
  210. package/.next/server/pages/events/ShipmentDispatched/logs.html +0 -1
  211. package/.next/server/pages/events/ShipmentDispatched/logs.json +0 -1
  212. package/.next/server/pages/events/ShipmentDispatched.html +0 -44
  213. package/.next/server/pages/events/ShipmentDispatched.json +0 -1
  214. package/.next/server/pages/events/ShipmentPrepared/logs.html +0 -1
  215. package/.next/server/pages/events/ShipmentPrepared/logs.json +0 -1
  216. package/.next/server/pages/events/ShipmentPrepared.html +0 -2
  217. package/.next/server/pages/events/ShipmentPrepared.json +0 -1
  218. package/.next/server/pages/events/[name]/logs.js +0 -263
  219. package/.next/server/pages/events/[name]/logs.js.nft.json +0 -1
  220. package/.next/server/pages/events/[name]/v/[version].js +0 -431
  221. package/.next/server/pages/events/[name]/v/[version].js.nft.json +0 -1
  222. package/.next/server/pages/events/[name].js +0 -354
  223. package/.next/server/pages/events/[name].js.nft.json +0 -1
  224. package/.next/server/pages/events.html +0 -11
  225. package/.next/server/pages/events.js +0 -789
  226. package/.next/server/pages/events.js.nft.json +0 -1
  227. package/.next/server/pages/events.json +0 -1
  228. package/.next/server/pages/index.html +0 -1
  229. package/.next/server/pages/index.js.nft.json +0 -1
  230. package/.next/server/pages/overview.html +0 -1
  231. package/.next/server/pages/overview.js +0 -240
  232. package/.next/server/pages/overview.js.nft.json +0 -1
  233. package/.next/server/pages/overview.json +0 -1
  234. package/.next/server/pages/services/Orders Service.html +0 -1
  235. package/.next/server/pages/services/Orders Service.json +0 -1
  236. package/.next/server/pages/services/Payment Service.html +0 -2
  237. package/.next/server/pages/services/Payment Service.json +0 -1
  238. package/.next/server/pages/services/Shipping Service.html +0 -2
  239. package/.next/server/pages/services/Shipping Service.json +0 -1
  240. package/.next/server/pages/services/[name].js +0 -319
  241. package/.next/server/pages/services/[name].js.nft.json +0 -1
  242. package/.next/server/pages/services.html +0 -4
  243. package/.next/server/pages/services.js +0 -741
  244. package/.next/server/pages/services.js.nft.json +0 -1
  245. package/.next/server/pages/services.json +0 -1
  246. package/.next/server/pages/users/[id].js +0 -475
  247. package/.next/server/pages/users/[id].js.nft.json +0 -1
  248. package/.next/server/pages/users/dboyne.html +0 -16
  249. package/.next/server/pages/users/dboyne.json +0 -1
  250. package/.next/server/pages/users/mSmith.html +0 -13
  251. package/.next/server/pages/users/mSmith.json +0 -1
  252. package/.next/server/pages/users.html +0 -1
  253. package/.next/server/pages/users.js.nft.json +0 -1
  254. package/.next/server/pages/visualiser.html +0 -16
  255. package/.next/server/pages/visualiser.js +0 -739
  256. package/.next/server/pages/visualiser.js.nft.json +0 -1
  257. package/.next/server/pages/visualiser.json +0 -1
  258. package/.next/server/pages-manifest.json +0 -23
  259. package/.next/server/webpack-runtime.js +0 -259
  260. package/.next/static/chunks/020d8314.2bae2f29ef0060e4.js +0 -1
  261. package/.next/static/chunks/1093.67f04e0e6b50c9e5.js +0 -1
  262. package/.next/static/chunks/1178-c3c8c74ac08d7c77.js +0 -1
  263. package/.next/static/chunks/1254.a78e9444e102b061.js +0 -1
  264. package/.next/static/chunks/130.fa515915f80e17f9.js +0 -1
  265. package/.next/static/chunks/1318.a5349c1b3da2b184.js +0 -1
  266. package/.next/static/chunks/1415.55c7c89ef0a8aab1.js +0 -1
  267. package/.next/static/chunks/1455-8df9e334899797b2.js +0 -1
  268. package/.next/static/chunks/172-940ad0353b57ff98.js +0 -1
  269. package/.next/static/chunks/1733.1bead33faaa9eeb0.js +0 -1
  270. package/.next/static/chunks/1806.3ed762ab3ecedc9d.js +0 -1
  271. package/.next/static/chunks/2157.cd3aa9fee64d976e.js +0 -1
  272. package/.next/static/chunks/2566.4084969752c613a9.js +0 -1
  273. package/.next/static/chunks/2620-21775e17d8a6a407.js +0 -1
  274. package/.next/static/chunks/2edb282b-45c56c19221816df.js +0 -1
  275. package/.next/static/chunks/3116-446dd88b93c44018.js +0 -1
  276. package/.next/static/chunks/3193.f69abc67598575a9.js +0 -1
  277. package/.next/static/chunks/3260.00ac1405e82b8dd9.js +0 -1
  278. package/.next/static/chunks/3271.83723868c9b8e7c1.js +0 -1
  279. package/.next/static/chunks/3287.f50c49237cef9ae8.js +0 -1
  280. package/.next/static/chunks/39a9cf3f.8cc8ac3887be2999.js +0 -1
  281. package/.next/static/chunks/3ede58a6.44fda8e0e5284248.js +0 -1
  282. package/.next/static/chunks/40.16abe9d3c57256d6.js +0 -1
  283. package/.next/static/chunks/407.3078ab29e8d18c02.js +0 -1
  284. package/.next/static/chunks/438.dea6dada9bd4b683.js +0 -1
  285. package/.next/static/chunks/4384-8a28a71e7e3b8d8a.js +0 -1
  286. package/.next/static/chunks/4466.dc03dbcd026995cc.js +0 -1
  287. package/.next/static/chunks/4737.ae583b848d202a93.js +0 -1
  288. package/.next/static/chunks/5048.73fa7a6d734ba5ef.js +0 -1
  289. package/.next/static/chunks/5092.8ead508f86f4b11c.js +0 -1
  290. package/.next/static/chunks/5493-b00dc3d50ab46716.js +0 -1
  291. package/.next/static/chunks/5835.a9405ab0913544df.js +0 -1
  292. package/.next/static/chunks/6067.cc75c37618cf0147.js +0 -1
  293. package/.next/static/chunks/6121.758a43c0db92ca23.js +0 -1
  294. package/.next/static/chunks/6229.7a9f0c8b204b76dc.js +0 -1
  295. package/.next/static/chunks/6487.44c6e83c098ed47f.js +0 -1
  296. package/.next/static/chunks/6582.06af6897be0d24b3.js +0 -1
  297. package/.next/static/chunks/6724.ed1280c926906c76.js +0 -1
  298. package/.next/static/chunks/6772-fc6143a6584acf9b.js +0 -1
  299. package/.next/static/chunks/6790-f4527d80153a3e25.js +0 -1
  300. package/.next/static/chunks/7005-09e42f99859b8d03.js +0 -1
  301. package/.next/static/chunks/7109-c8d3fde4c3b6798e.js +0 -1
  302. package/.next/static/chunks/7374.a673e317f007d3b6.js +0 -1
  303. package/.next/static/chunks/74030e57.9636ad3c5c96940b.js +0 -1
  304. package/.next/static/chunks/7458.1de01a44cd67f6f0.js +0 -1
  305. package/.next/static/chunks/7469.d932a6b01168373b.js +0 -1
  306. package/.next/static/chunks/7636.9eaf88a09c2a88ed.js +0 -1
  307. package/.next/static/chunks/7f5d3f51-659399fe6f04b9eb.js +0 -1
  308. package/.next/static/chunks/8264-a1b0376ff4b3d4da.js +0 -1
  309. package/.next/static/chunks/828-1a4a120d2fbea802.js +0 -1
  310. package/.next/static/chunks/8341-b8d844d6f606aed5.js +0 -1
  311. package/.next/static/chunks/8470.c811187bd2982a8a.js +0 -1
  312. package/.next/static/chunks/9076.0a13d7d5aab7bfa1.js +0 -1
  313. package/.next/static/chunks/9097.1efc23284d82765c.js +0 -1
  314. package/.next/static/chunks/9270.a4c64e6be4a278a4.js +0 -1
  315. package/.next/static/chunks/9404.a44dfe8858add605.js +0 -1
  316. package/.next/static/chunks/9497.49670ee9a8bd76f7.js +0 -1
  317. package/.next/static/chunks/9930.28415573db2b7806.js +0 -7
  318. package/.next/static/chunks/b2f22a9c-0216e9400ac0ac1c.js +0 -1
  319. package/.next/static/chunks/b9e0c7b4-52b02c0d4f161186.js +0 -1
  320. package/.next/static/chunks/eb6e03f4.3dd8d555aebe18ff.js +0 -1
  321. package/.next/static/chunks/f4df0e03.56d1c15b5532ab26.js +0 -1
  322. package/.next/static/chunks/framework-6cc1bceeaaf75e91.js +0 -1
  323. package/.next/static/chunks/main-da37322a396d572a.js +0 -1
  324. package/.next/static/chunks/pages/_app-d40841fd52b70886.js +0 -1
  325. package/.next/static/chunks/pages/_error-c36fa6f7fd569cf6.js +0 -1
  326. package/.next/static/chunks/pages/domains/[domain]/events/[name]/logs-350f383eed1cf3f8.js +0 -1
  327. package/.next/static/chunks/pages/domains/[domain]/events/[name]/v/[version]-45b0d7bc42f6f81c.js +0 -1
  328. package/.next/static/chunks/pages/domains/[domain]/events/[name]-15bb0ef487953fa1.js +0 -1
  329. package/.next/static/chunks/pages/domains/[domain]/services/[name]-a4857d4d0aa4d04b.js +0 -1
  330. package/.next/static/chunks/pages/domains/[domain]-ea20e2daae1794fc.js +0 -1
  331. package/.next/static/chunks/pages/domains-71179cbdb719a0f8.js +0 -1
  332. package/.next/static/chunks/pages/events/[name]/logs-695c5b2cfd996539.js +0 -1
  333. package/.next/static/chunks/pages/events/[name]/v/[version]-b718302d7185dcb0.js +0 -1
  334. package/.next/static/chunks/pages/events/[name]-8cb0b3b469bd7845.js +0 -1
  335. package/.next/static/chunks/pages/events-83c9161a6e696533.js +0 -1
  336. package/.next/static/chunks/pages/index-68062a10328e7d10.js +0 -1
  337. package/.next/static/chunks/pages/overview-4251cc856f776fc2.js +0 -1
  338. package/.next/static/chunks/pages/services/[name]-7030da24d73a8ea3.js +0 -1
  339. package/.next/static/chunks/pages/services-7069c0a5295e53ae.js +0 -1
  340. package/.next/static/chunks/pages/users/[id]-00aeace648436383.js +0 -1
  341. package/.next/static/chunks/pages/users-412f257b1de51363.js +0 -1
  342. package/.next/static/chunks/pages/visualiser-8474d03175cf9d12.js +0 -1
  343. package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +0 -1
  344. package/.next/static/chunks/webpack-1ea4cabfc6778694.js +0 -1
  345. package/.next/static/css/7e14b4dede1671ad.css +0 -1
  346. package/.next/static/css/94b9a747218712b2.css +0 -3
  347. package/.next/static/css/ae8abf3666c55019.css +0 -5
  348. package/.next/static/css/cc3c8fcadcf7a58b.css +0 -1
  349. package/.next/static/css/deb57cf90a65a90f.css +0 -1
  350. package/.next/static/css/ed97de5465a152bb.css +0 -1
  351. package/.next/static/wZIh57Hs672ULoPeUaYa1/_buildManifest.js +0 -1
  352. package/.next/static/wZIh57Hs672ULoPeUaYa1/_ssgManifest.js +0 -1
  353. package/.next/trace +0 -141
  354. package/bin/eventcatalog.js +0 -141
  355. package/components/BreadCrumbs.tsx +0 -50
  356. package/components/ContentView.tsx +0 -123
  357. package/components/Footer.tsx +0 -31
  358. package/components/Grids/DomainGrid.tsx +0 -61
  359. package/components/Grids/EventGrid.tsx +0 -102
  360. package/components/Grids/ServiceGrid.tsx +0 -84
  361. package/components/Grids/UserGrid.tsx +0 -55
  362. package/components/Header.tsx +0 -74
  363. package/components/Mdx/AsyncApiSpec.tsx +0 -25
  364. package/components/Mdx/Examples.tsx +0 -70
  365. package/components/Mdx/NodeGraph/GraphElements.tsx +0 -294
  366. package/components/Mdx/NodeGraph/GraphLayout.ts +0 -110
  367. package/components/Mdx/NodeGraph/Node.tsx +0 -15
  368. package/components/Mdx/NodeGraph/NodeGraph.tsx +0 -168
  369. package/components/Mdx/NodeGraph/__tests__/GraphElements.spec.ts +0 -102
  370. package/components/Mdx/NodeGraph/__tests__/GraphLayout.spec.ts +0 -115
  371. package/components/Mdx/NodeGraph/__tests__/__snapshots__/GraphElements.spec.ts.snap +0 -559
  372. package/components/Mdx/NodeGraph/__tests__/__snapshots__/GraphLayout.spec.ts.snap +0 -81
  373. package/components/Mdx/OpenApiSpec.tsx +0 -21
  374. package/components/Mdx/SchemaViewer/SchemaViewer.module.css +0 -5
  375. package/components/Mdx/SchemaViewer/SchemaViewer.tsx +0 -34
  376. package/components/Mermaid/index.tsx +0 -58
  377. package/components/NotFound/index.tsx +0 -40
  378. package/components/Sidebars/DomainSidebar.tsx +0 -55
  379. package/components/Sidebars/EventSidebar.tsx +0 -172
  380. package/components/Sidebars/ServiceSidebar.tsx +0 -128
  381. package/components/Sidebars/components/ExternalLinks.tsx +0 -28
  382. package/components/Sidebars/components/ItemList.tsx +0 -32
  383. package/components/Sidebars/components/Owners.tsx +0 -38
  384. package/components/Sidebars/components/Tags.tsx +0 -45
  385. package/components/SyntaxHighlighter.tsx +0 -42
  386. package/eventcatalog.config.js +0 -58
  387. package/eventcatalog.styles.css +0 -15
  388. package/hooks/EventCatalog.tsx +0 -54
  389. package/lib/__tests__/assets/domains/User/events/UserCreated/index.md +0 -20
  390. package/lib/__tests__/assets/domains/User/events/UserRemoved/examples/Basic.cs +0 -31
  391. package/lib/__tests__/assets/domains/User/events/UserRemoved/examples/Basic.js +0 -1
  392. package/lib/__tests__/assets/domains/User/events/UserRemoved/index.md +0 -16
  393. package/lib/__tests__/assets/domains/User/events/UserRemoved/schema.json +0 -4
  394. package/lib/__tests__/assets/domains/User/index.md +0 -16
  395. package/lib/__tests__/assets/domains/User/services/User Service/index.md +0 -19
  396. package/lib/__tests__/assets/events/AddedItemToCart/index.md +0 -25
  397. package/lib/__tests__/assets/events/EmailSent/index.md +0 -15
  398. package/lib/__tests__/assets/events/EventWithSchemaAndExamples/examples/Basic.cs +0 -31
  399. package/lib/__tests__/assets/events/EventWithSchemaAndExamples/examples/Basic.js +0 -1
  400. package/lib/__tests__/assets/events/EventWithSchemaAndExamples/index.md +0 -8
  401. package/lib/__tests__/assets/events/EventWithSchemaAndExamples/schema.json +0 -4
  402. package/lib/__tests__/assets/events/EventWithVersions/index.md +0 -10
  403. package/lib/__tests__/assets/events/EventWithVersions/versioned/0.0.1/index.md +0 -10
  404. package/lib/__tests__/assets/services/Basket Service/index.md +0 -26
  405. package/lib/__tests__/assets/services/Email Platform/index.md +0 -17
  406. package/lib/__tests__/assets/services/Payment Service/index.md +0 -7
  407. package/lib/__tests__/domains.spec.ts +0 -416
  408. package/lib/__tests__/events.spec.ts +0 -514
  409. package/lib/__tests__/file-reader.spec.ts +0 -69
  410. package/lib/__tests__/graphs.spec.ts +0 -88
  411. package/lib/__tests__/services.spec.ts +0 -268
  412. package/lib/analytics.ts +0 -30
  413. package/lib/domains.ts +0 -160
  414. package/lib/events.ts +0 -313
  415. package/lib/file-reader.ts +0 -76
  416. package/lib/graphs.ts +0 -92
  417. package/lib/services.ts +0 -126
  418. package/next-env.d.ts +0 -5
  419. package/next.config.js +0 -11
  420. package/out/404/index.html +0 -12
  421. package/out/404.html +0 -12
  422. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/domains/Orders/events/OrderComplete/logs.json +0 -1
  423. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/domains/Orders/events/OrderComplete.json +0 -1
  424. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/domains/Orders/events/OrderConfirmed/logs.json +0 -1
  425. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/domains/Orders/events/OrderConfirmed.json +0 -1
  426. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/domains/Orders/events/OrderCreated/logs.json +0 -1
  427. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/domains/Orders/events/OrderCreated.json +0 -1
  428. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/domains/Orders/events/OrderRequested/logs.json +0 -1
  429. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/domains/Orders/events/OrderRequested.json +0 -1
  430. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/domains/Orders/services/Orders Service.json +0 -1
  431. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/domains/Orders.json +0 -1
  432. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/domains/Shopping/events/AddedItemToCart/logs.json +0 -1
  433. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/domains/Shopping/events/AddedItemToCart/v/0.0.1.json +0 -1
  434. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/domains/Shopping/events/AddedItemToCart/v/0.0.2.json +0 -1
  435. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/domains/Shopping/events/AddedItemToCart.json +0 -1
  436. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/domains/Shopping/events/RemovedItemFromCart/logs.json +0 -1
  437. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/domains/Shopping/events/RemovedItemFromCart.json +0 -1
  438. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/domains/Shopping.json +0 -1
  439. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/domains.json +0 -1
  440. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/events/PaymentProcessed/logs.json +0 -1
  441. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/events/PaymentProcessed.json +0 -1
  442. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/events/ShipmentDelivered/logs.json +0 -1
  443. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/events/ShipmentDelivered.json +0 -1
  444. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/events/ShipmentDispatched/logs.json +0 -1
  445. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/events/ShipmentDispatched.json +0 -1
  446. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/events/ShipmentPrepared/logs.json +0 -1
  447. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/events/ShipmentPrepared.json +0 -1
  448. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/events.json +0 -1
  449. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/overview.json +0 -1
  450. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/services/Orders Service.json +0 -1
  451. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/services/Payment Service.json +0 -1
  452. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/services/Shipping Service.json +0 -1
  453. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/services.json +0 -1
  454. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/users/dboyne.json +0 -1
  455. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/users/mSmith.json +0 -1
  456. package/out/_next/data/wZIh57Hs672ULoPeUaYa1/visualiser.json +0 -1
  457. package/out/_next/static/chunks/020d8314.2bae2f29ef0060e4.js +0 -1
  458. package/out/_next/static/chunks/1093.67f04e0e6b50c9e5.js +0 -1
  459. package/out/_next/static/chunks/1178-c3c8c74ac08d7c77.js +0 -1
  460. package/out/_next/static/chunks/1254.a78e9444e102b061.js +0 -1
  461. package/out/_next/static/chunks/130.fa515915f80e17f9.js +0 -1
  462. package/out/_next/static/chunks/1318.a5349c1b3da2b184.js +0 -1
  463. package/out/_next/static/chunks/1415.55c7c89ef0a8aab1.js +0 -1
  464. package/out/_next/static/chunks/1455-8df9e334899797b2.js +0 -1
  465. package/out/_next/static/chunks/172-940ad0353b57ff98.js +0 -1
  466. package/out/_next/static/chunks/1733.1bead33faaa9eeb0.js +0 -1
  467. package/out/_next/static/chunks/1806.3ed762ab3ecedc9d.js +0 -1
  468. package/out/_next/static/chunks/2157.cd3aa9fee64d976e.js +0 -1
  469. package/out/_next/static/chunks/2566.4084969752c613a9.js +0 -1
  470. package/out/_next/static/chunks/2620-21775e17d8a6a407.js +0 -1
  471. package/out/_next/static/chunks/2edb282b-45c56c19221816df.js +0 -1
  472. package/out/_next/static/chunks/3116-446dd88b93c44018.js +0 -1
  473. package/out/_next/static/chunks/3193.f69abc67598575a9.js +0 -1
  474. package/out/_next/static/chunks/3260.00ac1405e82b8dd9.js +0 -1
  475. package/out/_next/static/chunks/3271.83723868c9b8e7c1.js +0 -1
  476. package/out/_next/static/chunks/3287.f50c49237cef9ae8.js +0 -1
  477. package/out/_next/static/chunks/39a9cf3f.8cc8ac3887be2999.js +0 -1
  478. package/out/_next/static/chunks/3ede58a6.44fda8e0e5284248.js +0 -1
  479. package/out/_next/static/chunks/40.16abe9d3c57256d6.js +0 -1
  480. package/out/_next/static/chunks/407.3078ab29e8d18c02.js +0 -1
  481. package/out/_next/static/chunks/438.dea6dada9bd4b683.js +0 -1
  482. package/out/_next/static/chunks/4384-8a28a71e7e3b8d8a.js +0 -1
  483. package/out/_next/static/chunks/4466.dc03dbcd026995cc.js +0 -1
  484. package/out/_next/static/chunks/4737.ae583b848d202a93.js +0 -1
  485. package/out/_next/static/chunks/5048.73fa7a6d734ba5ef.js +0 -1
  486. package/out/_next/static/chunks/5092.8ead508f86f4b11c.js +0 -1
  487. package/out/_next/static/chunks/5493-b00dc3d50ab46716.js +0 -1
  488. package/out/_next/static/chunks/5835.a9405ab0913544df.js +0 -1
  489. package/out/_next/static/chunks/6067.cc75c37618cf0147.js +0 -1
  490. package/out/_next/static/chunks/6121.758a43c0db92ca23.js +0 -1
  491. package/out/_next/static/chunks/6229.7a9f0c8b204b76dc.js +0 -1
  492. package/out/_next/static/chunks/6487.44c6e83c098ed47f.js +0 -1
  493. package/out/_next/static/chunks/6582.06af6897be0d24b3.js +0 -1
  494. package/out/_next/static/chunks/6724.ed1280c926906c76.js +0 -1
  495. package/out/_next/static/chunks/6772-fc6143a6584acf9b.js +0 -1
  496. package/out/_next/static/chunks/6790-f4527d80153a3e25.js +0 -1
  497. package/out/_next/static/chunks/7005-09e42f99859b8d03.js +0 -1
  498. package/out/_next/static/chunks/7109-c8d3fde4c3b6798e.js +0 -1
  499. package/out/_next/static/chunks/7374.a673e317f007d3b6.js +0 -1
  500. package/out/_next/static/chunks/74030e57.9636ad3c5c96940b.js +0 -1
  501. package/out/_next/static/chunks/7458.1de01a44cd67f6f0.js +0 -1
  502. package/out/_next/static/chunks/7469.d932a6b01168373b.js +0 -1
  503. package/out/_next/static/chunks/7636.9eaf88a09c2a88ed.js +0 -1
  504. package/out/_next/static/chunks/7f5d3f51-659399fe6f04b9eb.js +0 -1
  505. package/out/_next/static/chunks/8264-a1b0376ff4b3d4da.js +0 -1
  506. package/out/_next/static/chunks/828-1a4a120d2fbea802.js +0 -1
  507. package/out/_next/static/chunks/8341-b8d844d6f606aed5.js +0 -1
  508. package/out/_next/static/chunks/8470.c811187bd2982a8a.js +0 -1
  509. package/out/_next/static/chunks/9076.0a13d7d5aab7bfa1.js +0 -1
  510. package/out/_next/static/chunks/9097.1efc23284d82765c.js +0 -1
  511. package/out/_next/static/chunks/9270.a4c64e6be4a278a4.js +0 -1
  512. package/out/_next/static/chunks/9404.a44dfe8858add605.js +0 -1
  513. package/out/_next/static/chunks/9497.49670ee9a8bd76f7.js +0 -1
  514. package/out/_next/static/chunks/9930.28415573db2b7806.js +0 -7
  515. package/out/_next/static/chunks/b2f22a9c-0216e9400ac0ac1c.js +0 -1
  516. package/out/_next/static/chunks/b9e0c7b4-52b02c0d4f161186.js +0 -1
  517. package/out/_next/static/chunks/eb6e03f4.3dd8d555aebe18ff.js +0 -1
  518. package/out/_next/static/chunks/f4df0e03.56d1c15b5532ab26.js +0 -1
  519. package/out/_next/static/chunks/framework-6cc1bceeaaf75e91.js +0 -1
  520. package/out/_next/static/chunks/main-da37322a396d572a.js +0 -1
  521. package/out/_next/static/chunks/pages/_app-d40841fd52b70886.js +0 -1
  522. package/out/_next/static/chunks/pages/_error-c36fa6f7fd569cf6.js +0 -1
  523. package/out/_next/static/chunks/pages/domains/[domain]/events/[name]/logs-350f383eed1cf3f8.js +0 -1
  524. package/out/_next/static/chunks/pages/domains/[domain]/events/[name]/v/[version]-45b0d7bc42f6f81c.js +0 -1
  525. package/out/_next/static/chunks/pages/domains/[domain]/events/[name]-15bb0ef487953fa1.js +0 -1
  526. package/out/_next/static/chunks/pages/domains/[domain]/services/[name]-a4857d4d0aa4d04b.js +0 -1
  527. package/out/_next/static/chunks/pages/domains/[domain]-ea20e2daae1794fc.js +0 -1
  528. package/out/_next/static/chunks/pages/domains-71179cbdb719a0f8.js +0 -1
  529. package/out/_next/static/chunks/pages/events/[name]/logs-695c5b2cfd996539.js +0 -1
  530. package/out/_next/static/chunks/pages/events/[name]/v/[version]-b718302d7185dcb0.js +0 -1
  531. package/out/_next/static/chunks/pages/events/[name]-8cb0b3b469bd7845.js +0 -1
  532. package/out/_next/static/chunks/pages/events-83c9161a6e696533.js +0 -1
  533. package/out/_next/static/chunks/pages/index-68062a10328e7d10.js +0 -1
  534. package/out/_next/static/chunks/pages/overview-4251cc856f776fc2.js +0 -1
  535. package/out/_next/static/chunks/pages/services/[name]-7030da24d73a8ea3.js +0 -1
  536. package/out/_next/static/chunks/pages/services-7069c0a5295e53ae.js +0 -1
  537. package/out/_next/static/chunks/pages/users/[id]-00aeace648436383.js +0 -1
  538. package/out/_next/static/chunks/pages/users-412f257b1de51363.js +0 -1
  539. package/out/_next/static/chunks/pages/visualiser-8474d03175cf9d12.js +0 -1
  540. package/out/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js +0 -1
  541. package/out/_next/static/chunks/webpack-1ea4cabfc6778694.js +0 -1
  542. package/out/_next/static/css/7e14b4dede1671ad.css +0 -1
  543. package/out/_next/static/css/94b9a747218712b2.css +0 -3
  544. package/out/_next/static/css/ae8abf3666c55019.css +0 -5
  545. package/out/_next/static/css/cc3c8fcadcf7a58b.css +0 -1
  546. package/out/_next/static/css/deb57cf90a65a90f.css +0 -1
  547. package/out/_next/static/css/ed97de5465a152bb.css +0 -1
  548. package/out/_next/static/wZIh57Hs672ULoPeUaYa1/_buildManifest.js +0 -1
  549. package/out/_next/static/wZIh57Hs672ULoPeUaYa1/_ssgManifest.js +0 -1
  550. package/out/domains/Orders/events/OrderComplete/index.html +0 -40
  551. package/out/domains/Orders/events/OrderComplete/logs/index.html +0 -1
  552. package/out/domains/Orders/events/OrderConfirmed/index.html +0 -40
  553. package/out/domains/Orders/events/OrderConfirmed/logs/index.html +0 -1
  554. package/out/domains/Orders/events/OrderCreated/index.html +0 -2
  555. package/out/domains/Orders/events/OrderCreated/logs/index.html +0 -1
  556. package/out/domains/Orders/events/OrderRequested/index.html +0 -40
  557. package/out/domains/Orders/events/OrderRequested/logs/index.html +0 -1
  558. package/out/domains/Orders/index.html +0 -2
  559. package/out/domains/Orders/services/Orders Service/index.html +0 -2
  560. package/out/domains/Shopping/events/AddedItemToCart/index.html +0 -65
  561. package/out/domains/Shopping/events/AddedItemToCart/logs/index.html +0 -1
  562. package/out/domains/Shopping/events/AddedItemToCart/v/0.0.1/index.html +0 -59
  563. package/out/domains/Shopping/events/AddedItemToCart/v/0.0.2/index.html +0 -66
  564. package/out/domains/Shopping/events/RemovedItemFromCart/index.html +0 -48
  565. package/out/domains/Shopping/events/RemovedItemFromCart/logs/index.html +0 -1
  566. package/out/domains/Shopping/index.html +0 -2
  567. package/out/domains/index.html +0 -3
  568. package/out/events/PaymentProcessed/index.html +0 -44
  569. package/out/events/PaymentProcessed/logs/index.html +0 -1
  570. package/out/events/ShipmentDelivered/index.html +0 -44
  571. package/out/events/ShipmentDelivered/logs/index.html +0 -1
  572. package/out/events/ShipmentDispatched/index.html +0 -44
  573. package/out/events/ShipmentDispatched/logs/index.html +0 -1
  574. package/out/events/ShipmentPrepared/index.html +0 -2
  575. package/out/events/ShipmentPrepared/logs/index.html +0 -1
  576. package/out/events/index.html +0 -11
  577. package/out/favicon.ico +0 -0
  578. package/out/index.html +0 -1
  579. package/out/logo-random.svg +0 -114
  580. package/out/logo.svg +0 -44
  581. package/out/opengraph.png +0 -0
  582. package/out/overview/index.html +0 -1
  583. package/out/services/Orders Service/index.html +0 -1
  584. package/out/services/Payment Service/index.html +0 -2
  585. package/out/services/Shipping Service/index.html +0 -2
  586. package/out/services/index.html +0 -4
  587. package/out/users/dboyne/index.html +0 -16
  588. package/out/users/index.html +0 -1
  589. package/out/users/mSmith/index.html +0 -13
  590. package/out/visualiser/index.html +0 -16
  591. package/pages/_app.tsx +0 -111
  592. package/pages/_document.tsx +0 -18
  593. package/pages/domains/[domain]/events/[name]/logs.tsx +0 -35
  594. package/pages/domains/[domain]/events/[name]/v/[version].tsx +0 -39
  595. package/pages/domains/[domain]/events/[name].tsx +0 -46
  596. package/pages/domains/[domain]/index.tsx +0 -137
  597. package/pages/domains/[domain]/services/[name].tsx +0 -42
  598. package/pages/domains.tsx +0 -210
  599. package/pages/events/[name]/logs.tsx +0 -177
  600. package/pages/events/[name]/v/[version].tsx +0 -38
  601. package/pages/events/[name].tsx +0 -223
  602. package/pages/events.tsx +0 -357
  603. package/pages/index.tsx +0 -56
  604. package/pages/overview.tsx +0 -89
  605. package/pages/services/[name].tsx +0 -164
  606. package/pages/services.tsx +0 -311
  607. package/pages/users/[id].tsx +0 -101
  608. package/pages/users.tsx +0 -43
  609. package/pages/visualiser.tsx +0 -322
  610. package/postcss.config.js +0 -6
  611. package/public/logo-random.svg +0 -114
  612. package/public/logo.svg +0 -44
  613. package/scripts/__tests__/assets/eventcatalog.config.js +0 -32
  614. package/scripts/__tests__/generate.spec.ts +0 -36
  615. package/scripts/generate.js +0 -28
  616. package/scripts/move-schemas-for-download.js +0 -80
  617. package/styles/Home.module.css +0 -116
  618. package/styles/globals.css +0 -85
  619. package/tailwind.config.js +0 -36
  620. package/types/index.ts +0 -7
  621. package/utils/random-bg.ts +0 -13
  622. /package/{lib/__tests__/assets/services/Payment Service/openapi.yaml → public/openapi.yml} +0 -0
@@ -1,58 +0,0 @@
1
- import React, { useEffect } from 'react';
2
- import mermaid from 'mermaid';
3
- import { Service, Event } from '@eventcatalog/types';
4
- import { buildMermaidFlowChartForEvent, buildMermaidFlowChartForService } from '@/lib/graphs';
5
-
6
- mermaid.initialize({
7
- startOnLoad: true,
8
- theme: 'forest',
9
- securityLevel: 'loose',
10
- flowchart: {
11
- useMaxWidth: false,
12
- },
13
- themeCSS: `
14
- .node {
15
- filter: drop-shadow( 3px 3px 2px rgba(0, 0, 0, .2))
16
- }
17
- .mermaid svg {
18
- width: 10000px
19
- }
20
- .node rect {
21
- fill: white
22
- }
23
- `,
24
- fontFamily: 'Fira Code',
25
- });
26
-
27
- interface MermaidProps {
28
- data: Event | Service;
29
- source: 'event' | 'service';
30
- rootNodeColor?: string;
31
- charts?: string[];
32
- }
33
-
34
- function Mermaid({ data, source = 'event', rootNodeColor, charts }: MermaidProps) {
35
- useEffect(() => {
36
- mermaid.contentLoaded();
37
- }, []);
38
-
39
- if (charts) {
40
- return (
41
- <>
42
- {charts.map((content, index) => (
43
- <div key={`chart-${index}`} className="mermaid">
44
- {content}
45
- </div>
46
- ))}
47
- </>
48
- );
49
- }
50
- const mermaidChart =
51
- source === 'event'
52
- ? buildMermaidFlowChartForEvent(data as Event, rootNodeColor)
53
- : buildMermaidFlowChartForService(data as Service, rootNodeColor);
54
-
55
- return <div className="mermaid">{mermaidChart}</div>;
56
- }
57
-
58
- export default Mermaid;
@@ -1,40 +0,0 @@
1
- import { DocumentAddIcon } from '@heroicons/react/solid';
2
-
3
- interface NotFoundProps {
4
- type: 'service' | 'event' | 'domain';
5
- name: string;
6
- editUrl?: string;
7
- }
8
-
9
- export default function Example(props: NotFoundProps) {
10
- const { type, name, editUrl } = props;
11
-
12
- return (
13
- <main className="min-h-full bg-cover bg-top sm:bg-top h-screen">
14
- <div className="max-w-7xl mx-auto px-4 py-16 text-center sm:px-6 sm:py-24 lg:px-8 lg:py-48">
15
- <p className="text-sm font-semibold text-gray-700 text-opacity-50 uppercase tracking-wide blur-xl">
16
- Failed to find {type}
17
- </p>
18
- <h1 className="mt-2 text-4xl font-extrabold text-gray-900 tracking-tight sm:text-5xl">Missing Documentation</h1>
19
- <p className="mt-2 text-lg font-medium text-gray-700 text-opacity-50 text-center ">
20
- Documentation for {type} is missing!
21
- <span className="block font-bold text-gray-800 underline break-all max-w-2xl mx-auto py-4">{name}</span>
22
- </p>
23
- <p className="mt-4 text-xs text-gray-400">Help the eco-system and add the documentation for others ❤️ </p>
24
- {editUrl && (
25
- <div className="mt-12">
26
- <a
27
- href={editUrl}
28
- target="_blank"
29
- className="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-black bg-opacity-75 "
30
- rel="noreferrer"
31
- >
32
- <DocumentAddIcon className="-ml-1 mr-2 h-5 w-5" aria-hidden="true" />
33
- Add missing <span className="underline px-1">{type}</span> documentation
34
- </a>
35
- </div>
36
- )}
37
- </div>
38
- </main>
39
- );
40
- }
@@ -1,55 +0,0 @@
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,172 +0,0 @@
1
- import React from 'react';
2
- import Link from 'next/link';
3
- import getConfig from 'next/config';
4
- import { CubeIcon, DownloadIcon, CollectionIcon } from '@heroicons/react/outline';
5
- import type { Event } from '@eventcatalog/types';
6
-
7
- import ExternalLinks from './components/ExternalLinks';
8
- import Tags from './components/Tags';
9
- import Owners from './components/Owners';
10
- import ItemList from './components/ItemList';
11
-
12
- interface EventSideBarProps {
13
- event: Event;
14
- urlPath: string;
15
- loadedVersion?: string;
16
- isOldVersion?: boolean;
17
- }
18
-
19
- const getServiceLink = (serviceName: string, event: Event) => {
20
- const allEventServices = [...event.consumers, ...event.producers];
21
- const matchedService = allEventServices.find((service) => service.name === serviceName);
22
- if (matchedService && matchedService.domain) return `/domains/${matchedService.domain}/services/${serviceName}`;
23
- return `/services/${serviceName}`;
24
- };
25
-
26
- const getEventLogsURL = (event: Event) =>
27
- event.domain ? `/domains/${event.domain}/events/${event.name}/logs` : `/events/${event.name}/logs`;
28
-
29
- function EventSideBar({ event, loadedVersion, isOldVersion, urlPath }: EventSideBarProps) {
30
- const {
31
- name: eventName,
32
- owners,
33
- producerNames: producers,
34
- consumerNames: consumers,
35
- tags,
36
- historicVersions,
37
- externalLinks,
38
- schema,
39
- domain,
40
- } = event;
41
- const { publicRuntimeConfig: { basePath = '' } = {} } = getConfig();
42
-
43
- const getSchemaDownloadURL = () => {
44
- if (!schema) return null;
45
- return isOldVersion
46
- ? `${basePath}/schemas/${eventName}/${loadedVersion}/schema.${schema.extension}`
47
- : `${basePath}/schemas/${eventName}/schema.${schema.extension}`;
48
- };
49
-
50
- return (
51
- <aside className="hidden xl:block xl:pl-8 divide-y divide-gray-200">
52
- <h2 className="sr-only">Details</h2>
53
-
54
- {producers.length > 0 && (
55
- <ItemList
56
- title={`Producers (${producers.length})`}
57
- titleIcon={{ icon: CubeIcon, className: 'text-green-400' }}
58
- items={producers.map((producer) => ({ label: producer, href: getServiceLink(producer, event), bgColor: 'green' }))}
59
- />
60
- )}
61
-
62
- {consumers.length > 0 && (
63
- <ItemList
64
- title={`Consumers (${consumers.length})`}
65
- titleIcon={{ icon: CubeIcon, className: 'text-indigo-400' }}
66
- items={consumers.map((consumer) => ({ label: consumer, href: getServiceLink(consumer, event), bgColor: 'indigo' }))}
67
- />
68
- )}
69
-
70
- {domain && (
71
- <div className="py-6 space-y-8">
72
- <div>
73
- <h2 className="text-sm font-medium text-gray-500">
74
- <CollectionIcon className="h-5 w-5 text-yellow-400 inline-block mr-2" aria-hidden="true" />
75
- Domain
76
- </h2>
77
- <ul className="mt-2 leading-8">
78
- <li className="inline">
79
- <Link href={`/domains/${domain}`}>
80
- <a href="#" className="relative inline-flex items-center rounded-full border border-gray-300 px-3 py-0.5">
81
- <div className="absolute flex-shrink-0 flex items-center justify-center">
82
- <span className="h-1.5 w-1.5 rounded-full bg-yellow-500 animate animate-pulse" aria-hidden="true" />
83
- </div>
84
- <div className="ml-3.5 text-sm font-medium text-gray-900">{domain}</div>
85
- </a>
86
- </Link>
87
- </li>
88
- </ul>
89
- </div>
90
- </div>
91
- )}
92
- {historicVersions.length > 0 && (
93
- <div className=" py-6">
94
- <div>
95
- <h2 className="text-sm font-medium text-gray-500">Event Versions</h2>
96
- <ul className="mt-2 leading-8 text-left text-blue-500">
97
- <li className="text-sm inline ">
98
- <Link href={urlPath}>
99
- <a>
100
- <span
101
- className={`inline-flex mr-2 items-center px-2.5 py-0.5 rounded-full text-xs font-medium -top-0.5 relative ${
102
- loadedVersion === 'latest'
103
- ? 'bg-blue-400 text-white shadow-md font-bold underline'
104
- : 'bg-blue-100 text-blue-800'
105
- }`}
106
- >
107
- Latest
108
- </span>
109
- </a>
110
- </Link>
111
- </li>
112
-
113
- {historicVersions.map((version) => {
114
- const isLoadedVersion = loadedVersion === version;
115
- const styles = isLoadedVersion
116
- ? 'bg-blue-400 text-white shadow-md font-bold underline'
117
- : 'bg-blue-100 text-blue-800';
118
- return (
119
- <li className="text-sm inline" key={version}>
120
- <Link href={`${urlPath}/v/${version}`}>
121
- <a>
122
- <span
123
- className={`inline-flex mr-2 items-center px-2.5 py-0.5 rounded-full text-xs font-medium -top-0.5 relative ${styles}`}
124
- >
125
- v{version}
126
- </span>
127
- </a>
128
- </Link>
129
- </li>
130
- );
131
- })}
132
- </ul>
133
- </div>
134
- </div>
135
- )}
136
-
137
- {owners.length > 0 && <Owners owners={owners} />}
138
-
139
- <div className=" py-6 space-y-1">
140
- {schema && (
141
- <a
142
- href={getSchemaDownloadURL()}
143
- download={`${eventName}(${event.version}).${schema.extension}`}
144
- 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-200 bg-gray-800 hover:bg-gray-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-900"
145
- >
146
- <DownloadIcon className="-ml-1 mr-2 h-5 w-5 text-gray-200" aria-hidden="true" />
147
- <span>Download Schema</span>
148
- </a>
149
- )}
150
-
151
- {historicVersions.length > 0 && (
152
- <Link href={getEventLogsURL(event)}>
153
- <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">
154
- <span>View Changes</span>
155
- </a>
156
- </Link>
157
- )}
158
-
159
- <Link href={`/visualiser?type=event&name=${eventName}`}>
160
- <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">
161
- <span>View in Visualiser</span>
162
- </a>
163
- </Link>
164
-
165
- {externalLinks.length > 0 && <ExternalLinks externalLinks={externalLinks} />}
166
- {tags.length > 0 && <Tags tags={tags} />}
167
- </div>
168
- </aside>
169
- );
170
- }
171
-
172
- export default EventSideBar;
@@ -1,128 +0,0 @@
1
- import React from 'react';
2
- import Link from 'next/link';
3
- import type { Event, Service } from '@eventcatalog/types';
4
-
5
- import { CubeIcon, CollectionIcon } from '@heroicons/react/outline';
6
- import getBackgroundColor from '@/utils/random-bg';
7
-
8
- import ExternalLinks from './components/ExternalLinks';
9
- import Tags from './components/Tags';
10
- import Owners from './components/Owners';
11
- import ItemList from './components/ItemList';
12
-
13
- const getURLForEvent = (event: Event): string =>
14
- event.domain ? `/domains/${event.domain}/events/${event.name}` : `/events/${event.name}`;
15
-
16
- interface ServiceSideBarProps {
17
- service: Service;
18
- }
19
-
20
- function ServiceSidebar({ service }: ServiceSideBarProps) {
21
- const { owners, subscribes, publishes, repository, tags = [], externalLinks, domain } = service;
22
- const { language, url: repositoryUrl } = repository;
23
-
24
- let languages = [];
25
-
26
- if (language) {
27
- languages = Array.isArray(language) ? language : [language];
28
- }
29
-
30
- let trimmedUrl = '';
31
-
32
- if (repositoryUrl) {
33
- trimmedUrl = repositoryUrl.replace(/(^\w+:|^)\/\//, '');
34
- }
35
-
36
- return (
37
- <aside className="hidden xl:block xl:pl-8 ">
38
- <h2 className="sr-only">Details</h2>
39
-
40
- {publishes.length > 0 && (
41
- <ItemList
42
- title={`Publishes Events (${publishes.length})`}
43
- titleIcon={{ icon: CubeIcon, className: 'text-indigo-400' }}
44
- items={publishes.map((event) => ({ label: event.name, href: getURLForEvent(event), bgColor: 'indigo' }))}
45
- />
46
- )}
47
-
48
- {subscribes.length > 0 && (
49
- <ItemList
50
- title={`Subscribes to Events (${subscribes.length})`}
51
- titleIcon={{ icon: CubeIcon, className: 'text-green-400' }}
52
- items={subscribes.map((event) => ({ label: event.name, href: getURLForEvent(event), bgColor: 'green' }))}
53
- />
54
- )}
55
-
56
- {domain && (
57
- <div className="border-t border-gray-200 py-6 space-y-8">
58
- <div>
59
- <h2 className="text-sm font-medium text-gray-500">
60
- <CollectionIcon className="h-5 w-5 text-yellow-400 inline-block mr-2" aria-hidden="true" />
61
- Domain
62
- </h2>
63
- <ul className="mt-2 leading-8">
64
- <li className="inline" key={domain}>
65
- <Link href={`/domains/${domain}`}>
66
- <a href="#" className="relative inline-flex items-center rounded-full border border-gray-300 px-3 py-0.5">
67
- <div className="absolute flex-shrink-0 flex items-center justify-center">
68
- <span className="h-1.5 w-1.5 rounded-full bg-yellow-500 animate animate-pulse" aria-hidden="true" />
69
- </div>
70
- <div className="ml-3.5 text-sm font-medium text-gray-900">{domain}</div>
71
- </a>
72
- </Link>
73
- </li>
74
- </ul>
75
- </div>
76
- </div>
77
- )}
78
-
79
- {owners.length > 0 && <Owners owners={owners} />}
80
-
81
- {repository?.url && (
82
- <div className="border-t border-gray-200 py-6 space-y-8">
83
- <div className="space-y-3">
84
- <h2 className="text-sm font-medium text-gray-500">Repository</h2>
85
- <ul className=" leading-8 space-y-2">
86
- <li className="flex justify-start">
87
- <a
88
- href={repository?.url}
89
- target="_blank"
90
- className="flex items-center space-x-3 text-blue-600 underline text-sm"
91
- rel="noreferrer"
92
- >
93
- {trimmedUrl}
94
- </a>
95
- </li>
96
- </ul>
97
- </div>
98
- </div>
99
- )}
100
- {languages.length > 0 && (
101
- <div className="border-t border-gray-200 py-6 space-y-8">
102
- <div className="space-y-3">
103
- <h2 className="text-sm font-medium text-gray-500">Language</h2>
104
- {languages.map((value) => (
105
- <div className="relative flex items-center mt-2" key={value}>
106
- <div className="absolute flex-shrink-0 flex items-center justify-center">
107
- <span className="h-2 w-2 rounded-full" aria-hidden="true" style={{ background: getBackgroundColor(value) }} />
108
- </div>
109
- <div className="ml-3.5 text-sm font-medium text-gray-900">{value}</div>
110
- </div>
111
- ))}
112
- </div>
113
- </div>
114
- )}
115
-
116
- <Link href={`/visualiser?type=service&name=${service.name}`}>
117
- <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">
118
- <span>View in Visualiser</span>
119
- </a>
120
- </Link>
121
-
122
- {externalLinks.length > 0 && <ExternalLinks externalLinks={externalLinks} />}
123
- {tags.length > 0 && <Tags tags={tags} />}
124
- </aside>
125
- );
126
- }
127
-
128
- export default ServiceSidebar;
@@ -1,28 +0,0 @@
1
- import React from 'react';
2
-
3
- import { ExternalLinkIcon } from '@heroicons/react/outline';
4
-
5
- function ExternalLinks({ externalLinks }: { externalLinks: any[] }) {
6
- if (externalLinks.length === 0) return null;
7
- return (
8
- <div className=" py-2 space-y-8">
9
- <div className="space-y-3">
10
- {externalLinks.map((tag) => (
11
- <a
12
- href={tag.url}
13
- target="_blank"
14
- type="button"
15
- 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"
16
- rel="noreferrer"
17
- key={tag.url}
18
- >
19
- <ExternalLinkIcon className="-ml-1 mr-2 h-5 w-5 text-teal-200" aria-hidden="true" />
20
- <span>{`${tag.label}`}</span>
21
- </a>
22
- ))}
23
- </div>
24
- </div>
25
- );
26
- }
27
-
28
- export default ExternalLinks;
@@ -1,32 +0,0 @@
1
- import React from 'react';
2
- import Link from 'next/link';
3
- import { CubeIcon } from '@heroicons/react/outline';
4
-
5
- function ItemList({ title, titleIcon: { icon: Icon = CubeIcon, className: iconClassName }, items }: any) {
6
- return (
7
- <div className="pt-6 py-6 space-y-8">
8
- <div>
9
- <h2 className="text-sm font-medium text-gray-500">
10
- <Icon className={`h-5 w-5 inline-block mr-2 ${iconClassName}`} aria-hidden="true" />
11
- {title}
12
- </h2>
13
- <ul className="mt-2 leading-8">
14
- {items.map((item) => (
15
- <li className="inline mr-2" key={item.label}>
16
- <Link href={item.href}>
17
- <a className="relative inline-flex items-center rounded-full border border-gray-300 px-3 py-0.5">
18
- <div className="absolute flex-shrink-0 flex items-center justify-center">
19
- <span className={`h-1.5 w-1.5 rounded-full bg-${item.bgColor}-500`} aria-hidden="true" />
20
- </div>
21
- <div className="ml-3.5 text-sm font-medium text-gray-900 truncate max-w-xs">{item.label}</div>
22
- </a>
23
- </Link>
24
- </li>
25
- ))}
26
- </ul>
27
- </div>
28
- </div>
29
- );
30
- }
31
-
32
- export default ItemList;
@@ -1,38 +0,0 @@
1
- import React from 'react';
2
- import Link from 'next/link';
3
- import type { Owner } from '@eventcatalog/types';
4
- import { useUser } from '@/hooks/EventCatalog';
5
-
6
- function Owners({ owners }: { owners: Owner[] | string[] }) {
7
- const { getUserById } = useUser();
8
-
9
- return (
10
- <div className=" py-6 space-y-8">
11
- <div>
12
- <h2 className="text-sm font-medium text-gray-500">Domain Owners ({owners.length})</h2>
13
- <ul className="mt-4 leading-8 space-y-2">
14
- {owners.map((owner) => {
15
- const user = getUserById(owner);
16
-
17
- if (!user) return null;
18
-
19
- return (
20
- <li className="flex justify-start" key={user.id}>
21
- <Link href={`/users/${user.id}`}>
22
- <a className="flex items-center space-x-3">
23
- <div className="flex-shrink-0">
24
- <img className="h-5 w-5 rounded-full" src={user.avatarUrl} alt="" />
25
- </div>
26
- <div className="text-sm font-medium text-gray-900">{user.name}</div>
27
- </a>
28
- </Link>
29
- </li>
30
- );
31
- })}
32
- </ul>
33
- </div>
34
- </div>
35
- );
36
- }
37
-
38
- export default Owners;
@@ -1,45 +0,0 @@
1
- import React from 'react';
2
- import type { Tag } from '@eventcatalog/types';
3
- import { TagIcon } from '@heroicons/react/outline';
4
-
5
- const tailwindBgs = ['purple', 'pink', 'green', 'yellow', 'blue', 'indigo'];
6
-
7
- function Tags({ tags }: { tags: Tag[] }) {
8
- return (
9
- <div className=" py-6 space-y-8">
10
- <div>
11
- <h2 className="text-sm font-medium text-gray-500">
12
- <TagIcon className="h-5 w-5 text-gray-400 inline-block mr-2" aria-hidden="true" />
13
- Tags
14
- </h2>
15
- <div className="mt-3 space-y-2">
16
- {tags.map(({ label, url }, index) => {
17
- const color = tailwindBgs[index % tailwindBgs.length];
18
-
19
- if (url) {
20
- return (
21
- <a href={url} className="inline-block underline" target="_blank" rel="noreferrer">
22
- <span
23
- className={`underline inline-block mr-2 items-center px-2.5 py-0.5 rounded-full text-xs font-medium -top-0.5 relative bg-${color}-100 text-${color}-800`}
24
- >
25
- {label}
26
- </span>
27
- </a>
28
- );
29
- }
30
-
31
- return (
32
- <span
33
- className={`inline-block mr-2 items-center px-2.5 py-0.5 rounded-full text-xs font-medium -top-0.5 relative bg-${color}-100 text-${color}-800`}
34
- >
35
- {label}
36
- </span>
37
- );
38
- })}
39
- </div>
40
- </div>
41
- </div>
42
- );
43
- }
44
-
45
- export default Tags;
@@ -1,42 +0,0 @@
1
- import React, { useState } from 'react';
2
-
3
- import codeStyle from 'react-syntax-highlighter/dist/cjs/styles/prism/dracula';
4
- import { Prism as PrismSyntaxHighlighter } from 'react-syntax-highlighter';
5
- import copy from 'copy-text-to-clipboard';
6
- import { ClipboardCopyIcon } from '@heroicons/react/outline';
7
-
8
- function SyntaxHighlighter({ language, name = '', ...props }: any) {
9
- const [showCopied, setShowCopied] = useState(false);
10
-
11
- const handleCopyCode = () => {
12
- copy(props.children);
13
- setShowCopied(true);
14
- setTimeout(() => setShowCopied(false), 2000);
15
- };
16
-
17
- const regex = /\\n/g;
18
- return (
19
- <div className="h-96 relative">
20
- {name && (
21
- <div className={`flex -mb-3 pb-2 bg-gray-900 ${name ? 'justify-between' : 'justify-end'}`}>
22
- {name && <span className="block text-xs py-2 px-2 font-bold text-gray-300">{name}</span>}
23
- <button type="button" onClick={handleCopyCode} className="text-xs text-white rounded-md px-4">
24
- {showCopied ? 'Copied' : <ClipboardCopyIcon className="h-4 w-4" />}
25
- </button>
26
- </div>
27
- )}
28
-
29
- {!name && (
30
- <button type="button" onClick={handleCopyCode} className="text-xs absolute right-0 top-2 text-white rounded-md px-4">
31
- {showCopied ? 'Copied' : <ClipboardCopyIcon className="h-4 w-4" />}
32
- </button>
33
- )}
34
-
35
- <PrismSyntaxHighlighter style={codeStyle} language={language} {...props} wrapLines className="h-96 overflow-auto">
36
- {props.children.replace(regex, '\n')}
37
- </PrismSyntaxHighlighter>
38
- </div>
39
- );
40
- }
41
-
42
- export default SyntaxHighlighter;