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,9 @@
1
1
  import path from 'node:path';
2
2
  import { resolveFromRoot } from '../fs/path';
3
3
  import { CLI_DEFAULTS } from './defaults';
4
+ import { isPerConfigurationMap } from './perConfiguration';
5
+ import { resolveServerUpdateInterval, resolveServerUpdateUrl, validateServerUpdateRefresh } from './serverUpdate';
6
+ import { iosWidgetKind } from './widgetKind';
4
7
  const VALID_IOS_WIDGET_FAMILIES = new Set([
5
8
  'systemSmall',
6
9
  'systemMedium',
@@ -30,6 +33,23 @@ function assertOptionalString(value, context) {
30
33
  throw new VoltraConfigNormalizationError(`${context} must be a string`);
31
34
  }
32
35
  }
36
+ function assertOptionalPerConfigurationString(value, context) {
37
+ if (value === undefined || typeof value === 'string') {
38
+ return;
39
+ }
40
+ if (!isPerConfigurationMap(value)) {
41
+ throw new VoltraConfigNormalizationError(`${context} must be a string, or an object of strings keyed by build configuration name`);
42
+ }
43
+ const entries = Object.entries(value);
44
+ if (entries.length === 0) {
45
+ throw new VoltraConfigNormalizationError(`${context} must not be an empty object`);
46
+ }
47
+ for (const [buildConfigurationName, configurationValue] of entries) {
48
+ if (typeof configurationValue !== 'string' || !configurationValue.trim()) {
49
+ throw new VoltraConfigNormalizationError(`${context}.${buildConfigurationName} must be a non-empty string`);
50
+ }
51
+ }
52
+ }
33
53
  function assertOptionalBoolean(value, context) {
34
54
  if (value !== undefined && typeof value !== 'boolean') {
35
55
  throw new VoltraConfigNormalizationError(`${context} must be a boolean`);
@@ -72,6 +92,18 @@ function resolveOptionalPathFromProjectRoot(projectRoot, filePath) {
72
92
  }
73
93
  return resolvePathFromProjectRoot(projectRoot, filePath);
74
94
  }
95
+ function resolveOptionalPerConfigurationPath(projectRoot, filePath) {
96
+ if (!filePath) {
97
+ return undefined;
98
+ }
99
+ if (!isPerConfigurationMap(filePath)) {
100
+ return resolvePathFromProjectRoot(projectRoot, filePath);
101
+ }
102
+ return Object.fromEntries(Object.entries(filePath).map(([buildConfigurationName, configurationPath]) => [
103
+ buildConfigurationName,
104
+ resolvePathFromProjectRoot(projectRoot, configurationPath),
105
+ ]));
106
+ }
75
107
  function isAbsoluteWidgetPath(value) {
76
108
  return path.isAbsolute(value) || path.win32.isAbsolute(value) || /^[a-zA-Z]:[\\/]/.test(value);
77
109
  }
@@ -201,30 +233,40 @@ function normalizeIOSAppIntent(value, context) {
201
233
  });
202
234
  return { parameters };
203
235
  }
204
- function normalizeServerUpdate(serverUpdate, context, defaultIntervalMinutes, defaultRefresh, minimumIntervalMinutes) {
236
+ function normalizeServerUpdate(serverUpdate, options) {
237
+ const { context, hasEntry, defaultIntervalMinutes, defaultRefresh, minimumIntervalMinutes, warnings } = options;
205
238
  assertObject(serverUpdate, context);
206
- assertNonEmptyString(serverUpdate.url, `${context}.url`);
207
- if (serverUpdate.intervalMinutes !== undefined) {
208
- if (typeof serverUpdate.intervalMinutes !== 'number' || !Number.isFinite(serverUpdate.intervalMinutes)) {
209
- throw new VoltraConfigNormalizationError(`${context}.intervalMinutes must be a number`);
210
- }
211
- if (!Number.isInteger(serverUpdate.intervalMinutes)) {
212
- throw new VoltraConfigNormalizationError(`${context}.intervalMinutes must be an integer`);
213
- }
214
- if (serverUpdate.intervalMinutes < minimumIntervalMinutes) {
215
- throw new VoltraConfigNormalizationError(`${context}.intervalMinutes must be at least ${minimumIntervalMinutes}`);
216
- }
239
+ const url = resolveServerUpdateUrl(serverUpdate.url, context);
240
+ if (url.kind === 'invalid') {
241
+ throw new VoltraConfigNormalizationError(url.error);
242
+ }
243
+ if (url.kind === 'insecure') {
244
+ warnings.push(url.warning);
245
+ }
246
+ const interval = resolveServerUpdateInterval({
247
+ intervalMinutes: serverUpdate.intervalMinutes,
248
+ context,
249
+ hasEntry,
250
+ defaultIntervalMinutes,
251
+ minimumIntervalMinutes,
252
+ });
253
+ if (interval.kind === 'invalid') {
254
+ throw new VoltraConfigNormalizationError(interval.error);
255
+ }
256
+ if (interval.kind === 'clamped') {
257
+ warnings.push(interval.warning);
217
258
  }
218
- if (serverUpdate.refresh !== undefined && typeof serverUpdate.refresh !== 'boolean') {
219
- throw new VoltraConfigNormalizationError(`${context}.refresh must be a boolean`);
259
+ const refreshError = validateServerUpdateRefresh(serverUpdate.refresh, context);
260
+ if (refreshError) {
261
+ throw new VoltraConfigNormalizationError(refreshError);
220
262
  }
221
263
  return {
222
264
  url: serverUpdate.url,
223
- intervalMinutes: serverUpdate.intervalMinutes ?? defaultIntervalMinutes,
265
+ intervalMinutes: interval.intervalMinutes,
224
266
  refresh: serverUpdate.refresh ?? defaultRefresh,
225
267
  };
226
268
  }
227
- function normalizeAndroidWidget(projectRoot, widget) {
269
+ function normalizeAndroidWidget(projectRoot, widget, warnings) {
228
270
  assertObject(widget, 'android.widgets[]');
229
271
  assertNonEmptyString(widget.id, 'android.widgets[].id');
230
272
  assertValidWidgetId(widget.id, 'android.widgets[].id');
@@ -232,6 +274,12 @@ function normalizeAndroidWidget(projectRoot, widget) {
232
274
  assertPositiveInteger(widget.targetCellHeight, `android.widgets[${widget.id}].targetCellHeight`);
233
275
  assertOptionalPositiveInteger(widget.minCellWidth, `android.widgets[${widget.id}].minCellWidth`);
234
276
  assertOptionalPositiveInteger(widget.minCellHeight, `android.widgets[${widget.id}].minCellHeight`);
277
+ assertOptionalPositiveInteger(widget.minWidth, `android.widgets[${widget.id}].minWidth`);
278
+ assertOptionalPositiveInteger(widget.minHeight, `android.widgets[${widget.id}].minHeight`);
279
+ assertOptionalPositiveInteger(widget.minResizeWidth, `android.widgets[${widget.id}].minResizeWidth`);
280
+ assertOptionalPositiveInteger(widget.minResizeHeight, `android.widgets[${widget.id}].minResizeHeight`);
281
+ assertOptionalPositiveInteger(widget.maxResizeWidth, `android.widgets[${widget.id}].maxResizeWidth`);
282
+ assertOptionalPositiveInteger(widget.maxResizeHeight, `android.widgets[${widget.id}].maxResizeHeight`);
235
283
  return {
236
284
  ...widget,
237
285
  displayName: normalizeLabel(widget.displayName, `android.widgets[${widget.id}].displayName`),
@@ -242,14 +290,24 @@ function normalizeAndroidWidget(projectRoot, widget) {
242
290
  previewLayout: resolveOptionalPathFromProjectRoot(projectRoot, widget.previewLayout),
243
291
  appIntent: normalizeAndroidAppIntent(widget.appIntent, `android.widgets[${widget.id}].appIntent`),
244
292
  serverUpdate: widget.serverUpdate
245
- ? normalizeServerUpdate(widget.serverUpdate, `android.widgets[${widget.id}].serverUpdate`, CLI_DEFAULTS.android.serverUpdateIntervalMinutes, CLI_DEFAULTS.android.serverUpdateRefresh, 15)
293
+ ? normalizeServerUpdate(widget.serverUpdate, {
294
+ context: `android.widgets[${widget.id}].serverUpdate`,
295
+ hasEntry: widget.entry !== undefined,
296
+ defaultIntervalMinutes: CLI_DEFAULTS.android.serverUpdateIntervalMinutes,
297
+ defaultRefresh: CLI_DEFAULTS.android.serverUpdateRefresh,
298
+ minimumIntervalMinutes: 15,
299
+ warnings,
300
+ })
246
301
  : undefined,
247
302
  };
248
303
  }
249
- function normalizeIOSWidget(projectRoot, widget) {
304
+ function normalizeIOSWidget(projectRoot, widget, warnings) {
250
305
  assertObject(widget, 'ios.widgets[]');
251
306
  assertNonEmptyString(widget.id, 'ios.widgets[].id');
252
307
  assertValidWidgetId(widget.id, 'ios.widgets[].id');
308
+ if (widget.kind !== undefined) {
309
+ assertNonEmptyString(widget.kind, `ios.widgets[${widget.id}].kind`);
310
+ }
253
311
  if (widget.supportedFamilies !== undefined) {
254
312
  if (!Array.isArray(widget.supportedFamilies)) {
255
313
  throw new VoltraConfigNormalizationError(`ios.widgets[${widget.id}].supportedFamilies must be an array`);
@@ -269,7 +327,14 @@ function normalizeIOSWidget(projectRoot, widget) {
269
327
  initialStatePath: normalizeInitialStatePath(projectRoot, widget.initialStatePath, `ios.widgets[${widget.id}].initialStatePath`),
270
328
  appIntent: normalizeIOSAppIntent(widget.appIntent, `ios.widgets[${widget.id}].appIntent`),
271
329
  serverUpdate: widget.serverUpdate
272
- ? normalizeServerUpdate(widget.serverUpdate, `ios.widgets[${widget.id}].serverUpdate`, CLI_DEFAULTS.ios.serverUpdateIntervalMinutes, CLI_DEFAULTS.ios.serverUpdateRefresh, 1)
330
+ ? normalizeServerUpdate(widget.serverUpdate, {
331
+ context: `ios.widgets[${widget.id}].serverUpdate`,
332
+ hasEntry: widget.entry !== undefined,
333
+ defaultIntervalMinutes: CLI_DEFAULTS.ios.serverUpdateIntervalMinutes,
334
+ defaultRefresh: CLI_DEFAULTS.ios.serverUpdateRefresh,
335
+ minimumIntervalMinutes: 1,
336
+ warnings,
337
+ })
273
338
  : undefined,
274
339
  };
275
340
  }
@@ -282,6 +347,21 @@ function assertUniqueWidgetIds(widgetIds, context) {
282
347
  seen.add(widgetId);
283
348
  }
284
349
  }
350
+ /**
351
+ * WidgetKit identifies a placed widget by extension bundle id + kind, so two widgets sharing a kind
352
+ * would fight over the same Home Screen instances. Compared after defaulting, which also catches a
353
+ * custom kind that collides with another widget's `Voltra_Widget_<id>`.
354
+ */
355
+ function assertUniqueIOSWidgetKinds(widgets) {
356
+ const seen = new Set();
357
+ for (const widget of widgets) {
358
+ const kind = iosWidgetKind(widget);
359
+ if (seen.has(kind)) {
360
+ throw new VoltraConfigNormalizationError(`Duplicate ios widget kind '${kind}'`);
361
+ }
362
+ seen.add(kind);
363
+ }
364
+ }
285
365
  function assertValidWidgetId(widgetId, context) {
286
366
  if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(widgetId)) {
287
367
  throw new VoltraConfigNormalizationError(`${context} must start with a letter or underscore and contain only alphanumeric characters and underscores`);
@@ -292,7 +372,7 @@ function assertValidIOSTargetName(targetName, context) {
292
372
  throw new VoltraConfigNormalizationError(`${context} must start with a letter and contain only letters, numbers, and underscores`);
293
373
  }
294
374
  }
295
- function normalizeAndroidConfig(projectRoot, config) {
375
+ function normalizeAndroidConfig(warnings, projectRoot, config) {
296
376
  if (config === undefined) {
297
377
  return undefined;
298
378
  }
@@ -310,7 +390,7 @@ function normalizeAndroidConfig(projectRoot, config) {
310
390
  if (config.widgets !== undefined && !Array.isArray(config.widgets)) {
311
391
  throw new VoltraConfigNormalizationError('android.widgets must be an array');
312
392
  }
313
- const widgets = (config.widgets ?? []).map((widget) => normalizeAndroidWidget(projectRoot, widget));
393
+ const widgets = (config.widgets ?? []).map((widget) => normalizeAndroidWidget(projectRoot, widget, warnings));
314
394
  assertUniqueWidgetIds(widgets.map((widget) => widget.id), 'android');
315
395
  return {
316
396
  enableNotifications: config.enableNotifications ?? CLI_DEFAULTS.android.enableNotifications,
@@ -325,25 +405,25 @@ function normalizeAndroidConfig(projectRoot, config) {
325
405
  },
326
406
  };
327
407
  }
328
- function normalizeIOSConfig(projectRoot, config) {
408
+ function normalizeIOSConfig(warnings, projectRoot, config) {
329
409
  if (config === undefined) {
330
410
  return undefined;
331
411
  }
332
412
  assertObject(config, 'ios');
333
413
  assertOptionalBoolean(config.enablePushNotifications, 'ios.enablePushNotifications');
334
- assertOptionalString(config.groupIdentifier, 'ios.groupIdentifier');
414
+ assertOptionalPerConfigurationString(config.groupIdentifier, 'ios.groupIdentifier');
335
415
  assertOptionalString(config.deploymentTarget, 'ios.deploymentTarget');
336
416
  assertOptionalString(config.targetName, 'ios.targetName');
337
417
  assertOptionalStringArray(config.fonts, 'ios.fonts');
338
418
  assertOptionalString(config.userImagesPath, 'ios.userImagesPath');
339
- assertOptionalString(config.keychainGroup, 'ios.keychainGroup');
419
+ assertOptionalPerConfigurationString(config.keychainGroup, 'ios.keychainGroup');
340
420
  if (config.project !== undefined) {
341
421
  assertObject(config.project, 'ios.project');
342
422
  assertOptionalString(config.project.rootDir, 'ios.project.rootDir');
343
423
  assertOptionalString(config.project.xcodeprojPath, 'ios.project.xcodeprojPath');
344
424
  assertOptionalString(config.project.mainTargetName, 'ios.project.mainTargetName');
345
425
  assertOptionalString(config.project.infoPlistPath, 'ios.project.infoPlistPath');
346
- assertOptionalString(config.project.entitlementsPath, 'ios.project.entitlementsPath');
426
+ assertOptionalPerConfigurationString(config.project.entitlementsPath, 'ios.project.entitlementsPath');
347
427
  assertOptionalString(config.project.podfilePath, 'ios.project.podfilePath');
348
428
  }
349
429
  if (config.widgets !== undefined && !Array.isArray(config.widgets)) {
@@ -352,8 +432,9 @@ function normalizeIOSConfig(projectRoot, config) {
352
432
  if (config.targetName !== undefined) {
353
433
  assertValidIOSTargetName(config.targetName, 'ios.targetName');
354
434
  }
355
- const widgets = (config.widgets ?? []).map((widget) => normalizeIOSWidget(projectRoot, widget));
435
+ const widgets = (config.widgets ?? []).map((widget) => normalizeIOSWidget(projectRoot, widget, warnings));
356
436
  assertUniqueWidgetIds(widgets.map((widget) => widget.id), 'ios');
437
+ assertUniqueIOSWidgetKinds(widgets);
357
438
  return {
358
439
  enablePushNotifications: config.enablePushNotifications ?? CLI_DEFAULTS.ios.enablePushNotifications,
359
440
  groupIdentifier: config.groupIdentifier,
@@ -368,7 +449,7 @@ function normalizeIOSConfig(projectRoot, config) {
368
449
  xcodeprojPath: resolveOptionalPathFromProjectRoot(projectRoot, config.project?.xcodeprojPath),
369
450
  mainTargetName: config.project?.mainTargetName,
370
451
  infoPlistPath: resolveOptionalPathFromProjectRoot(projectRoot, config.project?.infoPlistPath),
371
- entitlementsPath: resolveOptionalPathFromProjectRoot(projectRoot, config.project?.entitlementsPath),
452
+ entitlementsPath: resolveOptionalPerConfigurationPath(projectRoot, config.project?.entitlementsPath),
372
453
  podfilePath: resolveOptionalPathFromProjectRoot(projectRoot, config.project?.podfilePath),
373
454
  },
374
455
  };
@@ -377,12 +458,33 @@ export function normalizeVoltraConfig(loadedConfig) {
377
458
  assertObject(loadedConfig.config, 'config');
378
459
  assertOptionalString(loadedConfig.config.projectRoot, 'projectRoot');
379
460
  const projectRoot = resolvePathFromProjectRoot(loadedConfig.configDir, loadedConfig.config.projectRoot ?? loadedConfig.configDir);
461
+ const warnings = [];
462
+ const android = normalizeAndroidConfig(warnings, projectRoot, loadedConfig.config.android);
463
+ const ios = normalizeIOSConfig(warnings, projectRoot, loadedConfig.config.ios);
464
+ assertServerDrivenDynamicWidgetsAreSupported(ios);
380
465
  return {
381
466
  configPath: loadedConfig.configPath,
382
467
  configDir: loadedConfig.configDir,
383
468
  projectRoot,
384
- android: normalizeAndroidConfig(projectRoot, loadedConfig.config.android),
385
- ios: normalizeIOSConfig(projectRoot, loadedConfig.config.ios),
469
+ android,
470
+ ios,
471
+ warnings,
386
472
  };
387
473
  }
474
+ /**
475
+ * A Dynamic Widget commits fetched props to the App Group so the widget extension can read them,
476
+ * so a server-driven one without a `groupIdentifier` would fetch and have nowhere to put the
477
+ * result.
478
+ */
479
+ function assertServerDrivenDynamicWidgetsAreSupported(ios) {
480
+ if (ios === undefined || ios.groupIdentifier !== undefined) {
481
+ return;
482
+ }
483
+ for (const widget of ios.widgets) {
484
+ if (widget.entry !== undefined && widget.serverUpdate !== undefined) {
485
+ throw new VoltraConfigNormalizationError(`ios.widgets[${widget.id}] has both entry and serverUpdate, which requires ios.groupIdentifier ` +
486
+ 'so fetched props can be shared with the widget extension.');
487
+ }
488
+ }
489
+ }
388
490
  //# sourceMappingURL=normalize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/config/normalize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/config/normalize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export function isPerConfigurationMap(value) {
2
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
3
+ }
4
+ /**
5
+ * Pairs a per-build-configuration value with the project's real build configurations, in the
6
+ * project's own order. Keys that name no build configuration, and build configurations the value
7
+ * does not cover, are reported before anything is written to the project.
8
+ */
9
+ export function getValuesByBuildConfiguration(value, buildConfigurationNames, context, createError) {
10
+ const knownNames = `This project has: ${buildConfigurationNames.join(', ')}.`;
11
+ const unknownNames = Object.keys(value).filter((name) => !buildConfigurationNames.includes(name));
12
+ if (unknownNames.length > 0) {
13
+ throw createError(`${context} names unknown build configurations: ${unknownNames.join(', ')}. ${knownNames}`);
14
+ }
15
+ const valuesByBuildConfiguration = new Map();
16
+ for (const buildConfigurationName of buildConfigurationNames) {
17
+ const configurationValue = value[buildConfigurationName];
18
+ if (configurationValue === undefined) {
19
+ throw createError(`${context} has no value for build configuration '${buildConfigurationName}'. ${knownNames}`);
20
+ }
21
+ valuesByBuildConfiguration.set(buildConfigurationName, configurationValue);
22
+ }
23
+ return valuesByBuildConfiguration;
24
+ }
25
+ //# sourceMappingURL=perConfiguration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perConfiguration.js","sourceRoot":"","sources":["../../../src/config/perConfiguration.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,qBAAqB,CACnC,KAA2C;IAE3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,KAA6B,EAC7B,uBAAiC,EACjC,OAAe,EACf,WAAuC;IAEvC,MAAM,UAAU,GAAG,qBAAqB,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;IAC7E,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IAEjG,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,WAAW,CAAC,GAAG,OAAO,wCAAwC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC,CAAA;IAC/G,CAAC;IAED,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAAkB,CAAA;IAE5D,KAAK,MAAM,sBAAsB,IAAI,uBAAuB,EAAE,CAAC;QAC7D,MAAM,kBAAkB,GAAG,KAAK,CAAC,sBAAsB,CAAC,CAAA;QAExD,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,WAAW,CAAC,GAAG,OAAO,0CAA0C,sBAAsB,MAAM,UAAU,EAAE,CAAC,CAAA;QACjH,CAAC;QAED,0BAA0B,CAAC,GAAG,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAA;IAC5E,CAAC;IAED,OAAO,0BAA0B,CAAA;AACnC,CAAC"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Config rules for `serverUpdate`, shared by the Expo plugins and the `voltra` CLI.
3
+ *
4
+ * `serverUpdate` marks a widget as server-driven for both render engines. On a widget with
5
+ * `entry` the device fetches a JSON object and hands it to the bundled JS as props; without
6
+ * `entry` the server returns a full Voltra payload. Widgets without `entry` keep exactly the
7
+ * rules they had before ADR 0002, so no existing config breaks.
8
+ *
9
+ * `url` is optional. `serverUpdate: {}` means "server-driven, URL supplied at runtime" through
10
+ * `setWidgetServerUpdate`, which covers per-tenant backends whose URL is only known after login.
11
+ *
12
+ * These helpers report problems instead of throwing so each caller can raise its own error type.
13
+ *
14
+ * The `@use-voltra/expo-plugin` package holds the other copy of this module, shared by the
15
+ * Expo config plugins; keep the two in sync.
16
+ */
17
+ /**
18
+ * Interval floor and default for a widget with `entry`. WorkManager cannot run periodic work
19
+ * more often than every 15 minutes, and WidgetKit stretches timelines requested closer together
20
+ * than five minutes, so a smaller number would only mislead.
21
+ */
22
+ export const DYNAMIC_WIDGET_SERVER_UPDATE_INTERVAL_MINUTES = 15;
23
+ /** Hosts allowed over plain `http`, for talking to a dev server from a simulator or emulator. */
24
+ const LOCAL_HTTP_HOSTS = new Set(['localhost', '127.0.0.1', '::1', '10.0.2.2', '10.0.3.2']);
25
+ /**
26
+ * Resolves the interval a widget should be scheduled on.
27
+ *
28
+ * A widget with `entry` is clamped up to {@link DYNAMIC_WIDGET_SERVER_UPDATE_INTERVAL_MINUTES}
29
+ * with a warning, because a shorter interval is not something either platform can honour. A
30
+ * payload widget keeps the platform's existing rule and is rejected below the floor.
31
+ */
32
+ export function resolveServerUpdateInterval(options) {
33
+ const { intervalMinutes, context, hasEntry, defaultIntervalMinutes, minimumIntervalMinutes } = options;
34
+ const fallback = hasEntry ? DYNAMIC_WIDGET_SERVER_UPDATE_INTERVAL_MINUTES : defaultIntervalMinutes;
35
+ if (intervalMinutes === undefined) {
36
+ return { kind: 'ok', intervalMinutes: fallback };
37
+ }
38
+ if (typeof intervalMinutes !== 'number' || !Number.isFinite(intervalMinutes)) {
39
+ return { kind: 'invalid', error: `${context}.intervalMinutes must be a number` };
40
+ }
41
+ if (!Number.isInteger(intervalMinutes)) {
42
+ return { kind: 'invalid', error: `${context}.intervalMinutes must be an integer` };
43
+ }
44
+ if (hasEntry) {
45
+ if (intervalMinutes < DYNAMIC_WIDGET_SERVER_UPDATE_INTERVAL_MINUTES) {
46
+ return {
47
+ kind: 'clamped',
48
+ intervalMinutes: DYNAMIC_WIDGET_SERVER_UPDATE_INTERVAL_MINUTES,
49
+ warning: `${context}.intervalMinutes is ${intervalMinutes}, below the ` +
50
+ `${DYNAMIC_WIDGET_SERVER_UPDATE_INTERVAL_MINUTES} minute floor for widgets with an entry. ` +
51
+ `Using ${DYNAMIC_WIDGET_SERVER_UPDATE_INTERVAL_MINUTES}.`,
52
+ };
53
+ }
54
+ return { kind: 'ok', intervalMinutes };
55
+ }
56
+ if (intervalMinutes < minimumIntervalMinutes) {
57
+ return { kind: 'invalid', error: `${context}.intervalMinutes must be at least ${minimumIntervalMinutes}` };
58
+ }
59
+ return { kind: 'ok', intervalMinutes };
60
+ }
61
+ /**
62
+ * Checks `serverUpdate.url`. An absent URL is fine — the app supplies it at runtime through
63
+ * `setWidgetServerUpdate`.
64
+ *
65
+ * A URL that is not an absolute `http`/`https` URL is rejected: no platform HTTP stack here
66
+ * accepts one, so such a config could only ever have failed to fetch. Plain `http` to a
67
+ * non-local host is reported as insecure rather than rejected — App Transport Security and
68
+ * Android's cleartext policy already block it in a release build, and rejecting it outright
69
+ * would break configs that point at a LAN dev server.
70
+ */
71
+ export function resolveServerUpdateUrl(url, context) {
72
+ if (url === undefined) {
73
+ return { kind: 'ok' };
74
+ }
75
+ if (typeof url !== 'string' || !url.trim()) {
76
+ return { kind: 'invalid', error: `${context}.url must be a non-empty string` };
77
+ }
78
+ let parsed;
79
+ try {
80
+ parsed = new URL(url);
81
+ }
82
+ catch {
83
+ return { kind: 'invalid', error: `${context}.url must be an absolute http(s) URL, received '${url}'` };
84
+ }
85
+ if (parsed.protocol === 'https:') {
86
+ return { kind: 'ok' };
87
+ }
88
+ if (parsed.protocol !== 'http:') {
89
+ return { kind: 'invalid', error: `${context}.url must be an absolute http(s) URL, received '${url}'` };
90
+ }
91
+ if (isLocalHttpHost(parsed.hostname)) {
92
+ return { kind: 'ok' };
93
+ }
94
+ return {
95
+ kind: 'insecure',
96
+ warning: `${context}.url uses plain http ('${url}'). Release builds block cleartext traffic, so the ` +
97
+ 'widget will not fetch outside a development build. Use https, or a local dev host ' +
98
+ `(${[...LOCAL_HTTP_HOSTS].join(', ')}).`,
99
+ };
100
+ }
101
+ /** True for the hosts Voltra allows over plain `http` — dev servers reachable from a simulator. */
102
+ export function isLocalHttpHost(hostname) {
103
+ return LOCAL_HTTP_HOSTS.has(hostname.replace(/^\[|\]$/g, ''));
104
+ }
105
+ /** Validates `serverUpdate.refresh`. Returns an error message, or `undefined` when it is fine. */
106
+ export function validateServerUpdateRefresh(refresh, context) {
107
+ if (refresh !== undefined && typeof refresh !== 'boolean') {
108
+ return `${context}.refresh must be a boolean`;
109
+ }
110
+ return undefined;
111
+ }
112
+ //# sourceMappingURL=serverUpdate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverUpdate.js","sourceRoot":"","sources":["../../../src/config/serverUpdate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /** Default prefix of a widget's WidgetKit `kind`: `Voltra_Widget_<id>`. Mirrors `VoltraStorageKeys.widgetKindPrefix`. */
2
+ export const IOS_WIDGET_KIND_PREFIX = 'Voltra_Widget_';
3
+ /** WidgetKit `kind` of a widget: the `kind` option when set, else `Voltra_Widget_<id>`. */
4
+ export function iosWidgetKind(widget) {
5
+ return widget.kind ?? `${IOS_WIDGET_KIND_PREFIX}${widget.id}`;
6
+ }
7
+ /**
8
+ * `{ id: kind }` for the widgets that pin a custom `kind`, or undefined when none does.
9
+ * Written to both Info.plists (`Voltra_WidgetKinds`) so native code maps ids to kinds and back.
10
+ */
11
+ export function iosWidgetKindOverrides(widgets) {
12
+ const overrides = {};
13
+ for (const widget of widgets) {
14
+ if (widget.kind !== undefined) {
15
+ overrides[widget.id] = widget.kind;
16
+ }
17
+ }
18
+ return Object.keys(overrides).length > 0 ? overrides : undefined;
19
+ }
20
+ //# sourceMappingURL=widgetKind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widgetKind.js","sourceRoot":"","sources":["../../../src/config/widgetKind.ts"],"names":[],"mappings":"AAEA,yHAAyH;AACzH,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAA;AAEtD,2FAA2F;AAC3F,MAAM,UAAU,aAAa,CAAC,MAA4C;IACxE,OAAO,MAAM,CAAC,IAAI,IAAI,GAAG,sBAAsB,GAAG,MAAM,CAAC,EAAE,EAAE,CAAA;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAA+C;IAE/C,MAAM,SAAS,GAA2B,EAAE,CAAA;IAE5C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAA;QACpC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;AAClE,CAAC"}
@@ -25,6 +25,14 @@ export function getMissingPlatformPackages(projectRoot, platform) {
25
25
  export function requirePlatformPackage(projectRoot, platform) {
26
26
  return createProjectRequire(projectRoot)(getPlatformPackageName(platform));
27
27
  }
28
+ export function getPlatformClientPackageVersion(projectRoot, platform) {
29
+ const packageName = getPlatformClientPackageName(platform);
30
+ const manifest = createProjectRequire(projectRoot)(`${packageName}/package.json`);
31
+ if (typeof manifest.version !== 'string' || manifest.version.length === 0) {
32
+ throw new Error(`Package ${packageName} does not declare a valid version.`);
33
+ }
34
+ return manifest.version;
35
+ }
28
36
  export function getMissingPlatformPackageMessage(platform, packageNames = getRequiredPlatformPackageNames(platform)) {
29
37
  const packageLabel = packageNames.length === 1 ? 'package' : 'packages';
30
38
  const verb = packageNames.length === 1 ? 'is' : 'are';
@@ -1 +1 @@
1
- {"version":3,"file":"platformPackages.js","sourceRoot":"","sources":["../../../src/dependencies/platformPackages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platformPackages.js","sourceRoot":"","sources":["../../../src/dependencies/platformPackages.ts"],"names":[],"mappings":"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"}