@expo/prebuild-config 8.0.26 → 8.0.27
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/plugins/unversioned/expo-splash-screen/getAndroidSplashConfig.js +4 -0
- package/build/plugins/unversioned/expo-splash-screen/getAndroidSplashConfig.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashDrawables.d.ts +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashDrawables.js +2 -2
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashDrawables.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashImages.d.ts +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashImages.js +4 -2
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashImages.js.map +1 -1
- package/package.json +4 -4
|
@@ -19,6 +19,7 @@ function getAndroidSplashConfig(config, props) {
|
|
|
19
19
|
mdpi: splash.mdpi ?? splash.image,
|
|
20
20
|
backgroundColor: splash.backgroundColor,
|
|
21
21
|
resizeMode: splash.resizeMode ?? defaultResizeMode,
|
|
22
|
+
image: splash.image,
|
|
22
23
|
imageWidth: splash.imageWidth ?? 100,
|
|
23
24
|
dark: splash.dark,
|
|
24
25
|
drawable: splash.drawable
|
|
@@ -47,6 +48,7 @@ function getAndroidSplashConfig(config, props) {
|
|
|
47
48
|
xhdpi: splash.image,
|
|
48
49
|
hdpi: splash.image,
|
|
49
50
|
mdpi: splash.image,
|
|
51
|
+
image: splash.image,
|
|
50
52
|
backgroundColor: splash.backgroundColor,
|
|
51
53
|
resizeMode: splash.resizeMode ?? defaultResizeMode,
|
|
52
54
|
imageWidth: 200,
|
|
@@ -65,6 +67,7 @@ function getAndroidDarkSplashConfig(config, props) {
|
|
|
65
67
|
xhdpi: splash.xhdpi ?? splash.image,
|
|
66
68
|
hdpi: splash.hdpi ?? splash.image,
|
|
67
69
|
mdpi: splash.mdpi ?? splash.image,
|
|
70
|
+
image: splash.image,
|
|
68
71
|
backgroundColor: splash.backgroundColor,
|
|
69
72
|
resizeMode: lightTheme?.resizeMode ?? defaultResizeMode,
|
|
70
73
|
drawable: props.drawable
|
|
@@ -82,6 +85,7 @@ function getAndroidDarkSplashConfig(config, props) {
|
|
|
82
85
|
xhdpi: splash.xhdpi ?? splash.image,
|
|
83
86
|
hdpi: splash.hdpi ?? splash.image,
|
|
84
87
|
mdpi: splash.mdpi ?? splash.image,
|
|
88
|
+
image: splash.image,
|
|
85
89
|
backgroundColor: splash.backgroundColor,
|
|
86
90
|
// Can't support dark resizeMode because the resize mode is hardcoded into the MainActivity.java
|
|
87
91
|
resizeMode: lightTheme?.resizeMode ?? defaultResizeMode
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAndroidSplashConfig.js","names":["defaultResizeMode","getAndroidSplashConfig","config","props","splash","xxxhdpi","image","xxhdpi","xhdpi","hdpi","mdpi","backgroundColor","resizeMode","imageWidth","dark","drawable","android","getAndroidDarkSplashConfig","lightTheme"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/getAndroidSplashConfig.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nexport type SplashScreenConfig = {\n xxxhdpi?: string;\n xxhdpi?: string;\n xhdpi?: string;\n hdpi?: string;\n mdpi?: string;\n image?: string;\n backgroundColor?: string;\n resizeMode: 'contain' | 'cover' | 'native';\n drawable?: {\n icon: string;\n darkIcon?: string;\n };\n dark?: {\n backgroundColor?: string;\n xxxhdpi?: string;\n xxhdpi?: string;\n xhdpi?: string;\n hdpi?: string;\n mdpi?: string;\n image?: string;\n resizeMode?: 'contain' | 'cover' | 'native';\n };\n};\n\nexport type AndroidSplashConfig = {\n imageWidth?: number;\n} & SplashScreenConfig;\n\nconst defaultResizeMode = 'contain';\n\nexport function getAndroidSplashConfig(\n config: Pick<ExpoConfig, 'splash' | 'android'>,\n props?: AndroidSplashConfig | null\n): AndroidSplashConfig | null {\n // Respect the splash screen object, don't mix and match across different splash screen objects\n // in case the user wants the top level splash to apply to every platform except android.\n if (props) {\n const splash = props;\n return {\n xxxhdpi: splash.xxxhdpi ?? splash.image,\n xxhdpi: splash.xxhdpi ?? splash.image,\n xhdpi: splash.xhdpi ?? splash.image,\n hdpi: splash.hdpi ?? splash.image,\n mdpi: splash.mdpi ?? splash.image,\n backgroundColor: splash.backgroundColor,\n resizeMode: splash.resizeMode ?? defaultResizeMode,\n imageWidth: splash.imageWidth ?? 100,\n dark: splash.dark,\n drawable: splash.drawable,\n };\n }\n\n if (config.android?.splash) {\n const splash = config.android?.splash;\n return {\n xxxhdpi: splash.xxxhdpi ?? splash.image,\n xxhdpi: splash.xxhdpi ?? splash.image,\n xhdpi: splash.xhdpi ?? splash.image,\n hdpi: splash.hdpi ?? splash.image,\n mdpi: splash.mdpi ?? splash.image,\n backgroundColor: splash.backgroundColor,\n image: splash.image,\n resizeMode: splash.resizeMode ?? defaultResizeMode,\n imageWidth: 200,\n dark: splash.dark,\n };\n }\n\n if (config.splash) {\n const splash = config.splash;\n return {\n xxxhdpi: splash.image,\n xxhdpi: splash.image,\n xhdpi: splash.image,\n hdpi: splash.image,\n mdpi: splash.image,\n backgroundColor: splash.backgroundColor,\n resizeMode: splash.resizeMode ?? defaultResizeMode,\n imageWidth: 200,\n dark: splash.dark,\n };\n }\n\n return null;\n}\n\nexport function getAndroidDarkSplashConfig(\n config: Pick<ExpoConfig, 'splash' | 'android'>,\n props?: AndroidSplashConfig | null\n): SplashScreenConfig | null {\n if (props?.dark) {\n const splash = props.dark;\n const lightTheme = getAndroidSplashConfig(config, props);\n return {\n xxxhdpi: splash.xxxhdpi ?? splash.image,\n xxhdpi: splash.xxhdpi ?? splash.image,\n xhdpi: splash.xhdpi ?? splash.image,\n hdpi: splash.hdpi ?? splash.image,\n mdpi: splash.mdpi ?? splash.image,\n backgroundColor: splash.backgroundColor,\n resizeMode: lightTheme?.resizeMode ?? defaultResizeMode,\n drawable: props.drawable,\n };\n }\n\n // Respect the splash screen object, don't mix and match across different splash screen objects\n // in case the user wants the top level splash to apply to every platform except android.\n if (config.android?.splash?.dark) {\n const splash = config.android?.splash?.dark;\n const lightTheme = getAndroidSplashConfig(config, props);\n return {\n xxxhdpi: splash.xxxhdpi ?? splash.image,\n xxhdpi: splash.xxhdpi ?? splash.image,\n xhdpi: splash.xhdpi ?? splash.image,\n hdpi: splash.hdpi ?? splash.image,\n mdpi: splash.mdpi ?? splash.image,\n backgroundColor: splash.backgroundColor,\n // Can't support dark resizeMode because the resize mode is hardcoded into the MainActivity.java\n resizeMode: lightTheme?.resizeMode ?? defaultResizeMode,\n };\n }\n\n return null;\n}\n"],"mappings":";;;;;;;AA+BA,MAAMA,iBAAiB,GAAG,SAAS;AAE5B,SAASC,sBAAsBA,CACpCC,MAA8C,EAC9CC,KAAkC,EACN;EAC5B;EACA;EACA,IAAIA,KAAK,EAAE;IACT,MAAMC,MAAM,GAAGD,KAAK;IACpB,OAAO;MACLE,OAAO,EAAED,MAAM,CAACC,OAAO,IAAID,MAAM,CAACE,KAAK;MACvCC,MAAM,EAAEH,MAAM,CAACG,MAAM,IAAIH,MAAM,CAACE,KAAK;MACrCE,KAAK,EAAEJ,MAAM,CAACI,KAAK,IAAIJ,MAAM,CAACE,KAAK;MACnCG,IAAI,EAAEL,MAAM,CAACK,IAAI,IAAIL,MAAM,CAACE,KAAK;MACjCI,IAAI,EAAEN,MAAM,CAACM,IAAI,IAAIN,MAAM,CAACE,KAAK;MACjCK,eAAe,EAAEP,MAAM,CAACO,eAAe;MACvCC,UAAU,EAAER,MAAM,CAACQ,UAAU,IAAIZ,iBAAiB;
|
|
1
|
+
{"version":3,"file":"getAndroidSplashConfig.js","names":["defaultResizeMode","getAndroidSplashConfig","config","props","splash","xxxhdpi","image","xxhdpi","xhdpi","hdpi","mdpi","backgroundColor","resizeMode","imageWidth","dark","drawable","android","getAndroidDarkSplashConfig","lightTheme"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/getAndroidSplashConfig.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nexport type SplashScreenConfig = {\n xxxhdpi?: string;\n xxhdpi?: string;\n xhdpi?: string;\n hdpi?: string;\n mdpi?: string;\n image?: string;\n backgroundColor?: string;\n resizeMode: 'contain' | 'cover' | 'native';\n drawable?: {\n icon: string;\n darkIcon?: string;\n };\n dark?: {\n backgroundColor?: string;\n xxxhdpi?: string;\n xxhdpi?: string;\n xhdpi?: string;\n hdpi?: string;\n mdpi?: string;\n image?: string;\n resizeMode?: 'contain' | 'cover' | 'native';\n };\n};\n\nexport type AndroidSplashConfig = {\n imageWidth?: number;\n} & SplashScreenConfig;\n\nconst defaultResizeMode = 'contain';\n\nexport function getAndroidSplashConfig(\n config: Pick<ExpoConfig, 'splash' | 'android'>,\n props?: AndroidSplashConfig | null\n): AndroidSplashConfig | null {\n // Respect the splash screen object, don't mix and match across different splash screen objects\n // in case the user wants the top level splash to apply to every platform except android.\n if (props) {\n const splash = props;\n return {\n xxxhdpi: splash.xxxhdpi ?? splash.image,\n xxhdpi: splash.xxhdpi ?? splash.image,\n xhdpi: splash.xhdpi ?? splash.image,\n hdpi: splash.hdpi ?? splash.image,\n mdpi: splash.mdpi ?? splash.image,\n backgroundColor: splash.backgroundColor,\n resizeMode: splash.resizeMode ?? defaultResizeMode,\n image: splash.image,\n imageWidth: splash.imageWidth ?? 100,\n dark: splash.dark,\n drawable: splash.drawable,\n };\n }\n\n if (config.android?.splash) {\n const splash = config.android?.splash;\n return {\n xxxhdpi: splash.xxxhdpi ?? splash.image,\n xxhdpi: splash.xxhdpi ?? splash.image,\n xhdpi: splash.xhdpi ?? splash.image,\n hdpi: splash.hdpi ?? splash.image,\n mdpi: splash.mdpi ?? splash.image,\n backgroundColor: splash.backgroundColor,\n image: splash.image,\n resizeMode: splash.resizeMode ?? defaultResizeMode,\n imageWidth: 200,\n dark: splash.dark,\n };\n }\n\n if (config.splash) {\n const splash = config.splash;\n return {\n xxxhdpi: splash.image,\n xxhdpi: splash.image,\n xhdpi: splash.image,\n hdpi: splash.image,\n mdpi: splash.image,\n image: splash.image,\n backgroundColor: splash.backgroundColor,\n resizeMode: splash.resizeMode ?? defaultResizeMode,\n imageWidth: 200,\n dark: splash.dark,\n };\n }\n\n return null;\n}\n\nexport function getAndroidDarkSplashConfig(\n config: Pick<ExpoConfig, 'splash' | 'android'>,\n props?: AndroidSplashConfig | null\n): SplashScreenConfig | null {\n if (props?.dark) {\n const splash = props.dark;\n const lightTheme = getAndroidSplashConfig(config, props);\n return {\n xxxhdpi: splash.xxxhdpi ?? splash.image,\n xxhdpi: splash.xxhdpi ?? splash.image,\n xhdpi: splash.xhdpi ?? splash.image,\n hdpi: splash.hdpi ?? splash.image,\n mdpi: splash.mdpi ?? splash.image,\n image: splash.image,\n backgroundColor: splash.backgroundColor,\n resizeMode: lightTheme?.resizeMode ?? defaultResizeMode,\n drawable: props.drawable,\n };\n }\n\n // Respect the splash screen object, don't mix and match across different splash screen objects\n // in case the user wants the top level splash to apply to every platform except android.\n if (config.android?.splash?.dark) {\n const splash = config.android?.splash?.dark;\n const lightTheme = getAndroidSplashConfig(config, props);\n return {\n xxxhdpi: splash.xxxhdpi ?? splash.image,\n xxhdpi: splash.xxhdpi ?? splash.image,\n xhdpi: splash.xhdpi ?? splash.image,\n hdpi: splash.hdpi ?? splash.image,\n mdpi: splash.mdpi ?? splash.image,\n image: splash.image,\n backgroundColor: splash.backgroundColor,\n // Can't support dark resizeMode because the resize mode is hardcoded into the MainActivity.java\n resizeMode: lightTheme?.resizeMode ?? defaultResizeMode,\n };\n }\n\n return null;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ConfigPlugin } from '@expo/config-plugins';
|
|
2
2
|
import { SplashScreenConfig } from './getAndroidSplashConfig';
|
|
3
3
|
export declare const withAndroidSplashDrawables: ConfigPlugin<Pick<SplashScreenConfig, 'resizeMode'>>;
|
|
4
|
-
export declare function setSplashDrawableAsync({
|
|
4
|
+
export declare function setSplashDrawableAsync({ image }: SplashScreenConfig, projectRoot: string): Promise<void>;
|
|
@@ -22,7 +22,7 @@ const withAndroidSplashDrawables = (config, splash) => {
|
|
|
22
22
|
};
|
|
23
23
|
exports.withAndroidSplashDrawables = withAndroidSplashDrawables;
|
|
24
24
|
async function setSplashDrawableAsync({
|
|
25
|
-
|
|
25
|
+
image
|
|
26
26
|
}, projectRoot) {
|
|
27
27
|
const filePath = await _configPlugins().AndroidConfig.Paths.getResourceXMLPathAsync(projectRoot, {
|
|
28
28
|
name: 'ic_launcher_background',
|
|
@@ -40,7 +40,7 @@ async function setSplashDrawableAsync({
|
|
|
40
40
|
// TODO: Ensure these keys don't get out of sync
|
|
41
41
|
'android:drawable': '@color/splashscreen_background'
|
|
42
42
|
}
|
|
43
|
-
}, {
|
|
43
|
+
}, image && {
|
|
44
44
|
bitmap: [{
|
|
45
45
|
$: {
|
|
46
46
|
'android:gravity': 'center',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withAndroidSplashDrawables.js","names":["_configPlugins","data","require","withAndroidSplashDrawables","config","splash","withDangerousMod","setSplashDrawableAsync","modRequest","projectRoot","exports","
|
|
1
|
+
{"version":3,"file":"withAndroidSplashDrawables.js","names":["_configPlugins","data","require","withAndroidSplashDrawables","config","splash","withDangerousMod","setSplashDrawableAsync","modRequest","projectRoot","exports","image","filePath","AndroidConfig","Paths","getResourceXMLPathAsync","name","kind","xmlContent","$","item","bitmap","filter","Boolean","XML","writeXMLAsync","path","xml"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashDrawables.ts"],"sourcesContent":["import { AndroidConfig, ConfigPlugin, withDangerousMod, XML } from '@expo/config-plugins';\n\nimport { SplashScreenConfig } from './getAndroidSplashConfig';\n\nexport const withAndroidSplashDrawables: ConfigPlugin<Pick<SplashScreenConfig, 'resizeMode'>> = (\n config,\n splash\n) => {\n return withDangerousMod(config, [\n 'android',\n async (config) => {\n if (splash) {\n await setSplashDrawableAsync(splash, config.modRequest.projectRoot);\n }\n return config;\n },\n ]);\n};\n\nexport async function setSplashDrawableAsync({ image }: SplashScreenConfig, projectRoot: string) {\n const filePath = (await AndroidConfig.Paths.getResourceXMLPathAsync(projectRoot, {\n name: 'ic_launcher_background',\n kind: 'drawable',\n }))!;\n\n // Nuke and rewrite the splashscreen.xml drawable\n const xmlContent = {\n 'layer-list': {\n $: {\n 'xmlns:android': 'http://schemas.android.com/apk/res/android',\n },\n item: [\n {\n $: {\n // TODO: Ensure these keys don't get out of sync\n 'android:drawable': '@color/splashscreen_background',\n },\n },\n image && {\n bitmap: [\n {\n $: {\n 'android:gravity': 'center',\n // TODO: Ensure these keys don't get out of sync\n 'android:src': '@drawable/splashscreen_logo',\n },\n },\n ],\n },\n ].filter(Boolean),\n },\n };\n await XML.writeXMLAsync({ path: filePath, xml: xmlContent });\n}\n"],"mappings":";;;;;;;AAAA,SAAAA,eAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,cAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIO,MAAME,0BAAgF,GAAGA,CAC9FC,MAAM,EACNC,MAAM,KACH;EACH,OAAO,IAAAC,iCAAgB,EAACF,MAAM,EAAE,CAC9B,SAAS,EACT,MAAOA,MAAM,IAAK;IAChB,IAAIC,MAAM,EAAE;MACV,MAAME,sBAAsB,CAACF,MAAM,EAAED,MAAM,CAACI,UAAU,CAACC,WAAW,CAAC;IACrE;IACA,OAAOL,MAAM;EACf,CAAC,CACF,CAAC;AACJ,CAAC;AAACM,OAAA,CAAAP,0BAAA,GAAAA,0BAAA;AAEK,eAAeI,sBAAsBA,CAAC;EAAEI;AAA0B,CAAC,EAAEF,WAAmB,EAAE;EAC/F,MAAMG,QAAQ,GAAI,MAAMC,8BAAa,CAACC,KAAK,CAACC,uBAAuB,CAACN,WAAW,EAAE;IAC/EO,IAAI,EAAE,wBAAwB;IAC9BC,IAAI,EAAE;EACR,CAAC,CAAG;;EAEJ;EACA,MAAMC,UAAU,GAAG;IACjB,YAAY,EAAE;MACZC,CAAC,EAAE;QACD,eAAe,EAAE;MACnB,CAAC;MACDC,IAAI,EAAE,CACJ;QACED,CAAC,EAAE;UACD;UACA,kBAAkB,EAAE;QACtB;MACF,CAAC,EACDR,KAAK,IAAI;QACPU,MAAM,EAAE,CACN;UACEF,CAAC,EAAE;YACD,iBAAiB,EAAE,QAAQ;YAC3B;YACA,aAAa,EAAE;UACjB;QACF,CAAC;MAEL,CAAC,CACF,CAACG,MAAM,CAACC,OAAO;IAClB;EACF,CAAC;EACD,MAAMC,oBAAG,CAACC,aAAa,CAAC;IAAEC,IAAI,EAAEd,QAAQ;IAAEe,GAAG,EAAET;EAAW,CAAC,CAAC;AAC9D","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ConfigPlugin } from '@expo/config-plugins';
|
|
2
2
|
import { ExpoConfig } from '@expo/config-types';
|
|
3
3
|
import { AndroidSplashConfig, SplashScreenConfig } from './getAndroidSplashConfig';
|
|
4
|
-
export declare const withAndroidSplashImages: ConfigPlugin<AndroidSplashConfig>;
|
|
4
|
+
export declare const withAndroidSplashImages: ConfigPlugin<AndroidSplashConfig | null>;
|
|
5
5
|
/**
|
|
6
6
|
* Deletes all previous splash_screen_images and copies new one to desired drawable directory.
|
|
7
7
|
* If path isn't provided then no new image is placed in drawable directories.
|
|
@@ -113,9 +113,11 @@ const DRAWABLES_CONFIGS = {
|
|
|
113
113
|
dimensionsMultiplier: 4
|
|
114
114
|
}
|
|
115
115
|
};
|
|
116
|
-
const withAndroidSplashImages = (config,
|
|
116
|
+
const withAndroidSplashImages = (config, splash) => {
|
|
117
117
|
return (0, _configPlugins().withDangerousMod)(config, ['android', async config => {
|
|
118
|
-
|
|
118
|
+
if (splash) {
|
|
119
|
+
await setSplashImageDrawablesAsync(config, splash, config.modRequest.projectRoot, splash?.imageWidth ?? 200);
|
|
120
|
+
}
|
|
119
121
|
return config;
|
|
120
122
|
}]);
|
|
121
123
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withAndroidSplashImages.js","names":["_configPlugins","data","require","_imageUtils","_fsExtra","_interopRequireDefault","_path","_getAndroidSplashConfig","e","__esModule","default","IMAGE_CACHE_NAME","SPLASH_SCREEN_FILENAME","SPLASH_SCREEN_DRAWABLE_NAME","DRAWABLES_CONFIGS","modes","light","path","dark","dimensionsMultiplier","mdpi","hdpi","xhdpi","xxhdpi","xxxhdpi","withAndroidSplashImages","config","props","withDangerousMod","setSplashImageDrawablesAsync","modRequest","projectRoot","imageWidth","exports","clearAllExistingSplashImagesAsync","splash","getAndroidSplashConfig","darkSplash","getAndroidDarkSplashConfig","Promise","all","setSplashImageDrawablesForThemeAsync","androidMainPath","join","Object","values","map","filePath","fs","pathExists","resolve","remove","theme","drawable","writeSplashScreenDrawablesAsync","sizes","imageKey","image","multiplier","size","canvasSize","background","generateImageBackgroundAsync","width","height","backgroundColor","resizeMode","source","foreground","generateImageAsync","cacheType","src","composedImage","compositeImagesAsync","x","y","outputPath","folder","dirname","ensureDir","writeFile","drawablePath","lightDrawablePath","darkDrawablePath","lightFolder","copyFile","icon","darkIcon","darkFolder"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashImages.ts"],"sourcesContent":["import { ConfigPlugin, withDangerousMod } from '@expo/config-plugins';\nimport { ExpoConfig } from '@expo/config-types';\nimport {\n generateImageAsync,\n compositeImagesAsync,\n generateImageBackgroundAsync,\n} from '@expo/image-utils';\nimport fs from 'fs-extra';\nimport path from 'path';\n\nimport {\n AndroidSplashConfig,\n getAndroidDarkSplashConfig,\n getAndroidSplashConfig,\n SplashScreenConfig,\n} from './getAndroidSplashConfig';\n\ntype DRAWABLE_SIZE = 'default' | 'mdpi' | 'hdpi' | 'xhdpi' | 'xxhdpi' | 'xxxhdpi';\ntype THEME = 'light' | 'dark';\n\nconst IMAGE_CACHE_NAME = 'splash-android';\nconst SPLASH_SCREEN_FILENAME = 'splashscreen_logo.png';\nconst SPLASH_SCREEN_DRAWABLE_NAME = 'splashscreen_logo.xml';\n\nconst DRAWABLES_CONFIGS: {\n [key in DRAWABLE_SIZE]: {\n modes: {\n [key in THEME]: {\n path: string;\n };\n };\n dimensionsMultiplier: number;\n };\n} = {\n default: {\n modes: {\n light: {\n path: `./res/drawable/${SPLASH_SCREEN_DRAWABLE_NAME}`,\n },\n dark: {\n path: `./res/drawable-night/${SPLASH_SCREEN_DRAWABLE_NAME}`,\n },\n },\n dimensionsMultiplier: 1,\n },\n mdpi: {\n modes: {\n light: {\n path: `./res/drawable-mdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n dark: {\n path: `./res/drawable-night-mdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n },\n dimensionsMultiplier: 1,\n },\n hdpi: {\n modes: {\n light: {\n path: `./res/drawable-hdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n dark: {\n path: `./res/drawable-night-hdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n },\n dimensionsMultiplier: 1.5,\n },\n xhdpi: {\n modes: {\n light: {\n path: `./res/drawable-xhdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n dark: {\n path: `./res/drawable-night-xhdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n },\n dimensionsMultiplier: 2,\n },\n xxhdpi: {\n modes: {\n light: {\n path: `./res/drawable-xxhdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n dark: {\n path: `./res/drawable-night-xxhdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n },\n dimensionsMultiplier: 3,\n },\n xxxhdpi: {\n modes: {\n light: {\n path: `./res/drawable-xxxhdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n dark: {\n path: `./res/drawable-night-xxxhdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n },\n dimensionsMultiplier: 4,\n },\n};\n\nexport const withAndroidSplashImages: ConfigPlugin<AndroidSplashConfig> = (config, props) => {\n return withDangerousMod(config, [\n 'android',\n async (config) => {\n await setSplashImageDrawablesAsync(\n config,\n props,\n config.modRequest.projectRoot,\n props?.imageWidth ?? 200\n );\n return config;\n },\n ]);\n};\n\n/**\n * Deletes all previous splash_screen_images and copies new one to desired drawable directory.\n * If path isn't provided then no new image is placed in drawable directories.\n * @see https://developer.android.com/training/multiscreen/screendensities\n *\n * @param androidMainPath Absolute path to the main directory containing code and resources in Android project. In general that would be `android/app/src/main`.\n */\nexport async function setSplashImageDrawablesAsync(\n config: Pick<ExpoConfig, 'android' | 'splash'>,\n props: AndroidSplashConfig | null,\n projectRoot: string,\n imageWidth: number\n) {\n await clearAllExistingSplashImagesAsync(projectRoot);\n\n const splash = getAndroidSplashConfig(config, props);\n const darkSplash = getAndroidDarkSplashConfig(config, props);\n\n await Promise.all([\n setSplashImageDrawablesForThemeAsync(splash, 'light', projectRoot, imageWidth),\n setSplashImageDrawablesForThemeAsync(darkSplash, 'dark', projectRoot, imageWidth),\n ]);\n}\n\nasync function clearAllExistingSplashImagesAsync(projectRoot: string) {\n const androidMainPath = path.join(projectRoot, 'android/app/src/main');\n\n await Promise.all(\n Object.values(DRAWABLES_CONFIGS).map(async ({ modes }) => {\n await Promise.all(\n Object.values(modes).map(async ({ path: filePath }) => {\n if (await fs.pathExists(path.resolve(androidMainPath, filePath))) {\n await fs.remove(path.resolve(androidMainPath, filePath));\n }\n })\n );\n })\n );\n}\n\nexport async function setSplashImageDrawablesForThemeAsync(\n config: SplashScreenConfig | null,\n theme: 'dark' | 'light',\n projectRoot: string,\n imageWidth: number = 100\n) {\n if (!config) return;\n const androidMainPath = path.join(projectRoot, 'android/app/src/main');\n\n if (config.drawable) {\n await writeSplashScreenDrawablesAsync(androidMainPath, projectRoot, config.drawable);\n return;\n }\n\n const sizes: DRAWABLE_SIZE[] = ['mdpi', 'hdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi'];\n\n await Promise.all(\n sizes.map(async (imageKey) => {\n // @ts-ignore\n const image = config[imageKey];\n\n if (image) {\n const multiplier = DRAWABLES_CONFIGS[imageKey].dimensionsMultiplier;\n const size = imageWidth * multiplier; // \"imageWidth\" must be replaced by the logo width chosen by the user in its config file\n const canvasSize = 288 * multiplier;\n\n const background = await generateImageBackgroundAsync({\n width: canvasSize,\n height: canvasSize,\n backgroundColor: config.backgroundColor ?? 'transparent',\n resizeMode: 'cover',\n });\n\n const { source: foreground } = await generateImageAsync(\n {\n projectRoot,\n cacheType: IMAGE_CACHE_NAME,\n },\n {\n src: image,\n resizeMode: 'contain',\n width: size,\n height: size,\n }\n );\n\n const composedImage = await compositeImagesAsync({\n background,\n foreground,\n x: (canvasSize - size) / 2,\n y: (canvasSize - size) / 2,\n });\n\n // Get output path for drawable.\n const outputPath = path.join(\n androidMainPath,\n DRAWABLES_CONFIGS[imageKey].modes[theme].path\n );\n\n const folder = path.dirname(outputPath);\n // Ensure directory exists.\n await fs.ensureDir(folder);\n await fs.writeFile(outputPath, composedImage);\n }\n return null;\n })\n );\n}\n\nasync function writeSplashScreenDrawablesAsync(\n drawablePath: string,\n projectRoot: string,\n drawable: SplashScreenConfig['drawable']\n) {\n if (!drawable) {\n return;\n }\n\n const lightDrawablePath = path.join(drawablePath, DRAWABLES_CONFIGS.default.modes.light.path);\n const darkDrawablePath = path.join(drawablePath, DRAWABLES_CONFIGS.default.modes.dark.path);\n\n const lightFolder = path.dirname(lightDrawablePath);\n await fs.ensureDir(lightFolder);\n await fs.copyFile(path.join(projectRoot, drawable.icon), lightDrawablePath);\n\n if (drawable.darkIcon) {\n const darkFolder = path.dirname(darkDrawablePath);\n await fs.ensureDir(darkFolder);\n await fs.copyFile(path.join(projectRoot, drawable.darkIcon), darkDrawablePath);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"withAndroidSplashImages.js","names":["_configPlugins","data","require","_imageUtils","_fsExtra","_interopRequireDefault","_path","_getAndroidSplashConfig","e","__esModule","default","IMAGE_CACHE_NAME","SPLASH_SCREEN_FILENAME","SPLASH_SCREEN_DRAWABLE_NAME","DRAWABLES_CONFIGS","modes","light","path","dark","dimensionsMultiplier","mdpi","hdpi","xhdpi","xxhdpi","xxxhdpi","withAndroidSplashImages","config","splash","withDangerousMod","setSplashImageDrawablesAsync","modRequest","projectRoot","imageWidth","exports","props","clearAllExistingSplashImagesAsync","getAndroidSplashConfig","darkSplash","getAndroidDarkSplashConfig","Promise","all","setSplashImageDrawablesForThemeAsync","androidMainPath","join","Object","values","map","filePath","fs","pathExists","resolve","remove","theme","drawable","writeSplashScreenDrawablesAsync","sizes","imageKey","image","multiplier","size","canvasSize","background","generateImageBackgroundAsync","width","height","backgroundColor","resizeMode","source","foreground","generateImageAsync","cacheType","src","composedImage","compositeImagesAsync","x","y","outputPath","folder","dirname","ensureDir","writeFile","drawablePath","lightDrawablePath","darkDrawablePath","lightFolder","copyFile","icon","darkIcon","darkFolder"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashImages.ts"],"sourcesContent":["import { ConfigPlugin, withDangerousMod } from '@expo/config-plugins';\nimport { ExpoConfig } from '@expo/config-types';\nimport {\n generateImageAsync,\n compositeImagesAsync,\n generateImageBackgroundAsync,\n} from '@expo/image-utils';\nimport fs from 'fs-extra';\nimport path from 'path';\n\nimport {\n AndroidSplashConfig,\n getAndroidDarkSplashConfig,\n getAndroidSplashConfig,\n SplashScreenConfig,\n} from './getAndroidSplashConfig';\n\ntype DRAWABLE_SIZE = 'default' | 'mdpi' | 'hdpi' | 'xhdpi' | 'xxhdpi' | 'xxxhdpi';\ntype THEME = 'light' | 'dark';\n\nconst IMAGE_CACHE_NAME = 'splash-android';\nconst SPLASH_SCREEN_FILENAME = 'splashscreen_logo.png';\nconst SPLASH_SCREEN_DRAWABLE_NAME = 'splashscreen_logo.xml';\n\nconst DRAWABLES_CONFIGS: {\n [key in DRAWABLE_SIZE]: {\n modes: {\n [key in THEME]: {\n path: string;\n };\n };\n dimensionsMultiplier: number;\n };\n} = {\n default: {\n modes: {\n light: {\n path: `./res/drawable/${SPLASH_SCREEN_DRAWABLE_NAME}`,\n },\n dark: {\n path: `./res/drawable-night/${SPLASH_SCREEN_DRAWABLE_NAME}`,\n },\n },\n dimensionsMultiplier: 1,\n },\n mdpi: {\n modes: {\n light: {\n path: `./res/drawable-mdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n dark: {\n path: `./res/drawable-night-mdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n },\n dimensionsMultiplier: 1,\n },\n hdpi: {\n modes: {\n light: {\n path: `./res/drawable-hdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n dark: {\n path: `./res/drawable-night-hdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n },\n dimensionsMultiplier: 1.5,\n },\n xhdpi: {\n modes: {\n light: {\n path: `./res/drawable-xhdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n dark: {\n path: `./res/drawable-night-xhdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n },\n dimensionsMultiplier: 2,\n },\n xxhdpi: {\n modes: {\n light: {\n path: `./res/drawable-xxhdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n dark: {\n path: `./res/drawable-night-xxhdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n },\n dimensionsMultiplier: 3,\n },\n xxxhdpi: {\n modes: {\n light: {\n path: `./res/drawable-xxxhdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n dark: {\n path: `./res/drawable-night-xxxhdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n },\n dimensionsMultiplier: 4,\n },\n};\n\nexport const withAndroidSplashImages: ConfigPlugin<AndroidSplashConfig | null> = (\n config,\n splash\n) => {\n return withDangerousMod(config, [\n 'android',\n async (config) => {\n if (splash) {\n await setSplashImageDrawablesAsync(\n config,\n splash,\n config.modRequest.projectRoot,\n splash?.imageWidth ?? 200\n );\n }\n return config;\n },\n ]);\n};\n\n/**\n * Deletes all previous splash_screen_images and copies new one to desired drawable directory.\n * If path isn't provided then no new image is placed in drawable directories.\n * @see https://developer.android.com/training/multiscreen/screendensities\n *\n * @param androidMainPath Absolute path to the main directory containing code and resources in Android project. In general that would be `android/app/src/main`.\n */\nexport async function setSplashImageDrawablesAsync(\n config: Pick<ExpoConfig, 'android' | 'splash'>,\n props: AndroidSplashConfig | null,\n projectRoot: string,\n imageWidth: number\n) {\n await clearAllExistingSplashImagesAsync(projectRoot);\n\n const splash = getAndroidSplashConfig(config, props);\n const darkSplash = getAndroidDarkSplashConfig(config, props);\n\n await Promise.all([\n setSplashImageDrawablesForThemeAsync(splash, 'light', projectRoot, imageWidth),\n setSplashImageDrawablesForThemeAsync(darkSplash, 'dark', projectRoot, imageWidth),\n ]);\n}\n\nasync function clearAllExistingSplashImagesAsync(projectRoot: string) {\n const androidMainPath = path.join(projectRoot, 'android/app/src/main');\n\n await Promise.all(\n Object.values(DRAWABLES_CONFIGS).map(async ({ modes }) => {\n await Promise.all(\n Object.values(modes).map(async ({ path: filePath }) => {\n if (await fs.pathExists(path.resolve(androidMainPath, filePath))) {\n await fs.remove(path.resolve(androidMainPath, filePath));\n }\n })\n );\n })\n );\n}\n\nexport async function setSplashImageDrawablesForThemeAsync(\n config: SplashScreenConfig | null,\n theme: 'dark' | 'light',\n projectRoot: string,\n imageWidth: number = 100\n) {\n if (!config) return;\n const androidMainPath = path.join(projectRoot, 'android/app/src/main');\n\n if (config.drawable) {\n await writeSplashScreenDrawablesAsync(androidMainPath, projectRoot, config.drawable);\n return;\n }\n\n const sizes: DRAWABLE_SIZE[] = ['mdpi', 'hdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi'];\n\n await Promise.all(\n sizes.map(async (imageKey) => {\n // @ts-ignore\n const image = config[imageKey];\n\n if (image) {\n const multiplier = DRAWABLES_CONFIGS[imageKey].dimensionsMultiplier;\n const size = imageWidth * multiplier; // \"imageWidth\" must be replaced by the logo width chosen by the user in its config file\n const canvasSize = 288 * multiplier;\n\n const background = await generateImageBackgroundAsync({\n width: canvasSize,\n height: canvasSize,\n backgroundColor: config.backgroundColor ?? 'transparent',\n resizeMode: 'cover',\n });\n\n const { source: foreground } = await generateImageAsync(\n {\n projectRoot,\n cacheType: IMAGE_CACHE_NAME,\n },\n {\n src: image,\n resizeMode: 'contain',\n width: size,\n height: size,\n }\n );\n\n const composedImage = await compositeImagesAsync({\n background,\n foreground,\n x: (canvasSize - size) / 2,\n y: (canvasSize - size) / 2,\n });\n\n // Get output path for drawable.\n const outputPath = path.join(\n androidMainPath,\n DRAWABLES_CONFIGS[imageKey].modes[theme].path\n );\n\n const folder = path.dirname(outputPath);\n // Ensure directory exists.\n await fs.ensureDir(folder);\n await fs.writeFile(outputPath, composedImage);\n }\n return null;\n })\n );\n}\n\nasync function writeSplashScreenDrawablesAsync(\n drawablePath: string,\n projectRoot: string,\n drawable: SplashScreenConfig['drawable']\n) {\n if (!drawable) {\n return;\n }\n\n const lightDrawablePath = path.join(drawablePath, DRAWABLES_CONFIGS.default.modes.light.path);\n const darkDrawablePath = path.join(drawablePath, DRAWABLES_CONFIGS.default.modes.dark.path);\n\n const lightFolder = path.dirname(lightDrawablePath);\n await fs.ensureDir(lightFolder);\n await fs.copyFile(path.join(projectRoot, drawable.icon), lightDrawablePath);\n\n if (drawable.darkIcon) {\n const darkFolder = path.dirname(darkDrawablePath);\n await fs.ensureDir(darkFolder);\n await fs.copyFile(path.join(projectRoot, drawable.darkIcon), darkDrawablePath);\n }\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,eAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,cAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAE,YAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,WAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAKA,SAAAG,SAAA;EAAA,MAAAH,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAE,QAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,MAAA;EAAA,MAAAL,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAI,KAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAM,wBAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,uBAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAKkC,SAAAI,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAKlC,MAAMG,gBAAgB,GAAG,gBAAgB;AACzC,MAAMC,sBAAsB,GAAG,uBAAuB;AACtD,MAAMC,2BAA2B,GAAG,uBAAuB;AAE3D,MAAMC,iBASL,GAAG;EACFJ,OAAO,EAAE;IACPK,KAAK,EAAE;MACLC,KAAK,EAAE;QACLC,IAAI,EAAE,kBAAkBJ,2BAA2B;MACrD,CAAC;MACDK,IAAI,EAAE;QACJD,IAAI,EAAE,wBAAwBJ,2BAA2B;MAC3D;IACF,CAAC;IACDM,oBAAoB,EAAE;EACxB,CAAC;EACDC,IAAI,EAAE;IACJL,KAAK,EAAE;MACLC,KAAK,EAAE;QACLC,IAAI,EAAE,uBAAuBL,sBAAsB;MACrD,CAAC;MACDM,IAAI,EAAE;QACJD,IAAI,EAAE,6BAA6BL,sBAAsB;MAC3D;IACF,CAAC;IACDO,oBAAoB,EAAE;EACxB,CAAC;EACDE,IAAI,EAAE;IACJN,KAAK,EAAE;MACLC,KAAK,EAAE;QACLC,IAAI,EAAE,uBAAuBL,sBAAsB;MACrD,CAAC;MACDM,IAAI,EAAE;QACJD,IAAI,EAAE,6BAA6BL,sBAAsB;MAC3D;IACF,CAAC;IACDO,oBAAoB,EAAE;EACxB,CAAC;EACDG,KAAK,EAAE;IACLP,KAAK,EAAE;MACLC,KAAK,EAAE;QACLC,IAAI,EAAE,wBAAwBL,sBAAsB;MACtD,CAAC;MACDM,IAAI,EAAE;QACJD,IAAI,EAAE,8BAA8BL,sBAAsB;MAC5D;IACF,CAAC;IACDO,oBAAoB,EAAE;EACxB,CAAC;EACDI,MAAM,EAAE;IACNR,KAAK,EAAE;MACLC,KAAK,EAAE;QACLC,IAAI,EAAE,yBAAyBL,sBAAsB;MACvD,CAAC;MACDM,IAAI,EAAE;QACJD,IAAI,EAAE,+BAA+BL,sBAAsB;MAC7D;IACF,CAAC;IACDO,oBAAoB,EAAE;EACxB,CAAC;EACDK,OAAO,EAAE;IACPT,KAAK,EAAE;MACLC,KAAK,EAAE;QACLC,IAAI,EAAE,0BAA0BL,sBAAsB;MACxD,CAAC;MACDM,IAAI,EAAE;QACJD,IAAI,EAAE,gCAAgCL,sBAAsB;MAC9D;IACF,CAAC;IACDO,oBAAoB,EAAE;EACxB;AACF,CAAC;AAEM,MAAMM,uBAAiE,GAAGA,CAC/EC,MAAM,EACNC,MAAM,KACH;EACH,OAAO,IAAAC,iCAAgB,EAACF,MAAM,EAAE,CAC9B,SAAS,EACT,MAAOA,MAAM,IAAK;IAChB,IAAIC,MAAM,EAAE;MACV,MAAME,4BAA4B,CAChCH,MAAM,EACNC,MAAM,EACND,MAAM,CAACI,UAAU,CAACC,WAAW,EAC7BJ,MAAM,EAAEK,UAAU,IAAI,GACxB,CAAC;IACH;IACA,OAAON,MAAM;EACf,CAAC,CACF,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AANAO,OAAA,CAAAR,uBAAA,GAAAA,uBAAA;AAOO,eAAeI,4BAA4BA,CAChDH,MAA8C,EAC9CQ,KAAiC,EACjCH,WAAmB,EACnBC,UAAkB,EAClB;EACA,MAAMG,iCAAiC,CAACJ,WAAW,CAAC;EAEpD,MAAMJ,MAAM,GAAG,IAAAS,gDAAsB,EAACV,MAAM,EAAEQ,KAAK,CAAC;EACpD,MAAMG,UAAU,GAAG,IAAAC,oDAA0B,EAACZ,MAAM,EAAEQ,KAAK,CAAC;EAE5D,MAAMK,OAAO,CAACC,GAAG,CAAC,CAChBC,oCAAoC,CAACd,MAAM,EAAE,OAAO,EAAEI,WAAW,EAAEC,UAAU,CAAC,EAC9ES,oCAAoC,CAACJ,UAAU,EAAE,MAAM,EAAEN,WAAW,EAAEC,UAAU,CAAC,CAClF,CAAC;AACJ;AAEA,eAAeG,iCAAiCA,CAACJ,WAAmB,EAAE;EACpE,MAAMW,eAAe,GAAGzB,eAAI,CAAC0B,IAAI,CAACZ,WAAW,EAAE,sBAAsB,CAAC;EAEtE,MAAMQ,OAAO,CAACC,GAAG,CACfI,MAAM,CAACC,MAAM,CAAC/B,iBAAiB,CAAC,CAACgC,GAAG,CAAC,OAAO;IAAE/B;EAAM,CAAC,KAAK;IACxD,MAAMwB,OAAO,CAACC,GAAG,CACfI,MAAM,CAACC,MAAM,CAAC9B,KAAK,CAAC,CAAC+B,GAAG,CAAC,OAAO;MAAE7B,IAAI,EAAE8B;IAAS,CAAC,KAAK;MACrD,IAAI,MAAMC,kBAAE,CAACC,UAAU,CAAChC,eAAI,CAACiC,OAAO,CAACR,eAAe,EAAEK,QAAQ,CAAC,CAAC,EAAE;QAChE,MAAMC,kBAAE,CAACG,MAAM,CAAClC,eAAI,CAACiC,OAAO,CAACR,eAAe,EAAEK,QAAQ,CAAC,CAAC;MAC1D;IACF,CAAC,CACH,CAAC;EACH,CAAC,CACH,CAAC;AACH;AAEO,eAAeN,oCAAoCA,CACxDf,MAAiC,EACjC0B,KAAuB,EACvBrB,WAAmB,EACnBC,UAAkB,GAAG,GAAG,EACxB;EACA,IAAI,CAACN,MAAM,EAAE;EACb,MAAMgB,eAAe,GAAGzB,eAAI,CAAC0B,IAAI,CAACZ,WAAW,EAAE,sBAAsB,CAAC;EAEtE,IAAIL,MAAM,CAAC2B,QAAQ,EAAE;IACnB,MAAMC,+BAA+B,CAACZ,eAAe,EAAEX,WAAW,EAAEL,MAAM,CAAC2B,QAAQ,CAAC;IACpF;EACF;EAEA,MAAME,KAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;EAE7E,MAAMhB,OAAO,CAACC,GAAG,CACfe,KAAK,CAACT,GAAG,CAAC,MAAOU,QAAQ,IAAK;IAC5B;IACA,MAAMC,KAAK,GAAG/B,MAAM,CAAC8B,QAAQ,CAAC;IAE9B,IAAIC,KAAK,EAAE;MACT,MAAMC,UAAU,GAAG5C,iBAAiB,CAAC0C,QAAQ,CAAC,CAACrC,oBAAoB;MACnE,MAAMwC,IAAI,GAAG3B,UAAU,GAAG0B,UAAU,CAAC,CAAC;MACtC,MAAME,UAAU,GAAG,GAAG,GAAGF,UAAU;MAEnC,MAAMG,UAAU,GAAG,MAAM,IAAAC,0CAA4B,EAAC;QACpDC,KAAK,EAAEH,UAAU;QACjBI,MAAM,EAAEJ,UAAU;QAClBK,eAAe,EAAEvC,MAAM,CAACuC,eAAe,IAAI,aAAa;QACxDC,UAAU,EAAE;MACd,CAAC,CAAC;MAEF,MAAM;QAAEC,MAAM,EAAEC;MAAW,CAAC,GAAG,MAAM,IAAAC,gCAAkB,EACrD;QACEtC,WAAW;QACXuC,SAAS,EAAE3D;MACb,CAAC,EACD;QACE4D,GAAG,EAAEd,KAAK;QACVS,UAAU,EAAE,SAAS;QACrBH,KAAK,EAAEJ,IAAI;QACXK,MAAM,EAAEL;MACV,CACF,CAAC;MAED,MAAMa,aAAa,GAAG,MAAM,IAAAC,kCAAoB,EAAC;QAC/CZ,UAAU;QACVO,UAAU;QACVM,CAAC,EAAE,CAACd,UAAU,GAAGD,IAAI,IAAI,CAAC;QAC1BgB,CAAC,EAAE,CAACf,UAAU,GAAGD,IAAI,IAAI;MAC3B,CAAC,CAAC;;MAEF;MACA,MAAMiB,UAAU,GAAG3D,eAAI,CAAC0B,IAAI,CAC1BD,eAAe,EACf5B,iBAAiB,CAAC0C,QAAQ,CAAC,CAACzC,KAAK,CAACqC,KAAK,CAAC,CAACnC,IAC3C,CAAC;MAED,MAAM4D,MAAM,GAAG5D,eAAI,CAAC6D,OAAO,CAACF,UAAU,CAAC;MACvC;MACA,MAAM5B,kBAAE,CAAC+B,SAAS,CAACF,MAAM,CAAC;MAC1B,MAAM7B,kBAAE,CAACgC,SAAS,CAACJ,UAAU,EAAEJ,aAAa,CAAC;IAC/C;IACA,OAAO,IAAI;EACb,CAAC,CACH,CAAC;AACH;AAEA,eAAelB,+BAA+BA,CAC5C2B,YAAoB,EACpBlD,WAAmB,EACnBsB,QAAwC,EACxC;EACA,IAAI,CAACA,QAAQ,EAAE;IACb;EACF;EAEA,MAAM6B,iBAAiB,GAAGjE,eAAI,CAAC0B,IAAI,CAACsC,YAAY,EAAEnE,iBAAiB,CAACJ,OAAO,CAACK,KAAK,CAACC,KAAK,CAACC,IAAI,CAAC;EAC7F,MAAMkE,gBAAgB,GAAGlE,eAAI,CAAC0B,IAAI,CAACsC,YAAY,EAAEnE,iBAAiB,CAACJ,OAAO,CAACK,KAAK,CAACG,IAAI,CAACD,IAAI,CAAC;EAE3F,MAAMmE,WAAW,GAAGnE,eAAI,CAAC6D,OAAO,CAACI,iBAAiB,CAAC;EACnD,MAAMlC,kBAAE,CAAC+B,SAAS,CAACK,WAAW,CAAC;EAC/B,MAAMpC,kBAAE,CAACqC,QAAQ,CAACpE,eAAI,CAAC0B,IAAI,CAACZ,WAAW,EAAEsB,QAAQ,CAACiC,IAAI,CAAC,EAAEJ,iBAAiB,CAAC;EAE3E,IAAI7B,QAAQ,CAACkC,QAAQ,EAAE;IACrB,MAAMC,UAAU,GAAGvE,eAAI,CAAC6D,OAAO,CAACK,gBAAgB,CAAC;IACjD,MAAMnC,kBAAE,CAAC+B,SAAS,CAACS,UAAU,CAAC;IAC9B,MAAMxC,kBAAE,CAACqC,QAAQ,CAACpE,eAAI,CAAC0B,IAAI,CAACZ,WAAW,EAAEsB,QAAQ,CAACkC,QAAQ,CAAC,EAAEJ,gBAAgB,CAAC;EAChF;AACF","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/prebuild-config",
|
|
3
|
-
"version": "8.0.
|
|
3
|
+
"version": "8.0.27",
|
|
4
4
|
"description": "Get the prebuild config",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/debug": "^4.1.5",
|
|
36
36
|
"@types/xml2js": "~0.4.11",
|
|
37
|
-
"expo-module-scripts": "^4.0.
|
|
37
|
+
"expo-module-scripts": "^4.0.4"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@expo/config": "~10.0.
|
|
40
|
+
"@expo/config": "~10.0.9",
|
|
41
41
|
"@expo/config-plugins": "~9.0.15",
|
|
42
42
|
"@expo/config-types": "^52.0.4",
|
|
43
43
|
"@expo/image-utils": "^0.6.4",
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
"publishConfig": {
|
|
53
53
|
"access": "public"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "7080126694798ca950d5dc3ef33483a17fa401bb"
|
|
56
56
|
}
|