@eventcatalog/core 5.0.0-beta.21 → 5.0.0-beta.23
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.
- package/dist/analytics/analytics.cjs +1 -1
- package/dist/analytics/analytics.js +2 -2
- package/dist/analytics/log-build.cjs +1 -1
- package/dist/analytics/log-build.js +3 -3
- package/dist/{chunk-I7F7CPDC.js → chunk-BCPFKOYS.js} +1 -1
- package/dist/{chunk-RIRRWE7D.js → chunk-PL47QVH5.js} +1 -1
- package/dist/{chunk-WHYRRLHE.js → chunk-UEVX7NA7.js} +1 -1
- package/dist/{chunk-OVWDUANF.js → chunk-WTC4GUXU.js} +1 -1
- package/dist/{chunk-W6KDW6ZC.js → chunk-XM7GHRDU.js} +1 -1
- package/dist/constants.cjs +1 -1
- package/dist/constants.js +1 -1
- package/dist/eventcatalog.cjs +1 -1
- package/dist/eventcatalog.js +5 -5
- package/dist/generate.cjs +1 -1
- package/dist/generate.js +3 -3
- package/dist/utils/cli-logger.cjs +1 -1
- package/dist/utils/cli-logger.js +2 -2
- package/eventcatalog/src/content.config.ts +19 -2
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.spec.ts +2 -3
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/index.astro +3 -1
- package/eventcatalog/src/pages/diagrams/[id]/[version]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/diagrams/[id]/[version]/embed.astro +1 -0
- package/eventcatalog/src/pages/diagrams/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/pages/directory/[type]/_index.data.ts +5 -7
- package/eventcatalog/src/pages/directory/[type]/index.astro +3 -1
- package/eventcatalog/src/pages/discover/[type]/_index.data.ts +5 -7
- package/eventcatalog/src/pages/discover/[type]/index.astro +3 -1
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/[filename].astro +3 -1
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/_[filename].data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/examples/[...filename].astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/examples/_[...filename].data.ts +0 -4
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/field-lineage/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/field-lineage/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/[filename].astro +3 -1
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/_[filename].data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/_index.data.spec.ts +2 -3
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/spec/[filename].astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/spec/_[filename].data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/language/[dictionaryId]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/language/[dictionaryId]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/language/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/language/index.astro +1 -0
- package/eventcatalog/src/pages/docs/custom/[...path]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/custom/[...path]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/services/[id]/[docType]/[docId]/index.astro +1 -1
- package/eventcatalog/src/pages/docs/services/[id]/[version]/resources/index.astro +1 -0
- package/eventcatalog/src/pages/docs/services/[id]/asyncapi/[filename].astro +1 -1
- package/eventcatalog/src/pages/docs/services/[id]/changelog/index.astro +1 -1
- package/eventcatalog/src/pages/docs/services/[id]/graphql/[filename].astro +1 -1
- package/eventcatalog/src/pages/docs/services/[id]/spec/[filename].astro +1 -1
- package/eventcatalog/src/pages/docs/teams/[id]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/teams/[id]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/users/[id]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/users/[id]/index.astro +1 -0
- package/eventcatalog/src/pages/schemas/[type]/[id]/[version]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/schemas/[type]/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/pages/schemas/explorer/_index.data.ts +0 -7
- package/eventcatalog/src/pages/schemas/explorer/index.astro +3 -1
- package/eventcatalog/src/pages/triggers/[type]/[id]/[version]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/triggers/[type]/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/data/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/data/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/entity-map/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/entity-map/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/[type]/[id]/_index.data.ts +38 -0
- package/eventcatalog/src/pages/visualiser/[type]/[id]/index.astro +17 -40
- package/eventcatalog/src/pages/visualiser/designs/[id]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/designs/[id]/index.astro +2 -1
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/entity-map/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/entity-map/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/systems-context/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/systems-context/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/context/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/context/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/utils/page-loaders/hybrid-page.ts +4 -15
- package/package.json +2 -2
|
@@ -99,11 +99,4 @@ export class Page extends HybridPage {
|
|
|
99
99
|
|
|
100
100
|
return buildUbiquitousLanguageTermPage({ domain, collection, term }).props;
|
|
101
101
|
}
|
|
102
|
-
|
|
103
|
-
protected static createNotFoundResponse(): Response {
|
|
104
|
-
return new Response(null, {
|
|
105
|
-
status: 404,
|
|
106
|
-
statusText: 'Domain not found',
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
102
|
}
|
|
@@ -16,6 +16,7 @@ export const prerender = Page.prerender;
|
|
|
16
16
|
export const getStaticPaths = Page.getStaticPaths;
|
|
17
17
|
|
|
18
18
|
const props = await Page.getData(Astro);
|
|
19
|
+
if (!props) return Astro.rewrite('/404');
|
|
19
20
|
|
|
20
21
|
const { ubiquitousLanguage } = props;
|
|
21
22
|
const pageTitle = `${props.type} | ${ubiquitousLanguage.name}`.replace(/^\w/, (c) => c.toUpperCase());
|
|
@@ -14,6 +14,7 @@ export const getStaticPaths = Page.getStaticPaths;
|
|
|
14
14
|
|
|
15
15
|
// Get data
|
|
16
16
|
const props = await Page.getData(Astro);
|
|
17
|
+
if (!props) return Astro.rewrite('/404');
|
|
17
18
|
|
|
18
19
|
const pageTitle = `${props.collection} | ${props.data.name}`.replace(/^\w/, (c) => c.toUpperCase());
|
|
19
20
|
const ubiquitousLanguageData = await getUbiquitousLanguageWithSubdomains(props);
|
|
@@ -12,7 +12,7 @@ const { id, docType, docId } = Astro.params;
|
|
|
12
12
|
const version = Astro.props.redirectVersion ?? (id ? await getLatestServiceVersion(id) : undefined);
|
|
13
13
|
|
|
14
14
|
if (!id || !docType || !docId || !version) {
|
|
15
|
-
|
|
15
|
+
return Astro.rewrite('/404');
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
const redirectUrl = buildUrl(`/docs/services/${id}/${version}/${docType}/${docId}`);
|
|
@@ -8,6 +8,7 @@ export const prerender = ServicePage.prerender;
|
|
|
8
8
|
export const getStaticPaths = ServicePage.getStaticPaths;
|
|
9
9
|
|
|
10
10
|
const resourceOwner = await ServicePage.getData(Astro);
|
|
11
|
+
if (!resourceOwner) return Astro.rewrite('/404');
|
|
11
12
|
---
|
|
12
13
|
|
|
13
14
|
<ResourcesPage resourceOwner={resourceOwner} />
|
|
@@ -12,7 +12,7 @@ const { id, filename } = Astro.params;
|
|
|
12
12
|
const version = Astro.props.redirectVersion ?? (id ? await getLatestServiceVersion(id) : undefined);
|
|
13
13
|
|
|
14
14
|
if (!id || !filename || !version) {
|
|
15
|
-
|
|
15
|
+
return Astro.rewrite('/404');
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
const redirectUrl = buildUrl(`/docs/services/${id}/${version}/asyncapi/${filename}`);
|
|
@@ -12,7 +12,7 @@ const { id } = Astro.params;
|
|
|
12
12
|
const version = Astro.props.redirectVersion ?? (id ? await getLatestServiceVersion(id) : undefined);
|
|
13
13
|
|
|
14
14
|
if (!isChangelogEnabled() || !id || !version) {
|
|
15
|
-
|
|
15
|
+
return Astro.rewrite('/404');
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
const redirectUrl = buildUrl(`/docs/services/${id}/${version}/changelog`);
|
|
@@ -12,7 +12,7 @@ const { id, filename } = Astro.params;
|
|
|
12
12
|
const version = Astro.props.redirectVersion ?? (id ? await getLatestServiceVersion(id) : undefined);
|
|
13
13
|
|
|
14
14
|
if (!id || !filename || !version) {
|
|
15
|
-
|
|
15
|
+
return Astro.rewrite('/404');
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
const redirectUrl = buildUrl(`/docs/services/${id}/${version}/graphql/${filename}`);
|
|
@@ -12,7 +12,7 @@ const { id, filename } = Astro.params;
|
|
|
12
12
|
const version = Astro.props.redirectVersion ?? (id ? await getLatestServiceVersion(id) : undefined);
|
|
13
13
|
|
|
14
14
|
if (!id || !filename || !version) {
|
|
15
|
-
|
|
15
|
+
return Astro.rewrite('/404');
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
const redirectUrl = buildUrl(`/docs/services/${id}/${version}/spec/${filename}`);
|
|
@@ -34,6 +34,7 @@ export const getStaticPaths = Page.getStaticPaths;
|
|
|
34
34
|
|
|
35
35
|
// Get data
|
|
36
36
|
const props = await Page.getData(Astro);
|
|
37
|
+
if (!props) return Astro.rewrite('/404');
|
|
37
38
|
const { type, data } = props as { type: PageTypes; data: any };
|
|
38
39
|
|
|
39
40
|
// Check if this is a data product with a contract
|
|
@@ -34,11 +34,4 @@ export class Page extends HybridPage {
|
|
|
34
34
|
protected static hasValidProps(props: any): boolean {
|
|
35
35
|
return props && props.schemas !== undefined;
|
|
36
36
|
}
|
|
37
|
-
|
|
38
|
-
protected static createNotFoundResponse(): Response {
|
|
39
|
-
return new Response(null, {
|
|
40
|
-
status: 404,
|
|
41
|
-
statusText: 'Schema explorer not found',
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
37
|
}
|
|
@@ -8,7 +8,9 @@ import '@eventcatalog/visualiser/styles-core.css';
|
|
|
8
8
|
export const prerender = Page.prerender;
|
|
9
9
|
export const getStaticPaths = Page.getStaticPaths;
|
|
10
10
|
|
|
11
|
-
const
|
|
11
|
+
const pageData = await Page.getData(Astro);
|
|
12
|
+
if (!pageData) return Astro.rewrite('/404');
|
|
13
|
+
const { schemas } = pageData;
|
|
12
14
|
---
|
|
13
15
|
|
|
14
16
|
<VerticalSideBarLayout title="Schema Explorer" showNestedSideBar={false}>
|
|
@@ -56,11 +56,4 @@ export class Page extends HybridPage {
|
|
|
56
56
|
const hasTriggerPaths = getMessagesWithTriggerPaths(receivers, allMessages).includes(item);
|
|
57
57
|
return hasTriggerPaths ? { type, ...item } : null;
|
|
58
58
|
}
|
|
59
|
-
|
|
60
|
-
protected static createNotFoundResponse(): Response {
|
|
61
|
-
return new Response(null, {
|
|
62
|
-
status: 404,
|
|
63
|
-
statusText: 'Message trigger paths not found',
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
59
|
}
|
|
@@ -18,6 +18,7 @@ export const prerender = Page.prerender;
|
|
|
18
18
|
export const getStaticPaths = Page.getStaticPaths;
|
|
19
19
|
|
|
20
20
|
const props = await Page.getData(Astro);
|
|
21
|
+
if (!props) return Astro.rewrite('/404');
|
|
21
22
|
const { data } = props as CollectionEntry<CollectionMessageTypes>;
|
|
22
23
|
const currentMessage = props as CollectionEntry<CollectionMessageTypes>;
|
|
23
24
|
|
|
@@ -81,13 +81,6 @@ export class Page extends HybridPage {
|
|
|
81
81
|
};
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
protected static createNotFoundResponse(): Response {
|
|
85
|
-
return new Response(null, {
|
|
86
|
-
status: 404,
|
|
87
|
-
statusText: 'Visualiser page not found',
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
|
|
91
84
|
static get clientAuthScript(): string {
|
|
92
85
|
if (!isAuthEnabled() || !isVisualiserEnabled()) {
|
|
93
86
|
return '';
|
|
@@ -50,13 +50,6 @@ export class Page extends HybridPage {
|
|
|
50
50
|
return item;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
protected static createNotFoundResponse(): Response {
|
|
54
|
-
return new Response(null, {
|
|
55
|
-
status: 404,
|
|
56
|
-
statusText: 'Service data page not found',
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
|
|
60
53
|
static get clientAuthScript(): string {
|
|
61
54
|
if (!isAuthEnabled() || !isVisualiserEnabled()) {
|
|
62
55
|
return '';
|
|
@@ -8,6 +8,7 @@ export const getStaticPaths = Page.getStaticPaths;
|
|
|
8
8
|
|
|
9
9
|
// Get data
|
|
10
10
|
const props = await Page.getData(Astro);
|
|
11
|
+
if (!props) return Astro.rewrite('/404');
|
|
11
12
|
|
|
12
13
|
// The service's data stores are shown at level 2 of its visualiser page
|
|
13
14
|
return Astro.redirect(buildUrl(`/visualiser/services/${props.data.id}/${props.data.version}?level=2`));
|
|
@@ -47,13 +47,6 @@ export class Page extends HybridPage {
|
|
|
47
47
|
return item;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
protected static createNotFoundResponse(): Response {
|
|
51
|
-
return new Response(null, {
|
|
52
|
-
status: 404,
|
|
53
|
-
statusText: 'Service entity map page not found',
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
|
|
57
50
|
static get clientAuthScript(): string {
|
|
58
51
|
if (!isAuthEnabled() || !isVisualiserEnabled()) {
|
|
59
52
|
return '';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { PageTypes } from '@types';
|
|
2
|
+
import { isVisualiserEnabled } from '@utils/feature';
|
|
3
|
+
import { pageDataLoader } from '@utils/page-loaders/page-data-loader';
|
|
4
|
+
|
|
5
|
+
/** Resources with a visualiser page (domains and systems have their own, under the same URLs) */
|
|
6
|
+
const VISUALISER_TYPES: PageTypes[] = [
|
|
7
|
+
'domains',
|
|
8
|
+
'systems',
|
|
9
|
+
'agents',
|
|
10
|
+
'services',
|
|
11
|
+
'events',
|
|
12
|
+
'commands',
|
|
13
|
+
'queries',
|
|
14
|
+
'flows',
|
|
15
|
+
'containers',
|
|
16
|
+
'channels',
|
|
17
|
+
'data-products',
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
const isVisualiserType = (type: string | undefined): type is PageTypes => VISUALISER_TYPES.includes(type as PageTypes);
|
|
21
|
+
|
|
22
|
+
const getLatestWithVisualiser = async (type: PageTypes) =>
|
|
23
|
+
(await pageDataLoader[type]({ getAllVersions: false })).filter((item) => (item.data as any).visualiser !== false);
|
|
24
|
+
|
|
25
|
+
/** The latest version of every resource with a visualiser page: the pages a static build redirects from */
|
|
26
|
+
export const getVisualiserResources = async () => {
|
|
27
|
+
if (!isVisualiserEnabled()) return [];
|
|
28
|
+
const resources = await Promise.all(
|
|
29
|
+
VISUALISER_TYPES.map(async (type) => (await getLatestWithVisualiser(type)).map((item) => ({ type, item })))
|
|
30
|
+
);
|
|
31
|
+
return resources.flat();
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/** The latest version of a resource with a visualiser page, looked up from its URL (a server renders pages on request) */
|
|
35
|
+
export const findVisualiserResource = async (type: string | undefined, id: string | undefined) => {
|
|
36
|
+
if (!isVisualiserEnabled() || !isVisualiserType(type) || !id) return undefined;
|
|
37
|
+
return (await getLatestWithVisualiser(type)).find((item) => item.data.id === id);
|
|
38
|
+
};
|
|
@@ -1,53 +1,30 @@
|
|
|
1
1
|
---
|
|
2
2
|
import Seo from '@components/Seo.astro';
|
|
3
3
|
import { buildUrl } from '@utils/url-builder';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { getServices } from '@utils/collections/services';
|
|
7
|
-
import { getDomains } from '@utils/collections/domains';
|
|
8
|
-
import { getContainers } from '@utils/collections/containers';
|
|
9
|
-
import type { CollectionEntry } from 'astro:content';
|
|
10
|
-
import type { CollectionTypes } from '@types';
|
|
11
|
-
import { isVisualiserEnabled } from '@utils/feature';
|
|
4
|
+
import { isSSR } from '@utils/feature';
|
|
5
|
+
import { findVisualiserResource, getVisualiserResources } from './_index.data';
|
|
12
6
|
|
|
13
|
-
export
|
|
14
|
-
if (!isVisualiserEnabled()) {
|
|
15
|
-
return [];
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const [events, commands, services, domains, containers] = await Promise.all([
|
|
19
|
-
getEvents(),
|
|
20
|
-
getCommands(),
|
|
21
|
-
getServices(),
|
|
22
|
-
getDomains(),
|
|
23
|
-
getContainers(),
|
|
24
|
-
]);
|
|
7
|
+
export const prerender = !isSSR();
|
|
25
8
|
|
|
26
|
-
|
|
27
|
-
const
|
|
9
|
+
export async function getStaticPaths() {
|
|
10
|
+
const resources = await getVisualiserResources();
|
|
11
|
+
return resources.map(({ type, item }) => ({ params: { type, id: item.data.id }, props: item }));
|
|
12
|
+
}
|
|
28
13
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
params: {
|
|
32
|
-
type: item.collection,
|
|
33
|
-
id: item.data.id,
|
|
34
|
-
},
|
|
35
|
-
props: {
|
|
36
|
-
type: item.collection,
|
|
37
|
-
...item,
|
|
38
|
-
},
|
|
39
|
-
}));
|
|
40
|
-
};
|
|
14
|
+
// A static build gets the resource from getStaticPaths; a server, which has no static paths, looks it up
|
|
15
|
+
const resource = isSSR() ? await findVisualiserResource(Astro.params.type, Astro.params.id) : Astro.props;
|
|
41
16
|
|
|
42
|
-
|
|
17
|
+
if (!resource?.data) {
|
|
18
|
+
return new Response(null, { status: 404, statusText: 'Not found' });
|
|
43
19
|
}
|
|
44
20
|
|
|
45
|
-
const
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
const { pathname } = Astro.url;
|
|
21
|
+
const pageTitle = `${resource.collection} | ${resource.data.name}`.replace(/^\w/, (c) => c.toUpperCase());
|
|
22
|
+
const redirectUrl = buildUrl(`${Astro.url.pathname.replace(/\/$/, '')}/${resource.data.latestVersion}`, false, true);
|
|
49
23
|
|
|
50
|
-
|
|
24
|
+
// A server redirects straight away (with any query string); a static page redirects in the browser
|
|
25
|
+
if (isSSR()) {
|
|
26
|
+
return Astro.redirect(`${redirectUrl}${Astro.url.search}`);
|
|
27
|
+
}
|
|
51
28
|
---
|
|
52
29
|
|
|
53
30
|
<!doctype html>
|
|
@@ -45,13 +45,6 @@ export class Page extends HybridPage {
|
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
protected static createNotFoundResponse(): Response {
|
|
49
|
-
return new Response(null, {
|
|
50
|
-
status: 404,
|
|
51
|
-
statusText: 'Design not found',
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
|
|
55
48
|
static get clientAuthScript(): string {
|
|
56
49
|
if (!isAuthEnabled() || !isVisualiserEnabled()) {
|
|
57
50
|
return '';
|
|
@@ -13,7 +13,8 @@ const isChatEnabled = isEventCatalogChatVisible();
|
|
|
13
13
|
export const prerender = Page.prerender;
|
|
14
14
|
export const getStaticPaths = Page.getStaticPaths;
|
|
15
15
|
|
|
16
|
-
const props = Astro
|
|
16
|
+
const props = await Page.getData(Astro);
|
|
17
|
+
if (!props) return Astro.rewrite('/404');
|
|
17
18
|
|
|
18
19
|
const { data } = props;
|
|
19
20
|
---
|
|
@@ -47,13 +47,6 @@ export class Page extends HybridPage {
|
|
|
47
47
|
return item;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
protected static createNotFoundResponse(): Response {
|
|
51
|
-
return new Response(null, {
|
|
52
|
-
status: 404,
|
|
53
|
-
statusText: 'Domain entity map page not found',
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
|
|
57
50
|
static get clientAuthScript(): string {
|
|
58
51
|
if (!isAuthEnabled() || !isVisualiserEnabled()) {
|
|
59
52
|
return '';
|
package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/systems-context/_index.data.ts
CHANGED
|
@@ -58,13 +58,6 @@ export class Page extends HybridPage {
|
|
|
58
58
|
return item;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
protected static createNotFoundResponse(): Response {
|
|
62
|
-
return new Response(null, {
|
|
63
|
-
status: 404,
|
|
64
|
-
statusText: 'Domain System Diagram page not found',
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
|
|
68
61
|
static get clientAuthScript(): string {
|
|
69
62
|
if (!isAuthEnabled() || !isVisualiserEnabled()) {
|
|
70
63
|
return '';
|
package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/systems-context/index.astro
CHANGED
|
@@ -8,6 +8,7 @@ export const getStaticPaths = Page.getStaticPaths;
|
|
|
8
8
|
|
|
9
9
|
// Get data
|
|
10
10
|
const props = await Page.getData(Astro);
|
|
11
|
+
if (!props) return Astro.rewrite('/404');
|
|
11
12
|
|
|
12
13
|
// The System Diagram is now level 1 of the domain's visualiser page
|
|
13
14
|
return Astro.redirect(buildUrl(`/visualiser/domains/${props.data.id}/${props.data.version}?level=1`));
|
|
@@ -61,13 +61,6 @@ export class Page extends HybridPage {
|
|
|
61
61
|
return item;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
protected static createNotFoundResponse(): Response {
|
|
65
|
-
return new Response(null, {
|
|
66
|
-
status: 404,
|
|
67
|
-
statusText: 'System Diagram page not found',
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
|
|
71
64
|
static get clientAuthScript(): string {
|
|
72
65
|
if (!isAuthEnabled() || !isVisualiserEnabled()) {
|
|
73
66
|
return '';
|
|
@@ -8,6 +8,7 @@ export const getStaticPaths = Page.getStaticPaths;
|
|
|
8
8
|
|
|
9
9
|
// Get data
|
|
10
10
|
const props = await Page.getData(Astro);
|
|
11
|
+
if (!props) return Astro.rewrite('/404');
|
|
11
12
|
|
|
12
13
|
// The System Context diagram is now level 1 of the system's visualiser page
|
|
13
14
|
return Astro.redirect(buildUrl(`/visualiser/systems/${props.data.id}/${props.data.version}?level=1`));
|
|
@@ -24,7 +24,9 @@ export class HybridPage<T = any> {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
27
|
+
* The page's data: its props in a static build, or looked up from its URL on a server. Undefined
|
|
28
|
+
* when nothing matches (an unknown resource or version): the page then returns
|
|
29
|
+
* `Astro.rewrite('/404')`. Throwing a Response instead made Astro answer with an empty 500.
|
|
28
30
|
*/
|
|
29
31
|
static async getData(astro: AstroGlobal): Promise<any> {
|
|
30
32
|
// Try props first (static mode)
|
|
@@ -32,13 +34,7 @@ export class HybridPage<T = any> {
|
|
|
32
34
|
return this.transformProps(astro.props);
|
|
33
35
|
}
|
|
34
36
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
if (!data) {
|
|
38
|
-
throw this.createNotFoundResponse();
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return data;
|
|
37
|
+
return (await this.fetchData(astro.params)) ?? undefined;
|
|
42
38
|
}
|
|
43
39
|
|
|
44
40
|
/**
|
|
@@ -58,11 +54,4 @@ export class HybridPage<T = any> {
|
|
|
58
54
|
protected static transformProps(props: any): any {
|
|
59
55
|
return props;
|
|
60
56
|
}
|
|
61
|
-
|
|
62
|
-
protected static createNotFoundResponse(): Response {
|
|
63
|
-
return new Response(null, {
|
|
64
|
-
status: 404,
|
|
65
|
-
statusText: 'Not found',
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
57
|
}
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
},
|
|
8
8
|
"license": "BUSL-1.1",
|
|
9
9
|
"type": "module",
|
|
10
|
-
"version": "5.0.0-beta.
|
|
10
|
+
"version": "5.0.0-beta.23",
|
|
11
11
|
"publishConfig": {
|
|
12
12
|
"access": "public"
|
|
13
13
|
},
|
|
@@ -143,7 +143,7 @@
|
|
|
143
143
|
"zod": "^4.3.6",
|
|
144
144
|
"@eventcatalog/sdk": "2.30.0-beta.1",
|
|
145
145
|
"@eventcatalog/visualiser": "^5.0.0-beta.6",
|
|
146
|
-
"@eventcatalog/linter": "1.2.0-beta.
|
|
146
|
+
"@eventcatalog/linter": "1.2.0-beta.4"
|
|
147
147
|
},
|
|
148
148
|
"devDependencies": {
|
|
149
149
|
"@astrojs/check": "^0.9.10",
|