@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
@@ -1,514 +0,0 @@
1
- import path from 'path';
2
- import fs from 'fs';
3
- import {
4
- getAllEvents,
5
- getEventByName,
6
- getUniqueServicesNamesFromEvents,
7
- getAllEventsByOwnerId,
8
- getAllEventsThatHaveRelationshipWithService,
9
- } from '../events';
10
-
11
- let PROJECT_DIR: any;
12
-
13
- describe('events lib', () => {
14
- beforeAll(() => {
15
- PROJECT_DIR = process.env.PROJECT_DIR;
16
- process.env.PROJECT_DIR = path.join(__dirname, 'assets');
17
- });
18
-
19
- afterAll(() => {
20
- process.env.PROJECT_DIR = PROJECT_DIR;
21
- });
22
-
23
- describe('getEventByName', () => {
24
- describe('events without domains', () => {
25
- it('returns an event and markdown by the given event name', async () => {
26
- const { event, markdown } = await getEventByName({ eventName: 'AddedItemToCart' });
27
-
28
- expect(event).toEqual({
29
- name: 'AddedItemToCart',
30
- version: '0.0.1',
31
- summary: 'Holds information about the cusomer and product when they add an item to the cart.\n',
32
- producerNames: ['Shopping API', 'Application API'],
33
- consumerNames: ['Customer Portal'],
34
- owners: ['dboyne', 'mSmith'],
35
- domain: null,
36
- historicVersions: [],
37
- openAPISpec: null,
38
- badges: [
39
- {
40
- content: 'Deprecated',
41
- backgroundColor: 'red',
42
- textColor: 'red',
43
- },
44
- ],
45
- consumers: [
46
- {
47
- name: 'Customer Portal',
48
- },
49
- ],
50
- producers: [
51
- {
52
- name: 'Shopping API',
53
- },
54
- {
55
- name: 'Application API',
56
- },
57
- ],
58
- tags: [
59
- {
60
- label: 'Topic: add-item-to-cart',
61
- },
62
- {
63
- label: 'Broker: kafka',
64
- url: 'https://kafka.apache.org',
65
- },
66
- ],
67
- externalLinks: [],
68
- schema: null,
69
- examples: [],
70
- });
71
-
72
- // @ts-ignore
73
- expect(markdown.content).toMatchMarkdown('# Testing');
74
- });
75
-
76
- it('returns the schema and examples of the event as empty if no schema or examples are found', async () => {
77
- const { event } = await getEventByName({ eventName: 'AddedItemToCart' });
78
-
79
- expect(event.schema).toEqual(null);
80
- expect(event.examples).toEqual([]);
81
- });
82
-
83
- it('returns the schema if there is a `schema` file is found in directory of the event', async () => {
84
- const { event } = await getEventByName({ eventName: 'EventWithSchemaAndExamples' });
85
-
86
- const schema = `{
87
- "some-schema": true,
88
- "does-not-really-matter-what-content-is-in-this-file": true
89
- }`;
90
-
91
- // @ts-ignore
92
- expect(event.schema.snippet).toMatchMarkdown(schema);
93
- expect(event.schema.language).toEqual('json');
94
- });
95
-
96
- it('returns all event examples (files) when examples directory is found within the event folder', async () => {
97
- const { event } = await getEventByName({ eventName: 'EventWithSchemaAndExamples' });
98
-
99
- const example1 = event.examples[0];
100
- const example2 = event.examples[1];
101
-
102
- const example1File = fs.readFileSync(
103
- path.join(process.env.PROJECT_DIR, 'events', 'EventWithSchemaAndExamples', 'examples', 'Basic.cs'),
104
- { encoding: 'utf-8' }
105
- );
106
- const example2File = fs.readFileSync(
107
- path.join(process.env.PROJECT_DIR, 'events', 'EventWithSchemaAndExamples', 'examples', 'Basic.js'),
108
- { encoding: 'utf-8' }
109
- );
110
-
111
- expect(event.examples).toHaveLength(2);
112
-
113
- expect(example1.name).toEqual('Basic.cs');
114
- expect(example1.langugage).toEqual('csharp');
115
- expect(example1.snippet).toEqual(example1File);
116
-
117
- expect(example2.name).toEqual('Basic.js');
118
- expect(example2.langugage).toEqual('javascript');
119
- expect(example2.snippet).toEqual(example2File);
120
- });
121
-
122
- it('returns previous versions of events when the event has previous versions in the folder directory', async () => {
123
- const { event } = await getEventByName({ eventName: 'EventWithVersions' });
124
- expect(event.historicVersions).toEqual(['0.0.1']);
125
- });
126
-
127
- it('returns empty array of event historic events when the event does not have previous versions in the folder directory', async () => {
128
- const { event } = await getEventByName({ eventName: 'EventWithSchemaAndExamples' });
129
- expect(event.historicVersions).toEqual([]);
130
- });
131
- });
132
-
133
- describe('events within domains', () => {
134
- it('returns an event and markdown by the given event name', async () => {
135
- const { event, markdown } = await getEventByName({ eventName: 'UserCreated', domain: 'User' });
136
-
137
- expect(event).toEqual({
138
- name: 'UserCreated',
139
- version: '0.0.1',
140
- summary: 'Holds information about when the user has been created.\n',
141
- producerNames: ['Application API'],
142
- consumerNames: ['Customer Portal'],
143
- owners: ['dboyne', 'mSmith'],
144
- domain: 'User',
145
- historicVersions: [],
146
- openAPISpec: null,
147
- badges: [
148
- {
149
- content: 'New!',
150
- backgroundColor: 'blue',
151
- textColor: 'blue',
152
- },
153
- ],
154
- externalLinks: [],
155
- tags: [],
156
- consumers: [
157
- {
158
- name: 'Customer Portal',
159
- },
160
- ],
161
- producers: [
162
- {
163
- name: 'Application API',
164
- },
165
- ],
166
- schema: null,
167
- examples: [],
168
- });
169
-
170
- // @ts-ignore
171
- expect(markdown.content).toMatchMarkdown('# Testing');
172
- });
173
-
174
- it('returns the schema and examples of the event as empty if no schema or examples are found', async () => {
175
- const { event } = await getEventByName({ eventName: 'UserCreated', domain: 'User' });
176
-
177
- expect(event.schema).toEqual(null);
178
- expect(event.examples).toEqual([]);
179
- });
180
-
181
- it('returns the schema if there is a `schema` file is found in directory of the event', async () => {
182
- const { event } = await getEventByName({ eventName: 'UserRemoved', domain: 'User' });
183
-
184
- const schema = `{
185
- "some-schema": true,
186
- "does-not-really-matter-what-content-is-in-this-file": true
187
- }`;
188
-
189
- // @ts-ignore
190
- expect(event.schema.snippet).toMatchMarkdown(schema);
191
- expect(event.schema.language).toEqual('json');
192
- });
193
-
194
- it('returns all event examples (files) when examples directory is found within the event folder', async () => {
195
- const { event } = await getEventByName({ eventName: 'UserRemoved', domain: 'User' });
196
-
197
- const example1 = event.examples[0];
198
- const example2 = event.examples[1];
199
-
200
- const example1File = fs.readFileSync(
201
- path.join(process.env.PROJECT_DIR, 'domains', 'User', 'events', 'UserRemoved', 'examples', 'Basic.cs'),
202
- { encoding: 'utf-8' }
203
- );
204
- const example2File = fs.readFileSync(
205
- path.join(process.env.PROJECT_DIR, 'domains', 'User', 'events', 'UserRemoved', 'examples', 'Basic.js'),
206
- { encoding: 'utf-8' }
207
- );
208
-
209
- expect(event.examples).toHaveLength(2);
210
-
211
- expect(example1.name).toEqual('Basic.cs');
212
- expect(example1.langugage).toEqual('csharp');
213
- expect(example1.snippet).toEqual(example1File);
214
-
215
- expect(example2.name).toEqual('Basic.js');
216
- expect(example2.langugage).toEqual('javascript');
217
- expect(example2.snippet).toEqual(example2File);
218
- });
219
- });
220
- });
221
-
222
- describe('getAllEvents', () => {
223
- it('gets all the events in the /events directory and also all events within domain directorys', async () => {
224
- const events = await getAllEvents();
225
-
226
- expect(events).toEqual([
227
- {
228
- name: 'AddedItemToCart',
229
- version: '0.0.1',
230
- summary: 'Holds information about the cusomer and product when they add an item to the cart.\n',
231
- domain: null,
232
- producerNames: ['Shopping API', 'Application API'],
233
- consumerNames: ['Customer Portal'],
234
- owners: ['dboyne', 'mSmith'],
235
- externalLinks: [],
236
- tags: [
237
- {
238
- label: 'Topic: add-item-to-cart',
239
- },
240
- {
241
- label: 'Broker: kafka',
242
- url: 'https://kafka.apache.org',
243
- },
244
- ],
245
- historicVersions: [],
246
- badges: [
247
- {
248
- content: 'Deprecated',
249
- backgroundColor: 'red',
250
- textColor: 'red',
251
- },
252
- ],
253
- },
254
- {
255
- name: 'EmailSent',
256
- version: '0.0.1',
257
- summary: 'Tells us when an email has been sent\n',
258
- domain: null,
259
- producerNames: ['Email Platform'],
260
- consumerNames: [],
261
- owners: ['dboyne', 'mSmith'],
262
- externalLinks: [],
263
- tags: [],
264
- historicVersions: [],
265
- badges: [],
266
- },
267
- {
268
- name: 'EventWithSchemaAndExamples',
269
- version: '0.0.1',
270
- summary: 'Example event with schema and examples\n',
271
- domain: null,
272
- producerNames: [],
273
- consumerNames: [],
274
- owners: [],
275
- externalLinks: [],
276
- tags: [],
277
- historicVersions: [],
278
- badges: [],
279
- },
280
- {
281
- name: 'EventWithVersions',
282
- version: '0.0.5',
283
- summary: 'Tells us when an email has been sent\n',
284
- domain: null,
285
- producerNames: [],
286
- consumerNames: [],
287
- owners: [],
288
- externalLinks: [],
289
- tags: [],
290
- historicVersions: ['0.0.1'],
291
- badges: [],
292
- },
293
- {
294
- name: 'UserCreated',
295
- version: '0.0.1',
296
- summary: 'Holds information about when the user has been created.\n',
297
- domain: 'User',
298
- producerNames: ['Application API'],
299
- consumerNames: ['Customer Portal'],
300
- owners: ['dboyne', 'mSmith'],
301
- externalLinks: [],
302
- tags: [],
303
- historicVersions: [],
304
- badges: [
305
- {
306
- content: 'New!',
307
- backgroundColor: 'blue',
308
- textColor: 'blue',
309
- },
310
- ],
311
- },
312
- {
313
- name: 'UserRemoved',
314
- version: '0.0.1',
315
- summary: 'Holds information about when the user has been removed.\n',
316
- domain: 'User',
317
- producerNames: ['Application API'],
318
- consumerNames: ['Customer Portal'],
319
- owners: ['dboyne', 'mSmith'],
320
- externalLinks: [],
321
- tags: [],
322
- historicVersions: [],
323
- badges: [],
324
- },
325
- ]);
326
- });
327
- });
328
-
329
- describe('getUniqueServicesNamesFromEvents', () => {
330
- it('returns an empty array when no services can be found in the array of events', () => {
331
- const events = [
332
- { name: 'Testing', version: '1.0.0' },
333
- { name: 'Testing', version: '2.0.0' },
334
- ];
335
-
336
- const result = getUniqueServicesNamesFromEvents(events);
337
-
338
- expect(result).toEqual([]);
339
- });
340
-
341
- it('takes an array of events and only returns unique service names', () => {
342
- const events = [
343
- {
344
- name: 'Testing',
345
- version: '1.0.0',
346
- consumerNames: ['Service 1', 'Service 2'],
347
- historicVersions: [],
348
- producerNames: ['Service 3'],
349
- },
350
- {
351
- name: 'Testing',
352
- version: '2.0.0',
353
- consumerNames: ['Service 2', 'Service 3'],
354
- historicVersions: [],
355
- producerNames: ['Service 4'],
356
- },
357
- { name: 'Testing', version: '3.0.0', consumerNames: ['Service 3', 'Service 4'] },
358
- ];
359
-
360
- const result = getUniqueServicesNamesFromEvents(events);
361
-
362
- expect(result).toEqual(['Service 1', 'Service 2', 'Service 3', 'Service 4']);
363
- });
364
- });
365
-
366
- describe('getAllEventsByOwnerId', () => {
367
- it('returns empty array when no owner is found', async () => {
368
- const events = await getAllEventsByOwnerId('made-up-user');
369
- expect(events).toEqual([]);
370
- });
371
-
372
- it('returns all the events for a given owner id', async () => {
373
- const events = await getAllEventsByOwnerId('dboyne');
374
-
375
- expect(events).toEqual([
376
- {
377
- name: 'AddedItemToCart',
378
- version: '0.0.1',
379
- summary: 'Holds information about the cusomer and product when they add an item to the cart.\n',
380
- domain: null,
381
- producerNames: ['Shopping API', 'Application API'],
382
- consumerNames: ['Customer Portal'],
383
- owners: ['dboyne', 'mSmith'],
384
- externalLinks: [],
385
- tags: [
386
- {
387
- label: 'Topic: add-item-to-cart',
388
- },
389
- {
390
- label: 'Broker: kafka',
391
- url: 'https://kafka.apache.org',
392
- },
393
- ],
394
- historicVersions: [],
395
- badges: [
396
- {
397
- content: 'Deprecated',
398
- backgroundColor: 'red',
399
- textColor: 'red',
400
- },
401
- ],
402
- },
403
- {
404
- name: 'EmailSent',
405
- version: '0.0.1',
406
- summary: 'Tells us when an email has been sent\n',
407
- domain: null,
408
- producerNames: ['Email Platform'],
409
- consumerNames: [],
410
- owners: ['dboyne', 'mSmith'],
411
- externalLinks: [],
412
- tags: [],
413
- historicVersions: [],
414
- badges: [],
415
- },
416
- {
417
- name: 'UserCreated',
418
- version: '0.0.1',
419
- summary: 'Holds information about when the user has been created.\n',
420
- domain: 'User',
421
- producerNames: ['Application API'],
422
- consumerNames: ['Customer Portal'],
423
- owners: ['dboyne', 'mSmith'],
424
- externalLinks: [],
425
- tags: [],
426
- historicVersions: [],
427
- badges: [
428
- {
429
- content: 'New!',
430
- backgroundColor: 'blue',
431
- textColor: 'blue',
432
- },
433
- ],
434
- },
435
- {
436
- name: 'UserRemoved',
437
- version: '0.0.1',
438
- summary: 'Holds information about when the user has been removed.\n',
439
- domain: 'User',
440
- producerNames: ['Application API'],
441
- consumerNames: ['Customer Portal'],
442
- owners: ['dboyne', 'mSmith'],
443
- externalLinks: [],
444
- tags: [],
445
- historicVersions: [],
446
- badges: [],
447
- },
448
- ]);
449
- });
450
- });
451
-
452
- describe('getAllEventsThatHaveRelationshipWithService', () => {
453
- it('returns the relationships between events for a given service', () => {
454
- const events = [
455
- {
456
- name: 'AddedItemToCart',
457
- version: '0.0.1',
458
- summary: 'Holds information about the cusomer and product when they add an item to the cart.\n',
459
- producerNames: ['Shopping API', 'My Service'],
460
- consumerNames: ['Customer Portal'],
461
- historicVersions: [],
462
- owners: ['dboyne', 'mSmith'],
463
- },
464
- ];
465
-
466
- const service = {
467
- id: 'My Service',
468
- name: 'My Service',
469
- summary: 'Test Service',
470
- };
471
-
472
- const result = getAllEventsThatHaveRelationshipWithService(service, events);
473
-
474
- expect(result).toEqual({
475
- publishes: [
476
- {
477
- name: 'AddedItemToCart',
478
- version: '0.0.1',
479
- summary: 'Holds information about the cusomer and product when they add an item to the cart.\n',
480
- producerNames: ['Shopping API', 'My Service'],
481
- consumerNames: ['Customer Portal'],
482
- historicVersions: [],
483
- owners: ['dboyne', 'mSmith'],
484
- },
485
- ],
486
- subscribes: [],
487
- });
488
- });
489
-
490
- it('if no relationships for given service and events can be found then empty arrays are returned', () => {
491
- const events = [
492
- {
493
- name: 'AddedItemToCart',
494
- version: '0.0.1',
495
- summary: 'Holds information about the cusomer and product when they add an item to the cart.\n',
496
- producerNames: ['Shopping API', 'Service'],
497
- consumerNames: ['Customer Portal'],
498
- historicVersions: [],
499
- owners: ['dboyne', 'mSmith'],
500
- },
501
- ];
502
-
503
- const service = {
504
- id: 'My Other Service That Has No Consumers or Anything',
505
- name: 'My Other Service That Has No Consumers or Anything',
506
- summary: 'Test Service',
507
- };
508
-
509
- const result = getAllEventsThatHaveRelationshipWithService(service, events);
510
-
511
- expect(result).toEqual({ publishes: [], subscribes: [] });
512
- });
513
- });
514
- });
@@ -1,69 +0,0 @@
1
- import path from 'path';
2
- import fs from 'fs';
3
- import { getSchemaFromDir, getLastModifiedDateOfFile, getOpenAPISpecFromDir } from '../file-reader';
4
-
5
- let PROJECT_DIR: any;
6
-
7
- describe('file-reader lib', () => {
8
- beforeAll(() => {
9
- PROJECT_DIR = process.env.PROJECT_DIR;
10
- process.env.PROJECT_DIR = path.join(__dirname, 'assets');
11
- });
12
-
13
- afterAll(() => {
14
- process.env.PROJECT_DIR = PROJECT_DIR;
15
- });
16
-
17
- describe('getSchemaFromDir', () => {
18
- it('returns the schema file found in the given directory path', () => {
19
- const rawSchemaFile = fs.readFileSync(
20
- path.join(process.env.PROJECT_DIR, 'events', 'EventWithSchemaAndExamples', 'schema.json'),
21
- { encoding: 'utf-8' }
22
- );
23
-
24
- const result = getSchemaFromDir(path.join(process.env.PROJECT_DIR, 'events', 'EventWithSchemaAndExamples'));
25
-
26
- expect(result.snippet).toEqual(rawSchemaFile);
27
- expect(result.language).toEqual('json');
28
- });
29
-
30
- it('returns null when no schema file can be found in the given directory path', () => {
31
- const result = getSchemaFromDir(path.join(process.env.PROJECT_DIR, 'events', 'EmailSent'));
32
-
33
- expect(result).toEqual(null);
34
- });
35
- });
36
-
37
- describe('getOpenAPISpecFromDir', () => {
38
- it('returns the OPEN API file found in the given directory path', () => {
39
- const rawFile = fs.readFileSync(path.join(process.env.PROJECT_DIR, 'services', 'Payment Service', 'openapi.yaml'), {
40
- encoding: 'utf-8',
41
- });
42
-
43
- const result = getOpenAPISpecFromDir(path.join(process.env.PROJECT_DIR, 'services', 'Payment Service'));
44
-
45
- expect(result).toEqual(rawFile);
46
- });
47
-
48
- it('returns null when no schema file can be found in the given directory path', () => {
49
- const result = getSchemaFromDir(path.join(process.env.PROJECT_DIR, 'services', 'Email Service'));
50
-
51
- expect(result).toEqual(null);
52
- });
53
- });
54
-
55
- describe('getLastModifiedDateOfFile', () => {
56
- it('returns the date the given file was last modified', () => {
57
- const result = getLastModifiedDateOfFile(
58
- path.join(process.env.PROJECT_DIR, 'events', 'EventWithSchemaAndExamples', 'schema.json')
59
- );
60
-
61
- const stats = fs.statSync(path.join(process.env.PROJECT_DIR, 'events', 'EventWithSchemaAndExamples', 'schema.json'));
62
-
63
- const fileData = new Date(stats.mtime);
64
- const expectedResult = `${fileData.getFullYear()}/${fileData.getMonth() + 1}/${fileData.getDate()}`;
65
-
66
- expect(result).toEqual(expectedResult);
67
- });
68
- });
69
- });
@@ -1,88 +0,0 @@
1
- import { buildMermaidFlowChartForEvent, buildMermaidFlowChartForService } from '../graphs';
2
-
3
- jest.mock('next/config', () => () => ({
4
- publicRuntimeConfig: {
5
- basePath: '/docs',
6
- },
7
- }));
8
-
9
- describe('graphs', () => {
10
- describe('buildMermaidFlowChartForService', () => {
11
- it('takes a given Service and returns the mermaid code showing relationships between the events it publishes and consumes', () => {
12
- const event = { name: 'My Event', version: '0.0.1' };
13
- const event2 = { name: 'My Event 2', version: '0.0.1' };
14
-
15
- const service = {
16
- id: 'My Service',
17
- name: 'My Service',
18
- version: '0.0.1',
19
- summary: 'Summary',
20
- publishes: [event],
21
- subscribes: [event2],
22
- };
23
-
24
- const result = buildMermaidFlowChartForService(service);
25
-
26
- expect(result.trim()).toEqual(`flowchart LR
27
-
28
- l-My_Event_2[My Event 2]:::producer-->My_Service[My Service]:::event
29
-
30
- classDef event stroke:#2563eb,stroke-width: 4px;
31
-
32
- classDef producer stroke:#75d7b6,stroke-width: 2px;
33
-
34
- classDef consumer stroke:#818cf8,stroke-width: 2px;
35
-
36
- My_Service[My Service]:::event-->r-My_Event[My Event]:::consumer
37
-
38
- click l-My_Event_2 href "/docs/events/My Event 2" "Go to My Event 2" _self
39
-
40
- click r-My_Event href "/docs/events/My Event" "Go to My Event" _self
41
-
42
- click My_Service href "/docs/services/My Service" "Go to My Service" _self`);
43
- });
44
- });
45
-
46
- describe('buildMermaidFlowChartForEvent', () => {
47
- it('takes and Event and returns the mermaid code showing relationships between the event and its consumers and producers', () => {
48
- const event = {
49
- name: 'My Event',
50
- version: '0.0.1',
51
- producerNames: ['Service 1'],
52
- consumerNames: ['Service 2'],
53
- };
54
-
55
- const result = buildMermaidFlowChartForEvent(event);
56
-
57
- expect(result.trim()).toEqual(`flowchart LR
58
-
59
- l-Service_1[Service 1]:::producer-->My_Event[My Event]:::event
60
-
61
- classDef event stroke:#2563eb,stroke-width: 4px;
62
-
63
- classDef producer stroke:#75d7b6,stroke-width: 2px;
64
-
65
- classDef consumer stroke:#818cf8,stroke-width: 2px;
66
-
67
- My_Event[My Event]:::event-->r-Service_2[Service 2]:::consumer
68
-
69
- click l-Service_1 href "/docs/services/Service 1" "Go to Service 1" _self
70
-
71
- click r-Service_2 href "/docs/services/Service 2" "Go to Service 2" _self
72
-
73
- click My_Event href "/docs/events/My Event" "Go to My Event" _self`);
74
- });
75
-
76
- it('persists the spaces in the service name and renders them with mermaid', () => {
77
- const event = {
78
- name: 'My Event',
79
- version: '0.0.1',
80
- producerNames: ['Service 1 With Spaces'],
81
- consumerNames: [],
82
- };
83
- const result = buildMermaidFlowChartForEvent(event);
84
- expect(result).toContain(`Service_1_With_Spaces[Service 1 With Spaces]:::producer-->My_Event[My Event]:::event`);
85
- expect(result).not.toContain(`Service 1 With Spaces[`);
86
- });
87
- });
88
- });