@eventcatalog/core 3.0.0-beta.9 → 3.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 (197) hide show
  1. package/README.md +41 -98
  2. package/dist/__mocks__/astro-content.cjs +32 -0
  3. package/dist/__mocks__/astro-content.d.cts +13 -0
  4. package/dist/__mocks__/astro-content.d.ts +13 -0
  5. package/dist/__mocks__/astro-content.js +7 -0
  6. package/dist/analytics/analytics.cjs +1 -1
  7. package/dist/analytics/analytics.js +2 -2
  8. package/dist/analytics/log-build.cjs +1 -1
  9. package/dist/analytics/log-build.js +3 -3
  10. package/dist/catalog-to-astro-content-directory.cjs +2 -19
  11. package/dist/catalog-to-astro-content-directory.d.cts +1 -2
  12. package/dist/catalog-to-astro-content-directory.d.ts +1 -2
  13. package/dist/catalog-to-astro-content-directory.js +3 -5
  14. package/dist/{chunk-RAJ7TGWN.js → chunk-2WGZFERB.js} +1 -1
  15. package/dist/{chunk-R2BJ7MJG.js → chunk-6Z6ARMQS.js} +1 -17
  16. package/dist/{chunk-TC3R47V6.js → chunk-ESUL7UE6.js} +1 -1
  17. package/dist/{chunk-2VPX4WIJ.js → chunk-I3CW5KQI.js} +1 -1
  18. package/dist/{chunk-TT4LZO2Q.js → chunk-KBO4IL2D.js} +1 -1
  19. package/dist/{chunk-A4MGWK5T.js → chunk-URR33SNK.js} +1 -1
  20. package/dist/constants.cjs +1 -1
  21. package/dist/constants.js +1 -1
  22. package/dist/eventcatalog.cjs +20 -64
  23. package/dist/eventcatalog.config.d.cts +11 -0
  24. package/dist/eventcatalog.config.d.ts +11 -0
  25. package/dist/eventcatalog.js +26 -52
  26. package/dist/generate.cjs +1 -1
  27. package/dist/generate.js +3 -3
  28. package/dist/utils/cli-logger.cjs +1 -1
  29. package/dist/utils/cli-logger.js +2 -2
  30. package/eventcatalog/astro.config.mjs +4 -1
  31. package/eventcatalog/integrations/eventcatalog-features.ts +69 -0
  32. package/eventcatalog/public/icons/asyncapi-black.svg +2 -0
  33. package/eventcatalog/public/icons/graphql-black.svg +1 -0
  34. package/eventcatalog/public/icons/openapi-black.svg +1 -0
  35. package/eventcatalog/src/components/ChatPanel/ChatPanel.tsx +1010 -0
  36. package/eventcatalog/src/components/ChatPanel/ChatPanelButton.tsx +24 -0
  37. package/eventcatalog/src/components/Checkbox.astro +7 -4
  38. package/eventcatalog/src/components/CopyAsMarkdown.tsx +15 -15
  39. package/eventcatalog/src/components/EnvironmentDropdown.tsx +15 -7
  40. package/eventcatalog/src/components/FavoriteButton.tsx +1 -1
  41. package/eventcatalog/src/components/Grids/DomainGrid.tsx +322 -173
  42. package/eventcatalog/src/components/Grids/MessageGrid.tsx +317 -178
  43. package/eventcatalog/src/components/Grids/specification-utils.ts +106 -0
  44. package/eventcatalog/src/components/Header.astro +40 -15
  45. package/eventcatalog/src/components/Lists/OwnersList.tsx +17 -10
  46. package/eventcatalog/src/components/Lists/PillListFlat.styles.css +12 -0
  47. package/eventcatalog/src/components/Lists/PillListFlat.tsx +15 -15
  48. package/eventcatalog/src/components/Lists/VersionList.astro +15 -5
  49. package/eventcatalog/src/components/MDX/Accordion/Accordion.tsx +3 -3
  50. package/eventcatalog/src/components/MDX/Admonition.tsx +49 -9
  51. package/eventcatalog/src/components/MDX/Attachments.astro +15 -11
  52. package/eventcatalog/src/components/MDX/ChannelInformation/ChannelInformation.tsx +29 -15
  53. package/eventcatalog/src/components/MDX/EntityPropertiesTable/EntityPropertiesTable.astro +20 -13
  54. package/eventcatalog/src/components/MDX/Link/Link.astro +1 -1
  55. package/eventcatalog/src/components/MDX/MessageTable/MessageTable.client.tsx +50 -29
  56. package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.tsx +28 -15
  57. package/eventcatalog/src/components/MDX/NodeGraph/StepWalkthrough.tsx +4 -4
  58. package/eventcatalog/src/components/MDX/NodeGraph/StudioModal.tsx +4 -4
  59. package/eventcatalog/src/components/MDX/NodeGraph/VisualiserSearch.tsx +2 -2
  60. package/eventcatalog/src/components/MDX/ResourceGroupTable/ResourceGroupTable.client.tsx +54 -33
  61. package/eventcatalog/src/components/MDX/ResourceLink/ResourceLink.astro +1 -1
  62. package/eventcatalog/src/components/MDX/Steps/Step.astro +2 -2
  63. package/eventcatalog/src/components/MDX/Steps/Steps.astro +3 -3
  64. package/eventcatalog/src/components/MDX/Tabs/Tabs.astro +13 -9
  65. package/eventcatalog/src/components/MDX/Tiles/Tile.astro +25 -13
  66. package/eventcatalog/src/components/MDX/Tiles/Tiles.astro +1 -1
  67. package/eventcatalog/src/components/SchemaExplorer/ApiAccessSection.tsx +95 -90
  68. package/eventcatalog/src/components/SchemaExplorer/ApiContentViewer.tsx +144 -0
  69. package/eventcatalog/src/components/SchemaExplorer/AvroSchemaViewer.tsx +29 -25
  70. package/eventcatalog/src/components/SchemaExplorer/DiffViewer.tsx +3 -3
  71. package/eventcatalog/src/components/SchemaExplorer/JSONSchemaViewer.tsx +61 -42
  72. package/eventcatalog/src/components/SchemaExplorer/OwnersSection.tsx +13 -9
  73. package/eventcatalog/src/components/SchemaExplorer/Pagination.tsx +36 -8
  74. package/eventcatalog/src/components/SchemaExplorer/ProducersConsumersSection.tsx +17 -13
  75. package/eventcatalog/src/components/SchemaExplorer/SchemaContentViewer.tsx +37 -10
  76. package/eventcatalog/src/components/SchemaExplorer/SchemaDetailsHeader.tsx +152 -109
  77. package/eventcatalog/src/components/SchemaExplorer/SchemaDetailsPanel.tsx +6 -15
  78. package/eventcatalog/src/components/SchemaExplorer/SchemaExplorer.tsx +257 -61
  79. package/eventcatalog/src/components/SchemaExplorer/SchemaFilters.tsx +64 -126
  80. package/eventcatalog/src/components/SchemaExplorer/SchemaListItem.tsx +53 -43
  81. package/eventcatalog/src/components/SchemaExplorer/SchemaViewerModal.tsx +8 -8
  82. package/eventcatalog/src/components/Search/Search.astro +5 -5
  83. package/eventcatalog/src/components/Search/SearchDataLoader.astro +25 -0
  84. package/eventcatalog/src/components/Search/SearchModal.tsx +65 -36
  85. package/eventcatalog/src/components/SideNav/NestedSideBar/SearchBar.tsx +37 -24
  86. package/eventcatalog/src/components/SideNav/NestedSideBar/index.tsx +117 -56
  87. package/eventcatalog/src/components/SideNav/SideNav.astro +0 -15
  88. package/eventcatalog/src/components/Tables/Table.tsx +97 -77
  89. package/eventcatalog/src/components/Tables/columns/ContainersTableColumns.tsx +114 -74
  90. package/eventcatalog/src/components/Tables/columns/DomainTableColumns.tsx +77 -55
  91. package/eventcatalog/src/components/Tables/columns/FlowTableColumns.tsx +36 -36
  92. package/eventcatalog/src/components/Tables/columns/MessageTableColumns.tsx +116 -77
  93. package/eventcatalog/src/components/Tables/columns/ServiceTableColumns.tsx +111 -94
  94. package/eventcatalog/src/components/Tables/columns/SharedColumns.tsx +31 -26
  95. package/eventcatalog/src/components/Tables/columns/TeamsTableColumns.tsx +123 -215
  96. package/eventcatalog/src/components/Tables/columns/UserTableColumns.tsx +156 -243
  97. package/eventcatalog/src/components/ThemeToggle.tsx +18 -0
  98. package/eventcatalog/src/content.config.ts +1 -13
  99. package/eventcatalog/src/enterprise/ai/chat-api.ts +360 -0
  100. package/eventcatalog/src/enterprise/auth/[...auth].ts +3 -0
  101. package/eventcatalog/src/enterprise/auth/login.astro +420 -0
  102. package/eventcatalog/src/enterprise/collections/index.ts +0 -1
  103. package/eventcatalog/src/enterprise/custom-documentation/components/CustomDocsNav/components/NestedItem.tsx +15 -7
  104. package/eventcatalog/src/enterprise/custom-documentation/components/CustomDocsNav/components/NoResultsFound.tsx +2 -2
  105. package/eventcatalog/src/enterprise/custom-documentation/components/CustomDocsNav/index.tsx +19 -15
  106. package/eventcatalog/src/enterprise/custom-documentation/pages/docs/custom/index.astro +50 -17
  107. package/eventcatalog/src/layouts/DirectoryLayout.astro +11 -6
  108. package/eventcatalog/src/layouts/DiscoverLayout.astro +13 -8
  109. package/eventcatalog/src/layouts/Footer.astro +14 -11
  110. package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +187 -123
  111. package/eventcatalog/src/pages/_index.astro +213 -573
  112. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.ts +8 -2
  113. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/index.astro +9 -5
  114. package/eventcatalog/src/pages/directory/[type]/index.astro +6 -0
  115. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/[filename].astro +19 -3
  116. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/index.astro +7 -7
  117. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/[filename].astro +5 -5
  118. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +81 -64
  119. package/eventcatalog/src/pages/docs/[type]/[id]/language/[dictionaryId]/index.astro +23 -24
  120. package/eventcatalog/src/pages/docs/[type]/[id]/language/index.astro +214 -125
  121. package/eventcatalog/src/pages/docs/custom/index.astro +2 -2
  122. package/eventcatalog/src/pages/docs/teams/[id]/index.astro +98 -70
  123. package/eventcatalog/src/pages/docs/teams/[id].mdx.ts +36 -0
  124. package/eventcatalog/src/pages/docs/users/[id]/index.astro +60 -45
  125. package/eventcatalog/src/pages/docs/users/[id].mdx.ts +36 -0
  126. package/eventcatalog/src/pages/schemas/explorer/_index.data.ts +178 -0
  127. package/eventcatalog/src/pages/schemas/explorer/index.astro +7 -157
  128. package/eventcatalog/src/pages/studio.astro +155 -75
  129. package/eventcatalog/src/remark-plugins/directives.ts +36 -15
  130. package/eventcatalog/src/remark-plugins/mermaid.ts +2 -2
  131. package/eventcatalog/src/{components/SideNav/NestedSideBar → stores/sidebar-store}/builders/container.ts +10 -1
  132. package/eventcatalog/src/{components/SideNav/NestedSideBar → stores/sidebar-store}/builders/domain.ts +17 -7
  133. package/eventcatalog/src/{components/SideNav/NestedSideBar → stores/sidebar-store}/builders/message.ts +10 -1
  134. package/eventcatalog/src/{components/SideNav/NestedSideBar → stores/sidebar-store}/builders/service.ts +11 -4
  135. package/eventcatalog/src/{components/SideNav/NestedSideBar → stores/sidebar-store}/builders/shared.ts +14 -0
  136. package/eventcatalog/src/stores/{sidebar-store.ts → sidebar-store/index.ts} +1 -1
  137. package/eventcatalog/src/stores/theme-store.ts +93 -0
  138. package/eventcatalog/src/styles/theme.css +255 -0
  139. package/eventcatalog/src/styles/themes/forest.css +230 -0
  140. package/eventcatalog/src/styles/themes/ocean.css +235 -0
  141. package/eventcatalog/src/styles/themes/sapphire.css +230 -0
  142. package/eventcatalog/src/styles/themes/sunset.css +230 -0
  143. package/eventcatalog/src/utils/collections/channels.ts +0 -2
  144. package/eventcatalog/src/utils/collections/commands.ts +0 -2
  145. package/eventcatalog/src/utils/collections/containers.ts +0 -2
  146. package/eventcatalog/src/utils/collections/domains.ts +0 -2
  147. package/eventcatalog/src/utils/collections/entities.ts +0 -2
  148. package/eventcatalog/src/utils/collections/events.ts +0 -2
  149. package/eventcatalog/src/utils/collections/flows.ts +0 -2
  150. package/eventcatalog/src/utils/collections/queries.ts +0 -2
  151. package/eventcatalog/src/utils/collections/schemas.ts +45 -7
  152. package/eventcatalog/src/utils/collections/services.ts +0 -2
  153. package/eventcatalog/src/utils/feature.ts +13 -5
  154. package/eventcatalog/src/utils/node-graphs/services-node-graph.ts +1 -1
  155. package/eventcatalog/src/utils/resource-files.ts +86 -0
  156. package/eventcatalog/tailwind.config.mjs +6 -3
  157. package/package.json +12 -15
  158. package/default-files-for-collections/changelogs.md +0 -5
  159. package/default-files-for-collections/channels.md +0 -8
  160. package/default-files-for-collections/commands.md +0 -8
  161. package/default-files-for-collections/domains.md +0 -8
  162. package/default-files-for-collections/events.md +0 -8
  163. package/default-files-for-collections/flows.md +0 -11
  164. package/default-files-for-collections/queries.md +0 -8
  165. package/default-files-for-collections/services.md +0 -8
  166. package/default-files-for-collections/ubiquitousLanguages.md +0 -7
  167. package/eventcatalog/src/enterprise/collections/chat-prompts.ts +0 -32
  168. package/eventcatalog/src/enterprise/eventcatalog-chat/components/Chat.tsx +0 -60
  169. package/eventcatalog/src/enterprise/eventcatalog-chat/components/ChatMessage.tsx +0 -414
  170. package/eventcatalog/src/enterprise/eventcatalog-chat/components/ChatSidebar.tsx +0 -169
  171. package/eventcatalog/src/enterprise/eventcatalog-chat/components/InputModal.tsx +0 -244
  172. package/eventcatalog/src/enterprise/eventcatalog-chat/components/MentionInput.tsx +0 -211
  173. package/eventcatalog/src/enterprise/eventcatalog-chat/components/WelcomePromptArea.tsx +0 -176
  174. package/eventcatalog/src/enterprise/eventcatalog-chat/components/default-prompts.ts +0 -93
  175. package/eventcatalog/src/enterprise/eventcatalog-chat/components/hooks/ChatProvider.tsx +0 -143
  176. package/eventcatalog/src/enterprise/eventcatalog-chat/components/windows/ChatWindow.server.tsx +0 -387
  177. package/eventcatalog/src/enterprise/eventcatalog-chat/pages/api/chat.ts +0 -59
  178. package/eventcatalog/src/enterprise/eventcatalog-chat/pages/chat/index.astro +0 -104
  179. package/eventcatalog/src/enterprise/eventcatalog-chat/providers/ai-provider.ts +0 -140
  180. package/eventcatalog/src/enterprise/eventcatalog-chat/providers/anthropic.ts +0 -28
  181. package/eventcatalog/src/enterprise/eventcatalog-chat/providers/google.ts +0 -41
  182. package/eventcatalog/src/enterprise/eventcatalog-chat/providers/index.ts +0 -26
  183. package/eventcatalog/src/enterprise/eventcatalog-chat/providers/openai.ts +0 -61
  184. package/eventcatalog/src/enterprise/eventcatalog-chat/utils/chat-prompts.ts +0 -50
  185. package/eventcatalog/src/pages/auth/login.astro +0 -280
  186. package/eventcatalog/src/pages/chat/feature.astro +0 -179
  187. package/eventcatalog/src/pages/chat/index.astro +0 -10
  188. package/eventcatalog/src/pages/docs/_default-docs.mdx +0 -25
  189. package/eventcatalog/src/pages/docs/index.astro +0 -33
  190. package/eventcatalog/src/pages/nav-index.json.ts +0 -30
  191. /package/eventcatalog/src/{pages → enterprise}/auth/error.astro +0 -0
  192. /package/eventcatalog/src/{middleware-auth.ts → enterprise/auth/middleware/middleware-auth.ts} +0 -0
  193. /package/eventcatalog/src/{middleware.ts → enterprise/auth/middleware/middleware.ts} +0 -0
  194. /package/eventcatalog/src/{pages/unauthorized/index.astro → enterprise/auth/unauthorized.astro} +0 -0
  195. /package/eventcatalog/src/{pages → enterprise}/plans/index.astro +0 -0
  196. /package/eventcatalog/src/{components/SideNav/NestedSideBar → stores/sidebar-store}/builders/flow.ts +0 -0
  197. /package/eventcatalog/src/{components/SideNav/NestedSideBar/sidebar-builder.ts → stores/sidebar-store/state.ts} +0 -0
package/README.md CHANGED
@@ -1,12 +1,7 @@
1
1
  <div align="center">
2
2
 
3
- <h1>📖 EventCatalog</h1>
4
- <h3>The open source tool to help you discover and document your event-driven architectures</h3>
5
-
6
- [![MIT License][license-badge]][license]
7
- [![PRs Welcome][prs-badge]][prs]
8
- <img src="https://img.shields.io/github/actions/workflow/status/event-catalog/eventcatalog/verify-build.yml"/>
9
- [![](https://dcbadge.limes.pink/api/server/https://discord.gg/3rjaZMmrAm?style=flat)](https://discord.gg/3rjaZMmrAm) [<img src="https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white" height="20px" />](https://www.linkedin.com/in/david-boyne/) [![blog](https://img.shields.io/badge/blog-EDA--Visuals-brightgreen)](https://eda-visuals.boyney.io/?utm_source=event-catalog-gihub)
3
+ <!-- <h1>📖 EventCatalog</h1> -->
4
+ <!-- <h3>The open source tool to help you discover and document your event-driven architectures</h3> -->
10
5
 
11
6
 
12
7
 
@@ -25,134 +20,82 @@
25
20
 
26
21
  <!-- <hr /> -->
27
22
 
28
- <!-- <img width="745" alt="Screenshot 2024-12-13 at 09 56 05" src="https://github.com/user-attachments/assets/f537ec1f-54ee-4de1-996c-c6b72191be39" /> -->
29
- <img width="745" alt="EventCatalog" src="./images/example.png" />
30
-
31
23
 
32
24
 
25
+ <img width="745" alt="EventCatalog" src="./images/example.png" />
33
26
 
34
- <h4>Features: Documentation for Event Driven Architectures, Integration with any broker, Generator from your OpenAPI and AsyncAPI documents, Docs and Code, Markdown driven, Document Domains/Services/Messages/Schemas and more, Content versioning, Assign Owners, Schemas, OpenAPI, MDX Components and more...</h4>
27
+ <p align="center">
28
+ <br/>
29
+ <a href="https://eventcatalog.dev">EventCatalog</a> is a documentation tool for software architectures &mdash;
30
+ <br/>
31
+ bring discoverability to complex systems.
32
+ <br/><br/>
33
+ </p>
35
34
 
36
- <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
37
- [![All Contributors](https://img.shields.io/badge/all_contributors-67-orange.svg?style=flat-square)](#contributors-)
38
- <!-- ALL-CONTRIBUTORS-BADGE:END -->
35
+ <div align="center">
39
36
 
40
- [Read the Docs](https://www.eventcatalog.dev/docs/development/getting-started/introduction) | [View Demo](https://demo.eventcatalog.dev)
37
+ [![main](https://github.com/event-catalog/eventcatalog/actions/workflows/verify-build.yml/badge.svg)](https://github.com/event-catalog/eventcatalog/actions/workflows/verify-build.yml)
38
+ [![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/event-catalog/eventcatalog/blob/main/LICENSE)
39
+ [![npm version](https://badge.fury.io/js/@eventcatalog%2Fcore.svg)](https://badge.fury.io/js/@eventcatalog/core)
41
40
 
42
41
  </div>
43
42
 
44
- <hr/>
45
-
46
- # Core Features
47
-
48
- - 📃 Document domains, services and messages ([demo](https://demo.eventcatalog.dev/docs))
49
- - 📊 Visualise your architecture ([demo](https://demo.eventcatalog.dev/visualiser/domains/Orders))
50
- - ⭐ Supports any Schema format (e.g Avro, JSON) ([demo](https://demo.eventcatalog.dev/docs/events/OrderConfirmed/0.0.1))
51
- - 🗂️ Document any code examples (Any code snippet)
52
- - 💅 Custom MDX components ([read more](https://eventcatalog.dev/docs/development/components/using-components))
53
- - 🗄️ Version domains, services and messages
54
- - ⭐ Discoverability feature (search, filter and more) ([demo](https://demo.eventcatalog.dev/discover/events))
55
- - ⭐ Document teams and users ([demo](https://demo.eventcatalog.dev/docs/teams/full-stack))
56
- - 🤖 Automate your catalogs with [generators](https://www.eventcatalog.dev/docs/development/plugins/plugin-overview) (e.g generate your catalogs from your [AsyncAPI](https://www.eventcatalog.dev/docs/asyncapi)/[OpenAPI](https://www.eventcatalog.dev/docs/openapi) documents)
57
- - 👨🏼‍💻 Follows [Docs as code](https://www.writethedocs.org/guide/docs-as-code/) principles
58
- - ⭐ And much more...
59
-
60
-
61
- # The problem
62
-
63
- Event-driven architectures are becoming more popular, giving us the ability to write decoupled architectures and use messages as away to communicate between domains/teams.
64
-
65
- When starting with event-driven architectures you may have a handful of services and messages. As this scales with your team and organization it becomes very hard to manage and govern this.
66
43
 
67
- Over a period of time more events are added to our domain, requirements change, and our architecture scales.
44
+ <!--
68
45
 
69
- As more domains, services or messages get added to our architecture they can be hard for teams to discover and explore.
70
-
71
- Many teams ignore documentation and governance and end up in a [sea of complexity (watch the talk here)](https://www.youtube.com/watch?v=VLUvfIm9wnQ&t=1s) .
72
-
73
- **EventCatalog was built to help document your event-driven architectures and help your teams explore and understand events, schemas and much more.**
74
-
75
- Read more on these blogposts and videos:
76
-
77
- - [Introducing EventCatalog v2 (2024)](https://eventcatalog.dev/blog/eventcatalog-v2)
78
- - [Introducing EventCatalog v1 (2022)](https://www.boyney.io/blog/2022-01-11-introducing-eventcatalog)
79
- - [Event-Driven Architecture: Beyond the Schema Registry (blog)](https://www.boyney.io/blog/2021-12-05-documenting-events)
80
- - [Complexity is the Gotcha of Event-driven Architecture (VIDEO) by David Boyne](https://www.youtube.com/watch?v=VLUvfIm9wnQ&t=1s)
81
-
82
- # This solution
46
+ [![MIT License][license-badge]][license]
47
+ [![PRs Welcome][prs-badge]][prs]
48
+ <img src="https://img.shields.io/github/actions/workflow/status/event-catalog/eventcatalog/verify-build.yml"/>
49
+ [![](https://dcbadge.limes.pink/api/server/https://discord.gg/3rjaZMmrAm?style=flat)](https://discord.gg/3rjaZMmrAm) [<img src="https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white" height="20px" />](https://www.linkedin.com/in/david-boyne/) [![blog](https://img.shields.io/badge/blog-EDA--Visuals-brightgreen)](https://eda-visuals.boyney.io/?utm_source=event-catalog-gihub)
50
+ -->
83
51
 
84
- Think of EventCatalog as a website generator that allows you to document your event architectures powered by markdown.
85
52
 
86
- EventCatalog is focused on discovery and documentation and allows you to:
87
53
 
88
- - Document Domains/Services/Messages/Schemas/Code Examples and more...
89
- - Visually shows relationships between upstream/downstream services using your Events
90
- - Allows you to version your documentation and supports changelogs
91
- - Add owners to domains,services and messages so your teams know who owns which parts of your domain
92
- - And much more...
93
54
 
94
- EventCatalog is technology agnostic, which means you can integrate your Catalog with any EDA technology of your choice and any schema formats.
95
55
 
96
- EventCatalog supports a [Plugin Architecture](https://github.com/event-catalog/generators) which lets you generate documentation from your systems including OpenAPI, AsyncAPI, Event Brokers and more.
56
+ <!--
97
57
 
98
- You can read more on [how it works on GitHub](https://github.com/event-catalog/eventcatalog)
58
+ <h4>Features: Documentation for Event Driven Architectures, Integration with any broker, Generator from your OpenAPI and AsyncAPI documents, Docs and Code, Markdown driven, Document Domains/Services/Messages/Schemas and more, Content versioning, Assign Owners, Schemas, OpenAPI, MDX Components and more...</h4> -->
99
59
 
100
- # Getting Started
60
+ <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
61
+ <!-- [![All Contributors](https://img.shields.io/badge/all_contributors-67-orange.svg?style=flat-square)](#contributors-) -->
62
+ <!-- ALL-CONTRIBUTORS-BADGE:END -->
101
63
 
102
- You should be able to get setup within minutes if you head over to our documentation to get started 👇
64
+ <!-- [Read the Docs](https://www.eventcatalog.dev/docs/development/getting-started/introduction) | [View Demo](https://demo.eventcatalog.dev) -->
103
65
 
104
- ➡️ [Get Started](https://www.eventcatalog.dev/docs/development/getting-started)
66
+ </div>
105
67
 
106
- Or run this command to build a new catalog
68
+ ## Install
107
69
 
70
+ The **recommended** way to install the latest version of EventCatalog is by running the command below:
108
71
  ```
109
72
  npx @eventcatalog/create-eventcatalog@latest my-catalog
110
73
  ```
111
74
 
112
- # Demo
113
-
114
- Here is an example of a Retail system using domains, services and messages.
75
+ Looking for help? Start with our [Getting Started](https://www.eventcatalog.dev/docs/development/starting-a-new-project/installation) guide
115
76
 
116
- [demo.eventcatalog.dev](https://demo.eventcatalog.dev)
77
+ ## Documentation
78
+ Visit our [official documentation](https://www.eventcatalog.dev/docs/development/getting-started).
117
79
 
118
- You can see the markdown files that generated the website in the GitHub repo under [examples](/examples).
80
+ ## Support
81
+ Having trouble? Get help in the official [EventCatalog Discord](https://discord.gg/3rjaZMmrAm).
119
82
 
120
- # Enterprise support
83
+ ## Demos
121
84
 
122
- Interested in collaborating with us? Our offerings include dedicated support, priority assistance, feature development, custom integrations, and more.
85
+ Here are some examples of EventCatalog in action:
123
86
 
124
- Find more details on our [services page](https://eventcatalog.dev/services).
87
+ - [Finance System](https://eventcatalog-examples-finance.vercel.app/)
88
+ - [Healthcare System](https://eventcatalog-examples-healthcare.vercel.app/)
89
+ - [E-Commerce System](https://demo.eventcatalog.dev/)
90
+ - [SaaS System](https://eventcatalog-examples-saas.vercel.app/)
125
91
 
126
- # Looking for v1?
127
92
 
128
- - Documentation: https://v1.eventcatalog.dev
129
- - Code: https://github.com/event-catalog/eventcatalog/tree/v1
130
-
131
- _Still using v1 of EventCatalog? We recommnded upgrading to the latest version. [Read more in the migration guide](https://eventcatalog.dev/docs/development/guides/upgrading-from-version-1)._
132
-
133
-
134
- # Contributing
93
+ ## Contributing
135
94
 
136
95
  If you have any questions, features or issues please raise any issue or pull requests you like. We will try my best to get back to you.
137
96
 
138
97
  You can find the [contributing guidelines here](https://eventcatalog.dev/docs/contributing/overview).
139
98
 
140
- ## Running the project locally
141
-
142
- 1. Clone the repo
143
- 1. Install required dependencies `pnpm install`
144
- 1. Run the command `pnpm run start:catalog`
145
- - This will start the catalog found in `/examples` repo, locally on your machine
146
-
147
- [license-badge]: https://img.shields.io/github/license/event-catalog/eventcatalog.svg?color=yellow
148
- [license]: https://github.com/event-catalog/eventcatalog/blob/main/LICENSE
149
- [prs-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square
150
- [prs]: http://makeapullrequest.com
151
- [github-watch-badge]: https://img.shields.io/github/watchers/event-catalog/eventcatalog.svg?style=social
152
- [github-watch]: https://github.com/event-catalog/eventcatalog/watchers
153
- [github-star-badge]: https://img.shields.io/github/stars/event-catalog/eventcatalog.svg?style=social
154
- [github-star]: https://github.com/event-catalog/eventcatalog/stargazers
155
-
156
99
  ## Contributors ✨
157
100
 
158
101
  Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/__mocks__/astro-content.ts
21
+ var astro_content_exports = {};
22
+ __export(astro_content_exports, {
23
+ getCollection: () => getCollection
24
+ });
25
+ module.exports = __toCommonJS(astro_content_exports);
26
+ var getCollection = async (key, filter) => {
27
+ return [];
28
+ };
29
+ // Annotate the CommonJS export names for ESM import in node:
30
+ 0 && (module.exports = {
31
+ getCollection
32
+ });
@@ -0,0 +1,13 @@
1
+ declare const getCollection: (key: string, filter?: (entry: any) => boolean) => Promise<never[]>;
2
+ type ContentCollectionKey = 'events' | 'services' | 'commands' | 'queries' | 'domains' | 'channels' | 'flows' | 'messages' | 'entities' | 'schemas';
3
+ type CollectionEntry<T extends ContentCollectionKey> = {
4
+ id: string;
5
+ slug: string;
6
+ body: string;
7
+ collection: T;
8
+ data: any;
9
+ filePath?: string;
10
+ render?: () => Promise<any>;
11
+ };
12
+
13
+ export { type CollectionEntry, type ContentCollectionKey, getCollection };
@@ -0,0 +1,13 @@
1
+ declare const getCollection: (key: string, filter?: (entry: any) => boolean) => Promise<never[]>;
2
+ type ContentCollectionKey = 'events' | 'services' | 'commands' | 'queries' | 'domains' | 'channels' | 'flows' | 'messages' | 'entities' | 'schemas';
3
+ type CollectionEntry<T extends ContentCollectionKey> = {
4
+ id: string;
5
+ slug: string;
6
+ body: string;
7
+ collection: T;
8
+ data: any;
9
+ filePath?: string;
10
+ render?: () => Promise<any>;
11
+ };
12
+
13
+ export { type CollectionEntry, type ContentCollectionKey, getCollection };
@@ -0,0 +1,7 @@
1
+ // src/__mocks__/astro-content.ts
2
+ var getCollection = async (key, filter) => {
3
+ return [];
4
+ };
5
+ export {
6
+ getCollection
7
+ };
@@ -37,7 +37,7 @@ var import_axios = __toESM(require("axios"), 1);
37
37
  var import_os = __toESM(require("os"), 1);
38
38
 
39
39
  // package.json
40
- var version = "3.0.0-beta.9";
40
+ var version = "3.1.0";
41
41
 
42
42
  // src/constants.ts
43
43
  var VERSION = version;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  raiseEvent
3
- } from "../chunk-TC3R47V6.js";
4
- import "../chunk-A4MGWK5T.js";
3
+ } from "../chunk-ESUL7UE6.js";
4
+ import "../chunk-URR33SNK.js";
5
5
  export {
6
6
  raiseEvent
7
7
  };
@@ -106,7 +106,7 @@ var import_axios = __toESM(require("axios"), 1);
106
106
  var import_os = __toESM(require("os"), 1);
107
107
 
108
108
  // package.json
109
- var version = "3.0.0-beta.9";
109
+ var version = "3.1.0";
110
110
 
111
111
  // src/constants.ts
112
112
  var VERSION = version;
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  log_build_default
3
- } from "../chunk-2VPX4WIJ.js";
4
- import "../chunk-TC3R47V6.js";
5
- import "../chunk-A4MGWK5T.js";
3
+ } from "../chunk-I3CW5KQI.js";
4
+ import "../chunk-ESUL7UE6.js";
5
+ import "../chunk-URR33SNK.js";
6
6
  import "../chunk-UPONRQSN.js";
7
7
  export {
8
8
  log_build_default as default
@@ -30,8 +30,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/catalog-to-astro-content-directory.js
31
31
  var catalog_to_astro_content_directory_exports = {};
32
32
  __export(catalog_to_astro_content_directory_exports, {
33
- catalogToAstro: () => catalogToAstro,
34
- checkAndConvertMdToMdx: () => checkAndConvertMdToMdx
33
+ catalogToAstro: () => catalogToAstro
35
34
  });
36
35
  module.exports = __toCommonJS(catalog_to_astro_content_directory_exports);
37
36
 
@@ -241,23 +240,7 @@ var catalogToAstro = async (source, astroDir) => {
241
240
  }
242
241
  await copyFiles(source, astroDir);
243
242
  };
244
- var checkAndConvertMdToMdx = async (source, astroDir) => {
245
- const files = await (0, import_glob.glob)(path3.join(source, "**"), {
246
- nodir: true,
247
- windowsPathsNoEscape: import_node_os.default.platform() == "win32",
248
- ignore: ["node_modules/**", "**/dist/**", "**/README.md"]
249
- });
250
- if (files.some((file) => file.endsWith(".md"))) {
251
- console.log(`EventCatalog now requires all markdown files to be .mdx files. Converting all .md files to .mdx...`);
252
- }
253
- for (const file of files) {
254
- if (file.endsWith(".md")) {
255
- import_fs.default.renameSync(file, file.replace(".md", ".mdx"));
256
- }
257
- }
258
- };
259
243
  // Annotate the CommonJS export names for ESM import in node:
260
244
  0 && (module.exports = {
261
- catalogToAstro,
262
- checkAndConvertMdToMdx
245
+ catalogToAstro
263
246
  });
@@ -1,4 +1,3 @@
1
1
  declare function catalogToAstro(source: any, astroDir: any): Promise<void>;
2
- declare function checkAndConvertMdToMdx(source: any, astroDir: any): Promise<void>;
3
2
 
4
- export { catalogToAstro, checkAndConvertMdToMdx };
3
+ export { catalogToAstro };
@@ -1,4 +1,3 @@
1
1
  declare function catalogToAstro(source: any, astroDir: any): Promise<void>;
2
- declare function checkAndConvertMdToMdx(source: any, astroDir: any): Promise<void>;
3
2
 
4
- export { catalogToAstro, checkAndConvertMdToMdx };
3
+ export { catalogToAstro };
@@ -1,10 +1,8 @@
1
1
  import {
2
- catalogToAstro,
3
- checkAndConvertMdToMdx
4
- } from "./chunk-R2BJ7MJG.js";
2
+ catalogToAstro
3
+ } from "./chunk-6Z6ARMQS.js";
5
4
  import "./chunk-55D645EH.js";
6
5
  import "./chunk-UPONRQSN.js";
7
6
  export {
8
- catalogToAstro,
9
- checkAndConvertMdToMdx
7
+ catalogToAstro
10
8
  };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-A4MGWK5T.js";
3
+ } from "./chunk-URR33SNK.js";
4
4
 
5
5
  // src/utils/cli-logger.ts
6
6
  import pc from "picocolors";
@@ -50,23 +50,7 @@ var catalogToAstro = async (source, astroDir) => {
50
50
  }
51
51
  await copyFiles(source, astroDir);
52
52
  };
53
- var checkAndConvertMdToMdx = async (source, astroDir) => {
54
- const files = await glob(path.join(source, "**"), {
55
- nodir: true,
56
- windowsPathsNoEscape: os.platform() == "win32",
57
- ignore: ["node_modules/**", "**/dist/**", "**/README.md"]
58
- });
59
- if (files.some((file) => file.endsWith(".md"))) {
60
- console.log(`EventCatalog now requires all markdown files to be .mdx files. Converting all .md files to .mdx...`);
61
- }
62
- for (const file of files) {
63
- if (file.endsWith(".md")) {
64
- fs.renameSync(file, file.replace(".md", ".mdx"));
65
- }
66
- }
67
- };
68
53
 
69
54
  export {
70
- catalogToAstro,
71
- checkAndConvertMdToMdx
55
+ catalogToAstro
72
56
  };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-A4MGWK5T.js";
3
+ } from "./chunk-URR33SNK.js";
4
4
 
5
5
  // src/analytics/analytics.js
6
6
  import axios from "axios";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  raiseEvent
3
- } from "./chunk-TC3R47V6.js";
3
+ } from "./chunk-ESUL7UE6.js";
4
4
  import {
5
5
  getEventCatalogConfigFile,
6
6
  verifyRequiredFieldsAreInCatalogConfigFile
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  logger
3
- } from "./chunk-RAJ7TGWN.js";
3
+ } from "./chunk-2WGZFERB.js";
4
4
  import {
5
5
  cleanup,
6
6
  getEventCatalogConfigFile
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "3.0.0-beta.9";
2
+ var version = "3.1.0";
3
3
 
4
4
  // src/constants.ts
5
5
  var VERSION = version;
@@ -25,7 +25,7 @@ __export(constants_exports, {
25
25
  module.exports = __toCommonJS(constants_exports);
26
26
 
27
27
  // package.json
28
- var version = "3.0.0-beta.9";
28
+ var version = "3.1.0";
29
29
 
30
30
  // src/constants.ts
31
31
  var VERSION = version;
package/dist/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-A4MGWK5T.js";
3
+ } from "./chunk-URR33SNK.js";
4
4
  export {
5
5
  VERSION
6
6
  };
@@ -109,7 +109,7 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
109
109
  var import_picocolors = __toESM(require("picocolors"), 1);
110
110
 
111
111
  // package.json
112
- var version = "3.0.0-beta.9";
112
+ var version = "3.1.0";
113
113
 
114
114
  // src/constants.ts
115
115
  var VERSION = version;
@@ -479,21 +479,6 @@ var catalogToAstro = async (source, astroDir) => {
479
479
  }
480
480
  await copyFiles(source, astroDir);
481
481
  };
482
- var checkAndConvertMdToMdx = async (source, astroDir) => {
483
- const files = await (0, import_glob.glob)(path4.join(source, "**"), {
484
- nodir: true,
485
- windowsPathsNoEscape: import_node_os.default.platform() == "win32",
486
- ignore: ["node_modules/**", "**/dist/**", "**/README.md"]
487
- });
488
- if (files.some((file) => file.endsWith(".md"))) {
489
- console.log(`EventCatalog now requires all markdown files to be .mdx files. Converting all .md files to .mdx...`);
490
- }
491
- for (const file of files) {
492
- if (file.endsWith(".md")) {
493
- import_fs.default.renameSync(file, file.replace(".md", ".mdx"));
494
- }
495
- }
496
- };
497
482
 
498
483
  // src/resolve-catalog-dependencies.js
499
484
  var import_node_path4 = __toESM(require("path"), 1);
@@ -547,11 +532,6 @@ var isOutputServer = async () => {
547
532
  const config = await getEventCatalogConfigFile(process.env.PROJECT_DIR || "");
548
533
  return config?.output === "server";
549
534
  };
550
- var isAuthEnabled = async () => {
551
- const directory = process.env.PROJECT_DIR || process.cwd();
552
- const hasAuthConfig = import_node_fs4.default.existsSync((0, import_node_path5.join)(directory, "eventcatalog.auth.js"));
553
- return hasAuthConfig;
554
- };
555
535
 
556
536
  // src/eventcatalog.ts
557
537
  var import_update_notifier = __toESM(require("update-notifier"), 1);
@@ -702,47 +682,31 @@ var copyCore = () => {
702
682
  }
703
683
  });
704
684
  };
705
- var copyServerFiles = async () => {
706
- const isServerOutput = await isOutputServer();
707
- if (import_fs2.default.existsSync((0, import_node_path7.join)(core, "src/pages/api/server"))) {
708
- import_fs2.default.rmSync((0, import_node_path7.join)(core, "src/pages/api/server"), { recursive: true });
709
- }
710
- if (!isServerOutput) {
711
- if (import_fs2.default.existsSync((0, import_node_path7.join)(core, "src/pages/api/chat.ts"))) {
712
- import_fs2.default.rmSync((0, import_node_path7.join)(core, "src/pages/api/chat.ts"));
713
- }
714
- if (import_fs2.default.existsSync((0, import_node_path7.join)(core, "src/pages/api/[...auth].ts"))) {
715
- import_fs2.default.rmSync((0, import_node_path7.join)(core, "src/pages/api/[...auth].ts"));
716
- }
717
- return;
718
- }
719
- import_fs2.default.cpSync((0, import_node_path7.join)(eventCatalogDir, "src/enterprise/eventcatalog-chat/pages/api"), (0, import_node_path7.join)(core, "src/pages/api"), {
720
- recursive: true
721
- });
722
- };
723
- var createAuthFileIfNotExists = async (hasRequiredLicense) => {
724
- const authEnabled = await isAuthEnabled();
725
- const isSRR = await isOutputServer();
726
- try {
727
- if (authEnabled && hasRequiredLicense && isSRR) {
728
- logger.info("Creating auth file", "auth");
729
- import_fs2.default.writeFileSync(
730
- (0, import_node_path7.join)(core, "src/pages/api/[...auth].ts"),
731
- `import { AstroAuth } from 'auth-astro/server';
732
- export const prerender = false;
733
- export const { GET, POST } = AstroAuth();
734
- `
735
- );
736
- }
737
- } catch (error) {
738
- }
739
- };
740
685
  var clearCore = () => {
741
686
  if (import_fs2.default.existsSync(core)) import_fs2.default.rmSync(core, { recursive: true });
742
687
  };
743
688
  var checkForUpdate = () => {
744
689
  const installedVersion = getInstalledEventCatalogVersion();
745
690
  if (!installedVersion) return;
691
+ const majorVersion = parseInt(installedVersion.replace(/[^0-9.]/g, "").split(".")[0], 10);
692
+ if (majorVersion < 3) {
693
+ const v3Message = `\u{1F680} EventCatalog V3 is now available in beta!
694
+
695
+ You are currently on version ${installedVersion}.
696
+ V3 brings exciting new features and improvements.
697
+
698
+ Upgrade now: npm i @eventcatalog/core@beta`;
699
+ console.log(
700
+ (0, import_boxen.default)(v3Message, {
701
+ padding: 1,
702
+ margin: 1,
703
+ align: "center",
704
+ borderColor: "magenta",
705
+ borderStyle: "round"
706
+ })
707
+ );
708
+ return;
709
+ }
746
710
  const pkg = { name: "@eventcatalog/core", version: installedVersion };
747
711
  const notifier = (0, import_update_notifier.default)({ pkg, updateCheckInterval: 0 });
748
712
  if (notifier.update) {
@@ -784,17 +748,14 @@ program.command("dev").description("Run development server of EventCatalog").opt
784
748
  if (options.forceRecreate) clearCore();
785
749
  copyCore();
786
750
  await resolve_catalog_dependencies_default(dir, core);
787
- await checkAndConvertMdToMdx(dir, core);
788
751
  await runMigrations(dir);
789
752
  await catalogToAstro(dir, core);
790
- await copyServerFiles();
791
753
  const canEmbedPages = await (0, import_license.isFeatureEnabled)(
792
754
  "@eventcatalog/backstage-plugin-eventcatalog",
793
755
  process.env.EVENTCATALOG_LICENSE_KEY_BACKSTAGE
794
756
  );
795
757
  const isEventCatalogStarter = await (0, import_license.isEventCatalogStarterEnabled)();
796
758
  const isEventCatalogScale = await (0, import_license.isEventCatalogScaleEnabled)();
797
- await createAuthFileIfNotExists(isEventCatalogScale);
798
759
  checkForUpdate();
799
760
  let watchUnsub;
800
761
  try {
@@ -835,7 +796,6 @@ program.command("build").description("Run build of EventCatalog").action(async (
835
796
  import_dotenv.default.config({ path: import_node_path8.default.join(dir, ".env") });
836
797
  }
837
798
  copyCore();
838
- await copyServerFiles();
839
799
  const isBackstagePluginEnabled = await (0, import_license.isFeatureEnabled)(
840
800
  "@eventcatalog/backstage-plugin-eventcatalog",
841
801
  process.env.EVENTCATALOG_LICENSE_KEY_BACKSTAGE
@@ -843,14 +803,12 @@ program.command("build").description("Run build of EventCatalog").action(async (
843
803
  const isEventCatalogStarter = await (0, import_license.isEventCatalogStarterEnabled)();
844
804
  const isEventCatalogScale = await (0, import_license.isEventCatalogScaleEnabled)();
845
805
  const canEmbedPages = isBackstagePluginEnabled || isEventCatalogScale;
846
- await createAuthFileIfNotExists(isEventCatalogScale);
847
806
  await log_build_default(dir, {
848
807
  isEventCatalogStarterEnabled: isEventCatalogStarter,
849
808
  isEventCatalogScaleEnabled: isEventCatalogScale,
850
809
  isBackstagePluginEnabled: canEmbedPages || isEventCatalogScale
851
810
  });
852
811
  await resolve_catalog_dependencies_default(dir, core);
853
- await checkAndConvertMdToMdx(dir, core);
854
812
  await runMigrations(dir);
855
813
  await catalogToAstro(dir, core);
856
814
  checkForUpdate();
@@ -905,8 +863,6 @@ program.command("preview").description("Serves the contents of your eventcatalog
905
863
  );
906
864
  const isEventCatalogStarter = await (0, import_license.isEventCatalogStarterEnabled)();
907
865
  const isEventCatalogScale = await (0, import_license.isEventCatalogScaleEnabled)();
908
- await copyServerFiles();
909
- await createAuthFileIfNotExists(isEventCatalogScale);
910
866
  previewCatalog({ command, canEmbedPages: canEmbedPages || isEventCatalogScale, isEventCatalogStarter, isEventCatalogScale });
911
867
  });
912
868
  program.command("start").description("Serves the contents of your eventcatalog build directory").action(async (options, command) => {
@@ -44,6 +44,9 @@ type PagesConfiguration = {
44
44
  icon?: string;
45
45
  pages?: string[];
46
46
  };
47
+ type AuthConfig = {
48
+ enabled: boolean;
49
+ };
47
50
  interface Config {
48
51
  title: string;
49
52
  tagline: false;
@@ -57,6 +60,14 @@ interface Config {
57
60
  host?: string;
58
61
  trailingSlash?: boolean;
59
62
  output?: 'server' | 'static';
63
+ /**
64
+ * Theme for the catalog UI.
65
+ * - 'default': Default purple/slate theme
66
+ * - 'ocean': Deep blue/teal ocean-inspired theme
67
+ * @default 'default'
68
+ */
69
+ theme?: 'default' | 'ocean';
70
+ auth?: AuthConfig;
60
71
  rss?: {
61
72
  enabled: boolean;
62
73
  limit: number;