@use-voltra/ios-client 1.4.1 → 2.0.0-rc.2
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.
- package/README.md +113 -0
- package/Voltra.podspec +28 -0
- package/build/commonjs/VoltraModule.js +13 -0
- package/build/commonjs/VoltraModule.js.map +1 -0
- package/build/commonjs/components/VoltraLiveActivityPreview.js +30 -0
- package/build/commonjs/components/VoltraLiveActivityPreview.js.map +1 -0
- package/build/commonjs/components/VoltraView.js +50 -0
- package/build/commonjs/components/VoltraView.js.map +1 -0
- package/build/commonjs/components/VoltraWidgetPreview.js +58 -0
- package/build/commonjs/components/VoltraWidgetPreview.js.map +1 -0
- package/build/commonjs/events.js +32 -0
- package/build/commonjs/events.js.map +1 -0
- package/build/commonjs/helpers.js +26 -0
- package/build/commonjs/helpers.js.map +1 -0
- package/build/commonjs/index.js +226 -0
- package/build/commonjs/index.js.map +1 -0
- package/build/commonjs/live-activity/api.js +168 -0
- package/build/commonjs/live-activity/api.js.map +1 -0
- package/build/commonjs/logger.js +39 -0
- package/build/commonjs/logger.js.map +1 -0
- package/build/commonjs/native/NativeVoltra.js +15 -0
- package/build/commonjs/native/NativeVoltra.js.map +1 -0
- package/build/commonjs/native/VoltraRNNativeComponent.ts +9 -0
- package/build/commonjs/package.json +1 -0
- package/build/commonjs/preload.js +54 -0
- package/build/commonjs/preload.js.map +1 -0
- package/build/commonjs/types.js +2 -0
- package/build/commonjs/types.js.map +1 -0
- package/build/commonjs/utils/assertRunningOnApple.js +16 -0
- package/build/commonjs/utils/assertRunningOnApple.js.map +1 -0
- package/build/commonjs/utils/helpers.js +19 -0
- package/build/commonjs/utils/helpers.js.map +1 -0
- package/build/commonjs/utils/index.js +28 -0
- package/build/commonjs/utils/index.js.map +1 -0
- package/build/commonjs/utils/useUpdateOnHMR.js +25 -0
- package/build/commonjs/utils/useUpdateOnHMR.js.map +1 -0
- package/build/commonjs/widgets/server-credentials.js +18 -0
- package/build/commonjs/widgets/server-credentials.js.map +1 -0
- package/build/commonjs/widgets/widget-api.js +55 -0
- package/build/commonjs/widgets/widget-api.js.map +1 -0
- package/build/module/VoltraModule.js +4 -0
- package/build/module/VoltraModule.js.map +1 -0
- package/build/module/components/VoltraLiveActivityPreview.js +25 -0
- package/build/module/components/VoltraLiveActivityPreview.js.map +1 -0
- package/build/module/components/VoltraView.js +44 -0
- package/build/module/components/VoltraView.js.map +1 -0
- package/build/module/components/VoltraWidgetPreview.js +53 -0
- package/build/module/components/VoltraWidgetPreview.js.map +1 -0
- package/build/module/events.js +28 -0
- package/build/module/events.js.map +1 -0
- package/build/module/helpers.js +21 -0
- package/build/module/helpers.js.map +1 -0
- package/build/module/index.js +17 -0
- package/build/module/index.js.map +1 -0
- package/build/module/live-activity/api.js +158 -0
- package/build/module/live-activity/api.js.map +1 -0
- package/build/module/logger.js +35 -0
- package/build/module/logger.js.map +1 -0
- package/build/module/native/NativeVoltra.js +11 -0
- package/build/module/native/NativeVoltra.js.map +1 -0
- package/build/module/native/VoltraRNNativeComponent.ts +9 -0
- package/build/module/package.json +1 -0
- package/build/module/preload.js +48 -0
- package/build/module/preload.js.map +1 -0
- package/build/module/types.js +2 -0
- package/build/module/types.js.map +1 -0
- package/build/module/utils/assertRunningOnApple.js +11 -0
- package/build/module/utils/assertRunningOnApple.js.map +1 -0
- package/build/module/utils/helpers.js +4 -0
- package/build/module/utils/helpers.js.map +1 -0
- package/build/module/utils/index.js +5 -0
- package/build/module/utils/index.js.map +1 -0
- package/build/module/utils/useUpdateOnHMR.js +20 -0
- package/build/module/utils/useUpdateOnHMR.js.map +1 -0
- package/build/module/widgets/server-credentials.js +13 -0
- package/build/module/widgets/server-credentials.js.map +1 -0
- package/build/module/widgets/widget-api.js +45 -0
- package/build/module/widgets/widget-api.js.map +1 -0
- package/build/typescript/commonjs/VoltraModule.d.ts +3 -0
- package/build/typescript/commonjs/VoltraModule.d.ts.map +1 -0
- package/build/typescript/commonjs/components/VoltraLiveActivityPreview.d.ts.map +1 -0
- package/build/typescript/commonjs/components/VoltraView.d.ts.map +1 -0
- package/build/typescript/commonjs/components/VoltraWidgetPreview.d.ts.map +1 -0
- package/build/typescript/commonjs/events.d.ts.map +1 -0
- package/build/typescript/commonjs/helpers.d.ts.map +1 -0
- package/build/{types → typescript/commonjs}/index.d.ts +5 -0
- package/build/typescript/commonjs/index.d.ts.map +1 -0
- package/build/typescript/commonjs/live-activity/api.d.ts.map +1 -0
- package/build/typescript/commonjs/logger.d.ts.map +1 -0
- package/build/typescript/commonjs/native/NativeVoltra.d.ts +100 -0
- package/build/typescript/commonjs/native/NativeVoltra.d.ts.map +1 -0
- package/build/typescript/commonjs/native/VoltraRNNativeComponent.d.ts +8 -0
- package/build/typescript/commonjs/native/VoltraRNNativeComponent.d.ts.map +1 -0
- package/build/typescript/commonjs/package.json +1 -0
- package/build/typescript/commonjs/preload.d.ts.map +1 -0
- package/build/typescript/commonjs/types.d.ts.map +1 -0
- package/build/typescript/commonjs/utils/assertRunningOnApple.d.ts.map +1 -0
- package/build/typescript/commonjs/utils/helpers.d.ts.map +1 -0
- package/build/typescript/commonjs/utils/index.d.ts.map +1 -0
- package/build/typescript/commonjs/utils/useUpdateOnHMR.d.ts.map +1 -0
- package/build/typescript/commonjs/widgets/server-credentials.d.ts.map +1 -0
- package/build/typescript/commonjs/widgets/widget-api.d.ts.map +1 -0
- package/build/typescript/module/VoltraModule.d.ts +3 -0
- package/build/typescript/module/VoltraModule.d.ts.map +1 -0
- package/build/typescript/module/components/VoltraLiveActivityPreview.d.ts +7 -0
- package/build/typescript/module/components/VoltraLiveActivityPreview.d.ts.map +1 -0
- package/build/typescript/module/components/VoltraView.d.ts +12 -0
- package/build/typescript/module/components/VoltraView.d.ts.map +1 -0
- package/build/typescript/module/components/VoltraWidgetPreview.d.ts +9 -0
- package/build/typescript/module/components/VoltraWidgetPreview.d.ts.map +1 -0
- package/build/typescript/module/events.d.ts +33 -0
- package/build/typescript/module/events.d.ts.map +1 -0
- package/build/typescript/module/helpers.d.ts +3 -0
- package/build/typescript/module/helpers.d.ts.map +1 -0
- package/build/typescript/module/index.d.ts +18 -0
- package/build/typescript/module/index.d.ts.map +1 -0
- package/build/typescript/module/live-activity/api.d.ts +35 -0
- package/build/typescript/module/live-activity/api.d.ts.map +1 -0
- package/build/typescript/module/logger.d.ts +16 -0
- package/build/typescript/module/logger.d.ts.map +1 -0
- package/build/typescript/module/native/NativeVoltra.d.ts +100 -0
- package/build/typescript/module/native/NativeVoltra.d.ts.map +1 -0
- package/build/typescript/module/native/VoltraRNNativeComponent.d.ts +8 -0
- package/build/typescript/module/native/VoltraRNNativeComponent.d.ts.map +1 -0
- package/build/typescript/module/package.json +1 -0
- package/build/typescript/module/preload.d.ts +6 -0
- package/build/typescript/module/preload.d.ts.map +1 -0
- package/build/typescript/module/types.d.ts +2 -0
- package/build/typescript/module/types.d.ts.map +1 -0
- package/build/typescript/module/utils/assertRunningOnApple.d.ts +2 -0
- package/build/typescript/module/utils/assertRunningOnApple.d.ts.map +1 -0
- package/build/{esm/utils/helpers.js → typescript/module/utils/helpers.d.ts} +1 -1
- package/build/typescript/module/utils/helpers.d.ts.map +1 -0
- package/build/{esm/utils/index.js → typescript/module/utils/index.d.ts} +1 -1
- package/build/typescript/module/utils/index.d.ts.map +1 -0
- package/build/typescript/module/utils/useUpdateOnHMR.d.ts +5 -0
- package/build/typescript/module/utils/useUpdateOnHMR.d.ts.map +1 -0
- package/build/typescript/module/widgets/server-credentials.d.ts +5 -0
- package/build/typescript/module/widgets/server-credentials.d.ts.map +1 -0
- package/build/typescript/module/widgets/widget-api.d.ts +11 -0
- package/build/typescript/module/widgets/widget-api.d.ts.map +1 -0
- package/expo-plugin/app.plugin.js +3 -0
- package/expo-plugin/build/cjs/constants.js +23 -0
- package/expo-plugin/build/cjs/constants.js.map +1 -0
- package/expo-plugin/build/cjs/index.js +51 -0
- package/expo-plugin/build/cjs/index.js.map +1 -0
- package/expo-plugin/build/cjs/ios/eas.js +28 -0
- package/expo-plugin/build/cjs/ios/eas.js.map +1 -0
- package/expo-plugin/build/cjs/ios/entitlements.js +46 -0
- package/expo-plugin/build/cjs/ios/entitlements.js.map +1 -0
- package/expo-plugin/build/cjs/ios/index.js +39 -0
- package/expo-plugin/build/cjs/ios/index.js.map +1 -0
- package/expo-plugin/build/cjs/ios/infoPlist.js +51 -0
- package/expo-plugin/build/cjs/ios/infoPlist.js.map +1 -0
- package/expo-plugin/build/cjs/ios/pushNotifications.js +22 -0
- package/expo-plugin/build/cjs/ios/pushNotifications.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/eas.js +66 -0
- package/expo-plugin/build/cjs/ios-widget/eas.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/files/assets.js +199 -0
- package/expo-plugin/build/cjs/ios-widget/files/assets.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/files/entitlements.js +77 -0
- package/expo-plugin/build/cjs/ios-widget/files/entitlements.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/files/index.js +92 -0
- package/expo-plugin/build/cjs/ios-widget/files/index.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/files/infoPlist.js +91 -0
- package/expo-plugin/build/cjs/ios-widget/files/infoPlist.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/files/swift.js +443 -0
- package/expo-plugin/build/cjs/ios-widget/files/swift.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/fonts.js +151 -0
- package/expo-plugin/build/cjs/ios-widget/fonts.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/index.js +46 -0
- package/expo-plugin/build/cjs/ios-widget/index.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/podfile.js +41 -0
- package/expo-plugin/build/cjs/ios-widget/podfile.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/widgetPlist.js +99 -0
- package/expo-plugin/build/cjs/ios-widget/widgetPlist.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/buildPhases.js +247 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/buildPhases.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/configurationList.js +91 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/configurationList.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/groups.js +79 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/groups.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/index.js +155 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/index.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/mainAppSettings.js +71 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/mainAppSettings.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/productFile.js +74 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/productFile.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/target.js +113 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/target.js.map +1 -0
- package/expo-plugin/build/cjs/utils/fileDiscovery.js +120 -0
- package/expo-plugin/build/cjs/utils/fileDiscovery.js.map +1 -0
- package/expo-plugin/build/cjs/utils/urlScheme.js +40 -0
- package/expo-plugin/build/cjs/utils/urlScheme.js.map +1 -0
- package/expo-plugin/build/cjs/validation.js +55 -0
- package/expo-plugin/build/cjs/validation.js.map +1 -0
- package/expo-plugin/build/esm/constants.js +20 -0
- package/expo-plugin/build/esm/constants.js.map +1 -0
- package/expo-plugin/build/esm/index.js +49 -0
- package/expo-plugin/build/esm/index.js.map +1 -0
- package/expo-plugin/build/esm/ios/eas.js +24 -0
- package/expo-plugin/build/esm/ios/eas.js.map +1 -0
- package/expo-plugin/build/esm/ios/entitlements.js +42 -0
- package/expo-plugin/build/esm/ios/entitlements.js.map +1 -0
- package/expo-plugin/build/esm/ios/index.js +34 -0
- package/expo-plugin/build/esm/ios/index.js.map +1 -0
- package/expo-plugin/build/esm/ios/infoPlist.js +47 -0
- package/expo-plugin/build/esm/ios/infoPlist.js.map +1 -0
- package/expo-plugin/build/esm/ios/pushNotifications.js +18 -0
- package/expo-plugin/build/esm/ios/pushNotifications.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/eas.js +62 -0
- package/expo-plugin/build/esm/ios-widget/eas.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/files/assets.js +163 -0
- package/expo-plugin/build/esm/ios-widget/files/assets.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/files/entitlements.js +37 -0
- package/expo-plugin/build/esm/ios-widget/files/entitlements.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/files/index.js +55 -0
- package/expo-plugin/build/esm/ios-widget/files/index.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/files/infoPlist.js +55 -0
- package/expo-plugin/build/esm/ios-widget/files/infoPlist.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/files/swift.js +403 -0
- package/expo-plugin/build/esm/ios-widget/files/swift.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/fonts.js +111 -0
- package/expo-plugin/build/esm/ios-widget/fonts.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/index.js +42 -0
- package/expo-plugin/build/esm/ios-widget/index.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/podfile.js +37 -0
- package/expo-plugin/build/esm/ios-widget/podfile.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/widgetPlist.js +92 -0
- package/expo-plugin/build/esm/ios-widget/widgetPlist.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/xcode/buildPhases.js +210 -0
- package/expo-plugin/build/esm/ios-widget/xcode/buildPhases.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/xcode/configurationList.js +87 -0
- package/expo-plugin/build/esm/ios-widget/xcode/configurationList.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/xcode/groups.js +75 -0
- package/expo-plugin/build/esm/ios-widget/xcode/groups.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/xcode/index.js +118 -0
- package/expo-plugin/build/esm/ios-widget/xcode/index.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/xcode/mainAppSettings.js +68 -0
- package/expo-plugin/build/esm/ios-widget/xcode/mainAppSettings.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/xcode/productFile.js +70 -0
- package/expo-plugin/build/esm/ios-widget/xcode/productFile.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/xcode/target.js +108 -0
- package/expo-plugin/build/esm/ios-widget/xcode/target.js.map +1 -0
- package/expo-plugin/build/esm/utils/fileDiscovery.js +83 -0
- package/expo-plugin/build/esm/utils/fileDiscovery.js.map +1 -0
- package/expo-plugin/build/esm/utils/urlScheme.js +37 -0
- package/expo-plugin/build/esm/utils/urlScheme.js.map +1 -0
- package/expo-plugin/build/esm/validation.js +51 -0
- package/expo-plugin/build/esm/validation.js.map +1 -0
- package/expo-plugin/build/types/constants.d.ts +13 -0
- package/expo-plugin/build/types/constants.d.ts.map +1 -0
- package/expo-plugin/build/types/index.d.ts +10 -0
- package/expo-plugin/build/types/index.d.ts.map +1 -0
- package/expo-plugin/build/types/ios/eas.d.ts +12 -0
- package/expo-plugin/build/types/ios/eas.d.ts.map +1 -0
- package/expo-plugin/build/types/ios/entitlements.d.ts +14 -0
- package/expo-plugin/build/types/ios/entitlements.d.ts.map +1 -0
- package/expo-plugin/build/types/ios/index.d.ts +19 -0
- package/expo-plugin/build/types/ios/index.d.ts.map +1 -0
- package/expo-plugin/build/types/ios/infoPlist.d.ts +21 -0
- package/expo-plugin/build/types/ios/infoPlist.d.ts.map +1 -0
- package/expo-plugin/build/types/ios/pushNotifications.d.ts +10 -0
- package/expo-plugin/build/types/ios/pushNotifications.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/eas.d.ts +15 -0
- package/expo-plugin/build/types/ios-widget/eas.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/files/assets.d.ts +13 -0
- package/expo-plugin/build/types/ios-widget/files/assets.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/files/entitlements.d.ts +17 -0
- package/expo-plugin/build/types/ios-widget/files/entitlements.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/files/index.d.ts +24 -0
- package/expo-plugin/build/types/ios-widget/files/index.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/files/infoPlist.d.ts +10 -0
- package/expo-plugin/build/types/ios-widget/files/infoPlist.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/files/swift.d.ts +24 -0
- package/expo-plugin/build/types/ios-widget/files/swift.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/fonts.d.ts +22 -0
- package/expo-plugin/build/types/ios-widget/fonts.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/index.d.ts +31 -0
- package/expo-plugin/build/types/ios-widget/index.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/podfile.d.ts +9 -0
- package/expo-plugin/build/types/ios-widget/podfile.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/widgetPlist.d.ts +20 -0
- package/expo-plugin/build/types/ios-widget/widgetPlist.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/xcode/buildPhases.d.ts +25 -0
- package/expo-plugin/build/types/ios-widget/xcode/buildPhases.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/xcode/configurationList.d.ts +20 -0
- package/expo-plugin/build/types/ios-widget/xcode/configurationList.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/xcode/groups.d.ts +15 -0
- package/expo-plugin/build/types/ios-widget/xcode/groups.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/xcode/index.d.ts +20 -0
- package/expo-plugin/build/types/ios-widget/xcode/index.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/xcode/mainAppSettings.d.ts +15 -0
- package/expo-plugin/build/types/ios-widget/xcode/mainAppSettings.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/xcode/productFile.d.ts +14 -0
- package/expo-plugin/build/types/ios-widget/xcode/productFile.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/xcode/target.d.ts +42 -0
- package/expo-plugin/build/types/ios-widget/xcode/target.d.ts.map +1 -0
- package/expo-plugin/build/types/types.d.ts +74 -0
- package/expo-plugin/build/types/types.d.ts.map +1 -0
- package/expo-plugin/build/types/utils/fileDiscovery.d.ts +15 -0
- package/expo-plugin/build/types/utils/fileDiscovery.d.ts.map +1 -0
- package/expo-plugin/build/types/utils/urlScheme.d.ts +10 -0
- package/expo-plugin/build/types/utils/urlScheme.d.ts.map +1 -0
- package/expo-plugin/build/types/validation.d.ts +4 -0
- package/expo-plugin/build/types/validation.d.ts.map +1 -0
- package/expo-plugin/jest.config.js +18 -0
- package/expo-plugin/src/constants.ts +25 -0
- package/expo-plugin/src/index.ts +72 -0
- package/expo-plugin/src/ios/eas.ts +33 -0
- package/expo-plugin/src/ios/entitlements.ts +59 -0
- package/expo-plugin/src/ios/index.ts +47 -0
- package/expo-plugin/src/ios/infoPlist.ts +63 -0
- package/expo-plugin/src/ios/pushNotifications.ts +22 -0
- package/expo-plugin/src/ios-widget/eas.ts +79 -0
- package/expo-plugin/src/ios-widget/files/assets.ts +201 -0
- package/expo-plugin/src/ios-widget/files/entitlements.ts +48 -0
- package/expo-plugin/src/ios-widget/files/index.ts +74 -0
- package/expo-plugin/src/ios-widget/files/infoPlist.ts +57 -0
- package/expo-plugin/src/ios-widget/files/swift.node.test.ts +22 -0
- package/expo-plugin/src/ios-widget/files/swift.ts +476 -0
- package/expo-plugin/src/ios-widget/fonts.ts +132 -0
- package/expo-plugin/src/ios-widget/index.ts +73 -0
- package/expo-plugin/src/ios-widget/podfile.ts +44 -0
- package/expo-plugin/src/ios-widget/widgetPlist.ts +115 -0
- package/expo-plugin/src/ios-widget/xcode/buildPhases.ts +301 -0
- package/expo-plugin/src/ios-widget/xcode/configurationList.ts +127 -0
- package/expo-plugin/src/ios-widget/xcode/groups.ts +101 -0
- package/expo-plugin/src/ios-widget/xcode/index.ts +149 -0
- package/expo-plugin/src/ios-widget/xcode/mainAppSettings.ts +95 -0
- package/expo-plugin/src/ios-widget/xcode/productFile.ts +91 -0
- package/expo-plugin/src/ios-widget/xcode/target.ts +148 -0
- package/expo-plugin/src/types.ts +89 -0
- package/expo-plugin/src/utils/fileDiscovery.ts +96 -0
- package/expo-plugin/src/utils/urlScheme.ts +45 -0
- package/expo-plugin/src/validation.node.test.ts +19 -0
- package/expo-plugin/src/validation.ts +63 -0
- package/expo-plugin/tsconfig.base.json +17 -0
- package/expo-plugin/tsconfig.cjs.json +9 -0
- package/expo-plugin/tsconfig.esm.json +9 -0
- package/expo-plugin/tsconfig.jest.json +8 -0
- package/expo-plugin/tsconfig.typecheck.json +12 -0
- package/expo-plugin/tsconfig.types.json +10 -0
- package/ios/Package.swift +68 -0
- package/ios/Tests/JSGradientParserTests.swift +201 -0
- package/ios/Tests/VoltraSharedTests/SmokeTests.swift +8 -0
- package/ios/VoltraWidget.podspec +30 -0
- package/ios/app/NativeVoltra.h +5 -0
- package/ios/app/NativeVoltra.mm +211 -0
- package/ios/app/VoltraActivity.swift +5 -0
- package/ios/app/VoltraImagePreload.swift +154 -0
- package/ios/app/VoltraLiveActivityManager.swift +228 -0
- package/ios/app/VoltraLiveActivityService.swift +306 -0
- package/ios/app/VoltraModule.swift +215 -0
- package/ios/app/VoltraModuleImpl.swift +331 -0
- package/ios/app/VoltraOptions.swift +27 -0
- package/ios/app/VoltraViewComponentView.h +10 -0
- package/ios/app/VoltraViewComponentView.mm +67 -0
- package/ios/app/VoltraViewRoot.swift +63 -0
- package/ios/app/VoltraWidgetService.swift +154 -0
- package/ios/shared/BrotliCompression.swift +81 -0
- package/ios/shared/ComponentTypeID.swift +117 -0
- package/ios/shared/Data+hexString.swift +8 -0
- package/ios/shared/Date+toTimerInterval.swift +25 -0
- package/ios/shared/JSONValue.swift +128 -0
- package/ios/shared/ShortNames.swift +180 -0
- package/ios/shared/VoltraAttributes.swift +58 -0
- package/ios/shared/VoltraConfig.swift +18 -0
- package/ios/shared/VoltraConstants.swift +45 -0
- package/ios/shared/VoltraElement.swift +153 -0
- package/ios/shared/VoltraEvent.swift +72 -0
- package/ios/shared/VoltraEventBus.swift +80 -0
- package/ios/shared/VoltraImageStore.swift +119 -0
- package/ios/shared/VoltraInitialStateLocale.swift +54 -0
- package/ios/shared/VoltraInteractionIntent.swift +39 -0
- package/ios/shared/VoltraKeychainHelper.swift +178 -0
- package/ios/shared/VoltraLiveActivityPayload.swift +113 -0
- package/ios/shared/VoltraLogger.swift +30 -0
- package/ios/shared/VoltraNode.swift +194 -0
- package/ios/shared/VoltraPayloadMigrator.swift +63 -0
- package/ios/shared/VoltraPersistentEventQueue.swift +67 -0
- package/ios/shared/VoltraRefreshIntent.swift +29 -0
- package/ios/shared/VoltraRegion.swift +37 -0
- package/ios/shared/VoltraWidgetDefaults.swift +114 -0
- package/ios/shared/VoltraWidgetServerFetcher.swift +166 -0
- package/ios/target/VoltraHomeWidget.swift +508 -0
- package/ios/target/VoltraWidget.swift +158 -0
- package/ios/ui/Extensions/View.modifiers.swift +28 -0
- package/ios/ui/Extensions/VoltraNode+Parameters.swift +18 -0
- package/ios/ui/Generated/Parameters/ButtonParameters.swift +15 -0
- package/ios/ui/Generated/Parameters/ChartParameters.swift +33 -0
- package/ios/ui/Generated/Parameters/CircularProgressViewParameters.swift +59 -0
- package/ios/ui/Generated/Parameters/ComponentParameters.swift +12 -0
- package/ios/ui/Generated/Parameters/DividerParameters.swift +12 -0
- package/ios/ui/Generated/Parameters/GaugeParameters.swift +54 -0
- package/ios/ui/Generated/Parameters/GlassContainerParameters.swift +15 -0
- package/ios/ui/Generated/Parameters/GroupBoxParameters.swift +12 -0
- package/ios/ui/Generated/Parameters/HStackParameters.swift +34 -0
- package/ios/ui/Generated/Parameters/ImageParameters.swift +29 -0
- package/ios/ui/Generated/Parameters/LabelParameters.swift +18 -0
- package/ios/ui/Generated/Parameters/LinearGradientParameters.swift +27 -0
- package/ios/ui/Generated/Parameters/LinearProgressViewParameters.swift +64 -0
- package/ios/ui/Generated/Parameters/LinkParameters.swift +15 -0
- package/ios/ui/Generated/Parameters/MaskParameters.swift +12 -0
- package/ios/ui/Generated/Parameters/SpacerParameters.swift +15 -0
- package/ios/ui/Generated/Parameters/SymbolParameters.swift +59 -0
- package/ios/ui/Generated/Parameters/TextParameters.swift +18 -0
- package/ios/ui/Generated/Parameters/TimerParameters.swift +54 -0
- package/ios/ui/Generated/Parameters/ToggleParameters.swift +24 -0
- package/ios/ui/Generated/Parameters/VStackParameters.swift +34 -0
- package/ios/ui/Generated/Parameters/ViewParameters.swift +12 -0
- package/ios/ui/Generated/Parameters/ZStackParameters.swift +15 -0
- package/ios/ui/Helpers/VoltraDeepLinkResolver.swift +43 -0
- package/ios/ui/Helpers/VoltraProgressDriver.swift +52 -0
- package/ios/ui/Layout/FlexContainerHelper.swift +114 -0
- package/ios/ui/Layout/VoltraFlexStackLayout.swift +417 -0
- package/ios/ui/Protocols/VoltraView.swift +29 -0
- package/ios/ui/Style/BackgroundValue.swift +27 -0
- package/ios/ui/Style/CompositeStyle.swift +81 -0
- package/ios/ui/Style/DecorationStyle.swift +207 -0
- package/ios/ui/Style/FlexEnvironment.swift +35 -0
- package/ios/ui/Style/FontVariant.swift +4 -0
- package/ios/ui/Style/GlassEffect.swift +6 -0
- package/ios/ui/Style/JSColorParser.swift +517 -0
- package/ios/ui/Style/JSGradientParser.swift +674 -0
- package/ios/ui/Style/JSStyleParser.swift +223 -0
- package/ios/ui/Style/LayoutStyle.swift +184 -0
- package/ios/ui/Style/Overflow.swift +4 -0
- package/ios/ui/Style/RenderingStyle.swift +33 -0
- package/ios/ui/Style/StyleConverter.swift +202 -0
- package/ios/ui/Style/TextDecoration.swift +6 -0
- package/ios/ui/Style/TextStyle.swift +50 -0
- package/ios/ui/Style/View+applyStyle.swift +38 -0
- package/ios/ui/Views/VoltraButton.swift +57 -0
- package/ios/ui/Views/VoltraChart.swift +840 -0
- package/ios/ui/Views/VoltraCircularProgressView.swift +103 -0
- package/ios/ui/Views/VoltraDivider.swift +16 -0
- package/ios/ui/Views/VoltraFlexView.swift +33 -0
- package/ios/ui/Views/VoltraGauge.swift +65 -0
- package/ios/ui/Views/VoltraGlassContainer.swift +29 -0
- package/ios/ui/Views/VoltraGroupBox.swift +26 -0
- package/ios/ui/Views/VoltraHStack.swift +70 -0
- package/ios/ui/Views/VoltraImage.swift +109 -0
- package/ios/ui/Views/VoltraLabel.swift +24 -0
- package/ios/ui/Views/VoltraLinearGradient.swift +115 -0
- package/ios/ui/Views/VoltraLinearProgressView.swift +118 -0
- package/ios/ui/Views/VoltraLink.swift +25 -0
- package/ios/ui/Views/VoltraMask.swift +23 -0
- package/ios/ui/Views/VoltraSpacer.swift +16 -0
- package/ios/ui/Views/VoltraSymbol.swift +160 -0
- package/ios/ui/Views/VoltraText.swift +87 -0
- package/ios/ui/Views/VoltraTimer.swift +131 -0
- package/ios/ui/Views/VoltraToggle.swift +39 -0
- package/ios/ui/Views/VoltraVStack.swift +68 -0
- package/ios/ui/Views/VoltraZStack.swift +33 -0
- package/ios/ui/Voltra.swift +86 -0
- package/package.json +105 -19
- package/src/VoltraModule.ts +2 -0
- package/src/components/VoltraLiveActivityPreview.tsx +29 -0
- package/src/components/VoltraView.tsx +49 -0
- package/src/components/VoltraWidgetPreview.tsx +38 -0
- package/src/events.ts +70 -0
- package/src/helpers.ts +21 -0
- package/src/index.ts +52 -0
- package/src/live-activity/api.ts +224 -0
- package/src/logger.ts +35 -0
- package/src/native/NativeVoltra.ts +118 -0
- package/src/native/VoltraRNNativeComponent.ts +9 -0
- package/src/preload.ts +50 -0
- package/src/types.ts +12 -0
- package/src/utils/assertRunningOnApple.ts +10 -0
- package/src/utils/helpers.ts +1 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/useUpdateOnHMR.ts +25 -0
- package/src/widgets/server-credentials.ts +16 -0
- package/src/widgets/widget-api.ts +65 -0
- package/build/cjs/VoltraModule.js +0 -6
- package/build/cjs/VoltraModule.js.map +0 -1
- package/build/cjs/components/VoltraLiveActivityPreview.js +0 -20
- package/build/cjs/components/VoltraLiveActivityPreview.js.map +0 -1
- package/build/cjs/components/VoltraView.js +0 -37
- package/build/cjs/components/VoltraView.js.map +0 -1
- package/build/cjs/components/VoltraWidgetPreview.js +0 -26
- package/build/cjs/components/VoltraWidgetPreview.js.map +0 -1
- package/build/cjs/events.js +0 -19
- package/build/cjs/events.js.map +0 -1
- package/build/cjs/helpers.js +0 -30
- package/build/cjs/helpers.js.map +0 -1
- package/build/cjs/index.js +0 -49
- package/build/cjs/index.js.map +0 -1
- package/build/cjs/live-activity/api.js +0 -158
- package/build/cjs/live-activity/api.js.map +0 -1
- package/build/cjs/logger.js +0 -36
- package/build/cjs/logger.js.map +0 -1
- package/build/cjs/preload.js +0 -54
- package/build/cjs/preload.js.map +0 -1
- package/build/cjs/utils/assertRunningOnApple.js +0 -13
- package/build/cjs/utils/assertRunningOnApple.js.map +0 -1
- package/build/cjs/utils/helpers.js +0 -7
- package/build/cjs/utils/helpers.js.map +0 -1
- package/build/cjs/utils/index.js +0 -19
- package/build/cjs/utils/index.js.map +0 -1
- package/build/cjs/utils/useUpdateOnHMR.js +0 -22
- package/build/cjs/utils/useUpdateOnHMR.js.map +0 -1
- package/build/cjs/widgets/server-credentials.js +0 -18
- package/build/cjs/widgets/server-credentials.js.map +0 -1
- package/build/cjs/widgets/widget-api.js +0 -59
- package/build/cjs/widgets/widget-api.js.map +0 -1
- package/build/esm/VoltraModule.js +0 -4
- package/build/esm/VoltraModule.js.map +0 -1
- package/build/esm/components/VoltraLiveActivityPreview.js +0 -17
- package/build/esm/components/VoltraLiveActivityPreview.js.map +0 -1
- package/build/esm/components/VoltraView.js +0 -34
- package/build/esm/components/VoltraView.js.map +0 -1
- package/build/esm/components/VoltraWidgetPreview.js +0 -23
- package/build/esm/components/VoltraWidgetPreview.js.map +0 -1
- package/build/esm/events.js +0 -13
- package/build/esm/events.js.map +0 -1
- package/build/esm/helpers.js +0 -23
- package/build/esm/helpers.js.map +0 -1
- package/build/esm/index.js +0 -10
- package/build/esm/index.js.map +0 -1
- package/build/esm/live-activity/api.js +0 -146
- package/build/esm/live-activity/api.js.map +0 -1
- package/build/esm/logger.js +0 -33
- package/build/esm/logger.js.map +0 -1
- package/build/esm/preload.js +0 -46
- package/build/esm/preload.js.map +0 -1
- package/build/esm/utils/assertRunningOnApple.js +0 -9
- package/build/esm/utils/assertRunningOnApple.js.map +0 -1
- package/build/esm/utils/helpers.js.map +0 -1
- package/build/esm/utils/index.js.map +0 -1
- package/build/esm/utils/useUpdateOnHMR.js +0 -18
- package/build/esm/utils/useUpdateOnHMR.js.map +0 -1
- package/build/esm/widgets/server-credentials.js +0 -11
- package/build/esm/widgets/server-credentials.js.map +0 -1
- package/build/esm/widgets/widget-api.js +0 -47
- package/build/esm/widgets/widget-api.js.map +0 -1
- package/build/types/VoltraModule.d.ts +0 -44
- package/build/types/VoltraModule.d.ts.map +0 -1
- package/build/types/components/VoltraLiveActivityPreview.d.ts.map +0 -1
- package/build/types/components/VoltraView.d.ts.map +0 -1
- package/build/types/components/VoltraWidgetPreview.d.ts.map +0 -1
- package/build/types/events.d.ts.map +0 -1
- package/build/types/helpers.d.ts.map +0 -1
- package/build/types/index.d.ts.map +0 -1
- package/build/types/live-activity/api.d.ts.map +0 -1
- package/build/types/logger.d.ts.map +0 -1
- package/build/types/preload.d.ts.map +0 -1
- package/build/types/types.d.ts.map +0 -1
- package/build/types/utils/assertRunningOnApple.d.ts.map +0 -1
- package/build/types/utils/helpers.d.ts.map +0 -1
- package/build/types/utils/index.d.ts.map +0 -1
- package/build/types/utils/useUpdateOnHMR.d.ts.map +0 -1
- package/build/types/widgets/server-credentials.d.ts.map +0 -1
- package/build/types/widgets/widget-api.d.ts.map +0 -1
- /package/build/{types → typescript/commonjs}/components/VoltraLiveActivityPreview.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/components/VoltraView.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/components/VoltraWidgetPreview.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/events.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/helpers.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/live-activity/api.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/logger.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/preload.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/types.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/utils/assertRunningOnApple.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/utils/helpers.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/utils/index.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/utils/useUpdateOnHMR.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/widgets/server-credentials.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/widgets/widget-api.d.ts +0 -0
- /package/{build → expo-plugin/build}/cjs/package.json +0 -0
- /package/{build → expo-plugin/build}/cjs/types.js +0 -0
- /package/{build → expo-plugin/build}/cjs/types.js.map +0 -0
- /package/{build → expo-plugin/build}/esm/package.json +0 -0
- /package/{build → expo-plugin/build}/esm/types.js +0 -0
- /package/{build → expo-plugin/build}/esm/types.js.map +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets the entitlements for the widget extension.
|
|
3
|
+
*/
|
|
4
|
+
export declare function getWidgetExtensionEntitlements(groupIdentifier?: string, keychainGroup?: string): Record<string, any>;
|
|
5
|
+
export interface GenerateEntitlementsOptions {
|
|
6
|
+
targetPath: string;
|
|
7
|
+
targetName: string;
|
|
8
|
+
groupIdentifier?: string;
|
|
9
|
+
keychainGroup?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Generates the entitlements file for the widget extension.
|
|
13
|
+
*
|
|
14
|
+
* @param options - Generation options
|
|
15
|
+
*/
|
|
16
|
+
export declare function generateEntitlements(options: GenerateEntitlementsOptions): void;
|
|
17
|
+
//# sourceMappingURL=entitlements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entitlements.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/files/entitlements.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAcpH;AAED,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,IAAI,CAS/E"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ConfigPlugin } from '@expo/config-plugins';
|
|
2
|
+
import type { IOSWidgetConfig } from '../../types';
|
|
3
|
+
export interface GenerateWidgetExtensionFilesProps {
|
|
4
|
+
targetName: string;
|
|
5
|
+
widgets?: IOSWidgetConfig[];
|
|
6
|
+
groupIdentifier?: string;
|
|
7
|
+
keychainGroup?: string;
|
|
8
|
+
version: string;
|
|
9
|
+
buildNumber: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Plugin step that generates all widget extension files.
|
|
13
|
+
*
|
|
14
|
+
* This creates:
|
|
15
|
+
* - Info.plist (required extension manifest)
|
|
16
|
+
* - Assets.xcassets/ (asset catalog with user images)
|
|
17
|
+
* - VoltraWidgetBundle.swift (widget bundle definition)
|
|
18
|
+
* - VoltraWidgetInitialStates.swift (pre-rendered widget states)
|
|
19
|
+
* - {targetName}.entitlements (entitlements file)
|
|
20
|
+
*
|
|
21
|
+
* This should run before configureXcodeProject so the files exist when Xcode project is configured.
|
|
22
|
+
*/
|
|
23
|
+
export declare const generateWidgetExtensionFiles: ConfigPlugin<GenerateWidgetExtensionFilesProps>;
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAA;AAIrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAMlD,MAAM,WAAW,iCAAiC;IAChD,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,4BAA4B,EAAE,YAAY,CAAC,iCAAiC,CA0CxF,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates the Info.plist file for the widget extension.
|
|
3
|
+
*
|
|
4
|
+
* @param targetPath - Path to the widget extension target directory
|
|
5
|
+
* @param targetName - The widget extension target name (used for CFBundleDisplayName)
|
|
6
|
+
* @param version - The app version (CFBundleShortVersionString)
|
|
7
|
+
* @param buildNumber - The build number (CFBundleVersion)
|
|
8
|
+
*/
|
|
9
|
+
export declare function generateInfoPlist(targetPath: string, targetName: string, version: string, buildNumber: string): void;
|
|
10
|
+
//# sourceMappingURL=infoPlist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infoPlist.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/files/infoPlist.ts"],"names":[],"mappings":"AA4CA;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAIpH"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type PrerenderedWidgetStates } from '@use-voltra/expo-plugin';
|
|
2
|
+
import type { IOSWidgetConfig } from '../../types';
|
|
3
|
+
export interface GenerateSwiftFilesOptions {
|
|
4
|
+
targetPath: string;
|
|
5
|
+
projectRoot: string;
|
|
6
|
+
widgets?: IOSWidgetConfig[];
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Generates all Swift files for the widget extension.
|
|
10
|
+
*
|
|
11
|
+
* This creates:
|
|
12
|
+
* - VoltraWidgetInitialStates.swift (pre-rendered widget states)
|
|
13
|
+
* - VoltraWidgetBundle.swift (widget bundle definition)
|
|
14
|
+
*/
|
|
15
|
+
export declare function generateSwiftFiles(options: GenerateSwiftFilesOptions): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Generates Swift code that bundles pre-rendered widget initial states (per locale when configured).
|
|
18
|
+
*/
|
|
19
|
+
declare function generateInitialStatesSwift(prerenderedStates: PrerenderedWidgetStates): string;
|
|
20
|
+
export declare const __test__: {
|
|
21
|
+
generateInitialStatesSwift: typeof generateInitialStatesSwift;
|
|
22
|
+
};
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=swift.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/files/swift.ts"],"names":[],"mappings":"AAIA,OAAO,EAKL,KAAK,uBAAuB,EAE7B,MAAM,yBAAyB,CAAA;AAGhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAGlD,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;CAC5B;AAQD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B1F;AAoTD;;GAEG;AACH,iBAAS,0BAA0B,CAAC,iBAAiB,EAAE,uBAAuB,GAAG,MAAM,CA8CtF;AAiDD,eAAO,MAAM,QAAQ;;CAEpB,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Font configuration for Live Activity extension.
|
|
3
|
+
*
|
|
4
|
+
* This code is adapted from expo-font to support custom fonts in Live Activities.
|
|
5
|
+
* @see https://github.com/expo/expo/tree/main/packages/expo-font/plugin
|
|
6
|
+
*
|
|
7
|
+
* I would love to reuse the existing expo-font infrastructure, but it's not that easy to do. I'll most likely revisit it later.
|
|
8
|
+
*/
|
|
9
|
+
import { type ConfigPlugin } from '@expo/config-plugins';
|
|
10
|
+
/**
|
|
11
|
+
* Plugin that adds custom fonts to the Live Activity extension.
|
|
12
|
+
*
|
|
13
|
+
* @param config - The Expo config
|
|
14
|
+
* @param fonts - Array of font file paths or directories
|
|
15
|
+
* @param targetName - Name of the Live Activity extension target
|
|
16
|
+
* @returns Modified config
|
|
17
|
+
*/
|
|
18
|
+
export declare const withFonts: ConfigPlugin<{
|
|
19
|
+
fonts: string[];
|
|
20
|
+
targetName: string;
|
|
21
|
+
}>;
|
|
22
|
+
//# sourceMappingURL=fonts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../../../src/ios-widget/fonts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAiE,MAAM,sBAAsB,CAAA;AASvH;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,EAAE,YAAY,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAQ3E,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ConfigPlugin } from '@expo/config-plugins';
|
|
2
|
+
import type { IOSWidgetConfig } from '../types';
|
|
3
|
+
export interface WithIOSProps {
|
|
4
|
+
targetName: string;
|
|
5
|
+
bundleIdentifier: string;
|
|
6
|
+
deploymentTarget: string;
|
|
7
|
+
widgets?: IOSWidgetConfig[];
|
|
8
|
+
groupIdentifier?: string;
|
|
9
|
+
keychainGroup?: string;
|
|
10
|
+
fonts?: string[];
|
|
11
|
+
version: string;
|
|
12
|
+
buildNumber: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Main iOS configuration plugin.
|
|
16
|
+
*
|
|
17
|
+
* This orchestrates all iOS-related configuration in the correct order:
|
|
18
|
+
* 1. Add custom fonts (if provided)
|
|
19
|
+
* 2. Configure Xcode project (targets, build phases, groups)
|
|
20
|
+
* 3. Configure Podfile for widget extension
|
|
21
|
+
* 4. Configure main app Info.plist (URL schemes)
|
|
22
|
+
* 5. Configure EAS build settings
|
|
23
|
+
* 6. Generate widget extension files (Swift, assets, plist, entitlements)
|
|
24
|
+
*
|
|
25
|
+
* NOTE: Expo mods execute in REVERSE registration order. Plugins that depend
|
|
26
|
+
* on modifications from other plugins must be registered BEFORE their dependencies.
|
|
27
|
+
* For example, fonts plugin needs the target created by configureXcodeProject,
|
|
28
|
+
* so fonts must be registered before configureXcodeProject.
|
|
29
|
+
*/
|
|
30
|
+
export declare const withIOS: ConfigPlugin<WithIOSProps>;
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ios-widget/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAe,MAAM,sBAAsB,CAAA;AAEhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAQ/C,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,OAAO,EAAE,YAAY,CAAC,YAAY,CAkC9C,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ConfigPlugin } from '@expo/config-plugins';
|
|
2
|
+
export interface ConfigurePodfileProps {
|
|
3
|
+
targetName: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Plugin step that adds the Podfile target for the widget extension.
|
|
7
|
+
*/
|
|
8
|
+
export declare const configurePodfile: ConfigPlugin<ConfigurePodfileProps>;
|
|
9
|
+
//# sourceMappingURL=podfile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"podfile.d.ts","sourceRoot":"","sources":["../../../src/ios-widget/podfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkC,MAAM,sBAAsB,CAAA;AAuBnF,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,YAAY,CAAC,qBAAqB,CAahE,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ConfigPlugin } from '@expo/config-plugins';
|
|
2
|
+
import type { IOSWidgetConfig } from '../types';
|
|
3
|
+
export interface ConfigureMainAppPlistProps {
|
|
4
|
+
targetName: string;
|
|
5
|
+
groupIdentifier?: string;
|
|
6
|
+
widgets?: IOSWidgetConfig[];
|
|
7
|
+
keychainGroup?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Plugin step that configures the Info.plist files.
|
|
11
|
+
*
|
|
12
|
+
* This:
|
|
13
|
+
* - Updates the widget extension's Info.plist with URL schemes
|
|
14
|
+
* - Removes incompatible NSExtension keys for WidgetKit
|
|
15
|
+
* - Adds group identifier if configured
|
|
16
|
+
* - Adds server update URLs and intervals for server-driven widgets
|
|
17
|
+
* - Adds Keychain group for shared credential access
|
|
18
|
+
*/
|
|
19
|
+
export declare const configureWidgetExtensionPlist: ConfigPlugin<ConfigureMainAppPlistProps>;
|
|
20
|
+
//# sourceMappingURL=widgetPlist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widgetPlist.d.ts","sourceRoot":"","sources":["../../../src/ios-widget/widgetPlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA+B,MAAM,sBAAsB,CAAA;AAKhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG/C,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,EAAE,YAAY,CAAC,0BAA0B,CAyF/E,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { XcodeProject } from '@expo/config-plugins';
|
|
2
|
+
import type { IOSWidgetExtensionFiles } from '../../types';
|
|
3
|
+
export interface AddBuildPhasesOptions {
|
|
4
|
+
targetUuid: string;
|
|
5
|
+
groupName: string;
|
|
6
|
+
productFile: {
|
|
7
|
+
uuid: string;
|
|
8
|
+
target?: string;
|
|
9
|
+
basename: string;
|
|
10
|
+
group: string;
|
|
11
|
+
};
|
|
12
|
+
widgetFiles: IOSWidgetExtensionFiles;
|
|
13
|
+
}
|
|
14
|
+
export interface EnsureBuildPhasesOptions extends AddBuildPhasesOptions {
|
|
15
|
+
mainTargetUuid?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Adds all required build phases for the widget extension target.
|
|
19
|
+
*/
|
|
20
|
+
export declare function addBuildPhases(xcodeProject: XcodeProject, options: AddBuildPhasesOptions): void;
|
|
21
|
+
/**
|
|
22
|
+
* Ensures all required build phases and files exist for the widget extension target.
|
|
23
|
+
*/
|
|
24
|
+
export declare function ensureBuildPhases(xcodeProject: XcodeProject, options: EnsureBuildPhasesOptions): void;
|
|
25
|
+
//# sourceMappingURL=buildPhases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildPhases.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/buildPhases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAI1D,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,WAAW,EAAE,uBAAuB,CAAA;CACrC;AAED,MAAM,WAAW,wBAAyB,SAAQ,qBAAqB;IACrE,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAuC/F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAuDrG"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { XcodeProject } from '@expo/config-plugins';
|
|
2
|
+
export interface AddConfigurationListOptions {
|
|
3
|
+
targetName: string;
|
|
4
|
+
bundleIdentifier: string;
|
|
5
|
+
deploymentTarget: string;
|
|
6
|
+
codeSignStyle?: string;
|
|
7
|
+
developmentTeam?: string;
|
|
8
|
+
provisioningProfileSpecifier?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Adds the XCConfigurationList for the widget extension target.
|
|
12
|
+
*/
|
|
13
|
+
export declare function addXCConfigurationList(xcodeProject: XcodeProject, options: AddConfigurationListOptions): any;
|
|
14
|
+
/**
|
|
15
|
+
* Ensures an existing XCConfigurationList is updated, or adds a new one if missing.
|
|
16
|
+
*/
|
|
17
|
+
export declare function ensureXCConfigurationList(xcodeProject: XcodeProject, options: AddConfigurationListOptions, existingConfigurationListId?: string | {
|
|
18
|
+
value?: string;
|
|
19
|
+
}): any;
|
|
20
|
+
//# sourceMappingURL=configurationList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configurationList.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/configurationList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAInD,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,4BAA4B,CAAC,EAAE,MAAM,CAAA;CACtC;AA0CD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,2BAA2B,OA4BtG;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,2BAA2B,EACpC,2BAA2B,CAAC,EAAE,MAAM,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,OAkC1D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { XcodeProject } from '@expo/config-plugins';
|
|
2
|
+
import type { IOSWidgetExtensionFiles } from '../../types';
|
|
3
|
+
export interface AddPbxGroupOptions {
|
|
4
|
+
targetName: string;
|
|
5
|
+
widgetFiles: IOSWidgetExtensionFiles;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Adds a PBXGroup for the widget extension files.
|
|
9
|
+
*/
|
|
10
|
+
export declare function addPbxGroup(xcodeProject: XcodeProject, options: AddPbxGroupOptions): void;
|
|
11
|
+
/**
|
|
12
|
+
* Ensures a PBXGroup exists for the widget extension files.
|
|
13
|
+
*/
|
|
14
|
+
export declare function ensurePbxGroup(xcodeProject: XcodeProject, options: AddPbxGroupOptions): void;
|
|
15
|
+
//# sourceMappingURL=groups.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/groups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAI1D,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,uBAAuB,CAAA;CACrC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CA4BzF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAiC5F"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ConfigPlugin } from '@expo/config-plugins';
|
|
2
|
+
export interface ConfigureXcodeProjectProps {
|
|
3
|
+
targetName: string;
|
|
4
|
+
bundleIdentifier: string;
|
|
5
|
+
deploymentTarget: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Plugin step that configures the Xcode project for the widget extension.
|
|
9
|
+
*
|
|
10
|
+
* This:
|
|
11
|
+
* - Adds XCConfigurationList with Debug/Release configurations
|
|
12
|
+
* - Adds the product file (.appex)
|
|
13
|
+
* - Configures the native target
|
|
14
|
+
* - Adds build phases (Sources, CopyFiles, Frameworks, Resources)
|
|
15
|
+
* - Adds PBXGroup for widget files
|
|
16
|
+
*
|
|
17
|
+
* This should run after generateWidgetExtensionFiles so the files exist.
|
|
18
|
+
*/
|
|
19
|
+
export declare const configureXcodeProject: ConfigPlugin<ConfigureXcodeProjectProps>;
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAA;AAWrE,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAAY,CAAC,0BAA0B,CAuH1E,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { XcodeProject } from '@expo/config-plugins';
|
|
2
|
+
export interface MainAppTargetSettings {
|
|
3
|
+
deploymentTarget: string;
|
|
4
|
+
codeSignStyle?: string;
|
|
5
|
+
developmentTeam?: string;
|
|
6
|
+
provisioningProfileSpecifier?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Reads build settings from the main app target to synchronize code signing with the widget extension.
|
|
10
|
+
*
|
|
11
|
+
* @param xcodeProject The Xcode project instance
|
|
12
|
+
* @returns The main app target's build settings, or null if not found
|
|
13
|
+
*/
|
|
14
|
+
export declare function getMainAppTargetSettings(xcodeProject: XcodeProject): MainAppTargetSettings | null;
|
|
15
|
+
//# sourceMappingURL=mainAppSettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mainAppSettings.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/mainAppSettings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,4BAA4B,CAAC,EAAE,MAAM,CAAA;CACtC;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,YAAY,GAAG,qBAAqB,GAAG,IAAI,CA+EjG"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { XcodeProject } from '@expo/config-plugins';
|
|
2
|
+
export interface AddProductFileOptions {
|
|
3
|
+
targetName: string;
|
|
4
|
+
groupName: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Adds the product file (.appex) for the widget extension.
|
|
8
|
+
*/
|
|
9
|
+
export declare function addProductFile(xcodeProject: XcodeProject, options: AddProductFileOptions): any;
|
|
10
|
+
/**
|
|
11
|
+
* Ensures the product file (.appex) exists and returns it.
|
|
12
|
+
*/
|
|
13
|
+
export declare function ensureProductFile(xcodeProject: XcodeProject, options: AddProductFileOptions): any;
|
|
14
|
+
//# sourceMappingURL=productFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"productFile.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/productFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAsCD;;GAEG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,OAkBxF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,OAqB3F"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { XcodeProject } from '@expo/config-plugins';
|
|
2
|
+
export interface ConfigureTargetOptions {
|
|
3
|
+
targetName: string;
|
|
4
|
+
targetUuid: string;
|
|
5
|
+
productFile: {
|
|
6
|
+
fileRef: string;
|
|
7
|
+
};
|
|
8
|
+
xCConfigurationList: {
|
|
9
|
+
uuid: string;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Configures the widget extension target in the Xcode project.
|
|
14
|
+
*
|
|
15
|
+
* This:
|
|
16
|
+
* - Adds the target to PBXNativeTarget section
|
|
17
|
+
* - Adds the target to PBXProject section
|
|
18
|
+
* - Adds a dependency from the main app to the widget extension
|
|
19
|
+
*/
|
|
20
|
+
export declare function configureTarget(xcodeProject: XcodeProject, options: ConfigureTargetOptions): {
|
|
21
|
+
uuid: string;
|
|
22
|
+
pbxNativeTarget: {
|
|
23
|
+
isa: string;
|
|
24
|
+
name: string;
|
|
25
|
+
productName: string;
|
|
26
|
+
productReference: string;
|
|
27
|
+
productType: string;
|
|
28
|
+
buildConfigurationList: string;
|
|
29
|
+
buildPhases: never[];
|
|
30
|
+
buildRules: never[];
|
|
31
|
+
dependencies: never[];
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Ensures target attributes (LastSwiftMigration) exist for the target.
|
|
36
|
+
*/
|
|
37
|
+
export declare function ensureTargetAttributes(xcodeProject: XcodeProject, targetUuid: string): void;
|
|
38
|
+
/**
|
|
39
|
+
* Ensures a target dependency exists so the main app depends on the widget extension.
|
|
40
|
+
*/
|
|
41
|
+
export declare function ensureTargetDependency(xcodeProject: XcodeProject, targetUuid: string): void;
|
|
42
|
+
//# sourceMappingURL=target.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAQnD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAChC,mBAAmB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CACtC;AAaD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,sBAAsB;;;;;;;;;;;;;EAM1F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAa3F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAqB3F"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { ConfigPlugin } from '@expo/config-plugins';
|
|
2
|
+
import type { WidgetInitialStatePath, WidgetLabel } from '@use-voltra/expo-plugin';
|
|
3
|
+
/**
|
|
4
|
+
* Supported iOS Home Screen widget size families.
|
|
5
|
+
*/
|
|
6
|
+
export type IOSWidgetFamily = 'systemSmall' | 'systemMedium' | 'systemLarge' | 'systemExtraLarge' | 'accessoryCircular' | 'accessoryRectangular' | 'accessoryInline';
|
|
7
|
+
/**
|
|
8
|
+
* Configuration for a single iOS home screen widget.
|
|
9
|
+
*/
|
|
10
|
+
export interface IOSWidgetConfig {
|
|
11
|
+
/**
|
|
12
|
+
* Unique identifier for the widget (used as the widget kind and in JS API)
|
|
13
|
+
*/
|
|
14
|
+
id: string;
|
|
15
|
+
displayName: WidgetLabel;
|
|
16
|
+
description: WidgetLabel;
|
|
17
|
+
/** @default ['systemSmall', 'systemMedium', 'systemLarge'] */
|
|
18
|
+
supportedFamilies?: IOSWidgetFamily[];
|
|
19
|
+
initialStatePath?: WidgetInitialStatePath;
|
|
20
|
+
serverUpdate?: IOSWidgetServerUpdateConfig;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Server-driven iOS widget updates (WidgetKit background refresh).
|
|
24
|
+
*/
|
|
25
|
+
export interface IOSWidgetServerUpdateConfig {
|
|
26
|
+
url: string;
|
|
27
|
+
/** @default 15 */
|
|
28
|
+
intervalMinutes?: number;
|
|
29
|
+
/** @default false */
|
|
30
|
+
refresh?: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Files in the widget extension target (Xcode build phases / groups).
|
|
34
|
+
*/
|
|
35
|
+
export interface IOSWidgetExtensionFiles {
|
|
36
|
+
swiftFiles: string[];
|
|
37
|
+
entitlementFiles: string[];
|
|
38
|
+
plistFiles: string[];
|
|
39
|
+
assetDirectories: string[];
|
|
40
|
+
intentFiles: string[];
|
|
41
|
+
/** Paths relative to the widget extension root (e.g. en.lproj/VoltraWidgets.strings) */
|
|
42
|
+
localizedStringResources: string[];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Options for `@use-voltra/ios-client` Expo config plugin.
|
|
46
|
+
*/
|
|
47
|
+
export interface IOSConfigPluginProps {
|
|
48
|
+
enablePushNotifications?: boolean;
|
|
49
|
+
groupIdentifier?: string;
|
|
50
|
+
widgets?: IOSWidgetConfig[];
|
|
51
|
+
deploymentTarget?: string;
|
|
52
|
+
targetName?: string;
|
|
53
|
+
fonts?: string[];
|
|
54
|
+
keychainGroup?: string;
|
|
55
|
+
}
|
|
56
|
+
export type VoltraIosConfigPlugin = ConfigPlugin<IOSConfigPluginProps | undefined>;
|
|
57
|
+
export interface IOSMainAppPluginProps {
|
|
58
|
+
groupIdentifier?: string;
|
|
59
|
+
widgetIds?: string[];
|
|
60
|
+
widgets?: IOSWidgetConfig[];
|
|
61
|
+
keychainGroup?: string;
|
|
62
|
+
}
|
|
63
|
+
export interface IOSWidgetExtensionPluginProps {
|
|
64
|
+
targetName: string;
|
|
65
|
+
bundleIdentifier: string;
|
|
66
|
+
deploymentTarget: string;
|
|
67
|
+
widgets?: IOSWidgetConfig[];
|
|
68
|
+
groupIdentifier?: string;
|
|
69
|
+
keychainGroup?: string;
|
|
70
|
+
fonts?: string[];
|
|
71
|
+
version: string;
|
|
72
|
+
buildNumber: string;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,OAAO,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAElF;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,cAAc,GACd,aAAa,GACb,kBAAkB,GAClB,mBAAmB,GACnB,sBAAsB,GACtB,iBAAiB,CAAA;AAErB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,WAAW,CAAA;IACxB,WAAW,EAAE,WAAW,CAAA;IACxB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAA;IACrC,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,YAAY,CAAC,EAAE,2BAA2B,CAAA;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,GAAG,EAAE,MAAM,CAAA;IACX,kBAAkB;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,qBAAqB;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,wFAAwF;IACxF,wBAAwB,EAAE,MAAM,EAAE,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,MAAM,qBAAqB,GAAG,YAAY,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAA;AAElF,MAAM,WAAW,qBAAqB;IACpC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,6BAA6B;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;CACpB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { IOSWidgetExtensionFiles } from '../types';
|
|
2
|
+
/** Table name matches basename without extension; co-located per locale in *.lproj */
|
|
3
|
+
export declare const VOLTRA_WIDGET_STRINGS_BASENAME = "VoltraWidgets.strings";
|
|
4
|
+
/**
|
|
5
|
+
* Scans the widget extension target directory and returns categorized file lists.
|
|
6
|
+
*
|
|
7
|
+
* This function only reads the directory structure - it does NOT copy or create files.
|
|
8
|
+
* File generation should be done before this is called.
|
|
9
|
+
*
|
|
10
|
+
* @param targetPath - Path to the widget extension target directory
|
|
11
|
+
* @param targetName - Name of the target (for entitlements file)
|
|
12
|
+
* @returns Categorized lists of files for Xcode project configuration
|
|
13
|
+
*/
|
|
14
|
+
export declare function getIOSWidgetExtensionFiles(targetPath: string, targetName: string): IOSWidgetExtensionFiles;
|
|
15
|
+
//# sourceMappingURL=fileDiscovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileDiscovery.d.ts","sourceRoot":"","sources":["../../../src/utils/fileDiscovery.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAGvD,sFAAsF;AACtF,eAAO,MAAM,8BAA8B,0BAA0B,CAAA;AAErE;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,uBAAuB,CA4E1G"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ExpoConfig } from 'expo/config';
|
|
2
|
+
/**
|
|
3
|
+
* Ensures the main app has a URL scheme set so widgetURL can open it.
|
|
4
|
+
* This is an optional feature for deep linking from widgets.
|
|
5
|
+
*
|
|
6
|
+
* @param config - The Expo config object
|
|
7
|
+
* @returns The modified config with URL scheme ensured
|
|
8
|
+
*/
|
|
9
|
+
export declare function ensureURLScheme(config: ExpoConfig): ExpoConfig;
|
|
10
|
+
//# sourceMappingURL=urlScheme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"urlScheme.d.ts","sourceRoot":"","sources":["../../../src/utils/urlScheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAmC9D"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { IOSConfigPluginProps, IOSWidgetConfig } from './types';
|
|
2
|
+
export declare function validateIOSWidgetConfig(widget: IOSWidgetConfig): void;
|
|
3
|
+
export declare function validateIOSConfigPluginProps(props: IOSConfigPluginProps): void;
|
|
4
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAmB,MAAM,SAAS,CAAA;AAYrF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAoBrE;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CA0B9E"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** @type {import('jest').Config} */
|
|
2
|
+
module.exports = {
|
|
3
|
+
testEnvironment: 'node',
|
|
4
|
+
testMatch: ['<rootDir>/src/**/*.node.test.ts'],
|
|
5
|
+
modulePathIgnorePatterns: ['<rootDir>/build'],
|
|
6
|
+
moduleNameMapper: {
|
|
7
|
+
'^@use-voltra/expo-plugin$': '<rootDir>/../../expo-plugin/src/index.ts',
|
|
8
|
+
'^@use-voltra/expo-plugin/(.*)$': '<rootDir>/../../expo-plugin/src/$1',
|
|
9
|
+
},
|
|
10
|
+
transform: {
|
|
11
|
+
'^.+\\.tsx?$': [
|
|
12
|
+
'ts-jest',
|
|
13
|
+
{
|
|
14
|
+
tsconfig: '<rootDir>/tsconfig.jest.json',
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
},
|
|
18
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { IOSWidgetFamily } from './types'
|
|
2
|
+
|
|
3
|
+
export const IOS = {
|
|
4
|
+
DEPLOYMENT_TARGET: '17.0',
|
|
5
|
+
SWIFT_VERSION: '5.0',
|
|
6
|
+
DEVICE_FAMILY: '1,2',
|
|
7
|
+
LAST_SWIFT_MIGRATION: 1250,
|
|
8
|
+
} as const
|
|
9
|
+
|
|
10
|
+
/** Default path for user-provided widget images */
|
|
11
|
+
export const DEFAULT_USER_IMAGES_PATH = './assets/voltra'
|
|
12
|
+
|
|
13
|
+
export const SUPPORTED_IMAGE_EXTENSIONS = /\.(png|jpg|jpeg)$/i
|
|
14
|
+
|
|
15
|
+
export const DEFAULT_WIDGET_FAMILIES: IOSWidgetFamily[] = ['systemSmall', 'systemMedium', 'systemLarge']
|
|
16
|
+
|
|
17
|
+
export const WIDGET_FAMILY_MAP: Record<IOSWidgetFamily, string> = {
|
|
18
|
+
systemSmall: '.systemSmall',
|
|
19
|
+
systemMedium: '.systemMedium',
|
|
20
|
+
systemLarge: '.systemLarge',
|
|
21
|
+
systemExtraLarge: '.systemExtraLarge',
|
|
22
|
+
accessoryCircular: '.accessoryCircular',
|
|
23
|
+
accessoryRectangular: '.accessoryRectangular',
|
|
24
|
+
accessoryInline: '.accessoryInline',
|
|
25
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { IOSConfig } from 'expo/config-plugins'
|
|
2
|
+
|
|
3
|
+
import { IOS } from './constants'
|
|
4
|
+
import { withIOS, withPushNotifications } from './ios'
|
|
5
|
+
import { withIOS as withIOSWidget } from './ios-widget'
|
|
6
|
+
import type { IOSConfigPluginProps, VoltraIosConfigPlugin } from './types'
|
|
7
|
+
import { ensureURLScheme } from './utils/urlScheme'
|
|
8
|
+
import { validateIOSConfigPluginProps } from './validation'
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Voltra iOS Expo config plugin.
|
|
12
|
+
*
|
|
13
|
+
* Configures Live Activities, the widget extension, and optional push-to-start support.
|
|
14
|
+
*/
|
|
15
|
+
const withVoltraIos: VoltraIosConfigPlugin = (config, props = {}) => {
|
|
16
|
+
validateIOSConfigPluginProps(props)
|
|
17
|
+
|
|
18
|
+
const iosBundleIdentifier = config.ios?.bundleIdentifier
|
|
19
|
+
if (!iosBundleIdentifier) {
|
|
20
|
+
return config
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const deploymentTarget = props.deploymentTarget || IOS.DEPLOYMENT_TARGET
|
|
24
|
+
const targetName = props.targetName || `${IOSConfig.XcodeUtils.sanitizedName(config.name)}LiveActivity`
|
|
25
|
+
const bundleIdentifier = `${iosBundleIdentifier}.${targetName}`
|
|
26
|
+
const version = config.version || '1.0.0'
|
|
27
|
+
const buildNumber = config.ios?.buildNumber || '1'
|
|
28
|
+
|
|
29
|
+
config = ensureURLScheme(config)
|
|
30
|
+
|
|
31
|
+
const hasServerDrivenWidgets = props.widgets?.some((w) => w.serverUpdate) ?? false
|
|
32
|
+
const keychainGroup =
|
|
33
|
+
props.keychainGroup ?? (hasServerDrivenWidgets ? `$(AppIdentifierPrefix)${iosBundleIdentifier}` : undefined)
|
|
34
|
+
|
|
35
|
+
config = withIOS(config, {
|
|
36
|
+
groupIdentifier: props.groupIdentifier,
|
|
37
|
+
widgetIds: props.widgets && props.widgets.length > 0 ? props.widgets.map((w) => w.id) : undefined,
|
|
38
|
+
widgets: props.widgets,
|
|
39
|
+
keychainGroup,
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
config = withIOSWidget(config, {
|
|
43
|
+
targetName,
|
|
44
|
+
bundleIdentifier,
|
|
45
|
+
deploymentTarget,
|
|
46
|
+
widgets: props.widgets,
|
|
47
|
+
version,
|
|
48
|
+
buildNumber,
|
|
49
|
+
...(props.groupIdentifier ? { groupIdentifier: props.groupIdentifier } : {}),
|
|
50
|
+
...(keychainGroup ? { keychainGroup } : {}),
|
|
51
|
+
...(props.fonts ? { fonts: props.fonts } : {}),
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
if (props.enablePushNotifications) {
|
|
55
|
+
config = withPushNotifications(config)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return config
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export default withVoltraIos
|
|
62
|
+
|
|
63
|
+
export type {
|
|
64
|
+
IOSConfigPluginProps,
|
|
65
|
+
IOSMainAppPluginProps,
|
|
66
|
+
IOSWidgetConfig,
|
|
67
|
+
IOSWidgetExtensionFiles,
|
|
68
|
+
IOSWidgetExtensionPluginProps,
|
|
69
|
+
IOSWidgetFamily,
|
|
70
|
+
IOSWidgetServerUpdateConfig,
|
|
71
|
+
VoltraIosConfigPlugin,
|
|
72
|
+
} from './types'
|