@use-voltra/ios-client 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 (289) hide show
  1. package/Voltra.podspec +1 -0
  2. package/build/commonjs/events.js +23 -0
  3. package/build/commonjs/events.js.map +1 -1
  4. package/build/commonjs/index.js +59 -0
  5. package/build/commonjs/index.js.map +1 -1
  6. package/build/commonjs/live-activity/api.js +3 -1
  7. package/build/commonjs/live-activity/api.js.map +1 -1
  8. package/build/commonjs/live-activity/dynamic-api.js +173 -0
  9. package/build/commonjs/live-activity/dynamic-api.js.map +1 -0
  10. package/build/commonjs/native/NativeVoltra.js.map +1 -1
  11. package/build/commonjs/utils/enableDynamicLiveActivityHotReload.js +47 -0
  12. package/build/commonjs/utils/enableDynamicLiveActivityHotReload.js.map +1 -0
  13. package/build/commonjs/utils/enableWidgetHotReload.js +8 -11
  14. package/build/commonjs/utils/enableWidgetHotReload.js.map +1 -1
  15. package/build/commonjs/utils/useUpdateOnHMR.js +3 -7
  16. package/build/commonjs/utils/useUpdateOnHMR.js.map +1 -1
  17. package/build/commonjs/widgets/server-credentials.js +9 -0
  18. package/build/commonjs/widgets/server-credentials.js.map +1 -1
  19. package/build/commonjs/widgets/server-update.js +78 -0
  20. package/build/commonjs/widgets/server-update.js.map +1 -0
  21. package/build/module/events.js +23 -0
  22. package/build/module/events.js.map +1 -1
  23. package/build/module/index.js +3 -0
  24. package/build/module/index.js.map +1 -1
  25. package/build/module/live-activity/api.js +2 -2
  26. package/build/module/live-activity/api.js.map +1 -1
  27. package/build/module/live-activity/dynamic-api.js +167 -0
  28. package/build/module/live-activity/dynamic-api.js.map +1 -0
  29. package/build/module/native/NativeVoltra.js.map +1 -1
  30. package/build/module/utils/enableDynamicLiveActivityHotReload.js +43 -0
  31. package/build/module/utils/enableDynamicLiveActivityHotReload.js.map +1 -0
  32. package/build/module/utils/enableWidgetHotReload.js +9 -11
  33. package/build/module/utils/enableWidgetHotReload.js.map +1 -1
  34. package/build/module/utils/useUpdateOnHMR.js +3 -7
  35. package/build/module/utils/useUpdateOnHMR.js.map +1 -1
  36. package/build/module/widgets/server-credentials.js +9 -0
  37. package/build/module/widgets/server-credentials.js.map +1 -1
  38. package/build/module/widgets/server-update.js +72 -0
  39. package/build/module/widgets/server-update.js.map +1 -0
  40. package/build/typescript/commonjs/events.d.ts +7 -0
  41. package/build/typescript/commonjs/events.d.ts.map +1 -1
  42. package/build/typescript/commonjs/index.d.ts +3 -0
  43. package/build/typescript/commonjs/index.d.ts.map +1 -1
  44. package/build/typescript/commonjs/live-activity/api.d.ts +7 -0
  45. package/build/typescript/commonjs/live-activity/api.d.ts.map +1 -1
  46. package/build/typescript/commonjs/live-activity/dynamic-api.d.ts +54 -0
  47. package/build/typescript/commonjs/live-activity/dynamic-api.d.ts.map +1 -0
  48. package/build/typescript/commonjs/native/NativeVoltra.d.ts +20 -0
  49. package/build/typescript/commonjs/native/NativeVoltra.d.ts.map +1 -1
  50. package/build/typescript/commonjs/types.d.ts +1 -1
  51. package/build/typescript/commonjs/types.d.ts.map +1 -1
  52. package/build/typescript/commonjs/utils/enableDynamicLiveActivityHotReload.d.ts +15 -0
  53. package/build/typescript/commonjs/utils/enableDynamicLiveActivityHotReload.d.ts.map +1 -0
  54. package/build/typescript/commonjs/utils/enableWidgetHotReload.d.ts +5 -7
  55. package/build/typescript/commonjs/utils/enableWidgetHotReload.d.ts.map +1 -1
  56. package/build/typescript/commonjs/utils/useUpdateOnHMR.d.ts +0 -3
  57. package/build/typescript/commonjs/utils/useUpdateOnHMR.d.ts.map +1 -1
  58. package/build/typescript/commonjs/widgets/server-credentials.d.ts +8 -0
  59. package/build/typescript/commonjs/widgets/server-credentials.d.ts.map +1 -1
  60. package/build/typescript/commonjs/widgets/server-update.d.ts +64 -0
  61. package/build/typescript/commonjs/widgets/server-update.d.ts.map +1 -0
  62. package/build/typescript/module/events.d.ts +7 -0
  63. package/build/typescript/module/events.d.ts.map +1 -1
  64. package/build/typescript/module/index.d.ts +3 -0
  65. package/build/typescript/module/index.d.ts.map +1 -1
  66. package/build/typescript/module/live-activity/api.d.ts +7 -0
  67. package/build/typescript/module/live-activity/api.d.ts.map +1 -1
  68. package/build/typescript/module/live-activity/dynamic-api.d.ts +54 -0
  69. package/build/typescript/module/live-activity/dynamic-api.d.ts.map +1 -0
  70. package/build/typescript/module/native/NativeVoltra.d.ts +20 -0
  71. package/build/typescript/module/native/NativeVoltra.d.ts.map +1 -1
  72. package/build/typescript/module/types.d.ts +1 -1
  73. package/build/typescript/module/types.d.ts.map +1 -1
  74. package/build/typescript/module/utils/enableDynamicLiveActivityHotReload.d.ts +15 -0
  75. package/build/typescript/module/utils/enableDynamicLiveActivityHotReload.d.ts.map +1 -0
  76. package/build/typescript/module/utils/enableWidgetHotReload.d.ts +5 -7
  77. package/build/typescript/module/utils/enableWidgetHotReload.d.ts.map +1 -1
  78. package/build/typescript/module/utils/useUpdateOnHMR.d.ts +0 -3
  79. package/build/typescript/module/utils/useUpdateOnHMR.d.ts.map +1 -1
  80. package/build/typescript/module/widgets/server-credentials.d.ts +8 -0
  81. package/build/typescript/module/widgets/server-credentials.d.ts.map +1 -1
  82. package/build/typescript/module/widgets/server-update.d.ts +64 -0
  83. package/build/typescript/module/widgets/server-update.d.ts.map +1 -0
  84. package/expo-plugin/build/cjs/constants.js +20 -1
  85. package/expo-plugin/build/cjs/constants.js.map +1 -1
  86. package/expo-plugin/build/cjs/index.js +6 -0
  87. package/expo-plugin/build/cjs/index.js.map +1 -1
  88. package/expo-plugin/build/cjs/ios/index.js +1 -0
  89. package/expo-plugin/build/cjs/ios/index.js.map +1 -1
  90. package/expo-plugin/build/cjs/ios/infoPlist.js +28 -5
  91. package/expo-plugin/build/cjs/ios/infoPlist.js.map +1 -1
  92. package/expo-plugin/build/cjs/ios/serverUpdate.js +25 -0
  93. package/expo-plugin/build/cjs/ios/serverUpdate.js.map +1 -0
  94. package/expo-plugin/build/cjs/ios-widget/clientRendered.js +4 -4
  95. package/expo-plugin/build/cjs/ios-widget/clientRendered.js.map +1 -1
  96. package/expo-plugin/build/cjs/ios-widget/clientRenderedPrerender.js +5 -5
  97. package/expo-plugin/build/cjs/ios-widget/clientRenderedPrerender.js.map +1 -1
  98. package/expo-plugin/build/cjs/ios-widget/dynamic-live-activity/swift.js +130 -0
  99. package/expo-plugin/build/cjs/ios-widget/dynamic-live-activity/swift.js.map +1 -0
  100. package/expo-plugin/build/cjs/ios-widget/files/index.js +9 -2
  101. package/expo-plugin/build/cjs/ios-widget/files/index.js.map +1 -1
  102. package/expo-plugin/build/cjs/ios-widget/files/infoPlist.js +6 -3
  103. package/expo-plugin/build/cjs/ios-widget/files/infoPlist.js.map +1 -1
  104. package/expo-plugin/build/cjs/ios-widget/files/manifest.js +24 -0
  105. package/expo-plugin/build/cjs/ios-widget/files/manifest.js.map +1 -1
  106. package/expo-plugin/build/cjs/ios-widget/files/swift-utils.js +7 -0
  107. package/expo-plugin/build/cjs/ios-widget/files/swift-utils.js.map +1 -0
  108. package/expo-plugin/build/cjs/ios-widget/files/swift.js +56 -26
  109. package/expo-plugin/build/cjs/ios-widget/files/swift.js.map +1 -1
  110. package/expo-plugin/build/cjs/ios-widget/index.js +9 -3
  111. package/expo-plugin/build/cjs/ios-widget/index.js.map +1 -1
  112. package/expo-plugin/build/cjs/ios-widget/widgetPlist.js +34 -22
  113. package/expo-plugin/build/cjs/ios-widget/widgetPlist.js.map +1 -1
  114. package/expo-plugin/build/cjs/ios-widget/xcode/buildPhases.js +51 -11
  115. package/expo-plugin/build/cjs/ios-widget/xcode/buildPhases.js.map +1 -1
  116. package/expo-plugin/build/cjs/ios-widget/xcode/index.js +21 -5
  117. package/expo-plugin/build/cjs/ios-widget/xcode/index.js.map +1 -1
  118. package/expo-plugin/build/cjs/utils/urlScheme.js +36 -14
  119. package/expo-plugin/build/cjs/utils/urlScheme.js.map +1 -1
  120. package/expo-plugin/build/cjs/validation.js +54 -0
  121. package/expo-plugin/build/cjs/validation.js.map +1 -1
  122. package/expo-plugin/build/esm/constants.js +17 -0
  123. package/expo-plugin/build/esm/constants.js.map +1 -1
  124. package/expo-plugin/build/esm/index.js +6 -0
  125. package/expo-plugin/build/esm/index.js.map +1 -1
  126. package/expo-plugin/build/esm/ios/index.js +1 -0
  127. package/expo-plugin/build/esm/ios/index.js.map +1 -1
  128. package/expo-plugin/build/esm/ios/infoPlist.js +28 -5
  129. package/expo-plugin/build/esm/ios/infoPlist.js.map +1 -1
  130. package/expo-plugin/build/esm/ios/serverUpdate.js +21 -0
  131. package/expo-plugin/build/esm/ios/serverUpdate.js.map +1 -0
  132. package/expo-plugin/build/esm/ios-widget/clientRendered.js +5 -5
  133. package/expo-plugin/build/esm/ios-widget/clientRendered.js.map +1 -1
  134. package/expo-plugin/build/esm/ios-widget/clientRenderedPrerender.js +6 -6
  135. package/expo-plugin/build/esm/ios-widget/clientRenderedPrerender.js.map +1 -1
  136. package/expo-plugin/build/esm/ios-widget/dynamic-live-activity/swift.js +122 -0
  137. package/expo-plugin/build/esm/ios-widget/dynamic-live-activity/swift.js.map +1 -0
  138. package/expo-plugin/build/esm/ios-widget/files/index.js +10 -3
  139. package/expo-plugin/build/esm/ios-widget/files/index.js.map +1 -1
  140. package/expo-plugin/build/esm/ios-widget/files/infoPlist.js +6 -3
  141. package/expo-plugin/build/esm/ios-widget/files/infoPlist.js.map +1 -1
  142. package/expo-plugin/build/esm/ios-widget/files/manifest.js +23 -1
  143. package/expo-plugin/build/esm/ios-widget/files/manifest.js.map +1 -1
  144. package/expo-plugin/build/esm/ios-widget/files/swift-utils.js +4 -0
  145. package/expo-plugin/build/esm/ios-widget/files/swift-utils.js.map +1 -0
  146. package/expo-plugin/build/esm/ios-widget/files/swift.js +50 -20
  147. package/expo-plugin/build/esm/ios-widget/files/swift.js.map +1 -1
  148. package/expo-plugin/build/esm/ios-widget/index.js +9 -3
  149. package/expo-plugin/build/esm/ios-widget/index.js.map +1 -1
  150. package/expo-plugin/build/esm/ios-widget/widgetPlist.js +34 -22
  151. package/expo-plugin/build/esm/ios-widget/widgetPlist.js.map +1 -1
  152. package/expo-plugin/build/esm/ios-widget/xcode/buildPhases.js +51 -11
  153. package/expo-plugin/build/esm/ios-widget/xcode/buildPhases.js.map +1 -1
  154. package/expo-plugin/build/esm/ios-widget/xcode/index.js +21 -5
  155. package/expo-plugin/build/esm/ios-widget/xcode/index.js.map +1 -1
  156. package/expo-plugin/build/esm/utils/urlScheme.js +34 -14
  157. package/expo-plugin/build/esm/utils/urlScheme.js.map +1 -1
  158. package/expo-plugin/build/esm/validation.js +54 -1
  159. package/expo-plugin/build/esm/validation.js.map +1 -1
  160. package/expo-plugin/build/types/constants.d.ts +10 -1
  161. package/expo-plugin/build/types/constants.d.ts.map +1 -1
  162. package/expo-plugin/build/types/index.d.ts +1 -1
  163. package/expo-plugin/build/types/index.d.ts.map +1 -1
  164. package/expo-plugin/build/types/ios/index.d.ts +2 -0
  165. package/expo-plugin/build/types/ios/index.d.ts.map +1 -1
  166. package/expo-plugin/build/types/ios/infoPlist.d.ts +2 -0
  167. package/expo-plugin/build/types/ios/infoPlist.d.ts.map +1 -1
  168. package/expo-plugin/build/types/ios/serverUpdate.d.ts +11 -0
  169. package/expo-plugin/build/types/ios/serverUpdate.d.ts.map +1 -0
  170. package/expo-plugin/build/types/ios-widget/clientRendered.d.ts.map +1 -1
  171. package/expo-plugin/build/types/ios-widget/clientRenderedPrerender.d.ts.map +1 -1
  172. package/expo-plugin/build/types/ios-widget/dynamic-live-activity/swift.d.ts +7 -0
  173. package/expo-plugin/build/types/ios-widget/dynamic-live-activity/swift.d.ts.map +1 -0
  174. package/expo-plugin/build/types/ios-widget/files/index.d.ts +3 -1
  175. package/expo-plugin/build/types/ios-widget/files/index.d.ts.map +1 -1
  176. package/expo-plugin/build/types/ios-widget/files/infoPlist.d.ts +2 -1
  177. package/expo-plugin/build/types/ios-widget/files/infoPlist.d.ts.map +1 -1
  178. package/expo-plugin/build/types/ios-widget/files/manifest.d.ts +9 -2
  179. package/expo-plugin/build/types/ios-widget/files/manifest.d.ts.map +1 -1
  180. package/expo-plugin/build/types/ios-widget/files/swift-utils.d.ts +2 -0
  181. package/expo-plugin/build/types/ios-widget/files/swift-utils.d.ts.map +1 -0
  182. package/expo-plugin/build/types/ios-widget/files/swift.d.ts +6 -2
  183. package/expo-plugin/build/types/ios-widget/files/swift.d.ts.map +1 -1
  184. package/expo-plugin/build/types/ios-widget/index.d.ts +3 -1
  185. package/expo-plugin/build/types/ios-widget/index.d.ts.map +1 -1
  186. package/expo-plugin/build/types/ios-widget/widgetPlist.d.ts.map +1 -1
  187. package/expo-plugin/build/types/ios-widget/xcode/buildPhases.d.ts +3 -1
  188. package/expo-plugin/build/types/ios-widget/xcode/buildPhases.d.ts.map +1 -1
  189. package/expo-plugin/build/types/ios-widget/xcode/index.d.ts +2 -1
  190. package/expo-plugin/build/types/ios-widget/xcode/index.d.ts.map +1 -1
  191. package/expo-plugin/build/types/types.d.ts +23 -4
  192. package/expo-plugin/build/types/types.d.ts.map +1 -1
  193. package/expo-plugin/build/types/utils/urlScheme.d.ts +16 -0
  194. package/expo-plugin/build/types/utils/urlScheme.d.ts.map +1 -1
  195. package/expo-plugin/build/types/validation.d.ts +2 -1
  196. package/expo-plugin/build/types/validation.d.ts.map +1 -1
  197. package/expo-plugin/src/constants.ts +24 -1
  198. package/expo-plugin/src/index.ts +9 -0
  199. package/expo-plugin/src/ios/index.ts +3 -0
  200. package/expo-plugin/src/ios/infoPlist.ts +33 -5
  201. package/expo-plugin/src/ios/serverUpdate.ts +29 -0
  202. package/expo-plugin/src/ios-widget/clientRendered.ts +9 -5
  203. package/expo-plugin/src/ios-widget/clientRenderedPrerender.ts +11 -6
  204. package/expo-plugin/src/ios-widget/dynamic-live-activity/swift.ts +138 -0
  205. package/expo-plugin/src/ios-widget/files/index.ts +15 -4
  206. package/expo-plugin/src/ios-widget/files/infoPlist.ts +17 -3
  207. package/expo-plugin/src/ios-widget/files/manifest.ts +42 -2
  208. package/expo-plugin/src/ios-widget/files/swift-utils.ts +3 -0
  209. package/expo-plugin/src/ios-widget/files/swift.ts +69 -22
  210. package/expo-plugin/src/ios-widget/index.ts +13 -3
  211. package/expo-plugin/src/ios-widget/widgetPlist.ts +37 -23
  212. package/expo-plugin/src/ios-widget/xcode/__snapshots__/applyXcodeChanges.node.test.ts.snap +34 -28
  213. package/expo-plugin/src/ios-widget/xcode/buildPhases.ts +59 -12
  214. package/expo-plugin/src/ios-widget/xcode/index.ts +23 -6
  215. package/expo-plugin/src/types.ts +28 -4
  216. package/expo-plugin/src/utils/urlScheme.ts +47 -17
  217. package/expo-plugin/src/validation.ts +76 -1
  218. package/ios/Package.swift +32 -3
  219. package/ios/VoltraWidget.podspec +1 -0
  220. package/ios/app/NativeVoltra.mm +107 -7
  221. package/ios/app/VoltraLiveActivityManager.swift +30 -0
  222. package/ios/app/VoltraLiveActivityService.swift +77 -5
  223. package/ios/app/VoltraModule.swift +99 -1
  224. package/ios/app/VoltraModuleImpl.swift +100 -2
  225. package/ios/app/VoltraViewComponentView.mm +3 -3
  226. package/ios/app/VoltraWidgetService.swift +147 -12
  227. package/ios/app/dynamic-live-activity/VoltraDynamicLiveActivityService.swift +97 -0
  228. package/ios/app/dynamic-live-activity/VoltraLiveActivityChronology.swift +68 -0
  229. package/ios/shared/DynamicWidgetPropsStore.swift +73 -6
  230. package/ios/shared/DynamicWidgetServerUpdate/DynamicWidgetServerFetchResolver.swift +34 -0
  231. package/ios/shared/DynamicWidgetServerUpdate/DynamicWidgetServerProps.swift +55 -0
  232. package/ios/shared/DynamicWidgetServerUpdate/DynamicWidgetServerPropsStore.swift +146 -0
  233. package/ios/shared/DynamicWidgetServerUpdate/DynamicWidgetServerUpdateRunner.swift +193 -0
  234. package/ios/shared/ServerWidgetContentResolver.swift +60 -0
  235. package/ios/shared/ServerWidgetResponseStore.swift +25 -0
  236. package/ios/shared/ShortNames.swift +6 -0
  237. package/ios/shared/VoltraConfig.swift +41 -0
  238. package/ios/shared/VoltraConstants.swift +15 -0
  239. package/ios/shared/VoltraElement.swift +127 -43
  240. package/ios/shared/VoltraEventBus.swift +52 -7
  241. package/ios/shared/VoltraJSRenderer.swift +90 -22
  242. package/ios/shared/VoltraNode.swift +1 -109
  243. package/ios/shared/VoltraRefreshIntent.swift +1 -1
  244. package/ios/shared/VoltraWidgetKind.swift +41 -0
  245. package/ios/shared/VoltraWidgetServerFetcher.swift +52 -107
  246. package/ios/shared/WidgetServer/VoltraWidgetAppearance.swift +17 -0
  247. package/ios/shared/WidgetServer/VoltraWidgetServer.swift +138 -0
  248. package/ios/shared/WidgetServer/WidgetCanonicalConfiguration.swift +77 -0
  249. package/ios/shared/WidgetServer/WidgetScope.swift +55 -0
  250. package/ios/shared/WidgetServer/WidgetServerEtagStore.swift +55 -0
  251. package/ios/shared/WidgetServer/WidgetServerFetcher.swift +179 -0
  252. package/ios/shared/WidgetServer/WidgetServerRequestBuilder.swift +114 -0
  253. package/ios/shared/WidgetServer/WidgetServerSettingsCodec.swift +47 -0
  254. package/ios/shared/WidgetServer/WidgetServerSettingsResolver.swift +129 -0
  255. package/ios/shared/WidgetServer/WidgetServerSettingsStore.swift +170 -0
  256. package/ios/shared/WidgetServer/WidgetServerSettingsValidator.swift +73 -0
  257. package/ios/shared/WidgetServer/WidgetServerUpdateSettings.swift +123 -0
  258. package/ios/shared/WidgetServer/WidgetServerUpdateSettingsJson.swift +115 -0
  259. package/ios/shared/dynamic-live-activity/DynamicLiveActivityPropsCodec.swift +13 -0
  260. package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityBundleSource.swift +156 -0
  261. package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityObserver.swift +97 -0
  262. package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityOperations.swift +105 -0
  263. package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityPayloadValidator.swift +55 -0
  264. package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityRegistry.swift +143 -0
  265. package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityRenderFailureQueue.swift +158 -0
  266. package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityRenderFailureReporter.swift +120 -0
  267. package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityRenderer.swift +370 -0
  268. package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityTypes.swift +87 -0
  269. package/ios/shared/dynamic-live-activity/VoltraLiveActivityOrder.swift +19 -0
  270. package/ios/target/VoltraClientWidgetRuntime.swift +44 -6
  271. package/ios/target/VoltraDynamicWidgetServerUpdateProvider.swift +204 -0
  272. package/ios/target/VoltraHomeWidget.swift +85 -90
  273. package/ios/ui/Extensions/VoltraNode+View.swift +113 -0
  274. package/ios/ui/Generated/Parameters/ChartParameters.swift +3 -0
  275. package/ios/ui/Helpers/VoltraDeepLinkResolver.swift +2 -2
  276. package/ios/ui/Views/VoltraChart.swift +108 -0
  277. package/package.json +4 -4
  278. package/src/events.ts +34 -0
  279. package/src/index.ts +22 -0
  280. package/src/live-activity/api.ts +2 -2
  281. package/src/live-activity/dynamic-api.ts +240 -0
  282. package/src/native/NativeVoltra.ts +21 -0
  283. package/src/types.ts +4 -0
  284. package/src/utils/enableDynamicLiveActivityHotReload.ts +50 -0
  285. package/src/utils/enableWidgetHotReload.ts +9 -16
  286. package/src/utils/useUpdateOnHMR.ts +3 -12
  287. package/src/widgets/server-credentials.ts +8 -0
  288. package/src/widgets/server-update.ts +84 -0
  289. /package/ios/shared/{VoltraKeychainHelper.swift → WidgetServer/VoltraKeychainHelper.swift} +0 -0
@@ -38,14 +38,16 @@ exports.ensureBuildPhases = ensureBuildPhases;
38
38
  const util = __importStar(require("util"));
39
39
  const fileReferences_1 = require("./fileReferences");
40
40
  const pbxFile = require('xcode/lib/pbxFile');
41
- const WIDGET_BUNDLE_PHASE_NAME = 'Bundle Voltra Dynamic Widgets';
41
+ const WIDGET_BUNDLE_PHASE_NAME = 'Bundle Voltra Dynamic Content';
42
+ const LEGACY_WIDGET_BUNDLE_PHASE_NAME = 'Bundle Voltra Dynamic Widgets';
42
43
  // Release-only build phase that bakes each Dynamic Widget's production JS bundle into the
43
44
  // extension's resources. Debug builds fetch from Metro (and hot-reload), so this no-ops there. Runs
44
45
  // the project's widget bundler with the extension's resources dir as the output, so each
45
46
  // voltra-widget-<id>.bundle lands in the .appex (Bundle.main) where the runtime's release loader
46
47
  // reads it. SRCROOT is the ios/ dir; the project root is one level up, matching how Expo's main
47
48
  // "Bundle React Native code and images" phase resolves things.
48
- const WIDGET_BUNDLE_SHELL_SCRIPT = `if [[ "$CONFIGURATION" == *Debug* ]]; then
49
+ function bundleShellScript(content) {
50
+ return `if [[ "$CONFIGURATION" == *Debug* ]]; then
49
51
  echo "Voltra: Debug build — Dynamic Widgets load from Metro, skipping bundling"
50
52
  exit 0
51
53
  fi
@@ -79,6 +81,7 @@ try {
79
81
  console.error(error && error.message ? error.message : String(error))
80
82
  process.exit(1)
81
83
  }
84
+
82
85
  NODE
83
86
  )"
84
87
  if [[ -z "$BUNDLER" ]]; then
@@ -87,13 +90,17 @@ if [[ -z "$BUNDLER" ]]; then
87
90
  fi
88
91
 
89
92
  echo "Voltra: widget bundler resolved to $BUNDLER"
90
- "$NODE_BINARY" "$BUNDLER" --out-dir "$TARGET_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH" --platform ios --project-root "$PROJECT_ROOT"
93
+ "$NODE_BINARY" "$BUNDLER" --out-dir "$TARGET_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH" --platform ios --project-root "$PROJECT_ROOT" --content ${content}
91
94
  `;
95
+ }
96
+ function pbxQuotedShellScript(script) {
97
+ return `"${script.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n')}"`;
98
+ }
92
99
  /**
93
100
  * Adds (idempotently) the release-only shell-script phase that bakes Dynamic Widget
94
101
  * bundles into the extension. Safe to call on every prebuild; only added when absent.
95
102
  */
96
- function ensureWidgetBundleScriptPhase(xcodeProject, targetUuid) {
103
+ function ensureWidgetBundleScriptPhase(xcodeProject, targetUuid, content = 'all') {
97
104
  const nativeTargets = xcodeProject.pbxNativeTargetSection();
98
105
  const target = nativeTargets[targetUuid];
99
106
  if (!target) {
@@ -104,14 +111,37 @@ function ensureWidgetBundleScriptPhase(xcodeProject, targetUuid) {
104
111
  }
105
112
  const shellPhases = xcodeProject.hash.project.objects.PBXShellScriptBuildPhase || {};
106
113
  const quotedName = `"${WIDGET_BUNDLE_PHASE_NAME}"`;
107
- const alreadyPresent = target.buildPhases.some((entry) => shellPhases[entry.value]?.name === quotedName);
108
- if (alreadyPresent) {
109
- return;
110
- }
111
- xcodeProject.addBuildPhase([], 'PBXShellScriptBuildPhase', WIDGET_BUNDLE_PHASE_NAME, targetUuid, {
112
- shellPath: '/bin/sh',
113
- shellScript: WIDGET_BUNDLE_SHELL_SCRIPT,
114
+ const quotedLegacyName = `"${LEGACY_WIDGET_BUNDLE_PHASE_NAME}"`;
115
+ const matchingEntries = target.buildPhases.filter((entry) => {
116
+ const name = shellPhases[entry.value]?.name;
117
+ return name === quotedName || name === quotedLegacyName;
114
118
  });
119
+ let phase;
120
+ if (matchingEntries.length > 0) {
121
+ const retained = matchingEntries[0];
122
+ phase = shellPhases[retained.value];
123
+ phase.name = quotedName;
124
+ target.buildPhases = target.buildPhases.filter((entry) => {
125
+ if (entry === retained || !matchingEntries.includes(entry))
126
+ return true;
127
+ delete shellPhases[entry.value];
128
+ delete shellPhases[`${entry.value}_comment`];
129
+ return false;
130
+ });
131
+ }
132
+ else {
133
+ xcodeProject.addBuildPhase([], 'PBXShellScriptBuildPhase', WIDGET_BUNDLE_PHASE_NAME, targetUuid, {
134
+ shellPath: '/bin/sh',
135
+ shellScript: bundleShellScript(content),
136
+ });
137
+ phase = Object.values(xcodeProject.hash.project.objects.PBXShellScriptBuildPhase || {}).find((candidate) => candidate?.name === quotedName);
138
+ }
139
+ if (phase) {
140
+ // xcode's serializer expects an already PBX-quoted value when an existing
141
+ // phase is reconciled directly (addBuildPhase performs this for new ones).
142
+ phase.shellScript = pbxQuotedShellScript(bundleShellScript(content));
143
+ phase.alwaysOutOfDate = 1;
144
+ }
115
145
  // The phase intentionally re-bakes on every release build (it can't statically enumerate every
116
146
  // widget source as an input). Mark it always-out-of-date so Xcode doesn't warn about the missing
117
147
  // input/output dependencies.
@@ -194,6 +224,16 @@ function ensureBuildPhases(xcodeProject, options) {
194
224
  if (sourcesPhase) {
195
225
  ensureBuildPhaseFiles(xcodeProject, sourcesPhase, [...swiftFiles, ...intentFiles], targetName);
196
226
  }
227
+ if (options.mainSwiftFiles && options.mainSwiftFiles.length > 0) {
228
+ let mainSourcesPhase = findTargetPhaseByType(xcodeProject, mainTargetUuid, 'PBXSourcesBuildPhase');
229
+ if (!mainSourcesPhase) {
230
+ xcodeProject.addBuildPhase([], 'PBXSourcesBuildPhase', 'Sources', mainTargetUuid, folderType, buildPath);
231
+ mainSourcesPhase = findTargetPhaseByType(xcodeProject, mainTargetUuid, 'PBXSourcesBuildPhase');
232
+ }
233
+ if (mainSourcesPhase) {
234
+ ensureBuildPhaseFiles(xcodeProject, mainSourcesPhase, options.mainSwiftFiles, targetName);
235
+ }
236
+ }
197
237
  // Copy files build phase (embed extension into main app) — the embed phase is matched purely by
198
238
  // its `dstSubfolderSpec == 13` semantics, both before and after creation
199
239
  let copyFilesPhase = findExistingEmbedExtensionsPhase(xcodeProject, mainTargetUuid);
@@ -1 +1 @@
1
- {"version":3,"file":"buildPhases.js","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/buildPhases.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildPhases.js","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/buildPhases.ts"],"names":[],"mappings":"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"}
@@ -60,6 +60,13 @@ const target_1 = require("./target");
60
60
  function applyXcodeChanges(xcodeProject, props, widgetFiles, hasClientRenderedWidgets = false) {
61
61
  const { targetName, bundleIdentifier, deploymentTarget, version, buildNumber } = props;
62
62
  const groupName = 'Embed Foundation Extensions';
63
+ const mainTargetUuid = xcodeProject.getFirstTarget().uuid;
64
+ // The catalog is compiled into the app even for a legacy-only configuration.
65
+ // Keep it in the extension group too so both targets share one PBX file reference.
66
+ const effectiveWidgetFiles = {
67
+ ...widgetFiles,
68
+ swiftFiles: Array.from(new Set([...widgetFiles.swiftFiles, 'VoltraDynamicLiveActivityTypes.swift'])),
69
+ };
63
70
  // Read main app target settings to synchronize code signing (per configuration).
64
71
  const mainAppSettings = (0, mainAppSettings_1.getMainAppTargetSettings)(xcodeProject);
65
72
  // Use the deploymentTarget from plugin config (or default), ignore main app's deployment target.
@@ -99,7 +106,7 @@ function applyXcodeChanges(xcodeProject, props, widgetFiles, hasClientRenderedWi
99
106
  // reference them (the phases resolve files through the widget-scoped group).
100
107
  (0, groups_1.ensurePbxGroup)(xcodeProject, {
101
108
  targetName,
102
- widgetFiles,
109
+ widgetFiles: effectiveWidgetFiles,
103
110
  });
104
111
  // Ensure build phases and their files.
105
112
  (0, buildPhases_1.ensureBuildPhases)(xcodeProject, {
@@ -107,12 +114,21 @@ function applyXcodeChanges(xcodeProject, props, widgetFiles, hasClientRenderedWi
107
114
  targetName,
108
115
  groupName,
109
116
  productFile,
110
- widgetFiles,
117
+ widgetFiles: effectiveWidgetFiles,
111
118
  mainTargetUuid: xcodeProject.getFirstTarget().uuid,
119
+ // The app-side lifecycle service always compiles against the generated catalog.
120
+ // An empty catalog keeps legacy-only apps source-compatible.
121
+ mainSwiftFiles: ['VoltraDynamicLiveActivityTypes.swift'],
112
122
  });
113
- if (hasClientRenderedWidgets) {
123
+ if (hasClientRenderedWidgets || (props.liveActivities?.length ?? 0) > 0) {
114
124
  (0, buildPhases_1.ensureWidgetBundleScriptPhase)(xcodeProject, targetUuid);
115
125
  }
126
+ if ((props.liveActivities?.length ?? 0) > 0) {
127
+ // Local Dynamic Live Activity starts preflight the baked definition from
128
+ // the app process, while WidgetKit renders from the extension process.
129
+ // Bake the same manifest into both products.
130
+ (0, buildPhases_1.ensureWidgetBundleScriptPhase)(xcodeProject, mainTargetUuid, 'live-activities');
131
+ }
116
132
  (0, target_1.ensureTargetAttributes)(xcodeProject, targetUuid);
117
133
  (0, target_1.ensureTargetDependency)(xcodeProject, targetUuid);
118
134
  }
@@ -131,7 +147,7 @@ function applyXcodeChanges(xcodeProject, props, widgetFiles, hasClientRenderedWi
131
147
  * mutation to {@link applyXcodeChanges}.
132
148
  */
133
149
  const configureXcodeProject = (config, props) => {
134
- const { targetName, widgets } = props;
150
+ const { targetName, widgets, liveActivities } = props;
135
151
  return (0, config_plugins_1.withXcodeProject)(config, (config) => {
136
152
  if (config.modRequest.introspect) {
137
153
  return config;
@@ -144,7 +160,7 @@ const configureXcodeProject = (config, props) => {
144
160
  const { platformProjectRoot } = config.modRequest;
145
161
  const targetPath = path.join(platformProjectRoot, targetName);
146
162
  const widgetFiles = (0, fileDiscovery_1.getIOSWidgetExtensionFiles)(targetPath, targetName);
147
- applyXcodeChanges(xcodeProject, props, widgetFiles, hasClientRenderedWidgets);
163
+ applyXcodeChanges(xcodeProject, props, widgetFiles, hasClientRenderedWidgets || (liveActivities?.length ?? 0) > 0);
148
164
  return config;
149
165
  });
150
166
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,8CA6EC;AAjHD,yDAAmF;AACnF,2CAA4B;AAG5B,6DAAsE;AACtE,sDAA+D;AAC/D,+CAAgF;AAChF,2DAA+D;AAC/D,qCAAyC;AACzC,uDAA4D;AAC5D,+CAAiD;AACjD,qCAA+F;AAa/F;;;;;;;;;;;GAWG;AACH,SAAgB,iBAAiB,CAC/B,YAA0B,EAC1B,KAAiC,EACjC,WAAoC,EACpC,wBAAwB,GAAG,KAAK;IAEhC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IACtF,MAAM,SAAS,GAAG,6BAA6B,CAAA;IAE/C,iFAAiF;IACjF,MAAM,eAAe,GAAG,IAAA,0CAAwB,EAAC,YAAY,CAAC,CAAA;IAE9D,iGAAiG;IACjG,kGAAkG;IAElG,8FAA8F;IAC9F,wFAAwF;IACxF,IAAI,UAAU,GAAG,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;IACvD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,GAAG,YAAY,CAAC,YAAY,EAAE,CAAA;QACxC,IAAA,6BAAoB,EAAC,YAAY,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAA;IAChE,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,sBAAsB,EAAE,CAAC,UAAU,CAAC,CAAA;IAEhE,yEAAyE;IACzE,MAAM,mBAAmB,GAAG,IAAA,6CAAyB,EACnD,YAAY,EACZ;QACE,UAAU;QACV,gBAAgB;QAChB,gBAAgB;QAChB,OAAO;QACP,WAAW;QACX,eAAe;KAChB,EACD,MAAM,CAAC,sBAAsB,CAC9B,CAAA;IAED,2CAA2C;IAC3C,MAAM,WAAW,GAAG,IAAA,+BAAiB,EAAC,YAAY,EAAE;QAClD,UAAU;QACV,SAAS;KACV,CAAC,CAAA;IAEF,0EAA0E;IAC1E,MAAM,CAAC,gBAAgB,GAAG,WAAW,CAAC,OAAO,CAAA;IAC7C,MAAM,CAAC,sBAAsB,GAAG,mBAAmB,CAAC,IAAI,CAAA;IACxD,MAAM,CAAC,WAAW,GAAG,wCAAwC,CAAA;IAC7D,MAAM,CAAC,IAAI,GAAG,UAAU,CAAA;IACxB,MAAM,CAAC,WAAW,GAAG,UAAU,CAAA;IAC/B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,CAAC,WAAW,GAAG,EAAE,CAAA;IACzB,CAAC;IAED,uFAAuF;IACvF,6EAA6E;IAC7E,IAAA,uBAAc,EAAC,YAAY,EAAE;QAC3B,UAAU;QACV,WAAW;KACZ,CAAC,CAAA;IAEF,uCAAuC;IACvC,IAAA,+BAAiB,EAAC,YAAY,EAAE;QAC9B,UAAU;QACV,UAAU;QACV,SAAS;QACT,WAAW;QACX,WAAW;QACX,cAAc,EAAE,YAAY,CAAC,cAAc,EAAE,CAAC,IAAI;KACnD,CAAC,CAAA;IAEF,IAAI,wBAAwB,EAAE,CAAC;QAC7B,IAAA,2CAA6B,EAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACzD,CAAC;IAED,IAAA,+BAAsB,EAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAChD,IAAA,+BAAsB,EAAC,YAAY,EAAE,UAAU,CAAC,CAAA;AAClD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACI,MAAM,qBAAqB,GAA6C,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;IAC/F,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IAErC,OAAO,IAAA,iCAAgB,EAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACzC,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YACjC,OAAO,MAAM,CAAA;QACf,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAA;QAEtC,6FAA6F;QAC7F,sFAAsF;QACtF,MAAM,wBAAwB,GAC5B,CAAC,CAAC,OAAO;YACT,IAAA,4CAA2B,EAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;QAE7G,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAC,UAAU,CAAA;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAA;QAC7D,MAAM,WAAW,GAAG,IAAA,0CAA0B,EAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QAEtE,iBAAiB,CAAC,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,wBAAwB,CAAC,CAAA;QAE7E,OAAO,MAAM,CAAA;IACf,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAxBY,QAAA,qBAAqB,yBAwBjC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAppURLSchemes = getAppURLSchemes;
4
+ exports.appendMissingURLSchemes = appendMissingURLSchemes;
3
5
  exports.ensureURLScheme = ensureURLScheme;
6
+ /**
7
+ * The URL schemes the app is configured with: every `scheme` and `ios.scheme` value (string or
8
+ * array), or the bundle identifier when neither is set.
9
+ */
10
+ function getAppURLSchemes(config) {
11
+ const configured = [config.scheme, config.ios?.scheme]
12
+ .flat()
13
+ .filter((scheme) => typeof scheme === 'string' && scheme.length > 0);
14
+ if (configured.length > 0) {
15
+ return [...new Set(configured)];
16
+ }
17
+ return config.ios?.bundleIdentifier ? [config.ios.bundleIdentifier] : [];
18
+ }
19
+ /**
20
+ * Appends a URL type for every scheme not already listed. Returns `types` itself when nothing is
21
+ * missing.
22
+ */
23
+ function appendMissingURLSchemes(types, schemes) {
24
+ const missingSchemes = schemes.filter((scheme) => !types.some((t) => Array.isArray(t?.CFBundleURLSchemes) && t.CFBundleURLSchemes.includes(scheme)));
25
+ if (missingSchemes.length === 0) {
26
+ return types;
27
+ }
28
+ return [...types, ...missingSchemes.map((scheme) => ({ CFBundleURLSchemes: [scheme] }))];
29
+ }
4
30
  /**
5
31
  * Ensures the main app has a URL scheme set so widgetURL can open it.
6
32
  * This is an optional feature for deep linking from widgets.
@@ -9,30 +35,26 @@ exports.ensureURLScheme = ensureURLScheme;
9
35
  * @returns The modified config with URL scheme ensured
10
36
  */
11
37
  function ensureURLScheme(config) {
12
- const scheme = typeof config.scheme === 'string' ? config.scheme : config.ios?.bundleIdentifier;
13
- if (!scheme) {
38
+ const existingInfoPlist = config.ios?.infoPlist;
39
+ const existingTypes = existingInfoPlist?.CFBundleURLTypes;
40
+ // Expo's own withScheme fills CFBundleURLTypes from `scheme` / `ios.scheme` and always appends
41
+ // ios.bundleIdentifier, but it skips the app entirely once ios.infoPlist.CFBundleURLTypes is set
42
+ // (createInfoPlistPluginWithPropertyGuard). Writing the key here when the app hasn't set it
43
+ // therefore drops every configured scheme instead of adding one. Only top up a list the app owns.
44
+ if (!existingTypes) {
14
45
  return config;
15
46
  }
16
- const existingInfoPlist = config.ios?.infoPlist || {};
17
- const existingTypes = existingInfoPlist.CFBundleURLTypes || [];
18
- // Check if scheme already exists
19
- const hasScheme = existingTypes.some((t) => Array.isArray(t?.CFBundleURLSchemes) && t.CFBundleURLSchemes.includes(scheme));
20
- if (hasScheme) {
47
+ const types = appendMissingURLSchemes(existingTypes, getAppURLSchemes(config));
48
+ if (types === existingTypes) {
21
49
  return config;
22
50
  }
23
- // Add the URL scheme
24
51
  return {
25
52
  ...config,
26
53
  ios: {
27
54
  ...config.ios,
28
55
  infoPlist: {
29
56
  ...existingInfoPlist,
30
- CFBundleURLTypes: [
31
- ...existingTypes,
32
- {
33
- CFBundleURLSchemes: [scheme],
34
- },
35
- ],
57
+ CFBundleURLTypes: types,
36
58
  },
37
59
  },
38
60
  };
@@ -1 +1 @@
1
- {"version":3,"file":"urlScheme.js","sourceRoot":"","sources":["../../../src/utils/urlScheme.ts"],"names":[],"mappings":";;AASA,0CAmCC;AA1CD;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,MAAkB;IAChD,MAAM,MAAM,GAAG,OAAQ,MAAc,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,MAAc,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAA;IAEjH,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,CAAA;IACrD,MAAM,aAAa,GAAI,iBAAiB,CAAC,gBAA0B,IAAI,EAAE,CAAA;IAEzE,iCAAiC;IACjC,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CACrF,CAAA;IAED,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,MAAM,CAAA;IACf,CAAC;IAED,qBAAqB;IACrB,OAAO;QACL,GAAG,MAAM;QACT,GAAG,EAAE;YACH,GAAG,MAAM,CAAC,GAAG;YACb,SAAS,EAAE;gBACT,GAAG,iBAAiB;gBACpB,gBAAgB,EAAE;oBAChB,GAAG,aAAa;oBAChB;wBACE,kBAAkB,EAAE,CAAC,MAAM,CAAC;qBAC7B;iBACF;aACF;SACF;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"urlScheme.js","sourceRoot":"","sources":["../../../src/utils/urlScheme.ts"],"names":[],"mappings":";;AAQA,4CAUC;AAMD,0DAaC;AASD,0CA4BC;AAtED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,MAAkB;IACjD,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,MAAM,EAAG,MAAM,CAAC,GAAkD,EAAE,MAAM,CAAC;SACnG,IAAI,EAAE;SACN,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAExF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,OAAO,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC1E,CAAC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CACrC,KAAU,EACV,OAAiB;IAEjB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CACnC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAC9G,CAAA;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAC1F,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,MAAkB;IAChD,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,EAAE,SAAS,CAAA;IAC/C,MAAM,aAAa,GAAG,iBAAiB,EAAE,gBAAyC,CAAA;IAElF,+FAA+F;IAC/F,iGAAiG;IACjG,4FAA4F;IAC5F,kGAAkG;IAClG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,KAAK,GAAG,uBAAuB,CAAC,aAAa,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;IAE9E,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO;QACL,GAAG,MAAM;QACT,GAAG,EAAE;YACH,GAAG,MAAM,CAAC,GAAG;YACb,SAAS,EAAE;gBACT,GAAG,iBAAiB;gBACpB,gBAAgB,EAAE,KAAK;aACxB;SACF;KACF,CAAA;AACH,CAAC"}
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateIOSDynamicLiveActivityConfig = validateIOSDynamicLiveActivityConfig;
3
4
  exports.validateIOSWidgetConfig = validateIOSWidgetConfig;
4
5
  exports.validateIOSConfigPluginProps = validateIOSConfigPluginProps;
5
6
  const expo_plugin_1 = require("@use-voltra/expo-plugin");
7
+ const serverUpdate_1 = require("./ios/serverUpdate");
8
+ const expo_plugin_2 = require("@use-voltra/expo-plugin");
9
+ const constants_1 = require("./constants");
6
10
  const VALID_FAMILIES = new Set([
7
11
  'systemSmall',
8
12
  'systemMedium',
@@ -12,14 +16,29 @@ const VALID_FAMILIES = new Set([
12
16
  'accessoryRectangular',
13
17
  'accessoryInline',
14
18
  ]);
19
+ const DYNAMIC_LIVE_ACTIVITY_ID_PATTERN = /^[a-zA-Z0-9_]+$/;
20
+ function validateIOSDynamicLiveActivityConfig(liveActivity, projectRoot) {
21
+ if (!liveActivity.id || typeof liveActivity.id !== 'string') {
22
+ throw new Error('Dynamic Live Activity ID is required and must be a string');
23
+ }
24
+ if (!DYNAMIC_LIVE_ACTIVITY_ID_PATTERN.test(liveActivity.id)) {
25
+ throw new Error(`Dynamic Live Activity ID '${liveActivity.id}' is invalid. ` +
26
+ 'It must be non-empty and contain only alphanumeric characters and underscores.');
27
+ }
28
+ (0, expo_plugin_1.validateWidgetEntry)(liveActivity.entry, liveActivity.id, projectRoot);
29
+ }
15
30
  function validateIOSWidgetConfig(widget, projectRoot) {
16
31
  (0, expo_plugin_1.validateHomeScreenWidgetId)(widget.id);
32
+ if (widget.kind !== undefined && (typeof widget.kind !== 'string' || widget.kind.trim() === '')) {
33
+ throw new Error(`Widget '${widget.id}': kind must be a non-empty string`);
34
+ }
17
35
  (0, expo_plugin_1.validateWidgetLabel)(widget.displayName, widget.id, 'displayName');
18
36
  (0, expo_plugin_1.validateWidgetLabel)(widget.description, widget.id, 'description');
19
37
  (0, expo_plugin_1.validateInitialStatePath)(widget.initialStatePath, widget.id, projectRoot);
20
38
  if (widget.entry !== undefined) {
21
39
  (0, expo_plugin_1.validateWidgetEntry)(widget.entry, widget.id, projectRoot);
22
40
  }
41
+ (0, expo_plugin_1.validateWidgetServerUpdate)(widget.serverUpdate, widget.id, (0, serverUpdate_1.iosServerUpdateRules)(widget));
23
42
  if (widget.supportedFamilies) {
24
43
  if (!Array.isArray(widget.supportedFamilies)) {
25
44
  throw new Error(`Widget '${widget.id}': supportedFamilies must be an array`);
@@ -46,12 +65,47 @@ function validateIOSConfigPluginProps(props, projectRoot) {
46
65
  throw new Error('widgets must be an array');
47
66
  }
48
67
  const seenIds = new Set();
68
+ const seenKinds = new Set();
49
69
  for (const widget of props.widgets) {
50
70
  validateIOSWidgetConfig(widget, projectRoot);
71
+ // A server-driven Dynamic Widget commits fetched props to the App Group so the widget
72
+ // extension can read them. Without one it would fetch and have nowhere to put the result.
73
+ if (widget.entry !== undefined && widget.serverUpdate !== undefined && !props.groupIdentifier) {
74
+ throw new Error(`Widget '${widget.id}' has both entry and serverUpdate, which requires groupIdentifier ` +
75
+ 'so fetched props can be shared with the widget extension.');
76
+ }
51
77
  if (seenIds.has(widget.id)) {
52
78
  throw new Error(`Duplicate widget ID: '${widget.id}'`);
53
79
  }
54
80
  seenIds.add(widget.id);
81
+ const kind = (0, constants_1.widgetKind)(widget);
82
+ if (seenKinds.has(kind)) {
83
+ throw new Error(`Duplicate widget kind: '${kind}'`);
84
+ }
85
+ seenKinds.add(kind);
86
+ }
87
+ }
88
+ if (props.liveActivities !== undefined) {
89
+ if (!Array.isArray(props.liveActivities)) {
90
+ throw new Error('liveActivities must be an array');
91
+ }
92
+ if (props.liveActivities.length > 0 && !props.groupIdentifier) {
93
+ throw new Error('groupIdentifier is required when liveActivities is non-empty');
94
+ }
95
+ const seenIds = new Set();
96
+ const seenAttributesTypes = new Map();
97
+ for (const liveActivity of props.liveActivities) {
98
+ validateIOSDynamicLiveActivityConfig(liveActivity, projectRoot);
99
+ if (seenIds.has(liveActivity.id)) {
100
+ throw new Error(`Duplicate Dynamic Live Activity ID: '${liveActivity.id}'`);
101
+ }
102
+ seenIds.add(liveActivity.id);
103
+ const attributesType = (0, expo_plugin_2.getDynamicLiveActivityAttributesType)(liveActivity.id);
104
+ const conflictingId = seenAttributesTypes.get(attributesType);
105
+ if (conflictingId) {
106
+ throw new Error(`Dynamic Live Activity IDs '${conflictingId}' and '${liveActivity.id}' generate the same ActivityKit attributes type '${attributesType}'`);
107
+ }
108
+ seenAttributesTypes.set(attributesType, liveActivity.id);
55
109
  }
56
110
  }
57
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":";;AAmBA,0DAwBC;AAED,oEA0BC;AAvED,yDAKgC;AAIhC,MAAM,cAAc,GAAyB,IAAI,GAAG,CAAC;IACnD,aAAa;IACb,cAAc;IACd,aAAa;IACb,kBAAkB;IAClB,mBAAmB;IACnB,sBAAsB;IACtB,iBAAiB;CAClB,CAAC,CAAA;AAEF,SAAgB,uBAAuB,CAAC,MAAuB,EAAE,WAAoB;IACnF,IAAA,wCAA0B,EAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACrC,IAAA,iCAAmB,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IACjE,IAAA,iCAAmB,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IACjE,IAAA,sCAAwB,EAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;IAEzE,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAA,iCAAmB,EAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;IAC3D,CAAC;IAED,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,CAAC,EAAE,uCAAuC,CAAC,CAAA;QAC9E,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC9C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CACb,WAAW,MAAM,CAAC,EAAE,6BAA6B,MAAM,KAAK;oBAC1D,uBAAuB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjE,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,4BAA4B,CAAC,KAA2B,EAAE,WAAoB;IAC5F,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACxC,IAAI,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACrD,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,CAAC,eAAe,4BAA4B,CAAC,CAAA;QACxF,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC7C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;QACjC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,uBAAuB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;YAE5C,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,EAAE,GAAG,CAAC,CAAA;YACxD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"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"}
@@ -17,4 +17,21 @@ export const WIDGET_FAMILY_MAP = {
17
17
  accessoryRectangular: '.accessoryRectangular',
18
18
  accessoryInline: '.accessoryInline',
19
19
  };
20
+ /** Default prefix of a widget's WidgetKit `kind`: `Voltra_Widget_<id>`. Mirrors `VoltraStorageKeys.widgetKindPrefix`. */
21
+ export const WIDGET_KIND_PREFIX = 'Voltra_Widget_';
22
+ /** WidgetKit `kind` of a widget: the `kind` option when set, else `Voltra_Widget_<id>`. */
23
+ export const widgetKind = (widget) => widget.kind ?? `${WIDGET_KIND_PREFIX}${widget.id}`;
24
+ /**
25
+ * `{ id: kind }` for the widgets that pin a custom `kind`, or undefined when none does.
26
+ * Written to both Info.plists (`Voltra_WidgetKinds`) so native code maps ids to kinds and back.
27
+ */
28
+ export const widgetKindOverrides = (widgets) => {
29
+ const overrides = {};
30
+ for (const widget of widgets ?? []) {
31
+ if (widget.kind !== undefined) {
32
+ overrides[widget.id] = widget.kind;
33
+ }
34
+ }
35
+ return Object.keys(overrides).length > 0 ? overrides : undefined;
36
+ };
20
37
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,iBAAiB,EAAE,MAAM;IACzB,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,KAAK;IACpB,oBAAoB,EAAE,IAAI;CAClB,CAAA;AAEV,mDAAmD;AACnD,MAAM,CAAC,MAAM,wBAAwB,GAAG,iBAAiB,CAAA;AAEzD,MAAM,CAAC,MAAM,0BAA0B,GAAG,oBAAoB,CAAA;AAE9D,MAAM,CAAC,MAAM,uBAAuB,GAAsB,CAAC,aAAa,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;AAExG,MAAM,CAAC,MAAM,iBAAiB,GAAoC;IAChE,WAAW,EAAE,cAAc;IAC3B,YAAY,EAAE,eAAe;IAC7B,WAAW,EAAE,cAAc;IAC3B,gBAAgB,EAAE,mBAAmB;IACrC,iBAAiB,EAAE,oBAAoB;IACvC,oBAAoB,EAAE,uBAAuB;IAC7C,eAAe,EAAE,kBAAkB;CACpC,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,iBAAiB,EAAE,MAAM;IACzB,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,KAAK;IACpB,oBAAoB,EAAE,IAAI;CAClB,CAAA;AAEV,mDAAmD;AACnD,MAAM,CAAC,MAAM,wBAAwB,GAAG,iBAAiB,CAAA;AAEzD,MAAM,CAAC,MAAM,0BAA0B,GAAG,oBAAoB,CAAA;AAE9D,MAAM,CAAC,MAAM,uBAAuB,GAAsB,CAAC,aAAa,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;AAExG,MAAM,CAAC,MAAM,iBAAiB,GAAoC;IAChE,WAAW,EAAE,cAAc;IAC3B,YAAY,EAAE,eAAe;IAC7B,WAAW,EAAE,cAAc;IAC3B,gBAAgB,EAAE,mBAAmB;IACrC,iBAAiB,EAAE,oBAAoB;IACvC,oBAAoB,EAAE,uBAAuB;IAC7C,eAAe,EAAE,kBAAkB;CACpC,CAAA;AAED,yHAAyH;AACzH,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAA;AAElD,2FAA2F;AAC3F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAA4C,EAAU,EAAE,CACjF,MAAM,CAAC,IAAI,IAAI,GAAG,kBAAkB,GAAG,MAAM,CAAC,EAAE,EAAE,CAAA;AAEpD;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAAgD,EACZ,EAAE;IACtC,MAAM,SAAS,GAA2B,EAAE,CAAA;IAC5C,KAAK,MAAM,MAAM,IAAI,OAAO,IAAI,EAAE,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAA;QACpC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;AAClE,CAAC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { IOSConfig } from 'expo/config-plugins';
2
+ import { resolveInstalledPackageVersion } from '@use-voltra/expo-plugin';
2
3
  import { IOS } from './constants';
3
4
  import { withIOS, withPushNotifications } from './ios';
4
5
  import { withIOS as withIOSWidget } from './ios-widget';
@@ -12,6 +13,7 @@ import { validateIOSConfigPluginProps } from './validation';
12
13
  const withVoltraIos = (config, props = {}) => {
13
14
  const projectRoot = config.modRequest?.projectRoot;
14
15
  validateIOSConfigPluginProps(props, projectRoot);
16
+ const voltraVersion = resolveInstalledPackageVersion(projectRoot ?? process.cwd(), '@use-voltra/ios-client');
15
17
  const iosBundleIdentifier = config.ios?.bundleIdentifier;
16
18
  if (!iosBundleIdentifier) {
17
19
  throw new Error('The Voltra iOS config plugin requires "expo.ios.bundleIdentifier" to be set in the app config — ' +
@@ -30,15 +32,19 @@ const withVoltraIos = (config, props = {}) => {
30
32
  groupIdentifier: props.groupIdentifier,
31
33
  widgetIds: props.widgets && props.widgets.length > 0 ? props.widgets.map((w) => w.id) : undefined,
32
34
  widgets: props.widgets,
35
+ liveActivities: props.liveActivities,
33
36
  keychainGroup,
37
+ voltraVersion,
34
38
  });
35
39
  config = withIOSWidget(config, {
36
40
  targetName,
37
41
  bundleIdentifier,
38
42
  deploymentTarget,
39
43
  widgets: props.widgets,
44
+ liveActivities: props.liveActivities,
40
45
  version,
41
46
  buildNumber,
47
+ voltraVersion,
42
48
  ...(props.groupIdentifier ? { groupIdentifier: props.groupIdentifier } : {}),
43
49
  ...(keychainGroup ? { keychainGroup } : {}),
44
50
  ...(props.fonts ? { fonts: props.fonts } : {}),
@@ -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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"}
@@ -17,6 +17,7 @@ export function withIOS(config, props) {
17
17
  widgetIds: props.widgetIds,
18
18
  widgets: props.widgets,
19
19
  keychainGroup: props.keychainGroup,
20
+ voltraVersion: props.voltraVersion,
20
21
  });
21
22
  // Configure entitlements
22
23
  config = configureEntitlements(config, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ios/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAShD;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CAAC,MAAkB,EAAE,KAAqB;IAC/D,uBAAuB;IACvB,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE;QAClC,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAC,CAAA;IAEF,yBAAyB;IACzB,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE;QACrC,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAC,CAAA;IAEF,gBAAgB;IAChB,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE;QAC5B,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,4BAA4B;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ios/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAWhD;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CAAC,MAAkB,EAAE,KAAqB;IAC/D,uBAAuB;IACvB,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE;QAClC,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAC,CAAA;IAEF,yBAAyB;IACzB,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE;QACrC,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAC,CAAA;IAEF,gBAAgB;IAChB,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE;QAC5B,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,4BAA4B;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -1,4 +1,6 @@
1
1
  import { withInfoPlist } from '@expo/config-plugins';
2
+ import { widgetKindOverrides } from '../constants';
3
+ import { resolveIOSWidgetServerUpdate } from './serverUpdate';
2
4
  /**
3
5
  * Configures main app Info.plist for Live Activities and widgets.
4
6
  *
@@ -6,14 +8,16 @@ import { withInfoPlist } from '@expo/config-plugins';
6
8
  * - NSSupportsLiveActivities: Enables Live Activities support
7
9
  * - Voltra_AppGroupIdentifier: App group ID for widget communication (if provided)
8
10
  * - Voltra_WidgetIds: Array of widget IDs for native module access (if provided)
11
+ * - Voltra_WidgetKinds: Map of widget IDs to custom WidgetKit kinds (if any widget sets `kind`)
9
12
  * - Voltra_WidgetServerUrls: Map of widget IDs to server URLs (if any widgets have serverUpdate)
10
13
  * - Voltra_WidgetServerIntervals: Map of widget IDs to update intervals (if any widgets have serverUpdate)
11
14
  * - Voltra_KeychainGroup: Keychain access group for shared credentials (if provided)
12
15
  */
13
- export const configureInfoPlist = (config, props = {}) => {
16
+ export const configureInfoPlist = (config, props) => {
14
17
  return withInfoPlist(config, (mod) => {
15
18
  mod.modResults.NSSupportsLiveActivities = true;
16
19
  mod.modResults.NSSupportsLiveActivitiesFrequentUpdates = false;
20
+ mod.modResults.Voltra_Version = props.voltraVersion;
17
21
  // Only add group identifier if provided
18
22
  if (props.groupIdentifier) {
19
23
  mod.modResults.Voltra_AppGroupIdentifier = props.groupIdentifier;
@@ -22,19 +26,38 @@ export const configureInfoPlist = (config, props = {}) => {
22
26
  if (props.widgetIds && props.widgetIds.length > 0) {
23
27
  mod.modResults.Voltra_WidgetIds = props.widgetIds;
24
28
  }
29
+ // Store custom widget kinds so native code can map ids to kinds and back. A prebuild over an
30
+ // existing ios/ directory keeps whatever the plist already holds, so a `kind` that was removed
31
+ // from the config has to be deleted here or the widget would keep a kind nobody configured.
32
+ const widgetKinds = widgetKindOverrides(props.widgets);
33
+ if (widgetKinds) {
34
+ mod.modResults.Voltra_WidgetKinds = widgetKinds;
35
+ }
36
+ else {
37
+ delete mod.modResults.Voltra_WidgetKinds;
38
+ }
25
39
  // Configure server update URLs and intervals for widgets
26
40
  if (props.widgets && props.widgets.length > 0) {
27
41
  const serverUrls = {};
28
42
  const serverIntervals = {};
29
43
  for (const widget of props.widgets) {
30
- if (widget.serverUpdate) {
31
- serverUrls[widget.id] = widget.serverUpdate.url;
32
- serverIntervals[widget.id] = widget.serverUpdate.intervalMinutes ?? 15;
44
+ const serverUpdate = resolveIOSWidgetServerUpdate(widget);
45
+ if (!serverUpdate) {
46
+ continue;
47
+ }
48
+ // Every server-driven widget gets an interval, so this dictionary's keys are the set of
49
+ // server-driven widget ids the runtime settings store validates against. A URL is written
50
+ // only when app.json set one; otherwise the app supplies it with setWidgetServerUpdate.
51
+ serverIntervals[widget.id] = serverUpdate.intervalMinutes;
52
+ if (serverUpdate.url !== undefined) {
53
+ serverUrls[widget.id] = serverUpdate.url;
33
54
  }
34
55
  }
56
+ if (Object.keys(serverIntervals).length > 0) {
57
+ mod.modResults.Voltra_WidgetServerIntervals = serverIntervals;
58
+ }
35
59
  if (Object.keys(serverUrls).length > 0) {
36
60
  mod.modResults.Voltra_WidgetServerUrls = serverUrls;
37
- mod.modResults.Voltra_WidgetServerIntervals = serverIntervals;
38
61
  }
39
62
  }
40
63
  // Store Keychain group identifier for shared credential access
@@ -1 +1 @@
1
- {"version":3,"file":"infoPlist.js","sourceRoot":"","sources":["../../../src/ios/infoPlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAWlE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA0C,CAAC,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE;IAC9F,OAAO,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;QACnC,GAAG,CAAC,UAAU,CAAC,wBAAwB,GAAG,IAAI,CAAA;QAC9C,GAAG,CAAC,UAAU,CAAC,uCAAuC,GAAG,KAAK,CAAA;QAE9D,wCAAwC;QACxC,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,GAAG,CAAC,UAAU,CAAC,yBAAyB,GAAG,KAAK,CAAC,eAAe,CAAA;QAClE,CAAC;QAED,6DAA6D;QAC7D,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,UAAU,CAAC,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAA;QACnD,CAAC;QAED,yDAAyD;QACzD,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,UAAU,GAA2B,EAAE,CAAA;YAC7C,MAAM,eAAe,GAA2B,EAAE,CAAA;YAElD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;oBACxB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA;oBAC/C,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,eAAe,IAAI,EAAE,CAAA;gBACxE,CAAC;YACH,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvC,GAAG,CAAC,UAAU,CAAC,uBAAuB,GAAG,UAAU,CAAA;gBACnD,GAAG,CAAC,UAAU,CAAC,4BAA4B,GAAG,eAAe,CAAA;YAC/D,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,GAAG,CAAC,UAAU,CAAC,oBAAoB,GAAG,KAAK,CAAC,aAAa,CAAA;QAC3D,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"infoPlist.js","sourceRoot":"","sources":["../../../src/ios/infoPlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAU7D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA0C,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;IACzF,OAAO,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;QACnC,GAAG,CAAC,UAAU,CAAC,wBAAwB,GAAG,IAAI,CAAA;QAC9C,GAAG,CAAC,UAAU,CAAC,uCAAuC,GAAG,KAAK,CAAA;QAC9D,GAAG,CAAC,UAAU,CAAC,cAAc,GAAG,KAAK,CAAC,aAAa,CAAA;QAEnD,wCAAwC;QACxC,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,GAAG,CAAC,UAAU,CAAC,yBAAyB,GAAG,KAAK,CAAC,eAAe,CAAA;QAClE,CAAC;QAED,6DAA6D;QAC7D,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,UAAU,CAAC,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAA;QACnD,CAAC;QAED,6FAA6F;QAC7F,+FAA+F;QAC/F,4FAA4F;QAC5F,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACtD,IAAI,WAAW,EAAE,CAAC;YAChB,GAAG,CAAC,UAAU,CAAC,kBAAkB,GAAG,WAAW,CAAA;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAA;QAC1C,CAAC;QAED,yDAAyD;QACzD,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,UAAU,GAA2B,EAAE,CAAA;YAC7C,MAAM,eAAe,GAA2B,EAAE,CAAA;YAElD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnC,MAAM,YAAY,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAA;gBAEzD,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,SAAQ;gBACV,CAAC;gBAED,wFAAwF;gBACxF,0FAA0F;gBAC1F,wFAAwF;gBACxF,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,eAAe,CAAA;gBAEzD,IAAI,YAAY,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBACnC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,GAAG,CAAA;gBAC1C,CAAC;YACH,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,GAAG,CAAC,UAAU,CAAC,4BAA4B,GAAG,eAAe,CAAA;YAC/D,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvC,GAAG,CAAC,UAAU,CAAC,uBAAuB,GAAG,UAAU,CAAA;YACrD,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,GAAG,CAAC,UAAU,CAAC,oBAAoB,GAAG,KAAK,CAAC,aAAa,CAAA;QAC3D,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}