@use-voltra/ios-client 2.1.1 → 2.2.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 (131) hide show
  1. package/README.md +61 -8
  2. package/build/commonjs/dynamic-widget/api.js +15 -0
  3. package/build/commonjs/dynamic-widget/api.js.map +1 -0
  4. package/build/commonjs/index.js +15 -7
  5. package/build/commonjs/index.js.map +1 -1
  6. package/build/commonjs/native/NativeVoltra.js.map +1 -1
  7. package/build/module/dynamic-widget/api.js +10 -0
  8. package/build/module/dynamic-widget/api.js.map +1 -0
  9. package/build/module/index.js +1 -0
  10. package/build/module/index.js.map +1 -1
  11. package/build/module/native/NativeVoltra.js.map +1 -1
  12. package/build/typescript/commonjs/dynamic-widget/api.d.ts +8 -0
  13. package/build/typescript/commonjs/dynamic-widget/api.d.ts.map +1 -0
  14. package/build/typescript/commonjs/index.d.ts +1 -0
  15. package/build/typescript/commonjs/index.d.ts.map +1 -1
  16. package/build/typescript/commonjs/native/NativeVoltra.d.ts +1 -0
  17. package/build/typescript/commonjs/native/NativeVoltra.d.ts.map +1 -1
  18. package/build/typescript/module/dynamic-widget/api.d.ts +8 -0
  19. package/build/typescript/module/dynamic-widget/api.d.ts.map +1 -0
  20. package/build/typescript/module/index.d.ts +1 -0
  21. package/build/typescript/module/index.d.ts.map +1 -1
  22. package/build/typescript/module/native/NativeVoltra.d.ts +1 -0
  23. package/build/typescript/module/native/NativeVoltra.d.ts.map +1 -1
  24. package/expo-plugin/build/cjs/index.js +3 -1
  25. package/expo-plugin/build/cjs/index.js.map +1 -1
  26. package/expo-plugin/build/cjs/ios-widget/index.js +1 -1
  27. package/expo-plugin/build/cjs/ios-widget/index.js.map +1 -1
  28. package/expo-plugin/build/cjs/ios-widget/podfile.js +38 -12
  29. package/expo-plugin/build/cjs/ios-widget/podfile.js.map +1 -1
  30. package/expo-plugin/build/cjs/ios-widget/xcode/buildPhases.js +143 -107
  31. package/expo-plugin/build/cjs/ios-widget/xcode/buildPhases.js.map +1 -1
  32. package/expo-plugin/build/cjs/ios-widget/xcode/configurationList.js +30 -22
  33. package/expo-plugin/build/cjs/ios-widget/xcode/configurationList.js.map +1 -1
  34. package/expo-plugin/build/cjs/ios-widget/xcode/fileReferences.js +50 -0
  35. package/expo-plugin/build/cjs/ios-widget/xcode/fileReferences.js.map +1 -0
  36. package/expo-plugin/build/cjs/ios-widget/xcode/groups.js +45 -43
  37. package/expo-plugin/build/cjs/ios-widget/xcode/groups.js.map +1 -1
  38. package/expo-plugin/build/cjs/ios-widget/xcode/index.js +77 -91
  39. package/expo-plugin/build/cjs/ios-widget/xcode/index.js.map +1 -1
  40. package/expo-plugin/build/cjs/ios-widget/xcode/mainAppSettings.js +41 -39
  41. package/expo-plugin/build/cjs/ios-widget/xcode/mainAppSettings.js.map +1 -1
  42. package/expo-plugin/build/cjs/ios-widget/xcode/productFile.js +2 -2
  43. package/expo-plugin/build/cjs/ios-widget/xcode/productFile.js.map +1 -1
  44. package/expo-plugin/build/cjs/ios-widget/xcode/target.js +29 -63
  45. package/expo-plugin/build/cjs/ios-widget/xcode/target.js.map +1 -1
  46. package/expo-plugin/build/esm/index.js +3 -1
  47. package/expo-plugin/build/esm/index.js.map +1 -1
  48. package/expo-plugin/build/esm/ios-widget/index.js +1 -1
  49. package/expo-plugin/build/esm/ios-widget/index.js.map +1 -1
  50. package/expo-plugin/build/esm/ios-widget/podfile.js +36 -11
  51. package/expo-plugin/build/esm/ios-widget/podfile.js.map +1 -1
  52. package/expo-plugin/build/esm/ios-widget/xcode/buildPhases.js +143 -106
  53. package/expo-plugin/build/esm/ios-widget/xcode/buildPhases.js.map +1 -1
  54. package/expo-plugin/build/esm/ios-widget/xcode/configurationList.js +31 -22
  55. package/expo-plugin/build/esm/ios-widget/xcode/configurationList.js.map +1 -1
  56. package/expo-plugin/build/esm/ios-widget/xcode/fileReferences.js +45 -0
  57. package/expo-plugin/build/esm/ios-widget/xcode/fileReferences.js.map +1 -0
  58. package/expo-plugin/build/esm/ios-widget/xcode/groups.js +45 -42
  59. package/expo-plugin/build/esm/ios-widget/xcode/groups.js.map +1 -1
  60. package/expo-plugin/build/esm/ios-widget/xcode/index.js +81 -96
  61. package/expo-plugin/build/esm/ios-widget/xcode/index.js.map +1 -1
  62. package/expo-plugin/build/esm/ios-widget/xcode/mainAppSettings.js +41 -39
  63. package/expo-plugin/build/esm/ios-widget/xcode/mainAppSettings.js.map +1 -1
  64. package/expo-plugin/build/esm/ios-widget/xcode/productFile.js +3 -2
  65. package/expo-plugin/build/esm/ios-widget/xcode/productFile.js.map +1 -1
  66. package/expo-plugin/build/esm/ios-widget/xcode/target.js +28 -62
  67. package/expo-plugin/build/esm/ios-widget/xcode/target.js.map +1 -1
  68. package/expo-plugin/build/types/index.d.ts.map +1 -1
  69. package/expo-plugin/build/types/ios-widget/podfile.d.ts +19 -1
  70. package/expo-plugin/build/types/ios-widget/podfile.d.ts.map +1 -1
  71. package/expo-plugin/build/types/ios-widget/xcode/buildPhases.d.ts +3 -7
  72. package/expo-plugin/build/types/ios-widget/xcode/buildPhases.d.ts.map +1 -1
  73. package/expo-plugin/build/types/ios-widget/xcode/configurationList.d.ts +15 -10
  74. package/expo-plugin/build/types/ios-widget/xcode/configurationList.d.ts.map +1 -1
  75. package/expo-plugin/build/types/ios-widget/xcode/fileReferences.d.ts +16 -0
  76. package/expo-plugin/build/types/ios-widget/xcode/fileReferences.d.ts.map +1 -0
  77. package/expo-plugin/build/types/ios-widget/xcode/groups.d.ts +0 -4
  78. package/expo-plugin/build/types/ios-widget/xcode/groups.d.ts.map +1 -1
  79. package/expo-plugin/build/types/ios-widget/xcode/index.d.ts +22 -3
  80. package/expo-plugin/build/types/ios-widget/xcode/index.d.ts.map +1 -1
  81. package/expo-plugin/build/types/ios-widget/xcode/mainAppSettings.d.ts +16 -4
  82. package/expo-plugin/build/types/ios-widget/xcode/mainAppSettings.d.ts.map +1 -1
  83. package/expo-plugin/build/types/ios-widget/xcode/productFile.d.ts +0 -4
  84. package/expo-plugin/build/types/ios-widget/xcode/productFile.d.ts.map +1 -1
  85. package/expo-plugin/build/types/ios-widget/xcode/target.d.ts +11 -26
  86. package/expo-plugin/build/types/ios-widget/xcode/target.d.ts.map +1 -1
  87. package/expo-plugin/src/index.ts +5 -1
  88. package/expo-plugin/src/ios-widget/index.ts +1 -1
  89. package/expo-plugin/src/ios-widget/podfile.ts +46 -13
  90. package/expo-plugin/src/ios-widget/xcode/__fixtures__/fresh.pbxproj +197 -0
  91. package/expo-plugin/src/ios-widget/xcode/__fixtures__/with-existing-extension.pbxproj +321 -0
  92. package/expo-plugin/src/ios-widget/xcode/__fixtures__/with-per-config-signing.pbxproj +203 -0
  93. package/expo-plugin/src/ios-widget/xcode/__snapshots__/applyXcodeChanges.node.test.ts.snap +357 -0
  94. package/expo-plugin/src/ios-widget/xcode/__tests__/pbxConsistency.ts +130 -0
  95. package/expo-plugin/src/ios-widget/xcode/buildPhases.ts +151 -152
  96. package/expo-plugin/src/ios-widget/xcode/configurationList.ts +52 -35
  97. package/expo-plugin/src/ios-widget/xcode/fileReferences.ts +51 -0
  98. package/expo-plugin/src/ios-widget/xcode/groups.ts +52 -54
  99. package/expo-plugin/src/ios-widget/xcode/index.ts +107 -119
  100. package/expo-plugin/src/ios-widget/xcode/mainAppSettings.ts +59 -54
  101. package/expo-plugin/src/ios-widget/xcode/productFile.ts +3 -2
  102. package/expo-plugin/src/ios-widget/xcode/target.ts +31 -83
  103. package/ios/Package.swift +7 -1
  104. package/ios/app/NativeVoltra.mm +19 -0
  105. package/ios/app/VoltraModule.swift +18 -0
  106. package/ios/app/VoltraModuleImpl.swift +16 -0
  107. package/ios/shared/DynamicWidgetPropsCodec.swift +51 -0
  108. package/ios/shared/DynamicWidgetPropsStorage.swift +53 -0
  109. package/ios/shared/DynamicWidgetPropsStore.swift +50 -0
  110. package/ios/shared/DynamicWidgetRenderCoordinator.swift +31 -0
  111. package/ios/shared/DynamicWidgetUpdater.swift +30 -0
  112. package/ios/shared/VoltraConstants.swift +4 -0
  113. package/ios/shared/VoltraJSRenderer.swift +3 -1
  114. package/ios/shared/VoltraNode.swift +6 -2
  115. package/ios/shared/VoltraWidgetDefaults.swift +9 -1
  116. package/ios/target/VoltraClientWidgetRuntime.swift +17 -5
  117. package/ios/target/VoltraHomeWidget.swift +6 -2
  118. package/ios/target/VoltraWidget.swift +3 -1
  119. package/ios/ui/Helpers/VoltraDeepLinkResolver.swift +3 -1
  120. package/ios/ui/Helpers/VoltraProgressDriver.swift +6 -2
  121. package/ios/ui/Layout/VoltraFlexStackLayout.swift +9 -3
  122. package/ios/ui/Style/JSColorParser.swift +24 -8
  123. package/ios/ui/Style/JSGradientParser.swift +36 -12
  124. package/ios/ui/Style/JSStyleParser.swift +36 -12
  125. package/ios/ui/Style/LayoutStyle.swift +12 -4
  126. package/ios/ui/Views/VoltraChart.swift +52 -16
  127. package/ios/ui/Views/VoltraLinearGradient.swift +6 -2
  128. package/package.json +5 -5
  129. package/src/dynamic-widget/api.ts +25 -0
  130. package/src/index.ts +1 -0
  131. package/src/native/NativeVoltra.ts +1 -0
package/README.md CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  - **iOS Widgets**: Update, schedule, reload, and query widgets with `updateWidget`, `scheduleWidget`, `getActiveWidgets`, and more.
14
14
 
15
- - **Client-rendered widgets** _(experimental)_: Declare a widget in app.json with an `id` and `entry`, default-export the widget module, and render it on-device with live env (family, color scheme, locale, configuration).
15
+ - **Dynamic Widgets** _(experimental)_: Declare a widget in app.json with an `id` and `entry`, default-export the Dynamic Widget component, and render it on-device from runtime props and live environment values (family, color scheme, locale, configuration).
16
16
 
17
17
  - **Fast Refresh**: Hooks and previews integrate with your React Native dev workflow.
18
18
 
@@ -22,20 +22,73 @@
22
22
 
23
23
  - **Expo config plugin**: Add `"@use-voltra/ios-client"` to `app.json` to generate the Live Activity extension, widget targets, and entitlements.
24
24
 
25
- ## Client-rendered widgets (experimental)
25
+ ## Dynamic Widgets (experimental)
26
26
 
27
27
  > [!WARNING]
28
- > Client-rendered widgets are **experimental** — usable in production at your own risk. The API may
28
+ > Dynamic Widgets are **experimental** — usable in production at your own risk. The API may
29
29
  > change between releases.
30
30
 
31
- Declare the widget in app.json with a stable `id` and a project-relative `entry` path. The entry
32
- module must default-export the widget function or component; the exported name does not need to
33
- match the widget id. The widget renders on-device, so it can react to live environment values
34
- (widget family, color scheme, locale, and user `configuration` from the native Edit Widget sheet).
31
+ Declare a Dynamic Widget in app.json with a stable `id` and a project-relative `entry` path. The
32
+ entry module must default-export the Dynamic Widget function or component; the exported name does
33
+ not need to match the Dynamic Widget id. A Dynamic Widget renders on-device, so it can react to both
34
+ runtime props and live environment values (widget family, color scheme, locale, and user
35
+ `configuration` from the native Edit Widget sheet).
36
+
37
+ The first argument is the Dynamic Widget props object. Use `updateDynamicWidget` in your app to
38
+ persist a new props object and re-render the installed Dynamic Widget with the matching id:
39
+
40
+ ```tsx
41
+ // widgets/ios/inbox-widget.tsx
42
+ import { Voltra, type WidgetEnvironment } from '@use-voltra/ios'
43
+
44
+ type InboxDynamicWidgetProps = {
45
+ headline?: string
46
+ unreadCount?: number
47
+ }
48
+
49
+ export default function InboxDynamicWidget(
50
+ props: InboxDynamicWidgetProps = {},
51
+ env: WidgetEnvironment = {} as WidgetEnvironment
52
+ ) {
53
+ const headline = props.headline ?? 'Inbox'
54
+ const unreadCount = props.unreadCount ?? 0
55
+
56
+ return (
57
+ <Voltra.VStack style={{ padding: 16, backgroundColor: '#111827' }}>
58
+ <Voltra.Text style={{ color: 'white' }}>{headline}</Voltra.Text>
59
+ <Voltra.Text style={{ color: '#34D399' }}>{unreadCount} unread</Voltra.Text>
60
+ <Voltra.Text style={{ color: '#9CA3AF' }}>Family: {env.widgetFamily}</Voltra.Text>
61
+ </Voltra.VStack>
62
+ )
63
+ }
64
+ ```
65
+
66
+ ```ts
67
+ // App code
68
+ import { updateDynamicWidget } from '@use-voltra/ios-client'
69
+
70
+ await updateDynamicWidget('inbox_widget', { headline: 'Team inbox', unreadCount: 7 })
71
+ ```
72
+
73
+ Dynamic Widget props must be JSON-serializable: strings, numbers, booleans, `null`, arrays, and nested
74
+ objects are supported. Values such as functions, `undefined`, `Date`, `BigInt`, and cyclic references
75
+ are not supported. Before the first `updateDynamicWidget` call, the entry receives `{}`. The latest
76
+ props object is stored by Dynamic Widget id, survives app process restarts, and is reused on
77
+ subsequent renders until another update replaces it or the app's data is cleared.
78
+
79
+ `updateDynamicWidget` is only for an entry-based Dynamic Widget. The legacy `updateWidget` API sends
80
+ pre-rendered variant payloads to a payload-driven widget and cannot update an entry-based Dynamic
81
+ Widget.
82
+
83
+ Configuration parameters declared in `app.json` (`appIntent.parameters`) are edited by the user in
84
+ the native iOS Edit Widget sheet and surface as `env.configuration`. Configuration is separate from
85
+ the Dynamic Widget props passed as the first argument; updating one does not replace the other.
35
86
 
36
87
  Notes:
37
88
 
38
89
  - iOS and Android widget declarations stay separate, and the same widget id can exist on both platforms as separate entries.
90
+ - Set `groupIdentifier` in the Voltra plugin configuration before calling `updateDynamicWidget`; the app and WidgetKit extension use the shared App Group to exchange runtime props.
91
+ - Rebuild the native iOS app after changing plugin configuration or upgrading to a package version that adds a native API.
39
92
  - Verify release rendering on a **real device** — the iOS Simulator is unreliable for widget
40
93
  rendering.
41
94
 
@@ -46,7 +99,7 @@ The documentation is available at [use-voltra.dev](https://use-voltra.dev). Rele
46
99
  - [Installation](https://use-voltra.dev/getting-started/installation)
47
100
  - [iOS Setup](https://use-voltra.dev/ios/setup)
48
101
  - [Developing Live Activities](https://use-voltra.dev/ios/development/developing-live-activities)
49
- - [Developing client-rendered widgets](https://use-voltra.dev/ios/development/dynamic-widgets)
102
+ - [Developing Dynamic Widgets](https://use-voltra.dev/ios/development/dynamic-widgets)
50
103
  - [Plugin Configuration](https://use-voltra.dev/ios/api/plugin-configuration)
51
104
  - [API Reference](https://use-voltra.dev/ios/api/configuration)
52
105
 
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.updateDynamicWidget = void 0;
7
+ var _NativeVoltra = require("../native/NativeVoltra.js");
8
+ var _assertRunningOnApple = require("../utils/assertRunningOnApple.js");
9
+ const updateDynamicWidget = async (dynamicWidgetId, dynamicWidgetProps) => {
10
+ if (!(0, _assertRunningOnApple.assertRunningOnApple)()) return Promise.resolve();
11
+ const dynamicWidgetPropsJson = JSON.stringify(dynamicWidgetProps);
12
+ return (0, _NativeVoltra.getNativeVoltra)().updateDynamicWidget(dynamicWidgetId, dynamicWidgetPropsJson);
13
+ };
14
+ exports.updateDynamicWidget = updateDynamicWidget;
15
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_NativeVoltra","require","_assertRunningOnApple","updateDynamicWidget","dynamicWidgetId","dynamicWidgetProps","assertRunningOnApple","Promise","resolve","dynamicWidgetPropsJson","JSON","stringify","getNativeVoltra","exports"],"sourceRoot":"../../../src","sources":["dynamic-widget/api.ts"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAD,OAAA;AAcO,MAAME,mBAAmB,GAAG,MAAAA,CACjCC,eAAuB,EACvBC,kBAAsC,KACpB;EAClB,IAAI,CAAC,IAAAC,0CAAoB,EAAC,CAAC,EAAE,OAAOC,OAAO,CAACC,OAAO,CAAC,CAAC;EAErD,MAAMC,sBAAsB,GAAGC,IAAI,CAACC,SAAS,CAACN,kBAAkB,CAAC;EAEjE,OAAO,IAAAO,6BAAe,EAAC,CAAC,CAACT,mBAAmB,CAACC,eAAe,EAAEK,sBAAsB,CAAC;AACvF,CAAC;AAAAI,OAAA,CAAAV,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -8,6 +8,7 @@ var _exportNames = {
8
8
  VoltraLiveActivityPreview: true,
9
9
  VoltraView: true,
10
10
  VoltraWidgetPreview: true,
11
+ updateDynamicWidget: true,
11
12
  isGlassSupported: true,
12
13
  isHeadless: true,
13
14
  useIsHeadless: true,
@@ -96,7 +97,7 @@ Object.defineProperty(exports, "enableWidgetHotReload", {
96
97
  Object.defineProperty(exports, "endAllLiveActivities", {
97
98
  enumerable: true,
98
99
  get: function () {
99
- return _api.endAllLiveActivities;
100
+ return _api2.endAllLiveActivities;
100
101
  }
101
102
  });
102
103
  Object.defineProperty(exports, "getActiveWidgets", {
@@ -120,7 +121,7 @@ Object.defineProperty(exports, "isHeadless", {
120
121
  Object.defineProperty(exports, "isLiveActivityActive", {
121
122
  enumerable: true,
122
123
  get: function () {
123
- return _api.isLiveActivityActive;
124
+ return _api2.isLiveActivityActive;
124
125
  }
125
126
  });
126
127
  Object.defineProperty(exports, "logger", {
@@ -162,19 +163,25 @@ Object.defineProperty(exports, "setWidgetServerCredentials", {
162
163
  Object.defineProperty(exports, "startLiveActivity", {
163
164
  enumerable: true,
164
165
  get: function () {
165
- return _api.startLiveActivity;
166
+ return _api2.startLiveActivity;
166
167
  }
167
168
  });
168
169
  Object.defineProperty(exports, "stopLiveActivity", {
169
170
  enumerable: true,
170
171
  get: function () {
171
- return _api.stopLiveActivity;
172
+ return _api2.stopLiveActivity;
173
+ }
174
+ });
175
+ Object.defineProperty(exports, "updateDynamicWidget", {
176
+ enumerable: true,
177
+ get: function () {
178
+ return _api.updateDynamicWidget;
172
179
  }
173
180
  });
174
181
  Object.defineProperty(exports, "updateLiveActivity", {
175
182
  enumerable: true,
176
183
  get: function () {
177
- return _api.updateLiveActivity;
184
+ return _api2.updateLiveActivity;
178
185
  }
179
186
  });
180
187
  Object.defineProperty(exports, "updateWidget", {
@@ -192,7 +199,7 @@ Object.defineProperty(exports, "useIsHeadless", {
192
199
  Object.defineProperty(exports, "useLiveActivity", {
193
200
  enumerable: true,
194
201
  get: function () {
195
- return _api.useLiveActivity;
202
+ return _api2.useLiveActivity;
196
203
  }
197
204
  });
198
205
  Object.defineProperty(exports, "useUpdateOnHMR", {
@@ -205,6 +212,7 @@ var _ios = require("@use-voltra/ios");
205
212
  var _VoltraLiveActivityPreview = require("./components/VoltraLiveActivityPreview.js");
206
213
  var _VoltraView = require("./components/VoltraView.js");
207
214
  var _VoltraWidgetPreview = require("./components/VoltraWidgetPreview.js");
215
+ var _api = require("./dynamic-widget/api.js");
208
216
  var _events = require("./events.js");
209
217
  Object.keys(_events).forEach(function (key) {
210
218
  if (key === "default" || key === "__esModule") return;
@@ -219,7 +227,7 @@ Object.keys(_events).forEach(function (key) {
219
227
  });
220
228
  var _helpers = require("./helpers.js");
221
229
  var _logger = require("./logger.js");
222
- var _api = require("./live-activity/api.js");
230
+ var _api2 = require("./live-activity/api.js");
223
231
  var _preload = require("./preload.js");
224
232
  var _assertRunningOnApple = require("./utils/assertRunningOnApple.js");
225
233
  var _enableWidgetHotReload = require("./utils/enableWidgetHotReload.js");
@@ -1 +1 @@
1
- {"version":3,"names":["_ios","require","_VoltraLiveActivityPreview","_VoltraView","_VoltraWidgetPreview","_events","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_helpers","_logger","_api","_preload","_assertRunningOnApple","_enableWidgetHotReload","_useUpdateOnHMR","_helpers2","_serverCredentials","_widgetApi"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AAIA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAAAK,MAAA,CAAAC,IAAA,CAAAF,OAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,OAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,OAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,QAAA,GAAAjB,OAAA;AACA,IAAAkB,OAAA,GAAAlB,OAAA;AACA,IAAAmB,IAAA,GAAAnB,OAAA;AAeA,IAAAoB,QAAA,GAAApB,OAAA;AAOA,IAAAqB,qBAAA,GAAArB,OAAA;AACA,IAAAsB,sBAAA,GAAAtB,OAAA;AACA,IAAAuB,eAAA,GAAAvB,OAAA;AACA,IAAAwB,SAAA,GAAAxB,OAAA;AAAAK,MAAA,CAAAC,IAAA,CAAAkB,SAAA,EAAAjB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAgB,SAAA,CAAAhB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAQ,SAAA,CAAAhB,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAiB,kBAAA,GAAAzB,OAAA;AAMA,IAAA0B,UAAA,GAAA1B,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_ios","require","_VoltraLiveActivityPreview","_VoltraView","_VoltraWidgetPreview","_api","_events","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_helpers","_logger","_api2","_preload","_assertRunningOnApple","_enableWidgetHotReload","_useUpdateOnHMR","_helpers2","_serverCredentials","_widgetApi"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AAIA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,IAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAAAM,MAAA,CAAAC,IAAA,CAAAF,OAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,OAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,OAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,QAAA,GAAAlB,OAAA;AACA,IAAAmB,OAAA,GAAAnB,OAAA;AACA,IAAAoB,KAAA,GAAApB,OAAA;AAeA,IAAAqB,QAAA,GAAArB,OAAA;AAOA,IAAAsB,qBAAA,GAAAtB,OAAA;AACA,IAAAuB,sBAAA,GAAAvB,OAAA;AACA,IAAAwB,eAAA,GAAAxB,OAAA;AACA,IAAAyB,SAAA,GAAAzB,OAAA;AAAAM,MAAA,CAAAC,IAAA,CAAAkB,SAAA,EAAAjB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAgB,SAAA,CAAAhB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAQ,SAAA,CAAAhB,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAiB,kBAAA,GAAA1B,OAAA;AAMA,IAAA2B,UAAA,GAAA3B,OAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","getNativeVoltra","voltraModule","TurboModuleRegistry","get","Error"],"sourceRoot":"../../../src","sources":["native/NativeVoltra.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AA+GO,SAASC,eAAeA,CAAA,EAAS;EACtC,MAAMC,YAAY,GAAGC,gCAAmB,CAACC,GAAG,CAAO,cAAc,CAAC;EAElE,IAAIF,YAAY,IAAI,IAAI,EAAE;IACxB,MAAM,IAAIG,KAAK,CAAC,+BAA+B,CAAC;EAClD;EAEA,OAAOH,YAAY;AACrB","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","getNativeVoltra","voltraModule","TurboModuleRegistry","get","Error"],"sourceRoot":"../../../src","sources":["native/NativeVoltra.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAgHO,SAASC,eAAeA,CAAA,EAAS;EACtC,MAAMC,YAAY,GAAGC,gCAAmB,CAACC,GAAG,CAAO,cAAc,CAAC;EAElE,IAAIF,YAAY,IAAI,IAAI,EAAE;IACxB,MAAM,IAAIG,KAAK,CAAC,+BAA+B,CAAC;EAClD;EAEA,OAAOH,YAAY;AACrB","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ import { getNativeVoltra } from '../native/NativeVoltra.js';
4
+ import { assertRunningOnApple } from '../utils/assertRunningOnApple.js';
5
+ export const updateDynamicWidget = async (dynamicWidgetId, dynamicWidgetProps) => {
6
+ if (!assertRunningOnApple()) return Promise.resolve();
7
+ const dynamicWidgetPropsJson = JSON.stringify(dynamicWidgetProps);
8
+ return getNativeVoltra().updateDynamicWidget(dynamicWidgetId, dynamicWidgetPropsJson);
9
+ };
10
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getNativeVoltra","assertRunningOnApple","updateDynamicWidget","dynamicWidgetId","dynamicWidgetProps","Promise","resolve","dynamicWidgetPropsJson","JSON","stringify"],"sourceRoot":"../../../src","sources":["dynamic-widget/api.ts"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,2BAA2B;AAC3D,SAASC,oBAAoB,QAAQ,kCAAkC;AAcvE,OAAO,MAAMC,mBAAmB,GAAG,MAAAA,CACjCC,eAAuB,EACvBC,kBAAsC,KACpB;EAClB,IAAI,CAACH,oBAAoB,CAAC,CAAC,EAAE,OAAOI,OAAO,CAACC,OAAO,CAAC,CAAC;EAErD,MAAMC,sBAAsB,GAAGC,IAAI,CAACC,SAAS,CAACL,kBAAkB,CAAC;EAEjE,OAAOJ,eAAe,CAAC,CAAC,CAACE,mBAAmB,CAACC,eAAe,EAAEI,sBAAsB,CAAC;AACvF,CAAC","ignoreList":[]}
@@ -4,6 +4,7 @@ export { Voltra } from '@use-voltra/ios';
4
4
  export { VoltraLiveActivityPreview } from './components/VoltraLiveActivityPreview.js';
5
5
  export { VoltraView } from './components/VoltraView.js';
6
6
  export { VoltraWidgetPreview } from './components/VoltraWidgetPreview.js';
7
+ export { updateDynamicWidget } from './dynamic-widget/api.js';
7
8
  export * from './events.js';
8
9
  export { isGlassSupported, isHeadless, useIsHeadless } from './helpers.js';
9
10
  export { logger } from './logger.js';
@@ -1 +1 @@
1
- {"version":3,"names":["Voltra","VoltraLiveActivityPreview","VoltraView","VoltraWidgetPreview","isGlassSupported","isHeadless","useIsHeadless","logger","endAllLiveActivities","isLiveActivityActive","startLiveActivity","stopLiveActivity","updateLiveActivity","useLiveActivity","clearPreloadedImages","preloadImages","reloadLiveActivities","assertRunningOnApple","enableWidgetHotReload","useUpdateOnHMR","clearWidgetServerCredentials","setWidgetServerCredentials","clearAllWidgets","clearWidget","getActiveWidgets","reloadWidgets","scheduleWidget","updateWidget"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,iBAAiB;AACxC,SACEC,yBAAyB,QAEpB,2CAA2C;AAClD,SAASC,UAAU,QAA8B,4BAA4B;AAC7E,SAASC,mBAAmB,QAAuC,qCAAqC;AACxG,cAAc,aAAa;AAC3B,SAASC,gBAAgB,EAAEC,UAAU,EAAEC,aAAa,QAAQ,cAAc;AAC1E,SAASC,MAAM,QAA6B,aAAa;AACzD,SACEC,oBAAoB,EAEpBC,oBAAoB,EAEpBC,iBAAiB,EAEjBC,gBAAgB,EAChBC,kBAAkB,EAElBC,eAAe,QAGV,wBAAwB;AAE/B,SACEC,oBAAoB,EAEpBC,aAAa,EAEbC,oBAAoB,QACf,cAAc;AACrB,SAASC,oBAAoB,QAAQ,iCAAiC;AACtE,SAASC,qBAAqB,QAAQ,kCAAkC;AACxE,SAASC,cAAc,QAAQ,2BAA2B;AAC1D,cAAc,oBAAoB;AAElC,SACEC,4BAA4B,EAC5BC,0BAA0B,QAErB,iCAAiC;AAExC,SACEC,eAAe,EACfC,WAAW,EACXC,gBAAgB,EAChBC,aAAa,EAEbC,cAAc,EACdC,YAAY,QAEP,yBAAyB","ignoreList":[]}
1
+ {"version":3,"names":["Voltra","VoltraLiveActivityPreview","VoltraView","VoltraWidgetPreview","updateDynamicWidget","isGlassSupported","isHeadless","useIsHeadless","logger","endAllLiveActivities","isLiveActivityActive","startLiveActivity","stopLiveActivity","updateLiveActivity","useLiveActivity","clearPreloadedImages","preloadImages","reloadLiveActivities","assertRunningOnApple","enableWidgetHotReload","useUpdateOnHMR","clearWidgetServerCredentials","setWidgetServerCredentials","clearAllWidgets","clearWidget","getActiveWidgets","reloadWidgets","scheduleWidget","updateWidget"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,iBAAiB;AACxC,SACEC,yBAAyB,QAEpB,2CAA2C;AAClD,SAASC,UAAU,QAA8B,4BAA4B;AAC7E,SAASC,mBAAmB,QAAuC,qCAAqC;AACxG,SAAgEC,mBAAmB,QAAQ,yBAAyB;AACpH,cAAc,aAAa;AAC3B,SAASC,gBAAgB,EAAEC,UAAU,EAAEC,aAAa,QAAQ,cAAc;AAC1E,SAASC,MAAM,QAA6B,aAAa;AACzD,SACEC,oBAAoB,EAEpBC,oBAAoB,EAEpBC,iBAAiB,EAEjBC,gBAAgB,EAChBC,kBAAkB,EAElBC,eAAe,QAGV,wBAAwB;AAE/B,SACEC,oBAAoB,EAEpBC,aAAa,EAEbC,oBAAoB,QACf,cAAc;AACrB,SAASC,oBAAoB,QAAQ,iCAAiC;AACtE,SAASC,qBAAqB,QAAQ,kCAAkC;AACxE,SAASC,cAAc,QAAQ,2BAA2B;AAC1D,cAAc,oBAAoB;AAElC,SACEC,4BAA4B,EAC5BC,0BAA0B,QAErB,iCAAiC;AAExC,SACEC,eAAe,EACfC,WAAW,EACXC,gBAAgB,EAChBC,aAAa,EAEbC,cAAc,EACdC,YAAY,QAEP,yBAAyB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getNativeVoltra","voltraModule","get","Error"],"sourceRoot":"../../../src","sources":["native/NativeVoltra.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AA+GlD,OAAO,SAASC,eAAeA,CAAA,EAAS;EACtC,MAAMC,YAAY,GAAGF,mBAAmB,CAACG,GAAG,CAAO,cAAc,CAAC;EAElE,IAAID,YAAY,IAAI,IAAI,EAAE;IACxB,MAAM,IAAIE,KAAK,CAAC,+BAA+B,CAAC;EAClD;EAEA,OAAOF,YAAY;AACrB","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","getNativeVoltra","voltraModule","get","Error"],"sourceRoot":"../../../src","sources":["native/NativeVoltra.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAgHlD,OAAO,SAASC,eAAeA,CAAA,EAAS;EACtC,MAAMC,YAAY,GAAGF,mBAAmB,CAACG,GAAG,CAAO,cAAc,CAAC;EAElE,IAAID,YAAY,IAAI,IAAI,EAAE;IACxB,MAAM,IAAIE,KAAK,CAAC,+BAA+B,CAAC;EAClD;EAEA,OAAOF,YAAY;AACrB","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ export type DynamicWidgetPropsValue = string | number | boolean | null | ReadonlyArray<DynamicWidgetPropsValue> | Readonly<{
2
+ [dynamicWidgetPropName: string]: DynamicWidgetPropsValue;
3
+ }>;
4
+ export type DynamicWidgetProps = Readonly<{
5
+ [dynamicWidgetPropName: string]: DynamicWidgetPropsValue;
6
+ }>;
7
+ export declare const updateDynamicWidget: (dynamicWidgetId: string, dynamicWidgetProps: DynamicWidgetProps) => Promise<void>;
8
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/dynamic-widget/api.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,uBAAuB,GAC/B,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,aAAa,CAAC,uBAAuB,CAAC,GACtC,QAAQ,CAAC;IAAE,CAAC,qBAAqB,EAAE,MAAM,GAAG,uBAAuB,CAAA;CAAE,CAAC,CAAA;AAE1E,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,CAAC,qBAAqB,EAAE,MAAM,GAAG,uBAAuB,CAAA;CACzD,CAAC,CAAA;AAEF,eAAO,MAAM,mBAAmB,GAC9B,iBAAiB,MAAM,EACvB,oBAAoB,kBAAkB,KACrC,OAAO,CAAC,IAAI,CAMd,CAAA"}
@@ -2,6 +2,7 @@ export { Voltra } from '@use-voltra/ios';
2
2
  export { VoltraLiveActivityPreview, type VoltraLiveActivityPreviewProps, } from './components/VoltraLiveActivityPreview.js';
3
3
  export { VoltraView, type VoltraViewProps } from './components/VoltraView.js';
4
4
  export { VoltraWidgetPreview, type VoltraWidgetPreviewProps } from './components/VoltraWidgetPreview.js';
5
+ export { type DynamicWidgetProps, type DynamicWidgetPropsValue, updateDynamicWidget } from './dynamic-widget/api.js';
5
6
  export * from './events.js';
6
7
  export { isGlassSupported, isHeadless, useIsHeadless } from './helpers.js';
7
8
  export { logger, type VoltraLogLevel } from './logger.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EACL,yBAAyB,EACzB,KAAK,8BAA8B,GACpC,MAAM,2CAA2C,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,qCAAqC,CAAA;AACxG,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EACL,oBAAoB,EACpB,KAAK,sBAAsB,EAC3B,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EACL,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,aAAa,EACb,KAAK,mBAAmB,EACxB,oBAAoB,GACrB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,cAAc,oBAAoB,CAAA;AAClC,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,iCAAiC,CAAA;AACxC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EACL,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,KAAK,oBAAoB,EACzB,cAAc,EACd,YAAY,EACZ,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EACL,yBAAyB,EACzB,KAAK,8BAA8B,GACpC,MAAM,2CAA2C,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,qCAAqC,CAAA;AACxG,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AACpH,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EACL,oBAAoB,EACpB,KAAK,sBAAsB,EAC3B,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EACL,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,aAAa,EACb,KAAK,mBAAmB,EACxB,oBAAoB,GACrB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,cAAc,oBAAoB,CAAA;AAClC,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,iCAAiC,CAAA;AACxC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EACL,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,KAAK,oBAAoB,EACzB,cAAc,EACd,YAAY,EACZ,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAA"}
@@ -89,6 +89,7 @@ export interface Spec extends TurboModule {
89
89
  preloadImages(images: PreloadImageOptions[]): Promise<PreloadImagesResult>;
90
90
  reloadLiveActivities(activityNames?: string[] | null): Promise<void>;
91
91
  clearPreloadedImages(keys?: string[] | null): Promise<void>;
92
+ updateDynamicWidget(dynamicWidgetId: string, dynamicWidgetPropsJson: string): Promise<void>;
92
93
  updateWidget(widgetId: string, jsonString: string, options: UpdateWidgetOptions): Promise<void>;
93
94
  scheduleWidget(widgetId: string, timelineJson: string): Promise<void>;
94
95
  reloadWidgets(widgetIds?: string[] | null): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeVoltra.d.ts","sourceRoot":"","sources":["../../../../src/native/NativeVoltra.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NativeVoltra.d.ts","sourceRoot":"","sources":["../../../../src/native/NativeVoltra.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export type DynamicWidgetPropsValue = string | number | boolean | null | ReadonlyArray<DynamicWidgetPropsValue> | Readonly<{
2
+ [dynamicWidgetPropName: string]: DynamicWidgetPropsValue;
3
+ }>;
4
+ export type DynamicWidgetProps = Readonly<{
5
+ [dynamicWidgetPropName: string]: DynamicWidgetPropsValue;
6
+ }>;
7
+ export declare const updateDynamicWidget: (dynamicWidgetId: string, dynamicWidgetProps: DynamicWidgetProps) => Promise<void>;
8
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/dynamic-widget/api.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,uBAAuB,GAC/B,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,aAAa,CAAC,uBAAuB,CAAC,GACtC,QAAQ,CAAC;IAAE,CAAC,qBAAqB,EAAE,MAAM,GAAG,uBAAuB,CAAA;CAAE,CAAC,CAAA;AAE1E,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,CAAC,qBAAqB,EAAE,MAAM,GAAG,uBAAuB,CAAA;CACzD,CAAC,CAAA;AAEF,eAAO,MAAM,mBAAmB,GAC9B,iBAAiB,MAAM,EACvB,oBAAoB,kBAAkB,KACrC,OAAO,CAAC,IAAI,CAMd,CAAA"}
@@ -2,6 +2,7 @@ export { Voltra } from '@use-voltra/ios';
2
2
  export { VoltraLiveActivityPreview, type VoltraLiveActivityPreviewProps, } from './components/VoltraLiveActivityPreview.js';
3
3
  export { VoltraView, type VoltraViewProps } from './components/VoltraView.js';
4
4
  export { VoltraWidgetPreview, type VoltraWidgetPreviewProps } from './components/VoltraWidgetPreview.js';
5
+ export { type DynamicWidgetProps, type DynamicWidgetPropsValue, updateDynamicWidget } from './dynamic-widget/api.js';
5
6
  export * from './events.js';
6
7
  export { isGlassSupported, isHeadless, useIsHeadless } from './helpers.js';
7
8
  export { logger, type VoltraLogLevel } from './logger.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EACL,yBAAyB,EACzB,KAAK,8BAA8B,GACpC,MAAM,2CAA2C,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,qCAAqC,CAAA;AACxG,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EACL,oBAAoB,EACpB,KAAK,sBAAsB,EAC3B,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EACL,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,aAAa,EACb,KAAK,mBAAmB,EACxB,oBAAoB,GACrB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,cAAc,oBAAoB,CAAA;AAClC,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,iCAAiC,CAAA;AACxC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EACL,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,KAAK,oBAAoB,EACzB,cAAc,EACd,YAAY,EACZ,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EACL,yBAAyB,EACzB,KAAK,8BAA8B,GACpC,MAAM,2CAA2C,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,qCAAqC,CAAA;AACxG,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AACpH,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EACL,oBAAoB,EACpB,KAAK,sBAAsB,EAC3B,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EACL,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,aAAa,EACb,KAAK,mBAAmB,EACxB,oBAAoB,GACrB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,cAAc,oBAAoB,CAAA;AAClC,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,iCAAiC,CAAA;AACxC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EACL,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,KAAK,oBAAoB,EACzB,cAAc,EACd,YAAY,EACZ,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAA"}
@@ -89,6 +89,7 @@ export interface Spec extends TurboModule {
89
89
  preloadImages(images: PreloadImageOptions[]): Promise<PreloadImagesResult>;
90
90
  reloadLiveActivities(activityNames?: string[] | null): Promise<void>;
91
91
  clearPreloadedImages(keys?: string[] | null): Promise<void>;
92
+ updateDynamicWidget(dynamicWidgetId: string, dynamicWidgetPropsJson: string): Promise<void>;
92
93
  updateWidget(widgetId: string, jsonString: string, options: UpdateWidgetOptions): Promise<void>;
93
94
  scheduleWidget(widgetId: string, timelineJson: string): Promise<void>;
94
95
  reloadWidgets(widgetIds?: string[] | null): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeVoltra.d.ts","sourceRoot":"","sources":["../../../../src/native/NativeVoltra.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NativeVoltra.d.ts","sourceRoot":"","sources":["../../../../src/native/NativeVoltra.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,9 @@ const withVoltraIos = (config, props = {}) => {
16
16
  (0, validation_1.validateIOSConfigPluginProps)(props, projectRoot);
17
17
  const iosBundleIdentifier = config.ios?.bundleIdentifier;
18
18
  if (!iosBundleIdentifier) {
19
- return config;
19
+ throw new Error('The Voltra iOS config plugin requires "expo.ios.bundleIdentifier" to be set in the app config — ' +
20
+ 'it derives the widget extension bundle identifier from it. ' +
21
+ 'Set "ios.bundleIdentifier" (e.g. "com.example.app") in app.json or app.config.(js|ts) and run prebuild again.');
20
22
  }
21
23
  const deploymentTarget = props.deploymentTarget || constants_1.IOS.DEPLOYMENT_TARGET;
22
24
  const targetName = props.targetName || `${config_plugins_1.IOSConfig.XcodeUtils.sanitizedName(config.name)}LiveActivity`;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;AAAA,wDAA+C;AAE/C,2CAAiC;AACjC,+BAAsD;AACtD,6CAAuD;AAEvD,iDAAmD;AACnD,6CAA2D;AAE3D;;;;GAIG;AACH,MAAM,aAAa,GAA0B,CAAC,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE;IAClE,MAAM,WAAW,GAAI,MAAoD,CAAC,UAAU,EAAE,WAAW,CAAA;IACjG,IAAA,yCAA4B,EAAC,KAAK,EAAE,WAAW,CAAC,CAAA;IAEhD,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAA;IACxD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,IAAI,eAAG,CAAC,iBAAiB,CAAA;IACxE,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,GAAG,0BAAS,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAA;IACvG,MAAM,gBAAgB,GAAG,GAAG,mBAAmB,IAAI,UAAU,EAAE,CAAA;IAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAA;IACzC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,EAAE,WAAW,IAAI,GAAG,CAAA;IAElD,MAAM,GAAG,IAAA,2BAAe,EAAC,MAAM,CAAC,CAAA;IAEhC,MAAM,sBAAsB,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,KAAK,CAAA;IAClF,MAAM,aAAa,GACjB,KAAK,CAAC,aAAa,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,yBAAyB,mBAAmB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAE9G,MAAM,GAAG,IAAA,aAAO,EAAC,MAAM,EAAE;QACvB,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,SAAS,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QACjG,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,aAAa;KACd,CAAC,CAAA;IAEF,MAAM,GAAG,IAAA,oBAAa,EAAC,MAAM,EAAE;QAC7B,UAAU;QACV,gBAAgB;QAChB,gBAAgB;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO;QACP,WAAW;QACX,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/C,CAAC,CAAA;IAEF,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;QAClC,MAAM,GAAG,IAAA,2BAAqB,EAAC,MAAM,CAAC,CAAA;IACxC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,kBAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;AAAA,wDAA+C;AAE/C,2CAAiC;AACjC,+BAAsD;AACtD,6CAAuD;AAEvD,iDAAmD;AACnD,6CAA2D;AAE3D;;;;GAIG;AACH,MAAM,aAAa,GAA0B,CAAC,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE;IAClE,MAAM,WAAW,GAAI,MAAoD,CAAC,UAAU,EAAE,WAAW,CAAA;IACjG,IAAA,yCAA4B,EAAC,KAAK,EAAE,WAAW,CAAC,CAAA;IAEhD,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAA;IACxD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,kGAAkG;YAChG,6DAA6D;YAC7D,+GAA+G,CAClH,CAAA;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,IAAI,eAAG,CAAC,iBAAiB,CAAA;IACxE,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,GAAG,0BAAS,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAA;IACvG,MAAM,gBAAgB,GAAG,GAAG,mBAAmB,IAAI,UAAU,EAAE,CAAA;IAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAA;IACzC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,EAAE,WAAW,IAAI,GAAG,CAAA;IAElD,MAAM,GAAG,IAAA,2BAAe,EAAC,MAAM,CAAC,CAAA;IAEhC,MAAM,sBAAsB,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,KAAK,CAAA;IAClF,MAAM,aAAa,GACjB,KAAK,CAAC,aAAa,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,yBAAyB,mBAAmB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAE9G,MAAM,GAAG,IAAA,aAAO,EAAC,MAAM,EAAE;QACvB,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,SAAS,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QACjG,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,aAAa;KACd,CAAC,CAAA;IAEF,MAAM,GAAG,IAAA,oBAAa,EAAC,MAAM,EAAE;QAC7B,UAAU;QACV,gBAAgB;QAChB,gBAAgB;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO;QACP,WAAW;QACX,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/C,CAAC,CAAA;IAEF,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;QAClC,MAAM,GAAG,IAAA,2BAAqB,EAAC,MAAM,CAAC,CAAA;IACxC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,kBAAe,aAAa,CAAA"}
@@ -30,7 +30,7 @@ const withIOS = (config, props) => {
30
30
  // 1. Add custom fonts if provided
31
31
  ...(fonts && fonts.length > 0 ? [[fonts_1.withFonts, { fonts, targetName }]] : []),
32
32
  // 2. Configure Xcode project (creates the target - must run before fonts mod executes)
33
- [xcode_1.configureXcodeProject, { targetName, bundleIdentifier, deploymentTarget, widgets }],
33
+ [xcode_1.configureXcodeProject, { targetName, bundleIdentifier, deploymentTarget, widgets, version, buildNumber }],
34
34
  // 3. Configure Podfile for widget extension target
35
35
  [podfile_1.configurePodfile, { targetName }],
36
36
  // 4. Configure main app Info.plist (URL schemes, widget extension plist)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ios-widget/index.ts"],"names":[],"mappings":";;;AAAA,yDAAgE;AAGhE,+BAAyC;AACzC,mCAAsD;AACtD,mCAAmC;AACnC,uCAA4C;AAC5C,+CAA6D;AAC7D,mCAA+C;AAc/C;;;;;;;;;;;;;;;GAeG;AACI,MAAM,OAAO,GAA+B,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;IACnE,MAAM,EACJ,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,eAAe,EACf,aAAa,EACb,KAAK,EACL,OAAO,EACP,WAAW,GACZ,GAAG,KAAK,CAAA;IAET,MAAM,OAAO,GAA+B;QAC1C,kCAAkC;QAClC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAS,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAA6B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtG,uFAAuF;QACvF,CAAC,6BAAqB,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;QAEpF,mDAAmD;QACnD,CAAC,0BAAgB,EAAE,EAAE,UAAU,EAAE,CAAC;QAElC,yEAAyE;QACzE,CAAC,2CAA6B,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAExF,kCAAkC;QAClC,CAAC,uBAAiB,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;QAEtE,sFAAsF;QACtF,CAAC,oCAA4B,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;KAC9G,CAAA;IAED,OAAO,IAAA,4BAAW,EAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACrC,CAAC,CAAA;AAlCY,QAAA,OAAO,WAkCnB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ios-widget/index.ts"],"names":[],"mappings":";;;AAAA,yDAAgE;AAGhE,+BAAyC;AACzC,mCAAsD;AACtD,mCAAmC;AACnC,uCAA4C;AAC5C,+CAA6D;AAC7D,mCAA+C;AAc/C;;;;;;;;;;;;;;;GAeG;AACI,MAAM,OAAO,GAA+B,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;IACnE,MAAM,EACJ,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,eAAe,EACf,aAAa,EACb,KAAK,EACL,OAAO,EACP,WAAW,GACZ,GAAG,KAAK,CAAA;IAET,MAAM,OAAO,GAA+B;QAC1C,kCAAkC;QAClC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAS,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAA6B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtG,uFAAuF;QACvF,CAAC,6BAAqB,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAE1G,mDAAmD;QACnD,CAAC,0BAAgB,EAAE,EAAE,UAAU,EAAE,CAAC;QAElC,yEAAyE;QACzE,CAAC,2CAA6B,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAExF,kCAAkC;QAClC,CAAC,uBAAiB,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;QAEtE,sFAAsF;QACtF,CAAC,oCAA4B,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;KAC9G,CAAA;IAED,OAAO,IAAA,4BAAW,EAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACrC,CAAC,CAAA;AAlCY,QAAA,OAAO,WAkCnB"}
@@ -1,13 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.configurePodfile = void 0;
3
+ exports.__test__ = exports.configurePodfile = void 0;
4
+ exports.upsertWidgetTarget = upsertWidgetTarget;
4
5
  const config_plugins_1 = require("@expo/config-plugins");
6
+ const BEGIN_MARKER = '# @voltra-widget-target BEGIN';
7
+ const END_MARKER = '# @voltra-widget-target END';
8
+ // Matches a legacy (pre-marker) block emitted by older plugin versions: a bare header comment
9
+ // followed directly by the `target '<name>' do ... end` block, with no surrounding markers.
10
+ // Non-greedy up to the first line-start `end` — our generated block never nests another
11
+ // `do...end`, so this always lands on the block's own closing `end`.
12
+ const LEGACY_BLOCK_RE = /\n?# Voltra Widget Extension Target\n# DO NOT MODIFY THIS FILE - IT IS AUTO-GENERATED BY THE VOLTRA PLUGIN\ntarget '[^']*' do\n[\s\S]*?\nend/;
13
+ // Matches a marked block (any target name) end-to-end, inclusive of both markers.
14
+ const MARKED_BLOCK_RE = new RegExp(`${BEGIN_MARKER}[\\s\\S]*?${END_MARKER}`);
5
15
  /**
6
- * Generates the Podfile target content for the widget extension.
16
+ * Generates the Podfile target content for the widget extension (unwrapped, no markers).
7
17
  */
8
18
  function getTargetContent(targetName) {
9
- return `
10
- # Voltra Widget Extension Target
19
+ return `# Voltra Widget Extension Target
11
20
  # DO NOT MODIFY THIS FILE - IT IS AUTO-GENERATED BY THE VOLTRA PLUGIN
12
21
  target '${targetName}' do
13
22
  use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks']
@@ -16,26 +25,43 @@ target '${targetName}' do
16
25
  require 'pathname'
17
26
  project_root = "#{Pod::Config.instance.installation_root}/.."
18
27
  voltra_client_root = \`node --print "require.resolve('@use-voltra/ios-client/package.json', {paths: ['#{project_root}']})" 2>/dev/null\`.strip.gsub('/package.json', '')
28
+ raise "Voltra: could not resolve @use-voltra/ios-client from #{project_root}. Is @use-voltra/ios-client installed, and is node on PATH for pod install?" if voltra_client_root.empty?
19
29
  voltra_widget_podspec_root = File.join(voltra_client_root, 'ios')
30
+ voltra_widget_podspec_root = File.realpath(voltra_widget_podspec_root) if File.exist?(voltra_widget_podspec_root)
20
31
  podspec_dir_path = Pathname.new(voltra_widget_podspec_root).relative_path_from(Pathname.new(__dir__)).to_path
21
32
 
22
33
  pod 'VoltraWidget', :path => podspec_dir_path
23
34
  end`;
24
35
  }
36
+ function buildMarkedBlock(targetName) {
37
+ return `${BEGIN_MARKER}\n${getTargetContent(targetName)}\n${END_MARKER}`;
38
+ }
39
+ /**
40
+ * Idempotently inserts/upgrades the Voltra widget target block in Podfile contents:
41
+ * - marked block already present → replaced in place (covers renamed targets too, since the
42
+ * markers are name-agnostic)
43
+ * - legacy (pre-marker) block present → replaced with the new marked block
44
+ * - neither present → appended
45
+ */
46
+ function upsertWidgetTarget(contents, targetName) {
47
+ const markedBlock = buildMarkedBlock(targetName);
48
+ if (MARKED_BLOCK_RE.test(contents)) {
49
+ return contents.replace(MARKED_BLOCK_RE, markedBlock);
50
+ }
51
+ if (LEGACY_BLOCK_RE.test(contents)) {
52
+ return contents.replace(LEGACY_BLOCK_RE, `\n${markedBlock}`);
53
+ }
54
+ return `${contents.trimEnd()}\n\n${markedBlock}\n`;
55
+ }
25
56
  /**
26
- * Plugin step that adds the Podfile target for the widget extension.
57
+ * Plugin step that adds (or upgrades) the Podfile target for the widget extension.
27
58
  */
28
59
  const configurePodfile = (config, { targetName }) => {
29
60
  return (0, config_plugins_1.withPodfile)(config, (podfile) => {
30
- const targetContent = getTargetContent(targetName);
31
- // Check if target already exists (avoid duplicates)
32
- const targetMarker = "target '" + targetName + "'";
33
- if (podfile.modResults.contents.includes(targetMarker)) {
34
- return podfile;
35
- }
36
- podfile.modResults.contents = podfile.modResults.contents + '\n' + targetContent;
61
+ podfile.modResults.contents = upsertWidgetTarget(podfile.modResults.contents, targetName);
37
62
  return podfile;
38
63
  });
39
64
  };
40
65
  exports.configurePodfile = configurePodfile;
66
+ exports.__test__ = { BEGIN_MARKER, END_MARKER, getTargetContent };
41
67
  //# sourceMappingURL=podfile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"podfile.js","sourceRoot":"","sources":["../../../src/ios-widget/podfile.ts"],"names":[],"mappings":";;;AAAA,yDAAmF;AAEnF;;GAEG;AACH,SAAS,gBAAgB,CAAC,UAAkB;IAC1C,OAAO;;;UAGC,UAAU;;;;;;;;;;;IAWhB,CAAA;AACJ,CAAC;AAMD;;GAEG;AACI,MAAM,gBAAgB,GAAwC,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;IAC9F,OAAO,IAAA,4BAAe,EAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;QACzC,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;QAElD,oDAAoD;QACpD,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,GAAG,CAAA;QAClD,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACvD,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,OAAO,CAAC,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,GAAG,aAAa,CAAA;QAChF,OAAO,OAAO,CAAA;IAChB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAbY,QAAA,gBAAgB,oBAa5B"}
1
+ {"version":3,"file":"podfile.js","sourceRoot":"","sources":["../../../src/ios-widget/podfile.ts"],"names":[],"mappings":";;;AAgDA,gDAYC;AA5DD,yDAAmF;AAEnF,MAAM,YAAY,GAAG,+BAA+B,CAAA;AACpD,MAAM,UAAU,GAAG,6BAA6B,CAAA;AAEhD,8FAA8F;AAC9F,4FAA4F;AAC5F,wFAAwF;AACxF,qEAAqE;AACrE,MAAM,eAAe,GACnB,8IAA8I,CAAA;AAEhJ,kFAAkF;AAClF,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,GAAG,YAAY,aAAa,UAAU,EAAE,CAAC,CAAA;AAE5E;;GAEG;AACH,SAAS,gBAAgB,CAAC,UAAkB;IAC1C,OAAO;;UAEC,UAAU;;;;;;;;;;;;;IAahB,CAAA;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB;IAC1C,OAAO,GAAG,YAAY,KAAK,gBAAgB,CAAC,UAAU,CAAC,KAAK,UAAU,EAAE,CAAA;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,QAAgB,EAAE,UAAkB;IACrE,MAAM,WAAW,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;IAEhD,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,CAAA;IACvD,CAAC;IAED,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,WAAW,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,WAAW,IAAI,CAAA;AACpD,CAAC;AAMD;;GAEG;AACI,MAAM,gBAAgB,GAAwC,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;IAC9F,OAAO,IAAA,4BAAe,EAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;QACzC,OAAO,CAAC,UAAU,CAAC,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QACzF,OAAO,OAAO,CAAA;IAChB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AALY,QAAA,gBAAgB,oBAK5B;AAEY,QAAA,QAAQ,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAA"}