@eventcatalog/core 1.2.6 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (614) 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 -571
  12. package/LICENSE.md +21 -0
  13. package/README.md +192 -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 -2082
  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/1178-011609b6f3b123b3.js +0 -1
  262. package/.next/static/chunks/1476.eb11ab1feb4c5940.js +0 -1
  263. package/.next/static/chunks/1484.274df63eb11d9d68.js +0 -1
  264. package/.next/static/chunks/172-940ad0353b57ff98.js +0 -1
  265. package/.next/static/chunks/1750.a25eb3336a8c3a36.js +0 -1
  266. package/.next/static/chunks/2017.1b67898bd26fe157.js +0 -1
  267. package/.next/static/chunks/2027.80b01f1a7005a770.js +0 -1
  268. package/.next/static/chunks/2076.21cb0bf760a8055d.js +0 -1
  269. package/.next/static/chunks/2583.56889bb376087220.js +0 -1
  270. package/.next/static/chunks/2620-21775e17d8a6a407.js +0 -1
  271. package/.next/static/chunks/2765.dda8bae3343b6d41.js +0 -1
  272. package/.next/static/chunks/2edb282b-45c56c19221816df.js +0 -1
  273. package/.next/static/chunks/3082.62ff47793d562412.js +0 -1
  274. package/.next/static/chunks/3116-e9a578a270d9e013.js +0 -1
  275. package/.next/static/chunks/3260.00ac1405e82b8dd9.js +0 -1
  276. package/.next/static/chunks/3706.64742528652de3dd.js +0 -1
  277. package/.next/static/chunks/3ede58a6.ff6c02b372da8155.js +0 -1
  278. package/.next/static/chunks/4042.98f113bfbf744466.js +0 -1
  279. package/.next/static/chunks/4079.75a5db02e1a11105.js +0 -1
  280. package/.next/static/chunks/438.dea6dada9bd4b683.js +0 -1
  281. package/.next/static/chunks/4384-8a28a71e7e3b8d8a.js +0 -1
  282. package/.next/static/chunks/4637.6819aa53bf80d6ff.js +0 -1
  283. package/.next/static/chunks/4816.03f53c476d2a5924.js +0 -1
  284. package/.next/static/chunks/5048.73fa7a6d734ba5ef.js +0 -1
  285. package/.next/static/chunks/5202.6f686702cbb58a65.js +0 -1
  286. package/.next/static/chunks/5464.4c916df2382b5ba9.js +0 -1
  287. package/.next/static/chunks/5493-b00dc3d50ab46716.js +0 -1
  288. package/.next/static/chunks/5644.b4ffa0632405fc9f.js +0 -1
  289. package/.next/static/chunks/5a7b57ef.d0702578743545b0.js +0 -1
  290. package/.next/static/chunks/60.40ff539d26f28401.js +0 -1
  291. package/.next/static/chunks/6101.a35579324b3356df.js +0 -1
  292. package/.next/static/chunks/6194.045435de6d19fc72.js +0 -1
  293. package/.next/static/chunks/6772-fba69ba8e4fa1ef4.js +0 -1
  294. package/.next/static/chunks/6778.7885dc0a314c5a9c.js +0 -1
  295. package/.next/static/chunks/6790-f4527d80153a3e25.js +0 -1
  296. package/.next/static/chunks/7005-09e42f99859b8d03.js +0 -1
  297. package/.next/static/chunks/7109-c8d3fde4c3b6798e.js +0 -1
  298. package/.next/static/chunks/7195.2768b2bb31a65f2f.js +0 -1
  299. package/.next/static/chunks/7458.1de01a44cd67f6f0.js +0 -1
  300. package/.next/static/chunks/7f5d3f51-659399fe6f04b9eb.js +0 -1
  301. package/.next/static/chunks/8264-a1b0376ff4b3d4da.js +0 -1
  302. package/.next/static/chunks/828-ef0e36f29db31dde.js +0 -1
  303. package/.next/static/chunks/8341-b8d844d6f606aed5.js +0 -1
  304. package/.next/static/chunks/8720.e06d4cca843573db.js +0 -1
  305. package/.next/static/chunks/8785.1331b2a6d4be82c3.js +0 -1
  306. package/.next/static/chunks/8829-386c887227aab68c.js +0 -1
  307. package/.next/static/chunks/9054.ae9ffec47aacae76.js +0 -1
  308. package/.next/static/chunks/9097.1efc23284d82765c.js +0 -1
  309. package/.next/static/chunks/9231.af30fa4fedab9f01.js +0 -1
  310. package/.next/static/chunks/9497.49670ee9a8bd76f7.js +0 -1
  311. package/.next/static/chunks/9600.f70c0583d23764a8.js +0 -1
  312. package/.next/static/chunks/9822.0ad553e5c697208c.js +0 -1
  313. package/.next/static/chunks/9930.28415573db2b7806.js +0 -7
  314. package/.next/static/chunks/b9e0c7b4-52b02c0d4f161186.js +0 -1
  315. package/.next/static/chunks/d57e5a30-463f9ed8df724792.js +0 -1
  316. package/.next/static/chunks/eb6e03f4.2276f931f02e235c.js +0 -1
  317. package/.next/static/chunks/f4df0e03.56d1c15b5532ab26.js +0 -1
  318. package/.next/static/chunks/framework-6cc1bceeaaf75e91.js +0 -1
  319. package/.next/static/chunks/main-da37322a396d572a.js +0 -1
  320. package/.next/static/chunks/pages/_app-d40841fd52b70886.js +0 -1
  321. package/.next/static/chunks/pages/_error-c36fa6f7fd569cf6.js +0 -1
  322. package/.next/static/chunks/pages/domains/[domain]/events/[name]/logs-350f383eed1cf3f8.js +0 -1
  323. package/.next/static/chunks/pages/domains/[domain]/events/[name]/v/[version]-175a58a05deb2eda.js +0 -1
  324. package/.next/static/chunks/pages/domains/[domain]/events/[name]-7c7c2526e7d63883.js +0 -1
  325. package/.next/static/chunks/pages/domains/[domain]/services/[name]-f447208842a47b40.js +0 -1
  326. package/.next/static/chunks/pages/domains/[domain]-ea20e2daae1794fc.js +0 -1
  327. package/.next/static/chunks/pages/domains-71179cbdb719a0f8.js +0 -1
  328. package/.next/static/chunks/pages/events/[name]/logs-695c5b2cfd996539.js +0 -1
  329. package/.next/static/chunks/pages/events/[name]/v/[version]-af687afaafd7fd45.js +0 -1
  330. package/.next/static/chunks/pages/events/[name]-24bc568718357116.js +0 -1
  331. package/.next/static/chunks/pages/events-05ca59359ab07aa2.js +0 -1
  332. package/.next/static/chunks/pages/index-68062a10328e7d10.js +0 -1
  333. package/.next/static/chunks/pages/overview-68b31b232c5ef1ff.js +0 -1
  334. package/.next/static/chunks/pages/services/[name]-b59b95836832898e.js +0 -1
  335. package/.next/static/chunks/pages/services-2c63507ae596def3.js +0 -1
  336. package/.next/static/chunks/pages/users/[id]-7306f8a1d8a7012a.js +0 -1
  337. package/.next/static/chunks/pages/users-412f257b1de51363.js +0 -1
  338. package/.next/static/chunks/pages/visualiser-8474d03175cf9d12.js +0 -1
  339. package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +0 -1
  340. package/.next/static/chunks/webpack-7e93d0cba2ccf996.js +0 -1
  341. package/.next/static/css/7e14b4dede1671ad.css +0 -1
  342. package/.next/static/css/94b9a747218712b2.css +0 -3
  343. package/.next/static/css/ae8abf3666c55019.css +0 -5
  344. package/.next/static/css/cc3c8fcadcf7a58b.css +0 -1
  345. package/.next/static/css/deb57cf90a65a90f.css +0 -1
  346. package/.next/static/css/ed97de5465a152bb.css +0 -1
  347. package/.next/static/rP51t_ISuRqZMVs4QvwfY/_buildManifest.js +0 -1
  348. package/.next/static/rP51t_ISuRqZMVs4QvwfY/_ssgManifest.js +0 -1
  349. package/.next/trace +0 -141
  350. package/bin/eventcatalog.js +0 -141
  351. package/components/BreadCrumbs.tsx +0 -50
  352. package/components/ContentView.tsx +0 -123
  353. package/components/Footer.tsx +0 -31
  354. package/components/Grids/DomainGrid.tsx +0 -61
  355. package/components/Grids/EventGrid.tsx +0 -102
  356. package/components/Grids/ServiceGrid.tsx +0 -84
  357. package/components/Grids/UserGrid.tsx +0 -55
  358. package/components/Header.tsx +0 -74
  359. package/components/Mdx/AsyncApiSpec.tsx +0 -25
  360. package/components/Mdx/Examples.tsx +0 -70
  361. package/components/Mdx/NodeGraph/GraphElements.tsx +0 -294
  362. package/components/Mdx/NodeGraph/GraphLayout.ts +0 -110
  363. package/components/Mdx/NodeGraph/Node.tsx +0 -15
  364. package/components/Mdx/NodeGraph/NodeGraph.tsx +0 -168
  365. package/components/Mdx/NodeGraph/__tests__/GraphElements.spec.ts +0 -102
  366. package/components/Mdx/NodeGraph/__tests__/GraphLayout.spec.ts +0 -115
  367. package/components/Mdx/NodeGraph/__tests__/__snapshots__/GraphElements.spec.ts.snap +0 -559
  368. package/components/Mdx/NodeGraph/__tests__/__snapshots__/GraphLayout.spec.ts.snap +0 -81
  369. package/components/Mdx/OpenApiSpec.tsx +0 -21
  370. package/components/Mdx/SchemaViewer/SchemaViewer.module.css +0 -5
  371. package/components/Mdx/SchemaViewer/SchemaViewer.tsx +0 -34
  372. package/components/Mermaid/index.tsx +0 -58
  373. package/components/NotFound/index.tsx +0 -40
  374. package/components/Sidebars/DomainSidebar.tsx +0 -55
  375. package/components/Sidebars/EventSidebar.tsx +0 -172
  376. package/components/Sidebars/ServiceSidebar.tsx +0 -128
  377. package/components/Sidebars/components/ExternalLinks.tsx +0 -28
  378. package/components/Sidebars/components/ItemList.tsx +0 -32
  379. package/components/Sidebars/components/Owners.tsx +0 -38
  380. package/components/Sidebars/components/Tags.tsx +0 -45
  381. package/components/SyntaxHighlighter.tsx +0 -42
  382. package/eventcatalog.config.js +0 -58
  383. package/eventcatalog.styles.css +0 -15
  384. package/hooks/EventCatalog.tsx +0 -54
  385. package/lib/__tests__/assets/domains/User/events/UserCreated/index.md +0 -20
  386. package/lib/__tests__/assets/domains/User/events/UserRemoved/examples/Basic.cs +0 -31
  387. package/lib/__tests__/assets/domains/User/events/UserRemoved/examples/Basic.js +0 -1
  388. package/lib/__tests__/assets/domains/User/events/UserRemoved/index.md +0 -16
  389. package/lib/__tests__/assets/domains/User/events/UserRemoved/schema.json +0 -4
  390. package/lib/__tests__/assets/domains/User/index.md +0 -16
  391. package/lib/__tests__/assets/domains/User/services/User Service/index.md +0 -19
  392. package/lib/__tests__/assets/events/AddedItemToCart/index.md +0 -25
  393. package/lib/__tests__/assets/events/EmailSent/index.md +0 -15
  394. package/lib/__tests__/assets/events/EventWithSchemaAndExamples/examples/Basic.cs +0 -31
  395. package/lib/__tests__/assets/events/EventWithSchemaAndExamples/examples/Basic.js +0 -1
  396. package/lib/__tests__/assets/events/EventWithSchemaAndExamples/index.md +0 -8
  397. package/lib/__tests__/assets/events/EventWithSchemaAndExamples/schema.json +0 -4
  398. package/lib/__tests__/assets/events/EventWithVersions/index.md +0 -10
  399. package/lib/__tests__/assets/events/EventWithVersions/versioned/0.0.1/index.md +0 -10
  400. package/lib/__tests__/assets/services/Basket Service/index.md +0 -26
  401. package/lib/__tests__/assets/services/Email Platform/index.md +0 -17
  402. package/lib/__tests__/assets/services/Payment Service/index.md +0 -7
  403. package/lib/__tests__/domains.spec.ts +0 -416
  404. package/lib/__tests__/events.spec.ts +0 -514
  405. package/lib/__tests__/file-reader.spec.ts +0 -69
  406. package/lib/__tests__/graphs.spec.ts +0 -88
  407. package/lib/__tests__/services.spec.ts +0 -268
  408. package/lib/analytics.ts +0 -30
  409. package/lib/domains.ts +0 -160
  410. package/lib/events.ts +0 -313
  411. package/lib/file-reader.ts +0 -76
  412. package/lib/graphs.ts +0 -92
  413. package/lib/services.ts +0 -126
  414. package/next-env.d.ts +0 -5
  415. package/next.config.js +0 -11
  416. package/out/404/index.html +0 -12
  417. package/out/404.html +0 -12
  418. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/domains/Orders/events/OrderComplete/logs.json +0 -1
  419. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/domains/Orders/events/OrderComplete.json +0 -1
  420. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/domains/Orders/events/OrderConfirmed/logs.json +0 -1
  421. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/domains/Orders/events/OrderConfirmed.json +0 -1
  422. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/domains/Orders/events/OrderCreated/logs.json +0 -1
  423. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/domains/Orders/events/OrderCreated.json +0 -1
  424. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/domains/Orders/events/OrderRequested/logs.json +0 -1
  425. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/domains/Orders/events/OrderRequested.json +0 -1
  426. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/domains/Orders/services/Orders Service.json +0 -1
  427. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/domains/Orders.json +0 -1
  428. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/domains/Shopping/events/AddedItemToCart/logs.json +0 -1
  429. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/domains/Shopping/events/AddedItemToCart/v/0.0.1.json +0 -1
  430. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/domains/Shopping/events/AddedItemToCart/v/0.0.2.json +0 -1
  431. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/domains/Shopping/events/AddedItemToCart.json +0 -1
  432. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/domains/Shopping/events/RemovedItemFromCart/logs.json +0 -1
  433. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/domains/Shopping/events/RemovedItemFromCart.json +0 -1
  434. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/domains/Shopping.json +0 -1
  435. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/domains.json +0 -1
  436. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/events/PaymentProcessed/logs.json +0 -1
  437. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/events/PaymentProcessed.json +0 -1
  438. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/events/ShipmentDelivered/logs.json +0 -1
  439. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/events/ShipmentDelivered.json +0 -1
  440. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/events/ShipmentDispatched/logs.json +0 -1
  441. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/events/ShipmentDispatched.json +0 -1
  442. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/events/ShipmentPrepared/logs.json +0 -1
  443. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/events/ShipmentPrepared.json +0 -1
  444. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/events.json +0 -1
  445. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/overview.json +0 -1
  446. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/services/Orders Service.json +0 -1
  447. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/services/Payment Service.json +0 -1
  448. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/services/Shipping Service.json +0 -1
  449. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/services.json +0 -1
  450. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/users/dboyne.json +0 -1
  451. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/users/mSmith.json +0 -1
  452. package/out/_next/data/rP51t_ISuRqZMVs4QvwfY/visualiser.json +0 -1
  453. package/out/_next/static/chunks/020d8314.2bae2f29ef0060e4.js +0 -1
  454. package/out/_next/static/chunks/1178-011609b6f3b123b3.js +0 -1
  455. package/out/_next/static/chunks/1476.eb11ab1feb4c5940.js +0 -1
  456. package/out/_next/static/chunks/1484.274df63eb11d9d68.js +0 -1
  457. package/out/_next/static/chunks/172-940ad0353b57ff98.js +0 -1
  458. package/out/_next/static/chunks/1750.a25eb3336a8c3a36.js +0 -1
  459. package/out/_next/static/chunks/2017.1b67898bd26fe157.js +0 -1
  460. package/out/_next/static/chunks/2027.80b01f1a7005a770.js +0 -1
  461. package/out/_next/static/chunks/2076.21cb0bf760a8055d.js +0 -1
  462. package/out/_next/static/chunks/2583.56889bb376087220.js +0 -1
  463. package/out/_next/static/chunks/2620-21775e17d8a6a407.js +0 -1
  464. package/out/_next/static/chunks/2765.dda8bae3343b6d41.js +0 -1
  465. package/out/_next/static/chunks/2edb282b-45c56c19221816df.js +0 -1
  466. package/out/_next/static/chunks/3082.62ff47793d562412.js +0 -1
  467. package/out/_next/static/chunks/3116-e9a578a270d9e013.js +0 -1
  468. package/out/_next/static/chunks/3260.00ac1405e82b8dd9.js +0 -1
  469. package/out/_next/static/chunks/3706.64742528652de3dd.js +0 -1
  470. package/out/_next/static/chunks/3ede58a6.ff6c02b372da8155.js +0 -1
  471. package/out/_next/static/chunks/4042.98f113bfbf744466.js +0 -1
  472. package/out/_next/static/chunks/4079.75a5db02e1a11105.js +0 -1
  473. package/out/_next/static/chunks/438.dea6dada9bd4b683.js +0 -1
  474. package/out/_next/static/chunks/4384-8a28a71e7e3b8d8a.js +0 -1
  475. package/out/_next/static/chunks/4637.6819aa53bf80d6ff.js +0 -1
  476. package/out/_next/static/chunks/4816.03f53c476d2a5924.js +0 -1
  477. package/out/_next/static/chunks/5048.73fa7a6d734ba5ef.js +0 -1
  478. package/out/_next/static/chunks/5202.6f686702cbb58a65.js +0 -1
  479. package/out/_next/static/chunks/5464.4c916df2382b5ba9.js +0 -1
  480. package/out/_next/static/chunks/5493-b00dc3d50ab46716.js +0 -1
  481. package/out/_next/static/chunks/5644.b4ffa0632405fc9f.js +0 -1
  482. package/out/_next/static/chunks/5a7b57ef.d0702578743545b0.js +0 -1
  483. package/out/_next/static/chunks/60.40ff539d26f28401.js +0 -1
  484. package/out/_next/static/chunks/6101.a35579324b3356df.js +0 -1
  485. package/out/_next/static/chunks/6194.045435de6d19fc72.js +0 -1
  486. package/out/_next/static/chunks/6772-fba69ba8e4fa1ef4.js +0 -1
  487. package/out/_next/static/chunks/6778.7885dc0a314c5a9c.js +0 -1
  488. package/out/_next/static/chunks/6790-f4527d80153a3e25.js +0 -1
  489. package/out/_next/static/chunks/7005-09e42f99859b8d03.js +0 -1
  490. package/out/_next/static/chunks/7109-c8d3fde4c3b6798e.js +0 -1
  491. package/out/_next/static/chunks/7195.2768b2bb31a65f2f.js +0 -1
  492. package/out/_next/static/chunks/7458.1de01a44cd67f6f0.js +0 -1
  493. package/out/_next/static/chunks/7f5d3f51-659399fe6f04b9eb.js +0 -1
  494. package/out/_next/static/chunks/8264-a1b0376ff4b3d4da.js +0 -1
  495. package/out/_next/static/chunks/828-ef0e36f29db31dde.js +0 -1
  496. package/out/_next/static/chunks/8341-b8d844d6f606aed5.js +0 -1
  497. package/out/_next/static/chunks/8720.e06d4cca843573db.js +0 -1
  498. package/out/_next/static/chunks/8785.1331b2a6d4be82c3.js +0 -1
  499. package/out/_next/static/chunks/8829-386c887227aab68c.js +0 -1
  500. package/out/_next/static/chunks/9054.ae9ffec47aacae76.js +0 -1
  501. package/out/_next/static/chunks/9097.1efc23284d82765c.js +0 -1
  502. package/out/_next/static/chunks/9231.af30fa4fedab9f01.js +0 -1
  503. package/out/_next/static/chunks/9497.49670ee9a8bd76f7.js +0 -1
  504. package/out/_next/static/chunks/9600.f70c0583d23764a8.js +0 -1
  505. package/out/_next/static/chunks/9822.0ad553e5c697208c.js +0 -1
  506. package/out/_next/static/chunks/9930.28415573db2b7806.js +0 -7
  507. package/out/_next/static/chunks/b9e0c7b4-52b02c0d4f161186.js +0 -1
  508. package/out/_next/static/chunks/d57e5a30-463f9ed8df724792.js +0 -1
  509. package/out/_next/static/chunks/eb6e03f4.2276f931f02e235c.js +0 -1
  510. package/out/_next/static/chunks/f4df0e03.56d1c15b5532ab26.js +0 -1
  511. package/out/_next/static/chunks/framework-6cc1bceeaaf75e91.js +0 -1
  512. package/out/_next/static/chunks/main-da37322a396d572a.js +0 -1
  513. package/out/_next/static/chunks/pages/_app-d40841fd52b70886.js +0 -1
  514. package/out/_next/static/chunks/pages/_error-c36fa6f7fd569cf6.js +0 -1
  515. package/out/_next/static/chunks/pages/domains/[domain]/events/[name]/logs-350f383eed1cf3f8.js +0 -1
  516. package/out/_next/static/chunks/pages/domains/[domain]/events/[name]/v/[version]-175a58a05deb2eda.js +0 -1
  517. package/out/_next/static/chunks/pages/domains/[domain]/events/[name]-7c7c2526e7d63883.js +0 -1
  518. package/out/_next/static/chunks/pages/domains/[domain]/services/[name]-f447208842a47b40.js +0 -1
  519. package/out/_next/static/chunks/pages/domains/[domain]-ea20e2daae1794fc.js +0 -1
  520. package/out/_next/static/chunks/pages/domains-71179cbdb719a0f8.js +0 -1
  521. package/out/_next/static/chunks/pages/events/[name]/logs-695c5b2cfd996539.js +0 -1
  522. package/out/_next/static/chunks/pages/events/[name]/v/[version]-af687afaafd7fd45.js +0 -1
  523. package/out/_next/static/chunks/pages/events/[name]-24bc568718357116.js +0 -1
  524. package/out/_next/static/chunks/pages/events-05ca59359ab07aa2.js +0 -1
  525. package/out/_next/static/chunks/pages/index-68062a10328e7d10.js +0 -1
  526. package/out/_next/static/chunks/pages/overview-68b31b232c5ef1ff.js +0 -1
  527. package/out/_next/static/chunks/pages/services/[name]-b59b95836832898e.js +0 -1
  528. package/out/_next/static/chunks/pages/services-2c63507ae596def3.js +0 -1
  529. package/out/_next/static/chunks/pages/users/[id]-7306f8a1d8a7012a.js +0 -1
  530. package/out/_next/static/chunks/pages/users-412f257b1de51363.js +0 -1
  531. package/out/_next/static/chunks/pages/visualiser-8474d03175cf9d12.js +0 -1
  532. package/out/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js +0 -1
  533. package/out/_next/static/chunks/webpack-7e93d0cba2ccf996.js +0 -1
  534. package/out/_next/static/css/7e14b4dede1671ad.css +0 -1
  535. package/out/_next/static/css/94b9a747218712b2.css +0 -3
  536. package/out/_next/static/css/ae8abf3666c55019.css +0 -5
  537. package/out/_next/static/css/cc3c8fcadcf7a58b.css +0 -1
  538. package/out/_next/static/css/deb57cf90a65a90f.css +0 -1
  539. package/out/_next/static/css/ed97de5465a152bb.css +0 -1
  540. package/out/_next/static/rP51t_ISuRqZMVs4QvwfY/_buildManifest.js +0 -1
  541. package/out/_next/static/rP51t_ISuRqZMVs4QvwfY/_ssgManifest.js +0 -1
  542. package/out/domains/Orders/events/OrderComplete/index.html +0 -40
  543. package/out/domains/Orders/events/OrderComplete/logs/index.html +0 -1
  544. package/out/domains/Orders/events/OrderConfirmed/index.html +0 -40
  545. package/out/domains/Orders/events/OrderConfirmed/logs/index.html +0 -1
  546. package/out/domains/Orders/events/OrderCreated/index.html +0 -2
  547. package/out/domains/Orders/events/OrderCreated/logs/index.html +0 -1
  548. package/out/domains/Orders/events/OrderRequested/index.html +0 -40
  549. package/out/domains/Orders/events/OrderRequested/logs/index.html +0 -1
  550. package/out/domains/Orders/index.html +0 -2
  551. package/out/domains/Orders/services/Orders Service/index.html +0 -2
  552. package/out/domains/Shopping/events/AddedItemToCart/index.html +0 -65
  553. package/out/domains/Shopping/events/AddedItemToCart/logs/index.html +0 -1
  554. package/out/domains/Shopping/events/AddedItemToCart/v/0.0.1/index.html +0 -59
  555. package/out/domains/Shopping/events/AddedItemToCart/v/0.0.2/index.html +0 -66
  556. package/out/domains/Shopping/events/RemovedItemFromCart/index.html +0 -48
  557. package/out/domains/Shopping/events/RemovedItemFromCart/logs/index.html +0 -1
  558. package/out/domains/Shopping/index.html +0 -2
  559. package/out/domains/index.html +0 -3
  560. package/out/events/PaymentProcessed/index.html +0 -44
  561. package/out/events/PaymentProcessed/logs/index.html +0 -1
  562. package/out/events/ShipmentDelivered/index.html +0 -44
  563. package/out/events/ShipmentDelivered/logs/index.html +0 -1
  564. package/out/events/ShipmentDispatched/index.html +0 -44
  565. package/out/events/ShipmentDispatched/logs/index.html +0 -1
  566. package/out/events/ShipmentPrepared/index.html +0 -2
  567. package/out/events/ShipmentPrepared/logs/index.html +0 -1
  568. package/out/events/index.html +0 -11
  569. package/out/favicon.ico +0 -0
  570. package/out/index.html +0 -1
  571. package/out/logo-random.svg +0 -114
  572. package/out/logo.svg +0 -44
  573. package/out/opengraph.png +0 -0
  574. package/out/overview/index.html +0 -1
  575. package/out/services/Orders Service/index.html +0 -1
  576. package/out/services/Payment Service/index.html +0 -2
  577. package/out/services/Shipping Service/index.html +0 -2
  578. package/out/services/index.html +0 -4
  579. package/out/users/dboyne/index.html +0 -16
  580. package/out/users/index.html +0 -1
  581. package/out/users/mSmith/index.html +0 -13
  582. package/out/visualiser/index.html +0 -16
  583. package/pages/_app.tsx +0 -111
  584. package/pages/_document.tsx +0 -18
  585. package/pages/domains/[domain]/events/[name]/logs.tsx +0 -35
  586. package/pages/domains/[domain]/events/[name]/v/[version].tsx +0 -39
  587. package/pages/domains/[domain]/events/[name].tsx +0 -46
  588. package/pages/domains/[domain]/index.tsx +0 -137
  589. package/pages/domains/[domain]/services/[name].tsx +0 -42
  590. package/pages/domains.tsx +0 -210
  591. package/pages/events/[name]/logs.tsx +0 -177
  592. package/pages/events/[name]/v/[version].tsx +0 -38
  593. package/pages/events/[name].tsx +0 -223
  594. package/pages/events.tsx +0 -357
  595. package/pages/index.tsx +0 -56
  596. package/pages/overview.tsx +0 -89
  597. package/pages/services/[name].tsx +0 -164
  598. package/pages/services.tsx +0 -311
  599. package/pages/users/[id].tsx +0 -101
  600. package/pages/users.tsx +0 -43
  601. package/pages/visualiser.tsx +0 -322
  602. package/postcss.config.js +0 -6
  603. package/public/logo-random.svg +0 -114
  604. package/public/logo.svg +0 -44
  605. package/scripts/__tests__/assets/eventcatalog.config.js +0 -32
  606. package/scripts/__tests__/generate.spec.ts +0 -36
  607. package/scripts/generate.js +0 -28
  608. package/scripts/move-schemas-for-download.js +0 -80
  609. package/styles/Home.module.css +0 -116
  610. package/styles/globals.css +0 -85
  611. package/tailwind.config.js +0 -36
  612. package/types/index.ts +0 -7
  613. package/utils/random-bg.ts +0 -13
  614. /package/{lib/__tests__/assets/services/Payment Service/openapi.yaml → public/openapi.yml} +0 -0
@@ -0,0 +1,60 @@
1
+ // import { getColor } from '@utils/colors';
2
+ import { getCollection } from 'astro:content';
3
+ import dagre from 'dagre';
4
+ import { getNodesAndEdges as getServicesNodeAndEdges } from '../services/node-graph';
5
+
6
+ type DagreGraph = any;
7
+
8
+ // Creates a new dagre graph
9
+ export const getDagreGraph = () => {
10
+ const graph = new dagre.graphlib.Graph({ compound: true });
11
+ graph.setGraph({ rankdir: 'LR', ranksep: 200, nodesep: 200 });
12
+ graph.setDefaultEdgeLabel(() => ({}));
13
+ return graph;
14
+ };
15
+
16
+ interface Props {
17
+ id: string;
18
+ version: string;
19
+ defaultFlow?: DagreGraph;
20
+ mode?: 'simple' | 'full';
21
+ }
22
+
23
+ export const getNodesAndEdges = async ({ id, version, defaultFlow, mode = 'simple' }: Props) => {
24
+ const flow = defaultFlow || getDagreGraph();
25
+ let nodes = [] as any,
26
+ edges = [] as any;
27
+
28
+ const domains = await getCollection('domains');
29
+
30
+ const domain = domains.find((service) => service.data.id === id && service.data.version === version);
31
+
32
+ // Nothing found...
33
+ if (!domain) {
34
+ return {
35
+ nodes: [],
36
+ edges: [],
37
+ };
38
+ }
39
+
40
+ const rawServices = domain?.data.services || [];
41
+
42
+ // Get all the nodes for everyhing
43
+
44
+ for (const service of rawServices) {
45
+ const { nodes: serviceNodes, edges: serviceEdges } = await getServicesNodeAndEdges({
46
+ id: service.id,
47
+ version: service.version,
48
+ defaultFlow: flow,
49
+ mode,
50
+ renderAllEdges: true,
51
+ });
52
+ nodes = [...nodes, ...serviceNodes];
53
+ edges = [...edges, ...serviceEdges];
54
+ }
55
+
56
+ return {
57
+ nodes: nodes,
58
+ edges: edges,
59
+ };
60
+ };
@@ -0,0 +1,108 @@
1
+ // import { getColor } from '@utils/colors';
2
+ import { getEvents } from '@utils/events';
3
+ import type { CollectionEntry } from 'astro:content';
4
+ import dagre from 'dagre';
5
+ import { calculatedNodes, createDagreGraph, generatedIdForEdge, generateIdForNode } from '../node-graph-utils/utils';
6
+
7
+ type DagreGraph = any;
8
+
9
+ interface Props {
10
+ id: string;
11
+ version: string;
12
+ defaultFlow?: DagreGraph;
13
+ mode?: 'simple' | 'full';
14
+ }
15
+
16
+ export const getNodesAndEdges = async ({ id, version, defaultFlow, mode = 'simple' }: Props) => {
17
+ const flow = defaultFlow || createDagreGraph({ ranksep: 180, nodesep: 50 });
18
+ const nodes = [] as any,
19
+ edges = [] as any;
20
+
21
+ const events = await getEvents();
22
+
23
+ const event = events.find((event) => event.data.id === id && event.data.version === version);
24
+
25
+ // Nothing found...
26
+ if (!event) {
27
+ return {
28
+ nodes: [],
29
+ edges: [],
30
+ };
31
+ }
32
+
33
+ const producers = (event.data.producers as CollectionEntry<'services'>[]) || [];
34
+ const consumers = (event.data.consumers as CollectionEntry<'services'>[]) || [];
35
+
36
+ if (producers && producers.length > 0) {
37
+ producers.forEach((producer) => {
38
+ nodes.push({
39
+ id: generateIdForNode(producer),
40
+ type: producer?.collection,
41
+ sourcePosition: 'right',
42
+ targetPosition: 'left',
43
+ data: { mode, service: producer, showTarget: false },
44
+ position: { x: 250, y: 0 },
45
+ });
46
+ edges.push({
47
+ id: generatedIdForEdge(producer, event),
48
+ source: generateIdForNode(producer),
49
+ target: generateIdForNode(event),
50
+ type: 'smoothstep',
51
+ label: 'publishes event',
52
+ animated: false,
53
+ markerEnd: {
54
+ type: 'arrow',
55
+ },
56
+ });
57
+ });
58
+ }
59
+
60
+ // The event itself
61
+ nodes.push({
62
+ id: generateIdForNode(event),
63
+ sourcePosition: 'right',
64
+ targetPosition: 'left',
65
+ data: { mode, message: event, showTarget: producers.length > 0, showSource: consumers.length > 0 },
66
+ position: { x: 0, y: 0 },
67
+ type: event.collection,
68
+ });
69
+
70
+ // The messages the service sends
71
+ consumers.forEach((consumer) => {
72
+ nodes.push({
73
+ id: generateIdForNode(consumer),
74
+ sourcePosition: 'right',
75
+ targetPosition: 'left',
76
+ data: { title: consumer?.data.id, mode, service: consumer, showSource: false },
77
+ position: { x: 0, y: 0 },
78
+ type: consumer?.collection,
79
+ });
80
+ edges.push({
81
+ id: generatedIdForEdge(event, consumer),
82
+ source: generateIdForNode(event),
83
+ target: generateIdForNode(consumer),
84
+ type: 'smoothstep',
85
+ label: 'subscribed by',
86
+ animated: false,
87
+ markerEnd: {
88
+ type: 'arrow',
89
+ },
90
+ });
91
+ });
92
+
93
+ nodes.forEach((node: any) => {
94
+ flow.setNode(node.id, { width: 150, height: 100 });
95
+ });
96
+
97
+ edges.forEach((edge: any) => {
98
+ flow.setEdge(edge.source, edge.target);
99
+ });
100
+
101
+ // Render the diagram in memory getting hte X and Y
102
+ dagre.layout(flow);
103
+
104
+ return {
105
+ nodes: calculatedNodes(flow, nodes),
106
+ edges: edges,
107
+ };
108
+ };
@@ -0,0 +1,62 @@
1
+ import { getCollection } from 'astro:content';
2
+ import type { CollectionEntry } from 'astro:content';
3
+ import path from 'path';
4
+ import { getVersionForCollectionItem, getVersions } from './collections/util';
5
+
6
+ type Event = CollectionEntry<'events'> & {
7
+ catalog: {
8
+ path: string;
9
+ filePath: string;
10
+ type: string;
11
+ };
12
+ };
13
+
14
+ interface Props {
15
+ getAllVersions?: boolean;
16
+ }
17
+
18
+ export const getEvents = async ({ getAllVersions = true }: Props = {}): Promise<Event[]> => {
19
+ const events = await getCollection('events', (event) => {
20
+ return (getAllVersions || !event.slug.includes('versioned')) && event.data.hidden !== true;
21
+ });
22
+
23
+ const services = await getCollection('services');
24
+
25
+ return events.map((event) => {
26
+ const { latestVersion, versions } = getVersionForCollectionItem(event, events);
27
+
28
+ const producers = services.filter((service) => {
29
+ if (!service.data.sends) return false;
30
+ return service.data.sends.find((item) => {
31
+ return item.id === event.data.id && item.version === event.data.version;
32
+ });
33
+ });
34
+
35
+ const consumers = services.filter((service) => {
36
+ if (!service.data.receives) return false;
37
+ return service.data.receives.find((item) => {
38
+ return item.id === event.data.id && item.version === event.data.version;
39
+
40
+ // If no version has been found, then get try find the latest one
41
+ // return item.id == event.data.id
42
+ });
43
+ });
44
+
45
+ return {
46
+ ...event,
47
+ data: {
48
+ ...event.data,
49
+ producers,
50
+ consumers,
51
+ versions,
52
+ latestVersion,
53
+ },
54
+ catalog: {
55
+ path: path.join(event.collection, event.id.replace('/index.mdx', '')),
56
+ filePath: path.join(process.cwd(), 'src', 'catalog-files', event.collection, event.id.replace('/index.mdx', '')),
57
+ publicPath: path.join('/generated', event.collection, event.id.replace('/index.mdx', '')),
58
+ type: 'event',
59
+ },
60
+ };
61
+ });
62
+ };
@@ -0,0 +1,6 @@
1
+ export function exampleRemarkPlugin() {
2
+ // All remark and rehype plugins return a separate function
3
+ return function (tree, file) {
4
+ file.data.astro.frontmatter.customProperty = 'Generated property';
5
+ };
6
+ }
@@ -0,0 +1,7 @@
1
+ // // import type { Domain, Message } from '@eventcatalog/types';
2
+ // import { getCollection, } from 'astro:content';
3
+
4
+ // export const getMessages = async (): Promise<Message[]> => {
5
+ // const commands = await getCollection('commands');
6
+ // return commands.map((message: any) => message.data);
7
+ // };
@@ -0,0 +1,31 @@
1
+ import type { CollectionEntry } from 'astro:content';
2
+ import type { Node } from 'reactflow';
3
+ import dagre from 'dagre';
4
+
5
+ type DagreGraph = any;
6
+
7
+ export const generateIdForNode = (node: CollectionEntry<'events' | 'services' | 'commands'>) => {
8
+ return `${node.data.id}-${node.data.version}`;
9
+ };
10
+
11
+ export const generatedIdForEdge = (
12
+ source: CollectionEntry<'events' | 'services' | 'commands'>,
13
+ target: CollectionEntry<'events' | 'services' | 'commands'>
14
+ ) => {
15
+ return `${source.data.id}-${source.data.version}-${target.data.id}-${target.data.version}`;
16
+ };
17
+
18
+ export const calculatedNodes = (flow: dagre.graphlib.Graph, nodes: Node[]) => {
19
+ return nodes.map((node: any) => {
20
+ const { x, y } = flow.node(node.id);
21
+ return { ...node, position: { x, y } };
22
+ });
23
+ };
24
+
25
+ // Creates a new dagre graph
26
+ export const createDagreGraph = ({ ranksep = 180, nodesep = 50 }: any) => {
27
+ const graph = new dagre.graphlib.Graph({ compound: true });
28
+ graph.setGraph({ rankdir: 'LR', ranksep, nodesep });
29
+ graph.setDefaultEdgeLabel(() => ({}));
30
+ return graph;
31
+ };
@@ -0,0 +1,133 @@
1
+ // import { getColor } from '@utils/colors';
2
+ import { getCollection, type CollectionEntry } from 'astro:content';
3
+ import dagre from 'dagre';
4
+ import { getVersion } from './services';
5
+ import { createDagreGraph, generateIdForNode, generatedIdForEdge, calculatedNodes } from '@utils/node-graph-utils/utils';
6
+
7
+ type DagreGraph = any;
8
+
9
+ interface Props {
10
+ id: string;
11
+ version: string;
12
+ defaultFlow?: DagreGraph;
13
+ mode?: 'simple' | 'full';
14
+ renderAllEdges?: boolean;
15
+ }
16
+
17
+ export const getNodesAndEdges = async ({ id, defaultFlow, version, mode = 'simple', renderAllEdges = false }: Props) => {
18
+ const flow = defaultFlow || createDagreGraph({ ranksep: 200, nodesep: 50 });
19
+ const nodes = [] as any,
20
+ edges = [] as any;
21
+
22
+ const services = await getCollection('services');
23
+
24
+ const service = services.find((service) => service.data.id === id && service.data.version === version);
25
+
26
+ // Nothing found...
27
+ if (!service) {
28
+ return {
29
+ nodes: [],
30
+ edges: [],
31
+ };
32
+ }
33
+
34
+ const receivesRaw = service?.data.receives || [];
35
+ const sendsRaw = service?.data.sends || [];
36
+
37
+ const events = await getCollection('events');
38
+ const commands = await getCollection('commands');
39
+
40
+ const messages = [...events, ...commands];
41
+
42
+ const receivesHydrated = receivesRaw
43
+ .map((message) => {
44
+ return getVersion(messages, message.id, message.version);
45
+ })
46
+ .filter((e) => e !== undefined);
47
+
48
+ const sendsHydrated = sendsRaw
49
+ .map((message) => {
50
+ return getVersion(messages, message.id, message.version);
51
+ // return messages.find((message) => message.data.id === messageId);
52
+ })
53
+ .filter((e) => e !== undefined);
54
+
55
+ const receives = (receivesHydrated as CollectionEntry<'events' | 'commands'>[]) || [];
56
+ const sends = (sendsHydrated as CollectionEntry<'events' | 'commands'>[]) || [];
57
+
58
+ // Get all the data from them
59
+
60
+ if (receives && receives.length > 0) {
61
+ //All the messages the service receives
62
+ receives.forEach((receive, index) => {
63
+ nodes.push({
64
+ id: generateIdForNode(receive),
65
+ type: receive?.collection,
66
+ sourcePosition: 'right',
67
+ targetPosition: 'left',
68
+ data: { mode, message: receive, showTarget: renderAllEdges },
69
+ position: { x: 250, y: 0 },
70
+ });
71
+ edges.push({
72
+ id: generatedIdForEdge(receive, service),
73
+ source: generateIdForNode(receive),
74
+ target: generateIdForNode(service),
75
+ type: 'smoothstep',
76
+ label: receive?.collection === 'events' ? 'receives event' : 'accepts',
77
+ animated: false,
78
+ markerEnd: {
79
+ type: 'arrow',
80
+ },
81
+ });
82
+ });
83
+ }
84
+
85
+ // The service itself
86
+ nodes.push({
87
+ id: generateIdForNode(service),
88
+ sourcePosition: 'right',
89
+ targetPosition: 'left',
90
+ data: { mode, service: service, showSource: sends.length > 0, showTarget: receives.length > 0 },
91
+ position: { x: 0, y: 0 },
92
+ type: service.collection,
93
+ });
94
+
95
+ // The messages the service sends
96
+ sends.forEach((send) => {
97
+ nodes.push({
98
+ id: generateIdForNode(send),
99
+ sourcePosition: 'right',
100
+ targetPosition: 'left',
101
+ data: { mode, message: send, showSource: renderAllEdges },
102
+ position: { x: 0, y: 0 },
103
+ type: send?.collection,
104
+ });
105
+ edges.push({
106
+ id: generatedIdForEdge(service, send),
107
+ source: generateIdForNode(service),
108
+ target: generateIdForNode(send),
109
+ type: 'smoothstep',
110
+ label: send?.collection === 'events' ? 'publishes event' : 'invokes command',
111
+ animated: false,
112
+ markerEnd: {
113
+ type: 'arrow',
114
+ },
115
+ });
116
+ });
117
+
118
+ nodes.forEach((node: any) => {
119
+ flow.setNode(node.id, { width: 150, height: 100 });
120
+ });
121
+
122
+ edges.forEach((edge: any) => {
123
+ flow.setEdge(edge.source, edge.target);
124
+ });
125
+
126
+ // Render the diagram in memory getting hte X and Y
127
+ dagre.layout(flow);
128
+
129
+ return {
130
+ nodes: calculatedNodes(flow, nodes),
131
+ edges: edges,
132
+ };
133
+ };
@@ -0,0 +1,88 @@
1
+ import { getVersionForCollectionItem, getVersions } from '@utils/collections/util';
2
+ import { getCollection } from 'astro:content';
3
+ import type { CollectionEntry } from 'astro:content';
4
+ import path from 'path';
5
+ // import { getEvents } from './events';
6
+ // import { getCommands } from './commands';
7
+
8
+ // import type { Service as ServiceInterface } from '../types/index'
9
+
10
+ export type Service = CollectionEntry<'services'>;
11
+
12
+ export const getVersion = (collection: CollectionEntry<'events' | 'commands'>[], id: string, version?: string) => {
13
+ const data = collection;
14
+ if (version) {
15
+ return data.find((event) => event.data.version === version && event.data.id === id);
16
+ }
17
+
18
+ const filteredEvents = data.filter((event) => event.data.id === id);
19
+
20
+ // Order by version
21
+ const sorted = filteredEvents.sort((a, b) => {
22
+ return a.data.version.localeCompare(b.data.version);
23
+ });
24
+
25
+ // latest version
26
+ return sorted[sorted.length - 1];
27
+ };
28
+
29
+ interface Props {
30
+ getAllVersions?: boolean;
31
+ }
32
+
33
+ export const getServices = async ({ getAllVersions = true }: Props = {}): Promise<Service[]> => {
34
+ // Get services that are not versioned
35
+ const services = await getCollection('services', (service) => {
36
+ return (getAllVersions || !service.slug.includes('versioned')) && service.data.hidden !== true;
37
+ });
38
+ const events = await getCollection('events');
39
+ const commands = await getCollection('commands');
40
+
41
+ const allMessages = [...events, ...commands];
42
+
43
+ // @ts-ignore // TODO: Fix this type
44
+ return services.map((service) => {
45
+ const { latestVersion, versions } = getVersionForCollectionItem(service, services);
46
+
47
+ // const receives = service.data.receives || [];
48
+ const sendsMessages = service.data.sends || [];
49
+ const receivesMessages = service.data.receives || [];
50
+
51
+ const sends = sendsMessages
52
+ .map((message) => {
53
+ const event = getVersion(allMessages, message.id, message.version);
54
+ // const event = allMessages.find((_message) => _message.data.id === message.id && _message.data.version === message.version);
55
+ return event;
56
+ })
57
+ .filter((e) => e !== undefined);
58
+
59
+ const receives = receivesMessages
60
+ .map((message) => {
61
+ const event = getVersion(allMessages, message.id, message.version);
62
+ // const event = allMessages.find((_message) => _message.data.id === message.id && _message.data.version === message.version);
63
+ return event;
64
+ })
65
+ .filter((e) => e !== undefined);
66
+
67
+ return {
68
+ ...service,
69
+ data: {
70
+ ...service.data,
71
+ receives,
72
+ sends,
73
+ versions,
74
+ latestVersion,
75
+ },
76
+ nodes: {
77
+ receives,
78
+ sends,
79
+ },
80
+ catalog: {
81
+ path: path.join(service.collection, service.id.replace('/index.mdx', '')),
82
+ filePath: path.join(process.cwd(), 'src', 'catalog-files', service.collection, service.id.replace('/index.mdx', '')),
83
+ publicPath: path.join('/generated', service.collection, service.id.replace('/index.mdx', '')),
84
+ type: 'service',
85
+ },
86
+ };
87
+ });
88
+ };
@@ -0,0 +1,47 @@
1
+ import { getCollection } from 'astro:content';
2
+ import type { CollectionEntry } from 'astro:content';
3
+ import path from 'path';
4
+
5
+ export type Team = CollectionEntry<'teams'>;
6
+
7
+ export const getTeams = async (): Promise<Team[]> => {
8
+ // Get services that are not versioned
9
+ const teams = await getCollection('teams', (team) => {
10
+ return team.data.hidden !== true;
11
+ });
12
+
13
+ // What do they own?
14
+ const services = await getCollection('services');
15
+ // What do they own?
16
+ const events = await getCollection('events');
17
+ const commands = await getCollection('commands');
18
+
19
+ return teams.map((team) => {
20
+ const ownedServices = services.filter((service) => {
21
+ return service.data.owners?.find((owner) => owner.slug === team.data.id);
22
+ });
23
+
24
+ const ownedEvents = events.filter((event) => {
25
+ return event.data.owners?.find((owner) => owner.slug === team.data.id);
26
+ });
27
+
28
+ const ownedCommands = commands.filter((command) => {
29
+ return command.data.owners?.find((owner) => owner.slug === team.data.id);
30
+ });
31
+
32
+ return {
33
+ ...team,
34
+ data: {
35
+ ...team.data,
36
+ ownedServices,
37
+ ownedCommands,
38
+ ownedEvents,
39
+ },
40
+ catalog: {
41
+ path: path.join(team.collection, team.id.replace('/index.mdx', '')),
42
+ filePath: path.join(process.cwd(), 'src', 'catalog-files', team.collection, team.id.replace('/index.mdx', '')),
43
+ type: 'team',
44
+ },
45
+ };
46
+ });
47
+ };
@@ -0,0 +1,59 @@
1
+ import { getCollection } from 'astro:content';
2
+ import type { CollectionEntry } from 'astro:content';
3
+ import path from 'path';
4
+
5
+ export type User = CollectionEntry<'users'>;
6
+
7
+ export const getUsers = async (): Promise<User[]> => {
8
+ // Get services that are not versioned
9
+ const users = await getCollection('users', (user) => {
10
+ return user.data.hidden !== true;
11
+ });
12
+
13
+ // What do they own?
14
+ const services = await getCollection('services');
15
+
16
+ // What do they own?
17
+ const events = await getCollection('events');
18
+
19
+ // What do they own?
20
+ const commands = await getCollection('commands');
21
+
22
+ const teams = await getCollection('teams', (team) => {
23
+ return team.data.hidden !== true;
24
+ });
25
+
26
+ return users.map((user) => {
27
+ const ownedServices = services.filter((service) => {
28
+ return service.data.owners?.find((owner) => owner.slug === user.data.id);
29
+ });
30
+
31
+ const ownedEvents = events.filter((event) => {
32
+ return event.data.owners?.find((owner) => owner.slug === user.data.id);
33
+ });
34
+
35
+ const ownedCommands = commands.filter((command) => {
36
+ return command.data.owners?.find((owner) => owner.slug === user.data.id);
37
+ });
38
+
39
+ const associatedTeams = teams.filter((team) => {
40
+ return team.data.members?.find((member) => member.slug === user.data.id);
41
+ });
42
+
43
+ return {
44
+ ...user,
45
+ data: {
46
+ ...user.data,
47
+ ownedServices,
48
+ ownedEvents,
49
+ ownedCommands,
50
+ associatedTeams,
51
+ },
52
+ catalog: {
53
+ path: path.join(user.collection, user.id.replace('/index.mdx', '')),
54
+ filePath: path.join(process.cwd(), 'src', 'catalog-files', user.collection, user.id.replace('/index.mdx', '')),
55
+ type: 'user',
56
+ },
57
+ };
58
+ });
59
+ };
@@ -0,0 +1,24 @@
1
+ /** @type {import('tailwindcss').Config} */
2
+ export default {
3
+ content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'],
4
+ theme: {
5
+ extend: {},
6
+ },
7
+ safelist: [
8
+ {pattern: /border-.*-(200|400|500)/},
9
+ {pattern: /bg-.*-(100|200|400|500)/},
10
+ {pattern: /text-.*-(400|500|800)/},
11
+ 'border-blue-200',
12
+ 'border-green-300',
13
+ 'bg-blue-600',
14
+ 'bg-orange-600',
15
+ 'bg-red-50',
16
+ 'bg-yellow-50',
17
+ 'bg-indigo-50',
18
+ 'border-l-red-500',
19
+ 'border-l-yellow-500',
20
+ 'border-l-blue-500',
21
+ ],
22
+
23
+ plugins: [require('@tailwindcss/typography')],
24
+ };
package/tsconfig.json CHANGED
@@ -1,32 +1,17 @@
1
1
  {
2
+ "extends": "astro/tsconfigs/strict",
2
3
  "compilerOptions": {
3
- "target": "es5",
4
- "lib": ["dom", "dom.iterable", "esnext"],
5
- "allowJs": true,
6
- "skipLibCheck": true,
7
- "strict": false,
8
- "forceConsistentCasingInFileNames": true,
9
- "noEmit": true,
10
- "incremental": true,
11
- "esModuleInterop": true,
12
- "module": "esnext",
13
- "moduleResolution": "node",
14
- "resolveJsonModule": true,
15
- "isolatedModules": true,
4
+ "strict": true,
16
5
  "baseUrl": ".",
17
6
  "paths": {
18
- "@/components/*": ["components/*"],
19
- "@/modules/*": ["modules/*"],
20
- "@/hooks/*": ["hooks/*"],
21
- "@/types/*": ["types/*"],
22
- "@/contexts/*": ["contexts/*"],
23
- "@/data/*": ["data/*"],
24
- "@/lib/*": ["lib/*"],
25
- "@/utils/*": ["utils/*"],
26
- "@/styles/*": ["styles/*"]
7
+ "@config": ["./eventcatalog.config.js"],
8
+ "@eventcatalog": ["src/utils/config/catalog.ts"],
9
+ "@components/*": ["src/components/*"],
10
+ "@types": ["src/types/index.ts"],
11
+ "@utils/*": ["src/utils/*"],
12
+ "@layouts/*": ["src/layouts/*"]
27
13
  },
28
- "jsx": "preserve"
29
- },
30
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "hooks/EventCatalog.tsx", "scripts/generate.js"],
31
- "exclude": ["node_modules"]
14
+ "jsx": "react-jsx",
15
+ "jsxImportSource": "react"
16
+ }
32
17
  }
package/.next/BUILD_ID DELETED
@@ -1 +0,0 @@
1
- rP51t_ISuRqZMVs4QvwfY