@use-voltra/ios-client 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 (365) hide show
  1. package/README.md +61 -8
  2. package/Voltra.podspec +1 -0
  3. package/build/commonjs/dynamic-widget/api.js +15 -0
  4. package/build/commonjs/dynamic-widget/api.js.map +1 -0
  5. package/build/commonjs/events.js +23 -0
  6. package/build/commonjs/events.js.map +1 -1
  7. package/build/commonjs/index.js +74 -7
  8. package/build/commonjs/index.js.map +1 -1
  9. package/build/commonjs/live-activity/api.js +3 -1
  10. package/build/commonjs/live-activity/api.js.map +1 -1
  11. package/build/commonjs/live-activity/dynamic-api.js +173 -0
  12. package/build/commonjs/live-activity/dynamic-api.js.map +1 -0
  13. package/build/commonjs/native/NativeVoltra.js.map +1 -1
  14. package/build/commonjs/utils/enableDynamicLiveActivityHotReload.js +47 -0
  15. package/build/commonjs/utils/enableDynamicLiveActivityHotReload.js.map +1 -0
  16. package/build/commonjs/utils/enableWidgetHotReload.js +8 -11
  17. package/build/commonjs/utils/enableWidgetHotReload.js.map +1 -1
  18. package/build/commonjs/utils/useUpdateOnHMR.js +3 -7
  19. package/build/commonjs/utils/useUpdateOnHMR.js.map +1 -1
  20. package/build/commonjs/widgets/server-credentials.js +9 -0
  21. package/build/commonjs/widgets/server-credentials.js.map +1 -1
  22. package/build/commonjs/widgets/server-update.js +78 -0
  23. package/build/commonjs/widgets/server-update.js.map +1 -0
  24. package/build/module/dynamic-widget/api.js +10 -0
  25. package/build/module/dynamic-widget/api.js.map +1 -0
  26. package/build/module/events.js +23 -0
  27. package/build/module/events.js.map +1 -1
  28. package/build/module/index.js +4 -0
  29. package/build/module/index.js.map +1 -1
  30. package/build/module/live-activity/api.js +2 -2
  31. package/build/module/live-activity/api.js.map +1 -1
  32. package/build/module/live-activity/dynamic-api.js +167 -0
  33. package/build/module/live-activity/dynamic-api.js.map +1 -0
  34. package/build/module/native/NativeVoltra.js.map +1 -1
  35. package/build/module/utils/enableDynamicLiveActivityHotReload.js +43 -0
  36. package/build/module/utils/enableDynamicLiveActivityHotReload.js.map +1 -0
  37. package/build/module/utils/enableWidgetHotReload.js +9 -11
  38. package/build/module/utils/enableWidgetHotReload.js.map +1 -1
  39. package/build/module/utils/useUpdateOnHMR.js +3 -7
  40. package/build/module/utils/useUpdateOnHMR.js.map +1 -1
  41. package/build/module/widgets/server-credentials.js +9 -0
  42. package/build/module/widgets/server-credentials.js.map +1 -1
  43. package/build/module/widgets/server-update.js +72 -0
  44. package/build/module/widgets/server-update.js.map +1 -0
  45. package/build/typescript/commonjs/dynamic-widget/api.d.ts +8 -0
  46. package/build/typescript/commonjs/dynamic-widget/api.d.ts.map +1 -0
  47. package/build/typescript/commonjs/events.d.ts +7 -0
  48. package/build/typescript/commonjs/events.d.ts.map +1 -1
  49. package/build/typescript/commonjs/index.d.ts +4 -0
  50. package/build/typescript/commonjs/index.d.ts.map +1 -1
  51. package/build/typescript/commonjs/live-activity/api.d.ts +7 -0
  52. package/build/typescript/commonjs/live-activity/api.d.ts.map +1 -1
  53. package/build/typescript/commonjs/live-activity/dynamic-api.d.ts +54 -0
  54. package/build/typescript/commonjs/live-activity/dynamic-api.d.ts.map +1 -0
  55. package/build/typescript/commonjs/native/NativeVoltra.d.ts +21 -0
  56. package/build/typescript/commonjs/native/NativeVoltra.d.ts.map +1 -1
  57. package/build/typescript/commonjs/types.d.ts +1 -1
  58. package/build/typescript/commonjs/types.d.ts.map +1 -1
  59. package/build/typescript/commonjs/utils/enableDynamicLiveActivityHotReload.d.ts +15 -0
  60. package/build/typescript/commonjs/utils/enableDynamicLiveActivityHotReload.d.ts.map +1 -0
  61. package/build/typescript/commonjs/utils/enableWidgetHotReload.d.ts +5 -7
  62. package/build/typescript/commonjs/utils/enableWidgetHotReload.d.ts.map +1 -1
  63. package/build/typescript/commonjs/utils/useUpdateOnHMR.d.ts +0 -3
  64. package/build/typescript/commonjs/utils/useUpdateOnHMR.d.ts.map +1 -1
  65. package/build/typescript/commonjs/widgets/server-credentials.d.ts +8 -0
  66. package/build/typescript/commonjs/widgets/server-credentials.d.ts.map +1 -1
  67. package/build/typescript/commonjs/widgets/server-update.d.ts +64 -0
  68. package/build/typescript/commonjs/widgets/server-update.d.ts.map +1 -0
  69. package/build/typescript/module/dynamic-widget/api.d.ts +8 -0
  70. package/build/typescript/module/dynamic-widget/api.d.ts.map +1 -0
  71. package/build/typescript/module/events.d.ts +7 -0
  72. package/build/typescript/module/events.d.ts.map +1 -1
  73. package/build/typescript/module/index.d.ts +4 -0
  74. package/build/typescript/module/index.d.ts.map +1 -1
  75. package/build/typescript/module/live-activity/api.d.ts +7 -0
  76. package/build/typescript/module/live-activity/api.d.ts.map +1 -1
  77. package/build/typescript/module/live-activity/dynamic-api.d.ts +54 -0
  78. package/build/typescript/module/live-activity/dynamic-api.d.ts.map +1 -0
  79. package/build/typescript/module/native/NativeVoltra.d.ts +21 -0
  80. package/build/typescript/module/native/NativeVoltra.d.ts.map +1 -1
  81. package/build/typescript/module/types.d.ts +1 -1
  82. package/build/typescript/module/types.d.ts.map +1 -1
  83. package/build/typescript/module/utils/enableDynamicLiveActivityHotReload.d.ts +15 -0
  84. package/build/typescript/module/utils/enableDynamicLiveActivityHotReload.d.ts.map +1 -0
  85. package/build/typescript/module/utils/enableWidgetHotReload.d.ts +5 -7
  86. package/build/typescript/module/utils/enableWidgetHotReload.d.ts.map +1 -1
  87. package/build/typescript/module/utils/useUpdateOnHMR.d.ts +0 -3
  88. package/build/typescript/module/utils/useUpdateOnHMR.d.ts.map +1 -1
  89. package/build/typescript/module/widgets/server-credentials.d.ts +8 -0
  90. package/build/typescript/module/widgets/server-credentials.d.ts.map +1 -1
  91. package/build/typescript/module/widgets/server-update.d.ts +64 -0
  92. package/build/typescript/module/widgets/server-update.d.ts.map +1 -0
  93. package/expo-plugin/build/cjs/constants.js +20 -1
  94. package/expo-plugin/build/cjs/constants.js.map +1 -1
  95. package/expo-plugin/build/cjs/index.js +9 -1
  96. package/expo-plugin/build/cjs/index.js.map +1 -1
  97. package/expo-plugin/build/cjs/ios/index.js +1 -0
  98. package/expo-plugin/build/cjs/ios/index.js.map +1 -1
  99. package/expo-plugin/build/cjs/ios/infoPlist.js +28 -5
  100. package/expo-plugin/build/cjs/ios/infoPlist.js.map +1 -1
  101. package/expo-plugin/build/cjs/ios/serverUpdate.js +25 -0
  102. package/expo-plugin/build/cjs/ios/serverUpdate.js.map +1 -0
  103. package/expo-plugin/build/cjs/ios-widget/clientRendered.js +4 -4
  104. package/expo-plugin/build/cjs/ios-widget/clientRendered.js.map +1 -1
  105. package/expo-plugin/build/cjs/ios-widget/clientRenderedPrerender.js +5 -5
  106. package/expo-plugin/build/cjs/ios-widget/clientRenderedPrerender.js.map +1 -1
  107. package/expo-plugin/build/cjs/ios-widget/dynamic-live-activity/swift.js +130 -0
  108. package/expo-plugin/build/cjs/ios-widget/dynamic-live-activity/swift.js.map +1 -0
  109. package/expo-plugin/build/cjs/ios-widget/files/index.js +9 -2
  110. package/expo-plugin/build/cjs/ios-widget/files/index.js.map +1 -1
  111. package/expo-plugin/build/cjs/ios-widget/files/infoPlist.js +6 -3
  112. package/expo-plugin/build/cjs/ios-widget/files/infoPlist.js.map +1 -1
  113. package/expo-plugin/build/cjs/ios-widget/files/manifest.js +24 -0
  114. package/expo-plugin/build/cjs/ios-widget/files/manifest.js.map +1 -1
  115. package/expo-plugin/build/cjs/ios-widget/files/swift-utils.js +7 -0
  116. package/expo-plugin/build/cjs/ios-widget/files/swift-utils.js.map +1 -0
  117. package/expo-plugin/build/cjs/ios-widget/files/swift.js +56 -26
  118. package/expo-plugin/build/cjs/ios-widget/files/swift.js.map +1 -1
  119. package/expo-plugin/build/cjs/ios-widget/index.js +9 -3
  120. package/expo-plugin/build/cjs/ios-widget/index.js.map +1 -1
  121. package/expo-plugin/build/cjs/ios-widget/podfile.js +38 -12
  122. package/expo-plugin/build/cjs/ios-widget/podfile.js.map +1 -1
  123. package/expo-plugin/build/cjs/ios-widget/widgetPlist.js +34 -22
  124. package/expo-plugin/build/cjs/ios-widget/widgetPlist.js.map +1 -1
  125. package/expo-plugin/build/cjs/ios-widget/xcode/buildPhases.js +194 -118
  126. package/expo-plugin/build/cjs/ios-widget/xcode/buildPhases.js.map +1 -1
  127. package/expo-plugin/build/cjs/ios-widget/xcode/configurationList.js +30 -22
  128. package/expo-plugin/build/cjs/ios-widget/xcode/configurationList.js.map +1 -1
  129. package/expo-plugin/build/cjs/ios-widget/xcode/fileReferences.js +50 -0
  130. package/expo-plugin/build/cjs/ios-widget/xcode/fileReferences.js.map +1 -0
  131. package/expo-plugin/build/cjs/ios-widget/xcode/groups.js +45 -43
  132. package/expo-plugin/build/cjs/ios-widget/xcode/groups.js.map +1 -1
  133. package/expo-plugin/build/cjs/ios-widget/xcode/index.js +93 -91
  134. package/expo-plugin/build/cjs/ios-widget/xcode/index.js.map +1 -1
  135. package/expo-plugin/build/cjs/ios-widget/xcode/mainAppSettings.js +41 -39
  136. package/expo-plugin/build/cjs/ios-widget/xcode/mainAppSettings.js.map +1 -1
  137. package/expo-plugin/build/cjs/ios-widget/xcode/productFile.js +2 -2
  138. package/expo-plugin/build/cjs/ios-widget/xcode/productFile.js.map +1 -1
  139. package/expo-plugin/build/cjs/ios-widget/xcode/target.js +29 -63
  140. package/expo-plugin/build/cjs/ios-widget/xcode/target.js.map +1 -1
  141. package/expo-plugin/build/cjs/utils/urlScheme.js +36 -14
  142. package/expo-plugin/build/cjs/utils/urlScheme.js.map +1 -1
  143. package/expo-plugin/build/cjs/validation.js +54 -0
  144. package/expo-plugin/build/cjs/validation.js.map +1 -1
  145. package/expo-plugin/build/esm/constants.js +17 -0
  146. package/expo-plugin/build/esm/constants.js.map +1 -1
  147. package/expo-plugin/build/esm/index.js +9 -1
  148. package/expo-plugin/build/esm/index.js.map +1 -1
  149. package/expo-plugin/build/esm/ios/index.js +1 -0
  150. package/expo-plugin/build/esm/ios/index.js.map +1 -1
  151. package/expo-plugin/build/esm/ios/infoPlist.js +28 -5
  152. package/expo-plugin/build/esm/ios/infoPlist.js.map +1 -1
  153. package/expo-plugin/build/esm/ios/serverUpdate.js +21 -0
  154. package/expo-plugin/build/esm/ios/serverUpdate.js.map +1 -0
  155. package/expo-plugin/build/esm/ios-widget/clientRendered.js +5 -5
  156. package/expo-plugin/build/esm/ios-widget/clientRendered.js.map +1 -1
  157. package/expo-plugin/build/esm/ios-widget/clientRenderedPrerender.js +6 -6
  158. package/expo-plugin/build/esm/ios-widget/clientRenderedPrerender.js.map +1 -1
  159. package/expo-plugin/build/esm/ios-widget/dynamic-live-activity/swift.js +122 -0
  160. package/expo-plugin/build/esm/ios-widget/dynamic-live-activity/swift.js.map +1 -0
  161. package/expo-plugin/build/esm/ios-widget/files/index.js +10 -3
  162. package/expo-plugin/build/esm/ios-widget/files/index.js.map +1 -1
  163. package/expo-plugin/build/esm/ios-widget/files/infoPlist.js +6 -3
  164. package/expo-plugin/build/esm/ios-widget/files/infoPlist.js.map +1 -1
  165. package/expo-plugin/build/esm/ios-widget/files/manifest.js +23 -1
  166. package/expo-plugin/build/esm/ios-widget/files/manifest.js.map +1 -1
  167. package/expo-plugin/build/esm/ios-widget/files/swift-utils.js +4 -0
  168. package/expo-plugin/build/esm/ios-widget/files/swift-utils.js.map +1 -0
  169. package/expo-plugin/build/esm/ios-widget/files/swift.js +50 -20
  170. package/expo-plugin/build/esm/ios-widget/files/swift.js.map +1 -1
  171. package/expo-plugin/build/esm/ios-widget/index.js +9 -3
  172. package/expo-plugin/build/esm/ios-widget/index.js.map +1 -1
  173. package/expo-plugin/build/esm/ios-widget/podfile.js +36 -11
  174. package/expo-plugin/build/esm/ios-widget/podfile.js.map +1 -1
  175. package/expo-plugin/build/esm/ios-widget/widgetPlist.js +34 -22
  176. package/expo-plugin/build/esm/ios-widget/widgetPlist.js.map +1 -1
  177. package/expo-plugin/build/esm/ios-widget/xcode/buildPhases.js +194 -117
  178. package/expo-plugin/build/esm/ios-widget/xcode/buildPhases.js.map +1 -1
  179. package/expo-plugin/build/esm/ios-widget/xcode/configurationList.js +31 -22
  180. package/expo-plugin/build/esm/ios-widget/xcode/configurationList.js.map +1 -1
  181. package/expo-plugin/build/esm/ios-widget/xcode/fileReferences.js +45 -0
  182. package/expo-plugin/build/esm/ios-widget/xcode/fileReferences.js.map +1 -0
  183. package/expo-plugin/build/esm/ios-widget/xcode/groups.js +45 -42
  184. package/expo-plugin/build/esm/ios-widget/xcode/groups.js.map +1 -1
  185. package/expo-plugin/build/esm/ios-widget/xcode/index.js +97 -96
  186. package/expo-plugin/build/esm/ios-widget/xcode/index.js.map +1 -1
  187. package/expo-plugin/build/esm/ios-widget/xcode/mainAppSettings.js +41 -39
  188. package/expo-plugin/build/esm/ios-widget/xcode/mainAppSettings.js.map +1 -1
  189. package/expo-plugin/build/esm/ios-widget/xcode/productFile.js +3 -2
  190. package/expo-plugin/build/esm/ios-widget/xcode/productFile.js.map +1 -1
  191. package/expo-plugin/build/esm/ios-widget/xcode/target.js +28 -62
  192. package/expo-plugin/build/esm/ios-widget/xcode/target.js.map +1 -1
  193. package/expo-plugin/build/esm/utils/urlScheme.js +34 -14
  194. package/expo-plugin/build/esm/utils/urlScheme.js.map +1 -1
  195. package/expo-plugin/build/esm/validation.js +54 -1
  196. package/expo-plugin/build/esm/validation.js.map +1 -1
  197. package/expo-plugin/build/types/constants.d.ts +10 -1
  198. package/expo-plugin/build/types/constants.d.ts.map +1 -1
  199. package/expo-plugin/build/types/index.d.ts +1 -1
  200. package/expo-plugin/build/types/index.d.ts.map +1 -1
  201. package/expo-plugin/build/types/ios/index.d.ts +2 -0
  202. package/expo-plugin/build/types/ios/index.d.ts.map +1 -1
  203. package/expo-plugin/build/types/ios/infoPlist.d.ts +2 -0
  204. package/expo-plugin/build/types/ios/infoPlist.d.ts.map +1 -1
  205. package/expo-plugin/build/types/ios/serverUpdate.d.ts +11 -0
  206. package/expo-plugin/build/types/ios/serverUpdate.d.ts.map +1 -0
  207. package/expo-plugin/build/types/ios-widget/clientRendered.d.ts.map +1 -1
  208. package/expo-plugin/build/types/ios-widget/clientRenderedPrerender.d.ts.map +1 -1
  209. package/expo-plugin/build/types/ios-widget/dynamic-live-activity/swift.d.ts +7 -0
  210. package/expo-plugin/build/types/ios-widget/dynamic-live-activity/swift.d.ts.map +1 -0
  211. package/expo-plugin/build/types/ios-widget/files/index.d.ts +3 -1
  212. package/expo-plugin/build/types/ios-widget/files/index.d.ts.map +1 -1
  213. package/expo-plugin/build/types/ios-widget/files/infoPlist.d.ts +2 -1
  214. package/expo-plugin/build/types/ios-widget/files/infoPlist.d.ts.map +1 -1
  215. package/expo-plugin/build/types/ios-widget/files/manifest.d.ts +9 -2
  216. package/expo-plugin/build/types/ios-widget/files/manifest.d.ts.map +1 -1
  217. package/expo-plugin/build/types/ios-widget/files/swift-utils.d.ts +2 -0
  218. package/expo-plugin/build/types/ios-widget/files/swift-utils.d.ts.map +1 -0
  219. package/expo-plugin/build/types/ios-widget/files/swift.d.ts +6 -2
  220. package/expo-plugin/build/types/ios-widget/files/swift.d.ts.map +1 -1
  221. package/expo-plugin/build/types/ios-widget/index.d.ts +3 -1
  222. package/expo-plugin/build/types/ios-widget/index.d.ts.map +1 -1
  223. package/expo-plugin/build/types/ios-widget/podfile.d.ts +19 -1
  224. package/expo-plugin/build/types/ios-widget/podfile.d.ts.map +1 -1
  225. package/expo-plugin/build/types/ios-widget/widgetPlist.d.ts.map +1 -1
  226. package/expo-plugin/build/types/ios-widget/xcode/buildPhases.d.ts +6 -8
  227. package/expo-plugin/build/types/ios-widget/xcode/buildPhases.d.ts.map +1 -1
  228. package/expo-plugin/build/types/ios-widget/xcode/configurationList.d.ts +15 -10
  229. package/expo-plugin/build/types/ios-widget/xcode/configurationList.d.ts.map +1 -1
  230. package/expo-plugin/build/types/ios-widget/xcode/fileReferences.d.ts +16 -0
  231. package/expo-plugin/build/types/ios-widget/xcode/fileReferences.d.ts.map +1 -0
  232. package/expo-plugin/build/types/ios-widget/xcode/groups.d.ts +0 -4
  233. package/expo-plugin/build/types/ios-widget/xcode/groups.d.ts.map +1 -1
  234. package/expo-plugin/build/types/ios-widget/xcode/index.d.ts +23 -3
  235. package/expo-plugin/build/types/ios-widget/xcode/index.d.ts.map +1 -1
  236. package/expo-plugin/build/types/ios-widget/xcode/mainAppSettings.d.ts +16 -4
  237. package/expo-plugin/build/types/ios-widget/xcode/mainAppSettings.d.ts.map +1 -1
  238. package/expo-plugin/build/types/ios-widget/xcode/productFile.d.ts +0 -4
  239. package/expo-plugin/build/types/ios-widget/xcode/productFile.d.ts.map +1 -1
  240. package/expo-plugin/build/types/ios-widget/xcode/target.d.ts +11 -26
  241. package/expo-plugin/build/types/ios-widget/xcode/target.d.ts.map +1 -1
  242. package/expo-plugin/build/types/types.d.ts +23 -4
  243. package/expo-plugin/build/types/types.d.ts.map +1 -1
  244. package/expo-plugin/build/types/utils/urlScheme.d.ts +16 -0
  245. package/expo-plugin/build/types/utils/urlScheme.d.ts.map +1 -1
  246. package/expo-plugin/build/types/validation.d.ts +2 -1
  247. package/expo-plugin/build/types/validation.d.ts.map +1 -1
  248. package/expo-plugin/src/constants.ts +24 -1
  249. package/expo-plugin/src/index.ts +14 -1
  250. package/expo-plugin/src/ios/index.ts +3 -0
  251. package/expo-plugin/src/ios/infoPlist.ts +33 -5
  252. package/expo-plugin/src/ios/serverUpdate.ts +29 -0
  253. package/expo-plugin/src/ios-widget/clientRendered.ts +9 -5
  254. package/expo-plugin/src/ios-widget/clientRenderedPrerender.ts +11 -6
  255. package/expo-plugin/src/ios-widget/dynamic-live-activity/swift.ts +138 -0
  256. package/expo-plugin/src/ios-widget/files/index.ts +15 -4
  257. package/expo-plugin/src/ios-widget/files/infoPlist.ts +17 -3
  258. package/expo-plugin/src/ios-widget/files/manifest.ts +42 -2
  259. package/expo-plugin/src/ios-widget/files/swift-utils.ts +3 -0
  260. package/expo-plugin/src/ios-widget/files/swift.ts +69 -22
  261. package/expo-plugin/src/ios-widget/index.ts +13 -3
  262. package/expo-plugin/src/ios-widget/podfile.ts +46 -13
  263. package/expo-plugin/src/ios-widget/widgetPlist.ts +37 -23
  264. package/expo-plugin/src/ios-widget/xcode/__fixtures__/fresh.pbxproj +197 -0
  265. package/expo-plugin/src/ios-widget/xcode/__fixtures__/with-existing-extension.pbxproj +321 -0
  266. package/expo-plugin/src/ios-widget/xcode/__fixtures__/with-per-config-signing.pbxproj +203 -0
  267. package/expo-plugin/src/ios-widget/xcode/__snapshots__/applyXcodeChanges.node.test.ts.snap +363 -0
  268. package/expo-plugin/src/ios-widget/xcode/__tests__/pbxConsistency.ts +130 -0
  269. package/expo-plugin/src/ios-widget/xcode/buildPhases.ts +210 -164
  270. package/expo-plugin/src/ios-widget/xcode/configurationList.ts +52 -35
  271. package/expo-plugin/src/ios-widget/xcode/fileReferences.ts +51 -0
  272. package/expo-plugin/src/ios-widget/xcode/groups.ts +52 -54
  273. package/expo-plugin/src/ios-widget/xcode/index.ts +124 -119
  274. package/expo-plugin/src/ios-widget/xcode/mainAppSettings.ts +59 -54
  275. package/expo-plugin/src/ios-widget/xcode/productFile.ts +3 -2
  276. package/expo-plugin/src/ios-widget/xcode/target.ts +31 -83
  277. package/expo-plugin/src/types.ts +28 -4
  278. package/expo-plugin/src/utils/urlScheme.ts +47 -17
  279. package/expo-plugin/src/validation.ts +76 -1
  280. package/ios/Package.swift +39 -4
  281. package/ios/VoltraWidget.podspec +1 -0
  282. package/ios/app/NativeVoltra.mm +126 -7
  283. package/ios/app/VoltraLiveActivityManager.swift +30 -0
  284. package/ios/app/VoltraLiveActivityService.swift +77 -5
  285. package/ios/app/VoltraModule.swift +117 -1
  286. package/ios/app/VoltraModuleImpl.swift +116 -2
  287. package/ios/app/VoltraViewComponentView.mm +3 -3
  288. package/ios/app/VoltraWidgetService.swift +147 -12
  289. package/ios/app/dynamic-live-activity/VoltraDynamicLiveActivityService.swift +97 -0
  290. package/ios/app/dynamic-live-activity/VoltraLiveActivityChronology.swift +68 -0
  291. package/ios/shared/DynamicWidgetPropsCodec.swift +51 -0
  292. package/ios/shared/DynamicWidgetPropsStorage.swift +53 -0
  293. package/ios/shared/DynamicWidgetPropsStore.swift +117 -0
  294. package/ios/shared/DynamicWidgetRenderCoordinator.swift +31 -0
  295. package/ios/shared/DynamicWidgetServerUpdate/DynamicWidgetServerFetchResolver.swift +34 -0
  296. package/ios/shared/DynamicWidgetServerUpdate/DynamicWidgetServerProps.swift +55 -0
  297. package/ios/shared/DynamicWidgetServerUpdate/DynamicWidgetServerPropsStore.swift +146 -0
  298. package/ios/shared/DynamicWidgetServerUpdate/DynamicWidgetServerUpdateRunner.swift +193 -0
  299. package/ios/shared/DynamicWidgetUpdater.swift +30 -0
  300. package/ios/shared/ServerWidgetContentResolver.swift +60 -0
  301. package/ios/shared/ServerWidgetResponseStore.swift +25 -0
  302. package/ios/shared/ShortNames.swift +6 -0
  303. package/ios/shared/VoltraConfig.swift +41 -0
  304. package/ios/shared/VoltraConstants.swift +19 -0
  305. package/ios/shared/VoltraElement.swift +127 -43
  306. package/ios/shared/VoltraEventBus.swift +52 -7
  307. package/ios/shared/VoltraJSRenderer.swift +93 -23
  308. package/ios/shared/VoltraNode.swift +7 -111
  309. package/ios/shared/VoltraRefreshIntent.swift +1 -1
  310. package/ios/shared/VoltraWidgetDefaults.swift +9 -1
  311. package/ios/shared/VoltraWidgetKind.swift +41 -0
  312. package/ios/shared/VoltraWidgetServerFetcher.swift +52 -107
  313. package/ios/shared/WidgetServer/VoltraWidgetAppearance.swift +17 -0
  314. package/ios/shared/WidgetServer/VoltraWidgetServer.swift +138 -0
  315. package/ios/shared/WidgetServer/WidgetCanonicalConfiguration.swift +77 -0
  316. package/ios/shared/WidgetServer/WidgetScope.swift +55 -0
  317. package/ios/shared/WidgetServer/WidgetServerEtagStore.swift +55 -0
  318. package/ios/shared/WidgetServer/WidgetServerFetcher.swift +179 -0
  319. package/ios/shared/WidgetServer/WidgetServerRequestBuilder.swift +114 -0
  320. package/ios/shared/WidgetServer/WidgetServerSettingsCodec.swift +47 -0
  321. package/ios/shared/WidgetServer/WidgetServerSettingsResolver.swift +129 -0
  322. package/ios/shared/WidgetServer/WidgetServerSettingsStore.swift +170 -0
  323. package/ios/shared/WidgetServer/WidgetServerSettingsValidator.swift +73 -0
  324. package/ios/shared/WidgetServer/WidgetServerUpdateSettings.swift +123 -0
  325. package/ios/shared/WidgetServer/WidgetServerUpdateSettingsJson.swift +115 -0
  326. package/ios/shared/dynamic-live-activity/DynamicLiveActivityPropsCodec.swift +13 -0
  327. package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityBundleSource.swift +156 -0
  328. package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityObserver.swift +97 -0
  329. package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityOperations.swift +105 -0
  330. package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityPayloadValidator.swift +55 -0
  331. package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityRegistry.swift +143 -0
  332. package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityRenderFailureQueue.swift +158 -0
  333. package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityRenderFailureReporter.swift +120 -0
  334. package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityRenderer.swift +370 -0
  335. package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityTypes.swift +87 -0
  336. package/ios/shared/dynamic-live-activity/VoltraLiveActivityOrder.swift +19 -0
  337. package/ios/target/VoltraClientWidgetRuntime.swift +60 -10
  338. package/ios/target/VoltraDynamicWidgetServerUpdateProvider.swift +204 -0
  339. package/ios/target/VoltraHomeWidget.swift +91 -92
  340. package/ios/target/VoltraWidget.swift +3 -1
  341. package/ios/ui/Extensions/VoltraNode+View.swift +113 -0
  342. package/ios/ui/Generated/Parameters/ChartParameters.swift +3 -0
  343. package/ios/ui/Helpers/VoltraDeepLinkResolver.swift +5 -3
  344. package/ios/ui/Helpers/VoltraProgressDriver.swift +6 -2
  345. package/ios/ui/Layout/VoltraFlexStackLayout.swift +9 -3
  346. package/ios/ui/Style/JSColorParser.swift +24 -8
  347. package/ios/ui/Style/JSGradientParser.swift +36 -12
  348. package/ios/ui/Style/JSStyleParser.swift +36 -12
  349. package/ios/ui/Style/LayoutStyle.swift +12 -4
  350. package/ios/ui/Views/VoltraChart.swift +160 -16
  351. package/ios/ui/Views/VoltraLinearGradient.swift +6 -2
  352. package/package.json +5 -5
  353. package/src/dynamic-widget/api.ts +25 -0
  354. package/src/events.ts +34 -0
  355. package/src/index.ts +23 -0
  356. package/src/live-activity/api.ts +2 -2
  357. package/src/live-activity/dynamic-api.ts +240 -0
  358. package/src/native/NativeVoltra.ts +22 -0
  359. package/src/types.ts +4 -0
  360. package/src/utils/enableDynamicLiveActivityHotReload.ts +50 -0
  361. package/src/utils/enableWidgetHotReload.ts +9 -16
  362. package/src/utils/useUpdateOnHMR.ts +3 -12
  363. package/src/widgets/server-credentials.ts +8 -0
  364. package/src/widgets/server-update.ts +84 -0
  365. /package/ios/shared/{VoltraKeychainHelper.swift → WidgetServer/VoltraKeychainHelper.swift} +0 -0
@@ -0,0 +1,122 @@
1
+ import dedent from 'dedent';
2
+ import { getDynamicLiveActivityAttributesType } from '@use-voltra/expo-plugin';
3
+ import { escapeForSwiftStringLiteral } from '../files/swift-utils';
4
+ export function generateDynamicLiveActivityWidgetInstances(liveActivities) {
5
+ return sortedDefinitions(liveActivities)
6
+ .map((liveActivity) => `VoltraDynamicLiveActivity_${getDynamicLiveActivityAttributesType(liveActivity.id)}()`)
7
+ .join('\n ');
8
+ }
9
+ /** Generates the Dynamic Live Activity types shared by the app and extension targets. */
10
+ export function generateDynamicLiveActivityTypesSwift(liveActivities) {
11
+ const definitions = sortedDefinitions(liveActivities);
12
+ const typeDefinitions = definitions.map(generateDynamicLiveActivitySwift).map(normalizeIndent).join('\n\n');
13
+ const header = dedent `
14
+ //
15
+ // VoltraDynamicLiveActivityTypes.swift
16
+ //
17
+ // Auto-generated by Voltra config plugin. Do not edit.
18
+ //
19
+
20
+ import ActivityKit
21
+ import Foundation
22
+
23
+ import VoltraRuntime
24
+
25
+ @objc(VoltraGeneratedDynamicLiveActivityRegistration)
26
+ public final class VoltraGeneratedDynamicLiveActivityRegistration: NSObject {
27
+ @objc public static func registerDefinitions() {
28
+ ${definitions
29
+ .map((liveActivity) => ` VoltraDynamicLiveActivityRegistry.shared.register(${getDynamicLiveActivityAttributesType(liveActivity.id)}.self)`)
30
+ .join('\n')}
31
+ }
32
+ }
33
+
34
+ `;
35
+ return [header.trim(), typeDefinitions.trim()].filter(Boolean).join('\n\n');
36
+ }
37
+ /** Generates extension-only ActivityConfiguration declarations for Dynamic Live Activities. */
38
+ export function generateDynamicLiveActivitiesSwift(liveActivities) {
39
+ const configurations = sortedDefinitions(liveActivities)
40
+ .map((liveActivity) => {
41
+ const attributesType = getDynamicLiveActivityAttributesType(liveActivity.id);
42
+ const definitionId = escapeForSwiftStringLiteral(liveActivity.id);
43
+ return dedent `
44
+ public struct VoltraDynamicLiveActivity_${attributesType}: Widget {
45
+ public init() {}
46
+
47
+ public var body: some WidgetConfiguration {
48
+ if #available(iOS 18.0, *) {
49
+ return adaptiveConfig()
50
+ } else {
51
+ return defaultConfig()
52
+ }
53
+ }
54
+
55
+ @available(iOS 18.0, *)
56
+ private func adaptiveConfig() -> some WidgetConfiguration {
57
+ ActivityConfiguration(for: ${attributesType}.self) { context in
58
+ VoltraDynamicLiveActivityRenderer.lockScreen(definitionId: "${definitionId}", context: context)
59
+ } dynamicIsland: { context in
60
+ VoltraDynamicLiveActivityRenderer.dynamicIsland(definitionId: "${definitionId}", context: context)
61
+ }
62
+ .supplementalActivityFamilies([.small, .medium])
63
+ }
64
+
65
+ private func defaultConfig() -> some WidgetConfiguration {
66
+ ActivityConfiguration(for: ${attributesType}.self) { context in
67
+ VoltraDynamicLiveActivityRenderer.lockScreen(definitionId: "${definitionId}", context: context)
68
+ } dynamicIsland: { context in
69
+ VoltraDynamicLiveActivityRenderer.dynamicIsland(definitionId: "${definitionId}", context: context)
70
+ }
71
+ }
72
+ }
73
+ `;
74
+ })
75
+ .map(normalizeIndent)
76
+ .join('\n\n');
77
+ const header = dedent `
78
+ //
79
+ // VoltraDynamicLiveActivities.swift
80
+ //
81
+ // Auto-generated by Voltra config plugin. Do not edit.
82
+ //
83
+
84
+ import ActivityKit
85
+ import SwiftUI
86
+ import WidgetKit
87
+ import VoltraRuntime
88
+
89
+ `;
90
+ return [header.trim(), configurations.trim()].filter(Boolean).join('\n\n');
91
+ }
92
+ function generateDynamicLiveActivitySwift(liveActivity) {
93
+ const attributesType = getDynamicLiveActivityAttributesType(liveActivity.id);
94
+ const definitionId = escapeForSwiftStringLiteral(liveActivity.id);
95
+ return dedent `
96
+ public struct ${attributesType}: ActivityAttributes {
97
+ public typealias ContentState = VoltraDynamicLiveActivityContentState
98
+
99
+ public let name: String
100
+ public let deepLinkUrl: String?
101
+
102
+ public init(name: String, deepLinkUrl: String?) {
103
+ self.name = name
104
+ self.deepLinkUrl = deepLinkUrl
105
+ }
106
+ }
107
+
108
+ extension ${attributesType}: VoltraDynamicLiveActivityDefinition {
109
+ public static let definitionId = "${definitionId}"
110
+ }
111
+
112
+ `;
113
+ }
114
+ function sortedDefinitions(liveActivities) {
115
+ return [...liveActivities].sort((left, right) => left.id.localeCompare(right.id));
116
+ }
117
+ function normalizeIndent(source) {
118
+ const lines = source.trim().split('\n');
119
+ const indent = Math.min(...lines.filter(Boolean).map((line) => line.match(/^\s*/)?.[0].length ?? 0));
120
+ return lines.map((line) => line.slice(indent)).join('\n');
121
+ }
122
+ //# sourceMappingURL=swift.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swift.js","sourceRoot":"","sources":["../../../../src/ios-widget/dynamic-live-activity/swift.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import * as path from 'path';
4
4
  import { generateAssets } from './assets';
5
5
  import { generateEntitlements } from './entitlements';
6
6
  import { generateInfoPlist } from './infoPlist';
7
- import { generateIOSDynamicWidgetsManifest } from './manifest';
7
+ import { generateIOSDynamicLiveActivitiesManifest, generateIOSDynamicWidgetsManifest } from './manifest';
8
8
  import { generateSwiftFiles } from './swift';
9
9
  /**
10
10
  * Plugin step that generates all widget extension files.
@@ -19,7 +19,7 @@ import { generateSwiftFiles } from './swift';
19
19
  * This should run before configureXcodeProject so the files exist when Xcode project is configured.
20
20
  */
21
21
  export const generateWidgetExtensionFiles = (config, props) => {
22
- const { targetName, widgets, groupIdentifier, keychainGroup, version, buildNumber } = props;
22
+ const { targetName, widgets, liveActivities, groupIdentifier, keychainGroup, version, buildNumber, voltraVersion } = props;
23
23
  return withDangerousMod(config, [
24
24
  'ios',
25
25
  async (config) => {
@@ -33,7 +33,7 @@ export const generateWidgetExtensionFiles = (config, props) => {
33
33
  fs.mkdirSync(targetPath, { recursive: true });
34
34
  }
35
35
  // Generate Info.plist
36
- generateInfoPlist(targetPath, targetName, version, buildNumber);
36
+ generateInfoPlist(targetPath, targetName, version, buildNumber, voltraVersion);
37
37
  // Generate Assets.xcassets and copy user images
38
38
  generateAssets({ targetPath });
39
39
  // Generate Swift files (widget bundle, initial states)
@@ -41,12 +41,19 @@ export const generateWidgetExtensionFiles = (config, props) => {
41
41
  targetPath,
42
42
  projectRoot,
43
43
  widgets,
44
+ liveActivities,
44
45
  });
45
46
  // Write the iOS-owned Dynamic Widgets manifest for Metro to consume later.
46
47
  generateIOSDynamicWidgetsManifest({
47
48
  projectRoot,
48
49
  widgets,
49
50
  });
51
+ // Dynamic Live Activities have their own Metro manifest so their IDs may overlap with
52
+ // Dynamic Widgets and stale declarations never leak into a later prebuild.
53
+ generateIOSDynamicLiveActivitiesManifest({
54
+ projectRoot,
55
+ liveActivities,
56
+ });
50
57
  // Generate entitlements file (may be empty if no groupIdentifier or keychainGroup)
51
58
  generateEntitlements({
52
59
  targetPath,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ios-widget/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAG5B,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAW5C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAoD,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;IAC7G,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IAE3F,OAAO,gBAAgB,CAAC,MAAM,EAAE;QAC9B,KAAK;QACL,KAAK,EAAE,MAAM,EAAE,EAAE;YACf,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;gBACjC,OAAO,MAAM,CAAA;YACf,CAAC;YAED,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,UAAU,CAAA;YAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAA;YAE7D,iCAAiC;YACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC/C,CAAC;YAED,sBAAsB;YACtB,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;YAE/D,gDAAgD;YAChD,cAAc,CAAC,EAAE,UAAU,EAAE,CAAC,CAAA;YAE9B,uDAAuD;YACvD,MAAM,kBAAkB,CAAC;gBACvB,UAAU;gBACV,WAAW;gBACX,OAAO;aACR,CAAC,CAAA;YAEF,2EAA2E;YAC3E,iCAAiC,CAAC;gBAChC,WAAW;gBACX,OAAO;aACR,CAAC,CAAA;YAEF,mFAAmF;YACnF,oBAAoB,CAAC;gBACnB,UAAU;gBACV,UAAU;gBACV,eAAe;gBACf,aAAa;aACd,CAAC,CAAA;YAEF,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ios-widget/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAG5B,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,wCAAwC,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAA;AACxG,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAa5C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAoD,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;IAC7G,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,GAChH,KAAK,CAAA;IAEP,OAAO,gBAAgB,CAAC,MAAM,EAAE;QAC9B,KAAK;QACL,KAAK,EAAE,MAAM,EAAE,EAAE;YACf,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;gBACjC,OAAO,MAAM,CAAA;YACf,CAAC;YAED,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,UAAU,CAAA;YAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAA;YAE7D,iCAAiC;YACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC/C,CAAC;YAED,sBAAsB;YACtB,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,CAAA;YAE9E,gDAAgD;YAChD,cAAc,CAAC,EAAE,UAAU,EAAE,CAAC,CAAA;YAE9B,uDAAuD;YACvD,MAAM,kBAAkB,CAAC;gBACvB,UAAU;gBACV,WAAW;gBACX,OAAO;gBACP,cAAc;aACf,CAAC,CAAA;YAEF,2EAA2E;YAC3E,iCAAiC,CAAC;gBAChC,WAAW;gBACX,OAAO;aACR,CAAC,CAAA;YAEF,sFAAsF;YACtF,2EAA2E;YAC3E,wCAAwC,CAAC;gBACvC,WAAW;gBACX,cAAc;aACf,CAAC,CAAA;YAEF,mFAAmF;YACnF,oBAAoB,CAAC;gBACnB,UAAU;gBACV,UAAU;gBACV,eAAe;gBACf,aAAa;aACd,CAAC,CAAA;YAEF,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -7,7 +7,7 @@ import { logger } from '@use-voltra/expo-plugin';
7
7
  * This includes version information and the required WidgetKit extension point.
8
8
  * Version keys are written directly to the plist following the Expo pattern.
9
9
  */
10
- function generateInfoPlistContent(targetName, version, buildNumber) {
10
+ function generateInfoPlistContent(targetName, version, buildNumber, voltraVersion) {
11
11
  return `<?xml version="1.0" encoding="UTF-8"?>
12
12
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
13
13
  <plist version="1.0">
@@ -30,6 +30,8 @@ function generateInfoPlistContent(targetName, version, buildNumber) {
30
30
  <string>${version}</string>
31
31
  <key>CFBundleVersion</key>
32
32
  <string>${buildNumber}</string>
33
+ <key>Voltra_Version</key>
34
+ <string>${voltraVersion}</string>
33
35
  <key>NSExtension</key>
34
36
  <dict>
35
37
  <key>NSExtensionPointIdentifier</key>
@@ -46,10 +48,11 @@ function generateInfoPlistContent(targetName, version, buildNumber) {
46
48
  * @param targetName - The widget extension target name (used for CFBundleDisplayName)
47
49
  * @param version - The app version (CFBundleShortVersionString)
48
50
  * @param buildNumber - The build number (CFBundleVersion)
51
+ * @param voltraVersion - The installed @use-voltra/ios-client package version
49
52
  */
50
- export function generateInfoPlist(targetPath, targetName, version, buildNumber) {
53
+ export function generateInfoPlist(targetPath, targetName, version, buildNumber, voltraVersion) {
51
54
  const infoPlistPath = path.join(targetPath, 'Info.plist');
52
- fs.writeFileSync(infoPlistPath, generateInfoPlistContent(targetName, version, buildNumber));
55
+ fs.writeFileSync(infoPlistPath, generateInfoPlistContent(targetName, version, buildNumber, voltraVersion));
53
56
  logger.info('Generated Info.plist');
54
57
  }
55
58
  //# sourceMappingURL=infoPlist.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"infoPlist.js","sourceRoot":"","sources":["../../../../src/ios-widget/files/infoPlist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,UAAkB,EAAE,OAAe,EAAE,WAAmB;IACxF,OAAO;;;;;;;WAOE,UAAU;;;;;;;;;;;;WAYV,OAAO;;WAEP,WAAW;;;;;;;;CAQrB,CAAA;AACD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAkB,EAAE,UAAkB,EAAE,OAAe,EAAE,WAAmB;IAC5G,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IACzD,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,wBAAwB,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;IAC3F,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;AACrC,CAAC"}
1
+ {"version":3,"file":"infoPlist.js","sourceRoot":"","sources":["../../../../src/ios-widget/files/infoPlist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD;;;;;GAKG;AACH,SAAS,wBAAwB,CAC/B,UAAkB,EAClB,OAAe,EACf,WAAmB,EACnB,aAAqB;IAErB,OAAO;;;;;;;WAOE,UAAU;;;;;;;;;;;;WAYV,OAAO;;WAEP,WAAW;;WAEX,aAAa;;;;;;;;CAQvB,CAAA;AACD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,UAAkB,EAClB,OAAe,EACf,WAAmB,EACnB,aAAqB;IAErB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IACzD,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,wBAAwB,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAA;IAC1G,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;AACrC,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import * as fs from 'fs';
2
2
  import * as path from 'path';
3
- import { logger, validateWidgetEntry } from '@use-voltra/expo-plugin';
3
+ import { logger, validateWidgetEntry, } from '@use-voltra/expo-plugin';
4
4
  const MANIFEST_PATH = path.join('.voltra', 'manifest.ios.json');
5
+ const LIVE_ACTIVITIES_MANIFEST_PATH = path.join('.voltra', 'manifest.ios.live-activities.json');
5
6
  export function createIOSDynamicWidgetsManifest(projectRoot, widgets) {
6
7
  const manifestWidgets = [];
7
8
  for (const widget of widgets) {
@@ -19,6 +20,18 @@ export function createIOSDynamicWidgetsManifest(projectRoot, widgets) {
19
20
  widgets: manifestWidgets,
20
21
  };
21
22
  }
23
+ export function createIOSDynamicLiveActivitiesManifest(projectRoot, liveActivities) {
24
+ return {
25
+ version: 1,
26
+ platform: 'ios',
27
+ liveActivities: [...liveActivities]
28
+ .sort((left, right) => left.id.localeCompare(right.id))
29
+ .map((liveActivity) => ({
30
+ id: liveActivity.id,
31
+ entry: validateWidgetEntry(liveActivity.entry, liveActivity.id, projectRoot),
32
+ })),
33
+ };
34
+ }
22
35
  export function generateIOSDynamicWidgetsManifest(options) {
23
36
  const { projectRoot, widgets } = options;
24
37
  const manifestPath = path.join(projectRoot, MANIFEST_PATH);
@@ -27,4 +40,13 @@ export function generateIOSDynamicWidgetsManifest(options) {
27
40
  fs.writeFileSync(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`);
28
41
  logger.info(`Generated ${MANIFEST_PATH}`);
29
42
  }
43
+ /** Writes the dedicated Dynamic Live Activity manifest on every prebuild, including when empty. */
44
+ export function generateIOSDynamicLiveActivitiesManifest(options) {
45
+ const { projectRoot, liveActivities } = options;
46
+ const manifestPath = path.join(projectRoot, LIVE_ACTIVITIES_MANIFEST_PATH);
47
+ const manifest = createIOSDynamicLiveActivitiesManifest(projectRoot, liveActivities ?? []);
48
+ fs.mkdirSync(path.dirname(manifestPath), { recursive: true });
49
+ fs.writeFileSync(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`);
50
+ logger.info(`Generated ${LIVE_ACTIVITIES_MANIFEST_PATH}`);
51
+ }
30
52
  //# sourceMappingURL=manifest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../../src/ios-widget/files/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,OAAO,EAA8B,MAAM,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAIjG,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAA;AAO/D,MAAM,UAAU,+BAA+B,CAC7C,WAAmB,EACnB,OAA0B;IAE1B,MAAM,eAAe,GAAqC,EAAE,CAAA;IAE5D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,SAAQ;QACV,CAAC;QAED,eAAe,CAAC,IAAI,CAAC;YACnB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC;SACjE,CAAC,CAAA;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,eAAe;KACzB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,OAAiD;IACjG,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IACxC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;IAC1D,MAAM,QAAQ,GAAG,+BAA+B,CAAC,WAAW,EAAE,OAAO,IAAI,EAAE,CAAC,CAAA;IAE5E,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7D,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;IACxE,MAAM,CAAC,IAAI,CAAC,aAAa,aAAa,EAAE,CAAC,CAAA;AAC3C,CAAC"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../../src/ios-widget/files/manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export function escapeForSwiftStringLiteral(value) {
2
+ return value.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n').replace(/\r/g, '\\r');
3
+ }
4
+ //# sourceMappingURL=swift-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swift-utils.js","sourceRoot":"","sources":["../../../../src/ios-widget/files/swift-utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,2BAA2B,CAAC,KAAa;IACvD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACtG,CAAC"}
@@ -2,10 +2,12 @@ import dedent from 'dedent';
2
2
  import * as fs from 'fs';
3
3
  import * as path from 'path';
4
4
  import { isWidgetLocalizedMap, logger, prerenderWidgetState, widgetLabelEnglish, } from '@use-voltra/expo-plugin';
5
- import { DEFAULT_WIDGET_FAMILIES, WIDGET_FAMILY_MAP } from '../../constants';
5
+ import { DEFAULT_WIDGET_FAMILIES, WIDGET_FAMILY_MAP, widgetKind } from '../../constants';
6
6
  import { VOLTRA_WIDGET_STRINGS_BASENAME } from '../../utils/fileDiscovery';
7
7
  import { detectClientRenderedWidgets } from '../clientRendered';
8
8
  import { prerenderClientRenderedWidgets } from '../clientRenderedPrerender';
9
+ import { generateDynamicLiveActivitiesSwift, generateDynamicLiveActivityTypesSwift, generateDynamicLiveActivityWidgetInstances, } from '../dynamic-live-activity/swift';
10
+ import { escapeForSwiftStringLiteral } from './swift-utils';
9
11
  // ============================================================================
10
12
  // Main Function
11
13
  // ============================================================================
@@ -17,7 +19,7 @@ import { prerenderClientRenderedWidgets } from '../clientRenderedPrerender';
17
19
  * - VoltraWidgetBundle.swift (widget bundle definition)
18
20
  */
19
21
  export async function generateSwiftFiles(options) {
20
- const { targetPath, projectRoot, widgets } = options;
22
+ const { targetPath, projectRoot, widgets, liveActivities } = options;
21
23
  // Dynamic import keeps the plugin CommonJS-compatible while resolving the current package entry.
22
24
  const serverModuleId = '@use-voltra/ios/server';
23
25
  const { renderWidgetToString } = (await import(serverModuleId));
@@ -34,7 +36,7 @@ export async function generateSwiftFiles(options) {
34
36
  // stringify). Both produce entries in the same map shape so
35
37
  // VoltraWidgetInitialStates.swift can read either via the same lookup at runtime.
36
38
  const serverWidgets = detectedWidgets.filter((w) => !w.clientRendered);
37
- const serverStates = await prerenderWidgetState(serverWidgets, projectRoot, renderWidgetToString);
39
+ const serverStates = await prerenderWidgetState(serverWidgets, projectRoot, renderWidgetToString, 'ios');
38
40
  const clientStates = await prerenderClientRenderedWidgets(detectedWidgets, projectRoot);
39
41
  const prerenderedStates = new Map([...serverStates, ...clientStates]);
40
42
  syncVoltraWidgetGalleryStrings(targetPath, widgets);
@@ -44,10 +46,15 @@ export async function generateSwiftFiles(options) {
44
46
  fs.writeFileSync(initialStatesPath, initialStatesContent);
45
47
  logger.info(`Generated VoltraWidgetInitialStates.swift with ${prerenderedStates.size} widget(s) (localized initial states where configured)`);
46
48
  // Generate the widget bundle Swift file
47
- const widgetBundleContent = detectedWidgets.length > 0 ? generateWidgetBundleSwift(detectedWidgets) : generateDefaultWidgetBundleSwift();
49
+ const widgetBundleContent = detectedWidgets.length > 0 || (liveActivities?.length ?? 0) > 0
50
+ ? generateWidgetBundleSwift(detectedWidgets, liveActivities ?? [])
51
+ : generateDefaultWidgetBundleSwift();
48
52
  const widgetBundlePath = path.join(targetPath, 'VoltraWidgetBundle.swift');
49
53
  fs.writeFileSync(widgetBundlePath, widgetBundleContent);
50
54
  logger.info(`Generated VoltraWidgetBundle.swift with ${widgets?.length ?? 0} home screen widgets`);
55
+ fs.writeFileSync(path.join(targetPath, 'VoltraDynamicLiveActivityTypes.swift'), generateDynamicLiveActivityTypesSwift(liveActivities ?? []));
56
+ fs.writeFileSync(path.join(targetPath, 'VoltraDynamicLiveActivities.swift'), generateDynamicLiveActivitiesSwift(liveActivities ?? []));
57
+ logger.info(`Generated Dynamic Live Activity Swift scaffolding with ${liveActivities?.length ?? 0} definition(s)`);
51
58
  }
52
59
  const GENERATED_INITIAL_STATE_LOCALE_HELPER = dedent `
53
60
  private enum VoltraGeneratedInitialStateLocale {
@@ -118,9 +125,6 @@ const GENERATED_INITIAL_STATE_LOCALE_HELPER = dedent `
118
125
  // LocalizedStringResource is still appropriate for extensions (deferred resolution).
119
126
  // https://developer.apple.com/documentation/foundation/localizedstringresource
120
127
  // ============================================================================
121
- function escapeForSwiftStringLiteral(s) {
122
- return s.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n').replace(/\r/g, '\\r');
123
- }
124
128
  function escapeDotStringsValue(s) {
125
129
  return escapeForSwiftStringLiteral(s);
126
130
  }
@@ -227,6 +231,12 @@ function iosWidgetGalleryLabelSwiftExpr(widgetId, field, label) {
227
231
  * - Dynamic Widget → `VoltraClientWidgetProvider` + `VoltraClientWidgetContentView`
228
232
  * (the content view internally renders via VoltraHomeWidgetView so the UI layer is
229
233
  * identical to the fallback state path — see VoltraClientWidgetRuntime.swift)
234
+ * - Dynamic Widget with a `serverUpdate` → `VoltraDynamicWidgetServerUpdateProvider`, which wraps
235
+ * the one above and adds the fetch, the commit and the schedule
236
+ *
237
+ * `entry` picks the render engine and `serverUpdate` picks where the data comes from, so the two
238
+ * keys together select one of four providers. Runtime code never asks "is this server-driven?" —
239
+ * the answer is baked in here, once, at generate time.
230
240
  */
231
241
  function widgetUsesAppIntent(widget) {
232
242
  return widget.clientRendered && !!widget.appIntent && widget.appIntent.parameters.length > 0;
@@ -243,9 +253,12 @@ function generateWidgetStruct(widget) {
243
253
  const structName = `VoltraWidget_${widget.id}`;
244
254
  const displayNameExpr = iosWidgetGalleryLabelSwiftExpr(widget.id, 'displayName', widget.displayName);
245
255
  const descriptionExpr = iosWidgetGalleryLabelSwiftExpr(widget.id, 'description', widget.description);
256
+ const clientProviderName = widget.serverUpdate
257
+ ? 'VoltraDynamicWidgetServerUpdateProvider'
258
+ : 'VoltraClientWidgetProvider';
246
259
  const providerAndContent = widget.clientRendered
247
260
  ? dedent `
248
- provider: VoltraClientWidgetProvider(
261
+ provider: ${clientProviderName}(
249
262
  widgetId: widgetId,
250
263
  initialState: VoltraWidgetInitialStates.getInitialState(for: widgetId)
251
264
  )
@@ -271,7 +284,7 @@ function generateWidgetStruct(widget) {
271
284
 
272
285
  public var body: some WidgetConfiguration {
273
286
  StaticConfiguration(
274
- kind: "Voltra_Widget_${widget.id}",
287
+ kind: "${widgetKind(widget)}",
275
288
  ${providerAndContent}
276
289
  .configurationDisplayName(${displayNameExpr})
277
290
  .description(${descriptionExpr})
@@ -305,6 +318,18 @@ function generateClientAppIntentWidgetCode(widget) {
305
318
  const initBody = params.map((p) => ` self.${p.name} = ${p.name}`).join('\n');
306
319
  const configuredDict = dictLiteral(params.map((p) => `"${p.name}": configuration.${p.name}`));
307
320
  const defaultDict = dictLiteral(params.map((p) => `"${p.name}": ${swiftDefault(p)}`));
321
+ // A server-driven Dynamic Widget fetches on every timeline request and schedules the next one
322
+ // from its resolved interval; a plain one has nothing to ask again for, so its policy is .never.
323
+ const appIntentTimelineBody = widget.serverUpdate
324
+ ? dedent `
325
+ return await VoltraDynamicWidgetServerUpdateProvider.timeline(
326
+ widgetId: widgetId,
327
+ family: context.family,
328
+ configuration: ${configuredDict}
329
+ )`
330
+ : dedent `
331
+ let entry = await VoltraClientWidgetProvider.loadEntry(widgetId: widgetId, configuration: ${configuredDict})
332
+ return Timeline(entries: [entry], policy: .never)`;
308
333
  return dedent `
309
334
  // MARK: - Client-rendered AppIntent widget: ${widget.id}
310
335
 
@@ -335,9 +360,8 @@ function generateClientAppIntentWidgetCode(widget) {
335
360
  await VoltraClientWidgetProvider.loadEntry(widgetId: widgetId, configuration: ${configuredDict})
336
361
  }
337
362
 
338
- func timeline(for configuration: ${intentName}, in _: Context) async -> Timeline<VoltraClientWidgetEntry> {
339
- let entry = await VoltraClientWidgetProvider.loadEntry(widgetId: widgetId, configuration: ${configuredDict})
340
- return Timeline(entries: [entry], policy: .never)
363
+ func timeline(for configuration: ${intentName}, in context: Context) async -> Timeline<VoltraClientWidgetEntry> {
364
+ ${appIntentTimelineBody}
341
365
  }
342
366
  }
343
367
 
@@ -349,7 +373,7 @@ function generateClientAppIntentWidgetCode(widget) {
349
373
 
350
374
  public var body: some WidgetConfiguration {
351
375
  AppIntentConfiguration(
352
- kind: "Voltra_Widget_${widget.id}",
376
+ kind: "${widgetKind(widget)}",
353
377
  intent: ${intentName}.self,
354
378
  provider: ${providerName}()
355
379
  ) { entry in
@@ -369,7 +393,7 @@ function generateClientAppIntentWidgetCode(widget) {
369
393
  /**
370
394
  * Generates the VoltraWidgetBundle.swift file content with configured widgets
371
395
  */
372
- function generateWidgetBundleSwift(widgets) {
396
+ function generateWidgetBundleSwift(widgets, liveActivities = []) {
373
397
  // Generate widget structs
374
398
  const widgetStructs = widgets.map((w) => generateWidgetStruct(w)).join('\n\n');
375
399
  // AppIntent widgets are iOS 17+, so their bundle entries are gated behind #available.
@@ -381,7 +405,11 @@ function generateWidgetBundleSwift(widgets) {
381
405
  .map((w) => `VoltraWidget_${w.id}()`)
382
406
  .join('\n ')}\n }`
383
407
  : '';
384
- const widgetInstances = [plainInstances, appIntentInstances].filter(Boolean).join('\n ');
408
+ const dynamicLiveActivityInstances = generateDynamicLiveActivityWidgetInstances(liveActivities);
409
+ const widgetInstances = [plainInstances, appIntentInstances, dynamicLiveActivityInstances]
410
+ .filter(Boolean)
411
+ .join('\n ');
412
+ const widgetSectionTitle = liveActivities.length > 0 ? 'Home Screen Widgets and Dynamic Live Activities' : 'Home Screen Widgets';
385
413
  const needsFoundation = widgets.some(widgetUsesGalleryLocalization);
386
414
  const foundationImport = needsFoundation ? 'import Foundation\n' : '';
387
415
  const appIntentsImport = appIntentWidgets.length > 0 ? 'import AppIntents\n' : '';
@@ -395,7 +423,7 @@ function generateWidgetBundleSwift(widgets) {
395
423
 
396
424
  ${foundationImport}${appIntentsImport}import SwiftUI
397
425
  import WidgetKit
398
- import VoltraWidget
426
+ import VoltraRuntime
399
427
 
400
428
  @main
401
429
  struct VoltraWidgetBundle: WidgetBundle {
@@ -403,7 +431,7 @@ function generateWidgetBundleSwift(widgets) {
403
431
  // Live Activity (with Watch/CarPlay support)
404
432
  VoltraWidget()
405
433
 
406
- // Home Screen Widgets
434
+ // ${widgetSectionTitle}
407
435
  ${widgetInstances}
408
436
  }
409
437
  }
@@ -414,8 +442,8 @@ function generateWidgetBundleSwift(widgets) {
414
442
  `;
415
443
  }
416
444
  /**
417
- * Generates the VoltraWidgetBundle.swift file content when no widgets are configured
418
- * (only Live Activities)
445
+ * Generates the VoltraWidgetBundle.swift file content when no Home Screen widgets or Dynamic
446
+ * Live Activities are configured. Keep this legacy output stable for existing projects.
419
447
  */
420
448
  function generateDefaultWidgetBundleSwift() {
421
449
  return dedent `
@@ -428,7 +456,7 @@ function generateDefaultWidgetBundleSwift() {
428
456
 
429
457
  import SwiftUI
430
458
  import WidgetKit
431
- import VoltraWidget // Import Voltra widgets
459
+ import VoltraRuntime // Import Voltra widgets
432
460
 
433
461
  @main
434
462
  struct VoltraWidgetBundle: WidgetBundle {
@@ -536,5 +564,7 @@ function getSwiftRawStringDelimiter(str) {
536
564
  export const __test__ = {
537
565
  generateInitialStatesSwift,
538
566
  generateWidgetBundleSwift,
567
+ generateDynamicLiveActivityTypesSwift,
568
+ generateDynamicLiveActivitiesSwift,
539
569
  };
540
570
  //# sourceMappingURL=swift.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"swift.js","sourceRoot":"","sources":["../../../../src/ios-widget/files/swift.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swift.js","sourceRoot":"","sources":["../../../../src/ios-widget/files/swift.ts"],"names":[],"mappings":"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"}
@@ -22,12 +22,15 @@ import { configureXcodeProject } from './xcode';
22
22
  * so fonts must be registered before configureXcodeProject.
23
23
  */
24
24
  export const withIOS = (config, props) => {
25
- const { targetName, bundleIdentifier, deploymentTarget, widgets, groupIdentifier, keychainGroup, fonts, version, buildNumber, } = props;
25
+ const { targetName, bundleIdentifier, deploymentTarget, widgets, liveActivities, groupIdentifier, keychainGroup, fonts, version, buildNumber, voltraVersion, } = props;
26
26
  const plugins = [
27
27
  // 1. Add custom fonts if provided
28
28
  ...(fonts && fonts.length > 0 ? [[withFonts, { fonts, targetName }]] : []),
29
29
  // 2. Configure Xcode project (creates the target - must run before fonts mod executes)
30
- [configureXcodeProject, { targetName, bundleIdentifier, deploymentTarget, widgets }],
30
+ [
31
+ configureXcodeProject,
32
+ { targetName, bundleIdentifier, deploymentTarget, widgets, liveActivities, version, buildNumber },
33
+ ],
31
34
  // 3. Configure Podfile for widget extension target
32
35
  [configurePodfile, { targetName }],
33
36
  // 4. Configure main app Info.plist (URL schemes, widget extension plist)
@@ -35,7 +38,10 @@ export const withIOS = (config, props) => {
35
38
  // 5. Configure EAS build settings
36
39
  [configureEasBuild, { targetName, bundleIdentifier, groupIdentifier }],
37
40
  // 6. Generate widget extension files (dangerous mod should run before plist patchers)
38
- [generateWidgetExtensionFiles, { targetName, widgets, groupIdentifier, keychainGroup, version, buildNumber }],
41
+ [
42
+ generateWidgetExtensionFiles,
43
+ { targetName, widgets, liveActivities, groupIdentifier, keychainGroup, version, buildNumber, voltraVersion },
44
+ ],
39
45
  ];
40
46
  return withPlugins(config, plugins);
41
47
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ios-widget/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAc/C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,OAAO,GAA+B,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;IACnE,MAAM,EACJ,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,eAAe,EACf,aAAa,EACb,KAAK,EACL,OAAO,EACP,WAAW,GACZ,GAAG,KAAK,CAAA;IAET,MAAM,OAAO,GAA+B;QAC1C,kCAAkC;QAClC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAA6B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtG,uFAAuF;QACvF,CAAC,qBAAqB,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;QAEpF,mDAAmD;QACnD,CAAC,gBAAgB,EAAE,EAAE,UAAU,EAAE,CAAC;QAElC,yEAAyE;QACzE,CAAC,6BAA6B,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAExF,kCAAkC;QAClC,CAAC,iBAAiB,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;QAEtE,sFAAsF;QACtF,CAAC,4BAA4B,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;KAC9G,CAAA;IAED,OAAO,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACrC,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ios-widget/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAgB/C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,OAAO,GAA+B,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;IACnE,MAAM,EACJ,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,cAAc,EACd,eAAe,EACf,aAAa,EACb,KAAK,EACL,OAAO,EACP,WAAW,EACX,aAAa,GACd,GAAG,KAAK,CAAA;IAET,MAAM,OAAO,GAA+B;QAC1C,kCAAkC;QAClC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAA6B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtG,uFAAuF;QACvF;YACE,qBAAqB;YACrB,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE;SAClG;QAED,mDAAmD;QACnD,CAAC,gBAAgB,EAAE,EAAE,UAAU,EAAE,CAAC;QAElC,yEAAyE;QACzE,CAAC,6BAA6B,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAExF,kCAAkC;QAClC,CAAC,iBAAiB,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;QAEtE,sFAAsF;QACtF;YACE,4BAA4B;YAC5B,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE;SAC7G;KACF,CAAA;IAED,OAAO,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACrC,CAAC,CAAA"}