@ankhorage/contracts 21.0.0 → 22.0.1

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 (106) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +3 -1
  3. package/dist/appManifest/apis.d.ts +3 -3
  4. package/dist/appManifest/apis.d.ts.map +1 -1
  5. package/dist/appManifest/apis.js +4 -6
  6. package/dist/appManifest/apis.js.map +1 -1
  7. package/dist/appManifest/bindings.d.ts.map +1 -1
  8. package/dist/appManifest/bindings.js +2 -1
  9. package/dist/appManifest/bindings.js.map +1 -1
  10. package/dist/appManifest/data.d.ts.map +1 -1
  11. package/dist/appManifest/data.js +5 -4
  12. package/dist/appManifest/data.js.map +1 -1
  13. package/dist/appManifest/isAppManifest.js +3 -3
  14. package/dist/appManifest/isAppManifest.js.map +1 -1
  15. package/dist/appManifest/isManifestValue.d.ts +1 -1
  16. package/dist/appManifest/isManifestValue.d.ts.map +1 -1
  17. package/dist/appManifest/isManifestValue.js +3 -12
  18. package/dist/appManifest/isManifestValue.js.map +1 -1
  19. package/dist/appManifest/screens.d.ts +3 -2
  20. package/dist/appManifest/screens.d.ts.map +1 -1
  21. package/dist/appManifest/screens.js +15 -7
  22. package/dist/appManifest/screens.js.map +1 -1
  23. package/dist/appManifest/splashScreen.d.ts +8 -11
  24. package/dist/appManifest/splashScreen.d.ts.map +1 -1
  25. package/dist/appManifest/splashScreen.js.map +1 -1
  26. package/dist/bindings.d.ts +2 -3
  27. package/dist/bindings.d.ts.map +1 -1
  28. package/dist/bindings.js.map +1 -1
  29. package/dist/collections.d.ts +4 -0
  30. package/dist/collections.d.ts.map +1 -0
  31. package/dist/collections.js +6 -0
  32. package/dist/collections.js.map +1 -0
  33. package/dist/data/apis.d.ts +1 -1
  34. package/dist/data/apis.d.ts.map +1 -1
  35. package/dist/data/apis.js.map +1 -1
  36. package/dist/data/values.d.ts +2 -3
  37. package/dist/data/values.d.ts.map +1 -1
  38. package/dist/data/values.js.map +1 -1
  39. package/dist/index.d.ts +2 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +2 -0
  42. package/dist/index.js.map +1 -1
  43. package/dist/infra/isInfraEnvironmentSpec.d.ts.map +1 -1
  44. package/dist/infra/isInfraEnvironmentSpec.js +10 -12
  45. package/dist/infra/isInfraEnvironmentSpec.js.map +1 -1
  46. package/dist/infra/isInfraManifest.d.ts.map +1 -1
  47. package/dist/infra/isInfraManifest.js +14 -5
  48. package/dist/infra/isInfraManifest.js.map +1 -1
  49. package/dist/infra/isInfraWorkloadSpec.d.ts.map +1 -1
  50. package/dist/infra/isInfraWorkloadSpec.js +26 -20
  51. package/dist/infra/isInfraWorkloadSpec.js.map +1 -1
  52. package/dist/requirements.d.ts +5 -10
  53. package/dist/requirements.d.ts.map +1 -1
  54. package/dist/requirements.js.map +1 -1
  55. package/dist/serializable.d.ts +6 -0
  56. package/dist/serializable.d.ts.map +1 -0
  57. package/dist/serializable.js +14 -0
  58. package/dist/serializable.js.map +1 -0
  59. package/dist/state.d.ts +2 -3
  60. package/dist/state.d.ts.map +1 -1
  61. package/dist/state.js.map +1 -1
  62. package/dist/types/infraManifest.d.ts +14 -13
  63. package/dist/types/infraManifest.d.ts.map +1 -1
  64. package/dist/types/infraManifest.js.map +1 -1
  65. package/dist/types/infraWorkload.d.ts +11 -11
  66. package/dist/types/infraWorkload.d.ts.map +1 -1
  67. package/dist/types/infraWorkload.js.map +1 -1
  68. package/dist/types.d.ts +9 -8
  69. package/dist/types.d.ts.map +1 -1
  70. package/dist/types.js.map +1 -1
  71. package/package.json +2 -3
  72. package/src/appManifest/apis.ts +9 -6
  73. package/src/appManifest/bindings.ts +7 -1
  74. package/src/appManifest/data.ts +13 -4
  75. package/src/appManifest/isAppManifest.ts +3 -3
  76. package/src/appManifest/isManifestValue.ts +3 -16
  77. package/src/appManifest/screens.ts +21 -10
  78. package/src/appManifest/splashScreen.test.ts +3 -3
  79. package/src/appManifest/splashScreen.ts +8 -18
  80. package/src/appManifest.test.ts +21 -16
  81. package/src/bindings.test.ts +11 -8
  82. package/src/bindings.ts +2 -9
  83. package/src/collections.ts +8 -0
  84. package/src/contracts.test.ts +16 -13
  85. package/src/data/apis.test.ts +6 -4
  86. package/src/data/apis.ts +1 -1
  87. package/src/data/values.ts +3 -9
  88. package/src/deploy.test.ts +4 -4
  89. package/src/index.ts +2 -0
  90. package/src/infra/isInfraEnvironmentSpec.ts +16 -16
  91. package/src/infra/isInfraManifest.ts +17 -6
  92. package/src/infra/isInfraWorkloadSpec.ts +39 -24
  93. package/src/infra-published-port.test.ts +8 -8
  94. package/src/infra-workload-persistence.test.ts +4 -4
  95. package/src/infra-workload.test.ts +24 -22
  96. package/src/infra.test.ts +16 -20
  97. package/src/infraPersistence.test.ts +1 -1
  98. package/src/infraServices.test.ts +1 -1
  99. package/src/requirements.test.ts +2 -2
  100. package/src/requirements.ts +6 -12
  101. package/src/secrets.test.ts +1 -1
  102. package/src/serializable.ts +25 -0
  103. package/src/state.ts +3 -6
  104. package/src/types/infraManifest.ts +17 -13
  105. package/src/types/infraWorkload.ts +12 -11
  106. package/src/types.ts +11 -12
package/src/types.ts CHANGED
@@ -14,6 +14,7 @@ import type { MediaAssetReference, MediaManifest } from './media';
14
14
  import type { AppNavigatorManifest } from './navigator';
15
15
  import type { RepositoryManifest } from './repository';
16
16
  import type { ScreenRequirements } from './requirements';
17
+ import type { SerializableValue } from './serializable';
17
18
  import type { AppStateSpec } from './state';
18
19
  import type { ThemeGlobalTokenOverrides, ThemeRecipeOverrides } from './theme';
19
20
 
@@ -22,8 +23,10 @@ export interface ThemeModeConfig {
22
23
  harmony: ColorHarmony;
23
24
  }
24
25
 
26
+ export type ThemeId = string;
27
+
25
28
  export interface ThemeConfig {
26
- id: string;
29
+ id: ThemeId;
27
30
  name: string;
28
31
  light: ThemeModeConfig;
29
32
  dark: ThemeModeConfig;
@@ -33,6 +36,8 @@ export interface ThemeConfig {
33
36
  recipes?: ThemeRecipeOverrides;
34
37
  }
35
38
 
39
+ export type ThemeRegistry = Readonly<Record<ThemeId, ThemeConfig>>;
40
+
36
41
  export type ActionType =
37
42
  'navigate' | 'alert' | 'console' | 'toggleDarkMode' | 'setLanguage' | 'search' | 'filter';
38
43
 
@@ -93,13 +98,7 @@ export type Action =
93
98
  | SetLanguageAction
94
99
  | ToggleDarkModeAction;
95
100
 
96
- export type ManifestValue =
97
- | string
98
- | number
99
- | boolean
100
- | null
101
- | readonly ManifestValue[]
102
- | { readonly [key: string]: ManifestValue };
101
+ export type ManifestValue = SerializableValue;
103
102
 
104
103
  export type ComponentEventPayloadValue = ManifestValue;
105
104
 
@@ -271,12 +270,12 @@ export interface AppManifest {
271
270
  slug: string;
272
271
  version: string;
273
272
  category: AppCategory;
274
- themeId: string;
273
+ themeId: ThemeId;
275
274
  created?: string;
276
275
  updated?: string;
277
276
  };
278
- themes: ThemeConfig[];
279
- activeThemeId: string;
277
+ themes: ThemeRegistry;
278
+ activeThemeId: ThemeId;
280
279
  activeThemeMode?: 'dark' | 'light';
281
280
  splashScreen?: SplashScreenSpec;
282
281
  /** Studio-managed authoring media. Runtime/user uploads are intentionally separate. */
@@ -287,7 +286,7 @@ export interface AppManifest {
287
286
  state?: AppStateSpec;
288
287
  infra: InfraManifest;
289
288
  navigator: AppNavigatorManifest;
290
- screens: Record<string, ScreenSpec>;
289
+ screens: Readonly<Record<string, ScreenSpec>>;
291
290
  dataSources?: DataSourceRegistry;
292
291
  dataBindings?: ComponentDataBindingRegistry;
293
292
  repository?: RepositoryManifest;