@use-voltra/expo-plugin 1.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 (244) hide show
  1. package/README.md +34 -0
  2. package/build/cjs/android/files/assets.js +259 -0
  3. package/build/cjs/android/files/assets.js.map +1 -0
  4. package/build/cjs/android/files/fonts.js +69 -0
  5. package/build/cjs/android/files/fonts.js.map +1 -0
  6. package/build/cjs/android/files/index.js +81 -0
  7. package/build/cjs/android/files/index.js.map +1 -0
  8. package/build/cjs/android/files/initialStates.js +83 -0
  9. package/build/cjs/android/files/initialStates.js.map +1 -0
  10. package/build/cjs/android/files/kotlin.js +142 -0
  11. package/build/cjs/android/files/kotlin.js.map +1 -0
  12. package/build/cjs/android/files/xml.js +247 -0
  13. package/build/cjs/android/files/xml.js.map +1 -0
  14. package/build/cjs/android/index.js +33 -0
  15. package/build/cjs/android/index.js.map +1 -0
  16. package/build/cjs/android/manifest.js +63 -0
  17. package/build/cjs/android/manifest.js.map +1 -0
  18. package/build/cjs/constants.js +48 -0
  19. package/build/cjs/constants.js.map +1 -0
  20. package/build/cjs/index.js +71 -0
  21. package/build/cjs/index.js.map +1 -0
  22. package/build/cjs/ios/eas.js +28 -0
  23. package/build/cjs/ios/eas.js.map +1 -0
  24. package/build/cjs/ios/entitlements.js +46 -0
  25. package/build/cjs/ios/entitlements.js.map +1 -0
  26. package/build/cjs/ios/index.js +39 -0
  27. package/build/cjs/ios/index.js.map +1 -0
  28. package/build/cjs/ios/infoPlist.js +51 -0
  29. package/build/cjs/ios/infoPlist.js.map +1 -0
  30. package/build/cjs/ios/pushNotifications.js +22 -0
  31. package/build/cjs/ios/pushNotifications.js.map +1 -0
  32. package/build/cjs/ios-widget/eas.js +66 -0
  33. package/build/cjs/ios-widget/eas.js.map +1 -0
  34. package/build/cjs/ios-widget/files/assets.js +199 -0
  35. package/build/cjs/ios-widget/files/assets.js.map +1 -0
  36. package/build/cjs/ios-widget/files/entitlements.js +77 -0
  37. package/build/cjs/ios-widget/files/entitlements.js.map +1 -0
  38. package/build/cjs/ios-widget/files/index.js +92 -0
  39. package/build/cjs/ios-widget/files/index.js.map +1 -0
  40. package/build/cjs/ios-widget/files/infoPlist.js +91 -0
  41. package/build/cjs/ios-widget/files/infoPlist.js.map +1 -0
  42. package/build/cjs/ios-widget/files/swift.js +256 -0
  43. package/build/cjs/ios-widget/files/swift.js.map +1 -0
  44. package/build/cjs/ios-widget/fonts.js +151 -0
  45. package/build/cjs/ios-widget/fonts.js.map +1 -0
  46. package/build/cjs/ios-widget/index.js +46 -0
  47. package/build/cjs/ios-widget/index.js.map +1 -0
  48. package/build/cjs/ios-widget/podfile.js +43 -0
  49. package/build/cjs/ios-widget/podfile.js.map +1 -0
  50. package/build/cjs/ios-widget/widgetPlist.js +99 -0
  51. package/build/cjs/ios-widget/widgetPlist.js.map +1 -0
  52. package/build/cjs/ios-widget/xcode/buildPhases.js +245 -0
  53. package/build/cjs/ios-widget/xcode/buildPhases.js.map +1 -0
  54. package/build/cjs/ios-widget/xcode/configurationList.js +91 -0
  55. package/build/cjs/ios-widget/xcode/configurationList.js.map +1 -0
  56. package/build/cjs/ios-widget/xcode/groups.js +65 -0
  57. package/build/cjs/ios-widget/xcode/groups.js.map +1 -0
  58. package/build/cjs/ios-widget/xcode/index.js +155 -0
  59. package/build/cjs/ios-widget/xcode/index.js.map +1 -0
  60. package/build/cjs/ios-widget/xcode/mainAppSettings.js +71 -0
  61. package/build/cjs/ios-widget/xcode/mainAppSettings.js.map +1 -0
  62. package/build/cjs/ios-widget/xcode/productFile.js +74 -0
  63. package/build/cjs/ios-widget/xcode/productFile.js.map +1 -0
  64. package/build/cjs/ios-widget/xcode/target.js +113 -0
  65. package/build/cjs/ios-widget/xcode/target.js.map +1 -0
  66. package/build/cjs/package.json +3 -0
  67. package/build/cjs/types.js +3 -0
  68. package/build/cjs/types.js.map +1 -0
  69. package/build/cjs/utils/entitlements.js +21 -0
  70. package/build/cjs/utils/entitlements.js.map +1 -0
  71. package/build/cjs/utils/fileDiscovery.js +107 -0
  72. package/build/cjs/utils/fileDiscovery.js.map +1 -0
  73. package/build/cjs/utils/fonts.js +75 -0
  74. package/build/cjs/utils/fonts.js.map +1 -0
  75. package/build/cjs/utils/logger.js +51 -0
  76. package/build/cjs/utils/logger.js.map +1 -0
  77. package/build/cjs/utils/prerender.js +191 -0
  78. package/build/cjs/utils/prerender.js.map +1 -0
  79. package/build/cjs/utils/urlScheme.js +40 -0
  80. package/build/cjs/utils/urlScheme.js.map +1 -0
  81. package/build/cjs/validation.js +231 -0
  82. package/build/cjs/validation.js.map +1 -0
  83. package/build/esm/android/files/assets.js +223 -0
  84. package/build/esm/android/files/assets.js.map +1 -0
  85. package/build/esm/android/files/fonts.js +33 -0
  86. package/build/esm/android/files/fonts.js.map +1 -0
  87. package/build/esm/android/files/index.js +77 -0
  88. package/build/esm/android/files/index.js.map +1 -0
  89. package/build/esm/android/files/initialStates.js +44 -0
  90. package/build/esm/android/files/initialStates.js.map +1 -0
  91. package/build/esm/android/files/kotlin.js +103 -0
  92. package/build/esm/android/files/kotlin.js.map +1 -0
  93. package/build/esm/android/files/xml.js +206 -0
  94. package/build/esm/android/files/xml.js.map +1 -0
  95. package/build/esm/android/index.js +29 -0
  96. package/build/esm/android/index.js.map +1 -0
  97. package/build/esm/android/manifest.js +59 -0
  98. package/build/esm/android/manifest.js.map +1 -0
  99. package/build/esm/constants.js +45 -0
  100. package/build/esm/constants.js.map +1 -0
  101. package/build/esm/index.js +69 -0
  102. package/build/esm/index.js.map +1 -0
  103. package/build/esm/ios/eas.js +24 -0
  104. package/build/esm/ios/eas.js.map +1 -0
  105. package/build/esm/ios/entitlements.js +42 -0
  106. package/build/esm/ios/entitlements.js.map +1 -0
  107. package/build/esm/ios/index.js +34 -0
  108. package/build/esm/ios/index.js.map +1 -0
  109. package/build/esm/ios/infoPlist.js +47 -0
  110. package/build/esm/ios/infoPlist.js.map +1 -0
  111. package/build/esm/ios/pushNotifications.js +18 -0
  112. package/build/esm/ios/pushNotifications.js.map +1 -0
  113. package/build/esm/ios-widget/eas.js +62 -0
  114. package/build/esm/ios-widget/eas.js.map +1 -0
  115. package/build/esm/ios-widget/files/assets.js +163 -0
  116. package/build/esm/ios-widget/files/assets.js.map +1 -0
  117. package/build/esm/ios-widget/files/entitlements.js +37 -0
  118. package/build/esm/ios-widget/files/entitlements.js.map +1 -0
  119. package/build/esm/ios-widget/files/index.js +55 -0
  120. package/build/esm/ios-widget/files/index.js.map +1 -0
  121. package/build/esm/ios-widget/files/infoPlist.js +55 -0
  122. package/build/esm/ios-widget/files/infoPlist.js.map +1 -0
  123. package/build/esm/ios-widget/files/swift.js +217 -0
  124. package/build/esm/ios-widget/files/swift.js.map +1 -0
  125. package/build/esm/ios-widget/fonts.js +111 -0
  126. package/build/esm/ios-widget/fonts.js.map +1 -0
  127. package/build/esm/ios-widget/index.js +42 -0
  128. package/build/esm/ios-widget/index.js.map +1 -0
  129. package/build/esm/ios-widget/podfile.js +39 -0
  130. package/build/esm/ios-widget/podfile.js.map +1 -0
  131. package/build/esm/ios-widget/widgetPlist.js +92 -0
  132. package/build/esm/ios-widget/widgetPlist.js.map +1 -0
  133. package/build/esm/ios-widget/xcode/buildPhases.js +208 -0
  134. package/build/esm/ios-widget/xcode/buildPhases.js.map +1 -0
  135. package/build/esm/ios-widget/xcode/configurationList.js +87 -0
  136. package/build/esm/ios-widget/xcode/configurationList.js.map +1 -0
  137. package/build/esm/ios-widget/xcode/groups.js +61 -0
  138. package/build/esm/ios-widget/xcode/groups.js.map +1 -0
  139. package/build/esm/ios-widget/xcode/index.js +118 -0
  140. package/build/esm/ios-widget/xcode/index.js.map +1 -0
  141. package/build/esm/ios-widget/xcode/mainAppSettings.js +68 -0
  142. package/build/esm/ios-widget/xcode/mainAppSettings.js.map +1 -0
  143. package/build/esm/ios-widget/xcode/productFile.js +70 -0
  144. package/build/esm/ios-widget/xcode/productFile.js.map +1 -0
  145. package/build/esm/ios-widget/xcode/target.js +108 -0
  146. package/build/esm/ios-widget/xcode/target.js.map +1 -0
  147. package/build/esm/package.json +3 -0
  148. package/build/esm/types.js +2 -0
  149. package/build/esm/types.js.map +1 -0
  150. package/build/esm/utils/entitlements.js +18 -0
  151. package/build/esm/utils/entitlements.js.map +1 -0
  152. package/build/esm/utils/fileDiscovery.js +71 -0
  153. package/build/esm/utils/fileDiscovery.js.map +1 -0
  154. package/build/esm/utils/fonts.js +39 -0
  155. package/build/esm/utils/fonts.js.map +1 -0
  156. package/build/esm/utils/logger.js +48 -0
  157. package/build/esm/utils/logger.js.map +1 -0
  158. package/build/esm/utils/prerender.js +152 -0
  159. package/build/esm/utils/prerender.js.map +1 -0
  160. package/build/esm/utils/urlScheme.js +37 -0
  161. package/build/esm/utils/urlScheme.js.map +1 -0
  162. package/build/esm/validation.js +193 -0
  163. package/build/esm/validation.js.map +1 -0
  164. package/build/types/android/files/assets.d.ts +26 -0
  165. package/build/types/android/files/assets.d.ts.map +1 -0
  166. package/build/types/android/files/fonts.d.ts +19 -0
  167. package/build/types/android/files/fonts.d.ts.map +1 -0
  168. package/build/types/android/files/index.d.ts +21 -0
  169. package/build/types/android/files/index.d.ts.map +1 -0
  170. package/build/types/android/files/initialStates.d.ts +14 -0
  171. package/build/types/android/files/initialStates.d.ts.map +1 -0
  172. package/build/types/android/files/kotlin.d.ts +11 -0
  173. package/build/types/android/files/kotlin.d.ts.map +1 -0
  174. package/build/types/android/files/xml.d.ts +25 -0
  175. package/build/types/android/files/xml.d.ts.map +1 -0
  176. package/build/types/android/index.d.ts +12 -0
  177. package/build/types/android/index.d.ts.map +1 -0
  178. package/build/types/android/manifest.d.ts +15 -0
  179. package/build/types/android/manifest.d.ts.map +1 -0
  180. package/build/types/constants.d.ts +29 -0
  181. package/build/types/constants.d.ts.map +1 -0
  182. package/build/types/index.d.ts +13 -0
  183. package/build/types/index.d.ts.map +1 -0
  184. package/build/types/ios/eas.d.ts +12 -0
  185. package/build/types/ios/eas.d.ts.map +1 -0
  186. package/build/types/ios/entitlements.d.ts +14 -0
  187. package/build/types/ios/entitlements.d.ts.map +1 -0
  188. package/build/types/ios/index.d.ts +19 -0
  189. package/build/types/ios/index.d.ts.map +1 -0
  190. package/build/types/ios/infoPlist.d.ts +21 -0
  191. package/build/types/ios/infoPlist.d.ts.map +1 -0
  192. package/build/types/ios/pushNotifications.d.ts +10 -0
  193. package/build/types/ios/pushNotifications.d.ts.map +1 -0
  194. package/build/types/ios-widget/eas.d.ts +15 -0
  195. package/build/types/ios-widget/eas.d.ts.map +1 -0
  196. package/build/types/ios-widget/files/assets.d.ts +13 -0
  197. package/build/types/ios-widget/files/assets.d.ts.map +1 -0
  198. package/build/types/ios-widget/files/entitlements.d.ts +17 -0
  199. package/build/types/ios-widget/files/entitlements.d.ts.map +1 -0
  200. package/build/types/ios-widget/files/index.d.ts +24 -0
  201. package/build/types/ios-widget/files/index.d.ts.map +1 -0
  202. package/build/types/ios-widget/files/infoPlist.d.ts +10 -0
  203. package/build/types/ios-widget/files/infoPlist.d.ts.map +1 -0
  204. package/build/types/ios-widget/files/swift.d.ts +15 -0
  205. package/build/types/ios-widget/files/swift.d.ts.map +1 -0
  206. package/build/types/ios-widget/fonts.d.ts +22 -0
  207. package/build/types/ios-widget/fonts.d.ts.map +1 -0
  208. package/build/types/ios-widget/index.d.ts +31 -0
  209. package/build/types/ios-widget/index.d.ts.map +1 -0
  210. package/build/types/ios-widget/podfile.d.ts +9 -0
  211. package/build/types/ios-widget/podfile.d.ts.map +1 -0
  212. package/build/types/ios-widget/widgetPlist.d.ts +20 -0
  213. package/build/types/ios-widget/widgetPlist.d.ts.map +1 -0
  214. package/build/types/ios-widget/xcode/buildPhases.d.ts +25 -0
  215. package/build/types/ios-widget/xcode/buildPhases.d.ts.map +1 -0
  216. package/build/types/ios-widget/xcode/configurationList.d.ts +20 -0
  217. package/build/types/ios-widget/xcode/configurationList.d.ts.map +1 -0
  218. package/build/types/ios-widget/xcode/groups.d.ts +15 -0
  219. package/build/types/ios-widget/xcode/groups.d.ts.map +1 -0
  220. package/build/types/ios-widget/xcode/index.d.ts +20 -0
  221. package/build/types/ios-widget/xcode/index.d.ts.map +1 -0
  222. package/build/types/ios-widget/xcode/mainAppSettings.d.ts +15 -0
  223. package/build/types/ios-widget/xcode/mainAppSettings.d.ts.map +1 -0
  224. package/build/types/ios-widget/xcode/productFile.d.ts +14 -0
  225. package/build/types/ios-widget/xcode/productFile.d.ts.map +1 -0
  226. package/build/types/ios-widget/xcode/target.d.ts +42 -0
  227. package/build/types/ios-widget/xcode/target.d.ts.map +1 -0
  228. package/build/types/types.d.ts +261 -0
  229. package/build/types/types.d.ts.map +1 -0
  230. package/build/types/utils/entitlements.d.ts +9 -0
  231. package/build/types/utils/entitlements.d.ts.map +1 -0
  232. package/build/types/utils/fileDiscovery.d.ts +13 -0
  233. package/build/types/utils/fileDiscovery.d.ts.map +1 -0
  234. package/build/types/utils/fonts.d.ts +2 -0
  235. package/build/types/utils/fonts.d.ts.map +1 -0
  236. package/build/types/utils/logger.d.ts +30 -0
  237. package/build/types/utils/logger.d.ts.map +1 -0
  238. package/build/types/utils/prerender.d.ts +25 -0
  239. package/build/types/utils/prerender.d.ts.map +1 -0
  240. package/build/types/utils/urlScheme.d.ts +10 -0
  241. package/build/types/utils/urlScheme.d.ts.map +1 -0
  242. package/build/types/validation.d.ts +17 -0
  243. package/build/types/validation.d.ts.map +1 -0
  244. package/package.json +58 -0
@@ -0,0 +1,29 @@
1
+ import type { WidgetFamily } from './types';
2
+ /**
3
+ * Constants for the Voltra plugin
4
+ */
5
+ export declare const IOS: {
6
+ /** Minimum iOS deployment target version */
7
+ readonly DEPLOYMENT_TARGET: "17.0";
8
+ /** Swift language version */
9
+ readonly SWIFT_VERSION: "5.0";
10
+ /** Target device families (1 = iPhone, 2 = iPad) */
11
+ readonly DEVICE_FAMILY: "1,2";
12
+ /** Last Swift migration version for Xcode */
13
+ readonly LAST_SWIFT_MIGRATION: 1250;
14
+ };
15
+ /** Default path for user-provided widget images */
16
+ export declare const DEFAULT_USER_IMAGES_PATH = "./assets/voltra";
17
+ /** Default path for user-provided Android widget images */
18
+ export declare const DEFAULT_ANDROID_USER_IMAGES_PATH = "./assets/voltra-android";
19
+ /** Maximum image size in bytes for Live Activities (4KB limit) */
20
+ export declare const MAX_IMAGE_SIZE_BYTES = 4096;
21
+ /** Supported image extensions for widget assets */
22
+ export declare const SUPPORTED_IMAGE_EXTENSIONS: RegExp;
23
+ /** Default widget families when not specified */
24
+ export declare const DEFAULT_WIDGET_FAMILIES: WidgetFamily[];
25
+ /** Maps JS widget family names to SwiftUI WidgetFamily enum cases */
26
+ export declare const WIDGET_FAMILY_MAP: Record<WidgetFamily, string>;
27
+ /** Extensions to try when resolving module paths for pre-rendering */
28
+ export declare const MODULE_EXTENSIONS: string[];
29
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C;;GAEG;AAMH,eAAO,MAAM,GAAG;IACd,4CAA4C;;IAG5C,6BAA6B;;IAG7B,oDAAoD;;IAGpD,6CAA6C;;CAErC,CAAA;AAMV,mDAAmD;AACnD,eAAO,MAAM,wBAAwB,oBAAoB,CAAA;AAEzD,2DAA2D;AAC3D,eAAO,MAAM,gCAAgC,4BAA4B,CAAA;AAMzE,kEAAkE;AAClE,eAAO,MAAM,oBAAoB,OAAO,CAAA;AAExC,mDAAmD;AACnD,eAAO,MAAM,0BAA0B,QAAuB,CAAA;AAE9D,iDAAiD;AACjD,eAAO,MAAM,uBAAuB,EAAE,YAAY,EAAmD,CAAA;AAErG,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAQ1D,CAAA;AAED,sEAAsE;AACtE,eAAO,MAAM,iBAAiB,UAAqC,CAAA"}
@@ -0,0 +1,13 @@
1
+ import type { VoltraConfigPlugin } from './types';
2
+ /**
3
+ * Main Voltra config plugin.
4
+ *
5
+ * This plugin configures your Expo app for:
6
+ * - Live Activities (Dynamic Island + Lock Screen)
7
+ * - Home Screen Widgets (iOS and Android)
8
+ * - Push Notifications for Live Activities (optional)
9
+ */
10
+ declare const withVoltra: VoltraConfigPlugin;
11
+ export default withVoltra;
12
+ export type { AndroidPluginConfig, AndroidWidgetConfig, AndroidWidgetServerUpdateConfig, ConfigPluginProps, VoltraConfigPlugin, WidgetConfig, WidgetFamily, WidgetServerUpdateConfig, } from './types';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAIjD;;;;;;;GAOG;AACH,QAAA,MAAM,UAAU,EAAE,kBA6DjB,CAAA;AAED,eAAe,UAAU,CAAA;AAGzB,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,+BAA+B,EAC/B,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,wBAAwB,GACzB,MAAM,SAAS,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { ConfigPlugin } from '@expo/config-plugins';
2
+ export interface ConfigureEasProps {
3
+ groupIdentifier?: string;
4
+ }
5
+ /**
6
+ * Configures main app for EAS builds.
7
+ *
8
+ * This adds the app group entitlement to the main app's entitlements
9
+ * so that EAS can properly configure provisioning profiles.
10
+ */
11
+ export declare const configureEas: ConfigPlugin<ConfigureEasProps>;
12
+ //# sourceMappingURL=eas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eas.d.ts","sourceRoot":"","sources":["../../../src/ios/eas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAInD,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAkBxD,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { ConfigPlugin } from '@expo/config-plugins';
2
+ export interface ConfigureEntitlementsProps {
3
+ groupIdentifier?: string;
4
+ keychainGroup?: string;
5
+ }
6
+ /**
7
+ * Configures main app entitlements for app groups and keychain sharing.
8
+ *
9
+ * This adds:
10
+ * - com.apple.security.application-groups entitlement for data sharing
11
+ * - keychain-access-groups entitlement for shared credential access (if keychainGroup provided)
12
+ */
13
+ export declare const configureEntitlements: ConfigPlugin<ConfigureEntitlementsProps>;
14
+ //# sourceMappingURL=entitlements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entitlements.d.ts","sourceRoot":"","sources":["../../../src/ios/entitlements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAInD,MAAM,WAAW,0BAA0B;IACzC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAAY,CAAC,0BAA0B,CAsB1E,CAAA"}
@@ -0,0 +1,19 @@
1
+ import type { ExpoConfig } from 'expo/config';
2
+ export interface IOSConfigProps {
3
+ groupIdentifier?: string;
4
+ widgetIds?: string[];
5
+ widgets?: import('../types').WidgetConfig[];
6
+ keychainGroup?: string;
7
+ }
8
+ /**
9
+ * Main iOS app configuration.
10
+ *
11
+ * This configures the main app (not the widget extension) for:
12
+ * - Live Activities support (Info.plist)
13
+ * - App groups for widget communication (entitlements)
14
+ * - Keychain sharing for widget server credentials (entitlements)
15
+ * - EAS build configuration
16
+ */
17
+ export declare function withIOS(config: ExpoConfig, props: IOSConfigProps): ExpoConfig;
18
+ export { withPushNotifications } from './pushNotifications';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ios/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAM7C,MAAM,WAAW,cAAc;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,UAAU,EAAE,YAAY,EAAE,CAAA;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,GAAG,UAAU,CAqB7E;AAGD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,21 @@
1
+ import { ConfigPlugin } from '@expo/config-plugins';
2
+ import type { WidgetConfig } from '../types';
3
+ export interface ConfigureInfoPlistProps {
4
+ groupIdentifier?: string;
5
+ widgetIds?: string[];
6
+ widgets?: WidgetConfig[];
7
+ keychainGroup?: string;
8
+ }
9
+ /**
10
+ * Configures main app Info.plist for Live Activities and widgets.
11
+ *
12
+ * This adds:
13
+ * - NSSupportsLiveActivities: Enables Live Activities support
14
+ * - Voltra_AppGroupIdentifier: App group ID for widget communication (if provided)
15
+ * - Voltra_WidgetIds: Array of widget IDs for native module access (if provided)
16
+ * - Voltra_WidgetServerUrls: Map of widget IDs to server URLs (if any widgets have serverUpdate)
17
+ * - Voltra_WidgetServerIntervals: Map of widget IDs to update intervals (if any widgets have serverUpdate)
18
+ * - Voltra_KeychainGroup: Keychain access group for shared credentials (if provided)
19
+ */
20
+ export declare const configureInfoPlist: ConfigPlugin<ConfigureInfoPlistProps>;
21
+ //# sourceMappingURL=infoPlist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infoPlist.d.ts","sourceRoot":"","sources":["../../../src/ios/infoPlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiB,MAAM,sBAAsB,CAAA;AAElE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE5C,MAAM,WAAW,uBAAuB;IACtC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,uBAAuB,CAwCpE,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { ConfigPlugin } from '@expo/config-plugins';
2
+ /**
3
+ * Plugin that enables push notification support for Live Activities.
4
+ *
5
+ * This:
6
+ * - Adds the aps-environment entitlement for push notifications
7
+ * - Adds Voltra_EnablePushNotifications flag to Info.plist
8
+ */
9
+ export declare const withPushNotifications: ConfigPlugin;
10
+ //# sourceMappingURL=pushNotifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pushNotifications.d.ts","sourceRoot":"","sources":["../../../src/ios/pushNotifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwC,MAAM,sBAAsB,CAAA;AAEzF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAYjC,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { ConfigPlugin } from '@expo/config-plugins';
2
+ export interface ConfigureEasBuildProps {
3
+ bundleIdentifier: string;
4
+ targetName: string;
5
+ groupIdentifier?: string;
6
+ }
7
+ /**
8
+ * Plugin step that configures EAS build settings for the widget extension.
9
+ *
10
+ * This:
11
+ * - Adds the widget extension to the EAS build experimental iOS appExtensions
12
+ * - Configures entitlements for both the extension and main app
13
+ */
14
+ export declare const configureEasBuild: ConfigPlugin<ConfigureEasBuildProps>;
15
+ //# sourceMappingURL=eas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eas.d.ts","sourceRoot":"","sources":["../../../src/ios-widget/eas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAKnD,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,sBAAsB,CA4DlE,CAAA"}
@@ -0,0 +1,13 @@
1
+ export interface GenerateAssetsOptions {
2
+ targetPath: string;
3
+ userImagesPath?: string;
4
+ }
5
+ /**
6
+ * Generates all asset files for the widget extension.
7
+ *
8
+ * This creates:
9
+ * - Assets.xcassets/ directory structure
10
+ * - Copies user images to the asset catalog
11
+ */
12
+ export declare function generateAssets(options: GenerateAssetsOptions): void;
13
+ //# sourceMappingURL=assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/files/assets.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAMD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAUnE"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Gets the entitlements for the widget extension.
3
+ */
4
+ export declare function getWidgetExtensionEntitlements(groupIdentifier?: string, keychainGroup?: string): Record<string, any>;
5
+ export interface GenerateEntitlementsOptions {
6
+ targetPath: string;
7
+ targetName: string;
8
+ groupIdentifier?: string;
9
+ keychainGroup?: string;
10
+ }
11
+ /**
12
+ * Generates the entitlements file for the widget extension.
13
+ *
14
+ * @param options - Generation options
15
+ */
16
+ export declare function generateEntitlements(options: GenerateEntitlementsOptions): void;
17
+ //# sourceMappingURL=entitlements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entitlements.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/files/entitlements.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAcpH;AAED,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,IAAI,CAS/E"}
@@ -0,0 +1,24 @@
1
+ import { ConfigPlugin } from '@expo/config-plugins';
2
+ import type { WidgetConfig } from '../../types';
3
+ export interface GenerateWidgetExtensionFilesProps {
4
+ targetName: string;
5
+ widgets?: WidgetConfig[];
6
+ groupIdentifier?: string;
7
+ keychainGroup?: string;
8
+ version: string;
9
+ buildNumber: string;
10
+ }
11
+ /**
12
+ * Plugin step that generates all widget extension files.
13
+ *
14
+ * This creates:
15
+ * - Info.plist (required extension manifest)
16
+ * - Assets.xcassets/ (asset catalog with user images)
17
+ * - VoltraWidgetBundle.swift (widget bundle definition)
18
+ * - VoltraWidgetInitialStates.swift (pre-rendered widget states)
19
+ * - {targetName}.entitlements (entitlements file)
20
+ *
21
+ * This should run before configureXcodeProject so the files exist when Xcode project is configured.
22
+ */
23
+ export declare const generateWidgetExtensionFiles: ConfigPlugin<GenerateWidgetExtensionFilesProps>;
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAA;AAIrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAM/C,MAAM,WAAW,iCAAiC;IAChD,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,4BAA4B,EAAE,YAAY,CAAC,iCAAiC,CA0CxF,CAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Generates the Info.plist file for the widget extension.
3
+ *
4
+ * @param targetPath - Path to the widget extension target directory
5
+ * @param targetName - The widget extension target name (used for CFBundleDisplayName)
6
+ * @param version - The app version (CFBundleShortVersionString)
7
+ * @param buildNumber - The build number (CFBundleVersion)
8
+ */
9
+ export declare function generateInfoPlist(targetPath: string, targetName: string, version: string, buildNumber: string): void;
10
+ //# sourceMappingURL=infoPlist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infoPlist.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/files/infoPlist.ts"],"names":[],"mappings":"AA4CA;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAIpH"}
@@ -0,0 +1,15 @@
1
+ import type { WidgetConfig } from '../../types';
2
+ export interface GenerateSwiftFilesOptions {
3
+ targetPath: string;
4
+ projectRoot: string;
5
+ widgets?: WidgetConfig[];
6
+ }
7
+ /**
8
+ * Generates all Swift files for the widget extension.
9
+ *
10
+ * This creates:
11
+ * - VoltraWidgetInitialStates.swift (pre-rendered widget states)
12
+ * - VoltraWidgetBundle.swift (widget bundle definition)
13
+ */
14
+ export declare function generateSwiftFiles(options: GenerateSwiftFilesOptions): Promise<void>;
15
+ //# sourceMappingURL=swift.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/files/swift.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI/C,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;CACzB;AAQD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B1F"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Font configuration for Live Activity extension.
3
+ *
4
+ * This code is adapted from expo-font to support custom fonts in Live Activities.
5
+ * @see https://github.com/expo/expo/tree/main/packages/expo-font/plugin
6
+ *
7
+ * I would love to reuse the existing expo-font infrastructure, but it's not that easy to do. I'll most likely revisit it later.
8
+ */
9
+ import { type ConfigPlugin } from '@expo/config-plugins';
10
+ /**
11
+ * Plugin that adds custom fonts to the Live Activity extension.
12
+ *
13
+ * @param config - The Expo config
14
+ * @param fonts - Array of font file paths or directories
15
+ * @param targetName - Name of the Live Activity extension target
16
+ * @returns Modified config
17
+ */
18
+ export declare const withFonts: ConfigPlugin<{
19
+ fonts: string[];
20
+ targetName: string;
21
+ }>;
22
+ //# sourceMappingURL=fonts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../../../src/ios-widget/fonts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAiE,MAAM,sBAAsB,CAAA;AASvH;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,EAAE,YAAY,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAQ3E,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { ConfigPlugin } from '@expo/config-plugins';
2
+ import type { WidgetConfig } from '../types';
3
+ export interface WithIOSProps {
4
+ targetName: string;
5
+ bundleIdentifier: string;
6
+ deploymentTarget: string;
7
+ widgets?: WidgetConfig[];
8
+ groupIdentifier?: string;
9
+ keychainGroup?: string;
10
+ fonts?: string[];
11
+ version: string;
12
+ buildNumber: string;
13
+ }
14
+ /**
15
+ * Main iOS configuration plugin.
16
+ *
17
+ * This orchestrates all iOS-related configuration in the correct order:
18
+ * 1. Add custom fonts (if provided)
19
+ * 2. Configure Xcode project (targets, build phases, groups)
20
+ * 3. Configure Podfile for widget extension
21
+ * 4. Configure main app Info.plist (URL schemes)
22
+ * 5. Configure EAS build settings
23
+ * 6. Generate widget extension files (Swift, assets, plist, entitlements)
24
+ *
25
+ * NOTE: Expo mods execute in REVERSE registration order. Plugins that depend
26
+ * on modifications from other plugins must be registered BEFORE their dependencies.
27
+ * For example, fonts plugin needs the target created by configureXcodeProject,
28
+ * so fonts must be registered before configureXcodeProject.
29
+ */
30
+ export declare const withIOS: ConfigPlugin<WithIOSProps>;
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ios-widget/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAe,MAAM,sBAAsB,CAAA;AAEhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAQ5C,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,OAAO,EAAE,YAAY,CAAC,YAAY,CAkC9C,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { ConfigPlugin } from '@expo/config-plugins';
2
+ export interface ConfigurePodfileProps {
3
+ targetName: string;
4
+ }
5
+ /**
6
+ * Plugin step that adds the Podfile target for the widget extension.
7
+ */
8
+ export declare const configurePodfile: ConfigPlugin<ConfigurePodfileProps>;
9
+ //# sourceMappingURL=podfile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"podfile.d.ts","sourceRoot":"","sources":["../../../src/ios-widget/podfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkC,MAAM,sBAAsB,CAAA;AAyBnF,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,YAAY,CAAC,qBAAqB,CAahE,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { ConfigPlugin } from '@expo/config-plugins';
2
+ import type { WidgetConfig } from '../types';
3
+ export interface ConfigureMainAppPlistProps {
4
+ targetName: string;
5
+ groupIdentifier?: string;
6
+ widgets?: WidgetConfig[];
7
+ keychainGroup?: string;
8
+ }
9
+ /**
10
+ * Plugin step that configures the Info.plist files.
11
+ *
12
+ * This:
13
+ * - Updates the widget extension's Info.plist with URL schemes
14
+ * - Removes incompatible NSExtension keys for WidgetKit
15
+ * - Adds group identifier if configured
16
+ * - Adds server update URLs and intervals for server-driven widgets
17
+ * - Adds Keychain group for shared credential access
18
+ */
19
+ export declare const configureWidgetExtensionPlist: ConfigPlugin<ConfigureMainAppPlistProps>;
20
+ //# sourceMappingURL=widgetPlist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widgetPlist.d.ts","sourceRoot":"","sources":["../../../src/ios-widget/widgetPlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA+B,MAAM,sBAAsB,CAAA;AAKhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAG5C,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,EAAE,YAAY,CAAC,0BAA0B,CAyF/E,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { XcodeProject } from '@expo/config-plugins';
2
+ import type { WidgetFiles } from '../../types';
3
+ export interface AddBuildPhasesOptions {
4
+ targetUuid: string;
5
+ groupName: string;
6
+ productFile: {
7
+ uuid: string;
8
+ target?: string;
9
+ basename: string;
10
+ group: string;
11
+ };
12
+ widgetFiles: WidgetFiles;
13
+ }
14
+ export interface EnsureBuildPhasesOptions extends AddBuildPhasesOptions {
15
+ mainTargetUuid?: string;
16
+ }
17
+ /**
18
+ * Adds all required build phases for the widget extension target.
19
+ */
20
+ export declare function addBuildPhases(xcodeProject: XcodeProject, options: AddBuildPhasesOptions): void;
21
+ /**
22
+ * Ensures all required build phases and files exist for the widget extension target.
23
+ */
24
+ export declare function ensureBuildPhases(xcodeProject: XcodeProject, options: EnsureBuildPhasesOptions): void;
25
+ //# sourceMappingURL=buildPhases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildPhases.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/buildPhases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAI9C,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,WAAW,EAAE,WAAW,CAAA;CACzB;AAED,MAAM,WAAW,wBAAyB,SAAQ,qBAAqB;IACrE,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAsC/F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAsDrG"}
@@ -0,0 +1,20 @@
1
+ import { XcodeProject } from '@expo/config-plugins';
2
+ export interface AddConfigurationListOptions {
3
+ targetName: string;
4
+ bundleIdentifier: string;
5
+ deploymentTarget: string;
6
+ codeSignStyle?: string;
7
+ developmentTeam?: string;
8
+ provisioningProfileSpecifier?: string;
9
+ }
10
+ /**
11
+ * Adds the XCConfigurationList for the widget extension target.
12
+ */
13
+ export declare function addXCConfigurationList(xcodeProject: XcodeProject, options: AddConfigurationListOptions): any;
14
+ /**
15
+ * Ensures an existing XCConfigurationList is updated, or adds a new one if missing.
16
+ */
17
+ export declare function ensureXCConfigurationList(xcodeProject: XcodeProject, options: AddConfigurationListOptions, existingConfigurationListId?: string | {
18
+ value?: string;
19
+ }): any;
20
+ //# sourceMappingURL=configurationList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configurationList.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/configurationList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAInD,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,4BAA4B,CAAC,EAAE,MAAM,CAAA;CACtC;AA0CD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,2BAA2B,OA4BtG;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,2BAA2B,EACpC,2BAA2B,CAAC,EAAE,MAAM,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,OAkC1D"}
@@ -0,0 +1,15 @@
1
+ import { XcodeProject } from '@expo/config-plugins';
2
+ import type { WidgetFiles } from '../../types';
3
+ export interface AddPbxGroupOptions {
4
+ targetName: string;
5
+ widgetFiles: WidgetFiles;
6
+ }
7
+ /**
8
+ * Adds a PBXGroup for the widget extension files.
9
+ */
10
+ export declare function addPbxGroup(xcodeProject: XcodeProject, options: AddPbxGroupOptions): void;
11
+ /**
12
+ * Ensures a PBXGroup exists for the widget extension files.
13
+ */
14
+ export declare function ensurePbxGroup(xcodeProject: XcodeProject, options: AddPbxGroupOptions): void;
15
+ //# sourceMappingURL=groups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/groups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAI9C,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,WAAW,CAAA;CACzB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAoBzF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAyB5F"}
@@ -0,0 +1,20 @@
1
+ import { ConfigPlugin } from '@expo/config-plugins';
2
+ export interface ConfigureXcodeProjectProps {
3
+ targetName: string;
4
+ bundleIdentifier: string;
5
+ deploymentTarget: string;
6
+ }
7
+ /**
8
+ * Plugin step that configures the Xcode project for the widget extension.
9
+ *
10
+ * This:
11
+ * - Adds XCConfigurationList with Debug/Release configurations
12
+ * - Adds the product file (.appex)
13
+ * - Configures the native target
14
+ * - Adds build phases (Sources, CopyFiles, Frameworks, Resources)
15
+ * - Adds PBXGroup for widget files
16
+ *
17
+ * This should run after generateWidgetExtensionFiles so the files exist.
18
+ */
19
+ export declare const configureXcodeProject: ConfigPlugin<ConfigureXcodeProjectProps>;
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAA;AAWrE,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAAY,CAAC,0BAA0B,CAuH1E,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { XcodeProject } from '@expo/config-plugins';
2
+ export interface MainAppTargetSettings {
3
+ deploymentTarget: string;
4
+ codeSignStyle?: string;
5
+ developmentTeam?: string;
6
+ provisioningProfileSpecifier?: string;
7
+ }
8
+ /**
9
+ * Reads build settings from the main app target to synchronize code signing with the widget extension.
10
+ *
11
+ * @param xcodeProject The Xcode project instance
12
+ * @returns The main app target's build settings, or null if not found
13
+ */
14
+ export declare function getMainAppTargetSettings(xcodeProject: XcodeProject): MainAppTargetSettings | null;
15
+ //# sourceMappingURL=mainAppSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mainAppSettings.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/mainAppSettings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,4BAA4B,CAAC,EAAE,MAAM,CAAA;CACtC;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,YAAY,GAAG,qBAAqB,GAAG,IAAI,CA+EjG"}
@@ -0,0 +1,14 @@
1
+ import { XcodeProject } from '@expo/config-plugins';
2
+ export interface AddProductFileOptions {
3
+ targetName: string;
4
+ groupName: string;
5
+ }
6
+ /**
7
+ * Adds the product file (.appex) for the widget extension.
8
+ */
9
+ export declare function addProductFile(xcodeProject: XcodeProject, options: AddProductFileOptions): any;
10
+ /**
11
+ * Ensures the product file (.appex) exists and returns it.
12
+ */
13
+ export declare function ensureProductFile(xcodeProject: XcodeProject, options: AddProductFileOptions): any;
14
+ //# sourceMappingURL=productFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"productFile.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/productFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAsCD;;GAEG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,OAkBxF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,OAqB3F"}
@@ -0,0 +1,42 @@
1
+ import { XcodeProject } from '@expo/config-plugins';
2
+ export interface ConfigureTargetOptions {
3
+ targetName: string;
4
+ targetUuid: string;
5
+ productFile: {
6
+ fileRef: string;
7
+ };
8
+ xCConfigurationList: {
9
+ uuid: string;
10
+ };
11
+ }
12
+ /**
13
+ * Configures the widget extension target in the Xcode project.
14
+ *
15
+ * This:
16
+ * - Adds the target to PBXNativeTarget section
17
+ * - Adds the target to PBXProject section
18
+ * - Adds a dependency from the main app to the widget extension
19
+ */
20
+ export declare function configureTarget(xcodeProject: XcodeProject, options: ConfigureTargetOptions): {
21
+ uuid: string;
22
+ pbxNativeTarget: {
23
+ isa: string;
24
+ name: string;
25
+ productName: string;
26
+ productReference: string;
27
+ productType: string;
28
+ buildConfigurationList: string;
29
+ buildPhases: never[];
30
+ buildRules: never[];
31
+ dependencies: never[];
32
+ };
33
+ };
34
+ /**
35
+ * Ensures target attributes (LastSwiftMigration) exist for the target.
36
+ */
37
+ export declare function ensureTargetAttributes(xcodeProject: XcodeProject, targetUuid: string): void;
38
+ /**
39
+ * Ensures a target dependency exists so the main app depends on the widget extension.
40
+ */
41
+ export declare function ensureTargetDependency(xcodeProject: XcodeProject, targetUuid: string): void;
42
+ //# sourceMappingURL=target.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAQnD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAChC,mBAAmB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CACtC;AAaD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,sBAAsB;;;;;;;;;;;;;EAM1F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAa3F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAqB3F"}