voltra 2.1.1 → 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 -17
  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
@@ -8,6 +8,7 @@ exports.getPlatformClientPackageName = getPlatformClientPackageName;
8
8
  exports.isPlatformPackageInstalled = isPlatformPackageInstalled;
9
9
  exports.getMissingPlatformPackages = getMissingPlatformPackages;
10
10
  exports.requirePlatformPackage = requirePlatformPackage;
11
+ exports.getPlatformClientPackageVersion = getPlatformClientPackageVersion;
11
12
  exports.getMissingPlatformPackageMessage = getMissingPlatformPackageMessage;
12
13
  const node_path_1 = __importDefault(require("node:path"));
13
14
  const node_module_1 = require("node:module");
@@ -36,6 +37,14 @@ function getMissingPlatformPackages(projectRoot, platform) {
36
37
  function requirePlatformPackage(projectRoot, platform) {
37
38
  return createProjectRequire(projectRoot)(getPlatformPackageName(platform));
38
39
  }
40
+ function getPlatformClientPackageVersion(projectRoot, platform) {
41
+ const packageName = getPlatformClientPackageName(platform);
42
+ const manifest = createProjectRequire(projectRoot)(`${packageName}/package.json`);
43
+ if (typeof manifest.version !== 'string' || manifest.version.length === 0) {
44
+ throw new Error(`Package ${packageName} does not declare a valid version.`);
45
+ }
46
+ return manifest.version;
47
+ }
39
48
  function getMissingPlatformPackageMessage(platform, packageNames = getRequiredPlatformPackageNames(platform)) {
40
49
  const packageLabel = packageNames.length === 1 ? 'package' : 'packages';
41
50
  const verb = packageNames.length === 1 ? 'is' : 'are';
@@ -1 +1 @@
1
- {"version":3,"file":"platformPackages.js","sourceRoot":"","sources":["../../../src/dependencies/platformPackages.ts"],"names":[],"mappings":";;;;;AAeA,wDAEC;AAED,oEAEC;AAED,gEAEC;AAED,gEAKC;AAED,wDAEC;AAED,4EAWC;AAjDD,0DAA4B;AAC5B,6CAA2C;AAI3C,MAAM,sBAAsB,GAAmC;IAC7D,OAAO,EAAE,qBAAqB;IAC9B,GAAG,EAAE,iBAAiB;CACvB,CAAA;AAED,MAAM,6BAA6B,GAAmC;IACpE,OAAO,EAAE,4BAA4B;IACrC,GAAG,EAAE,wBAAwB;CAC9B,CAAA;AAED,SAAgB,sBAAsB,CAAC,QAAwB;IAC7D,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAA;AACzC,CAAC;AAED,SAAgB,4BAA4B,CAAC,QAAwB;IACnE,OAAO,6BAA6B,CAAC,QAAQ,CAAC,CAAA;AAChD,CAAC;AAED,SAAgB,0BAA0B,CAAC,WAAmB,EAAE,QAAwB;IACtF,OAAO,0BAA0B,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;AACvE,CAAC;AAED,SAAgB,0BAA0B,CAAC,WAAmB,EAAE,QAAwB;IACtF,MAAM,cAAc,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAA;IACxD,MAAM,YAAY,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAA;IAE9D,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAA;AAC9F,CAAC;AAED,SAAgB,sBAAsB,CAAW,WAAmB,EAAE,QAAwB;IAC5F,OAAO,oBAAoB,CAAC,WAAW,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAa,CAAA;AACxF,CAAC;AAED,SAAgB,gCAAgC,CAC9C,QAAwB,EACxB,YAAY,GAAG,+BAA+B,CAAC,QAAQ,CAAC;IAExD,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;IACvE,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;IACrD,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;IAEzD,OAAO,YAAY,YAAY,IAAI,iBAAiB,CAClD,YAAY,CACb,IAAI,IAAI,8CAA8C,OAAO,qCAAqC,QAAQ,gBAAgB,CAAA;AAC7H,CAAC;AAED,SAAS,+BAA+B,CAAC,QAAwB;IAC/D,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,4BAA4B,CAAC,QAAQ,CAAC,CAAC,CAAA;AACnF,CAAC;AAED,SAAS,iBAAiB,CAAC,cAA2B,EAAE,WAAmB;IACzE,IAAI,CAAC;QACH,cAAc,CAAC,OAAO,CAAC,GAAG,WAAW,eAAe,CAAC,CAAA;QACrD,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,YAAsB;IAC/C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,YAAY,CAAC,CAAC,CAAC,CAAA;IACxB,CAAC;IAED,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAA;AAC/F,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAmB;IAC/C,OAAO,IAAA,2BAAa,EAAC,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAA;AAC9D,CAAC"}
1
+ {"version":3,"file":"platformPackages.js","sourceRoot":"","sources":["../../../src/dependencies/platformPackages.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ exports.discoverIOSProject = discoverIOSProject;
8
8
  const promises_1 = __importDefault(require("node:fs/promises"));
9
9
  const node_path_1 = __importDefault(require("node:path"));
10
10
  const summary_1 = require("../reporting/summary");
11
+ const perConfiguration_1 = require("../config/perConfiguration");
11
12
  const PBX_NATIVE_TARGET_SECTION = 'PBXNativeTarget';
12
13
  const XC_BUILD_CONFIGURATION_SECTION = 'XCBuildConfiguration';
13
14
  const XC_CONFIGURATION_LIST_SECTION = 'XCConfigurationList';
@@ -29,8 +30,8 @@ async function discoverIOSProject(projectRoot, config) {
29
30
  const mainTargetCandidates = getMainTargetCandidates(parsedProject.targets);
30
31
  const mainTarget = resolveMainTarget(mainTargetCandidates, config.mainTargetName, pbxprojPath);
31
32
  const mainTargetBuildConfigurations = getTargetBuildConfigurations(parsedProject, mainTarget, pbxprojPath);
32
- const infoPlistPath = await resolveInfoPlistPath(iosRoot, config, mainTarget, mainTargetBuildConfigurations);
33
- const entitlementsPath = await resolveEntitlementsPath(iosRoot, config, mainTarget, mainTargetBuildConfigurations);
33
+ const infoPlistPaths = await resolveInfoPlistPaths(iosRoot, config, mainTarget, mainTargetBuildConfigurations);
34
+ const { entitlementsPaths, entitlementsPathByConfiguration } = await resolveEntitlements(iosRoot, config, mainTarget, mainTargetBuildConfigurations);
34
35
  return {
35
36
  iosRoot,
36
37
  xcodeprojPath,
@@ -38,8 +39,12 @@ async function discoverIOSProject(projectRoot, config) {
38
39
  podfilePath,
39
40
  mainTargetName: mainTarget.name,
40
41
  mainTargetCandidates: mainTargetCandidates.map((target) => target.name).sort(),
41
- infoPlistPath,
42
- entitlementsPath,
42
+ buildConfigurationNames: mainTargetBuildConfigurations.map((configuration) => configuration.name),
43
+ infoPlistPath: infoPlistPaths[0],
44
+ infoPlistPaths,
45
+ entitlementsPath: entitlementsPaths[0],
46
+ entitlementsPaths,
47
+ entitlementsPathByConfiguration,
43
48
  };
44
49
  }
45
50
  async function resolveIOSRoot(projectRoot, config) {
@@ -208,29 +213,46 @@ function getTargetBuildConfigurations(project, target, pbxprojPath) {
208
213
  ? [defaultConfiguration, ...buildConfigurations.filter((configuration) => configuration !== defaultConfiguration)]
209
214
  : buildConfigurations;
210
215
  }
211
- async function resolveInfoPlistPath(iosRoot, config, target, buildConfigurations) {
212
- const infoPlistPath = config.infoPlistPath ??
213
- resolveConsistentBuildSettingPath(iosRoot, target, buildConfigurations, 'INFOPLIST_FILE', (configuration) => configuration.buildSettings.infoPlistFile);
214
- if (!infoPlistPath) {
216
+ async function resolveInfoPlistPaths(iosRoot, config, target, buildConfigurations) {
217
+ const discoveredPaths = config.infoPlistPath
218
+ ? new Map()
219
+ : resolveBuildSettingPaths(iosRoot, target, buildConfigurations, (configuration) => configuration.buildSettings.infoPlistFile);
220
+ const infoPlistPaths = config.infoPlistPath ? [config.infoPlistPath] : [...discoveredPaths.keys()];
221
+ if (infoPlistPaths.length === 0) {
215
222
  throw new IOSProjectDiscoveryError(`Could not determine Info.plist for target '${target.name}'. Set ios.project.infoPlistPath explicitly.`);
216
223
  }
217
- await ensureFile(infoPlistPath, config.infoPlistPath
218
- ? `Configured Info.plist does not exist: ${infoPlistPath}`
219
- : `Discovered Info.plist does not exist: ${infoPlistPath}`);
220
- return infoPlistPath;
224
+ for (const infoPlistPath of infoPlistPaths) {
225
+ await ensureFile(infoPlistPath, config.infoPlistPath
226
+ ? `Configured Info.plist does not exist: ${infoPlistPath}`
227
+ : `Discovered Info.plist does not exist: ${infoPlistPath}${describeReferencingBuildConfigurations(discoveredPaths, infoPlistPath)}. Set ios.project.infoPlistPath to override discovery.`);
228
+ }
229
+ return infoPlistPaths;
221
230
  }
222
- async function resolveEntitlementsPath(iosRoot, config, target, buildConfigurations) {
223
- const entitlementsPath = config.entitlementsPath ??
224
- resolveConsistentBuildSettingPath(iosRoot, target, buildConfigurations, 'CODE_SIGN_ENTITLEMENTS', (configuration) => configuration.buildSettings.codeSignEntitlements);
225
- if (!entitlementsPath) {
226
- return undefined;
231
+ async function resolveEntitlements(iosRoot, config, target, buildConfigurations) {
232
+ const entitlementsPathByConfiguration = (0, perConfiguration_1.isPerConfigurationMap)(config.entitlementsPath)
233
+ ? (0, perConfiguration_1.getValuesByBuildConfiguration)(config.entitlementsPath, buildConfigurations.map((configuration) => configuration.name), 'ios.project.entitlementsPath', (message) => new IOSProjectDiscoveryError(message))
234
+ : undefined;
235
+ const discoveredPaths = config.entitlementsPath
236
+ ? new Map()
237
+ : resolveBuildSettingPaths(iosRoot, target, buildConfigurations, (configuration) => configuration.buildSettings.codeSignEntitlements);
238
+ const entitlementsPaths = entitlementsPathByConfiguration
239
+ ? [...new Set(entitlementsPathByConfiguration.values())]
240
+ : typeof config.entitlementsPath === 'string'
241
+ ? [config.entitlementsPath]
242
+ : [...discoveredPaths.keys()];
243
+ for (const entitlementsPath of entitlementsPaths) {
244
+ await ensureFile(entitlementsPath, config.entitlementsPath
245
+ ? `Configured entitlements file does not exist: ${entitlementsPath}`
246
+ : `Discovered entitlements file does not exist: ${entitlementsPath}${describeReferencingBuildConfigurations(discoveredPaths, entitlementsPath)}. Set ios.project.entitlementsPath to override discovery.`);
227
247
  }
228
- await ensureFile(entitlementsPath, config.entitlementsPath
229
- ? `Configured entitlements file does not exist: ${entitlementsPath}`
230
- : `Discovered entitlements file does not exist: ${entitlementsPath}`);
231
- return entitlementsPath;
248
+ return { entitlementsPaths, entitlementsPathByConfiguration };
232
249
  }
233
- function resolveConsistentBuildSettingPath(iosRoot, target, buildConfigurations, settingName, getSettingValue) {
250
+ /**
251
+ * Collects the distinct paths a build setting resolves to across the target's build configurations.
252
+ * Apps that ship several environments point each configuration at its own file, so divergence is
253
+ * expected rather than an error.
254
+ */
255
+ function resolveBuildSettingPaths(iosRoot, target, buildConfigurations, getSettingValue) {
234
256
  const resolvedPaths = new Map();
235
257
  for (const configuration of buildConfigurations) {
236
258
  const settingValue = getSettingValue(configuration);
@@ -242,15 +264,12 @@ function resolveConsistentBuildSettingPath(iosRoot, target, buildConfigurations,
242
264
  configurationNames.push(configuration.name);
243
265
  resolvedPaths.set(resolvedPath, configurationNames);
244
266
  }
245
- if (resolvedPaths.size === 0) {
246
- return undefined;
247
- }
248
- if (resolvedPaths.size > 1) {
249
- throw new IOSProjectDiscoveryError(`Target '${target.name}' resolves ${settingName} to multiple paths: ${[...resolvedPaths.entries()]
250
- .map(([resolvedPath, configurationNames]) => `${resolvedPath} (${configurationNames.join(', ')})`)
251
- .join('; ')}. Set ios.project.${settingName === 'INFOPLIST_FILE' ? 'infoPlistPath' : 'entitlementsPath'} explicitly.`);
252
- }
253
- return [...resolvedPaths.keys()][0];
267
+ return resolvedPaths;
268
+ }
269
+ /** Names the build configurations that reference a path, so a missing file can be traced back. */
270
+ function describeReferencingBuildConfigurations(pathsByBuildConfiguration, filePath) {
271
+ const configurationNames = pathsByBuildConfiguration.get(filePath);
272
+ return configurationNames?.length ? ` (referenced by ${configurationNames.join(', ')})` : '';
254
273
  }
255
274
  function resolveXcodePathValue(value, iosRoot, target, configuration) {
256
275
  const substitutions = new Map([
@@ -1 +1 @@
1
- {"version":3,"file":"ios.js","sourceRoot":"","sources":["../../../src/discovery/ios.ts"],"names":[],"mappings":";;;;;;AA6DA,gDA0BC;AAvFD,gEAAiC;AACjC,0DAA4B;AAI5B,kDAAqD;AAIrD,MAAM,yBAAyB,GAAG,iBAAiB,CAAA;AACnD,MAAM,8BAA8B,GAAG,sBAAsB,CAAA;AAC7D,MAAM,6BAA6B,GAAG,qBAAqB,CAAA;AAC3D,MAAM,4BAA4B,GAAG,oCAAoC,CAAA;AA0CzE,MAAa,wBAAyB,SAAQ,wBAAc;IAC1D,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAA;QAC7C,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAA;IACxC,CAAC;CACF;AALD,4DAKC;AAEM,KAAK,UAAU,kBAAkB,CACtC,WAAmB,EACnB,MAAkC;IAElC,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IACzD,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACjE,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,aAAa,CAAC,CAAA;IAC3D,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC7D,MAAM,cAAc,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IAC7D,MAAM,aAAa,GAAG,eAAe,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;IAClE,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC3E,MAAM,UAAU,GAAG,iBAAiB,CAAC,oBAAoB,EAAE,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;IAC9F,MAAM,6BAA6B,GAAG,4BAA4B,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;IAC1G,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,6BAA6B,CAAC,CAAA;IAC5G,MAAM,gBAAgB,GAAG,MAAM,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,6BAA6B,CAAC,CAAA;IAElH,OAAO;QACL,OAAO;QACP,aAAa;QACb,WAAW;QACX,WAAW;QACX,cAAc,EAAE,UAAU,CAAC,IAAI;QAC/B,oBAAoB,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;QAC9E,aAAa;QACb,gBAAgB;KACjB,CAAA;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,WAAmB,EAAE,MAAkC;IACnF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;IAE/D,MAAM,eAAe,CACnB,OAAO,EACP,MAAM,CAAC,OAAO;QACZ,CAAC,CAAC,iDAAiD,OAAO,EAAE;QAC5D,CAAC,CAAC,wCAAwC,OAAO,gEAAgE,CACpH,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,OAAe,EAAE,MAAkC;IACrF,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,MAAM,eAAe,CAAC,MAAM,CAAC,aAAa,EAAE,4CAA4C,MAAM,CAAC,aAAa,EAAE,CAAC,CAAA;QAE/G,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,wBAAwB,CAChC,kEAAkE,MAAM,CAAC,aAAa,EAAE,CACzF,CAAA;QACH,CAAC;QAED,OAAO,MAAM,CAAC,aAAa,CAAA;IAC7B,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IAClE,MAAM,mBAAmB,GAAG,OAAO;SAChC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;SAC3E,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;SAC9C,IAAI,EAAE,CAAA;IAET,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAA;IAC/B,CAAC;IAED,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,wBAAwB,CAChC,8BAA8B,OAAO,wDAAwD,CAC9F,CAAA;IACH,CAAC;IAED,MAAM,IAAI,wBAAwB,CAChC,iDAAiD,OAAO,KAAK,mBAAmB,CAAC,IAAI,CACnF,IAAI,CACL,6CAA6C,CAC/C,CAAA;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,aAAqB;IACrD,MAAM,WAAW,GAAG,mBAAI,CAAC,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAA;IAC/D,MAAM,UAAU,CAAC,WAAW,EAAE,oCAAoC,WAAW,EAAE,CAAC,CAAA;IAChF,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,OAAe,EAAE,MAAkC;IACnF,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAEvE,MAAM,UAAU,CACd,WAAW,EACX,MAAM,CAAC,WAAW;QAChB,CAAC,CAAC,sCAAsC,WAAW,EAAE;QACrD,CAAC,CAAC,6BAA6B,WAAW,yEAAyE,CACtH,CAAA;IAED,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,OAAe,EAAE,WAAmB;IAC3D,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,OAAO,EAAE,yBAAyB,EAAE,WAAW,CAAC,CAAA;IAC9F,MAAM,wBAAwB,GAAG,iBAAiB,CAAC,OAAO,EAAE,6BAA6B,EAAE,WAAW,CAAC,CAAA;IACvG,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,OAAO,EAAE,8BAA8B,EAAE,WAAW,CAAC,CAAA;IAEzG,OAAO;QACL,OAAO,EAAE,kBAAkB,CAAC,mBAAmB,CAAC;QAChD,kBAAkB,EAAE,uBAAuB,CAAC,wBAAwB,CAAC;QACrE,mBAAmB,EAAE,wBAAwB,CAAC,yBAAyB,CAAC;KACzE,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe,EAAE,WAAmB,EAAE,WAAmB;IAClF,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,cAAc,WAAW,qCAAqC,WAAW,eAAe,CAAC,CAAA;IACpH,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,wBAAwB,CAAC,mBAAmB,WAAW,iBAAiB,WAAW,EAAE,CAAC,CAAA;IAClG,CAAC;IAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,OAAO,GAA4B,EAAE,CAAA;IAC3C,MAAM,YAAY,GAAG,uDAAuD,CAAA;IAE5E,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,KAAK,CAAA;QAC1B,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACjD,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QAC/D,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAA;QAEtF,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACvD,SAAQ;QACV,CAAC;QAED,OAAO,CAAC,IAAI,CAAC;YACX,EAAE;YACF,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC;YAC7B,WAAW,EAAE,iBAAiB,CAAC,WAAW,CAAC;YAC3C,wBAAwB;SACzB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAe;IAC9C,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAqC,CAAA;IACvE,MAAM,YAAY,GAAG,uDAAuD,CAAA;IAE5E,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,KAAK,CAAA;QAC1B,MAAM,qBAAqB,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAA;QAE9D,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,SAAQ;QACV,CAAC;QAED,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE;YACzB,EAAE;YACF,qBAAqB;YACrB,wBAAwB,EACtB,iBAAiB,CAAC,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,CAAC,IAAI,EAAE,CAAC,IAAI,SAAS;SACjG,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,kBAAkB,CAAA;AAC3B,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAe;IAC/C,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAsC,CAAA;IACzE,MAAM,YAAY,GAAG,uDAAuD,CAAA;IAE5E,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,KAAK,CAAA;QAC1B,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACjD,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAA;QAExD,IAAI,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACjC,SAAQ;QACV,CAAC;QAED,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAAE;YAC1B,EAAE;YACF,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC;YAC7B,aAAa,EAAE;gBACb,oBAAoB,EAAE,iBAAiB,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;gBACrF,aAAa,EAAE,iBAAiB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;gBACtE,WAAW,EAAE,iBAAiB,CAAC,kBAAkB,EAAE,cAAc,CAAC;aACnE;SACF,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,mBAAmB,CAAA;AAC5B,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAgC;IAC/D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,4BAA4B,CAAC,CAAA;AACxF,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAgC,EAChC,wBAA4C,EAC5C,WAAmB;IAEnB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,wBAAwB,CAAC,4CAA4C,WAAW,EAAE,CAAC,CAAA;IAC/F,CAAC;IAED,IAAI,wBAAwB,EAAE,CAAC;QAC7B,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,wBAAwB,CAAC,CAAA;QAE3F,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,gBAAgB,CAAA;QACzB,CAAC;QAED,MAAM,IAAI,wBAAwB,CAChC,+BAA+B,wBAAwB,mDAAmD,OAAO;aAC9G,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;aAC5B,IAAI,EAAE;aACN,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAA;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IAED,MAAM,IAAI,wBAAwB,CAChC,gDAAgD,OAAO;SACpD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;SAC5B,IAAI,EAAE;SACN,IAAI,CAAC,IAAI,CAAC,8CAA8C,CAC5D,CAAA;AACH,CAAC;AAED,SAAS,4BAA4B,CACnC,OAAyB,EACzB,MAA6B,EAC7B,WAAmB;IAEnB,MAAM,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAA;IAEzF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,wBAAwB,CAChC,4BAA4B,MAAM,CAAC,wBAAwB,gBAAgB,MAAM,CAAC,IAAI,sBAAsB,WAAW,EAAE,CAC1H,CAAA;IACH,CAAC;IAED,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,MAAM,CAC5E,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,CACvE,CAAA;IAED,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,wBAAwB,CAChC,wBAAwB,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,gBACxD,MAAM,CAAC,IACT,uBAAuB,WAAW,EAAE,CACrC,CAAA;IACH,CAAC;IAED,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,qBAAqB;SAChE,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;SAC1E,MAAM,CAAC,CAAC,aAAa,EAA+C,EAAE,CAAC,aAAa,KAAK,SAAS,CAAC,CAAA;IAEtG,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,wBAAwB,CAChC,kDAAkD,MAAM,CAAC,IAAI,QAAQ,WAAW,EAAE,CACnF,CAAA;IACH,CAAC;IAED,MAAM,wBAAwB,GAAG,iBAAiB,CAAC,wBAAwB,CAAA;IAE3E,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC9B,OAAO,mBAAmB,CAAA;IAC5B,CAAC;IAED,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,IAAI,CACnD,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,KAAK,wBAAwB,CACnE,CAAA;IAED,OAAO,oBAAoB;QACzB,CAAC,CAAC,CAAC,oBAAoB,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,KAAK,oBAAoB,CAAC,CAAC;QAClH,CAAC,CAAC,mBAAmB,CAAA;AACzB,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,OAAe,EACf,MAAkC,EAClC,MAA6B,EAC7B,mBAAiD;IAEjD,MAAM,aAAa,GACjB,MAAM,CAAC,aAAa;QACpB,iCAAiC,CAC/B,OAAO,EACP,MAAM,EACN,mBAAmB,EACnB,gBAAgB,EAChB,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAC7D,CAAA;IAEH,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,wBAAwB,CAChC,8CAA8C,MAAM,CAAC,IAAI,8CAA8C,CACxG,CAAA;IACH,CAAC;IAED,MAAM,UAAU,CACd,aAAa,EACb,MAAM,CAAC,aAAa;QAClB,CAAC,CAAC,yCAAyC,aAAa,EAAE;QAC1D,CAAC,CAAC,yCAAyC,aAAa,EAAE,CAC7D,CAAA;IAED,OAAO,aAAa,CAAA;AACtB,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,OAAe,EACf,MAAkC,EAClC,MAA6B,EAC7B,mBAAiD;IAEjD,MAAM,gBAAgB,GACpB,MAAM,CAAC,gBAAgB;QACvB,iCAAiC,CAC/B,OAAO,EACP,MAAM,EACN,mBAAmB,EACnB,wBAAwB,EACxB,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,oBAAoB,CACpE,CAAA;IAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,UAAU,CACd,gBAAgB,EAChB,MAAM,CAAC,gBAAgB;QACrB,CAAC,CAAC,gDAAgD,gBAAgB,EAAE;QACpE,CAAC,CAAC,gDAAgD,gBAAgB,EAAE,CACvE,CAAA;IAED,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAED,SAAS,iCAAiC,CACxC,OAAe,EACf,MAA6B,EAC7B,mBAAiD,EACjD,WAAmB,EACnB,eAAkF;IAElF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoB,CAAA;IAEjD,KAAK,MAAM,aAAa,IAAI,mBAAmB,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,eAAe,CAAC,aAAa,CAAC,CAAA;QAEnD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,SAAQ;QACV,CAAC;QAED,MAAM,YAAY,GAAG,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAA;QACxF,MAAM,kBAAkB,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;QAChE,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAC3C,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAA;IACrD,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,wBAAwB,CAChC,WAAW,MAAM,CAAC,IAAI,cAAc,WAAW,uBAAuB,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC;aAC/F,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAAE,EAAE,CAAC,GAAG,YAAY,KAAK,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;aACjG,IAAI,CAAC,IAAI,CAAC,qBACX,WAAW,KAAK,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBACvD,cAAc,CACf,CAAA;IACH,CAAC;IAED,OAAO,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AACrC,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAa,EACb,OAAe,EACf,MAA6B,EAC7B,aAAyC;IAEzC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAiB;QAC5C,CAAC,aAAa,EAAE,OAAO,CAAC;QACxB,CAAC,SAAS,EAAE,OAAO,CAAC;QACpB,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC;KAC7B,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,aAAa,CAAC,aAAa,CAAC,WAAW,CAAA;IAE3D,IAAI,WAAW,EAAE,CAAC;QAChB,aAAa,CAAC,GAAG,CAAC,cAAc,EAAE,wBAAwB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAA;IACzF,CAAC;IAED,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IAEvE,IAAI,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,wBAAwB,CAChC,+CAA+C,KAAK,iBAAiB,MAAM,CAAC,IAAI,0CAA0C,CAC3H,CAAA;IACH,CAAC;IAED,OAAO,mBAAI,CAAC,SAAS,CAAC,mBAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAA;AACpH,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAa,EAAE,aAAkC;IACjF,IAAI,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAExC,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,SAAS,IAAI,CAAC,EAAE,CAAC;QACtD,IAAI,UAAU,GAAG,KAAK,CAAA;QAEtB,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,8BAA8B,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;YAC/F,MAAM,YAAY,GAAG,WAAW,IAAI,UAAU,CAAA;YAC9C,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YAEpD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAA;YACd,CAAC;YAED,UAAU,GAAG,IAAI,CAAA;YACjB,OAAO,YAAY,CAAA;QACrB,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAK;QACP,CAAC;IACH,CAAC;IAED,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAA;AACrC,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAY;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAEzE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAA;AACnH,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,yCAAyC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACnE,CAAC;AAED,SAAS,iBAAiB,CAAC,kBAA0B,EAAE,WAAmB;IACxE,OAAO,CACL,iBAAiB,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,WAAW,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxG,SAAS,CACV,CAAA;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,SAAiB;IAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,SAAS,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAC9E,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY,EAAE,SAAiB;IAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,SAAS,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACxE,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAEjC,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/D,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAAe,EAAE,OAAe;IAC7D,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAA;IAExC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,wBAAwB,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,wBAAwB,CAAC,0CAA0C,OAAO,EAAE,CAAC,CAAA;IACzF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,OAAe;IACzD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAA;IAEzC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,wBAAwB,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,wBAAwB,CAAC,0CAA0C,QAAQ,EAAE,CAAC,CAAA;IAC1F,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,UAAkB;IAC5C,IAAI,CAAC;QACH,OAAO,MAAM,kBAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAClC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAA;AAC7E,CAAC"}
1
+ {"version":3,"file":"ios.js","sourceRoot":"","sources":["../../../src/discovery/ios.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.diffVoltraState = exports.saveIOSXcodeProject = exports.openIOSXcodeProject = exports.IOSXcodeProjectError = exports.getTargetBuildPhases = exports.getTargetBuildConfigurations = exports.getApplicationTargets = exports.ensureProductsGroup = exports.ensureMainGroupChild = exports.ensureFrameworksGroup = exports.ensurePodfileBlock = exports.IOSPodfileMutationError = exports.ensureInfoPlist = exports.IOSInfoPlistMutationError = exports.ensureEntitlements = exports.IOSEntitlementsMutationError = exports.createIOSPreflightRunner = exports.applyIOSPlatform = exports.ensureIOSWidgetTarget = exports.IOSWidgetTargetMutationError = exports.resolveIOSWidgetTargetName = exports.generateIOSFiles = exports.IOSGeneratedFilesError = exports.ensureAndroidManifest = exports.AndroidManifestMutationError = exports.ensureAndroidGradleWidgetBundling = exports.addDynamicWidgetBundlingSnippet = exports.createAndroidPreflightRunner = exports.applyAndroidPlatform = exports.generateAndroidFiles = exports.AndroidGeneratedFilesError = exports.getGitWorktreeStatus = exports.ensureGitWorktreeIsReady = exports.discoverIOSProject = exports.IOSProjectDiscoveryError = exports.discoverAndroidProject = exports.AndroidProjectDiscoveryError = exports.normalizeVoltraConfig = exports.VoltraConfigNormalizationError = exports.loadVoltraConfig = exports.VoltraConfigLoadError = exports.CLI_DEFAULTS = exports.runApplyCommand = exports.getApplyHelpText = exports.CLI_EXIT_CODE_SUCCESS = exports.CLI_EXIT_CODE_FAILURE = exports.runApplyPreflight = exports.getRequestedPlatforms = exports.runApplyPipeline = exports.applyVoltra = void 0;
4
- exports.VoltraCliError = exports.PreflightError = exports.formatWarning = exports.formatPreflightFailure = exports.formatError = exports.formatDirtyWorktreeWarning = exports.formatApplySummary = exports.formatAmbiguousDiscoveryWarning = exports.renderWarning = exports.renderError = exports.renderCancelled = exports.renderApplySummary = exports.normalizeClackMessage = exports.saveVoltraState = exports.loadVoltraState = exports.getVoltraStatePath = void 0;
3
+ exports.IOSXcodeProjectError = exports.getTargetBuildPhases = exports.getTargetBuildConfigurations = exports.getApplicationTargets = exports.ensureProductsGroup = exports.ensureMainGroupChild = exports.ensureFrameworksGroup = exports.ensurePodfileBlock = exports.IOSPodfileMutationError = exports.ensureInfoPlist = exports.IOSInfoPlistMutationError = exports.ensureEntitlements = exports.IOSEntitlementsMutationError = exports.resolveIOSBuildConfigurationValues = exports.VOLTRA_BUILD_SETTING_PREFIX = exports.IOSBuildConfigurationValueError = exports.createIOSPreflightRunner = exports.applyIOSPlatform = exports.ensureIOSWidgetTarget = exports.IOSWidgetTargetMutationError = exports.resolveIOSWidgetTargetName = exports.generateIOSFiles = exports.IOSGeneratedFilesError = exports.ensureAndroidManifest = exports.AndroidManifestMutationError = exports.ensureAndroidGradleWidgetBundling = exports.addDynamicWidgetBundlingSnippet = exports.createAndroidPreflightRunner = exports.applyAndroidPlatform = exports.generateAndroidFiles = exports.AndroidGeneratedFilesError = exports.getGitWorktreeStatus = exports.ensureGitWorktreeIsReady = exports.discoverIOSProject = exports.IOSProjectDiscoveryError = exports.discoverAndroidProject = exports.AndroidProjectDiscoveryError = exports.normalizeVoltraConfig = exports.VoltraConfigNormalizationError = exports.loadVoltraConfig = exports.VoltraConfigLoadError = exports.CLI_DEFAULTS = exports.runApplyCommand = exports.getApplyHelpText = exports.CLI_EXIT_CODE_SUCCESS = exports.CLI_EXIT_CODE_FAILURE = exports.runApplyPreflight = exports.getRequestedPlatforms = exports.runApplyPipeline = exports.applyVoltra = void 0;
4
+ exports.VoltraCliError = exports.PreflightError = exports.formatWarning = exports.formatPreflightFailure = exports.formatError = exports.formatDirtyWorktreeWarning = exports.formatApplySummary = exports.formatAmbiguousDiscoveryWarning = exports.renderWarning = exports.renderError = exports.renderCancelled = exports.renderApplySummary = exports.normalizeClackMessage = exports.saveVoltraState = exports.loadVoltraState = exports.getVoltraStatePath = exports.diffVoltraState = exports.saveIOSXcodeProject = exports.openIOSXcodeProject = void 0;
5
5
  exports.runCli = runCli;
6
6
  const commander_1 = require("commander");
7
7
  const apply_1 = require("./commands/apply");
@@ -108,6 +108,10 @@ Object.defineProperty(exports, "ensureIOSWidgetTarget", { enumerable: true, get:
108
108
  var apply_5 = require("./platforms/ios/apply");
109
109
  Object.defineProperty(exports, "applyIOSPlatform", { enumerable: true, get: function () { return apply_5.applyIOSPlatform; } });
110
110
  Object.defineProperty(exports, "createIOSPreflightRunner", { enumerable: true, get: function () { return apply_5.createIOSPreflightRunner; } });
111
+ var buildConfigurationValues_1 = require("./platforms/ios/buildConfigurationValues");
112
+ Object.defineProperty(exports, "IOSBuildConfigurationValueError", { enumerable: true, get: function () { return buildConfigurationValues_1.IOSBuildConfigurationValueError; } });
113
+ Object.defineProperty(exports, "VOLTRA_BUILD_SETTING_PREFIX", { enumerable: true, get: function () { return buildConfigurationValues_1.VOLTRA_BUILD_SETTING_PREFIX; } });
114
+ Object.defineProperty(exports, "resolveIOSBuildConfigurationValues", { enumerable: true, get: function () { return buildConfigurationValues_1.resolveIOSBuildConfigurationValues; } });
111
115
  var entitlements_1 = require("./platforms/ios/entitlements");
112
116
  Object.defineProperty(exports, "IOSEntitlementsMutationError", { enumerable: true, get: function () { return entitlements_1.IOSEntitlementsMutationError; } });
113
117
  Object.defineProperty(exports, "ensureEntitlements", { enumerable: true, get: function () { return entitlements_1.ensureEntitlements; } });
@@ -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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"}
@@ -15,6 +15,7 @@ const readWrite_1 = require("../../fs/readWrite");
15
15
  const path_1 = require("../../fs/path");
16
16
  const summary_1 = require("../../reporting/summary");
17
17
  const widgetModule_1 = require("../shared/widgetModule");
18
+ const widgetSizing_1 = require("./widgetSizing");
18
19
  const VALID_DRAWABLE_EXTENSIONS = new Set(['.png', '.jpg', '.jpeg', '.gif', '.webp', '.xml', '.svg']);
19
20
  const FONT_EXTENSIONS = new Set(['.ttf', '.otf', '.woff', '.woff2']);
20
21
  const MAX_IMAGE_SIZE_BYTES = 4096;
@@ -23,6 +24,7 @@ const LOCALIZED_INITIAL_STATE_KEY = '__voltraLocales';
23
24
  const DEFAULT_WIDGET_LOCALE_QUALIFIER = 'en';
24
25
  const ANDROID_DYNAMIC_WIDGET_MANIFEST_PATH = node_path_1.default.join('.voltra', 'manifest.android.json');
25
26
  const ANDROID_WIDGET_CONFIG_DEFAULTS_PATH = node_path_1.default.join('assets', 'voltra', 'widget_config_defaults.json');
27
+ const ANDROID_WIDGET_SERVER_DEFAULTS_PATH = node_path_1.default.join('assets', 'voltra', 'widget_server_defaults.json');
26
28
  class AndroidGeneratedFilesError extends summary_1.VoltraCliError {
27
29
  constructor(message) {
28
30
  super(message, 'VOLTRA_ANDROID_GENERATED_FILES_FAILED');
@@ -35,11 +37,13 @@ function createAndroidGeneratedFilesError(message) {
35
37
  }
36
38
  async function generateAndroidFiles(options) {
37
39
  const { projectRoot, android, discovery } = options;
40
+ const voltraVersion = (0, platformPackages_1.getPlatformClientPackageVersion)(projectRoot, 'android');
38
41
  const resourceRoot = node_path_1.default.join(discovery.appModuleRoot, 'src', 'main');
39
- const detectedWidgets = detectClientRenderedWidgets(projectRoot, android.widgets);
40
42
  const changes = [];
41
43
  const warnings = [];
42
44
  const generatedFiles = new Set();
45
+ const widgetModuleLoader = (0, widgetModule_1.createGeneratedWidgetModuleLoader)(projectRoot, 'android', createAndroidGeneratedFilesError, (message) => warnings.push(message));
46
+ const detectedWidgets = detectClientRenderedWidgets(projectRoot, widgetModuleLoader, android.widgets);
43
47
  mergeSingleResult(await writeGeneratedTextFile(projectRoot, node_path_1.default.join(projectRoot, ANDROID_DYNAMIC_WIDGET_MANIFEST_PATH), `${JSON.stringify(createDynamicWidgetsManifest(detectedWidgets), null, 2)}\n`), changes, generatedFiles);
44
48
  const receiverFiles = await generateWidgetReceivers(projectRoot, discovery, detectedWidgets);
45
49
  mergeResult(receiverFiles, changes, warnings, generatedFiles);
@@ -49,12 +53,16 @@ async function generateAndroidFiles(options) {
49
53
  mergeResult(xmlFiles, changes, warnings, generatedFiles);
50
54
  const fontFiles = await copyAndroidFonts(projectRoot, resourceRoot, android.fonts);
51
55
  mergeResult(fontFiles, changes, warnings, generatedFiles);
52
- const initialStateFiles = await generateAndroidInitialStates(projectRoot, resourceRoot, detectedWidgets);
56
+ const initialStateFiles = await generateAndroidInitialStates(projectRoot, widgetModuleLoader, resourceRoot, detectedWidgets, voltraVersion);
53
57
  mergeResult(initialStateFiles, changes, warnings, generatedFiles);
54
58
  const configDefaultsResult = await generateAndroidConfigDefaults(projectRoot, resourceRoot, detectedWidgets);
55
59
  if (configDefaultsResult) {
56
60
  mergeSingleResult(configDefaultsResult, changes, generatedFiles);
57
61
  }
62
+ const serverDefaultsResult = await generateAndroidServerDefaults(projectRoot, resourceRoot, detectedWidgets);
63
+ if (serverDefaultsResult) {
64
+ mergeSingleResult(serverDefaultsResult, changes, generatedFiles);
65
+ }
58
66
  return {
59
67
  changes,
60
68
  files: [...generatedFiles].sort(),
@@ -115,6 +123,7 @@ async function generateAndroidXmlFiles(projectRoot, resourceRoot, widgets) {
115
123
  const widgetInfoResult = await writeGeneratedTextFile(projectRoot, widgetInfoPath, widgetInfoContent);
116
124
  pushChange(changes, widgetInfoResult.change);
117
125
  generatedFiles.add(widgetInfoResult.relativePath);
126
+ warnings.push(...(0, widgetSizing_1.androidWidgetSizingWarnings)(widget, widget.id));
118
127
  }
119
128
  return {
120
129
  changes,
@@ -244,11 +253,11 @@ async function copyAndroidFonts(projectRoot, resourceRoot, fonts) {
244
253
  warnings,
245
254
  };
246
255
  }
247
- async function generateAndroidInitialStates(projectRoot, resourceRoot, widgets) {
256
+ async function generateAndroidInitialStates(projectRoot, loader, resourceRoot, widgets, voltraVersion) {
248
257
  const serverWidgets = widgets.filter((widget) => !widget.clientRendered);
249
258
  const prerenderableServerWidgets = serverWidgets.filter((widget) => widget.initialStatePath);
250
- const serverStates = await prerenderWidgetStates(projectRoot, prerenderableServerWidgets, loadAndroidWidgetRenderer(projectRoot));
251
- const clientStates = await prerenderClientRenderedAndroidWidgets(projectRoot, widgets);
259
+ const serverStates = await prerenderWidgetStates(loader, prerenderableServerWidgets, loadAndroidWidgetRenderer(projectRoot));
260
+ const clientStates = await prerenderClientRenderedAndroidWidgets(projectRoot, loader, widgets, voltraVersion);
252
261
  const prerenderedStates = new Map([...serverStates, ...clientStates]);
253
262
  if (prerenderedStates.size === 0) {
254
263
  return {
@@ -266,7 +275,7 @@ async function generateAndroidInitialStates(projectRoot, resourceRoot, widgets)
266
275
  warnings: [],
267
276
  };
268
277
  }
269
- async function prerenderWidgetStates(projectRoot, widgets, renderer) {
278
+ async function prerenderWidgetStates(loader, widgets, renderer) {
270
279
  const prerenderedStates = new Map();
271
280
  for (const widget of widgets) {
272
281
  const initialStatePath = widget.initialStatePath;
@@ -281,16 +290,15 @@ async function prerenderWidgetStates(projectRoot, widgets, renderer) {
281
290
  if (!(await (0, readWrite_1.pathExists)(modulePath))) {
282
291
  throw new AndroidGeneratedFilesError(`Initial state file not found for widget '${widget.id}' at ${modulePath}`);
283
292
  }
284
- const widgetVariants = evaluateLegacyWidgetModule(projectRoot, modulePath);
293
+ const widgetVariants = evaluateLegacyWidgetModule(loader, modulePath);
285
294
  localeStates.set(localeKey, renderer(widgetVariants));
286
295
  }
287
296
  prerenderedStates.set(widget.id, localeStates);
288
297
  }
289
298
  return prerenderedStates;
290
299
  }
291
- function evaluateLegacyWidgetModule(projectRoot, filePath) {
292
- const exports = (0, widgetModule_1.evaluateWidgetModuleExports)(projectRoot, filePath, createAndroidGeneratedFilesError);
293
- const widgetVariants = exports.default ?? exports;
300
+ function evaluateLegacyWidgetModule(loader, filePath) {
301
+ const widgetVariants = loader.loadDefaultExport(filePath);
294
302
  if (!widgetVariants || typeof widgetVariants !== 'object') {
295
303
  throw new AndroidGeneratedFilesError(`Widget file must export widget variants: ${filePath}`);
296
304
  }
@@ -322,10 +330,10 @@ function createDynamicWidgetsManifest(widgets) {
322
330
  })),
323
331
  };
324
332
  }
325
- function detectClientRenderedWidgets(projectRoot, widgets) {
326
- return widgets.map((widget) => detectSingleWidget(projectRoot, widget));
333
+ function detectClientRenderedWidgets(projectRoot, loader, widgets) {
334
+ return widgets.map((widget) => detectSingleWidget(projectRoot, loader, widget));
327
335
  }
328
- function detectSingleWidget(projectRoot, widget) {
336
+ function detectSingleWidget(projectRoot, loader, widget) {
329
337
  if (!widget.entry) {
330
338
  return {
331
339
  ...widget,
@@ -336,7 +344,7 @@ function detectSingleWidget(projectRoot, widget) {
336
344
  if (!node_fs_1.default.existsSync(clientSourcePath) || !node_fs_1.default.statSync(clientSourcePath).isFile()) {
337
345
  throw createAndroidGeneratedFilesError(`[voltra] Dynamic Widget "${widget.id}" entry not found at ${widget.entry}`);
338
346
  }
339
- const widgetModule = safelyEvaluateDynamicWidget(projectRoot, widget.id, widget.entry, clientSourcePath);
347
+ const widgetModule = safelyEvaluateDynamicWidget(loader, widget.id, widget.entry, clientSourcePath);
340
348
  const widgetFn = readDynamicWidgetExport(widget.id, widget.entry, widgetModule);
341
349
  if (typeof widgetFn !== 'function') {
342
350
  throw createAndroidGeneratedFilesError(`[voltra] Dynamic Widget "${widget.id}" at ${widget.entry} must default-export a function or component.`);
@@ -348,7 +356,7 @@ function detectSingleWidget(projectRoot, widget) {
348
356
  clientSourcePath,
349
357
  };
350
358
  }
351
- async function prerenderClientRenderedAndroidWidgets(projectRoot, widgets) {
359
+ async function prerenderClientRenderedAndroidWidgets(projectRoot, loader, widgets, voltraVersion) {
352
360
  const clientWidgets = widgets.filter((widget) => widget.clientRendered);
353
361
  if (clientWidgets.length === 0) {
354
362
  return new Map();
@@ -360,12 +368,12 @@ async function prerenderClientRenderedAndroidWidgets(projectRoot, widgets) {
360
368
  colorScheme: 'light',
361
369
  locale: 'en-US',
362
370
  configuration: undefined,
363
- build: widgetModule_1.DYNAMIC_WIDGET_BUILD_INFO,
371
+ build: (0, widgetModule_1.createDynamicWidgetBuildInfo)(voltraVersion),
364
372
  };
365
373
  const prerenderedStates = new Map();
366
374
  for (const widget of clientWidgets) {
367
375
  try {
368
- const widgetModule = safelyEvaluateDynamicWidget(projectRoot, widget.id, widget.entry, widget.clientSourcePath);
376
+ const widgetModule = safelyEvaluateDynamicWidget(loader, widget.id, widget.entry, widget.clientSourcePath);
369
377
  const widgetFn = readDynamicWidgetExport(widget.id, widget.entry, widgetModule);
370
378
  const element = widgetFn({}, placeholderEnv);
371
379
  prerenderedStates.set(widget.id, new Map([[DEFAULT_INITIAL_STATE_LOCALE, JSON.stringify(renderer(element))]]));
@@ -379,9 +387,9 @@ async function prerenderClientRenderedAndroidWidgets(projectRoot, widgets) {
379
387
  }
380
388
  return prerenderedStates;
381
389
  }
382
- function safelyEvaluateDynamicWidget(projectRoot, widgetId, widgetEntry, clientSourcePath) {
390
+ function safelyEvaluateDynamicWidget(loader, widgetId, widgetEntry, clientSourcePath) {
383
391
  try {
384
- return (0, widgetModule_1.evaluateWidgetModuleExports)(projectRoot, clientSourcePath, createAndroidGeneratedFilesError);
392
+ return loader.load(clientSourcePath);
385
393
  }
386
394
  catch (error) {
387
395
  if (error instanceof AndroidGeneratedFilesError) {
@@ -407,6 +415,38 @@ async function generateAndroidConfigDefaults(projectRoot, resourceRoot, widgets)
407
415
  }
408
416
  return writeGeneratedTextFile(projectRoot, node_path_1.default.join(resourceRoot, ANDROID_WIDGET_CONFIG_DEFAULTS_PATH), `${JSON.stringify(defaults, null, 2)}\n`);
409
417
  }
418
+ /**
419
+ * Emits the build-time `serverUpdate` defaults the runtime settings resolver reads as its lowest
420
+ * layer.
421
+ *
422
+ * These used to be Kotlin literals inside each generated receiver. They live in an asset now
423
+ * because the app can override the URL and the interval with `setWidgetServerUpdate`, and a
424
+ * receiver compiled at build time cannot be asked what the interval is today.
425
+ *
426
+ * A widget id present in this file is server-driven. `url` is omitted when app.json declared
427
+ * `serverUpdate` without one, which means the app supplies it at runtime.
428
+ */
429
+ async function generateAndroidServerDefaults(projectRoot, resourceRoot, widgets) {
430
+ const defaults = createWidgetServerDefaults(widgets);
431
+ if (Object.keys(defaults).length === 0) {
432
+ return undefined;
433
+ }
434
+ return writeGeneratedTextFile(projectRoot, node_path_1.default.join(resourceRoot, ANDROID_WIDGET_SERVER_DEFAULTS_PATH), `${JSON.stringify(defaults, null, 2)}\n`);
435
+ }
436
+ function createWidgetServerDefaults(widgets) {
437
+ const defaults = {};
438
+ for (const widget of widgets) {
439
+ if (!widget.serverUpdate) {
440
+ continue;
441
+ }
442
+ defaults[widget.id] = {
443
+ ...(widget.serverUpdate.url !== undefined ? { url: widget.serverUpdate.url } : {}),
444
+ intervalMinutes: widget.serverUpdate.intervalMinutes,
445
+ refresh: widget.serverUpdate.refresh,
446
+ };
447
+ }
448
+ return defaults;
449
+ }
410
450
  function createWidgetConfigDefaults(widgets) {
411
451
  const defaults = {};
412
452
  for (const widget of widgets) {
@@ -588,14 +628,39 @@ async function getLargeImageWarning(imagePath, fileName) {
588
628
  }
589
629
  return `Image '${fileName}' is ${stat.size} bytes. Large Android widget images may not display correctly.`;
590
630
  }
631
+ /**
632
+ * `entry` picks the render engine and `serverUpdate` picks where the data comes from, so the two
633
+ * keys together select one of four base classes. Runtime code never asks "is this server-driven?" —
634
+ * the answer is baked in here, once, at generate time.
635
+ */
591
636
  function generateWidgetReceiverContent(widget, packageName) {
592
637
  const className = `VoltraWidget_${widget.id}Receiver`;
593
638
  const labelForComment = widgetLabelEnglish(widget.displayName);
639
+ // A widget with an entry and a serverUpdate renders bundled JS from props fetched in the
640
+ // background. The scheduling lives in the base class, so the generated receiver stays a name and
641
+ // an id — the URL and the interval come from widget_server_defaults.json at runtime, where
642
+ // setWidgetServerUpdate can override them.
643
+ if (widget.clientRendered && widget.serverUpdate) {
644
+ return [
645
+ `package ${packageName}.widget`,
646
+ '',
647
+ 'import voltra.dynamicwidget.serverupdate.VoltraServerDrivenClientWidgetReceiver',
648
+ '',
649
+ '/**',
650
+ ` * Auto-generated server-driven Dynamic Widget receiver for ${labelForComment}`,
651
+ ` * Widget ID: ${widget.id}`,
652
+ ' */',
653
+ `class ${className} : VoltraServerDrivenClientWidgetReceiver() {`,
654
+ ` override val widgetId: String = "${widget.id}"`,
655
+ '}',
656
+ '',
657
+ ].join('\n');
658
+ }
594
659
  if (widget.clientRendered) {
595
660
  return [
596
661
  `package ${packageName}.widget`,
597
662
  '',
598
- 'import voltra.widget.VoltraClientWidgetReceiver',
663
+ 'import voltra.dynamicwidget.VoltraClientWidgetReceiver',
599
664
  '',
600
665
  '/**',
601
666
  ` * Auto-generated Dynamic Widget receiver for ${labelForComment}`,
@@ -608,34 +673,30 @@ function generateWidgetReceiverContent(widget, packageName) {
608
673
  ].join('\n');
609
674
  }
610
675
  if (widget.serverUpdate) {
611
- const refreshEnabled = widget.serverUpdate.refresh === true;
612
676
  return [
613
677
  `package ${packageName}.widget`,
614
678
  '',
615
679
  'import android.appwidget.AppWidgetManager',
616
680
  'import android.content.Context',
617
- 'import voltra.widget.VoltraWidgetReceiver',
618
- 'import voltra.widget.VoltraWidgetUpdateScheduler',
681
+ 'import kotlinx.coroutines.runBlocking',
682
+ 'import voltra.widget.payload.VoltraPayloadWidgetReceiver',
683
+ 'import voltra.widget.payload.VoltraWidgetUpdateScheduler',
619
684
  '',
620
685
  '/**',
621
686
  ` * Auto-generated widget receiver for ${labelForComment}`,
622
687
  ` * Widget ID: ${widget.id}`,
623
- ` * Server Update: ${widget.serverUpdate.url} (every ${widget.serverUpdate.intervalMinutes} minutes)`,
624
- ` * Refresh Button: ${String(refreshEnabled)}`,
625
688
  ' */',
626
- `class ${className} : VoltraWidgetReceiver() {`,
689
+ `class ${className} : VoltraPayloadWidgetReceiver() {`,
627
690
  ` override val widgetId: String = "${widget.id}"`,
628
691
  '',
629
692
  ' override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) {',
630
693
  ' super.onUpdate(context, appWidgetManager, appWidgetIds)',
631
694
  '',
632
- ' VoltraWidgetUpdateScheduler.schedulePeriodicUpdate(',
633
- ' context = context,',
634
- ` widgetId = "${widget.id}",`,
635
- ` serverUrl = "${widget.serverUpdate.url}",`,
636
- ` intervalMinutes = ${widget.serverUpdate.intervalMinutes}L,`,
637
- ` refreshEnabled = ${String(refreshEnabled)}`,
638
- ' )',
695
+ ' // Blocking rather than launching: onReceive must not return before the work is',
696
+ ' // enqueued, or a widget added while the app is not running loses its schedule.',
697
+ ' runBlocking {',
698
+ ` VoltraWidgetUpdateScheduler.schedulePeriodicUpdate(context.applicationContext, "${widget.id}")`,
699
+ ' }',
639
700
  ' }',
640
701
  '',
641
702
  ' override fun onDeleted(context: Context, appWidgetIds: IntArray) {',
@@ -660,28 +721,25 @@ function generateWidgetReceiverContent(widget, packageName) {
660
721
  return [
661
722
  `package ${packageName}.widget`,
662
723
  '',
663
- 'import voltra.widget.VoltraWidgetReceiver',
724
+ 'import voltra.widget.payload.VoltraPayloadWidgetReceiver',
664
725
  '',
665
726
  '/**',
666
727
  ` * Auto-generated widget receiver for ${labelForComment}`,
667
728
  ` * Widget ID: ${widget.id}`,
668
729
  ' */',
669
- `class ${className} : VoltraWidgetReceiver() {`,
730
+ `class ${className} : VoltraPayloadWidgetReceiver() {`,
670
731
  ` override val widgetId: String = "${widget.id}"`,
671
732
  '}',
672
733
  '',
673
734
  ].join('\n');
674
735
  }
675
736
  function generateWidgetInfoXml(widget, previewImageResourceName, previewLayoutResourceName) {
676
- const minWidth = widget.minWidth ?? (widget.minCellWidth !== undefined ? widget.minCellWidth * 70 - 30 : undefined);
677
- const minHeight = widget.minHeight ?? (widget.minCellHeight !== undefined ? widget.minCellHeight * 70 - 30 : undefined);
678
737
  const resizeMode = widget.resizeMode ?? 'horizontal|vertical';
679
738
  const widgetCategory = widget.widgetCategory ?? 'home_screen';
680
739
  const lines = [
681
740
  '<?xml version="1.0" encoding="utf-8"?>',
682
- `<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"${minWidth !== undefined ? ` android:minWidth="${minWidth}dp"` : ''}${minHeight !== undefined ? ` android:minHeight="${minHeight}dp"` : ''}`,
683
- ` android:targetCellWidth="${widget.targetCellWidth}"`,
684
- ` android:targetCellHeight="${widget.targetCellHeight}"`,
741
+ '<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"',
742
+ ...(0, widgetSizing_1.androidWidgetSizingAttributes)(widget).map((attribute) => ` ${attribute}`),
685
743
  ' android:updatePeriodMillis="0"',
686
744
  ' android:initialLayout="@layout/voltra_widget_placeholder"',
687
745
  ` android:resizeMode="${resizeMode}"`,