@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
@@ -1 +0,0 @@
1
- {"version":3,"file":"kotlin.js","sourceRoot":"","sources":["../../../../src/android/files/kotlin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,0DAoBC;AAvCD,oDAA2B;AAC3B,uCAAwB;AACxB,2CAA4B;AAU5B,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E;;GAEG;AACI,KAAK,UAAU,uBAAuB,CAAC,KAA+B;IAC3E,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IAE3D,wEAAwE;IACxE,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;IAErG,qCAAqC;IACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,4CAA4C;IAC5C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,gBAAgB,MAAM,CAAC,EAAE,UAAU,CAAA;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,KAAK,CAAC,CAAA;QACxD,MAAM,OAAO,GAAG,2BAA2B,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QAEhE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IAC7C,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;;GAGG;AACH,SAAS,2BAA2B,CAAC,MAA2B,EAAE,WAAmB;IACnF,MAAM,SAAS,GAAG,gBAAgB,MAAM,CAAC,EAAE,UAAU,CAAA;IAErD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,KAAK,IAAI,CAAA;QAC3D,wEAAwE;QACxE,OAAO,IAAA,gBAAM,EAAA;gBACD,WAAW;;;;;;;;8CAQmB,MAAM,CAAC,WAAW;sBAC1C,MAAM,CAAC,EAAE;0BACL,MAAM,CAAC,YAAY,CAAC,GAAG,WAAW,MAAM,CAAC,YAAY,CAAC,eAAe,IAAI,EAAE;2BAC1E,cAAc;;cAE3B,SAAS;6CACsB,MAAM,CAAC,EAAE;;;;;;;;gCAQtB,MAAM,CAAC,EAAE;iCACR,MAAM,CAAC,YAAY,CAAC,GAAG;sCAClB,MAAM,CAAC,YAAY,CAAC,eAAe,IAAI,EAAE;qCAC1C,cAAc;;;;;;;;;;+EAU4B,MAAM,CAAC,EAAE;;;;;;;;;;;KAWnF,CAAA;IACH,CAAC;IAED,yCAAyC;IACzC,OAAO,IAAA,gBAAM,EAAA;cACD,WAAW;;;;;4CAKmB,MAAM,CAAC,WAAW;oBAC1C,MAAM,CAAC,EAAE;;YAEjB,SAAS;2CACsB,MAAM,CAAC,EAAE;;GAEjD,CAAA;AACH,CAAC"}
@@ -1,247 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.generateWidgetInfoFiles = generateWidgetInfoFiles;
40
- exports.generateWidgetPlaceholderLayouts = generateWidgetPlaceholderLayouts;
41
- exports.generateWidgetPreviewLayouts = generateWidgetPreviewLayouts;
42
- const dedent_1 = __importDefault(require("dedent"));
43
- const fs = __importStar(require("fs"));
44
- const path = __importStar(require("path"));
45
- const logger_1 = require("../../utils/logger");
46
- // ============================================================================
47
- // Main Functions
48
- // ============================================================================
49
- /**
50
- * Generates widget info XML files for all widgets
51
- */
52
- async function generateWidgetInfoFiles(props) {
53
- const { platformProjectRoot, widgets } = props;
54
- const xmlPath = path.join(platformProjectRoot, 'app', 'src', 'main', 'res', 'xml');
55
- const valuesPath = path.join(platformProjectRoot, 'app', 'src', 'main', 'res', 'values');
56
- // Ensure directories exist
57
- if (!fs.existsSync(xmlPath)) {
58
- fs.mkdirSync(xmlPath, { recursive: true });
59
- }
60
- if (!fs.existsSync(valuesPath)) {
61
- fs.mkdirSync(valuesPath, { recursive: true });
62
- }
63
- // Generate string resources for all widgets
64
- const stringsPath = path.join(valuesPath, 'voltra_widgets.xml');
65
- const stringsContent = generateStringResourcesXml(widgets);
66
- fs.writeFileSync(stringsPath, stringsContent, 'utf8');
67
- }
68
- /**
69
- * Generates placeholder layout XML
70
- */
71
- async function generateWidgetPlaceholderLayouts(props) {
72
- const layoutPath = path.join(props.platformProjectRoot, 'app', 'src', 'main', 'res', 'layout');
73
- if (!fs.existsSync(layoutPath)) {
74
- fs.mkdirSync(layoutPath, { recursive: true });
75
- }
76
- const placeholderLayoutPath = path.join(layoutPath, 'voltra_widget_placeholder.xml');
77
- const placeholderLayoutContent = generatePlaceholderLayoutXml();
78
- fs.writeFileSync(placeholderLayoutPath, placeholderLayoutContent, 'utf8');
79
- }
80
- /**
81
- * Generates preview layouts for widgets
82
- */
83
- async function generateWidgetPreviewLayouts(props) {
84
- const { platformProjectRoot, projectRoot, widgets, previewImageMap } = props;
85
- const layoutPath = path.join(platformProjectRoot, 'app', 'src', 'main', 'res', 'layout');
86
- const xmlPath = path.join(platformProjectRoot, 'app', 'src', 'main', 'res', 'xml');
87
- if (!fs.existsSync(layoutPath)) {
88
- fs.mkdirSync(layoutPath, { recursive: true });
89
- }
90
- // Generate preview layouts and get the map
91
- const previewLayoutMap = await generatePreviewLayouts(widgets, projectRoot, layoutPath, previewImageMap);
92
- // Write widget info XML for all widgets, including preview references where available
93
- for (const widget of widgets) {
94
- const widgetInfoPath = path.join(xmlPath, `voltra_widget_${widget.id}_info.xml`);
95
- const previewImageResourceName = previewImageMap.get(widget.id);
96
- const previewLayoutResourceName = previewLayoutMap.get(widget.id);
97
- const widgetInfoContent = generateWidgetInfoXml(widget, previewImageResourceName, previewLayoutResourceName);
98
- fs.writeFileSync(widgetInfoPath, widgetInfoContent, 'utf8');
99
- }
100
- }
101
- // ============================================================================
102
- // Widget Info XML
103
- // ============================================================================
104
- /**
105
- * Generates widget provider info XML for a single widget
106
- */
107
- function generateWidgetInfoXml(widget, previewImageResourceName, previewLayoutResourceName) {
108
- const { targetCellWidth, targetCellHeight } = widget;
109
- const resizeMode = widget.resizeMode || 'horizontal|vertical';
110
- const widgetCategory = widget.widgetCategory || 'home_screen';
111
- let minWidth = widget.minWidth;
112
- if (minWidth === undefined && widget.minCellWidth !== undefined) {
113
- minWidth = widget.minCellWidth * 70 - 30;
114
- }
115
- let minHeight = widget.minHeight;
116
- if (minHeight === undefined && widget.minCellHeight !== undefined) {
117
- minHeight = widget.minCellHeight * 70 - 30;
118
- }
119
- const minWidthAttr = minWidth !== undefined ? `\n android:minWidth="${minWidth}dp"` : '';
120
- const minHeightAttr = minHeight !== undefined ? `\n android:minHeight="${minHeight}dp"` : '';
121
- const previewImageAttr = previewImageResourceName
122
- ? `\n android:previewImage="@drawable/${previewImageResourceName}"`
123
- : '';
124
- const previewLayoutAttr = previewLayoutResourceName
125
- ? `\n android:previewLayout="@layout/${previewLayoutResourceName}"`
126
- : '';
127
- return (0, dedent_1.default) `
128
- <?xml version="1.0" encoding="utf-8"?>
129
- <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"${minWidthAttr}${minHeightAttr}
130
- android:targetCellWidth="${targetCellWidth}"
131
- android:targetCellHeight="${targetCellHeight}"
132
- android:updatePeriodMillis="0"
133
- android:initialLayout="@layout/voltra_widget_placeholder"
134
- android:resizeMode="${resizeMode}"
135
- android:widgetCategory="${widgetCategory}"
136
- android:description="@string/voltra_widget_${widget.id}_description"${previewImageAttr}${previewLayoutAttr}>
137
- </appwidget-provider>
138
- `;
139
- }
140
- // ============================================================================
141
- // String Resources XML
142
- // ============================================================================
143
- /**
144
- * Generates string resources for widget display names and descriptions
145
- */
146
- function generateStringResourcesXml(widgets) {
147
- const stringEntries = widgets
148
- .map((widget) => `<string name="voltra_widget_${widget.id}_label">${widget.displayName}</string>\n <string name="voltra_widget_${widget.id}_description">${widget.description}</string>`)
149
- .join('\n ');
150
- return (0, dedent_1.default) `
151
- <?xml version="1.0" encoding="utf-8"?>
152
- <resources>
153
- <!-- Voltra Widget Labels and Descriptions (Auto-generated) -->
154
- ${stringEntries}
155
- </resources>
156
- `;
157
- }
158
- // ============================================================================
159
- // Placeholder Layout XML
160
- // ============================================================================
161
- /**
162
- * Generates placeholder layout XML for widgets
163
- * This will be replaced by Glance at runtime
164
- */
165
- function generatePlaceholderLayoutXml() {
166
- return (0, dedent_1.default) `
167
- <?xml version="1.0" encoding="utf-8"?>
168
- <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
169
- android:layout_width="match_parent"
170
- android:layout_height="match_parent"
171
- android:background="?android:attr/colorBackground">
172
- <TextView
173
- android:layout_width="wrap_content"
174
- android:layout_height="wrap_content"
175
- android:layout_gravity="center"
176
- android:text="Loading..."
177
- android:textColor="?android:attr/textColorPrimary" />
178
- </FrameLayout>
179
- `;
180
- }
181
- // ============================================================================
182
- // Preview Layout
183
- // ============================================================================
184
- /**
185
- * Generates an auto-layout XML for image-based preview.
186
- * This is used when previewImage is provided but no custom previewLayout.
187
- */
188
- function generateAutoImagePreviewLayout(widgetId, drawableResourceName) {
189
- return (0, dedent_1.default) `
190
- <?xml version="1.0" encoding="utf-8"?>
191
- <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
192
- android:layout_width="match_parent"
193
- android:layout_height="match_parent">
194
- <ImageView
195
- android:layout_width="match_parent"
196
- android:layout_height="match_parent"
197
- android:src="@drawable/${drawableResourceName}"
198
- android:scaleType="centerCrop"
199
- android:contentDescription="@string/voltra_widget_${widgetId}_description" />
200
- </FrameLayout>
201
- `;
202
- }
203
- /**
204
- * Generates preview layout XML files for all widgets.
205
- * Returns a map of widgetId to layout resource name.
206
- *
207
- * Strategy:
208
- * - If previewLayout is provided: copy user's custom XML
209
- * - Else if previewImage is provided: generate auto-layout with ImageView
210
- * - Otherwise: no preview layout generated
211
- */
212
- async function generatePreviewLayouts(widgets, projectRoot, layoutPath, previewImageMap) {
213
- const previewLayoutMap = new Map();
214
- // Ensure layout directory exists
215
- if (!fs.existsSync(layoutPath)) {
216
- fs.mkdirSync(layoutPath, { recursive: true });
217
- }
218
- for (const widget of widgets) {
219
- let layoutContent = null;
220
- const layoutResourceName = `voltra_widget_${widget.id}_preview`;
221
- const layoutFilePath = path.join(layoutPath, `${layoutResourceName}.xml`);
222
- // Strategy 1: User provided custom preview layout
223
- if (widget.previewLayout) {
224
- const sourcePath = path.join(projectRoot, widget.previewLayout);
225
- if (!fs.existsSync(sourcePath)) {
226
- logger_1.logger.warn(`Preview layout not found for widget '${widget.id}' at ${widget.previewLayout}`);
227
- continue;
228
- }
229
- // Copy user's custom XML
230
- layoutContent = fs.readFileSync(sourcePath, 'utf8');
231
- logger_1.logger.info(`Using custom preview layout for widget '${widget.id}'`);
232
- }
233
- // Strategy 2: Auto-generate layout from preview image
234
- else if (widget.previewImage && previewImageMap.has(widget.id)) {
235
- const drawableResourceName = previewImageMap.get(widget.id);
236
- layoutContent = generateAutoImagePreviewLayout(widget.id, drawableResourceName);
237
- logger_1.logger.info(`Generated auto preview layout for widget '${widget.id}' from preview image`);
238
- }
239
- // Write layout file if we have content
240
- if (layoutContent) {
241
- fs.writeFileSync(layoutFilePath, layoutContent, 'utf8');
242
- previewLayoutMap.set(widget.id, layoutResourceName);
243
- }
244
- }
245
- return previewLayoutMap;
246
- }
247
- //# sourceMappingURL=xml.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xml.js","sourceRoot":"","sources":["../../../../src/android/files/xml.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withAndroid = void 0;
4
- const config_plugins_1 = require("@expo/config-plugins");
5
- const validation_1 = require("../validation");
6
- const files_1 = require("./files");
7
- const manifest_1 = require("./manifest");
8
- /**
9
- * Main Android configuration plugin.
10
- *
11
- * This orchestrates all Android-related configuration in the correct order:
12
- * 1. Validate widget configurations with file existence checks
13
- * 2. Generate widget files (Kotlin receivers, XML metadata, resources)
14
- * 3. Configure AndroidManifest (receiver entries)
15
- */
16
- const withAndroid = (config, props) => {
17
- const { enableNotifications, widgets, userImagesPath, fonts } = props;
18
- if (!config.android?.package) {
19
- throw new Error('Voltra config plugin requires expo.android.package to be set in app.json/app.config.* to configure Android widgets.');
20
- }
21
- // Get project root from modRequest if available, otherwise validation will skip file checks
22
- const projectRoot = config.modRequest?.projectRoot;
23
- // Validate Android widgets with file existence checks
24
- widgets.forEach((widget) => (0, validation_1.validateAndroidWidgetConfig)(widget, projectRoot));
25
- return (0, config_plugins_1.withPlugins)(config, [
26
- // 1. Generate widget files (must run first so files exist)
27
- [files_1.generateAndroidWidgetFiles, { widgets, userImagesPath, fonts }],
28
- // 2. Configure AndroidManifest (must run after files are generated)
29
- [manifest_1.configureAndroidManifest, { enableNotifications, widgets }],
30
- ]);
31
- };
32
- exports.withAndroid = withAndroid;
33
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/android/index.ts"],"names":[],"mappings":";;;AAAA,yDAAgE;AAGhE,8CAA2D;AAC3D,mCAAoD;AACpD,yCAAqD;AAErD;;;;;;;GAOG;AACI,MAAM,WAAW,GAAqC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;IAC7E,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IAErE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,qHAAqH,CACtH,CAAA;IACH,CAAC;IAED,4FAA4F;IAC5F,MAAM,WAAW,GAAI,MAAc,CAAC,UAAU,EAAE,WAAW,CAAA;IAE3D,sDAAsD;IACtD,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,wCAA2B,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;IAE7E,OAAO,IAAA,4BAAW,EAAC,MAAM,EAAE;QACzB,2DAA2D;QAC3D,CAAC,kCAA0B,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;QAEhE,oEAAoE;QACpE,CAAC,mCAAwB,EAAE,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC;KAC7D,CAAC,CAAA;AACJ,CAAC,CAAA;AAtBY,QAAA,WAAW,eAsBvB"}
@@ -1,92 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.configureAndroidManifest = void 0;
4
- const config_plugins_1 = require("@expo/config-plugins");
5
- const config_plugins_2 = require("expo/config-plugins");
6
- /**
7
- * Plugin step that adds widget receiver entries to AndroidManifest.xml
8
- *
9
- * This adds a <receiver> entry for each widget with:
10
- * - The generated receiver class name
11
- * - APPWIDGET_UPDATE intent filter
12
- * - Widget provider metadata reference
13
- */
14
- const configureAndroidManifest = (config, props) => {
15
- const { enableNotifications, widgets } = props;
16
- return (0, config_plugins_1.withAndroidManifest)(config, (config) => {
17
- const mainApplication = config_plugins_2.AndroidConfig.Manifest.getMainApplicationOrThrow(config.modResults);
18
- const usesPermissions = (config.modResults.manifest['uses-permission'] || []);
19
- const ensurePermission = (permissionName) => {
20
- const exists = usesPermissions.some((permission) => permission.$?.['android:name'] === permissionName);
21
- if (!exists) {
22
- usesPermissions.push({
23
- $: {
24
- 'android:name': permissionName,
25
- },
26
- });
27
- }
28
- };
29
- if (enableNotifications) {
30
- ensurePermission('android.permission.POST_NOTIFICATIONS');
31
- ensurePermission('android.permission.POST_PROMOTED_NOTIFICATIONS');
32
- }
33
- config.modResults.manifest['uses-permission'] = usesPermissions;
34
- const existingReceivers = (mainApplication.receiver || []);
35
- const ongoingNotificationReceiverName = 'voltra.VoltraOngoingNotificationDismissedReceiver';
36
- if (enableNotifications) {
37
- const hasOngoingNotificationReceiver = existingReceivers.some((receiver) => receiver.$?.['android:name'] === ongoingNotificationReceiverName);
38
- if (!hasOngoingNotificationReceiver) {
39
- existingReceivers.push({
40
- $: {
41
- 'android:name': ongoingNotificationReceiverName,
42
- 'android:exported': 'false',
43
- },
44
- });
45
- mainApplication.receiver = existingReceivers;
46
- }
47
- }
48
- // Add a receiver for each widget
49
- for (const widget of widgets) {
50
- const receiverClassName = `.widget.VoltraWidget_${widget.id}Receiver`;
51
- // Check if receiver already exists
52
- const alreadyExists = existingReceivers.some((receiver) => receiver.$?.['android:name'] === receiverClassName);
53
- if (!alreadyExists) {
54
- // Create the receiver entry
55
- const receiver = {
56
- $: {
57
- 'android:name': receiverClassName,
58
- 'android:exported': 'true',
59
- 'android:label': `@string/voltra_widget_${widget.id}_label`,
60
- },
61
- 'intent-filter': [
62
- {
63
- action: [
64
- {
65
- $: {
66
- 'android:name': 'android.appwidget.action.APPWIDGET_UPDATE',
67
- },
68
- },
69
- ],
70
- },
71
- ],
72
- 'meta-data': [
73
- {
74
- $: {
75
- 'android:name': 'android.appwidget.provider',
76
- 'android:resource': `@xml/voltra_widget_${widget.id}_info`,
77
- },
78
- },
79
- ],
80
- };
81
- // Add the receiver to the application
82
- if (!mainApplication.receiver) {
83
- mainApplication.receiver = [];
84
- }
85
- mainApplication.receiver.push(receiver);
86
- }
87
- }
88
- return config;
89
- });
90
- };
91
- exports.configureAndroidManifest = configureAndroidManifest;
92
- //# sourceMappingURL=manifest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/android/manifest.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.configureEas = void 0;
4
- const entitlements_1 = require("../utils/entitlements");
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
- const configureEas = (config, props = {}) => {
12
- if (!props.groupIdentifier) {
13
- // No group identifier provided, skip EAS configuration
14
- return config;
15
- }
16
- // Ensure ios.entitlements exists in config for EAS to detect
17
- if (!config.ios) {
18
- config.ios = {};
19
- }
20
- if (!config.ios.entitlements) {
21
- config.ios.entitlements = {};
22
- }
23
- // Add app groups entitlement for EAS
24
- (0, entitlements_1.addApplicationGroupsEntitlement)(config.ios.entitlements, props.groupIdentifier);
25
- return config;
26
- };
27
- exports.configureEas = configureEas;
28
- //# sourceMappingURL=eas.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eas.js","sourceRoot":"","sources":["../../../src/ios/eas.ts"],"names":[],"mappings":";;;AAEA,wDAAuE;AAMvE;;;;;GAKG;AACI,MAAM,YAAY,GAAoC,CAAC,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE;IAClF,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAC3B,uDAAuD;QACvD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,6DAA6D;IAC7D,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,GAAG,EAAE,CAAA;IACjB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,YAAY,GAAG,EAAE,CAAA;IAC9B,CAAC;IAED,qCAAqC;IACrC,IAAA,8CAA+B,EAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,eAAe,CAAC,CAAA;IAE/E,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAlBY,QAAA,YAAY,gBAkBxB"}
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.configureEntitlements = void 0;
4
- const entitlements_1 = require("../utils/entitlements");
5
- /**
6
- * Configures main app entitlements for app groups and keychain sharing.
7
- *
8
- * This adds:
9
- * - com.apple.security.application-groups entitlement for data sharing
10
- * - keychain-access-groups entitlement for shared credential access (if keychainGroup provided)
11
- */
12
- const configureEntitlements = (config, props = {}) => {
13
- if (!props.groupIdentifier && !props.keychainGroup) {
14
- // Nothing to configure
15
- return config;
16
- }
17
- if (!config.ios) {
18
- config.ios = {};
19
- }
20
- if (!config.ios.entitlements) {
21
- config.ios.entitlements = {};
22
- }
23
- if (props.groupIdentifier) {
24
- (0, entitlements_1.addApplicationGroupsEntitlement)(config.ios.entitlements, props.groupIdentifier);
25
- }
26
- if (props.keychainGroup) {
27
- addKeychainAccessGroupEntitlement(config.ios.entitlements, props.keychainGroup);
28
- }
29
- return config;
30
- };
31
- exports.configureEntitlements = configureEntitlements;
32
- /**
33
- * Adds keychain-access-groups entitlement to an entitlements object.
34
- * Ensures the group list is deduped and preserves existing order.
35
- */
36
- function addKeychainAccessGroupEntitlement(entitlements, keychainGroup) {
37
- const existingGroups = (entitlements['keychain-access-groups'] ?? []).filter(Boolean);
38
- const deduped = Array.from(new Set(existingGroups));
39
- if (deduped.includes(keychainGroup)) {
40
- entitlements['keychain-access-groups'] = deduped;
41
- return entitlements;
42
- }
43
- entitlements['keychain-access-groups'] = [...deduped, keychainGroup];
44
- return entitlements;
45
- }
46
- //# sourceMappingURL=entitlements.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entitlements.js","sourceRoot":"","sources":["../../../src/ios/entitlements.ts"],"names":[],"mappings":";;;AAEA,wDAAuE;AAOvE;;;;;;GAMG;AACI,MAAM,qBAAqB,GAA6C,CAAC,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE;IACpG,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACnD,uBAAuB;QACvB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,GAAG,EAAE,CAAA;IACjB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,YAAY,GAAG,EAAE,CAAA;IAC9B,CAAC;IAED,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,IAAA,8CAA+B,EAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,eAAe,CAAC,CAAA;IACjF,CAAC;IAED,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,iCAAiC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IACjF,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAtBY,QAAA,qBAAqB,yBAsBjC;AAED;;;GAGG;AACH,SAAS,iCAAiC,CACxC,YAAiC,EACjC,aAAqB;IAErB,MAAM,cAAc,GAAG,CAAE,YAAY,CAAC,wBAAwB,CAAc,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACnG,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAA;IAEnD,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,YAAY,CAAC,wBAAwB,CAAC,GAAG,OAAO,CAAA;QAChD,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,YAAY,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,aAAa,CAAC,CAAA;IACpE,OAAO,YAAY,CAAA;AACrB,CAAC"}
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withPushNotifications = void 0;
4
- exports.withIOS = withIOS;
5
- const eas_1 = require("./eas");
6
- const entitlements_1 = require("./entitlements");
7
- const infoPlist_1 = require("./infoPlist");
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
- function withIOS(config, props) {
18
- // Configure Info.plist
19
- config = (0, infoPlist_1.configureInfoPlist)(config, {
20
- groupIdentifier: props.groupIdentifier,
21
- widgetIds: props.widgetIds,
22
- widgets: props.widgets,
23
- keychainGroup: props.keychainGroup,
24
- });
25
- // Configure entitlements
26
- config = (0, entitlements_1.configureEntitlements)(config, {
27
- groupIdentifier: props.groupIdentifier,
28
- keychainGroup: props.keychainGroup,
29
- });
30
- // Configure EAS
31
- config = (0, eas_1.configureEas)(config, {
32
- groupIdentifier: props.groupIdentifier,
33
- });
34
- return config;
35
- }
36
- // Re-export for convenience
37
- var pushNotifications_1 = require("./pushNotifications");
38
- Object.defineProperty(exports, "withPushNotifications", { enumerable: true, get: function () { return pushNotifications_1.withPushNotifications; } });
39
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ios/index.ts"],"names":[],"mappings":";;;AAsBA,0BAqBC;AAzCD,+BAAoC;AACpC,iDAAsD;AACtD,2CAAgD;AAShD;;;;;;;;GAQG;AACH,SAAgB,OAAO,CAAC,MAAkB,EAAE,KAAqB;IAC/D,uBAAuB;IACvB,MAAM,GAAG,IAAA,8BAAkB,EAAC,MAAM,EAAE;QAClC,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAC,CAAA;IAEF,yBAAyB;IACzB,MAAM,GAAG,IAAA,oCAAqB,EAAC,MAAM,EAAE;QACrC,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAC,CAAA;IAEF,gBAAgB;IAChB,MAAM,GAAG,IAAA,kBAAY,EAAC,MAAM,EAAE;QAC5B,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,4BAA4B;AAC5B,yDAA2D;AAAlD,0HAAA,qBAAqB,OAAA"}
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.configureInfoPlist = void 0;
4
- const config_plugins_1 = require("@expo/config-plugins");
5
- /**
6
- * Configures main app Info.plist for Live Activities and widgets.
7
- *
8
- * This adds:
9
- * - NSSupportsLiveActivities: Enables Live Activities support
10
- * - Voltra_AppGroupIdentifier: App group ID for widget communication (if provided)
11
- * - Voltra_WidgetIds: Array of widget IDs for native module access (if provided)
12
- * - Voltra_WidgetServerUrls: Map of widget IDs to server URLs (if any widgets have serverUpdate)
13
- * - Voltra_WidgetServerIntervals: Map of widget IDs to update intervals (if any widgets have serverUpdate)
14
- * - Voltra_KeychainGroup: Keychain access group for shared credentials (if provided)
15
- */
16
- const configureInfoPlist = (config, props = {}) => {
17
- return (0, config_plugins_1.withInfoPlist)(config, (mod) => {
18
- mod.modResults.NSSupportsLiveActivities = true;
19
- mod.modResults.NSSupportsLiveActivitiesFrequentUpdates = false;
20
- // Only add group identifier if provided
21
- if (props.groupIdentifier) {
22
- mod.modResults.Voltra_AppGroupIdentifier = props.groupIdentifier;
23
- }
24
- // Store widget IDs in Info.plist for native module to access
25
- if (props.widgetIds && props.widgetIds.length > 0) {
26
- mod.modResults.Voltra_WidgetIds = props.widgetIds;
27
- }
28
- // Configure server update URLs and intervals for widgets
29
- if (props.widgets && props.widgets.length > 0) {
30
- const serverUrls = {};
31
- const serverIntervals = {};
32
- for (const widget of props.widgets) {
33
- if (widget.serverUpdate) {
34
- serverUrls[widget.id] = widget.serverUpdate.url;
35
- serverIntervals[widget.id] = widget.serverUpdate.intervalMinutes ?? 15;
36
- }
37
- }
38
- if (Object.keys(serverUrls).length > 0) {
39
- mod.modResults.Voltra_WidgetServerUrls = serverUrls;
40
- mod.modResults.Voltra_WidgetServerIntervals = serverIntervals;
41
- }
42
- }
43
- // Store Keychain group identifier for shared credential access
44
- if (props.keychainGroup) {
45
- mod.modResults.Voltra_KeychainGroup = props.keychainGroup;
46
- }
47
- return mod;
48
- });
49
- };
50
- exports.configureInfoPlist = configureInfoPlist;
51
- //# sourceMappingURL=infoPlist.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"infoPlist.js","sourceRoot":"","sources":["../../../src/ios/infoPlist.ts"],"names":[],"mappings":";;;AAAA,yDAAkE;AAWlE;;;;;;;;;;GAUG;AACI,MAAM,kBAAkB,GAA0C,CAAC,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE;IAC9F,OAAO,IAAA,8BAAa,EAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;QACnC,GAAG,CAAC,UAAU,CAAC,wBAAwB,GAAG,IAAI,CAAA;QAC9C,GAAG,CAAC,UAAU,CAAC,uCAAuC,GAAG,KAAK,CAAA;QAE9D,wCAAwC;QACxC,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,GAAG,CAAC,UAAU,CAAC,yBAAyB,GAAG,KAAK,CAAC,eAAe,CAAA;QAClE,CAAC;QAED,6DAA6D;QAC7D,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,UAAU,CAAC,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAA;QACnD,CAAC;QAED,yDAAyD;QACzD,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,UAAU,GAA2B,EAAE,CAAA;YAC7C,MAAM,eAAe,GAA2B,EAAE,CAAA;YAElD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;oBACxB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA;oBAC/C,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,eAAe,IAAI,EAAE,CAAA;gBACxE,CAAC;YACH,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvC,GAAG,CAAC,UAAU,CAAC,uBAAuB,GAAG,UAAU,CAAA;gBACnD,GAAG,CAAC,UAAU,CAAC,4BAA4B,GAAG,eAAe,CAAA;YAC/D,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,GAAG,CAAC,UAAU,CAAC,oBAAoB,GAAG,KAAK,CAAC,aAAa,CAAA;QAC3D,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAxCY,QAAA,kBAAkB,sBAwC9B"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withPushNotifications = void 0;
4
- const config_plugins_1 = require("@expo/config-plugins");
5
- /**
6
- * Plugin that enables push notification support for Live Activities.
7
- *
8
- * This:
9
- * - Adds the aps-environment entitlement for push notifications
10
- * - Adds Voltra_EnablePushNotifications flag to Info.plist
11
- */
12
- const withPushNotifications = (config) => (0, config_plugins_1.withInfoPlist)((0, config_plugins_1.withEntitlementsPlist)(config, (mod) => {
13
- // NOTE: For App Store builds, provisioning profiles typically inject 'production'.
14
- // This sets a default for debug/dev builds.
15
- mod.modResults['aps-environment'] = 'development';
16
- return mod;
17
- }), (mod) => {
18
- mod.modResults['Voltra_EnablePushNotifications'] = true;
19
- return mod;
20
- });
21
- exports.withPushNotifications = withPushNotifications;
22
- //# sourceMappingURL=pushNotifications.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pushNotifications.js","sourceRoot":"","sources":["../../../src/ios/pushNotifications.ts"],"names":[],"mappings":";;;AAAA,yDAAyF;AAEzF;;;;;;GAMG;AACI,MAAM,qBAAqB,GAAiB,CAAC,MAAM,EAAE,EAAE,CAC5D,IAAA,8BAAa,EACX,IAAA,sCAAqB,EAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;IACpC,mFAAmF;IACnF,4CAA4C;IAC5C,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,aAAa,CAAA;IACjD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAC,EACF,CAAC,GAAG,EAAE,EAAE;IACN,GAAG,CAAC,UAAU,CAAC,gCAAgC,CAAC,GAAG,IAAI,CAAA;IACvD,OAAO,GAAG,CAAA;AACZ,CAAC,CACF,CAAA;AAZU,QAAA,qBAAqB,yBAY/B"}