@expo/prebuild-config 55.0.19 → 55.0.21
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 +1 -3
- package/build/getAutolinkedPackages.js.map +1 -1
- package/build/getPrebuildConfig.js +1 -3
- package/build/getPrebuildConfig.js.map +1 -1
- package/build/index.js +4 -15
- package/build/index.js.map +1 -1
- package/build/plugins/icons/AssetContents.js +1 -3
- package/build/plugins/icons/AssetContents.js.map +1 -1
- package/build/plugins/icons/withAndroidIcons.js +1 -3
- package/build/plugins/icons/withAndroidIcons.js.map +1 -1
- package/build/plugins/icons/withAndroidManifestIcons.js +1 -3
- package/build/plugins/icons/withAndroidManifestIcons.js.map +1 -1
- package/build/plugins/icons/withIosIcons.js +1 -3
- package/build/plugins/icons/withIosIcons.js.map +1 -1
- package/build/plugins/sdk52/ReactNative77CompatPlugin.js +1 -3
- package/build/plugins/sdk52/ReactNative77CompatPlugin.js.map +1 -1
- package/build/plugins/sdk52/ReactNative78CompatPlugin.js +1 -3
- package/build/plugins/sdk52/ReactNative78CompatPlugin.js.map +1 -1
- package/build/plugins/unversioned/createLegacyPlugin.js +1 -3
- package/build/plugins/unversioned/createLegacyPlugin.js.map +1 -1
- package/build/plugins/unversioned/edge-to-edge/withEdgeToEdge.js +1 -3
- package/build/plugins/unversioned/edge-to-edge/withEdgeToEdge.js.map +1 -1
- package/build/plugins/unversioned/edge-to-edge/withRestoreDefaultTheme.js +1 -3
- package/build/plugins/unversioned/edge-to-edge/withRestoreDefaultTheme.js.map +1 -1
- package/build/plugins/unversioned/expo-ads-admob/expo-ads-admob.js +1 -3
- package/build/plugins/unversioned/expo-ads-admob/expo-ads-admob.js.map +1 -1
- package/build/plugins/unversioned/expo-ads-admob/withAndroidAdMob.js +1 -3
- package/build/plugins/unversioned/expo-ads-admob/withAndroidAdMob.js.map +1 -1
- package/build/plugins/unversioned/expo-ads-admob/withIosAdMob.js +1 -3
- package/build/plugins/unversioned/expo-ads-admob/withIosAdMob.js.map +1 -1
- package/build/plugins/unversioned/expo-apple-authentication.js +1 -3
- package/build/plugins/unversioned/expo-apple-authentication.js.map +1 -1
- package/build/plugins/unversioned/expo-contacts.js +1 -3
- package/build/plugins/unversioned/expo-contacts.js.map +1 -1
- package/build/plugins/unversioned/expo-document-picker.js +1 -3
- package/build/plugins/unversioned/expo-document-picker.js.map +1 -1
- package/build/plugins/unversioned/expo-navigation-bar/expo-navigation-bar.js +1 -3
- package/build/plugins/unversioned/expo-navigation-bar/expo-navigation-bar.js.map +1 -1
- package/build/plugins/unversioned/expo-navigation-bar/withAndroidNavigationBar.js +1 -3
- package/build/plugins/unversioned/expo-navigation-bar/withAndroidNavigationBar.js.map +1 -1
- package/build/plugins/unversioned/expo-notifications/expo-notifications.js +1 -3
- package/build/plugins/unversioned/expo-notifications/expo-notifications.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/InterfaceBuilder.js +1 -3
- package/build/plugins/unversioned/expo-splash-screen/InterfaceBuilder.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/expo-splash-screen.js +1 -3
- package/build/plugins/unversioned/expo-splash-screen/expo-splash-screen.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/getAndroidSplashConfig.js +1 -3
- package/build/plugins/unversioned/expo-splash-screen/getAndroidSplashConfig.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/getIosSplashConfig.js +1 -3
- package/build/plugins/unversioned/expo-splash-screen/getIosSplashConfig.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashDrawables.js +1 -3
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashDrawables.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashImages.js +1 -3
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashImages.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashLegacyMainActivity.js +1 -3
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashLegacyMainActivity.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashMainActivity.js +1 -3
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashMainActivity.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashScreen.js +1 -3
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashScreen.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashStrings.js +1 -3
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashStrings.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashStyles.js +1 -3
- package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashStyles.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashAssets.js +1 -3
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashAssets.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashColors.js +1 -3
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashColors.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashInfoPlist.js +1 -3
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashInfoPlist.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashScreen.js +1 -3
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashScreen.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashScreenStoryboard.js +1 -3
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashScreenStoryboard.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashScreenStoryboardImage.js +1 -3
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashScreenStoryboardImage.js.map +1 -1
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashXcodeProject.js +1 -3
- package/build/plugins/unversioned/expo-splash-screen/withIosSplashXcodeProject.js.map +1 -1
- package/build/plugins/unversioned/expo-system-ui/expo-system-ui.js +1 -3
- package/build/plugins/unversioned/expo-system-ui/expo-system-ui.js.map +1 -1
- package/build/plugins/unversioned/expo-system-ui/withAndroidRootViewBackgroundColor.js +1 -3
- package/build/plugins/unversioned/expo-system-ui/withAndroidRootViewBackgroundColor.js.map +1 -1
- package/build/plugins/unversioned/expo-system-ui/withAndroidUserInterfaceStyle.js +1 -3
- package/build/plugins/unversioned/expo-system-ui/withAndroidUserInterfaceStyle.js.map +1 -1
- package/build/plugins/unversioned/expo-system-ui/withIosRootViewBackgroundColor.js +1 -3
- package/build/plugins/unversioned/expo-system-ui/withIosRootViewBackgroundColor.js.map +1 -1
- package/build/plugins/unversioned/expo-system-ui/withIosUserInterfaceStyle.js +1 -3
- package/build/plugins/unversioned/expo-system-ui/withIosUserInterfaceStyle.js.map +1 -1
- package/build/plugins/unversioned/expo-updates.js +1 -3
- package/build/plugins/unversioned/expo-updates.js.map +1 -1
- package/build/plugins/unversioned/react-native-maps.js +1 -3
- package/build/plugins/unversioned/react-native-maps.js.map +1 -1
- package/build/plugins/withDefaultPlugins.js +1 -3
- package/build/plugins/withDefaultPlugins.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withAndroidSplashImages.js","names":["_configPlugins","data","require","_imageUtils","_fs","_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","promises","rm","resolve","force","recursive","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","mkdir","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';\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 await fs.promises.rm(path.resolve(androidMainPath, filePath), {\n force: true,\n recursive: true,\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.promises.mkdir(folder, { recursive: true });\n await fs.promises.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.promises.mkdir(lightFolder, { recursive: true });\n await fs.promises.copyFile(path.join(projectRoot, drawable.icon), lightDrawablePath);\n\n if (drawable.darkIcon) {\n const darkFolder = path.dirname(darkDrawablePath);\n await fs.promises.mkdir(darkFolder, { recursive: true });\n await fs.promises.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","_fs","_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","promises","rm","resolve","force","recursive","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","mkdir","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';\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 await fs.promises.rm(path.resolve(androidMainPath, filePath), {\n force: true,\n recursive: true,\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.promises.mkdir(folder, { recursive: true });\n await fs.promises.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.promises.mkdir(lightFolder, { recursive: true });\n await fs.promises.copyFile(path.join(projectRoot, drawable.icon), lightDrawablePath);\n\n if (drawable.darkIcon) {\n const darkFolder = path.dirname(darkDrawablePath);\n await fs.promises.mkdir(darkFolder, { recursive: true });\n await fs.promises.copyFile(path.join(projectRoot, drawable.darkIcon), darkDrawablePath);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
3
|
+
exports.__esModule = true;
|
|
6
4
|
exports.setSplashScreenLegacyMainActivity = setSplashScreenLegacyMainActivity;
|
|
7
5
|
exports.withAndroidSplashLegacyMainActivity = void 0;
|
|
8
6
|
function _configPlugins() {
|
package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashLegacyMainActivity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withAndroidSplashLegacyMainActivity.js","names":["_configPlugins","data","require","_codeMod","_generateCode","_debug","_interopRequireDefault","_getAndroidSplashConfig","e","__esModule","default","debug","Debug","SHOW_SPLASH_ID","withAndroidSplashLegacyMainActivity","config","props","withMainActivity","modResults","contents","setSplashScreenLegacyMainActivity","language","exports","mainActivity","splashConfig","getAndroidSplashConfig","mod","removeContents","src","tag","didClear","statusBarTranslucent","androidStatusBar","translucent","resizeMode","isJava","LE","addImports","match","onCreateBlock","mergeContents","anchor","offset","comment","newSrc","join","split","filter","line","test","toUpperCase"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashLegacyMainActivity.ts"],"sourcesContent":["import { ConfigPlugin, withMainActivity } from '@expo/config-plugins';\nimport { addImports } from '@expo/config-plugins/build/android/codeMod';\nimport { mergeContents, removeContents } from '@expo/config-plugins/build/utils/generateCode';\nimport { ExpoConfig } from '@expo/config-types';\nimport Debug from 'debug';\n\nimport { AndroidSplashConfig, getAndroidSplashConfig } from './getAndroidSplashConfig';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:android:mainActivity');\n\n// DO NOT CHANGE\nconst SHOW_SPLASH_ID = 'expo-splash-screen-mainActivity-onCreate-show-splash';\n\nexport const withAndroidSplashLegacyMainActivity: ConfigPlugin<AndroidSplashConfig> = (\n config,\n props\n) => {\n return withMainActivity(config, (config) => {\n config.modResults.contents = setSplashScreenLegacyMainActivity(\n config,\n props,\n config.modResults.contents,\n config.modResults.language\n );\n return config;\n });\n};\n\nexport function setSplashScreenLegacyMainActivity(\n config: Pick<ExpoConfig, 'android' | 'androidStatusBar' | 'userInterfaceStyle'>,\n props: AndroidSplashConfig,\n mainActivity: string,\n language: 'java' | 'kt'\n): string {\n debug(`Modify with language: \"${language}\"`);\n const splashConfig = getAndroidSplashConfig(config, props);\n\n if (!splashConfig) {\n // Remove our generated code safely...\n const mod = removeContents({\n src: mainActivity,\n tag: SHOW_SPLASH_ID,\n });\n\n mainActivity = mod.contents;\n if (mod.didClear) {\n debug('Removed SplashScreen.show()');\n }\n return mainActivity;\n }\n // TODO: Translucent is weird\n const statusBarTranslucent = !!config.androidStatusBar?.translucent;\n\n const { resizeMode } = splashConfig;\n const isJava = language === 'java';\n const LE = isJava ? ';' : '';\n\n mainActivity = addImports(\n mainActivity,\n [\n 'host.exp.exponent.experience.splashscreen.legacy.singletons.SplashScreen',\n 'host.exp.exponent.experience.splashscreen.legacy.SplashScreenImageResizeMode',\n 'com.facebook.react.ReactRootView',\n 'android.os.Bundle',\n ],\n isJava\n );\n\n if (!mainActivity.match(/(?<=^.*super\\.onCreate.*$)/m)) {\n const onCreateBlock = isJava\n ? [\n ' @Override',\n ' protected void onCreate(Bundle savedInstanceState) {',\n ' super.onCreate(savedInstanceState);',\n ' }',\n ]\n : [\n ' override fun onCreate(savedInstanceState: Bundle?) {',\n ' super.onCreate(savedInstanceState)',\n ' }',\n ];\n\n mainActivity = mergeContents({\n src: mainActivity,\n // insert just below super.onCreate\n anchor: isJava\n ? /(?<=public\\s+class\\s+.*\\s+extends\\s+.*\\s+{.*$)/m\n : /(?<=class\\s+.*\\s+:\\s+.*\\s+{.*$)/m,\n offset: 1,\n comment: '//',\n tag: 'expo-splash-screen-mainActivity-onCreate',\n newSrc: onCreateBlock.join('\\n'),\n }).contents;\n }\n\n // Remove our generated code safely...\n mainActivity = removeContents({\n src: mainActivity,\n tag: SHOW_SPLASH_ID,\n }).contents;\n\n // Remove code from `@expo/configure-splash-screen`\n mainActivity = mainActivity\n .split('\\n')\n .filter((line) => {\n return !/SplashScreen\\.show\\(this,\\s?SplashScreenImageResizeMode\\./.test(line);\n })\n .join('\\n');\n\n // Reapply generated code.\n mainActivity = mergeContents({\n src: mainActivity,\n // insert just below super.onCreate\n anchor: /(?<=^.*super\\.onCreate.*$)/m,\n offset: 1,\n comment: '//',\n tag: SHOW_SPLASH_ID,\n newSrc: ` SplashScreen.show(this, SplashScreenImageResizeMode.${resizeMode.toUpperCase()}, ReactRootView${\n isJava ? '.class' : '::class.java'\n }, ${statusBarTranslucent})${LE}`,\n }).contents;\n\n // TODO: Remove old `SplashScreen.show`\n\n return mainActivity;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"withAndroidSplashLegacyMainActivity.js","names":["_configPlugins","data","require","_codeMod","_generateCode","_debug","_interopRequireDefault","_getAndroidSplashConfig","e","__esModule","default","debug","Debug","SHOW_SPLASH_ID","withAndroidSplashLegacyMainActivity","config","props","withMainActivity","modResults","contents","setSplashScreenLegacyMainActivity","language","exports","mainActivity","splashConfig","getAndroidSplashConfig","mod","removeContents","src","tag","didClear","statusBarTranslucent","androidStatusBar","translucent","resizeMode","isJava","LE","addImports","match","onCreateBlock","mergeContents","anchor","offset","comment","newSrc","join","split","filter","line","test","toUpperCase"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashLegacyMainActivity.ts"],"sourcesContent":["import { ConfigPlugin, withMainActivity } from '@expo/config-plugins';\nimport { addImports } from '@expo/config-plugins/build/android/codeMod';\nimport { mergeContents, removeContents } from '@expo/config-plugins/build/utils/generateCode';\nimport { ExpoConfig } from '@expo/config-types';\nimport Debug from 'debug';\n\nimport { AndroidSplashConfig, getAndroidSplashConfig } from './getAndroidSplashConfig';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:android:mainActivity');\n\n// DO NOT CHANGE\nconst SHOW_SPLASH_ID = 'expo-splash-screen-mainActivity-onCreate-show-splash';\n\nexport const withAndroidSplashLegacyMainActivity: ConfigPlugin<AndroidSplashConfig> = (\n config,\n props\n) => {\n return withMainActivity(config, (config) => {\n config.modResults.contents = setSplashScreenLegacyMainActivity(\n config,\n props,\n config.modResults.contents,\n config.modResults.language\n );\n return config;\n });\n};\n\nexport function setSplashScreenLegacyMainActivity(\n config: Pick<ExpoConfig, 'android' | 'androidStatusBar' | 'userInterfaceStyle'>,\n props: AndroidSplashConfig,\n mainActivity: string,\n language: 'java' | 'kt'\n): string {\n debug(`Modify with language: \"${language}\"`);\n const splashConfig = getAndroidSplashConfig(config, props);\n\n if (!splashConfig) {\n // Remove our generated code safely...\n const mod = removeContents({\n src: mainActivity,\n tag: SHOW_SPLASH_ID,\n });\n\n mainActivity = mod.contents;\n if (mod.didClear) {\n debug('Removed SplashScreen.show()');\n }\n return mainActivity;\n }\n // TODO: Translucent is weird\n const statusBarTranslucent = !!config.androidStatusBar?.translucent;\n\n const { resizeMode } = splashConfig;\n const isJava = language === 'java';\n const LE = isJava ? ';' : '';\n\n mainActivity = addImports(\n mainActivity,\n [\n 'host.exp.exponent.experience.splashscreen.legacy.singletons.SplashScreen',\n 'host.exp.exponent.experience.splashscreen.legacy.SplashScreenImageResizeMode',\n 'com.facebook.react.ReactRootView',\n 'android.os.Bundle',\n ],\n isJava\n );\n\n if (!mainActivity.match(/(?<=^.*super\\.onCreate.*$)/m)) {\n const onCreateBlock = isJava\n ? [\n ' @Override',\n ' protected void onCreate(Bundle savedInstanceState) {',\n ' super.onCreate(savedInstanceState);',\n ' }',\n ]\n : [\n ' override fun onCreate(savedInstanceState: Bundle?) {',\n ' super.onCreate(savedInstanceState)',\n ' }',\n ];\n\n mainActivity = mergeContents({\n src: mainActivity,\n // insert just below super.onCreate\n anchor: isJava\n ? /(?<=public\\s+class\\s+.*\\s+extends\\s+.*\\s+{.*$)/m\n : /(?<=class\\s+.*\\s+:\\s+.*\\s+{.*$)/m,\n offset: 1,\n comment: '//',\n tag: 'expo-splash-screen-mainActivity-onCreate',\n newSrc: onCreateBlock.join('\\n'),\n }).contents;\n }\n\n // Remove our generated code safely...\n mainActivity = removeContents({\n src: mainActivity,\n tag: SHOW_SPLASH_ID,\n }).contents;\n\n // Remove code from `@expo/configure-splash-screen`\n mainActivity = mainActivity\n .split('\\n')\n .filter((line) => {\n return !/SplashScreen\\.show\\(this,\\s?SplashScreenImageResizeMode\\./.test(line);\n })\n .join('\\n');\n\n // Reapply generated code.\n mainActivity = mergeContents({\n src: mainActivity,\n // insert just below super.onCreate\n anchor: /(?<=^.*super\\.onCreate.*$)/m,\n offset: 1,\n comment: '//',\n tag: SHOW_SPLASH_ID,\n newSrc: ` SplashScreen.show(this, SplashScreenImageResizeMode.${resizeMode.toUpperCase()}, ReactRootView${\n isJava ? '.class' : '::class.java'\n }, ${statusBarTranslucent})${LE}`,\n }).contents;\n\n // TODO: Remove old `SplashScreen.show`\n\n return mainActivity;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withAndroidSplashMainActivity.js","names":["_configPlugins","data","require","_codeMod","_generateCode","withAndroidSplashMainActivity","config","isLegacyConfig","withMainActivity","modResults","language","withImports","addImports","contents","replace","init","mergeContents","src","comment","tag","offset","anchor","newSrc","exports"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashMainActivity.ts"],"sourcesContent":["import { ConfigPlugin, withMainActivity } from '@expo/config-plugins';\nimport { addImports } from '@expo/config-plugins/build/android/codeMod';\nimport { mergeContents } from '@expo/config-plugins/build/utils/generateCode';\n\nexport const withAndroidSplashMainActivity: ConfigPlugin<{ isLegacyConfig: boolean }> = (\n config,\n { isLegacyConfig }\n) => {\n if (isLegacyConfig) {\n return config;\n }\n return withMainActivity(config, (config) => {\n const { modResults } = config;\n const { language } = modResults;\n\n const withImports = addImports(\n modResults.contents.replace(\n /(\\/\\/ )?setTheme\\(R\\.style\\.AppTheme\\)/,\n '// setTheme(R.style.AppTheme)'\n ),\n ['expo.modules.splashscreen.SplashScreenManager'],\n language === 'java'\n );\n\n const init = mergeContents({\n src: withImports,\n comment: ' //',\n tag: 'expo-splashscreen',\n offset: 0,\n anchor: /super\\.onCreate\\(null\\)/,\n newSrc: ' SplashScreenManager.registerOnActivity(this)' + (language === 'java' ? ';' : ''),\n });\n\n return {\n ...config,\n modResults: {\n ...modResults,\n contents: init.contents,\n },\n };\n });\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"withAndroidSplashMainActivity.js","names":["_configPlugins","data","require","_codeMod","_generateCode","withAndroidSplashMainActivity","config","isLegacyConfig","withMainActivity","modResults","language","withImports","addImports","contents","replace","init","mergeContents","src","comment","tag","offset","anchor","newSrc","exports"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashMainActivity.ts"],"sourcesContent":["import { ConfigPlugin, withMainActivity } from '@expo/config-plugins';\nimport { addImports } from '@expo/config-plugins/build/android/codeMod';\nimport { mergeContents } from '@expo/config-plugins/build/utils/generateCode';\n\nexport const withAndroidSplashMainActivity: ConfigPlugin<{ isLegacyConfig: boolean }> = (\n config,\n { isLegacyConfig }\n) => {\n if (isLegacyConfig) {\n return config;\n }\n return withMainActivity(config, (config) => {\n const { modResults } = config;\n const { language } = modResults;\n\n const withImports = addImports(\n modResults.contents.replace(\n /(\\/\\/ )?setTheme\\(R\\.style\\.AppTheme\\)/,\n '// setTheme(R.style.AppTheme)'\n ),\n ['expo.modules.splashscreen.SplashScreenManager'],\n language === 'java'\n );\n\n const init = mergeContents({\n src: withImports,\n comment: ' //',\n tag: 'expo-splashscreen',\n offset: 0,\n anchor: /super\\.onCreate\\(null\\)/,\n newSrc: ' SplashScreenManager.registerOnActivity(this)' + (language === 'java' ? ';' : ''),\n });\n\n return {\n ...config,\n modResults: {\n ...modResults,\n contents: init.contents,\n },\n };\n });\n};\n"],"mappings":";;;;AAAA,SAAAA,eAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,cAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,cAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,aAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAMI,6BAAwE,GAAGA,CACtFC,MAAM,EACN;EAAEC;AAAe,CAAC,KACf;EACH,IAAIA,cAAc,EAAE;IAClB,OAAOD,MAAM;EACf;EACA,OAAO,IAAAE,iCAAgB,EAACF,MAAM,EAAGA,MAAM,IAAK;IAC1C,MAAM;MAAEG;IAAW,CAAC,GAAGH,MAAM;IAC7B,MAAM;MAAEI;IAAS,CAAC,GAAGD,UAAU;IAE/B,MAAME,WAAW,GAAG,IAAAC,qBAAU,EAC5BH,UAAU,CAACI,QAAQ,CAACC,OAAO,CACzB,wCAAwC,EACxC,+BACF,CAAC,EACD,CAAC,+CAA+C,CAAC,EACjDJ,QAAQ,KAAK,MACf,CAAC;IAED,MAAMK,IAAI,GAAG,IAAAC,6BAAa,EAAC;MACzBC,GAAG,EAAEN,WAAW;MAChBO,OAAO,EAAE,QAAQ;MACjBC,GAAG,EAAE,mBAAmB;MACxBC,MAAM,EAAE,CAAC;MACTC,MAAM,EAAE,yBAAyB;MACjCC,MAAM,EAAE,kDAAkD,IAAIZ,QAAQ,KAAK,MAAM,GAAG,GAAG,GAAG,EAAE;IAC9F,CAAC,CAAC;IAEF,OAAO;MACL,GAAGJ,MAAM;MACTG,UAAU,EAAE;QACV,GAAGA,UAAU;QACbI,QAAQ,EAAEE,IAAI,CAACF;MACjB;IACF,CAAC;EACH,CAAC,CAAC;AACJ,CAAC;AAACU,OAAA,CAAAlB,6BAAA,GAAAA,6BAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withAndroidSplashScreen.js","names":["_configPlugins","data","require","_getAndroidSplashConfig","_withAndroidSplashDrawables","_withAndroidSplashImages","_withAndroidSplashMainActivity","_withAndroidSplashStrings","_withAndroidSplashStyles","withAndroidSplashScreen","config","props","isLegacyConfig","undefined","splashConfig","getAndroidSplashConfig","withPlugins","withAndroidSplashMainActivity","withAndroidSplashImages","withAndroidSplashDrawables","withAndroidSplashStyles","withAndroidSplashStrings","exports"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashScreen.ts"],"sourcesContent":["import { ConfigPlugin, withPlugins } from '@expo/config-plugins';\n\nimport { AndroidSplashConfig, getAndroidSplashConfig } from './getAndroidSplashConfig';\nimport { withAndroidSplashDrawables } from './withAndroidSplashDrawables';\nimport { withAndroidSplashImages } from './withAndroidSplashImages';\nimport { withAndroidSplashMainActivity } from './withAndroidSplashMainActivity';\nimport { withAndroidSplashStrings } from './withAndroidSplashStrings';\nimport { withAndroidSplashStyles } from './withAndroidSplashStyles';\n\nexport const withAndroidSplashScreen: ConfigPlugin<\n AndroidSplashConfig | undefined | null | void\n> = (config, props) => {\n const isLegacyConfig = props === undefined;\n const splashConfig = getAndroidSplashConfig(config, props ?? null);\n\n return withPlugins(config, [\n [withAndroidSplashMainActivity, { isLegacyConfig }],\n [withAndroidSplashImages, splashConfig],\n [withAndroidSplashDrawables, splashConfig],\n [withAndroidSplashStyles, { splashConfig, isLegacyConfig }],\n [withAndroidSplashStrings, splashConfig],\n ]);\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"withAndroidSplashScreen.js","names":["_configPlugins","data","require","_getAndroidSplashConfig","_withAndroidSplashDrawables","_withAndroidSplashImages","_withAndroidSplashMainActivity","_withAndroidSplashStrings","_withAndroidSplashStyles","withAndroidSplashScreen","config","props","isLegacyConfig","undefined","splashConfig","getAndroidSplashConfig","withPlugins","withAndroidSplashMainActivity","withAndroidSplashImages","withAndroidSplashDrawables","withAndroidSplashStyles","withAndroidSplashStrings","exports"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashScreen.ts"],"sourcesContent":["import { ConfigPlugin, withPlugins } from '@expo/config-plugins';\n\nimport { AndroidSplashConfig, getAndroidSplashConfig } from './getAndroidSplashConfig';\nimport { withAndroidSplashDrawables } from './withAndroidSplashDrawables';\nimport { withAndroidSplashImages } from './withAndroidSplashImages';\nimport { withAndroidSplashMainActivity } from './withAndroidSplashMainActivity';\nimport { withAndroidSplashStrings } from './withAndroidSplashStrings';\nimport { withAndroidSplashStyles } from './withAndroidSplashStyles';\n\nexport const withAndroidSplashScreen: ConfigPlugin<\n AndroidSplashConfig | undefined | null | void\n> = (config, props) => {\n const isLegacyConfig = props === undefined;\n const splashConfig = getAndroidSplashConfig(config, props ?? null);\n\n return withPlugins(config, [\n [withAndroidSplashMainActivity, { isLegacyConfig }],\n [withAndroidSplashImages, splashConfig],\n [withAndroidSplashDrawables, splashConfig],\n [withAndroidSplashStyles, { splashConfig, isLegacyConfig }],\n [withAndroidSplashStrings, splashConfig],\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,wBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,uBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,4BAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,2BAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,yBAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,wBAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,+BAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,8BAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,0BAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,yBAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,yBAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,wBAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAMQ,uBAEZ,GAAGA,CAACC,MAAM,EAAEC,KAAK,KAAK;EACrB,MAAMC,cAAc,GAAGD,KAAK,KAAKE,SAAS;EAC1C,MAAMC,YAAY,GAAG,IAAAC,gDAAsB,EAACL,MAAM,EAAEC,KAAK,IAAI,IAAI,CAAC;EAElE,OAAO,IAAAK,4BAAW,EAACN,MAAM,EAAE,CACzB,CAACO,8DAA6B,EAAE;IAAEL;EAAe,CAAC,CAAC,EACnD,CAACM,kDAAuB,EAAEJ,YAAY,CAAC,EACvC,CAACK,wDAA0B,EAAEL,YAAY,CAAC,EAC1C,CAACM,kDAAuB,EAAE;IAAEN,YAAY;IAAEF;EAAe,CAAC,CAAC,EAC3D,CAACS,oDAAwB,EAAEP,YAAY,CAAC,CACzC,CAAC;AACJ,CAAC;AAACQ,OAAA,CAAAb,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withAndroidSplashStrings.js","names":["_configPlugins","data","require","_getAndroidSplashConfig","RESIZE_MODE_KEY","withAndroidSplashStrings","config","props","withStringsXml","splashConfig","getAndroidSplashConfig","resizeMode","modResults","setSplashStrings","exports","strings","AndroidConfig","Strings","setStringItem","Resources","buildResourceItem","name","value","translatable"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashStrings.ts"],"sourcesContent":["import { AndroidConfig, ConfigPlugin, withStringsXml } from '@expo/config-plugins';\n\nimport { AndroidSplashConfig, getAndroidSplashConfig } from './getAndroidSplashConfig';\n\nconst RESIZE_MODE_KEY = 'expo_splash_screen_resize_mode';\n\nexport const withAndroidSplashStrings: ConfigPlugin<AndroidSplashConfig> = (config, props) => {\n return withStringsXml(config, (config) => {\n const splashConfig = getAndroidSplashConfig(config, props);\n if (splashConfig) {\n const { resizeMode } = splashConfig;\n config.modResults = setSplashStrings(config.modResults, resizeMode);\n }\n return config;\n });\n};\n\nexport function setSplashStrings(\n strings: AndroidConfig.Resources.ResourceXML,\n resizeMode: string\n): AndroidConfig.Resources.ResourceXML {\n return AndroidConfig.Strings.setStringItem(\n [\n AndroidConfig.Resources.buildResourceItem({\n name: RESIZE_MODE_KEY,\n value: resizeMode,\n translatable: false,\n }),\n ],\n strings\n );\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"withAndroidSplashStrings.js","names":["_configPlugins","data","require","_getAndroidSplashConfig","RESIZE_MODE_KEY","withAndroidSplashStrings","config","props","withStringsXml","splashConfig","getAndroidSplashConfig","resizeMode","modResults","setSplashStrings","exports","strings","AndroidConfig","Strings","setStringItem","Resources","buildResourceItem","name","value","translatable"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashStrings.ts"],"sourcesContent":["import { AndroidConfig, ConfigPlugin, withStringsXml } from '@expo/config-plugins';\n\nimport { AndroidSplashConfig, getAndroidSplashConfig } from './getAndroidSplashConfig';\n\nconst RESIZE_MODE_KEY = 'expo_splash_screen_resize_mode';\n\nexport const withAndroidSplashStrings: ConfigPlugin<AndroidSplashConfig> = (config, props) => {\n return withStringsXml(config, (config) => {\n const splashConfig = getAndroidSplashConfig(config, props);\n if (splashConfig) {\n const { resizeMode } = splashConfig;\n config.modResults = setSplashStrings(config.modResults, resizeMode);\n }\n return config;\n });\n};\n\nexport function setSplashStrings(\n strings: AndroidConfig.Resources.ResourceXML,\n resizeMode: string\n): AndroidConfig.Resources.ResourceXML {\n return AndroidConfig.Strings.setStringItem(\n [\n AndroidConfig.Resources.buildResourceItem({\n name: RESIZE_MODE_KEY,\n value: resizeMode,\n translatable: false,\n }),\n ],\n strings\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,wBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,uBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,MAAMG,eAAe,GAAG,gCAAgC;AAEjD,MAAMC,wBAA2D,GAAGA,CAACC,MAAM,EAAEC,KAAK,KAAK;EAC5F,OAAO,IAAAC,+BAAc,EAACF,MAAM,EAAGA,MAAM,IAAK;IACxC,MAAMG,YAAY,GAAG,IAAAC,gDAAsB,EAACJ,MAAM,EAAEC,KAAK,CAAC;IAC1D,IAAIE,YAAY,EAAE;MAChB,MAAM;QAAEE;MAAW,CAAC,GAAGF,YAAY;MACnCH,MAAM,CAACM,UAAU,GAAGC,gBAAgB,CAACP,MAAM,CAACM,UAAU,EAAED,UAAU,CAAC;IACrE;IACA,OAAOL,MAAM;EACf,CAAC,CAAC;AACJ,CAAC;AAACQ,OAAA,CAAAT,wBAAA,GAAAA,wBAAA;AAEK,SAASQ,gBAAgBA,CAC9BE,OAA4C,EAC5CJ,UAAkB,EACmB;EACrC,OAAOK,8BAAa,CAACC,OAAO,CAACC,aAAa,CACxC,CACEF,8BAAa,CAACG,SAAS,CAACC,iBAAiB,CAAC;IACxCC,IAAI,EAAEjB,eAAe;IACrBkB,KAAK,EAAEX,UAAU;IACjBY,YAAY,EAAE;EAChB,CAAC,CAAC,CACH,EACDR,OACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
3
|
+
exports.__esModule = true;
|
|
6
4
|
exports.getSplashBackgroundColor = getSplashBackgroundColor;
|
|
7
5
|
exports.getSplashDarkBackgroundColor = getSplashDarkBackgroundColor;
|
|
8
6
|
exports.removeOldSplashStyleGroup = removeOldSplashStyleGroup;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withAndroidSplashStyles.js","names":["_configPlugins","data","require","_android","_getAndroidSplashConfig","styleResourceGroup","name","parent","SPLASH_COLOR_NAME","withAndroidSplashStyles","config","splashConfig","isLegacyConfig","withAndroidColors","backgroundColor","getSplashBackgroundColor","modResults","setSplashColorsForTheme","withAndroidColorsNight","getSplashDarkBackgroundColor","withAndroidStyles","removeOldSplashStyleGroup","addSplashScreenStyle","exports","styles","resources","style","item","$","_","filter","group","head","matches","props","getAndroidSplashConfig","getAndroidDarkSplashConfig","setSplashStylesForTheme","AndroidConfig","Styles","assignStylesValue","add","value","colors","Colors","assignColorValue"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashStyles.ts"],"sourcesContent":["import {\n AndroidConfig,\n ConfigPlugin,\n withAndroidColors,\n withAndroidColorsNight,\n withAndroidStyles,\n} from '@expo/config-plugins';\nimport { Colors } from '@expo/config-plugins/build/android';\nimport { ExpoConfig } from '@expo/config-types';\n\nimport {\n AndroidSplashConfig,\n getAndroidDarkSplashConfig,\n getAndroidSplashConfig,\n} from './getAndroidSplashConfig';\n\nconst styleResourceGroup = {\n name: 'Theme.App.SplashScreen',\n parent: 'Theme.SplashScreen',\n};\n\nconst SPLASH_COLOR_NAME = 'splashscreen_background';\n\nexport const withAndroidSplashStyles: ConfigPlugin<{\n splashConfig: AndroidSplashConfig | null;\n isLegacyConfig: boolean;\n}> = (config, { splashConfig, isLegacyConfig }) => {\n config = withAndroidColors(config, (config) => {\n const backgroundColor = getSplashBackgroundColor(config, splashConfig);\n if (!backgroundColor) {\n return config;\n }\n config.modResults = setSplashColorsForTheme(config.modResults, backgroundColor);\n return config;\n });\n config = withAndroidColorsNight(config, (config) => {\n const backgroundColor = getSplashDarkBackgroundColor(config, splashConfig);\n if (!backgroundColor) {\n return config;\n }\n config.modResults = setSplashColorsForTheme(config.modResults, backgroundColor);\n return config;\n });\n config = withAndroidStyles(config, (config) => {\n config.modResults = removeOldSplashStyleGroup(config.modResults);\n config.modResults = addSplashScreenStyle(config.modResults, isLegacyConfig);\n return config;\n });\n return config;\n};\n\n// Add the style that extends Theme.SplashScreen\nfunction addSplashScreenStyle(\n styles: AndroidConfig.Resources.ResourceXML,\n isLegacyConfig: boolean\n) {\n const { resources } = styles;\n const { style = [] } = resources;\n\n let item;\n if (isLegacyConfig) {\n item = [\n {\n $: { name: 'android:windowBackground' },\n _: '@drawable/ic_launcher_background',\n },\n ];\n } else {\n item = [\n {\n $: { name: 'windowSplashScreenBackground' },\n _: '@color/splashscreen_background',\n },\n {\n $: { name: 'windowSplashScreenAnimatedIcon' },\n _: '@drawable/splashscreen_logo',\n },\n {\n $: { name: 'postSplashScreenTheme' },\n _: '@style/AppTheme',\n },\n {\n $: { name: 'android:windowSplashScreenBehavior' },\n _: 'icon_preferred',\n },\n ];\n }\n\n styles.resources.style = [\n ...style.filter(({ $ }) => $.name !== 'Theme.App.SplashScreen'),\n {\n $: {\n ...styleResourceGroup,\n parent: isLegacyConfig ? 'AppTheme' : 'Theme.SplashScreen',\n },\n item,\n },\n ];\n\n return styles;\n}\n\n// Remove the old style group which didn't extend the base theme properly.\nexport function removeOldSplashStyleGroup(styles: AndroidConfig.Resources.ResourceXML) {\n const group = {\n name: 'Theme.App.SplashScreen',\n parent: 'Theme.AppCompat.Light.NoActionBar',\n };\n\n styles.resources.style = styles.resources.style?.filter?.(({ $: head }) => {\n let matches = head.name === group.name;\n if (group.parent != null && matches) {\n matches = head.parent === group.parent;\n }\n return !matches;\n });\n\n return styles;\n}\n\nexport function getSplashBackgroundColor(\n config: ExpoConfig,\n props: AndroidSplashConfig | null\n): string | null {\n return getAndroidSplashConfig(config, props)?.backgroundColor ?? null;\n}\n\nexport function getSplashDarkBackgroundColor(\n config: ExpoConfig,\n props: AndroidSplashConfig | null\n): string | null {\n return getAndroidDarkSplashConfig(config, props)?.backgroundColor ?? null;\n}\n\nexport function setSplashStylesForTheme(styles: AndroidConfig.Resources.ResourceXML) {\n // Add splash screen image\n return AndroidConfig.Styles.assignStylesValue(styles, {\n add: true,\n value: '@drawable/splashscreen_logo',\n name: 'android:windowSplashScreenBackground',\n parent: styleResourceGroup,\n });\n}\n\nexport function setSplashColorsForTheme(\n colors: AndroidConfig.Resources.ResourceXML,\n backgroundColor: string | null\n): AndroidConfig.Resources.ResourceXML {\n return Colors.assignColorValue(colors, { value: backgroundColor, name: SPLASH_COLOR_NAME });\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"withAndroidSplashStyles.js","names":["_configPlugins","data","require","_android","_getAndroidSplashConfig","styleResourceGroup","name","parent","SPLASH_COLOR_NAME","withAndroidSplashStyles","config","splashConfig","isLegacyConfig","withAndroidColors","backgroundColor","getSplashBackgroundColor","modResults","setSplashColorsForTheme","withAndroidColorsNight","getSplashDarkBackgroundColor","withAndroidStyles","removeOldSplashStyleGroup","addSplashScreenStyle","exports","styles","resources","style","item","$","_","filter","group","head","matches","props","getAndroidSplashConfig","getAndroidDarkSplashConfig","setSplashStylesForTheme","AndroidConfig","Styles","assignStylesValue","add","value","colors","Colors","assignColorValue"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashStyles.ts"],"sourcesContent":["import {\n AndroidConfig,\n ConfigPlugin,\n withAndroidColors,\n withAndroidColorsNight,\n withAndroidStyles,\n} from '@expo/config-plugins';\nimport { Colors } from '@expo/config-plugins/build/android';\nimport { ExpoConfig } from '@expo/config-types';\n\nimport {\n AndroidSplashConfig,\n getAndroidDarkSplashConfig,\n getAndroidSplashConfig,\n} from './getAndroidSplashConfig';\n\nconst styleResourceGroup = {\n name: 'Theme.App.SplashScreen',\n parent: 'Theme.SplashScreen',\n};\n\nconst SPLASH_COLOR_NAME = 'splashscreen_background';\n\nexport const withAndroidSplashStyles: ConfigPlugin<{\n splashConfig: AndroidSplashConfig | null;\n isLegacyConfig: boolean;\n}> = (config, { splashConfig, isLegacyConfig }) => {\n config = withAndroidColors(config, (config) => {\n const backgroundColor = getSplashBackgroundColor(config, splashConfig);\n if (!backgroundColor) {\n return config;\n }\n config.modResults = setSplashColorsForTheme(config.modResults, backgroundColor);\n return config;\n });\n config = withAndroidColorsNight(config, (config) => {\n const backgroundColor = getSplashDarkBackgroundColor(config, splashConfig);\n if (!backgroundColor) {\n return config;\n }\n config.modResults = setSplashColorsForTheme(config.modResults, backgroundColor);\n return config;\n });\n config = withAndroidStyles(config, (config) => {\n config.modResults = removeOldSplashStyleGroup(config.modResults);\n config.modResults = addSplashScreenStyle(config.modResults, isLegacyConfig);\n return config;\n });\n return config;\n};\n\n// Add the style that extends Theme.SplashScreen\nfunction addSplashScreenStyle(\n styles: AndroidConfig.Resources.ResourceXML,\n isLegacyConfig: boolean\n) {\n const { resources } = styles;\n const { style = [] } = resources;\n\n let item;\n if (isLegacyConfig) {\n item = [\n {\n $: { name: 'android:windowBackground' },\n _: '@drawable/ic_launcher_background',\n },\n ];\n } else {\n item = [\n {\n $: { name: 'windowSplashScreenBackground' },\n _: '@color/splashscreen_background',\n },\n {\n $: { name: 'windowSplashScreenAnimatedIcon' },\n _: '@drawable/splashscreen_logo',\n },\n {\n $: { name: 'postSplashScreenTheme' },\n _: '@style/AppTheme',\n },\n {\n $: { name: 'android:windowSplashScreenBehavior' },\n _: 'icon_preferred',\n },\n ];\n }\n\n styles.resources.style = [\n ...style.filter(({ $ }) => $.name !== 'Theme.App.SplashScreen'),\n {\n $: {\n ...styleResourceGroup,\n parent: isLegacyConfig ? 'AppTheme' : 'Theme.SplashScreen',\n },\n item,\n },\n ];\n\n return styles;\n}\n\n// Remove the old style group which didn't extend the base theme properly.\nexport function removeOldSplashStyleGroup(styles: AndroidConfig.Resources.ResourceXML) {\n const group = {\n name: 'Theme.App.SplashScreen',\n parent: 'Theme.AppCompat.Light.NoActionBar',\n };\n\n styles.resources.style = styles.resources.style?.filter?.(({ $: head }) => {\n let matches = head.name === group.name;\n if (group.parent != null && matches) {\n matches = head.parent === group.parent;\n }\n return !matches;\n });\n\n return styles;\n}\n\nexport function getSplashBackgroundColor(\n config: ExpoConfig,\n props: AndroidSplashConfig | null\n): string | null {\n return getAndroidSplashConfig(config, props)?.backgroundColor ?? null;\n}\n\nexport function getSplashDarkBackgroundColor(\n config: ExpoConfig,\n props: AndroidSplashConfig | null\n): string | null {\n return getAndroidDarkSplashConfig(config, props)?.backgroundColor ?? null;\n}\n\nexport function setSplashStylesForTheme(styles: AndroidConfig.Resources.ResourceXML) {\n // Add splash screen image\n return AndroidConfig.Styles.assignStylesValue(styles, {\n add: true,\n value: '@drawable/splashscreen_logo',\n name: 'android:windowSplashScreenBackground',\n parent: styleResourceGroup,\n });\n}\n\nexport function setSplashColorsForTheme(\n colors: AndroidConfig.Resources.ResourceXML,\n backgroundColor: string | null\n): AndroidConfig.Resources.ResourceXML {\n return Colors.assignColorValue(colors, { value: backgroundColor, name: SPLASH_COLOR_NAME });\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withIosSplashAssets.js","names":["_configPlugins","data","require","_imageUtils","_debug","_interopRequireDefault","_fs","_path","_AssetContents","e","__esModule","default","debug","Debug","IMAGE_CACHE_NAME","IMAGESET_PATH","LEGACY_IMAGESET_PATH","PNG_FILENAME","DARK_PNG_FILENAME","TABLET_PNG_FILENAME","DARK_TABLET_PNG_FILENAME","withIosSplashAssets","config","splash","withDangerousMod","iosNamedProjectRoot","IOSConfig","Paths","getSourceRoot","modRequest","projectRoot","configureImageAssets","image","darkImage","dark","tabletImage","darkTabletImage","imageWidth","enableFullScreenImage","enableFullScreenImage_legacy","exports","imagePath","imageSetPath","path","resolve","legacyImageSetPath","fs","promises","rm","force","recursive","writeContentsJsonFileAsync","assetPath","copyImageFiles","generateImagesAssetsAsync","generateImageAsset","item","fileName","Promise","all","ratio","suffix","map","size","source","generateImageAsync","cacheType","src","width","undefined","height","writeFile","anyItem","darkItem","tabletItem","darkTabletItem","items","filter","darkAppearances","appearance","value","buildContentsJsonImages","createContentsJsonItem","idiom","filename","scale","appearances","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';\nimport path from 'path';\n\nimport { IOSSplashConfig } from './getIosSplashConfig';\nimport {\n ContentsJsonImage,\n ContentsJsonAppearance,\n createContentsJsonItem,\n writeContentsJsonAsync,\n} from '../../icons/AssetContents';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:ios:assets');\n\nconst IMAGE_CACHE_NAME = 'splash-ios';\nconst IMAGESET_PATH = 'Images.xcassets/SplashScreenLogo.imageset';\nconst LEGACY_IMAGESET_PATH = 'Images.xcassets/SplashScreenLegacy.imageset';\nconst PNG_FILENAME = 'image';\nconst DARK_PNG_FILENAME = 'dark_image';\nconst TABLET_PNG_FILENAME = 'tablet_image';\nconst DARK_TABLET_PNG_FILENAME = 'dark_tablet_image';\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 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 imageWidth: splash.imageWidth ?? 100,\n enableFullScreenImage: splash.enableFullScreenImage_legacy,\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 imageWidth,\n enableFullScreenImage,\n}: {\n projectRoot: string;\n iosNamedProjectRoot: string;\n image?: string | null;\n darkImage?: string | null;\n tabletImage?: string;\n darkTabletImage?: string | null;\n imageWidth: number;\n enableFullScreenImage?: boolean;\n}) {\n const imagePath = enableFullScreenImage ? LEGACY_IMAGESET_PATH : IMAGESET_PATH;\n const imageSetPath = path.resolve(iosNamedProjectRoot, imagePath);\n\n // remove legacy imageSet if it is not used\n if (!enableFullScreenImage) {\n const legacyImageSetPath = path.resolve(iosNamedProjectRoot, LEGACY_IMAGESET_PATH);\n await fs.promises.rm(legacyImageSetPath, { force: true, recursive: true });\n }\n\n // ensure old SplashScreen imageSet is removed\n await fs.promises.rm(imageSetPath, { force: true, recursive: true });\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 imageWidth,\n enableFullScreenImage,\n });\n}\n\nasync function copyImageFiles({\n projectRoot,\n iosNamedProjectRoot,\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n imageWidth,\n enableFullScreenImage,\n}: {\n projectRoot: string;\n iosNamedProjectRoot: string;\n image: string;\n darkImage?: string | null;\n tabletImage?: string | null;\n darkTabletImage?: string | null;\n imageWidth: number;\n enableFullScreenImage?: boolean;\n}) {\n await generateImagesAssetsAsync({\n async generateImageAsset(item, fileName) {\n await Promise.all(\n [\n { ratio: 1, suffix: '' },\n { ratio: 2, suffix: '@2x' },\n { ratio: 3, suffix: '@3x' },\n ].map(async ({ ratio, suffix }) => {\n const size = imageWidth * ratio;\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(\n { projectRoot, cacheType: IMAGE_CACHE_NAME },\n {\n src: item,\n width: enableFullScreenImage ? undefined : size,\n height: enableFullScreenImage ? undefined : size,\n } as any\n );\n // Write image buffer to the file system.\n // const assetPath = join(iosNamedProjectRoot, IMAGESET_PATH, filename);\n await fs.promises.writeFile(\n path.resolve(\n iosNamedProjectRoot,\n enableFullScreenImage ? LEGACY_IMAGESET_PATH : IMAGESET_PATH,\n `${fileName}${suffix}.png`\n ),\n source\n );\n })\n );\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}\nconst darkAppearances: ContentsJsonAppearance[] = [\n {\n appearance: 'luminosity',\n value: 'dark',\n } as ContentsJsonAppearance,\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}.png`,\n scale: '1x',\n }),\n createContentsJsonItem({\n idiom: 'universal',\n filename: `${image}@2x.png`,\n scale: '2x',\n }),\n createContentsJsonItem({\n idiom: 'universal',\n filename: `${image}@3x.png`,\n scale: '3x',\n }),\n // Phone dark\n darkImage &&\n createContentsJsonItem({\n idiom: 'universal',\n appearances: darkAppearances,\n scale: '1x',\n filename: `${darkImage}.png`,\n }),\n darkImage &&\n createContentsJsonItem({\n idiom: 'universal',\n appearances: darkAppearances,\n scale: '2x',\n filename: `${darkImage}@2x.png`,\n }),\n darkImage &&\n createContentsJsonItem({\n idiom: 'universal',\n appearances: darkAppearances,\n scale: '3x',\n filename: `${darkImage}@3x.png`,\n }),\n // Tablet light\n tabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n filename: `${tabletImage}.png`,\n scale: '1x',\n }),\n tabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n scale: '2x',\n filename: `${tabletImage}@2x.png`,\n }),\n // Phone dark\n darkTabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n appearances: darkAppearances,\n filename: `${darkTabletImage}.png`,\n scale: '1x',\n }),\n darkTabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n appearances: darkAppearances,\n filename: `${darkTabletImage}@2x.png`,\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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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"withIosSplashAssets.js","names":["_configPlugins","data","require","_imageUtils","_debug","_interopRequireDefault","_fs","_path","_AssetContents","e","__esModule","default","debug","Debug","IMAGE_CACHE_NAME","IMAGESET_PATH","LEGACY_IMAGESET_PATH","PNG_FILENAME","DARK_PNG_FILENAME","TABLET_PNG_FILENAME","DARK_TABLET_PNG_FILENAME","withIosSplashAssets","config","splash","withDangerousMod","iosNamedProjectRoot","IOSConfig","Paths","getSourceRoot","modRequest","projectRoot","configureImageAssets","image","darkImage","dark","tabletImage","darkTabletImage","imageWidth","enableFullScreenImage","enableFullScreenImage_legacy","exports","imagePath","imageSetPath","path","resolve","legacyImageSetPath","fs","promises","rm","force","recursive","writeContentsJsonFileAsync","assetPath","copyImageFiles","generateImagesAssetsAsync","generateImageAsset","item","fileName","Promise","all","ratio","suffix","map","size","source","generateImageAsync","cacheType","src","width","undefined","height","writeFile","anyItem","darkItem","tabletItem","darkTabletItem","items","filter","darkAppearances","appearance","value","buildContentsJsonImages","createContentsJsonItem","idiom","filename","scale","appearances","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';\nimport path from 'path';\n\nimport { IOSSplashConfig } from './getIosSplashConfig';\nimport {\n ContentsJsonImage,\n ContentsJsonAppearance,\n createContentsJsonItem,\n writeContentsJsonAsync,\n} from '../../icons/AssetContents';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:ios:assets');\n\nconst IMAGE_CACHE_NAME = 'splash-ios';\nconst IMAGESET_PATH = 'Images.xcassets/SplashScreenLogo.imageset';\nconst LEGACY_IMAGESET_PATH = 'Images.xcassets/SplashScreenLegacy.imageset';\nconst PNG_FILENAME = 'image';\nconst DARK_PNG_FILENAME = 'dark_image';\nconst TABLET_PNG_FILENAME = 'tablet_image';\nconst DARK_TABLET_PNG_FILENAME = 'dark_tablet_image';\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 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 imageWidth: splash.imageWidth ?? 100,\n enableFullScreenImage: splash.enableFullScreenImage_legacy,\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 imageWidth,\n enableFullScreenImage,\n}: {\n projectRoot: string;\n iosNamedProjectRoot: string;\n image?: string | null;\n darkImage?: string | null;\n tabletImage?: string;\n darkTabletImage?: string | null;\n imageWidth: number;\n enableFullScreenImage?: boolean;\n}) {\n const imagePath = enableFullScreenImage ? LEGACY_IMAGESET_PATH : IMAGESET_PATH;\n const imageSetPath = path.resolve(iosNamedProjectRoot, imagePath);\n\n // remove legacy imageSet if it is not used\n if (!enableFullScreenImage) {\n const legacyImageSetPath = path.resolve(iosNamedProjectRoot, LEGACY_IMAGESET_PATH);\n await fs.promises.rm(legacyImageSetPath, { force: true, recursive: true });\n }\n\n // ensure old SplashScreen imageSet is removed\n await fs.promises.rm(imageSetPath, { force: true, recursive: true });\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 imageWidth,\n enableFullScreenImage,\n });\n}\n\nasync function copyImageFiles({\n projectRoot,\n iosNamedProjectRoot,\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n imageWidth,\n enableFullScreenImage,\n}: {\n projectRoot: string;\n iosNamedProjectRoot: string;\n image: string;\n darkImage?: string | null;\n tabletImage?: string | null;\n darkTabletImage?: string | null;\n imageWidth: number;\n enableFullScreenImage?: boolean;\n}) {\n await generateImagesAssetsAsync({\n async generateImageAsset(item, fileName) {\n await Promise.all(\n [\n { ratio: 1, suffix: '' },\n { ratio: 2, suffix: '@2x' },\n { ratio: 3, suffix: '@3x' },\n ].map(async ({ ratio, suffix }) => {\n const size = imageWidth * ratio;\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(\n { projectRoot, cacheType: IMAGE_CACHE_NAME },\n {\n src: item,\n width: enableFullScreenImage ? undefined : size,\n height: enableFullScreenImage ? undefined : size,\n } as any\n );\n // Write image buffer to the file system.\n // const assetPath = join(iosNamedProjectRoot, IMAGESET_PATH, filename);\n await fs.promises.writeFile(\n path.resolve(\n iosNamedProjectRoot,\n enableFullScreenImage ? LEGACY_IMAGESET_PATH : IMAGESET_PATH,\n `${fileName}${suffix}.png`\n ),\n source\n );\n })\n );\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}\nconst darkAppearances: ContentsJsonAppearance[] = [\n {\n appearance: 'luminosity',\n value: 'dark',\n } as ContentsJsonAppearance,\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}.png`,\n scale: '1x',\n }),\n createContentsJsonItem({\n idiom: 'universal',\n filename: `${image}@2x.png`,\n scale: '2x',\n }),\n createContentsJsonItem({\n idiom: 'universal',\n filename: `${image}@3x.png`,\n scale: '3x',\n }),\n // Phone dark\n darkImage &&\n createContentsJsonItem({\n idiom: 'universal',\n appearances: darkAppearances,\n scale: '1x',\n filename: `${darkImage}.png`,\n }),\n darkImage &&\n createContentsJsonItem({\n idiom: 'universal',\n appearances: darkAppearances,\n scale: '2x',\n filename: `${darkImage}@2x.png`,\n }),\n darkImage &&\n createContentsJsonItem({\n idiom: 'universal',\n appearances: darkAppearances,\n scale: '3x',\n filename: `${darkImage}@3x.png`,\n }),\n // Tablet light\n tabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n filename: `${tabletImage}.png`,\n scale: '1x',\n }),\n tabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n scale: '2x',\n filename: `${tabletImage}@2x.png`,\n }),\n // Phone dark\n darkTabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n appearances: darkAppearances,\n filename: `${darkTabletImage}.png`,\n scale: '1x',\n }),\n darkTabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n appearances: darkAppearances,\n filename: `${darkTabletImage}@2x.png`,\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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","ignoreList":[]}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
3
|
+
exports.__esModule = true;
|
|
6
4
|
exports.withIosSplashColors = exports.SPLASHSCREEN_COLORSET_PATH = void 0;
|
|
7
5
|
function _configPlugins() {
|
|
8
6
|
const data = require("@expo/config-plugins");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withIosSplashColors.js","names":["_configPlugins","data","require","_debug","_interopRequireDefault","_fs","_path","_interopRequireWildcard","_InterfaceBuilder","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","debug","Debug","SPLASHSCREEN_COLORSET_PATH","exports","withIosSplashColors","config","splash","withDangerousMod","iosNamedProjectRoot","IOSConfig","Paths","getSourceRoot","modRequest","projectRoot","configureColorAssets","backgroundColor","darkBackgroundColor","dark","colorsetPath","path","resolve","fs","promises","rm","force","recursive","writeColorsContentsJsonFileAsync","assetPath","color","parseColor","darkColor","colors","components","alpha","blue","rgb","green","red","idiom","push","appearances","appearance","value","writeContentsJsonAsync","directory","mkdir","writeFile","join","JSON","stringify","info","version","author"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withIosSplashColors.ts"],"sourcesContent":["import { ConfigPlugin, IOSConfig, withDangerousMod } from '@expo/config-plugins';\nimport Debug from 'debug';\nimport fs from 'fs';\nimport path, { join } from 'path';\n\nimport { parseColor } from './InterfaceBuilder';\nimport { IOSSplashConfig } from './getIosSplashConfig';\nimport { ContentsJsonColor } from '../../icons/AssetContents';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:ios:splash-colorset');\n\nexport const SPLASHSCREEN_COLORSET_PATH = 'Images.xcassets/SplashScreenBackground.colorset';\n\nexport const withIosSplashColors: 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 configureColorAssets({\n iosNamedProjectRoot,\n backgroundColor: splash.backgroundColor,\n darkBackgroundColor: splash.dark?.backgroundColor,\n });\n return config;\n },\n ]);\n};\n\nasync function configureColorAssets({\n iosNamedProjectRoot,\n backgroundColor = '#ffffff',\n darkBackgroundColor,\n}: {\n iosNamedProjectRoot: string;\n backgroundColor: string;\n darkBackgroundColor?: string | null;\n}) {\n const colorsetPath = path.resolve(iosNamedProjectRoot, SPLASHSCREEN_COLORSET_PATH);\n\n // ensure old SplashScreen colorSet is removed\n await fs.promises.rm(colorsetPath, { force: true, recursive: true });\n\n await writeColorsContentsJsonFileAsync({\n assetPath: colorsetPath,\n backgroundColor,\n darkBackgroundColor: darkBackgroundColor ?? null,\n });\n}\n\nasync function writeColorsContentsJsonFileAsync({\n assetPath,\n backgroundColor,\n darkBackgroundColor,\n}: {\n assetPath: string;\n backgroundColor: string;\n darkBackgroundColor: string | null;\n}) {\n const color = parseColor(backgroundColor);\n const darkColor = darkBackgroundColor ? parseColor(darkBackgroundColor) : null;\n\n const colors: ContentsJsonColor[] = [\n {\n color: {\n components: {\n alpha: '1.000',\n blue: color.rgb.blue,\n green: color.rgb.green,\n red: color.rgb.red,\n },\n 'color-space': 'srgb',\n },\n idiom: 'universal',\n },\n ];\n\n if (darkColor) {\n colors.push({\n color: {\n components: {\n alpha: '1.000',\n blue: darkColor.rgb.blue,\n green: darkColor.rgb.green,\n red: darkColor.rgb.red,\n },\n 'color-space': 'srgb',\n },\n idiom: 'universal',\n appearances: [\n {\n appearance: 'luminosity',\n value: 'dark',\n },\n ],\n });\n }\n debug(`create colors contents.json:`, assetPath);\n debug(`use colors:`, colors);\n await writeContentsJsonAsync(assetPath, { colors });\n}\n\nasync function writeContentsJsonAsync(\n directory: string,\n { colors }: { colors: ContentsJsonColor[] }\n): Promise<void> {\n await fs.promises.mkdir(directory, { recursive: true });\n await fs.promises.writeFile(\n join(directory, 'Contents.json'),\n JSON.stringify(\n {\n colors,\n info: {\n version: 1,\n // common practice is for the tool that generated the icons to be the \"author\"\n author: 'expo',\n },\n },\n null,\n 2\n ),\n 'utf8'\n );\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"withIosSplashColors.js","names":["_configPlugins","data","require","_debug","_interopRequireDefault","_fs","_path","_interopRequireWildcard","_InterfaceBuilder","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","debug","Debug","SPLASHSCREEN_COLORSET_PATH","exports","withIosSplashColors","config","splash","withDangerousMod","iosNamedProjectRoot","IOSConfig","Paths","getSourceRoot","modRequest","projectRoot","configureColorAssets","backgroundColor","darkBackgroundColor","dark","colorsetPath","path","resolve","fs","promises","rm","force","recursive","writeColorsContentsJsonFileAsync","assetPath","color","parseColor","darkColor","colors","components","alpha","blue","rgb","green","red","idiom","push","appearances","appearance","value","writeContentsJsonAsync","directory","mkdir","writeFile","join","JSON","stringify","info","version","author"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withIosSplashColors.ts"],"sourcesContent":["import { ConfigPlugin, IOSConfig, withDangerousMod } from '@expo/config-plugins';\nimport Debug from 'debug';\nimport fs from 'fs';\nimport path, { join } from 'path';\n\nimport { parseColor } from './InterfaceBuilder';\nimport { IOSSplashConfig } from './getIosSplashConfig';\nimport { ContentsJsonColor } from '../../icons/AssetContents';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:ios:splash-colorset');\n\nexport const SPLASHSCREEN_COLORSET_PATH = 'Images.xcassets/SplashScreenBackground.colorset';\n\nexport const withIosSplashColors: 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 configureColorAssets({\n iosNamedProjectRoot,\n backgroundColor: splash.backgroundColor,\n darkBackgroundColor: splash.dark?.backgroundColor,\n });\n return config;\n },\n ]);\n};\n\nasync function configureColorAssets({\n iosNamedProjectRoot,\n backgroundColor = '#ffffff',\n darkBackgroundColor,\n}: {\n iosNamedProjectRoot: string;\n backgroundColor: string;\n darkBackgroundColor?: string | null;\n}) {\n const colorsetPath = path.resolve(iosNamedProjectRoot, SPLASHSCREEN_COLORSET_PATH);\n\n // ensure old SplashScreen colorSet is removed\n await fs.promises.rm(colorsetPath, { force: true, recursive: true });\n\n await writeColorsContentsJsonFileAsync({\n assetPath: colorsetPath,\n backgroundColor,\n darkBackgroundColor: darkBackgroundColor ?? null,\n });\n}\n\nasync function writeColorsContentsJsonFileAsync({\n assetPath,\n backgroundColor,\n darkBackgroundColor,\n}: {\n assetPath: string;\n backgroundColor: string;\n darkBackgroundColor: string | null;\n}) {\n const color = parseColor(backgroundColor);\n const darkColor = darkBackgroundColor ? parseColor(darkBackgroundColor) : null;\n\n const colors: ContentsJsonColor[] = [\n {\n color: {\n components: {\n alpha: '1.000',\n blue: color.rgb.blue,\n green: color.rgb.green,\n red: color.rgb.red,\n },\n 'color-space': 'srgb',\n },\n idiom: 'universal',\n },\n ];\n\n if (darkColor) {\n colors.push({\n color: {\n components: {\n alpha: '1.000',\n blue: darkColor.rgb.blue,\n green: darkColor.rgb.green,\n red: darkColor.rgb.red,\n },\n 'color-space': 'srgb',\n },\n idiom: 'universal',\n appearances: [\n {\n appearance: 'luminosity',\n value: 'dark',\n },\n ],\n });\n }\n debug(`create colors contents.json:`, assetPath);\n debug(`use colors:`, colors);\n await writeContentsJsonAsync(assetPath, { colors });\n}\n\nasync function writeContentsJsonAsync(\n directory: string,\n { colors }: { colors: ContentsJsonColor[] }\n): Promise<void> {\n await fs.promises.mkdir(directory, { recursive: true });\n await fs.promises.writeFile(\n join(directory, 'Contents.json'),\n JSON.stringify(\n {\n colors,\n info: {\n version: 1,\n // common practice is for the tool that generated the icons to be the \"author\"\n author: 'expo',\n },\n },\n null,\n 2\n ),\n 'utf8'\n );\n}\n"],"mappings":";;;;AAAA,SAAAA,eAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,cAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,OAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,MAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,IAAA;EAAA,MAAAJ,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAG,GAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,MAAA;EAAA,MAAAL,IAAA,GAAAM,uBAAA,CAAAL,OAAA;EAAAI,KAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAO,kBAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,iBAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAgD,SAAAQ,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAd,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAI,UAAA,GAAAJ,CAAA,KAAAK,OAAA,EAAAL,CAAA;AAIhD,MAAMmB,KAAK,GAAG,IAAAC,gBAAK,EAAC,6DAA6D,CAAC;AAE3E,MAAMC,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,GAAG,iDAAiD;AAEpF,MAAME,mBAAkD,GAAGA,CAACC,MAAM,EAAEC,MAAM,KAAK;EACpF,IAAI,CAACA,MAAM,EAAE;IACX,OAAOD,MAAM;EACf;EACA,OAAO,IAAAE,iCAAgB,EAACF,MAAM,EAAE,CAC9B,KAAK,EACL,MAAOA,MAAM,IAAK;IAChB,MAAMG,mBAAmB,GAAGC,0BAAS,CAACC,KAAK,CAACC,aAAa,CAACN,MAAM,CAACO,UAAU,CAACC,WAAW,CAAC;IAExF,MAAMC,oBAAoB,CAAC;MACzBN,mBAAmB;MACnBO,eAAe,EAAET,MAAM,CAACS,eAAe;MACvCC,mBAAmB,EAAEV,MAAM,CAACW,IAAI,EAAEF;IACpC,CAAC,CAAC;IACF,OAAOV,MAAM;EACf,CAAC,CACF,CAAC;AACJ,CAAC;AAACF,OAAA,CAAAC,mBAAA,GAAAA,mBAAA;AAEF,eAAeU,oBAAoBA,CAAC;EAClCN,mBAAmB;EACnBO,eAAe,GAAG,SAAS;EAC3BC;AAKF,CAAC,EAAE;EACD,MAAME,YAAY,GAAGC,eAAI,CAACC,OAAO,CAACZ,mBAAmB,EAAEN,0BAA0B,CAAC;;EAElF;EACA,MAAMmB,aAAE,CAACC,QAAQ,CAACC,EAAE,CAACL,YAAY,EAAE;IAAEM,KAAK,EAAE,IAAI;IAAEC,SAAS,EAAE;EAAK,CAAC,CAAC;EAEpE,MAAMC,gCAAgC,CAAC;IACrCC,SAAS,EAAET,YAAY;IACvBH,eAAe;IACfC,mBAAmB,EAAEA,mBAAmB,IAAI;EAC9C,CAAC,CAAC;AACJ;AAEA,eAAeU,gCAAgCA,CAAC;EAC9CC,SAAS;EACTZ,eAAe;EACfC;AAKF,CAAC,EAAE;EACD,MAAMY,KAAK,GAAG,IAAAC,8BAAU,EAACd,eAAe,CAAC;EACzC,MAAMe,SAAS,GAAGd,mBAAmB,GAAG,IAAAa,8BAAU,EAACb,mBAAmB,CAAC,GAAG,IAAI;EAE9E,MAAMe,MAA2B,GAAG,CAClC;IACEH,KAAK,EAAE;MACLI,UAAU,EAAE;QACVC,KAAK,EAAE,OAAO;QACdC,IAAI,EAAEN,KAAK,CAACO,GAAG,CAACD,IAAI;QACpBE,KAAK,EAAER,KAAK,CAACO,GAAG,CAACC,KAAK;QACtBC,GAAG,EAAET,KAAK,CAACO,GAAG,CAACE;MACjB,CAAC;MACD,aAAa,EAAE;IACjB,CAAC;IACDC,KAAK,EAAE;EACT,CAAC,CACF;EAED,IAAIR,SAAS,EAAE;IACbC,MAAM,CAACQ,IAAI,CAAC;MACVX,KAAK,EAAE;QACLI,UAAU,EAAE;UACVC,KAAK,EAAE,OAAO;UACdC,IAAI,EAAEJ,SAAS,CAACK,GAAG,CAACD,IAAI;UACxBE,KAAK,EAAEN,SAAS,CAACK,GAAG,CAACC,KAAK;UAC1BC,GAAG,EAAEP,SAAS,CAACK,GAAG,CAACE;QACrB,CAAC;QACD,aAAa,EAAE;MACjB,CAAC;MACDC,KAAK,EAAE,WAAW;MAClBE,WAAW,EAAE,CACX;QACEC,UAAU,EAAE,YAAY;QACxBC,KAAK,EAAE;MACT,CAAC;IAEL,CAAC,CAAC;EACJ;EACA1C,KAAK,CAAC,8BAA8B,EAAE2B,SAAS,CAAC;EAChD3B,KAAK,CAAC,aAAa,EAAE+B,MAAM,CAAC;EAC5B,MAAMY,sBAAsB,CAAChB,SAAS,EAAE;IAAEI;EAAO,CAAC,CAAC;AACrD;AAEA,eAAeY,sBAAsBA,CACnCC,SAAiB,EACjB;EAAEb;AAAwC,CAAC,EAC5B;EACf,MAAMV,aAAE,CAACC,QAAQ,CAACuB,KAAK,CAACD,SAAS,EAAE;IAAEnB,SAAS,EAAE;EAAK,CAAC,CAAC;EACvD,MAAMJ,aAAE,CAACC,QAAQ,CAACwB,SAAS,CACzB,IAAAC,YAAI,EAACH,SAAS,EAAE,eAAe,CAAC,EAChCI,IAAI,CAACC,SAAS,CACZ;IACElB,MAAM;IACNmB,IAAI,EAAE;MACJC,OAAO,EAAE,CAAC;MACV;MACAC,MAAM,EAAE;IACV;EACF,CAAC,EACD,IAAI,EACJ,CACF,CAAC,EACD,MACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withIosSplashInfoPlist.js","names":["_configPlugins","data","require","_debug","_interopRequireDefault","e","__esModule","default","debug","Debug","withIosSplashInfoPlist","config","splash","withInfoPlist","modResults","setSplashInfoPlist","exports","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. 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":["_configPlugins","data","require","_debug","_interopRequireDefault","e","__esModule","default","debug","Debug","withIosSplashInfoPlist","config","splash","withInfoPlist","modResults","setSplashInfoPlist","exports","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. 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,SAAAA,eAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,cAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAE,OAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,MAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0B,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAI1B,MAAMG,KAAK,GAAG,IAAAC,gBAAK,EAAC,uDAAuD,CAAC;AAErE,MAAMC,sBAAqD,GAAGA,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;AAACK,OAAA,CAAAN,sBAAA,GAAAA,sBAAA;AAEK,SAASK,kBAAkBA,CAChCJ,MAAkB,EAClBM,SAAoB,EACpBL,MAAuB,EACZ;EACX,MAAMM,iBAAiB,GAAG,CAAC,EACzBN,MAAM,EAAEO,IAAI,EAAEC,KAAK,IACnBR,MAAM,EAAEO,IAAI,EAAEE,WAAW,IACzBT,MAAM,EAAEO,IAAI,EAAEG,eAAe,IAC7BV,MAAM,EAAEO,IAAI,EAAEI,qBAAqB,CACpC;EACDf,KAAK,CAAC,qBAAqB,EAAEU,iBAAiB,CAAC;EAE/C,IAAIA,iBAAiB,EAAE;IACrB;IACA;IACA,MAAMM,QAAQ,GAAGb,MAAM,CAACc,GAAG,EAAEC,kBAAkB,IAAIf,MAAM,CAACe,kBAAkB;IAC5E;IACA,IAAIF,QAAQ,IAAIA,QAAQ,KAAK,WAAW,EAAE;MACxCG,kCAAiB,CAACC,aAAa,CAC7B,oBAAoB,EACpB,8IACF,CAAC;IACH;IACA;IACAX,SAAS,CAACY,oBAAoB,GAAG,WAAW;EAC9C,CAAC,MAAM;IACL;IACA;IACA;EAAA;EAGF,IAAIjB,MAAM,EAAE;IACV;IACAK,SAAS,CAACa,sBAAsB,GAAG,cAAc;EACnD,CAAC,MAAM;IACLtB,KAAK,CAAC,kCAAkC,CAAC;IACzC,OAAOS,SAAS,CAACa,sBAAsB;EACzC;EAEA,OAAOb,SAAS;AAClB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withIosSplashScreen.js","names":["_configPlugins","data","require","_debug","_interopRequireDefault","_getIosSplashConfig","_withIosSplashAssets","_withIosSplashColors","_withIosSplashInfoPlist","_withIosSplashScreenStoryboard","_withIosSplashScreenStoryboardImage","_withIosSplashXcodeProject","e","__esModule","default","debug","Debug","withIosSplashScreen","config","props","splashConfig","getIosSplashConfig","withPlugins","withIosSplashInfoPlist","withIosSplashAssets","withIosSplashColors","withIosSplashScreenImage","withIosSplashXcodeProject","withIosSplashScreenStoryboardBaseMod","exports"],"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 { withIosSplashColors } from './withIosSplashColors';\nimport { withIosSplashInfoPlist } from './withIosSplashInfoPlist';\nimport { withIosSplashScreenStoryboardBaseMod } from './withIosSplashScreenStoryboard';\nimport { withIosSplashScreenImage } from './withIosSplashScreenStoryboardImage';\nimport { withIosSplashXcodeProject } from './withIosSplashXcodeProject';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:ios');\n\nexport const withIosSplashScreen: ConfigPlugin<IOSSplashConfig | undefined | null | void> = (\n config,\n props\n) => {\n // If the user didn't specify a splash object, infer the splash object from the Expo config.\n const splashConfig = getIosSplashConfig(config, props ?? null);\n\n debug(`config:`, props);\n\n return withPlugins(config, [\n [withIosSplashInfoPlist, splashConfig],\n [withIosSplashAssets, splashConfig],\n [withIosSplashColors, splashConfig],\n // Add the image settings to the storyboard.\n [withIosSplashScreenImage, splashConfig],\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":"
|
|
1
|
+
{"version":3,"file":"withIosSplashScreen.js","names":["_configPlugins","data","require","_debug","_interopRequireDefault","_getIosSplashConfig","_withIosSplashAssets","_withIosSplashColors","_withIosSplashInfoPlist","_withIosSplashScreenStoryboard","_withIosSplashScreenStoryboardImage","_withIosSplashXcodeProject","e","__esModule","default","debug","Debug","withIosSplashScreen","config","props","splashConfig","getIosSplashConfig","withPlugins","withIosSplashInfoPlist","withIosSplashAssets","withIosSplashColors","withIosSplashScreenImage","withIosSplashXcodeProject","withIosSplashScreenStoryboardBaseMod","exports"],"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 { withIosSplashColors } from './withIosSplashColors';\nimport { withIosSplashInfoPlist } from './withIosSplashInfoPlist';\nimport { withIosSplashScreenStoryboardBaseMod } from './withIosSplashScreenStoryboard';\nimport { withIosSplashScreenImage } from './withIosSplashScreenStoryboardImage';\nimport { withIosSplashXcodeProject } from './withIosSplashXcodeProject';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:ios');\n\nexport const withIosSplashScreen: ConfigPlugin<IOSSplashConfig | undefined | null | void> = (\n config,\n props\n) => {\n // If the user didn't specify a splash object, infer the splash object from the Expo config.\n const splashConfig = getIosSplashConfig(config, props ?? null);\n\n debug(`config:`, props);\n\n return withPlugins(config, [\n [withIosSplashInfoPlist, splashConfig],\n [withIosSplashAssets, splashConfig],\n [withIosSplashColors, splashConfig],\n // Add the image settings to the storyboard.\n [withIosSplashScreenImage, splashConfig],\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,SAAAA,eAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,cAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,OAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,MAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,oBAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,mBAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,qBAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,oBAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,qBAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,oBAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,wBAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,uBAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,+BAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,8BAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,oCAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,mCAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,2BAAA;EAAA,MAAAV,IAAA,GAAAC,OAAA;EAAAS,0BAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAwE,SAAAG,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAExE,MAAMG,KAAK,GAAG,IAAAC,gBAAK,EAAC,6CAA6C,CAAC;AAE3D,MAAMC,mBAA4E,GAAGA,CAC1FC,MAAM,EACNC,KAAK,KACF;EACH;EACA,MAAMC,YAAY,GAAG,IAAAC,wCAAkB,EAACH,MAAM,EAAEC,KAAK,IAAI,IAAI,CAAC;EAE9DJ,KAAK,CAAC,SAAS,EAAEI,KAAK,CAAC;EAEvB,OAAO,IAAAG,4BAAW,EAACJ,MAAM,EAAE,CACzB,CAACK,gDAAsB,EAAEH,YAAY,CAAC,EACtC,CAACI,0CAAmB,EAAEJ,YAAY,CAAC,EACnC,CAACK,0CAAmB,EAAEL,YAAY,CAAC;EACnC;EACA,CAACM,8DAAwB,EAAEN,YAAY,CAAC;EACxC;EACA;EACAO,sDAAyB;EACzB;EACAC,qEAAoC,CACrC,CAAC;AACJ,CAAC;AAACC,OAAA,CAAAZ,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
3
|
+
exports.__esModule = true;
|
|
6
4
|
exports.STORYBOARD_FILE_PATH = void 0;
|
|
7
5
|
exports.getTemplateAsync = getTemplateAsync;
|
|
8
6
|
exports.withIosSplashScreenStoryboardBaseMod = exports.withIosSplashScreenStoryboard = void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withIosSplashScreenStoryboard.js","names":["_configPlugins","data","require","fs","_interopRequireWildcard","path","_xml2js","_InterfaceBuilder","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","STORYBOARD_FILE_PATH","exports","STORYBOARD_MOD_NAME","withIosSplashScreenStoryboard","config","action","withMod","platform","mod","withIosSplashScreenStoryboardBaseMod","BaseMods","withGeneratedBaseMods","saveToInternal","skipEmptyMod","providers","provider","isIntrospective","getFilePath","modRequest","join","platformProjectRoot","projectName","read","filePath","contents","promises","readFile","xml","Parser","parseStringPromise","getTemplateAsync","write","modResults","introspect","writeFile","toString"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withIosSplashScreenStoryboard.ts"],"sourcesContent":["import { BaseMods, ConfigPlugin, Mod, withMod } from '@expo/config-plugins';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { Parser } from 'xml2js';\n\nimport { IBSplashScreenDocument, toString } from './InterfaceBuilder';\n\nexport const STORYBOARD_FILE_PATH = './SplashScreen.storyboard';\n\nconst STORYBOARD_MOD_NAME = 'splashScreenStoryboard';\n\n/**\n * Provides the SplashScreen `.storyboard` xml data for modification.\n *\n * @param config\n * @param action\n */\nexport const withIosSplashScreenStoryboard: ConfigPlugin<Mod<IBSplashScreenDocument>> = (\n config,\n action\n) => {\n return withMod(config, {\n platform: 'ios',\n mod: STORYBOARD_MOD_NAME,\n action,\n });\n};\n\n/** Append a custom rule to supply SplashScreen `.storyboard` xml data to mods on `mods.ios.splashScreenStoryboard` */\nexport const withIosSplashScreenStoryboardBaseMod: ConfigPlugin = (config) => {\n return BaseMods.withGeneratedBaseMods(config, {\n platform: 'ios',\n saveToInternal: true,\n skipEmptyMod: false,\n providers: {\n // Append a custom rule to supply .storyboard xml data to mods on `mods.ios.splashScreenStoryboard`\n [STORYBOARD_MOD_NAME]: BaseMods.provider<IBSplashScreenDocument>({\n isIntrospective: true,\n async getFilePath({ modRequest }) {\n //: [root]/myapp/ios/MyApp/SplashScreen.storyboard\n return path.join(\n //: myapp/ios\n modRequest.platformProjectRoot,\n // ./MyApp\n modRequest.projectName!,\n // ./SplashScreen.storyboard\n STORYBOARD_FILE_PATH\n );\n },\n async read(filePath) {\n try {\n const contents = await fs.promises.readFile(filePath, 'utf8');\n const xml = await new Parser().parseStringPromise(contents);\n return xml;\n } catch {\n return getTemplateAsync();\n }\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) {\n return;\n }\n await fs.promises.writeFile(filePath, toString(modResults));\n },\n }),\n },\n });\n};\n\n/** Get a template splash screen storyboard file. */\nexport async function getTemplateAsync(): Promise<IBSplashScreenDocument> {\n const contents = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"32700.99.1234\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\" initialViewController=\"EXPO-VIEWCONTROLLER-1\">\n <device id=\"retina6_12\" orientation=\"portrait\" appearance=\"light\"/>\n <dependencies>\n <deployment identifier=\"iOS\"/>\n <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"22685\"/>\n <capability name=\"Safe area layout guides\" minToolsVersion=\"9.0\"/>\n <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n </dependencies>\n <scenes>\n <!--View Controller-->\n <scene sceneID=\"EXPO-SCENE-1\">\n <objects>\n <viewController storyboardIdentifier=\"SplashScreenViewController\" id=\"EXPO-VIEWCONTROLLER-1\" sceneMemberID=\"viewController\">\n <view key=\"view\" userInteractionEnabled=\"NO\" contentMode=\"scaleToFill\" insetsLayoutMarginsFromSafeArea=\"NO\" id=\"EXPO-ContainerView\" userLabel=\"ContainerView\">\n <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"393\" height=\"852\"/>\n <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMaxY=\"YES\"/>\n <subviews>\n <imageView clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"scaleAspectFit\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" image=\"SplashScreen\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"EXPO-SplashScreen\" userLabel=\"SplashScreen\">\n <rect key=\"frame\" x=\"146.66666666666666\" y=\"381\" width=\"100\" height=\"90.333333333333314\"/>\n </imageView>\n </subviews>\n <viewLayoutGuide key=\"safeArea\" id=\"Rmq-lb-GrQ\"/>\n <constraints>\n <constraint firstItem=\"EXPO-SplashScreen\" firstAttribute=\"centerY\" secondItem=\"EXPO-ContainerView\" secondAttribute=\"centerY\" id=\"0VC-Wk-OaO\"/>\n <constraint firstItem=\"EXPO-SplashScreen\" firstAttribute=\"centerX\" secondItem=\"EXPO-ContainerView\" secondAttribute=\"centerX\" id=\"zR4-NK-mVN\"/>\n </constraints>\n <color key=\"backgroundColor\" name=\"SplashScreenBackground\"/>\n </view>\n </viewController>\n <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"EXPO-PLACEHOLDER-1\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n </objects>\n <point key=\"canvasLocation\" x=\"140.625\" y=\"129.4921875\"/>\n </scene>\n </scenes>\n <resources>\n <image name=\"SplashScreenLogo\" width=\"100\" height=\"90.333335876464844\"/>\n <namedColor name=\"SplashScreenBackground\">\n <color alpha=\"1.000\" blue=\"1.00000000000000\" green=\"1.00000000000000\" red=\"1.00000000000000\" customColorSpace=\"sRGB\" colorSpace=\"custom\"/>\n </namedColor>\n </resources>\n </document>`;\n return await new Parser().parseStringPromise(contents);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"withIosSplashScreenStoryboard.js","names":["_configPlugins","data","require","fs","_interopRequireWildcard","path","_xml2js","_InterfaceBuilder","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","STORYBOARD_FILE_PATH","exports","STORYBOARD_MOD_NAME","withIosSplashScreenStoryboard","config","action","withMod","platform","mod","withIosSplashScreenStoryboardBaseMod","BaseMods","withGeneratedBaseMods","saveToInternal","skipEmptyMod","providers","provider","isIntrospective","getFilePath","modRequest","join","platformProjectRoot","projectName","read","filePath","contents","promises","readFile","xml","Parser","parseStringPromise","getTemplateAsync","write","modResults","introspect","writeFile","toString"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withIosSplashScreenStoryboard.ts"],"sourcesContent":["import { BaseMods, ConfigPlugin, Mod, withMod } from '@expo/config-plugins';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { Parser } from 'xml2js';\n\nimport { IBSplashScreenDocument, toString } from './InterfaceBuilder';\n\nexport const STORYBOARD_FILE_PATH = './SplashScreen.storyboard';\n\nconst STORYBOARD_MOD_NAME = 'splashScreenStoryboard';\n\n/**\n * Provides the SplashScreen `.storyboard` xml data for modification.\n *\n * @param config\n * @param action\n */\nexport const withIosSplashScreenStoryboard: ConfigPlugin<Mod<IBSplashScreenDocument>> = (\n config,\n action\n) => {\n return withMod(config, {\n platform: 'ios',\n mod: STORYBOARD_MOD_NAME,\n action,\n });\n};\n\n/** Append a custom rule to supply SplashScreen `.storyboard` xml data to mods on `mods.ios.splashScreenStoryboard` */\nexport const withIosSplashScreenStoryboardBaseMod: ConfigPlugin = (config) => {\n return BaseMods.withGeneratedBaseMods(config, {\n platform: 'ios',\n saveToInternal: true,\n skipEmptyMod: false,\n providers: {\n // Append a custom rule to supply .storyboard xml data to mods on `mods.ios.splashScreenStoryboard`\n [STORYBOARD_MOD_NAME]: BaseMods.provider<IBSplashScreenDocument>({\n isIntrospective: true,\n async getFilePath({ modRequest }) {\n //: [root]/myapp/ios/MyApp/SplashScreen.storyboard\n return path.join(\n //: myapp/ios\n modRequest.platformProjectRoot,\n // ./MyApp\n modRequest.projectName!,\n // ./SplashScreen.storyboard\n STORYBOARD_FILE_PATH\n );\n },\n async read(filePath) {\n try {\n const contents = await fs.promises.readFile(filePath, 'utf8');\n const xml = await new Parser().parseStringPromise(contents);\n return xml;\n } catch {\n return getTemplateAsync();\n }\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) {\n return;\n }\n await fs.promises.writeFile(filePath, toString(modResults));\n },\n }),\n },\n });\n};\n\n/** Get a template splash screen storyboard file. */\nexport async function getTemplateAsync(): Promise<IBSplashScreenDocument> {\n const contents = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"32700.99.1234\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\" initialViewController=\"EXPO-VIEWCONTROLLER-1\">\n <device id=\"retina6_12\" orientation=\"portrait\" appearance=\"light\"/>\n <dependencies>\n <deployment identifier=\"iOS\"/>\n <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"22685\"/>\n <capability name=\"Safe area layout guides\" minToolsVersion=\"9.0\"/>\n <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n </dependencies>\n <scenes>\n <!--View Controller-->\n <scene sceneID=\"EXPO-SCENE-1\">\n <objects>\n <viewController storyboardIdentifier=\"SplashScreenViewController\" id=\"EXPO-VIEWCONTROLLER-1\" sceneMemberID=\"viewController\">\n <view key=\"view\" userInteractionEnabled=\"NO\" contentMode=\"scaleToFill\" insetsLayoutMarginsFromSafeArea=\"NO\" id=\"EXPO-ContainerView\" userLabel=\"ContainerView\">\n <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"393\" height=\"852\"/>\n <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMaxY=\"YES\"/>\n <subviews>\n <imageView clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"scaleAspectFit\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" image=\"SplashScreen\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"EXPO-SplashScreen\" userLabel=\"SplashScreen\">\n <rect key=\"frame\" x=\"146.66666666666666\" y=\"381\" width=\"100\" height=\"90.333333333333314\"/>\n </imageView>\n </subviews>\n <viewLayoutGuide key=\"safeArea\" id=\"Rmq-lb-GrQ\"/>\n <constraints>\n <constraint firstItem=\"EXPO-SplashScreen\" firstAttribute=\"centerY\" secondItem=\"EXPO-ContainerView\" secondAttribute=\"centerY\" id=\"0VC-Wk-OaO\"/>\n <constraint firstItem=\"EXPO-SplashScreen\" firstAttribute=\"centerX\" secondItem=\"EXPO-ContainerView\" secondAttribute=\"centerX\" id=\"zR4-NK-mVN\"/>\n </constraints>\n <color key=\"backgroundColor\" name=\"SplashScreenBackground\"/>\n </view>\n </viewController>\n <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"EXPO-PLACEHOLDER-1\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n </objects>\n <point key=\"canvasLocation\" x=\"140.625\" y=\"129.4921875\"/>\n </scene>\n </scenes>\n <resources>\n <image name=\"SplashScreenLogo\" width=\"100\" height=\"90.333335876464844\"/>\n <namedColor name=\"SplashScreenBackground\">\n <color alpha=\"1.000\" blue=\"1.00000000000000\" green=\"1.00000000000000\" red=\"1.00000000000000\" customColorSpace=\"sRGB\" colorSpace=\"custom\"/>\n </namedColor>\n </resources>\n </document>`;\n return await new Parser().parseStringPromise(contents);\n}\n"],"mappings":"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","ignoreList":[]}
|