@use-voltra/expo-plugin 1.4.0 → 2.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -29
- package/build/cjs/constants.js +3 -43
- package/build/cjs/constants.js.map +1 -1
- package/build/cjs/index.js +23 -69
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/types.js +4 -0
- package/build/cjs/types.js.map +1 -1
- package/build/cjs/utils/localePick.js +48 -0
- package/build/cjs/utils/localePick.js.map +1 -0
- package/build/cjs/utils/prerender.js +15 -9
- package/build/cjs/utils/prerender.js.map +1 -1
- package/build/cjs/utils/widgetLabel.js +19 -0
- package/build/cjs/utils/widgetLabel.js.map +1 -0
- package/build/cjs/validation.js +75 -166
- package/build/cjs/validation.js.map +1 -1
- package/build/esm/constants.js +2 -42
- package/build/esm/constants.js.map +1 -1
- package/build/esm/index.js +8 -69
- package/build/esm/index.js.map +1 -1
- package/build/esm/types.js +4 -0
- package/build/esm/types.js.map +1 -1
- package/build/esm/utils/localePick.js +44 -0
- package/build/esm/utils/localePick.js.map +1 -0
- package/build/esm/utils/prerender.js +15 -9
- package/build/esm/utils/prerender.js.map +1 -1
- package/build/esm/utils/widgetLabel.js +15 -0
- package/build/esm/utils/widgetLabel.js.map +1 -0
- package/build/esm/validation.js +71 -163
- package/build/esm/validation.js.map +1 -1
- package/build/types/constants.d.ts +2 -26
- package/build/types/constants.d.ts.map +1 -1
- package/build/types/index.d.ts +10 -12
- package/build/types/index.d.ts.map +1 -1
- package/build/types/types.d.ts +9 -260
- package/build/types/types.d.ts.map +1 -1
- package/build/types/utils/localePick.d.ts +7 -0
- package/build/types/utils/localePick.d.ts.map +1 -0
- package/build/types/utils/prerender.d.ts +6 -3
- package/build/types/utils/prerender.d.ts.map +1 -1
- package/build/types/utils/widgetLabel.d.ts +8 -0
- package/build/types/utils/widgetLabel.d.ts.map +1 -0
- package/build/types/validation.d.ts +6 -14
- package/build/types/validation.d.ts.map +1 -1
- package/package.json +11 -11
- package/build/cjs/android/files/assets.js +0 -259
- package/build/cjs/android/files/assets.js.map +0 -1
- package/build/cjs/android/files/fonts.js +0 -69
- package/build/cjs/android/files/fonts.js.map +0 -1
- package/build/cjs/android/files/index.js +0 -81
- package/build/cjs/android/files/index.js.map +0 -1
- package/build/cjs/android/files/initialStates.js +0 -83
- package/build/cjs/android/files/initialStates.js.map +0 -1
- package/build/cjs/android/files/kotlin.js +0 -142
- package/build/cjs/android/files/kotlin.js.map +0 -1
- package/build/cjs/android/files/xml.js +0 -247
- package/build/cjs/android/files/xml.js.map +0 -1
- package/build/cjs/android/index.js +0 -33
- package/build/cjs/android/index.js.map +0 -1
- package/build/cjs/android/manifest.js +0 -92
- package/build/cjs/android/manifest.js.map +0 -1
- package/build/cjs/ios/eas.js +0 -28
- package/build/cjs/ios/eas.js.map +0 -1
- package/build/cjs/ios/entitlements.js +0 -46
- package/build/cjs/ios/entitlements.js.map +0 -1
- package/build/cjs/ios/index.js +0 -39
- package/build/cjs/ios/index.js.map +0 -1
- package/build/cjs/ios/infoPlist.js +0 -51
- package/build/cjs/ios/infoPlist.js.map +0 -1
- package/build/cjs/ios/pushNotifications.js +0 -22
- package/build/cjs/ios/pushNotifications.js.map +0 -1
- package/build/cjs/ios-widget/eas.js +0 -66
- package/build/cjs/ios-widget/eas.js.map +0 -1
- package/build/cjs/ios-widget/files/assets.js +0 -199
- package/build/cjs/ios-widget/files/assets.js.map +0 -1
- package/build/cjs/ios-widget/files/entitlements.js +0 -77
- package/build/cjs/ios-widget/files/entitlements.js.map +0 -1
- package/build/cjs/ios-widget/files/index.js +0 -92
- package/build/cjs/ios-widget/files/index.js.map +0 -1
- package/build/cjs/ios-widget/files/infoPlist.js +0 -91
- package/build/cjs/ios-widget/files/infoPlist.js.map +0 -1
- package/build/cjs/ios-widget/files/swift.js +0 -256
- package/build/cjs/ios-widget/files/swift.js.map +0 -1
- package/build/cjs/ios-widget/fonts.js +0 -151
- package/build/cjs/ios-widget/fonts.js.map +0 -1
- package/build/cjs/ios-widget/index.js +0 -46
- package/build/cjs/ios-widget/index.js.map +0 -1
- package/build/cjs/ios-widget/podfile.js +0 -43
- package/build/cjs/ios-widget/podfile.js.map +0 -1
- package/build/cjs/ios-widget/widgetPlist.js +0 -99
- package/build/cjs/ios-widget/widgetPlist.js.map +0 -1
- package/build/cjs/ios-widget/xcode/buildPhases.js +0 -245
- package/build/cjs/ios-widget/xcode/buildPhases.js.map +0 -1
- package/build/cjs/ios-widget/xcode/configurationList.js +0 -91
- package/build/cjs/ios-widget/xcode/configurationList.js.map +0 -1
- package/build/cjs/ios-widget/xcode/groups.js +0 -65
- package/build/cjs/ios-widget/xcode/groups.js.map +0 -1
- package/build/cjs/ios-widget/xcode/index.js +0 -155
- package/build/cjs/ios-widget/xcode/index.js.map +0 -1
- package/build/cjs/ios-widget/xcode/mainAppSettings.js +0 -71
- package/build/cjs/ios-widget/xcode/mainAppSettings.js.map +0 -1
- package/build/cjs/ios-widget/xcode/productFile.js +0 -74
- package/build/cjs/ios-widget/xcode/productFile.js.map +0 -1
- package/build/cjs/ios-widget/xcode/target.js +0 -113
- package/build/cjs/ios-widget/xcode/target.js.map +0 -1
- package/build/cjs/utils/fileDiscovery.js +0 -107
- package/build/cjs/utils/fileDiscovery.js.map +0 -1
- package/build/cjs/utils/urlScheme.js +0 -40
- package/build/cjs/utils/urlScheme.js.map +0 -1
- package/build/esm/android/files/assets.js +0 -223
- package/build/esm/android/files/assets.js.map +0 -1
- package/build/esm/android/files/fonts.js +0 -33
- package/build/esm/android/files/fonts.js.map +0 -1
- package/build/esm/android/files/index.js +0 -77
- package/build/esm/android/files/index.js.map +0 -1
- package/build/esm/android/files/initialStates.js +0 -44
- package/build/esm/android/files/initialStates.js.map +0 -1
- package/build/esm/android/files/kotlin.js +0 -103
- package/build/esm/android/files/kotlin.js.map +0 -1
- package/build/esm/android/files/xml.js +0 -206
- package/build/esm/android/files/xml.js.map +0 -1
- package/build/esm/android/index.js +0 -29
- package/build/esm/android/index.js.map +0 -1
- package/build/esm/android/manifest.js +0 -88
- package/build/esm/android/manifest.js.map +0 -1
- package/build/esm/ios/eas.js +0 -24
- package/build/esm/ios/eas.js.map +0 -1
- package/build/esm/ios/entitlements.js +0 -42
- package/build/esm/ios/entitlements.js.map +0 -1
- package/build/esm/ios/index.js +0 -34
- package/build/esm/ios/index.js.map +0 -1
- package/build/esm/ios/infoPlist.js +0 -47
- package/build/esm/ios/infoPlist.js.map +0 -1
- package/build/esm/ios/pushNotifications.js +0 -18
- package/build/esm/ios/pushNotifications.js.map +0 -1
- package/build/esm/ios-widget/eas.js +0 -62
- package/build/esm/ios-widget/eas.js.map +0 -1
- package/build/esm/ios-widget/files/assets.js +0 -163
- package/build/esm/ios-widget/files/assets.js.map +0 -1
- package/build/esm/ios-widget/files/entitlements.js +0 -37
- package/build/esm/ios-widget/files/entitlements.js.map +0 -1
- package/build/esm/ios-widget/files/index.js +0 -55
- package/build/esm/ios-widget/files/index.js.map +0 -1
- package/build/esm/ios-widget/files/infoPlist.js +0 -55
- package/build/esm/ios-widget/files/infoPlist.js.map +0 -1
- package/build/esm/ios-widget/files/swift.js +0 -217
- package/build/esm/ios-widget/files/swift.js.map +0 -1
- package/build/esm/ios-widget/fonts.js +0 -111
- package/build/esm/ios-widget/fonts.js.map +0 -1
- package/build/esm/ios-widget/index.js +0 -42
- package/build/esm/ios-widget/index.js.map +0 -1
- package/build/esm/ios-widget/podfile.js +0 -39
- package/build/esm/ios-widget/podfile.js.map +0 -1
- package/build/esm/ios-widget/widgetPlist.js +0 -92
- package/build/esm/ios-widget/widgetPlist.js.map +0 -1
- package/build/esm/ios-widget/xcode/buildPhases.js +0 -208
- package/build/esm/ios-widget/xcode/buildPhases.js.map +0 -1
- package/build/esm/ios-widget/xcode/configurationList.js +0 -87
- package/build/esm/ios-widget/xcode/configurationList.js.map +0 -1
- package/build/esm/ios-widget/xcode/groups.js +0 -61
- package/build/esm/ios-widget/xcode/groups.js.map +0 -1
- package/build/esm/ios-widget/xcode/index.js +0 -118
- package/build/esm/ios-widget/xcode/index.js.map +0 -1
- package/build/esm/ios-widget/xcode/mainAppSettings.js +0 -68
- package/build/esm/ios-widget/xcode/mainAppSettings.js.map +0 -1
- package/build/esm/ios-widget/xcode/productFile.js +0 -70
- package/build/esm/ios-widget/xcode/productFile.js.map +0 -1
- package/build/esm/ios-widget/xcode/target.js +0 -108
- package/build/esm/ios-widget/xcode/target.js.map +0 -1
- package/build/esm/utils/fileDiscovery.js +0 -71
- package/build/esm/utils/fileDiscovery.js.map +0 -1
- package/build/esm/utils/urlScheme.js +0 -37
- package/build/esm/utils/urlScheme.js.map +0 -1
- package/build/types/android/files/assets.d.ts +0 -26
- package/build/types/android/files/assets.d.ts.map +0 -1
- package/build/types/android/files/fonts.d.ts +0 -19
- package/build/types/android/files/fonts.d.ts.map +0 -1
- package/build/types/android/files/index.d.ts +0 -21
- package/build/types/android/files/index.d.ts.map +0 -1
- package/build/types/android/files/initialStates.d.ts +0 -14
- package/build/types/android/files/initialStates.d.ts.map +0 -1
- package/build/types/android/files/kotlin.d.ts +0 -11
- package/build/types/android/files/kotlin.d.ts.map +0 -1
- package/build/types/android/files/xml.d.ts +0 -25
- package/build/types/android/files/xml.d.ts.map +0 -1
- package/build/types/android/index.d.ts +0 -12
- package/build/types/android/index.d.ts.map +0 -1
- package/build/types/android/manifest.d.ts +0 -16
- package/build/types/android/manifest.d.ts.map +0 -1
- package/build/types/ios/eas.d.ts +0 -12
- package/build/types/ios/eas.d.ts.map +0 -1
- package/build/types/ios/entitlements.d.ts +0 -14
- package/build/types/ios/entitlements.d.ts.map +0 -1
- package/build/types/ios/index.d.ts +0 -19
- package/build/types/ios/index.d.ts.map +0 -1
- package/build/types/ios/infoPlist.d.ts +0 -21
- package/build/types/ios/infoPlist.d.ts.map +0 -1
- package/build/types/ios/pushNotifications.d.ts +0 -10
- package/build/types/ios/pushNotifications.d.ts.map +0 -1
- package/build/types/ios-widget/eas.d.ts +0 -15
- package/build/types/ios-widget/eas.d.ts.map +0 -1
- package/build/types/ios-widget/files/assets.d.ts +0 -13
- package/build/types/ios-widget/files/assets.d.ts.map +0 -1
- package/build/types/ios-widget/files/entitlements.d.ts +0 -17
- package/build/types/ios-widget/files/entitlements.d.ts.map +0 -1
- package/build/types/ios-widget/files/index.d.ts +0 -24
- package/build/types/ios-widget/files/index.d.ts.map +0 -1
- package/build/types/ios-widget/files/infoPlist.d.ts +0 -10
- package/build/types/ios-widget/files/infoPlist.d.ts.map +0 -1
- package/build/types/ios-widget/files/swift.d.ts +0 -15
- package/build/types/ios-widget/files/swift.d.ts.map +0 -1
- package/build/types/ios-widget/fonts.d.ts +0 -22
- package/build/types/ios-widget/fonts.d.ts.map +0 -1
- package/build/types/ios-widget/index.d.ts +0 -31
- package/build/types/ios-widget/index.d.ts.map +0 -1
- package/build/types/ios-widget/podfile.d.ts +0 -9
- package/build/types/ios-widget/podfile.d.ts.map +0 -1
- package/build/types/ios-widget/widgetPlist.d.ts +0 -20
- package/build/types/ios-widget/widgetPlist.d.ts.map +0 -1
- package/build/types/ios-widget/xcode/buildPhases.d.ts +0 -25
- package/build/types/ios-widget/xcode/buildPhases.d.ts.map +0 -1
- package/build/types/ios-widget/xcode/configurationList.d.ts +0 -20
- package/build/types/ios-widget/xcode/configurationList.d.ts.map +0 -1
- package/build/types/ios-widget/xcode/groups.d.ts +0 -15
- package/build/types/ios-widget/xcode/groups.d.ts.map +0 -1
- package/build/types/ios-widget/xcode/index.d.ts +0 -20
- package/build/types/ios-widget/xcode/index.d.ts.map +0 -1
- package/build/types/ios-widget/xcode/mainAppSettings.d.ts +0 -15
- package/build/types/ios-widget/xcode/mainAppSettings.d.ts.map +0 -1
- package/build/types/ios-widget/xcode/productFile.d.ts +0 -14
- package/build/types/ios-widget/xcode/productFile.d.ts.map +0 -1
- package/build/types/ios-widget/xcode/target.d.ts +0 -42
- package/build/types/ios-widget/xcode/target.d.ts.map +0 -1
- package/build/types/utils/fileDiscovery.d.ts +0 -13
- package/build/types/utils/fileDiscovery.d.ts.map +0 -1
- package/build/types/utils/urlScheme.d.ts +0 -10
- package/build/types/utils/urlScheme.d.ts.map +0 -1
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.configureEasBuild = void 0;
|
|
4
|
-
const entitlements_1 = require("../utils/entitlements");
|
|
5
|
-
const entitlements_2 = require("./files/entitlements");
|
|
6
|
-
/**
|
|
7
|
-
* Plugin step that configures EAS build settings for the widget extension.
|
|
8
|
-
*
|
|
9
|
-
* This:
|
|
10
|
-
* - Adds the widget extension to the EAS build experimental iOS appExtensions
|
|
11
|
-
* - Configures entitlements for both the extension and main app
|
|
12
|
-
*/
|
|
13
|
-
const configureEasBuild = (config, { bundleIdentifier, targetName, groupIdentifier }) => {
|
|
14
|
-
let configIndex = null;
|
|
15
|
-
// Check if extension already exists
|
|
16
|
-
config.extra?.eas?.build?.experimental?.ios?.appExtensions?.forEach((ext, index) => {
|
|
17
|
-
if (ext.targetName === targetName) {
|
|
18
|
-
configIndex = index;
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
// Add extension if not already present
|
|
22
|
-
if (configIndex === null) {
|
|
23
|
-
config.extra = {
|
|
24
|
-
...config.extra,
|
|
25
|
-
eas: {
|
|
26
|
-
...config.extra?.eas,
|
|
27
|
-
build: {
|
|
28
|
-
...config.extra?.eas?.build,
|
|
29
|
-
experimental: {
|
|
30
|
-
...config.extra?.eas?.build?.experimental,
|
|
31
|
-
ios: {
|
|
32
|
-
...config.extra?.eas?.build?.experimental?.ios,
|
|
33
|
-
appExtensions: [
|
|
34
|
-
...(config.extra?.eas?.build?.experimental?.ios?.appExtensions ?? []),
|
|
35
|
-
{
|
|
36
|
-
targetName,
|
|
37
|
-
bundleIdentifier,
|
|
38
|
-
},
|
|
39
|
-
],
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
configIndex = (config.extra?.eas?.build?.experimental?.ios?.appExtensions?.length ?? 1) - 1;
|
|
46
|
-
}
|
|
47
|
-
// Configure entitlements (may be empty if no groupIdentifier)
|
|
48
|
-
if (configIndex != null && config.extra) {
|
|
49
|
-
const widgetsExtensionConfig = config.extra.eas.build.experimental.ios.appExtensions[configIndex];
|
|
50
|
-
widgetsExtensionConfig.entitlements = {
|
|
51
|
-
...widgetsExtensionConfig.entitlements,
|
|
52
|
-
...(0, entitlements_2.getWidgetExtensionEntitlements)(groupIdentifier),
|
|
53
|
-
};
|
|
54
|
-
if (groupIdentifier) {
|
|
55
|
-
config.ios = {
|
|
56
|
-
...config.ios,
|
|
57
|
-
entitlements: {
|
|
58
|
-
...(0, entitlements_1.addApplicationGroupsEntitlement)(config.ios?.entitlements ?? {}, groupIdentifier),
|
|
59
|
-
},
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return config;
|
|
64
|
-
};
|
|
65
|
-
exports.configureEasBuild = configureEasBuild;
|
|
66
|
-
//# sourceMappingURL=eas.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"eas.js","sourceRoot":"","sources":["../../../src/ios-widget/eas.ts"],"names":[],"mappings":";;;AAEA,wDAAuE;AACvE,uDAAqE;AAQrE;;;;;;GAMG;AACI,MAAM,iBAAiB,GAAyC,CACrE,MAAM,EACN,EAAE,gBAAgB,EAAE,UAAU,EAAE,eAAe,EAAE,EACjD,EAAE;IACF,IAAI,WAAW,GAAkB,IAAI,CAAA;IAErC,oCAAoC;IACpC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,GAAQ,EAAE,KAAa,EAAE,EAAE;QAC9F,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAClC,WAAW,GAAG,KAAK,CAAA;QACrB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,uCAAuC;IACvC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,GAAG;YACb,GAAG,MAAM,CAAC,KAAK;YACf,GAAG,EAAE;gBACH,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG;gBACpB,KAAK,EAAE;oBACL,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK;oBAC3B,YAAY,EAAE;wBACZ,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY;wBACzC,GAAG,EAAE;4BACH,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG;4BAC9C,aAAa,EAAE;gCACb,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,IAAI,EAAE,CAAC;gCACrE;oCACE,UAAU;oCACV,gBAAgB;iCACjB;6BACF;yBACF;qBACF;iBACF;aACF;SACF,CAAA;QACD,WAAW,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;IAC7F,CAAC;IAED,8DAA8D;IAC9D,IAAI,WAAW,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,sBAAsB,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;QAEjG,sBAAsB,CAAC,YAAY,GAAG;YACpC,GAAG,sBAAsB,CAAC,YAAY;YACtC,GAAG,IAAA,6CAA8B,EAAC,eAAe,CAAC;SACnD,CAAA;QAED,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,GAAG;gBACX,GAAG,MAAM,CAAC,GAAG;gBACb,YAAY,EAAE;oBACZ,GAAG,IAAA,8CAA+B,EAAC,MAAM,CAAC,GAAG,EAAE,YAAY,IAAI,EAAE,EAAE,eAAe,CAAC;iBACpF;aACF,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AA5DY,QAAA,iBAAiB,qBA4D7B"}
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.generateAssets = generateAssets;
|
|
37
|
-
const fs = __importStar(require("fs"));
|
|
38
|
-
const path = __importStar(require("path"));
|
|
39
|
-
const constants_1 = require("../../constants");
|
|
40
|
-
const logger_1 = require("../../utils/logger");
|
|
41
|
-
// ============================================================================
|
|
42
|
-
// Main Function
|
|
43
|
-
// ============================================================================
|
|
44
|
-
/**
|
|
45
|
-
* Generates all asset files for the widget extension.
|
|
46
|
-
*
|
|
47
|
-
* This creates:
|
|
48
|
-
* - Assets.xcassets/ directory structure
|
|
49
|
-
* - Copies user images to the asset catalog
|
|
50
|
-
*/
|
|
51
|
-
function generateAssets(options) {
|
|
52
|
-
const { targetPath, userImagesPath = constants_1.DEFAULT_USER_IMAGES_PATH } = options;
|
|
53
|
-
// Generate Assets.xcassets structure
|
|
54
|
-
generateAssetsCatalog(targetPath);
|
|
55
|
-
logger_1.logger.info('Generated Assets.xcassets');
|
|
56
|
-
// Copy user images to asset catalog
|
|
57
|
-
const assetsPath = path.join(targetPath, 'Assets.xcassets');
|
|
58
|
-
copyUserImages(userImagesPath, assetsPath);
|
|
59
|
-
}
|
|
60
|
-
// ============================================================================
|
|
61
|
-
// Asset Catalog
|
|
62
|
-
// ============================================================================
|
|
63
|
-
/**
|
|
64
|
-
* Contents.json for the root of Assets.xcassets
|
|
65
|
-
*/
|
|
66
|
-
const ASSETS_CATALOG_CONTENTS = {
|
|
67
|
-
info: {
|
|
68
|
-
author: 'xcode',
|
|
69
|
-
version: 1,
|
|
70
|
-
},
|
|
71
|
-
};
|
|
72
|
-
/**
|
|
73
|
-
* Contents.json for an imageset
|
|
74
|
-
*/
|
|
75
|
-
function createImagesetContents(filename) {
|
|
76
|
-
return {
|
|
77
|
-
images: [
|
|
78
|
-
{
|
|
79
|
-
filename,
|
|
80
|
-
idiom: 'universal',
|
|
81
|
-
},
|
|
82
|
-
],
|
|
83
|
-
info: {
|
|
84
|
-
author: 'xcode',
|
|
85
|
-
version: 1,
|
|
86
|
-
},
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Generates the Assets.xcassets directory structure for a widget extension.
|
|
91
|
-
*
|
|
92
|
-
* Creates the minimal required asset catalog structure:
|
|
93
|
-
* - Assets.xcassets/
|
|
94
|
-
* - Contents.json (required root manifest)
|
|
95
|
-
*
|
|
96
|
-
* @param targetPath - Path to the widget extension target directory
|
|
97
|
-
*/
|
|
98
|
-
function generateAssetsCatalog(targetPath) {
|
|
99
|
-
const assetsPath = path.join(targetPath, 'Assets.xcassets');
|
|
100
|
-
// Create Assets.xcassets directory
|
|
101
|
-
if (!fs.existsSync(assetsPath)) {
|
|
102
|
-
fs.mkdirSync(assetsPath, { recursive: true });
|
|
103
|
-
}
|
|
104
|
-
// Write root Contents.json
|
|
105
|
-
fs.writeFileSync(path.join(assetsPath, 'Contents.json'), JSON.stringify(ASSETS_CATALOG_CONTENTS, null, 2));
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Adds an image to the Assets.xcassets catalog as an imageset.
|
|
109
|
-
*
|
|
110
|
-
* Creates:
|
|
111
|
-
* - {imageName}.imageset/
|
|
112
|
-
* - {originalFilename}
|
|
113
|
-
* - Contents.json
|
|
114
|
-
*
|
|
115
|
-
* @param assetsPath - Path to Assets.xcassets directory
|
|
116
|
-
* @param imagePath - Path to the source image file
|
|
117
|
-
*/
|
|
118
|
-
function addImageToAssetsCatalog(assetsPath, imagePath) {
|
|
119
|
-
const filename = path.basename(imagePath);
|
|
120
|
-
const imageName = path.basename(filename, path.extname(filename));
|
|
121
|
-
const imagesetPath = path.join(assetsPath, `${imageName}.imageset`);
|
|
122
|
-
// Create imageset directory
|
|
123
|
-
if (!fs.existsSync(imagesetPath)) {
|
|
124
|
-
fs.mkdirSync(imagesetPath, { recursive: true });
|
|
125
|
-
}
|
|
126
|
-
// Copy the image file
|
|
127
|
-
fs.copyFileSync(imagePath, path.join(imagesetPath, filename));
|
|
128
|
-
// Write Contents.json for the imageset
|
|
129
|
-
fs.writeFileSync(path.join(imagesetPath, 'Contents.json'), JSON.stringify(createImagesetContents(filename), null, 2));
|
|
130
|
-
}
|
|
131
|
-
// ============================================================================
|
|
132
|
-
// Image Handling
|
|
133
|
-
// ============================================================================
|
|
134
|
-
/**
|
|
135
|
-
* Checks if an image file exceeds the size limit for Live Activities.
|
|
136
|
-
* Logs a warning if the image is too large.
|
|
137
|
-
*
|
|
138
|
-
* @param imagePath - Path to the image file
|
|
139
|
-
* @returns true if the image is within the size limit, false otherwise
|
|
140
|
-
*/
|
|
141
|
-
function checkImageSize(imagePath) {
|
|
142
|
-
const stats = fs.statSync(imagePath);
|
|
143
|
-
const imageSizeInBytes = stats.size;
|
|
144
|
-
if (imageSizeInBytes >= constants_1.MAX_IMAGE_SIZE_BYTES) {
|
|
145
|
-
const fileName = path.basename(imagePath);
|
|
146
|
-
logger_1.logger.warnRed(`Image "${fileName}" is ${imageSizeInBytes} bytes (${(imageSizeInBytes / 1024).toFixed(2)}KB). ` +
|
|
147
|
-
`This image will not display correctly in Live Activities as images for Live Activities need to be lower than 4KB.`);
|
|
148
|
-
return false;
|
|
149
|
-
}
|
|
150
|
-
return true;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Checks if a file is a supported image type.
|
|
154
|
-
*/
|
|
155
|
-
function isSupportedImage(filePath) {
|
|
156
|
-
return constants_1.SUPPORTED_IMAGE_EXTENSIONS.test(path.extname(filePath));
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Copies user images from the source directory to the widget's Assets.xcassets.
|
|
160
|
-
*
|
|
161
|
-
* Images are validated for size (must be < 4KB for Live Activities) and
|
|
162
|
-
* added as imagesets to the asset catalog.
|
|
163
|
-
*
|
|
164
|
-
* @param userImagesPath - Path to directory containing user images (relative to project root)
|
|
165
|
-
* @param targetAssetsPath - Path to the Assets.xcassets directory in the widget target
|
|
166
|
-
* @returns Array of image filenames that were copied
|
|
167
|
-
*/
|
|
168
|
-
function copyUserImages(userImagesPath, targetAssetsPath) {
|
|
169
|
-
const copiedImages = [];
|
|
170
|
-
if (!fs.existsSync(userImagesPath)) {
|
|
171
|
-
logger_1.logger.warn(`Skipping user images: directory does not exist at ${userImagesPath}`);
|
|
172
|
-
return copiedImages;
|
|
173
|
-
}
|
|
174
|
-
if (!fs.lstatSync(userImagesPath).isDirectory()) {
|
|
175
|
-
logger_1.logger.warn(`Skipping user images: ${userImagesPath} is not a directory`);
|
|
176
|
-
return copiedImages;
|
|
177
|
-
}
|
|
178
|
-
const files = fs.readdirSync(userImagesPath);
|
|
179
|
-
for (const file of files) {
|
|
180
|
-
const sourcePath = path.join(userImagesPath, file);
|
|
181
|
-
// Skip directories and non-image files
|
|
182
|
-
if (fs.lstatSync(sourcePath).isDirectory()) {
|
|
183
|
-
continue;
|
|
184
|
-
}
|
|
185
|
-
if (!isSupportedImage(file)) {
|
|
186
|
-
continue;
|
|
187
|
-
}
|
|
188
|
-
// Check image size for Live Activity compatibility (warns if too large)
|
|
189
|
-
checkImageSize(sourcePath);
|
|
190
|
-
// Add to asset catalog
|
|
191
|
-
addImageToAssetsCatalog(targetAssetsPath, sourcePath);
|
|
192
|
-
copiedImages.push(file);
|
|
193
|
-
}
|
|
194
|
-
if (copiedImages.length > 0) {
|
|
195
|
-
logger_1.logger.info(`Copied ${copiedImages.length} user image(s) to widget assets`);
|
|
196
|
-
}
|
|
197
|
-
return copiedImages;
|
|
198
|
-
}
|
|
199
|
-
//# sourceMappingURL=assets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../../src/ios-widget/files/assets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.getWidgetExtensionEntitlements = getWidgetExtensionEntitlements;
|
|
40
|
-
exports.generateEntitlements = generateEntitlements;
|
|
41
|
-
const plist_1 = __importDefault(require("@expo/plist"));
|
|
42
|
-
const fs = __importStar(require("fs"));
|
|
43
|
-
const path = __importStar(require("path"));
|
|
44
|
-
const entitlements_1 = require("../../utils/entitlements");
|
|
45
|
-
const logger_1 = require("../../utils/logger");
|
|
46
|
-
/**
|
|
47
|
-
* Gets the entitlements for the widget extension.
|
|
48
|
-
*/
|
|
49
|
-
function getWidgetExtensionEntitlements(groupIdentifier, keychainGroup) {
|
|
50
|
-
const entitlements = {};
|
|
51
|
-
if (groupIdentifier) {
|
|
52
|
-
(0, entitlements_1.addApplicationGroupsEntitlement)(entitlements, groupIdentifier);
|
|
53
|
-
}
|
|
54
|
-
if (keychainGroup) {
|
|
55
|
-
const existingGroups = (entitlements['keychain-access-groups'] ?? []).filter(Boolean);
|
|
56
|
-
const deduped = Array.from(new Set(existingGroups));
|
|
57
|
-
if (!deduped.includes(keychainGroup)) {
|
|
58
|
-
deduped.push(keychainGroup);
|
|
59
|
-
}
|
|
60
|
-
entitlements['keychain-access-groups'] = deduped;
|
|
61
|
-
}
|
|
62
|
-
return entitlements;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Generates the entitlements file for the widget extension.
|
|
66
|
-
*
|
|
67
|
-
* @param options - Generation options
|
|
68
|
-
*/
|
|
69
|
-
function generateEntitlements(options) {
|
|
70
|
-
const { targetPath, targetName, groupIdentifier, keychainGroup } = options;
|
|
71
|
-
const filePath = path.join(targetPath, `${targetName}.entitlements`);
|
|
72
|
-
const extensionEntitlements = getWidgetExtensionEntitlements(groupIdentifier, keychainGroup);
|
|
73
|
-
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
74
|
-
fs.writeFileSync(filePath, plist_1.default.build(extensionEntitlements));
|
|
75
|
-
logger_1.logger.info(`Generated ${targetName}.entitlements`);
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=entitlements.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entitlements.js","sourceRoot":"","sources":["../../../../src/ios-widget/files/entitlements.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,wEAcC;AAcD,oDASC;AA/CD,wDAA+B;AAC/B,uCAAwB;AACxB,2CAA4B;AAE5B,2DAA0E;AAC1E,+CAA2C;AAE3C;;GAEG;AACH,SAAgB,8BAA8B,CAAC,eAAwB,EAAE,aAAsB;IAC7F,MAAM,YAAY,GAAwB,EAAE,CAAA;IAC5C,IAAI,eAAe,EAAE,CAAC;QACpB,IAAA,8CAA+B,EAAC,YAAY,EAAE,eAAe,CAAC,CAAA;IAChE,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,cAAc,GAAG,CAAE,YAAY,CAAC,wBAAwB,CAAc,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACnG,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAA;QACnD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC7B,CAAC;QACD,YAAY,CAAC,wBAAwB,CAAC,GAAG,OAAO,CAAA;IAClD,CAAC;IACD,OAAO,YAAY,CAAA;AACrB,CAAC;AASD;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,OAAoC;IACvE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,OAAO,CAAA;IAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,UAAU,eAAe,CAAC,CAAA;IAEpE,MAAM,qBAAqB,GAAG,8BAA8B,CAAC,eAAe,EAAE,aAAa,CAAC,CAAA;IAE5F,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,eAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAA;IAC9D,eAAM,CAAC,IAAI,CAAC,aAAa,UAAU,eAAe,CAAC,CAAA;AACrD,CAAC"}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.generateWidgetExtensionFiles = void 0;
|
|
37
|
-
const config_plugins_1 = require("@expo/config-plugins");
|
|
38
|
-
const fs = __importStar(require("fs"));
|
|
39
|
-
const path = __importStar(require("path"));
|
|
40
|
-
const assets_1 = require("./assets");
|
|
41
|
-
const entitlements_1 = require("./entitlements");
|
|
42
|
-
const infoPlist_1 = require("./infoPlist");
|
|
43
|
-
const swift_1 = require("./swift");
|
|
44
|
-
/**
|
|
45
|
-
* Plugin step that generates all widget extension files.
|
|
46
|
-
*
|
|
47
|
-
* This creates:
|
|
48
|
-
* - Info.plist (required extension manifest)
|
|
49
|
-
* - Assets.xcassets/ (asset catalog with user images)
|
|
50
|
-
* - VoltraWidgetBundle.swift (widget bundle definition)
|
|
51
|
-
* - VoltraWidgetInitialStates.swift (pre-rendered widget states)
|
|
52
|
-
* - {targetName}.entitlements (entitlements file)
|
|
53
|
-
*
|
|
54
|
-
* This should run before configureXcodeProject so the files exist when Xcode project is configured.
|
|
55
|
-
*/
|
|
56
|
-
const generateWidgetExtensionFiles = (config, props) => {
|
|
57
|
-
const { targetName, widgets, groupIdentifier, keychainGroup, version, buildNumber } = props;
|
|
58
|
-
return (0, config_plugins_1.withDangerousMod)(config, [
|
|
59
|
-
'ios',
|
|
60
|
-
async (config) => {
|
|
61
|
-
if (config.modRequest.introspect) {
|
|
62
|
-
return config;
|
|
63
|
-
}
|
|
64
|
-
const { platformProjectRoot, projectRoot } = config.modRequest;
|
|
65
|
-
const targetPath = path.join(platformProjectRoot, targetName);
|
|
66
|
-
// Ensure target directory exists
|
|
67
|
-
if (!fs.existsSync(targetPath)) {
|
|
68
|
-
fs.mkdirSync(targetPath, { recursive: true });
|
|
69
|
-
}
|
|
70
|
-
// Generate Info.plist
|
|
71
|
-
(0, infoPlist_1.generateInfoPlist)(targetPath, targetName, version, buildNumber);
|
|
72
|
-
// Generate Assets.xcassets and copy user images
|
|
73
|
-
(0, assets_1.generateAssets)({ targetPath });
|
|
74
|
-
// Generate Swift files (widget bundle, initial states)
|
|
75
|
-
await (0, swift_1.generateSwiftFiles)({
|
|
76
|
-
targetPath,
|
|
77
|
-
projectRoot,
|
|
78
|
-
widgets,
|
|
79
|
-
});
|
|
80
|
-
// Generate entitlements file (may be empty if no groupIdentifier or keychainGroup)
|
|
81
|
-
(0, entitlements_1.generateEntitlements)({
|
|
82
|
-
targetPath,
|
|
83
|
-
targetName,
|
|
84
|
-
groupIdentifier,
|
|
85
|
-
keychainGroup,
|
|
86
|
-
});
|
|
87
|
-
return config;
|
|
88
|
-
},
|
|
89
|
-
]);
|
|
90
|
-
};
|
|
91
|
-
exports.generateWidgetExtensionFiles = generateWidgetExtensionFiles;
|
|
92
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ios-widget/files/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAqE;AACrE,uCAAwB;AACxB,2CAA4B;AAG5B,qCAAyC;AACzC,iDAAqD;AACrD,2CAA+C;AAC/C,mCAA4C;AAW5C;;;;;;;;;;;GAWG;AACI,MAAM,4BAA4B,GAAoD,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;IAC7G,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IAE3F,OAAO,IAAA,iCAAgB,EAAC,MAAM,EAAE;QAC9B,KAAK;QACL,KAAK,EAAE,MAAM,EAAE,EAAE;YACf,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;gBACjC,OAAO,MAAM,CAAA;YACf,CAAC;YAED,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,UAAU,CAAA;YAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAA;YAE7D,iCAAiC;YACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC/C,CAAC;YAED,sBAAsB;YACtB,IAAA,6BAAiB,EAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;YAE/D,gDAAgD;YAChD,IAAA,uBAAc,EAAC,EAAE,UAAU,EAAE,CAAC,CAAA;YAE9B,uDAAuD;YACvD,MAAM,IAAA,0BAAkB,EAAC;gBACvB,UAAU;gBACV,WAAW;gBACX,OAAO;aACR,CAAC,CAAA;YAEF,mFAAmF;YACnF,IAAA,mCAAoB,EAAC;gBACnB,UAAU;gBACV,UAAU;gBACV,eAAe;gBACf,aAAa;aACd,CAAC,CAAA;YAEF,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA;AA1CY,QAAA,4BAA4B,gCA0CxC"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.generateInfoPlist = generateInfoPlist;
|
|
37
|
-
const fs = __importStar(require("fs"));
|
|
38
|
-
const path = __importStar(require("path"));
|
|
39
|
-
const logger_1 = require("../../utils/logger");
|
|
40
|
-
/**
|
|
41
|
-
* Generates the Info.plist content for a WidgetKit extension.
|
|
42
|
-
*
|
|
43
|
-
* This includes version information and the required WidgetKit extension point.
|
|
44
|
-
* Version keys are written directly to the plist following the Expo pattern.
|
|
45
|
-
*/
|
|
46
|
-
function generateInfoPlistContent(targetName, version, buildNumber) {
|
|
47
|
-
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
48
|
-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
49
|
-
<plist version="1.0">
|
|
50
|
-
<dict>
|
|
51
|
-
<key>CFBundleDevelopmentRegion</key>
|
|
52
|
-
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
|
53
|
-
<key>CFBundleDisplayName</key>
|
|
54
|
-
<string>${targetName}</string>
|
|
55
|
-
<key>CFBundleExecutable</key>
|
|
56
|
-
<string>$(EXECUTABLE_NAME)</string>
|
|
57
|
-
<key>CFBundleIdentifier</key>
|
|
58
|
-
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
|
59
|
-
<key>CFBundleInfoDictionaryVersion</key>
|
|
60
|
-
<string>6.0</string>
|
|
61
|
-
<key>CFBundleName</key>
|
|
62
|
-
<string>$(PRODUCT_NAME)</string>
|
|
63
|
-
<key>CFBundlePackageType</key>
|
|
64
|
-
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
|
|
65
|
-
<key>CFBundleShortVersionString</key>
|
|
66
|
-
<string>${version}</string>
|
|
67
|
-
<key>CFBundleVersion</key>
|
|
68
|
-
<string>${buildNumber}</string>
|
|
69
|
-
<key>NSExtension</key>
|
|
70
|
-
<dict>
|
|
71
|
-
<key>NSExtensionPointIdentifier</key>
|
|
72
|
-
<string>com.apple.widgetkit-extension</string>
|
|
73
|
-
</dict>
|
|
74
|
-
</dict>
|
|
75
|
-
</plist>
|
|
76
|
-
`;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Generates the Info.plist file for the widget extension.
|
|
80
|
-
*
|
|
81
|
-
* @param targetPath - Path to the widget extension target directory
|
|
82
|
-
* @param targetName - The widget extension target name (used for CFBundleDisplayName)
|
|
83
|
-
* @param version - The app version (CFBundleShortVersionString)
|
|
84
|
-
* @param buildNumber - The build number (CFBundleVersion)
|
|
85
|
-
*/
|
|
86
|
-
function generateInfoPlist(targetPath, targetName, version, buildNumber) {
|
|
87
|
-
const infoPlistPath = path.join(targetPath, 'Info.plist');
|
|
88
|
-
fs.writeFileSync(infoPlistPath, generateInfoPlistContent(targetName, version, buildNumber));
|
|
89
|
-
logger_1.logger.info('Generated Info.plist');
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=infoPlist.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"infoPlist.js","sourceRoot":"","sources":["../../../../src/ios-widget/files/infoPlist.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA,8CAIC;AAxDD,uCAAwB;AACxB,2CAA4B;AAE5B,+CAA2C;AAE3C;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,UAAkB,EAAE,OAAe,EAAE,WAAmB;IACxF,OAAO;;;;;;;WAOE,UAAU;;;;;;;;;;;;WAYV,OAAO;;WAEP,WAAW;;;;;;;;CAQrB,CAAA;AACD,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,UAAkB,EAAE,UAAkB,EAAE,OAAe,EAAE,WAAmB;IAC5G,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IACzD,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,wBAAwB,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;IAC3F,eAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;AACrC,CAAC"}
|