@expo/prebuild-config 6.0.1 → 6.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/build/getAutolinkedPackages.js.map +1 -1
  2. package/build/getPrebuildConfig.js.map +1 -1
  3. package/build/importExpoModulesAutolinking.js.map +1 -1
  4. package/build/index.js.map +1 -1
  5. package/build/plugins/icons/AssetContents.js.map +1 -1
  6. package/build/plugins/icons/withAndroidIcons.js.map +1 -1
  7. package/build/plugins/icons/withAndroidManifestIcons.js.map +1 -1
  8. package/build/plugins/icons/withIosIcons.js.map +1 -1
  9. package/build/plugins/unversioned/createLegacyPlugin.js.map +1 -1
  10. package/build/plugins/unversioned/expo-ads-admob/expo-ads-admob.js.map +1 -1
  11. package/build/plugins/unversioned/expo-ads-admob/withAndroidAdMob.js.map +1 -1
  12. package/build/plugins/unversioned/expo-ads-admob/withIosAdMob.js.map +1 -1
  13. package/build/plugins/unversioned/expo-apple-authentication.js.map +1 -1
  14. package/build/plugins/unversioned/expo-branch/expo-branch.js.map +1 -1
  15. package/build/plugins/unversioned/expo-branch/withAndroidBranch.js.map +1 -1
  16. package/build/plugins/unversioned/expo-branch/withIosBranch.js.map +1 -1
  17. package/build/plugins/unversioned/expo-contacts.js.map +1 -1
  18. package/build/plugins/unversioned/expo-document-picker.js.map +1 -1
  19. package/build/plugins/unversioned/expo-navigation-bar/expo-navigation-bar.js.map +1 -1
  20. package/build/plugins/unversioned/expo-navigation-bar/withAndroidNavigationBar.js.map +1 -1
  21. package/build/plugins/unversioned/expo-notifications/expo-notifications.js.map +1 -1
  22. package/build/plugins/unversioned/expo-notifications/withAndroidNotifications.js.map +1 -1
  23. package/build/plugins/unversioned/expo-splash-screen/InterfaceBuilder.js.map +1 -1
  24. package/build/plugins/unversioned/expo-splash-screen/expo-splash-screen.js.map +1 -1
  25. package/build/plugins/unversioned/expo-splash-screen/getAndroidSplashConfig.js.map +1 -1
  26. package/build/plugins/unversioned/expo-splash-screen/getIosSplashConfig.js.map +1 -1
  27. package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashDrawables.js.map +1 -1
  28. package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashImages.js.map +1 -1
  29. package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashLegacyMainActivity.js.map +1 -1
  30. package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashScreen.js.map +1 -1
  31. package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashStrings.js.map +1 -1
  32. package/build/plugins/unversioned/expo-splash-screen/withAndroidSplashStyles.js.map +1 -1
  33. package/build/plugins/unversioned/expo-splash-screen/withIosSplashAssets.js.map +1 -1
  34. package/build/plugins/unversioned/expo-splash-screen/withIosSplashInfoPlist.js.map +1 -1
  35. package/build/plugins/unversioned/expo-splash-screen/withIosSplashScreen.js.map +1 -1
  36. package/build/plugins/unversioned/expo-splash-screen/withIosSplashScreenStoryboard.js.map +1 -1
  37. package/build/plugins/unversioned/expo-splash-screen/withIosSplashXcodeProject.js.map +1 -1
  38. package/build/plugins/unversioned/expo-splash-screen/wtihIosSplashScreenStoryboardImage.js.map +1 -1
  39. package/build/plugins/unversioned/expo-system-ui/expo-system-ui.js.map +1 -1
  40. package/build/plugins/unversioned/expo-system-ui/withAndroidRootViewBackgroundColor.js.map +1 -1
  41. package/build/plugins/unversioned/expo-system-ui/withAndroidUserInterfaceStyle.js.map +1 -1
  42. package/build/plugins/unversioned/expo-system-ui/withIosRootViewBackgroundColor.js.map +1 -1
  43. package/build/plugins/unversioned/expo-system-ui/withIosUserInterfaceStyle.js.map +1 -1
  44. package/build/plugins/unversioned/expo-updates.js.map +1 -1
  45. package/build/plugins/unversioned/react-native-maps.js.map +1 -1
  46. package/build/plugins/withDefaultPlugins.js.map +1 -1
  47. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"InterfaceBuilder.js","names":["debug","require","createConstraint","firstItem","firstAttribute","secondItem","secondAttribute","constant","$","id","createConstraintId","attributes","crypto","createHash","update","join","digest","IMAGE_ID","CONTAINER_ID","removeImageFromSplashScreen","xml","imageName","mainView","document","scenes","scene","objects","viewController","view","removeExisting","subviews","imageView","getAbsoluteConstraints","forEach","constraint","constrainsArray","constraints","imageSection","resources","image","existingImageIndex","findIndex","name","splice","childId","parentId","applyImageToSplashScreenXML","contentMode","width","height","userLabel","horizontalHuggingPriority","verticalHuggingPriority","clipsSubviews","userInteractionEnabled","translatesAutoresizingMaskIntoConstraints","rect","key","x","y","ensureUniquePush","push","array","item","existingItem","toString","builder","Builder","preserveChildrenOrder","xmldec","version","encoding","renderOpts","pretty","indent","buildObject","toObjectAsync","contents","Parser","parseStringPromise"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/InterfaceBuilder.ts"],"sourcesContent":["import crypto from 'crypto';\nimport { Builder, Parser } from 'xml2js';\n\nconst debug = require('debug')(\n 'expo:prebuild-config:expo-splash-screen:ios:InterfaceBuilder'\n) as typeof console.log;\n\nexport type IBBoolean = 'YES' | 'NO' | boolean;\n\nexport type IBItem<\n H extends Record<string, any>,\n B extends Record<string, any[]> = { [key: string]: any }\n> = {\n $: H;\n} & B;\n\nexport type Rect = {\n key: string;\n x: number;\n y: number;\n width: number;\n height: number;\n};\n\nexport type IBRect = IBItem<Rect>;\n\nexport type IBAutoresizingMask = IBItem<{\n /** @example `autoresizingMask` */\n key: string;\n flexibleMaxX: IBBoolean;\n flexibleMaxY: IBBoolean;\n}>;\n\n/** @example `<color key=\"textColor\" systemColor=\"linkColor\"/>` */\nexport type IBColor = IBItem<\n {\n /** @example `textColor` */\n key: string;\n } & (\n | /** Custom color */\n {\n /** @example `0.86584504117670746` */\n red: number;\n /** @example `0.26445041990630447` */\n green: number;\n /** @example `0.3248577810203549` */\n blue: number;\n /** @example `1` */\n alpha: number;\n colorSpace: 'custom' | string;\n customColorSpace: 'displayP3' | 'sRGB' | string;\n }\n /** Built-in color */\n | {\n systemColor: 'linkColor' | string;\n }\n )\n>;\n\nexport type IBFontDescription = IBItem<{\n /** @example `fontDescription` */\n key: string;\n /** Font size */\n pointSize: number;\n\n /** Custom font */\n name?: 'HelveticaNeue' | string;\n family?: 'Helvetica Neue' | string;\n\n /** Built-in font */\n type?: 'system' | 'boldSystem' | 'UICTFontTextStyleCallout' | 'UICTFontTextStyleBody' | string;\n}>;\n\nexport type ImageContentMode = 'scaleAspectFit' | 'scaleAspectFill';\n\nexport type ConstraintAttribute = 'top' | 'bottom' | 'trailing' | 'leading';\n\nexport type IBImageView = IBItem<\n {\n id: string;\n userLabel: string;\n image: string;\n clipsSubviews?: IBBoolean;\n userInteractionEnabled: IBBoolean;\n contentMode: IBContentMode;\n horizontalHuggingPriority: number;\n verticalHuggingPriority: number;\n insetsLayoutMarginsFromSafeArea?: IBBoolean;\n translatesAutoresizingMaskIntoConstraints?: IBBoolean;\n },\n {\n rect: IBRect[];\n }\n>;\n\nexport type IBLabel = IBItem<\n {\n id: string;\n /** The main value. */\n text: string;\n\n opaque: IBBoolean;\n fixedFrame: IBBoolean;\n textAlignment?: IBTextAlignment;\n lineBreakMode:\n | 'clip'\n | 'characterWrap'\n | 'wordWrap'\n | 'headTruncation'\n | 'middleTruncation'\n | 'tailTruncation';\n baselineAdjustment?: 'none' | 'alignBaselines';\n adjustsFontSizeToFit: IBBoolean;\n userInteractionEnabled: IBBoolean;\n contentMode: IBContentMode;\n horizontalHuggingPriority: number;\n verticalHuggingPriority: number;\n translatesAutoresizingMaskIntoConstraints?: IBBoolean;\n },\n {\n /** @example `<rect key=\"frame\" x=\"175\" y=\"670\" width=\"35\" height=\"17\"/>` */\n rect: IBRect[];\n /** @example `<autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMaxY=\"YES\"/>` */\n autoresizingMask?: IBAutoresizingMask[];\n /** @example `<fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"19\"/>` */\n fontDescription?: IBFontDescription[];\n /** @example `<color key=\"textColor\" red=\"0.0\" green=\"0.0\" blue=\"0.0\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>` */\n color?: IBColor[];\n nil?: IBItem<{\n /** @example `textColor` `highlightedColor` */\n key: string;\n }>[];\n }\n>;\n\nexport type IBTextAlignment = 'left' | 'center' | 'right' | 'justified' | 'natural';\n\nexport type IBContentMode = string | 'left' | 'scaleAspectFill';\n\nexport type IBConstraint = IBItem<{\n firstItem: string;\n firstAttribute: ConstraintAttribute;\n secondItem: string;\n secondAttribute: ConstraintAttribute;\n constant?: number;\n id: string;\n}>;\n\nexport type IBViewController = IBItem<\n {\n id: string;\n placeholderIdentifier?: string;\n userLabel: string;\n sceneMemberID: string;\n },\n {\n view: IBItem<\n {\n id: string;\n key: string;\n userInteractionEnabled: IBBoolean;\n contentMode: string | 'scaleToFill';\n insetsLayoutMarginsFromSafeArea: IBBoolean;\n userLabel: string;\n },\n {\n rect: IBRect[];\n autoresizingMask: IBItem<{\n key: string;\n flexibleMaxX: IBBoolean;\n flexibleMaxY: IBBoolean;\n }>[];\n\n subviews: IBItem<\n object,\n {\n imageView: IBImageView[];\n label: IBLabel[];\n }\n >[];\n color: IBItem<{\n key: string | 'backgroundColor';\n systemColor: string | 'systemBackgroundColor';\n }>[];\n constraints: IBItem<\n object,\n {\n constraint: IBConstraint[];\n }\n >[];\n viewLayoutGuide: IBItem<{\n id: string;\n key: string | 'safeArea';\n }>[];\n }\n >[];\n }\n>;\n\nexport type IBPoint = IBItem<{\n key: string | 'canvasLocation';\n x: number;\n y: number;\n}>;\n\nexport type IBScene = IBItem<\n { sceneID: string },\n {\n objects: {\n viewController: IBViewController[];\n placeholder: IBItem<{\n id: string;\n placeholderIdentifier?: string;\n userLabel: string;\n sceneMemberID: string;\n }>[];\n }[];\n point: IBPoint[];\n }\n>;\n\nexport type IBResourceImage = IBItem<{\n name: string;\n width: number;\n height: number;\n}>;\n\nexport type IBDevice = IBItem<{\n id: string;\n orientation: string | 'portrait';\n appearance: string | 'light';\n}>;\n\nexport type IBSplashScreenDocument = {\n document: IBItem<\n {\n type: 'com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB' | string;\n version: '3.0' | string;\n toolsVersion: number;\n targetRuntime: 'iOS.CocoaTouch' | string;\n propertyAccessControl: 'none' | string;\n useAutolayout: IBBoolean;\n launchScreen: IBBoolean;\n useTraitCollections: IBBoolean;\n useSafeAreas: IBBoolean;\n colorMatched: IBBoolean;\n initialViewController: string;\n },\n {\n device: IBDevice[];\n dependencies: unknown[];\n scenes: {\n scene: IBScene[];\n }[];\n resources: {\n image: IBResourceImage[];\n }[];\n }\n >;\n};\n\nexport function createConstraint(\n [firstItem, firstAttribute]: [string, ConstraintAttribute],\n [secondItem, secondAttribute]: [string, ConstraintAttribute],\n constant?: number\n): IBConstraint {\n return {\n $: {\n firstItem,\n firstAttribute,\n secondItem,\n secondAttribute,\n constant,\n // Prevent updating between runs\n id: createConstraintId(firstItem, firstAttribute, secondItem, secondAttribute),\n },\n };\n}\n\nexport function createConstraintId(...attributes: string[]) {\n return crypto.createHash('sha1').update(attributes.join('-')).digest('hex');\n}\n\nconst IMAGE_ID = 'EXPO-SplashScreen';\nconst CONTAINER_ID = 'EXPO-ContainerView';\n\nexport function removeImageFromSplashScreen(\n xml: IBSplashScreenDocument,\n { imageName }: { imageName: string }\n) {\n const mainView = xml.document.scenes[0].scene[0].objects[0].viewController[0].view[0];\n\n debug(`Remove all splash screen image elements`);\n\n removeExisting(mainView.subviews[0].imageView, IMAGE_ID);\n\n // Add Constraints\n getAbsoluteConstraints(IMAGE_ID, CONTAINER_ID).forEach((constraint) => {\n // <constraint firstItem=\"EXPO-SplashScreen\" firstAttribute=\"top\" secondItem=\"EXPO-ContainerView\" secondAttribute=\"top\" id=\"2VS-Uz-0LU\"/>\n const constrainsArray = mainView.constraints[0].constraint;\n removeExisting(constrainsArray, constraint);\n });\n\n // Add resource\n const imageSection = xml.document.resources[0].image;\n\n const existingImageIndex = imageSection.findIndex((image) => image.$.name === imageName);\n if (existingImageIndex > -1) {\n imageSection.splice(existingImageIndex, 1);\n }\n return xml;\n}\n\nfunction getAbsoluteConstraints(childId: string, parentId: string) {\n return [\n createConstraint([childId, 'top'], [parentId, 'top']),\n createConstraint([childId, 'leading'], [parentId, 'leading']),\n createConstraint([childId, 'trailing'], [parentId, 'trailing']),\n createConstraint([childId, 'bottom'], [parentId, 'bottom']),\n ];\n}\n\nexport function applyImageToSplashScreenXML(\n xml: IBSplashScreenDocument,\n {\n imageName,\n contentMode,\n }: {\n imageName: string;\n contentMode: ImageContentMode;\n }\n): IBSplashScreenDocument {\n const width = 414;\n const height = 736;\n\n const imageView: IBImageView = {\n $: {\n id: IMAGE_ID,\n userLabel: imageName,\n image: imageName,\n contentMode,\n horizontalHuggingPriority: 251,\n verticalHuggingPriority: 251,\n clipsSubviews: true,\n userInteractionEnabled: false,\n translatesAutoresizingMaskIntoConstraints: false,\n },\n rect: [\n {\n $: {\n key: 'frame',\n x: 0.0,\n y: 0.0,\n width,\n height,\n },\n },\n ],\n };\n\n const mainView = xml.document.scenes[0].scene[0].objects[0].viewController[0].view[0];\n\n // Add ImageView\n ensureUniquePush(mainView.subviews[0].imageView, imageView);\n\n // Add Constraints\n getAbsoluteConstraints(IMAGE_ID, CONTAINER_ID).forEach((constraint) => {\n // <constraint firstItem=\"EXPO-SplashScreen\" firstAttribute=\"top\" secondItem=\"EXPO-ContainerView\" secondAttribute=\"top\" id=\"2VS-Uz-0LU\"/>\n const constrainsArray = mainView.constraints[0].constraint;\n ensureUniquePush(constrainsArray, constraint);\n });\n\n // Add resource\n const imageSection = xml.document.resources[0].image;\n\n const existingImageIndex = imageSection.findIndex((image) => image.$.name === imageName);\n if (existingImageIndex > -1) {\n debug(`Removing existing IB image asset at index ${existingImageIndex}`);\n imageSection.splice(existingImageIndex, 1);\n }\n imageSection.push({\n // <image name=\"SplashScreen\" width=\"414\" height=\"736\"/>\n $: {\n name: imageName,\n width,\n height,\n },\n });\n\n return xml;\n}\n\n/**\n * IB does not allow two items to have the same ID.\n * This method will add an item by first removing any existing item with the same `$.id`.\n */\nexport function ensureUniquePush<TItem extends { $: { id: string } }>(array: TItem[], item: TItem) {\n if (!array) return array;\n removeExisting(array, item);\n array.push(item);\n return array;\n}\n\nexport function removeExisting<TItem extends { $: { id: string } }>(\n array: TItem[],\n item: TItem | string\n) {\n const id = typeof item === 'string' ? item : item.$?.id;\n const existingItem = array?.findIndex((existingItem) => existingItem.$.id === id);\n if (existingItem > -1) {\n debug(`Removing existing IB item with id ${id}, from: %O`, array);\n array.splice(existingItem, 1);\n }\n return array;\n}\n\n// Attempt to copy Xcode formatting.\nexport function toString(xml: any): string {\n const builder = new Builder({\n // @ts-expect-error: untyped\n preserveChildrenOrder: true,\n xmldec: {\n version: '1.0',\n encoding: 'UTF-8',\n },\n renderOpts: {\n pretty: true,\n indent: ' ',\n },\n });\n return builder.buildObject(xml);\n}\n\n/** Parse string contents into an object. */\nexport function toObjectAsync(contents: string) {\n return new Parser().parseStringPromise(contents);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"InterfaceBuilder.js","names":["_crypto","data","_interopRequireDefault","require","_xml2js","obj","__esModule","default","debug","createConstraint","firstItem","firstAttribute","secondItem","secondAttribute","constant","$","id","createConstraintId","attributes","crypto","createHash","update","join","digest","IMAGE_ID","CONTAINER_ID","removeImageFromSplashScreen","xml","imageName","mainView","document","scenes","scene","objects","viewController","view","removeExisting","subviews","imageView","getAbsoluteConstraints","forEach","constraint","constrainsArray","constraints","imageSection","resources","image","existingImageIndex","findIndex","name","splice","childId","parentId","applyImageToSplashScreenXML","contentMode","width","height","userLabel","horizontalHuggingPriority","verticalHuggingPriority","clipsSubviews","userInteractionEnabled","translatesAutoresizingMaskIntoConstraints","rect","key","x","y","ensureUniquePush","push","array","item","_item$$","existingItem","toString","builder","Builder","preserveChildrenOrder","xmldec","version","encoding","renderOpts","pretty","indent","buildObject","toObjectAsync","contents","Parser","parseStringPromise"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/InterfaceBuilder.ts"],"sourcesContent":["import crypto from 'crypto';\nimport { Builder, Parser } from 'xml2js';\n\nconst debug = require('debug')(\n 'expo:prebuild-config:expo-splash-screen:ios:InterfaceBuilder'\n) as typeof console.log;\n\nexport type IBBoolean = 'YES' | 'NO' | boolean;\n\nexport type IBItem<\n H extends Record<string, any>,\n B extends Record<string, any[]> = { [key: string]: any }\n> = {\n $: H;\n} & B;\n\nexport type Rect = {\n key: string;\n x: number;\n y: number;\n width: number;\n height: number;\n};\n\nexport type IBRect = IBItem<Rect>;\n\nexport type IBAutoresizingMask = IBItem<{\n /** @example `autoresizingMask` */\n key: string;\n flexibleMaxX: IBBoolean;\n flexibleMaxY: IBBoolean;\n}>;\n\n/** @example `<color key=\"textColor\" systemColor=\"linkColor\"/>` */\nexport type IBColor = IBItem<\n {\n /** @example `textColor` */\n key: string;\n } & (\n | /** Custom color */\n {\n /** @example `0.86584504117670746` */\n red: number;\n /** @example `0.26445041990630447` */\n green: number;\n /** @example `0.3248577810203549` */\n blue: number;\n /** @example `1` */\n alpha: number;\n colorSpace: 'custom' | string;\n customColorSpace: 'displayP3' | 'sRGB' | string;\n }\n /** Built-in color */\n | {\n systemColor: 'linkColor' | string;\n }\n )\n>;\n\nexport type IBFontDescription = IBItem<{\n /** @example `fontDescription` */\n key: string;\n /** Font size */\n pointSize: number;\n\n /** Custom font */\n name?: 'HelveticaNeue' | string;\n family?: 'Helvetica Neue' | string;\n\n /** Built-in font */\n type?: 'system' | 'boldSystem' | 'UICTFontTextStyleCallout' | 'UICTFontTextStyleBody' | string;\n}>;\n\nexport type ImageContentMode = 'scaleAspectFit' | 'scaleAspectFill';\n\nexport type ConstraintAttribute = 'top' | 'bottom' | 'trailing' | 'leading';\n\nexport type IBImageView = IBItem<\n {\n id: string;\n userLabel: string;\n image: string;\n clipsSubviews?: IBBoolean;\n userInteractionEnabled: IBBoolean;\n contentMode: IBContentMode;\n horizontalHuggingPriority: number;\n verticalHuggingPriority: number;\n insetsLayoutMarginsFromSafeArea?: IBBoolean;\n translatesAutoresizingMaskIntoConstraints?: IBBoolean;\n },\n {\n rect: IBRect[];\n }\n>;\n\nexport type IBLabel = IBItem<\n {\n id: string;\n /** The main value. */\n text: string;\n\n opaque: IBBoolean;\n fixedFrame: IBBoolean;\n textAlignment?: IBTextAlignment;\n lineBreakMode:\n | 'clip'\n | 'characterWrap'\n | 'wordWrap'\n | 'headTruncation'\n | 'middleTruncation'\n | 'tailTruncation';\n baselineAdjustment?: 'none' | 'alignBaselines';\n adjustsFontSizeToFit: IBBoolean;\n userInteractionEnabled: IBBoolean;\n contentMode: IBContentMode;\n horizontalHuggingPriority: number;\n verticalHuggingPriority: number;\n translatesAutoresizingMaskIntoConstraints?: IBBoolean;\n },\n {\n /** @example `<rect key=\"frame\" x=\"175\" y=\"670\" width=\"35\" height=\"17\"/>` */\n rect: IBRect[];\n /** @example `<autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMaxY=\"YES\"/>` */\n autoresizingMask?: IBAutoresizingMask[];\n /** @example `<fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"19\"/>` */\n fontDescription?: IBFontDescription[];\n /** @example `<color key=\"textColor\" red=\"0.0\" green=\"0.0\" blue=\"0.0\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>` */\n color?: IBColor[];\n nil?: IBItem<{\n /** @example `textColor` `highlightedColor` */\n key: string;\n }>[];\n }\n>;\n\nexport type IBTextAlignment = 'left' | 'center' | 'right' | 'justified' | 'natural';\n\nexport type IBContentMode = string | 'left' | 'scaleAspectFill';\n\nexport type IBConstraint = IBItem<{\n firstItem: string;\n firstAttribute: ConstraintAttribute;\n secondItem: string;\n secondAttribute: ConstraintAttribute;\n constant?: number;\n id: string;\n}>;\n\nexport type IBViewController = IBItem<\n {\n id: string;\n placeholderIdentifier?: string;\n userLabel: string;\n sceneMemberID: string;\n },\n {\n view: IBItem<\n {\n id: string;\n key: string;\n userInteractionEnabled: IBBoolean;\n contentMode: string | 'scaleToFill';\n insetsLayoutMarginsFromSafeArea: IBBoolean;\n userLabel: string;\n },\n {\n rect: IBRect[];\n autoresizingMask: IBItem<{\n key: string;\n flexibleMaxX: IBBoolean;\n flexibleMaxY: IBBoolean;\n }>[];\n\n subviews: IBItem<\n object,\n {\n imageView: IBImageView[];\n label: IBLabel[];\n }\n >[];\n color: IBItem<{\n key: string | 'backgroundColor';\n systemColor: string | 'systemBackgroundColor';\n }>[];\n constraints: IBItem<\n object,\n {\n constraint: IBConstraint[];\n }\n >[];\n viewLayoutGuide: IBItem<{\n id: string;\n key: string | 'safeArea';\n }>[];\n }\n >[];\n }\n>;\n\nexport type IBPoint = IBItem<{\n key: string | 'canvasLocation';\n x: number;\n y: number;\n}>;\n\nexport type IBScene = IBItem<\n { sceneID: string },\n {\n objects: {\n viewController: IBViewController[];\n placeholder: IBItem<{\n id: string;\n placeholderIdentifier?: string;\n userLabel: string;\n sceneMemberID: string;\n }>[];\n }[];\n point: IBPoint[];\n }\n>;\n\nexport type IBResourceImage = IBItem<{\n name: string;\n width: number;\n height: number;\n}>;\n\nexport type IBDevice = IBItem<{\n id: string;\n orientation: string | 'portrait';\n appearance: string | 'light';\n}>;\n\nexport type IBSplashScreenDocument = {\n document: IBItem<\n {\n type: 'com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB' | string;\n version: '3.0' | string;\n toolsVersion: number;\n targetRuntime: 'iOS.CocoaTouch' | string;\n propertyAccessControl: 'none' | string;\n useAutolayout: IBBoolean;\n launchScreen: IBBoolean;\n useTraitCollections: IBBoolean;\n useSafeAreas: IBBoolean;\n colorMatched: IBBoolean;\n initialViewController: string;\n },\n {\n device: IBDevice[];\n dependencies: unknown[];\n scenes: {\n scene: IBScene[];\n }[];\n resources: {\n image: IBResourceImage[];\n }[];\n }\n >;\n};\n\nexport function createConstraint(\n [firstItem, firstAttribute]: [string, ConstraintAttribute],\n [secondItem, secondAttribute]: [string, ConstraintAttribute],\n constant?: number\n): IBConstraint {\n return {\n $: {\n firstItem,\n firstAttribute,\n secondItem,\n secondAttribute,\n constant,\n // Prevent updating between runs\n id: createConstraintId(firstItem, firstAttribute, secondItem, secondAttribute),\n },\n };\n}\n\nexport function createConstraintId(...attributes: string[]) {\n return crypto.createHash('sha1').update(attributes.join('-')).digest('hex');\n}\n\nconst IMAGE_ID = 'EXPO-SplashScreen';\nconst CONTAINER_ID = 'EXPO-ContainerView';\n\nexport function removeImageFromSplashScreen(\n xml: IBSplashScreenDocument,\n { imageName }: { imageName: string }\n) {\n const mainView = xml.document.scenes[0].scene[0].objects[0].viewController[0].view[0];\n\n debug(`Remove all splash screen image elements`);\n\n removeExisting(mainView.subviews[0].imageView, IMAGE_ID);\n\n // Add Constraints\n getAbsoluteConstraints(IMAGE_ID, CONTAINER_ID).forEach((constraint) => {\n // <constraint firstItem=\"EXPO-SplashScreen\" firstAttribute=\"top\" secondItem=\"EXPO-ContainerView\" secondAttribute=\"top\" id=\"2VS-Uz-0LU\"/>\n const constrainsArray = mainView.constraints[0].constraint;\n removeExisting(constrainsArray, constraint);\n });\n\n // Add resource\n const imageSection = xml.document.resources[0].image;\n\n const existingImageIndex = imageSection.findIndex((image) => image.$.name === imageName);\n if (existingImageIndex > -1) {\n imageSection.splice(existingImageIndex, 1);\n }\n return xml;\n}\n\nfunction getAbsoluteConstraints(childId: string, parentId: string) {\n return [\n createConstraint([childId, 'top'], [parentId, 'top']),\n createConstraint([childId, 'leading'], [parentId, 'leading']),\n createConstraint([childId, 'trailing'], [parentId, 'trailing']),\n createConstraint([childId, 'bottom'], [parentId, 'bottom']),\n ];\n}\n\nexport function applyImageToSplashScreenXML(\n xml: IBSplashScreenDocument,\n {\n imageName,\n contentMode,\n }: {\n imageName: string;\n contentMode: ImageContentMode;\n }\n): IBSplashScreenDocument {\n const width = 414;\n const height = 736;\n\n const imageView: IBImageView = {\n $: {\n id: IMAGE_ID,\n userLabel: imageName,\n image: imageName,\n contentMode,\n horizontalHuggingPriority: 251,\n verticalHuggingPriority: 251,\n clipsSubviews: true,\n userInteractionEnabled: false,\n translatesAutoresizingMaskIntoConstraints: false,\n },\n rect: [\n {\n $: {\n key: 'frame',\n x: 0.0,\n y: 0.0,\n width,\n height,\n },\n },\n ],\n };\n\n const mainView = xml.document.scenes[0].scene[0].objects[0].viewController[0].view[0];\n\n // Add ImageView\n ensureUniquePush(mainView.subviews[0].imageView, imageView);\n\n // Add Constraints\n getAbsoluteConstraints(IMAGE_ID, CONTAINER_ID).forEach((constraint) => {\n // <constraint firstItem=\"EXPO-SplashScreen\" firstAttribute=\"top\" secondItem=\"EXPO-ContainerView\" secondAttribute=\"top\" id=\"2VS-Uz-0LU\"/>\n const constrainsArray = mainView.constraints[0].constraint;\n ensureUniquePush(constrainsArray, constraint);\n });\n\n // Add resource\n const imageSection = xml.document.resources[0].image;\n\n const existingImageIndex = imageSection.findIndex((image) => image.$.name === imageName);\n if (existingImageIndex > -1) {\n debug(`Removing existing IB image asset at index ${existingImageIndex}`);\n imageSection.splice(existingImageIndex, 1);\n }\n imageSection.push({\n // <image name=\"SplashScreen\" width=\"414\" height=\"736\"/>\n $: {\n name: imageName,\n width,\n height,\n },\n });\n\n return xml;\n}\n\n/**\n * IB does not allow two items to have the same ID.\n * This method will add an item by first removing any existing item with the same `$.id`.\n */\nexport function ensureUniquePush<TItem extends { $: { id: string } }>(array: TItem[], item: TItem) {\n if (!array) return array;\n removeExisting(array, item);\n array.push(item);\n return array;\n}\n\nexport function removeExisting<TItem extends { $: { id: string } }>(\n array: TItem[],\n item: TItem | string\n) {\n const id = typeof item === 'string' ? item : item.$?.id;\n const existingItem = array?.findIndex((existingItem) => existingItem.$.id === id);\n if (existingItem > -1) {\n debug(`Removing existing IB item with id ${id}, from: %O`, array);\n array.splice(existingItem, 1);\n }\n return array;\n}\n\n// Attempt to copy Xcode formatting.\nexport function toString(xml: any): string {\n const builder = new Builder({\n // @ts-expect-error: untyped\n preserveChildrenOrder: true,\n xmldec: {\n version: '1.0',\n encoding: 'UTF-8',\n },\n renderOpts: {\n pretty: true,\n indent: ' ',\n },\n });\n return builder.buildObject(xml);\n}\n\n/** Parse string contents into an object. */\nexport function toObjectAsync(contents: string) {\n return new Parser().parseStringPromise(contents);\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"expo-splash-screen.js","names":["createLegacyPlugin","packageName","fallback","withAndroidSplashScreen","withIosSplashScreen"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/expo-splash-screen.ts"],"sourcesContent":["import { createLegacyPlugin } from '../createLegacyPlugin';\nimport { withAndroidSplashScreen } from './withAndroidSplashScreen';\nimport { withIosSplashScreen } from './withIosSplashScreen';\n\nexport default createLegacyPlugin({\n packageName: 'expo-splash-screen',\n fallback: [withAndroidSplashScreen, withIosSplashScreen],\n});\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAA4D,eAE7C,IAAAA,wCAAkB,EAAC;EAChCC,WAAW,EAAE,oBAAoB;EACjCC,QAAQ,EAAE,CAACC,kDAAuB,EAAEC,0CAAmB;AACzD,CAAC,CAAC;AAAA"}
1
+ {"version":3,"file":"expo-splash-screen.js","names":["_createLegacyPlugin","data","require","_withAndroidSplashScreen","_withIosSplashScreen","_default","createLegacyPlugin","packageName","fallback","withAndroidSplashScreen","withIosSplashScreen","exports","default"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/expo-splash-screen.ts"],"sourcesContent":["import { createLegacyPlugin } from '../createLegacyPlugin';\nimport { withAndroidSplashScreen } from './withAndroidSplashScreen';\nimport { withIosSplashScreen } from './withIosSplashScreen';\n\nexport default createLegacyPlugin({\n packageName: 'expo-splash-screen',\n fallback: [withAndroidSplashScreen, withIosSplashScreen],\n});\n"],"mappings":";;;;;;AAAA,SAAAA,oBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,mBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,yBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,wBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,qBAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,oBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA4D,IAAAI,QAAA,GAE7C,IAAAC,wCAAkB,EAAC;EAChCC,WAAW,EAAE,oBAAoB;EACjCC,QAAQ,EAAE,CAACC,kDAAuB,EAAEC,0CAAmB;AACzD,CAAC,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAP,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getAndroidSplashConfig.js","names":["defaultResizeMode","getAndroidSplashConfig","config","android","splash","xxxhdpi","image","xxhdpi","xhdpi","hdpi","mdpi","backgroundColor","resizeMode","getAndroidDarkSplashConfig","dark","lightTheme"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/getAndroidSplashConfig.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nexport type SplashScreenConfig = {\n xxxhdpi: string | null;\n xxhdpi: string | null;\n xhdpi: string | null;\n hdpi: string | null;\n mdpi: string | null;\n backgroundColor: string | null;\n resizeMode: 'contain' | 'cover' | 'native';\n};\n\nconst defaultResizeMode = 'contain';\n\nexport function getAndroidSplashConfig(\n config: Pick<ExpoConfig, 'splash' | 'android'>\n): SplashScreenConfig | null {\n // Respect the splash screen object, don't mix and match across different splash screen objects\n // in case the user wants the top level splash to apply to every platform except android.\n if (config.android?.splash) {\n const splash = config.android?.splash;\n return {\n xxxhdpi: splash.xxxhdpi ?? splash.image ?? null,\n xxhdpi: splash.xxhdpi ?? splash.image ?? null,\n xhdpi: splash.xhdpi ?? splash.image ?? null,\n hdpi: splash.hdpi ?? splash.image ?? null,\n mdpi: splash.mdpi ?? splash.image ?? null,\n backgroundColor: splash.backgroundColor ?? null,\n resizeMode: splash.resizeMode ?? defaultResizeMode,\n };\n }\n\n if (config.splash) {\n const splash = config.splash;\n return {\n xxxhdpi: splash.image ?? null,\n xxhdpi: splash.image ?? null,\n xhdpi: splash.image ?? null,\n hdpi: splash.image ?? null,\n mdpi: splash.image ?? null,\n backgroundColor: splash.backgroundColor ?? null,\n resizeMode: splash.resizeMode ?? defaultResizeMode,\n };\n }\n\n return null;\n}\n\n// TODO: dark isn't supported in the Expo config spec yet.\nexport function getAndroidDarkSplashConfig(\n config: Pick<ExpoConfig, 'splash' | 'android'>\n): SplashScreenConfig | null {\n // Respect the splash screen object, don't mix and match across different splash screen objects\n // in case the user wants the top level splash to apply to every platform except android.\n if (config.android?.splash?.dark) {\n const splash = config.android?.splash?.dark;\n const lightTheme = getAndroidSplashConfig(config);\n return {\n xxxhdpi: splash.xxxhdpi ?? splash.image ?? null,\n xxhdpi: splash.xxhdpi ?? splash.image ?? null,\n xhdpi: splash.xhdpi ?? splash.image ?? null,\n hdpi: splash.hdpi ?? splash.image ?? null,\n mdpi: splash.mdpi ?? splash.image ?? null,\n backgroundColor: splash.backgroundColor ?? null,\n // Can't support dark resizeMode because the resize mode is hardcoded into the MainActivity.java\n resizeMode: lightTheme?.resizeMode ?? defaultResizeMode,\n };\n }\n\n return null;\n}\n"],"mappings":";;;;;;;AAYA,MAAMA,iBAAiB,GAAG,SAAS;AAE5B,SAASC,sBAAsB,CACpCC,MAA8C,EACnB;EAAA;EAC3B;EACA;EACA,uBAAIA,MAAM,CAACC,OAAO,4CAAd,gBAAgBC,MAAM,EAAE;IAAA;IAC1B,MAAMA,MAAM,uBAAGF,MAAM,CAACC,OAAO,qDAAd,iBAAgBC,MAAM;IACrC,OAAO;MACLC,OAAO,6BAAED,MAAM,CAACC,OAAO,6DAAID,MAAM,CAACE,KAAK,uCAAI,IAAI;MAC/CC,MAAM,6BAAEH,MAAM,CAACG,MAAM,2DAAIH,MAAM,CAACE,KAAK,yCAAI,IAAI;MAC7CE,KAAK,4BAAEJ,MAAM,CAACI,KAAK,yDAAIJ,MAAM,CAACE,KAAK,yCAAI,IAAI;MAC3CG,IAAI,2BAAEL,MAAM,CAACK,IAAI,uDAAIL,MAAM,CAACE,KAAK,yCAAI,IAAI;MACzCI,IAAI,2BAAEN,MAAM,CAACM,IAAI,uDAAIN,MAAM,CAACE,KAAK,yCAAI,IAAI;MACzCK,eAAe,2BAAEP,MAAM,CAACO,eAAe,yEAAI,IAAI;MAC/CC,UAAU,wBAAER,MAAM,CAACQ,UAAU,mEAAIZ;IACnC,CAAC;EACH;EAEA,IAAIE,MAAM,CAACE,MAAM,EAAE;IAAA;IACjB,MAAMA,MAAM,GAAGF,MAAM,CAACE,MAAM;IAC5B,OAAO;MACLC,OAAO,mBAAED,MAAM,CAACE,KAAK,yDAAI,IAAI;MAC7BC,MAAM,oBAAEH,MAAM,CAACE,KAAK,2DAAI,IAAI;MAC5BE,KAAK,oBAAEJ,MAAM,CAACE,KAAK,2DAAI,IAAI;MAC3BG,IAAI,oBAAEL,MAAM,CAACE,KAAK,2DAAI,IAAI;MAC1BI,IAAI,oBAAEN,MAAM,CAACE,KAAK,2DAAI,IAAI;MAC1BK,eAAe,4BAAEP,MAAM,CAACO,eAAe,2EAAI,IAAI;MAC/CC,UAAU,yBAAER,MAAM,CAACQ,UAAU,qEAAIZ;IACnC,CAAC;EACH;EAEA,OAAO,IAAI;AACb;;AAEA;AACO,SAASa,0BAA0B,CACxCX,MAA8C,EACnB;EAAA;EAC3B;EACA;EACA,wBAAIA,MAAM,CAACC,OAAO,sEAAd,iBAAgBC,MAAM,kDAAtB,sBAAwBU,IAAI,EAAE;IAAA;IAChC,MAAMV,MAAM,uBAAGF,MAAM,CAACC,OAAO,8EAAd,iBAAgBC,MAAM,0DAAtB,sBAAwBU,IAAI;IAC3C,MAAMC,UAAU,GAAGd,sBAAsB,CAACC,MAAM,CAAC;IACjD,OAAO;MACLG,OAAO,+BAAED,MAAM,CAACC,OAAO,+DAAID,MAAM,CAACE,KAAK,yCAAI,IAAI;MAC/CC,MAAM,8BAAEH,MAAM,CAACG,MAAM,6DAAIH,MAAM,CAACE,KAAK,yCAAI,IAAI;MAC7CE,KAAK,6BAAEJ,MAAM,CAACI,KAAK,2DAAIJ,MAAM,CAACE,KAAK,yCAAI,IAAI;MAC3CG,IAAI,4BAAEL,MAAM,CAACK,IAAI,yDAAIL,MAAM,CAACE,KAAK,yCAAI,IAAI;MACzCI,IAAI,6BAAEN,MAAM,CAACM,IAAI,yDAAIN,MAAM,CAACE,KAAK,2CAAI,IAAI;MACzCK,eAAe,4BAAEP,MAAM,CAACO,eAAe,2EAAI,IAAI;MAC/C;MACAC,UAAU,2BAAEG,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEH,UAAU,yEAAIZ;IACxC,CAAC;EACH;EAEA,OAAO,IAAI;AACb"}
1
+ {"version":3,"file":"getAndroidSplashConfig.js","names":["defaultResizeMode","getAndroidSplashConfig","config","_config$android","android","splash","_config$android2","_ref","_splash$xxxhdpi","_ref2","_splash$xxhdpi","_ref3","_splash$xhdpi","_ref4","_splash$hdpi","_ref5","_splash$mdpi","_splash$backgroundCol","_splash$resizeMode","xxxhdpi","image","xxhdpi","xhdpi","hdpi","mdpi","backgroundColor","resizeMode","_splash$image","_splash$image2","_splash$image3","_splash$image4","_splash$image5","_splash$backgroundCol2","_splash$resizeMode2","getAndroidDarkSplashConfig","_config$android3","_config$android3$spla","dark","_config$android4","_config$android4$spla","_ref6","_splash$xxxhdpi2","_ref7","_splash$xxhdpi2","_ref8","_splash$xhdpi2","_ref9","_splash$hdpi2","_ref10","_splash$mdpi2","_splash$backgroundCol3","_lightTheme$resizeMod","lightTheme"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/getAndroidSplashConfig.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nexport type SplashScreenConfig = {\n xxxhdpi: string | null;\n xxhdpi: string | null;\n xhdpi: string | null;\n hdpi: string | null;\n mdpi: string | null;\n backgroundColor: string | null;\n resizeMode: 'contain' | 'cover' | 'native';\n};\n\nconst defaultResizeMode = 'contain';\n\nexport function getAndroidSplashConfig(\n config: Pick<ExpoConfig, 'splash' | 'android'>\n): SplashScreenConfig | null {\n // Respect the splash screen object, don't mix and match across different splash screen objects\n // in case the user wants the top level splash to apply to every platform except android.\n if (config.android?.splash) {\n const splash = config.android?.splash;\n return {\n xxxhdpi: splash.xxxhdpi ?? splash.image ?? null,\n xxhdpi: splash.xxhdpi ?? splash.image ?? null,\n xhdpi: splash.xhdpi ?? splash.image ?? null,\n hdpi: splash.hdpi ?? splash.image ?? null,\n mdpi: splash.mdpi ?? splash.image ?? null,\n backgroundColor: splash.backgroundColor ?? null,\n resizeMode: splash.resizeMode ?? defaultResizeMode,\n };\n }\n\n if (config.splash) {\n const splash = config.splash;\n return {\n xxxhdpi: splash.image ?? null,\n xxhdpi: splash.image ?? null,\n xhdpi: splash.image ?? null,\n hdpi: splash.image ?? null,\n mdpi: splash.image ?? null,\n backgroundColor: splash.backgroundColor ?? null,\n resizeMode: splash.resizeMode ?? defaultResizeMode,\n };\n }\n\n return null;\n}\n\n// TODO: dark isn't supported in the Expo config spec yet.\nexport function getAndroidDarkSplashConfig(\n config: Pick<ExpoConfig, 'splash' | 'android'>\n): SplashScreenConfig | null {\n // Respect the splash screen object, don't mix and match across different splash screen objects\n // in case the user wants the top level splash to apply to every platform except android.\n if (config.android?.splash?.dark) {\n const splash = config.android?.splash?.dark;\n const lightTheme = getAndroidSplashConfig(config);\n return {\n xxxhdpi: splash.xxxhdpi ?? splash.image ?? null,\n xxhdpi: splash.xxhdpi ?? splash.image ?? null,\n xhdpi: splash.xhdpi ?? splash.image ?? null,\n hdpi: splash.hdpi ?? splash.image ?? null,\n mdpi: splash.mdpi ?? splash.image ?? null,\n backgroundColor: splash.backgroundColor ?? null,\n // Can't support dark resizeMode because the resize mode is hardcoded into the MainActivity.java\n resizeMode: lightTheme?.resizeMode ?? defaultResizeMode,\n };\n }\n\n return null;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getIosSplashConfig.js","names":["defaultResizeMode","defaultBackgroundColor","getIosSplashConfig","config","ios","splash","image","resizeMode","backgroundColor","tabletImage","tabletBackgroundColor","dark"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/getIosSplashConfig.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\ntype ExpoConfigIosSplash = NonNullable<NonNullable<ExpoConfig['ios']>['splash']>;\n\nconst defaultResizeMode = 'contain';\nconst defaultBackgroundColor = '#ffffff';\n\nexport interface IOSSplashConfig {\n image?: string | null;\n // tabletImage: string | null;\n backgroundColor: string;\n resizeMode: NonNullable<ExpoConfigIosSplash['resizeMode']>;\n tabletImage: string | null;\n // TODO: These are here just to test the functionality, the API should be more robust and account for tablet images.\n tabletBackgroundColor: string | null;\n dark?: {\n image?: string | null;\n backgroundColor?: string | null;\n tabletImage?: string | null;\n tabletBackgroundColor?: string | null;\n };\n}\n\n// TODO: Maybe use an array on splash with theme value. Then remove the array in serialization for legacy and manifest.\nexport function getIosSplashConfig(config: ExpoConfig): IOSSplashConfig | null {\n // Respect the splash screen object, don't mix and match across different splash screen objects\n // in case the user wants the top level splash to apply to every platform except iOS.\n if (config.ios?.splash) {\n const splash = config.ios?.splash;\n const image = splash.image ?? null;\n return {\n image,\n resizeMode: splash.resizeMode ?? defaultResizeMode,\n backgroundColor: splash.backgroundColor ?? defaultBackgroundColor,\n tabletImage: splash.tabletImage ?? null,\n tabletBackgroundColor: splash.tabletBackgroundColor,\n dark: {\n image: splash.dark?.image ?? null,\n backgroundColor: splash.dark?.backgroundColor,\n tabletImage: splash.dark?.tabletImage ?? null,\n tabletBackgroundColor: splash.dark?.tabletBackgroundColor,\n },\n };\n }\n\n if (config.splash) {\n const splash = config.splash;\n const image = splash.image ?? null;\n return {\n image,\n resizeMode: splash.resizeMode ?? defaultResizeMode,\n backgroundColor: splash.backgroundColor ?? defaultBackgroundColor,\n tabletImage: null,\n tabletBackgroundColor: null,\n dark: {\n image: null,\n backgroundColor: null,\n tabletImage: null,\n tabletBackgroundColor: null,\n },\n };\n }\n\n return {\n backgroundColor: '#ffffff',\n resizeMode: 'contain',\n tabletImage: null,\n tabletBackgroundColor: null,\n };\n}\n"],"mappings":";;;;;;AAIA,MAAMA,iBAAiB,GAAG,SAAS;AACnC,MAAMC,sBAAsB,GAAG,SAAS;AAkBxC;AACO,SAASC,kBAAkB,CAACC,MAAkB,EAA0B;EAAA;EAC7E;EACA;EACA,mBAAIA,MAAM,CAACC,GAAG,wCAAV,YAAYC,MAAM,EAAE;IAAA;IACtB,MAAMA,MAAM,mBAAGF,MAAM,CAACC,GAAG,iDAAV,aAAYC,MAAM;IACjC,MAAMC,KAAK,oBAAGD,MAAM,CAACC,KAAK,yDAAI,IAAI;IAClC,OAAO;MACLA,KAAK;MACLC,UAAU,wBAAEF,MAAM,CAACE,UAAU,mEAAIP,iBAAiB;MAClDQ,eAAe,2BAAEH,MAAM,CAACG,eAAe,yEAAIP,sBAAsB;MACjEQ,WAAW,yBAAEJ,MAAM,CAACI,WAAW,qEAAI,IAAI;MACvCC,qBAAqB,EAAEL,MAAM,CAACK,qBAAqB;MACnDC,IAAI,EAAE;QACJL,KAAK,wCAAED,MAAM,CAACM,IAAI,iDAAX,aAAaL,KAAK,mEAAI,IAAI;QACjCE,eAAe,mBAAEH,MAAM,CAACM,IAAI,kDAAX,cAAaH,eAAe;QAC7CC,WAAW,4CAAEJ,MAAM,CAACM,IAAI,kDAAX,cAAaF,WAAW,yEAAI,IAAI;QAC7CC,qBAAqB,mBAAEL,MAAM,CAACM,IAAI,kDAAX,cAAaD;MACtC;IACF,CAAC;EACH;EAEA,IAAIP,MAAM,CAACE,MAAM,EAAE;IAAA;IACjB,MAAMA,MAAM,GAAGF,MAAM,CAACE,MAAM;IAC5B,MAAMC,KAAK,qBAAGD,MAAM,CAACC,KAAK,2DAAI,IAAI;IAClC,OAAO;MACLA,KAAK;MACLC,UAAU,yBAAEF,MAAM,CAACE,UAAU,qEAAIP,iBAAiB;MAClDQ,eAAe,4BAAEH,MAAM,CAACG,eAAe,2EAAIP,sBAAsB;MACjEQ,WAAW,EAAE,IAAI;MACjBC,qBAAqB,EAAE,IAAI;MAC3BC,IAAI,EAAE;QACJL,KAAK,EAAE,IAAI;QACXE,eAAe,EAAE,IAAI;QACrBC,WAAW,EAAE,IAAI;QACjBC,qBAAqB,EAAE;MACzB;IACF,CAAC;EACH;EAEA,OAAO;IACLF,eAAe,EAAE,SAAS;IAC1BD,UAAU,EAAE,SAAS;IACrBE,WAAW,EAAE,IAAI;IACjBC,qBAAqB,EAAE;EACzB,CAAC;AACH"}
1
+ {"version":3,"file":"getIosSplashConfig.js","names":["defaultResizeMode","defaultBackgroundColor","getIosSplashConfig","config","_config$ios","ios","splash","_config$ios2","_splash$image","_splash$resizeMode","_splash$backgroundCol","_splash$tabletImage","_splash$dark$image","_splash$dark","_splash$dark2","_splash$dark$tabletIm","_splash$dark3","_splash$dark4","image","resizeMode","backgroundColor","tabletImage","tabletBackgroundColor","dark","_splash$image2","_splash$resizeMode2","_splash$backgroundCol2"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/getIosSplashConfig.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\ntype ExpoConfigIosSplash = NonNullable<NonNullable<ExpoConfig['ios']>['splash']>;\n\nconst defaultResizeMode = 'contain';\nconst defaultBackgroundColor = '#ffffff';\n\nexport interface IOSSplashConfig {\n image?: string | null;\n // tabletImage: string | null;\n backgroundColor: string;\n resizeMode: NonNullable<ExpoConfigIosSplash['resizeMode']>;\n tabletImage: string | null;\n // TODO: These are here just to test the functionality, the API should be more robust and account for tablet images.\n tabletBackgroundColor: string | null;\n dark?: {\n image?: string | null;\n backgroundColor?: string | null;\n tabletImage?: string | null;\n tabletBackgroundColor?: string | null;\n };\n}\n\n// TODO: Maybe use an array on splash with theme value. Then remove the array in serialization for legacy and manifest.\nexport function getIosSplashConfig(config: ExpoConfig): IOSSplashConfig | null {\n // Respect the splash screen object, don't mix and match across different splash screen objects\n // in case the user wants the top level splash to apply to every platform except iOS.\n if (config.ios?.splash) {\n const splash = config.ios?.splash;\n const image = splash.image ?? null;\n return {\n image,\n resizeMode: splash.resizeMode ?? defaultResizeMode,\n backgroundColor: splash.backgroundColor ?? defaultBackgroundColor,\n tabletImage: splash.tabletImage ?? null,\n tabletBackgroundColor: splash.tabletBackgroundColor,\n dark: {\n image: splash.dark?.image ?? null,\n backgroundColor: splash.dark?.backgroundColor,\n tabletImage: splash.dark?.tabletImage ?? null,\n tabletBackgroundColor: splash.dark?.tabletBackgroundColor,\n },\n };\n }\n\n if (config.splash) {\n const splash = config.splash;\n const image = splash.image ?? null;\n return {\n image,\n resizeMode: splash.resizeMode ?? defaultResizeMode,\n backgroundColor: splash.backgroundColor ?? defaultBackgroundColor,\n tabletImage: null,\n tabletBackgroundColor: null,\n dark: {\n image: null,\n backgroundColor: null,\n tabletImage: null,\n tabletBackgroundColor: null,\n },\n };\n }\n\n return {\n backgroundColor: '#ffffff',\n resizeMode: 'contain',\n tabletImage: null,\n tabletBackgroundColor: null,\n };\n}\n"],"mappings":";;;;;;AAIA,MAAMA,iBAAiB,GAAG,SAAS;AACnC,MAAMC,sBAAsB,GAAG,SAAS;AAkBxC;AACO,SAASC,kBAAkBA,CAACC,MAAkB,EAA0B;EAAA,IAAAC,WAAA;EAC7E;EACA;EACA,KAAAA,WAAA,GAAID,MAAM,CAACE,GAAG,cAAAD,WAAA,eAAVA,WAAA,CAAYE,MAAM,EAAE;IAAA,IAAAC,YAAA,EAAAC,aAAA,EAAAC,kBAAA,EAAAC,qBAAA,EAAAC,mBAAA,EAAAC,kBAAA,EAAAC,YAAA,EAAAC,aAAA,EAAAC,qBAAA,EAAAC,aAAA,EAAAC,aAAA;IACtB,MAAMX,MAAM,IAAAC,YAAA,GAAGJ,MAAM,CAACE,GAAG,cAAAE,YAAA,uBAAVA,YAAA,CAAYD,MAAM;IACjC,MAAMY,KAAK,IAAAV,aAAA,GAAGF,MAAM,CAACY,KAAK,cAAAV,aAAA,cAAAA,aAAA,GAAI,IAAI;IAClC,OAAO;MACLU,KAAK;MACLC,UAAU,GAAAV,kBAAA,GAAEH,MAAM,CAACa,UAAU,cAAAV,kBAAA,cAAAA,kBAAA,GAAIT,iBAAiB;MAClDoB,eAAe,GAAAV,qBAAA,GAAEJ,MAAM,CAACc,eAAe,cAAAV,qBAAA,cAAAA,qBAAA,GAAIT,sBAAsB;MACjEoB,WAAW,GAAAV,mBAAA,GAAEL,MAAM,CAACe,WAAW,cAAAV,mBAAA,cAAAA,mBAAA,GAAI,IAAI;MACvCW,qBAAqB,EAAEhB,MAAM,CAACgB,qBAAqB;MACnDC,IAAI,EAAE;QACJL,KAAK,GAAAN,kBAAA,IAAAC,YAAA,GAAEP,MAAM,CAACiB,IAAI,cAAAV,YAAA,uBAAXA,YAAA,CAAaK,KAAK,cAAAN,kBAAA,cAAAA,kBAAA,GAAI,IAAI;QACjCQ,eAAe,GAAAN,aAAA,GAAER,MAAM,CAACiB,IAAI,cAAAT,aAAA,uBAAXA,aAAA,CAAaM,eAAe;QAC7CC,WAAW,GAAAN,qBAAA,IAAAC,aAAA,GAAEV,MAAM,CAACiB,IAAI,cAAAP,aAAA,uBAAXA,aAAA,CAAaK,WAAW,cAAAN,qBAAA,cAAAA,qBAAA,GAAI,IAAI;QAC7CO,qBAAqB,GAAAL,aAAA,GAAEX,MAAM,CAACiB,IAAI,cAAAN,aAAA,uBAAXA,aAAA,CAAaK;MACtC;IACF,CAAC;EACH;EAEA,IAAInB,MAAM,CAACG,MAAM,EAAE;IAAA,IAAAkB,cAAA,EAAAC,mBAAA,EAAAC,sBAAA;IACjB,MAAMpB,MAAM,GAAGH,MAAM,CAACG,MAAM;IAC5B,MAAMY,KAAK,IAAAM,cAAA,GAAGlB,MAAM,CAACY,KAAK,cAAAM,cAAA,cAAAA,cAAA,GAAI,IAAI;IAClC,OAAO;MACLN,KAAK;MACLC,UAAU,GAAAM,mBAAA,GAAEnB,MAAM,CAACa,UAAU,cAAAM,mBAAA,cAAAA,mBAAA,GAAIzB,iBAAiB;MAClDoB,eAAe,GAAAM,sBAAA,GAAEpB,MAAM,CAACc,eAAe,cAAAM,sBAAA,cAAAA,sBAAA,GAAIzB,sBAAsB;MACjEoB,WAAW,EAAE,IAAI;MACjBC,qBAAqB,EAAE,IAAI;MAC3BC,IAAI,EAAE;QACJL,KAAK,EAAE,IAAI;QACXE,eAAe,EAAE,IAAI;QACrBC,WAAW,EAAE,IAAI;QACjBC,qBAAqB,EAAE;MACzB;IACF,CAAC;EACH;EAEA,OAAO;IACLF,eAAe,EAAE,SAAS;IAC1BD,UAAU,EAAE,SAAS;IACrBE,WAAW,EAAE,IAAI;IACjBC,qBAAqB,EAAE;EACzB,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"withAndroidSplashDrawables.js","names":["withAndroidSplashDrawables","config","splash","withDangerousMod","setSplashDrawableAsync","modRequest","projectRoot","resizeMode","filePath","AndroidConfig","Paths","getResourceXMLPathAsync","name","kind","xmlContent","$","item","bitmap","filter","Boolean","XML","writeXMLAsync","path","xml"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashDrawables.ts"],"sourcesContent":["import { AndroidConfig, ConfigPlugin, withDangerousMod, XML } from '@expo/config-plugins';\n\nimport { SplashScreenConfig } from './getAndroidSplashConfig';\n\nexport const withAndroidSplashDrawables: ConfigPlugin<Pick<SplashScreenConfig, 'resizeMode'>> = (\n config,\n splash\n) => {\n return withDangerousMod(config, [\n 'android',\n async (config) => {\n if (splash) {\n await setSplashDrawableAsync(splash, config.modRequest.projectRoot);\n }\n return config;\n },\n ]);\n};\n\nexport async function setSplashDrawableAsync(\n { resizeMode }: Pick<SplashScreenConfig, 'resizeMode'>,\n projectRoot: string\n) {\n const filePath = (await AndroidConfig.Paths.getResourceXMLPathAsync(projectRoot, {\n name: 'splashscreen',\n kind: 'drawable',\n }))!;\n\n // Nuke and rewrite the splashscreen.xml drawable\n const xmlContent = {\n 'layer-list': {\n $: {\n 'xmlns:android': 'http://schemas.android.com/apk/res/android',\n },\n item: [\n {\n $: {\n // TODO: Ensure these keys don't get out of sync\n 'android:drawable': '@color/splashscreen_background',\n },\n },\n // Only include the image if resizeMode native is in-use.\n resizeMode === 'native' && {\n bitmap: [\n {\n $: {\n 'android:gravity': 'center',\n // TODO: Ensure these keys don't get out of sync\n 'android:src': '@drawable/splashscreen_image',\n },\n },\n ],\n },\n ].filter(Boolean),\n },\n };\n await XML.writeXMLAsync({ path: filePath, xml: xmlContent });\n}\n"],"mappings":";;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAIO,MAAMA,0BAAgF,GAAG,CAC9FC,MAAM,EACNC,MAAM,KACH;EACH,OAAO,IAAAC,iCAAgB,EAACF,MAAM,EAAE,CAC9B,SAAS,EACT,MAAOA,MAAM,IAAK;IAChB,IAAIC,MAAM,EAAE;MACV,MAAME,sBAAsB,CAACF,MAAM,EAAED,MAAM,CAACI,UAAU,CAACC,WAAW,CAAC;IACrE;IACA,OAAOL,MAAM;EACf,CAAC,CACF,CAAC;AACJ,CAAC;AAAC;AAEK,eAAeG,sBAAsB,CAC1C;EAAEG;AAAmD,CAAC,EACtDD,WAAmB,EACnB;EACA,MAAME,QAAQ,GAAI,MAAMC,8BAAa,CAACC,KAAK,CAACC,uBAAuB,CAACL,WAAW,EAAE;IAC/EM,IAAI,EAAE,cAAc;IACpBC,IAAI,EAAE;EACR,CAAC,CAAG;;EAEJ;EACA,MAAMC,UAAU,GAAG;IACjB,YAAY,EAAE;MACZC,CAAC,EAAE;QACD,eAAe,EAAE;MACnB,CAAC;MACDC,IAAI,EAAE,CACJ;QACED,CAAC,EAAE;UACD;UACA,kBAAkB,EAAE;QACtB;MACF,CAAC;MACD;MACAR,UAAU,KAAK,QAAQ,IAAI;QACzBU,MAAM,EAAE,CACN;UACEF,CAAC,EAAE;YACD,iBAAiB,EAAE,QAAQ;YAC3B;YACA,aAAa,EAAE;UACjB;QACF,CAAC;MAEL,CAAC,CACF,CAACG,MAAM,CAACC,OAAO;IAClB;EACF,CAAC;EACD,MAAMC,oBAAG,CAACC,aAAa,CAAC;IAAEC,IAAI,EAAEd,QAAQ;IAAEe,GAAG,EAAET;EAAW,CAAC,CAAC;AAC9D"}
1
+ {"version":3,"file":"withAndroidSplashDrawables.js","names":["_configPlugins","data","require","withAndroidSplashDrawables","config","splash","withDangerousMod","setSplashDrawableAsync","modRequest","projectRoot","exports","resizeMode","filePath","AndroidConfig","Paths","getResourceXMLPathAsync","name","kind","xmlContent","$","item","bitmap","filter","Boolean","XML","writeXMLAsync","path","xml"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashDrawables.ts"],"sourcesContent":["import { AndroidConfig, ConfigPlugin, withDangerousMod, XML } from '@expo/config-plugins';\n\nimport { SplashScreenConfig } from './getAndroidSplashConfig';\n\nexport const withAndroidSplashDrawables: ConfigPlugin<Pick<SplashScreenConfig, 'resizeMode'>> = (\n config,\n splash\n) => {\n return withDangerousMod(config, [\n 'android',\n async (config) => {\n if (splash) {\n await setSplashDrawableAsync(splash, config.modRequest.projectRoot);\n }\n return config;\n },\n ]);\n};\n\nexport async function setSplashDrawableAsync(\n { resizeMode }: Pick<SplashScreenConfig, 'resizeMode'>,\n projectRoot: string\n) {\n const filePath = (await AndroidConfig.Paths.getResourceXMLPathAsync(projectRoot, {\n name: 'splashscreen',\n kind: 'drawable',\n }))!;\n\n // Nuke and rewrite the splashscreen.xml drawable\n const xmlContent = {\n 'layer-list': {\n $: {\n 'xmlns:android': 'http://schemas.android.com/apk/res/android',\n },\n item: [\n {\n $: {\n // TODO: Ensure these keys don't get out of sync\n 'android:drawable': '@color/splashscreen_background',\n },\n },\n // Only include the image if resizeMode native is in-use.\n resizeMode === 'native' && {\n bitmap: [\n {\n $: {\n 'android:gravity': 'center',\n // TODO: Ensure these keys don't get out of sync\n 'android:src': '@drawable/splashscreen_image',\n },\n },\n ],\n },\n ].filter(Boolean),\n },\n };\n await XML.writeXMLAsync({ path: filePath, xml: xmlContent });\n}\n"],"mappings":";;;;;;;AAAA,SAAAA,eAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,cAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIO,MAAME,0BAAgF,GAAGA,CAC9FC,MAAM,EACNC,MAAM,KACH;EACH,OAAO,IAAAC,iCAAgB,EAACF,MAAM,EAAE,CAC9B,SAAS,EACT,MAAOA,MAAM,IAAK;IAChB,IAAIC,MAAM,EAAE;MACV,MAAME,sBAAsB,CAACF,MAAM,EAAED,MAAM,CAACI,UAAU,CAACC,WAAW,CAAC;IACrE;IACA,OAAOL,MAAM;EACf,CAAC,CACF,CAAC;AACJ,CAAC;AAACM,OAAA,CAAAP,0BAAA,GAAAA,0BAAA;AAEK,eAAeI,sBAAsBA,CAC1C;EAAEI;AAAmD,CAAC,EACtDF,WAAmB,EACnB;EACA,MAAMG,QAAQ,GAAI,MAAMC,8BAAa,CAACC,KAAK,CAACC,uBAAuB,CAACN,WAAW,EAAE;IAC/EO,IAAI,EAAE,cAAc;IACpBC,IAAI,EAAE;EACR,CAAC,CAAG;;EAEJ;EACA,MAAMC,UAAU,GAAG;IACjB,YAAY,EAAE;MACZC,CAAC,EAAE;QACD,eAAe,EAAE;MACnB,CAAC;MACDC,IAAI,EAAE,CACJ;QACED,CAAC,EAAE;UACD;UACA,kBAAkB,EAAE;QACtB;MACF,CAAC;MACD;MACAR,UAAU,KAAK,QAAQ,IAAI;QACzBU,MAAM,EAAE,CACN;UACEF,CAAC,EAAE;YACD,iBAAiB,EAAE,QAAQ;YAC3B;YACA,aAAa,EAAE;UACjB;QACF,CAAC;MAEL,CAAC,CACF,CAACG,MAAM,CAACC,OAAO;IAClB;EACF,CAAC;EACD,MAAMC,oBAAG,CAACC,aAAa,CAAC;IAAEC,IAAI,EAAEd,QAAQ;IAAEe,GAAG,EAAET;EAAW,CAAC,CAAC;AAC9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"withAndroidSplashImages.js","names":["IMAGE_CACHE_NAME","SPLASH_SCREEN_FILENAME","DRAWABLES_CONFIGS","default","modes","light","path","dark","dimensionsMultiplier","mdpi","hdpi","xhdpi","xxhdpi","xxxhdpi","withAndroidSplashImages","config","withDangerousMod","setSplashImageDrawablesAsync","modRequest","projectRoot","clearAllExistingSplashImagesAsync","splash","getAndroidSplashConfig","darkSplash","getAndroidDarkSplashConfig","Promise","all","setSplashImageDrawablesForThemeAsync","androidMainPath","join","Object","values","map","filePath","fs","pathExists","resolve","remove","theme","imageKey","image","source","generateImageAsync","cacheType","src","outputPath","folder","dirname","ensureDir","writeFile"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashImages.ts"],"sourcesContent":["import { ConfigPlugin, withDangerousMod } from '@expo/config-plugins';\nimport { ExpoConfig } from '@expo/config-types';\nimport { generateImageAsync } from '@expo/image-utils';\nimport fs from 'fs-extra';\nimport path from 'path';\n\nimport {\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_image.png';\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_FILENAME}`,\n },\n dark: {\n path: `./res/drawable-night/${SPLASH_SCREEN_FILENAME}`,\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 = (config) => {\n return withDangerousMod(config, [\n 'android',\n async (config) => {\n await setSplashImageDrawablesAsync(config, config.modRequest.projectRoot);\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 projectRoot: string\n) {\n await clearAllExistingSplashImagesAsync(projectRoot);\n\n const splash = getAndroidSplashConfig(config);\n const darkSplash = getAndroidDarkSplashConfig(config);\n\n await Promise.all([\n setSplashImageDrawablesForThemeAsync(splash, 'light', projectRoot),\n setSplashImageDrawablesForThemeAsync(darkSplash, 'dark', projectRoot),\n ]);\n}\n\nasync function clearAllExistingSplashImagesAsync(projectRoot: string) {\n const androidMainPath = path.join(projectRoot, 'android/app/src/main');\n\n await Promise.all(\n Object.values(DRAWABLES_CONFIGS).map(async ({ modes }) => {\n await Promise.all(\n Object.values(modes).map(async ({ path: filePath }) => {\n if (await fs.pathExists(path.resolve(androidMainPath, filePath))) {\n await fs.remove(path.resolve(androidMainPath, filePath));\n }\n })\n );\n })\n );\n}\n\nexport async function setSplashImageDrawablesForThemeAsync(\n config: SplashScreenConfig | null,\n theme: 'dark' | 'light',\n projectRoot: string\n) {\n if (!config) return;\n const androidMainPath = path.join(projectRoot, 'android/app/src/main');\n\n await Promise.all(\n ['mdpi', 'hdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi'].map(async (imageKey) => {\n // @ts-ignore\n const image = config[imageKey];\n if (image) {\n // Using this method will cache the images in `.expo` based on the properties used to generate them.\n // this method also supports remote URLs and using the global sharp instance.\n const { source } = await generateImageAsync({ projectRoot, cacheType: IMAGE_CACHE_NAME }, {\n src: image,\n } as any);\n\n // Get output path for drawable.\n const outputPath = path.join(\n androidMainPath,\n // @ts-ignore\n DRAWABLES_CONFIGS[imageKey].modes[theme].path\n );\n // Ensure directory exists.\n const folder = path.dirname(outputPath);\n await fs.ensureDir(folder);\n // Write image buffer to the file system.\n await fs.writeFile(outputPath, source);\n }\n return null;\n })\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"withAndroidSplashImages.js","names":["_configPlugins","data","require","_imageUtils","_fsExtra","_interopRequireDefault","_path","_getAndroidSplashConfig","obj","__esModule","default","IMAGE_CACHE_NAME","SPLASH_SCREEN_FILENAME","DRAWABLES_CONFIGS","modes","light","path","dark","dimensionsMultiplier","mdpi","hdpi","xhdpi","xxhdpi","xxxhdpi","withAndroidSplashImages","config","withDangerousMod","setSplashImageDrawablesAsync","modRequest","projectRoot","exports","clearAllExistingSplashImagesAsync","splash","getAndroidSplashConfig","darkSplash","getAndroidDarkSplashConfig","Promise","all","setSplashImageDrawablesForThemeAsync","androidMainPath","join","Object","values","map","filePath","fs","pathExists","resolve","remove","theme","imageKey","image","source","generateImageAsync","cacheType","src","outputPath","folder","dirname","ensureDir","writeFile"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashImages.ts"],"sourcesContent":["import { ConfigPlugin, withDangerousMod } from '@expo/config-plugins';\nimport { ExpoConfig } from '@expo/config-types';\nimport { generateImageAsync } from '@expo/image-utils';\nimport fs from 'fs-extra';\nimport path from 'path';\n\nimport {\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_image.png';\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_FILENAME}`,\n },\n dark: {\n path: `./res/drawable-night/${SPLASH_SCREEN_FILENAME}`,\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 = (config) => {\n return withDangerousMod(config, [\n 'android',\n async (config) => {\n await setSplashImageDrawablesAsync(config, config.modRequest.projectRoot);\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 projectRoot: string\n) {\n await clearAllExistingSplashImagesAsync(projectRoot);\n\n const splash = getAndroidSplashConfig(config);\n const darkSplash = getAndroidDarkSplashConfig(config);\n\n await Promise.all([\n setSplashImageDrawablesForThemeAsync(splash, 'light', projectRoot),\n setSplashImageDrawablesForThemeAsync(darkSplash, 'dark', projectRoot),\n ]);\n}\n\nasync function clearAllExistingSplashImagesAsync(projectRoot: string) {\n const androidMainPath = path.join(projectRoot, 'android/app/src/main');\n\n await Promise.all(\n Object.values(DRAWABLES_CONFIGS).map(async ({ modes }) => {\n await Promise.all(\n Object.values(modes).map(async ({ path: filePath }) => {\n if (await fs.pathExists(path.resolve(androidMainPath, filePath))) {\n await fs.remove(path.resolve(androidMainPath, filePath));\n }\n })\n );\n })\n );\n}\n\nexport async function setSplashImageDrawablesForThemeAsync(\n config: SplashScreenConfig | null,\n theme: 'dark' | 'light',\n projectRoot: string\n) {\n if (!config) return;\n const androidMainPath = path.join(projectRoot, 'android/app/src/main');\n\n await Promise.all(\n ['mdpi', 'hdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi'].map(async (imageKey) => {\n // @ts-ignore\n const image = config[imageKey];\n if (image) {\n // Using this method will cache the images in `.expo` based on the properties used to generate them.\n // this method also supports remote URLs and using the global sharp instance.\n const { source } = await generateImageAsync({ projectRoot, cacheType: IMAGE_CACHE_NAME }, {\n src: image,\n } as any);\n\n // Get output path for drawable.\n const outputPath = path.join(\n androidMainPath,\n // @ts-ignore\n DRAWABLES_CONFIGS[imageKey].modes[theme].path\n );\n // Ensure directory exists.\n const folder = path.dirname(outputPath);\n await fs.ensureDir(folder);\n // Write image buffer to the file system.\n await fs.writeFile(outputPath, source);\n }\n return null;\n })\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"withAndroidSplashLegacyMainActivity.js","names":["debug","Debug","SHOW_SPLASH_ID","withAndroidSplashLegacyMainActivity","config","withMainActivity","modResults","contents","setSplashScreenLegacyMainActivity","language","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 { 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 = (config) => {\n return withMainActivity(config, (config) => {\n config.modResults.contents = setSplashScreenLegacyMainActivity(\n config,\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 mainActivity: string,\n language: 'java' | 'kt'\n): string {\n debug(`Modify with language: \"${language}\"`);\n const splashConfig = getAndroidSplashConfig(config);\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 'expo.modules.splashscreen.SplashScreen',\n 'expo.modules.splashscreen.SplashScreenImageResizeMode',\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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"}
1
+ {"version":3,"file":"withAndroidSplashLegacyMainActivity.js","names":["_configPlugins","data","require","_codeMod","_generateCode","_debug","_interopRequireDefault","_getAndroidSplashConfig","obj","__esModule","default","debug","Debug","SHOW_SPLASH_ID","withAndroidSplashLegacyMainActivity","config","withMainActivity","modResults","contents","setSplashScreenLegacyMainActivity","language","exports","mainActivity","_config$androidStatus","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 { 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 = (config) => {\n return withMainActivity(config, (config) => {\n config.modResults.contents = setSplashScreenLegacyMainActivity(\n config,\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 mainActivity: string,\n language: 'java' | 'kt'\n): string {\n debug(`Modify with language: \"${language}\"`);\n const splashConfig = getAndroidSplashConfig(config);\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 'expo.modules.splashscreen.SplashScreen',\n 'expo.modules.splashscreen.SplashScreenImageResizeMode',\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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"withAndroidSplashScreen.js","names":["withAndroidSplashScreen","config","splashConfig","getAndroidSplashConfig","backgroundColor","androidStatusBar","toLowerCase","WarningAggregator","addWarningAndroid","withPlugins","withAndroidSplashImages","withAndroidSplashDrawables","shouldUpdateLegacyMainActivity","withAndroidSplashLegacyMainActivity","withAndroidSplashStyles","withAndroidSplashStrings","projectRoot","_internal","packagePath","resolveFrom","version","JsonFile","read","toString","semver","lt","sdkVersion"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashScreen.ts"],"sourcesContent":["import { ConfigPlugin, WarningAggregator, withPlugins } from '@expo/config-plugins';\nimport { ExpoConfig } from '@expo/config-types';\nimport JsonFile from '@expo/json-file';\nimport resolveFrom from 'resolve-from';\nimport semver from 'semver';\n\nimport { getAndroidSplashConfig } from './getAndroidSplashConfig';\nimport { withAndroidSplashDrawables } from './withAndroidSplashDrawables';\nimport { withAndroidSplashImages } from './withAndroidSplashImages';\nimport { withAndroidSplashLegacyMainActivity } from './withAndroidSplashLegacyMainActivity';\nimport { withAndroidSplashStrings } from './withAndroidSplashStrings';\nimport { withAndroidSplashStyles } from './withAndroidSplashStyles';\n\nexport const withAndroidSplashScreen: ConfigPlugin = (config) => {\n const splashConfig = getAndroidSplashConfig(config);\n\n // Update the android status bar to match the splash screen\n // androidStatusBar applies info to the app activity style.\n const backgroundColor = splashConfig?.backgroundColor || '#ffffff';\n if (config.androidStatusBar?.backgroundColor) {\n if (\n backgroundColor.toLowerCase() !== config.androidStatusBar?.backgroundColor?.toLowerCase?.()\n ) {\n WarningAggregator.addWarningAndroid(\n 'androidStatusBar.backgroundColor',\n 'Color conflicts with the splash.backgroundColor'\n );\n }\n } else {\n if (!config.androidStatusBar) config.androidStatusBar = {};\n config.androidStatusBar.backgroundColor = backgroundColor;\n }\n\n return withPlugins(config, [\n withAndroidSplashImages,\n [withAndroidSplashDrawables, splashConfig],\n ...(shouldUpdateLegacyMainActivity(config) ? [withAndroidSplashLegacyMainActivity] : []),\n withAndroidSplashStyles,\n withAndroidSplashStrings,\n ]);\n};\n\nfunction shouldUpdateLegacyMainActivity(config: ExpoConfig): boolean {\n try {\n const projectRoot = config._internal?.projectRoot;\n const packagePath = resolveFrom(projectRoot, 'expo-splash-screen/package.json');\n if (packagePath) {\n const version = JsonFile.read(packagePath).version?.toString() ?? '';\n return semver.lt(version, '0.12.0');\n }\n // If expo-splash-screen didn't be installed or included in template, we check the sdkVersion instead.\n return !!(config.sdkVersion && semver.lt(config.sdkVersion, '43.0.0'));\n } catch {}\n return false;\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAoE;AAE7D,MAAMA,uBAAqC,GAAIC,MAAM,IAAK;EAAA;EAC/D,MAAMC,YAAY,GAAG,IAAAC,gDAAsB,EAACF,MAAM,CAAC;;EAEnD;EACA;EACA,MAAMG,eAAe,GAAG,CAAAF,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEE,eAAe,KAAI,SAAS;EAClE,6BAAIH,MAAM,CAACI,gBAAgB,kDAAvB,sBAAyBD,eAAe,EAAE;IAAA;IAC5C,IACEA,eAAe,CAACE,WAAW,EAAE,gCAAKL,MAAM,CAACI,gBAAgB,qFAAvB,uBAAyBD,eAAe,qFAAxC,uBAA0CE,WAAW,2DAArD,mDAAyD,GAC3F;MACAC,kCAAiB,CAACC,iBAAiB,CACjC,kCAAkC,EAClC,iDAAiD,CAClD;IACH;EACF,CAAC,MAAM;IACL,IAAI,CAACP,MAAM,CAACI,gBAAgB,EAAEJ,MAAM,CAACI,gBAAgB,GAAG,CAAC,CAAC;IAC1DJ,MAAM,CAACI,gBAAgB,CAACD,eAAe,GAAGA,eAAe;EAC3D;EAEA,OAAO,IAAAK,4BAAW,EAACR,MAAM,EAAE,CACzBS,kDAAuB,EACvB,CAACC,wDAA0B,EAAET,YAAY,CAAC,EAC1C,IAAIU,8BAA8B,CAACX,MAAM,CAAC,GAAG,CAACY,0EAAmC,CAAC,GAAG,EAAE,CAAC,EACxFC,kDAAuB,EACvBC,oDAAwB,CACzB,CAAC;AACJ,CAAC;AAAC;AAEF,SAASH,8BAA8B,CAACX,MAAkB,EAAW;EACnE,IAAI;IAAA;IACF,MAAMe,WAAW,wBAAGf,MAAM,CAACgB,SAAS,sDAAhB,kBAAkBD,WAAW;IACjD,MAAME,WAAW,GAAG,IAAAC,sBAAW,EAACH,WAAW,EAAE,iCAAiC,CAAC;IAC/E,IAAIE,WAAW,EAAE;MAAA;MACf,MAAME,OAAO,sDAAGC,mBAAQ,CAACC,IAAI,CAACJ,WAAW,CAAC,CAACE,OAAO,2DAAlC,uBAAoCG,QAAQ,EAAE,yEAAI,EAAE;MACpE,OAAOC,iBAAM,CAACC,EAAE,CAACL,OAAO,EAAE,QAAQ,CAAC;IACrC;IACA;IACA,OAAO,CAAC,EAAEnB,MAAM,CAACyB,UAAU,IAAIF,iBAAM,CAACC,EAAE,CAACxB,MAAM,CAACyB,UAAU,EAAE,QAAQ,CAAC,CAAC;EACxE,CAAC,CAAC,MAAM,CAAC;EACT,OAAO,KAAK;AACd"}
1
+ {"version":3,"file":"withAndroidSplashScreen.js","names":["_configPlugins","data","require","_jsonFile","_interopRequireDefault","_resolveFrom","_semver","_getAndroidSplashConfig","_withAndroidSplashDrawables","_withAndroidSplashImages","_withAndroidSplashLegacyMainActivity","_withAndroidSplashStrings","_withAndroidSplashStyles","obj","__esModule","default","withAndroidSplashScreen","config","_config$androidStatus","splashConfig","getAndroidSplashConfig","backgroundColor","androidStatusBar","_config$androidStatus2","_config$androidStatus3","_config$androidStatus4","toLowerCase","call","WarningAggregator","addWarningAndroid","withPlugins","withAndroidSplashImages","withAndroidSplashDrawables","shouldUpdateLegacyMainActivity","withAndroidSplashLegacyMainActivity","withAndroidSplashStyles","withAndroidSplashStrings","exports","_config$_internal","projectRoot","_internal","packagePath","resolveFrom","_JsonFile$read$versio","_JsonFile$read$versio2","version","JsonFile","read","toString","semver","lt","sdkVersion"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashScreen.ts"],"sourcesContent":["import { ConfigPlugin, WarningAggregator, withPlugins } from '@expo/config-plugins';\nimport { ExpoConfig } from '@expo/config-types';\nimport JsonFile from '@expo/json-file';\nimport resolveFrom from 'resolve-from';\nimport semver from 'semver';\n\nimport { getAndroidSplashConfig } from './getAndroidSplashConfig';\nimport { withAndroidSplashDrawables } from './withAndroidSplashDrawables';\nimport { withAndroidSplashImages } from './withAndroidSplashImages';\nimport { withAndroidSplashLegacyMainActivity } from './withAndroidSplashLegacyMainActivity';\nimport { withAndroidSplashStrings } from './withAndroidSplashStrings';\nimport { withAndroidSplashStyles } from './withAndroidSplashStyles';\n\nexport const withAndroidSplashScreen: ConfigPlugin = (config) => {\n const splashConfig = getAndroidSplashConfig(config);\n\n // Update the android status bar to match the splash screen\n // androidStatusBar applies info to the app activity style.\n const backgroundColor = splashConfig?.backgroundColor || '#ffffff';\n if (config.androidStatusBar?.backgroundColor) {\n if (\n backgroundColor.toLowerCase() !== config.androidStatusBar?.backgroundColor?.toLowerCase?.()\n ) {\n WarningAggregator.addWarningAndroid(\n 'androidStatusBar.backgroundColor',\n 'Color conflicts with the splash.backgroundColor'\n );\n }\n } else {\n if (!config.androidStatusBar) config.androidStatusBar = {};\n config.androidStatusBar.backgroundColor = backgroundColor;\n }\n\n return withPlugins(config, [\n withAndroidSplashImages,\n [withAndroidSplashDrawables, splashConfig],\n ...(shouldUpdateLegacyMainActivity(config) ? [withAndroidSplashLegacyMainActivity] : []),\n withAndroidSplashStyles,\n withAndroidSplashStrings,\n ]);\n};\n\nfunction shouldUpdateLegacyMainActivity(config: ExpoConfig): boolean {\n try {\n const projectRoot = config._internal?.projectRoot;\n const packagePath = resolveFrom(projectRoot, 'expo-splash-screen/package.json');\n if (packagePath) {\n const version = JsonFile.read(packagePath).version?.toString() ?? '';\n return semver.lt(version, '0.12.0');\n }\n // If expo-splash-screen didn't be installed or included in template, we check the sdkVersion instead.\n return !!(config.sdkVersion && semver.lt(config.sdkVersion, '43.0.0'));\n } catch {}\n return false;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"withAndroidSplashStrings.js","names":["RESIZE_MODE_KEY","STATUS_BAR_TRANSLUCENT_KEY","withAndroidSplashStrings","config","withStringsXml","splashConfig","getAndroidSplashConfig","resizeMode","statusBarTranslucent","androidStatusBar","translucent","modResults","setSplashStrings","strings","AndroidConfig","Strings","setStringItem","Resources","buildResourceItem","name","value","translatable","String"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashStrings.ts"],"sourcesContent":["import { AndroidConfig, ConfigPlugin, withStringsXml } from '@expo/config-plugins';\n\nimport { getAndroidSplashConfig } from './getAndroidSplashConfig';\n\nconst RESIZE_MODE_KEY = 'expo_splash_screen_resize_mode';\nconst STATUS_BAR_TRANSLUCENT_KEY = 'expo_splash_screen_status_bar_translucent';\n\nexport const withAndroidSplashStrings: ConfigPlugin = (config) => {\n return withStringsXml(config, (config) => {\n const splashConfig = getAndroidSplashConfig(config);\n if (splashConfig) {\n const { resizeMode } = splashConfig;\n const statusBarTranslucent = !!config.androidStatusBar?.translucent;\n config.modResults = setSplashStrings(config.modResults, resizeMode, statusBarTranslucent);\n }\n return config;\n });\n};\n\nexport function setSplashStrings(\n strings: AndroidConfig.Resources.ResourceXML,\n resizeMode: string,\n statusBarTranslucent: boolean\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 AndroidConfig.Resources.buildResourceItem({\n name: STATUS_BAR_TRANSLUCENT_KEY,\n value: String(statusBarTranslucent),\n translatable: false,\n }),\n ],\n strings\n );\n}\n"],"mappings":";;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA,MAAMA,eAAe,GAAG,gCAAgC;AACxD,MAAMC,0BAA0B,GAAG,2CAA2C;AAEvE,MAAMC,wBAAsC,GAAIC,MAAM,IAAK;EAChE,OAAO,IAAAC,+BAAc,EAACD,MAAM,EAAGA,MAAM,IAAK;IACxC,MAAME,YAAY,GAAG,IAAAC,gDAAsB,EAACH,MAAM,CAAC;IACnD,IAAIE,YAAY,EAAE;MAAA;MAChB,MAAM;QAAEE;MAAW,CAAC,GAAGF,YAAY;MACnC,MAAMG,oBAAoB,GAAG,CAAC,2BAACL,MAAM,CAACM,gBAAgB,kDAAvB,sBAAyBC,WAAW;MACnEP,MAAM,CAACQ,UAAU,GAAGC,gBAAgB,CAACT,MAAM,CAACQ,UAAU,EAAEJ,UAAU,EAAEC,oBAAoB,CAAC;IAC3F;IACA,OAAOL,MAAM;EACf,CAAC,CAAC;AACJ,CAAC;AAAC;AAEK,SAASS,gBAAgB,CAC9BC,OAA4C,EAC5CN,UAAkB,EAClBC,oBAA6B,EACQ;EACrC,OAAOM,8BAAa,CAACC,OAAO,CAACC,aAAa,CACxC,CACEF,8BAAa,CAACG,SAAS,CAACC,iBAAiB,CAAC;IACxCC,IAAI,EAAEnB,eAAe;IACrBoB,KAAK,EAAEb,UAAU;IACjBc,YAAY,EAAE;EAChB,CAAC,CAAC,EACFP,8BAAa,CAACG,SAAS,CAACC,iBAAiB,CAAC;IACxCC,IAAI,EAAElB,0BAA0B;IAChCmB,KAAK,EAAEE,MAAM,CAACd,oBAAoB,CAAC;IACnCa,YAAY,EAAE;EAChB,CAAC,CAAC,CACH,EACDR,OAAO,CACR;AACH"}
1
+ {"version":3,"file":"withAndroidSplashStrings.js","names":["_configPlugins","data","require","_getAndroidSplashConfig","RESIZE_MODE_KEY","STATUS_BAR_TRANSLUCENT_KEY","withAndroidSplashStrings","config","withStringsXml","splashConfig","getAndroidSplashConfig","_config$androidStatus","resizeMode","statusBarTranslucent","androidStatusBar","translucent","modResults","setSplashStrings","exports","strings","AndroidConfig","Strings","setStringItem","Resources","buildResourceItem","name","value","translatable","String"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashStrings.ts"],"sourcesContent":["import { AndroidConfig, ConfigPlugin, withStringsXml } from '@expo/config-plugins';\n\nimport { getAndroidSplashConfig } from './getAndroidSplashConfig';\n\nconst RESIZE_MODE_KEY = 'expo_splash_screen_resize_mode';\nconst STATUS_BAR_TRANSLUCENT_KEY = 'expo_splash_screen_status_bar_translucent';\n\nexport const withAndroidSplashStrings: ConfigPlugin = (config) => {\n return withStringsXml(config, (config) => {\n const splashConfig = getAndroidSplashConfig(config);\n if (splashConfig) {\n const { resizeMode } = splashConfig;\n const statusBarTranslucent = !!config.androidStatusBar?.translucent;\n config.modResults = setSplashStrings(config.modResults, resizeMode, statusBarTranslucent);\n }\n return config;\n });\n};\n\nexport function setSplashStrings(\n strings: AndroidConfig.Resources.ResourceXML,\n resizeMode: string,\n statusBarTranslucent: boolean\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 AndroidConfig.Resources.buildResourceItem({\n name: STATUS_BAR_TRANSLUCENT_KEY,\n value: String(statusBarTranslucent),\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;AACxD,MAAMC,0BAA0B,GAAG,2CAA2C;AAEvE,MAAMC,wBAAsC,GAAIC,MAAM,IAAK;EAChE,OAAO,IAAAC,+BAAc,EAACD,MAAM,EAAGA,MAAM,IAAK;IACxC,MAAME,YAAY,GAAG,IAAAC,gDAAsB,EAACH,MAAM,CAAC;IACnD,IAAIE,YAAY,EAAE;MAAA,IAAAE,qBAAA;MAChB,MAAM;QAAEC;MAAW,CAAC,GAAGH,YAAY;MACnC,MAAMI,oBAAoB,GAAG,CAAC,GAAAF,qBAAA,GAACJ,MAAM,CAACO,gBAAgB,cAAAH,qBAAA,eAAvBA,qBAAA,CAAyBI,WAAW;MACnER,MAAM,CAACS,UAAU,GAAGC,gBAAgB,CAACV,MAAM,CAACS,UAAU,EAAEJ,UAAU,EAAEC,oBAAoB,CAAC;IAC3F;IACA,OAAON,MAAM;EACf,CAAC,CAAC;AACJ,CAAC;AAACW,OAAA,CAAAZ,wBAAA,GAAAA,wBAAA;AAEK,SAASW,gBAAgBA,CAC9BE,OAA4C,EAC5CP,UAAkB,EAClBC,oBAA6B,EACQ;EACrC,OAAOO,8BAAa,CAACC,OAAO,CAACC,aAAa,CACxC,CACEF,8BAAa,CAACG,SAAS,CAACC,iBAAiB,CAAC;IACxCC,IAAI,EAAErB,eAAe;IACrBsB,KAAK,EAAEd,UAAU;IACjBe,YAAY,EAAE;EAChB,CAAC,CAAC,EACFP,8BAAa,CAACG,SAAS,CAACC,iBAAiB,CAAC;IACxCC,IAAI,EAAEpB,0BAA0B;IAChCqB,KAAK,EAAEE,MAAM,CAACf,oBAAoB,CAAC;IACnCc,YAAY,EAAE;EAChB,CAAC,CAAC,CACH,EACDR,OAAO,CACR;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"withAndroidSplashStyles.js","names":["styleResourceGroup","name","parent","SPLASH_COLOR_NAME","withAndroidSplashStyles","config","withAndroidColors","backgroundColor","getSplashBackgroundColor","modResults","setSplashColorsForTheme","withAndroidColorsNight","getSplashDarkBackgroundColor","withAndroidStyles","removeOldSplashStyleGroup","setSplashStylesForTheme","styles","group","resources","style","filter","$","head","matches","getAndroidSplashConfig","getAndroidDarkSplashConfig","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 { getAndroidDarkSplashConfig, getAndroidSplashConfig } from './getAndroidSplashConfig';\n\nconst styleResourceGroup = {\n name: 'Theme.App.SplashScreen',\n parent: 'AppTheme',\n};\n\nconst SPLASH_COLOR_NAME = 'splashscreen_background';\n\nexport const withAndroidSplashStyles: ConfigPlugin = (config) => {\n config = withAndroidColors(config, (config) => {\n const backgroundColor = getSplashBackgroundColor(config);\n config.modResults = setSplashColorsForTheme(config.modResults, backgroundColor);\n return config;\n });\n config = withAndroidColorsNight(config, (config) => {\n const backgroundColor = getSplashDarkBackgroundColor(config);\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 = setSplashStylesForTheme(config.modResults);\n return config;\n });\n return config;\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(config: ExpoConfig): string | null {\n return getAndroidSplashConfig(config)?.backgroundColor ?? null;\n}\n\nexport function getSplashDarkBackgroundColor(config: ExpoConfig): string | null {\n return getAndroidDarkSplashConfig(config)?.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',\n name: 'android:windowBackground',\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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"}
1
+ {"version":3,"file":"withAndroidSplashStyles.js","names":["_configPlugins","data","require","_android","_getAndroidSplashConfig","styleResourceGroup","name","parent","SPLASH_COLOR_NAME","withAndroidSplashStyles","config","withAndroidColors","backgroundColor","getSplashBackgroundColor","modResults","setSplashColorsForTheme","withAndroidColorsNight","getSplashDarkBackgroundColor","withAndroidStyles","removeOldSplashStyleGroup","setSplashStylesForTheme","exports","styles","_styles$resources$sty","_styles$resources$sty2","group","resources","style","filter","call","$","head","matches","_getAndroidSplashConf","_getAndroidSplashConf2","getAndroidSplashConfig","_getAndroidDarkSplash","_getAndroidDarkSplash2","getAndroidDarkSplashConfig","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 { getAndroidDarkSplashConfig, getAndroidSplashConfig } from './getAndroidSplashConfig';\n\nconst styleResourceGroup = {\n name: 'Theme.App.SplashScreen',\n parent: 'AppTheme',\n};\n\nconst SPLASH_COLOR_NAME = 'splashscreen_background';\n\nexport const withAndroidSplashStyles: ConfigPlugin = (config) => {\n config = withAndroidColors(config, (config) => {\n const backgroundColor = getSplashBackgroundColor(config);\n config.modResults = setSplashColorsForTheme(config.modResults, backgroundColor);\n return config;\n });\n config = withAndroidColorsNight(config, (config) => {\n const backgroundColor = getSplashDarkBackgroundColor(config);\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 = setSplashStylesForTheme(config.modResults);\n return config;\n });\n return config;\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(config: ExpoConfig): string | null {\n return getAndroidSplashConfig(config)?.backgroundColor ?? null;\n}\n\nexport function getSplashDarkBackgroundColor(config: ExpoConfig): string | null {\n return getAndroidDarkSplashConfig(config)?.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',\n name: 'android:windowBackground',\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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"withIosSplashAssets.js","names":["debug","Debug","IMAGE_CACHE_NAME","IMAGESET_PATH","BACKGROUND_IMAGESET_PATH","PNG_FILENAME","DARK_PNG_FILENAME","TABLET_PNG_FILENAME","DARK_TABLET_PNG_FILENAME","withIosSplashAssets","config","splash","withDangerousMod","iosNamedProjectRoot","IOSConfig","Paths","getSourceRoot","modRequest","projectRoot","createSplashScreenBackgroundImageAsync","configureImageAssets","image","darkImage","dark","tabletImage","darkTabletImage","imageSetPath","path","resolve","fs","remove","writeContentsJsonFileAsync","assetPath","copyImageFiles","createPngFileAsync","color","filePath","png","Jimp","writeAsync","createBackgroundImagesAsync","darkColor","tabletColor","darkTabletColor","generateImagesAssetsAsync","generateImageAsset","item","fileName","anyItem","darkItem","tabletItem","darkTabletItem","source","generateImageAsync","cacheType","src","writeFile","items","filter","Promise","all","map","backgroundColor","tabletBackgroundColor","imagesetPath","join","ensureDir","darkAppearances","appearance","value","buildContentsJsonImages","createContentsJsonItem","idiom","filename","scale","appearances","undefined","Boolean","images","writeContentsJsonAsync"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withIosSplashAssets.ts"],"sourcesContent":["import { ConfigPlugin, IOSConfig, withDangerousMod } from '@expo/config-plugins';\nimport { generateImageAsync } from '@expo/image-utils';\nimport Debug from 'debug';\nimport fs from 'fs-extra';\n// @ts-ignore\nimport Jimp from 'jimp-compact';\nimport * as path from 'path';\n\nimport {\n ContentsJsonImage,\n ContentsJsonImageAppearance,\n createContentsJsonItem,\n writeContentsJsonAsync,\n} from '../../icons/AssetContents';\nimport { IOSSplashConfig } from './getIosSplashConfig';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:ios:assets');\n\nconst IMAGE_CACHE_NAME = 'splash-ios';\nconst IMAGESET_PATH = 'Images.xcassets/SplashScreen.imageset';\nconst BACKGROUND_IMAGESET_PATH = 'Images.xcassets/SplashScreenBackground.imageset';\nconst PNG_FILENAME = 'image.png';\nconst DARK_PNG_FILENAME = 'dark_image.png';\nconst TABLET_PNG_FILENAME = 'tablet_image.png';\nconst DARK_TABLET_PNG_FILENAME = 'dark_tablet_image.png';\n\nexport const withIosSplashAssets: ConfigPlugin<IOSSplashConfig> = (config, splash) => {\n if (!splash) {\n return config;\n }\n return withDangerousMod(config, [\n 'ios',\n async (config) => {\n const iosNamedProjectRoot = IOSConfig.Paths.getSourceRoot(config.modRequest.projectRoot);\n\n await createSplashScreenBackgroundImageAsync({\n iosNamedProjectRoot,\n splash,\n });\n\n await configureImageAssets({\n projectRoot: config.modRequest.projectRoot,\n iosNamedProjectRoot,\n image: splash.image,\n darkImage: splash.dark?.image,\n tabletImage: splash.tabletImage,\n darkTabletImage: splash.dark?.tabletImage,\n });\n\n return config;\n },\n ]);\n};\n\n/**\n * Creates imageset containing image for Splash/Launch Screen.\n */\nasync function configureImageAssets({\n projectRoot,\n iosNamedProjectRoot,\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n}: {\n projectRoot: string;\n iosNamedProjectRoot: string;\n image?: string | null;\n darkImage?: string | null;\n tabletImage: string | null;\n darkTabletImage?: string | null;\n}) {\n const imageSetPath = path.resolve(iosNamedProjectRoot, IMAGESET_PATH);\n\n // ensure old SplashScreen imageSet is removed\n await fs.remove(imageSetPath);\n\n if (!image) {\n return;\n }\n\n await writeContentsJsonFileAsync({\n assetPath: imageSetPath,\n image: PNG_FILENAME,\n darkImage: darkImage ? DARK_PNG_FILENAME : null,\n tabletImage: tabletImage ? TABLET_PNG_FILENAME : null,\n darkTabletImage: darkTabletImage ? DARK_TABLET_PNG_FILENAME : null,\n });\n\n await copyImageFiles({\n projectRoot,\n iosNamedProjectRoot,\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n });\n}\n\nasync function createPngFileAsync(color: string, filePath: string) {\n const png = new Jimp(1, 1, color);\n return png.writeAsync(filePath);\n}\n\nasync function createBackgroundImagesAsync({\n iosNamedProjectRoot,\n color,\n darkColor,\n tabletColor,\n darkTabletColor,\n}: {\n iosNamedProjectRoot: string;\n color: string;\n darkColor: string | null;\n tabletColor: string | null;\n darkTabletColor: string | null;\n}) {\n await generateImagesAssetsAsync({\n async generateImageAsset(item, fileName) {\n await createPngFileAsync(\n item,\n path.resolve(iosNamedProjectRoot, BACKGROUND_IMAGESET_PATH, fileName)\n );\n },\n anyItem: color,\n darkItem: darkColor,\n tabletItem: tabletColor,\n darkTabletItem: darkTabletColor,\n });\n}\n\nasync function copyImageFiles({\n projectRoot,\n iosNamedProjectRoot,\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n}: {\n projectRoot: string;\n iosNamedProjectRoot: string;\n image: string;\n darkImage?: string | null;\n tabletImage?: string | null;\n darkTabletImage?: string | null;\n}) {\n await generateImagesAssetsAsync({\n async generateImageAsset(item, fileName) {\n // Using this method will cache the images in `.expo` based on the properties used to generate them.\n // this method also supports remote URLs and using the global sharp instance.\n const { source } = await generateImageAsync({ projectRoot, cacheType: IMAGE_CACHE_NAME }, {\n src: item,\n } as any);\n // Write image buffer to the file system.\n // const assetPath = join(iosNamedProjectRoot, IMAGESET_PATH, filename);\n await fs.writeFile(path.resolve(iosNamedProjectRoot, IMAGESET_PATH, fileName), source);\n },\n anyItem: image,\n darkItem: darkImage,\n tabletItem: tabletImage,\n darkTabletItem: darkTabletImage,\n });\n}\n\nasync function generateImagesAssetsAsync({\n generateImageAsset,\n anyItem,\n darkItem,\n tabletItem,\n darkTabletItem,\n}: {\n generateImageAsset: (item: string, fileName: string) => Promise<void>;\n anyItem: string;\n darkItem?: string | null;\n tabletItem?: string | null;\n darkTabletItem?: string | null;\n}) {\n const items = [\n [anyItem, PNG_FILENAME],\n [darkItem, DARK_PNG_FILENAME],\n [tabletItem, TABLET_PNG_FILENAME],\n [darkTabletItem, DARK_TABLET_PNG_FILENAME],\n ].filter(([item]) => !!item) as unknown as [string, string];\n\n await Promise.all(items.map(([item, fileName]) => generateImageAsset(item, fileName)));\n}\n\nasync function createSplashScreenBackgroundImageAsync({\n iosNamedProjectRoot,\n splash,\n}: {\n // Something like projectRoot/ios/MyApp/\n iosNamedProjectRoot: string;\n splash: IOSSplashConfig;\n}) {\n const color = splash.backgroundColor;\n const darkColor = splash.dark?.backgroundColor;\n const tabletColor = splash.tabletBackgroundColor;\n const darkTabletColor = splash.dark?.tabletBackgroundColor;\n\n const imagesetPath = path.join(iosNamedProjectRoot, BACKGROUND_IMAGESET_PATH);\n // Ensure the Images.xcassets/... path exists\n await fs.remove(imagesetPath);\n await fs.ensureDir(imagesetPath);\n\n await createBackgroundImagesAsync({\n iosNamedProjectRoot,\n color,\n darkColor: darkColor ? darkColor : null,\n tabletColor: tabletColor ? tabletColor : null,\n darkTabletColor: darkTabletColor ? darkTabletColor : null,\n });\n\n await writeContentsJsonFileAsync({\n assetPath: path.resolve(iosNamedProjectRoot, BACKGROUND_IMAGESET_PATH),\n image: PNG_FILENAME,\n darkImage: darkColor ? DARK_PNG_FILENAME : null,\n tabletImage: tabletColor ? TABLET_PNG_FILENAME : null,\n darkTabletImage: darkTabletColor ? DARK_TABLET_PNG_FILENAME : null,\n });\n}\n\nconst darkAppearances: ContentsJsonImageAppearance[] = [\n {\n appearance: 'luminosity',\n value: 'dark',\n } as ContentsJsonImageAppearance,\n];\n\nexport function buildContentsJsonImages({\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n}: {\n image: string;\n tabletImage: string | null;\n darkImage: string | null;\n darkTabletImage: string | null;\n}): ContentsJsonImage[] {\n return [\n // Phone light\n createContentsJsonItem({\n idiom: 'universal',\n filename: image,\n scale: '1x',\n }),\n createContentsJsonItem({\n idiom: 'universal',\n scale: '2x',\n }),\n createContentsJsonItem({\n idiom: 'universal',\n scale: '3x',\n }),\n // Phone dark\n darkImage &&\n createContentsJsonItem({\n idiom: 'universal',\n appearances: darkAppearances,\n filename: darkImage,\n scale: '1x',\n }),\n darkImage &&\n createContentsJsonItem({\n idiom: 'universal',\n appearances: darkAppearances,\n scale: '2x',\n }),\n darkImage &&\n createContentsJsonItem({\n idiom: 'universal',\n appearances: darkAppearances,\n scale: '3x',\n }),\n // Tablet light\n tabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n filename: tabletImage,\n scale: '1x',\n }),\n tabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n scale: '2x',\n }),\n // Phone dark\n darkTabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n appearances: darkAppearances,\n filename: darkTabletImage ?? undefined,\n scale: '1x',\n }),\n darkTabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n appearances: darkAppearances,\n scale: '2x',\n }),\n ].filter(Boolean) as ContentsJsonImage[];\n}\n\nasync function writeContentsJsonFileAsync({\n assetPath,\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n}: {\n assetPath: string;\n image: string;\n darkImage: string | null;\n tabletImage: string | null;\n darkTabletImage: string | null;\n}) {\n const images = buildContentsJsonImages({ image, darkImage, tabletImage, darkTabletImage });\n\n debug(`create contents.json:`, assetPath);\n debug(`use images:`, images);\n await writeContentsJsonAsync(assetPath, { images });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"withIosSplashAssets.js","names":["_configPlugins","data","require","_imageUtils","_debug","_interopRequireDefault","_fsExtra","_jimpCompact","path","_interopRequireWildcard","_AssetContents","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","debug","Debug","IMAGE_CACHE_NAME","IMAGESET_PATH","BACKGROUND_IMAGESET_PATH","PNG_FILENAME","DARK_PNG_FILENAME","TABLET_PNG_FILENAME","DARK_TABLET_PNG_FILENAME","withIosSplashAssets","config","splash","withDangerousMod","_splash$dark","_splash$dark2","iosNamedProjectRoot","IOSConfig","Paths","getSourceRoot","modRequest","projectRoot","createSplashScreenBackgroundImageAsync","configureImageAssets","image","darkImage","dark","tabletImage","darkTabletImage","exports","imageSetPath","resolve","fs","remove","writeContentsJsonFileAsync","assetPath","copyImageFiles","createPngFileAsync","color","filePath","png","Jimp","writeAsync","createBackgroundImagesAsync","darkColor","tabletColor","darkTabletColor","generateImagesAssetsAsync","generateImageAsset","item","fileName","anyItem","darkItem","tabletItem","darkTabletItem","source","generateImageAsync","cacheType","src","writeFile","items","filter","Promise","all","map","_splash$dark3","_splash$dark4","backgroundColor","tabletBackgroundColor","imagesetPath","join","ensureDir","darkAppearances","appearance","value","buildContentsJsonImages","createContentsJsonItem","idiom","filename","scale","appearances","undefined","Boolean","images","writeContentsJsonAsync"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withIosSplashAssets.ts"],"sourcesContent":["import { ConfigPlugin, IOSConfig, withDangerousMod } from '@expo/config-plugins';\nimport { generateImageAsync } from '@expo/image-utils';\nimport Debug from 'debug';\nimport fs from 'fs-extra';\n// @ts-ignore\nimport Jimp from 'jimp-compact';\nimport * as path from 'path';\n\nimport {\n ContentsJsonImage,\n ContentsJsonImageAppearance,\n createContentsJsonItem,\n writeContentsJsonAsync,\n} from '../../icons/AssetContents';\nimport { IOSSplashConfig } from './getIosSplashConfig';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:ios:assets');\n\nconst IMAGE_CACHE_NAME = 'splash-ios';\nconst IMAGESET_PATH = 'Images.xcassets/SplashScreen.imageset';\nconst BACKGROUND_IMAGESET_PATH = 'Images.xcassets/SplashScreenBackground.imageset';\nconst PNG_FILENAME = 'image.png';\nconst DARK_PNG_FILENAME = 'dark_image.png';\nconst TABLET_PNG_FILENAME = 'tablet_image.png';\nconst DARK_TABLET_PNG_FILENAME = 'dark_tablet_image.png';\n\nexport const withIosSplashAssets: ConfigPlugin<IOSSplashConfig> = (config, splash) => {\n if (!splash) {\n return config;\n }\n return withDangerousMod(config, [\n 'ios',\n async (config) => {\n const iosNamedProjectRoot = IOSConfig.Paths.getSourceRoot(config.modRequest.projectRoot);\n\n await createSplashScreenBackgroundImageAsync({\n iosNamedProjectRoot,\n splash,\n });\n\n await configureImageAssets({\n projectRoot: config.modRequest.projectRoot,\n iosNamedProjectRoot,\n image: splash.image,\n darkImage: splash.dark?.image,\n tabletImage: splash.tabletImage,\n darkTabletImage: splash.dark?.tabletImage,\n });\n\n return config;\n },\n ]);\n};\n\n/**\n * Creates imageset containing image for Splash/Launch Screen.\n */\nasync function configureImageAssets({\n projectRoot,\n iosNamedProjectRoot,\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n}: {\n projectRoot: string;\n iosNamedProjectRoot: string;\n image?: string | null;\n darkImage?: string | null;\n tabletImage: string | null;\n darkTabletImage?: string | null;\n}) {\n const imageSetPath = path.resolve(iosNamedProjectRoot, IMAGESET_PATH);\n\n // ensure old SplashScreen imageSet is removed\n await fs.remove(imageSetPath);\n\n if (!image) {\n return;\n }\n\n await writeContentsJsonFileAsync({\n assetPath: imageSetPath,\n image: PNG_FILENAME,\n darkImage: darkImage ? DARK_PNG_FILENAME : null,\n tabletImage: tabletImage ? TABLET_PNG_FILENAME : null,\n darkTabletImage: darkTabletImage ? DARK_TABLET_PNG_FILENAME : null,\n });\n\n await copyImageFiles({\n projectRoot,\n iosNamedProjectRoot,\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n });\n}\n\nasync function createPngFileAsync(color: string, filePath: string) {\n const png = new Jimp(1, 1, color);\n return png.writeAsync(filePath);\n}\n\nasync function createBackgroundImagesAsync({\n iosNamedProjectRoot,\n color,\n darkColor,\n tabletColor,\n darkTabletColor,\n}: {\n iosNamedProjectRoot: string;\n color: string;\n darkColor: string | null;\n tabletColor: string | null;\n darkTabletColor: string | null;\n}) {\n await generateImagesAssetsAsync({\n async generateImageAsset(item, fileName) {\n await createPngFileAsync(\n item,\n path.resolve(iosNamedProjectRoot, BACKGROUND_IMAGESET_PATH, fileName)\n );\n },\n anyItem: color,\n darkItem: darkColor,\n tabletItem: tabletColor,\n darkTabletItem: darkTabletColor,\n });\n}\n\nasync function copyImageFiles({\n projectRoot,\n iosNamedProjectRoot,\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n}: {\n projectRoot: string;\n iosNamedProjectRoot: string;\n image: string;\n darkImage?: string | null;\n tabletImage?: string | null;\n darkTabletImage?: string | null;\n}) {\n await generateImagesAssetsAsync({\n async generateImageAsset(item, fileName) {\n // Using this method will cache the images in `.expo` based on the properties used to generate them.\n // this method also supports remote URLs and using the global sharp instance.\n const { source } = await generateImageAsync({ projectRoot, cacheType: IMAGE_CACHE_NAME }, {\n src: item,\n } as any);\n // Write image buffer to the file system.\n // const assetPath = join(iosNamedProjectRoot, IMAGESET_PATH, filename);\n await fs.writeFile(path.resolve(iosNamedProjectRoot, IMAGESET_PATH, fileName), source);\n },\n anyItem: image,\n darkItem: darkImage,\n tabletItem: tabletImage,\n darkTabletItem: darkTabletImage,\n });\n}\n\nasync function generateImagesAssetsAsync({\n generateImageAsset,\n anyItem,\n darkItem,\n tabletItem,\n darkTabletItem,\n}: {\n generateImageAsset: (item: string, fileName: string) => Promise<void>;\n anyItem: string;\n darkItem?: string | null;\n tabletItem?: string | null;\n darkTabletItem?: string | null;\n}) {\n const items = [\n [anyItem, PNG_FILENAME],\n [darkItem, DARK_PNG_FILENAME],\n [tabletItem, TABLET_PNG_FILENAME],\n [darkTabletItem, DARK_TABLET_PNG_FILENAME],\n ].filter(([item]) => !!item) as unknown as [string, string];\n\n await Promise.all(items.map(([item, fileName]) => generateImageAsset(item, fileName)));\n}\n\nasync function createSplashScreenBackgroundImageAsync({\n iosNamedProjectRoot,\n splash,\n}: {\n // Something like projectRoot/ios/MyApp/\n iosNamedProjectRoot: string;\n splash: IOSSplashConfig;\n}) {\n const color = splash.backgroundColor;\n const darkColor = splash.dark?.backgroundColor;\n const tabletColor = splash.tabletBackgroundColor;\n const darkTabletColor = splash.dark?.tabletBackgroundColor;\n\n const imagesetPath = path.join(iosNamedProjectRoot, BACKGROUND_IMAGESET_PATH);\n // Ensure the Images.xcassets/... path exists\n await fs.remove(imagesetPath);\n await fs.ensureDir(imagesetPath);\n\n await createBackgroundImagesAsync({\n iosNamedProjectRoot,\n color,\n darkColor: darkColor ? darkColor : null,\n tabletColor: tabletColor ? tabletColor : null,\n darkTabletColor: darkTabletColor ? darkTabletColor : null,\n });\n\n await writeContentsJsonFileAsync({\n assetPath: path.resolve(iosNamedProjectRoot, BACKGROUND_IMAGESET_PATH),\n image: PNG_FILENAME,\n darkImage: darkColor ? DARK_PNG_FILENAME : null,\n tabletImage: tabletColor ? TABLET_PNG_FILENAME : null,\n darkTabletImage: darkTabletColor ? DARK_TABLET_PNG_FILENAME : null,\n });\n}\n\nconst darkAppearances: ContentsJsonImageAppearance[] = [\n {\n appearance: 'luminosity',\n value: 'dark',\n } as ContentsJsonImageAppearance,\n];\n\nexport function buildContentsJsonImages({\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n}: {\n image: string;\n tabletImage: string | null;\n darkImage: string | null;\n darkTabletImage: string | null;\n}): ContentsJsonImage[] {\n return [\n // Phone light\n createContentsJsonItem({\n idiom: 'universal',\n filename: image,\n scale: '1x',\n }),\n createContentsJsonItem({\n idiom: 'universal',\n scale: '2x',\n }),\n createContentsJsonItem({\n idiom: 'universal',\n scale: '3x',\n }),\n // Phone dark\n darkImage &&\n createContentsJsonItem({\n idiom: 'universal',\n appearances: darkAppearances,\n filename: darkImage,\n scale: '1x',\n }),\n darkImage &&\n createContentsJsonItem({\n idiom: 'universal',\n appearances: darkAppearances,\n scale: '2x',\n }),\n darkImage &&\n createContentsJsonItem({\n idiom: 'universal',\n appearances: darkAppearances,\n scale: '3x',\n }),\n // Tablet light\n tabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n filename: tabletImage,\n scale: '1x',\n }),\n tabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n scale: '2x',\n }),\n // Phone dark\n darkTabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n appearances: darkAppearances,\n filename: darkTabletImage ?? undefined,\n scale: '1x',\n }),\n darkTabletImage &&\n createContentsJsonItem({\n idiom: 'ipad',\n appearances: darkAppearances,\n scale: '2x',\n }),\n ].filter(Boolean) as ContentsJsonImage[];\n}\n\nasync function writeContentsJsonFileAsync({\n assetPath,\n image,\n darkImage,\n tabletImage,\n darkTabletImage,\n}: {\n assetPath: string;\n image: string;\n darkImage: string | null;\n tabletImage: string | null;\n darkTabletImage: string | null;\n}) {\n const images = buildContentsJsonImages({ image, darkImage, tabletImage, darkTabletImage });\n\n debug(`create contents.json:`, assetPath);\n debug(`use images:`, images);\n await writeContentsJsonAsync(assetPath, { images });\n}\n"],"mappings":";;;;;;;AAAA,SAAAA,eAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,cAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,YAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,WAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,OAAA;EAAA,MAAAH,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAE,MAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,SAAA;EAAA,MAAAL,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAI,QAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAM,aAAA;EAAA,MAAAN,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAK,YAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,KAAA;EAAA,MAAAP,IAAA,GAAAQ,uBAAA,CAAAP,OAAA;EAAAM,IAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAS,eAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,cAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAKmC,SAAAU,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAH,wBAAAO,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAAjB,uBAAAW,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AATnC;;AAYA,MAAMiB,KAAK,GAAG,IAAAC,gBAAK,EAAC,oDAAoD,CAAC;AAEzE,MAAMC,gBAAgB,GAAG,YAAY;AACrC,MAAMC,aAAa,GAAG,uCAAuC;AAC7D,MAAMC,wBAAwB,GAAG,iDAAiD;AAClF,MAAMC,YAAY,GAAG,WAAW;AAChC,MAAMC,iBAAiB,GAAG,gBAAgB;AAC1C,MAAMC,mBAAmB,GAAG,kBAAkB;AAC9C,MAAMC,wBAAwB,GAAG,uBAAuB;AAEjD,MAAMC,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;IAAA,IAAAG,YAAA,EAAAC,aAAA;IAChB,MAAMC,mBAAmB,GAAGC,0BAAS,CAACC,KAAK,CAACC,aAAa,CAACR,MAAM,CAACS,UAAU,CAACC,WAAW,CAAC;IAExF,MAAMC,sCAAsC,CAAC;MAC3CN,mBAAmB;MACnBJ;IACF,CAAC,CAAC;IAEF,MAAMW,oBAAoB,CAAC;MACzBF,WAAW,EAAEV,MAAM,CAACS,UAAU,CAACC,WAAW;MAC1CL,mBAAmB;MACnBQ,KAAK,EAAEZ,MAAM,CAACY,KAAK;MACnBC,SAAS,GAAAX,YAAA,GAAEF,MAAM,CAACc,IAAI,cAAAZ,YAAA,uBAAXA,YAAA,CAAaU,KAAK;MAC7BG,WAAW,EAAEf,MAAM,CAACe,WAAW;MAC/BC,eAAe,GAAAb,aAAA,GAAEH,MAAM,CAACc,IAAI,cAAAX,aAAA,uBAAXA,aAAA,CAAaY;IAChC,CAAC,CAAC;IAEF,OAAOhB,MAAM;EACf,CAAC,CACF,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AAFAkB,OAAA,CAAAnB,mBAAA,GAAAA,mBAAA;AAGA,eAAea,oBAAoBA,CAAC;EAClCF,WAAW;EACXL,mBAAmB;EACnBQ,KAAK;EACLC,SAAS;EACTE,WAAW;EACXC;AAQF,CAAC,EAAE;EACD,MAAME,YAAY,GAAGtD,IAAI,GAACuD,OAAO,CAACf,mBAAmB,EAAEZ,aAAa,CAAC;;EAErE;EACA,MAAM4B,kBAAE,CAACC,MAAM,CAACH,YAAY,CAAC;EAE7B,IAAI,CAACN,KAAK,EAAE;IACV;EACF;EAEA,MAAMU,0BAA0B,CAAC;IAC/BC,SAAS,EAAEL,YAAY;IACvBN,KAAK,EAAElB,YAAY;IACnBmB,SAAS,EAAEA,SAAS,GAAGlB,iBAAiB,GAAG,IAAI;IAC/CoB,WAAW,EAAEA,WAAW,GAAGnB,mBAAmB,GAAG,IAAI;IACrDoB,eAAe,EAAEA,eAAe,GAAGnB,wBAAwB,GAAG;EAChE,CAAC,CAAC;EAEF,MAAM2B,cAAc,CAAC;IACnBf,WAAW;IACXL,mBAAmB;IACnBQ,KAAK;IACLC,SAAS;IACTE,WAAW;IACXC;EACF,CAAC,CAAC;AACJ;AAEA,eAAeS,kBAAkBA,CAACC,KAAa,EAAEC,QAAgB,EAAE;EACjE,MAAMC,GAAG,GAAG,KAAIC,sBAAI,EAAC,CAAC,EAAE,CAAC,EAAEH,KAAK,CAAC;EACjC,OAAOE,GAAG,CAACE,UAAU,CAACH,QAAQ,CAAC;AACjC;AAEA,eAAeI,2BAA2BA,CAAC;EACzC3B,mBAAmB;EACnBsB,KAAK;EACLM,SAAS;EACTC,WAAW;EACXC;AAOF,CAAC,EAAE;EACD,MAAMC,yBAAyB,CAAC;IAC9B,MAAMC,kBAAkBA,CAACC,IAAI,EAAEC,QAAQ,EAAE;MACvC,MAAMb,kBAAkB,CACtBY,IAAI,EACJzE,IAAI,GAACuD,OAAO,CAACf,mBAAmB,EAAEX,wBAAwB,EAAE6C,QAAQ,CAAC,CACtE;IACH,CAAC;IACDC,OAAO,EAAEb,KAAK;IACdc,QAAQ,EAAER,SAAS;IACnBS,UAAU,EAAER,WAAW;IACvBS,cAAc,EAAER;EAClB,CAAC,CAAC;AACJ;AAEA,eAAeV,cAAcA,CAAC;EAC5Bf,WAAW;EACXL,mBAAmB;EACnBQ,KAAK;EACLC,SAAS;EACTE,WAAW;EACXC;AAQF,CAAC,EAAE;EACD,MAAMmB,yBAAyB,CAAC;IAC9B,MAAMC,kBAAkBA,CAACC,IAAI,EAAEC,QAAQ,EAAE;MACvC;MACA;MACA,MAAM;QAAEK;MAAO,CAAC,GAAG,MAAM,IAAAC,gCAAkB,EAAC;QAAEnC,WAAW;QAAEoC,SAAS,EAAEtD;MAAiB,CAAC,EAAE;QACxFuD,GAAG,EAAET;MACP,CAAC,CAAQ;MACT;MACA;MACA,MAAMjB,kBAAE,CAAC2B,SAAS,CAACnF,IAAI,GAACuD,OAAO,CAACf,mBAAmB,EAAEZ,aAAa,EAAE8C,QAAQ,CAAC,EAAEK,MAAM,CAAC;IACxF,CAAC;IACDJ,OAAO,EAAE3B,KAAK;IACd4B,QAAQ,EAAE3B,SAAS;IACnB4B,UAAU,EAAE1B,WAAW;IACvB2B,cAAc,EAAE1B;EAClB,CAAC,CAAC;AACJ;AAEA,eAAemB,yBAAyBA,CAAC;EACvCC,kBAAkB;EAClBG,OAAO;EACPC,QAAQ;EACRC,UAAU;EACVC;AAOF,CAAC,EAAE;EACD,MAAMM,KAAK,GAAG,CACZ,CAACT,OAAO,EAAE7C,YAAY,CAAC,EACvB,CAAC8C,QAAQ,EAAE7C,iBAAiB,CAAC,EAC7B,CAAC8C,UAAU,EAAE7C,mBAAmB,CAAC,EACjC,CAAC8C,cAAc,EAAE7C,wBAAwB,CAAC,CAC3C,CAACoD,MAAM,CAAC,CAAC,CAACZ,IAAI,CAAC,KAAK,CAAC,CAACA,IAAI,CAAgC;EAE3D,MAAMa,OAAO,CAACC,GAAG,CAACH,KAAK,CAACI,GAAG,CAAC,CAAC,CAACf,IAAI,EAAEC,QAAQ,CAAC,KAAKF,kBAAkB,CAACC,IAAI,EAAEC,QAAQ,CAAC,CAAC,CAAC;AACxF;AAEA,eAAe5B,sCAAsCA,CAAC;EACpDN,mBAAmB;EACnBJ;AAKF,CAAC,EAAE;EAAA,IAAAqD,aAAA,EAAAC,aAAA;EACD,MAAM5B,KAAK,GAAG1B,MAAM,CAACuD,eAAe;EACpC,MAAMvB,SAAS,IAAAqB,aAAA,GAAGrD,MAAM,CAACc,IAAI,cAAAuC,aAAA,uBAAXA,aAAA,CAAaE,eAAe;EAC9C,MAAMtB,WAAW,GAAGjC,MAAM,CAACwD,qBAAqB;EAChD,MAAMtB,eAAe,IAAAoB,aAAA,GAAGtD,MAAM,CAACc,IAAI,cAAAwC,aAAA,uBAAXA,aAAA,CAAaE,qBAAqB;EAE1D,MAAMC,YAAY,GAAG7F,IAAI,GAAC8F,IAAI,CAACtD,mBAAmB,EAAEX,wBAAwB,CAAC;EAC7E;EACA,MAAM2B,kBAAE,CAACC,MAAM,CAACoC,YAAY,CAAC;EAC7B,MAAMrC,kBAAE,CAACuC,SAAS,CAACF,YAAY,CAAC;EAEhC,MAAM1B,2BAA2B,CAAC;IAChC3B,mBAAmB;IACnBsB,KAAK;IACLM,SAAS,EAAEA,SAAS,GAAGA,SAAS,GAAG,IAAI;IACvCC,WAAW,EAAEA,WAAW,GAAGA,WAAW,GAAG,IAAI;IAC7CC,eAAe,EAAEA,eAAe,GAAGA,eAAe,GAAG;EACvD,CAAC,CAAC;EAEF,MAAMZ,0BAA0B,CAAC;IAC/BC,SAAS,EAAE3D,IAAI,GAACuD,OAAO,CAACf,mBAAmB,EAAEX,wBAAwB,CAAC;IACtEmB,KAAK,EAAElB,YAAY;IACnBmB,SAAS,EAAEmB,SAAS,GAAGrC,iBAAiB,GAAG,IAAI;IAC/CoB,WAAW,EAAEkB,WAAW,GAAGrC,mBAAmB,GAAG,IAAI;IACrDoB,eAAe,EAAEkB,eAAe,GAAGrC,wBAAwB,GAAG;EAChE,CAAC,CAAC;AACJ;AAEA,MAAM+D,eAA8C,GAAG,CACrD;EACEC,UAAU,EAAE,YAAY;EACxBC,KAAK,EAAE;AACT,CAAC,CACF;AAEM,SAASC,uBAAuBA,CAAC;EACtCnD,KAAK;EACLC,SAAS;EACTE,WAAW;EACXC;AAMF,CAAC,EAAuB;EACtB,OAAO;EACL;EACA,IAAAgD,uCAAsB,EAAC;IACrBC,KAAK,EAAE,WAAW;IAClBC,QAAQ,EAAEtD,KAAK;IACfuD,KAAK,EAAE;EACT,CAAC,CAAC,EACF,IAAAH,uCAAsB,EAAC;IACrBC,KAAK,EAAE,WAAW;IAClBE,KAAK,EAAE;EACT,CAAC,CAAC,EACF,IAAAH,uCAAsB,EAAC;IACrBC,KAAK,EAAE,WAAW;IAClBE,KAAK,EAAE;EACT,CAAC,CAAC;EACF;EACAtD,SAAS,IACP,IAAAmD,uCAAsB,EAAC;IACrBC,KAAK,EAAE,WAAW;IAClBG,WAAW,EAAER,eAAe;IAC5BM,QAAQ,EAAErD,SAAS;IACnBsD,KAAK,EAAE;EACT,CAAC,CAAC,EACJtD,SAAS,IACP,IAAAmD,uCAAsB,EAAC;IACrBC,KAAK,EAAE,WAAW;IAClBG,WAAW,EAAER,eAAe;IAC5BO,KAAK,EAAE;EACT,CAAC,CAAC,EACJtD,SAAS,IACP,IAAAmD,uCAAsB,EAAC;IACrBC,KAAK,EAAE,WAAW;IAClBG,WAAW,EAAER,eAAe;IAC5BO,KAAK,EAAE;EACT,CAAC,CAAC;EACJ;EACApD,WAAW,IACT,IAAAiD,uCAAsB,EAAC;IACrBC,KAAK,EAAE,MAAM;IACbC,QAAQ,EAAEnD,WAAW;IACrBoD,KAAK,EAAE;EACT,CAAC,CAAC,EACJpD,WAAW,IACT,IAAAiD,uCAAsB,EAAC;IACrBC,KAAK,EAAE,MAAM;IACbE,KAAK,EAAE;EACT,CAAC,CAAC;EACJ;EACAnD,eAAe,IACb,IAAAgD,uCAAsB,EAAC;IACrBC,KAAK,EAAE,MAAM;IACbG,WAAW,EAAER,eAAe;IAC5BM,QAAQ,EAAElD,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAIqD,SAAS;IACtCF,KAAK,EAAE;EACT,CAAC,CAAC,EACJnD,eAAe,IACb,IAAAgD,uCAAsB,EAAC;IACrBC,KAAK,EAAE,MAAM;IACbG,WAAW,EAAER,eAAe;IAC5BO,KAAK,EAAE;EACT,CAAC,CAAC,CACL,CAAClB,MAAM,CAACqB,OAAO,CAAC;AACnB;AAEA,eAAehD,0BAA0BA,CAAC;EACxCC,SAAS;EACTX,KAAK;EACLC,SAAS;EACTE,WAAW;EACXC;AAOF,CAAC,EAAE;EACD,MAAMuD,MAAM,GAAGR,uBAAuB,CAAC;IAAEnD,KAAK;IAAEC,SAAS;IAAEE,WAAW;IAAEC;EAAgB,CAAC,CAAC;EAE1F3B,KAAK,CAAE,uBAAsB,EAAEkC,SAAS,CAAC;EACzClC,KAAK,CAAE,aAAY,EAAEkF,MAAM,CAAC;EAC5B,MAAM,IAAAC,uCAAsB,EAACjD,SAAS,EAAE;IAAEgD;EAAO,CAAC,CAAC;AACrD"}
@@ -1 +1 @@
1
- {"version":3,"file":"withIosSplashInfoPlist.js","names":["debug","Debug","withIosSplashInfoPlist","config","splash","withInfoPlist","modResults","setSplashInfoPlist","infoPlist","isDarkModeEnabled","dark","image","tabletImage","backgroundColor","tabletBackgroundColor","existing","ios","userInterfaceStyle","WarningAggregator","addWarningIOS","UIUserInterfaceStyle","UILaunchStoryboardName"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withIosSplashInfoPlist.ts"],"sourcesContent":["import { ConfigPlugin, InfoPlist, WarningAggregator, withInfoPlist } from '@expo/config-plugins';\nimport { ExpoConfig } from '@expo/config-types';\nimport Debug from 'debug';\n\nimport { IOSSplashConfig } from './getIosSplashConfig';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:ios:infoPlist');\n\nexport const withIosSplashInfoPlist: ConfigPlugin<IOSSplashConfig> = (config, splash) => {\n return withInfoPlist(config, (config) => {\n config.modResults = setSplashInfoPlist(config, config.modResults, splash);\n return config;\n });\n};\n\nexport function setSplashInfoPlist(\n config: ExpoConfig,\n infoPlist: InfoPlist,\n splash: IOSSplashConfig\n): InfoPlist {\n const isDarkModeEnabled = !!(\n splash?.dark?.image ||\n splash?.dark?.tabletImage ||\n splash?.dark?.backgroundColor ||\n splash?.dark?.tabletBackgroundColor\n );\n debug(`isDarkModeEnabled: `, isDarkModeEnabled);\n\n if (isDarkModeEnabled) {\n // IOSConfig.UserInterfaceStyle.getUserInterfaceStyle(config);\n // Determine if the user manually defined the userInterfaceStyle incorrectly\n const existing = config.ios?.userInterfaceStyle ?? config.userInterfaceStyle;\n // Add a warning to prevent the dark mode splash screen from not being shown -- this was learned the hard way.\n if (existing && existing !== 'automatic') {\n WarningAggregator.addWarningIOS(\n 'userInterfaceStyle',\n 'The existing `userInterfaceStyle` property is preventing splash screen from working properly. Please remove it or disable dark mode splash screens.'\n );\n }\n // assigning it to auto anyways, but this is fragile because the order of operations matter now\n infoPlist.UIUserInterfaceStyle = 'Automatic';\n } else {\n // NOTE(brentvatne): Commented out this line because it causes https://github.com/expo/expo-cli/issues/3935\n // We should revisit this approach.\n // delete infoPlist.UIUserInterfaceStyle;\n }\n\n if (splash) {\n // TODO: What to do here ??\n infoPlist.UILaunchStoryboardName = 'SplashScreen';\n } else {\n debug(`Disabling UILaunchStoryboardName`);\n delete infoPlist.UILaunchStoryboardName;\n }\n\n return infoPlist;\n}\n"],"mappings":";;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAA0B;AAI1B,MAAMA,KAAK,GAAG,IAAAC,gBAAK,EAAC,uDAAuD,CAAC;AAErE,MAAMC,sBAAqD,GAAG,CAACC,MAAM,EAAEC,MAAM,KAAK;EACvF,OAAO,IAAAC,8BAAa,EAACF,MAAM,EAAGA,MAAM,IAAK;IACvCA,MAAM,CAACG,UAAU,GAAGC,kBAAkB,CAACJ,MAAM,EAAEA,MAAM,CAACG,UAAU,EAAEF,MAAM,CAAC;IACzE,OAAOD,MAAM;EACf,CAAC,CAAC;AACJ,CAAC;AAAC;AAEK,SAASI,kBAAkB,CAChCJ,MAAkB,EAClBK,SAAoB,EACpBJ,MAAuB,EACZ;EAAA;EACX,MAAMK,iBAAiB,GAAG,CAAC,EACzBL,MAAM,aAANA,MAAM,+BAANA,MAAM,CAAEM,IAAI,yCAAZ,aAAcC,KAAK,IACnBP,MAAM,aAANA,MAAM,gCAANA,MAAM,CAAEM,IAAI,0CAAZ,cAAcE,WAAW,IACzBR,MAAM,aAANA,MAAM,gCAANA,MAAM,CAAEM,IAAI,0CAAZ,cAAcG,eAAe,IAC7BT,MAAM,aAANA,MAAM,gCAANA,MAAM,CAAEM,IAAI,0CAAZ,cAAcI,qBAAqB,CACpC;EACDd,KAAK,CAAE,qBAAoB,EAAES,iBAAiB,CAAC;EAE/C,IAAIA,iBAAiB,EAAE;IAAA;IACrB;IACA;IACA,MAAMM,QAAQ,2CAAGZ,MAAM,CAACa,GAAG,gDAAV,YAAYC,kBAAkB,yEAAId,MAAM,CAACc,kBAAkB;IAC5E;IACA,IAAIF,QAAQ,IAAIA,QAAQ,KAAK,WAAW,EAAE;MACxCG,kCAAiB,CAACC,aAAa,CAC7B,oBAAoB,EACpB,qJAAqJ,CACtJ;IACH;IACA;IACAX,SAAS,CAACY,oBAAoB,GAAG,WAAW;EAC9C,CAAC,MAAM;IACL;IACA;IACA;EAAA;EAGF,IAAIhB,MAAM,EAAE;IACV;IACAI,SAAS,CAACa,sBAAsB,GAAG,cAAc;EACnD,CAAC,MAAM;IACLrB,KAAK,CAAE,kCAAiC,CAAC;IACzC,OAAOQ,SAAS,CAACa,sBAAsB;EACzC;EAEA,OAAOb,SAAS;AAClB"}
1
+ {"version":3,"file":"withIosSplashInfoPlist.js","names":["_configPlugins","data","require","_debug","_interopRequireDefault","obj","__esModule","default","debug","Debug","withIosSplashInfoPlist","config","splash","withInfoPlist","modResults","setSplashInfoPlist","exports","infoPlist","_splash$dark","_splash$dark2","_splash$dark3","_splash$dark4","isDarkModeEnabled","dark","image","tabletImage","backgroundColor","tabletBackgroundColor","_config$ios$userInter","_config$ios","existing","ios","userInterfaceStyle","WarningAggregator","addWarningIOS","UIUserInterfaceStyle","UILaunchStoryboardName"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withIosSplashInfoPlist.ts"],"sourcesContent":["import { ConfigPlugin, InfoPlist, WarningAggregator, withInfoPlist } from '@expo/config-plugins';\nimport { ExpoConfig } from '@expo/config-types';\nimport Debug from 'debug';\n\nimport { IOSSplashConfig } from './getIosSplashConfig';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:ios:infoPlist');\n\nexport const withIosSplashInfoPlist: ConfigPlugin<IOSSplashConfig> = (config, splash) => {\n return withInfoPlist(config, (config) => {\n config.modResults = setSplashInfoPlist(config, config.modResults, splash);\n return config;\n });\n};\n\nexport function setSplashInfoPlist(\n config: ExpoConfig,\n infoPlist: InfoPlist,\n splash: IOSSplashConfig\n): InfoPlist {\n const isDarkModeEnabled = !!(\n splash?.dark?.image ||\n splash?.dark?.tabletImage ||\n splash?.dark?.backgroundColor ||\n splash?.dark?.tabletBackgroundColor\n );\n debug(`isDarkModeEnabled: `, isDarkModeEnabled);\n\n if (isDarkModeEnabled) {\n // IOSConfig.UserInterfaceStyle.getUserInterfaceStyle(config);\n // Determine if the user manually defined the userInterfaceStyle incorrectly\n const existing = config.ios?.userInterfaceStyle ?? config.userInterfaceStyle;\n // Add a warning to prevent the dark mode splash screen from not being shown -- this was learned the hard way.\n if (existing && existing !== 'automatic') {\n WarningAggregator.addWarningIOS(\n 'userInterfaceStyle',\n 'The existing `userInterfaceStyle` property is preventing splash screen from working properly. Please remove it or disable dark mode splash screens.'\n );\n }\n // assigning it to auto anyways, but this is fragile because the order of operations matter now\n infoPlist.UIUserInterfaceStyle = 'Automatic';\n } else {\n // NOTE(brentvatne): Commented out this line because it causes https://github.com/expo/expo-cli/issues/3935\n // We should revisit this approach.\n // delete infoPlist.UIUserInterfaceStyle;\n }\n\n if (splash) {\n // TODO: What to do here ??\n infoPlist.UILaunchStoryboardName = 'SplashScreen';\n } else {\n debug(`Disabling UILaunchStoryboardName`);\n delete infoPlist.UILaunchStoryboardName;\n }\n\n return infoPlist;\n}\n"],"mappings":";;;;;;;AAAA,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,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;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;EAAA,IAAAM,YAAA,EAAAC,aAAA,EAAAC,aAAA,EAAAC,aAAA;EACX,MAAMC,iBAAiB,GAAG,CAAC,EACzBV,MAAM,aAANA,MAAM,gBAAAM,YAAA,GAANN,MAAM,CAAEW,IAAI,cAAAL,YAAA,eAAZA,YAAA,CAAcM,KAAK,IACnBZ,MAAM,aAANA,MAAM,gBAAAO,aAAA,GAANP,MAAM,CAAEW,IAAI,cAAAJ,aAAA,eAAZA,aAAA,CAAcM,WAAW,IACzBb,MAAM,aAANA,MAAM,gBAAAQ,aAAA,GAANR,MAAM,CAAEW,IAAI,cAAAH,aAAA,eAAZA,aAAA,CAAcM,eAAe,IAC7Bd,MAAM,aAANA,MAAM,gBAAAS,aAAA,GAANT,MAAM,CAAEW,IAAI,cAAAF,aAAA,eAAZA,aAAA,CAAcM,qBAAqB,CACpC;EACDnB,KAAK,CAAE,qBAAoB,EAAEc,iBAAiB,CAAC;EAE/C,IAAIA,iBAAiB,EAAE;IAAA,IAAAM,qBAAA,EAAAC,WAAA;IACrB;IACA;IACA,MAAMC,QAAQ,IAAAF,qBAAA,IAAAC,WAAA,GAAGlB,MAAM,CAACoB,GAAG,cAAAF,WAAA,uBAAVA,WAAA,CAAYG,kBAAkB,cAAAJ,qBAAA,cAAAA,qBAAA,GAAIjB,MAAM,CAACqB,kBAAkB;IAC5E;IACA,IAAIF,QAAQ,IAAIA,QAAQ,KAAK,WAAW,EAAE;MACxCG,kCAAiB,CAACC,aAAa,CAC7B,oBAAoB,EACpB,qJAAqJ,CACtJ;IACH;IACA;IACAjB,SAAS,CAACkB,oBAAoB,GAAG,WAAW;EAC9C,CAAC,MAAM;IACL;IACA;IACA;EAAA;EAGF,IAAIvB,MAAM,EAAE;IACV;IACAK,SAAS,CAACmB,sBAAsB,GAAG,cAAc;EACnD,CAAC,MAAM;IACL5B,KAAK,CAAE,kCAAiC,CAAC;IACzC,OAAOS,SAAS,CAACmB,sBAAsB;EACzC;EAEA,OAAOnB,SAAS;AAClB"}
@@ -1 +1 @@
1
- {"version":3,"file":"withIosSplashScreen.js","names":["debug","Debug","withIosSplashScreen","config","splash","getIosSplashConfig","withPlugins","withIosSplashInfoPlist","withIosSplashAssets","withIosSplashScreenImage","withIosSplashXcodeProject","withIosSplashScreenStoryboardBaseMod"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withIosSplashScreen.ts"],"sourcesContent":["import { ConfigPlugin, withPlugins } from '@expo/config-plugins';\nimport Debug from 'debug';\n\nimport { getIosSplashConfig, IOSSplashConfig } from './getIosSplashConfig';\nimport { withIosSplashAssets } from './withIosSplashAssets';\nimport { withIosSplashInfoPlist } from './withIosSplashInfoPlist';\nimport { withIosSplashScreenStoryboardBaseMod } from './withIosSplashScreenStoryboard';\nimport { withIosSplashXcodeProject } from './withIosSplashXcodeProject';\nimport { withIosSplashScreenImage } from './wtihIosSplashScreenStoryboardImage';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:ios');\n\nexport const withIosSplashScreen: ConfigPlugin<IOSSplashConfig | undefined | null | void> = (\n config,\n splash\n) => {\n // If the user didn't specify a splash object, infer the splash object from the Expo config.\n if (!splash) {\n splash = getIosSplashConfig(config);\n } else {\n debug(`custom splash config provided`);\n }\n\n debug(`config:`, splash);\n\n return withPlugins(config, [\n [withIosSplashInfoPlist, splash],\n [withIosSplashAssets, splash],\n // Add the image settings to the storyboard.\n [withIosSplashScreenImage, splash],\n // Link storyboard to xcode project.\n // TODO: Maybe fold this into the base mod.\n withIosSplashXcodeProject,\n // Insert the base mod last, no other ios.splashScreenStoryboard mods can be added after this.\n withIosSplashScreenStoryboardBaseMod,\n ]);\n};\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAgF;AAEhF,MAAMA,KAAK,GAAG,IAAAC,gBAAK,EAAC,6CAA6C,CAAC;AAE3D,MAAMC,mBAA4E,GAAG,CAC1FC,MAAM,EACNC,MAAM,KACH;EACH;EACA,IAAI,CAACA,MAAM,EAAE;IACXA,MAAM,GAAG,IAAAC,wCAAkB,EAACF,MAAM,CAAC;EACrC,CAAC,MAAM;IACLH,KAAK,CAAE,+BAA8B,CAAC;EACxC;EAEAA,KAAK,CAAE,SAAQ,EAAEI,MAAM,CAAC;EAExB,OAAO,IAAAE,4BAAW,EAACH,MAAM,EAAE,CACzB,CAACI,gDAAsB,EAAEH,MAAM,CAAC,EAChC,CAACI,0CAAmB,EAAEJ,MAAM,CAAC;EAC7B;EACA,CAACK,8DAAwB,EAAEL,MAAM,CAAC;EAClC;EACA;EACAM,sDAAyB;EACzB;EACAC,qEAAoC,CACrC,CAAC;AACJ,CAAC;AAAC"}
1
+ {"version":3,"file":"withIosSplashScreen.js","names":["_configPlugins","data","require","_debug","_interopRequireDefault","_getIosSplashConfig","_withIosSplashAssets","_withIosSplashInfoPlist","_withIosSplashScreenStoryboard","_withIosSplashXcodeProject","_wtihIosSplashScreenStoryboardImage","obj","__esModule","default","debug","Debug","withIosSplashScreen","config","splash","getIosSplashConfig","withPlugins","withIosSplashInfoPlist","withIosSplashAssets","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 { withIosSplashInfoPlist } from './withIosSplashInfoPlist';\nimport { withIosSplashScreenStoryboardBaseMod } from './withIosSplashScreenStoryboard';\nimport { withIosSplashXcodeProject } from './withIosSplashXcodeProject';\nimport { withIosSplashScreenImage } from './wtihIosSplashScreenStoryboardImage';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:ios');\n\nexport const withIosSplashScreen: ConfigPlugin<IOSSplashConfig | undefined | null | void> = (\n config,\n splash\n) => {\n // If the user didn't specify a splash object, infer the splash object from the Expo config.\n if (!splash) {\n splash = getIosSplashConfig(config);\n } else {\n debug(`custom splash config provided`);\n }\n\n debug(`config:`, splash);\n\n return withPlugins(config, [\n [withIosSplashInfoPlist, splash],\n [withIosSplashAssets, splash],\n // Add the image settings to the storyboard.\n [withIosSplashScreenImage, splash],\n // Link storyboard to xcode project.\n // TODO: Maybe fold this into the base mod.\n withIosSplashXcodeProject,\n // Insert the base mod last, no other ios.splashScreenStoryboard mods can be added after this.\n withIosSplashScreenStoryboardBaseMod,\n ]);\n};\n"],"mappings":";;;;;;AAAA,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,wBAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,uBAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,+BAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,8BAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,2BAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,0BAAA,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;AAAgF,SAAAG,uBAAAO,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEhF,MAAMG,KAAK,GAAG,IAAAC,gBAAK,EAAC,6CAA6C,CAAC;AAE3D,MAAMC,mBAA4E,GAAGA,CAC1FC,MAAM,EACNC,MAAM,KACH;EACH;EACA,IAAI,CAACA,MAAM,EAAE;IACXA,MAAM,GAAG,IAAAC,wCAAkB,EAACF,MAAM,CAAC;EACrC,CAAC,MAAM;IACLH,KAAK,CAAE,+BAA8B,CAAC;EACxC;EAEAA,KAAK,CAAE,SAAQ,EAAEI,MAAM,CAAC;EAExB,OAAO,IAAAE,4BAAW,EAACH,MAAM,EAAE,CACzB,CAACI,gDAAsB,EAAEH,MAAM,CAAC,EAChC,CAACI,0CAAmB,EAAEJ,MAAM,CAAC;EAC7B;EACA,CAACK,8DAAwB,EAAEL,MAAM,CAAC;EAClC;EACA;EACAM,sDAAyB;EACzB;EACAC,qEAAoC,CACrC,CAAC;AACJ,CAAC;AAACC,OAAA,CAAAV,mBAAA,GAAAA,mBAAA"}