@ankhorage/studio 2.7.2 → 2.7.4
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/README.md +1 -1
- package/apm/update.json +1 -1
- package/dist/app/ProjectDetailScreen.d.ts.map +1 -1
- package/dist/app/ProjectDetailScreen.js +3 -8
- package/dist/app/ProjectDetailScreen.js.map +1 -1
- package/dist/features/project-updates/adapters/inbound/ProjectUpdateDashboardPanel.d.ts +6 -0
- package/dist/features/project-updates/adapters/inbound/ProjectUpdateDashboardPanel.d.ts.map +1 -0
- package/dist/features/project-updates/adapters/inbound/ProjectUpdateDashboardPanel.js +94 -0
- package/dist/features/project-updates/adapters/inbound/ProjectUpdateDashboardPanel.js.map +1 -0
- package/dist/features/project-updates/adapters/inbound/registerProjectUpdateRoutes.d.ts.map +1 -1
- package/dist/features/project-updates/adapters/inbound/registerProjectUpdateRoutes.js +2 -1
- package/dist/features/project-updates/adapters/inbound/registerProjectUpdateRoutes.js.map +1 -1
- package/dist/features/project-updates/adapters/inbound/useProjectUpdateDashboard.d.ts +15 -0
- package/dist/features/project-updates/adapters/inbound/useProjectUpdateDashboard.d.ts.map +1 -0
- package/dist/features/project-updates/adapters/inbound/useProjectUpdateDashboard.js +109 -0
- package/dist/features/project-updates/adapters/inbound/useProjectUpdateDashboard.js.map +1 -0
- package/dist/features/project-updates/adapters/outbound/createProjectUpdateHostHttpAdapter.d.ts +4 -0
- package/dist/features/project-updates/adapters/outbound/createProjectUpdateHostHttpAdapter.d.ts.map +1 -0
- package/dist/features/project-updates/adapters/outbound/createProjectUpdateHostHttpAdapter.js +54 -0
- package/dist/features/project-updates/adapters/outbound/createProjectUpdateHostHttpAdapter.js.map +1 -0
- package/dist/features/project-updates/application/ProjectUpdateDashboardService.d.ts +19 -0
- package/dist/features/project-updates/application/ProjectUpdateDashboardService.d.ts.map +1 -0
- package/dist/features/project-updates/application/ProjectUpdateDashboardService.js +51 -0
- package/dist/features/project-updates/application/ProjectUpdateDashboardService.js.map +1 -0
- package/dist/features/project-updates/application/createProjectUpdateDashboardState.d.ts +4 -0
- package/dist/features/project-updates/application/createProjectUpdateDashboardState.d.ts.map +1 -0
- package/dist/features/project-updates/application/createProjectUpdateDashboardState.js +20 -0
- package/dist/features/project-updates/application/createProjectUpdateDashboardState.js.map +1 -0
- package/dist/features/project-updates/application/ports/outbound/ProjectUpdateHostPort.d.ts +14 -0
- package/dist/features/project-updates/application/ports/outbound/ProjectUpdateHostPort.d.ts.map +1 -0
- package/dist/features/project-updates/application/ports/outbound/ProjectUpdateHostPort.js +2 -0
- package/dist/features/project-updates/application/ports/outbound/ProjectUpdateHostPort.js.map +1 -0
- package/dist/features/project-updates/application/reduceProjectUpdateDashboardState.d.ts +4 -0
- package/dist/features/project-updates/application/reduceProjectUpdateDashboardState.d.ts.map +1 -0
- package/dist/features/project-updates/application/reduceProjectUpdateDashboardState.js +53 -0
- package/dist/features/project-updates/application/reduceProjectUpdateDashboardState.js.map +1 -0
- package/dist/features/project-updates/application/resolveProjectUpdateDashboardPresentation.d.ts +126 -0
- package/dist/features/project-updates/application/resolveProjectUpdateDashboardPresentation.d.ts.map +1 -0
- package/dist/features/project-updates/application/resolveProjectUpdateDashboardPresentation.js +153 -0
- package/dist/features/project-updates/application/resolveProjectUpdateDashboardPresentation.js.map +1 -0
- package/dist/features/project-updates/composition/createStudioProjectUpdateDashboardService.d.ts +4 -0
- package/dist/features/project-updates/composition/createStudioProjectUpdateDashboardService.d.ts.map +1 -0
- package/dist/features/project-updates/composition/createStudioProjectUpdateDashboardService.js +8 -0
- package/dist/features/project-updates/composition/createStudioProjectUpdateDashboardService.js.map +1 -0
- package/dist/features/project-updates/utils/readProjectUpdateOperationId.d.ts +3 -0
- package/dist/features/project-updates/utils/readProjectUpdateOperationId.d.ts.map +1 -0
- package/dist/features/project-updates/utils/readProjectUpdateOperationId.js +10 -0
- package/dist/features/project-updates/utils/readProjectUpdateOperationId.js.map +1 -0
- package/dist/types/project-update-dashboard.d.ts +47 -0
- package/dist/types/project-update-dashboard.d.ts.map +1 -0
- package/dist/types/project-update-dashboard.js +2 -0
- package/dist/types/project-update-dashboard.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
# @ankhorage/studio
|
|
5
5
|
|
|
6
|
-
         
|
|
7
7
|
|
|
8
8
|
Studio authoring package for Ankhorage apps
|
|
9
9
|
|
package/apm/update.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"protocolVersion": 1,
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"owner": { "name": "@ankhorage/studio", "version": "2.7.
|
|
4
|
+
"owner": { "name": "@ankhorage/studio", "version": "2.7.4" },
|
|
5
5
|
"history": {
|
|
6
6
|
"supported": [{ "sourceRange": ">=2.5.7 <3.0.0", "mode": "no-migration" }],
|
|
7
7
|
"unsupported": [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectDetailScreen.d.ts","sourceRoot":"","sources":["../../src/app/ProjectDetailScreen.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ProjectDetailScreen.d.ts","sourceRoot":"","sources":["../../src/app/ProjectDetailScreen.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAmBxC,wBAAgB,mBAAmB,sBAoKlC"}
|
|
@@ -3,13 +3,14 @@ import { Heading, Text } from '@ankhorage/zora';
|
|
|
3
3
|
import { useLocalSearchParams } from 'expo-router';
|
|
4
4
|
import React, { useState } from 'react';
|
|
5
5
|
import { Alert, Linking, View } from 'react-native';
|
|
6
|
+
import { ProjectUpdateDashboardPanel } from '../features/project-updates/adapters/inbound/ProjectUpdateDashboardPanel';
|
|
6
7
|
import { useProjects } from '../hooks/useProjects';
|
|
7
8
|
import { confirmDelete, openProjectUrl } from '../workspacePlatform';
|
|
8
9
|
import { EmptyState, formatCategory, formatDate, InlineMessage, LifecycleAction, LoadingState, MetadataRows, styles, WorkspaceScreen, } from './workspace/WorkspacePrimitives';
|
|
9
10
|
import { replaceWorkspaceRoute } from './workspace/workspaceRouter';
|
|
10
11
|
export function ProjectDetailScreen() {
|
|
11
12
|
const { projectId } = useProjectRouteParams();
|
|
12
|
-
const { projects, isLoading, error, refresh, deleteProject,
|
|
13
|
+
const { projects, isLoading, error, refresh, deleteProject, connectProjectRepository, upProjectInfrastructure, launchProject, } = useProjects();
|
|
13
14
|
const project = projects.find((candidate) => candidate.id === projectId);
|
|
14
15
|
const [activeAction, setActiveAction] = useState(null);
|
|
15
16
|
const [message, setMessage] = useState(null);
|
|
@@ -62,13 +63,7 @@ export function ProjectDetailScreen() {
|
|
|
62
63
|
] }), _jsxs(View, { style: styles.nameSlugRow, children: [_jsx(Heading, { level: 2, text: project.name }), _jsxs(Text, { color: "neutral", emphasis: "muted", variant: "caption", children: ["#", project.id] })] }), _jsx(MetadataRows, { rows: [
|
|
63
64
|
['App category', formatCategory(project.category)],
|
|
64
65
|
['Creation', formatDate(project.created)],
|
|
65
|
-
] })] }), _jsxs(View, { style: styles.lifecyclePanel, children: [_jsx(Heading, { level: 3, text: "
|
|
66
|
-
await syncProject(project.id);
|
|
67
|
-
return 'Project synchronized.';
|
|
68
|
-
}) }), _jsx(LifecycleAction, { iconName: "download-outline", label: "Install packages", detail: "Install dependencies using this generated app as the package root.", loading: activeAction === 'Install packages', disabled: activeAction !== null, onPress: () => void runAction('Install packages', async () => {
|
|
69
|
-
await installProjectPackages(project.id);
|
|
70
|
-
return 'Project packages installed.';
|
|
71
|
-
}) }), _jsx(LifecycleAction, { iconName: "logo-github", label: "Connect GitHub", detail: "Publish the reconciled app snapshot to its private GitHub repository.", loading: activeAction === 'Connect GitHub', disabled: activeAction !== null, onPress: () => void runAction('Connect GitHub', async () => {
|
|
66
|
+
] })] }), _jsx(ProjectUpdateDashboardPanel, { projectId: project.id }), _jsxs(View, { style: styles.lifecyclePanel, children: [_jsx(Heading, { level: 3, text: "Project operations" }), message ? _jsx(InlineMessage, { tone: message.tone, text: message.text }) : null, _jsxs(View, { style: styles.actionStack, children: [_jsx(LifecycleAction, { iconName: "logo-github", label: "Connect GitHub", detail: "Publish the reconciled app snapshot to its private GitHub repository.", loading: activeAction === 'Connect GitHub', disabled: activeAction !== null, onPress: () => void runAction('Connect GitHub', async () => {
|
|
72
67
|
const response = await connectProjectRepository(project.id);
|
|
73
68
|
return response.status === 'already-connected'
|
|
74
69
|
? `GitHub repository already connected at ${response.repository.url}.`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectDetailScreen.js","sourceRoot":"","sources":["../../src/app/ProjectDetailScreen.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAA8B,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EACL,UAAU,EACV,cAAc,EACd,UAAU,EACV,aAAa,EACb,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,eAAe,GAChB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,MAAM,UAAU,mBAAmB;IACjC,MAAM,EAAE,SAAS,EAAE,GAAG,qBAAqB,EAAE,CAAC;IAC9C,MAAM,EACJ,QAAQ,EACR,SAAS,EACT,KAAK,EACL,OAAO,EACP,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"ProjectDetailScreen.js","sourceRoot":"","sources":["../../src/app/ProjectDetailScreen.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/*** Render the project-scoped APM inspect, review, apply/recovery, and verify Dashboard lifecycle. */
|
|
3
|
+
export declare function ProjectUpdateDashboardPanel(props: {
|
|
4
|
+
readonly projectId: string;
|
|
5
|
+
}): React.JSX.Element;
|
|
6
|
+
//# sourceMappingURL=ProjectUpdateDashboardPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectUpdateDashboardPanel.d.ts","sourceRoot":"","sources":["../../../../../src/features/project-updates/adapters/inbound/ProjectUpdateDashboardPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,sGAAsG;AACtG,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,qBAmEhF"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { CheckboxGroup, Heading, Text, useZoraTheme } from '@ankhorage/zora';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { StyleSheet, View } from 'react-native';
|
|
5
|
+
import { InlineMessage, LifecycleAction, SegmentedControl, ThemedWorkspaceTextInput, } from '../../../../app/workspace/WorkspacePrimitives';
|
|
6
|
+
import { resolveProjectUpdateDashboardPresentation } from '../../application/resolveProjectUpdateDashboardPresentation';
|
|
7
|
+
import { useProjectUpdateDashboard } from './useProjectUpdateDashboard';
|
|
8
|
+
/*** Render the project-scoped APM inspect, review, apply/recovery, and verify Dashboard lifecycle. */
|
|
9
|
+
export function ProjectUpdateDashboardPanel(props) {
|
|
10
|
+
const { theme } = useZoraTheme();
|
|
11
|
+
const { state, inspectAsync, planAsync, applyAsync, resumeAsync, verifyAsync, setAvailability, setPermissionSelection, setOperationId, } = useProjectUpdateDashboard(props.projectId);
|
|
12
|
+
const presentation = resolveProjectUpdateDashboardPresentation(state);
|
|
13
|
+
return (_jsxs(View, { style: [
|
|
14
|
+
styles.panel,
|
|
15
|
+
{ borderColor: theme.colors.border, backgroundColor: theme.colors.surface },
|
|
16
|
+
], children: [_jsxs(View, { style: styles.section, children: [_jsx(Heading, { level: 3, text: "Updates" }), _jsx(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: "Inspect APM evidence, review the exact plan, authorize effects, then verify the durable operation separately." }), _jsx(SegmentedControl, { value: state.availability, options: AVAILABILITY_OPTIONS, onChange: setAvailability }), _jsx(LifecycleAction, { iconName: "search-outline", label: "Inspect updates", detail: "Read current dependency, migration, projection, and availability evidence.", loading: state.busy === 'status', disabled: state.busy !== null, onPress: () => void inspectAsync() }), state.error ? _jsx(InlineMessage, { tone: "error", text: state.error }) : null] }), presentation.status ? (_jsx(StatusSection, { status: presentation.status, state: state, onPlan: () => void planAsync() })) : null, presentation.plan ? (_jsx(PlanSection, { plan: presentation.plan, state: state, onPermissionSelection: setPermissionSelection, onApply: () => void applyAsync() })) : null, presentation.execution ? _jsx(ExecutionSection, { execution: presentation.execution }) : null, _jsx(RecoverySection, { state: state, onOperationIdChange: setOperationId, onResume: () => void resumeAsync(), onVerify: () => void verifyAsync() }), presentation.verification ? (_jsx(VerificationSection, { verification: presentation.verification })) : null] }));
|
|
17
|
+
}
|
|
18
|
+
const AVAILABILITY_OPTIONS = [
|
|
19
|
+
{ label: 'Refresh registry', value: 'refresh' },
|
|
20
|
+
{ label: 'Offline evidence', value: 'offline' },
|
|
21
|
+
];
|
|
22
|
+
const PERMISSION_OPTIONS = [
|
|
23
|
+
{
|
|
24
|
+
value: 'owner-code',
|
|
25
|
+
label: 'Owner code',
|
|
26
|
+
description: 'Allow reviewed package-owned update steps.',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
value: 'lifecycle-scripts',
|
|
30
|
+
label: 'Lifecycle scripts',
|
|
31
|
+
description: 'Allow reviewed package-manager lifecycle scripts when required.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
value: 'external-effects',
|
|
35
|
+
label: 'External effects',
|
|
36
|
+
description: 'Allow reviewed external-service effects when required.',
|
|
37
|
+
},
|
|
38
|
+
];
|
|
39
|
+
function StatusSection(props) {
|
|
40
|
+
return (_jsxs(View, { style: styles.section, children: [_jsx(Heading, { level: 4, text: "Evidence" }), _jsxs(Text, { variant: "bodySmall", weight: "semiBold", children: [props.status.currency, " \u00B7 ", props.status.complete ? 'complete' : 'incomplete'] }), _jsx(DetailItems, { title: "Dependencies", empty: "No dependency changes are currently reported.", items: props.status.dependencies.map((dependency) => `${dependency.name} · ${dependency.direct ? 'direct' : 'transitive'} · ${dependency.currentVersion} → ${dependency.availableVersion}`) }), _jsx(DetailItems, { title: "Migration & projection evidence", empty: "No extension observations are currently reported.", items: props.status.observations.map((observation) => `${observation.owner} · projection ${observation.projection} · migration ${observation.migration}${observation.reason ? ` · ${observation.reason}` : ''}`) }), _jsx(ReasonItems, { title: "Findings", items: props.status.findings }), _jsx(ReasonItems, { title: "Diagnostics", items: props.status.diagnostics }), _jsx(LifecycleAction, { iconName: "git-compare-outline", label: "Review update plan", detail: "Create a concrete safe-update and repair plan from fresh host evidence.", loading: props.state.busy === 'plan', disabled: props.state.busy !== null, onPress: props.onPlan })] }));
|
|
41
|
+
}
|
|
42
|
+
function PlanSection(props) {
|
|
43
|
+
return (_jsxs(View, { style: styles.section, children: [_jsx(Heading, { level: 4, text: "Reviewed plan" }), _jsxs(Text, { variant: "bodySmall", weight: "semiBold", children: [props.plan.id, " \u00B7 ", props.plan.complete ? 'complete' : 'blocked'] }), _jsx(DetailItems, { title: "Dependency targets", empty: "No dependency version changes.", items: props.plan.targets.map((target) => `${target.name} · ${target.direct ? 'direct' : 'transitive'} · ${target.currentVersion} → ${target.targetVersion} · ${target.reason}`) }), _jsx(DetailItems, { title: "File changes", empty: "No reviewed file changes.", items: props.plan.files.map((file) => `${file.kind} · ${file.path}`) }), _jsx(DetailItems, { title: "Ordered steps", empty: "No executable steps.", items: props.plan.steps.map((step) => `${step.kind} · ${step.reason}`) }), _jsx(EffectItems, { title: "Shipment & follow-up effects", effects: props.plan.effects }), _jsx(ReasonItems, { title: "Plan blockers", items: props.plan.blockers }), _jsx(ReasonItems, { title: "Plan findings", items: props.plan.findings }), props.plan.hostRestartRequired ? (_jsx(InlineMessage, { tone: "info", text: "Studio host upgrade/restart is required. Restart the host, then Inspect updates again and create a fresh plan; this reviewed plan is not executable across the restart boundary." })) : null, props.plan.canApply ? (_jsxs(_Fragment, { children: [_jsxs(View, { style: styles.permissions, children: [_jsx(Text, { weight: "semiBold", children: "Execution permissions" }), _jsx(Text, { color: "neutral", emphasis: "muted", variant: "caption", children: "Every permission is explicit. Leave an effect disabled unless the reviewed plan requires and you approve it." }), _jsx(CheckboxGroup, { value: permissionSelection(props.state.permissions), options: PERMISSION_OPTIONS, orientation: "vertical", gap: "s", onValueChange: props.onPermissionSelection })] }), _jsx(LifecycleAction, { iconName: "play-outline", label: "Apply reviewed plan", detail: "Execute only this reviewed plan through APM's durable lock and journal.", loading: props.state.busy === 'apply', disabled: props.state.busy !== null, onPress: props.onApply })] })) : null] }));
|
|
44
|
+
}
|
|
45
|
+
function ExecutionSection(props) {
|
|
46
|
+
const tone = props.execution.status === 'completed' ? 'success' : 'info';
|
|
47
|
+
return (_jsxs(View, { style: styles.section, children: [_jsx(Heading, { level: 4, text: "Execution" }), _jsx(InlineMessage, { tone: tone, text: `Operation ${props.execution.operationId || 'unknown'}: ${props.execution.status}.` }), _jsx(DetailItems, { title: "Journal steps", empty: "No journal steps are available yet.", items: props.execution.steps.map((step) => `${step.id} · ${step.state} · ${step.attempts} attempt${step.attempts === 1 ? '' : 's'}`) }), _jsx(ReasonItems, { title: "Execution blockers", items: props.execution.blockers }), _jsx(ReasonItems, { title: "Execution diagnostics", items: props.execution.diagnostics }), props.execution.status === 'recovery-required' ? (_jsx(InlineMessage, { tone: "info", text: "Recovery is durable. Keep the operation ID below and resume the same APM journal; do not start a replacement update." })) : null] }));
|
|
48
|
+
}
|
|
49
|
+
function RecoverySection(props) {
|
|
50
|
+
const hasOperation = props.state.operationId.trim().length > 0;
|
|
51
|
+
return (_jsxs(View, { style: styles.section, children: [_jsx(Heading, { level: 4, text: "Recovery & verification" }), _jsx(Text, { color: "neutral", emphasis: "muted", variant: "caption", children: "Durable operation IDs can be resumed after interruption or entered again after reloading the Dashboard. Verification is a separate evidence pass." }), _jsx(ThemedWorkspaceTextInput, { value: props.state.operationId, onChangeText: props.onOperationIdChange, placeholder: "APM operation ID", accessibilityLabel: "APM operation ID", autoCapitalize: "none", autoCorrect: false }), _jsxs(View, { style: styles.actions, children: [_jsx(LifecycleAction, { iconName: "refresh-circle-outline", label: "Resume operation", detail: "Resume the same durable APM journal and its recovery semantics.", loading: props.state.busy === 'resume', disabled: props.state.busy !== null || !hasOperation, onPress: props.onResume }), _jsx(LifecycleAction, { iconName: "checkmark-circle-outline", label: "Verify operation", detail: "Reinspect project and owner evidence for this operation after execution.", loading: props.state.busy === 'verify', disabled: props.state.busy !== null || !hasOperation, onPress: props.onVerify })] })] }));
|
|
52
|
+
}
|
|
53
|
+
function VerificationSection(props) {
|
|
54
|
+
return (_jsxs(View, { style: styles.section, children: [_jsx(Heading, { level: 4, text: "Verification" }), _jsx(InlineMessage, { tone: props.verification.verified ? 'success' : 'info', text: `Operation ${props.verification.operationId || 'unknown'} is ${props.verification.verified ? 'verified' : 'not fully verified'}.` }), _jsx(DetailItems, { title: "Checks", empty: "No verification checks were returned.", items: props.verification.checks.map((check) => `${check.kind} · ${check.status}${check.reason ? ` · ${check.reason}` : ''}${check.nextAction ? ` · next: ${check.nextAction}` : ''}`) }), _jsx(ReasonItems, { title: "Remaining findings", items: props.verification.findings }), _jsx(ReasonItems, { title: "Verification diagnostics", items: props.verification.diagnostics }), _jsx(EffectItems, { title: "Shipment & follow-up", effects: props.verification.followUp })] }));
|
|
55
|
+
}
|
|
56
|
+
function DetailItems(props) {
|
|
57
|
+
return (_jsxs(View, { style: styles.detailList, children: [_jsx(Text, { weight: "semiBold", variant: "bodySmall", children: props.title }), props.items.length === 0 ? (_jsx(Text, { color: "neutral", emphasis: "muted", variant: "caption", children: props.empty })) : (props.items.map((item) => (_jsxs(Text, { variant: "caption", children: ["\u2022 ", item] }, item))))] }));
|
|
58
|
+
}
|
|
59
|
+
function ReasonItems(props) {
|
|
60
|
+
return (_jsx(DetailItems, { title: props.title, empty: `No ${props.title.toLowerCase()}.`, items: props.items.map((item) => `${item.code ? `${item.code} · ` : ''}${item.reason}${item.nextAction ? ` · next: ${item.nextAction}` : ''}`) }));
|
|
61
|
+
}
|
|
62
|
+
function EffectItems(props) {
|
|
63
|
+
return (_jsx(DetailItems, { title: props.title, empty: "No shipment or follow-up effects.", items: props.effects.map((effect) => `${effect.kind} · ${effect.state} · ${effect.reason}`) }));
|
|
64
|
+
}
|
|
65
|
+
function permissionSelection(permissions) {
|
|
66
|
+
return [
|
|
67
|
+
...(permissions.ownerCode ? ['owner-code'] : []),
|
|
68
|
+
...(permissions.lifecycleScripts ? ['lifecycle-scripts'] : []),
|
|
69
|
+
...(permissions.externalEffects ? ['external-effects'] : []),
|
|
70
|
+
];
|
|
71
|
+
}
|
|
72
|
+
const styles = StyleSheet.create({
|
|
73
|
+
panel: {
|
|
74
|
+
width: '100%',
|
|
75
|
+
flexBasis: '100%',
|
|
76
|
+
borderWidth: 1,
|
|
77
|
+
borderRadius: 10,
|
|
78
|
+
padding: 16,
|
|
79
|
+
gap: 18,
|
|
80
|
+
},
|
|
81
|
+
section: {
|
|
82
|
+
gap: 10,
|
|
83
|
+
},
|
|
84
|
+
detailList: {
|
|
85
|
+
gap: 4,
|
|
86
|
+
},
|
|
87
|
+
permissions: {
|
|
88
|
+
gap: 8,
|
|
89
|
+
},
|
|
90
|
+
actions: {
|
|
91
|
+
gap: 10,
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
//# sourceMappingURL=ProjectUpdateDashboardPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectUpdateDashboardPanel.js","sourceRoot":"","sources":["../../../../../src/features/project-updates/adapters/inbound/ProjectUpdateDashboardPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerProjectUpdateRoutes.d.ts","sourceRoot":"","sources":["../../../../../src/features/project-updates/adapters/inbound/registerProjectUpdateRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAIb,mBAAmB,EAInB,cAAc,EACd,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,SAAS,CAAC;AAE7D,UAAU,yBAAyB;IACjC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrE,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE;AAED,UAAU,yBAAyB;IACjC,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IAC5C,QAAQ,CAAC,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACtF;
|
|
1
|
+
{"version":3,"file":"registerProjectUpdateRoutes.d.ts","sourceRoot":"","sources":["../../../../../src/features/project-updates/adapters/inbound/registerProjectUpdateRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAIb,mBAAmB,EAInB,cAAc,EACd,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,SAAS,CAAC;AAE7D,UAAU,yBAAyB;IACjC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrE,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE;AAED,UAAU,yBAAyB;IACjC,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IAC5C,QAAQ,CAAC,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACtF;AAID,gGAAgG;AAChG,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,yBAAyB,GACjC,IAAI,CA4EN"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { hasOnlyKeys, isRecord } from '@ankhorage/utility/object';
|
|
2
|
+
const MAX_REVIEWED_APM_APPLY_BODY_BYTES = 16 * 1024 * 1024;
|
|
2
3
|
/*** Register the authorized HTTP adapter for Studio's composed APM project-update lifecycle. */
|
|
3
4
|
export function registerProjectUpdateRoutes(fastify, options) {
|
|
4
5
|
fastify.get('/api/projects/:id/updates/status', async (request, reply) => {
|
|
@@ -29,7 +30,7 @@ export function registerProjectUpdateRoutes(fastify, options) {
|
|
|
29
30
|
};
|
|
30
31
|
return invokeLifecycle(reply, () => options.service.planAsync(input));
|
|
31
32
|
});
|
|
32
|
-
fastify.post('/api/projects/:id/updates/apply', async (request, reply) => {
|
|
33
|
+
fastify.post('/api/projects/:id/updates/apply', { bodyLimit: MAX_REVIEWED_APM_APPLY_BODY_BYTES }, async (request, reply) => {
|
|
33
34
|
const context = await resolveRequestContext(request.params, options, reply);
|
|
34
35
|
if (context === undefined)
|
|
35
36
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerProjectUpdateRoutes.js","sourceRoot":"","sources":["../../../../../src/features/project-updates/adapters/inbound/registerProjectUpdateRoutes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registerProjectUpdateRoutes.js","sourceRoot":"","sources":["../../../../../src/features/project-updates/adapters/inbound/registerProjectUpdateRoutes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ApmStatusAvailabilityMode } from '@ankhorage/apm/types';
|
|
2
|
+
import type { ProjectUpdatePermissionId } from '../../../../types/project-update-dashboard';
|
|
3
|
+
/*** Bind one selected project to the authorized Dashboard APM lifecycle and its reviewed state. */
|
|
4
|
+
export declare function useProjectUpdateDashboard(projectId: string): {
|
|
5
|
+
state: import("../../../../types/project-update-dashboard").ProjectUpdateDashboardState;
|
|
6
|
+
inspectAsync: () => Promise<void>;
|
|
7
|
+
planAsync: () => Promise<void>;
|
|
8
|
+
applyAsync: () => Promise<void>;
|
|
9
|
+
resumeAsync: () => Promise<void>;
|
|
10
|
+
verifyAsync: () => Promise<void>;
|
|
11
|
+
setAvailability: (availability: ApmStatusAvailabilityMode) => void;
|
|
12
|
+
setPermissionSelection: (selection: readonly ProjectUpdatePermissionId[]) => void;
|
|
13
|
+
setOperationId: (operationId: string) => void;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=useProjectUpdateDashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useProjectUpdateDashboard.d.ts","sourceRoot":"","sources":["../../../../../src/features/project-updates/adapters/inbound/useProjectUpdateDashboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAG3F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAM5F,mGAAmG;AACnG,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM;;;;;;;oCA0EN,yBAAyB;wCAIrB,SAAS,yBAAyB,EAAE;kCAO1C,MAAM;EAexD"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { useCallback, useEffect, useMemo, useReducer } from 'react';
|
|
2
|
+
import { createProjectUpdateDashboardState } from '../../application/createProjectUpdateDashboardState';
|
|
3
|
+
import { reduceProjectUpdateDashboardState } from '../../application/reduceProjectUpdateDashboardState';
|
|
4
|
+
import { createStudioProjectUpdateDashboardService } from '../../composition/createStudioProjectUpdateDashboardService';
|
|
5
|
+
import { readProjectUpdateOperationId } from '../../utils/readProjectUpdateOperationId';
|
|
6
|
+
/*** Bind one selected project to the authorized Dashboard APM lifecycle and its reviewed state. */
|
|
7
|
+
export function useProjectUpdateDashboard(projectId) {
|
|
8
|
+
const service = useMemo(() => createStudioProjectUpdateDashboardService(), []);
|
|
9
|
+
const [state, dispatch] = useReducer(reduceProjectUpdateDashboardState, projectId, createProjectUpdateDashboardState);
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
dispatch({ type: 'project-changed', projectId });
|
|
12
|
+
}, [projectId]);
|
|
13
|
+
const inspectAsync = useCallback(async () => {
|
|
14
|
+
dispatch({ type: 'request-started', action: 'status' });
|
|
15
|
+
try {
|
|
16
|
+
const status = await service.inspectAsync(projectId, state.availability);
|
|
17
|
+
dispatch({ type: 'status-received', status });
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
dispatch({ type: 'request-failed', message: readErrorMessage(error) });
|
|
21
|
+
}
|
|
22
|
+
}, [projectId, service, state.availability]);
|
|
23
|
+
const planAsync = useCallback(async () => {
|
|
24
|
+
dispatch({ type: 'request-started', action: 'plan' });
|
|
25
|
+
try {
|
|
26
|
+
const plan = await service.planAsync(projectId, state.availability);
|
|
27
|
+
dispatch({ type: 'plan-received', plan });
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
dispatch({ type: 'request-failed', message: readErrorMessage(error) });
|
|
31
|
+
}
|
|
32
|
+
}, [projectId, service, state.availability]);
|
|
33
|
+
const applyAsync = useCallback(async () => {
|
|
34
|
+
if (state.plan === null) {
|
|
35
|
+
dispatch({ type: 'request-failed', message: 'Inspect and review a plan before applying.' });
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
dispatch({ type: 'request-started', action: 'apply' });
|
|
39
|
+
try {
|
|
40
|
+
const execution = await service.applyAsync(projectId, state.plan, state.permissions);
|
|
41
|
+
dispatch({
|
|
42
|
+
type: 'execution-received',
|
|
43
|
+
execution,
|
|
44
|
+
operationId: readProjectUpdateOperationId(execution),
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
dispatch({ type: 'request-failed', message: readErrorMessage(error) });
|
|
49
|
+
}
|
|
50
|
+
}, [projectId, service, state.permissions, state.plan]);
|
|
51
|
+
const resumeAsync = useCallback(async () => {
|
|
52
|
+
dispatch({ type: 'request-started', action: 'resume' });
|
|
53
|
+
try {
|
|
54
|
+
const execution = await service.resumeAsync(projectId, state.operationId, state.permissions);
|
|
55
|
+
dispatch({
|
|
56
|
+
type: 'execution-received',
|
|
57
|
+
execution,
|
|
58
|
+
operationId: readProjectUpdateOperationId(execution),
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
dispatch({ type: 'request-failed', message: readErrorMessage(error) });
|
|
63
|
+
}
|
|
64
|
+
}, [projectId, service, state.operationId, state.permissions]);
|
|
65
|
+
const verifyAsync = useCallback(async () => {
|
|
66
|
+
dispatch({ type: 'request-started', action: 'verify' });
|
|
67
|
+
try {
|
|
68
|
+
const verification = await service.verifyAsync(projectId, state.operationId);
|
|
69
|
+
dispatch({ type: 'verification-received', verification });
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
dispatch({ type: 'request-failed', message: readErrorMessage(error) });
|
|
73
|
+
}
|
|
74
|
+
}, [projectId, service, state.operationId]);
|
|
75
|
+
const setAvailability = useCallback((availability) => {
|
|
76
|
+
dispatch({ type: 'availability-changed', availability });
|
|
77
|
+
}, []);
|
|
78
|
+
const setPermissionSelection = useCallback((selection) => {
|
|
79
|
+
dispatch({
|
|
80
|
+
type: 'permissions-changed',
|
|
81
|
+
permissions: selectionToPermissions(selection),
|
|
82
|
+
});
|
|
83
|
+
}, []);
|
|
84
|
+
const setOperationId = useCallback((operationId) => {
|
|
85
|
+
dispatch({ type: 'operation-id-changed', operationId });
|
|
86
|
+
}, []);
|
|
87
|
+
return {
|
|
88
|
+
state,
|
|
89
|
+
inspectAsync,
|
|
90
|
+
planAsync,
|
|
91
|
+
applyAsync,
|
|
92
|
+
resumeAsync,
|
|
93
|
+
verifyAsync,
|
|
94
|
+
setAvailability,
|
|
95
|
+
setPermissionSelection,
|
|
96
|
+
setOperationId,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function selectionToPermissions(selection) {
|
|
100
|
+
return {
|
|
101
|
+
ownerCode: selection.includes('owner-code'),
|
|
102
|
+
lifecycleScripts: selection.includes('lifecycle-scripts'),
|
|
103
|
+
externalEffects: selection.includes('external-effects'),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function readErrorMessage(error) {
|
|
107
|
+
return error instanceof Error ? error.message : 'Project update request failed.';
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=useProjectUpdateDashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useProjectUpdateDashboard.js","sourceRoot":"","sources":["../../../../../src/features/project-updates/adapters/inbound/useProjectUpdateDashboard.ts"],"names":[],"mappings":"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"}
|
package/dist/features/project-updates/adapters/outbound/createProjectUpdateHostHttpAdapter.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ProjectUpdateHostPort } from '../../application/ports/outbound/ProjectUpdateHostPort';
|
|
2
|
+
/*** Create the browser-safe outbound adapter for Studio's project-scoped APM host routes. */
|
|
3
|
+
export declare function createProjectUpdateHostHttpAdapter(apiBase: string): ProjectUpdateHostPort;
|
|
4
|
+
//# sourceMappingURL=createProjectUpdateHostHttpAdapter.d.ts.map
|
package/dist/features/project-updates/adapters/outbound/createProjectUpdateHostHttpAdapter.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createProjectUpdateHostHttpAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/features/project-updates/adapters/outbound/createProjectUpdateHostHttpAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AAEpG,6FAA6F;AAC7F,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,CAiCzF"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { isRecord } from '@ankhorage/utility/object';
|
|
2
|
+
/*** Create the browser-safe outbound adapter for Studio's project-scoped APM host routes. */
|
|
3
|
+
export function createProjectUpdateHostHttpAdapter(apiBase) {
|
|
4
|
+
return {
|
|
5
|
+
statusAsync: async (projectId, availability) => requestJsonAsync(apiBase, `/projects/${encodeURIComponent(projectId)}/updates/status?availability=${encodeURIComponent(availability)}`, { method: 'GET' }),
|
|
6
|
+
planAsync: async (projectId, input) => requestJsonAsync(apiBase, `/projects/${encodeURIComponent(projectId)}/updates/plan`, {
|
|
7
|
+
method: 'POST',
|
|
8
|
+
headers: { 'Content-Type': 'application/json' },
|
|
9
|
+
body: JSON.stringify(input),
|
|
10
|
+
}),
|
|
11
|
+
applyAsync: async (projectId, plan, permissions) => requestJsonAsync(apiBase, `/projects/${encodeURIComponent(projectId)}/updates/apply`, {
|
|
12
|
+
method: 'POST',
|
|
13
|
+
headers: { 'Content-Type': 'application/json' },
|
|
14
|
+
body: JSON.stringify({ plan, permissions }),
|
|
15
|
+
}),
|
|
16
|
+
resumeAsync: async (projectId, operationId, permissions) => requestJsonAsync(apiBase, `/projects/${encodeURIComponent(projectId)}/updates/resume`, {
|
|
17
|
+
method: 'POST',
|
|
18
|
+
headers: { 'Content-Type': 'application/json' },
|
|
19
|
+
body: JSON.stringify({ operationId, permissions }),
|
|
20
|
+
}),
|
|
21
|
+
verifyAsync: async (projectId, operationId) => requestJsonAsync(apiBase, `/projects/${encodeURIComponent(projectId)}/updates/verify`, {
|
|
22
|
+
method: 'POST',
|
|
23
|
+
headers: { 'Content-Type': 'application/json' },
|
|
24
|
+
body: JSON.stringify({ operationId }),
|
|
25
|
+
}),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/*** Execute one bounded Studio host request and preserve structured APM results as untrusted JSON. */
|
|
29
|
+
async function requestJsonAsync(apiBase, path, init) {
|
|
30
|
+
const response = await fetch(`${apiBase}${path}`, init);
|
|
31
|
+
const body = await readResponseJsonAsync(response);
|
|
32
|
+
if (!response.ok) {
|
|
33
|
+
throw new Error(readFailureMessage(body) ?? `Project update request failed with ${response.status}.`);
|
|
34
|
+
}
|
|
35
|
+
return body;
|
|
36
|
+
}
|
|
37
|
+
/*** Read a response body without turning an invalid error payload into a second exception. */
|
|
38
|
+
async function readResponseJsonAsync(response) {
|
|
39
|
+
try {
|
|
40
|
+
return await response.json();
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/*** Read the bounded host error message without echoing arbitrary response values. */
|
|
47
|
+
function readFailureMessage(value) {
|
|
48
|
+
if (!isRecord(value))
|
|
49
|
+
return undefined;
|
|
50
|
+
if (typeof value.error === 'string')
|
|
51
|
+
return value.error;
|
|
52
|
+
return typeof value.message === 'string' ? value.message : undefined;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=createProjectUpdateHostHttpAdapter.js.map
|
package/dist/features/project-updates/adapters/outbound/createProjectUpdateHostHttpAdapter.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createProjectUpdateHostHttpAdapter.js","sourceRoot":"","sources":["../../../../../src/features/project-updates/adapters/outbound/createProjectUpdateHostHttpAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ApmApplyPermissions, ApmStatusAvailabilityMode } from '@ankhorage/apm/types';
|
|
2
|
+
import type { ProjectUpdateHostPort } from './ports/outbound/ProjectUpdateHostPort';
|
|
3
|
+
/*** Coordinate Dashboard APM lifecycle requests through the authorized project-scoped host port. */
|
|
4
|
+
export declare class ProjectUpdateDashboardService {
|
|
5
|
+
private readonly host;
|
|
6
|
+
/*** Bind Dashboard lifecycle orchestration to one project-update host capability. */
|
|
7
|
+
constructor(host: ProjectUpdateHostPort);
|
|
8
|
+
/*** Inspect fresh or offline APM evidence for one selected Studio project. */
|
|
9
|
+
inspectAsync(projectId: string, availability: ApmStatusAvailabilityMode): Promise<unknown>;
|
|
10
|
+
/*** Build a concrete safe-update/repair plan for one selected Studio project. */
|
|
11
|
+
planAsync(projectId: string, availability: ApmStatusAvailabilityMode): Promise<unknown>;
|
|
12
|
+
/*** Execute one explicitly reviewed plan using the user's explicit permission envelope. */
|
|
13
|
+
applyAsync(projectId: string, plan: unknown, permissions: ApmApplyPermissions): Promise<unknown>;
|
|
14
|
+
/*** Resume one durable APM operation for the selected project. */
|
|
15
|
+
resumeAsync(projectId: string, operationId: string, permissions: ApmApplyPermissions): Promise<unknown>;
|
|
16
|
+
/*** Verify one durable APM operation against fresh owner-aware evidence. */
|
|
17
|
+
verifyAsync(projectId: string, operationId: string): Promise<unknown>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=ProjectUpdateDashboardService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectUpdateDashboardService.d.ts","sourceRoot":"","sources":["../../../../src/features/project-updates/application/ProjectUpdateDashboardService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EAEnB,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAEpF,oGAAoG;AACpG,qBAAa,6BAA6B;IAE5B,OAAO,CAAC,QAAQ,CAAC,IAAI;IADjC,qFAAqF;gBACxD,IAAI,EAAE,qBAAqB;IAExD,8EAA8E;IACxE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,yBAAyB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIhG,iFAAiF;IAC3E,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,yBAAyB,GAAG,OAAO,CAAC,OAAO,CAAC;IAO7F,2FAA2F;IACrF,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,mBAAmB,GAC/B,OAAO,CAAC,OAAO,CAAC;IAInB,kEAAkE;IAC5D,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,mBAAmB,GAC/B,OAAO,CAAC,OAAO,CAAC;IAQnB,4EAA4E;IACtE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAM5E"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/*** Coordinate Dashboard APM lifecycle requests through the authorized project-scoped host port. */
|
|
2
|
+
export class ProjectUpdateDashboardService {
|
|
3
|
+
host;
|
|
4
|
+
/*** Bind Dashboard lifecycle orchestration to one project-update host capability. */
|
|
5
|
+
constructor(host) {
|
|
6
|
+
this.host = host;
|
|
7
|
+
}
|
|
8
|
+
/*** Inspect fresh or offline APM evidence for one selected Studio project. */
|
|
9
|
+
async inspectAsync(projectId, availability) {
|
|
10
|
+
return await this.host.statusAsync(requireProjectId(projectId), availability);
|
|
11
|
+
}
|
|
12
|
+
/*** Build a concrete safe-update/repair plan for one selected Studio project. */
|
|
13
|
+
async planAsync(projectId, availability) {
|
|
14
|
+
return await this.host.planAsync(requireProjectId(projectId), {
|
|
15
|
+
availability,
|
|
16
|
+
policy: DASHBOARD_PLAN_POLICY,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
/*** Execute one explicitly reviewed plan using the user's explicit permission envelope. */
|
|
20
|
+
async applyAsync(projectId, plan, permissions) {
|
|
21
|
+
return await this.host.applyAsync(requireProjectId(projectId), plan, permissions);
|
|
22
|
+
}
|
|
23
|
+
/*** Resume one durable APM operation for the selected project. */
|
|
24
|
+
async resumeAsync(projectId, operationId, permissions) {
|
|
25
|
+
return await this.host.resumeAsync(requireProjectId(projectId), requireOperationId(operationId), permissions);
|
|
26
|
+
}
|
|
27
|
+
/*** Verify one durable APM operation against fresh owner-aware evidence. */
|
|
28
|
+
async verifyAsync(projectId, operationId) {
|
|
29
|
+
return await this.host.verifyAsync(requireProjectId(projectId), requireOperationId(operationId));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const DASHBOARD_PLAN_POLICY = {
|
|
33
|
+
dependencyUpdates: 'safe',
|
|
34
|
+
repairInstallations: true,
|
|
35
|
+
repairProjections: true,
|
|
36
|
+
};
|
|
37
|
+
/*** Reject an empty project identity before invoking the host boundary. */
|
|
38
|
+
function requireProjectId(projectId) {
|
|
39
|
+
const value = projectId.trim();
|
|
40
|
+
if (value.length === 0)
|
|
41
|
+
throw new Error('A selected project is required.');
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
/*** Reject an empty durable operation identity before resume or verification. */
|
|
45
|
+
function requireOperationId(operationId) {
|
|
46
|
+
const value = operationId.trim();
|
|
47
|
+
if (value.length === 0)
|
|
48
|
+
throw new Error('An APM operation ID is required.');
|
|
49
|
+
return value;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=ProjectUpdateDashboardService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectUpdateDashboardService.js","sourceRoot":"","sources":["../../../../src/features/project-updates/application/ProjectUpdateDashboardService.ts"],"names":[],"mappings":"AAQA,oGAAoG;AACpG,MAAM,OAAO,6BAA6B;IAEX;IAD7B,qFAAqF;IACrF,YAA6B,IAA2B;QAA3B,SAAI,GAAJ,IAAI,CAAuB;IAAG,CAAC;IAE5D,8EAA8E;IAC9E,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,YAAuC;QAC3E,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC;IAChF,CAAC;IAED,iFAAiF;IACjF,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,YAAuC;QACxE,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE;YAC5D,YAAY;YACZ,MAAM,EAAE,qBAAqB;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,2FAA2F;IAC3F,KAAK,CAAC,UAAU,CACd,SAAiB,EACjB,IAAa,EACb,WAAgC;QAEhC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACpF,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,WAAW,CACf,SAAiB,EACjB,WAAmB,EACnB,WAAgC;QAEhC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAChC,gBAAgB,CAAC,SAAS,CAAC,EAC3B,kBAAkB,CAAC,WAAW,CAAC,EAC/B,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,WAAmB;QACtD,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAChC,gBAAgB,CAAC,SAAS,CAAC,EAC3B,kBAAkB,CAAC,WAAW,CAAC,CAChC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,qBAAqB,GAAuB;IAChD,iBAAiB,EAAE,MAAM;IACzB,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAEF,2EAA2E;AAC3E,SAAS,gBAAgB,CAAC,SAAiB;IACzC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iFAAiF;AACjF,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC5E,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ProjectUpdateDashboardState } from '../../../types/project-update-dashboard';
|
|
2
|
+
/*** Create isolated Dashboard APM lifecycle state for one selected Studio project. */
|
|
3
|
+
export declare function createProjectUpdateDashboardState(projectId: string): ProjectUpdateDashboardState;
|
|
4
|
+
//# sourceMappingURL=createProjectUpdateDashboardState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createProjectUpdateDashboardState.d.ts","sourceRoot":"","sources":["../../../../src/features/project-updates/application/createProjectUpdateDashboardState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAE3F,sFAAsF;AACtF,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,MAAM,GAAG,2BAA2B,CAiBhG"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*** Create isolated Dashboard APM lifecycle state for one selected Studio project. */
|
|
2
|
+
export function createProjectUpdateDashboardState(projectId) {
|
|
3
|
+
return {
|
|
4
|
+
projectId,
|
|
5
|
+
availability: 'refresh',
|
|
6
|
+
status: null,
|
|
7
|
+
plan: null,
|
|
8
|
+
execution: null,
|
|
9
|
+
verification: null,
|
|
10
|
+
operationId: '',
|
|
11
|
+
permissions: {
|
|
12
|
+
ownerCode: false,
|
|
13
|
+
lifecycleScripts: false,
|
|
14
|
+
externalEffects: false,
|
|
15
|
+
},
|
|
16
|
+
busy: null,
|
|
17
|
+
error: null,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=createProjectUpdateDashboardState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createProjectUpdateDashboardState.js","sourceRoot":"","sources":["../../../../src/features/project-updates/application/createProjectUpdateDashboardState.ts"],"names":[],"mappings":"AAEA,sFAAsF;AACtF,MAAM,UAAU,iCAAiC,CAAC,SAAiB;IACjE,OAAO;QACL,SAAS;QACT,YAAY,EAAE,SAAS;QACvB,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,EAAE;QACf,WAAW,EAAE;YACX,SAAS,EAAE,KAAK;YAChB,gBAAgB,EAAE,KAAK;YACvB,eAAe,EAAE,KAAK;SACvB;QACD,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ApmApplyPermissions, ApmPlanPolicyInput, ApmStatusAvailabilityMode } from '@ankhorage/apm/types';
|
|
2
|
+
interface ProjectUpdateHostPlanInput {
|
|
3
|
+
readonly availability: ApmStatusAvailabilityMode;
|
|
4
|
+
readonly policy: ApmPlanPolicyInput;
|
|
5
|
+
}
|
|
6
|
+
export interface ProjectUpdateHostPort {
|
|
7
|
+
readonly statusAsync: (projectId: string, availability: ApmStatusAvailabilityMode) => Promise<unknown>;
|
|
8
|
+
readonly planAsync: (projectId: string, input: ProjectUpdateHostPlanInput) => Promise<unknown>;
|
|
9
|
+
readonly applyAsync: (projectId: string, plan: unknown, permissions: ApmApplyPermissions) => Promise<unknown>;
|
|
10
|
+
readonly resumeAsync: (projectId: string, operationId: string, permissions: ApmApplyPermissions) => Promise<unknown>;
|
|
11
|
+
readonly verifyAsync: (projectId: string, operationId: string) => Promise<unknown>;
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=ProjectUpdateHostPort.d.ts.map
|
package/dist/features/project-updates/application/ports/outbound/ProjectUpdateHostPort.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectUpdateHostPort.d.ts","sourceRoot":"","sources":["../../../../../../src/features/project-updates/application/ports/outbound/ProjectUpdateHostPort.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC;AAE9B,UAAU,0BAA0B;IAClC,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;CACrC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,CACpB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,yBAAyB,KACpC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,0BAA0B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/F,QAAQ,CAAC,UAAU,EAAE,CACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,mBAAmB,KAC7B,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,CACpB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,mBAAmB,KAC7B,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACpF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectUpdateHostPort.js","sourceRoot":"","sources":["../../../../../../src/features/project-updates/application/ports/outbound/ProjectUpdateHostPort.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ProjectUpdateDashboardEvent, ProjectUpdateDashboardState } from '../../../types/project-update-dashboard';
|
|
2
|
+
/*** Reduce Dashboard APM lifecycle events while invalidating reviewed plans on fresh evidence. */
|
|
3
|
+
export declare function reduceProjectUpdateDashboardState(state: ProjectUpdateDashboardState, event: ProjectUpdateDashboardEvent): ProjectUpdateDashboardState;
|
|
4
|
+
//# sourceMappingURL=reduceProjectUpdateDashboardState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reduceProjectUpdateDashboardState.d.ts","sourceRoot":"","sources":["../../../../src/features/project-updates/application/reduceProjectUpdateDashboardState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,yCAAyC,CAAC;AAGjD,kGAAkG;AAClG,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,2BAA2B,EAClC,KAAK,EAAE,2BAA2B,GACjC,2BAA2B,CAiD7B"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { createProjectUpdateDashboardState } from './createProjectUpdateDashboardState';
|
|
2
|
+
/*** Reduce Dashboard APM lifecycle events while invalidating reviewed plans on fresh evidence. */
|
|
3
|
+
export function reduceProjectUpdateDashboardState(state, event) {
|
|
4
|
+
switch (event.type) {
|
|
5
|
+
case 'project-changed':
|
|
6
|
+
return createProjectUpdateDashboardState(event.projectId);
|
|
7
|
+
case 'availability-changed':
|
|
8
|
+
return {
|
|
9
|
+
...state,
|
|
10
|
+
availability: event.availability,
|
|
11
|
+
status: null,
|
|
12
|
+
plan: null,
|
|
13
|
+
error: null,
|
|
14
|
+
};
|
|
15
|
+
case 'request-started':
|
|
16
|
+
return {
|
|
17
|
+
...state,
|
|
18
|
+
busy: event.action,
|
|
19
|
+
error: null,
|
|
20
|
+
...(event.action === 'status' || event.action === 'plan' ? { plan: null } : {}),
|
|
21
|
+
};
|
|
22
|
+
case 'request-failed':
|
|
23
|
+
return { ...state, busy: null, error: event.message };
|
|
24
|
+
case 'status-received':
|
|
25
|
+
return { ...state, status: event.status, plan: null, busy: null, error: null };
|
|
26
|
+
case 'plan-received':
|
|
27
|
+
return {
|
|
28
|
+
...state,
|
|
29
|
+
plan: event.plan,
|
|
30
|
+
execution: null,
|
|
31
|
+
verification: null,
|
|
32
|
+
busy: null,
|
|
33
|
+
error: null,
|
|
34
|
+
};
|
|
35
|
+
case 'permissions-changed':
|
|
36
|
+
return { ...state, permissions: event.permissions };
|
|
37
|
+
case 'execution-received':
|
|
38
|
+
return {
|
|
39
|
+
...state,
|
|
40
|
+
plan: null,
|
|
41
|
+
execution: event.execution,
|
|
42
|
+
verification: null,
|
|
43
|
+
operationId: event.operationId ?? state.operationId,
|
|
44
|
+
busy: null,
|
|
45
|
+
error: null,
|
|
46
|
+
};
|
|
47
|
+
case 'verification-received':
|
|
48
|
+
return { ...state, verification: event.verification, busy: null, error: null };
|
|
49
|
+
case 'operation-id-changed':
|
|
50
|
+
return { ...state, operationId: event.operationId, verification: null };
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=reduceProjectUpdateDashboardState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reduceProjectUpdateDashboardState.js","sourceRoot":"","sources":["../../../../src/features/project-updates/application/reduceProjectUpdateDashboardState.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AAExF,kGAAkG;AAClG,MAAM,UAAU,iCAAiC,CAC/C,KAAkC,EAClC,KAAkC;IAElC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,iBAAiB;YACpB,OAAO,iCAAiC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5D,KAAK,sBAAsB;YACzB,OAAO;gBACL,GAAG,KAAK;gBACR,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,IAAI;aACZ,CAAC;QACJ,KAAK,iBAAiB;YACpB,OAAO;gBACL,GAAG,KAAK;gBACR,IAAI,EAAE,KAAK,CAAC,MAAM;gBAClB,KAAK,EAAE,IAAI;gBACX,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChF,CAAC;QACJ,KAAK,gBAAgB;YACnB,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QACxD,KAAK,iBAAiB;YACpB,OAAO,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACjF,KAAK,eAAe;YAClB,OAAO;gBACL,GAAG,KAAK;gBACR,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,SAAS,EAAE,IAAI;gBACf,YAAY,EAAE,IAAI;gBAClB,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,IAAI;aACZ,CAAC;QACJ,KAAK,qBAAqB;YACxB,OAAO,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;QACtD,KAAK,oBAAoB;YACvB,OAAO;gBACL,GAAG,KAAK;gBACR,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,YAAY,EAAE,IAAI;gBAClB,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW;gBACnD,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,IAAI;aACZ,CAAC;QACJ,KAAK,uBAAuB;YAC1B,OAAO,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACjF,KAAK,sBAAsB;YACzB,OAAO,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC5E,CAAC;AACH,CAAC"}
|
package/dist/features/project-updates/application/resolveProjectUpdateDashboardPresentation.d.ts
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import type { ProjectUpdateDashboardState } from '../../../types/project-update-dashboard';
|
|
2
|
+
/*** Resolve untrusted structured APM host results into the bounded Dashboard presentation model. */
|
|
3
|
+
export declare function resolveProjectUpdateDashboardPresentation(state: ProjectUpdateDashboardState): {
|
|
4
|
+
status: {
|
|
5
|
+
complete: boolean;
|
|
6
|
+
currency: string;
|
|
7
|
+
dependencies: {
|
|
8
|
+
name: string;
|
|
9
|
+
direct: boolean;
|
|
10
|
+
currentVersion: string;
|
|
11
|
+
availableVersion: string;
|
|
12
|
+
findings: {
|
|
13
|
+
code: string | undefined;
|
|
14
|
+
reason: string;
|
|
15
|
+
nextAction: string | undefined;
|
|
16
|
+
}[];
|
|
17
|
+
}[];
|
|
18
|
+
observations: {
|
|
19
|
+
owner: string;
|
|
20
|
+
projection: string;
|
|
21
|
+
migration: string;
|
|
22
|
+
reason: string | undefined;
|
|
23
|
+
nextAction: string | undefined;
|
|
24
|
+
}[];
|
|
25
|
+
findings: {
|
|
26
|
+
code: string | undefined;
|
|
27
|
+
reason: string;
|
|
28
|
+
nextAction: string | undefined;
|
|
29
|
+
}[];
|
|
30
|
+
diagnostics: {
|
|
31
|
+
code: string | undefined;
|
|
32
|
+
reason: string;
|
|
33
|
+
nextAction: string | undefined;
|
|
34
|
+
}[];
|
|
35
|
+
} | null;
|
|
36
|
+
plan: {
|
|
37
|
+
id: string;
|
|
38
|
+
complete: boolean;
|
|
39
|
+
hostRestartRequired: boolean;
|
|
40
|
+
canApply: boolean;
|
|
41
|
+
targets: {
|
|
42
|
+
name: string;
|
|
43
|
+
direct: boolean;
|
|
44
|
+
currentVersion: string;
|
|
45
|
+
targetVersion: string;
|
|
46
|
+
reason: string;
|
|
47
|
+
}[];
|
|
48
|
+
files: {
|
|
49
|
+
path: string;
|
|
50
|
+
kind: string;
|
|
51
|
+
}[];
|
|
52
|
+
steps: {
|
|
53
|
+
id: string;
|
|
54
|
+
kind: string;
|
|
55
|
+
reason: string;
|
|
56
|
+
evidence: readonly string[];
|
|
57
|
+
}[];
|
|
58
|
+
effects: {
|
|
59
|
+
kind: string;
|
|
60
|
+
state: string;
|
|
61
|
+
reason: string;
|
|
62
|
+
}[];
|
|
63
|
+
blockers: {
|
|
64
|
+
code: string;
|
|
65
|
+
reason: string;
|
|
66
|
+
nextAction: string | undefined;
|
|
67
|
+
}[];
|
|
68
|
+
findings: {
|
|
69
|
+
code: string | undefined;
|
|
70
|
+
reason: string;
|
|
71
|
+
nextAction: string | undefined;
|
|
72
|
+
}[];
|
|
73
|
+
diagnostics: {
|
|
74
|
+
code: string | undefined;
|
|
75
|
+
reason: string;
|
|
76
|
+
nextAction: string | undefined;
|
|
77
|
+
}[];
|
|
78
|
+
} | null;
|
|
79
|
+
execution: {
|
|
80
|
+
operationId: string;
|
|
81
|
+
status: string;
|
|
82
|
+
complete: boolean;
|
|
83
|
+
blockers: {
|
|
84
|
+
code: string | undefined;
|
|
85
|
+
reason: string;
|
|
86
|
+
nextAction: string | undefined;
|
|
87
|
+
}[];
|
|
88
|
+
diagnostics: {
|
|
89
|
+
code: string | undefined;
|
|
90
|
+
reason: string;
|
|
91
|
+
nextAction: string | undefined;
|
|
92
|
+
}[];
|
|
93
|
+
steps: {
|
|
94
|
+
id: string;
|
|
95
|
+
state: string;
|
|
96
|
+
attempts: number;
|
|
97
|
+
}[];
|
|
98
|
+
} | null;
|
|
99
|
+
verification: {
|
|
100
|
+
operationId: string;
|
|
101
|
+
verified: boolean;
|
|
102
|
+
checks: {
|
|
103
|
+
id: string;
|
|
104
|
+
kind: string;
|
|
105
|
+
status: string;
|
|
106
|
+
reason: string | undefined;
|
|
107
|
+
nextAction: string | undefined;
|
|
108
|
+
}[];
|
|
109
|
+
findings: {
|
|
110
|
+
code: string | undefined;
|
|
111
|
+
reason: string;
|
|
112
|
+
nextAction: string | undefined;
|
|
113
|
+
}[];
|
|
114
|
+
followUp: {
|
|
115
|
+
kind: string;
|
|
116
|
+
state: string;
|
|
117
|
+
reason: string;
|
|
118
|
+
}[];
|
|
119
|
+
diagnostics: {
|
|
120
|
+
code: string | undefined;
|
|
121
|
+
reason: string;
|
|
122
|
+
nextAction: string | undefined;
|
|
123
|
+
}[];
|
|
124
|
+
} | null;
|
|
125
|
+
};
|
|
126
|
+
//# sourceMappingURL=resolveProjectUpdateDashboardPresentation.d.ts.map
|
package/dist/features/project-updates/application/resolveProjectUpdateDashboardPresentation.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveProjectUpdateDashboardPresentation.d.ts","sourceRoot":"","sources":["../../../../src/features/project-updates/application/resolveProjectUpdateDashboardPresentation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAE3F,oGAAoG;AACpG,wBAAgB,yCAAyC,CAAC,KAAK,EAAE,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO3F"}
|
package/dist/features/project-updates/application/resolveProjectUpdateDashboardPresentation.js
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { isRecord } from '@ankhorage/utility/object';
|
|
2
|
+
/*** Resolve untrusted structured APM host results into the bounded Dashboard presentation model. */
|
|
3
|
+
export function resolveProjectUpdateDashboardPresentation(state) {
|
|
4
|
+
return {
|
|
5
|
+
status: resolveStatus(state.status),
|
|
6
|
+
plan: resolvePlan(state.plan),
|
|
7
|
+
execution: resolveExecution(state.execution),
|
|
8
|
+
verification: resolveVerification(state.verification),
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
function resolveStatus(value) {
|
|
12
|
+
if (!isOperation(value, 'status'))
|
|
13
|
+
return null;
|
|
14
|
+
const dependencies = readRecords(value.dependencies).map((dependency) => {
|
|
15
|
+
const installed = isRecord(dependency.installed) ? dependency.installed : {};
|
|
16
|
+
const availability = isRecord(dependency.availability) ? dependency.availability : {};
|
|
17
|
+
return {
|
|
18
|
+
name: readString(dependency.name, 'Unknown package'),
|
|
19
|
+
direct: dependency.direct === true,
|
|
20
|
+
currentVersion: readOptionalString(dependency.lockedVersion) ??
|
|
21
|
+
readOptionalString(installed.version) ??
|
|
22
|
+
'unknown',
|
|
23
|
+
availableVersion: readOptionalString(availability.compatibleVersion) ??
|
|
24
|
+
readOptionalString(availability.latestVersion) ??
|
|
25
|
+
readString(availability.state, 'unknown'),
|
|
26
|
+
findings: readReasonRows(dependency.findings),
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
const extensions = isRecord(value.extensions) ? value.extensions : {};
|
|
30
|
+
return {
|
|
31
|
+
complete: value.complete === true,
|
|
32
|
+
currency: readString(value.currency, 'unknown'),
|
|
33
|
+
dependencies,
|
|
34
|
+
observations: readRecords(extensions.observations).map((observation) => ({
|
|
35
|
+
owner: readOptionalString(observation.owner) ??
|
|
36
|
+
readOptionalString(observation.packageId) ??
|
|
37
|
+
'Unknown owner',
|
|
38
|
+
projection: readString(observation.projection, 'unknown'),
|
|
39
|
+
migration: readString(observation.migration, 'unknown'),
|
|
40
|
+
reason: readOptionalString(observation.reason),
|
|
41
|
+
nextAction: readOptionalString(observation.nextAction),
|
|
42
|
+
})),
|
|
43
|
+
findings: readReasonRows(value.findings),
|
|
44
|
+
diagnostics: readReasonRows(value.diagnostics),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function resolvePlan(value) {
|
|
48
|
+
if (!isOperation(value, 'plan'))
|
|
49
|
+
return null;
|
|
50
|
+
const blockers = readRecords(value.blockers).map((blocker) => ({
|
|
51
|
+
code: readString(blocker.code, 'plan.blocked'),
|
|
52
|
+
reason: readString(blocker.reason, 'Plan is blocked.'),
|
|
53
|
+
nextAction: readOptionalString(blocker.nextAction),
|
|
54
|
+
}));
|
|
55
|
+
const steps = readRecords(value.steps).map((step) => ({
|
|
56
|
+
id: readString(step.id, 'step'),
|
|
57
|
+
kind: readString(step.kind, 'unknown'),
|
|
58
|
+
reason: readString(step.reason, 'No reason provided.'),
|
|
59
|
+
evidence: readStrings(step.evidence),
|
|
60
|
+
}));
|
|
61
|
+
const hostRestartRequired = blockers.some((blocker) => blocker.code === 'plan.host-upgrade-required') ||
|
|
62
|
+
steps.some((step) => step.kind === 'host-restart');
|
|
63
|
+
const complete = value.complete === true;
|
|
64
|
+
return {
|
|
65
|
+
id: readString(value.id, 'unknown-plan'),
|
|
66
|
+
complete,
|
|
67
|
+
hostRestartRequired,
|
|
68
|
+
canApply: complete && !hostRestartRequired,
|
|
69
|
+
targets: readRecords(value.targets).map((target) => ({
|
|
70
|
+
name: readString(target.name, 'Unknown package'),
|
|
71
|
+
direct: target.direct === true,
|
|
72
|
+
currentVersion: readOptionalString(target.currentVersion) ?? 'unknown',
|
|
73
|
+
targetVersion: readString(target.targetVersion, 'unknown'),
|
|
74
|
+
reason: readString(target.reason, 'No reason provided.'),
|
|
75
|
+
})),
|
|
76
|
+
files: readRecords(value.files).map((file) => ({
|
|
77
|
+
path: readString(file.path, 'unknown path'),
|
|
78
|
+
kind: readString(file.kind, 'update'),
|
|
79
|
+
})),
|
|
80
|
+
steps,
|
|
81
|
+
effects: readRecords(value.effects).map(resolveEffect),
|
|
82
|
+
blockers,
|
|
83
|
+
findings: readReasonRows(value.findings),
|
|
84
|
+
diagnostics: readReasonRows(value.diagnostics),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function resolveExecution(value) {
|
|
88
|
+
if (!isOperation(value, 'apply'))
|
|
89
|
+
return null;
|
|
90
|
+
const journal = isRecord(value.journal) ? value.journal : {};
|
|
91
|
+
return {
|
|
92
|
+
operationId: readString(value.operationId, ''),
|
|
93
|
+
status: readString(value.status, 'unknown'),
|
|
94
|
+
complete: value.complete === true,
|
|
95
|
+
blockers: readReasonRows(value.blockers),
|
|
96
|
+
diagnostics: readReasonRows(value.diagnostics),
|
|
97
|
+
steps: readRecords(journal.steps).map((step) => ({
|
|
98
|
+
id: readString(step.stepId, 'step'),
|
|
99
|
+
state: readString(step.state, 'unknown'),
|
|
100
|
+
attempts: typeof step.attempts === 'number' ? step.attempts : 0,
|
|
101
|
+
})),
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
function resolveVerification(value) {
|
|
105
|
+
if (!isOperation(value, 'verify'))
|
|
106
|
+
return null;
|
|
107
|
+
return {
|
|
108
|
+
operationId: readString(value.operationId, ''),
|
|
109
|
+
verified: value.verified === true,
|
|
110
|
+
checks: readRecords(value.checks).map((check) => ({
|
|
111
|
+
id: readString(check.id, 'check'),
|
|
112
|
+
kind: readString(check.kind, 'unknown'),
|
|
113
|
+
status: readString(check.status, 'unknown'),
|
|
114
|
+
reason: readOptionalString(check.reason),
|
|
115
|
+
nextAction: readOptionalString(check.nextAction),
|
|
116
|
+
})),
|
|
117
|
+
findings: readReasonRows(value.findings),
|
|
118
|
+
followUp: readRecords(value.followUp).map(resolveEffect),
|
|
119
|
+
diagnostics: readReasonRows(value.diagnostics),
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
function resolveEffect(effect) {
|
|
123
|
+
return {
|
|
124
|
+
kind: readString(effect.kind, 'follow-up'),
|
|
125
|
+
state: readOptionalString(effect.requirement) ?? readOptionalString(effect.eligibility) ?? 'unknown',
|
|
126
|
+
reason: readString(effect.reason, 'No reason provided.'),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function readReasonRows(value) {
|
|
130
|
+
return readRecords(value).map((entry) => ({
|
|
131
|
+
code: readOptionalString(entry.code),
|
|
132
|
+
reason: readString(entry.reason, 'No reason provided.'),
|
|
133
|
+
nextAction: readOptionalString(entry.nextAction),
|
|
134
|
+
}));
|
|
135
|
+
}
|
|
136
|
+
function isOperation(value, operation) {
|
|
137
|
+
return isRecord(value) && value.operation === operation;
|
|
138
|
+
}
|
|
139
|
+
function readRecords(value) {
|
|
140
|
+
return Array.isArray(value) ? value.filter(isRecord) : [];
|
|
141
|
+
}
|
|
142
|
+
function readStrings(value) {
|
|
143
|
+
return Array.isArray(value)
|
|
144
|
+
? value.filter((entry) => typeof entry === 'string')
|
|
145
|
+
: [];
|
|
146
|
+
}
|
|
147
|
+
function readString(value, fallback) {
|
|
148
|
+
return typeof value === 'string' && value.length > 0 ? value : fallback;
|
|
149
|
+
}
|
|
150
|
+
function readOptionalString(value) {
|
|
151
|
+
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=resolveProjectUpdateDashboardPresentation.js.map
|
package/dist/features/project-updates/application/resolveProjectUpdateDashboardPresentation.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveProjectUpdateDashboardPresentation.js","sourceRoot":"","sources":["../../../../src/features/project-updates/application/resolveProjectUpdateDashboardPresentation.ts"],"names":[],"mappings":"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"}
|
package/dist/features/project-updates/composition/createStudioProjectUpdateDashboardService.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ProjectUpdateDashboardService } from '../application/ProjectUpdateDashboardService';
|
|
2
|
+
/*** Compose Dashboard APM lifecycle orchestration with Studio's authorized HTTP host adapter. */
|
|
3
|
+
export declare function createStudioProjectUpdateDashboardService(): ProjectUpdateDashboardService;
|
|
4
|
+
//# sourceMappingURL=createStudioProjectUpdateDashboardService.d.ts.map
|
package/dist/features/project-updates/composition/createStudioProjectUpdateDashboardService.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createStudioProjectUpdateDashboardService.d.ts","sourceRoot":"","sources":["../../../../src/features/project-updates/composition/createStudioProjectUpdateDashboardService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAE7F,iGAAiG;AACjG,wBAAgB,yCAAyC,IAAI,6BAA6B,CAEzF"}
|
package/dist/features/project-updates/composition/createStudioProjectUpdateDashboardService.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { API_BASE } from '../../../core/constants';
|
|
2
|
+
import { createProjectUpdateHostHttpAdapter } from '../adapters/outbound/createProjectUpdateHostHttpAdapter';
|
|
3
|
+
import { ProjectUpdateDashboardService } from '../application/ProjectUpdateDashboardService';
|
|
4
|
+
/*** Compose Dashboard APM lifecycle orchestration with Studio's authorized HTTP host adapter. */
|
|
5
|
+
export function createStudioProjectUpdateDashboardService() {
|
|
6
|
+
return new ProjectUpdateDashboardService(createProjectUpdateHostHttpAdapter(API_BASE));
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=createStudioProjectUpdateDashboardService.js.map
|
package/dist/features/project-updates/composition/createStudioProjectUpdateDashboardService.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createStudioProjectUpdateDashboardService.js","sourceRoot":"","sources":["../../../../src/features/project-updates/composition/createStudioProjectUpdateDashboardService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,kCAAkC,EAAE,MAAM,yDAAyD,CAAC;AAC7G,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAE7F,iGAAiG;AACjG,MAAM,UAAU,yCAAyC;IACvD,OAAO,IAAI,6BAA6B,CAAC,kCAAkC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readProjectUpdateOperationId.d.ts","sourceRoot":"","sources":["../../../../src/features/project-updates/utils/readProjectUpdateOperationId.ts"],"names":[],"mappings":"AAEA,gFAAgF;AAChF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAK/E"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { isRecord } from '@ankhorage/utility/object';
|
|
2
|
+
/*** Read a durable APM operation id from one structured apply/resume result. */
|
|
3
|
+
export function readProjectUpdateOperationId(value) {
|
|
4
|
+
if (!isRecord(value) || value.operation !== 'apply')
|
|
5
|
+
return undefined;
|
|
6
|
+
return typeof value.operationId === 'string' && value.operationId.length > 0
|
|
7
|
+
? value.operationId
|
|
8
|
+
: undefined;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=readProjectUpdateOperationId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readProjectUpdateOperationId.js","sourceRoot":"","sources":["../../../../src/features/project-updates/utils/readProjectUpdateOperationId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,gFAAgF;AAChF,MAAM,UAAU,4BAA4B,CAAC,KAAc;IACzD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IACtE,OAAO,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAC1E,CAAC,CAAC,KAAK,CAAC,WAAW;QACnB,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { ApmApplyPermissions, ApmStatusAvailabilityMode } from '@ankhorage/apm/types';
|
|
2
|
+
export type ProjectUpdatePermissionId = 'owner-code' | 'lifecycle-scripts' | 'external-effects';
|
|
3
|
+
export interface ProjectUpdateDashboardState {
|
|
4
|
+
readonly projectId: string;
|
|
5
|
+
readonly availability: ApmStatusAvailabilityMode;
|
|
6
|
+
readonly status: unknown;
|
|
7
|
+
readonly plan: unknown;
|
|
8
|
+
readonly execution: unknown;
|
|
9
|
+
readonly verification: unknown;
|
|
10
|
+
readonly operationId: string;
|
|
11
|
+
readonly permissions: ApmApplyPermissions;
|
|
12
|
+
readonly busy: 'status' | 'plan' | 'apply' | 'resume' | 'verify' | null;
|
|
13
|
+
readonly error: string | null;
|
|
14
|
+
}
|
|
15
|
+
export type ProjectUpdateDashboardEvent = {
|
|
16
|
+
readonly type: 'project-changed';
|
|
17
|
+
readonly projectId: string;
|
|
18
|
+
} | {
|
|
19
|
+
readonly type: 'availability-changed';
|
|
20
|
+
readonly availability: ApmStatusAvailabilityMode;
|
|
21
|
+
} | {
|
|
22
|
+
readonly type: 'request-started';
|
|
23
|
+
readonly action: 'status' | 'plan' | 'apply' | 'resume' | 'verify';
|
|
24
|
+
} | {
|
|
25
|
+
readonly type: 'request-failed';
|
|
26
|
+
readonly message: string;
|
|
27
|
+
} | {
|
|
28
|
+
readonly type: 'status-received';
|
|
29
|
+
readonly status: unknown;
|
|
30
|
+
} | {
|
|
31
|
+
readonly type: 'plan-received';
|
|
32
|
+
readonly plan: unknown;
|
|
33
|
+
} | {
|
|
34
|
+
readonly type: 'permissions-changed';
|
|
35
|
+
readonly permissions: ApmApplyPermissions;
|
|
36
|
+
} | {
|
|
37
|
+
readonly type: 'execution-received';
|
|
38
|
+
readonly execution: unknown;
|
|
39
|
+
readonly operationId?: string;
|
|
40
|
+
} | {
|
|
41
|
+
readonly type: 'verification-received';
|
|
42
|
+
readonly verification: unknown;
|
|
43
|
+
} | {
|
|
44
|
+
readonly type: 'operation-id-changed';
|
|
45
|
+
readonly operationId: string;
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=project-update-dashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-update-dashboard.d.ts","sourceRoot":"","sources":["../../src/types/project-update-dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAE3F,MAAM,MAAM,yBAAyB,GAAG,YAAY,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAEhG,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,MAAM,2BAA2B,GACnC;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAA;CAAE,GAC3F;IACE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACpE,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1D;IACE,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;CAC3C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;CAAE,GAC1E;IAAE,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-update-dashboard.js","sourceRoot":"","sources":["../../src/types/project-update-dashboard.ts"],"names":[],"mappings":""}
|