@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.
Files changed (98) hide show
  1. package/README.md +1 -1
  2. package/dist/canExecuteProjectDeployRelease.d.ts +3 -0
  3. package/dist/canExecuteProjectDeployRelease.d.ts.map +1 -0
  4. package/dist/canExecuteProjectDeployRelease.js +4 -0
  5. package/dist/canExecuteProjectDeployRelease.js.map +1 -0
  6. package/dist/host/deploy/ProjectDeployMutationGuard.d.ts +5 -0
  7. package/dist/host/deploy/ProjectDeployMutationGuard.d.ts.map +1 -0
  8. package/dist/host/deploy/ProjectDeployMutationGuard.js +16 -0
  9. package/dist/host/deploy/ProjectDeployMutationGuard.js.map +1 -0
  10. package/dist/host/deploy/ProjectDeployService.d.ts +22 -2
  11. package/dist/host/deploy/ProjectDeployService.d.ts.map +1 -1
  12. package/dist/host/deploy/ProjectDeployService.js +57 -8
  13. package/dist/host/deploy/ProjectDeployService.js.map +1 -1
  14. package/dist/host/http/deployRoutes.d.ts.map +1 -1
  15. package/dist/host/http/deployRoutes.js +49 -10
  16. package/dist/host/http/deployRoutes.js.map +1 -1
  17. package/dist/projectDeployApi.d.ts +36 -2
  18. package/dist/projectDeployApi.d.ts.map +1 -1
  19. package/dist/projectDeployApi.js +33 -0
  20. package/dist/projectDeployApi.js.map +1 -1
  21. package/dist/projectDeployAssetPicker.d.ts +5 -0
  22. package/dist/projectDeployAssetPicker.d.ts.map +1 -0
  23. package/dist/projectDeployAssetPicker.js +26 -0
  24. package/dist/projectDeployAssetPicker.js.map +1 -0
  25. package/dist/projectDeployClient.d.ts +37 -2
  26. package/dist/projectDeployClient.d.ts.map +1 -1
  27. package/dist/projectDeployClient.js +189 -0
  28. package/dist/projectDeployClient.js.map +1 -1
  29. package/dist/projectDeployMonetizationInspectionResult.d.ts +11 -0
  30. package/dist/projectDeployMonetizationInspectionResult.d.ts.map +1 -0
  31. package/dist/projectDeployMonetizationInspectionResult.js +2 -0
  32. package/dist/projectDeployMonetizationInspectionResult.js.map +1 -0
  33. package/dist/projectDeployReleaseExecutionResponse.d.ts +6 -0
  34. package/dist/projectDeployReleaseExecutionResponse.d.ts.map +1 -0
  35. package/dist/projectDeployReleaseExecutionResponse.js +2 -0
  36. package/dist/projectDeployReleaseExecutionResponse.js.map +1 -0
  37. package/dist/ui/admin/pages/DeployAdminPage.d.ts.map +1 -1
  38. package/dist/ui/admin/pages/DeployAdminPage.js +7 -2
  39. package/dist/ui/admin/pages/DeployAdminPage.js.map +1 -1
  40. package/dist/ui/admin/pages/deploy/DeployControlResultView.d.ts +6 -0
  41. package/dist/ui/admin/pages/deploy/DeployControlResultView.d.ts.map +1 -0
  42. package/dist/ui/admin/pages/deploy/DeployControlResultView.js +9 -0
  43. package/dist/ui/admin/pages/deploy/DeployControlResultView.js.map +1 -0
  44. package/dist/ui/admin/pages/deploy/DeployExecutionResultView.d.ts +7 -0
  45. package/dist/ui/admin/pages/deploy/DeployExecutionResultView.d.ts.map +1 -0
  46. package/dist/ui/admin/pages/deploy/DeployExecutionResultView.js +14 -0
  47. package/dist/ui/admin/pages/deploy/DeployExecutionResultView.js.map +1 -0
  48. package/dist/ui/admin/pages/deploy/DeployHistoryCard.d.ts.map +1 -1
  49. package/dist/ui/admin/pages/deploy/DeployHistoryCard.js +6 -3
  50. package/dist/ui/admin/pages/deploy/DeployHistoryCard.js.map +1 -1
  51. package/dist/ui/admin/pages/deploy/DeployLifecycleControls.d.ts +8 -0
  52. package/dist/ui/admin/pages/deploy/DeployLifecycleControls.d.ts.map +1 -0
  53. package/dist/ui/admin/pages/deploy/DeployLifecycleControls.js +10 -0
  54. package/dist/ui/admin/pages/deploy/DeployLifecycleControls.js.map +1 -0
  55. package/dist/ui/admin/pages/deploy/DeployListingLocaleAuthoringCard.d.ts +8 -0
  56. package/dist/ui/admin/pages/deploy/DeployListingLocaleAuthoringCard.d.ts.map +1 -0
  57. package/dist/ui/admin/pages/deploy/DeployListingLocaleAuthoringCard.js +122 -0
  58. package/dist/ui/admin/pages/deploy/DeployListingLocaleAuthoringCard.js.map +1 -0
  59. package/dist/ui/admin/pages/deploy/DeployMonetizationAuthoringCard.d.ts +8 -0
  60. package/dist/ui/admin/pages/deploy/DeployMonetizationAuthoringCard.d.ts.map +1 -0
  61. package/dist/ui/admin/pages/deploy/DeployMonetizationAuthoringCard.js +37 -0
  62. package/dist/ui/admin/pages/deploy/DeployMonetizationAuthoringCard.js.map +1 -0
  63. package/dist/ui/admin/pages/deploy/DeployMonetizationExecutionView.d.ts +6 -0
  64. package/dist/ui/admin/pages/deploy/DeployMonetizationExecutionView.d.ts.map +1 -0
  65. package/dist/ui/admin/pages/deploy/DeployMonetizationExecutionView.js +15 -0
  66. package/dist/ui/admin/pages/deploy/DeployMonetizationExecutionView.js.map +1 -0
  67. package/dist/ui/admin/pages/deploy/DeployMonetizationPlanView.d.ts +13 -0
  68. package/dist/ui/admin/pages/deploy/DeployMonetizationPlanView.d.ts.map +1 -0
  69. package/dist/ui/admin/pages/deploy/DeployMonetizationPlanView.js +10 -0
  70. package/dist/ui/admin/pages/deploy/DeployMonetizationPlanView.js.map +1 -0
  71. package/dist/ui/admin/pages/deploy/DeployMonetizationSyncCard.d.ts +6 -0
  72. package/dist/ui/admin/pages/deploy/DeployMonetizationSyncCard.d.ts.map +1 -0
  73. package/dist/ui/admin/pages/deploy/DeployMonetizationSyncCard.js +87 -0
  74. package/dist/ui/admin/pages/deploy/DeployMonetizationSyncCard.js.map +1 -0
  75. package/dist/ui/admin/pages/deploy/DeployPlanPreview.d.ts +9 -0
  76. package/dist/ui/admin/pages/deploy/DeployPlanPreview.d.ts.map +1 -0
  77. package/dist/ui/admin/pages/deploy/DeployPlanPreview.js +13 -0
  78. package/dist/ui/admin/pages/deploy/DeployPlanPreview.js.map +1 -0
  79. package/dist/ui/admin/pages/deploy/{DeployReadinessCard.d.ts → DeployPreparedReleaseAuthoringCard.d.ts} +3 -2
  80. package/dist/ui/admin/pages/deploy/DeployPreparedReleaseAuthoringCard.d.ts.map +1 -0
  81. package/dist/ui/admin/pages/deploy/DeployPreparedReleaseAuthoringCard.js +46 -0
  82. package/dist/ui/admin/pages/deploy/DeployPreparedReleaseAuthoringCard.js.map +1 -0
  83. package/dist/ui/admin/pages/deploy/DeployReleaseOperationsCard.d.ts +9 -0
  84. package/dist/ui/admin/pages/deploy/DeployReleaseOperationsCard.d.ts.map +1 -0
  85. package/dist/ui/admin/pages/deploy/DeployReleaseOperationsCard.js +191 -0
  86. package/dist/ui/admin/pages/deploy/DeployReleaseOperationsCard.js.map +1 -0
  87. package/dist/ui/admin/pages/deploy/DeployResumeActions.d.ts +8 -0
  88. package/dist/ui/admin/pages/deploy/DeployResumeActions.d.ts.map +1 -0
  89. package/dist/ui/admin/pages/deploy/DeployResumeActions.js +14 -0
  90. package/dist/ui/admin/pages/deploy/DeployResumeActions.js.map +1 -0
  91. package/dist/ui/admin/pages/deploy/DeployStoreAssetAuthoringCard.d.ts +8 -0
  92. package/dist/ui/admin/pages/deploy/DeployStoreAssetAuthoringCard.d.ts.map +1 -0
  93. package/dist/ui/admin/pages/deploy/DeployStoreAssetAuthoringCard.js +101 -0
  94. package/dist/ui/admin/pages/deploy/DeployStoreAssetAuthoringCard.js.map +1 -0
  95. package/package.json +3 -1
  96. package/dist/ui/admin/pages/deploy/DeployReadinessCard.d.ts.map +0 -1
  97. package/dist/ui/admin/pages/deploy/DeployReadinessCard.js +0 -57
  98. 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.10.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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"}