@eventcatalog/core 0.0.11 → 0.1.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 (247) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +32 -31
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/eslint/.cache_1bay4w0 +1 -1
  6. package/.next/cache/next-server.js.nft.json +1 -1
  7. package/.next/cache/webpack/client-production/0.pack +0 -0
  8. package/.next/cache/webpack/client-production/index.pack +0 -0
  9. package/.next/cache/webpack/server-production/0.pack +0 -0
  10. package/.next/cache/webpack/server-production/index.pack +0 -0
  11. package/.next/export-detail.json +1 -0
  12. package/.next/next-server.js.nft.json +1 -1
  13. package/.next/prerender-manifest.json +1 -1
  14. package/.next/routes-manifest.json +1 -1
  15. package/.next/server/chunks/526.js +5 -5
  16. package/.next/server/chunks/565.js +17 -5
  17. package/.next/server/chunks/{959.js → 681.js} +126 -4
  18. package/.next/server/chunks/730.js +6 -7
  19. package/.next/server/chunks/938.js +18 -4
  20. package/.next/server/chunks/944.js +17 -25
  21. package/.next/server/pages/404.html +1 -1
  22. package/.next/server/pages/500.html +1 -1
  23. package/.next/server/pages/_app.js +4 -0
  24. package/.next/server/pages/events/AddedItemToCart/logs.html +1 -0
  25. package/.next/server/pages/events/AddedItemToCart/logs.json +1 -0
  26. package/.next/server/pages/events/AddedItemToCart/v/0.0.1.html +48 -0
  27. package/.next/server/pages/events/AddedItemToCart/v/0.0.1.json +1 -0
  28. package/.next/server/pages/events/AddedItemToCart/v/0.0.2.html +55 -0
  29. package/.next/server/pages/events/AddedItemToCart/v/0.0.2.json +1 -0
  30. package/.next/server/pages/events/AddedItemToCart.html +5 -5
  31. package/.next/server/pages/events/AddedItemToCart.json +1 -1
  32. package/.next/server/pages/events/OrderComplete/logs.html +1 -0
  33. package/.next/server/pages/events/OrderComplete/logs.json +1 -0
  34. package/.next/server/pages/events/OrderComplete.html +3 -3
  35. package/.next/server/pages/events/OrderComplete.json +1 -1
  36. package/.next/server/pages/events/OrderConfirmed/logs.html +1 -0
  37. package/.next/server/pages/events/OrderConfirmed/logs.json +1 -0
  38. package/.next/server/pages/events/OrderConfirmed.html +3 -3
  39. package/.next/server/pages/events/OrderConfirmed.json +1 -1
  40. package/.next/server/pages/events/OrderRequested/logs.html +1 -0
  41. package/.next/server/pages/events/OrderRequested/logs.json +1 -0
  42. package/.next/server/pages/events/OrderRequested.html +3 -3
  43. package/.next/server/pages/events/OrderRequested.json +1 -1
  44. package/.next/server/pages/events/PaymentProcessed/logs.html +1 -0
  45. package/.next/server/pages/events/PaymentProcessed/logs.json +1 -0
  46. package/.next/server/pages/events/PaymentProcessed.html +3 -3
  47. package/.next/server/pages/events/PaymentProcessed.json +1 -1
  48. package/.next/server/pages/events/RemovedItemFromCart/logs.html +1 -0
  49. package/.next/server/pages/events/RemovedItemFromCart/logs.json +1 -0
  50. package/.next/server/pages/events/RemovedItemFromCart.html +3 -3
  51. package/.next/server/pages/events/RemovedItemFromCart.json +1 -1
  52. package/.next/server/pages/events/ShipmentDelivered/logs.html +1 -0
  53. package/.next/server/pages/events/ShipmentDelivered/logs.json +1 -0
  54. package/.next/server/pages/events/ShipmentDelivered.html +3 -3
  55. package/.next/server/pages/events/ShipmentDelivered.json +1 -1
  56. package/.next/server/pages/events/ShipmentDispatched/logs.html +1 -0
  57. package/.next/server/pages/events/ShipmentDispatched/logs.json +1 -0
  58. package/.next/server/pages/events/ShipmentDispatched.html +3 -3
  59. package/.next/server/pages/events/ShipmentDispatched.json +1 -1
  60. package/.next/server/pages/events/ShipmentPrepared/logs.html +1 -0
  61. package/.next/server/pages/events/ShipmentPrepared/logs.json +1 -0
  62. package/.next/server/pages/events/ShipmentPrepared.html +3 -3
  63. package/.next/server/pages/events/ShipmentPrepared.json +1 -1
  64. package/.next/server/pages/events/[name]/logs.js +18 -4
  65. package/.next/server/pages/events/[name]/logs.js.nft.json +1 -1
  66. package/.next/server/pages/events/[name]/v/[version].js +19 -10
  67. package/.next/server/pages/events/[name]/v/[version].js.nft.json +1 -1
  68. package/.next/server/pages/events/[name].js +1 -8
  69. package/.next/server/pages/events/[name].js.nft.json +1 -1
  70. package/.next/server/pages/events.html +10 -0
  71. package/.next/server/pages/events.js +22 -40
  72. package/.next/server/pages/events.js.nft.json +1 -1
  73. package/.next/server/pages/events.json +1 -0
  74. package/.next/server/pages/index.html +1 -1
  75. package/.next/server/pages/overview.html +1 -0
  76. package/.next/server/pages/overview.js +12 -9
  77. package/.next/server/pages/overview.js.nft.json +1 -1
  78. package/.next/server/pages/overview.json +1 -0
  79. package/.next/server/pages/services/Basket Service.html +2 -2
  80. package/.next/server/pages/services/Basket Service.json +1 -1
  81. package/.next/server/pages/services/Data Lake.html +2 -2
  82. package/.next/server/pages/services/Data Lake.json +1 -1
  83. package/.next/server/pages/services/Payment Service.html +2 -2
  84. package/.next/server/pages/services/Payment Service.json +1 -1
  85. package/.next/server/pages/services/Shipping Service.html +2 -2
  86. package/.next/server/pages/services/Shipping Service.json +1 -1
  87. package/.next/server/pages/services/[name].js +11 -9
  88. package/.next/server/pages/services/[name].js.nft.json +1 -1
  89. package/.next/server/pages/services.html +5 -0
  90. package/.next/server/pages/services.js +68 -62
  91. package/.next/server/pages/services.js.nft.json +1 -1
  92. package/.next/server/pages/services.json +1 -0
  93. package/.next/server/pages/users/[id].js +20 -6
  94. package/.next/server/pages/users/[id].js.nft.json +1 -1
  95. package/.next/server/pages/users/dboyne.html +14 -0
  96. package/.next/server/pages/users/dboyne.json +1 -0
  97. package/.next/server/pages/users/mSmith.html +10 -0
  98. package/.next/server/pages/users/mSmith.json +1 -0
  99. package/.next/server/pages-manifest.json +0 -1
  100. package/.next/static/chunks/28-812913d1c0167bab.js +1 -0
  101. package/.next/static/chunks/{336-27e73f1c995ab4e7.js → 336-8b7da71a40e0c439.js} +1 -1
  102. package/.next/static/chunks/873-abd31f5f2b49c404.js +1 -0
  103. package/.next/static/chunks/pages/{_app-c9d3172cc09cf069.js → _app-1adc361d4508683f.js} +1 -1
  104. package/.next/static/chunks/pages/events/[name]/{logs-d159d7b82f44847f.js → logs-707da36de8222a98.js} +1 -1
  105. package/.next/static/chunks/pages/events/[name]/v/{[version]-963d3e8377b51e86.js → [version]-5652060e116d4a61.js} +1 -1
  106. package/.next/static/chunks/pages/events/{[name]-578828157369b5cd.js → [name]-146170e56a404524.js} +1 -1
  107. package/.next/static/chunks/pages/events-2360d47e48a52346.js +1 -0
  108. package/.next/static/chunks/pages/{overview-5ac749891cbe1922.js → overview-6bd5a86d5a28a942.js} +1 -1
  109. package/.next/static/chunks/pages/services/[name]-78378d531eb27bc2.js +1 -0
  110. package/.next/static/chunks/pages/services-1293e4d7df6174bf.js +1 -0
  111. package/.next/static/chunks/pages/users/[id]-5374b99d99fe576e.js +1 -0
  112. package/.next/static/chunks/{webpack-afe52d4a9fcc5a75.js → webpack-895c2707d065aab1.js} +1 -1
  113. package/.next/static/css/fd7bcdba1dee3675.css +3 -0
  114. package/.next/static/gzVt13hbN-uCAuaqwukt2/_buildManifest.js +1 -0
  115. package/.next/static/{_vd7D7jNxx4JR685n7v1G → gzVt13hbN-uCAuaqwukt2}/_middlewareManifest.js +0 -0
  116. package/.next/static/gzVt13hbN-uCAuaqwukt2/_ssgManifest.js +1 -0
  117. package/.next/trace +37 -37
  118. package/CHANGELOG.md +24 -0
  119. package/bin/eventcatalog.js +12 -0
  120. package/components/Grids/EventGrid.tsx +2 -2
  121. package/components/Grids/ServiceGrid.tsx +8 -1
  122. package/components/Mermaid/index.tsx +17 -4
  123. package/components/NotFound/index.tsx +4 -3
  124. package/components/Sidebars/EventSidebar.tsx +19 -21
  125. package/components/Sidebars/ServiceSidebar.tsx +3 -3
  126. package/components/SyntaxHighlighter.tsx +1 -1
  127. package/lib/events.ts +24 -0
  128. package/lib/graphs.ts +7 -3
  129. package/out/404.html +1 -0
  130. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/AddedItemToCart/logs.json +1 -0
  131. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/AddedItemToCart/v/0.0.1.json +1 -0
  132. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/AddedItemToCart/v/0.0.2.json +1 -0
  133. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/AddedItemToCart.json +1 -0
  134. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/OrderComplete/logs.json +1 -0
  135. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/OrderComplete.json +1 -0
  136. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/OrderConfirmed/logs.json +1 -0
  137. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/OrderConfirmed.json +1 -0
  138. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/OrderRequested/logs.json +1 -0
  139. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/OrderRequested.json +1 -0
  140. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/PaymentProcessed/logs.json +1 -0
  141. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/PaymentProcessed.json +1 -0
  142. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/RemovedItemFromCart/logs.json +1 -0
  143. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/RemovedItemFromCart.json +1 -0
  144. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/ShipmentDelivered/logs.json +1 -0
  145. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/ShipmentDelivered.json +1 -0
  146. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/ShipmentDispatched/logs.json +1 -0
  147. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/ShipmentDispatched.json +1 -0
  148. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/ShipmentPrepared/logs.json +1 -0
  149. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events/ShipmentPrepared.json +1 -0
  150. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/events.json +1 -0
  151. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/overview.json +1 -0
  152. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/services/Basket Service.json +1 -0
  153. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/services/Data Lake.json +1 -0
  154. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/services/Payment Service.json +1 -0
  155. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/services/Shipping Service.json +1 -0
  156. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/services.json +1 -0
  157. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/users/dboyne.json +1 -0
  158. package/out/_next/data/gzVt13hbN-uCAuaqwukt2/users/mSmith.json +1 -0
  159. package/out/_next/static/chunks/020d8314.aea2d24215754e7b.js +1 -0
  160. package/out/_next/static/chunks/176cb4e4-8a0f6f010ef8accb.js +1 -0
  161. package/out/_next/static/chunks/274-11c4d093341d7201.js +1 -0
  162. package/out/_next/static/chunks/28-812913d1c0167bab.js +1 -0
  163. package/out/_next/static/chunks/336-8b7da71a40e0c439.js +1 -0
  164. package/out/_next/static/chunks/364-3cb3c8cf1d3c95de.js +1 -0
  165. package/out/_next/static/chunks/519-7f22292093abd7c3.js +1 -0
  166. package/out/_next/static/chunks/638.d570519ae49c92c8.js +1 -0
  167. package/out/_next/static/chunks/873-abd31f5f2b49c404.js +1 -0
  168. package/out/_next/static/chunks/962-d5070461f6d4a478.js +1 -0
  169. package/out/_next/static/chunks/framework-576ec6a1c1386453.js +1 -0
  170. package/out/_next/static/chunks/main-0289ecbd51cd4cb4.js +1 -0
  171. package/out/_next/static/chunks/pages/_app-1adc361d4508683f.js +1 -0
  172. package/out/_next/static/chunks/pages/_error-5a714c45c50a8db4.js +1 -0
  173. package/out/_next/static/chunks/pages/events/[name]/logs-707da36de8222a98.js +1 -0
  174. package/out/_next/static/chunks/pages/events/[name]/v/[version]-5652060e116d4a61.js +1 -0
  175. package/out/_next/static/chunks/pages/events/[name]-146170e56a404524.js +1 -0
  176. package/out/_next/static/chunks/pages/events-2360d47e48a52346.js +1 -0
  177. package/out/_next/static/chunks/pages/index-3eeab7e4014a02ea.js +1 -0
  178. package/out/_next/static/chunks/pages/overview-6bd5a86d5a28a942.js +1 -0
  179. package/out/_next/static/chunks/pages/services/[name]-78378d531eb27bc2.js +1 -0
  180. package/out/_next/static/chunks/pages/services-1293e4d7df6174bf.js +1 -0
  181. package/out/_next/static/chunks/pages/users/[id]-5374b99d99fe576e.js +1 -0
  182. package/out/_next/static/chunks/polyfills-5cd94c89d3acac5f.js +1 -0
  183. package/out/_next/static/chunks/webpack-895c2707d065aab1.js +1 -0
  184. package/out/_next/static/css/5eeed9cb243ce668.css +1 -0
  185. package/out/_next/static/css/fd7bcdba1dee3675.css +3 -0
  186. package/out/_next/static/gzVt13hbN-uCAuaqwukt2/_buildManifest.js +1 -0
  187. package/out/_next/static/gzVt13hbN-uCAuaqwukt2/_middlewareManifest.js +1 -0
  188. package/out/_next/static/gzVt13hbN-uCAuaqwukt2/_ssgManifest.js +1 -0
  189. package/out/events/AddedItemToCart/logs.html +1 -0
  190. package/out/events/AddedItemToCart/v/0.0.1.html +48 -0
  191. package/out/events/AddedItemToCart/v/0.0.2.html +55 -0
  192. package/out/events/AddedItemToCart.html +73 -0
  193. package/out/events/OrderComplete/logs.html +1 -0
  194. package/out/events/OrderComplete.html +48 -0
  195. package/out/events/OrderConfirmed/logs.html +1 -0
  196. package/out/events/OrderConfirmed.html +48 -0
  197. package/out/events/OrderRequested/logs.html +1 -0
  198. package/out/events/OrderRequested.html +48 -0
  199. package/out/events/PaymentProcessed/logs.html +1 -0
  200. package/out/events/PaymentProcessed.html +52 -0
  201. package/out/events/RemovedItemFromCart/logs.html +1 -0
  202. package/out/events/RemovedItemFromCart.html +55 -0
  203. package/out/events/ShipmentDelivered/logs.html +1 -0
  204. package/out/events/ShipmentDelivered.html +53 -0
  205. package/out/events/ShipmentDispatched/logs.html +1 -0
  206. package/out/events/ShipmentDispatched.html +52 -0
  207. package/out/events/ShipmentPrepared/logs.html +1 -0
  208. package/out/events/ShipmentPrepared.html +52 -0
  209. package/out/events.html +10 -0
  210. package/out/favicon.ico +0 -0
  211. package/out/index.html +1 -0
  212. package/out/logo-random.svg +114 -0
  213. package/out/logo.svg +44 -0
  214. package/out/opengraph.png +0 -0
  215. package/out/overview.html +1 -0
  216. package/out/services/Basket Service.html +11 -0
  217. package/out/services/Data Lake.html +12 -0
  218. package/out/services/Payment Service.html +10 -0
  219. package/out/services/Shipping Service.html +14 -0
  220. package/out/services.html +5 -0
  221. package/out/users/dboyne.html +14 -0
  222. package/out/users/mSmith.html +10 -0
  223. package/package.json +3 -3
  224. package/pages/_app.tsx +2 -0
  225. package/pages/events/[name]/logs.tsx +12 -3
  226. package/pages/events/[name]/v/[version].tsx +14 -2
  227. package/pages/events/[name].tsx +4 -4
  228. package/pages/events.tsx +3 -16
  229. package/pages/overview.tsx +8 -5
  230. package/pages/services/[name].tsx +6 -4
  231. package/pages/services.tsx +28 -15
  232. package/pages/users/[id].tsx +14 -3
  233. package/scripts/move-schemas-for-download.js +59 -0
  234. package/.next/server/chunks/596.js +0 -98
  235. package/.next/server/pages/api/event/[name]/download.js +0 -64
  236. package/.next/server/pages/api/event/[name]/download.js.nft.json +0 -1
  237. package/.next/server/webpack-api-runtime.js +0 -160
  238. package/.next/static/_vd7D7jNxx4JR685n7v1G/_buildManifest.js +0 -1
  239. package/.next/static/_vd7D7jNxx4JR685n7v1G/_ssgManifest.js +0 -1
  240. package/.next/static/chunks/873-cd4309ed788ee564.js +0 -1
  241. package/.next/static/chunks/954-4d4a09c3269dda3f.js +0 -1
  242. package/.next/static/chunks/pages/events-bcad8442f21d6b67.js +0 -1
  243. package/.next/static/chunks/pages/services/[name]-8e53e76ab1c52c30.js +0 -1
  244. package/.next/static/chunks/pages/services-bcc61898062e1bf4.js +0 -1
  245. package/.next/static/chunks/pages/users/[id]-2da54ccb6319b207.js +0 -1
  246. package/.next/static/css/b44e1178a88a93b4.css +0 -3
  247. package/pages/api/event/[name]/download.js +0 -28
@@ -12,15 +12,18 @@ function NodeElement({ node: { id } }: { node: { id: string } }) {
12
12
  return <div className={`text-sm text-center p-1 rounded-md `}>{id}</div>;
13
13
  }
14
14
 
15
+ const MAX_LENGTH_FOR_NODES = 30;
16
+ const truncateNode = (value) => (value.length > MAX_LENGTH_FOR_NODES ? `${value.substring(0, MAX_LENGTH_FOR_NODES)}...` : value);
17
+
15
18
  const graph = ({ events, services }) => {
16
- const eventNodes = events.map(({ name: event }) => ({ id: event, group: 1, type: 'event' }));
17
- const serviceNodes = services.map((service) => ({ id: service, group: 2, type: 'service' }));
19
+ const eventNodes = events.map(({ name: event }) => ({ id: truncateNode(event), group: 1, type: 'event' }));
20
+ const serviceNodes = services.map((service) => ({ id: truncateNode(service), group: 2, type: 'service' }));
18
21
 
19
22
  // Create all links
20
23
  const links = events.reduce((nodes, event) => {
21
24
  const { consumers = [], producers = [], name } = event;
22
- const consumerNodes = consumers.map((consumer) => ({ source: name, target: consumer }));
23
- const producerNodes = producers.map((producer) => ({ source: producer, target: name }));
25
+ const consumerNodes = consumers.map((consumer) => ({ source: truncateNode(name), target: truncateNode(consumer) }));
26
+ const producerNodes = producers.map((producer) => ({ source: truncateNode(producer), target: truncateNode(name) }));
24
27
  return nodes.concat(consumerNodes).concat(producerNodes);
25
28
  }, []);
26
29
 
@@ -63,7 +66,7 @@ const graph = ({ events, services }) => {
63
66
 
64
67
  export default graph;
65
68
 
66
- export const getServerSideProps = () => {
69
+ export const getStaticProps = () => {
67
70
  const events = getAllEvents();
68
71
  const services = getUniqueServicesNamesFromEvents(events);
69
72
 
@@ -20,18 +20,20 @@ interface ServicesPageProps {
20
20
  notFound?: boolean;
21
21
  }
22
22
 
23
- function MermaidComponent({ title, service }: { title: string; service: Service }) {
23
+ function MermaidComponent({ title, service, charts }: { title: string; service: Service; charts?: string[] }) {
24
24
  return (
25
25
  <div className="mx-auto w-full py-10">
26
26
  {title && <h2 className="text-lg font-medium text-gray-900 underline">{title}</h2>}
27
- <Mermaid source="service" data={service} rootNodeColor={getBackgroundColor(service.name)} />
27
+ <Mermaid source="service" data={service} rootNodeColor={getBackgroundColor(service.name)} charts={charts} />
28
28
  </div>
29
29
  );
30
30
  }
31
31
 
32
32
  const getComponents = (service) => ({
33
33
  Admonition,
34
- Mermaid: ({ title }: { title: string }) => <MermaidComponent service={service} title={title} />,
34
+ Mermaid: ({ title, charts }: { title: string; charts?: string[] }) => (
35
+ <MermaidComponent service={service} title={title} charts={charts} />
36
+ ),
35
37
  });
36
38
 
37
39
  export default function Services(props: ServicesPageProps) {
@@ -99,6 +101,6 @@ export async function getStaticPaths() {
99
101
  const paths = services.map((service) => ({ params: { name: service.name } }));
100
102
  return {
101
103
  paths,
102
- fallback: 'blocking',
104
+ fallback: false,
103
105
  };
104
106
  }
@@ -1,9 +1,7 @@
1
- import { Fragment } from 'react';
1
+ import { Fragment, useState } from 'react';
2
2
  import Head from 'next/head';
3
3
  import { Service } from '@eventcatalog/types';
4
4
 
5
- import Link from 'next/link';
6
-
7
5
  import { Menu, Transition } from '@headlessui/react';
8
6
  import { ChevronDownIcon } from '@heroicons/react/solid';
9
7
  import ServiceGrid from '@/components/Grids/ServiceGrid';
@@ -24,6 +22,8 @@ export interface PageProps {
24
22
  }
25
23
 
26
24
  export default function Page({ services }: PageProps) {
25
+ const [showMermaidDiagrams, setShowMermaidDiagrams] = useState(false);
26
+
27
27
  return (
28
28
  <>
29
29
  <Head>
@@ -83,22 +83,35 @@ export default function Page({ services }: PageProps) {
83
83
  <div className="grid grid-cols-4 gap-x-8 gap-y-10">
84
84
  {/* Filters */}
85
85
  <form className="hidden lg:block">
86
- <span className="text-sm font-bold text-gray-900 mb-4 block">Services</span>
87
- <ul className=" text-sm font-medium text-gray-900 space-y-4 pb-6 border-b border-gray-200 items-stretch">
88
- {services.map((service) => (
89
- <li key={service.name}>
90
- <Link href={`/services/${service.name}`}>
91
- <a>{service.name}</a>
92
- </Link>
93
- </li>
94
- ))}
95
- </ul>
86
+ <div className="border-b border-gray-200 pb-6">
87
+ <h3 className="-my-3 flow-root">
88
+ <div className="py-3 bg-white w-full flex items-center justify-between text-sm text-gray-400 hover:text-gray-500">
89
+ <span className="font-medium text-gray-900">Features</span>
90
+ </div>
91
+ </h3>
92
+ <div className="pt-6">
93
+ <div className="space-y-4">
94
+ <div className="flex items-center">
95
+ <input
96
+ id="show-mermaid"
97
+ type="checkbox"
98
+ onChange={(e) => setShowMermaidDiagrams(e.target.checked)}
99
+ defaultChecked={showMermaidDiagrams}
100
+ className="h-4 w-4 border-gray-300 rounded text-gray-600 focus:ring-gray-500"
101
+ />
102
+ <label htmlFor="show-mermaid" className="ml-3 text-sm text-gray-600">
103
+ Show Mermaid Diagrams
104
+ </label>
105
+ </div>
106
+ </div>
107
+ </div>
108
+ </div>
96
109
  </form>
97
110
 
98
111
  <div className="col-span-4 lg:col-span-3">
99
112
  <div>
100
113
  <h2 className="text-gray-500 text-xs font-medium uppercase tracking-wide">Services</h2>
101
- <ServiceGrid services={services} />
114
+ <ServiceGrid services={services} showMermaidDiagrams={showMermaidDiagrams} />
102
115
  </div>
103
116
  </div>
104
117
  </div>
@@ -108,7 +121,7 @@ export default function Page({ services }: PageProps) {
108
121
  );
109
122
  }
110
123
 
111
- export async function getServerSideProps() {
124
+ export async function getStaticProps() {
112
125
  const services = getAllServices();
113
126
 
114
127
  return {
@@ -1,7 +1,7 @@
1
1
  import { Event, Service } from '@eventcatalog/types';
2
2
  import EventGrid from '@/components/Grids/EventGrid';
3
3
  import ServiceGrid from '@/components/Grids/ServiceGrid';
4
- import { getAllEventsByOwnerId } from '@/lib/events';
4
+ import { getAllEventsByOwnerId, getAllOwners } from '@/lib/events';
5
5
  import { getAllServicesByOwnerId } from '@/lib/services';
6
6
 
7
7
  import { useUser } from '@/hooks/EventCatalog';
@@ -59,8 +59,8 @@ export default function UserPage({ events, services, userId }: UserPageProps) {
59
59
  );
60
60
  }
61
61
 
62
- export const getServerSideProps = async (req) => {
63
- const { id: userId } = req.query;
62
+ export const getStaticProps = async ({ params }) => {
63
+ const { id: userId } = params;
64
64
  const userEvents = await getAllEventsByOwnerId(userId);
65
65
  const services = await getAllServicesByOwnerId(userId);
66
66
 
@@ -72,3 +72,14 @@ export const getServerSideProps = async (req) => {
72
72
  },
73
73
  };
74
74
  };
75
+
76
+ export async function getStaticPaths() {
77
+ const owners = getAllOwners();
78
+
79
+ const paths = owners.map((owner) => ({ params: { id: owner } }));
80
+
81
+ return {
82
+ paths,
83
+ fallback: false,
84
+ };
85
+ }
@@ -0,0 +1,59 @@
1
+ const path = require('path');
2
+ const fs = require('fs');
3
+
4
+ const getAllEventsAndSchemaPaths = (directory) => {
5
+ const folders = fs.readdirSync(directory);
6
+ return folders.map((folder) => {
7
+ const allFilesInEventFolder = fs.readdirSync(path.join(directory, folder));
8
+ const schemaFileName = allFilesInEventFolder.find((fileName) => fileName.includes('schema'));
9
+ const eventHasVersions = !!allFilesInEventFolder.find((fileName) => fileName.includes('versioned'));
10
+ let versions = [];
11
+
12
+ if (eventHasVersions) {
13
+ versions = getAllEventsAndSchemaPaths(path.join(directory, folder, 'versioned'));
14
+ }
15
+
16
+ return {
17
+ name: folder,
18
+ schemaFileName,
19
+ schemaContent: schemaFileName ? fs.readFileSync(path.join(directory, folder, schemaFileName), 'utf-8') : null,
20
+ versions,
21
+ };
22
+ });
23
+ };
24
+
25
+ const main = async () => {
26
+ const publicDir = path.join(__dirname, '../public');
27
+ const publicSchemaDir = path.join(publicDir, 'schemas');
28
+
29
+ if (fs.existsSync(publicSchemaDir)) {
30
+ fs.rmSync(publicSchemaDir, { recursive: true, force: true });
31
+ }
32
+ fs.mkdirSync(publicSchemaDir);
33
+
34
+ const eventsWithSchemaPaths = getAllEventsAndSchemaPaths(path.join(process.env.PROJECT_DIR, 'events'));
35
+ const eventsWithSchemas = eventsWithSchemaPaths.filter((event) => !!event.schemaContent);
36
+
37
+ eventsWithSchemas.forEach((event) => {
38
+ const eventDir = path.join(publicSchemaDir, event.name);
39
+
40
+ if (!fs.existsSync(eventDir)) {
41
+ fs.mkdirSync(eventDir);
42
+ }
43
+
44
+ const eventVersions = event.versions;
45
+ const versionsWithSchemas = eventVersions.filter((version) => !!version.schemaContent);
46
+
47
+ versionsWithSchemas.forEach((version) => {
48
+ const versionDir = path.join(eventDir, version.name);
49
+ if (!fs.existsSync(versionDir)) {
50
+ fs.mkdirSync(versionDir);
51
+ }
52
+ fs.writeFileSync(path.join(versionDir, version.schemaFileName), version.schemaContent);
53
+ });
54
+
55
+ fs.writeFileSync(path.join(eventDir, event.schemaFileName), event.schemaContent);
56
+ });
57
+ };
58
+
59
+ main();
@@ -1,98 +0,0 @@
1
- "use strict";
2
- exports.id = 596;
3
- exports.ids = [596];
4
- exports.modules = {
5
-
6
- /***/ 9596:
7
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
8
-
9
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__) => {
10
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11
- /* harmony export */ "UV": () => (/* binding */ getAllServices),
12
- /* harmony export */ "vY": () => (/* binding */ getAllServicesByOwnerId),
13
- /* harmony export */ "in": () => (/* binding */ getServiceByName)
14
- /* harmony export */ });
15
- /* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7147);
16
- /* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__);
17
- /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1017);
18
- /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__);
19
- /* harmony import */ var next_mdx_remote_serialize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7112);
20
- /* harmony import */ var next_mdx_remote_serialize__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_mdx_remote_serialize__WEBPACK_IMPORTED_MODULE_2__);
21
- /* harmony import */ var _lib_file_reader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2432);
22
- /* harmony import */ var _lib_events__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9959);
23
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_lib_events__WEBPACK_IMPORTED_MODULE_4__]);
24
- _lib_events__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? await __webpack_async_dependencies__ : __webpack_async_dependencies__)[0];
25
-
26
-
27
-
28
-
29
-
30
- const buildService = (eventFrontMatter)=>{
31
- const { name , summary , owners =[] , repository ={
32
- } , tags =[] , externalLinks =[] } = eventFrontMatter;
33
- return {
34
- name,
35
- summary,
36
- owners,
37
- repository,
38
- tags,
39
- externalLinks
40
- };
41
- };
42
- const getAllServices = ()=>{
43
- const servicesDir = path__WEBPACK_IMPORTED_MODULE_1___default().join(process.env.PROJECT_DIR, 'services');
44
- const folders = fs__WEBPACK_IMPORTED_MODULE_0___default().readdirSync(servicesDir);
45
- const services = folders.map((folder)=>(0,_lib_file_reader__WEBPACK_IMPORTED_MODULE_3__/* .readMarkdownFile */ .ws)(path__WEBPACK_IMPORTED_MODULE_1___default().join(servicesDir, folder, 'index.md'))
46
- );
47
- const events = (0,_lib_events__WEBPACK_IMPORTED_MODULE_4__/* .getAllEvents */ .IP)();
48
- const parsedServices = services.map((frontMatter)=>buildService(frontMatter.data)
49
- );
50
- // @ts-ignore
51
- return parsedServices.map((service)=>({
52
- ...service,
53
- ...(0,_lib_events__WEBPACK_IMPORTED_MODULE_4__/* .getAllEventsThatHaveRelationshipWithService */ .X4)(service, events)
54
- })
55
- );
56
- };
57
- const getAllServicesByOwnerId = async (ownerId)=>{
58
- const services = await getAllServices();
59
- const servicesOwnedByUser = services.filter((service)=>service.owners.some((id)=>id === ownerId
60
- )
61
- );
62
- return servicesOwnedByUser.map((service)=>({
63
- ...service
64
- })
65
- );
66
- };
67
- const getServiceByName = async (serviceName)=>{
68
- try {
69
- const servicesDir = path__WEBPACK_IMPORTED_MODULE_1___default().join(process.env.PROJECT_DIR, 'services');
70
- const serviceDirectory = path__WEBPACK_IMPORTED_MODULE_1___default().join(servicesDir, serviceName);
71
- const { data , content } = (0,_lib_file_reader__WEBPACK_IMPORTED_MODULE_3__/* .readMarkdownFile */ .ws)(path__WEBPACK_IMPORTED_MODULE_1___default().join(serviceDirectory, `index.md`));
72
- const service = buildService(data);
73
- const events = (0,_lib_events__WEBPACK_IMPORTED_MODULE_4__/* .getAllEvents */ .IP)();
74
- const mdxSource = await (0,next_mdx_remote_serialize__WEBPACK_IMPORTED_MODULE_2__.serialize)(content);
75
- return {
76
- // @ts-ignore
77
- service: {
78
- ...service,
79
- ...(0,_lib_events__WEBPACK_IMPORTED_MODULE_4__/* .getAllEventsThatHaveRelationshipWithService */ .X4)(service, events)
80
- },
81
- markdown: {
82
- content,
83
- lastModifiedDate: (0,_lib_file_reader__WEBPACK_IMPORTED_MODULE_3__/* .getLastModifiedDateOfFile */ .cn)(path__WEBPACK_IMPORTED_MODULE_1___default().join(serviceDirectory, `index.md`)),
84
- source: mdxSource
85
- }
86
- };
87
- } catch (error) {
88
- console.log('Failed to get service by name', serviceName);
89
- return Promise.reject();
90
- }
91
- };
92
-
93
- });
94
-
95
- /***/ })
96
-
97
- };
98
- ;
@@ -1,64 +0,0 @@
1
- "use strict";
2
- (() => {
3
- var exports = {};
4
- exports.id = 148;
5
- exports.ids = [148];
6
- exports.modules = {
7
-
8
- /***/ 2374:
9
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10
-
11
- // ESM COMPAT FLAG
12
- __webpack_require__.r(__webpack_exports__);
13
-
14
- // EXPORTS
15
- __webpack_require__.d(__webpack_exports__, {
16
- "default": () => (/* binding */ download)
17
- });
18
-
19
- ;// CONCATENATED MODULE: external "fs"
20
- const external_fs_namespaceObject = require("fs");
21
- var external_fs_default = /*#__PURE__*/__webpack_require__.n(external_fs_namespaceObject);
22
- ;// CONCATENATED MODULE: external "path"
23
- const external_path_namespaceObject = require("path");
24
- var external_path_default = /*#__PURE__*/__webpack_require__.n(external_path_namespaceObject);
25
- ;// CONCATENATED MODULE: ./pages/api/event/[name]/download.js
26
-
27
-
28
- // eslint-disable-next-line func-names
29
- /* harmony default export */ function download(req, res) {
30
- const { name: eventName } = req.query;
31
- const eventDir = external_path_default().join(process.env.PROJECT_DIR, 'events', eventName);
32
- try {
33
- const filesInEventDir = external_fs_default().readdirSync(eventDir);
34
- const schemaFileName = filesInEventDir.find((fileName)=>fileName.indexOf('schema.') > -1
35
- );
36
- if (schemaFileName) {
37
- const extension = schemaFileName.split('.').pop();
38
- const schemaFile = external_fs_default().readFileSync(external_path_default().join(eventDir, schemaFileName));
39
- res.send({
40
- schema: schemaFile.toString(),
41
- fileName: `${eventName}.${extension}`
42
- });
43
- }
44
- res.status(404).end();
45
- } catch (error) {
46
- console.log(error);
47
- res.status(404).end();
48
- }
49
- };
50
-
51
-
52
- /***/ })
53
-
54
- };
55
- ;
56
-
57
- // load runtime
58
- var __webpack_require__ = require("../../../../webpack-api-runtime.js");
59
- __webpack_require__.C(exports);
60
- var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
61
- var __webpack_exports__ = (__webpack_exec__(2374));
62
- module.exports = __webpack_exports__;
63
-
64
- })();
@@ -1 +0,0 @@
1
- {"version":1,"files":["../../../../webpack-api-runtime.js","../../../../../../package.json","../../../../../../package.json"]}
@@ -1,160 +0,0 @@
1
- /******/ (() => { // webpackBootstrap
2
- /******/ "use strict";
3
- /******/ var __webpack_modules__ = ({});
4
- /************************************************************************/
5
- /******/ // The module cache
6
- /******/ var __webpack_module_cache__ = {};
7
- /******/
8
- /******/ // The require function
9
- /******/ function __webpack_require__(moduleId) {
10
- /******/ // Check if module is in cache
11
- /******/ var cachedModule = __webpack_module_cache__[moduleId];
12
- /******/ if (cachedModule !== undefined) {
13
- /******/ return cachedModule.exports;
14
- /******/ }
15
- /******/ // Create a new module (and put it into the cache)
16
- /******/ var module = __webpack_module_cache__[moduleId] = {
17
- /******/ // no module.id needed
18
- /******/ // no module.loaded needed
19
- /******/ exports: {}
20
- /******/ };
21
- /******/
22
- /******/ // Execute the module function
23
- /******/ var threw = true;
24
- /******/ try {
25
- /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
26
- /******/ threw = false;
27
- /******/ } finally {
28
- /******/ if(threw) delete __webpack_module_cache__[moduleId];
29
- /******/ }
30
- /******/
31
- /******/ // Return the exports of the module
32
- /******/ return module.exports;
33
- /******/ }
34
- /******/
35
- /******/ // expose the modules object (__webpack_modules__)
36
- /******/ __webpack_require__.m = __webpack_modules__;
37
- /******/
38
- /************************************************************************/
39
- /******/ /* webpack/runtime/compat get default export */
40
- /******/ (() => {
41
- /******/ // getDefaultExport function for compatibility with non-harmony modules
42
- /******/ __webpack_require__.n = (module) => {
43
- /******/ var getter = module && module.__esModule ?
44
- /******/ () => (module['default']) :
45
- /******/ () => (module);
46
- /******/ __webpack_require__.d(getter, { a: getter });
47
- /******/ return getter;
48
- /******/ };
49
- /******/ })();
50
- /******/
51
- /******/ /* webpack/runtime/define property getters */
52
- /******/ (() => {
53
- /******/ // define getter functions for harmony exports
54
- /******/ __webpack_require__.d = (exports, definition) => {
55
- /******/ for(var key in definition) {
56
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
57
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
58
- /******/ }
59
- /******/ }
60
- /******/ };
61
- /******/ })();
62
- /******/
63
- /******/ /* webpack/runtime/ensure chunk */
64
- /******/ (() => {
65
- /******/ __webpack_require__.f = {};
66
- /******/ // This file contains only the entry chunk.
67
- /******/ // The chunk loading function for additional chunks
68
- /******/ __webpack_require__.e = (chunkId) => {
69
- /******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {
70
- /******/ __webpack_require__.f[key](chunkId, promises);
71
- /******/ return promises;
72
- /******/ }, []));
73
- /******/ };
74
- /******/ })();
75
- /******/
76
- /******/ /* webpack/runtime/get javascript chunk filename */
77
- /******/ (() => {
78
- /******/ // This function allow to reference async chunks and sibling chunks for the entrypoint
79
- /******/ __webpack_require__.u = (chunkId) => {
80
- /******/ // return url for filenames based on template
81
- /******/ return undefined;
82
- /******/ };
83
- /******/ })();
84
- /******/
85
- /******/ /* webpack/runtime/hasOwnProperty shorthand */
86
- /******/ (() => {
87
- /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
88
- /******/ })();
89
- /******/
90
- /******/ /* webpack/runtime/make namespace object */
91
- /******/ (() => {
92
- /******/ // define __esModule on exports
93
- /******/ __webpack_require__.r = (exports) => {
94
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
95
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
96
- /******/ }
97
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
98
- /******/ };
99
- /******/ })();
100
- /******/
101
- /******/ /* webpack/runtime/startup entrypoint */
102
- /******/ (() => {
103
- /******/ __webpack_require__.X = (result, chunkIds, fn) => {
104
- /******/ // arguments: chunkIds, moduleId are deprecated
105
- /******/ var moduleId = chunkIds;
106
- /******/ if(!fn) chunkIds = result, fn = () => (__webpack_require__(__webpack_require__.s = moduleId));
107
- /******/ chunkIds.map(__webpack_require__.e, __webpack_require__)
108
- /******/ var r = fn();
109
- /******/ return r === undefined ? result : r;
110
- /******/ }
111
- /******/ })();
112
- /******/
113
- /******/ /* webpack/runtime/require chunk loading */
114
- /******/ (() => {
115
- /******/ // no baseURI
116
- /******/
117
- /******/ // object to store loaded chunks
118
- /******/ // "1" means "loaded", otherwise not loaded yet
119
- /******/ var installedChunks = {
120
- /******/ 165: 1
121
- /******/ };
122
- /******/
123
- /******/ // no on chunks loaded
124
- /******/
125
- /******/ var installChunk = (chunk) => {
126
- /******/ var moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;
127
- /******/ for(var moduleId in moreModules) {
128
- /******/ if(__webpack_require__.o(moreModules, moduleId)) {
129
- /******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
130
- /******/ }
131
- /******/ }
132
- /******/ if(runtime) runtime(__webpack_require__);
133
- /******/ for(var i = 0; i < chunkIds.length; i++)
134
- /******/ installedChunks[chunkIds[i]] = 1;
135
- /******/
136
- /******/ };
137
- /******/
138
- /******/ // require() chunk loading for javascript
139
- /******/ __webpack_require__.f.require = (chunkId, promises) => {
140
- /******/ // "1" is the signal for "already loaded"
141
- /******/ if(!installedChunks[chunkId]) {
142
- /******/ if(148 == chunkId) {
143
- /******/ installChunk(require("./chunks/" + __webpack_require__.u(chunkId)));
144
- /******/ } else installedChunks[chunkId] = 1;
145
- /******/ }
146
- /******/ };
147
- /******/
148
- /******/ module.exports = __webpack_require__;
149
- /******/ __webpack_require__.C = installChunk;
150
- /******/
151
- /******/ // no HMR
152
- /******/
153
- /******/ // no HMR manifest
154
- /******/ })();
155
- /******/
156
- /************************************************************************/
157
- /******/
158
- /******/
159
- /******/ })()
160
- ;
@@ -1 +0,0 @@
1
- self.__BUILD_MANIFEST=function(s,e,c,a,t,n,i){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":["static/chunks/pages/index-3eeab7e4014a02ea.js"],"/_error":["static/chunks/pages/_error-5a714c45c50a8db4.js"],"/events":[c,s,e,t,"static/chunks/pages/events-bcad8442f21d6b67.js"],"/events/[name]":[c,s,e,n,a,i,"static/chunks/pages/events/[name]-578828157369b5cd.js"],"/events/[name]/logs":[s,"static/chunks/364-3cb3c8cf1d3c95de.js","static/css/5eeed9cb243ce668.css","static/chunks/pages/events/[name]/logs-d159d7b82f44847f.js"],"/events/[name]/v/[version]":[c,s,e,n,a,i,"static/chunks/pages/events/[name]/v/[version]-963d3e8377b51e86.js"],"/overview":["static/chunks/pages/overview-5ac749891cbe1922.js"],"/services":[s,e,t,"static/chunks/pages/services-bcc61898062e1bf4.js"],"/services/[name]":[c,s,e,a,"static/chunks/pages/services/[name]-8e53e76ab1c52c30.js"],"/users/[id]":[c,e,"static/chunks/pages/users/[id]-2da54ccb6319b207.js"],sortedPages:["/","/_app","/_error","/events","/events/[name]","/events/[name]/logs","/events/[name]/v/[version]","/overview","/services","/services/[name]","/users/[id]"]}}("static/chunks/519-7f22292093abd7c3.js","static/chunks/962-d5070461f6d4a478.js","static/chunks/176cb4e4-8a0f6f010ef8accb.js","static/chunks/336-27e73f1c995ab4e7.js","static/chunks/274-11c4d093341d7201.js","static/chunks/954-4d4a09c3269dda3f.js","static/chunks/873-cd4309ed788ee564.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -1 +0,0 @@
1
- self.__SSG_MANIFEST=new Set(["\u002Fevents\u002F[name]","\u002Fservices\u002F[name]"]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[873],{10873:function(e,n,t){t.r(n),t.d(n,{__N_SSG:function(){return U},default:function(){return F},getComponents:function(){return D}});var r=t(52322),a=t(97729),s=t(23816),l=t(61790),i=t(2784),c=t(63548),o=t(86562),d=t(85411);function u(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function m(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),r.forEach((function(n){u(e,n,t[n])}))}return e}function x(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},s=Object.keys(e);for(r=0;r<s.length;r++)t=s[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)t=s[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var f=function(e){var n=e.language,t=e.name,a=void 0===t?"":t,s=x(e,["language","name"]),l=(0,i.useState)(!1),u=l[0],f=l[1];return(0,r.jsxs)("div",{className:"relative group",children:[(0,r.jsx)("button",{type:"button",onClick:function(){(0,d.Z)(s.children),f(!0),setTimeout((function(){return f(!1)}),2e3)},className:"absolute top-2 right-5 text-sm bg-gray-700 text-white rounded-md py-1 px-4 transform transition opacity-0 group-hover:opacity-100",children:u?"Copied":"Copy"}),(0,r.jsx)(o.Z,m({style:c.Z,language:n},s,{wrapLines:!0,children:s.children.replace(/\\n/g,"\n")})),a&&(0,r.jsx)("span",{className:"-mb-2 block text-xs text-right font-bold",children:a})]})};function h(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return n.filter(Boolean).join(" ")}var g=function(e){var n=e.title,t=void 0===n?"Examples":n,a=e.description,s=e.examples,l=void 0===s?[]:s,c=e.showLineNumbers,o=l.map((function(e,n){return{name:e.name||"Example ".concat(n+1),content:e.snippet,description:e.description,langugage:e.langugage}})),d=(0,i.useState)(o[0]),u=d[0],m=d[1];return(0,r.jsx)("div",{className:"my-5 examples",children:(0,r.jsxs)("div",{className:"",children:[(0,r.jsx)("h2",{className:"text-lg font-medium text-gray-700 underline",children:t}),a&&(0,r.jsx)("p",{className:"text-md font-medium text-gray-700",children:a}),(0,r.jsxs)("div",{children:[(0,r.jsx)("nav",{className:"-mb-px flex","aria-label":"Tabs",children:o.map((function(e){var n=e.name===u.name;return(0,r.jsxs)("button",{type:"button",onClick:function(){return function(e){m(e)}(e)},className:h(n?"border-green-500 text-green-600 selected":"border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300","whitespace-nowrap py-4 border-b-2 font-medium text-sm important:no-underline px-8 hover:bg-gray-50 transition"),"aria-current":n?"page":void 0,children:[e.name,(0,r.jsxs)("span",{className:"block text-xs mt-",children:["(",e.langugage,")"]})]},e.name)}))}),(0,r.jsxs)("div",{className:"my-4",children:[(0,r.jsx)(f,{language:u.langugage,showLineNumbers:c,children:u.content}),u.langugage&&(0,r.jsx)("span",{className:"-mb-2 block text-xs text-right font-bold",children:u.name})]})]})]})})},p=t(46892),b=t(62455),v=t(4573),j=t(92021),y=t.n(j),N=t(39097),w=t(17962),O=t(98018),k=t.n(O),E=t(55008);function S(e,n,t,r,a,s,l){try{var i=e[s](l),c=i.value}catch(o){return void t(o)}i.done?n(c):Promise.resolve(c).then(r,a)}var P=function(e){var n,t=e.event,a=e.loadedVersion,s=(0,E.aF)().getUserById,l=t.name,i=t.owners,c=t.producers,o=t.consumers,d=t.historicVersions,u=t.externalLinks,m=(n=y().mark((function e(){var n,r,a,s;return y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("/api/event/".concat(t.name,"/download"));case 3:if(404!==(n=e.sent).status){e.next=6;break}throw new Error("Failed to find file");case 6:return e.next=8,n.json();case 8:r=e.sent,a=r.schema,s=r.fileName,k()(a,s),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(0),console.error(e.t0);case 17:case"end":return e.stop()}}),e,null,[[0,14]])})),function(){var e=this,t=arguments;return new Promise((function(r,a){var s=n.apply(e,t);function l(e){S(s,r,a,l,i,"next",e)}function i(e){S(s,r,a,l,i,"throw",e)}l(void 0)}))});return(0,r.jsxs)("aside",{className:"hidden xl:block xl:pl-8",children:[(0,r.jsx)("h2",{className:"sr-only",children:"Details"}),(0,r.jsx)("div",{className:"pt-6 py-6 space-y-8",children:(0,r.jsxs)("div",{children:[(0,r.jsxs)("h2",{className:"text-sm font-medium text-gray-500",children:[(0,r.jsx)(w.FMB,{className:"h-5 w-5 text-green-400 inline-block mr-2","aria-hidden":"true"}),"Producers"]}),(0,r.jsx)("ul",{className:"mt-2 leading-8",children:c.map((function(e){return(0,r.jsx)("li",{className:"inline mr-1",children:(0,r.jsx)(N.default,{href:"/services/".concat(e),children:(0,r.jsxs)("a",{className:"relative inline-flex items-center rounded-full border border-gray-300 px-3 py-0.5",children:[(0,r.jsx)("div",{className:"absolute flex-shrink-0 flex items-center justify-center",children:(0,r.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-green-500 animate animate-pulse","aria-hidden":"true"})}),(0,r.jsx)("div",{className:"ml-3.5 text-sm font-medium text-gray-900",children:e})]})})},e)}))})]})}),(0,r.jsx)("div",{className:"border-t border-gray-200 py-6 space-y-8",children:(0,r.jsxs)("div",{children:[(0,r.jsxs)("h2",{className:"text-sm font-medium text-gray-500",children:[(0,r.jsx)(w.FMB,{className:"h-5 w-5 text-indigo-400 inline-block mr-2","aria-hidden":"true"}),"Consumers"]}),(0,r.jsx)("ul",{className:"mt-2 leading-8",children:o.map((function(e){return(0,r.jsx)("li",{className:"inline",children:(0,r.jsx)(N.default,{href:"/services/".concat(e),children:(0,r.jsxs)("a",{href:"#",className:"relative inline-flex items-center rounded-full border border-gray-300 px-3 py-0.5",children:[(0,r.jsx)("div",{className:"absolute flex-shrink-0 flex items-center justify-center",children:(0,r.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-indigo-500 animate animate-pulse","aria-hidden":"true"})}),(0,r.jsx)("div",{className:"ml-3.5 text-sm font-medium text-gray-900",children:e})]})})},e)}))})]})}),d.length>0&&(0,r.jsx)("div",{className:"border-t border-gray-200 py-6",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"text-sm font-medium text-gray-500",children:"Event Versions"}),(0,r.jsxs)("ul",{className:"mt-2 leading-8 text-left text-blue-500",children:[(0,r.jsx)("li",{className:"text-sm inline ",children:(0,r.jsx)(N.default,{href:"/events/".concat(l),children:(0,r.jsx)("a",{children:(0,r.jsx)("span",{className:"inline-flex mr-2 items-center px-2.5 py-0.5 rounded-full text-xs font-medium -top-0.5 relative ".concat("latest"===a?"bg-blue-400 text-white shadow-md font-bold underline":"bg-blue-100 text-blue-800"),children:"Latest"})})})}),d.map((function(e){var n=a===e?"bg-blue-400 text-white shadow-md font-bold underline":"bg-blue-100 text-blue-800";return(0,r.jsx)("li",{className:"text-sm inline",children:(0,r.jsx)(N.default,{href:"/events/".concat(l,"/v/").concat(e),children:(0,r.jsx)("a",{children:(0,r.jsxs)("span",{className:"inline-flex mr-2 items-center px-2.5 py-0.5 rounded-full text-xs font-medium -top-0.5 relative ".concat(n),children:["v",e]})})})},e)}))]})]})}),(0,r.jsx)("div",{className:"border-t border-gray-200 py-6 space-y-8",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"text-sm font-medium text-gray-500",children:"Event Owners"}),(0,r.jsx)("ul",{className:"mt-4 leading-8 space-y-2",children:i.map((function(e){var n=s(e);return n?(0,r.jsx)("li",{className:"flex justify-start",children:(0,r.jsx)(N.default,{href:"/users/".concat(e),children:(0,r.jsxs)("a",{className:"flex items-center space-x-3",children:[(0,r.jsx)("div",{className:"flex-shrink-0",children:(0,r.jsx)("img",{className:"h-5 w-5 rounded-full",src:n.avatarUrl,alt:""})}),(0,r.jsx)("div",{className:"text-sm font-medium text-gray-900",children:n.name})]})})},e):null}))})]})}),(0,r.jsxs)("div",{className:"border-t border-gray-200 py-6 space-y-1",children:[(0,r.jsxs)("button",{type:"button",className:"hidden w-full md:inline-flex h-10 justify-center px-4 py-2 border border-gray-300 shadow-sm text-sm font-medium rounded-md text-gray-200 bg-gray-800 hover:bg-gray-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-900",onClick:function(){return m()},children:[(0,r.jsx)(w._8t,{className:"-ml-1 mr-2 h-5 w-5 text-gray-200","aria-hidden":"true"}),(0,r.jsx)("span",{children:"Download Schema"})]}),d.length>0&&(0,r.jsx)(N.default,{href:"/events/".concat(l,"/logs"),children:(0,r.jsx)("a",{className:"hidden w-full md:inline-flex h-10 justify-center px-4 py-2 border border-gray-300 shadow-sm text-sm font-medium rounded-md text-gray-800 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-200",children:(0,r.jsx)("span",{children:"View Changes"})})}),u.length>0&&u.map((function(e){return(0,r.jsxs)("a",{href:e.url,target:"_blank",type:"button",className:"hidden w-full md:inline-flex h-10 justify-center px-4 py-2 border border-teal-300 shadow-sm text-sm font-medium rounded-md text-teal-800 hover:bg-teal-100 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-teal-200",rel:"noreferrer",children:[(0,r.jsx)(w.h0n,{className:"-ml-1 mr-2 h-5 w-5 text-teal-200","aria-hidden":"true"}),(0,r.jsx)("span",{children:"".concat(e.label)})]},e.url)}))]})]})},C=t(4488),Z=t(52428);function _(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function V(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),r.forEach((function(n){_(e,n,t[n])}))}return e}function L(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},s=Object.keys(e);for(r=0;r<s.length;r++)t=s[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)t=s[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var U=!0,D=function(e){var n=e.event,t=e.schema,a=e.examples;return{code:function(e){var n=e.className,t=L(e,["className"]),a=/language-(\w+)/.exec(n||"");return a?(0,r.jsx)(f,V({language:a[1]},t)):(0,r.jsx)("code",V({className:n},t))},Schema:function(e){var a=e.title,s=void 0===a?"Event Schema":a;return t?(0,r.jsxs)("section",{className:"mt-8 xl:mt-10",children:[(0,r.jsx)("h2",{id:"activity-title",className:"text-lg font-medium text-gray-900 underline",children:s}),(0,r.jsx)(f,{language:t.language,showLineNumbers:!1,name:"".concat(n.name," Schema (").concat(t.language,")"),children:t.snippet})]}):null},Admonition:l.Z,EventExamples:function(e){return a.length>0?(0,r.jsx)(g,V({},e,{examples:a,showLineNumbers:!0})):(console.log("You are using the <EventExamples /> component without any examples, please read https://eventcatalog.dev/docs/events/adding-examples for more information"),null)},Mermaid:function(e){var t=e.title;return(0,r.jsxs)("div",{className:"mx-auto w-full py-10",children:[t&&(0,r.jsx)("h2",{className:"text-lg font-medium text-gray-900 underline",children:t}),(0,r.jsx)(v.Z,{source:"event",data:n,rootNodeColor:(0,p.Z)(n.name)})]})}}};function F(e){var n=e.event,t=e.markdown,l=e.loadedVersion,i=e.notFound,c=(0,E.wG)(),o=c.getEditUrl,d=c.hasEditUrl,u=n.name,m=n.summary,x=n.draft,f=n.schema,h=n.examples,g=n.version;if(i)return(0,r.jsx)(C.Z,{type:"event",name:n.name,editUrl:d?o("/events/".concat(u,"/index.md")):""});var p=t.lastModifiedDate,v=[{name:"Events",href:"/events",current:!1},{name:u,href:"/services/".concat(u),current:!0}],j=D({event:n,schema:f,examples:h});return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.default,{children:(0,r.jsxs)("title",{children:[u," v",g]})}),(0,r.jsx)(b.Z,{title:u,editUrl:d?o("/events/".concat(u,"/index.md")):"",subtitle:m,draft:x,lastModifiedDate:p,tags:[{label:"v".concat(g)}],breadCrumbs:(0,r.jsx)(Z.Z,{pages:v}),isOldVersion:"latest"!==l,latestVersionUrl:"/events/".concat(u),version:l,sidebar:(0,r.jsx)(P,{event:n,loadedVersion:l}),children:(0,r.jsx)(s.R,V({},t.source,{components:j}))})]})}}}]);