voltra 2.2.0 → 2.3.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 (130) hide show
  1. package/build/cjs/apply/index.js +4 -1
  2. package/build/cjs/apply/index.js.map +1 -1
  3. package/build/cjs/config/normalize.js +131 -29
  4. package/build/cjs/config/normalize.js.map +1 -1
  5. package/build/cjs/config/perConfiguration.js +29 -0
  6. package/build/cjs/config/perConfiguration.js.map +1 -0
  7. package/build/cjs/config/serverUpdate.js +119 -0
  8. package/build/cjs/config/serverUpdate.js.map +1 -0
  9. package/build/cjs/config/widgetKind.js +25 -0
  10. package/build/cjs/config/widgetKind.js.map +1 -0
  11. package/build/cjs/dependencies/platformPackages.js +9 -0
  12. package/build/cjs/dependencies/platformPackages.js.map +1 -1
  13. package/build/cjs/discovery/ios.js +50 -31
  14. package/build/cjs/discovery/ios.js.map +1 -1
  15. package/build/cjs/index.js +6 -2
  16. package/build/cjs/index.js.map +1 -1
  17. package/build/cjs/platforms/android/generated.js +98 -40
  18. package/build/cjs/platforms/android/generated.js.map +1 -1
  19. package/build/cjs/platforms/android/widgetSizing.js +89 -0
  20. package/build/cjs/platforms/android/widgetSizing.js.map +1 -0
  21. package/build/cjs/platforms/ios/apply.js +21 -11
  22. package/build/cjs/platforms/ios/apply.js.map +1 -1
  23. package/build/cjs/platforms/ios/buildConfigurationValues.js +73 -0
  24. package/build/cjs/platforms/ios/buildConfigurationValues.js.map +1 -0
  25. package/build/cjs/platforms/ios/entitlements.js +34 -19
  26. package/build/cjs/platforms/ios/entitlements.js.map +1 -1
  27. package/build/cjs/platforms/ios/generated.js +79 -32
  28. package/build/cjs/platforms/ios/generated.js.map +1 -1
  29. package/build/cjs/platforms/ios/plist.js +22 -4
  30. package/build/cjs/platforms/ios/plist.js.map +1 -1
  31. package/build/cjs/platforms/ios/targetName.js.map +1 -1
  32. package/build/cjs/platforms/ios/xcodeTarget.js +166 -23
  33. package/build/cjs/platforms/ios/xcodeTarget.js.map +1 -1
  34. package/build/cjs/platforms/shared/widgetModule.js +18 -145
  35. package/build/cjs/platforms/shared/widgetModule.js.map +1 -1
  36. package/build/esm/apply/index.js +4 -1
  37. package/build/esm/apply/index.js.map +1 -1
  38. package/build/esm/config/normalize.js +131 -29
  39. package/build/esm/config/normalize.js.map +1 -1
  40. package/build/esm/config/perConfiguration.js +25 -0
  41. package/build/esm/config/perConfiguration.js.map +1 -0
  42. package/build/esm/config/serverUpdate.js +112 -0
  43. package/build/esm/config/serverUpdate.js.map +1 -0
  44. package/build/esm/config/widgetKind.js +20 -0
  45. package/build/esm/config/widgetKind.js.map +1 -0
  46. package/build/esm/dependencies/platformPackages.js +8 -0
  47. package/build/esm/dependencies/platformPackages.js.map +1 -1
  48. package/build/esm/discovery/ios.js +50 -31
  49. package/build/esm/discovery/ios.js.map +1 -1
  50. package/build/esm/index.js +1 -0
  51. package/build/esm/index.js.map +1 -1
  52. package/build/esm/platforms/android/generated.js +100 -42
  53. package/build/esm/platforms/android/generated.js.map +1 -1
  54. package/build/esm/platforms/android/widgetSizing.js +85 -0
  55. package/build/esm/platforms/android/widgetSizing.js.map +1 -0
  56. package/build/esm/platforms/ios/apply.js +21 -11
  57. package/build/esm/platforms/ios/apply.js.map +1 -1
  58. package/build/esm/platforms/ios/buildConfigurationValues.js +68 -0
  59. package/build/esm/platforms/ios/buildConfigurationValues.js.map +1 -0
  60. package/build/esm/platforms/ios/entitlements.js +34 -19
  61. package/build/esm/platforms/ios/entitlements.js.map +1 -1
  62. package/build/esm/platforms/ios/generated.js +80 -33
  63. package/build/esm/platforms/ios/generated.js.map +1 -1
  64. package/build/esm/platforms/ios/plist.js +22 -4
  65. package/build/esm/platforms/ios/plist.js.map +1 -1
  66. package/build/esm/platforms/ios/targetName.js.map +1 -1
  67. package/build/esm/platforms/ios/xcodeTarget.js +166 -23
  68. package/build/esm/platforms/ios/xcodeTarget.js.map +1 -1
  69. package/build/esm/platforms/shared/widgetModule.js +16 -107
  70. package/build/esm/platforms/shared/widgetModule.js.map +1 -1
  71. package/build/types/apply/index.d.ts.map +1 -1
  72. package/build/types/config/normalize.d.ts.map +1 -1
  73. package/build/types/config/perConfiguration.d.ts +18 -0
  74. package/build/types/config/perConfiguration.d.ts.map +1 -0
  75. package/build/types/config/serverUpdate.d.ts +80 -0
  76. package/build/types/config/serverUpdate.d.ts.map +1 -0
  77. package/build/types/config/types.d.ts +91 -30
  78. package/build/types/config/types.d.ts.map +1 -1
  79. package/build/types/config/widgetKind.d.ts +11 -0
  80. package/build/types/config/widgetKind.d.ts.map +1 -0
  81. package/build/types/dependencies/platformPackages.d.ts +1 -0
  82. package/build/types/dependencies/platformPackages.d.ts.map +1 -1
  83. package/build/types/discovery/ios.d.ts +10 -0
  84. package/build/types/discovery/ios.d.ts.map +1 -1
  85. package/build/types/index.d.ts +3 -1
  86. package/build/types/index.d.ts.map +1 -1
  87. package/build/types/platforms/android/generated.d.ts.map +1 -1
  88. package/build/types/platforms/android/widgetSizing.d.ts +50 -0
  89. package/build/types/platforms/android/widgetSizing.d.ts.map +1 -0
  90. package/build/types/platforms/ios/apply.d.ts.map +1 -1
  91. package/build/types/platforms/ios/buildConfigurationValues.d.ts +33 -0
  92. package/build/types/platforms/ios/buildConfigurationValues.d.ts.map +1 -0
  93. package/build/types/platforms/ios/entitlements.d.ts +4 -4
  94. package/build/types/platforms/ios/entitlements.d.ts.map +1 -1
  95. package/build/types/platforms/ios/generated.d.ts +14 -2
  96. package/build/types/platforms/ios/generated.d.ts.map +1 -1
  97. package/build/types/platforms/ios/plist.d.ts +3 -3
  98. package/build/types/platforms/ios/plist.d.ts.map +1 -1
  99. package/build/types/platforms/ios/podfile.d.ts +2 -2
  100. package/build/types/platforms/ios/podfile.d.ts.map +1 -1
  101. package/build/types/platforms/ios/targetName.d.ts +2 -2
  102. package/build/types/platforms/ios/targetName.d.ts.map +1 -1
  103. package/build/types/platforms/ios/xcodeTarget.d.ts +4 -2
  104. package/build/types/platforms/ios/xcodeTarget.d.ts.map +1 -1
  105. package/build/types/platforms/shared/widgetModule.d.ts +12 -3
  106. package/build/types/platforms/shared/widgetModule.d.ts.map +1 -1
  107. package/package.json +5 -5
  108. package/src/apply/index.ts +4 -1
  109. package/src/config/normalize.node.test.ts +61 -0
  110. package/src/config/normalize.ts +188 -44
  111. package/src/config/perConfiguration.ts +49 -0
  112. package/src/config/serverUpdate.ts +160 -0
  113. package/src/config/types.ts +97 -30
  114. package/src/config/widgetKind.node.test.ts +27 -0
  115. package/src/config/widgetKind.ts +27 -0
  116. package/src/dependencies/platformPackages.ts +11 -0
  117. package/src/discovery/ios.ts +104 -60
  118. package/src/index.ts +8 -0
  119. package/src/platforms/android/generated.ts +144 -47
  120. package/src/platforms/android/widgetSizing.ts +112 -0
  121. package/src/platforms/ios/apply.ts +21 -11
  122. package/src/platforms/ios/buildConfigurationValues.ts +105 -0
  123. package/src/platforms/ios/entitlements.ts +55 -31
  124. package/src/platforms/ios/generated.node.test.ts +61 -0
  125. package/src/platforms/ios/generated.ts +137 -38
  126. package/src/platforms/ios/plist.ts +36 -7
  127. package/src/platforms/ios/podfile.ts +2 -2
  128. package/src/platforms/ios/targetName.ts +2 -2
  129. package/src/platforms/ios/xcodeTarget.ts +248 -43
  130. package/src/platforms/shared/widgetModule.ts +22 -140
@@ -1,6 +1,7 @@
1
1
  import fs from 'node:fs/promises';
2
2
  import path from 'node:path';
3
3
  import { VoltraCliError } from '../reporting/summary';
4
+ import { getValuesByBuildConfiguration, isPerConfigurationMap } from '../config/perConfiguration';
4
5
  const PBX_NATIVE_TARGET_SECTION = 'PBXNativeTarget';
5
6
  const XC_BUILD_CONFIGURATION_SECTION = 'XCBuildConfiguration';
6
7
  const XC_CONFIGURATION_LIST_SECTION = 'XCConfigurationList';
@@ -21,8 +22,8 @@ export async function discoverIOSProject(projectRoot, config) {
21
22
  const mainTargetCandidates = getMainTargetCandidates(parsedProject.targets);
22
23
  const mainTarget = resolveMainTarget(mainTargetCandidates, config.mainTargetName, pbxprojPath);
23
24
  const mainTargetBuildConfigurations = getTargetBuildConfigurations(parsedProject, mainTarget, pbxprojPath);
24
- const infoPlistPath = await resolveInfoPlistPath(iosRoot, config, mainTarget, mainTargetBuildConfigurations);
25
- const entitlementsPath = await resolveEntitlementsPath(iosRoot, config, mainTarget, mainTargetBuildConfigurations);
25
+ const infoPlistPaths = await resolveInfoPlistPaths(iosRoot, config, mainTarget, mainTargetBuildConfigurations);
26
+ const { entitlementsPaths, entitlementsPathByConfiguration } = await resolveEntitlements(iosRoot, config, mainTarget, mainTargetBuildConfigurations);
26
27
  return {
27
28
  iosRoot,
28
29
  xcodeprojPath,
@@ -30,8 +31,12 @@ export async function discoverIOSProject(projectRoot, config) {
30
31
  podfilePath,
31
32
  mainTargetName: mainTarget.name,
32
33
  mainTargetCandidates: mainTargetCandidates.map((target) => target.name).sort(),
33
- infoPlistPath,
34
- entitlementsPath,
34
+ buildConfigurationNames: mainTargetBuildConfigurations.map((configuration) => configuration.name),
35
+ infoPlistPath: infoPlistPaths[0],
36
+ infoPlistPaths,
37
+ entitlementsPath: entitlementsPaths[0],
38
+ entitlementsPaths,
39
+ entitlementsPathByConfiguration,
35
40
  };
36
41
  }
37
42
  async function resolveIOSRoot(projectRoot, config) {
@@ -200,29 +205,46 @@ function getTargetBuildConfigurations(project, target, pbxprojPath) {
200
205
  ? [defaultConfiguration, ...buildConfigurations.filter((configuration) => configuration !== defaultConfiguration)]
201
206
  : buildConfigurations;
202
207
  }
203
- async function resolveInfoPlistPath(iosRoot, config, target, buildConfigurations) {
204
- const infoPlistPath = config.infoPlistPath ??
205
- resolveConsistentBuildSettingPath(iosRoot, target, buildConfigurations, 'INFOPLIST_FILE', (configuration) => configuration.buildSettings.infoPlistFile);
206
- if (!infoPlistPath) {
208
+ async function resolveInfoPlistPaths(iosRoot, config, target, buildConfigurations) {
209
+ const discoveredPaths = config.infoPlistPath
210
+ ? new Map()
211
+ : resolveBuildSettingPaths(iosRoot, target, buildConfigurations, (configuration) => configuration.buildSettings.infoPlistFile);
212
+ const infoPlistPaths = config.infoPlistPath ? [config.infoPlistPath] : [...discoveredPaths.keys()];
213
+ if (infoPlistPaths.length === 0) {
207
214
  throw new IOSProjectDiscoveryError(`Could not determine Info.plist for target '${target.name}'. Set ios.project.infoPlistPath explicitly.`);
208
215
  }
209
- await ensureFile(infoPlistPath, config.infoPlistPath
210
- ? `Configured Info.plist does not exist: ${infoPlistPath}`
211
- : `Discovered Info.plist does not exist: ${infoPlistPath}`);
212
- return infoPlistPath;
216
+ for (const infoPlistPath of infoPlistPaths) {
217
+ await ensureFile(infoPlistPath, config.infoPlistPath
218
+ ? `Configured Info.plist does not exist: ${infoPlistPath}`
219
+ : `Discovered Info.plist does not exist: ${infoPlistPath}${describeReferencingBuildConfigurations(discoveredPaths, infoPlistPath)}. Set ios.project.infoPlistPath to override discovery.`);
220
+ }
221
+ return infoPlistPaths;
213
222
  }
214
- async function resolveEntitlementsPath(iosRoot, config, target, buildConfigurations) {
215
- const entitlementsPath = config.entitlementsPath ??
216
- resolveConsistentBuildSettingPath(iosRoot, target, buildConfigurations, 'CODE_SIGN_ENTITLEMENTS', (configuration) => configuration.buildSettings.codeSignEntitlements);
217
- if (!entitlementsPath) {
218
- return undefined;
223
+ async function resolveEntitlements(iosRoot, config, target, buildConfigurations) {
224
+ const entitlementsPathByConfiguration = isPerConfigurationMap(config.entitlementsPath)
225
+ ? getValuesByBuildConfiguration(config.entitlementsPath, buildConfigurations.map((configuration) => configuration.name), 'ios.project.entitlementsPath', (message) => new IOSProjectDiscoveryError(message))
226
+ : undefined;
227
+ const discoveredPaths = config.entitlementsPath
228
+ ? new Map()
229
+ : resolveBuildSettingPaths(iosRoot, target, buildConfigurations, (configuration) => configuration.buildSettings.codeSignEntitlements);
230
+ const entitlementsPaths = entitlementsPathByConfiguration
231
+ ? [...new Set(entitlementsPathByConfiguration.values())]
232
+ : typeof config.entitlementsPath === 'string'
233
+ ? [config.entitlementsPath]
234
+ : [...discoveredPaths.keys()];
235
+ for (const entitlementsPath of entitlementsPaths) {
236
+ await ensureFile(entitlementsPath, config.entitlementsPath
237
+ ? `Configured entitlements file does not exist: ${entitlementsPath}`
238
+ : `Discovered entitlements file does not exist: ${entitlementsPath}${describeReferencingBuildConfigurations(discoveredPaths, entitlementsPath)}. Set ios.project.entitlementsPath to override discovery.`);
219
239
  }
220
- await ensureFile(entitlementsPath, config.entitlementsPath
221
- ? `Configured entitlements file does not exist: ${entitlementsPath}`
222
- : `Discovered entitlements file does not exist: ${entitlementsPath}`);
223
- return entitlementsPath;
240
+ return { entitlementsPaths, entitlementsPathByConfiguration };
224
241
  }
225
- function resolveConsistentBuildSettingPath(iosRoot, target, buildConfigurations, settingName, getSettingValue) {
242
+ /**
243
+ * Collects the distinct paths a build setting resolves to across the target's build configurations.
244
+ * Apps that ship several environments point each configuration at its own file, so divergence is
245
+ * expected rather than an error.
246
+ */
247
+ function resolveBuildSettingPaths(iosRoot, target, buildConfigurations, getSettingValue) {
226
248
  const resolvedPaths = new Map();
227
249
  for (const configuration of buildConfigurations) {
228
250
  const settingValue = getSettingValue(configuration);
@@ -234,15 +256,12 @@ function resolveConsistentBuildSettingPath(iosRoot, target, buildConfigurations,
234
256
  configurationNames.push(configuration.name);
235
257
  resolvedPaths.set(resolvedPath, configurationNames);
236
258
  }
237
- if (resolvedPaths.size === 0) {
238
- return undefined;
239
- }
240
- if (resolvedPaths.size > 1) {
241
- throw new IOSProjectDiscoveryError(`Target '${target.name}' resolves ${settingName} to multiple paths: ${[...resolvedPaths.entries()]
242
- .map(([resolvedPath, configurationNames]) => `${resolvedPath} (${configurationNames.join(', ')})`)
243
- .join('; ')}. Set ios.project.${settingName === 'INFOPLIST_FILE' ? 'infoPlistPath' : 'entitlementsPath'} explicitly.`);
244
- }
245
- return [...resolvedPaths.keys()][0];
259
+ return resolvedPaths;
260
+ }
261
+ /** Names the build configurations that reference a path, so a missing file can be traced back. */
262
+ function describeReferencingBuildConfigurations(pathsByBuildConfiguration, filePath) {
263
+ const configurationNames = pathsByBuildConfiguration.get(filePath);
264
+ return configurationNames?.length ? ` (referenced by ${configurationNames.join(', ')})` : '';
246
265
  }
247
266
  function resolveXcodePathValue(value, iosRoot, target, configuration) {
248
267
  const substitutions = new Map([
@@ -1 +1 @@
1
- {"version":3,"file":"ios.js","sourceRoot":"","sources":["../../../src/discovery/ios.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ios.js","sourceRoot":"","sources":["../../../src/discovery/ios.ts"],"names":[],"mappings":"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"}
@@ -69,6 +69,7 @@ export { IOSGeneratedFilesError, generateIOSFiles } from './platforms/ios/genera
69
69
  export { resolveIOSWidgetTargetName } from './platforms/ios/targetName';
70
70
  export { IOSWidgetTargetMutationError, ensureIOSWidgetTarget } from './platforms/ios/xcodeTarget';
71
71
  export { applyIOSPlatform, createIOSPreflightRunner } from './platforms/ios/apply';
72
+ export { IOSBuildConfigurationValueError, VOLTRA_BUILD_SETTING_PREFIX, resolveIOSBuildConfigurationValues, } from './platforms/ios/buildConfigurationValues';
72
73
  export { IOSEntitlementsMutationError, ensureEntitlements } from './platforms/ios/entitlements';
73
74
  export { IOSInfoPlistMutationError, ensureInfoPlist } from './platforms/ios/plist';
74
75
  export { IOSPodfileMutationError, ensurePodfileBlock } from './platforms/ios/podfile';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,12 @@ import fsPromises from 'node:fs/promises';
3
3
  import path from 'node:path';
4
4
  import { createRequire } from 'node:module';
5
5
  import { vdConvert } from 'vd-tool';
6
- import { requirePlatformPackage } from '../../dependencies/platformPackages';
6
+ import { getPlatformClientPackageVersion, requirePlatformPackage } from '../../dependencies/platformPackages';
7
7
  import { ensureDirectory, pathExists, readTextFile, writeTextFile } from '../../fs/readWrite';
8
8
  import { normalizeRelativePath, toRelativePath } from '../../fs/path';
9
9
  import { VoltraCliError } from '../../reporting/summary';
10
- import { DYNAMIC_WIDGET_BUILD_INFO, evaluateWidgetModuleExports } from '../shared/widgetModule';
10
+ import { createDynamicWidgetBuildInfo, createGeneratedWidgetModuleLoader } from '../shared/widgetModule';
11
+ import { androidWidgetSizingAttributes, androidWidgetSizingWarnings } from './widgetSizing';
11
12
  const VALID_DRAWABLE_EXTENSIONS = new Set(['.png', '.jpg', '.jpeg', '.gif', '.webp', '.xml', '.svg']);
12
13
  const FONT_EXTENSIONS = new Set(['.ttf', '.otf', '.woff', '.woff2']);
13
14
  const MAX_IMAGE_SIZE_BYTES = 4096;
@@ -16,6 +17,7 @@ const LOCALIZED_INITIAL_STATE_KEY = '__voltraLocales';
16
17
  const DEFAULT_WIDGET_LOCALE_QUALIFIER = 'en';
17
18
  const ANDROID_DYNAMIC_WIDGET_MANIFEST_PATH = path.join('.voltra', 'manifest.android.json');
18
19
  const ANDROID_WIDGET_CONFIG_DEFAULTS_PATH = path.join('assets', 'voltra', 'widget_config_defaults.json');
20
+ const ANDROID_WIDGET_SERVER_DEFAULTS_PATH = path.join('assets', 'voltra', 'widget_server_defaults.json');
19
21
  export class AndroidGeneratedFilesError extends VoltraCliError {
20
22
  constructor(message) {
21
23
  super(message, 'VOLTRA_ANDROID_GENERATED_FILES_FAILED');
@@ -27,11 +29,13 @@ function createAndroidGeneratedFilesError(message) {
27
29
  }
28
30
  export async function generateAndroidFiles(options) {
29
31
  const { projectRoot, android, discovery } = options;
32
+ const voltraVersion = getPlatformClientPackageVersion(projectRoot, 'android');
30
33
  const resourceRoot = path.join(discovery.appModuleRoot, 'src', 'main');
31
- const detectedWidgets = detectClientRenderedWidgets(projectRoot, android.widgets);
32
34
  const changes = [];
33
35
  const warnings = [];
34
36
  const generatedFiles = new Set();
37
+ const widgetModuleLoader = createGeneratedWidgetModuleLoader(projectRoot, 'android', createAndroidGeneratedFilesError, (message) => warnings.push(message));
38
+ const detectedWidgets = detectClientRenderedWidgets(projectRoot, widgetModuleLoader, android.widgets);
35
39
  mergeSingleResult(await writeGeneratedTextFile(projectRoot, path.join(projectRoot, ANDROID_DYNAMIC_WIDGET_MANIFEST_PATH), `${JSON.stringify(createDynamicWidgetsManifest(detectedWidgets), null, 2)}\n`), changes, generatedFiles);
36
40
  const receiverFiles = await generateWidgetReceivers(projectRoot, discovery, detectedWidgets);
37
41
  mergeResult(receiverFiles, changes, warnings, generatedFiles);
@@ -41,12 +45,16 @@ export async function generateAndroidFiles(options) {
41
45
  mergeResult(xmlFiles, changes, warnings, generatedFiles);
42
46
  const fontFiles = await copyAndroidFonts(projectRoot, resourceRoot, android.fonts);
43
47
  mergeResult(fontFiles, changes, warnings, generatedFiles);
44
- const initialStateFiles = await generateAndroidInitialStates(projectRoot, resourceRoot, detectedWidgets);
48
+ const initialStateFiles = await generateAndroidInitialStates(projectRoot, widgetModuleLoader, resourceRoot, detectedWidgets, voltraVersion);
45
49
  mergeResult(initialStateFiles, changes, warnings, generatedFiles);
46
50
  const configDefaultsResult = await generateAndroidConfigDefaults(projectRoot, resourceRoot, detectedWidgets);
47
51
  if (configDefaultsResult) {
48
52
  mergeSingleResult(configDefaultsResult, changes, generatedFiles);
49
53
  }
54
+ const serverDefaultsResult = await generateAndroidServerDefaults(projectRoot, resourceRoot, detectedWidgets);
55
+ if (serverDefaultsResult) {
56
+ mergeSingleResult(serverDefaultsResult, changes, generatedFiles);
57
+ }
50
58
  return {
51
59
  changes,
52
60
  files: [...generatedFiles].sort(),
@@ -107,6 +115,7 @@ async function generateAndroidXmlFiles(projectRoot, resourceRoot, widgets) {
107
115
  const widgetInfoResult = await writeGeneratedTextFile(projectRoot, widgetInfoPath, widgetInfoContent);
108
116
  pushChange(changes, widgetInfoResult.change);
109
117
  generatedFiles.add(widgetInfoResult.relativePath);
118
+ warnings.push(...androidWidgetSizingWarnings(widget, widget.id));
110
119
  }
111
120
  return {
112
121
  changes,
@@ -236,11 +245,11 @@ async function copyAndroidFonts(projectRoot, resourceRoot, fonts) {
236
245
  warnings,
237
246
  };
238
247
  }
239
- async function generateAndroidInitialStates(projectRoot, resourceRoot, widgets) {
248
+ async function generateAndroidInitialStates(projectRoot, loader, resourceRoot, widgets, voltraVersion) {
240
249
  const serverWidgets = widgets.filter((widget) => !widget.clientRendered);
241
250
  const prerenderableServerWidgets = serverWidgets.filter((widget) => widget.initialStatePath);
242
- const serverStates = await prerenderWidgetStates(projectRoot, prerenderableServerWidgets, loadAndroidWidgetRenderer(projectRoot));
243
- const clientStates = await prerenderClientRenderedAndroidWidgets(projectRoot, widgets);
251
+ const serverStates = await prerenderWidgetStates(loader, prerenderableServerWidgets, loadAndroidWidgetRenderer(projectRoot));
252
+ const clientStates = await prerenderClientRenderedAndroidWidgets(projectRoot, loader, widgets, voltraVersion);
244
253
  const prerenderedStates = new Map([...serverStates, ...clientStates]);
245
254
  if (prerenderedStates.size === 0) {
246
255
  return {
@@ -258,7 +267,7 @@ async function generateAndroidInitialStates(projectRoot, resourceRoot, widgets)
258
267
  warnings: [],
259
268
  };
260
269
  }
261
- async function prerenderWidgetStates(projectRoot, widgets, renderer) {
270
+ async function prerenderWidgetStates(loader, widgets, renderer) {
262
271
  const prerenderedStates = new Map();
263
272
  for (const widget of widgets) {
264
273
  const initialStatePath = widget.initialStatePath;
@@ -273,16 +282,15 @@ async function prerenderWidgetStates(projectRoot, widgets, renderer) {
273
282
  if (!(await pathExists(modulePath))) {
274
283
  throw new AndroidGeneratedFilesError(`Initial state file not found for widget '${widget.id}' at ${modulePath}`);
275
284
  }
276
- const widgetVariants = evaluateLegacyWidgetModule(projectRoot, modulePath);
285
+ const widgetVariants = evaluateLegacyWidgetModule(loader, modulePath);
277
286
  localeStates.set(localeKey, renderer(widgetVariants));
278
287
  }
279
288
  prerenderedStates.set(widget.id, localeStates);
280
289
  }
281
290
  return prerenderedStates;
282
291
  }
283
- function evaluateLegacyWidgetModule(projectRoot, filePath) {
284
- const exports = evaluateWidgetModuleExports(projectRoot, filePath, createAndroidGeneratedFilesError);
285
- const widgetVariants = exports.default ?? exports;
292
+ function evaluateLegacyWidgetModule(loader, filePath) {
293
+ const widgetVariants = loader.loadDefaultExport(filePath);
286
294
  if (!widgetVariants || typeof widgetVariants !== 'object') {
287
295
  throw new AndroidGeneratedFilesError(`Widget file must export widget variants: ${filePath}`);
288
296
  }
@@ -314,10 +322,10 @@ function createDynamicWidgetsManifest(widgets) {
314
322
  })),
315
323
  };
316
324
  }
317
- function detectClientRenderedWidgets(projectRoot, widgets) {
318
- return widgets.map((widget) => detectSingleWidget(projectRoot, widget));
325
+ function detectClientRenderedWidgets(projectRoot, loader, widgets) {
326
+ return widgets.map((widget) => detectSingleWidget(projectRoot, loader, widget));
319
327
  }
320
- function detectSingleWidget(projectRoot, widget) {
328
+ function detectSingleWidget(projectRoot, loader, widget) {
321
329
  if (!widget.entry) {
322
330
  return {
323
331
  ...widget,
@@ -328,7 +336,7 @@ function detectSingleWidget(projectRoot, widget) {
328
336
  if (!fs.existsSync(clientSourcePath) || !fs.statSync(clientSourcePath).isFile()) {
329
337
  throw createAndroidGeneratedFilesError(`[voltra] Dynamic Widget "${widget.id}" entry not found at ${widget.entry}`);
330
338
  }
331
- const widgetModule = safelyEvaluateDynamicWidget(projectRoot, widget.id, widget.entry, clientSourcePath);
339
+ const widgetModule = safelyEvaluateDynamicWidget(loader, widget.id, widget.entry, clientSourcePath);
332
340
  const widgetFn = readDynamicWidgetExport(widget.id, widget.entry, widgetModule);
333
341
  if (typeof widgetFn !== 'function') {
334
342
  throw createAndroidGeneratedFilesError(`[voltra] Dynamic Widget "${widget.id}" at ${widget.entry} must default-export a function or component.`);
@@ -340,7 +348,7 @@ function detectSingleWidget(projectRoot, widget) {
340
348
  clientSourcePath,
341
349
  };
342
350
  }
343
- async function prerenderClientRenderedAndroidWidgets(projectRoot, widgets) {
351
+ async function prerenderClientRenderedAndroidWidgets(projectRoot, loader, widgets, voltraVersion) {
344
352
  const clientWidgets = widgets.filter((widget) => widget.clientRendered);
345
353
  if (clientWidgets.length === 0) {
346
354
  return new Map();
@@ -352,12 +360,12 @@ async function prerenderClientRenderedAndroidWidgets(projectRoot, widgets) {
352
360
  colorScheme: 'light',
353
361
  locale: 'en-US',
354
362
  configuration: undefined,
355
- build: DYNAMIC_WIDGET_BUILD_INFO,
363
+ build: createDynamicWidgetBuildInfo(voltraVersion),
356
364
  };
357
365
  const prerenderedStates = new Map();
358
366
  for (const widget of clientWidgets) {
359
367
  try {
360
- const widgetModule = safelyEvaluateDynamicWidget(projectRoot, widget.id, widget.entry, widget.clientSourcePath);
368
+ const widgetModule = safelyEvaluateDynamicWidget(loader, widget.id, widget.entry, widget.clientSourcePath);
361
369
  const widgetFn = readDynamicWidgetExport(widget.id, widget.entry, widgetModule);
362
370
  const element = widgetFn({}, placeholderEnv);
363
371
  prerenderedStates.set(widget.id, new Map([[DEFAULT_INITIAL_STATE_LOCALE, JSON.stringify(renderer(element))]]));
@@ -371,9 +379,9 @@ async function prerenderClientRenderedAndroidWidgets(projectRoot, widgets) {
371
379
  }
372
380
  return prerenderedStates;
373
381
  }
374
- function safelyEvaluateDynamicWidget(projectRoot, widgetId, widgetEntry, clientSourcePath) {
382
+ function safelyEvaluateDynamicWidget(loader, widgetId, widgetEntry, clientSourcePath) {
375
383
  try {
376
- return evaluateWidgetModuleExports(projectRoot, clientSourcePath, createAndroidGeneratedFilesError);
384
+ return loader.load(clientSourcePath);
377
385
  }
378
386
  catch (error) {
379
387
  if (error instanceof AndroidGeneratedFilesError) {
@@ -399,6 +407,38 @@ async function generateAndroidConfigDefaults(projectRoot, resourceRoot, widgets)
399
407
  }
400
408
  return writeGeneratedTextFile(projectRoot, path.join(resourceRoot, ANDROID_WIDGET_CONFIG_DEFAULTS_PATH), `${JSON.stringify(defaults, null, 2)}\n`);
401
409
  }
410
+ /**
411
+ * Emits the build-time `serverUpdate` defaults the runtime settings resolver reads as its lowest
412
+ * layer.
413
+ *
414
+ * These used to be Kotlin literals inside each generated receiver. They live in an asset now
415
+ * because the app can override the URL and the interval with `setWidgetServerUpdate`, and a
416
+ * receiver compiled at build time cannot be asked what the interval is today.
417
+ *
418
+ * A widget id present in this file is server-driven. `url` is omitted when app.json declared
419
+ * `serverUpdate` without one, which means the app supplies it at runtime.
420
+ */
421
+ async function generateAndroidServerDefaults(projectRoot, resourceRoot, widgets) {
422
+ const defaults = createWidgetServerDefaults(widgets);
423
+ if (Object.keys(defaults).length === 0) {
424
+ return undefined;
425
+ }
426
+ return writeGeneratedTextFile(projectRoot, path.join(resourceRoot, ANDROID_WIDGET_SERVER_DEFAULTS_PATH), `${JSON.stringify(defaults, null, 2)}\n`);
427
+ }
428
+ function createWidgetServerDefaults(widgets) {
429
+ const defaults = {};
430
+ for (const widget of widgets) {
431
+ if (!widget.serverUpdate) {
432
+ continue;
433
+ }
434
+ defaults[widget.id] = {
435
+ ...(widget.serverUpdate.url !== undefined ? { url: widget.serverUpdate.url } : {}),
436
+ intervalMinutes: widget.serverUpdate.intervalMinutes,
437
+ refresh: widget.serverUpdate.refresh,
438
+ };
439
+ }
440
+ return defaults;
441
+ }
402
442
  function createWidgetConfigDefaults(widgets) {
403
443
  const defaults = {};
404
444
  for (const widget of widgets) {
@@ -580,14 +620,39 @@ async function getLargeImageWarning(imagePath, fileName) {
580
620
  }
581
621
  return `Image '${fileName}' is ${stat.size} bytes. Large Android widget images may not display correctly.`;
582
622
  }
623
+ /**
624
+ * `entry` picks the render engine and `serverUpdate` picks where the data comes from, so the two
625
+ * keys together select one of four base classes. Runtime code never asks "is this server-driven?" —
626
+ * the answer is baked in here, once, at generate time.
627
+ */
583
628
  function generateWidgetReceiverContent(widget, packageName) {
584
629
  const className = `VoltraWidget_${widget.id}Receiver`;
585
630
  const labelForComment = widgetLabelEnglish(widget.displayName);
631
+ // A widget with an entry and a serverUpdate renders bundled JS from props fetched in the
632
+ // background. The scheduling lives in the base class, so the generated receiver stays a name and
633
+ // an id — the URL and the interval come from widget_server_defaults.json at runtime, where
634
+ // setWidgetServerUpdate can override them.
635
+ if (widget.clientRendered && widget.serverUpdate) {
636
+ return [
637
+ `package ${packageName}.widget`,
638
+ '',
639
+ 'import voltra.dynamicwidget.serverupdate.VoltraServerDrivenClientWidgetReceiver',
640
+ '',
641
+ '/**',
642
+ ` * Auto-generated server-driven Dynamic Widget receiver for ${labelForComment}`,
643
+ ` * Widget ID: ${widget.id}`,
644
+ ' */',
645
+ `class ${className} : VoltraServerDrivenClientWidgetReceiver() {`,
646
+ ` override val widgetId: String = "${widget.id}"`,
647
+ '}',
648
+ '',
649
+ ].join('\n');
650
+ }
586
651
  if (widget.clientRendered) {
587
652
  return [
588
653
  `package ${packageName}.widget`,
589
654
  '',
590
- 'import voltra.widget.VoltraClientWidgetReceiver',
655
+ 'import voltra.dynamicwidget.VoltraClientWidgetReceiver',
591
656
  '',
592
657
  '/**',
593
658
  ` * Auto-generated Dynamic Widget receiver for ${labelForComment}`,
@@ -600,34 +665,30 @@ function generateWidgetReceiverContent(widget, packageName) {
600
665
  ].join('\n');
601
666
  }
602
667
  if (widget.serverUpdate) {
603
- const refreshEnabled = widget.serverUpdate.refresh === true;
604
668
  return [
605
669
  `package ${packageName}.widget`,
606
670
  '',
607
671
  'import android.appwidget.AppWidgetManager',
608
672
  'import android.content.Context',
609
- 'import voltra.widget.VoltraWidgetReceiver',
610
- 'import voltra.widget.VoltraWidgetUpdateScheduler',
673
+ 'import kotlinx.coroutines.runBlocking',
674
+ 'import voltra.widget.payload.VoltraPayloadWidgetReceiver',
675
+ 'import voltra.widget.payload.VoltraWidgetUpdateScheduler',
611
676
  '',
612
677
  '/**',
613
678
  ` * Auto-generated widget receiver for ${labelForComment}`,
614
679
  ` * Widget ID: ${widget.id}`,
615
- ` * Server Update: ${widget.serverUpdate.url} (every ${widget.serverUpdate.intervalMinutes} minutes)`,
616
- ` * Refresh Button: ${String(refreshEnabled)}`,
617
680
  ' */',
618
- `class ${className} : VoltraWidgetReceiver() {`,
681
+ `class ${className} : VoltraPayloadWidgetReceiver() {`,
619
682
  ` override val widgetId: String = "${widget.id}"`,
620
683
  '',
621
684
  ' override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) {',
622
685
  ' super.onUpdate(context, appWidgetManager, appWidgetIds)',
623
686
  '',
624
- ' VoltraWidgetUpdateScheduler.schedulePeriodicUpdate(',
625
- ' context = context,',
626
- ` widgetId = "${widget.id}",`,
627
- ` serverUrl = "${widget.serverUpdate.url}",`,
628
- ` intervalMinutes = ${widget.serverUpdate.intervalMinutes}L,`,
629
- ` refreshEnabled = ${String(refreshEnabled)}`,
630
- ' )',
687
+ ' // Blocking rather than launching: onReceive must not return before the work is',
688
+ ' // enqueued, or a widget added while the app is not running loses its schedule.',
689
+ ' runBlocking {',
690
+ ` VoltraWidgetUpdateScheduler.schedulePeriodicUpdate(context.applicationContext, "${widget.id}")`,
691
+ ' }',
631
692
  ' }',
632
693
  '',
633
694
  ' override fun onDeleted(context: Context, appWidgetIds: IntArray) {',
@@ -652,28 +713,25 @@ function generateWidgetReceiverContent(widget, packageName) {
652
713
  return [
653
714
  `package ${packageName}.widget`,
654
715
  '',
655
- 'import voltra.widget.VoltraWidgetReceiver',
716
+ 'import voltra.widget.payload.VoltraPayloadWidgetReceiver',
656
717
  '',
657
718
  '/**',
658
719
  ` * Auto-generated widget receiver for ${labelForComment}`,
659
720
  ` * Widget ID: ${widget.id}`,
660
721
  ' */',
661
- `class ${className} : VoltraWidgetReceiver() {`,
722
+ `class ${className} : VoltraPayloadWidgetReceiver() {`,
662
723
  ` override val widgetId: String = "${widget.id}"`,
663
724
  '}',
664
725
  '',
665
726
  ].join('\n');
666
727
  }
667
728
  function generateWidgetInfoXml(widget, previewImageResourceName, previewLayoutResourceName) {
668
- const minWidth = widget.minWidth ?? (widget.minCellWidth !== undefined ? widget.minCellWidth * 70 - 30 : undefined);
669
- const minHeight = widget.minHeight ?? (widget.minCellHeight !== undefined ? widget.minCellHeight * 70 - 30 : undefined);
670
729
  const resizeMode = widget.resizeMode ?? 'horizontal|vertical';
671
730
  const widgetCategory = widget.widgetCategory ?? 'home_screen';
672
731
  const lines = [
673
732
  '<?xml version="1.0" encoding="utf-8"?>',
674
- `<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"${minWidth !== undefined ? ` android:minWidth="${minWidth}dp"` : ''}${minHeight !== undefined ? ` android:minHeight="${minHeight}dp"` : ''}`,
675
- ` android:targetCellWidth="${widget.targetCellWidth}"`,
676
- ` android:targetCellHeight="${widget.targetCellHeight}"`,
733
+ '<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"',
734
+ ...androidWidgetSizingAttributes(widget).map((attribute) => ` ${attribute}`),
677
735
  ' android:updatePeriodMillis="0"',
678
736
  ' android:initialLayout="@layout/voltra_widget_placeholder"',
679
737
  ` android:resizeMode="${resizeMode}"`,