@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.
Files changed (53) hide show
  1. package/README.md +1 -1
  2. package/apm/update.json +1 -1
  3. package/dist/app/ProjectDetailScreen.d.ts.map +1 -1
  4. package/dist/app/ProjectDetailScreen.js +3 -8
  5. package/dist/app/ProjectDetailScreen.js.map +1 -1
  6. package/dist/features/project-updates/adapters/inbound/ProjectUpdateDashboardPanel.d.ts +6 -0
  7. package/dist/features/project-updates/adapters/inbound/ProjectUpdateDashboardPanel.d.ts.map +1 -0
  8. package/dist/features/project-updates/adapters/inbound/ProjectUpdateDashboardPanel.js +94 -0
  9. package/dist/features/project-updates/adapters/inbound/ProjectUpdateDashboardPanel.js.map +1 -0
  10. package/dist/features/project-updates/adapters/inbound/registerProjectUpdateRoutes.d.ts.map +1 -1
  11. package/dist/features/project-updates/adapters/inbound/registerProjectUpdateRoutes.js +2 -1
  12. package/dist/features/project-updates/adapters/inbound/registerProjectUpdateRoutes.js.map +1 -1
  13. package/dist/features/project-updates/adapters/inbound/useProjectUpdateDashboard.d.ts +15 -0
  14. package/dist/features/project-updates/adapters/inbound/useProjectUpdateDashboard.d.ts.map +1 -0
  15. package/dist/features/project-updates/adapters/inbound/useProjectUpdateDashboard.js +109 -0
  16. package/dist/features/project-updates/adapters/inbound/useProjectUpdateDashboard.js.map +1 -0
  17. package/dist/features/project-updates/adapters/outbound/createProjectUpdateHostHttpAdapter.d.ts +4 -0
  18. package/dist/features/project-updates/adapters/outbound/createProjectUpdateHostHttpAdapter.d.ts.map +1 -0
  19. package/dist/features/project-updates/adapters/outbound/createProjectUpdateHostHttpAdapter.js +54 -0
  20. package/dist/features/project-updates/adapters/outbound/createProjectUpdateHostHttpAdapter.js.map +1 -0
  21. package/dist/features/project-updates/application/ProjectUpdateDashboardService.d.ts +19 -0
  22. package/dist/features/project-updates/application/ProjectUpdateDashboardService.d.ts.map +1 -0
  23. package/dist/features/project-updates/application/ProjectUpdateDashboardService.js +51 -0
  24. package/dist/features/project-updates/application/ProjectUpdateDashboardService.js.map +1 -0
  25. package/dist/features/project-updates/application/createProjectUpdateDashboardState.d.ts +4 -0
  26. package/dist/features/project-updates/application/createProjectUpdateDashboardState.d.ts.map +1 -0
  27. package/dist/features/project-updates/application/createProjectUpdateDashboardState.js +20 -0
  28. package/dist/features/project-updates/application/createProjectUpdateDashboardState.js.map +1 -0
  29. package/dist/features/project-updates/application/ports/outbound/ProjectUpdateHostPort.d.ts +14 -0
  30. package/dist/features/project-updates/application/ports/outbound/ProjectUpdateHostPort.d.ts.map +1 -0
  31. package/dist/features/project-updates/application/ports/outbound/ProjectUpdateHostPort.js +2 -0
  32. package/dist/features/project-updates/application/ports/outbound/ProjectUpdateHostPort.js.map +1 -0
  33. package/dist/features/project-updates/application/reduceProjectUpdateDashboardState.d.ts +4 -0
  34. package/dist/features/project-updates/application/reduceProjectUpdateDashboardState.d.ts.map +1 -0
  35. package/dist/features/project-updates/application/reduceProjectUpdateDashboardState.js +53 -0
  36. package/dist/features/project-updates/application/reduceProjectUpdateDashboardState.js.map +1 -0
  37. package/dist/features/project-updates/application/resolveProjectUpdateDashboardPresentation.d.ts +126 -0
  38. package/dist/features/project-updates/application/resolveProjectUpdateDashboardPresentation.d.ts.map +1 -0
  39. package/dist/features/project-updates/application/resolveProjectUpdateDashboardPresentation.js +153 -0
  40. package/dist/features/project-updates/application/resolveProjectUpdateDashboardPresentation.js.map +1 -0
  41. package/dist/features/project-updates/composition/createStudioProjectUpdateDashboardService.d.ts +4 -0
  42. package/dist/features/project-updates/composition/createStudioProjectUpdateDashboardService.d.ts.map +1 -0
  43. package/dist/features/project-updates/composition/createStudioProjectUpdateDashboardService.js +8 -0
  44. package/dist/features/project-updates/composition/createStudioProjectUpdateDashboardService.js.map +1 -0
  45. package/dist/features/project-updates/utils/readProjectUpdateOperationId.d.ts +3 -0
  46. package/dist/features/project-updates/utils/readProjectUpdateOperationId.d.ts.map +1 -0
  47. package/dist/features/project-updates/utils/readProjectUpdateOperationId.js +10 -0
  48. package/dist/features/project-updates/utils/readProjectUpdateOperationId.js.map +1 -0
  49. package/dist/types/project-update-dashboard.d.ts +47 -0
  50. package/dist/types/project-update-dashboard.d.ts.map +1 -0
  51. package/dist/types/project-update-dashboard.js +2 -0
  52. package/dist/types/project-update-dashboard.js.map +1 -0
  53. package/package.json +1 -1
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  # @ankhorage/studio
5
5
 
6
- ![license: MIT](././paradox/badges/license.svg) ![npm: v2.7.1](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![docs: paradox](././paradox/badges/docs.svg)
6
+ ![license: MIT](././paradox/badges/license.svg) ![npm: v2.7.2](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![docs: paradox](././paradox/badges/docs.svg)
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.2" },
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;AAkBxC,wBAAgB,mBAAmB,sBA8LlC"}
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, syncProject, installProjectPackages, connectProjectRepository, upProjectInfrastructure, launchProject, } = useProjects();
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: "Lifecycle" }), message ? _jsx(InlineMessage, { tone: message.tone, text: message.text }) : null, _jsxs(View, { style: styles.actionStack, children: [_jsx(LifecycleAction, { iconName: "refresh-outline", label: "Sync", detail: "Synchronize the current Studio manifest and generated files.", loading: activeAction === 'Sync', disabled: activeAction !== null, onPress: () => void runAction('Sync', async () => {
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":"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"}
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;AAED,gGAAgG;AAChG,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,yBAAyB,GACjC,IAAI,CAwEN"}
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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"}
@@ -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
@@ -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
@@ -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
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ProjectUpdateHostPort.js.map
@@ -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"}
@@ -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
@@ -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"}
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveProjectUpdateDashboardPresentation.js","sourceRoot":"","sources":["../../../../src/features/project-updates/application/resolveProjectUpdateDashboardPresentation.ts"],"names":[],"mappings":"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"}
@@ -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
@@ -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"}
@@ -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
@@ -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,3 @@
1
+ /*** Read a durable APM operation id from one structured apply/resume result. */
2
+ export declare function readProjectUpdateOperationId(value: unknown): string | undefined;
3
+ //# sourceMappingURL=readProjectUpdateOperationId.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=project-update-dashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-update-dashboard.js","sourceRoot":"","sources":["../../src/types/project-update-dashboard.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ankhorage/studio",
3
- "version": "2.7.2",
3
+ "version": "2.7.4",
4
4
  "description": "Studio authoring package for Ankhorage apps",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/ankhorage/studio#readme",