@eventcatalog/core 2.31.2 → 2.31.3

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.
@@ -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 = "2.31.2";
40
+ var version = "2.31.3";
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-DETRHSB6.js";
4
- import "../chunk-5RIG3ETK.js";
3
+ } from "../chunk-34ONBQTK.js";
4
+ import "../chunk-4EXYGKM6.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 = "2.31.2";
109
+ var version = "2.31.3";
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-U2LUOMEZ.js";
4
- import "../chunk-DETRHSB6.js";
5
- import "../chunk-5RIG3ETK.js";
3
+ } from "../chunk-KYLVZEB2.js";
4
+ import "../chunk-34ONBQTK.js";
5
+ import "../chunk-4EXYGKM6.js";
6
6
  import "../chunk-E7TXTI7G.js";
7
7
  export {
8
8
  log_build_default as default
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-5RIG3ETK.js";
3
+ } from "./chunk-4EXYGKM6.js";
4
4
 
5
5
  // src/analytics/analytics.js
6
6
  import axios from "axios";
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "2.31.2";
2
+ var version = "2.31.3";
3
3
 
4
4
  // src/constants.ts
5
5
  var VERSION = version;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  raiseEvent
3
- } from "./chunk-DETRHSB6.js";
3
+ } from "./chunk-34ONBQTK.js";
4
4
  import {
5
5
  getEventCatalogConfigFile,
6
6
  verifyRequiredFieldsAreInCatalogConfigFile
@@ -25,7 +25,7 @@ __export(constants_exports, {
25
25
  module.exports = __toCommonJS(constants_exports);
26
26
 
27
27
  // package.json
28
- var version = "2.31.2";
28
+ var version = "2.31.3";
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-5RIG3ETK.js";
3
+ } from "./chunk-4EXYGKM6.js";
4
4
  export {
5
5
  VERSION
6
6
  };
@@ -157,7 +157,7 @@ var import_axios = __toESM(require("axios"), 1);
157
157
  var import_os = __toESM(require("os"), 1);
158
158
 
159
159
  // package.json
160
- var version = "2.31.2";
160
+ var version = "2.31.3";
161
161
 
162
162
  // src/constants.ts
163
163
  var VERSION = version;
@@ -6,15 +6,15 @@ import {
6
6
  } from "./chunk-UKJ7F5WR.js";
7
7
  import {
8
8
  log_build_default
9
- } from "./chunk-U2LUOMEZ.js";
10
- import "./chunk-DETRHSB6.js";
9
+ } from "./chunk-KYLVZEB2.js";
10
+ import "./chunk-34ONBQTK.js";
11
11
  import {
12
12
  catalogToAstro,
13
13
  checkAndConvertMdToMdx
14
14
  } from "./chunk-7SI5EVOX.js";
15
15
  import {
16
16
  VERSION
17
- } from "./chunk-5RIG3ETK.js";
17
+ } from "./chunk-4EXYGKM6.js";
18
18
  import {
19
19
  isBackstagePluginEnabled,
20
20
  isEventCatalogProEnabled
@@ -8,6 +8,7 @@ import mdxComponents from '@components/MDX/components';
8
8
  import OwnersList from '@components/Lists/OwnersList';
9
9
  import { getOwner } from '@utils/collections/owners';
10
10
  import CustomDocsNav from '@components/SideNav/CustomDocsNav.astro';
11
+ import { getAdjacentPages } from '../utils/custom-docs';
11
12
 
12
13
  const props = Astro.props;
13
14
  const doc = props.data;
@@ -53,12 +54,7 @@ sidebar.forEach((section: SidebarSection) => {
53
54
  }
54
55
  });
55
56
 
56
- // Find current page index in flattened items
57
- const currentIndex = flattenedItems.findIndex((item) => currentSlug === item.slug);
58
-
59
- // Get previous and next items
60
- const prevItem = currentIndex > 0 ? flattenedItems[currentIndex - 1] : null;
61
- const nextItem = currentIndex < flattenedItems.length - 1 ? flattenedItems[currentIndex + 1] : null;
57
+ const { prev, next } = await getAdjacentPages(currentSlug.replace());
62
58
 
63
59
  const ownersRaw = doc?.owners || [];
64
60
  const owners = await Promise.all<ReturnType<typeof getOwner>>(ownersRaw.map(getOwner));
@@ -83,7 +79,7 @@ const badges = doc?.badges || [];
83
79
  </aside>
84
80
 
85
81
  <!-- Main Content Area - Independent scrolling -->
86
- <main class="sidebar-transition w-full max-h-content ml-[22em] 2xl:ml-[24em] mr-80 lg:mr-[26em] max-w-5xl mx-auto">
82
+ <main class="sidebar-transition w-full max-h-content ml-[22em] 2xl:ml-[24em] mr-80 lg:mr-[20em] max-w-5xl mx-auto">
87
83
  <div class="max-w-7xl mx-auto px-6 py-10">
88
84
  <div class="border-b border-gray-200 flex justify-between items-start md:pb-6">
89
85
  <div>
@@ -119,27 +115,27 @@ const badges = doc?.badges || [];
119
115
  <div class="py-8 border-t border-gray-200 mt-8">
120
116
  <div class="flex flex-col sm:flex-row justify-between w-full gap-4">
121
117
  {
122
- prevItem && (
118
+ prev && (
123
119
  <a
124
- href={buildUrl(`/docs/custom/${prevItem.slug}`)}
120
+ href={buildUrl(`/docs/custom/${prev.slug}`)}
125
121
  class="group flex flex-col border border-gray-200 rounded-lg p-4 hover:border-gray-300 hover:bg-gray-50 transition-colors w-full sm:w-1/2"
126
122
  >
127
123
  <span class="text-sm text-gray-500 mb-1">Previous</span>
128
- <span class="font-medium group-hover:text-primary-600 transition-colors">{prevItem.label}</span>
124
+ <span class="font-medium group-hover:text-primary-600 transition-colors">{prev.label}</span>
129
125
  </a>
130
126
  )
131
127
  }
132
128
 
133
- {!prevItem && <div class="w-full sm:w-1/2" />}
129
+ {!prev && <div class="w-full sm:w-1/2" />}
134
130
 
135
131
  {
136
- nextItem && (
132
+ next && (
137
133
  <a
138
- href={buildUrl(`/docs/custom/${nextItem.slug}`)}
134
+ href={buildUrl(`/docs/custom/${next.slug}`)}
139
135
  class="group flex flex-col items-end text-right border border-gray-200 rounded-lg p-4 hover:border-gray-300 hover:bg-gray-50 transition-colors w-full sm:w-1/2"
140
136
  >
141
137
  <span class="text-sm text-gray-500 mb-1">Next</span>
142
- <span class="font-medium group-hover:text-primary-600 transition-colors">{nextItem.label}</span>
138
+ <span class="font-medium group-hover:text-primary-600 transition-colors">{next.label}</span>
143
139
  </a>
144
140
  )
145
141
  }
@@ -150,7 +146,7 @@ const badges = doc?.badges || [];
150
146
 
151
147
  <!-- Right Sidebar TOC -->
152
148
  <aside
153
- class="fixed right-0 top-16 bottom-0 w-96 overflow-y-auto border-l border-gray-100 bg-white p-6 flex-shrink-0 hidden lg:block z-10"
149
+ class="fixed right-0 top-16 bottom-0 w-80 2xl:w-96 overflow-y-auto border-l border-gray-100 bg-white p-6 flex-shrink-0 hidden lg:block z-10"
154
150
  >
155
151
  <div>
156
152
  <div>
@@ -29,6 +29,16 @@ type SideBarConfigurationItem = {
29
29
  collapsed?: boolean;
30
30
  };
31
31
 
32
+ type AdjacentPage = {
33
+ label: string;
34
+ slug: string;
35
+ };
36
+
37
+ type AdjacentPages = {
38
+ prev: AdjacentPage | null;
39
+ next: AdjacentPage | null;
40
+ };
41
+
32
42
  const DOCS_DIR = 'docs';
33
43
 
34
44
  /**
@@ -112,6 +122,72 @@ const processSidebarItems = async (items: SideBarConfigurationItem[]): Promise<S
112
122
  return processedItems;
113
123
  };
114
124
 
125
+ /**
126
+ * Flatten all navigation items into a single array of pages with slugs
127
+ * This is used to find previous and next pages for navigation
128
+ */
129
+ const flattenNavigationItems = (items: SidebarItem[]): AdjacentPage[] => {
130
+ const flatPages: AdjacentPage[] = [];
131
+
132
+ const processItem = (item: SidebarItem) => {
133
+ // Add the current item if it has a slug
134
+ if (item.slug) {
135
+ flatPages.push({
136
+ label: item.label,
137
+ slug: item.slug,
138
+ });
139
+ }
140
+
141
+ // Process nested items if they exist
142
+ if (item.items && item.items.length > 0) {
143
+ item.items.forEach(processItem);
144
+ }
145
+ };
146
+
147
+ items.forEach(processItem);
148
+ return flatPages;
149
+ };
150
+
151
+ /**
152
+ * Get the previous and next pages for a given slug
153
+ * Returns null for prev if it's the first page, and null for next if it's the last page
154
+ */
155
+ export const getAdjacentPages = async (slug: string): Promise<AdjacentPages> => {
156
+ const navigationItems = await getNavigationItems();
157
+ const flatPages = flattenNavigationItems(navigationItems);
158
+
159
+ // Normalize the slug by removing 'docs/' prefix if it exists
160
+ // and ensure consistent formatting with or without leading slash
161
+ let normalizedSlug = slug;
162
+ if (normalizedSlug.startsWith('docs/')) {
163
+ normalizedSlug = normalizedSlug.substring(5); // Remove 'docs/' prefix
164
+ }
165
+
166
+ // Find the current page by comparing normalized slugs
167
+ const currentIndex = flatPages.findIndex((page) => {
168
+ // Normalize page slug for comparison
169
+ let pageSlug = page.slug;
170
+ if (pageSlug.startsWith('/')) {
171
+ pageSlug = pageSlug.substring(1);
172
+ }
173
+
174
+ return pageSlug === normalizedSlug;
175
+ });
176
+
177
+ // If page not found, return null for both prev and next
178
+ if (currentIndex === -1) {
179
+ return { prev: null, next: null };
180
+ }
181
+
182
+ // Get previous page if it exists
183
+ const prev = currentIndex > 0 ? flatPages[currentIndex - 1] : null;
184
+
185
+ // Get next page if it exists
186
+ const next = currentIndex < flatPages.length - 1 ? flatPages[currentIndex + 1] : null;
187
+
188
+ return { prev, next };
189
+ };
190
+
115
191
  export const getNavigationItems = async (): Promise<SidebarItem[]> => {
116
192
  const configuredSidebar = config.customDocs.sidebar;
117
193
  return processSidebarItems(configuredSidebar as SideBarConfigurationItem[]);
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "url": "https://github.com/event-catalog/eventcatalog.git"
7
7
  },
8
8
  "type": "module",
9
- "version": "2.31.2",
9
+ "version": "2.31.3",
10
10
  "publishConfig": {
11
11
  "access": "public"
12
12
  },