@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,127 @@
1
+ ---
2
+ import DocsLayout from '@layouts/DocsLayout.astro';
3
+
4
+ import components from '@components/MDX/components';
5
+
6
+ // SideBars
7
+ import { getTeams } from '@utils/teams';
8
+ import { getEntry } from 'astro:content';
9
+ import type { CollectionEntry } from 'astro:content';
10
+ import OwnersList from '@components/Lists/OwnersList';
11
+ import PillList from '@components/Lists/PillList';
12
+ import EnvelopeIcon from '@heroicons/react/16/solid/EnvelopeIcon';
13
+
14
+ export async function getStaticPaths() {
15
+ const teams = await getTeams();
16
+
17
+ return teams.map((team) => ({
18
+ params: {
19
+ type: 'teams',
20
+ id: team.data.id,
21
+ },
22
+ props: {
23
+ type: 'team',
24
+ ...team,
25
+ },
26
+ }));
27
+ }
28
+
29
+ const { render, ...props } = Astro.props;
30
+
31
+ const { Content } = await render();
32
+
33
+ const membersRaw = props.data.members || [];
34
+ const members = await Promise.all(membersRaw.map((m) => getEntry(m)));
35
+
36
+ const services = props.data.ownedServices as CollectionEntry<'services'>[];
37
+ const events = props.data.ownedEvents as CollectionEntry<'events'>[];
38
+ const commands = props.data.ownedCommands as CollectionEntry<'commands'>[];
39
+
40
+ const membersList = members.map((o) => ({
41
+ label: o.data.name,
42
+ type: o.collection,
43
+ badge: o.collection === 'users' ? o.data.role : 'Team',
44
+ avatarUrl: o.collection === 'users' ? o.data.avatarUrl : '',
45
+ href: `/docs/${o.collection}/${o.data.id}`,
46
+ }));
47
+
48
+ const ownedServicesList = services.map((p) => ({
49
+ label: `${p.data.name} (service)`,
50
+ href: `/docs/${p.collection}/${p.data.id}`,
51
+ tag: `v${p.data.version}`
52
+ }));
53
+
54
+ const ownedEventsList = [...events, ...commands].map((p) => ({
55
+ label: `${p.data.name} (${p.collection.slice(0, -1)})`,
56
+ href: `/docs/${p.collection}/${p.data.id}`,
57
+ color: p.collection === 'events' ? 'orange' : 'blue',
58
+ tag: `v${p.data.version}`
59
+ }));
60
+ ---
61
+
62
+ <DocsLayout title={`Team | ${props.data.name}`} description={props.data.summary}>
63
+ <div class="flex min-h-screen docs-layout">
64
+ <main class="flex-1 w-full pr-10 pt-4">
65
+ <!-- <span class="text-purple-500 bg-purple-100 px-2 py-1 rounded-md">v{props.data.version}</span> -->
66
+
67
+ <div class="border-b border-gray-200 py-4 pb-2">
68
+ <div class="flex justify-start">
69
+ <!-- <span class="shadow-md text-center flex items-center justify-center text-white text-4xl bg-red-500 h-28 w-28 rounded-full">{props.data.name.charAt(0)}</span> -->
70
+ <div class="flex flex-col justify-between space-y-2">
71
+ <div>
72
+ <h2 class="text-4xl font-bold">{props.data.name} <span class="text-gray-300">(Team)</span></h2>
73
+ </div>
74
+ <div class="space-y-2">
75
+ {
76
+ props.data.email && (
77
+ <div class="flex space-x-1 items-center text-xs text-gray-500 font-bold hover:underline hover:text-purple-500">
78
+ <EnvelopeIcon className="w-4 h-4 text-purple-400" />
79
+ <a href={`mailto:${props.data.email}`}>Email</a>
80
+ </div>
81
+ )
82
+ }
83
+ {
84
+ props.data.slackDirectMessageUrl && (
85
+ <div class="flex space-x-1 items-center text-xs text-gray-500 font-bold hover:underline hover:text-purple-500">
86
+ <img src="/slack-icon.svg" class="w-4 h-3" />
87
+ <a href={`${props.data.slackDirectMessageUrl}`}>Send DM on Slack</a>
88
+ </div>
89
+ )
90
+ }
91
+ </div>
92
+ </div>
93
+ </div>
94
+ <!-- {
95
+ props.data.badges && (
96
+ <div class="flex flex-wrap py-2">
97
+ {props.data.badges.map((badge) => (
98
+ <span class={`text-sm text-gray-500 px-2 py-1 rounded-md mr-2 bg-${badge.backgroundColor}-200 text-${badge.textColor}-800`}>{badge.content}</span>
99
+ ))}
100
+ </div>
101
+ )
102
+ } -->
103
+ <h2 class="text-xl py-2 text-gray-500">{props.data.summary}</h2>
104
+ </div>
105
+ <div class="prose prose-md py-4 w-full">
106
+ <Content components={components(props)} />
107
+ </div>
108
+ <!-- <div class="h-full w-full">
109
+ <NodeGraph id={props.data.id} type={props?.catalog?.type} nodes={props.nodes} masterNode={{ name: props.data.name, id: props.data.id }} client:load />
110
+ </div> -->
111
+ </main>
112
+ <aside class="sticky top-20 h-[calc(100vh-theme(spacing.16))] w-56 overflow-y-auto">
113
+ <div class="divide-y-2 divide-gray-100">
114
+ <PillList color="blue" title={`Owned services (${ownedServicesList.length})`} pills={ownedServicesList} emptyMessage={`This team does not own any services .`} client:load/>
115
+ <PillList color="red" title={`Owned messages (${ownedEventsList.length})`} pills={ownedEventsList} emptyMessage={`This team does not own any messages .`} client:load/>
116
+ <OwnersList title={`Team members (${membersList.length})`} owners={membersList} emptyMessage={`This team does not have any members.`} client:load/>
117
+ </div>
118
+ <!-- {props?.collection === 'events' && <MessageSideBar message={props} />} -->
119
+ </aside>
120
+ </div>
121
+ </DocsLayout>
122
+
123
+ <style>
124
+ .docs-layout .prose {
125
+ max-width: none;
126
+ }
127
+ </style>
@@ -0,0 +1,132 @@
1
+ ---
2
+ import DocsLayout from '@layouts/DocsLayout.astro';
3
+ import components from '@components/MDX/components';
4
+
5
+ // SideBars
6
+ import type { CollectionEntry } from 'astro:content';
7
+ import OwnersList from '@components/Lists/OwnersList';
8
+ import PillList from '@components/Lists/PillList';
9
+ import { getUsers } from '@utils/users';
10
+ import EnvelopeIcon from '@heroicons/react/16/solid/EnvelopeIcon';
11
+
12
+ export async function getStaticPaths() {
13
+ const teams = await getUsers();
14
+
15
+ return teams.map((team) => ({
16
+ params: {
17
+ type: team.collection,
18
+ id: team.data.id,
19
+ },
20
+ props: {
21
+ type: 'team',
22
+ ...team,
23
+ },
24
+ }));
25
+ }
26
+
27
+ const { render, ...props } = Astro.props;
28
+
29
+ const { Content } = await render();
30
+
31
+ const services = props.data.ownedServices as CollectionEntry<'services'>[];
32
+ const events = props.data.ownedEvents as CollectionEntry<'events'>[];
33
+ const commands = props.data.ownedCommands as CollectionEntry<'commands'>[];
34
+ const teams = props.data.associatedTeams as CollectionEntry<'teams'>[];
35
+
36
+ const ownedServicesList = services.map((p) => ({
37
+ label: `${p.data.name} (service)`,
38
+ href: `/docs/${p.collection}/${p.data.id}`,
39
+ tag: `v${p.data.version}`,
40
+ }));
41
+
42
+ const ownedMessageList = [...events, ...commands].map((p) => ({
43
+ label: `${p.data.name} (${p.collection.slice(0, -1)})`,
44
+ color: p.collection === 'events' ? 'orange' : 'blue',
45
+ tag: `v${p.data.version}`,
46
+ href: `/docs/${p.collection}/${p.data.id}`,
47
+ }));
48
+
49
+ const associatedTeams = teams.map((o) => ({
50
+ label: o.data.name,
51
+ type: o.collection,
52
+ badge: 'Team',
53
+ href: `/docs/${o.collection}/${o.data.id}`,
54
+ }));
55
+ ---
56
+
57
+ <DocsLayout title={`User | ${props.data.name}`}>
58
+ <div class="flex min-h-screen docs-layout">
59
+ <main class="flex-1 w-full pr-10 pt-4">
60
+ <!-- <span class="text-purple-500 bg-purple-100 px-2 py-1 rounded-md">v{props.data.version}</span> -->
61
+ <div class="border-b border-gray-200 pb-4 py-4">
62
+ <div class="flex justify-start space-x-8">
63
+ <img src={props.data.avatarUrl} alt="Profile picture" class="shadow-md w-28 rounded-md" />
64
+ <div class="flex flex-col justify-between">
65
+ <div>
66
+ <h2 class="text-4xl font-bold">{props.data.name}</h2>
67
+ <span class="text-xl font-bold text-gray-500">{props.data.role}</span>
68
+ </div>
69
+ <div class="space-y-1">
70
+ {
71
+ props.data.email && (
72
+ <div class="flex space-x-1 items-center text-xs text-gray-500 font-bold hover:underline hover:text-purple-500">
73
+ <EnvelopeIcon className="w-4 h-4 text-purple-400" />
74
+ <a href={`mailto:${props.data.email}`}>Email</a>
75
+ </div>
76
+ )
77
+ }
78
+ {
79
+ props.data.slackDirectMessageUrl && (
80
+ <div class="flex space-x-1 items-center text-xs text-gray-500 font-bold hover:underline hover:text-purple-500">
81
+ <img src="/slack-icon.svg" class="w-4 h-3" />
82
+ <a href={`${props.data.slackDirectMessageUrl}`}>Send DM on Slack</a>
83
+ </div>
84
+ )
85
+ }
86
+ </div>
87
+ </div>
88
+ </div>
89
+ </div>
90
+ <div class="border-b border-gray-200">
91
+ <div class="mx-auto max-w-7xl px-6 lg:px-8">
92
+ <div class="mx-auto max-w-2xl lg:max-w-none">
93
+ <dl class="grid grid-cols-1 gap-0.5 overflow-hidden rounded-2xl text-center sm:grid-cols-2 lg:grid-cols-4">
94
+ <div class="flex flex-col bg-gray-400/5 p-8">
95
+ <dt class="text-sm font-semibold leading-6 text-gray-600"># owned services</dt>
96
+ <dd class="order-first text-3xl font-semibold tracking-tight text-gray-900">{ownedServicesList.length}</dd>
97
+ </div>
98
+ <div class="flex flex-col bg-gray-400/5 p-8">
99
+ <dt class="text-sm font-semibold leading-6 text-gray-600"># owned messages</dt>
100
+ <dd class="order-first text-3xl font-semibold tracking-tight text-gray-900">{ownedMessageList.length}</dd>
101
+ </div>
102
+ <div class="flex flex-col bg-gray-400/5 p-8">
103
+ <dt class="text-sm font-semibold leading-6 text-gray-600"># owned domains</dt>
104
+ <dd class="order-first text-3xl font-semibold tracking-tight text-gray-900">2</dd>
105
+ </div>
106
+ <div class="flex flex-col bg-gray-400/5 p-8">
107
+ <dt class="text-sm font-semibold leading-6 text-gray-600"># teams joined</dt>
108
+ <dd class="order-first text-3xl font-semibold tracking-tight text-gray-900">{associatedTeams.length}</dd>
109
+ </div>
110
+ </dl>
111
+ </div>
112
+ </div>
113
+ </div>
114
+ <div class="prose prose-md py-4 w-full">
115
+ <Content components={components(props)} />
116
+ </div>
117
+ </main>
118
+ <aside class="sticky top-20 h-[calc(100vh-theme(spacing.16))] w-56 overflow-y-auto">
119
+ <div class="divide-y-2 divide-gray-100">
120
+ <PillList color="pink" title={`Owned services (${ownedServicesList.length})`} pills={ownedServicesList} emptyMessage={`${props.data.name} does not own any services .`} client:load/>
121
+ <PillList color="orange" title={`Owned messages (${ownedMessageList.length})`} pills={ownedMessageList} emptyMessage={`${props.data.name} does not own any messages .`} client:load/>
122
+ <OwnersList title={`Member of team (${associatedTeams.length})`} owners={associatedTeams} emptyMessage={`${props.data.name} is not part of any documented team.`} client:load/>
123
+ </div>
124
+ </aside>
125
+ </div>
126
+ </DocsLayout>
127
+
128
+ <style>
129
+ .docs-layout .prose {
130
+ max-width: none;
131
+ }
132
+ </style>
@@ -0,0 +1,46 @@
1
+ ---
2
+ import NodeGraph from '@components/MDX/NodeGraph/NodeGraph.astro';
3
+ import VisualiserLayout from '@layouts/VisualiserLayout.astro';
4
+ import type { CollectionTypes } from '@types';
5
+ import { getCommands } from '@utils/commands';
6
+ import { getDomains } from '@utils/domains/domains';
7
+ import { getEvents } from '@utils/events';
8
+ import { getServices } from '@utils/services/services';
9
+ import type { CollectionEntry } from 'astro:content';
10
+
11
+ export async function getStaticPaths() {
12
+ const [services, events, commands, domains] = await Promise.all([getServices(), getEvents(), getCommands(), getDomains()]);
13
+
14
+ const buildPages = (collection: CollectionEntry<CollectionTypes>[]) => {
15
+ return collection.map((item) => ({
16
+ params: {
17
+ type: item.collection,
18
+ id: item.data.id,
19
+ version: item.data.version,
20
+ },
21
+ props: {
22
+ type: item.collection,
23
+ ...item,
24
+ },
25
+ }));
26
+ };
27
+
28
+ return [...buildPages(services), ...buildPages(events), ...buildPages(commands), ...buildPages(domains)];
29
+ }
30
+
31
+ const props = Astro.props;
32
+
33
+ console.log('TEST');
34
+
35
+ const {
36
+ data: { id },
37
+ collection,
38
+ } = props;
39
+ ---
40
+
41
+ <VisualiserLayout title={`Visualiser | ${props.data.name} (${props.collection})`} description={props.data.summary}>
42
+ <div class="bg-gray-100/50">
43
+ <div class="h-[calc(100vh-110px)] w-full relative border border-gray-200" id={`${id}-portal`} transition:animate="fade"></div>
44
+ <NodeGraph id={id} collection={collection} title={`${props.data.name} (v${props.data.version})`} mode="full" linkTo="visualiser" version={props.data.version} href={{ label: `Open documentation for ${props.data.name} v${props.data.version}`, url: `/docs/${props.collection}/${props.data.id}/${props.data.version}`}} />
45
+ </div>
46
+ </VisualiserLayout>
@@ -0,0 +1,25 @@
1
+ ---
2
+ import Layout from '../../layouts/VisualiserLayout.astro'
3
+ ---
4
+
5
+ <Layout>
6
+ <div class="hidden no-items py-56 text-center -ml-52 text-gray-400">No data loaded into your catalog. Please add some data to your to see visuals.</div>
7
+ </Layout>
8
+
9
+ <script is:inline>
10
+
11
+ // Find the total anchor links
12
+ const totalAnchorLinks = document.getElementById('visualiser-navigation').querySelectorAll('a');
13
+
14
+ console.log('totalAnchorLinks.length', totalAnchorLinks.length)
15
+
16
+ // Show no-items if there are none
17
+ if(totalAnchorLinks.length === 0) {
18
+ document.querySelector('.no-items').classList.remove('hidden');
19
+ }
20
+
21
+ // Find the element with the id visualiser-navigation and the first a link in there and click it
22
+ if(document.getElementById('visualiser-navigation').querySelector('a')){
23
+ document.getElementById('visualiser-navigation').querySelector('a').click();
24
+ }
25
+ </script>
@@ -0,0 +1,27 @@
1
+ import type { RemarkPlugin } from '@astrojs/markdown-remark';
2
+ import { visit } from 'unist-util-visit';
3
+ // import dedent from "ts-dedent"
4
+
5
+ const escapeMap: Record<string, string> = {
6
+ '&': '&amp;',
7
+ '<': '&lt;',
8
+ '>': '&gt;',
9
+ '"': '&quot;',
10
+ "'": '&#39;',
11
+ };
12
+
13
+ const escapeHtml = (str: string) => str.replace(/[&<>"']/g, (c) => escapeMap[c]);
14
+
15
+ export const mermaid: RemarkPlugin<[]> = () => (tree) => {
16
+ visit(tree, 'code', (node) => {
17
+ if (node.lang !== 'mermaid') return;
18
+
19
+ // @ts-ignore
20
+ node.type = 'html';
21
+ node.value = `
22
+ <div class="mermaid" data-content="${escapeHtml(node.value)}">
23
+ <p>Loading graph...</p>
24
+ </div>
25
+ `;
26
+ });
27
+ };
@@ -0,0 +1,9 @@
1
+ import { execSync } from "child_process";
2
+
3
+ export function remarkModifiedTime() {
4
+ return function (_, file) {
5
+ const filepath = file.history[0];
6
+ const result = execSync(`git log -1 --pretty="format:%cI" "${filepath}"`);
7
+ file.data.astro.frontmatter.lastModified = result.toString();
8
+ };
9
+ }
@@ -0,0 +1,2 @@
1
+ export type CollectionTypes = 'commands' | 'events' | 'domains' | 'services';
2
+ export type CollectionMessageTypes = 'commands' | 'events';
@@ -0,0 +1,22 @@
1
+ import type { CollectionTypes } from '@types';
2
+ import type { CollectionEntry } from 'astro:content';
3
+
4
+ export const getVersions = (data: CollectionEntry<CollectionTypes>[]) => {
5
+ const allVersions = data.map((item) => item.data.version).sort();
6
+ const versions = [...new Set(allVersions)].reverse();
7
+ const latestVersion = versions[0];
8
+ return { versions, latestVersion };
9
+ };
10
+
11
+ export const getVersionForCollectionItem = (
12
+ item: CollectionEntry<CollectionTypes>,
13
+ collection: CollectionEntry<CollectionTypes>[]
14
+ ) => {
15
+ const allVersionsForItem = collection
16
+ .filter((i) => i.data.id === item.data.id)
17
+ .map((i) => i.data.version)
18
+ .sort();
19
+ const versions = [...new Set(allVersionsForItem)].reverse();
20
+ const latestVersion = versions[0];
21
+ return { versions, latestVersion };
22
+ };
@@ -0,0 +1,14 @@
1
+ export const getColor = (type: string) => {
2
+ switch (type) {
3
+ case 'event':
4
+ return 'green';
5
+ case 'domain':
6
+ return 'pink';
7
+ case 'command':
8
+ return 'blue';
9
+ case 'service':
10
+ return 'purple';
11
+ default:
12
+ return 'gray';
13
+ }
14
+ };
@@ -0,0 +1,107 @@
1
+ import { getCommands } from '@utils/commands';
2
+ import { calculatedNodes, createDagreGraph, generateIdForNode, generatedIdForEdge } from '@utils/node-graph-utils/utils';
3
+ import { type CollectionEntry } from 'astro:content';
4
+ import dagre from 'dagre';
5
+
6
+ type DagreGraph = any;
7
+
8
+ interface Props {
9
+ id: string;
10
+ version: string;
11
+ defaultFlow?: DagreGraph;
12
+ mode?: 'simple' | 'full';
13
+ }
14
+
15
+ export const getNodesAndEdges = async ({ id, version, defaultFlow, mode = 'simple' }: Props) => {
16
+ const flow = defaultFlow || createDagreGraph({ ranksep: 180, nodesep: 50 });
17
+ const nodes = [] as any,
18
+ edges = [] as any;
19
+
20
+ const commands = await getCommands();
21
+
22
+ const command = commands.find((command) => command.data.id === id && command.data.version === version);
23
+
24
+ // Nothing found...
25
+ if (!command) {
26
+ return {
27
+ nodes: [],
28
+ edges: [],
29
+ };
30
+ }
31
+
32
+ const producers = (command.data.producers as CollectionEntry<'services'>[]) || [];
33
+ const consumers = (command.data.consumers as CollectionEntry<'services'>[]) || [];
34
+
35
+ if (producers && producers.length > 0) {
36
+ producers.forEach((producer, index) => {
37
+ nodes.push({
38
+ id: generateIdForNode(producer),
39
+ type: producer?.collection,
40
+ sourcePosition: 'right',
41
+ targetPosition: 'left',
42
+ data: { mode, service: producer, showTarget: false },
43
+ position: { x: 250, y: 0 },
44
+ });
45
+ edges.push({
46
+ id: generatedIdForEdge(producer, command),
47
+ source: generateIdForNode(producer),
48
+ target: generateIdForNode(command),
49
+ type: 'smoothstep',
50
+ label: 'invokes',
51
+ animated: false,
52
+ markerEnd: {
53
+ type: 'arrow',
54
+ },
55
+ });
56
+ });
57
+ }
58
+
59
+ // The service itself
60
+ nodes.push({
61
+ id: generateIdForNode(command),
62
+ sourcePosition: 'right',
63
+ targetPosition: 'left',
64
+ data: { mode, message: command, showTarget: producers.length > 0, showSource: consumers.length > 0 },
65
+ position: { x: 0, y: 0 },
66
+ type: command.collection,
67
+ });
68
+
69
+ // The messages the service sends
70
+ consumers.forEach((consumer) => {
71
+ nodes.push({
72
+ id: generateIdForNode(consumer),
73
+ sourcePosition: 'right',
74
+ targetPosition: 'left',
75
+ data: { title: consumer?.data.id, mode, service: consumer, showSource: false },
76
+ position: { x: 0, y: 0 },
77
+ type: consumer?.collection,
78
+ });
79
+ edges.push({
80
+ id: generatedIdForEdge(command, consumer),
81
+ source: generateIdForNode(command),
82
+ target: generateIdForNode(consumer),
83
+ type: 'smoothstep',
84
+ label: 'accepts',
85
+ animated: false,
86
+ markerEnd: {
87
+ type: 'arrow',
88
+ },
89
+ });
90
+ });
91
+
92
+ nodes.forEach((node: any) => {
93
+ flow.setNode(node.id, { width: 150, height: 100 });
94
+ });
95
+
96
+ edges.forEach((edge: any) => {
97
+ flow.setEdge(edge.source, edge.target);
98
+ });
99
+
100
+ // Render the diagram in memory getting hte X and Y
101
+ dagre.layout(flow);
102
+
103
+ return {
104
+ nodes: calculatedNodes(flow, nodes),
105
+ edges: edges,
106
+ };
107
+ };
@@ -0,0 +1,60 @@
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 Command = CollectionEntry<'commands'> & {
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 getCommands = async ({ getAllVersions = true }: Props = {}): Promise<Command[]> => {
19
+ const commands = await getCollection('commands', (command) => {
20
+ return (getAllVersions || !command.slug.includes('versioned')) && command.data.hidden !== true;
21
+ });
22
+ const services = await getCollection('services');
23
+
24
+ return commands.map((command) => {
25
+ const { latestVersion, versions } = getVersionForCollectionItem(command, commands);
26
+
27
+ const producers = services.filter((service) => {
28
+ if (!service.data.sends) return false;
29
+ return service.data.sends.find((item) => {
30
+ if (item.version) return item.id === command.data.id && item.version === command.data.version;
31
+ return item.id == command.data.id;
32
+ });
33
+ });
34
+
35
+ const consumers = services.filter((service) => {
36
+ if (!service.data.receives) return false;
37
+ return service.data.receives.find((item) => {
38
+ if (item.version) return item.id === command.data.id && item.version === command.data.version;
39
+ return item.id == command.data.id;
40
+ });
41
+ });
42
+
43
+ return {
44
+ ...command,
45
+ data: {
46
+ ...command.data,
47
+ producers,
48
+ consumers,
49
+ versions,
50
+ latestVersion,
51
+ },
52
+ catalog: {
53
+ path: path.join(command.collection, command.id.replace('/index.mdx', '')),
54
+ filePath: path.join(process.cwd(), 'src', 'catalog-files', command.collection, command.id.replace('/index.mdx', '')),
55
+ publicPath: path.join('/generated', command.collection, command.id.replace('/index.mdx', '')),
56
+ type: 'command',
57
+ },
58
+ };
59
+ });
60
+ };
@@ -0,0 +1,2 @@
1
+ import * as config from '@config';
2
+ export default config.default;
@@ -0,0 +1,50 @@
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
+
6
+ export type Domain = CollectionEntry<'domains'>;
7
+
8
+ interface Props {
9
+ getAllVersions?: boolean;
10
+ }
11
+
12
+ export const getDomains = async ({ getAllVersions = true }: Props = {}): Promise<Domain[]> => {
13
+ // Get all the domains that are not versioned
14
+ const domains = await getCollection('domains', (domain) => {
15
+ return (getAllVersions || !domain.slug.includes('versioned')) && domain.data.hidden !== true;
16
+ });
17
+
18
+ // Get all the services that are not versioned
19
+ const servicesCollection = await getCollection('services');
20
+
21
+ // @ts-ignore // TODO: Fix this type
22
+ return domains.map((domain) => {
23
+ const { latestVersion, versions } = getVersionForCollectionItem(domain, domains);
24
+
25
+ // const receives = service.data.receives || [];
26
+ const servicesInDomain = domain.data.services || [];
27
+
28
+ const services = servicesInDomain
29
+ .map((_service) => {
30
+ return servicesCollection.find((service) => _service.id === service.data.id);
31
+ })
32
+ .filter((e) => e !== undefined);
33
+
34
+ return {
35
+ ...domain,
36
+ data: {
37
+ ...domain.data,
38
+ services,
39
+ latestVersion,
40
+ versions,
41
+ },
42
+ catalog: {
43
+ path: path.join(domain.collection, domain.id.replace('/index.mdx', '')),
44
+ filePath: path.join(process.cwd(), 'src', 'catalog-files', domain.collection, domain.id.replace('/index.mdx', '')),
45
+ publicPath: path.join('/generated', domain.collection, domain.id.replace('/index.mdx', '')),
46
+ type: 'service',
47
+ },
48
+ };
49
+ });
50
+ };