@use-voltra/expo-plugin 1.4.1 → 2.0.0-rc.1

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 (236) hide show
  1. package/README.md +9 -29
  2. package/build/cjs/constants.js +3 -43
  3. package/build/cjs/constants.js.map +1 -1
  4. package/build/cjs/index.js +23 -69
  5. package/build/cjs/index.js.map +1 -1
  6. package/build/cjs/types.js +4 -0
  7. package/build/cjs/types.js.map +1 -1
  8. package/build/cjs/utils/localePick.js +48 -0
  9. package/build/cjs/utils/localePick.js.map +1 -0
  10. package/build/cjs/utils/prerender.js +15 -9
  11. package/build/cjs/utils/prerender.js.map +1 -1
  12. package/build/cjs/utils/widgetLabel.js +19 -0
  13. package/build/cjs/utils/widgetLabel.js.map +1 -0
  14. package/build/cjs/validation.js +75 -166
  15. package/build/cjs/validation.js.map +1 -1
  16. package/build/esm/constants.js +2 -42
  17. package/build/esm/constants.js.map +1 -1
  18. package/build/esm/index.js +8 -69
  19. package/build/esm/index.js.map +1 -1
  20. package/build/esm/types.js +4 -0
  21. package/build/esm/types.js.map +1 -1
  22. package/build/esm/utils/localePick.js +44 -0
  23. package/build/esm/utils/localePick.js.map +1 -0
  24. package/build/esm/utils/prerender.js +15 -9
  25. package/build/esm/utils/prerender.js.map +1 -1
  26. package/build/esm/utils/widgetLabel.js +15 -0
  27. package/build/esm/utils/widgetLabel.js.map +1 -0
  28. package/build/esm/validation.js +71 -163
  29. package/build/esm/validation.js.map +1 -1
  30. package/build/types/constants.d.ts +2 -26
  31. package/build/types/constants.d.ts.map +1 -1
  32. package/build/types/index.d.ts +10 -12
  33. package/build/types/index.d.ts.map +1 -1
  34. package/build/types/types.d.ts +9 -260
  35. package/build/types/types.d.ts.map +1 -1
  36. package/build/types/utils/localePick.d.ts +7 -0
  37. package/build/types/utils/localePick.d.ts.map +1 -0
  38. package/build/types/utils/prerender.d.ts +6 -3
  39. package/build/types/utils/prerender.d.ts.map +1 -1
  40. package/build/types/utils/widgetLabel.d.ts +8 -0
  41. package/build/types/utils/widgetLabel.d.ts.map +1 -0
  42. package/build/types/validation.d.ts +6 -14
  43. package/build/types/validation.d.ts.map +1 -1
  44. package/package.json +11 -11
  45. package/build/cjs/android/files/assets.js +0 -259
  46. package/build/cjs/android/files/assets.js.map +0 -1
  47. package/build/cjs/android/files/fonts.js +0 -69
  48. package/build/cjs/android/files/fonts.js.map +0 -1
  49. package/build/cjs/android/files/index.js +0 -81
  50. package/build/cjs/android/files/index.js.map +0 -1
  51. package/build/cjs/android/files/initialStates.js +0 -83
  52. package/build/cjs/android/files/initialStates.js.map +0 -1
  53. package/build/cjs/android/files/kotlin.js +0 -142
  54. package/build/cjs/android/files/kotlin.js.map +0 -1
  55. package/build/cjs/android/files/xml.js +0 -247
  56. package/build/cjs/android/files/xml.js.map +0 -1
  57. package/build/cjs/android/index.js +0 -33
  58. package/build/cjs/android/index.js.map +0 -1
  59. package/build/cjs/android/manifest.js +0 -92
  60. package/build/cjs/android/manifest.js.map +0 -1
  61. package/build/cjs/ios/eas.js +0 -28
  62. package/build/cjs/ios/eas.js.map +0 -1
  63. package/build/cjs/ios/entitlements.js +0 -46
  64. package/build/cjs/ios/entitlements.js.map +0 -1
  65. package/build/cjs/ios/index.js +0 -39
  66. package/build/cjs/ios/index.js.map +0 -1
  67. package/build/cjs/ios/infoPlist.js +0 -51
  68. package/build/cjs/ios/infoPlist.js.map +0 -1
  69. package/build/cjs/ios/pushNotifications.js +0 -22
  70. package/build/cjs/ios/pushNotifications.js.map +0 -1
  71. package/build/cjs/ios-widget/eas.js +0 -66
  72. package/build/cjs/ios-widget/eas.js.map +0 -1
  73. package/build/cjs/ios-widget/files/assets.js +0 -199
  74. package/build/cjs/ios-widget/files/assets.js.map +0 -1
  75. package/build/cjs/ios-widget/files/entitlements.js +0 -77
  76. package/build/cjs/ios-widget/files/entitlements.js.map +0 -1
  77. package/build/cjs/ios-widget/files/index.js +0 -92
  78. package/build/cjs/ios-widget/files/index.js.map +0 -1
  79. package/build/cjs/ios-widget/files/infoPlist.js +0 -91
  80. package/build/cjs/ios-widget/files/infoPlist.js.map +0 -1
  81. package/build/cjs/ios-widget/files/swift.js +0 -256
  82. package/build/cjs/ios-widget/files/swift.js.map +0 -1
  83. package/build/cjs/ios-widget/fonts.js +0 -151
  84. package/build/cjs/ios-widget/fonts.js.map +0 -1
  85. package/build/cjs/ios-widget/index.js +0 -46
  86. package/build/cjs/ios-widget/index.js.map +0 -1
  87. package/build/cjs/ios-widget/podfile.js +0 -43
  88. package/build/cjs/ios-widget/podfile.js.map +0 -1
  89. package/build/cjs/ios-widget/widgetPlist.js +0 -99
  90. package/build/cjs/ios-widget/widgetPlist.js.map +0 -1
  91. package/build/cjs/ios-widget/xcode/buildPhases.js +0 -245
  92. package/build/cjs/ios-widget/xcode/buildPhases.js.map +0 -1
  93. package/build/cjs/ios-widget/xcode/configurationList.js +0 -91
  94. package/build/cjs/ios-widget/xcode/configurationList.js.map +0 -1
  95. package/build/cjs/ios-widget/xcode/groups.js +0 -65
  96. package/build/cjs/ios-widget/xcode/groups.js.map +0 -1
  97. package/build/cjs/ios-widget/xcode/index.js +0 -155
  98. package/build/cjs/ios-widget/xcode/index.js.map +0 -1
  99. package/build/cjs/ios-widget/xcode/mainAppSettings.js +0 -71
  100. package/build/cjs/ios-widget/xcode/mainAppSettings.js.map +0 -1
  101. package/build/cjs/ios-widget/xcode/productFile.js +0 -74
  102. package/build/cjs/ios-widget/xcode/productFile.js.map +0 -1
  103. package/build/cjs/ios-widget/xcode/target.js +0 -113
  104. package/build/cjs/ios-widget/xcode/target.js.map +0 -1
  105. package/build/cjs/utils/fileDiscovery.js +0 -107
  106. package/build/cjs/utils/fileDiscovery.js.map +0 -1
  107. package/build/cjs/utils/urlScheme.js +0 -40
  108. package/build/cjs/utils/urlScheme.js.map +0 -1
  109. package/build/esm/android/files/assets.js +0 -223
  110. package/build/esm/android/files/assets.js.map +0 -1
  111. package/build/esm/android/files/fonts.js +0 -33
  112. package/build/esm/android/files/fonts.js.map +0 -1
  113. package/build/esm/android/files/index.js +0 -77
  114. package/build/esm/android/files/index.js.map +0 -1
  115. package/build/esm/android/files/initialStates.js +0 -44
  116. package/build/esm/android/files/initialStates.js.map +0 -1
  117. package/build/esm/android/files/kotlin.js +0 -103
  118. package/build/esm/android/files/kotlin.js.map +0 -1
  119. package/build/esm/android/files/xml.js +0 -206
  120. package/build/esm/android/files/xml.js.map +0 -1
  121. package/build/esm/android/index.js +0 -29
  122. package/build/esm/android/index.js.map +0 -1
  123. package/build/esm/android/manifest.js +0 -88
  124. package/build/esm/android/manifest.js.map +0 -1
  125. package/build/esm/ios/eas.js +0 -24
  126. package/build/esm/ios/eas.js.map +0 -1
  127. package/build/esm/ios/entitlements.js +0 -42
  128. package/build/esm/ios/entitlements.js.map +0 -1
  129. package/build/esm/ios/index.js +0 -34
  130. package/build/esm/ios/index.js.map +0 -1
  131. package/build/esm/ios/infoPlist.js +0 -47
  132. package/build/esm/ios/infoPlist.js.map +0 -1
  133. package/build/esm/ios/pushNotifications.js +0 -18
  134. package/build/esm/ios/pushNotifications.js.map +0 -1
  135. package/build/esm/ios-widget/eas.js +0 -62
  136. package/build/esm/ios-widget/eas.js.map +0 -1
  137. package/build/esm/ios-widget/files/assets.js +0 -163
  138. package/build/esm/ios-widget/files/assets.js.map +0 -1
  139. package/build/esm/ios-widget/files/entitlements.js +0 -37
  140. package/build/esm/ios-widget/files/entitlements.js.map +0 -1
  141. package/build/esm/ios-widget/files/index.js +0 -55
  142. package/build/esm/ios-widget/files/index.js.map +0 -1
  143. package/build/esm/ios-widget/files/infoPlist.js +0 -55
  144. package/build/esm/ios-widget/files/infoPlist.js.map +0 -1
  145. package/build/esm/ios-widget/files/swift.js +0 -217
  146. package/build/esm/ios-widget/files/swift.js.map +0 -1
  147. package/build/esm/ios-widget/fonts.js +0 -111
  148. package/build/esm/ios-widget/fonts.js.map +0 -1
  149. package/build/esm/ios-widget/index.js +0 -42
  150. package/build/esm/ios-widget/index.js.map +0 -1
  151. package/build/esm/ios-widget/podfile.js +0 -39
  152. package/build/esm/ios-widget/podfile.js.map +0 -1
  153. package/build/esm/ios-widget/widgetPlist.js +0 -92
  154. package/build/esm/ios-widget/widgetPlist.js.map +0 -1
  155. package/build/esm/ios-widget/xcode/buildPhases.js +0 -208
  156. package/build/esm/ios-widget/xcode/buildPhases.js.map +0 -1
  157. package/build/esm/ios-widget/xcode/configurationList.js +0 -87
  158. package/build/esm/ios-widget/xcode/configurationList.js.map +0 -1
  159. package/build/esm/ios-widget/xcode/groups.js +0 -61
  160. package/build/esm/ios-widget/xcode/groups.js.map +0 -1
  161. package/build/esm/ios-widget/xcode/index.js +0 -118
  162. package/build/esm/ios-widget/xcode/index.js.map +0 -1
  163. package/build/esm/ios-widget/xcode/mainAppSettings.js +0 -68
  164. package/build/esm/ios-widget/xcode/mainAppSettings.js.map +0 -1
  165. package/build/esm/ios-widget/xcode/productFile.js +0 -70
  166. package/build/esm/ios-widget/xcode/productFile.js.map +0 -1
  167. package/build/esm/ios-widget/xcode/target.js +0 -108
  168. package/build/esm/ios-widget/xcode/target.js.map +0 -1
  169. package/build/esm/utils/fileDiscovery.js +0 -71
  170. package/build/esm/utils/fileDiscovery.js.map +0 -1
  171. package/build/esm/utils/urlScheme.js +0 -37
  172. package/build/esm/utils/urlScheme.js.map +0 -1
  173. package/build/types/android/files/assets.d.ts +0 -26
  174. package/build/types/android/files/assets.d.ts.map +0 -1
  175. package/build/types/android/files/fonts.d.ts +0 -19
  176. package/build/types/android/files/fonts.d.ts.map +0 -1
  177. package/build/types/android/files/index.d.ts +0 -21
  178. package/build/types/android/files/index.d.ts.map +0 -1
  179. package/build/types/android/files/initialStates.d.ts +0 -14
  180. package/build/types/android/files/initialStates.d.ts.map +0 -1
  181. package/build/types/android/files/kotlin.d.ts +0 -11
  182. package/build/types/android/files/kotlin.d.ts.map +0 -1
  183. package/build/types/android/files/xml.d.ts +0 -25
  184. package/build/types/android/files/xml.d.ts.map +0 -1
  185. package/build/types/android/index.d.ts +0 -12
  186. package/build/types/android/index.d.ts.map +0 -1
  187. package/build/types/android/manifest.d.ts +0 -16
  188. package/build/types/android/manifest.d.ts.map +0 -1
  189. package/build/types/ios/eas.d.ts +0 -12
  190. package/build/types/ios/eas.d.ts.map +0 -1
  191. package/build/types/ios/entitlements.d.ts +0 -14
  192. package/build/types/ios/entitlements.d.ts.map +0 -1
  193. package/build/types/ios/index.d.ts +0 -19
  194. package/build/types/ios/index.d.ts.map +0 -1
  195. package/build/types/ios/infoPlist.d.ts +0 -21
  196. package/build/types/ios/infoPlist.d.ts.map +0 -1
  197. package/build/types/ios/pushNotifications.d.ts +0 -10
  198. package/build/types/ios/pushNotifications.d.ts.map +0 -1
  199. package/build/types/ios-widget/eas.d.ts +0 -15
  200. package/build/types/ios-widget/eas.d.ts.map +0 -1
  201. package/build/types/ios-widget/files/assets.d.ts +0 -13
  202. package/build/types/ios-widget/files/assets.d.ts.map +0 -1
  203. package/build/types/ios-widget/files/entitlements.d.ts +0 -17
  204. package/build/types/ios-widget/files/entitlements.d.ts.map +0 -1
  205. package/build/types/ios-widget/files/index.d.ts +0 -24
  206. package/build/types/ios-widget/files/index.d.ts.map +0 -1
  207. package/build/types/ios-widget/files/infoPlist.d.ts +0 -10
  208. package/build/types/ios-widget/files/infoPlist.d.ts.map +0 -1
  209. package/build/types/ios-widget/files/swift.d.ts +0 -15
  210. package/build/types/ios-widget/files/swift.d.ts.map +0 -1
  211. package/build/types/ios-widget/fonts.d.ts +0 -22
  212. package/build/types/ios-widget/fonts.d.ts.map +0 -1
  213. package/build/types/ios-widget/index.d.ts +0 -31
  214. package/build/types/ios-widget/index.d.ts.map +0 -1
  215. package/build/types/ios-widget/podfile.d.ts +0 -9
  216. package/build/types/ios-widget/podfile.d.ts.map +0 -1
  217. package/build/types/ios-widget/widgetPlist.d.ts +0 -20
  218. package/build/types/ios-widget/widgetPlist.d.ts.map +0 -1
  219. package/build/types/ios-widget/xcode/buildPhases.d.ts +0 -25
  220. package/build/types/ios-widget/xcode/buildPhases.d.ts.map +0 -1
  221. package/build/types/ios-widget/xcode/configurationList.d.ts +0 -20
  222. package/build/types/ios-widget/xcode/configurationList.d.ts.map +0 -1
  223. package/build/types/ios-widget/xcode/groups.d.ts +0 -15
  224. package/build/types/ios-widget/xcode/groups.d.ts.map +0 -1
  225. package/build/types/ios-widget/xcode/index.d.ts +0 -20
  226. package/build/types/ios-widget/xcode/index.d.ts.map +0 -1
  227. package/build/types/ios-widget/xcode/mainAppSettings.d.ts +0 -15
  228. package/build/types/ios-widget/xcode/mainAppSettings.d.ts.map +0 -1
  229. package/build/types/ios-widget/xcode/productFile.d.ts +0 -14
  230. package/build/types/ios-widget/xcode/productFile.d.ts.map +0 -1
  231. package/build/types/ios-widget/xcode/target.d.ts +0 -42
  232. package/build/types/ios-widget/xcode/target.d.ts.map +0 -1
  233. package/build/types/utils/fileDiscovery.d.ts +0 -13
  234. package/build/types/utils/fileDiscovery.d.ts.map +0 -1
  235. package/build/types/utils/urlScheme.d.ts +0 -10
  236. package/build/types/utils/urlScheme.d.ts.map +0 -1
package/README.md CHANGED
@@ -1,34 +1,14 @@
1
- ![voltra-banner](https://use-voltra.dev/voltra-baner.jpg)
1
+ # @use-voltra/expo-plugin
2
2
 
3
- ### Voltra Expo Plugin
3
+ Shared build-time utilities for Voltra Expo config plugins:
4
4
 
5
- [![mit licence][license-badge]][license] [![npm downloads][npm-downloads-badge]][npm-downloads] [![PRs Welcome][prs-welcome-badge]][prs-welcome]
5
+ - Localized label helpers and locale fallback (`localePick`)
6
+ - Widget config validation primitives
7
+ - Initial-state prerendering pipeline
6
8
 
7
- `@use-voltra/expo-plugin` contains the Expo config plugin used by Voltra to configure iOS Live Activities, widget extensions, and Android widgets during `expo prebuild`.
9
+ Platform-specific config plugins ship with:
8
10
 
9
- > [!WARNING]
10
- > Most apps should install `voltra` instead of using this package directly.
11
+ - [`@use-voltra/ios-client`](../ios-client) — Live Activities, widget extension, push
12
+ - [`@use-voltra/android-client`](../android-client) — home screen widgets
11
13
 
12
- For installation and setup instructions, see the Voltra documentation: [use-voltra.dev](https://use-voltra.dev).
13
-
14
- ## Attribution
15
-
16
- This plugin was derived from [expo-live-activity](https://github.com/software-mansion-labs/expo-live-activity) by Software Mansion.
17
-
18
- ## Authors
19
-
20
- `voltra` is an open source collaboration between [Saúl Sharma](https://github.com/saulsharma) and [Szymon Chmal](https://github.com/szymonchmal) at [Callstack][callstack-readme-with-love].
21
-
22
- If you think it's cool, please star it 🌟. This project will always remain free to use.
23
-
24
- [Callstack][callstack-readme-with-love] is a group of React and React Native geeks, contact us at [hello@callstack.com](mailto:hello@callstack.com) if you need any help with these or just want to say hi!
25
-
26
- Like the project? ⚛️ [Join the Callstack team](https://callstack.com/careers/?utm_campaign=Senior_RN&utm_source=github&utm_medium=readme) who does amazing stuff for clients and drives React Native Open Source! 🔥
27
-
28
- [callstack-readme-with-love]: https://callstack.com/?utm_source=github.com&utm_medium=referral&utm_campaign=voltra&utm_term=readme-with-love
29
- [license-badge]: https://img.shields.io/npm/l/voltra?style=for-the-badge
30
- [license]: https://github.com/callstackincubator/voltra/blob/main/LICENSE.txt
31
- [npm-downloads-badge]: https://img.shields.io/npm/dm/voltra?style=for-the-badge
32
- [npm-downloads]: https://www.npmjs.com/package/voltra
33
- [prs-welcome-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge
34
- [prs-welcome]: ./CONTRIBUTING.md
14
+ See [use-voltra.dev](https://use-voltra.dev) for setup.
@@ -1,48 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MODULE_EXTENSIONS = exports.WIDGET_FAMILY_MAP = exports.DEFAULT_WIDGET_FAMILIES = exports.SUPPORTED_IMAGE_EXTENSIONS = exports.MAX_IMAGE_SIZE_BYTES = exports.DEFAULT_ANDROID_USER_IMAGES_PATH = exports.DEFAULT_USER_IMAGES_PATH = exports.IOS = void 0;
4
- /**
5
- * Constants for the Voltra plugin
6
- */
7
- // ============================================================================
8
- // iOS Constants
9
- // ============================================================================
10
- exports.IOS = {
11
- /** Minimum iOS deployment target version */
12
- DEPLOYMENT_TARGET: '17.0',
13
- /** Swift language version */
14
- SWIFT_VERSION: '5.0',
15
- /** Target device families (1 = iPhone, 2 = iPad) */
16
- DEVICE_FAMILY: '1,2',
17
- /** Last Swift migration version for Xcode */
18
- LAST_SWIFT_MIGRATION: 1250,
19
- };
20
- // ============================================================================
21
- // Path Constants
22
- // ============================================================================
23
- /** Default path for user-provided widget images */
24
- exports.DEFAULT_USER_IMAGES_PATH = './assets/voltra';
25
- /** Default path for user-provided Android widget images */
26
- exports.DEFAULT_ANDROID_USER_IMAGES_PATH = './assets/voltra-android';
27
- // ============================================================================
28
- // Widget Constants
29
- // ============================================================================
30
- /** Maximum image size in bytes for Live Activities (4KB limit) */
31
- exports.MAX_IMAGE_SIZE_BYTES = 4096;
32
- /** Supported image extensions for widget assets */
33
- exports.SUPPORTED_IMAGE_EXTENSIONS = /\.(png|jpg|jpeg)$/i;
34
- /** Default widget families when not specified */
35
- exports.DEFAULT_WIDGET_FAMILIES = ['systemSmall', 'systemMedium', 'systemLarge'];
36
- /** Maps JS widget family names to SwiftUI WidgetFamily enum cases */
37
- exports.WIDGET_FAMILY_MAP = {
38
- systemSmall: '.systemSmall',
39
- systemMedium: '.systemMedium',
40
- systemLarge: '.systemLarge',
41
- systemExtraLarge: '.systemExtraLarge',
42
- accessoryCircular: '.accessoryCircular',
43
- accessoryRectangular: '.accessoryRectangular',
44
- accessoryInline: '.accessoryInline',
45
- };
3
+ exports.MAX_IMAGE_SIZE_BYTES = exports.MODULE_EXTENSIONS = void 0;
46
4
  /** Extensions to try when resolving module paths for pre-rendering */
47
5
  exports.MODULE_EXTENSIONS = ['.ts', '.tsx', '.js', '.jsx', ''];
6
+ /** Maximum image size in bytes for widget / Live Activity assets (4KB limit) */
7
+ exports.MAX_IMAGE_SIZE_BYTES = 4096;
48
8
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AAEH,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAElE,QAAA,GAAG,GAAG;IACjB,4CAA4C;IAC5C,iBAAiB,EAAE,MAAM;IAEzB,6BAA6B;IAC7B,aAAa,EAAE,KAAK;IAEpB,oDAAoD;IACpD,aAAa,EAAE,KAAK;IAEpB,6CAA6C;IAC7C,oBAAoB,EAAE,IAAI;CAClB,CAAA;AAEV,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,mDAAmD;AACtC,QAAA,wBAAwB,GAAG,iBAAiB,CAAA;AAEzD,2DAA2D;AAC9C,QAAA,gCAAgC,GAAG,yBAAyB,CAAA;AAEzE,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,kEAAkE;AACrD,QAAA,oBAAoB,GAAG,IAAI,CAAA;AAExC,mDAAmD;AACtC,QAAA,0BAA0B,GAAG,oBAAoB,CAAA;AAE9D,iDAAiD;AACpC,QAAA,uBAAuB,GAAmB,CAAC,aAAa,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;AAErG,qEAAqE;AACxD,QAAA,iBAAiB,GAAiC;IAC7D,WAAW,EAAE,cAAc;IAC3B,YAAY,EAAE,eAAe;IAC7B,WAAW,EAAE,cAAc;IAC3B,gBAAgB,EAAE,mBAAmB;IACrC,iBAAiB,EAAE,oBAAoB;IACvC,oBAAoB,EAAE,uBAAuB;IAC7C,eAAe,EAAE,kBAAkB;CACpC,CAAA;AAED,sEAAsE;AACzD,QAAA,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACzD,QAAA,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;AAEnE,gFAAgF;AACnE,QAAA,oBAAoB,GAAG,IAAI,CAAA"}
@@ -1,72 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const config_plugins_1 = require("expo/config-plugins");
4
- const android_1 = require("./android");
5
- const constants_1 = require("./constants");
6
- const ios_1 = require("./ios");
7
- const ios_widget_1 = require("./ios-widget");
8
- const urlScheme_1 = require("./utils/urlScheme");
9
- const validation_1 = require("./validation");
10
- /**
11
- * Main Voltra config plugin.
12
- *
13
- * This plugin configures your Expo app for:
14
- * - Live Activities (Dynamic Island + Lock Screen)
15
- * - Home Screen Widgets (iOS and Android)
16
- * - Push Notifications for Live Activities (optional)
17
- */
18
- const withVoltra = (config, props = {}) => {
19
- // Validate props at entry point
20
- (0, validation_1.validateProps)(props);
21
- // Configure iOS if bundleIdentifier is available
22
- if (config.ios?.bundleIdentifier) {
23
- // Use deploymentTarget from props if provided, otherwise fall back to default
24
- const deploymentTarget = props.deploymentTarget || constants_1.IOS.DEPLOYMENT_TARGET;
25
- // Use custom targetName if provided, otherwise fall back to default "{AppName}LiveActivity"
26
- const targetName = props.targetName || `${config_plugins_1.IOSConfig.XcodeUtils.sanitizedName(config.name)}LiveActivity`;
27
- const bundleIdentifier = `${config.ios.bundleIdentifier}.${targetName}`;
28
- // Extract version and buildNumber from config, defaulting to Expo defaults
29
- const version = config.version || '1.0.0';
30
- const buildNumber = config.ios?.buildNumber || '1';
31
- // Ensure URL scheme is set for widget deep linking
32
- config = (0, urlScheme_1.ensureURLScheme)(config);
33
- // Derive a default keychainGroup from bundle identifier when any widget uses server-driven updates
34
- const hasServerDrivenWidgets = props?.widgets?.some((w) => w.serverUpdate) ?? false;
35
- const keychainGroup = props?.keychainGroup ??
36
- (hasServerDrivenWidgets ? `$(AppIdentifierPrefix)${config.ios?.bundleIdentifier}` : undefined);
37
- // Configure iOS main app (Info.plist, entitlements, EAS)
38
- config = (0, ios_1.withIOS)(config, {
39
- groupIdentifier: props?.groupIdentifier,
40
- widgetIds: props?.widgets && props.widgets.length > 0 ? props.widgets.map((w) => w.id) : undefined,
41
- widgets: props?.widgets,
42
- keychainGroup,
43
- });
44
- // Configure iOS widget extension (files, xcode, podfile, plist, eas)
45
- config = (0, ios_widget_1.withIOS)(config, {
46
- targetName,
47
- bundleIdentifier,
48
- deploymentTarget,
49
- widgets: props?.widgets,
50
- version,
51
- buildNumber,
52
- ...(props?.groupIdentifier ? { groupIdentifier: props.groupIdentifier } : {}),
53
- ...(keychainGroup ? { keychainGroup } : {}),
54
- ...(props?.fonts ? { fonts: props.fonts } : {}),
55
- });
56
- }
57
- // Apply Android configuration (files, manifest)
58
- if (props.android) {
59
- config = (0, android_1.withAndroid)(config, {
60
- enableNotifications: props.android.enableNotifications,
61
- widgets: props.android.widgets ?? [],
62
- ...(props?.fonts ? { fonts: props.fonts } : {}),
63
- });
64
- }
65
- // Optionally enable push notifications
66
- if (props.enablePushNotifications) {
67
- config = (0, ios_1.withPushNotifications)(config);
68
- }
69
- return config;
70
- };
71
- exports.default = withVoltra;
3
+ exports.widgetLabelEnglish = exports.isWidgetLocalizedMap = exports.prerenderWidgetState = exports.logger = exports.pickLocalizedValue = exports.normalizeLocaleTag = exports.resolveFontPaths = exports.addApplicationGroupsEntitlement = exports.validateWidgetLabel = exports.validateInitialStatePath = exports.validateHomeScreenWidgetId = exports.assertValidLocaleKey = exports.MODULE_EXTENSIONS = exports.MAX_IMAGE_SIZE_BYTES = void 0;
4
+ var constants_1 = require("./constants");
5
+ Object.defineProperty(exports, "MAX_IMAGE_SIZE_BYTES", { enumerable: true, get: function () { return constants_1.MAX_IMAGE_SIZE_BYTES; } });
6
+ Object.defineProperty(exports, "MODULE_EXTENSIONS", { enumerable: true, get: function () { return constants_1.MODULE_EXTENSIONS; } });
7
+ var validation_1 = require("./validation");
8
+ Object.defineProperty(exports, "assertValidLocaleKey", { enumerable: true, get: function () { return validation_1.assertValidLocaleKey; } });
9
+ Object.defineProperty(exports, "validateHomeScreenWidgetId", { enumerable: true, get: function () { return validation_1.validateHomeScreenWidgetId; } });
10
+ Object.defineProperty(exports, "validateInitialStatePath", { enumerable: true, get: function () { return validation_1.validateInitialStatePath; } });
11
+ Object.defineProperty(exports, "validateWidgetLabel", { enumerable: true, get: function () { return validation_1.validateWidgetLabel; } });
12
+ var entitlements_1 = require("./utils/entitlements");
13
+ Object.defineProperty(exports, "addApplicationGroupsEntitlement", { enumerable: true, get: function () { return entitlements_1.addApplicationGroupsEntitlement; } });
14
+ var fonts_1 = require("./utils/fonts");
15
+ Object.defineProperty(exports, "resolveFontPaths", { enumerable: true, get: function () { return fonts_1.resolveFontPaths; } });
16
+ var localePick_1 = require("./utils/localePick");
17
+ Object.defineProperty(exports, "normalizeLocaleTag", { enumerable: true, get: function () { return localePick_1.normalizeLocaleTag; } });
18
+ Object.defineProperty(exports, "pickLocalizedValue", { enumerable: true, get: function () { return localePick_1.pickLocalizedValue; } });
19
+ var logger_1 = require("./utils/logger");
20
+ Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return logger_1.logger; } });
21
+ var prerender_1 = require("./utils/prerender");
22
+ Object.defineProperty(exports, "prerenderWidgetState", { enumerable: true, get: function () { return prerender_1.prerenderWidgetState; } });
23
+ var widgetLabel_1 = require("./utils/widgetLabel");
24
+ Object.defineProperty(exports, "isWidgetLocalizedMap", { enumerable: true, get: function () { return widgetLabel_1.isWidgetLocalizedMap; } });
25
+ Object.defineProperty(exports, "widgetLabelEnglish", { enumerable: true, get: function () { return widgetLabel_1.widgetLabelEnglish; } });
72
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAAqE;AAA5D,iHAAA,oBAAoB,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AAEhD,2CAKqB;AAJnB,kHAAA,oBAAoB,OAAA;AACpB,wHAAA,0BAA0B,OAAA;AAC1B,sHAAA,wBAAwB,OAAA;AACxB,iHAAA,mBAAmB,OAAA;AAErB,qDAAsE;AAA7D,+HAAA,+BAA+B,OAAA;AACxC,uCAAgD;AAAvC,yGAAA,gBAAgB,OAAA;AACzB,iDAA2E;AAAlE,gHAAA,kBAAkB,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AAC/C,yCAAuC;AAA9B,gGAAA,MAAM,OAAA;AAEf,+CAAwD;AAA/C,iHAAA,oBAAoB,OAAA;AAC7B,mDAA8E;AAArE,mHAAA,oBAAoB,OAAA;AAAE,iHAAA,kBAAkB,OAAA"}
@@ -1,3 +1,7 @@
1
1
  "use strict";
2
+ /**
3
+ * Types shared by iOS and Android Voltra config plugins.
4
+ * Platform widget config types live in each client's expo-plugin package.
5
+ */
2
6
  Object.defineProperty(exports, "__esModule", { value: true });
3
7
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeLocaleTag = normalizeLocaleTag;
4
+ exports.pickLocalizedValue = pickLocalizedValue;
5
+ /**
6
+ * Picks a localized string value from a locale-keyed map using the same fallback rules as iOS/Android runtimes:
7
+ * preferred language tags (full match, then language-only), then `en`, then `__default`, then first value.
8
+ */
9
+ function normalizeLocaleTag(tag) {
10
+ return tag.trim().toLowerCase().replace(/_/g, '-');
11
+ }
12
+ function pickLocalizedValue(perLocale, preferredLanguages) {
13
+ const entries = Object.entries(perLocale).filter(([, v]) => typeof v === 'string' && v.length > 0);
14
+ if (entries.length === 0) {
15
+ return undefined;
16
+ }
17
+ const byNorm = new Map();
18
+ for (const [k, v] of entries) {
19
+ byNorm.set(normalizeLocaleTag(k), v);
20
+ }
21
+ const DEFAULT_KEY = '__default';
22
+ for (const pref of preferredLanguages) {
23
+ const n = normalizeLocaleTag(pref);
24
+ const direct = byNorm.get(n);
25
+ if (direct !== undefined) {
26
+ return direct;
27
+ }
28
+ const lang = n.split('-')[0] ?? n;
29
+ for (const [key, val] of entries) {
30
+ const kn = normalizeLocaleTag(key);
31
+ const keyLang = kn.split('-')[0] ?? kn;
32
+ if (keyLang === lang) {
33
+ return val;
34
+ }
35
+ }
36
+ }
37
+ const en = byNorm.get('en') ?? entries.find(([k]) => normalizeLocaleTag(k) === 'en')?.[1];
38
+ if (en !== undefined) {
39
+ return en;
40
+ }
41
+ const defaultVal = byNorm.get(DEFAULT_KEY) ?? entries.find(([k]) => k === DEFAULT_KEY)?.[1];
42
+ if (defaultVal !== undefined) {
43
+ return defaultVal;
44
+ }
45
+ const sorted = [...entries].sort(([a], [b]) => a.localeCompare(b));
46
+ return sorted[0]?.[1];
47
+ }
48
+ //# sourceMappingURL=localePick.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localePick.js","sourceRoot":"","sources":["../../../src/utils/localePick.ts"],"names":[],"mappings":";;AAIA,gDAEC;AAED,gDA4CC;AApDD;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,GAAW;IAC5C,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AACpD,CAAC;AAED,SAAgB,kBAAkB,CAChC,SAAiC,EACjC,kBAA4B;IAE5B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAClG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAA;IAE/B,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAClC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC5B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,MAAM,CAAA;QACf,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACjC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;YACjC,MAAM,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;YAClC,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACtC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,OAAO,GAAG,CAAA;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACzF,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC3F,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IAClE,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACvB,CAAC"}
@@ -42,6 +42,7 @@ const node_path_1 = __importDefault(require("node:path"));
42
42
  const node_vm_1 = __importDefault(require("node:vm"));
43
43
  const babel = __importStar(require("@babel/core"));
44
44
  const constants_1 = require("../constants");
45
+ const widgetLabel_1 = require("./widgetLabel");
45
46
  /**
46
47
  * Check if a module specifier is a relative or absolute path (local file)
47
48
  */
@@ -165,7 +166,7 @@ function evaluateWidgetModule(projectRoot, filePath) {
165
166
  * @param widgets - Array of widget configurations
166
167
  * @param projectRoot - Root directory of the Expo project
167
168
  * @param renderer - The renderer function to use (voltra/server or voltra/android/server)
168
- * @returns Map of widgetId -> prerendered widget state as JSON string
169
+ * @returns Map of widgetId -> (locale key -> prerendered JSON string)
169
170
  */
170
171
  async function prerenderWidgetState(widgets, projectRoot, renderer) {
171
172
  const prerenderedStates = new Map();
@@ -173,17 +174,22 @@ async function prerenderWidgetState(widgets, projectRoot, renderer) {
173
174
  if (!widget.initialStatePath) {
174
175
  continue;
175
176
  }
177
+ const pathSpec = widget.initialStatePath;
178
+ const perLocalePaths = (0, widgetLabel_1.isWidgetLocalizedMap)(pathSpec)
179
+ ? pathSpec
180
+ : { __default: pathSpec };
181
+ const inner = new Map();
176
182
  try {
177
- // Resolve the absolute path to the widget file
178
- const absoluteWidgetPath = node_path_1.default.resolve(projectRoot, widget.initialStatePath);
179
- // Evaluate the module (transpiles with Babel and executes in VM)
180
- const widgetVariants = evaluateWidgetModule(projectRoot, absoluteWidgetPath);
181
- // Render the widget variants to a JSON string
182
- const prerenderedState = renderer(widgetVariants);
183
- prerenderedStates.set(widget.id, prerenderedState);
183
+ for (const [localeKey, relativePath] of Object.entries(perLocalePaths)) {
184
+ const absoluteWidgetPath = node_path_1.default.resolve(projectRoot, relativePath);
185
+ const widgetVariants = evaluateWidgetModule(projectRoot, absoluteWidgetPath);
186
+ const prerenderedState = renderer(widgetVariants);
187
+ inner.set(localeKey, prerenderedState);
188
+ }
189
+ prerenderedStates.set(widget.id, inner);
184
190
  }
185
191
  catch (error) {
186
- throw new Error(`Failed to prerender widget state for ${widget.id} (${widget.initialStatePath}): ${error instanceof Error ? error.message : String(error)}`);
192
+ throw new Error(`Failed to prerender widget state for ${widget.id}: ${error instanceof Error ? error.message : String(error)}`);
187
193
  }
188
194
  }
189
195
  return prerenderedStates;
@@ -1 +1 @@
1
- {"version":3,"file":"prerender.js","sourceRoot":"","sources":["../../../src/utils/prerender.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prerender.js","sourceRoot":"","sources":["../../../src/utils/prerender.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isWidgetLocalizedMap = isWidgetLocalizedMap;
4
+ exports.widgetLabelEnglish = widgetLabelEnglish;
5
+ const localePick_1 = require("./localePick");
6
+ function isWidgetLocalizedMap(label) {
7
+ return typeof label === 'object' && label !== null && !Array.isArray(label);
8
+ }
9
+ /**
10
+ * Development / fallback English copy for LocalizedStringResource.defaultValue.
11
+ * Prefers `en`, then `en-*`, then default fallback order from locale picking.
12
+ */
13
+ function widgetLabelEnglish(label) {
14
+ if (!isWidgetLocalizedMap(label)) {
15
+ return label;
16
+ }
17
+ return (0, localePick_1.pickLocalizedValue)(label, ['en']) ?? '';
18
+ }
19
+ //# sourceMappingURL=widgetLabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widgetLabel.js","sourceRoot":"","sources":["../../../src/utils/widgetLabel.ts"],"names":[],"mappings":";;AAIA,oDAEC;AAMD,gDAMC;AAhBD,6CAAiD;AAEjD,SAAgB,oBAAoB,CAAC,KAAkB;IACrD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,KAAkB;IACnD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,IAAA,+BAAkB,EAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;AAChD,CAAC"}