@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,122 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, Card, ConfirmDialog, Select, Text } from '@ankhorage/zora';
|
|
3
|
+
import React, { useEffect, useState } from 'react';
|
|
4
|
+
import { removeProjectDeployListingLocale, writeProjectDeployListingLocale, } from '../../../../projectDeployApi';
|
|
5
|
+
import { Field, Input, KeyValue } from '../../adminPagePrimitives';
|
|
6
|
+
const NEW_LOCALE = '__new__';
|
|
7
|
+
const EMPTY_DRAFT = {
|
|
8
|
+
locale: '',
|
|
9
|
+
name: '',
|
|
10
|
+
summary: '',
|
|
11
|
+
description: '',
|
|
12
|
+
keywords: '',
|
|
13
|
+
promotionalText: '',
|
|
14
|
+
supportUrl: '',
|
|
15
|
+
marketingUrl: '',
|
|
16
|
+
privacyPolicyUrl: '',
|
|
17
|
+
promoVideoUrl: '',
|
|
18
|
+
};
|
|
19
|
+
export function DeployListingLocaleAuthoringCard(props) {
|
|
20
|
+
const [selected, setSelected] = useState(NEW_LOCALE);
|
|
21
|
+
const [draft, setDraft] = useState(EMPTY_DRAFT);
|
|
22
|
+
const [busy, setBusy] = useState(false);
|
|
23
|
+
const [error, setError] = useState(null);
|
|
24
|
+
const [confirmDelete, setConfirmDelete] = useState(false);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
if (props.listing.status !== 'ready' || selected === NEW_LOCALE)
|
|
27
|
+
return;
|
|
28
|
+
const locale = props.listing.data.locales.find((candidate) => candidate.locale === selected);
|
|
29
|
+
if (locale)
|
|
30
|
+
setDraft(toDraft(locale));
|
|
31
|
+
}, [props.listing, selected]);
|
|
32
|
+
const options = [
|
|
33
|
+
{ value: NEW_LOCALE, label: 'New locale' },
|
|
34
|
+
...(props.listing.status === 'ready'
|
|
35
|
+
? props.listing.data.locales.map((locale) => ({
|
|
36
|
+
value: locale.locale,
|
|
37
|
+
label: `${locale.locale} · ${locale.name}`,
|
|
38
|
+
}))
|
|
39
|
+
: []),
|
|
40
|
+
];
|
|
41
|
+
const selectLocale = (value) => {
|
|
42
|
+
setSelected(value);
|
|
43
|
+
setError(null);
|
|
44
|
+
if (value === NEW_LOCALE)
|
|
45
|
+
setDraft(EMPTY_DRAFT);
|
|
46
|
+
};
|
|
47
|
+
const save = async () => {
|
|
48
|
+
setBusy(true);
|
|
49
|
+
setError(null);
|
|
50
|
+
try {
|
|
51
|
+
await writeProjectDeployListingLocale(props.projectId, toOwnerLocale(draft));
|
|
52
|
+
setSelected(draft.locale.trim());
|
|
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 (selected === NEW_LOCALE)
|
|
64
|
+
return;
|
|
65
|
+
setConfirmDelete(false);
|
|
66
|
+
setBusy(true);
|
|
67
|
+
setError(null);
|
|
68
|
+
try {
|
|
69
|
+
await removeProjectDeployListingLocale(props.projectId, selected);
|
|
70
|
+
setSelected(NEW_LOCALE);
|
|
71
|
+
setDraft(EMPTY_DRAFT);
|
|
72
|
+
props.onMutation();
|
|
73
|
+
}
|
|
74
|
+
catch (caught) {
|
|
75
|
+
setError(readError(caught));
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
setBusy(false);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
return (_jsxs(Card, { title: "Store listing locales", description: "Create, update, or remove canonical locale metadata through Deploy's project authoring API.", children: [props.listing.status === 'ready' ? (_jsx(KeyValue, { label: "Listing revision", value: props.listing.data.revision })) : null, _jsx(Field, { label: "Locale entry", children: _jsx(Select, { value: selected, options: options, onValueChange: selectLocale }) }), _jsx(Field, { label: "Locale", children: _jsx(Input, { value: draft.locale, placeholder: "en-US", onChangeText: (locale) => setDraft({ ...draft, locale }) }) }), _jsx(Field, { label: "Store name", children: _jsx(Input, { value: draft.name, onChangeText: (name) => setDraft({ ...draft, name }) }) }), _jsx(Field, { label: "Summary", children: _jsx(Input, { value: draft.summary, onChangeText: (summary) => setDraft({ ...draft, summary }) }) }), _jsx(Field, { label: "Description", children: _jsx(Input, { multiline: true, numberOfLines: 5, value: draft.description, onChangeText: (description) => setDraft({ ...draft, description }) }) }), _jsx(Field, { label: "Keywords (comma separated)", children: _jsx(Input, { value: draft.keywords, onChangeText: (keywords) => setDraft({ ...draft, keywords }) }) }), _jsx(Field, { label: "Promotional text", children: _jsx(Input, { value: draft.promotionalText, onChangeText: (promotionalText) => setDraft({ ...draft, promotionalText }) }) }), _jsx(Field, { label: "Support URL", children: _jsx(Input, { value: draft.supportUrl, onChangeText: (supportUrl) => setDraft({ ...draft, supportUrl }) }) }), _jsx(Field, { label: "Marketing URL", children: _jsx(Input, { value: draft.marketingUrl, onChangeText: (marketingUrl) => setDraft({ ...draft, marketingUrl }) }) }), _jsx(Field, { label: "Privacy policy URL", children: _jsx(Input, { value: draft.privacyPolicyUrl, onChangeText: (privacyPolicyUrl) => setDraft({ ...draft, privacyPolicyUrl }) }) }), _jsx(Field, { label: "Promo video URL", children: _jsx(Input, { value: draft.promoVideoUrl, onChangeText: (promoVideoUrl) => setDraft({ ...draft, promoVideoUrl }) }) }), props.listing.status === 'loading' ? _jsx(Text, { children: "Loading listing\u2026" }) : null, props.listing.status === 'error' ? (_jsx(Text, { color: "danger", children: props.listing.message })) : null, error ? _jsx(Text, { color: "danger", children: error }) : null, _jsx(Button, { disabled: busy || draft.locale.trim() === '' || draft.name.trim() === '', onPress: () => void save(), children: busy ? 'Saving…' : 'Save locale' }), selected !== NEW_LOCALE ? (_jsx(Button, { disabled: busy, variant: "outline", onPress: () => setConfirmDelete(true), children: "Remove locale" })) : null, _jsx(ConfirmDialog, { visible: confirmDelete, title: "Remove store listing locale?", description: `Remove ${selected} through the Deploy owner API? Unrelated locales and assets remain owner-managed.`, confirmLabel: "Remove locale", confirmColor: "danger", cancelLabel: "Cancel", onCancel: () => setConfirmDelete(false), onConfirm: () => void remove() })] }));
|
|
82
|
+
}
|
|
83
|
+
function toDraft(locale) {
|
|
84
|
+
return {
|
|
85
|
+
locale: locale.locale,
|
|
86
|
+
name: locale.name,
|
|
87
|
+
summary: locale.summary ?? '',
|
|
88
|
+
description: locale.description ?? '',
|
|
89
|
+
keywords: locale.keywords?.join(', ') ?? '',
|
|
90
|
+
promotionalText: locale.promotionalText ?? '',
|
|
91
|
+
supportUrl: locale.supportUrl ?? '',
|
|
92
|
+
marketingUrl: locale.marketingUrl ?? '',
|
|
93
|
+
privacyPolicyUrl: locale.privacyPolicyUrl ?? '',
|
|
94
|
+
promoVideoUrl: locale.promoVideoUrl ?? '',
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function toOwnerLocale(draft) {
|
|
98
|
+
const keywords = draft.keywords
|
|
99
|
+
.split(',')
|
|
100
|
+
.map((keyword) => keyword.trim())
|
|
101
|
+
.filter((keyword) => keyword.length > 0);
|
|
102
|
+
return {
|
|
103
|
+
locale: draft.locale.trim(),
|
|
104
|
+
name: draft.name.trim(),
|
|
105
|
+
...optionalField('summary', draft.summary),
|
|
106
|
+
...optionalField('description', draft.description),
|
|
107
|
+
...(keywords.length > 0 ? { keywords } : {}),
|
|
108
|
+
...optionalField('promotionalText', draft.promotionalText),
|
|
109
|
+
...optionalField('supportUrl', draft.supportUrl),
|
|
110
|
+
...optionalField('marketingUrl', draft.marketingUrl),
|
|
111
|
+
...optionalField('privacyPolicyUrl', draft.privacyPolicyUrl),
|
|
112
|
+
...optionalField('promoVideoUrl', draft.promoVideoUrl),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
function optionalField(key, value) {
|
|
116
|
+
const trimmed = value.trim();
|
|
117
|
+
return trimmed === '' ? {} : { [key]: trimmed };
|
|
118
|
+
}
|
|
119
|
+
function readError(error) {
|
|
120
|
+
return error instanceof Error ? error.message : String(error);
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=DeployListingLocaleAuthoringCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployListingLocaleAuthoringCard.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployListingLocaleAuthoringCard.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 DeployMonetizationAuthoringCard(props: {
|
|
4
|
+
readonly projectId: string;
|
|
5
|
+
readonly monetization: ProjectDeployDashboardState['monetization'];
|
|
6
|
+
readonly onMutation: () => void;
|
|
7
|
+
}): React.JSX.Element;
|
|
8
|
+
//# sourceMappingURL=DeployMonetizationAuthoringCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployMonetizationAuthoringCard.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployMonetizationAuthoringCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,2BAA2B,CAAC,cAAc,CAAC,CAAC;IACnE,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CACjC,qBAkDA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, Card, Text } from '@ankhorage/zora';
|
|
3
|
+
import React, { useEffect, useState } from 'react';
|
|
4
|
+
import { writeProjectDeployMonetization } from '../../../../projectDeployApi';
|
|
5
|
+
import { Field, Input, KeyValue } from '../../adminPagePrimitives';
|
|
6
|
+
export function DeployMonetizationAuthoringCard(props) {
|
|
7
|
+
const [source, setSource] = useState('[]');
|
|
8
|
+
const [busy, setBusy] = useState(false);
|
|
9
|
+
const [error, setError] = useState(null);
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
if (props.monetization.status !== 'ready')
|
|
12
|
+
return;
|
|
13
|
+
setSource(JSON.stringify(props.monetization.data.products, null, 2));
|
|
14
|
+
}, [props.monetization]);
|
|
15
|
+
const save = async () => {
|
|
16
|
+
setBusy(true);
|
|
17
|
+
setError(null);
|
|
18
|
+
try {
|
|
19
|
+
const parsed = JSON.parse(source);
|
|
20
|
+
if (!Array.isArray(parsed))
|
|
21
|
+
throw new Error('Canonical Deploy products must be a JSON array.');
|
|
22
|
+
await writeProjectDeployMonetization(props.projectId, parsed);
|
|
23
|
+
props.onMutation();
|
|
24
|
+
}
|
|
25
|
+
catch (caught) {
|
|
26
|
+
setError(readError(caught));
|
|
27
|
+
}
|
|
28
|
+
finally {
|
|
29
|
+
setBusy(false);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
return (_jsxs(Card, { title: "Monetization desired state", description: "Edit the exact canonical Deploy product array. Deploy owns product, pricing, subscription validation and persistence.", children: [props.monetization.status === 'ready' ? (_jsx(KeyValue, { label: "Monetization revision", value: props.monetization.data.revision })) : null, _jsx(Field, { label: "Canonical MonetizationProduct[]", children: _jsx(Input, { multiline: true, numberOfLines: 14, value: source, onChangeText: setSource }) }), props.monetization.status === 'loading' ? _jsx(Text, { children: "Loading monetization\u2026" }) : null, props.monetization.status === 'error' ? (_jsx(Text, { color: "danger", children: props.monetization.message })) : null, error ? _jsx(Text, { color: "danger", children: error }) : null, _jsx(Button, { disabled: busy, onPress: () => void save(), children: busy ? 'Saving…' : 'Save monetization desired state' })] }));
|
|
33
|
+
}
|
|
34
|
+
function readError(error) {
|
|
35
|
+
return error instanceof Error ? error.message : String(error);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=DeployMonetizationAuthoringCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployMonetizationAuthoringCard.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployMonetizationAuthoringCard.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGnE,MAAM,UAAU,+BAA+B,CAAC,KAI/C;IACC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO;QAClD,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IAEzB,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,MAAM,8BAA8B,CAClC,KAAK,CAAC,SAAS,EACf,MAAwC,CACzC,CAAC;YACF,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9B,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,IAAI,IACH,KAAK,EAAC,4BAA4B,EAClC,WAAW,EAAC,uHAAuH,aAElI,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CACvC,KAAC,QAAQ,IAAC,KAAK,EAAC,uBAAuB,EAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,GAAI,CACpF,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,KAAK,IAAC,KAAK,EAAC,iCAAiC,YAC5C,KAAC,KAAK,IAAC,SAAS,QAAC,aAAa,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,GAAI,GACxE,EACP,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAC,IAAI,6CAA6B,CAAC,CAAC,CAAC,IAAI,EACnF,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CACvC,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,KAAK,CAAC,YAAY,CAAC,OAAO,GAAQ,CACzD,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,EACnD,KAAC,MAAM,IAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,YAC/C,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iCAAiC,GAC9C,IACJ,CACR,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ProjectMonetizationExecutionResult } from '@ankhorage/deploy/project';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export declare function DeployMonetizationExecutionView({ result, }: {
|
|
4
|
+
readonly result: ProjectMonetizationExecutionResult;
|
|
5
|
+
}): React.JSX.Element;
|
|
6
|
+
//# sourceMappingURL=DeployMonetizationExecutionView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployMonetizationExecutionView.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployMonetizationExecutionView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,2BAA2B,CAAC;AAEpF,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,wBAAgB,+BAA+B,CAAC,EAC9C,MAAM,GACP,EAAE;IACD,QAAQ,CAAC,MAAM,EAAE,kCAAkC,CAAC;CACrD,qBA6BA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Text } from '@ankhorage/zora';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { KeyValue } from '../../adminPagePrimitives';
|
|
6
|
+
export function DeployMonetizationExecutionView({ result, }) {
|
|
7
|
+
if (result.status === 'failed') {
|
|
8
|
+
return (_jsxs(View, { children: [_jsx(Text, { weight: "semiBold", children: "Monetization synchronization failed" }), _jsx(Text, { color: "danger", children: result.failure.code }), _jsx(Text, { color: "danger", children: result.failure.message })] }));
|
|
9
|
+
}
|
|
10
|
+
if (result.status === 'action-required') {
|
|
11
|
+
return (_jsxs(View, { children: [_jsx(Text, { weight: "semiBold", children: "Monetization synchronization requires action" }), result.actions.map((action) => (_jsxs(Text, { color: "danger", variant: "bodySmall", children: [action.code, ": ", action.message] }, `${action.type}:${action.code}`)))] }));
|
|
12
|
+
}
|
|
13
|
+
return (_jsxs(View, { children: [_jsx(Text, { weight: "semiBold", children: "Monetization synchronization completed" }), _jsx(KeyValue, { label: "Verified current revision", value: result.inspection.currentRevision }), _jsx(KeyValue, { label: "Verification plan", value: result.plan.status })] }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=DeployMonetizationExecutionView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployMonetizationExecutionView.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployMonetizationExecutionView.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,MAAM,UAAU,+BAA+B,CAAC,EAC9C,MAAM,GAGP;IACC,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,MAAM,EAAC,UAAU,oDAA2C,EAClE,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,MAAM,CAAC,OAAO,CAAC,IAAI,GAAQ,EACjD,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,MAAM,CAAC,OAAO,CAAC,OAAO,GAAQ,IAC/C,CACR,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;QACxC,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,MAAM,EAAC,UAAU,6DAAoD,EAC1E,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC9B,MAAC,IAAI,IAAuC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAC,WAAW,aAC3E,MAAM,CAAC,IAAI,QAAI,MAAM,CAAC,OAAO,KADrB,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAEnC,CACR,CAAC,IACG,CACR,CAAC;IACJ,CAAC;IACD,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,MAAM,EAAC,UAAU,uDAA8C,EACrE,KAAC,QAAQ,IAAC,KAAK,EAAC,2BAA2B,EAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,eAAe,GAAI,EACxF,KAAC,QAAQ,IAAC,KAAK,EAAC,mBAAmB,EAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,GAAI,IAC5D,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ProjectDeployMonetizationInspectionResult } from '../../../../projectDeployMonetizationInspectionResult';
|
|
3
|
+
type SuccessfulInspection = Extract<ProjectDeployMonetizationInspectionResult, {
|
|
4
|
+
readonly ok: true;
|
|
5
|
+
}>;
|
|
6
|
+
export declare function DeployMonetizationPlanView(props: {
|
|
7
|
+
readonly result: SuccessfulInspection;
|
|
8
|
+
readonly canExecute: boolean;
|
|
9
|
+
readonly busy: boolean;
|
|
10
|
+
readonly onExecute: () => void;
|
|
11
|
+
}): React.JSX.Element;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=DeployMonetizationPlanView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployMonetizationPlanView.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployMonetizationPlanView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,yCAAyC,EAAE,MAAM,uDAAuD,CAAC;AAGvH,KAAK,oBAAoB,GAAG,OAAO,CACjC,yCAAyC,EACzC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,CACtB,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;CAChC,qBAgEA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, Text } from '@ankhorage/zora';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { KeyValue } from '../../adminPagePrimitives';
|
|
6
|
+
export function DeployMonetizationPlanView(props) {
|
|
7
|
+
const { inspection, plan } = props.result;
|
|
8
|
+
return (_jsxs(View, { children: [_jsx(KeyValue, { label: "Plan status", value: plan.status }), _jsx(KeyValue, { label: "Desired revision", value: plan.desiredRevision }), _jsx(KeyValue, { label: "Current revision", value: plan.currentRevision }), _jsx(KeyValue, { label: "Android package", value: inspection.targets.androidPackage ?? 'not selected' }), _jsx(KeyValue, { label: "iOS bundle identifier", value: inspection.targets.iosBundleIdentifier ?? 'not selected' }), inspection.states.map((state) => (_jsxs(View, { children: [_jsxs(Text, { weight: "semiBold", children: [state.target, " observed state"] }), _jsx(KeyValue, { label: "Products", value: String(state.products.length) }), _jsx(KeyValue, { label: "Subscription families", value: String(state.subscriptionFamilies.length) }), state.diagnostics.map((diagnostic) => (_jsxs(Text, { color: diagnostic.severity === 'error' ? 'danger' : 'neutral', variant: "bodySmall", children: [diagnostic.code, ": ", diagnostic.message] }, `${state.target}:${diagnostic.code}:${diagnostic.productId ?? 'target'}`)))] }, state.target))), plan.steps.map((step) => (_jsxs(Text, { variant: "bodySmall", children: [step.target, " \u00B7 ", step.productId, " \u00B7 ", step.operation] }, step.id))), plan.diagnostics.map((diagnostic) => (_jsxs(Text, { color: diagnostic.severity === 'error' ? 'danger' : 'neutral', variant: "bodySmall", children: [diagnostic.code, ": ", diagnostic.message] }, `${diagnostic.code}:${diagnostic.target ?? 'all'}:${diagnostic.productId ?? 'all'}`))), plan.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}`))), plan.status === 'no-change' ? (_jsx(Text, { children: "No monetization synchronization changes are required." })) : null, _jsx(Button, { disabled: !props.canExecute || props.busy, onPress: props.onExecute, children: "Synchronize monetization" })] }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=DeployMonetizationPlanView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployMonetizationPlanView.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployMonetizationPlanView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployMonetizationSyncCard.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployMonetizationSyncCard.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAwBhD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CACjC,qBA2GA"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { APP_DEPLOY_ENVIRONMENT_IDS, } from '@ankhorage/contracts/deploy';
|
|
3
|
+
import { Button, Card, ConfirmDialog, Select, Text } from '@ankhorage/zora';
|
|
4
|
+
import React, { useRef, useState } from 'react';
|
|
5
|
+
import { executeProjectDeployMonetization, inspectProjectDeployMonetization, } from '../../../../projectDeployApi';
|
|
6
|
+
import { Field } from '../../adminPagePrimitives';
|
|
7
|
+
import { DeployMonetizationExecutionView } from './DeployMonetizationExecutionView';
|
|
8
|
+
import { DeployMonetizationPlanView } from './DeployMonetizationPlanView';
|
|
9
|
+
const ENVIRONMENT_OPTIONS = [
|
|
10
|
+
{ value: 'unselected', label: 'Choose environment' },
|
|
11
|
+
...APP_DEPLOY_ENVIRONMENT_IDS.map((value) => ({ value, label: value })),
|
|
12
|
+
];
|
|
13
|
+
export function DeployMonetizationSyncCard(props) {
|
|
14
|
+
const [environment, setEnvironment] = useState('unselected');
|
|
15
|
+
const [preview, setPreview] = useState(null);
|
|
16
|
+
const [result, setResult] = useState(null);
|
|
17
|
+
const [busy, setBusy] = useState(false);
|
|
18
|
+
const [error, setError] = useState(null);
|
|
19
|
+
const [confirm, setConfirm] = useState(false);
|
|
20
|
+
const mutationInFlightRef = useRef(false);
|
|
21
|
+
const successful = preview !== null && preview.result.ok ? preview.result : null;
|
|
22
|
+
const canExecute = successful?.plan.status === 'changes' && result === null && !busy;
|
|
23
|
+
const inspect = async () => {
|
|
24
|
+
if (environment === 'unselected')
|
|
25
|
+
return;
|
|
26
|
+
const runtime = { environment };
|
|
27
|
+
setBusy(true);
|
|
28
|
+
setError(null);
|
|
29
|
+
setResult(null);
|
|
30
|
+
try {
|
|
31
|
+
const inspected = await inspectProjectDeployMonetization({
|
|
32
|
+
projectId: props.projectId,
|
|
33
|
+
runtime,
|
|
34
|
+
});
|
|
35
|
+
setPreview({ runtime, result: inspected });
|
|
36
|
+
}
|
|
37
|
+
catch (caught) {
|
|
38
|
+
setPreview(null);
|
|
39
|
+
setError(readError(caught));
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
setBusy(false);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
const execute = async () => {
|
|
46
|
+
const current = preview;
|
|
47
|
+
if (!current?.result.ok || current.result.plan.status !== 'changes')
|
|
48
|
+
return;
|
|
49
|
+
if (mutationInFlightRef.current)
|
|
50
|
+
return;
|
|
51
|
+
mutationInFlightRef.current = true;
|
|
52
|
+
setConfirm(false);
|
|
53
|
+
setBusy(true);
|
|
54
|
+
setError(null);
|
|
55
|
+
try {
|
|
56
|
+
const executed = await executeProjectDeployMonetization({
|
|
57
|
+
projectId: props.projectId,
|
|
58
|
+
runtime: current.runtime,
|
|
59
|
+
inspection: current.result.inspection,
|
|
60
|
+
plan: current.result.plan,
|
|
61
|
+
});
|
|
62
|
+
setResult(executed);
|
|
63
|
+
props.onComplete();
|
|
64
|
+
}
|
|
65
|
+
catch (caught) {
|
|
66
|
+
setError(readError(caught));
|
|
67
|
+
}
|
|
68
|
+
finally {
|
|
69
|
+
mutationInFlightRef.current = false;
|
|
70
|
+
setBusy(false);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
return (_jsxs(Card, { title: "Monetization synchronization", description: "Inspect provider state, preview Deploy's canonical plan, then explicitly confirm synchronization of that exact snapshot.", children: [_jsx(Field, { label: "Credential environment", children: _jsx(Select, { value: environment, options: ENVIRONMENT_OPTIONS, onValueChange: (value) => {
|
|
74
|
+
setEnvironment(value);
|
|
75
|
+
setPreview(null);
|
|
76
|
+
setResult(null);
|
|
77
|
+
setError(null);
|
|
78
|
+
setConfirm(false);
|
|
79
|
+
} }) }), _jsx(Button, { disabled: environment === 'unselected' || busy, variant: "outline", onPress: () => void inspect(), children: busy ? 'Working…' : 'Preview monetization synchronization' }), error ? _jsx(Text, { color: "danger", children: error }) : null, preview && !preview.result.ok ? _jsx(ViewFailure, { result: preview.result }) : null, successful ? (_jsx(DeployMonetizationPlanView, { result: successful, canExecute: canExecute, busy: busy, onExecute: () => setConfirm(true) })) : null, result ? _jsx(DeployMonetizationExecutionView, { result: result }) : null, _jsx(ConfirmDialog, { visible: confirm, title: "Synchronize monetization?", description: `Execute this exact Deploy monetization plan with ${successful?.plan.steps.length ?? 0} step(s)? Deploy will re-inspect for drift before provider mutation and verify afterward.`, confirmLabel: "Synchronize monetization", confirmColor: "danger", cancelLabel: "Cancel", onCancel: () => setConfirm(false), onConfirm: () => void execute() })] }));
|
|
80
|
+
}
|
|
81
|
+
function ViewFailure({ result, }) {
|
|
82
|
+
return (_jsxs(_Fragment, { children: [_jsx(Text, { color: "danger", weight: "semiBold", children: result.failure.code }), _jsx(Text, { color: "danger", children: result.failure.message })] }));
|
|
83
|
+
}
|
|
84
|
+
function readError(error) {
|
|
85
|
+
return error instanceof Error ? error.message : String(error);
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=DeployMonetizationSyncCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployMonetizationSyncCard.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployMonetizationSyncCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ProjectDeployReleaseInspectionResult } from '../../../../projectDeployReleaseInspectionResult';
|
|
3
|
+
export declare function DeployPlanPreview(props: {
|
|
4
|
+
readonly result: ProjectDeployReleaseInspectionResult;
|
|
5
|
+
readonly canExecute: boolean;
|
|
6
|
+
readonly busy: boolean;
|
|
7
|
+
readonly onExecute: () => void;
|
|
8
|
+
}): React.JSX.Element;
|
|
9
|
+
//# sourceMappingURL=DeployPlanPreview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployPlanPreview.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployPlanPreview.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,kDAAkD,CAAC;AAG7G,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,QAAQ,CAAC,MAAM,EAAE,oCAAoC,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;CAChC,qBAoDA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, Text } from '@ankhorage/zora';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { KeyValue } from '../../adminPagePrimitives';
|
|
6
|
+
export function DeployPlanPreview(props) {
|
|
7
|
+
if (!props.result.ok) {
|
|
8
|
+
return (_jsxs(View, { children: [_jsx(Text, { color: "danger", weight: "semiBold", children: props.result.failure.code }), _jsx(Text, { color: "danger", children: props.result.failure.message })] }));
|
|
9
|
+
}
|
|
10
|
+
const { inspection, plan } = props.result;
|
|
11
|
+
return (_jsxs(View, { children: [_jsx(KeyValue, { label: "Plan status", value: plan.status }), _jsx(KeyValue, { label: "Desired revision", value: plan.desiredRevision }), _jsx(KeyValue, { label: "Current revision", value: plan.currentRevision }), _jsx(KeyValue, { label: "Required actions", value: String(inspection.actions.length) }), plan.steps.map((step) => (_jsxs(View, { children: [_jsxs(Text, { weight: "semiBold", children: [step.target, " \u00B7 ", step.operation] }), _jsx(Text, { color: step.irreversible ? 'danger' : 'neutral', variant: "bodySmall", children: step.irreversible ? 'Irreversible step' : `Retry: ${step.retry}` })] }, step.id))), plan.diagnostics.map((diagnostic) => (_jsxs(View, { children: [_jsx(Text, { color: diagnostic.severity === 'error' ? 'danger' : 'neutral', weight: "semiBold", children: diagnostic.code }), _jsx(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: diagnostic.message })] }, `${diagnostic.code}:${diagnostic.target ?? 'release'}`))), 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}`))), plan.status === 'no-change' ? _jsx(Text, { children: "No deployment changes are required." }) : null, _jsx(Button, { disabled: !props.canExecute || props.busy, onPress: props.onExecute, children: "Execute exact plan" })] }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=DeployPlanPreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployPlanPreview.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployPlanPreview.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { ProjectDeployDashboardState } from './deployDashboardTypes';
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function DeployPreparedReleaseAuthoringCard(props: {
|
|
4
4
|
readonly projectId: string;
|
|
5
5
|
readonly release: ProjectDeployDashboardState['release'];
|
|
6
|
+
readonly onMutation: () => void;
|
|
6
7
|
}): React.JSX.Element;
|
|
7
|
-
//# sourceMappingURL=
|
|
8
|
+
//# sourceMappingURL=DeployPreparedReleaseAuthoringCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployPreparedReleaseAuthoringCard.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployPreparedReleaseAuthoringCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IACxD,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,qBAqDA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, Card, Text } from '@ankhorage/zora';
|
|
3
|
+
import React, { useEffect, useState } from 'react';
|
|
4
|
+
import { writeProjectDeployRelease } from '../../../../projectDeployApi';
|
|
5
|
+
import { Field, Input, KeyValue } from '../../adminPagePrimitives';
|
|
6
|
+
export function DeployPreparedReleaseAuthoringCard(props) {
|
|
7
|
+
const [source, setSource] = useState('{}');
|
|
8
|
+
const [busy, setBusy] = useState(false);
|
|
9
|
+
const [error, setError] = useState(null);
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
if (props.release.status !== 'ready')
|
|
12
|
+
return;
|
|
13
|
+
const release = {
|
|
14
|
+
version: props.release.data.version,
|
|
15
|
+
targets: props.release.data.targets,
|
|
16
|
+
notes: props.release.data.notes,
|
|
17
|
+
rollout: props.release.data.rollout,
|
|
18
|
+
};
|
|
19
|
+
setSource(JSON.stringify(release, null, 2));
|
|
20
|
+
}, [props.release]);
|
|
21
|
+
const save = async () => {
|
|
22
|
+
setBusy(true);
|
|
23
|
+
setError(null);
|
|
24
|
+
try {
|
|
25
|
+
const parsed = JSON.parse(source);
|
|
26
|
+
if (!isRecord(parsed))
|
|
27
|
+
throw new Error('Canonical ProjectReleaseInput must be a JSON object.');
|
|
28
|
+
await writeProjectDeployRelease(props.projectId, parsed);
|
|
29
|
+
props.onMutation();
|
|
30
|
+
}
|
|
31
|
+
catch (caught) {
|
|
32
|
+
setError(readError(caught));
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
setBusy(false);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
return (_jsxs(Card, { title: "Prepared release desired state", description: "Author the exact Deploy ProjectReleaseInput. Saving desired state never executes a provider; execution remains inspect \u2192 confirm \u2192 execute below.", children: [props.release.status === 'ready' ? (_jsx(KeyValue, { label: "Prepared release revision", value: props.release.data.revision })) : null, _jsx(Field, { label: "Canonical ProjectReleaseInput", children: _jsx(Input, { multiline: true, numberOfLines: 14, value: source, onChangeText: setSource }) }), props.release.status === 'loading' ? _jsx(Text, { children: "Loading prepared release\u2026" }) : null, props.release.status === 'error' ? (_jsx(Text, { color: "danger", children: props.release.message })) : null, error ? _jsx(Text, { color: "danger", children: error }) : null, _jsx(Button, { disabled: busy, onPress: () => void save(), children: busy ? 'Saving…' : 'Save prepared release' })] }));
|
|
39
|
+
}
|
|
40
|
+
function isRecord(value) {
|
|
41
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
42
|
+
}
|
|
43
|
+
function readError(error) {
|
|
44
|
+
return error instanceof Error ? error.message : String(error);
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=DeployPreparedReleaseAuthoringCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployPreparedReleaseAuthoringCard.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployPreparedReleaseAuthoringCard.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGnE,MAAM,UAAU,kCAAkC,CAAC,KAIlD;IACC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO;QAC7C,MAAM,OAAO,GAAwB;YACnC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;YACnC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;YACnC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;YAC/B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;SACpC,CAAC;QACF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAEpB,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC1E,MAAM,yBAAyB,CAAC,KAAK,CAAC,SAAS,EAAE,MAAwC,CAAC,CAAC;YAC3F,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9B,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,IAAI,IACH,KAAK,EAAC,gCAAgC,EACtC,WAAW,EAAC,6JAAmJ,aAE9J,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAClC,KAAC,QAAQ,IAAC,KAAK,EAAC,2BAA2B,EAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAI,CACnF,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,KAAK,IAAC,KAAK,EAAC,+BAA+B,YAC1C,KAAC,KAAK,IAAC,SAAS,QAAC,aAAa,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,GAAI,GACxE,EACP,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAC,IAAI,iDAAiC,CAAC,CAAC,CAAC,IAAI,EAClF,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAClC,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,KAAK,CAAC,OAAO,CAAC,OAAO,GAAQ,CACpD,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,EACnD,KAAC,MAAM,IAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,YAC/C,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,GACpC,IACJ,CACR,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ProjectDeployDashboardState } from './deployDashboardTypes';
|
|
3
|
+
export declare function DeployReleaseOperationsCard(props: {
|
|
4
|
+
readonly projectId: string;
|
|
5
|
+
readonly release: ProjectDeployDashboardState['release'];
|
|
6
|
+
readonly history: ProjectDeployDashboardState['history'];
|
|
7
|
+
readonly onMutation: () => void;
|
|
8
|
+
}): React.JSX.Element;
|
|
9
|
+
//# sourceMappingURL=DeployReleaseOperationsCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployReleaseOperationsCard.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployReleaseOperationsCard.tsx"],"names":[],"mappings":"AAWA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAchD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAuC1E,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACzD,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CACjC,qBA8NA"}
|