@ankhorage/studio 5.11.2 → 5.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 (54) hide show
  1. package/README.md +1 -1
  2. package/apm/update.json +1 -1
  3. package/dist/host/deploy/ProjectDeployService.d.ts +402 -0
  4. package/dist/host/deploy/ProjectDeployService.d.ts.map +1 -1
  5. package/dist/host/deploy/ProjectDeployService.js +26 -0
  6. package/dist/host/deploy/ProjectDeployService.js.map +1 -1
  7. package/dist/host/http/deployRoutes.d.ts.map +1 -1
  8. package/dist/host/http/deployRoutes.js +7 -0
  9. package/dist/host/http/deployRoutes.js.map +1 -1
  10. package/dist/projectDeployApi.d.ts +8 -0
  11. package/dist/projectDeployApi.d.ts.map +1 -1
  12. package/dist/projectDeployApi.js +12 -0
  13. package/dist/projectDeployApi.js.map +1 -1
  14. package/dist/projectDeployClient.d.ts +8 -0
  15. package/dist/projectDeployClient.d.ts.map +1 -1
  16. package/dist/projectDeployClient.js +29 -0
  17. package/dist/projectDeployClient.js.map +1 -1
  18. package/dist/types/project-deploy-authoring.d.ts +9 -0
  19. package/dist/types/project-deploy-authoring.d.ts.map +1 -0
  20. package/dist/types/project-deploy-authoring.js +2 -0
  21. package/dist/types/project-deploy-authoring.js.map +1 -0
  22. package/dist/ui/admin/adminPagePrimitives.d.ts +0 -6
  23. package/dist/ui/admin/adminPagePrimitives.d.ts.map +1 -1
  24. package/dist/ui/admin/adminPagePrimitives.js +2 -25
  25. package/dist/ui/admin/adminPagePrimitives.js.map +1 -1
  26. package/dist/ui/admin/pages/DeployAdminPage.d.ts.map +1 -1
  27. package/dist/ui/admin/pages/DeployAdminPage.js +1 -1
  28. package/dist/ui/admin/pages/DeployAdminPage.js.map +1 -1
  29. package/dist/ui/admin/pages/deploy/DeployListingLocaleAuthoringCard.d.ts +2 -0
  30. package/dist/ui/admin/pages/deploy/DeployListingLocaleAuthoringCard.d.ts.map +1 -1
  31. package/dist/ui/admin/pages/deploy/DeployListingLocaleAuthoringCard.js +31 -76
  32. package/dist/ui/admin/pages/deploy/DeployListingLocaleAuthoringCard.js.map +1 -1
  33. package/dist/ui/admin/pages/deploy/DeployMonetizationAuthoringCard.d.ts +2 -0
  34. package/dist/ui/admin/pages/deploy/DeployMonetizationAuthoringCard.d.ts.map +1 -1
  35. package/dist/ui/admin/pages/deploy/DeployMonetizationAuthoringCard.js +21 -19
  36. package/dist/ui/admin/pages/deploy/DeployMonetizationAuthoringCard.js.map +1 -1
  37. package/dist/ui/admin/pages/deploy/DeployOwnerAuthoringEditor.d.ts +12 -0
  38. package/dist/ui/admin/pages/deploy/DeployOwnerAuthoringEditor.d.ts.map +1 -0
  39. package/dist/ui/admin/pages/deploy/DeployOwnerAuthoringEditor.js +27 -0
  40. package/dist/ui/admin/pages/deploy/DeployOwnerAuthoringEditor.js.map +1 -0
  41. package/dist/ui/admin/pages/deploy/DeployPreparedReleaseAuthoringCard.d.ts +2 -0
  42. package/dist/ui/admin/pages/deploy/DeployPreparedReleaseAuthoringCard.d.ts.map +1 -1
  43. package/dist/ui/admin/pages/deploy/DeployPreparedReleaseAuthoringCard.js +21 -28
  44. package/dist/ui/admin/pages/deploy/DeployPreparedReleaseAuthoringCard.js.map +1 -1
  45. package/dist/ui/admin/pages/deploy/DeployStoreAssetAuthoringCard.d.ts +2 -0
  46. package/dist/ui/admin/pages/deploy/DeployStoreAssetAuthoringCard.d.ts.map +1 -1
  47. package/dist/ui/admin/pages/deploy/DeployStoreAssetAuthoringCard.js +29 -52
  48. package/dist/ui/admin/pages/deploy/DeployStoreAssetAuthoringCard.js.map +1 -1
  49. package/dist/ui/admin/pages/deploy/deployDashboardTypes.d.ts +2 -0
  50. package/dist/ui/admin/pages/deploy/deployDashboardTypes.d.ts.map +1 -1
  51. package/dist/ui/admin/pages/deploy/useProjectDeployDashboard.d.ts.map +1 -1
  52. package/dist/ui/admin/pages/deploy/useProjectDeployDashboard.js +5 -3
  53. package/dist/ui/admin/pages/deploy/useProjectDeployDashboard.js.map +1 -1
  54. package/package.json +1 -1
@@ -1,37 +1,39 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
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';
3
+ import React, { useState } from 'react';
4
+ import { resolveContractsAuthoringStructure } from '../../../../features/authoring-engine/adapters/outbound/resolveContractsAuthoringStructure';
5
+ import { writeProjectDeployMonetizationAuthoring } from '../../../../projectDeployApi';
6
+ import { KeyValue } from '../../adminPagePrimitives';
7
+ import { DeployOwnerAuthoringEditor } from './DeployOwnerAuthoringEditor';
8
+ /*** Author Monetization desired state from the host-projected Deploy owner structure. */
6
9
  export function DeployMonetizationAuthoringCard(props) {
7
- const [source, setSource] = useState('[]');
10
+ const owner = props.authoring.status === 'ready'
11
+ ? {
12
+ initial: props.authoring.data.monetization,
13
+ structure: resolveContractsAuthoringStructure(props.authoring.data.structure, 'monetization'),
14
+ }
15
+ : null;
16
+ return (_jsxs(Card, { title: "Monetization desired state", description: "Product identity, variants, pricing, localization and subscriptions are derived from Deploy's released owner metadata.", children: [props.monetization.status === 'ready' ? (_jsx(KeyValue, { label: "Monetization revision", value: props.monetization.data.revision })) : null, props.monetization.status === 'ready' && owner ? (_jsx(MonetizationDraftEditor, { projectId: props.projectId, initial: owner.initial, structure: owner.structure, onMutation: props.onMutation }, props.monetization.data.revision)) : null, props.authoring.status === 'loading' ? _jsx(Text, { children: "Loading authoring metadata\u2026" }) : null, props.authoring.status === 'error' ? (_jsx(Text, { color: "danger", children: props.authoring.message })) : null, props.monetization.status === 'loading' ? _jsx(Text, { children: "Loading monetization\u2026" }) : null, props.monetization.status === 'error' ? (_jsx(Text, { color: "danger", children: props.monetization.message })) : null] }));
17
+ }
18
+ /*** Edit one revision-scoped Monetization draft and persist it through the trusted host owner projection. */
19
+ function MonetizationDraftEditor(props) {
20
+ const [draft, setDraft] = useState(props.initial);
8
21
  const [busy, setBusy] = useState(false);
9
22
  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
23
  const save = async () => {
16
24
  setBusy(true);
17
25
  setError(null);
18
26
  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);
27
+ await writeProjectDeployMonetizationAuthoring(props.projectId, draft);
23
28
  props.onMutation();
24
29
  }
25
30
  catch (caught) {
26
- setError(readError(caught));
31
+ setError(caught instanceof Error ? caught.message : String(caught));
27
32
  }
28
33
  finally {
29
34
  setBusy(false);
30
35
  }
31
36
  };
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);
37
+ return (_jsxs(_Fragment, { children: [_jsx(DeployOwnerAuthoringEditor, { structure: props.structure, value: draft, onChange: setDraft, onError: setError }), error ? _jsx(Text, { color: "danger", children: error }) : null, _jsx(Button, { disabled: busy, onPress: () => void save(), children: busy ? 'Saving…' : 'Save monetization desired state' })] }));
36
38
  }
37
39
  //# sourceMappingURL=DeployMonetizationAuthoringCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeployMonetizationAuthoringCard.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployMonetizationAuthoringCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DeployMonetizationAuthoringCard.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployMonetizationAuthoringCard.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import type { AuthoringPresentationPolicy, AuthoringStructureResolution } from '../../../../types/authoring-engine';
3
+ export interface DeployOwnerAuthoringEditorProps<T> {
4
+ readonly structure: AuthoringStructureResolution;
5
+ readonly value: T;
6
+ readonly policy?: AuthoringPresentationPolicy;
7
+ readonly onChange: (value: T) => void;
8
+ readonly onError: (message: string | null) => void;
9
+ }
10
+ /*** Render one Deploy-owned structure through the neutral Authoring Engine and apply immutable typed mutations. */
11
+ export declare function DeployOwnerAuthoringEditor<T>(props: DeployOwnerAuthoringEditorProps<T>): React.JSX.Element;
12
+ //# sourceMappingURL=DeployOwnerAuthoringEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeployOwnerAuthoringEditor.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployOwnerAuthoringEditor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EACV,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,oCAAoC,CAAC;AAE5C,MAAM,WAAW,+BAA+B,CAAC,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,4BAA4B,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,MAAM,CAAC,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACpD;AAED,mHAAmH;AACnH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,KAAK,EAAE,+BAA+B,CAAC,CAAC,CAAC,qBAwBtF"}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Text } from '@ankhorage/zora';
3
+ import React from 'react';
4
+ import { AuthoringEditor } from '../../../../features/authoring-engine/adapters/inbound/AuthoringEditor';
5
+ import { applyAuthoringMutationToStructure } from '../../../../features/authoring-engine/application/use-cases/applyAuthoringMutationToStructure';
6
+ import { deriveAuthoringModel } from '../../../../features/authoring-engine/application/use-cases/deriveAuthoringModel';
7
+ /*** Render one Deploy-owned structure through the neutral Authoring Engine and apply immutable typed mutations. */
8
+ export function DeployOwnerAuthoringEditor(props) {
9
+ if (!props.structure.ok) {
10
+ return _jsx(Text, { color: "danger", children: props.structure.diagnostic.message });
11
+ }
12
+ const { structure } = props.structure;
13
+ return (_jsx(AuthoringEditor, { model: deriveAuthoringModel({
14
+ structure,
15
+ value: props.value,
16
+ policy: props.policy,
17
+ }), onMutation: (mutation) => {
18
+ const result = applyAuthoringMutationToStructure(props.value, structure, mutation);
19
+ if (!result.ok) {
20
+ props.onError(result.diagnostic.message);
21
+ return;
22
+ }
23
+ props.onError(null);
24
+ props.onChange(result.value);
25
+ } }));
26
+ }
27
+ //# sourceMappingURL=DeployOwnerAuthoringEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeployOwnerAuthoringEditor.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployOwnerAuthoringEditor.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,wEAAwE,CAAC;AACzG,OAAO,EAAE,iCAAiC,EAAE,MAAM,+FAA+F,CAAC;AAClJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,kFAAkF,CAAC;AAcxH,mHAAmH;AACnH,MAAM,UAAU,0BAA0B,CAAI,KAAyC;IACrF,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QACxB,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,GAAQ,CAAC;IAC1E,CAAC;IACD,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;IAEtC,OAAO,CACL,KAAC,eAAe,IACd,KAAK,EAAE,oBAAoB,CAAC;YAC1B,SAAS;YACT,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,EACF,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;YACvB,MAAM,MAAM,GAAG,iCAAiC,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YACnF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBACzC,OAAO;YACT,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,GACD,CACH,CAAC;AACJ,CAAC"}
@@ -1,7 +1,9 @@
1
1
  import React from 'react';
2
2
  import type { ProjectDeployDashboardState } from './deployDashboardTypes';
3
+ /*** Author prepared Release desired state from the host-projected Deploy owner structure. */
3
4
  export declare function DeployPreparedReleaseAuthoringCard(props: {
4
5
  readonly projectId: string;
6
+ readonly authoring: ProjectDeployDashboardState['authoring'];
5
7
  readonly release: ProjectDeployDashboardState['release'];
6
8
  readonly onMutation: () => void;
7
9
  }): React.JSX.Element;
@@ -1 +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"}
1
+ {"version":3,"file":"DeployPreparedReleaseAuthoringCard.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployPreparedReleaseAuthoringCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAMxC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAG1E,6FAA6F;AAC7F,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,2BAA2B,CAAC,WAAW,CAAC,CAAC;IAC7D,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CACjC,qBAuCA"}
@@ -1,46 +1,39 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
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';
3
+ import React, { useState } from 'react';
4
+ import { resolveContractsAuthoringStructure } from '../../../../features/authoring-engine/adapters/outbound/resolveContractsAuthoringStructure';
5
+ import { writeProjectDeployReleaseAuthoring } from '../../../../projectDeployApi';
6
+ import { KeyValue } from '../../adminPagePrimitives';
7
+ import { DeployOwnerAuthoringEditor } from './DeployOwnerAuthoringEditor';
8
+ /*** Author prepared Release desired state from the host-projected Deploy owner structure. */
6
9
  export function DeployPreparedReleaseAuthoringCard(props) {
7
- const [source, setSource] = useState('{}');
10
+ const owner = props.authoring.status === 'ready'
11
+ ? {
12
+ initial: props.authoring.data.release,
13
+ structure: resolveContractsAuthoringStructure(props.authoring.data.structure, 'prepared-release'),
14
+ }
15
+ : null;
16
+ return (_jsxs(Card, { title: "Prepared release desired state", description: "Version, target membership, localized notes and rollout variants are derived from Deploy owner metadata. Execution remains inspect \u2192 confirm \u2192 execute.", children: [props.release.status === 'ready' ? (_jsx(KeyValue, { label: "Prepared release revision", value: props.release.data.revision })) : null, props.release.status === 'ready' && owner ? (_jsx(ReleaseDraftEditor, { projectId: props.projectId, initial: owner.initial, structure: owner.structure, onMutation: props.onMutation }, props.release.data.revision)) : null, props.authoring.status === 'loading' ? _jsx(Text, { children: "Loading authoring metadata\u2026" }) : null, props.authoring.status === 'error' ? (_jsx(Text, { color: "danger", children: props.authoring.message })) : null, 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] }));
17
+ }
18
+ /*** Edit one revision-scoped Release draft and persist it through the trusted host owner projection. */
19
+ function ReleaseDraftEditor(props) {
20
+ const [draft, setDraft] = useState(props.initial);
8
21
  const [busy, setBusy] = useState(false);
9
22
  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
23
  const save = async () => {
22
24
  setBusy(true);
23
25
  setError(null);
24
26
  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);
27
+ await writeProjectDeployReleaseAuthoring(props.projectId, draft);
29
28
  props.onMutation();
30
29
  }
31
30
  catch (caught) {
32
- setError(readError(caught));
31
+ setError(caught instanceof Error ? caught.message : String(caught));
33
32
  }
34
33
  finally {
35
34
  setBusy(false);
36
35
  }
37
36
  };
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);
37
+ return (_jsxs(_Fragment, { children: [_jsx(DeployOwnerAuthoringEditor, { structure: props.structure, value: draft, onChange: setDraft, onError: setError }), error ? _jsx(Text, { color: "danger", children: error }) : null, _jsx(Button, { disabled: busy, onPress: () => void save(), children: busy ? 'Saving…' : 'Save prepared release' })] }));
45
38
  }
46
39
  //# sourceMappingURL=DeployPreparedReleaseAuthoringCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeployPreparedReleaseAuthoringCard.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployPreparedReleaseAuthoringCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DeployPreparedReleaseAuthoringCard.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployPreparedReleaseAuthoringCard.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import React from 'react';
2
2
  import type { ProjectDeployDashboardState } from './deployDashboardTypes';
3
+ /*** Author a semantic store-asset location from Deploy metadata while keeping image I/O as workflow UI. */
3
4
  export declare function DeployStoreAssetAuthoringCard(props: {
4
5
  readonly projectId: string;
6
+ readonly authoring: ProjectDeployDashboardState['authoring'];
5
7
  readonly listing: ProjectDeployDashboardState['listing'];
6
8
  readonly onMutation: () => void;
7
9
  }): React.JSX.Element;
@@ -1 +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,qBA+JA"}
1
+ {"version":3,"file":"DeployStoreAssetAuthoringCard.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployStoreAssetAuthoringCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAUxC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAa1E,2GAA2G;AAC3G,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,2BAA2B,CAAC,WAAW,CAAC,CAAC;IAC7D,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CACjC,qBAiJA"}
@@ -1,34 +1,30 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Button, Card, Dialog, Select, Text, View as ZoraView } from '@ankhorage/zora';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button, Card, Dialog, Text, View as ZoraView } from '@ankhorage/zora';
3
3
  import React, { useState } from 'react';
4
4
  import { View } from 'react-native';
5
- import { pickProjectDeployImage } from '../../../../projectDeployAssetPicker';
5
+ import { resolveContractsAuthoringStructure } from '../../../../features/authoring-engine/adapters/outbound/resolveContractsAuthoringStructure';
6
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
- ];
7
+ import { pickProjectDeployImage } from '../../../../projectDeployAssetPicker';
8
+ import { adminPageStyles, KeyValue } from '../../adminPagePrimitives';
9
+ import { DeployOwnerAuthoringEditor } from './DeployOwnerAuthoringEditor';
10
+ const DEFAULT_ASSET_LOCATION = {
11
+ kind: 'screenshot',
12
+ target: 'android',
13
+ locale: 'en-US',
14
+ variant: 'phone',
15
+ filename: '',
16
+ };
17
+ /*** Author a semantic store-asset location from Deploy metadata while keeping image I/O as workflow UI. */
20
18
  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('');
19
+ const [location, setLocation] = useState(DEFAULT_ASSET_LOCATION);
27
20
  const [image, setImage] = useState(null);
28
21
  const [busy, setBusy] = useState(false);
29
22
  const [error, setError] = useState(null);
30
23
  const [confirmRemove, setConfirmRemove] = useState(false);
31
- const location = createLocation({ kind, target, locale, variant, sharedVariant, filename });
24
+ const structure = props.authoring.status === 'ready'
25
+ ? resolveContractsAuthoringStructure(props.authoring.data.structure, 'store-listing-asset-location')
26
+ : null;
27
+ /*** Pick one local image while leaving semantic asset-location authoring to the shared engine. */
32
28
  const chooseImage = async () => {
33
29
  setError(null);
34
30
  try {
@@ -36,15 +32,17 @@ export function DeployStoreAssetAuthoringCard(props) {
36
32
  if (!selected)
37
33
  return;
38
34
  setImage(selected);
39
- if (kind === 'screenshot')
40
- setFilename(selected.filename);
35
+ if (location.kind === 'screenshot') {
36
+ setLocation({ ...location, filename: selected.filename });
37
+ }
41
38
  }
42
39
  catch (caught) {
43
- setError(readError(caught));
40
+ setError(caught instanceof Error ? caught.message : String(caught));
44
41
  }
45
42
  };
43
+ /*** Upload the selected bytes to the currently authored Deploy semantic asset location. */
46
44
  const upload = async () => {
47
- if (!location || !image)
45
+ if (!image)
48
46
  return;
49
47
  setBusy(true);
50
48
  setError(null);
@@ -53,15 +51,14 @@ export function DeployStoreAssetAuthoringCard(props) {
53
51
  props.onMutation();
54
52
  }
55
53
  catch (caught) {
56
- setError(readError(caught));
54
+ setError(caught instanceof Error ? caught.message : String(caught));
57
55
  }
58
56
  finally {
59
57
  setBusy(false);
60
58
  }
61
59
  };
60
+ /*** Remove the currently authored semantic asset location through Deploy's owner API. */
62
61
  const remove = async () => {
63
- if (!location)
64
- return;
65
62
  setConfirmRemove(false);
66
63
  setBusy(true);
67
64
  setError(null);
@@ -70,32 +67,12 @@ export function DeployStoreAssetAuthoringCard(props) {
70
67
  props.onMutation();
71
68
  }
72
69
  catch (caught) {
73
- setError(readError(caught));
70
+ setError(caught instanceof Error ? caught.message : String(caught));
74
71
  }
75
72
  finally {
76
73
  setBusy(false);
77
74
  }
78
75
  };
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(Dialog, { visible: confirmRemove, title: "Remove store asset?", description: "Remove the selected semantic asset location through the Deploy owner API?", onDismiss: () => setConfirmRemove(false), footer: _jsxs(ZoraView, { direction: { base: 'column', md: 'row' }, gap: "s", justify: "flex-end", children: [_jsx(Button, { color: "neutral", variant: "soft", disabled: busy, onPress: () => setConfirmRemove(false), children: "Cancel" }), _jsx(Button, { color: "danger", disabled: busy, onPress: () => void remove(), children: "Remove asset" })] }) })] }));
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);
76
+ return (_jsxs(Card, { title: "Store assets", description: "Asset-location variants and finite choices come from Deploy owner metadata. Image picking, upload and removal remain workflow operations.", children: [structure ? (_jsx(DeployOwnerAuthoringEditor, { structure: structure, value: location, onChange: setLocation, onError: setError })) : null, props.authoring.status === 'loading' ? _jsx(Text, { children: "Loading authoring metadata\u2026" }) : null, props.authoring.status === 'error' ? (_jsx(Text, { color: "danger", children: props.authoring.message })) : null, _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, onPress: () => void upload(), children: busy ? 'Working…' : 'Upload asset' }), _jsx(Button, { disabled: busy, 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(Dialog, { visible: confirmRemove, title: "Remove store asset?", description: "Remove the selected semantic asset location through the Deploy owner API?", onDismiss: () => setConfirmRemove(false), footer: _jsxs(ZoraView, { direction: { base: 'column', md: 'row' }, gap: "s", justify: "flex-end", children: [_jsx(Button, { color: "neutral", variant: "soft", disabled: busy, onPress: () => setConfirmRemove(false), children: "Cancel" }), _jsx(Button, { color: "danger", disabled: busy, onPress: () => void remove(), children: "Remove asset" })] }) })] }));
100
77
  }
101
78
  //# sourceMappingURL=DeployStoreAssetAuthoringCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeployStoreAssetAuthoringCard.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployStoreAssetAuthoringCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DeployStoreAssetAuthoringCard.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/DeployStoreAssetAuthoringCard.tsx"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { AppDeployManifest } from '@ankhorage/contracts/deploy';
2
2
  import type { MonetizationDesiredState, ReleaseDesiredState } from '@ankhorage/deploy';
3
3
  import type { ProjectStoreListing } from '@ankhorage/deploy/project';
4
4
  import type { ProjectDeployReleaseHistoryRecord } from '../../../../projectDeployReleaseHistoryRecord';
5
+ import type { ProjectDeployAuthoringSnapshot } from '../../../../types/project-deploy-authoring';
5
6
  export type DeployLoadable<T> = {
6
7
  readonly status: 'loading';
7
8
  } | {
@@ -12,6 +13,7 @@ export type DeployLoadable<T> = {
12
13
  readonly message: string;
13
14
  };
14
15
  export interface ProjectDeployDashboardState {
16
+ readonly authoring: DeployLoadable<ProjectDeployAuthoringSnapshot>;
15
17
  readonly config: DeployLoadable<AppDeployManifest | null>;
16
18
  readonly listing: DeployLoadable<ProjectStoreListing>;
17
19
  readonly monetization: DeployLoadable<MonetizationDesiredState>;
@@ -1 +1 @@
1
- {"version":3,"file":"deployDashboardTypes.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/deployDashboardTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,+CAA+C,CAAC;AAEvG,MAAM,MAAM,cAAc,CAAC,CAAC,IACxB;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAC1D,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAAC;IACtD,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAChE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,SAAS,iCAAiC,EAAE,CAAC,CAAC;CAChF"}
1
+ {"version":3,"file":"deployDashboardTypes.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/deployDashboardTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,+CAA+C,CAAC;AACvG,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AAEjG,MAAM,MAAM,cAAc,CAAC,CAAC,IACxB;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,8BAA8B,CAAC,CAAC;IACnE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAC1D,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAAC;IACtD,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAChE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,SAAS,iCAAiC,EAAE,CAAC,CAAC;CAChF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useProjectDeployDashboard.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/useProjectDeployDashboard.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAkB,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAO1F;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM;;;EAsB1D"}
1
+ {"version":3,"file":"useProjectDeployDashboard.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/useProjectDeployDashboard.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAkB,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAO1F;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM;;;EAsB1D"}
@@ -1,5 +1,5 @@
1
1
  import { useCallback, useEffect, useState } from 'react';
2
- import { listProjectDeployReleaseHistory, readProjectDeployConfig, readProjectDeployListing, readProjectDeployMonetization, readProjectDeployRelease, } from '../../../../projectDeployApi';
2
+ import { listProjectDeployReleaseHistory, readProjectDeployAuthoring, readProjectDeployConfig, readProjectDeployListing, readProjectDeployMonetization, readProjectDeployRelease, } from '../../../../projectDeployApi';
3
3
  /***
4
4
  * Load the five deploy-dashboard resources for one project, invalidate stale generations, and expose an explicit refresh trigger.
5
5
  * @todo Keep this React adapter at the deploy admin UI edge while dashboard loading/orchestration moves into deploy application ownership.
@@ -26,6 +26,7 @@ export function useProjectDeployDashboard(projectId) {
26
26
  return { state, refresh };
27
27
  }
28
28
  const loadingState = {
29
+ authoring: { status: 'loading' },
29
30
  config: { status: 'loading' },
30
31
  listing: { status: 'loading' },
31
32
  monetization: { status: 'loading' },
@@ -34,14 +35,15 @@ const loadingState = {
34
35
  };
35
36
  /*** Load all deploy-dashboard resources concurrently while isolating each resource failure into its own loadable state. */
36
37
  async function loadDashboard(projectId) {
37
- const [config, listing, monetization, release, history] = await Promise.all([
38
+ const [authoring, config, listing, monetization, release, history] = await Promise.all([
39
+ capture(readProjectDeployAuthoring(projectId)),
38
40
  capture(readProjectDeployConfig(projectId)),
39
41
  capture(readProjectDeployListing(projectId)),
40
42
  capture(readProjectDeployMonetization(projectId)),
41
43
  capture(readProjectDeployRelease(projectId)),
42
44
  capture(listProjectDeployReleaseHistory(projectId)),
43
45
  ]);
44
- return { config, listing, monetization, release, history };
46
+ return { authoring, config, listing, monetization, release, history };
45
47
  }
46
48
  /***
47
49
  * Convert a promise into a discriminated ready/error loadable result while normalizing unknown errors to messages.
@@ -1 +1 @@
1
- {"version":3,"file":"useProjectDeployDashboard.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/useProjectDeployDashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EACL,+BAA+B,EAC/B,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AAQtC;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,SAAiB;IACzD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA8B,IAAI,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,GAAG,SAAS,IAAI,iBAAiB,EAAE,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3C,IAAI,CAAC,SAAS;gBAAE,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAE5B,qFAAqF;IACrF,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;QAC/B,oBAAoB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,MAAM,EAAE,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;IAC9E,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,YAAY,GAAgC;IAChD,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;IAC7B,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;IAC9B,YAAY,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;IACnC,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;IAC9B,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;CAC/B,CAAC;AAEF,2HAA2H;AAC3H,KAAK,UAAU,aAAa,CAAC,SAAiB;IAC5C,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1E,OAAO,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAC3C,OAAO,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC;QACjD,OAAO,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;KACpD,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,OAAO,CAAI,SAAqB;IAC7C,IAAI,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,EAAE,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC9F,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"useProjectDeployDashboard.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/deploy/useProjectDeployDashboard.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ankhorage/studio",
3
- "version": "5.11.2",
3
+ "version": "5.12.0",
4
4
  "description": "Studio authoring package for Ankhorage apps",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/ankhorage/studio#readme",