@equinor/fusion-framework-cli 8.1.1 → 9.0.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.
- package/CHANGELOG.md +99 -0
- package/README.md +78 -0
- package/bin/cli.mjs +1 -4
- package/dist/bin/build-application.js +44 -0
- package/dist/bin/build-application.js.map +1 -0
- package/dist/bin/bundle-application.js +55 -0
- package/dist/bin/bundle-application.js.map +1 -0
- package/dist/bin/create-dev-serve.js +117 -0
- package/dist/bin/create-dev-serve.js.map +1 -0
- package/dist/bin/create-export-config.js +51 -0
- package/dist/bin/create-export-config.js.map +1 -0
- package/dist/bin/create-export-manifest.js +60 -0
- package/dist/bin/create-export-manifest.js.map +1 -0
- package/dist/bin/dev-portal/AppLoader.js +54 -0
- package/dist/bin/dev-portal/AppLoader.js.map +1 -0
- package/dist/bin/dev-portal/BookMarkSideSheet.js +15 -0
- package/dist/bin/dev-portal/BookMarkSideSheet.js.map +1 -0
- package/dist/bin/dev-portal/ContextSelector.js +107 -0
- package/dist/bin/dev-portal/ContextSelector.js.map +1 -0
- package/dist/bin/dev-portal/EquinorLoader.js +14 -0
- package/dist/bin/dev-portal/EquinorLoader.js.map +1 -0
- package/dist/bin/dev-portal/ErrorViewer.js +7 -0
- package/dist/bin/dev-portal/ErrorViewer.js.map +1 -0
- package/dist/bin/dev-portal/FusionLogo.js +4 -0
- package/dist/bin/dev-portal/FusionLogo.js.map +1 -0
- package/dist/bin/dev-portal/Header.js +31 -0
- package/dist/bin/dev-portal/Header.js.map +1 -0
- package/dist/bin/dev-portal/Router.js +46 -0
- package/dist/bin/dev-portal/Router.js.map +1 -0
- package/dist/bin/dev-portal/config.js +45 -0
- package/dist/bin/dev-portal/config.js.map +1 -0
- package/dist/bin/dev-portal/main.js +11 -0
- package/dist/bin/dev-portal/main.js.map +1 -0
- package/dist/bin/dev-portal/usePersonResolver.js +40 -0
- package/dist/bin/dev-portal/usePersonResolver.js.map +1 -0
- package/dist/bin/dev-proxy.js +75 -0
- package/dist/bin/dev-proxy.js.map +1 -0
- package/dist/bin/main.app.js +78 -0
- package/dist/bin/main.app.js.map +1 -0
- package/dist/bin/main.js +18 -0
- package/dist/bin/main.js.map +1 -0
- package/dist/bin/utils/execute-commant.js +20 -0
- package/dist/bin/utils/execute-commant.js.map +1 -0
- package/dist/bin/utils/format.js +17 -0
- package/dist/bin/utils/format.js.map +1 -0
- package/dist/bin/utils/load-app-config.js +34 -0
- package/dist/bin/utils/load-app-config.js.map +1 -0
- package/dist/bin/utils/load-manifest.js +35 -0
- package/dist/bin/utils/load-manifest.js.map +1 -0
- package/dist/bin/utils/load-package.js +24 -0
- package/dist/bin/utils/load-package.js.map +1 -0
- package/dist/bin/utils/load-vite-config.js +54 -0
- package/dist/bin/utils/load-vite-config.js.map +1 -0
- package/dist/bin/utils/spinner.js +67 -0
- package/dist/bin/utils/spinner.js.map +1 -0
- package/dist/lib/app-config.js +54 -0
- package/dist/lib/app-config.js.map +1 -0
- package/dist/lib/app-manifest.js +70 -0
- package/dist/lib/app-manifest.js.map +1 -0
- package/dist/lib/app-package.js +33 -0
- package/dist/lib/app-package.js.map +1 -0
- package/dist/lib/index.js +4 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/utils/assert.js +27 -0
- package/dist/lib/utils/assert.js.map +1 -0
- package/dist/lib/utils/config.js +76 -0
- package/dist/lib/utils/config.js.map +1 -0
- package/dist/lib/utils/expect.js +27 -0
- package/dist/lib/utils/expect.js.map +1 -0
- package/dist/lib/utils/file-exists.js +27 -0
- package/dist/lib/utils/file-exists.js.map +1 -0
- package/dist/lib/utils/types.js +2 -0
- package/dist/lib/utils/types.js.map +1 -0
- package/dist/lib/vite-config.js +81 -0
- package/dist/lib/vite-config.js.map +1 -0
- package/dist/lib/vite-logger.js +14 -0
- package/dist/lib/vite-logger.js.map +1 -0
- package/dist/types/bin/build-application.d.ts +12 -0
- package/dist/types/bin/bundle-application.d.ts +4 -0
- package/dist/types/bin/create-dev-serve.d.ts +10 -0
- package/dist/types/bin/create-export-config.d.ts +7 -0
- package/dist/types/bin/create-export-manifest.d.ts +20 -0
- package/dist/types/bin/dev-portal/AppLoader.d.ts +4 -0
- package/dist/types/bin/dev-portal/BookMarkSideSheet.d.ts +6 -0
- package/dist/types/bin/dev-portal/ContextSelector.d.ts +2 -0
- package/dist/types/bin/dev-portal/EquinorLoader.d.ts +5 -0
- package/dist/types/bin/dev-portal/ErrorViewer.d.ts +4 -0
- package/dist/types/bin/dev-portal/FusionLogo.d.ts +6 -0
- package/dist/types/bin/dev-portal/Header.d.ts +3 -0
- package/dist/types/bin/dev-portal/Router.d.ts +1 -0
- package/dist/types/bin/dev-portal/config.d.ts +3 -0
- package/dist/types/bin/dev-portal/main.d.ts +1 -0
- package/dist/types/bin/dev-portal/usePersonResolver.d.ts +1 -0
- package/dist/types/bin/dev-proxy.d.ts +27 -0
- package/dist/types/bin/main.app.d.ts +3 -0
- package/dist/types/bin/main.d.ts +1 -0
- package/dist/types/bin/utils/execute-commant.d.ts +8 -0
- package/dist/types/bin/utils/format.d.ts +9 -0
- package/dist/types/bin/utils/load-app-config.d.ts +9 -0
- package/dist/types/bin/utils/load-manifest.d.ts +9 -0
- package/dist/types/bin/utils/load-package.d.ts +5 -0
- package/dist/types/bin/utils/load-vite-config.d.ts +10 -0
- package/dist/types/bin/utils/spinner.d.ts +19 -0
- package/dist/types/lib/app-config.d.ts +27 -0
- package/dist/types/lib/app-manifest.d.ts +35 -0
- package/dist/types/lib/app-package.d.ts +23 -0
- package/dist/types/lib/index.d.ts +3 -0
- package/dist/types/lib/utils/assert.d.ts +10 -0
- package/dist/types/lib/utils/config.d.ts +26 -0
- package/dist/types/lib/utils/expect.d.ts +4 -0
- package/dist/types/lib/utils/file-exists.d.ts +6 -0
- package/dist/types/lib/utils/types.d.ts +6 -0
- package/dist/types/lib/vite-config.d.ts +17 -0
- package/dist/types/lib/vite-logger.d.ts +2 -0
- package/dist/types/version.d.ts +1 -0
- package/dist/version.js +1 -1
- package/package.json +26 -2
- package/dist/scripts/app-config.d.ts +0 -38
- package/dist/scripts/app-config.js +0 -73
- package/dist/scripts/app-config.js.map +0 -1
- package/dist/scripts/create-config.d.ts +0 -7
- package/dist/scripts/create-config.js +0 -59
- package/dist/scripts/create-config.js.map +0 -1
- package/dist/scripts/main.d.ts +0 -2
- package/dist/scripts/main.js +0 -51
- package/dist/scripts/main.js.map +0 -1
- package/dist/scripts/serve.d.ts +0 -6
- package/dist/scripts/serve.js +0 -109
- package/dist/scripts/serve.js.map +0 -1
- package/dist/version.d.ts +0 -1
- /package/dist/{scripts/dev-portal → bin/public}/assets/index-61aab88e.js +0 -0
- /package/dist/{scripts/dev-portal → bin/public}/index.html +0 -0
- /package/dist/{index.d.ts → types/index.d.ts} +0 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
+
import { useCallback, useMemo, useState } from 'react';
|
|
12
|
+
import { useFramework } from '@equinor/fusion-framework-react';
|
|
13
|
+
import { useCurrentApp } from '@equinor/fusion-framework-react/app';
|
|
14
|
+
import { useObservableState, useObservableSubscription } from '@equinor/fusion-observable/react';
|
|
15
|
+
import { EMPTY } from 'rxjs';
|
|
16
|
+
import { ContextProvider, ContextSearch, } from '@equinor/fusion-react-context-selector';
|
|
17
|
+
import { styled } from 'styled-components';
|
|
18
|
+
const Styled = {
|
|
19
|
+
ContextSelectorWrapper: styled.div `
|
|
20
|
+
min-width: 25rem;
|
|
21
|
+
width: fit-content;
|
|
22
|
+
`,
|
|
23
|
+
};
|
|
24
|
+
const mapper = (src) => {
|
|
25
|
+
return src.map((i) => {
|
|
26
|
+
var _a, _b;
|
|
27
|
+
return {
|
|
28
|
+
id: i.id,
|
|
29
|
+
title: i.title,
|
|
30
|
+
subTitle: (_a = i.type) === null || _a === void 0 ? void 0 : _a.id,
|
|
31
|
+
graphic: ((_b = i.type) === null || _b === void 0 ? void 0 : _b.id) === 'OrgChart' ? 'list' : undefined,
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
const singleItem = (props) => {
|
|
36
|
+
return Object.assign({ id: 'no-such-item', title: 'Change me' }, props);
|
|
37
|
+
};
|
|
38
|
+
const noPreselect = [];
|
|
39
|
+
const useQueryContext = () => {
|
|
40
|
+
const framework = useFramework();
|
|
41
|
+
const { value: currentContext } = useObservableState(useMemo(() => framework.modules.context.currentContext$, [framework.modules.context]));
|
|
42
|
+
const preselected = useMemo(() => (currentContext ? mapper([currentContext]) : noPreselect), [currentContext]);
|
|
43
|
+
const [provider, setProvider] = useState(null);
|
|
44
|
+
const { currentApp } = useCurrentApp();
|
|
45
|
+
const instance$ = useMemo(() => (currentApp === null || currentApp === void 0 ? void 0 : currentApp.instance$) || EMPTY, [currentApp]);
|
|
46
|
+
const onContextProviderChange = useCallback((modules) => {
|
|
47
|
+
const contextProvider = modules.context;
|
|
48
|
+
if (contextProvider) {
|
|
49
|
+
setProvider(contextProvider);
|
|
50
|
+
}
|
|
51
|
+
}, [setProvider]);
|
|
52
|
+
const clearContextProvider = useCallback(() => setProvider(null), [setProvider]);
|
|
53
|
+
useObservableSubscription(instance$, onContextProviderChange, clearContextProvider);
|
|
54
|
+
const minLength = 3;
|
|
55
|
+
const resolver = useMemo(() => ({
|
|
56
|
+
searchQuery: (search) => __awaiter(void 0, void 0, void 0, function* () {
|
|
57
|
+
if (!provider) {
|
|
58
|
+
return [];
|
|
59
|
+
}
|
|
60
|
+
if (search.length < minLength) {
|
|
61
|
+
return [
|
|
62
|
+
singleItem({
|
|
63
|
+
id: 'min-length',
|
|
64
|
+
title: `Type ${minLength - search.length} more chars to search`,
|
|
65
|
+
isDisabled: true,
|
|
66
|
+
}),
|
|
67
|
+
];
|
|
68
|
+
}
|
|
69
|
+
try {
|
|
70
|
+
const result = yield provider.queryContextAsync(search);
|
|
71
|
+
if (result.length) {
|
|
72
|
+
return mapper(result);
|
|
73
|
+
}
|
|
74
|
+
return [
|
|
75
|
+
singleItem({
|
|
76
|
+
id: 'no-results',
|
|
77
|
+
title: 'No results found',
|
|
78
|
+
isDisabled: true,
|
|
79
|
+
}),
|
|
80
|
+
];
|
|
81
|
+
}
|
|
82
|
+
catch (e) {
|
|
83
|
+
console.log('ContextResolver query was cancelled');
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
86
|
+
}),
|
|
87
|
+
initialResult: preselected,
|
|
88
|
+
}), [provider, preselected]);
|
|
89
|
+
const setContext = useCallback((e) => {
|
|
90
|
+
var _a;
|
|
91
|
+
if ((_a = e.nativeEvent.detail) === null || _a === void 0 ? void 0 : _a.selected.length) {
|
|
92
|
+
framework.modules.context.setCurrentContextByIdAsync(e.nativeEvent.detail.selected[0].id);
|
|
93
|
+
}
|
|
94
|
+
}, [framework]);
|
|
95
|
+
const clearContext = useCallback(() => {
|
|
96
|
+
if (!framework)
|
|
97
|
+
return;
|
|
98
|
+
framework.modules.context.clearCurrentContext();
|
|
99
|
+
}, [framework]);
|
|
100
|
+
return [resolver, setContext, preselected === null || preselected === void 0 ? void 0 : preselected[0], clearContext];
|
|
101
|
+
};
|
|
102
|
+
export const ContextSelector = () => {
|
|
103
|
+
const [resolver, setContext, currentContext, clearContext] = useQueryContext();
|
|
104
|
+
return (_jsx(ContextProvider, { resolver: resolver, children: _jsx(Styled.ContextSelectorWrapper, { children: _jsx(ContextSearch, { id: "context-selector-header", placeholder: "Search for context", initialText: "Start typing to search", dropdownHeight: "300px", variant: "header", onSelect: setContext, autofocus: true, onClearContext: clearContext, previewItem: currentContext !== null && currentContext !== void 0 ? currentContext : null, value: currentContext === null || currentContext === void 0 ? void 0 : currentContext.title, selectedId: currentContext === null || currentContext === void 0 ? void 0 : currentContext.title }) }) }));
|
|
105
|
+
};
|
|
106
|
+
export default ContextSelector;
|
|
107
|
+
//# sourceMappingURL=ContextSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextSelector.js","sourceRoot":"","sources":["../../../src/bin/dev-portal/ContextSelector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { StarProgress } from '@equinor/fusion-react-progress-indicator';
|
|
3
|
+
export const EquinorLoader = ({ children, text, }) => {
|
|
4
|
+
return (_jsx("div", { style: {
|
|
5
|
+
display: 'flex',
|
|
6
|
+
justifyContent: 'center',
|
|
7
|
+
alignItems: 'center',
|
|
8
|
+
width: '100vw',
|
|
9
|
+
height: '100vh',
|
|
10
|
+
overflow: 'hidden',
|
|
11
|
+
}, children: _jsx(StarProgress, { text: text, children: children }) }));
|
|
12
|
+
};
|
|
13
|
+
export default EquinorLoader;
|
|
14
|
+
//# sourceMappingURL=EquinorLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EquinorLoader.js","sourceRoot":"","sources":["../../../src/bin/dev-portal/EquinorLoader.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAExE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC1B,QAAQ,EACR,IAAI,GAC6C,EAAe,EAAE;IAClE,OAAO,CACH,cACI,KAAK,EAAE;YACH,OAAO,EAAE,MAAM;YACf,cAAc,EAAE,QAAQ;YACxB,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,QAAQ;SACrB,YAED,KAAC,YAAY,IAAC,IAAI,EAAE,IAAI,YAAG,QAAQ,GAAgB,GACjD,CACT,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Typography } from '@equinor/eds-core-react';
|
|
3
|
+
export const ErrorViewer = ({ error }) => {
|
|
4
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { style: { marginTop: 20, border: '1px solid' }, children: [_jsx(Typography, { variant: "h4", color: "warning", children: error.message }), _jsx("section", { style: { padding: 10 }, children: error.stack && _jsx("pre", { children: error.stack }) })] }), error.cause && _jsx(ErrorViewer, { error: error.cause })] }));
|
|
5
|
+
};
|
|
6
|
+
export default ErrorViewer;
|
|
7
|
+
//# sourceMappingURL=ErrorViewer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorViewer.js","sourceRoot":"","sources":["../../../src/bin/dev-portal/ErrorViewer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAA6B,EAAE,EAAE;IAChE,OAAO,CACH,8BACI,eAAK,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,aAC9C,KAAC,UAAU,IAAC,OAAO,EAAC,IAAI,EAAC,KAAK,EAAC,SAAS,YACnC,KAAK,CAAC,OAAO,GACL,EACb,kBAAS,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,YAAG,KAAK,CAAC,KAAK,IAAI,wBAAM,KAAK,CAAC,KAAK,GAAO,GAAW,IAClF,EACL,KAAK,CAAC,KAAK,IAAI,KAAC,WAAW,IAAC,KAAK,EAAE,KAAK,CAAC,KAAc,GAAI,IAC7D,CACN,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export const FusionLogo = (props) => (_jsxs("svg", { viewBox: "0 0 50 35", style: Object.assign({ height: '1em' }, props.style), children: [_jsx("path", { d: "M0 2V23.1776L7.05405 16.1235V7.05405H16.1235L23.1776 0H2C0.895431 0 0 0.89543 0 2Z", transform: "translate(50 17.5) scale(0.92727 1.06779) rotate(135)", fill: "url(#paint0_linear)" }), _jsx("path", { d: "M0 2V23.1776L7.05405 16.1235V7.05405H16.1235L23.1776 0H2C0.895431 0 0 0.89543 0 2Z", transform: "translate(0 17.5) scale(0.92727 1.06779) rotate(-45)", fill: "url(#paint1_linear)" }), _jsx("path", { d: "M9.61965 36.6972L2.60087 29.6784L1.96135 22.3809L8.42623 22.9069L9.61965 36.6972Z", transform: "translate(33.8887 34.9863) scale(0.92727 -1.06779) rotate(45)", fill: "#990025" }), _jsx("path", { d: "M7.05434 7.05434L0 0L1.21096 13.8183L7.68846 14.3818L7.05434 7.05434Z", transform: "translate(33.8887 34.9863) scale(0.92727 -1.06779) rotate(45)", fill: "#990025" }), _jsx("path", { d: "M0 0L2.49398 29.5715L9.61965 36.6972L7.01878 7.01878L0 0Z", transform: "translate(33.8887 0.015625) scale(0.92727 1.06779) rotate(45)", fill: "#FF1243" }), _jsxs("defs", { children: [_jsxs("linearGradient", { id: "paint0_linear", x2: "1", gradientUnits: "userSpaceOnUse", gradientTransform: "matrix(-13.5478 9.01983 -12.9578 -13.5478 18.0677 6.77391)", children: [_jsx("stop", { offset: "0.508287", stopColor: "#DC002E" }), _jsx("stop", { offset: "0.508387", stopColor: "#FF1243" })] }), _jsxs("linearGradient", { id: "paint1_linear", x2: "1", gradientUnits: "userSpaceOnUse", gradientTransform: "matrix(-13.5478 9.01983 -12.9578 -13.5478 18.0677 6.77391)", children: [_jsx("stop", { offset: "0.508287", stopColor: "#DC002E" }), _jsx("stop", { offset: "0.508387", stopColor: "#FF1243" })] })] })] }));
|
|
3
|
+
export default FusionLogo;
|
|
4
|
+
//# sourceMappingURL=FusionLogo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FusionLogo.js","sourceRoot":"","sources":["../../../src/bin/dev-portal/FusionLogo.tsx"],"names":[],"mappings":";AAIA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAsB,EAAE,EAAE,CAAC,CAClD,eAAK,OAAO,EAAC,WAAW,EAAC,KAAK,kBAAI,MAAM,EAAE,KAAK,IAAK,KAAK,CAAC,KAAK,cAC3D,eACI,CAAC,EAAC,oFAAoF,EACtF,SAAS,EAAC,uDAAuD,EACjE,IAAI,EAAC,qBAAqB,GAC5B,EACF,eACI,CAAC,EAAC,oFAAoF,EACtF,SAAS,EAAC,sDAAsD,EAChE,IAAI,EAAC,qBAAqB,GAC5B,EACF,eACI,CAAC,EAAC,mFAAmF,EACrF,SAAS,EAAC,+DAA+D,EACzE,IAAI,EAAC,SAAS,GAChB,EACF,eACI,CAAC,EAAC,uEAAuE,EACzE,SAAS,EAAC,+DAA+D,EACzE,IAAI,EAAC,SAAS,GAChB,EACF,eACI,CAAC,EAAC,2DAA2D,EAC7D,SAAS,EAAC,+DAA+D,EACzE,IAAI,EAAC,SAAS,GAChB,EACF,2BACI,0BACI,EAAE,EAAC,eAAe,EAClB,EAAE,EAAC,GAAG,EACN,aAAa,EAAC,gBAAgB,EAC9B,iBAAiB,EAAC,4DAA4D,aAE9E,eAAM,MAAM,EAAC,UAAU,EAAC,SAAS,EAAC,SAAS,GAAG,EAC9C,eAAM,MAAM,EAAC,UAAU,EAAC,SAAS,EAAC,SAAS,GAAG,IACjC,EACjB,0BACI,EAAE,EAAC,eAAe,EAClB,EAAE,EAAC,GAAG,EACN,aAAa,EAAC,gBAAgB,EAC9B,iBAAiB,EAAC,4DAA4D,aAE9E,eAAM,MAAM,EAAC,UAAU,EAAC,SAAS,EAAC,SAAS,GAAG,EAC9C,eAAM,MAAM,EAAC,UAAU,EAAC,SAAS,EAAC,SAAS,GAAG,IACjC,IACd,IACL,CACT,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useRef } from 'react';
|
|
3
|
+
import { ContextSelector } from './ContextSelector';
|
|
4
|
+
import { FusionLogo } from './FusionLogo';
|
|
5
|
+
import '@material-ui/styles';
|
|
6
|
+
import { BookmarkSideSheet } from './BookMarkSideSheet';
|
|
7
|
+
import { Button, Icon, TopBar } from '@equinor/eds-core-react';
|
|
8
|
+
import { BookmarkProvider } from '@equinor/fusion-framework-react-components-bookmark';
|
|
9
|
+
import { add, menu, tag } from '@equinor/eds-icons';
|
|
10
|
+
import { styled } from 'styled-components';
|
|
11
|
+
Icon.add({ menu, add, tag });
|
|
12
|
+
const Styled = {
|
|
13
|
+
Title: styled.div `
|
|
14
|
+
display: flex;
|
|
15
|
+
align-items: center;
|
|
16
|
+
gap: 0.75rem;
|
|
17
|
+
font-size: 1rem;
|
|
18
|
+
font-weight: 500;
|
|
19
|
+
`,
|
|
20
|
+
};
|
|
21
|
+
export const Header = () => {
|
|
22
|
+
const buttonRef = useRef(null);
|
|
23
|
+
const [open, setOpen] = useState(false);
|
|
24
|
+
const [isBookmarkOpen, setIsBookmarkOpen] = useState(false);
|
|
25
|
+
function toggleBookmark() {
|
|
26
|
+
setIsBookmarkOpen((s) => !s);
|
|
27
|
+
}
|
|
28
|
+
return (_jsxs(_Fragment, { children: [_jsxs(TopBar, { id: "cli-top-bar", sticky: false, style: { padding: 0, height: 48 }, children: [_jsxs(TopBar.Header, { children: [_jsx(Button, { ref: buttonRef, onClick: () => setOpen(!open), variant: "ghost_icon", children: _jsx(Icon, { name: "menu" }) }), _jsxs(Styled.Title, { children: [_jsx(FusionLogo, {}), _jsx("span", { children: "Fusion CLI" })] })] }), _jsx(TopBar.CustomContent, { children: _jsx(ContextSelector, {}) }), _jsx(TopBar.Actions, { style: { minWidth: 48, minHeight: 48 }, children: _jsx(Button, { onClick: toggleBookmark, variant: "ghost_icon", children: _jsx(Icon, { name: "tag" }) }) })] }), _jsx(BookmarkProvider, { children: _jsx(BookmarkSideSheet, { isOpen: isBookmarkOpen, onClose: toggleBookmark }) })] }));
|
|
29
|
+
};
|
|
30
|
+
export default Header;
|
|
31
|
+
//# sourceMappingURL=Header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/bin/dev-portal/Header.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAE7B,MAAM,MAAM,GAAG;IACX,KAAK,EAAE,MAAM,CAAC,GAAG,CAAA;;;;;;KAMhB;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,EAAE;IACvB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,SAAS,cAAc;QACnB,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,CACH,8BACI,MAAC,MAAM,IAAC,EAAE,EAAC,aAAa,EAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,aACrE,MAAC,MAAM,CAAC,MAAM,eACV,KAAC,MAAM,IAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAC,YAAY,YACvE,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,GAAG,GACf,EACT,MAAC,MAAM,CAAC,KAAK,eACT,KAAC,UAAU,KAAG,EACd,wCAAuB,IACZ,IACH,EAChB,KAAC,MAAM,CAAC,aAAa,cACjB,KAAC,eAAe,KAAG,GACA,EAEvB,KAAC,MAAM,CAAC,OAAO,IAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,YAClD,KAAC,MAAM,IAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAC,YAAY,YACjD,KAAC,IAAI,IAAC,IAAI,EAAC,KAAK,GAAG,GACd,GACI,IACZ,EACT,KAAC,gBAAgB,cACb,KAAC,iBAAiB,IAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,GAAI,GACvD,IACpB,CACN,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useBookmarkNavigate } from '@equinor/fusion-framework-react-module-bookmark/portal';
|
|
3
|
+
import { Outlet, RouterProvider, useParams } from 'react-router-dom';
|
|
4
|
+
import AppLoader from './AppLoader';
|
|
5
|
+
import Header from './Header';
|
|
6
|
+
import { PersonProvider } from '@equinor/fusion-react-person';
|
|
7
|
+
import { usePersonResolver } from './usePersonResolver';
|
|
8
|
+
import { useFramework } from '@equinor/fusion-framework-react';
|
|
9
|
+
import { useState } from 'react';
|
|
10
|
+
import { styled } from 'styled-components';
|
|
11
|
+
const Styled = {
|
|
12
|
+
ContentContainer: styled.div `
|
|
13
|
+
display: grid;
|
|
14
|
+
grid-template-columns: 1fr;
|
|
15
|
+
grid-template-rows: 48px 1fr;
|
|
16
|
+
height: 100vh;
|
|
17
|
+
overflow: hidden;
|
|
18
|
+
`,
|
|
19
|
+
};
|
|
20
|
+
const Root = () => {
|
|
21
|
+
const personResolver = usePersonResolver();
|
|
22
|
+
useBookmarkNavigate({ resolveAppPath: (appKey) => `/apps/${appKey}` });
|
|
23
|
+
return (_jsx(PersonProvider, { resolve: personResolver, children: _jsxs(Styled.ContentContainer, { children: [_jsx(Header, {}), _jsx(Outlet, {})] }) }));
|
|
24
|
+
};
|
|
25
|
+
const AppRoute = () => {
|
|
26
|
+
const { appKey } = useParams();
|
|
27
|
+
return appKey ? _jsx(AppLoader, { appKey: appKey }) : null;
|
|
28
|
+
};
|
|
29
|
+
const routes = [
|
|
30
|
+
{
|
|
31
|
+
path: '/',
|
|
32
|
+
element: _jsx(Root, {}),
|
|
33
|
+
children: [
|
|
34
|
+
{
|
|
35
|
+
path: 'apps/:appKey/*',
|
|
36
|
+
element: _jsx(AppRoute, {}),
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
export const Router = () => {
|
|
42
|
+
const { navigation } = useFramework().modules;
|
|
43
|
+
const [router] = useState(() => navigation.createRouter(routes));
|
|
44
|
+
return (_jsx(RouterProvider, { router: router, fallbackElement: _jsx("p", { children: "wooot" }) }));
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=Router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../../src/bin/dev-portal/Router.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AAE7F,OAAO,EAAE,MAAM,EAAE,cAAc,EAAuB,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,MAAM,GAAG;IACX,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAA;;;;;;KAM3B;CACJ,CAAC;AAEF,MAAM,IAAI,GAAG,GAAG,EAAE;IACd,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,mBAAmB,CAAC,EAAE,cAAc,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,SAAS,MAAM,EAAE,EAAE,CAAC,CAAC;IAE/E,OAAO,CACH,KAAC,cAAc,IAAC,OAAO,EAAE,cAAc,YACnC,MAAC,MAAM,CAAC,gBAAgB,eACpB,KAAC,MAAM,KAAG,EACV,KAAC,MAAM,KAAG,IACY,GACb,CACpB,CAAC;AACN,CAAC,CAAC;AAGF,MAAM,QAAQ,GAAG,GAAG,EAAE;IAClB,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,OAAO,MAAM,CAAC,CAAC,CAAC,KAAC,SAAS,IAAC,MAAM,EAAE,MAAM,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG;IACX;QACI,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,KAAC,IAAI,KAAG;QACjB,QAAQ,EAAE;YACN;gBACI,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,KAAC,QAAQ,KAAG;aACxB;SACJ;KACJ;CACJ,CAAC;AAGF,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,EAAE;IACvB,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAsB,CAAC,OAAO,CAAC;IAClE,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,OAAO,CACH,KAAC,cAAc,IACX,MAAM,EAAE,MAAkD,EAC1D,eAAe,EAAE,gCAAY,GAC/B,CACL,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { enableAppModule } from '@equinor/fusion-framework-module-app';
|
|
11
|
+
import { ConsoleLogger } from '@equinor/fusion-framework-module-msal/client';
|
|
12
|
+
import { enableBookmark } from '@equinor/fusion-framework-module-bookmark';
|
|
13
|
+
import { enableNavigation } from '@equinor/fusion-framework-module-navigation';
|
|
14
|
+
export const configure = (config) => __awaiter(void 0, void 0, void 0, function* () {
|
|
15
|
+
config.logger.level = 0;
|
|
16
|
+
config.configureServiceDiscovery({
|
|
17
|
+
client: {
|
|
18
|
+
baseUri: import.meta.url,
|
|
19
|
+
defaultScopes: ['5a842df8-3238-415d-b168-9f16a6a6031b/.default'],
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
config.configureMsal({
|
|
23
|
+
tenantId: '3aa4a235-b6e2-48d5-9195-7fcf05b459b0',
|
|
24
|
+
clientId: '9b707e3a-3e90-41ed-a47e-652a1e3b53d0',
|
|
25
|
+
redirectUri: '/authentication/login-callback',
|
|
26
|
+
}, { requiresAuth: true });
|
|
27
|
+
enableAppModule(config);
|
|
28
|
+
enableNavigation(config);
|
|
29
|
+
enableBookmark(config, (builder) => {
|
|
30
|
+
builder.setSourceSystem({
|
|
31
|
+
subSystem: 'CLI',
|
|
32
|
+
identifier: 'fusion-cli',
|
|
33
|
+
name: 'Fusion CLI',
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
config.onConfigured(() => {
|
|
37
|
+
console.log('framework config done');
|
|
38
|
+
});
|
|
39
|
+
config.onInitialized((fusion) => __awaiter(void 0, void 0, void 0, function* () {
|
|
40
|
+
fusion.auth.defaultClient.setLogger(new ConsoleLogger(0));
|
|
41
|
+
console.debug('📒 subscribing to all events');
|
|
42
|
+
}));
|
|
43
|
+
});
|
|
44
|
+
export default configure;
|
|
45
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/bin/dev-portal/config.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAE3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAE/E,MAAM,CAAC,MAAM,SAAS,GAAG,CAAO,MAA6B,EAAE,EAAE;IAC7D,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;IAExB,MAAM,CAAC,yBAAyB,CAAC;QAC7B,MAAM,EAAE;YACJ,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;YACxB,aAAa,EAAE,CAAC,+CAA+C,CAAC;SACnE;KACJ,CAAC,CAAC;IAEH,MAAM,CAAC,aAAa,CAChB;QACI,QAAQ,EAAE,sCAAsC;QAChD,QAAQ,EAAE,sCAAsC;QAChD,WAAW,EAAE,gCAAgC;KAChD,EACD,EAAE,YAAY,EAAE,IAAI,EAAE,CACzB,CAAC;IAEF,eAAe,CAAC,MAAM,CAAC,CAAC;IAExB,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEzB,cAAc,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;QAC/B,OAAO,CAAC,eAAe,CAAC;YACpB,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,YAAY;YACxB,IAAI,EAAE,YAAY;SACrB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE;QACrB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,aAAa,CAAC,CAAO,MAAM,EAAE,EAAE;QAClC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1D,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAElD,CAAC,CAAA,CAAC,CAAC;AACP,CAAC,CAAA,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import ReactDOM from 'react-dom/client';
|
|
4
|
+
import { Framework } from '@equinor/fusion-framework-react';
|
|
5
|
+
import { ThemeProvider, theme } from '@equinor/fusion-react-styles';
|
|
6
|
+
import { EquinorLoader } from './EquinorLoader';
|
|
7
|
+
import { configure } from './config';
|
|
8
|
+
import { Router } from './Router';
|
|
9
|
+
const target = document.getElementById('root');
|
|
10
|
+
ReactDOM.createRoot(target).render(_jsx(React.StrictMode, { children: _jsx(ThemeProvider, { theme: theme, children: _jsx(Framework, { configure: configure, fallback: _jsx(EquinorLoader, { text: "Loading framework" }), children: _jsx(Router, {}) }) }) }));
|
|
11
|
+
//# sourceMappingURL=main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/bin/dev-portal/main.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAgB,CAAC;AAE9D,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAC9B,KAAC,KAAK,CAAC,UAAU,cACb,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,YACvB,KAAC,SAAS,IAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAC,aAAa,IAAC,IAAI,EAAC,mBAAmB,GAAG,YACjF,KAAC,MAAM,KAAG,GACF,GACA,GACD,CACtB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { useFramework } from '@equinor/fusion-framework-react';
|
|
2
|
+
import { Query } from '@equinor/fusion-query';
|
|
3
|
+
import { useMemo, useState } from 'react';
|
|
4
|
+
const createPersonClient = (client) => {
|
|
5
|
+
const expire = 3 * 60 * 1000;
|
|
6
|
+
const queryDetails = new Query({
|
|
7
|
+
expire,
|
|
8
|
+
queueOperator: 'merge',
|
|
9
|
+
key: (azureId) => azureId,
|
|
10
|
+
client: {
|
|
11
|
+
fn: (azureId) => {
|
|
12
|
+
return client.json(`/persons/${azureId}?api-version=4.0`);
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
const queryPresence = new Query({
|
|
17
|
+
expire,
|
|
18
|
+
queueOperator: 'merge',
|
|
19
|
+
key: (azureId) => azureId,
|
|
20
|
+
client: {
|
|
21
|
+
fn: (azureId) => client.json(`/persons/${azureId}/presence?api-version=1.0`),
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
return {
|
|
25
|
+
getDetails: (azureId) => queryDetails.queryAsync(azureId).then((x) => x.value),
|
|
26
|
+
getPresence: (azureId) => queryPresence.queryAsync(azureId).then((x) => x.value),
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export const usePersonResolver = () => {
|
|
30
|
+
const [resolver, setResolver] = useState(undefined);
|
|
31
|
+
const framework = useFramework();
|
|
32
|
+
useMemo(() => {
|
|
33
|
+
framework.modules.serviceDiscovery
|
|
34
|
+
.createClient('people')
|
|
35
|
+
.then((httpClient) => createPersonClient(httpClient))
|
|
36
|
+
.then(setResolver);
|
|
37
|
+
}, [framework]);
|
|
38
|
+
return resolver;
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=usePersonResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePersonResolver.js","sourceRoot":"","sources":["../../../src/bin/dev-portal/usePersonResolver.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE1C,MAAM,kBAAkB,GAAG,CAAC,MAAmB,EAAE,EAAE;IAE/C,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAC7B,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC;QAC3B,MAAM;QACN,aAAa,EAAE,OAAO;QACtB,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO;QACzB,MAAM,EAAE;YACJ,EAAE,EAAE,CAAC,OAAe,EAAE,EAAE;gBACpB,OAAO,MAAM,CAAC,IAAI,CAAgB,YAAY,OAAO,kBAAkB,CAAC,CAAC;YAC7E,CAAC;SACJ;KACJ,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC;QAC5B,MAAM;QACN,aAAa,EAAE,OAAO;QACtB,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO;QACzB,MAAM,EAAE;YACJ,EAAE,EAAE,CAAC,OAAe,EAAE,EAAE,CACpB,MAAM,CAAC,IAAI,CAAiB,YAAY,OAAO,2BAA2B,CAAC;SAClF;KACJ,CAAC,CAAC;IAEH,OAAO;QACH,UAAU,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACtF,WAAW,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;KAC3F,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAGlC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAkB,SAAS,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,OAAO,CAAC,GAAG,EAAE;QACT,SAAS,CAAC,OAAO,CAAC,gBAAgB;aAC7B,YAAY,CAAC,QAAQ,CAAC;aACtB,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;aACpD,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3B,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAChB,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import express from 'express';
|
|
11
|
+
import { createProxyMiddleware, responseInterceptor, } from 'http-proxy-middleware';
|
|
12
|
+
import { Spinner } from './utils/spinner.js';
|
|
13
|
+
import chalk, { formatPath } from './utils/format.js';
|
|
14
|
+
const createResponseInterceptor = (cb) => {
|
|
15
|
+
return responseInterceptor((responseBuffer, proxyRes, req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
+
var _a, _b, _c;
|
|
17
|
+
res.setHeader('x-proxy-status-message', (_a = proxyRes.statusMessage) !== null && _a !== void 0 ? _a : '');
|
|
18
|
+
res.setHeader('x-proxy-status-code', (_b = proxyRes.statusCode) !== null && _b !== void 0 ? _b : '');
|
|
19
|
+
const { response, statusCode, path } = (_c = (yield Promise.resolve(cb(req.params, proxyRes, Number(proxyRes.statusCode) < 400 &&
|
|
20
|
+
JSON.parse(responseBuffer.toString('utf8')))))) !== null && _c !== void 0 ? _c : {};
|
|
21
|
+
if (statusCode) {
|
|
22
|
+
res.statusCode = statusCode;
|
|
23
|
+
}
|
|
24
|
+
if (response) {
|
|
25
|
+
path && res.setHeader('x-interceptor-handler', path);
|
|
26
|
+
return JSON.stringify(response);
|
|
27
|
+
}
|
|
28
|
+
return responseBuffer;
|
|
29
|
+
}));
|
|
30
|
+
};
|
|
31
|
+
export const createDevProxy = (handler, options) => {
|
|
32
|
+
var _a;
|
|
33
|
+
const proxyOptions = Object.assign({
|
|
34
|
+
changeOrigin: true,
|
|
35
|
+
selfHandleResponse: true,
|
|
36
|
+
onProxyReq: (proxyReq) => {
|
|
37
|
+
const spinner = Spinner.Clone();
|
|
38
|
+
spinner.ora.suffixText = formatPath([proxyReq.protocol, '//', proxyReq.host, proxyReq.path].join(''));
|
|
39
|
+
spinner.start('proxy request');
|
|
40
|
+
proxyReq.on('response', (res) => {
|
|
41
|
+
var _a;
|
|
42
|
+
if (Number(res.statusCode) < 400) {
|
|
43
|
+
spinner.succeed();
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
spinner.warn(chalk.yellow((_a = res.statusMessage) !== null && _a !== void 0 ? _a : `${res.statusCode} `));
|
|
47
|
+
}
|
|
48
|
+
spinner.stop();
|
|
49
|
+
});
|
|
50
|
+
proxyReq.on('error', () => {
|
|
51
|
+
spinner.fail();
|
|
52
|
+
});
|
|
53
|
+
},
|
|
54
|
+
}, options);
|
|
55
|
+
const app = express();
|
|
56
|
+
app.disable('x-powered-by');
|
|
57
|
+
(_a = options.staticAssets) === null || _a === void 0 ? void 0 : _a.forEach((asset) => {
|
|
58
|
+
app.use(express.static(asset.path, asset.options));
|
|
59
|
+
});
|
|
60
|
+
app.use(createProxyMiddleware('/_discovery/environments/current', Object.assign(Object.assign({}, proxyOptions), { onProxyRes: responseInterceptor((responseBuffer, _proxyRes, req) => __awaiter(void 0, void 0, void 0, function* () {
|
|
61
|
+
const response = JSON.parse(responseBuffer.toString('utf8'));
|
|
62
|
+
response.environmentName = 'DEVELOPMENT';
|
|
63
|
+
response.services = response.services.filter((x) => x.key !== 'app');
|
|
64
|
+
response.services.push({
|
|
65
|
+
key: 'app',
|
|
66
|
+
uri: new URL('/', req.headers.referer).href,
|
|
67
|
+
});
|
|
68
|
+
return JSON.stringify(response);
|
|
69
|
+
})) })));
|
|
70
|
+
app.get('/api/apps/:appKey/config', createProxyMiddleware('/api/apps/*/config', Object.assign(Object.assign({}, proxyOptions), { onProxyRes: createResponseInterceptor(handler.onConfigResponse) })));
|
|
71
|
+
app.get('/api/apps/:appKey', createProxyMiddleware('/api/apps/*', Object.assign(Object.assign({}, proxyOptions), { onProxyRes: createResponseInterceptor(handler.onManifestResponse) })));
|
|
72
|
+
return app;
|
|
73
|
+
};
|
|
74
|
+
export default createDevProxy;
|
|
75
|
+
//# sourceMappingURL=dev-proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-proxy.js","sourceRoot":"","sources":["../../src/bin/dev-proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { createDevServer } from './create-dev-serve.js';
|
|
11
|
+
import { buildApplication } from './build-application.js';
|
|
12
|
+
import { formatPath, chalk } from './utils/format.js';
|
|
13
|
+
import createExportManifest from './create-export-manifest.js';
|
|
14
|
+
import { bundleApplication } from './bundle-application.js';
|
|
15
|
+
import { createExportConfig } from './create-export-config.js';
|
|
16
|
+
export default (program) => {
|
|
17
|
+
const app = program
|
|
18
|
+
.command('app')
|
|
19
|
+
.description('Tooling for developing applications build on Fusion Framework');
|
|
20
|
+
app.command('dev')
|
|
21
|
+
.description('Create a development server')
|
|
22
|
+
.option('-p, --port <number>', 'dev-server port')
|
|
23
|
+
.option('-P, --portal <string>', 'fusion portal host')
|
|
24
|
+
.option('-c, --config <file>', `use specified application config, by default search for ${formatPath('app.config.{ts,js,json}')}`)
|
|
25
|
+
.option(' --manifest <file>', `use specified manifest, by default search for ${formatPath('app.manifest.{ts,js,json}')}`)
|
|
26
|
+
.option(' --vite <file>', `use specified Vite config file, by default search for ${formatPath('app.vite.{ts,js,json}')}`)
|
|
27
|
+
.option('-F, --framework <string>', `application framework to build the application on, supported: [${chalk.yellowBright('react')}]`, 'react')
|
|
28
|
+
.action((opt) => __awaiter(void 0, void 0, void 0, function* () {
|
|
29
|
+
var _a;
|
|
30
|
+
yield createDevServer({
|
|
31
|
+
portal: (_a = process.env.FUSION_PORTAL_HOST) !== null && _a !== void 0 ? _a : 'https://fusion-s-portal-ci.azurewebsites.net',
|
|
32
|
+
configSourceFiles: {
|
|
33
|
+
app: opt.config,
|
|
34
|
+
manifest: opt.manifest,
|
|
35
|
+
vite: opt.vite,
|
|
36
|
+
},
|
|
37
|
+
library: opt.framework,
|
|
38
|
+
port: opt.port,
|
|
39
|
+
});
|
|
40
|
+
}));
|
|
41
|
+
app.command('build')
|
|
42
|
+
.option('-o, --outDir, <string>', 'output directory of package', 'dist')
|
|
43
|
+
.option('-c, --config <string>', 'Use specified config file, see https://vitejs.dev/guide/cli.html#build')
|
|
44
|
+
.option(' --vite <string>', `use specified Vite config file, by default search for ${formatPath('app.vite.{ts,js,json}')}`)
|
|
45
|
+
.option('-F, --framework <string>', `application framework to build the application on, supported: [${chalk.yellowBright('react')}]`, 'react')
|
|
46
|
+
.action((opt) => __awaiter(void 0, void 0, void 0, function* () {
|
|
47
|
+
buildApplication({
|
|
48
|
+
configSourceFiles: {
|
|
49
|
+
vite: opt.vite,
|
|
50
|
+
},
|
|
51
|
+
outDir: opt.outDir,
|
|
52
|
+
});
|
|
53
|
+
}));
|
|
54
|
+
app.command('config')
|
|
55
|
+
.option('-o, --output <string>', 'output file')
|
|
56
|
+
.option('-c, --config <string>', 'application config file')
|
|
57
|
+
.action((opt) => {
|
|
58
|
+
createExportConfig({
|
|
59
|
+
outputFile: opt.output,
|
|
60
|
+
configFile: opt.config,
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
app.command('manifest')
|
|
64
|
+
.option('-o, --output <string>', 'output file')
|
|
65
|
+
.option('-c, --config <string>', 'manifest config file')
|
|
66
|
+
.action((opt) => {
|
|
67
|
+
createExportManifest({
|
|
68
|
+
outputFile: opt.output,
|
|
69
|
+
configFile: opt.config,
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
app.command('pack')
|
|
73
|
+
.option('-o, --outDir, <string>', 'output directory of package', 'dist')
|
|
74
|
+
.action((opt) => __awaiter(void 0, void 0, void 0, function* () {
|
|
75
|
+
bundleApplication({ archive: 'app.bundle.zip', outDir: opt.outDir });
|
|
76
|
+
}));
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=main.app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.app.js","sourceRoot":"","sources":["../../src/bin/main.app.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/main.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import { fileURLToPath } from 'node:url';
|
|
3
|
+
import { dirname, resolve } from 'node:path';
|
|
4
|
+
import { readPackageUpSync } from 'read-pkg-up';
|
|
5
|
+
const pkg = readPackageUpSync({ cwd: fileURLToPath(import.meta.url) });
|
|
6
|
+
if (!pkg) {
|
|
7
|
+
throw Error('failed to find program root');
|
|
8
|
+
}
|
|
9
|
+
process.env.CLI_BIN = resolve(dirname(pkg.path), String(pkg.packageJson.bin['fusion-framework-cli']));
|
|
10
|
+
import { Command } from 'commander';
|
|
11
|
+
const program = new Command();
|
|
12
|
+
program.name(pkg.packageJson.name);
|
|
13
|
+
program.description((_a = pkg.packageJson.description) !== null && _a !== void 0 ? _a : 'CLI for Fusion Framework');
|
|
14
|
+
program.version(pkg.packageJson.version);
|
|
15
|
+
import app from './main.app.js';
|
|
16
|
+
app(program);
|
|
17
|
+
program.parse();
|
|
18
|
+
//# sourceMappingURL=main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/bin/main.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,MAAM,GAAG,GAAG,iBAAiB,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACvE,IAAI,CAAC,GAAG,EAAE;IACN,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;CAC9C;AACD,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,OAAO,CACzB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EACjB,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,GAAI,CAAC,sBAAsB,CAAC,CAAC,CACvD,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACnC,OAAO,CAAC,WAAW,CAAC,MAAA,GAAG,CAAC,WAAW,CAAC,WAAW,mCAAI,0BAA0B,CAAC,CAAC;AAC/E,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAGzC,OAAO,GAAG,MAAM,eAAe,CAAC;AAChC,GAAG,CAAC,OAAO,CAAC,CAAC;AAGb,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { fork } from 'node:child_process';
|
|
11
|
+
import { assert } from 'node:console';
|
|
12
|
+
export const executeCommand = (program, command, ...options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
13
|
+
assert(process.env.CLI_BIN, 'expected bin path in env');
|
|
14
|
+
return new Promise((resolve, reject) => {
|
|
15
|
+
const job = fork(String(process.env.CLI_BIN), [program, command, ...(options !== null && options !== void 0 ? options : [])], {});
|
|
16
|
+
job.addListener('close', resolve);
|
|
17
|
+
job.addListener('error', reject);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=execute-commant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute-commant.js","sourceRoot":"","sources":["../../../src/bin/utils/execute-commant.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAUtC,MAAM,CAAC,MAAM,cAAc,GAAG,CAC1B,OAAiB,EACjB,OAAiC,EAGjC,GAAG,OAAc,EACnB,EAAE;IACA,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;IACxD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1F,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAClC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC,CAAA,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { relative } from 'node:path';
|
|
2
|
+
import { statSync } from 'node:fs';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import prettyBytes from 'pretty-bytes';
|
|
5
|
+
export { chalk };
|
|
6
|
+
export const formatPath = (path, opt) => {
|
|
7
|
+
var _a;
|
|
8
|
+
return chalk.blueBright((opt === null || opt === void 0 ? void 0 : opt.relative) ? relative((_a = opt === null || opt === void 0 ? void 0 : opt.cwd) !== null && _a !== void 0 ? _a : process.cwd(), path) : path);
|
|
9
|
+
};
|
|
10
|
+
export const formatByteSize = (input) => {
|
|
11
|
+
if (typeof input === 'string') {
|
|
12
|
+
return formatByteSize(statSync(input).size);
|
|
13
|
+
}
|
|
14
|
+
return chalk.yellowBright(prettyBytes(input));
|
|
15
|
+
};
|
|
16
|
+
export default chalk;
|
|
17
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/bin/utils/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,GAA0C,EAAE,EAAE;;IACnF,OAAO,KAAK,CAAC,UAAU,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,EAAC,CAAC,CAAC,QAAQ,CAAC,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,GAAG,mCAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9F,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAsB,EAAU,EAAE;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC3B,OAAO,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;KAC/C;IACD,OAAO,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC"}
|