@eventcatalog/core 3.44.0 → 3.44.2
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-SWSSBJ6H.js → chunk-BLJ5FRR3.js} +1 -1
- package/dist/{chunk-L2JZBH6K.js → chunk-IU3D7JRW.js} +1 -1
- package/dist/{chunk-H7IGB2WO.js → chunk-LIIOK6SZ.js} +1 -1
- package/dist/{chunk-A7WJATRV.js → chunk-RUACTEJR.js} +1 -1
- package/dist/{chunk-W7UIDHNR.js → chunk-THDZCUFV.js} +1 -1
- package/dist/constants.cjs +1 -1
- package/dist/constants.js +1 -1
- package/dist/docs/development/guides/owners/users/02-adding-users.md +1 -2
- 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/public/icons/azure.svg +23 -0
- package/eventcatalog/src/components/EnvironmentDropdown.test.ts +64 -0
- package/eventcatalog/src/components/EnvironmentDropdown.tsx +45 -13
- package/eventcatalog/src/components/Tables/columns/DirectorySourceColumn.tsx +58 -23
- package/eventcatalog/src/content.config.ts +2 -1
- package/eventcatalog/src/pages/docs/teams/[id]/index.astro +7 -1
- package/eventcatalog/src/pages/docs/users/[id]/index.astro +7 -1
- package/package.json +8 -8
|
@@ -140,7 +140,7 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
|
|
|
140
140
|
var import_os = __toESM(require("os"), 1);
|
|
141
141
|
|
|
142
142
|
// package.json
|
|
143
|
-
var version = "3.44.
|
|
143
|
+
var version = "3.44.2";
|
|
144
144
|
|
|
145
145
|
// src/constants.ts
|
|
146
146
|
var VERSION = version;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
log_build_default
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-BLJ5FRR3.js";
|
|
4
|
+
import "../chunk-LIIOK6SZ.js";
|
|
5
5
|
import "../chunk-DAOXTQVS.js";
|
|
6
|
-
import "../chunk-
|
|
6
|
+
import "../chunk-THDZCUFV.js";
|
|
7
7
|
import "../chunk-6QENHZZP.js";
|
|
8
8
|
export {
|
|
9
9
|
log_build_default as default
|
package/dist/constants.cjs
CHANGED
package/dist/constants.js
CHANGED
|
@@ -32,7 +32,7 @@ id: dboyne
|
|
|
32
32
|
# display name for the user
|
|
33
33
|
name: David Boyne
|
|
34
34
|
|
|
35
|
-
# URL path for a profile image
|
|
35
|
+
# optional URL path for a profile image
|
|
36
36
|
avatarUrl: "https://pbs.twimg.com/profile_images/1262283153563140096/DYRDqKg6_400x400.png"
|
|
37
37
|
|
|
38
38
|
# users role in the company
|
|
@@ -67,4 +67,3 @@ It's entirely up to you what you want to add to your users markdown content but
|
|
|
67
67
|
|
|
68
68
|
- Context of the user. Who are they?
|
|
69
69
|
- Contact info for the user?
|
|
70
|
-
|
package/dist/eventcatalog.cjs
CHANGED
|
@@ -144,7 +144,7 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
|
|
|
144
144
|
var import_picocolors = __toESM(require("picocolors"), 1);
|
|
145
145
|
|
|
146
146
|
// package.json
|
|
147
|
-
var version = "3.44.
|
|
147
|
+
var version = "3.44.2";
|
|
148
148
|
|
|
149
149
|
// src/constants.ts
|
|
150
150
|
var VERSION = version;
|
package/dist/eventcatalog.js
CHANGED
|
@@ -13,8 +13,8 @@ import {
|
|
|
13
13
|
} from "./chunk-3H2RT3CM.js";
|
|
14
14
|
import {
|
|
15
15
|
log_build_default
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-BLJ5FRR3.js";
|
|
17
|
+
import "./chunk-LIIOK6SZ.js";
|
|
18
18
|
import "./chunk-DAOXTQVS.js";
|
|
19
19
|
import {
|
|
20
20
|
catalogToAstro
|
|
@@ -28,13 +28,13 @@ import {
|
|
|
28
28
|
} from "./chunk-B7HCX5HM.js";
|
|
29
29
|
import {
|
|
30
30
|
generate
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-RUACTEJR.js";
|
|
32
32
|
import {
|
|
33
33
|
logger
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-IU3D7JRW.js";
|
|
35
35
|
import {
|
|
36
36
|
VERSION
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-THDZCUFV.js";
|
|
38
38
|
import {
|
|
39
39
|
getEventCatalogConfigFile,
|
|
40
40
|
verifyRequiredFieldsAreInCatalogConfigFile
|
package/dist/generate.cjs
CHANGED
|
@@ -108,7 +108,7 @@ var getEventCatalogConfigFile = async (projectDirectory) => {
|
|
|
108
108
|
var import_picocolors = __toESM(require("picocolors"), 1);
|
|
109
109
|
|
|
110
110
|
// package.json
|
|
111
|
-
var version = "3.44.
|
|
111
|
+
var version = "3.44.2";
|
|
112
112
|
|
|
113
113
|
// src/constants.ts
|
|
114
114
|
var VERSION = version;
|
package/dist/generate.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
generate
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-RUACTEJR.js";
|
|
4
|
+
import "./chunk-IU3D7JRW.js";
|
|
5
|
+
import "./chunk-THDZCUFV.js";
|
|
6
6
|
import "./chunk-6QENHZZP.js";
|
|
7
7
|
export {
|
|
8
8
|
generate
|
package/dist/utils/cli-logger.js
CHANGED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<svg viewBox="0 0 96 96" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="a" x1="-1032.17" x2="-1059.21" y1="145.31" y2="65.43" gradientTransform="matrix(1 0 0 -1 1075 158)" gradientUnits="userSpaceOnUse">
|
|
4
|
+
<stop offset="0" stop-color="#114a8b"/>
|
|
5
|
+
<stop offset="1" stop-color="#0669bc"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<linearGradient id="b" x1="-1023.73" x2="-1029.98" y1="108.08" y2="105.97" gradientTransform="matrix(1 0 0 -1 1075 158)" gradientUnits="userSpaceOnUse">
|
|
8
|
+
<stop offset="0" stop-opacity=".3"/>
|
|
9
|
+
<stop offset=".07" stop-opacity=".2"/>
|
|
10
|
+
<stop offset=".32" stop-opacity=".1"/>
|
|
11
|
+
<stop offset=".62" stop-opacity=".05"/>
|
|
12
|
+
<stop offset="1" stop-opacity="0"/>
|
|
13
|
+
</linearGradient>
|
|
14
|
+
<linearGradient id="c" x1="-1027.16" x2="-997.48" y1="147.64" y2="68.56" gradientTransform="matrix(1 0 0 -1 1075 158)" gradientUnits="userSpaceOnUse">
|
|
15
|
+
<stop offset="0" stop-color="#3ccbf4"/>
|
|
16
|
+
<stop offset="1" stop-color="#2892df"/>
|
|
17
|
+
</linearGradient>
|
|
18
|
+
</defs>
|
|
19
|
+
<path fill="url(#a)" d="M33.34 6.54h26.04l-27.03 80.1a4.15 4.15 0 0 1-3.94 2.81H8.15a4.14 4.14 0 0 1-3.93-5.47L29.4 9.38a4.15 4.15 0 0 1 3.94-2.83z"/>
|
|
20
|
+
<path fill="#0078d4" d="M71.17 60.26H29.88a1.91 1.91 0 0 0-1.3 3.31l26.53 24.76a4.17 4.17 0 0 0 2.85 1.13h23.38z"/>
|
|
21
|
+
<path fill="url(#b)" d="M33.34 6.54a4.12 4.12 0 0 0-3.95 2.88L4.25 83.92a4.14 4.14 0 0 0 3.91 5.54h20.79a4.44 4.44 0 0 0 3.4-2.9l5.02-14.78 17.91 16.7a4.24 4.24 0 0 0 2.67.97h23.29L71.02 60.26H41.24L59.47 6.55z"/>
|
|
22
|
+
<path fill="url(#c)" d="M66.6 9.36a4.14 4.14 0 0 0-3.93-2.82H33.65a4.15 4.15 0 0 1 3.93 2.82l25.18 74.62a4.15 4.15 0 0 1-3.93 5.48h29.02a4.15 4.15 0 0 0 3.93-5.48z"/>
|
|
23
|
+
</svg>
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { buildEnvironmentUrl, findCurrentEnvironment } from './EnvironmentDropdown';
|
|
3
|
+
|
|
4
|
+
const environments = [
|
|
5
|
+
{
|
|
6
|
+
name: 'Development',
|
|
7
|
+
url: 'https://example.com/event-catalog/dev',
|
|
8
|
+
shortName: 'Dev',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: 'UAT',
|
|
12
|
+
url: 'https://example.com/event-catalog/uat',
|
|
13
|
+
shortName: 'UAT',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: 'Production',
|
|
17
|
+
url: 'https://example.com/event-catalog/prod',
|
|
18
|
+
shortName: 'Prod',
|
|
19
|
+
},
|
|
20
|
+
];
|
|
21
|
+
|
|
22
|
+
describe('EnvironmentDropdown', () => {
|
|
23
|
+
it('finds the current environment when environments share an origin but use different base paths', () => {
|
|
24
|
+
expect(findCurrentEnvironment(environments, 'https://example.com/event-catalog/uat/services/foo')?.name).toBe('UAT');
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('builds environment urls by replacing the current environment base path', () => {
|
|
28
|
+
expect(
|
|
29
|
+
buildEnvironmentUrl(
|
|
30
|
+
'https://example.com/event-catalog/prod',
|
|
31
|
+
'https://example.com/event-catalog/uat/services/foo',
|
|
32
|
+
'https://example.com/event-catalog/uat'
|
|
33
|
+
)
|
|
34
|
+
).toBe('https://example.com/event-catalog/prod/services/foo');
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('preserves search params and hashes when switching environments', () => {
|
|
38
|
+
expect(
|
|
39
|
+
buildEnvironmentUrl(
|
|
40
|
+
'https://example.com/event-catalog/prod',
|
|
41
|
+
'https://example.com/event-catalog/uat/services/foo?tab=messages#latest',
|
|
42
|
+
'https://example.com/event-catalog/uat'
|
|
43
|
+
)
|
|
44
|
+
).toBe('https://example.com/event-catalog/prod/services/foo?tab=messages#latest');
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it('keeps existing origin based environment switching for root catalogs', () => {
|
|
48
|
+
expect(
|
|
49
|
+
buildEnvironmentUrl('https://prod.example.com', 'https://uat.example.com/services/foo', 'https://uat.example.com')
|
|
50
|
+
).toBe('https://prod.example.com/services/foo');
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it('switches from a root catalog to a subpath catalog', () => {
|
|
54
|
+
expect(buildEnvironmentUrl('https://example.com/prod', 'https://example.com/services/foo', 'https://example.com')).toBe(
|
|
55
|
+
'https://example.com/prod/services/foo'
|
|
56
|
+
);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it('preserves the current path when the current environment is unknown', () => {
|
|
60
|
+
expect(buildEnvironmentUrl('https://example.com/prod', 'http://localhost:3000/services/foo')).toBe(
|
|
61
|
+
'https://example.com/prod/services/foo'
|
|
62
|
+
);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
@@ -11,20 +11,56 @@ interface EnvironmentDropdownProps {
|
|
|
11
11
|
environments: Environment[];
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
const stripTrailingSlash = (pathname: string) => pathname.replace(/\/$/, '') || '/';
|
|
15
|
+
|
|
16
|
+
const startsWithPath = (pathname: string, basePathname: string) =>
|
|
17
|
+
basePathname === '/' || pathname === basePathname || pathname.startsWith(`${basePathname}/`);
|
|
18
|
+
|
|
19
|
+
export const findCurrentEnvironment = (environments: Environment[], currentHref: string) => {
|
|
20
|
+
const currentUrl = new URL(currentHref);
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
environments
|
|
24
|
+
.filter((env) => {
|
|
25
|
+
const envUrl = new URL(env.url, currentUrl.href);
|
|
26
|
+
const envPathname = stripTrailingSlash(envUrl.pathname);
|
|
27
|
+
|
|
28
|
+
return envUrl.origin === currentUrl.origin && startsWithPath(currentUrl.pathname, envPathname);
|
|
29
|
+
})
|
|
30
|
+
.sort(
|
|
31
|
+
(a, b) =>
|
|
32
|
+
stripTrailingSlash(new URL(b.url, currentUrl.href).pathname).length -
|
|
33
|
+
stripTrailingSlash(new URL(a.url, currentUrl.href).pathname).length
|
|
34
|
+
)[0] || null
|
|
35
|
+
);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export const buildEnvironmentUrl = (environmentUrl: string, currentHref: string, currentEnvironmentUrl?: string) => {
|
|
39
|
+
const currentUrl = new URL(currentHref);
|
|
40
|
+
const targetUrl = new URL(environmentUrl, currentUrl.href);
|
|
41
|
+
const targetBasePathname = stripTrailingSlash(targetUrl.pathname);
|
|
42
|
+
const currentBasePathname = currentEnvironmentUrl
|
|
43
|
+
? stripTrailingSlash(new URL(currentEnvironmentUrl, currentUrl.href).pathname)
|
|
44
|
+
: undefined;
|
|
45
|
+
const pathWithinEnvironment =
|
|
46
|
+
currentBasePathname && currentBasePathname !== '/' && startsWithPath(currentUrl.pathname, currentBasePathname)
|
|
47
|
+
? currentUrl.pathname.slice(currentBasePathname.length)
|
|
48
|
+
: currentUrl.pathname;
|
|
49
|
+
|
|
50
|
+
targetUrl.pathname = `${targetBasePathname}${pathWithinEnvironment}`.replace(/\/+/g, '/');
|
|
51
|
+
targetUrl.search = currentUrl.search;
|
|
52
|
+
targetUrl.hash = currentUrl.hash;
|
|
53
|
+
|
|
54
|
+
return targetUrl.toString();
|
|
55
|
+
};
|
|
56
|
+
|
|
14
57
|
export const EnvironmentDropdown: React.FC<EnvironmentDropdownProps> = ({ environments }) => {
|
|
15
58
|
const [isOpen, setIsOpen] = useState(false);
|
|
16
59
|
const [currentEnvironment, setCurrentEnvironment] = useState<Environment | null>(null);
|
|
17
60
|
const dropdownRef = useRef<HTMLDivElement>(null);
|
|
18
61
|
|
|
19
62
|
useEffect(() => {
|
|
20
|
-
|
|
21
|
-
const currentUrl = window.location.origin;
|
|
22
|
-
const matchedEnv = environments.find((env) => {
|
|
23
|
-
// Normalize URLs for comparison
|
|
24
|
-
const envUrl = new URL(env.url).origin;
|
|
25
|
-
return envUrl === currentUrl;
|
|
26
|
-
});
|
|
27
|
-
setCurrentEnvironment(matchedEnv || null);
|
|
63
|
+
setCurrentEnvironment(findCurrentEnvironment(environments, window.location.href));
|
|
28
64
|
}, [environments]);
|
|
29
65
|
|
|
30
66
|
useEffect(() => {
|
|
@@ -99,11 +135,7 @@ export const EnvironmentDropdown: React.FC<EnvironmentDropdownProps> = ({ enviro
|
|
|
99
135
|
href={env.url}
|
|
100
136
|
onClick={(e) => {
|
|
101
137
|
e.preventDefault();
|
|
102
|
-
|
|
103
|
-
const currentPath = window.location.pathname + window.location.search + window.location.hash;
|
|
104
|
-
const targetUrl = new URL(env.url);
|
|
105
|
-
targetUrl.pathname = currentPath;
|
|
106
|
-
window.location.href = targetUrl.toString();
|
|
138
|
+
window.location.href = buildEnvironmentUrl(env.url, window.location.href, currentEnvironment?.url);
|
|
107
139
|
}}
|
|
108
140
|
className={`block rounded-xl px-3 py-3 transition-colors ${
|
|
109
141
|
isCurrentEnv
|
|
@@ -1,39 +1,74 @@
|
|
|
1
1
|
import { FileText, Github } from 'lucide-react';
|
|
2
|
+
import { buildUrl } from '@utils/url-builder';
|
|
3
|
+
import type { ReactNode } from 'react';
|
|
2
4
|
|
|
3
5
|
type DirectorySource = {
|
|
4
6
|
provider: string;
|
|
7
|
+
id?: string;
|
|
5
8
|
url?: string;
|
|
6
9
|
};
|
|
7
10
|
|
|
11
|
+
const sourceLabels: Record<string, string> = {
|
|
12
|
+
github: 'GitHub',
|
|
13
|
+
'microsoft-entra': 'Microsoft Entra ID',
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const getSourceLabel = (source: DirectorySource) => sourceLabels[source.provider] ?? source.provider;
|
|
17
|
+
|
|
18
|
+
const SourceBadge = ({ source, icon }: { source: DirectorySource; icon: ReactNode }) => {
|
|
19
|
+
const label = getSourceLabel(source);
|
|
20
|
+
const title = `Synced from ${label}`;
|
|
21
|
+
|
|
22
|
+
if (source.url) {
|
|
23
|
+
return (
|
|
24
|
+
<a
|
|
25
|
+
href={source.url}
|
|
26
|
+
target="_blank"
|
|
27
|
+
rel="noreferrer"
|
|
28
|
+
className="group/source inline-flex h-7 w-7 items-center justify-center rounded-md border border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-page-bg)/0.35)] transition-colors hover:bg-[rgb(var(--ec-content-hover))]"
|
|
29
|
+
title={title}
|
|
30
|
+
aria-label={title}
|
|
31
|
+
>
|
|
32
|
+
{icon}
|
|
33
|
+
</a>
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return (
|
|
38
|
+
<span
|
|
39
|
+
className="inline-flex h-7 w-7 items-center justify-center rounded-md border border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-page-bg)/0.35)]"
|
|
40
|
+
title={title}
|
|
41
|
+
aria-label={title}
|
|
42
|
+
>
|
|
43
|
+
{icon}
|
|
44
|
+
</span>
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
|
|
8
48
|
export const DirectorySourceCell = ({ source }: { source?: DirectorySource }) => {
|
|
9
49
|
if (source?.provider === 'github') {
|
|
10
|
-
|
|
11
|
-
<
|
|
50
|
+
return (
|
|
51
|
+
<SourceBadge
|
|
52
|
+
source={source}
|
|
53
|
+
icon={
|
|
54
|
+
<Github className="h-4 w-4 text-[rgb(var(--ec-icon-color))] transition-colors group-hover/source:text-[rgb(var(--ec-page-text))]" />
|
|
55
|
+
}
|
|
56
|
+
/>
|
|
12
57
|
);
|
|
58
|
+
}
|
|
13
59
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
href={source.url}
|
|
18
|
-
target="_blank"
|
|
19
|
-
rel="noreferrer"
|
|
20
|
-
className="group/source inline-flex h-7 w-7 items-center justify-center rounded-md border border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-page-bg)/0.35)] transition-colors hover:bg-[rgb(var(--ec-content-hover))]"
|
|
21
|
-
title="Synced from GitHub"
|
|
22
|
-
aria-label="Synced from GitHub"
|
|
23
|
-
>
|
|
24
|
-
{icon}
|
|
25
|
-
</a>
|
|
26
|
-
);
|
|
27
|
-
}
|
|
60
|
+
if (source?.provider === 'microsoft-entra') {
|
|
61
|
+
return <SourceBadge source={source} icon={<img src={buildUrl('/icons/azure.svg', true)} alt="" className="h-4 w-4" />} />;
|
|
62
|
+
}
|
|
28
63
|
|
|
64
|
+
if (source) {
|
|
29
65
|
return (
|
|
30
|
-
<
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
</span>
|
|
66
|
+
<SourceBadge
|
|
67
|
+
source={source}
|
|
68
|
+
icon={
|
|
69
|
+
<FileText className="h-4 w-4 text-[rgb(var(--ec-icon-color))] transition-colors group-hover/source:text-[rgb(var(--ec-page-text))]" />
|
|
70
|
+
}
|
|
71
|
+
/>
|
|
37
72
|
);
|
|
38
73
|
}
|
|
39
74
|
|
|
@@ -106,6 +106,7 @@ const resourcePointer = z.object({
|
|
|
106
106
|
|
|
107
107
|
const directoryEntrySource = z.object({
|
|
108
108
|
provider: z.string(),
|
|
109
|
+
id: z.string().optional(),
|
|
109
110
|
url: z.string().optional(),
|
|
110
111
|
});
|
|
111
112
|
|
|
@@ -896,7 +897,7 @@ const users = defineCollection({
|
|
|
896
897
|
schema: z.object({
|
|
897
898
|
id: z.string(),
|
|
898
899
|
name: z.string(),
|
|
899
|
-
avatarUrl: z.string(),
|
|
900
|
+
avatarUrl: z.string().optional(),
|
|
900
901
|
role: z.string().optional(),
|
|
901
902
|
hidden: z.boolean().optional(),
|
|
902
903
|
source: directoryEntrySource.optional(),
|
|
@@ -80,7 +80,11 @@ const ownedAdrsList = adrs.map((p) => ({
|
|
|
80
80
|
|
|
81
81
|
const pageTitle = `Team | ${props.data.name}`;
|
|
82
82
|
const source = props.data.source;
|
|
83
|
-
const
|
|
83
|
+
const sourceLabels: Record<string, string> = {
|
|
84
|
+
github: 'GitHub',
|
|
85
|
+
'microsoft-entra': 'Microsoft Entra ID',
|
|
86
|
+
};
|
|
87
|
+
const sourceLabel = source?.provider ? (sourceLabels[source.provider] ?? source.provider) : undefined;
|
|
84
88
|
const sourceTitle = sourceLabel ? `Synced from ${sourceLabel}` : undefined;
|
|
85
89
|
---
|
|
86
90
|
|
|
@@ -149,6 +153,7 @@ const sourceTitle = sourceLabel ? `Synced from ${sourceLabel}` : undefined;
|
|
|
149
153
|
class="inline-flex items-center gap-1.5 text-sm text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))] transition-colors"
|
|
150
154
|
>
|
|
151
155
|
{source.provider === 'github' && <Github className="w-4 h-4 text-[rgb(var(--ec-icon-color))]" />}
|
|
156
|
+
{source.provider === 'microsoft-entra' && <img src={buildUrl('/icons/azure.svg', true)} class="w-4 h-4" alt="" />}
|
|
152
157
|
<span>{sourceLabel}</span>
|
|
153
158
|
</a>
|
|
154
159
|
)
|
|
@@ -160,6 +165,7 @@ const sourceTitle = sourceLabel ? `Synced from ${sourceLabel}` : undefined;
|
|
|
160
165
|
class="inline-flex items-center gap-1.5 text-sm text-[rgb(var(--ec-page-text-muted))]"
|
|
161
166
|
>
|
|
162
167
|
{source.provider === 'github' && <Github className="w-4 h-4 text-[rgb(var(--ec-icon-color))]" />}
|
|
168
|
+
{source.provider === 'microsoft-entra' && <img src={buildUrl('/icons/azure.svg', true)} class="w-4 h-4" alt="" />}
|
|
163
169
|
<span>{sourceLabel}</span>
|
|
164
170
|
</span>
|
|
165
171
|
)
|
|
@@ -77,7 +77,11 @@ const associatedTeams = teams.map((o) => ({
|
|
|
77
77
|
|
|
78
78
|
const pageTitle = `User | ${props.data.name}`;
|
|
79
79
|
const source = props.data.source;
|
|
80
|
-
const
|
|
80
|
+
const sourceLabels: Record<string, string> = {
|
|
81
|
+
github: 'GitHub',
|
|
82
|
+
'microsoft-entra': 'Microsoft Entra ID',
|
|
83
|
+
};
|
|
84
|
+
const sourceLabel = source?.provider ? (sourceLabels[source.provider] ?? source.provider) : undefined;
|
|
81
85
|
const sourceTitle = sourceLabel ? `Synced from ${sourceLabel}` : undefined;
|
|
82
86
|
---
|
|
83
87
|
|
|
@@ -155,6 +159,7 @@ const sourceTitle = sourceLabel ? `Synced from ${sourceLabel}` : undefined;
|
|
|
155
159
|
class="inline-flex items-center gap-1.5 text-sm text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))] transition-colors"
|
|
156
160
|
>
|
|
157
161
|
{source.provider === 'github' && <Github className="w-4 h-4 text-[rgb(var(--ec-icon-color))]" />}
|
|
162
|
+
{source.provider === 'microsoft-entra' && <img src={buildUrl('/icons/azure.svg', true)} class="w-4 h-4" alt="" />}
|
|
158
163
|
<span>{sourceLabel}</span>
|
|
159
164
|
</a>
|
|
160
165
|
)
|
|
@@ -166,6 +171,7 @@ const sourceTitle = sourceLabel ? `Synced from ${sourceLabel}` : undefined;
|
|
|
166
171
|
class="inline-flex items-center gap-1.5 text-sm text-[rgb(var(--ec-page-text-muted))]"
|
|
167
172
|
>
|
|
168
173
|
{source.provider === 'github' && <Github className="w-4 h-4 text-[rgb(var(--ec-icon-color))]" />}
|
|
174
|
+
{source.provider === 'microsoft-entra' && <img src={buildUrl('/icons/azure.svg', true)} class="w-4 h-4" alt="" />}
|
|
169
175
|
<span>{sourceLabel}</span>
|
|
170
176
|
</span>
|
|
171
177
|
)
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
},
|
|
8
8
|
"license": "SEE LICENSE IN LICENSE",
|
|
9
9
|
"type": "module",
|
|
10
|
-
"version": "3.44.
|
|
10
|
+
"version": "3.44.2",
|
|
11
11
|
"publishConfig": {
|
|
12
12
|
"access": "public"
|
|
13
13
|
},
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@ai-sdk/react": "^3.0.17",
|
|
32
|
-
"@astrojs/markdown-remark": "^7.
|
|
33
|
-
"@astrojs/mdx": "^
|
|
34
|
-
"@astrojs/node": "^10.1.
|
|
35
|
-
"@astrojs/react": "^5.0.
|
|
32
|
+
"@astrojs/markdown-remark": "^7.2.0",
|
|
33
|
+
"@astrojs/mdx": "^6.0.1",
|
|
34
|
+
"@astrojs/node": "^10.1.2",
|
|
35
|
+
"@astrojs/react": "^5.0.6",
|
|
36
36
|
"@astrojs/rss": "^4.0.18",
|
|
37
37
|
"@asyncapi/avro-schema-parser": "3.0.24",
|
|
38
38
|
"@asyncapi/parser": "^3.6.0",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"@tanstack/react-table": "^8.17.3",
|
|
59
59
|
"@xyflow/react": "^12.3.6",
|
|
60
60
|
"ai": "^6.0.17",
|
|
61
|
-
"astro": "^6.
|
|
61
|
+
"astro": "^6.4.1",
|
|
62
62
|
"astro-compress": "^2.4.0",
|
|
63
63
|
"astro-expressive-code": "^0.41.7",
|
|
64
64
|
"astro-seo": "^0.8.4",
|
|
@@ -112,9 +112,9 @@
|
|
|
112
112
|
"update-notifier": "^7.3.1",
|
|
113
113
|
"uuid": "^10.0.0",
|
|
114
114
|
"zod": "^4.3.6",
|
|
115
|
-
"@eventcatalog/
|
|
115
|
+
"@eventcatalog/sdk": "2.24.1",
|
|
116
116
|
"@eventcatalog/visualiser": "^3.22.1",
|
|
117
|
-
"@eventcatalog/
|
|
117
|
+
"@eventcatalog/linter": "1.0.29"
|
|
118
118
|
},
|
|
119
119
|
"devDependencies": {
|
|
120
120
|
"@astrojs/check": "^0.9.9",
|