@expo/prebuild-config 5.0.7 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/getAutolinkedPackages.js +3 -13
- package/build/getAutolinkedPackages.js.map +1 -1
- package/build/getPrebuildConfig.js +9 -24
- package/build/getPrebuildConfig.js.map +1 -1
- package/build/importExpoModulesAutolinking.d.ts +3 -3
- package/build/importExpoModulesAutolinking.js +0 -5
- package/build/importExpoModulesAutolinking.js.map +1 -1
- package/build/index.js +0 -5
- package/build/index.js.map +1 -1
- package/build/plugins/icons/AssetContents.d.ts +3 -3
- package/build/plugins/icons/AssetContents.js +1 -10
- package/build/plugins/icons/AssetContents.js.map +1 -1
- package/build/plugins/icons/withAndroidIcons.d.ts +7 -5
- package/build/plugins/icons/withAndroidIcons.js +52 -71
- package/build/plugins/icons/withAndroidIcons.js.map +1 -1
- package/build/plugins/icons/withAndroidManifestIcons.js +0 -10
- package/build/plugins/icons/withAndroidManifestIcons.js.map +1 -1
- package/build/plugins/icons/withIosIcons.js +24 -48
- package/build/plugins/icons/withIosIcons.js.map +1 -1
- package/build/plugins/unversioned/createLegacyPlugin.js +0 -11
- package/build/plugins/unversioned/createLegacyPlugin.js.map +1 -1
- package/build/plugins/unversioned/expo-ads-admob/expo-ads-admob.js +0 -11
- package/build/plugins/unversioned/expo-ads-admob/expo-ads-admob.js.map +1 -1
- package/build/plugins/unversioned/expo-ads-admob/withAndroidAdMob.js +0 -14
- package/build/plugins/unversioned/expo-ads-admob/withAndroidAdMob.js.map +1 -1
- package/build/plugins/unversioned/expo-ads-admob/withIosAdMob.js +5 -14
- package/build/plugins/unversioned/expo-ads-admob/withIosAdMob.js.map +1 -1
- package/build/plugins/unversioned/expo-apple-authentication.js +0 -11
- package/build/plugins/unversioned/expo-apple-authentication.js.map +1 -1
- package/build/plugins/unversioned/expo-branch/expo-branch.js +4 -13
- package/build/plugins/unversioned/expo-branch/expo-branch.js.map +1 -1
- package/build/plugins/unversioned/expo-branch/withAndroidBranch.js +0 -12
- package/build/plugins/unversioned/expo-branch/withAndroidBranch.js.map +1 -1
- package/build/plugins/unversioned/expo-branch/withIosBranch.js +2 -11
- package/build/plugins/unversioned/expo-branch/withIosBranch.js.map +1 -1
- package/build/plugins/unversioned/expo-contacts.js +2 -13
- package/build/plugins/unversioned/expo-contacts.js.map +1 -1
- package/build/plugins/unversioned/expo-document-picker.js +2 -12
- package/build/plugins/unversioned/expo-document-picker.js.map +1 -1
- package/build/plugins/unversioned/expo-navigation-bar/expo-navigation-bar.js +2 -9
- package/build/plugins/unversioned/expo-navigation-bar/expo-navigation-bar.js.map +1 -1
- package/build/plugins/unversioned/expo-navigation-bar/withAndroidNavigationBar.js +0 -20
- package/build/plugins/unversioned/expo-navigation-bar/withAndroidNavigationBar.js.map +1 -1
- package/build/plugins/unversioned/expo-notifications/expo-notifications.js +4 -14
- package/build/plugins/unversioned/expo-notifications/expo-notifications.js.map +1 -1
- package/build/plugins/unversioned/expo-notifications/withAndroidNotifications.d.ts +1 -1
- package/build/plugins/unversioned/expo-notifications/withAndroidNotifications.js +1 -44
- package/build/plugins/unversioned/expo-notifications/withAndroidNotifications.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/InterfaceBuilder.d.ts +20 -20
- package/build/plugins/unversioned/expo-splash-screen/InterfaceBuilder.js +14 -33
- package/build/plugins/unversioned/expo-splash-screen/InterfaceBuilder.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/expo-splash-screen.js +0 -11
- package/build/plugins/unversioned/expo-splash-screen/expo-splash-screen.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/getAndroidSplashConfig.d.ts +1 -1
- package/build/plugins/unversioned/expo-splash-screen/getAndroidSplashConfig.js +2 -11
- package/build/plugins/unversioned/expo-splash-screen/getAndroidSplashConfig.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/getIosSplashConfig.d.ts +1 -2
- package/build/plugins/unversioned/expo-splash-screen/getIosSplashConfig.js +0 -26
- package/build/plugins/unversioned/expo-splash-screen/getIosSplashConfig.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashDrawables.js +4 -9
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashDrawables.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashImages.js +9 -36
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashImages.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashLegacyMainActivity.js +13 -34
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashLegacyMainActivity.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashScreen.js +4 -46
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashScreen.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashStrings.js +0 -13
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashStrings.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashStyles.js +2 -23
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashStyles.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashAssets.js +16 -54
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashAssets.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashInfoPlist.js +6 -22
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashInfoPlist.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashScreen.js +7 -35
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashScreen.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashScreenStoryboard.js +9 -33
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashScreenStoryboard.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashXcodeProject.js +1 -18
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashXcodeProject.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/wtihIosSplashScreenStoryboardImage.js +2 -15
- package/build/plugins/unversioned/expo-splash-screen/wtihIosSplashScreenStoryboardImage.js.map +1 -1
- package/build/plugins/unversioned/expo-system-ui/expo-system-ui.js +0 -17
- package/build/plugins/unversioned/expo-system-ui/expo-system-ui.js.map +1 -1
- package/build/plugins/unversioned/expo-system-ui/withAndroidRootViewBackgroundColor.js +0 -14
- package/build/plugins/unversioned/expo-system-ui/withAndroidRootViewBackgroundColor.js.map +1 -1
- package/build/plugins/unversioned/expo-system-ui/withAndroidUserInterfaceStyle.js +2 -9
- package/build/plugins/unversioned/expo-system-ui/withAndroidUserInterfaceStyle.js.map +1 -1
- package/build/plugins/unversioned/expo-system-ui/withIosRootViewBackgroundColor.js +2 -27
- package/build/plugins/unversioned/expo-system-ui/withIosRootViewBackgroundColor.js.map +1 -1
- package/build/plugins/unversioned/expo-system-ui/withIosUserInterfaceStyle.js +2 -14
- package/build/plugins/unversioned/expo-system-ui/withIosUserInterfaceStyle.js.map +1 -1
- package/build/plugins/unversioned/expo-updates.js +1 -8
- package/build/plugins/unversioned/expo-updates.js.map +1 -1
- package/build/plugins/unversioned/react-native-maps.js +4 -19
- package/build/plugins/unversioned/react-native-maps.js.map +1 -1
- package/build/plugins/withDefaultPlugins.d.ts +2 -2
- package/build/plugins/withDefaultPlugins.js +41 -94
- package/build/plugins/withDefaultPlugins.js.map +1 -1
- package/package.json +6 -6
- package/build/plugins/unversioned/expo-facebook/expo-facebook.d.ts +0 -2
- package/build/plugins/unversioned/expo-facebook/expo-facebook.js +0 -57
- package/build/plugins/unversioned/expo-facebook/expo-facebook.js.map +0 -1
- package/build/plugins/unversioned/expo-facebook/withAndroidFacebook.d.ts +0 -13
- package/build/plugins/unversioned/expo-facebook/withAndroidFacebook.js +0 -235
- package/build/plugins/unversioned/expo-facebook/withAndroidFacebook.js.map +0 -1
- package/build/plugins/unversioned/expo-facebook/withIosFacebook.d.ts +0 -26
- package/build/plugins/unversioned/expo-facebook/withIosFacebook.js +0 -233
- package/build/plugins/unversioned/expo-facebook/withIosFacebook.js.map +0 -1
- package/build/plugins/unversioned/expo-facebook/withSKAdNetworkIdentifiers.d.ts +0 -9
- package/build/plugins/unversioned/expo-facebook/withSKAdNetworkIdentifiers.js +0 -69
- package/build/plugins/unversioned/expo-facebook/withSKAdNetworkIdentifiers.js.map +0 -1
|
@@ -5,84 +5,60 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.buildContentsJsonImages = buildContentsJsonImages;
|
|
7
7
|
exports.withIosSplashAssets = void 0;
|
|
8
|
-
|
|
9
8
|
function _configPlugins() {
|
|
10
9
|
const data = require("@expo/config-plugins");
|
|
11
|
-
|
|
12
10
|
_configPlugins = function () {
|
|
13
11
|
return data;
|
|
14
12
|
};
|
|
15
|
-
|
|
16
13
|
return data;
|
|
17
14
|
}
|
|
18
|
-
|
|
19
15
|
function _imageUtils() {
|
|
20
16
|
const data = require("@expo/image-utils");
|
|
21
|
-
|
|
22
17
|
_imageUtils = function () {
|
|
23
18
|
return data;
|
|
24
19
|
};
|
|
25
|
-
|
|
26
20
|
return data;
|
|
27
21
|
}
|
|
28
|
-
|
|
29
22
|
function _debug() {
|
|
30
23
|
const data = _interopRequireDefault(require("debug"));
|
|
31
|
-
|
|
32
24
|
_debug = function () {
|
|
33
25
|
return data;
|
|
34
26
|
};
|
|
35
|
-
|
|
36
27
|
return data;
|
|
37
28
|
}
|
|
38
|
-
|
|
39
29
|
function _fsExtra() {
|
|
40
30
|
const data = _interopRequireDefault(require("fs-extra"));
|
|
41
|
-
|
|
42
31
|
_fsExtra = function () {
|
|
43
32
|
return data;
|
|
44
33
|
};
|
|
45
|
-
|
|
46
34
|
return data;
|
|
47
35
|
}
|
|
48
|
-
|
|
49
36
|
function _jimpCompact() {
|
|
50
37
|
const data = _interopRequireDefault(require("jimp-compact"));
|
|
51
|
-
|
|
52
38
|
_jimpCompact = function () {
|
|
53
39
|
return data;
|
|
54
40
|
};
|
|
55
|
-
|
|
56
41
|
return data;
|
|
57
42
|
}
|
|
58
|
-
|
|
59
43
|
function path() {
|
|
60
44
|
const data = _interopRequireWildcard(require("path"));
|
|
61
|
-
|
|
62
45
|
path = function () {
|
|
63
46
|
return data;
|
|
64
47
|
};
|
|
65
|
-
|
|
66
48
|
return data;
|
|
67
49
|
}
|
|
68
|
-
|
|
69
50
|
function _AssetContents() {
|
|
70
51
|
const data = require("../../icons/AssetContents");
|
|
71
|
-
|
|
72
52
|
_AssetContents = function () {
|
|
73
53
|
return data;
|
|
74
54
|
};
|
|
75
|
-
|
|
76
55
|
return data;
|
|
77
56
|
}
|
|
78
|
-
|
|
79
57
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
80
|
-
|
|
81
58
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
82
|
-
|
|
83
59
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
84
|
-
|
|
85
60
|
// @ts-ignore
|
|
61
|
+
|
|
86
62
|
const debug = (0, _debug().default)('expo:prebuild-config:expo-splash-screen:ios:assets');
|
|
87
63
|
const IMAGE_CACHE_NAME = 'splash-ios';
|
|
88
64
|
const IMAGESET_PATH = 'Images.xcassets/SplashScreen.imageset';
|
|
@@ -91,17 +67,13 @@ const PNG_FILENAME = 'image.png';
|
|
|
91
67
|
const DARK_PNG_FILENAME = 'dark_image.png';
|
|
92
68
|
const TABLET_PNG_FILENAME = 'tablet_image.png';
|
|
93
69
|
const DARK_TABLET_PNG_FILENAME = 'dark_tablet_image.png';
|
|
94
|
-
|
|
95
70
|
const withIosSplashAssets = (config, splash) => {
|
|
96
71
|
if (!splash) {
|
|
97
72
|
return config;
|
|
98
73
|
}
|
|
99
|
-
|
|
100
74
|
return (0, _configPlugins().withDangerousMod)(config, ['ios', async config => {
|
|
101
75
|
var _splash$dark, _splash$dark2;
|
|
102
|
-
|
|
103
76
|
const iosNamedProjectRoot = _configPlugins().IOSConfig.Paths.getSourceRoot(config.modRequest.projectRoot);
|
|
104
|
-
|
|
105
77
|
await createSplashScreenBackgroundImageAsync({
|
|
106
78
|
iosNamedProjectRoot,
|
|
107
79
|
splash
|
|
@@ -117,13 +89,11 @@ const withIosSplashAssets = (config, splash) => {
|
|
|
117
89
|
return config;
|
|
118
90
|
}]);
|
|
119
91
|
};
|
|
92
|
+
|
|
120
93
|
/**
|
|
121
94
|
* Creates imageset containing image for Splash/Launch Screen.
|
|
122
95
|
*/
|
|
123
|
-
|
|
124
|
-
|
|
125
96
|
exports.withIosSplashAssets = withIosSplashAssets;
|
|
126
|
-
|
|
127
97
|
async function configureImageAssets({
|
|
128
98
|
projectRoot,
|
|
129
99
|
iosNamedProjectRoot,
|
|
@@ -132,14 +102,13 @@ async function configureImageAssets({
|
|
|
132
102
|
tabletImage,
|
|
133
103
|
darkTabletImage
|
|
134
104
|
}) {
|
|
135
|
-
const imageSetPath = path().resolve(iosNamedProjectRoot, IMAGESET_PATH);
|
|
105
|
+
const imageSetPath = path().resolve(iosNamedProjectRoot, IMAGESET_PATH);
|
|
136
106
|
|
|
107
|
+
// ensure old SplashScreen imageSet is removed
|
|
137
108
|
await _fsExtra().default.remove(imageSetPath);
|
|
138
|
-
|
|
139
109
|
if (!image) {
|
|
140
110
|
return;
|
|
141
111
|
}
|
|
142
|
-
|
|
143
112
|
await writeContentsJsonFileAsync({
|
|
144
113
|
assetPath: imageSetPath,
|
|
145
114
|
image: PNG_FILENAME,
|
|
@@ -156,12 +125,10 @@ async function configureImageAssets({
|
|
|
156
125
|
darkTabletImage
|
|
157
126
|
});
|
|
158
127
|
}
|
|
159
|
-
|
|
160
128
|
async function createPngFileAsync(color, filePath) {
|
|
161
129
|
const png = new (_jimpCompact().default)(1, 1, color);
|
|
162
130
|
return png.writeAsync(filePath);
|
|
163
131
|
}
|
|
164
|
-
|
|
165
132
|
async function createBackgroundImagesAsync({
|
|
166
133
|
iosNamedProjectRoot,
|
|
167
134
|
color,
|
|
@@ -173,14 +140,12 @@ async function createBackgroundImagesAsync({
|
|
|
173
140
|
async generateImageAsset(item, fileName) {
|
|
174
141
|
await createPngFileAsync(item, path().resolve(iosNamedProjectRoot, BACKGROUND_IMAGESET_PATH, fileName));
|
|
175
142
|
},
|
|
176
|
-
|
|
177
143
|
anyItem: color,
|
|
178
144
|
darkItem: darkColor,
|
|
179
145
|
tabletItem: tabletColor,
|
|
180
146
|
darkTabletItem: darkTabletColor
|
|
181
147
|
});
|
|
182
148
|
}
|
|
183
|
-
|
|
184
149
|
async function copyImageFiles({
|
|
185
150
|
projectRoot,
|
|
186
151
|
iosNamedProjectRoot,
|
|
@@ -200,19 +165,17 @@ async function copyImageFiles({
|
|
|
200
165
|
cacheType: IMAGE_CACHE_NAME
|
|
201
166
|
}, {
|
|
202
167
|
src: item
|
|
203
|
-
});
|
|
168
|
+
});
|
|
169
|
+
// Write image buffer to the file system.
|
|
204
170
|
// const assetPath = join(iosNamedProjectRoot, IMAGESET_PATH, filename);
|
|
205
|
-
|
|
206
171
|
await _fsExtra().default.writeFile(path().resolve(iosNamedProjectRoot, IMAGESET_PATH, fileName), source);
|
|
207
172
|
},
|
|
208
|
-
|
|
209
173
|
anyItem: image,
|
|
210
174
|
darkItem: darkImage,
|
|
211
175
|
tabletItem: tabletImage,
|
|
212
176
|
darkTabletItem: darkTabletImage
|
|
213
177
|
});
|
|
214
178
|
}
|
|
215
|
-
|
|
216
179
|
async function generateImagesAssetsAsync({
|
|
217
180
|
generateImageAsset,
|
|
218
181
|
anyItem,
|
|
@@ -223,19 +186,17 @@ async function generateImagesAssetsAsync({
|
|
|
223
186
|
const items = [[anyItem, PNG_FILENAME], [darkItem, DARK_PNG_FILENAME], [tabletItem, TABLET_PNG_FILENAME], [darkTabletItem, DARK_TABLET_PNG_FILENAME]].filter(([item]) => !!item);
|
|
224
187
|
await Promise.all(items.map(([item, fileName]) => generateImageAsset(item, fileName)));
|
|
225
188
|
}
|
|
226
|
-
|
|
227
189
|
async function createSplashScreenBackgroundImageAsync({
|
|
228
190
|
iosNamedProjectRoot,
|
|
229
191
|
splash
|
|
230
192
|
}) {
|
|
231
193
|
var _splash$dark3, _splash$dark4;
|
|
232
|
-
|
|
233
194
|
const color = splash.backgroundColor;
|
|
234
195
|
const darkColor = (_splash$dark3 = splash.dark) === null || _splash$dark3 === void 0 ? void 0 : _splash$dark3.backgroundColor;
|
|
235
196
|
const tabletColor = splash.tabletBackgroundColor;
|
|
236
197
|
const darkTabletColor = (_splash$dark4 = splash.dark) === null || _splash$dark4 === void 0 ? void 0 : _splash$dark4.tabletBackgroundColor;
|
|
237
|
-
const imagesetPath = path().join(iosNamedProjectRoot, BACKGROUND_IMAGESET_PATH);
|
|
238
|
-
|
|
198
|
+
const imagesetPath = path().join(iosNamedProjectRoot, BACKGROUND_IMAGESET_PATH);
|
|
199
|
+
// Ensure the Images.xcassets/... path exists
|
|
239
200
|
await _fsExtra().default.remove(imagesetPath);
|
|
240
201
|
await _fsExtra().default.ensureDir(imagesetPath);
|
|
241
202
|
await createBackgroundImagesAsync({
|
|
@@ -253,19 +214,18 @@ async function createSplashScreenBackgroundImageAsync({
|
|
|
253
214
|
darkTabletImage: darkTabletColor ? DARK_TABLET_PNG_FILENAME : null
|
|
254
215
|
});
|
|
255
216
|
}
|
|
256
|
-
|
|
257
217
|
const darkAppearances = [{
|
|
258
218
|
appearance: 'luminosity',
|
|
259
219
|
value: 'dark'
|
|
260
220
|
}];
|
|
261
|
-
|
|
262
221
|
function buildContentsJsonImages({
|
|
263
222
|
image,
|
|
264
223
|
darkImage,
|
|
265
224
|
tabletImage,
|
|
266
225
|
darkTabletImage
|
|
267
226
|
}) {
|
|
268
|
-
return [
|
|
227
|
+
return [
|
|
228
|
+
// Phone light
|
|
269
229
|
(0, _AssetContents().createContentsJsonItem)({
|
|
270
230
|
idiom: 'universal',
|
|
271
231
|
filename: image,
|
|
@@ -276,7 +236,8 @@ function buildContentsJsonImages({
|
|
|
276
236
|
}), (0, _AssetContents().createContentsJsonItem)({
|
|
277
237
|
idiom: 'universal',
|
|
278
238
|
scale: '3x'
|
|
279
|
-
}),
|
|
239
|
+
}),
|
|
240
|
+
// Phone dark
|
|
280
241
|
darkImage && (0, _AssetContents().createContentsJsonItem)({
|
|
281
242
|
idiom: 'universal',
|
|
282
243
|
appearances: darkAppearances,
|
|
@@ -290,7 +251,8 @@ function buildContentsJsonImages({
|
|
|
290
251
|
idiom: 'universal',
|
|
291
252
|
appearances: darkAppearances,
|
|
292
253
|
scale: '3x'
|
|
293
|
-
}),
|
|
254
|
+
}),
|
|
255
|
+
// Tablet light
|
|
294
256
|
tabletImage && (0, _AssetContents().createContentsJsonItem)({
|
|
295
257
|
idiom: 'ipad',
|
|
296
258
|
filename: tabletImage,
|
|
@@ -298,7 +260,8 @@ function buildContentsJsonImages({
|
|
|
298
260
|
}), tabletImage && (0, _AssetContents().createContentsJsonItem)({
|
|
299
261
|
idiom: 'ipad',
|
|
300
262
|
scale: '2x'
|
|
301
|
-
}),
|
|
263
|
+
}),
|
|
264
|
+
// Phone dark
|
|
302
265
|
darkTabletImage && (0, _AssetContents().createContentsJsonItem)({
|
|
303
266
|
idiom: 'ipad',
|
|
304
267
|
appearances: darkAppearances,
|
|
@@ -310,7 +273,6 @@ function buildContentsJsonImages({
|
|
|
310
273
|
scale: '2x'
|
|
311
274
|
})].filter(Boolean);
|
|
312
275
|
}
|
|
313
|
-
|
|
314
276
|
async function writeContentsJsonFileAsync({
|
|
315
277
|
assetPath,
|
|
316
278
|
image,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withIosSplashAssets.js","names":["debug","Debug","IMAGE_CACHE_NAME","IMAGESET_PATH","BACKGROUND_IMAGESET_PATH","PNG_FILENAME","DARK_PNG_FILENAME","TABLET_PNG_FILENAME","DARK_TABLET_PNG_FILENAME","withIosSplashAssets","config","splash","withDangerousMod","iosNamedProjectRoot","IOSConfig","Paths","getSourceRoot","modRequest","projectRoot","createSplashScreenBackgroundImageAsync","configureImageAssets","image","darkImage","dark","tabletImage","darkTabletImage","imageSetPath","path","resolve","fs","remove","writeContentsJsonFileAsync","assetPath","copyImageFiles","createPngFileAsync","color","filePath","png","Jimp","writeAsync","createBackgroundImagesAsync","darkColor","tabletColor","darkTabletColor","generateImagesAssetsAsync","generateImageAsset","item","fileName","anyItem","darkItem","tabletItem","darkTabletItem","source","generateImageAsync","cacheType","src","writeFile","items","filter","Promise","all","map","backgroundColor","tabletBackgroundColor","imagesetPath","join","ensureDir","darkAppearances","appearance","value","buildContentsJsonImages","createContentsJsonItem","idiom","filename","scale","appearances","undefined","Boolean","images","writeContentsJsonAsync"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withIosSplashAssets.ts"],"sourcesContent":["import { ConfigPlugin, IOSConfig, withDangerousMod } from '@expo/config-plugins';\nimport { generateImageAsync } from '@expo/image-utils';\nimport Debug from 'debug';\nimport fs from 'fs-extra';\n// @ts-ignore\nimport Jimp from 'jimp-compact';\nimport * as path from 'path';\n\nimport {\n ContentsJsonImage,\n ContentsJsonImageAppearance,\n createContentsJsonItem,\n writeContentsJsonAsync,\n} from '../../icons/AssetContents';\nimport { IOSSplashConfig } from './getIosSplashConfig';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:ios:assets');\n\nconst IMAGE_CACHE_NAME = 'splash-ios';\nconst IMAGESET_PATH = 'Images.xcassets/SplashScreen.imageset';\nconst BACKGROUND_IMAGESET_PATH = 'Images.xcassets/SplashScreenBackground.imageset';\nconst PNG_FILENAME = 'image.png';\nconst DARK_PNG_FILENAME = 'dark_image.png';\nconst TABLET_PNG_FILENAME = 'tablet_image.png';\nconst DARK_TABLET_PNG_FILENAME = 'dark_tablet_image.png';\n\nexport const withIosSplashAssets: ConfigPlugin<IOSSplashConfig> = (config, splash) => {\n if (!splash) {\n return config;\n }\n return withDangerousMod(config, [\n 'ios',\n async (config) => {\n const iosNamedProjectRoot = IOSConfig.Paths.getSourceRoot(config.modRequest.projectRoot);\n\n await createSplashScreenBackgroundImageAsync({\n iosNamedProjectRoot,\n splash,\n });\n\n await configureImageAssets({\n projectRoot: config.modRequest.projectRoot,\n iosNamedProjectRoot,\n image: splash.image,\n darkImage: splash.dark?.image,\n tabletImage: splash.tabletImage,\n darkTabletImage: splash.dark?.tabletImage,\n });\n\n return config;\n },\n ]);\n};\n\n/**\n * Creates imageset containing image for Splash/Launch Screen.\n */\nasync function configureImageAssets({\n projectRoot,\n iosNamedProjectRoot,\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n}: {\n projectRoot: string;\n iosNamedProjectRoot: string;\n image?: string | null;\n darkImage?: string | null;\n tabletImage: string | null;\n darkTabletImage?: string | null;\n}) {\n const imageSetPath = path.resolve(iosNamedProjectRoot, IMAGESET_PATH);\n\n // ensure old SplashScreen imageSet is removed\n await fs.remove(imageSetPath);\n\n if (!image) {\n return;\n }\n\n await writeContentsJsonFileAsync({\n assetPath: imageSetPath,\n image: PNG_FILENAME,\n darkImage: darkImage ? DARK_PNG_FILENAME : null,\n tabletImage: tabletImage ? TABLET_PNG_FILENAME : null,\n darkTabletImage: darkTabletImage ? DARK_TABLET_PNG_FILENAME : null,\n });\n\n await copyImageFiles({\n projectRoot,\n iosNamedProjectRoot,\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n });\n}\n\nasync function createPngFileAsync(color: string, filePath: string) {\n const png = new Jimp(1, 1, color);\n return png.writeAsync(filePath);\n}\n\nasync function createBackgroundImagesAsync({\n iosNamedProjectRoot,\n color,\n darkColor,\n tabletColor,\n darkTabletColor,\n}: {\n iosNamedProjectRoot: string;\n color: string;\n darkColor: string | null;\n tabletColor: string | null;\n darkTabletColor: string | null;\n}) {\n await generateImagesAssetsAsync({\n async generateImageAsset(item, fileName) {\n await createPngFileAsync(\n item,\n path.resolve(iosNamedProjectRoot, BACKGROUND_IMAGESET_PATH, fileName)\n );\n },\n anyItem: color,\n darkItem: darkColor,\n tabletItem: tabletColor,\n darkTabletItem: darkTabletColor,\n });\n}\n\nasync function copyImageFiles({\n projectRoot,\n iosNamedProjectRoot,\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n}: {\n projectRoot: string;\n iosNamedProjectRoot: string;\n image: string;\n darkImage?: string | null;\n tabletImage?: string | null;\n darkTabletImage?: string | null;\n}) {\n await generateImagesAssetsAsync({\n async generateImageAsset(item, fileName) {\n // Using this method will cache the images in `.expo` based on the properties used to generate them.\n // this method also supports remote URLs and using the global sharp instance.\n const { source } = await generateImageAsync({ projectRoot, cacheType: IMAGE_CACHE_NAME }, {\n src: item,\n } as any);\n // Write image buffer to the file system.\n // const assetPath = join(iosNamedProjectRoot, IMAGESET_PATH, filename);\n await fs.writeFile(path.resolve(iosNamedProjectRoot, IMAGESET_PATH, fileName), source);\n },\n anyItem: image,\n darkItem: darkImage,\n tabletItem: tabletImage,\n darkTabletItem: darkTabletImage,\n });\n}\n\nasync function generateImagesAssetsAsync({\n generateImageAsset,\n anyItem,\n darkItem,\n tabletItem,\n darkTabletItem,\n}: {\n generateImageAsset: (item: string, fileName: string) => Promise<void>;\n anyItem: string;\n darkItem?: string | null;\n tabletItem?: string | null;\n darkTabletItem?: string | null;\n}) {\n const items = [\n [anyItem, PNG_FILENAME],\n [darkItem, DARK_PNG_FILENAME],\n [tabletItem, TABLET_PNG_FILENAME],\n [darkTabletItem, DARK_TABLET_PNG_FILENAME],\n ].filter(([item]) => !!item) as unknown as [string, string];\n\n await Promise.all(items.map(([item, fileName]) => generateImageAsset(item, fileName)));\n}\n\nasync function createSplashScreenBackgroundImageAsync({\n iosNamedProjectRoot,\n splash,\n}: {\n // Something like projectRoot/ios/MyApp/\n iosNamedProjectRoot: string;\n splash: IOSSplashConfig;\n}) {\n const color = splash.backgroundColor;\n const darkColor = splash.dark?.backgroundColor;\n const tabletColor = splash.tabletBackgroundColor;\n const darkTabletColor = splash.dark?.tabletBackgroundColor;\n\n const imagesetPath = path.join(iosNamedProjectRoot, BACKGROUND_IMAGESET_PATH);\n // Ensure the Images.xcassets/... path exists\n await fs.remove(imagesetPath);\n await fs.ensureDir(imagesetPath);\n\n await createBackgroundImagesAsync({\n iosNamedProjectRoot,\n color,\n darkColor: darkColor ? darkColor : null,\n tabletColor: tabletColor ? tabletColor : null,\n darkTabletColor: darkTabletColor ? darkTabletColor : null,\n });\n\n await writeContentsJsonFileAsync({\n assetPath: path.resolve(iosNamedProjectRoot, BACKGROUND_IMAGESET_PATH),\n image: PNG_FILENAME,\n darkImage: darkColor ? DARK_PNG_FILENAME : null,\n tabletImage: tabletColor ? TABLET_PNG_FILENAME : null,\n darkTabletImage: darkTabletColor ? DARK_TABLET_PNG_FILENAME : null,\n });\n}\n\nconst darkAppearances: ContentsJsonImageAppearance[] = [\n {\n appearance: 'luminosity',\n value: 'dark',\n } as ContentsJsonImageAppearance,\n];\n\nexport function buildContentsJsonImages({\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n}: {\n image: string;\n tabletImage: string | null;\n darkImage: string | null;\n darkTabletImage: string | null;\n}): ContentsJsonImage[] {\n return [\n // Phone light\n createContentsJsonItem({\n idiom: 'universal',\n filename: image,\n scale: '1x',\n }),\n createContentsJsonItem({\n idiom: 'universal',\n scale: '2x',\n }),\n createContentsJsonItem({\n idiom: 'universal',\n scale: '3x',\n }),\n // Phone dark\n darkImage &&\n createContentsJsonItem({\n idiom: 'universal',\n appearances: darkAppearances,\n filename: darkImage,\n scale: '1x',\n }),\n darkImage &&\n createContentsJsonItem({\n idiom: 'universal',\n appearances: darkAppearances,\n scale: '2x',\n }),\n darkImage &&\n createContentsJsonItem({\n idiom: 'universal',\n appearances: darkAppearances,\n scale: '3x',\n }),\n // Tablet light\n tabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n filename: tabletImage,\n scale: '1x',\n }),\n tabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n scale: '2x',\n }),\n // Phone dark\n darkTabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n appearances: darkAppearances,\n filename: darkTabletImage ?? undefined,\n scale: '1x',\n }),\n darkTabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n appearances: darkAppearances,\n scale: '2x',\n }),\n ].filter(Boolean) as ContentsJsonImage[];\n}\n\nasync function writeContentsJsonFileAsync({\n assetPath,\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n}: {\n assetPath: string;\n image: string;\n darkImage: string | null;\n tabletImage: string | null;\n darkTabletImage: string | null;\n}) {\n const images = buildContentsJsonImages({ image, darkImage, tabletImage, darkTabletImage });\n\n debug(`create contents.json:`, assetPath);\n debug(`use images:`, images);\n await writeContentsJsonAsync(assetPath, { images });\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"withIosSplashAssets.js","names":["debug","Debug","IMAGE_CACHE_NAME","IMAGESET_PATH","BACKGROUND_IMAGESET_PATH","PNG_FILENAME","DARK_PNG_FILENAME","TABLET_PNG_FILENAME","DARK_TABLET_PNG_FILENAME","withIosSplashAssets","config","splash","withDangerousMod","iosNamedProjectRoot","IOSConfig","Paths","getSourceRoot","modRequest","projectRoot","createSplashScreenBackgroundImageAsync","configureImageAssets","image","darkImage","dark","tabletImage","darkTabletImage","imageSetPath","path","resolve","fs","remove","writeContentsJsonFileAsync","assetPath","copyImageFiles","createPngFileAsync","color","filePath","png","Jimp","writeAsync","createBackgroundImagesAsync","darkColor","tabletColor","darkTabletColor","generateImagesAssetsAsync","generateImageAsset","item","fileName","anyItem","darkItem","tabletItem","darkTabletItem","source","generateImageAsync","cacheType","src","writeFile","items","filter","Promise","all","map","backgroundColor","tabletBackgroundColor","imagesetPath","join","ensureDir","darkAppearances","appearance","value","buildContentsJsonImages","createContentsJsonItem","idiom","filename","scale","appearances","undefined","Boolean","images","writeContentsJsonAsync"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withIosSplashAssets.ts"],"sourcesContent":["import { ConfigPlugin, IOSConfig, withDangerousMod } from '@expo/config-plugins';\nimport { generateImageAsync } from '@expo/image-utils';\nimport Debug from 'debug';\nimport fs from 'fs-extra';\n// @ts-ignore\nimport Jimp from 'jimp-compact';\nimport * as path from 'path';\n\nimport {\n ContentsJsonImage,\n ContentsJsonImageAppearance,\n createContentsJsonItem,\n writeContentsJsonAsync,\n} from '../../icons/AssetContents';\nimport { IOSSplashConfig } from './getIosSplashConfig';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:ios:assets');\n\nconst IMAGE_CACHE_NAME = 'splash-ios';\nconst IMAGESET_PATH = 'Images.xcassets/SplashScreen.imageset';\nconst BACKGROUND_IMAGESET_PATH = 'Images.xcassets/SplashScreenBackground.imageset';\nconst PNG_FILENAME = 'image.png';\nconst DARK_PNG_FILENAME = 'dark_image.png';\nconst TABLET_PNG_FILENAME = 'tablet_image.png';\nconst DARK_TABLET_PNG_FILENAME = 'dark_tablet_image.png';\n\nexport const withIosSplashAssets: ConfigPlugin<IOSSplashConfig> = (config, splash) => {\n if (!splash) {\n return config;\n }\n return withDangerousMod(config, [\n 'ios',\n async (config) => {\n const iosNamedProjectRoot = IOSConfig.Paths.getSourceRoot(config.modRequest.projectRoot);\n\n await createSplashScreenBackgroundImageAsync({\n iosNamedProjectRoot,\n splash,\n });\n\n await configureImageAssets({\n projectRoot: config.modRequest.projectRoot,\n iosNamedProjectRoot,\n image: splash.image,\n darkImage: splash.dark?.image,\n tabletImage: splash.tabletImage,\n darkTabletImage: splash.dark?.tabletImage,\n });\n\n return config;\n },\n ]);\n};\n\n/**\n * Creates imageset containing image for Splash/Launch Screen.\n */\nasync function configureImageAssets({\n projectRoot,\n iosNamedProjectRoot,\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n}: {\n projectRoot: string;\n iosNamedProjectRoot: string;\n image?: string | null;\n darkImage?: string | null;\n tabletImage: string | null;\n darkTabletImage?: string | null;\n}) {\n const imageSetPath = path.resolve(iosNamedProjectRoot, IMAGESET_PATH);\n\n // ensure old SplashScreen imageSet is removed\n await fs.remove(imageSetPath);\n\n if (!image) {\n return;\n }\n\n await writeContentsJsonFileAsync({\n assetPath: imageSetPath,\n image: PNG_FILENAME,\n darkImage: darkImage ? DARK_PNG_FILENAME : null,\n tabletImage: tabletImage ? TABLET_PNG_FILENAME : null,\n darkTabletImage: darkTabletImage ? DARK_TABLET_PNG_FILENAME : null,\n });\n\n await copyImageFiles({\n projectRoot,\n iosNamedProjectRoot,\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n });\n}\n\nasync function createPngFileAsync(color: string, filePath: string) {\n const png = new Jimp(1, 1, color);\n return png.writeAsync(filePath);\n}\n\nasync function createBackgroundImagesAsync({\n iosNamedProjectRoot,\n color,\n darkColor,\n tabletColor,\n darkTabletColor,\n}: {\n iosNamedProjectRoot: string;\n color: string;\n darkColor: string | null;\n tabletColor: string | null;\n darkTabletColor: string | null;\n}) {\n await generateImagesAssetsAsync({\n async generateImageAsset(item, fileName) {\n await createPngFileAsync(\n item,\n path.resolve(iosNamedProjectRoot, BACKGROUND_IMAGESET_PATH, fileName)\n );\n },\n anyItem: color,\n darkItem: darkColor,\n tabletItem: tabletColor,\n darkTabletItem: darkTabletColor,\n });\n}\n\nasync function copyImageFiles({\n projectRoot,\n iosNamedProjectRoot,\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n}: {\n projectRoot: string;\n iosNamedProjectRoot: string;\n image: string;\n darkImage?: string | null;\n tabletImage?: string | null;\n darkTabletImage?: string | null;\n}) {\n await generateImagesAssetsAsync({\n async generateImageAsset(item, fileName) {\n // Using this method will cache the images in `.expo` based on the properties used to generate them.\n // this method also supports remote URLs and using the global sharp instance.\n const { source } = await generateImageAsync({ projectRoot, cacheType: IMAGE_CACHE_NAME }, {\n src: item,\n } as any);\n // Write image buffer to the file system.\n // const assetPath = join(iosNamedProjectRoot, IMAGESET_PATH, filename);\n await fs.writeFile(path.resolve(iosNamedProjectRoot, IMAGESET_PATH, fileName), source);\n },\n anyItem: image,\n darkItem: darkImage,\n tabletItem: tabletImage,\n darkTabletItem: darkTabletImage,\n });\n}\n\nasync function generateImagesAssetsAsync({\n generateImageAsset,\n anyItem,\n darkItem,\n tabletItem,\n darkTabletItem,\n}: {\n generateImageAsset: (item: string, fileName: string) => Promise<void>;\n anyItem: string;\n darkItem?: string | null;\n tabletItem?: string | null;\n darkTabletItem?: string | null;\n}) {\n const items = [\n [anyItem, PNG_FILENAME],\n [darkItem, DARK_PNG_FILENAME],\n [tabletItem, TABLET_PNG_FILENAME],\n [darkTabletItem, DARK_TABLET_PNG_FILENAME],\n ].filter(([item]) => !!item) as unknown as [string, string];\n\n await Promise.all(items.map(([item, fileName]) => generateImageAsset(item, fileName)));\n}\n\nasync function createSplashScreenBackgroundImageAsync({\n iosNamedProjectRoot,\n splash,\n}: {\n // Something like projectRoot/ios/MyApp/\n iosNamedProjectRoot: string;\n splash: IOSSplashConfig;\n}) {\n const color = splash.backgroundColor;\n const darkColor = splash.dark?.backgroundColor;\n const tabletColor = splash.tabletBackgroundColor;\n const darkTabletColor = splash.dark?.tabletBackgroundColor;\n\n const imagesetPath = path.join(iosNamedProjectRoot, BACKGROUND_IMAGESET_PATH);\n // Ensure the Images.xcassets/... path exists\n await fs.remove(imagesetPath);\n await fs.ensureDir(imagesetPath);\n\n await createBackgroundImagesAsync({\n iosNamedProjectRoot,\n color,\n darkColor: darkColor ? darkColor : null,\n tabletColor: tabletColor ? tabletColor : null,\n darkTabletColor: darkTabletColor ? darkTabletColor : null,\n });\n\n await writeContentsJsonFileAsync({\n assetPath: path.resolve(iosNamedProjectRoot, BACKGROUND_IMAGESET_PATH),\n image: PNG_FILENAME,\n darkImage: darkColor ? DARK_PNG_FILENAME : null,\n tabletImage: tabletColor ? TABLET_PNG_FILENAME : null,\n darkTabletImage: darkTabletColor ? DARK_TABLET_PNG_FILENAME : null,\n });\n}\n\nconst darkAppearances: ContentsJsonImageAppearance[] = [\n {\n appearance: 'luminosity',\n value: 'dark',\n } as ContentsJsonImageAppearance,\n];\n\nexport function buildContentsJsonImages({\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n}: {\n image: string;\n tabletImage: string | null;\n darkImage: string | null;\n darkTabletImage: string | null;\n}): ContentsJsonImage[] {\n return [\n // Phone light\n createContentsJsonItem({\n idiom: 'universal',\n filename: image,\n scale: '1x',\n }),\n createContentsJsonItem({\n idiom: 'universal',\n scale: '2x',\n }),\n createContentsJsonItem({\n idiom: 'universal',\n scale: '3x',\n }),\n // Phone dark\n darkImage &&\n createContentsJsonItem({\n idiom: 'universal',\n appearances: darkAppearances,\n filename: darkImage,\n scale: '1x',\n }),\n darkImage &&\n createContentsJsonItem({\n idiom: 'universal',\n appearances: darkAppearances,\n scale: '2x',\n }),\n darkImage &&\n createContentsJsonItem({\n idiom: 'universal',\n appearances: darkAppearances,\n scale: '3x',\n }),\n // Tablet light\n tabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n filename: tabletImage,\n scale: '1x',\n }),\n tabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n scale: '2x',\n }),\n // Phone dark\n darkTabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n appearances: darkAppearances,\n filename: darkTabletImage ?? undefined,\n scale: '1x',\n }),\n darkTabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n appearances: darkAppearances,\n scale: '2x',\n }),\n ].filter(Boolean) as ContentsJsonImage[];\n}\n\nasync function writeContentsJsonFileAsync({\n assetPath,\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n}: {\n assetPath: string;\n image: string;\n darkImage: string | null;\n tabletImage: string | null;\n darkTabletImage: string | null;\n}) {\n const images = buildContentsJsonImages({ image, darkImage, tabletImage, darkTabletImage });\n\n debug(`create contents.json:`, assetPath);\n debug(`use images:`, images);\n await writeContentsJsonAsync(assetPath, { images });\n}\n"],"mappings":"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"}
|
|
@@ -5,64 +5,49 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.setSplashInfoPlist = setSplashInfoPlist;
|
|
7
7
|
exports.withIosSplashInfoPlist = void 0;
|
|
8
|
-
|
|
9
8
|
function _configPlugins() {
|
|
10
9
|
const data = require("@expo/config-plugins");
|
|
11
|
-
|
|
12
10
|
_configPlugins = function () {
|
|
13
11
|
return data;
|
|
14
12
|
};
|
|
15
|
-
|
|
16
13
|
return data;
|
|
17
14
|
}
|
|
18
|
-
|
|
19
15
|
function _debug() {
|
|
20
16
|
const data = _interopRequireDefault(require("debug"));
|
|
21
|
-
|
|
22
17
|
_debug = function () {
|
|
23
18
|
return data;
|
|
24
19
|
};
|
|
25
|
-
|
|
26
20
|
return data;
|
|
27
21
|
}
|
|
28
|
-
|
|
29
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
30
|
-
|
|
31
23
|
const debug = (0, _debug().default)('expo:prebuild-config:expo-splash-screen:ios:infoPlist');
|
|
32
|
-
|
|
33
24
|
const withIosSplashInfoPlist = (config, splash) => {
|
|
34
25
|
return (0, _configPlugins().withInfoPlist)(config, config => {
|
|
35
26
|
config.modResults = setSplashInfoPlist(config, config.modResults, splash);
|
|
36
27
|
return config;
|
|
37
28
|
});
|
|
38
29
|
};
|
|
39
|
-
|
|
40
30
|
exports.withIosSplashInfoPlist = withIosSplashInfoPlist;
|
|
41
|
-
|
|
42
31
|
function setSplashInfoPlist(config, infoPlist, splash) {
|
|
43
32
|
var _splash$dark, _splash$dark2, _splash$dark3, _splash$dark4;
|
|
44
|
-
|
|
45
33
|
const isDarkModeEnabled = !!(splash !== null && splash !== void 0 && (_splash$dark = splash.dark) !== null && _splash$dark !== void 0 && _splash$dark.image || splash !== null && splash !== void 0 && (_splash$dark2 = splash.dark) !== null && _splash$dark2 !== void 0 && _splash$dark2.tabletImage || splash !== null && splash !== void 0 && (_splash$dark3 = splash.dark) !== null && _splash$dark3 !== void 0 && _splash$dark3.backgroundColor || splash !== null && splash !== void 0 && (_splash$dark4 = splash.dark) !== null && _splash$dark4 !== void 0 && _splash$dark4.tabletBackgroundColor);
|
|
46
34
|
debug(`isDarkModeEnabled: `, isDarkModeEnabled);
|
|
47
|
-
|
|
48
35
|
if (isDarkModeEnabled) {
|
|
49
36
|
var _config$ios$userInter, _config$ios;
|
|
50
|
-
|
|
51
37
|
// IOSConfig.UserInterfaceStyle.getUserInterfaceStyle(config);
|
|
52
38
|
// Determine if the user manually defined the userInterfaceStyle incorrectly
|
|
53
|
-
const existing = (_config$ios$userInter = (_config$ios = config.ios) === null || _config$ios === void 0 ? void 0 : _config$ios.userInterfaceStyle) !== null && _config$ios$userInter !== void 0 ? _config$ios$userInter : config.userInterfaceStyle;
|
|
54
|
-
|
|
39
|
+
const existing = (_config$ios$userInter = (_config$ios = config.ios) === null || _config$ios === void 0 ? void 0 : _config$ios.userInterfaceStyle) !== null && _config$ios$userInter !== void 0 ? _config$ios$userInter : config.userInterfaceStyle;
|
|
40
|
+
// Add a warning to prevent the dark mode splash screen from not being shown -- this was learned the hard way.
|
|
55
41
|
if (existing && existing !== 'automatic') {
|
|
56
42
|
_configPlugins().WarningAggregator.addWarningIOS('userInterfaceStyle', 'The existing `userInterfaceStyle` property is preventing splash screen from working properly. Please remove it or disable dark mode splash screens.');
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
43
|
+
}
|
|
44
|
+
// assigning it to auto anyways, but this is fragile because the order of operations matter now
|
|
60
45
|
infoPlist.UIUserInterfaceStyle = 'Automatic';
|
|
61
|
-
} else {
|
|
46
|
+
} else {
|
|
47
|
+
// NOTE(brentvatne): Commented out this line because it causes https://github.com/expo/expo-cli/issues/3935
|
|
62
48
|
// We should revisit this approach.
|
|
63
49
|
// delete infoPlist.UIUserInterfaceStyle;
|
|
64
50
|
}
|
|
65
|
-
|
|
66
51
|
if (splash) {
|
|
67
52
|
// TODO: What to do here ??
|
|
68
53
|
infoPlist.UILaunchStoryboardName = 'SplashScreen';
|
|
@@ -70,7 +55,6 @@ function setSplashInfoPlist(config, infoPlist, splash) {
|
|
|
70
55
|
debug(`Disabling UILaunchStoryboardName`);
|
|
71
56
|
delete infoPlist.UILaunchStoryboardName;
|
|
72
57
|
}
|
|
73
|
-
|
|
74
58
|
return infoPlist;
|
|
75
59
|
}
|
|
76
60
|
//# sourceMappingURL=withIosSplashInfoPlist.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withIosSplashInfoPlist.js","names":["debug","Debug","withIosSplashInfoPlist","config","splash","withInfoPlist","modResults","setSplashInfoPlist","infoPlist","isDarkModeEnabled","dark","image","tabletImage","backgroundColor","tabletBackgroundColor","existing","ios","userInterfaceStyle","WarningAggregator","addWarningIOS","UIUserInterfaceStyle","UILaunchStoryboardName"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withIosSplashInfoPlist.ts"],"sourcesContent":["import { ConfigPlugin, InfoPlist, WarningAggregator, withInfoPlist } from '@expo/config-plugins';\nimport { ExpoConfig } from '@expo/config-types';\nimport Debug from 'debug';\n\nimport { IOSSplashConfig } from './getIosSplashConfig';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:ios:infoPlist');\n\nexport const withIosSplashInfoPlist: ConfigPlugin<IOSSplashConfig> = (config, splash) => {\n return withInfoPlist(config, (config) => {\n config.modResults = setSplashInfoPlist(config, config.modResults, splash);\n return config;\n });\n};\n\nexport function setSplashInfoPlist(\n config: ExpoConfig,\n infoPlist: InfoPlist,\n splash: IOSSplashConfig\n): InfoPlist {\n const isDarkModeEnabled = !!(\n splash?.dark?.image ||\n splash?.dark?.tabletImage ||\n splash?.dark?.backgroundColor ||\n splash?.dark?.tabletBackgroundColor\n );\n debug(`isDarkModeEnabled: `, isDarkModeEnabled);\n\n if (isDarkModeEnabled) {\n // IOSConfig.UserInterfaceStyle.getUserInterfaceStyle(config);\n // Determine if the user manually defined the userInterfaceStyle incorrectly\n const existing = config.ios?.userInterfaceStyle ?? config.userInterfaceStyle;\n // Add a warning to prevent the dark mode splash screen from not being shown -- this was learned the hard way.\n if (existing && existing !== 'automatic') {\n WarningAggregator.addWarningIOS(\n 'userInterfaceStyle',\n 'The existing `userInterfaceStyle` property is preventing splash screen from working properly. Please remove it or disable dark mode splash screens.'\n );\n }\n // assigning it to auto anyways, but this is fragile because the order of operations matter now\n infoPlist.UIUserInterfaceStyle = 'Automatic';\n } else {\n // NOTE(brentvatne): Commented out this line because it causes https://github.com/expo/expo-cli/issues/3935\n // We should revisit this approach.\n // delete infoPlist.UIUserInterfaceStyle;\n }\n\n if (splash) {\n // TODO: What to do here ??\n infoPlist.UILaunchStoryboardName = 'SplashScreen';\n } else {\n debug(`Disabling UILaunchStoryboardName`);\n delete infoPlist.UILaunchStoryboardName;\n }\n\n return infoPlist;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"withIosSplashInfoPlist.js","names":["debug","Debug","withIosSplashInfoPlist","config","splash","withInfoPlist","modResults","setSplashInfoPlist","infoPlist","isDarkModeEnabled","dark","image","tabletImage","backgroundColor","tabletBackgroundColor","existing","ios","userInterfaceStyle","WarningAggregator","addWarningIOS","UIUserInterfaceStyle","UILaunchStoryboardName"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withIosSplashInfoPlist.ts"],"sourcesContent":["import { ConfigPlugin, InfoPlist, WarningAggregator, withInfoPlist } from '@expo/config-plugins';\nimport { ExpoConfig } from '@expo/config-types';\nimport Debug from 'debug';\n\nimport { IOSSplashConfig } from './getIosSplashConfig';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:ios:infoPlist');\n\nexport const withIosSplashInfoPlist: ConfigPlugin<IOSSplashConfig> = (config, splash) => {\n return withInfoPlist(config, (config) => {\n config.modResults = setSplashInfoPlist(config, config.modResults, splash);\n return config;\n });\n};\n\nexport function setSplashInfoPlist(\n config: ExpoConfig,\n infoPlist: InfoPlist,\n splash: IOSSplashConfig\n): InfoPlist {\n const isDarkModeEnabled = !!(\n splash?.dark?.image ||\n splash?.dark?.tabletImage ||\n splash?.dark?.backgroundColor ||\n splash?.dark?.tabletBackgroundColor\n );\n debug(`isDarkModeEnabled: `, isDarkModeEnabled);\n\n if (isDarkModeEnabled) {\n // IOSConfig.UserInterfaceStyle.getUserInterfaceStyle(config);\n // Determine if the user manually defined the userInterfaceStyle incorrectly\n const existing = config.ios?.userInterfaceStyle ?? config.userInterfaceStyle;\n // Add a warning to prevent the dark mode splash screen from not being shown -- this was learned the hard way.\n if (existing && existing !== 'automatic') {\n WarningAggregator.addWarningIOS(\n 'userInterfaceStyle',\n 'The existing `userInterfaceStyle` property is preventing splash screen from working properly. Please remove it or disable dark mode splash screens.'\n );\n }\n // assigning it to auto anyways, but this is fragile because the order of operations matter now\n infoPlist.UIUserInterfaceStyle = 'Automatic';\n } else {\n // NOTE(brentvatne): Commented out this line because it causes https://github.com/expo/expo-cli/issues/3935\n // We should revisit this approach.\n // delete infoPlist.UIUserInterfaceStyle;\n }\n\n if (splash) {\n // TODO: What to do here ??\n infoPlist.UILaunchStoryboardName = 'SplashScreen';\n } else {\n debug(`Disabling UILaunchStoryboardName`);\n delete infoPlist.UILaunchStoryboardName;\n }\n\n return infoPlist;\n}\n"],"mappings":";;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAA0B;AAI1B,MAAMA,KAAK,GAAG,IAAAC,gBAAK,EAAC,uDAAuD,CAAC;AAErE,MAAMC,sBAAqD,GAAG,CAACC,MAAM,EAAEC,MAAM,KAAK;EACvF,OAAO,IAAAC,8BAAa,EAACF,MAAM,EAAGA,MAAM,IAAK;IACvCA,MAAM,CAACG,UAAU,GAAGC,kBAAkB,CAACJ,MAAM,EAAEA,MAAM,CAACG,UAAU,EAAEF,MAAM,CAAC;IACzE,OAAOD,MAAM;EACf,CAAC,CAAC;AACJ,CAAC;AAAC;AAEK,SAASI,kBAAkB,CAChCJ,MAAkB,EAClBK,SAAoB,EACpBJ,MAAuB,EACZ;EAAA;EACX,MAAMK,iBAAiB,GAAG,CAAC,EACzBL,MAAM,aAANA,MAAM,+BAANA,MAAM,CAAEM,IAAI,yCAAZ,aAAcC,KAAK,IACnBP,MAAM,aAANA,MAAM,gCAANA,MAAM,CAAEM,IAAI,0CAAZ,cAAcE,WAAW,IACzBR,MAAM,aAANA,MAAM,gCAANA,MAAM,CAAEM,IAAI,0CAAZ,cAAcG,eAAe,IAC7BT,MAAM,aAANA,MAAM,gCAANA,MAAM,CAAEM,IAAI,0CAAZ,cAAcI,qBAAqB,CACpC;EACDd,KAAK,CAAE,qBAAoB,EAAES,iBAAiB,CAAC;EAE/C,IAAIA,iBAAiB,EAAE;IAAA;IACrB;IACA;IACA,MAAMM,QAAQ,2CAAGZ,MAAM,CAACa,GAAG,gDAAV,YAAYC,kBAAkB,yEAAId,MAAM,CAACc,kBAAkB;IAC5E;IACA,IAAIF,QAAQ,IAAIA,QAAQ,KAAK,WAAW,EAAE;MACxCG,kCAAiB,CAACC,aAAa,CAC7B,oBAAoB,EACpB,qJAAqJ,CACtJ;IACH;IACA;IACAX,SAAS,CAACY,oBAAoB,GAAG,WAAW;EAC9C,CAAC,MAAM;IACL;IACA;IACA;EAAA;EAGF,IAAIhB,MAAM,EAAE;IACV;IACAI,SAAS,CAACa,sBAAsB,GAAG,cAAc;EACnD,CAAC,MAAM;IACLrB,KAAK,CAAE,kCAAiC,CAAC;IACzC,OAAOQ,SAAS,CAACa,sBAAsB;EACzC;EAEA,OAAOb,SAAS;AAClB"}
|
|
@@ -4,108 +4,80 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.withIosSplashScreen = void 0;
|
|
7
|
-
|
|
8
7
|
function _configPlugins() {
|
|
9
8
|
const data = require("@expo/config-plugins");
|
|
10
|
-
|
|
11
9
|
_configPlugins = function () {
|
|
12
10
|
return data;
|
|
13
11
|
};
|
|
14
|
-
|
|
15
12
|
return data;
|
|
16
13
|
}
|
|
17
|
-
|
|
18
14
|
function _debug() {
|
|
19
15
|
const data = _interopRequireDefault(require("debug"));
|
|
20
|
-
|
|
21
16
|
_debug = function () {
|
|
22
17
|
return data;
|
|
23
18
|
};
|
|
24
|
-
|
|
25
19
|
return data;
|
|
26
20
|
}
|
|
27
|
-
|
|
28
21
|
function _getIosSplashConfig() {
|
|
29
22
|
const data = require("./getIosSplashConfig");
|
|
30
|
-
|
|
31
23
|
_getIosSplashConfig = function () {
|
|
32
24
|
return data;
|
|
33
25
|
};
|
|
34
|
-
|
|
35
26
|
return data;
|
|
36
27
|
}
|
|
37
|
-
|
|
38
28
|
function _withIosSplashAssets() {
|
|
39
29
|
const data = require("./withIosSplashAssets");
|
|
40
|
-
|
|
41
30
|
_withIosSplashAssets = function () {
|
|
42
31
|
return data;
|
|
43
32
|
};
|
|
44
|
-
|
|
45
33
|
return data;
|
|
46
34
|
}
|
|
47
|
-
|
|
48
35
|
function _withIosSplashInfoPlist() {
|
|
49
36
|
const data = require("./withIosSplashInfoPlist");
|
|
50
|
-
|
|
51
37
|
_withIosSplashInfoPlist = function () {
|
|
52
38
|
return data;
|
|
53
39
|
};
|
|
54
|
-
|
|
55
40
|
return data;
|
|
56
41
|
}
|
|
57
|
-
|
|
58
42
|
function _withIosSplashScreenStoryboard() {
|
|
59
43
|
const data = require("./withIosSplashScreenStoryboard");
|
|
60
|
-
|
|
61
44
|
_withIosSplashScreenStoryboard = function () {
|
|
62
45
|
return data;
|
|
63
46
|
};
|
|
64
|
-
|
|
65
47
|
return data;
|
|
66
48
|
}
|
|
67
|
-
|
|
68
49
|
function _withIosSplashXcodeProject() {
|
|
69
50
|
const data = require("./withIosSplashXcodeProject");
|
|
70
|
-
|
|
71
51
|
_withIosSplashXcodeProject = function () {
|
|
72
52
|
return data;
|
|
73
53
|
};
|
|
74
|
-
|
|
75
54
|
return data;
|
|
76
55
|
}
|
|
77
|
-
|
|
78
56
|
function _wtihIosSplashScreenStoryboardImage() {
|
|
79
57
|
const data = require("./wtihIosSplashScreenStoryboardImage");
|
|
80
|
-
|
|
81
58
|
_wtihIosSplashScreenStoryboardImage = function () {
|
|
82
59
|
return data;
|
|
83
60
|
};
|
|
84
|
-
|
|
85
61
|
return data;
|
|
86
62
|
}
|
|
87
|
-
|
|
88
63
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
89
|
-
|
|
90
64
|
const debug = (0, _debug().default)('expo:prebuild-config:expo-splash-screen:ios');
|
|
91
|
-
|
|
92
65
|
const withIosSplashScreen = (config, splash) => {
|
|
93
|
-
//
|
|
94
|
-
(0, _getIosSplashConfig().warnUnsupportedSplashProperties)(config); // If the user didn't specify a splash object, infer the splash object from the Expo config.
|
|
95
|
-
|
|
66
|
+
// If the user didn't specify a splash object, infer the splash object from the Expo config.
|
|
96
67
|
if (!splash) {
|
|
97
68
|
splash = (0, _getIosSplashConfig().getIosSplashConfig)(config);
|
|
98
69
|
} else {
|
|
99
70
|
debug(`custom splash config provided`);
|
|
100
71
|
}
|
|
101
|
-
|
|
102
72
|
debug(`config:`, splash);
|
|
103
|
-
return (0, _configPlugins().withPlugins)(config, [[_withIosSplashInfoPlist().withIosSplashInfoPlist, splash], [_withIosSplashAssets().withIosSplashAssets, splash],
|
|
104
|
-
|
|
73
|
+
return (0, _configPlugins().withPlugins)(config, [[_withIosSplashInfoPlist().withIosSplashInfoPlist, splash], [_withIosSplashAssets().withIosSplashAssets, splash],
|
|
74
|
+
// Add the image settings to the storyboard.
|
|
75
|
+
[_wtihIosSplashScreenStoryboardImage().withIosSplashScreenImage, splash],
|
|
76
|
+
// Link storyboard to xcode project.
|
|
105
77
|
// TODO: Maybe fold this into the base mod.
|
|
106
|
-
_withIosSplashXcodeProject().withIosSplashXcodeProject,
|
|
78
|
+
_withIosSplashXcodeProject().withIosSplashXcodeProject,
|
|
79
|
+
// Insert the base mod last, no other ios.splashScreenStoryboard mods can be added after this.
|
|
107
80
|
_withIosSplashScreenStoryboard().withIosSplashScreenStoryboardBaseMod]);
|
|
108
81
|
};
|
|
109
|
-
|
|
110
82
|
exports.withIosSplashScreen = withIosSplashScreen;
|
|
111
83
|
//# sourceMappingURL=withIosSplashScreen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withIosSplashScreen.js","names":["debug","Debug","withIosSplashScreen","config","splash","
|
|
1
|
+
{"version":3,"file":"withIosSplashScreen.js","names":["debug","Debug","withIosSplashScreen","config","splash","getIosSplashConfig","withPlugins","withIosSplashInfoPlist","withIosSplashAssets","withIosSplashScreenImage","withIosSplashXcodeProject","withIosSplashScreenStoryboardBaseMod"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withIosSplashScreen.ts"],"sourcesContent":["import { ConfigPlugin, withPlugins } from '@expo/config-plugins';\nimport Debug from 'debug';\n\nimport { getIosSplashConfig, IOSSplashConfig } from './getIosSplashConfig';\nimport { withIosSplashAssets } from './withIosSplashAssets';\nimport { withIosSplashInfoPlist } from './withIosSplashInfoPlist';\nimport { withIosSplashScreenStoryboardBaseMod } from './withIosSplashScreenStoryboard';\nimport { withIosSplashXcodeProject } from './withIosSplashXcodeProject';\nimport { withIosSplashScreenImage } from './wtihIosSplashScreenStoryboardImage';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:ios');\n\nexport const withIosSplashScreen: ConfigPlugin<IOSSplashConfig | undefined | null | void> = (\n config,\n splash\n) => {\n // If the user didn't specify a splash object, infer the splash object from the Expo config.\n if (!splash) {\n splash = getIosSplashConfig(config);\n } else {\n debug(`custom splash config provided`);\n }\n\n debug(`config:`, splash);\n\n return withPlugins(config, [\n [withIosSplashInfoPlist, splash],\n [withIosSplashAssets, splash],\n // Add the image settings to the storyboard.\n [withIosSplashScreenImage, splash],\n // Link storyboard to xcode project.\n // TODO: Maybe fold this into the base mod.\n withIosSplashXcodeProject,\n // Insert the base mod last, no other ios.splashScreenStoryboard mods can be added after this.\n withIosSplashScreenStoryboardBaseMod,\n ]);\n};\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAgF;AAEhF,MAAMA,KAAK,GAAG,IAAAC,gBAAK,EAAC,6CAA6C,CAAC;AAE3D,MAAMC,mBAA4E,GAAG,CAC1FC,MAAM,EACNC,MAAM,KACH;EACH;EACA,IAAI,CAACA,MAAM,EAAE;IACXA,MAAM,GAAG,IAAAC,wCAAkB,EAACF,MAAM,CAAC;EACrC,CAAC,MAAM;IACLH,KAAK,CAAE,+BAA8B,CAAC;EACxC;EAEAA,KAAK,CAAE,SAAQ,EAAEI,MAAM,CAAC;EAExB,OAAO,IAAAE,4BAAW,EAACH,MAAM,EAAE,CACzB,CAACI,gDAAsB,EAAEH,MAAM,CAAC,EAChC,CAACI,0CAAmB,EAAEJ,MAAM,CAAC;EAC7B;EACA,CAACK,8DAAwB,EAAEL,MAAM,CAAC;EAClC;EACA;EACAM,sDAAyB;EACzB;EACAC,qEAAoC,CACrC,CAAC;AACJ,CAAC;AAAC"}
|