@ankhorage/studio 1.10.1 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/canExecuteProjectDeployRelease.d.ts +3 -0
- package/dist/canExecuteProjectDeployRelease.d.ts.map +1 -0
- package/dist/canExecuteProjectDeployRelease.js +4 -0
- package/dist/canExecuteProjectDeployRelease.js.map +1 -0
- package/dist/host/deploy/ProjectDeployMutationGuard.d.ts +5 -0
- package/dist/host/deploy/ProjectDeployMutationGuard.d.ts.map +1 -0
- package/dist/host/deploy/ProjectDeployMutationGuard.js +16 -0
- package/dist/host/deploy/ProjectDeployMutationGuard.js.map +1 -0
- package/dist/host/deploy/ProjectDeployService.d.ts +22 -2
- package/dist/host/deploy/ProjectDeployService.d.ts.map +1 -1
- package/dist/host/deploy/ProjectDeployService.js +57 -8
- package/dist/host/deploy/ProjectDeployService.js.map +1 -1
- package/dist/host/http/deployRoutes.d.ts.map +1 -1
- package/dist/host/http/deployRoutes.js +49 -10
- package/dist/host/http/deployRoutes.js.map +1 -1
- package/dist/projectDeployApi.d.ts +36 -2
- package/dist/projectDeployApi.d.ts.map +1 -1
- package/dist/projectDeployApi.js +33 -0
- package/dist/projectDeployApi.js.map +1 -1
- package/dist/projectDeployAssetPicker.d.ts +5 -0
- package/dist/projectDeployAssetPicker.d.ts.map +1 -0
- package/dist/projectDeployAssetPicker.js +26 -0
- package/dist/projectDeployAssetPicker.js.map +1 -0
- package/dist/projectDeployClient.d.ts +37 -2
- package/dist/projectDeployClient.d.ts.map +1 -1
- package/dist/projectDeployClient.js +189 -0
- package/dist/projectDeployClient.js.map +1 -1
- package/dist/projectDeployMonetizationInspectionResult.d.ts +11 -0
- package/dist/projectDeployMonetizationInspectionResult.d.ts.map +1 -0
- package/dist/projectDeployMonetizationInspectionResult.js +2 -0
- package/dist/projectDeployMonetizationInspectionResult.js.map +1 -0
- package/dist/projectDeployReleaseExecutionResponse.d.ts +6 -0
- package/dist/projectDeployReleaseExecutionResponse.d.ts.map +1 -0
- package/dist/projectDeployReleaseExecutionResponse.js +2 -0
- package/dist/projectDeployReleaseExecutionResponse.js.map +1 -0
- package/dist/ui/admin/pages/DeployAdminPage.d.ts.map +1 -1
- package/dist/ui/admin/pages/DeployAdminPage.js +7 -2
- package/dist/ui/admin/pages/DeployAdminPage.js.map +1 -1
- package/dist/ui/admin/pages/deploy/DeployControlResultView.d.ts +6 -0
- package/dist/ui/admin/pages/deploy/DeployControlResultView.d.ts.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployControlResultView.js +9 -0
- package/dist/ui/admin/pages/deploy/DeployControlResultView.js.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployExecutionResultView.d.ts +7 -0
- package/dist/ui/admin/pages/deploy/DeployExecutionResultView.d.ts.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployExecutionResultView.js +14 -0
- package/dist/ui/admin/pages/deploy/DeployExecutionResultView.js.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployHistoryCard.d.ts.map +1 -1
- package/dist/ui/admin/pages/deploy/DeployHistoryCard.js +6 -3
- package/dist/ui/admin/pages/deploy/DeployHistoryCard.js.map +1 -1
- package/dist/ui/admin/pages/deploy/DeployLifecycleControls.d.ts +8 -0
- package/dist/ui/admin/pages/deploy/DeployLifecycleControls.d.ts.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployLifecycleControls.js +10 -0
- package/dist/ui/admin/pages/deploy/DeployLifecycleControls.js.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployListingLocaleAuthoringCard.d.ts +8 -0
- package/dist/ui/admin/pages/deploy/DeployListingLocaleAuthoringCard.d.ts.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployListingLocaleAuthoringCard.js +122 -0
- package/dist/ui/admin/pages/deploy/DeployListingLocaleAuthoringCard.js.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployMonetizationAuthoringCard.d.ts +8 -0
- package/dist/ui/admin/pages/deploy/DeployMonetizationAuthoringCard.d.ts.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployMonetizationAuthoringCard.js +37 -0
- package/dist/ui/admin/pages/deploy/DeployMonetizationAuthoringCard.js.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployMonetizationExecutionView.d.ts +6 -0
- package/dist/ui/admin/pages/deploy/DeployMonetizationExecutionView.d.ts.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployMonetizationExecutionView.js +15 -0
- package/dist/ui/admin/pages/deploy/DeployMonetizationExecutionView.js.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployMonetizationPlanView.d.ts +13 -0
- package/dist/ui/admin/pages/deploy/DeployMonetizationPlanView.d.ts.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployMonetizationPlanView.js +10 -0
- package/dist/ui/admin/pages/deploy/DeployMonetizationPlanView.js.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployMonetizationSyncCard.d.ts +6 -0
- package/dist/ui/admin/pages/deploy/DeployMonetizationSyncCard.d.ts.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployMonetizationSyncCard.js +87 -0
- package/dist/ui/admin/pages/deploy/DeployMonetizationSyncCard.js.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployPlanPreview.d.ts +9 -0
- package/dist/ui/admin/pages/deploy/DeployPlanPreview.d.ts.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployPlanPreview.js +13 -0
- package/dist/ui/admin/pages/deploy/DeployPlanPreview.js.map +1 -0
- package/dist/ui/admin/pages/deploy/{DeployReadinessCard.d.ts → DeployPreparedReleaseAuthoringCard.d.ts} +3 -2
- package/dist/ui/admin/pages/deploy/DeployPreparedReleaseAuthoringCard.d.ts.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployPreparedReleaseAuthoringCard.js +46 -0
- package/dist/ui/admin/pages/deploy/DeployPreparedReleaseAuthoringCard.js.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployReleaseOperationsCard.d.ts +9 -0
- package/dist/ui/admin/pages/deploy/DeployReleaseOperationsCard.d.ts.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployReleaseOperationsCard.js +191 -0
- package/dist/ui/admin/pages/deploy/DeployReleaseOperationsCard.js.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployResumeActions.d.ts +8 -0
- package/dist/ui/admin/pages/deploy/DeployResumeActions.d.ts.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployResumeActions.js +14 -0
- package/dist/ui/admin/pages/deploy/DeployResumeActions.js.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployStoreAssetAuthoringCard.d.ts +8 -0
- package/dist/ui/admin/pages/deploy/DeployStoreAssetAuthoringCard.d.ts.map +1 -0
- package/dist/ui/admin/pages/deploy/DeployStoreAssetAuthoringCard.js +101 -0
- package/dist/ui/admin/pages/deploy/DeployStoreAssetAuthoringCard.js.map +1 -0
- package/package.json +3 -1
- package/dist/ui/admin/pages/deploy/DeployReadinessCard.d.ts.map +0 -1
- package/dist/ui/admin/pages/deploy/DeployReadinessCard.js +0 -57
- package/dist/ui/admin/pages/deploy/DeployReadinessCard.js.map +0 -1
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { APP_DEPLOY_ENVIRONMENT_IDS, } from '@ankhorage/contracts/deploy';
|
|
3
|
+
import { listReleaseLifecycleControls, } from '@ankhorage/deploy';
|
|
4
|
+
import { Button, Card, ConfirmDialog, Select, Text } from '@ankhorage/zora';
|
|
5
|
+
import React, { useRef, useState } from 'react';
|
|
6
|
+
import { canExecuteProjectDeployRelease } from '../../../../canExecuteProjectDeployRelease';
|
|
7
|
+
import { executeProjectDeployRelease, executeProjectDeployReleaseControl, inspectProjectDeployRelease, resumeProjectDeployRelease, } from '../../../../projectDeployApi';
|
|
8
|
+
import { Field } from '../../adminPagePrimitives';
|
|
9
|
+
import { DeployControlResultView } from './DeployControlResultView';
|
|
10
|
+
import { DeployExecutionResultView } from './DeployExecutionResultView';
|
|
11
|
+
import { DeployLifecycleControls } from './DeployLifecycleControls';
|
|
12
|
+
import { DeployPlanPreview } from './DeployPlanPreview';
|
|
13
|
+
import { DeployResumeActions } from './DeployResumeActions';
|
|
14
|
+
const ENVIRONMENT_OPTIONS = [
|
|
15
|
+
{ value: 'unselected', label: 'Choose environment' },
|
|
16
|
+
...APP_DEPLOY_ENVIRONMENT_IDS.map((value) => ({ value, label: value })),
|
|
17
|
+
];
|
|
18
|
+
const ANDROID_TRACK_OPTIONS = [
|
|
19
|
+
{ value: 'unselected', label: 'Choose Android track' },
|
|
20
|
+
{ value: 'internal', label: 'internal' },
|
|
21
|
+
{ value: 'alpha', label: 'alpha' },
|
|
22
|
+
{ value: 'beta', label: 'beta' },
|
|
23
|
+
{ value: 'production', label: 'production' },
|
|
24
|
+
];
|
|
25
|
+
export function DeployReleaseOperationsCard(props) {
|
|
26
|
+
const [environment, setEnvironment] = useState('unselected');
|
|
27
|
+
const [androidTrack, setAndroidTrack] = useState('unselected');
|
|
28
|
+
const [preview, setPreview] = useState(null);
|
|
29
|
+
const [outcome, setOutcome] = useState(null);
|
|
30
|
+
const [controlResult, setControlResult] = useState(null);
|
|
31
|
+
const [busy, setBusy] = useState(false);
|
|
32
|
+
const [error, setError] = useState(null);
|
|
33
|
+
const [confirmExecute, setConfirmExecute] = useState(false);
|
|
34
|
+
const [pendingResume, setPendingResume] = useState(null);
|
|
35
|
+
const [pendingControl, setPendingControl] = useState(null);
|
|
36
|
+
const mutationInFlightRef = useRef(false);
|
|
37
|
+
const needsAndroidTrack = props.release.status === 'ready' && props.release.data.targets.includes('android');
|
|
38
|
+
const runtime = createRuntime(environment, androidTrack, needsAndroidTrack);
|
|
39
|
+
const canInspect = props.release.status === 'ready' && runtime !== null;
|
|
40
|
+
const successfulResult = preview !== null && preview.result.ok ? preview.result : null;
|
|
41
|
+
const canExecute = successfulResult !== null &&
|
|
42
|
+
canExecuteProjectDeployRelease(successfulResult) &&
|
|
43
|
+
outcome === null &&
|
|
44
|
+
controlResult === null &&
|
|
45
|
+
!busy;
|
|
46
|
+
const controls = successfulResult !== null && outcome === null && controlResult === null
|
|
47
|
+
? successfulResult.inspection.observed.targets.flatMap(listReleaseLifecycleControls)
|
|
48
|
+
: [];
|
|
49
|
+
const irreversibleCount = successfulResult?.plan.steps.filter((step) => step.irreversible).length ?? 0;
|
|
50
|
+
const resetPreviewState = () => {
|
|
51
|
+
setPreview(null);
|
|
52
|
+
setOutcome(null);
|
|
53
|
+
setControlResult(null);
|
|
54
|
+
setError(null);
|
|
55
|
+
setConfirmExecute(false);
|
|
56
|
+
setPendingResume(null);
|
|
57
|
+
setPendingControl(null);
|
|
58
|
+
};
|
|
59
|
+
const previewRelease = async () => {
|
|
60
|
+
if (!runtime || props.release.status !== 'ready')
|
|
61
|
+
return;
|
|
62
|
+
setBusy(true);
|
|
63
|
+
setError(null);
|
|
64
|
+
setOutcome(null);
|
|
65
|
+
setControlResult(null);
|
|
66
|
+
try {
|
|
67
|
+
const result = await inspectProjectDeployRelease({ projectId: props.projectId, runtime });
|
|
68
|
+
setPreview({ runtime, result });
|
|
69
|
+
}
|
|
70
|
+
catch (caught) {
|
|
71
|
+
setPreview(null);
|
|
72
|
+
setError(readError(caught));
|
|
73
|
+
}
|
|
74
|
+
finally {
|
|
75
|
+
setBusy(false);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
const executeRelease = async () => {
|
|
79
|
+
const current = preview;
|
|
80
|
+
if (!current?.result.ok || !canExecuteProjectDeployRelease(current.result))
|
|
81
|
+
return;
|
|
82
|
+
if (!beginMutation(mutationInFlightRef, setBusy))
|
|
83
|
+
return;
|
|
84
|
+
setConfirmExecute(false);
|
|
85
|
+
setError(null);
|
|
86
|
+
try {
|
|
87
|
+
const response = await executeProjectDeployRelease({
|
|
88
|
+
projectId: props.projectId,
|
|
89
|
+
runtime: current.runtime,
|
|
90
|
+
inspection: current.result.inspection,
|
|
91
|
+
plan: current.result.plan,
|
|
92
|
+
});
|
|
93
|
+
setOutcome({ label: 'Release execution', response });
|
|
94
|
+
props.onMutation();
|
|
95
|
+
}
|
|
96
|
+
catch (caught) {
|
|
97
|
+
setError(readError(caught));
|
|
98
|
+
}
|
|
99
|
+
finally {
|
|
100
|
+
endMutation(mutationInFlightRef, setBusy);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
const resumeRelease = async () => {
|
|
104
|
+
const current = pendingResume;
|
|
105
|
+
if (!current || !beginMutation(mutationInFlightRef, setBusy))
|
|
106
|
+
return;
|
|
107
|
+
setPendingResume(null);
|
|
108
|
+
setError(null);
|
|
109
|
+
try {
|
|
110
|
+
const response = await resumeProjectDeployRelease({
|
|
111
|
+
projectId: props.projectId,
|
|
112
|
+
runtime: current.runtime,
|
|
113
|
+
previousExecutionId: current.previousExecutionId,
|
|
114
|
+
});
|
|
115
|
+
setPreview(null);
|
|
116
|
+
setOutcome({ label: 'Resumed execution', response });
|
|
117
|
+
props.onMutation();
|
|
118
|
+
}
|
|
119
|
+
catch (caught) {
|
|
120
|
+
setError(readError(caught));
|
|
121
|
+
}
|
|
122
|
+
finally {
|
|
123
|
+
endMutation(mutationInFlightRef, setBusy);
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
const executeControl = async () => {
|
|
127
|
+
const current = pendingControl;
|
|
128
|
+
if (!current || !beginMutation(mutationInFlightRef, setBusy))
|
|
129
|
+
return;
|
|
130
|
+
setPendingControl(null);
|
|
131
|
+
setError(null);
|
|
132
|
+
try {
|
|
133
|
+
const result = await executeProjectDeployReleaseControl({
|
|
134
|
+
projectId: props.projectId,
|
|
135
|
+
runtime: current.runtime,
|
|
136
|
+
control: current.control,
|
|
137
|
+
});
|
|
138
|
+
setPreview(null);
|
|
139
|
+
setControlResult(result);
|
|
140
|
+
props.onMutation();
|
|
141
|
+
}
|
|
142
|
+
catch (caught) {
|
|
143
|
+
setError(readError(caught));
|
|
144
|
+
}
|
|
145
|
+
finally {
|
|
146
|
+
endMutation(mutationInFlightRef, setBusy);
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
const chooseResume = (previousExecutionId) => {
|
|
150
|
+
if (!runtime)
|
|
151
|
+
return;
|
|
152
|
+
setPendingResume({ previousExecutionId, runtime });
|
|
153
|
+
};
|
|
154
|
+
const chooseControl = (control) => {
|
|
155
|
+
if (!runtime)
|
|
156
|
+
return;
|
|
157
|
+
setPendingControl({ control, runtime });
|
|
158
|
+
};
|
|
159
|
+
return (_jsxs(Card, { title: "Release plan and execution", description: "Preview the canonical Deploy plan, confirm it explicitly, then execute that exact inspected snapshot.", children: [_jsx(Field, { label: "Credential environment", children: _jsx(Select, { value: environment, options: ENVIRONMENT_OPTIONS, onValueChange: (value) => {
|
|
160
|
+
resetPreviewState();
|
|
161
|
+
setEnvironment(value);
|
|
162
|
+
} }) }), needsAndroidTrack ? (_jsx(Field, { label: "Android release track", children: _jsx(Select, { value: androidTrack, options: ANDROID_TRACK_OPTIONS, onValueChange: (value) => {
|
|
163
|
+
resetPreviewState();
|
|
164
|
+
setAndroidTrack(value);
|
|
165
|
+
} }) })) : null, _jsx(Button, { disabled: !canInspect || busy, onPress: () => void previewRelease(), children: busy ? 'Working…' : 'Preview release plan' }), props.release.status === 'error' ? (_jsxs(Text, { color: "danger", children: ["Prepared release unavailable: ", props.release.message] })) : null, props.release.status === 'loading' ? _jsx(Text, { children: "Loading prepared release\u2026" }) : null, error ? _jsx(Text, { color: "danger", children: error }) : null, preview ? (_jsx(DeployPlanPreview, { result: preview.result, canExecute: canExecute, busy: busy, onExecute: () => setConfirmExecute(true) })) : null, _jsx(DeployLifecycleControls, { controls: controls, disabled: busy || runtime === null, onControl: chooseControl }), _jsx(DeployResumeActions, { history: props.history, disabled: busy || runtime === null, onResume: chooseResume }), outcome ? (_jsx(DeployExecutionResultView, { label: outcome.label, response: outcome.response })) : null, controlResult ? _jsx(DeployControlResultView, { result: controlResult }) : null, _jsx(ConfirmDialog, { visible: confirmExecute, title: "Execute deployment plan?", description: `Execute this exact Deploy plan with ${successfulResult?.plan.steps.length ?? 0} steps, including ${irreversibleCount} irreversible step(s)? Deploy remains authoritative for drift safety.`, confirmLabel: "Execute deployment", confirmColor: "danger", cancelLabel: "Cancel", onCancel: () => setConfirmExecute(false), onConfirm: () => void executeRelease() }), _jsx(ConfirmDialog, { visible: pendingResume !== null, title: "Resume release execution?", description: `Resume ${pendingResume?.previousExecutionId ?? ''} through the Deploy owner API?`, confirmLabel: "Resume execution", cancelLabel: "Cancel", onCancel: () => setPendingResume(null), onConfirm: () => void resumeRelease() }), _jsx(ConfirmDialog, { visible: pendingControl !== null, title: "Execute lifecycle control?", description: `Execute ${pendingControl?.control.target ?? ''}:${pendingControl?.control.action ?? ''} through the Deploy owner API?`, confirmLabel: "Execute control", cancelLabel: "Cancel", onCancel: () => setPendingControl(null), onConfirm: () => void executeControl() })] }));
|
|
166
|
+
}
|
|
167
|
+
function createRuntime(environment, androidTrack, needsAndroidTrack) {
|
|
168
|
+
if (environment === 'unselected')
|
|
169
|
+
return null;
|
|
170
|
+
if (needsAndroidTrack && androidTrack === 'unselected')
|
|
171
|
+
return null;
|
|
172
|
+
return {
|
|
173
|
+
environment,
|
|
174
|
+
...(androidTrack === 'unselected' ? {} : { android: { track: androidTrack } }),
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
function beginMutation(ref, setBusy) {
|
|
178
|
+
if (ref.current)
|
|
179
|
+
return false;
|
|
180
|
+
ref.current = true;
|
|
181
|
+
setBusy(true);
|
|
182
|
+
return true;
|
|
183
|
+
}
|
|
184
|
+
function endMutation(ref, setBusy) {
|
|
185
|
+
ref.current = false;
|
|
186
|
+
setBusy(false);
|
|
187
|
+
}
|
|
188
|
+
function readError(error) {
|
|
189
|
+
return error instanceof Error ? error.message : String(error);
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=DeployReleaseOperationsCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployReleaseOperationsCard.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployReleaseOperationsCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ProjectDeployDashboardState } from './deployDashboardTypes';
|
|
3
|
+
export declare function DeployResumeActions(props: {
|
|
4
|
+
readonly history: ProjectDeployDashboardState['history'];
|
|
5
|
+
readonly disabled: boolean;
|
|
6
|
+
readonly onResume: (executionId: string) => void;
|
|
7
|
+
}): React.JSX.Element | null;
|
|
8
|
+
//# sourceMappingURL=DeployResumeActions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployResumeActions.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployResumeActions.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACzD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD,4BAyBA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { isReleaseStepResumable } from '@ankhorage/deploy';
|
|
3
|
+
import { Button, Text } from '@ankhorage/zora';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { View } from 'react-native';
|
|
6
|
+
export function DeployResumeActions(props) {
|
|
7
|
+
if (props.history.status !== 'ready')
|
|
8
|
+
return null;
|
|
9
|
+
const records = props.history.data.filter((record) => record.execution.steps.some(isReleaseStepResumable));
|
|
10
|
+
if (records.length === 0)
|
|
11
|
+
return null;
|
|
12
|
+
return (_jsxs(View, { children: [_jsx(Text, { weight: "semiBold", children: "Resumable executions" }), records.map((record) => (_jsxs(View, { children: [_jsxs(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: [record.desired.version, " \u00B7 ", record.result.status, " \u00B7 ", record.executionId] }), _jsx(Button, { disabled: props.disabled, variant: "outline", onPress: () => props.onResume(record.executionId), children: "Resume execution" })] }, record.executionId)))] }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=DeployResumeActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployResumeActions.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployResumeActions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIpC,MAAM,UAAU,mBAAmB,CAAC,KAInC;IACC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAClD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACnD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CACpD,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,MAAM,EAAC,UAAU,qCAA4B,EAClD,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,MAAC,IAAI,eACH,MAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,EAAC,WAAW,aACvD,MAAM,CAAC,OAAO,CAAC,OAAO,cAAK,MAAM,CAAC,MAAM,CAAC,MAAM,cAAK,MAAM,CAAC,WAAW,IAClE,EACP,KAAC,MAAM,IACL,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,iCAG1C,KAVA,MAAM,CAAC,WAAW,CAWtB,CACR,CAAC,IACG,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ProjectDeployDashboardState } from './deployDashboardTypes';
|
|
3
|
+
export declare function DeployStoreAssetAuthoringCard(props: {
|
|
4
|
+
readonly projectId: string;
|
|
5
|
+
readonly listing: ProjectDeployDashboardState['listing'];
|
|
6
|
+
readonly onMutation: () => void;
|
|
7
|
+
}): React.JSX.Element;
|
|
8
|
+
//# sourceMappingURL=DeployStoreAssetAuthoringCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployStoreAssetAuthoringCard.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployStoreAssetAuthoringCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AASxC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAsB1E,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CACjC,qBAoJA"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, Card, ConfirmDialog, Select, Text } from '@ankhorage/zora';
|
|
3
|
+
import React, { useState } from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { pickProjectDeployImage } from '../../../../projectDeployAssetPicker';
|
|
6
|
+
import { removeProjectDeployListingAsset, writeProjectDeployListingAsset, } from '../../../../projectDeployApi';
|
|
7
|
+
import { adminPageStyles, Field, Input, KeyValue } from '../../adminPagePrimitives';
|
|
8
|
+
const KIND_OPTIONS = [
|
|
9
|
+
{ value: 'screenshot', label: 'Store screenshot' },
|
|
10
|
+
{ value: 'android-shared', label: 'Android shared asset' },
|
|
11
|
+
];
|
|
12
|
+
const TARGET_OPTIONS = [
|
|
13
|
+
{ value: 'android', label: 'Android' },
|
|
14
|
+
{ value: 'ios', label: 'iOS' },
|
|
15
|
+
];
|
|
16
|
+
const SHARED_VARIANT_OPTIONS = [
|
|
17
|
+
{ value: 'icon', label: 'Icon' },
|
|
18
|
+
{ value: 'feature', label: 'Feature graphic' },
|
|
19
|
+
];
|
|
20
|
+
export function DeployStoreAssetAuthoringCard(props) {
|
|
21
|
+
const [kind, setKind] = useState('screenshot');
|
|
22
|
+
const [target, setTarget] = useState('android');
|
|
23
|
+
const [locale, setLocale] = useState('en-US');
|
|
24
|
+
const [variant, setVariant] = useState('phone');
|
|
25
|
+
const [sharedVariant, setSharedVariant] = useState('icon');
|
|
26
|
+
const [filename, setFilename] = useState('');
|
|
27
|
+
const [image, setImage] = useState(null);
|
|
28
|
+
const [busy, setBusy] = useState(false);
|
|
29
|
+
const [error, setError] = useState(null);
|
|
30
|
+
const [confirmRemove, setConfirmRemove] = useState(false);
|
|
31
|
+
const location = createLocation({ kind, target, locale, variant, sharedVariant, filename });
|
|
32
|
+
const chooseImage = async () => {
|
|
33
|
+
setError(null);
|
|
34
|
+
try {
|
|
35
|
+
const selected = await pickProjectDeployImage();
|
|
36
|
+
if (!selected)
|
|
37
|
+
return;
|
|
38
|
+
setImage(selected);
|
|
39
|
+
if (kind === 'screenshot')
|
|
40
|
+
setFilename(selected.filename);
|
|
41
|
+
}
|
|
42
|
+
catch (caught) {
|
|
43
|
+
setError(readError(caught));
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const upload = async () => {
|
|
47
|
+
if (!location || !image)
|
|
48
|
+
return;
|
|
49
|
+
setBusy(true);
|
|
50
|
+
setError(null);
|
|
51
|
+
try {
|
|
52
|
+
await writeProjectDeployListingAsset(props.projectId, location, image.data);
|
|
53
|
+
props.onMutation();
|
|
54
|
+
}
|
|
55
|
+
catch (caught) {
|
|
56
|
+
setError(readError(caught));
|
|
57
|
+
}
|
|
58
|
+
finally {
|
|
59
|
+
setBusy(false);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
const remove = async () => {
|
|
63
|
+
if (!location)
|
|
64
|
+
return;
|
|
65
|
+
setConfirmRemove(false);
|
|
66
|
+
setBusy(true);
|
|
67
|
+
setError(null);
|
|
68
|
+
try {
|
|
69
|
+
await removeProjectDeployListingAsset(props.projectId, location);
|
|
70
|
+
props.onMutation();
|
|
71
|
+
}
|
|
72
|
+
catch (caught) {
|
|
73
|
+
setError(readError(caught));
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
setBusy(false);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
return (_jsxs(Card, { title: "Store assets", description: "Upload or remove a semantic Deploy asset location. Studio never constructs Deploy filesystem paths.", children: [_jsx(Field, { label: "Asset kind", children: _jsx(Select, { value: kind, options: KIND_OPTIONS, onValueChange: setKind }) }), kind === 'screenshot' ? (_jsxs(_Fragment, { children: [_jsx(Field, { label: "Target", children: _jsx(Select, { value: target, options: TARGET_OPTIONS, onValueChange: setTarget }) }), _jsx(Field, { label: "Locale", children: _jsx(Input, { value: locale, onChangeText: setLocale }) }), _jsx(Field, { label: "Variant", children: _jsx(Input, { value: variant, placeholder: "phone", onChangeText: setVariant }) }), _jsx(Field, { label: "Filename", children: _jsx(Input, { value: filename, placeholder: "01.png", onChangeText: setFilename }) })] })) : (_jsx(Field, { label: "Android shared variant", children: _jsx(Select, { value: sharedVariant, options: SHARED_VARIANT_OPTIONS, onValueChange: setSharedVariant }) })), _jsx(Button, { disabled: busy, variant: "outline", onPress: () => void chooseImage(), children: "Choose PNG/JPEG" }), image ? (_jsx(KeyValue, { label: "Selected image", value: `${image.filename} · ${image.data.byteLength} bytes` })) : null, error ? _jsx(Text, { color: "danger", children: error }) : null, _jsx(Button, { disabled: busy || image === null || location === null, onPress: () => void upload(), children: busy ? 'Working…' : 'Upload asset' }), _jsx(Button, { disabled: busy || location === null, variant: "outline", onPress: () => setConfirmRemove(true), children: "Remove semantic location" }), props.listing.status === 'ready' ? (_jsxs(View, { children: [_jsx(Text, { weight: "semiBold", children: "Current owner inventory" }), props.listing.data.assetSets.length === 0 ? (_jsx(Text, { color: "neutral", emphasis: "muted", children: "No store assets authored yet." })) : (props.listing.data.assetSets.map((set) => (_jsxs(View, { style: adminPageStyles.row, children: [_jsx(KeyValue, { label: `${set.target} · ${set.locale} · ${set.variant}`, value: `${set.assets.length} asset(s)` }), set.assets.map((asset) => (_jsxs(Text, { color: "neutral", emphasis: "muted", variant: "caption", children: [asset.relativePath, " \u00B7 ", asset.mediaType, " \u00B7 ", asset.size, " bytes"] }, `${set.target}:${set.locale}:${set.variant}:${asset.relativePath}`)))] }, `${set.target}:${set.locale}:${set.variant}`))))] })) : null, _jsx(ConfirmDialog, { visible: confirmRemove, title: "Remove store asset?", description: "Remove the selected semantic asset location through the Deploy owner API?", confirmLabel: "Remove asset", confirmColor: "danger", cancelLabel: "Cancel", onCancel: () => setConfirmRemove(false), onConfirm: () => void remove() })] }));
|
|
80
|
+
}
|
|
81
|
+
function createLocation(input) {
|
|
82
|
+
if (input.kind === 'android-shared') {
|
|
83
|
+
return { kind: 'android-shared', variant: input.sharedVariant };
|
|
84
|
+
}
|
|
85
|
+
const locale = input.locale.trim();
|
|
86
|
+
const variant = input.variant.trim();
|
|
87
|
+
const filename = input.filename.trim();
|
|
88
|
+
if (locale === '' || variant === '' || filename === '')
|
|
89
|
+
return null;
|
|
90
|
+
return {
|
|
91
|
+
kind: 'screenshot',
|
|
92
|
+
target: input.target,
|
|
93
|
+
locale,
|
|
94
|
+
variant,
|
|
95
|
+
filename,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
function readError(error) {
|
|
99
|
+
return error instanceof Error ? error.message : String(error);
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=DeployStoreAssetAuthoringCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployStoreAssetAuthoringCard.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployStoreAssetAuthoringCard.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ankhorage/studio",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.12.0",
|
|
4
4
|
"description": "Studio authoring package for Ankhorage apps",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/ankhorage/studio#readme",
|
|
@@ -222,6 +222,8 @@
|
|
|
222
222
|
"@ankhorage/zora-chess": "^0.1.2",
|
|
223
223
|
"@ankhorage/zora-tabletop": "^0.0.5",
|
|
224
224
|
"@fastify/cors": "^11.2.0",
|
|
225
|
+
"expo-document-picker": "~14.0.8",
|
|
226
|
+
"expo-file-system": "~19.0.23",
|
|
225
227
|
"fastify": "^5.7.4",
|
|
226
228
|
"react-native-gesture-handler": "~2.28.0"
|
|
227
229
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DeployReadinessCard.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployReadinessCard.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAOxC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAkB1E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC;CAC1D,qBA2DA"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { APP_DEPLOY_ENVIRONMENT_IDS, } from '@ankhorage/contracts/deploy';
|
|
3
|
-
import { Button, Card, Select, Text } from '@ankhorage/zora';
|
|
4
|
-
import React, { useState } from 'react';
|
|
5
|
-
import { View } from 'react-native';
|
|
6
|
-
import { inspectProjectDeployRelease } from '../../../../projectDeployApi';
|
|
7
|
-
import { Field, KeyValue } from '../../adminPagePrimitives';
|
|
8
|
-
const ENVIRONMENT_OPTIONS = [
|
|
9
|
-
{ value: 'unselected', label: 'Choose environment' },
|
|
10
|
-
...APP_DEPLOY_ENVIRONMENT_IDS.map((value) => ({ value, label: value })),
|
|
11
|
-
];
|
|
12
|
-
const ANDROID_TRACK_OPTIONS = [
|
|
13
|
-
{ value: 'unselected', label: 'Choose Android track' },
|
|
14
|
-
{ value: 'internal', label: 'internal' },
|
|
15
|
-
{ value: 'alpha', label: 'alpha' },
|
|
16
|
-
{ value: 'beta', label: 'beta' },
|
|
17
|
-
{ value: 'production', label: 'production' },
|
|
18
|
-
];
|
|
19
|
-
export function DeployReadinessCard(props) {
|
|
20
|
-
const [environment, setEnvironment] = useState('unselected');
|
|
21
|
-
const [androidTrack, setAndroidTrack] = useState('unselected');
|
|
22
|
-
const [result, setResult] = useState(null);
|
|
23
|
-
const [checking, setChecking] = useState(false);
|
|
24
|
-
const [error, setError] = useState(null);
|
|
25
|
-
const needsAndroidTrack = props.release.status === 'ready' && props.release.data.targets.includes('android');
|
|
26
|
-
const canInspect = props.release.status === 'ready' &&
|
|
27
|
-
environment !== 'unselected' &&
|
|
28
|
-
(!needsAndroidTrack || androidTrack !== 'unselected');
|
|
29
|
-
const inspect = async () => {
|
|
30
|
-
if (!canInspect)
|
|
31
|
-
return;
|
|
32
|
-
setChecking(true);
|
|
33
|
-
setError(null);
|
|
34
|
-
setResult(null);
|
|
35
|
-
try {
|
|
36
|
-
const runtime = {
|
|
37
|
-
environment,
|
|
38
|
-
...(androidTrack === 'unselected' ? {} : { android: { track: androidTrack } }),
|
|
39
|
-
};
|
|
40
|
-
setResult(await inspectProjectDeployRelease({ projectId: props.projectId, runtime }));
|
|
41
|
-
}
|
|
42
|
-
catch (caught) {
|
|
43
|
-
setError(caught instanceof Error ? caught.message : String(caught));
|
|
44
|
-
}
|
|
45
|
-
finally {
|
|
46
|
-
setChecking(false);
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
return (_jsxs(Card, { title: "Provider readiness", description: "Runs Deploy inspection only. No deployment or provider mutation is executed.", children: [_jsx(Field, { label: "Credential environment", children: _jsx(Select, { value: environment, options: ENVIRONMENT_OPTIONS, onValueChange: setEnvironment }) }), needsAndroidTrack ? (_jsx(Field, { label: "Android release track", children: _jsx(Select, { value: androidTrack, options: ANDROID_TRACK_OPTIONS, onValueChange: setAndroidTrack }) })) : null, _jsx(Button, { disabled: !canInspect || checking, onPress: () => void inspect(), children: checking ? 'Checking…' : 'Check readiness' }), props.release.status === 'error' ? (_jsxs(Text, { color: "danger", children: ["Prepared release unavailable: ", props.release.message] })) : null, props.release.status === 'loading' ? _jsx(Text, { children: "Loading prepared release\u2026" }) : null, error ? _jsx(Text, { color: "danger", children: error }) : null, result ? _jsx(ReadinessResult, { result: result }) : null] }));
|
|
50
|
-
}
|
|
51
|
-
function ReadinessResult({ result }) {
|
|
52
|
-
if (!result.ok) {
|
|
53
|
-
return (_jsxs(View, { children: [_jsx(Text, { color: "danger", weight: "semiBold", children: result.failure.code }), _jsx(Text, { color: "danger", children: result.failure.message })] }));
|
|
54
|
-
}
|
|
55
|
-
return (_jsxs(View, { children: [_jsx(KeyValue, { label: "Plan status", value: result.plan.status }), _jsx(KeyValue, { label: "Plan steps", value: String(result.plan.steps.length) }), _jsx(KeyValue, { label: "Diagnostics", value: String(result.plan.diagnostics.length) }), _jsx(KeyValue, { label: "Required actions", value: String(result.inspection.actions.length) }), result.inspection.actions.map((action) => (_jsxs(View, { children: [_jsx(Text, { weight: "semiBold", children: action.code }), _jsx(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: action.message })] }, `${action.type}:${action.code}`)))] }));
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=DeployReadinessCard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DeployReadinessCard.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployReadinessCard.tsx"],"names":[],"mappings":"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"}
|