@expo/config-plugins 55.0.0 → 55.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -163,8 +163,8 @@ async function setUpdatesConfigAsync(projectRoot, config, androidManifest, expoU
163
163
  (0, _Manifest().removeMetaDataItemFromMainApplication)(mainApplication, Config.DISABLE_ANTI_BRICKING_MEASURES);
164
164
  }
165
165
  const bsPatchSupport = (0, _Updates().getUpdatesBsdiffPatchSupportEnabled)(config);
166
- if (!bsPatchSupport) {
167
- (0, _Manifest().addMetaDataItemToMainApplication)(mainApplication, Config.BSDIFF_PATCH_SUPPORT, 'false');
166
+ if (bsPatchSupport) {
167
+ (0, _Manifest().addMetaDataItemToMainApplication)(mainApplication, Config.BSDIFF_PATCH_SUPPORT, 'true');
168
168
  } else {
169
169
  (0, _Manifest().removeMetaDataItemFromMainApplication)(mainApplication, Config.BSDIFF_PATCH_SUPPORT);
170
170
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Updates.js","names":["_BuildProperties","data","require","_Manifest","_Resources","_Strings","_androidPlugins","_withPlugins","_Updates","_warnings","Config","exports","withUpdates","config","withPlugins","withUpdatesManifest","withRuntimeVersionResource","withUpdatesNativeDebugGradleProps","createBuildGradlePropsConfigPlugin","propName","propValueGetter","updates","useNativeDebug","undefined","withAndroidManifest","projectRoot","modRequest","expoUpdatesPackageVersion","getExpoUpdatesPackageVersion","modResults","setUpdatesConfigAsync","createStringsXmlPlugin","applyRuntimeVersionFromConfigAsync","stringsJSON","applyRuntimeVersionFromConfigForProjectRootAsync","runtimeVersion","getRuntimeVersionNullableAsync","setStringItem","buildResourceItem","name","value","removeStringItem","androidManifest","mainApplication","getMainApplicationOrThrow","addMetaDataItemToMainApplication","ENABLED","String","getUpdatesEnabled","checkOnLaunch","getUpdatesCheckOnLaunch","CHECK_ON_LAUNCH","timeout","getUpdatesTimeout","LAUNCH_WAIT_MS","useEmbeddedUpdate","getUpdatesUseEmbeddedUpdate","removeMetaDataItemFromMainApplication","UPDATES_HAS_EMBEDDED_UPDATE","addWarningAndroid","updateUrl","getUpdateUrl","UPDATE_URL","codeSigningCertificate","getUpdatesCodeSigningCertificate","CODE_SIGNING_CERTIFICATE","codeSigningMetadata","getUpdatesCodeSigningMetadataStringified","CODE_SIGNING_METADATA","requestHeaders","getUpdatesRequestHeadersStringified","UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY","disableAntiBrickingMeasures","getDisableAntiBrickingMeasures","DISABLE_ANTI_BRICKING_MEASURES","bsPatchSupport","getUpdatesBsdiffPatchSupportEnabled","BSDIFF_PATCH_SUPPORT","setVersionsConfigAsync","findMetaDataItem","RUNTIME_VERSION","Error"],"sources":["../../src/android/Updates.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { createBuildGradlePropsConfigPlugin } from './BuildProperties';\nimport {\n addMetaDataItemToMainApplication,\n AndroidManifest,\n findMetaDataItem,\n getMainApplicationOrThrow,\n removeMetaDataItemFromMainApplication,\n} from './Manifest';\nimport { buildResourceItem, ResourceXML } from './Resources';\nimport * as Resources from './Resources';\nimport { removeStringItem, setStringItem } from './Strings';\nimport { ConfigPlugin, ExportedConfigWithProps } from '../Plugin.types';\nimport { createStringsXmlPlugin, withAndroidManifest } from '../plugins/android-plugins';\nimport { withPlugins } from '../plugins/withPlugins';\nimport {\n ExpoConfigUpdates,\n getDisableAntiBrickingMeasures,\n getExpoUpdatesPackageVersion,\n getRuntimeVersionNullableAsync,\n getUpdatesCheckOnLaunch,\n getUpdatesCodeSigningCertificate,\n getUpdatesCodeSigningMetadataStringified,\n getUpdatesRequestHeadersStringified,\n getUpdatesEnabled,\n getUpdatesTimeout,\n getUpdateUrl,\n getUpdatesBsdiffPatchSupportEnabled,\n getUpdatesUseEmbeddedUpdate,\n} from '../utils/Updates';\nimport { addWarningAndroid } from '../utils/warnings';\n\nexport enum Config {\n ENABLED = 'expo.modules.updates.ENABLED',\n CHECK_ON_LAUNCH = 'expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH',\n LAUNCH_WAIT_MS = 'expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS',\n RUNTIME_VERSION = 'expo.modules.updates.EXPO_RUNTIME_VERSION',\n UPDATE_URL = 'expo.modules.updates.EXPO_UPDATE_URL',\n UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY = 'expo.modules.updates.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY',\n UPDATES_HAS_EMBEDDED_UPDATE = 'expo.modules.updates.HAS_EMBEDDED_UPDATE',\n CODE_SIGNING_CERTIFICATE = 'expo.modules.updates.CODE_SIGNING_CERTIFICATE',\n CODE_SIGNING_METADATA = 'expo.modules.updates.CODE_SIGNING_METADATA',\n DISABLE_ANTI_BRICKING_MEASURES = 'expo.modules.updates.DISABLE_ANTI_BRICKING_MEASURES',\n BSDIFF_PATCH_SUPPORT = 'expo.modules.updates.ENABLE_BSDIFF_PATCH_SUPPORT',\n}\n\n// when making changes to this config plugin, ensure the same changes are also made in eas-cli and build-tools\n// Also ensure the docs are up-to-date: https://docs.expo.dev/bare/installing-updates/\n\nexport const withUpdates: ConfigPlugin = (config) => {\n return withPlugins(config, [\n withUpdatesManifest,\n withRuntimeVersionResource,\n withUpdatesNativeDebugGradleProps,\n ]);\n};\n\n/**\n * A config-plugin to update `android/gradle.properties` from the `updates.useNativeDebug` in expo config\n */\nconst withUpdatesNativeDebugGradleProps = createBuildGradlePropsConfigPlugin<ExpoConfig>(\n [\n {\n propName: 'EX_UPDATES_NATIVE_DEBUG',\n propValueGetter: (config) => (config?.updates?.useNativeDebug === true ? 'true' : undefined),\n },\n ],\n 'withUpdatesNativeDebugGradleProps'\n);\n\nconst withUpdatesManifest: ConfigPlugin = (config) => {\n return withAndroidManifest(config, async (config) => {\n const projectRoot = config.modRequest.projectRoot;\n const expoUpdatesPackageVersion = getExpoUpdatesPackageVersion(projectRoot);\n config.modResults = await setUpdatesConfigAsync(\n projectRoot,\n config,\n config.modResults,\n expoUpdatesPackageVersion\n );\n return config;\n });\n};\n\nconst withRuntimeVersionResource = createStringsXmlPlugin(\n applyRuntimeVersionFromConfigAsync,\n 'withRuntimeVersionResource'\n);\n\nexport async function applyRuntimeVersionFromConfigAsync(\n config: ExportedConfigWithProps<Resources.ResourceXML>,\n stringsJSON: ResourceXML\n): Promise<ResourceXML> {\n const projectRoot = config.modRequest.projectRoot;\n return await applyRuntimeVersionFromConfigForProjectRootAsync(projectRoot, config, stringsJSON);\n}\n\nexport async function applyRuntimeVersionFromConfigForProjectRootAsync(\n projectRoot: string,\n config: ExpoConfigUpdates,\n stringsJSON: ResourceXML\n): Promise<ResourceXML> {\n const runtimeVersion = await getRuntimeVersionNullableAsync(projectRoot, config, 'android');\n if (runtimeVersion) {\n return setStringItem(\n [buildResourceItem({ name: 'expo_runtime_version', value: runtimeVersion })],\n stringsJSON\n );\n }\n return removeStringItem('expo_runtime_version', stringsJSON);\n}\n\nexport async function setUpdatesConfigAsync(\n projectRoot: string,\n config: ExpoConfigUpdates,\n androidManifest: AndroidManifest,\n expoUpdatesPackageVersion?: string | null\n): Promise<AndroidManifest> {\n const mainApplication = getMainApplicationOrThrow(androidManifest);\n\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.ENABLED,\n String(getUpdatesEnabled(config))\n );\n const checkOnLaunch = getUpdatesCheckOnLaunch(config, expoUpdatesPackageVersion);\n addMetaDataItemToMainApplication(mainApplication, Config.CHECK_ON_LAUNCH, checkOnLaunch);\n\n const timeout = getUpdatesTimeout(config);\n addMetaDataItemToMainApplication(mainApplication, Config.LAUNCH_WAIT_MS, String(timeout));\n\n const useEmbeddedUpdate = getUpdatesUseEmbeddedUpdate(config);\n if (useEmbeddedUpdate) {\n removeMetaDataItemFromMainApplication(mainApplication, Config.UPDATES_HAS_EMBEDDED_UPDATE);\n } else {\n // TODO: is there a better place for this validation?\n if (timeout === 0 && checkOnLaunch !== 'ALWAYS') {\n addWarningAndroid(\n 'updates.useEmbeddedUpdate',\n `updates.checkOnLaunch should be set to \"ON_LOAD\" and updates.fallbackToCacheTimeout should be set to a non-zero value when updates.useEmbeddedUpdate is set to false. This is because an update must be fetched on the initial launch, when no embedded update is available.`\n );\n }\n addMetaDataItemToMainApplication(mainApplication, Config.UPDATES_HAS_EMBEDDED_UPDATE, 'false');\n }\n\n const updateUrl = getUpdateUrl(config);\n if (updateUrl) {\n addMetaDataItemToMainApplication(mainApplication, Config.UPDATE_URL, updateUrl);\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.UPDATE_URL);\n }\n\n const codeSigningCertificate = getUpdatesCodeSigningCertificate(projectRoot, config);\n if (codeSigningCertificate) {\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.CODE_SIGNING_CERTIFICATE,\n codeSigningCertificate\n );\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.CODE_SIGNING_CERTIFICATE);\n }\n\n const codeSigningMetadata = getUpdatesCodeSigningMetadataStringified(config);\n if (codeSigningMetadata) {\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.CODE_SIGNING_METADATA,\n codeSigningMetadata\n );\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.CODE_SIGNING_METADATA);\n }\n\n const requestHeaders = getUpdatesRequestHeadersStringified(config);\n if (requestHeaders) {\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY,\n requestHeaders\n );\n } else {\n removeMetaDataItemFromMainApplication(\n mainApplication,\n Config.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY\n );\n }\n\n const disableAntiBrickingMeasures = getDisableAntiBrickingMeasures(config);\n if (disableAntiBrickingMeasures) {\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.DISABLE_ANTI_BRICKING_MEASURES,\n 'true'\n );\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.DISABLE_ANTI_BRICKING_MEASURES);\n }\n\n const bsPatchSupport = getUpdatesBsdiffPatchSupportEnabled(config);\n if (!bsPatchSupport) {\n addMetaDataItemToMainApplication(mainApplication, Config.BSDIFF_PATCH_SUPPORT, 'false');\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.BSDIFF_PATCH_SUPPORT);\n }\n\n return await setVersionsConfigAsync(projectRoot, config, androidManifest);\n}\n\nexport async function setVersionsConfigAsync(\n projectRoot: string,\n config: Pick<ExpoConfigUpdates, 'sdkVersion' | 'runtimeVersion'>,\n androidManifest: AndroidManifest\n): Promise<AndroidManifest> {\n const mainApplication = getMainApplicationOrThrow(androidManifest);\n\n const runtimeVersion = await getRuntimeVersionNullableAsync(projectRoot, config, 'android');\n if (!runtimeVersion && findMetaDataItem(mainApplication, Config.RUNTIME_VERSION) > -1) {\n throw new Error(\n 'A runtime version is set in your AndroidManifest.xml, but is missing from your Expo app config (app.json/app.config.js). Either set runtimeVersion in your Expo app config or remove expo.modules.updates.EXPO_RUNTIME_VERSION from your AndroidManifest.xml.'\n );\n }\n if (runtimeVersion) {\n removeMetaDataItemFromMainApplication(mainApplication, 'expo.modules.updates.EXPO_SDK_VERSION');\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.RUNTIME_VERSION,\n '@string/expo_runtime_version'\n );\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.RUNTIME_VERSION);\n removeMetaDataItemFromMainApplication(mainApplication, 'expo.modules.updates.EXPO_SDK_VERSION');\n }\n\n return androidManifest;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Updates.js","names":["_BuildProperties","data","require","_Manifest","_Resources","_Strings","_androidPlugins","_withPlugins","_Updates","_warnings","Config","exports","withUpdates","config","withPlugins","withUpdatesManifest","withRuntimeVersionResource","withUpdatesNativeDebugGradleProps","createBuildGradlePropsConfigPlugin","propName","propValueGetter","updates","useNativeDebug","undefined","withAndroidManifest","projectRoot","modRequest","expoUpdatesPackageVersion","getExpoUpdatesPackageVersion","modResults","setUpdatesConfigAsync","createStringsXmlPlugin","applyRuntimeVersionFromConfigAsync","stringsJSON","applyRuntimeVersionFromConfigForProjectRootAsync","runtimeVersion","getRuntimeVersionNullableAsync","setStringItem","buildResourceItem","name","value","removeStringItem","androidManifest","mainApplication","getMainApplicationOrThrow","addMetaDataItemToMainApplication","ENABLED","String","getUpdatesEnabled","checkOnLaunch","getUpdatesCheckOnLaunch","CHECK_ON_LAUNCH","timeout","getUpdatesTimeout","LAUNCH_WAIT_MS","useEmbeddedUpdate","getUpdatesUseEmbeddedUpdate","removeMetaDataItemFromMainApplication","UPDATES_HAS_EMBEDDED_UPDATE","addWarningAndroid","updateUrl","getUpdateUrl","UPDATE_URL","codeSigningCertificate","getUpdatesCodeSigningCertificate","CODE_SIGNING_CERTIFICATE","codeSigningMetadata","getUpdatesCodeSigningMetadataStringified","CODE_SIGNING_METADATA","requestHeaders","getUpdatesRequestHeadersStringified","UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY","disableAntiBrickingMeasures","getDisableAntiBrickingMeasures","DISABLE_ANTI_BRICKING_MEASURES","bsPatchSupport","getUpdatesBsdiffPatchSupportEnabled","BSDIFF_PATCH_SUPPORT","setVersionsConfigAsync","findMetaDataItem","RUNTIME_VERSION","Error"],"sources":["../../src/android/Updates.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { createBuildGradlePropsConfigPlugin } from './BuildProperties';\nimport {\n addMetaDataItemToMainApplication,\n AndroidManifest,\n findMetaDataItem,\n getMainApplicationOrThrow,\n removeMetaDataItemFromMainApplication,\n} from './Manifest';\nimport { buildResourceItem, ResourceXML } from './Resources';\nimport * as Resources from './Resources';\nimport { removeStringItem, setStringItem } from './Strings';\nimport { ConfigPlugin, ExportedConfigWithProps } from '../Plugin.types';\nimport { createStringsXmlPlugin, withAndroidManifest } from '../plugins/android-plugins';\nimport { withPlugins } from '../plugins/withPlugins';\nimport {\n ExpoConfigUpdates,\n getDisableAntiBrickingMeasures,\n getExpoUpdatesPackageVersion,\n getRuntimeVersionNullableAsync,\n getUpdatesCheckOnLaunch,\n getUpdatesCodeSigningCertificate,\n getUpdatesCodeSigningMetadataStringified,\n getUpdatesRequestHeadersStringified,\n getUpdatesEnabled,\n getUpdatesTimeout,\n getUpdateUrl,\n getUpdatesBsdiffPatchSupportEnabled,\n getUpdatesUseEmbeddedUpdate,\n} from '../utils/Updates';\nimport { addWarningAndroid } from '../utils/warnings';\n\nexport enum Config {\n ENABLED = 'expo.modules.updates.ENABLED',\n CHECK_ON_LAUNCH = 'expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH',\n LAUNCH_WAIT_MS = 'expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS',\n RUNTIME_VERSION = 'expo.modules.updates.EXPO_RUNTIME_VERSION',\n UPDATE_URL = 'expo.modules.updates.EXPO_UPDATE_URL',\n UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY = 'expo.modules.updates.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY',\n UPDATES_HAS_EMBEDDED_UPDATE = 'expo.modules.updates.HAS_EMBEDDED_UPDATE',\n CODE_SIGNING_CERTIFICATE = 'expo.modules.updates.CODE_SIGNING_CERTIFICATE',\n CODE_SIGNING_METADATA = 'expo.modules.updates.CODE_SIGNING_METADATA',\n DISABLE_ANTI_BRICKING_MEASURES = 'expo.modules.updates.DISABLE_ANTI_BRICKING_MEASURES',\n BSDIFF_PATCH_SUPPORT = 'expo.modules.updates.ENABLE_BSDIFF_PATCH_SUPPORT',\n}\n\n// when making changes to this config plugin, ensure the same changes are also made in eas-cli and build-tools\n// Also ensure the docs are up-to-date: https://docs.expo.dev/bare/installing-updates/\n\nexport const withUpdates: ConfigPlugin = (config) => {\n return withPlugins(config, [\n withUpdatesManifest,\n withRuntimeVersionResource,\n withUpdatesNativeDebugGradleProps,\n ]);\n};\n\n/**\n * A config-plugin to update `android/gradle.properties` from the `updates.useNativeDebug` in expo config\n */\nconst withUpdatesNativeDebugGradleProps = createBuildGradlePropsConfigPlugin<ExpoConfig>(\n [\n {\n propName: 'EX_UPDATES_NATIVE_DEBUG',\n propValueGetter: (config) => (config?.updates?.useNativeDebug === true ? 'true' : undefined),\n },\n ],\n 'withUpdatesNativeDebugGradleProps'\n);\n\nconst withUpdatesManifest: ConfigPlugin = (config) => {\n return withAndroidManifest(config, async (config) => {\n const projectRoot = config.modRequest.projectRoot;\n const expoUpdatesPackageVersion = getExpoUpdatesPackageVersion(projectRoot);\n config.modResults = await setUpdatesConfigAsync(\n projectRoot,\n config,\n config.modResults,\n expoUpdatesPackageVersion\n );\n return config;\n });\n};\n\nconst withRuntimeVersionResource = createStringsXmlPlugin(\n applyRuntimeVersionFromConfigAsync,\n 'withRuntimeVersionResource'\n);\n\nexport async function applyRuntimeVersionFromConfigAsync(\n config: ExportedConfigWithProps<Resources.ResourceXML>,\n stringsJSON: ResourceXML\n): Promise<ResourceXML> {\n const projectRoot = config.modRequest.projectRoot;\n return await applyRuntimeVersionFromConfigForProjectRootAsync(projectRoot, config, stringsJSON);\n}\n\nexport async function applyRuntimeVersionFromConfigForProjectRootAsync(\n projectRoot: string,\n config: ExpoConfigUpdates,\n stringsJSON: ResourceXML\n): Promise<ResourceXML> {\n const runtimeVersion = await getRuntimeVersionNullableAsync(projectRoot, config, 'android');\n if (runtimeVersion) {\n return setStringItem(\n [buildResourceItem({ name: 'expo_runtime_version', value: runtimeVersion })],\n stringsJSON\n );\n }\n return removeStringItem('expo_runtime_version', stringsJSON);\n}\n\nexport async function setUpdatesConfigAsync(\n projectRoot: string,\n config: ExpoConfigUpdates,\n androidManifest: AndroidManifest,\n expoUpdatesPackageVersion?: string | null\n): Promise<AndroidManifest> {\n const mainApplication = getMainApplicationOrThrow(androidManifest);\n\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.ENABLED,\n String(getUpdatesEnabled(config))\n );\n const checkOnLaunch = getUpdatesCheckOnLaunch(config, expoUpdatesPackageVersion);\n addMetaDataItemToMainApplication(mainApplication, Config.CHECK_ON_LAUNCH, checkOnLaunch);\n\n const timeout = getUpdatesTimeout(config);\n addMetaDataItemToMainApplication(mainApplication, Config.LAUNCH_WAIT_MS, String(timeout));\n\n const useEmbeddedUpdate = getUpdatesUseEmbeddedUpdate(config);\n if (useEmbeddedUpdate) {\n removeMetaDataItemFromMainApplication(mainApplication, Config.UPDATES_HAS_EMBEDDED_UPDATE);\n } else {\n // TODO: is there a better place for this validation?\n if (timeout === 0 && checkOnLaunch !== 'ALWAYS') {\n addWarningAndroid(\n 'updates.useEmbeddedUpdate',\n `updates.checkOnLaunch should be set to \"ON_LOAD\" and updates.fallbackToCacheTimeout should be set to a non-zero value when updates.useEmbeddedUpdate is set to false. This is because an update must be fetched on the initial launch, when no embedded update is available.`\n );\n }\n addMetaDataItemToMainApplication(mainApplication, Config.UPDATES_HAS_EMBEDDED_UPDATE, 'false');\n }\n\n const updateUrl = getUpdateUrl(config);\n if (updateUrl) {\n addMetaDataItemToMainApplication(mainApplication, Config.UPDATE_URL, updateUrl);\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.UPDATE_URL);\n }\n\n const codeSigningCertificate = getUpdatesCodeSigningCertificate(projectRoot, config);\n if (codeSigningCertificate) {\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.CODE_SIGNING_CERTIFICATE,\n codeSigningCertificate\n );\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.CODE_SIGNING_CERTIFICATE);\n }\n\n const codeSigningMetadata = getUpdatesCodeSigningMetadataStringified(config);\n if (codeSigningMetadata) {\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.CODE_SIGNING_METADATA,\n codeSigningMetadata\n );\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.CODE_SIGNING_METADATA);\n }\n\n const requestHeaders = getUpdatesRequestHeadersStringified(config);\n if (requestHeaders) {\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY,\n requestHeaders\n );\n } else {\n removeMetaDataItemFromMainApplication(\n mainApplication,\n Config.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY\n );\n }\n\n const disableAntiBrickingMeasures = getDisableAntiBrickingMeasures(config);\n if (disableAntiBrickingMeasures) {\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.DISABLE_ANTI_BRICKING_MEASURES,\n 'true'\n );\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.DISABLE_ANTI_BRICKING_MEASURES);\n }\n\n const bsPatchSupport = getUpdatesBsdiffPatchSupportEnabled(config);\n if (bsPatchSupport) {\n addMetaDataItemToMainApplication(mainApplication, Config.BSDIFF_PATCH_SUPPORT, 'true');\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.BSDIFF_PATCH_SUPPORT);\n }\n\n return await setVersionsConfigAsync(projectRoot, config, androidManifest);\n}\n\nexport async function setVersionsConfigAsync(\n projectRoot: string,\n config: Pick<ExpoConfigUpdates, 'sdkVersion' | 'runtimeVersion'>,\n androidManifest: AndroidManifest\n): Promise<AndroidManifest> {\n const mainApplication = getMainApplicationOrThrow(androidManifest);\n\n const runtimeVersion = await getRuntimeVersionNullableAsync(projectRoot, config, 'android');\n if (!runtimeVersion && findMetaDataItem(mainApplication, Config.RUNTIME_VERSION) > -1) {\n throw new Error(\n 'A runtime version is set in your AndroidManifest.xml, but is missing from your Expo app config (app.json/app.config.js). Either set runtimeVersion in your Expo app config or remove expo.modules.updates.EXPO_RUNTIME_VERSION from your AndroidManifest.xml.'\n );\n }\n if (runtimeVersion) {\n removeMetaDataItemFromMainApplication(mainApplication, 'expo.modules.updates.EXPO_SDK_VERSION');\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.RUNTIME_VERSION,\n '@string/expo_runtime_version'\n );\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.RUNTIME_VERSION);\n removeMetaDataItemFromMainApplication(mainApplication, 'expo.modules.updates.EXPO_SDK_VERSION');\n }\n\n return androidManifest;\n}\n"],"mappings":";;;;;;;;;;;AAEA,SAAAA,iBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,gBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,UAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,SAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAOA,SAAAG,WAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,UAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,SAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,QAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAK,gBAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,eAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,aAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,YAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,SAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,QAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAeA,SAAAQ,UAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,SAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAsD,IAE1CS,MAAM,GAAAC,OAAA,CAAAD,MAAA,0BAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAAA,OAANA,MAAM;AAAA,OAclB;AACA;AAEO,MAAME,WAAyB,GAAIC,MAAM,IAAK;EACnD,OAAO,IAAAC,0BAAW,EAACD,MAAM,EAAE,CACzBE,mBAAmB,EACnBC,0BAA0B,EAC1BC,iCAAiC,CAClC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AAFAN,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAGA,MAAMK,iCAAiC,GAAG,IAAAC,qDAAkC,EAC1E,CACE;EACEC,QAAQ,EAAE,yBAAyB;EACnCC,eAAe,EAAGP,MAAM,IAAMA,MAAM,EAAEQ,OAAO,EAAEC,cAAc,KAAK,IAAI,GAAG,MAAM,GAAGC;AACpF,CAAC,CACF,EACD,mCACF,CAAC;AAED,MAAMR,mBAAiC,GAAIF,MAAM,IAAK;EACpD,OAAO,IAAAW,qCAAmB,EAACX,MAAM,EAAE,MAAOA,MAAM,IAAK;IACnD,MAAMY,WAAW,GAAGZ,MAAM,CAACa,UAAU,CAACD,WAAW;IACjD,MAAME,yBAAyB,GAAG,IAAAC,uCAA4B,EAACH,WAAW,CAAC;IAC3EZ,MAAM,CAACgB,UAAU,GAAG,MAAMC,qBAAqB,CAC7CL,WAAW,EACXZ,MAAM,EACNA,MAAM,CAACgB,UAAU,EACjBF,yBACF,CAAC;IACD,OAAOd,MAAM;EACf,CAAC,CAAC;AACJ,CAAC;AAED,MAAMG,0BAA0B,GAAG,IAAAe,wCAAsB,EACvDC,kCAAkC,EAClC,4BACF,CAAC;AAEM,eAAeA,kCAAkCA,CACtDnB,MAAsD,EACtDoB,WAAwB,EACF;EACtB,MAAMR,WAAW,GAAGZ,MAAM,CAACa,UAAU,CAACD,WAAW;EACjD,OAAO,MAAMS,gDAAgD,CAACT,WAAW,EAAEZ,MAAM,EAAEoB,WAAW,CAAC;AACjG;AAEO,eAAeC,gDAAgDA,CACpET,WAAmB,EACnBZ,MAAyB,EACzBoB,WAAwB,EACF;EACtB,MAAME,cAAc,GAAG,MAAM,IAAAC,yCAA8B,EAACX,WAAW,EAAEZ,MAAM,EAAE,SAAS,CAAC;EAC3F,IAAIsB,cAAc,EAAE;IAClB,OAAO,IAAAE,wBAAa,EAClB,CAAC,IAAAC,8BAAiB,EAAC;MAAEC,IAAI,EAAE,sBAAsB;MAAEC,KAAK,EAAEL;IAAe,CAAC,CAAC,CAAC,EAC5EF,WACF,CAAC;EACH;EACA,OAAO,IAAAQ,2BAAgB,EAAC,sBAAsB,EAAER,WAAW,CAAC;AAC9D;AAEO,eAAeH,qBAAqBA,CACzCL,WAAmB,EACnBZ,MAAyB,EACzB6B,eAAgC,EAChCf,yBAAyC,EACf;EAC1B,MAAMgB,eAAe,GAAG,IAAAC,qCAAyB,EAACF,eAAe,CAAC;EAElE,IAAAG,4CAAgC,EAC9BF,eAAe,EACfjC,MAAM,CAACoC,OAAO,EACdC,MAAM,CAAC,IAAAC,4BAAiB,EAACnC,MAAM,CAAC,CAClC,CAAC;EACD,MAAMoC,aAAa,GAAG,IAAAC,kCAAuB,EAACrC,MAAM,EAAEc,yBAAyB,CAAC;EAChF,IAAAkB,4CAAgC,EAACF,eAAe,EAAEjC,MAAM,CAACyC,eAAe,EAAEF,aAAa,CAAC;EAExF,MAAMG,OAAO,GAAG,IAAAC,4BAAiB,EAACxC,MAAM,CAAC;EACzC,IAAAgC,4CAAgC,EAACF,eAAe,EAAEjC,MAAM,CAAC4C,cAAc,EAAEP,MAAM,CAACK,OAAO,CAAC,CAAC;EAEzF,MAAMG,iBAAiB,GAAG,IAAAC,sCAA2B,EAAC3C,MAAM,CAAC;EAC7D,IAAI0C,iBAAiB,EAAE;IACrB,IAAAE,iDAAqC,EAACd,eAAe,EAAEjC,MAAM,CAACgD,2BAA2B,CAAC;EAC5F,CAAC,MAAM;IACL;IACA,IAAIN,OAAO,KAAK,CAAC,IAAIH,aAAa,KAAK,QAAQ,EAAE;MAC/C,IAAAU,6BAAiB,EACf,2BAA2B,EAC3B,8QACF,CAAC;IACH;IACA,IAAAd,4CAAgC,EAACF,eAAe,EAAEjC,MAAM,CAACgD,2BAA2B,EAAE,OAAO,CAAC;EAChG;EAEA,MAAME,SAAS,GAAG,IAAAC,uBAAY,EAAChD,MAAM,CAAC;EACtC,IAAI+C,SAAS,EAAE;IACb,IAAAf,4CAAgC,EAACF,eAAe,EAAEjC,MAAM,CAACoD,UAAU,EAAEF,SAAS,CAAC;EACjF,CAAC,MAAM;IACL,IAAAH,iDAAqC,EAACd,eAAe,EAAEjC,MAAM,CAACoD,UAAU,CAAC;EAC3E;EAEA,MAAMC,sBAAsB,GAAG,IAAAC,2CAAgC,EAACvC,WAAW,EAAEZ,MAAM,CAAC;EACpF,IAAIkD,sBAAsB,EAAE;IAC1B,IAAAlB,4CAAgC,EAC9BF,eAAe,EACfjC,MAAM,CAACuD,wBAAwB,EAC/BF,sBACF,CAAC;EACH,CAAC,MAAM;IACL,IAAAN,iDAAqC,EAACd,eAAe,EAAEjC,MAAM,CAACuD,wBAAwB,CAAC;EACzF;EAEA,MAAMC,mBAAmB,GAAG,IAAAC,mDAAwC,EAACtD,MAAM,CAAC;EAC5E,IAAIqD,mBAAmB,EAAE;IACvB,IAAArB,4CAAgC,EAC9BF,eAAe,EACfjC,MAAM,CAAC0D,qBAAqB,EAC5BF,mBACF,CAAC;EACH,CAAC,MAAM;IACL,IAAAT,iDAAqC,EAACd,eAAe,EAAEjC,MAAM,CAAC0D,qBAAqB,CAAC;EACtF;EAEA,MAAMC,cAAc,GAAG,IAAAC,8CAAmC,EAACzD,MAAM,CAAC;EAClE,IAAIwD,cAAc,EAAE;IAClB,IAAAxB,4CAAgC,EAC9BF,eAAe,EACfjC,MAAM,CAAC6D,yCAAyC,EAChDF,cACF,CAAC;EACH,CAAC,MAAM;IACL,IAAAZ,iDAAqC,EACnCd,eAAe,EACfjC,MAAM,CAAC6D,yCACT,CAAC;EACH;EAEA,MAAMC,2BAA2B,GAAG,IAAAC,yCAA8B,EAAC5D,MAAM,CAAC;EAC1E,IAAI2D,2BAA2B,EAAE;IAC/B,IAAA3B,4CAAgC,EAC9BF,eAAe,EACfjC,MAAM,CAACgE,8BAA8B,EACrC,MACF,CAAC;EACH,CAAC,MAAM;IACL,IAAAjB,iDAAqC,EAACd,eAAe,EAAEjC,MAAM,CAACgE,8BAA8B,CAAC;EAC/F;EAEA,MAAMC,cAAc,GAAG,IAAAC,8CAAmC,EAAC/D,MAAM,CAAC;EAClE,IAAI8D,cAAc,EAAE;IAClB,IAAA9B,4CAAgC,EAACF,eAAe,EAAEjC,MAAM,CAACmE,oBAAoB,EAAE,MAAM,CAAC;EACxF,CAAC,MAAM;IACL,IAAApB,iDAAqC,EAACd,eAAe,EAAEjC,MAAM,CAACmE,oBAAoB,CAAC;EACrF;EAEA,OAAO,MAAMC,sBAAsB,CAACrD,WAAW,EAAEZ,MAAM,EAAE6B,eAAe,CAAC;AAC3E;AAEO,eAAeoC,sBAAsBA,CAC1CrD,WAAmB,EACnBZ,MAAgE,EAChE6B,eAAgC,EACN;EAC1B,MAAMC,eAAe,GAAG,IAAAC,qCAAyB,EAACF,eAAe,CAAC;EAElE,MAAMP,cAAc,GAAG,MAAM,IAAAC,yCAA8B,EAACX,WAAW,EAAEZ,MAAM,EAAE,SAAS,CAAC;EAC3F,IAAI,CAACsB,cAAc,IAAI,IAAA4C,4BAAgB,EAACpC,eAAe,EAAEjC,MAAM,CAACsE,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE;IACrF,MAAM,IAAIC,KAAK,CACb,+PACF,CAAC;EACH;EACA,IAAI9C,cAAc,EAAE;IAClB,IAAAsB,iDAAqC,EAACd,eAAe,EAAE,uCAAuC,CAAC;IAC/F,IAAAE,4CAAgC,EAC9BF,eAAe,EACfjC,MAAM,CAACsE,eAAe,EACtB,8BACF,CAAC;EACH,CAAC,MAAM;IACL,IAAAvB,iDAAqC,EAACd,eAAe,EAAEjC,MAAM,CAACsE,eAAe,CAAC;IAC9E,IAAAvB,iDAAqC,EAACd,eAAe,EAAE,uCAAuC,CAAC;EACjG;EAEA,OAAOD,eAAe;AACxB","ignoreList":[]}
@@ -133,7 +133,7 @@ async function setUpdatesConfigAsync(projectRoot, config, expoPlist, expoUpdates
133
133
  delete newExpoPlist[Config.DISABLE_ANTI_BRICKING_MEASURES];
134
134
  }
135
135
  const bsPatchSupport = (0, _Updates().getUpdatesBsdiffPatchSupportEnabled)(config);
136
- if (!bsPatchSupport) {
136
+ if (bsPatchSupport) {
137
137
  newExpoPlist[Config.ENABLE_BSDIFF_PATCH_SUPPORT] = bsPatchSupport;
138
138
  } else {
139
139
  delete newExpoPlist[Config.ENABLE_BSDIFF_PATCH_SUPPORT];
@@ -1 +1 @@
1
- {"version":3,"file":"Updates.js","names":["_BuildProperties","data","require","_iosPlugins","_withPlugins","_Updates","_warnings","Config","exports","withUpdates","config","withPlugins","withUpdatesPlist","withUpdatesNativeDebugPodfileProps","createBuildPodfilePropsConfigPlugin","propName","propValueGetter","updates","useNativeDebug","undefined","withExpoPlist","projectRoot","modRequest","expoUpdatesPackageVersion","getExpoUpdatesPackageVersion","modResults","setUpdatesConfigAsync","expoPlist","checkOnLaunch","getUpdatesCheckOnLaunch","timeout","getUpdatesTimeout","useEmbeddedUpdate","getUpdatesUseEmbeddedUpdate","addWarningIOS","newExpoPlist","ENABLED","getUpdatesEnabled","CHECK_ON_LAUNCH","LAUNCH_WAIT_MS","UPDATES_HAS_EMBEDDED_UPDATE","updateUrl","getUpdateUrl","UPDATE_URL","codeSigningCertificate","getUpdatesCodeSigningCertificate","CODE_SIGNING_CERTIFICATE","codeSigningMetadata","getUpdatesCodeSigningMetadata","CODE_SIGNING_METADATA","requestHeaders","getUpdatesRequestHeaders","UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY","disableAntiBrickingMeasures","getDisableAntiBrickingMeasures","DISABLE_ANTI_BRICKING_MEASURES","bsPatchSupport","getUpdatesBsdiffPatchSupportEnabled","ENABLE_BSDIFF_PATCH_SUPPORT","setVersionsConfigAsync","runtimeVersion","getRuntimeVersionNullableAsync","RUNTIME_VERSION","Error"],"sources":["../../src/ios/Updates.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { createBuildPodfilePropsConfigPlugin } from './BuildProperties';\nimport { ExpoPlist } from './IosConfig.types';\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withExpoPlist } from '../plugins/ios-plugins';\nimport { withPlugins } from '../plugins/withPlugins';\nimport {\n ExpoConfigUpdates,\n getDisableAntiBrickingMeasures,\n getExpoUpdatesPackageVersion,\n getRuntimeVersionNullableAsync,\n getUpdatesCheckOnLaunch,\n getUpdatesCodeSigningCertificate,\n getUpdatesCodeSigningMetadata,\n getUpdatesRequestHeaders,\n getUpdatesEnabled,\n getUpdatesTimeout,\n getUpdatesBsdiffPatchSupportEnabled,\n getUpdatesUseEmbeddedUpdate,\n getUpdateUrl,\n} from '../utils/Updates';\nimport { addWarningIOS } from '../utils/warnings';\n\nexport enum Config {\n ENABLED = 'EXUpdatesEnabled',\n CHECK_ON_LAUNCH = 'EXUpdatesCheckOnLaunch',\n LAUNCH_WAIT_MS = 'EXUpdatesLaunchWaitMs',\n RUNTIME_VERSION = 'EXUpdatesRuntimeVersion',\n UPDATE_URL = 'EXUpdatesURL',\n UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY = 'EXUpdatesRequestHeaders',\n UPDATES_HAS_EMBEDDED_UPDATE = 'EXUpdatesHasEmbeddedUpdate',\n CODE_SIGNING_CERTIFICATE = 'EXUpdatesCodeSigningCertificate',\n CODE_SIGNING_METADATA = 'EXUpdatesCodeSigningMetadata',\n DISABLE_ANTI_BRICKING_MEASURES = 'EXUpdatesDisableAntiBrickingMeasures',\n ENABLE_BSDIFF_PATCH_SUPPORT = 'EXUpdatesEnableBsdiffPatchSupport',\n}\n\n// when making changes to this config plugin, ensure the same changes are also made in eas-cli and build-tools\n// Also ensure the docs are up-to-date: https://docs.expo.dev/bare/installing-updates/\n\nexport const withUpdates: ConfigPlugin = (config) => {\n return withPlugins(config, [withUpdatesPlist, withUpdatesNativeDebugPodfileProps]);\n};\n\n/**\n * A config-plugin to update `ios/Podfile.properties.json` from the `updates.useNativeDebug` in expo config\n */\nexport const withUpdatesNativeDebugPodfileProps = createBuildPodfilePropsConfigPlugin<ExpoConfig>(\n [\n {\n propName: 'updatesNativeDebug',\n propValueGetter: (config) => (config?.updates?.useNativeDebug === true ? 'true' : undefined),\n },\n ],\n 'withUpdatesNativeDebugPodfileProps'\n);\n\nconst withUpdatesPlist: ConfigPlugin = (config) => {\n return withExpoPlist(config, async (config) => {\n const projectRoot = config.modRequest.projectRoot;\n const expoUpdatesPackageVersion = getExpoUpdatesPackageVersion(projectRoot);\n config.modResults = await setUpdatesConfigAsync(\n projectRoot,\n config,\n config.modResults,\n expoUpdatesPackageVersion\n );\n return config;\n });\n};\n\nexport async function setUpdatesConfigAsync(\n projectRoot: string,\n config: ExpoConfigUpdates,\n expoPlist: ExpoPlist,\n expoUpdatesPackageVersion?: string | null\n): Promise<ExpoPlist> {\n const checkOnLaunch = getUpdatesCheckOnLaunch(config, expoUpdatesPackageVersion);\n const timeout = getUpdatesTimeout(config);\n const useEmbeddedUpdate = getUpdatesUseEmbeddedUpdate(config);\n\n // TODO: is there a better place for this validation?\n if (!useEmbeddedUpdate && timeout === 0 && checkOnLaunch !== 'ALWAYS') {\n addWarningIOS(\n 'updates.useEmbeddedUpdate',\n `updates.checkOnLaunch should be set to \"ON_LOAD\" and updates.fallbackToCacheTimeout should be set to a non-zero value when updates.useEmbeddedUpdate is set to false. This is because an update must be fetched on the initial launch, when no embedded update is available.`\n );\n }\n\n const newExpoPlist = {\n ...expoPlist,\n [Config.ENABLED]: getUpdatesEnabled(config),\n [Config.CHECK_ON_LAUNCH]: checkOnLaunch,\n [Config.LAUNCH_WAIT_MS]: timeout,\n };\n\n // The native config name is \"has embedded update\", but we want to expose\n // this to the user as \"use embedded update\", since this is more accurate.\n // The field does not disable actually building and embedding the update,\n // only whether it is actually used.\n if (useEmbeddedUpdate) {\n delete newExpoPlist[Config.UPDATES_HAS_EMBEDDED_UPDATE];\n } else {\n newExpoPlist[Config.UPDATES_HAS_EMBEDDED_UPDATE] = false;\n }\n\n const updateUrl = getUpdateUrl(config);\n if (updateUrl) {\n newExpoPlist[Config.UPDATE_URL] = updateUrl;\n } else {\n delete newExpoPlist[Config.UPDATE_URL];\n }\n\n const codeSigningCertificate = getUpdatesCodeSigningCertificate(projectRoot, config);\n if (codeSigningCertificate) {\n newExpoPlist[Config.CODE_SIGNING_CERTIFICATE] = codeSigningCertificate;\n } else {\n delete newExpoPlist[Config.CODE_SIGNING_CERTIFICATE];\n }\n\n const codeSigningMetadata = getUpdatesCodeSigningMetadata(config);\n if (codeSigningMetadata) {\n newExpoPlist[Config.CODE_SIGNING_METADATA] = codeSigningMetadata;\n } else {\n delete newExpoPlist[Config.CODE_SIGNING_METADATA];\n }\n\n const requestHeaders = getUpdatesRequestHeaders(config);\n if (requestHeaders) {\n newExpoPlist[Config.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY] = requestHeaders;\n } else {\n delete newExpoPlist[Config.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY];\n }\n\n const disableAntiBrickingMeasures = getDisableAntiBrickingMeasures(config);\n if (disableAntiBrickingMeasures) {\n newExpoPlist[Config.DISABLE_ANTI_BRICKING_MEASURES] = disableAntiBrickingMeasures;\n } else {\n delete newExpoPlist[Config.DISABLE_ANTI_BRICKING_MEASURES];\n }\n\n const bsPatchSupport = getUpdatesBsdiffPatchSupportEnabled(config);\n if (!bsPatchSupport) {\n newExpoPlist[Config.ENABLE_BSDIFF_PATCH_SUPPORT] = bsPatchSupport;\n } else {\n delete newExpoPlist[Config.ENABLE_BSDIFF_PATCH_SUPPORT];\n }\n\n return await setVersionsConfigAsync(projectRoot, config, newExpoPlist);\n}\n\nexport async function setVersionsConfigAsync(\n projectRoot: string,\n config: ExpoConfigUpdates,\n expoPlist: ExpoPlist\n): Promise<ExpoPlist> {\n const newExpoPlist = { ...expoPlist };\n\n const runtimeVersion = await getRuntimeVersionNullableAsync(projectRoot, config, 'ios');\n if (!runtimeVersion && expoPlist[Config.RUNTIME_VERSION]) {\n throw new Error(\n 'A runtime version is set in your Expo.plist, but is missing from your Expo app config (app.json/app.config.js). Set runtimeVersion in your Expo app config or remove EXUpdatesRuntimeVersion from your Expo.plist.'\n );\n }\n\n if (runtimeVersion) {\n delete newExpoPlist['EXUpdatesSDKVersion'];\n newExpoPlist[Config.RUNTIME_VERSION] = runtimeVersion;\n } else {\n delete newExpoPlist['EXUpdatesSDKVersion'];\n delete newExpoPlist[Config.RUNTIME_VERSION];\n }\n\n return newExpoPlist;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Updates.js","names":["_BuildProperties","data","require","_iosPlugins","_withPlugins","_Updates","_warnings","Config","exports","withUpdates","config","withPlugins","withUpdatesPlist","withUpdatesNativeDebugPodfileProps","createBuildPodfilePropsConfigPlugin","propName","propValueGetter","updates","useNativeDebug","undefined","withExpoPlist","projectRoot","modRequest","expoUpdatesPackageVersion","getExpoUpdatesPackageVersion","modResults","setUpdatesConfigAsync","expoPlist","checkOnLaunch","getUpdatesCheckOnLaunch","timeout","getUpdatesTimeout","useEmbeddedUpdate","getUpdatesUseEmbeddedUpdate","addWarningIOS","newExpoPlist","ENABLED","getUpdatesEnabled","CHECK_ON_LAUNCH","LAUNCH_WAIT_MS","UPDATES_HAS_EMBEDDED_UPDATE","updateUrl","getUpdateUrl","UPDATE_URL","codeSigningCertificate","getUpdatesCodeSigningCertificate","CODE_SIGNING_CERTIFICATE","codeSigningMetadata","getUpdatesCodeSigningMetadata","CODE_SIGNING_METADATA","requestHeaders","getUpdatesRequestHeaders","UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY","disableAntiBrickingMeasures","getDisableAntiBrickingMeasures","DISABLE_ANTI_BRICKING_MEASURES","bsPatchSupport","getUpdatesBsdiffPatchSupportEnabled","ENABLE_BSDIFF_PATCH_SUPPORT","setVersionsConfigAsync","runtimeVersion","getRuntimeVersionNullableAsync","RUNTIME_VERSION","Error"],"sources":["../../src/ios/Updates.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { createBuildPodfilePropsConfigPlugin } from './BuildProperties';\nimport { ExpoPlist } from './IosConfig.types';\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withExpoPlist } from '../plugins/ios-plugins';\nimport { withPlugins } from '../plugins/withPlugins';\nimport {\n ExpoConfigUpdates,\n getDisableAntiBrickingMeasures,\n getExpoUpdatesPackageVersion,\n getRuntimeVersionNullableAsync,\n getUpdatesCheckOnLaunch,\n getUpdatesCodeSigningCertificate,\n getUpdatesCodeSigningMetadata,\n getUpdatesRequestHeaders,\n getUpdatesEnabled,\n getUpdatesTimeout,\n getUpdatesBsdiffPatchSupportEnabled,\n getUpdatesUseEmbeddedUpdate,\n getUpdateUrl,\n} from '../utils/Updates';\nimport { addWarningIOS } from '../utils/warnings';\n\nexport enum Config {\n ENABLED = 'EXUpdatesEnabled',\n CHECK_ON_LAUNCH = 'EXUpdatesCheckOnLaunch',\n LAUNCH_WAIT_MS = 'EXUpdatesLaunchWaitMs',\n RUNTIME_VERSION = 'EXUpdatesRuntimeVersion',\n UPDATE_URL = 'EXUpdatesURL',\n UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY = 'EXUpdatesRequestHeaders',\n UPDATES_HAS_EMBEDDED_UPDATE = 'EXUpdatesHasEmbeddedUpdate',\n CODE_SIGNING_CERTIFICATE = 'EXUpdatesCodeSigningCertificate',\n CODE_SIGNING_METADATA = 'EXUpdatesCodeSigningMetadata',\n DISABLE_ANTI_BRICKING_MEASURES = 'EXUpdatesDisableAntiBrickingMeasures',\n ENABLE_BSDIFF_PATCH_SUPPORT = 'EXUpdatesEnableBsdiffPatchSupport',\n}\n\n// when making changes to this config plugin, ensure the same changes are also made in eas-cli and build-tools\n// Also ensure the docs are up-to-date: https://docs.expo.dev/bare/installing-updates/\n\nexport const withUpdates: ConfigPlugin = (config) => {\n return withPlugins(config, [withUpdatesPlist, withUpdatesNativeDebugPodfileProps]);\n};\n\n/**\n * A config-plugin to update `ios/Podfile.properties.json` from the `updates.useNativeDebug` in expo config\n */\nexport const withUpdatesNativeDebugPodfileProps = createBuildPodfilePropsConfigPlugin<ExpoConfig>(\n [\n {\n propName: 'updatesNativeDebug',\n propValueGetter: (config) => (config?.updates?.useNativeDebug === true ? 'true' : undefined),\n },\n ],\n 'withUpdatesNativeDebugPodfileProps'\n);\n\nconst withUpdatesPlist: ConfigPlugin = (config) => {\n return withExpoPlist(config, async (config) => {\n const projectRoot = config.modRequest.projectRoot;\n const expoUpdatesPackageVersion = getExpoUpdatesPackageVersion(projectRoot);\n config.modResults = await setUpdatesConfigAsync(\n projectRoot,\n config,\n config.modResults,\n expoUpdatesPackageVersion\n );\n return config;\n });\n};\n\nexport async function setUpdatesConfigAsync(\n projectRoot: string,\n config: ExpoConfigUpdates,\n expoPlist: ExpoPlist,\n expoUpdatesPackageVersion?: string | null\n): Promise<ExpoPlist> {\n const checkOnLaunch = getUpdatesCheckOnLaunch(config, expoUpdatesPackageVersion);\n const timeout = getUpdatesTimeout(config);\n const useEmbeddedUpdate = getUpdatesUseEmbeddedUpdate(config);\n\n // TODO: is there a better place for this validation?\n if (!useEmbeddedUpdate && timeout === 0 && checkOnLaunch !== 'ALWAYS') {\n addWarningIOS(\n 'updates.useEmbeddedUpdate',\n `updates.checkOnLaunch should be set to \"ON_LOAD\" and updates.fallbackToCacheTimeout should be set to a non-zero value when updates.useEmbeddedUpdate is set to false. This is because an update must be fetched on the initial launch, when no embedded update is available.`\n );\n }\n\n const newExpoPlist = {\n ...expoPlist,\n [Config.ENABLED]: getUpdatesEnabled(config),\n [Config.CHECK_ON_LAUNCH]: checkOnLaunch,\n [Config.LAUNCH_WAIT_MS]: timeout,\n };\n\n // The native config name is \"has embedded update\", but we want to expose\n // this to the user as \"use embedded update\", since this is more accurate.\n // The field does not disable actually building and embedding the update,\n // only whether it is actually used.\n if (useEmbeddedUpdate) {\n delete newExpoPlist[Config.UPDATES_HAS_EMBEDDED_UPDATE];\n } else {\n newExpoPlist[Config.UPDATES_HAS_EMBEDDED_UPDATE] = false;\n }\n\n const updateUrl = getUpdateUrl(config);\n if (updateUrl) {\n newExpoPlist[Config.UPDATE_URL] = updateUrl;\n } else {\n delete newExpoPlist[Config.UPDATE_URL];\n }\n\n const codeSigningCertificate = getUpdatesCodeSigningCertificate(projectRoot, config);\n if (codeSigningCertificate) {\n newExpoPlist[Config.CODE_SIGNING_CERTIFICATE] = codeSigningCertificate;\n } else {\n delete newExpoPlist[Config.CODE_SIGNING_CERTIFICATE];\n }\n\n const codeSigningMetadata = getUpdatesCodeSigningMetadata(config);\n if (codeSigningMetadata) {\n newExpoPlist[Config.CODE_SIGNING_METADATA] = codeSigningMetadata;\n } else {\n delete newExpoPlist[Config.CODE_SIGNING_METADATA];\n }\n\n const requestHeaders = getUpdatesRequestHeaders(config);\n if (requestHeaders) {\n newExpoPlist[Config.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY] = requestHeaders;\n } else {\n delete newExpoPlist[Config.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY];\n }\n\n const disableAntiBrickingMeasures = getDisableAntiBrickingMeasures(config);\n if (disableAntiBrickingMeasures) {\n newExpoPlist[Config.DISABLE_ANTI_BRICKING_MEASURES] = disableAntiBrickingMeasures;\n } else {\n delete newExpoPlist[Config.DISABLE_ANTI_BRICKING_MEASURES];\n }\n\n const bsPatchSupport = getUpdatesBsdiffPatchSupportEnabled(config);\n if (bsPatchSupport) {\n newExpoPlist[Config.ENABLE_BSDIFF_PATCH_SUPPORT] = bsPatchSupport;\n } else {\n delete newExpoPlist[Config.ENABLE_BSDIFF_PATCH_SUPPORT];\n }\n\n return await setVersionsConfigAsync(projectRoot, config, newExpoPlist);\n}\n\nexport async function setVersionsConfigAsync(\n projectRoot: string,\n config: ExpoConfigUpdates,\n expoPlist: ExpoPlist\n): Promise<ExpoPlist> {\n const newExpoPlist = { ...expoPlist };\n\n const runtimeVersion = await getRuntimeVersionNullableAsync(projectRoot, config, 'ios');\n if (!runtimeVersion && expoPlist[Config.RUNTIME_VERSION]) {\n throw new Error(\n 'A runtime version is set in your Expo.plist, but is missing from your Expo app config (app.json/app.config.js). Set runtimeVersion in your Expo app config or remove EXUpdatesRuntimeVersion from your Expo.plist.'\n );\n }\n\n if (runtimeVersion) {\n delete newExpoPlist['EXUpdatesSDKVersion'];\n newExpoPlist[Config.RUNTIME_VERSION] = runtimeVersion;\n } else {\n delete newExpoPlist['EXUpdatesSDKVersion'];\n delete newExpoPlist[Config.RUNTIME_VERSION];\n }\n\n return newExpoPlist;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -64,8 +64,8 @@ function getAndroidManifestTemplate(config) {
64
64
  <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
65
65
  <uses-permission android:name="android.permission.VIBRATE"/>
66
66
  <!-- These require runtime permissions on M -->
67
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
68
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
67
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>
68
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>
69
69
  <!-- END OPTIONAL PERMISSIONS -->
70
70
 
71
71
  <queries>
@@ -1 +1 @@
1
- {"version":3,"file":"withAndroidBaseMods.js","names":["_fs","data","require","_path","_interopRequireDefault","_createBaseMod","_android","_XML","_sortObject","e","__esModule","default","readFile","writeFile","promises","getAndroidManifestTemplate","config","parseXMLAsync","android","package","sortAndroidManifest","obj","manifest","sortObject","reverseSortString","Array","isArray","sort","a","b","$","application","map","sortObjWithOrder","defaultProviders","dangerous","provider","getFilePath","read","filePath","modResults","write","finalized","isIntrospective","modRequest","platformProjectRoot","path","join","Manifest","readAndroidManifestAsync","error","introspect","writeAndroidManifestAsync","gradleProperties","Properties","parsePropertiesFile","propertiesListToString","strings","projectRoot","Strings","getProjectStringsXMLPathAsync","Resources","readResourcesXMLAsync","resources","writeXMLAsync","xml","colors","Colors","getProjectColorsXMLPathAsync","colorsNight","kind","styles","Styles","getProjectStylesXMLPathAsync","fallback","projectBuildGradle","Paths","getProjectBuildGradleFilePath","getFileInfo","contents","settingsGradle","getSettingsGradleFilePath","appBuildGradle","getAppBuildGradleFilePath","mainActivity","getProjectFilePath","mainApplication","withAndroidBaseMods","providers","props","withGeneratedBaseMods","platform","getAndroidModFileProviders"],"sources":["../../src/plugins/withAndroidBaseMods.ts"],"sourcesContent":["import { promises } from 'fs';\nimport path from 'path';\n\nimport { ForwardedBaseModOptions, provider, withGeneratedBaseMods } from './createBaseMod';\nimport { ExportedConfig, ModConfig } from '../Plugin.types';\nimport { Colors, Manifest, Paths, Properties, Resources, Strings, Styles } from '../android';\nimport { AndroidManifest } from '../android/Manifest';\nimport { parseXMLAsync, writeXMLAsync } from '../utils/XML';\nimport { reverseSortString, sortObject, sortObjWithOrder } from '../utils/sortObject';\n\nconst { readFile, writeFile } = promises;\n\ntype AndroidModName = keyof Required<ModConfig>['android'];\n\nfunction getAndroidManifestTemplate(config: ExportedConfig) {\n // Keep in sync with https://github.com/expo/expo/blob/main/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n // TODO: Read from remote template when possible\n return parseXMLAsync(`\n <manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" package=\"${\n config.android?.package ?? 'com.placeholder.appid'\n }\">\n\n <uses-permission android:name=\"android.permission.INTERNET\"/>\n <!-- OPTIONAL PERMISSIONS, REMOVE WHATEVER YOU DO NOT NEED -->\n <uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>\n <uses-permission android:name=\"android.permission.VIBRATE\"/>\n <!-- These require runtime permissions on M -->\n <uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>\n <uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>\n <!-- END OPTIONAL PERMISSIONS -->\n\n <queries>\n <!-- Support checking for http(s) links via the Linking API -->\n <intent>\n <action android:name=\"android.intent.action.VIEW\" />\n <category android:name=\"android.intent.category.BROWSABLE\" />\n <data android:scheme=\"https\" />\n </intent>\n </queries>\n\n <application android:name=\".MainApplication\" android:label=\"@string/app_name\" android:icon=\"@mipmap/ic_launcher\" android:roundIcon=\"@mipmap/ic_launcher_round\" android:allowBackup=\"false\" android:theme=\"@style/AppTheme\" android:supportsRtl=\"true\">\n <activity android:name=\".MainActivity\" android:configChanges=\"keyboard|keyboardHidden|orientation|screenSize|screenLayout|uiMode|smallestScreenSize\" android:launchMode=\"singleTask\" android:windowSoftInputMode=\"adjustResize\" android:theme=\"@style/Theme.App.SplashScreen\" android:exported=\"true\">\n <intent-filter>\n <action android:name=\"android.intent.action.MAIN\"/>\n <category android:name=\"android.intent.category.LAUNCHER\"/>\n </intent-filter>\n </activity>\n </application>\n </manifest>\n `) as Promise<AndroidManifest>;\n}\n\nexport function sortAndroidManifest(obj: AndroidManifest) {\n if (obj.manifest) {\n // Reverse sort so application is last and permissions are first\n obj.manifest = sortObject(obj.manifest, reverseSortString);\n\n if (Array.isArray(obj.manifest['uses-permission'])) {\n // Sort permissions alphabetically\n obj.manifest['uses-permission'].sort((a, b) => {\n if (a.$['android:name'] < b.$['android:name']) return -1;\n if (a.$['android:name'] > b.$['android:name']) return 1;\n return 0;\n });\n }\n\n if (Array.isArray(obj.manifest.application)) {\n // reverse sort applications so activity is towards the end and meta-data is towards the front.\n obj.manifest.application = obj.manifest.application.map((application) => {\n application = sortObjWithOrder(application, ['meta-data', 'service', 'activity']);\n\n if (Array.isArray(application['meta-data'])) {\n // Sort metadata alphabetically\n application['meta-data'].sort((a, b) => {\n if (a.$['android:name'] < b.$['android:name']) return -1;\n if (a.$['android:name'] > b.$['android:name']) return 1;\n return 0;\n });\n }\n return application;\n });\n }\n }\n return obj;\n}\n\nconst defaultProviders = {\n dangerous: provider<unknown>({\n getFilePath() {\n return '';\n },\n async read() {\n return { filePath: '', modResults: {} };\n },\n async write() {},\n }),\n finalized: provider<unknown>({\n getFilePath() {\n return '';\n },\n async read() {\n return { filePath: '', modResults: {} };\n },\n async write() {},\n }),\n // Append a rule to supply gradle.properties data to mods on `mods.android.gradleProperties`\n manifest: provider<Manifest.AndroidManifest>({\n isIntrospective: true,\n getFilePath({ modRequest: { platformProjectRoot } }) {\n return path.join(platformProjectRoot, 'app/src/main/AndroidManifest.xml');\n },\n async read(filePath, config) {\n try {\n return await Manifest.readAndroidManifestAsync(filePath);\n } catch (error: any) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n return await getAndroidManifestTemplate(config);\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await Manifest.writeAndroidManifestAsync(filePath, sortAndroidManifest(modResults));\n },\n }),\n\n // Append a rule to supply gradle.properties data to mods on `mods.android.gradleProperties`\n gradleProperties: provider<Properties.PropertiesItem[]>({\n isIntrospective: true,\n\n getFilePath({ modRequest: { platformProjectRoot } }) {\n return path.join(platformProjectRoot, 'gradle.properties');\n },\n async read(filePath, config) {\n try {\n return await Properties.parsePropertiesFile(await readFile(filePath, 'utf8'));\n } catch (error) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n return [];\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeFile(filePath, Properties.propertiesListToString(modResults));\n },\n }),\n\n // Append a rule to supply strings.xml data to mods on `mods.android.strings`\n strings: provider<Resources.ResourceXML>({\n isIntrospective: true,\n\n async getFilePath({ modRequest: { projectRoot, introspect } }) {\n try {\n return await Strings.getProjectStringsXMLPathAsync(projectRoot);\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return '';\n },\n\n async read(filePath, config) {\n try {\n return await Resources.readResourcesXMLAsync({ path: filePath });\n } catch (error) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n return { resources: {} };\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeXMLAsync({ path: filePath, xml: modResults });\n },\n }),\n\n colors: provider<Resources.ResourceXML>({\n isIntrospective: true,\n\n async getFilePath({ modRequest: { projectRoot, introspect } }) {\n try {\n return await Colors.getProjectColorsXMLPathAsync(projectRoot);\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return '';\n },\n\n async read(filePath, { modRequest: { introspect } }) {\n try {\n return await Resources.readResourcesXMLAsync({ path: filePath });\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return { resources: {} };\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeXMLAsync({ path: filePath, xml: modResults });\n },\n }),\n\n colorsNight: provider<Resources.ResourceXML>({\n isIntrospective: true,\n\n async getFilePath({ modRequest: { projectRoot, introspect } }) {\n try {\n return await Colors.getProjectColorsXMLPathAsync(projectRoot, { kind: 'values-night' });\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return '';\n },\n async read(filePath, config) {\n try {\n return await Resources.readResourcesXMLAsync({ path: filePath });\n } catch (error: any) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n return { resources: {} };\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeXMLAsync({ path: filePath, xml: modResults });\n },\n }),\n\n styles: provider<Resources.ResourceXML>({\n isIntrospective: true,\n\n async getFilePath({ modRequest: { projectRoot, introspect } }) {\n try {\n return await Styles.getProjectStylesXMLPathAsync(projectRoot);\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return '';\n },\n async read(filePath, config) {\n let styles: Resources.ResourceXML = { resources: {} };\n\n try {\n // Adds support for `tools:x`\n styles = await Resources.readResourcesXMLAsync({\n path: filePath,\n fallback: `<?xml version=\"1.0\" encoding=\"utf-8\"?><resources xmlns:tools=\"http://schemas.android.com/tools\"></resources>`,\n });\n } catch (error: any) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n\n // Ensure support for tools is added...\n if (!styles.resources.$) {\n styles.resources.$ = {};\n }\n if (!styles.resources.$?.['xmlns:tools']) {\n styles.resources.$['xmlns:tools'] = 'http://schemas.android.com/tools';\n }\n return styles;\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeXMLAsync({ path: filePath, xml: modResults });\n },\n }),\n\n projectBuildGradle: provider<Paths.GradleProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getProjectBuildGradleFilePath(projectRoot);\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n\n settingsGradle: provider<Paths.GradleProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getSettingsGradleFilePath(projectRoot);\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n\n appBuildGradle: provider<Paths.GradleProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getAppBuildGradleFilePath(projectRoot);\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n\n mainActivity: provider<Paths.ApplicationProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getProjectFilePath(projectRoot, 'MainActivity');\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n\n mainApplication: provider<Paths.ApplicationProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getProjectFilePath(projectRoot, 'MainApplication');\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n};\n\ntype AndroidDefaultProviders = typeof defaultProviders;\n\nexport function withAndroidBaseMods(\n config: ExportedConfig,\n {\n providers,\n ...props\n }: ForwardedBaseModOptions & { providers?: Partial<AndroidDefaultProviders> } = {}\n): ExportedConfig {\n return withGeneratedBaseMods<AndroidModName>(config, {\n ...props,\n platform: 'android',\n providers: providers ?? getAndroidModFileProviders(),\n });\n}\n\nexport function getAndroidModFileProviders() {\n return defaultProviders;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"withAndroidBaseMods.js","names":["_fs","data","require","_path","_interopRequireDefault","_createBaseMod","_android","_XML","_sortObject","e","__esModule","default","readFile","writeFile","promises","getAndroidManifestTemplate","config","parseXMLAsync","android","package","sortAndroidManifest","obj","manifest","sortObject","reverseSortString","Array","isArray","sort","a","b","$","application","map","sortObjWithOrder","defaultProviders","dangerous","provider","getFilePath","read","filePath","modResults","write","finalized","isIntrospective","modRequest","platformProjectRoot","path","join","Manifest","readAndroidManifestAsync","error","introspect","writeAndroidManifestAsync","gradleProperties","Properties","parsePropertiesFile","propertiesListToString","strings","projectRoot","Strings","getProjectStringsXMLPathAsync","Resources","readResourcesXMLAsync","resources","writeXMLAsync","xml","colors","Colors","getProjectColorsXMLPathAsync","colorsNight","kind","styles","Styles","getProjectStylesXMLPathAsync","fallback","projectBuildGradle","Paths","getProjectBuildGradleFilePath","getFileInfo","contents","settingsGradle","getSettingsGradleFilePath","appBuildGradle","getAppBuildGradleFilePath","mainActivity","getProjectFilePath","mainApplication","withAndroidBaseMods","providers","props","withGeneratedBaseMods","platform","getAndroidModFileProviders"],"sources":["../../src/plugins/withAndroidBaseMods.ts"],"sourcesContent":["import { promises } from 'fs';\nimport path from 'path';\n\nimport { ForwardedBaseModOptions, provider, withGeneratedBaseMods } from './createBaseMod';\nimport { ExportedConfig, ModConfig } from '../Plugin.types';\nimport { Colors, Manifest, Paths, Properties, Resources, Strings, Styles } from '../android';\nimport { AndroidManifest } from '../android/Manifest';\nimport { parseXMLAsync, writeXMLAsync } from '../utils/XML';\nimport { reverseSortString, sortObject, sortObjWithOrder } from '../utils/sortObject';\n\nconst { readFile, writeFile } = promises;\n\ntype AndroidModName = keyof Required<ModConfig>['android'];\n\nfunction getAndroidManifestTemplate(config: ExportedConfig) {\n // Keep in sync with https://github.com/expo/expo/blob/main/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n // TODO: Read from remote template when possible\n return parseXMLAsync(`\n <manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" package=\"${\n config.android?.package ?? 'com.placeholder.appid'\n }\">\n\n <uses-permission android:name=\"android.permission.INTERNET\"/>\n <!-- OPTIONAL PERMISSIONS, REMOVE WHATEVER YOU DO NOT NEED -->\n <uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>\n <uses-permission android:name=\"android.permission.VIBRATE\"/>\n <!-- These require runtime permissions on M -->\n <uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" android:maxSdkVersion=\"32\"/>\n <uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" android:maxSdkVersion=\"32\"/>\n <!-- END OPTIONAL PERMISSIONS -->\n\n <queries>\n <!-- Support checking for http(s) links via the Linking API -->\n <intent>\n <action android:name=\"android.intent.action.VIEW\" />\n <category android:name=\"android.intent.category.BROWSABLE\" />\n <data android:scheme=\"https\" />\n </intent>\n </queries>\n\n <application android:name=\".MainApplication\" android:label=\"@string/app_name\" android:icon=\"@mipmap/ic_launcher\" android:roundIcon=\"@mipmap/ic_launcher_round\" android:allowBackup=\"false\" android:theme=\"@style/AppTheme\" android:supportsRtl=\"true\">\n <activity android:name=\".MainActivity\" android:configChanges=\"keyboard|keyboardHidden|orientation|screenSize|screenLayout|uiMode|smallestScreenSize\" android:launchMode=\"singleTask\" android:windowSoftInputMode=\"adjustResize\" android:theme=\"@style/Theme.App.SplashScreen\" android:exported=\"true\">\n <intent-filter>\n <action android:name=\"android.intent.action.MAIN\"/>\n <category android:name=\"android.intent.category.LAUNCHER\"/>\n </intent-filter>\n </activity>\n </application>\n </manifest>\n `) as Promise<AndroidManifest>;\n}\n\nexport function sortAndroidManifest(obj: AndroidManifest) {\n if (obj.manifest) {\n // Reverse sort so application is last and permissions are first\n obj.manifest = sortObject(obj.manifest, reverseSortString);\n\n if (Array.isArray(obj.manifest['uses-permission'])) {\n // Sort permissions alphabetically\n obj.manifest['uses-permission'].sort((a, b) => {\n if (a.$['android:name'] < b.$['android:name']) return -1;\n if (a.$['android:name'] > b.$['android:name']) return 1;\n return 0;\n });\n }\n\n if (Array.isArray(obj.manifest.application)) {\n // reverse sort applications so activity is towards the end and meta-data is towards the front.\n obj.manifest.application = obj.manifest.application.map((application) => {\n application = sortObjWithOrder(application, ['meta-data', 'service', 'activity']);\n\n if (Array.isArray(application['meta-data'])) {\n // Sort metadata alphabetically\n application['meta-data'].sort((a, b) => {\n if (a.$['android:name'] < b.$['android:name']) return -1;\n if (a.$['android:name'] > b.$['android:name']) return 1;\n return 0;\n });\n }\n return application;\n });\n }\n }\n return obj;\n}\n\nconst defaultProviders = {\n dangerous: provider<unknown>({\n getFilePath() {\n return '';\n },\n async read() {\n return { filePath: '', modResults: {} };\n },\n async write() {},\n }),\n finalized: provider<unknown>({\n getFilePath() {\n return '';\n },\n async read() {\n return { filePath: '', modResults: {} };\n },\n async write() {},\n }),\n // Append a rule to supply gradle.properties data to mods on `mods.android.gradleProperties`\n manifest: provider<Manifest.AndroidManifest>({\n isIntrospective: true,\n getFilePath({ modRequest: { platformProjectRoot } }) {\n return path.join(platformProjectRoot, 'app/src/main/AndroidManifest.xml');\n },\n async read(filePath, config) {\n try {\n return await Manifest.readAndroidManifestAsync(filePath);\n } catch (error: any) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n return await getAndroidManifestTemplate(config);\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await Manifest.writeAndroidManifestAsync(filePath, sortAndroidManifest(modResults));\n },\n }),\n\n // Append a rule to supply gradle.properties data to mods on `mods.android.gradleProperties`\n gradleProperties: provider<Properties.PropertiesItem[]>({\n isIntrospective: true,\n\n getFilePath({ modRequest: { platformProjectRoot } }) {\n return path.join(platformProjectRoot, 'gradle.properties');\n },\n async read(filePath, config) {\n try {\n return await Properties.parsePropertiesFile(await readFile(filePath, 'utf8'));\n } catch (error) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n return [];\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeFile(filePath, Properties.propertiesListToString(modResults));\n },\n }),\n\n // Append a rule to supply strings.xml data to mods on `mods.android.strings`\n strings: provider<Resources.ResourceXML>({\n isIntrospective: true,\n\n async getFilePath({ modRequest: { projectRoot, introspect } }) {\n try {\n return await Strings.getProjectStringsXMLPathAsync(projectRoot);\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return '';\n },\n\n async read(filePath, config) {\n try {\n return await Resources.readResourcesXMLAsync({ path: filePath });\n } catch (error) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n return { resources: {} };\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeXMLAsync({ path: filePath, xml: modResults });\n },\n }),\n\n colors: provider<Resources.ResourceXML>({\n isIntrospective: true,\n\n async getFilePath({ modRequest: { projectRoot, introspect } }) {\n try {\n return await Colors.getProjectColorsXMLPathAsync(projectRoot);\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return '';\n },\n\n async read(filePath, { modRequest: { introspect } }) {\n try {\n return await Resources.readResourcesXMLAsync({ path: filePath });\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return { resources: {} };\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeXMLAsync({ path: filePath, xml: modResults });\n },\n }),\n\n colorsNight: provider<Resources.ResourceXML>({\n isIntrospective: true,\n\n async getFilePath({ modRequest: { projectRoot, introspect } }) {\n try {\n return await Colors.getProjectColorsXMLPathAsync(projectRoot, { kind: 'values-night' });\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return '';\n },\n async read(filePath, config) {\n try {\n return await Resources.readResourcesXMLAsync({ path: filePath });\n } catch (error: any) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n return { resources: {} };\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeXMLAsync({ path: filePath, xml: modResults });\n },\n }),\n\n styles: provider<Resources.ResourceXML>({\n isIntrospective: true,\n\n async getFilePath({ modRequest: { projectRoot, introspect } }) {\n try {\n return await Styles.getProjectStylesXMLPathAsync(projectRoot);\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return '';\n },\n async read(filePath, config) {\n let styles: Resources.ResourceXML = { resources: {} };\n\n try {\n // Adds support for `tools:x`\n styles = await Resources.readResourcesXMLAsync({\n path: filePath,\n fallback: `<?xml version=\"1.0\" encoding=\"utf-8\"?><resources xmlns:tools=\"http://schemas.android.com/tools\"></resources>`,\n });\n } catch (error: any) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n\n // Ensure support for tools is added...\n if (!styles.resources.$) {\n styles.resources.$ = {};\n }\n if (!styles.resources.$?.['xmlns:tools']) {\n styles.resources.$['xmlns:tools'] = 'http://schemas.android.com/tools';\n }\n return styles;\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeXMLAsync({ path: filePath, xml: modResults });\n },\n }),\n\n projectBuildGradle: provider<Paths.GradleProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getProjectBuildGradleFilePath(projectRoot);\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n\n settingsGradle: provider<Paths.GradleProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getSettingsGradleFilePath(projectRoot);\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n\n appBuildGradle: provider<Paths.GradleProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getAppBuildGradleFilePath(projectRoot);\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n\n mainActivity: provider<Paths.ApplicationProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getProjectFilePath(projectRoot, 'MainActivity');\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n\n mainApplication: provider<Paths.ApplicationProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getProjectFilePath(projectRoot, 'MainApplication');\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n};\n\ntype AndroidDefaultProviders = typeof defaultProviders;\n\nexport function withAndroidBaseMods(\n config: ExportedConfig,\n {\n providers,\n ...props\n }: ForwardedBaseModOptions & { providers?: Partial<AndroidDefaultProviders> } = {}\n): ExportedConfig {\n return withGeneratedBaseMods<AndroidModName>(config, {\n ...props,\n platform: 'android',\n providers: providers ?? getAndroidModFileProviders(),\n });\n}\n\nexport function getAndroidModFileProviders() {\n return defaultProviders;\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,IAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,GAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,MAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,KAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,eAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,cAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAK,SAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,QAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAM,KAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,IAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,YAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,WAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAsF,SAAAG,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEtF,MAAM;EAAEG,QAAQ;EAAEC;AAAU,CAAC,GAAGC,cAAQ;AAIxC,SAASC,0BAA0BA,CAACC,MAAsB,EAAE;EAC1D;EACA;EACA,OAAO,IAAAC,oBAAa,EAAC;AACvB,kFACID,MAAM,CAACE,OAAO,EAAEC,OAAO,IAAI,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACG,CAAC;AACJ;AAEO,SAASC,mBAAmBA,CAACC,GAAoB,EAAE;EACxD,IAAIA,GAAG,CAACC,QAAQ,EAAE;IAChB;IACAD,GAAG,CAACC,QAAQ,GAAG,IAAAC,wBAAU,EAACF,GAAG,CAACC,QAAQ,EAAEE,+BAAiB,CAAC;IAE1D,IAAIC,KAAK,CAACC,OAAO,CAACL,GAAG,CAACC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE;MAClD;MACAD,GAAG,CAACC,QAAQ,CAAC,iBAAiB,CAAC,CAACK,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;QAC7C,IAAID,CAAC,CAACE,CAAC,CAAC,cAAc,CAAC,GAAGD,CAAC,CAACC,CAAC,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;QACxD,IAAIF,CAAC,CAACE,CAAC,CAAC,cAAc,CAAC,GAAGD,CAAC,CAACC,CAAC,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QACvD,OAAO,CAAC;MACV,CAAC,CAAC;IACJ;IAEA,IAAIL,KAAK,CAACC,OAAO,CAACL,GAAG,CAACC,QAAQ,CAACS,WAAW,CAAC,EAAE;MAC3C;MACAV,GAAG,CAACC,QAAQ,CAACS,WAAW,GAAGV,GAAG,CAACC,QAAQ,CAACS,WAAW,CAACC,GAAG,CAAED,WAAW,IAAK;QACvEA,WAAW,GAAG,IAAAE,8BAAgB,EAACF,WAAW,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAEjF,IAAIN,KAAK,CAACC,OAAO,CAACK,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE;UAC3C;UACAA,WAAW,CAAC,WAAW,CAAC,CAACJ,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;YACtC,IAAID,CAAC,CAACE,CAAC,CAAC,cAAc,CAAC,GAAGD,CAAC,CAACC,CAAC,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;YACxD,IAAIF,CAAC,CAACE,CAAC,CAAC,cAAc,CAAC,GAAGD,CAAC,CAACC,CAAC,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;YACvD,OAAO,CAAC;UACV,CAAC,CAAC;QACJ;QACA,OAAOC,WAAW;MACpB,CAAC,CAAC;IACJ;EACF;EACA,OAAOV,GAAG;AACZ;AAEA,MAAMa,gBAAgB,GAAG;EACvBC,SAAS,EAAE,IAAAC,yBAAQ,EAAU;IAC3BC,WAAWA,CAAA,EAAG;MACZ,OAAO,EAAE;IACX,CAAC;IACD,MAAMC,IAAIA,CAAA,EAAG;MACX,OAAO;QAAEC,QAAQ,EAAE,EAAE;QAAEC,UAAU,EAAE,CAAC;MAAE,CAAC;IACzC,CAAC;IACD,MAAMC,KAAKA,CAAA,EAAG,CAAC;EACjB,CAAC,CAAC;EACFC,SAAS,EAAE,IAAAN,yBAAQ,EAAU;IAC3BC,WAAWA,CAAA,EAAG;MACZ,OAAO,EAAE;IACX,CAAC;IACD,MAAMC,IAAIA,CAAA,EAAG;MACX,OAAO;QAAEC,QAAQ,EAAE,EAAE;QAAEC,UAAU,EAAE,CAAC;MAAE,CAAC;IACzC,CAAC;IACD,MAAMC,KAAKA,CAAA,EAAG,CAAC;EACjB,CAAC,CAAC;EACF;EACAnB,QAAQ,EAAE,IAAAc,yBAAQ,EAA2B;IAC3CO,eAAe,EAAE,IAAI;IACrBN,WAAWA,CAAC;MAAEO,UAAU,EAAE;QAAEC;MAAoB;IAAE,CAAC,EAAE;MACnD,OAAOC,eAAI,CAACC,IAAI,CAACF,mBAAmB,EAAE,kCAAkC,CAAC;IAC3E,CAAC;IACD,MAAMP,IAAIA,CAACC,QAAQ,EAAEvB,MAAM,EAAE;MAC3B,IAAI;QACF,OAAO,MAAMgC,mBAAQ,CAACC,wBAAwB,CAACV,QAAQ,CAAC;MAC1D,CAAC,CAAC,OAAOW,KAAU,EAAE;QACnB,IAAI,CAAClC,MAAM,CAAC4B,UAAU,CAACO,UAAU,EAAE;UACjC,MAAMD,KAAK;QACb;MACF;MACA,OAAO,MAAMnC,0BAA0B,CAACC,MAAM,CAAC;IACjD,CAAC;IACD,MAAMyB,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU;MAAEI,UAAU,EAAE;QAAEO;MAAW;IAAE,CAAC,EAAE;MAChE,IAAIA,UAAU,EAAE;MAChB,MAAMH,mBAAQ,CAACI,yBAAyB,CAACb,QAAQ,EAAEnB,mBAAmB,CAACoB,UAAU,CAAC,CAAC;IACrF;EACF,CAAC,CAAC;EAEF;EACAa,gBAAgB,EAAE,IAAAjB,yBAAQ,EAA8B;IACtDO,eAAe,EAAE,IAAI;IAErBN,WAAWA,CAAC;MAAEO,UAAU,EAAE;QAAEC;MAAoB;IAAE,CAAC,EAAE;MACnD,OAAOC,eAAI,CAACC,IAAI,CAACF,mBAAmB,EAAE,mBAAmB,CAAC;IAC5D,CAAC;IACD,MAAMP,IAAIA,CAACC,QAAQ,EAAEvB,MAAM,EAAE;MAC3B,IAAI;QACF,OAAO,MAAMsC,qBAAU,CAACC,mBAAmB,CAAC,MAAM3C,QAAQ,CAAC2B,QAAQ,EAAE,MAAM,CAAC,CAAC;MAC/E,CAAC,CAAC,OAAOW,KAAK,EAAE;QACd,IAAI,CAAClC,MAAM,CAAC4B,UAAU,CAACO,UAAU,EAAE;UACjC,MAAMD,KAAK;QACb;MACF;MACA,OAAO,EAAE;IACX,CAAC;IACD,MAAMT,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU;MAAEI,UAAU,EAAE;QAAEO;MAAW;IAAE,CAAC,EAAE;MAChE,IAAIA,UAAU,EAAE;MAChB,MAAMtC,SAAS,CAAC0B,QAAQ,EAAEe,qBAAU,CAACE,sBAAsB,CAAChB,UAAU,CAAC,CAAC;IAC1E;EACF,CAAC,CAAC;EAEF;EACAiB,OAAO,EAAE,IAAArB,yBAAQ,EAAwB;IACvCO,eAAe,EAAE,IAAI;IAErB,MAAMN,WAAWA,CAAC;MAAEO,UAAU,EAAE;QAAEc,WAAW;QAAEP;MAAW;IAAE,CAAC,EAAE;MAC7D,IAAI;QACF,OAAO,MAAMQ,kBAAO,CAACC,6BAA6B,CAACF,WAAW,CAAC;MACjE,CAAC,CAAC,OAAOR,KAAU,EAAE;QACnB,IAAI,CAACC,UAAU,EAAE;UACf,MAAMD,KAAK;QACb;MACF;MACA,OAAO,EAAE;IACX,CAAC;IAED,MAAMZ,IAAIA,CAACC,QAAQ,EAAEvB,MAAM,EAAE;MAC3B,IAAI;QACF,OAAO,MAAM6C,oBAAS,CAACC,qBAAqB,CAAC;UAAEhB,IAAI,EAAEP;QAAS,CAAC,CAAC;MAClE,CAAC,CAAC,OAAOW,KAAK,EAAE;QACd,IAAI,CAAClC,MAAM,CAAC4B,UAAU,CAACO,UAAU,EAAE;UACjC,MAAMD,KAAK;QACb;MACF;MACA,OAAO;QAAEa,SAAS,EAAE,CAAC;MAAE,CAAC;IAC1B,CAAC;IACD,MAAMtB,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU;MAAEI,UAAU,EAAE;QAAEO;MAAW;IAAE,CAAC,EAAE;MAChE,IAAIA,UAAU,EAAE;MAChB,MAAM,IAAAa,oBAAa,EAAC;QAAElB,IAAI,EAAEP,QAAQ;QAAE0B,GAAG,EAAEzB;MAAW,CAAC,CAAC;IAC1D;EACF,CAAC,CAAC;EAEF0B,MAAM,EAAE,IAAA9B,yBAAQ,EAAwB;IACtCO,eAAe,EAAE,IAAI;IAErB,MAAMN,WAAWA,CAAC;MAAEO,UAAU,EAAE;QAAEc,WAAW;QAAEP;MAAW;IAAE,CAAC,EAAE;MAC7D,IAAI;QACF,OAAO,MAAMgB,iBAAM,CAACC,4BAA4B,CAACV,WAAW,CAAC;MAC/D,CAAC,CAAC,OAAOR,KAAU,EAAE;QACnB,IAAI,CAACC,UAAU,EAAE;UACf,MAAMD,KAAK;QACb;MACF;MACA,OAAO,EAAE;IACX,CAAC;IAED,MAAMZ,IAAIA,CAACC,QAAQ,EAAE;MAAEK,UAAU,EAAE;QAAEO;MAAW;IAAE,CAAC,EAAE;MACnD,IAAI;QACF,OAAO,MAAMU,oBAAS,CAACC,qBAAqB,CAAC;UAAEhB,IAAI,EAAEP;QAAS,CAAC,CAAC;MAClE,CAAC,CAAC,OAAOW,KAAU,EAAE;QACnB,IAAI,CAACC,UAAU,EAAE;UACf,MAAMD,KAAK;QACb;MACF;MACA,OAAO;QAAEa,SAAS,EAAE,CAAC;MAAE,CAAC;IAC1B,CAAC;IACD,MAAMtB,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU;MAAEI,UAAU,EAAE;QAAEO;MAAW;IAAE,CAAC,EAAE;MAChE,IAAIA,UAAU,EAAE;MAChB,MAAM,IAAAa,oBAAa,EAAC;QAAElB,IAAI,EAAEP,QAAQ;QAAE0B,GAAG,EAAEzB;MAAW,CAAC,CAAC;IAC1D;EACF,CAAC,CAAC;EAEF6B,WAAW,EAAE,IAAAjC,yBAAQ,EAAwB;IAC3CO,eAAe,EAAE,IAAI;IAErB,MAAMN,WAAWA,CAAC;MAAEO,UAAU,EAAE;QAAEc,WAAW;QAAEP;MAAW;IAAE,CAAC,EAAE;MAC7D,IAAI;QACF,OAAO,MAAMgB,iBAAM,CAACC,4BAA4B,CAACV,WAAW,EAAE;UAAEY,IAAI,EAAE;QAAe,CAAC,CAAC;MACzF,CAAC,CAAC,OAAOpB,KAAU,EAAE;QACnB,IAAI,CAACC,UAAU,EAAE;UACf,MAAMD,KAAK;QACb;MACF;MACA,OAAO,EAAE;IACX,CAAC;IACD,MAAMZ,IAAIA,CAACC,QAAQ,EAAEvB,MAAM,EAAE;MAC3B,IAAI;QACF,OAAO,MAAM6C,oBAAS,CAACC,qBAAqB,CAAC;UAAEhB,IAAI,EAAEP;QAAS,CAAC,CAAC;MAClE,CAAC,CAAC,OAAOW,KAAU,EAAE;QACnB,IAAI,CAAClC,MAAM,CAAC4B,UAAU,CAACO,UAAU,EAAE;UACjC,MAAMD,KAAK;QACb;MACF;MACA,OAAO;QAAEa,SAAS,EAAE,CAAC;MAAE,CAAC;IAC1B,CAAC;IACD,MAAMtB,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU;MAAEI,UAAU,EAAE;QAAEO;MAAW;IAAE,CAAC,EAAE;MAChE,IAAIA,UAAU,EAAE;MAChB,MAAM,IAAAa,oBAAa,EAAC;QAAElB,IAAI,EAAEP,QAAQ;QAAE0B,GAAG,EAAEzB;MAAW,CAAC,CAAC;IAC1D;EACF,CAAC,CAAC;EAEF+B,MAAM,EAAE,IAAAnC,yBAAQ,EAAwB;IACtCO,eAAe,EAAE,IAAI;IAErB,MAAMN,WAAWA,CAAC;MAAEO,UAAU,EAAE;QAAEc,WAAW;QAAEP;MAAW;IAAE,CAAC,EAAE;MAC7D,IAAI;QACF,OAAO,MAAMqB,iBAAM,CAACC,4BAA4B,CAACf,WAAW,CAAC;MAC/D,CAAC,CAAC,OAAOR,KAAU,EAAE;QACnB,IAAI,CAACC,UAAU,EAAE;UACf,MAAMD,KAAK;QACb;MACF;MACA,OAAO,EAAE;IACX,CAAC;IACD,MAAMZ,IAAIA,CAACC,QAAQ,EAAEvB,MAAM,EAAE;MAC3B,IAAIuD,MAA6B,GAAG;QAAER,SAAS,EAAE,CAAC;MAAE,CAAC;MAErD,IAAI;QACF;QACAQ,MAAM,GAAG,MAAMV,oBAAS,CAACC,qBAAqB,CAAC;UAC7ChB,IAAI,EAAEP,QAAQ;UACdmC,QAAQ,EAAE;QACZ,CAAC,CAAC;MACJ,CAAC,CAAC,OAAOxB,KAAU,EAAE;QACnB,IAAI,CAAClC,MAAM,CAAC4B,UAAU,CAACO,UAAU,EAAE;UACjC,MAAMD,KAAK;QACb;MACF;;MAEA;MACA,IAAI,CAACqB,MAAM,CAACR,SAAS,CAACjC,CAAC,EAAE;QACvByC,MAAM,CAACR,SAAS,CAACjC,CAAC,GAAG,CAAC,CAAC;MACzB;MACA,IAAI,CAACyC,MAAM,CAACR,SAAS,CAACjC,CAAC,GAAG,aAAa,CAAC,EAAE;QACxCyC,MAAM,CAACR,SAAS,CAACjC,CAAC,CAAC,aAAa,CAAC,GAAG,kCAAkC;MACxE;MACA,OAAOyC,MAAM;IACf,CAAC;IACD,MAAM9B,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU;MAAEI,UAAU,EAAE;QAAEO;MAAW;IAAE,CAAC,EAAE;MAChE,IAAIA,UAAU,EAAE;MAChB,MAAM,IAAAa,oBAAa,EAAC;QAAElB,IAAI,EAAEP,QAAQ;QAAE0B,GAAG,EAAEzB;MAAW,CAAC,CAAC;IAC1D;EACF,CAAC,CAAC;EAEFmC,kBAAkB,EAAE,IAAAvC,yBAAQ,EAA0B;IACpDC,WAAWA,CAAC;MAAEO,UAAU,EAAE;QAAEc;MAAY;IAAE,CAAC,EAAE;MAC3C,OAAOkB,gBAAK,CAACC,6BAA6B,CAACnB,WAAW,CAAC;IACzD,CAAC;IACD,MAAMpB,IAAIA,CAACC,QAAQ,EAAE;MACnB,OAAOqC,gBAAK,CAACE,WAAW,CAACvC,QAAQ,CAAC;IACpC,CAAC;IACD,MAAME,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU,EAAE;QAAEuC;MAAS;IAAE,CAAC,EAAE;MAClD,MAAMlE,SAAS,CAAC0B,QAAQ,EAAEwC,QAAQ,CAAC;IACrC;EACF,CAAC,CAAC;EAEFC,cAAc,EAAE,IAAA5C,yBAAQ,EAA0B;IAChDC,WAAWA,CAAC;MAAEO,UAAU,EAAE;QAAEc;MAAY;IAAE,CAAC,EAAE;MAC3C,OAAOkB,gBAAK,CAACK,yBAAyB,CAACvB,WAAW,CAAC;IACrD,CAAC;IACD,MAAMpB,IAAIA,CAACC,QAAQ,EAAE;MACnB,OAAOqC,gBAAK,CAACE,WAAW,CAACvC,QAAQ,CAAC;IACpC,CAAC;IACD,MAAME,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU,EAAE;QAAEuC;MAAS;IAAE,CAAC,EAAE;MAClD,MAAMlE,SAAS,CAAC0B,QAAQ,EAAEwC,QAAQ,CAAC;IACrC;EACF,CAAC,CAAC;EAEFG,cAAc,EAAE,IAAA9C,yBAAQ,EAA0B;IAChDC,WAAWA,CAAC;MAAEO,UAAU,EAAE;QAAEc;MAAY;IAAE,CAAC,EAAE;MAC3C,OAAOkB,gBAAK,CAACO,yBAAyB,CAACzB,WAAW,CAAC;IACrD,CAAC;IACD,MAAMpB,IAAIA,CAACC,QAAQ,EAAE;MACnB,OAAOqC,gBAAK,CAACE,WAAW,CAACvC,QAAQ,CAAC;IACpC,CAAC;IACD,MAAME,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU,EAAE;QAAEuC;MAAS;IAAE,CAAC,EAAE;MAClD,MAAMlE,SAAS,CAAC0B,QAAQ,EAAEwC,QAAQ,CAAC;IACrC;EACF,CAAC,CAAC;EAEFK,YAAY,EAAE,IAAAhD,yBAAQ,EAA+B;IACnDC,WAAWA,CAAC;MAAEO,UAAU,EAAE;QAAEc;MAAY;IAAE,CAAC,EAAE;MAC3C,OAAOkB,gBAAK,CAACS,kBAAkB,CAAC3B,WAAW,EAAE,cAAc,CAAC;IAC9D,CAAC;IACD,MAAMpB,IAAIA,CAACC,QAAQ,EAAE;MACnB,OAAOqC,gBAAK,CAACE,WAAW,CAACvC,QAAQ,CAAC;IACpC,CAAC;IACD,MAAME,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU,EAAE;QAAEuC;MAAS;IAAE,CAAC,EAAE;MAClD,MAAMlE,SAAS,CAAC0B,QAAQ,EAAEwC,QAAQ,CAAC;IACrC;EACF,CAAC,CAAC;EAEFO,eAAe,EAAE,IAAAlD,yBAAQ,EAA+B;IACtDC,WAAWA,CAAC;MAAEO,UAAU,EAAE;QAAEc;MAAY;IAAE,CAAC,EAAE;MAC3C,OAAOkB,gBAAK,CAACS,kBAAkB,CAAC3B,WAAW,EAAE,iBAAiB,CAAC;IACjE,CAAC;IACD,MAAMpB,IAAIA,CAACC,QAAQ,EAAE;MACnB,OAAOqC,gBAAK,CAACE,WAAW,CAACvC,QAAQ,CAAC;IACpC,CAAC;IACD,MAAME,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU,EAAE;QAAEuC;MAAS;IAAE,CAAC,EAAE;MAClD,MAAMlE,SAAS,CAAC0B,QAAQ,EAAEwC,QAAQ,CAAC;IACrC;EACF,CAAC;AACH,CAAC;AAIM,SAASQ,mBAAmBA,CACjCvE,MAAsB,EACtB;EACEwE,SAAS;EACT,GAAGC;AACuE,CAAC,GAAG,CAAC,CAAC,EAClE;EAChB,OAAO,IAAAC,sCAAqB,EAAiB1E,MAAM,EAAE;IACnD,GAAGyE,KAAK;IACRE,QAAQ,EAAE,SAAS;IACnBH,SAAS,EAAEA,SAAS,IAAII,0BAA0B,CAAC;EACrD,CAAC,CAAC;AACJ;AAEO,SAASA,0BAA0BA,CAAA,EAAG;EAC3C,OAAO1D,gBAAgB;AACzB","ignoreList":[]}
@@ -179,7 +179,7 @@ function getUpdatesBsdiffPatchSupportEnabled(config) {
179
179
  if (config.updates?.enableBsdiffPatchSupport !== undefined) {
180
180
  return config.updates.enableBsdiffPatchSupport;
181
181
  }
182
- return true;
182
+ return false;
183
183
  }
184
184
  function getUpdatesTimeout(config) {
185
185
  return config.updates?.fallbackToCacheTimeout ?? 0;
@@ -1 +1 @@
1
- {"version":3,"file":"Updates.js","names":["_sdkRuntimeVersions","data","require","_fs","_interopRequireDefault","_getenv","_path","_resolveFrom","_semver","AndroidVersion","_interopRequireWildcard","IOSVersion","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","FINGERPRINT_RUNTIME_VERSION_SENTINEL","exports","getExpoUpdatesPackageVersion","projectRoot","expoUpdatesPackageJsonPath","resolveFrom","silent","fs","existsSync","packageJson","JSON","parse","readFileSync","version","getUpdateUrl","config","updates","url","getAppVersion","getNativeVersion","platform","getVersion","buildNumber","getBuildNumber","versionCode","getVersionCode","Error","getRuntimeVersionNullableAsync","getRuntimeVersionAsync","boolish","console","log","runtimeVersion","policy","resolveRuntimeVersionPolicyAsync","sdkVersion","getRuntimeVersionForSDKVersion","getSDKVersion","getUpdatesEnabled","enabled","undefined","getUpdatesUseEmbeddedUpdate","useEmbeddedUpdate","getUpdatesBsdiffPatchSupportEnabled","enableBsdiffPatchSupport","getUpdatesTimeout","fallbackToCacheTimeout","getUpdatesCheckOnLaunch","expoUpdatesPackageVersion","checkAutomatically","semver","gte","getUpdatesCodeSigningCertificate","codeSigningCertificatePath","codeSigningCertificate","finalPath","path","join","getUpdatesCodeSigningMetadata","codeSigningMetadata","getUpdatesCodeSigningMetadataStringified","metadata","stringify","getUpdatesRequestHeaders","requestHeaders","getUpdatesRequestHeadersStringified","getDisableAntiBrickingMeasures","disableAntiBrickingMeasures"],"sources":["../../src/utils/Updates.ts"],"sourcesContent":["import { Android, ExpoConfig, IOS } from '@expo/config-types';\nimport { getRuntimeVersionForSDKVersion } from '@expo/sdk-runtime-versions';\nimport fs from 'fs';\nimport { boolish } from 'getenv';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\nimport semver from 'semver';\n\nimport * as AndroidVersion from '../android/Version';\nimport * as IOSVersion from '../ios/Version';\n\nexport type ExpoConfigUpdates = Pick<\n ExpoConfig,\n 'sdkVersion' | 'runtimeVersion' | 'updates' | 'slug'\n>;\n\nexport const FINGERPRINT_RUNTIME_VERSION_SENTINEL = 'file:fingerprint';\n\nexport function getExpoUpdatesPackageVersion(projectRoot: string): string | null {\n const expoUpdatesPackageJsonPath = resolveFrom.silent(projectRoot, 'expo-updates/package.json');\n if (!expoUpdatesPackageJsonPath || !fs.existsSync(expoUpdatesPackageJsonPath)) {\n return null;\n }\n const packageJson = JSON.parse(fs.readFileSync(expoUpdatesPackageJsonPath, 'utf8'));\n return packageJson.version;\n}\n\nexport function getUpdateUrl(config: Pick<ExpoConfigUpdates, 'updates'>): string | null {\n return config.updates?.url ?? null;\n}\n\nexport function getAppVersion(config: Pick<ExpoConfig, 'version'>): string {\n return config.version ?? '1.0.0';\n}\n\nexport function getNativeVersion(\n config: Pick<ExpoConfig, 'version'> & {\n android?: Pick<Android, 'versionCode'>;\n ios?: Pick<IOS, 'buildNumber'>;\n },\n platform: 'android' | 'ios'\n): string {\n const version = IOSVersion.getVersion(config);\n switch (platform) {\n case 'ios': {\n const buildNumber = IOSVersion.getBuildNumber(config);\n return `${version}(${buildNumber})`;\n }\n case 'android': {\n const versionCode = AndroidVersion.getVersionCode(config);\n return `${version}(${versionCode})`;\n }\n default: {\n throw new Error(\n `\"${platform}\" is not a supported platform. Choose either \"ios\" or \"android\".`\n );\n }\n }\n}\n\nexport async function getRuntimeVersionNullableAsync(\n ...[projectRoot, config, platform]: Parameters<typeof getRuntimeVersionAsync>\n): Promise<string | null> {\n try {\n return await getRuntimeVersionAsync(projectRoot, config, platform);\n } catch (e) {\n if (boolish('EXPO_DEBUG', false)) {\n console.log(e);\n }\n return null;\n }\n}\n\nexport async function getRuntimeVersionAsync(\n projectRoot: string,\n config: Pick<ExpoConfig, 'version' | 'runtimeVersion' | 'sdkVersion'> & {\n android?: Pick<Android, 'versionCode' | 'runtimeVersion'>;\n ios?: Pick<IOS, 'buildNumber' | 'runtimeVersion'>;\n },\n platform: 'android' | 'ios'\n): Promise<string | null> {\n const runtimeVersion = config[platform]?.runtimeVersion ?? config.runtimeVersion;\n if (!runtimeVersion) {\n return null;\n }\n\n if (typeof runtimeVersion === 'string') {\n if (runtimeVersion === FINGERPRINT_RUNTIME_VERSION_SENTINEL) {\n throw new Error(\n `${FINGERPRINT_RUNTIME_VERSION_SENTINEL} is a reserved value for runtime version. To use a fingerprint runtime version, use the \"fingerprint\" runtime version policy.`\n );\n }\n return runtimeVersion;\n } else if (!runtimeVersion.policy) {\n throw new Error(\n `\"${runtimeVersion}\" is not a valid runtime version. Only a string or a runtime version policy is supported.`\n );\n } else if (runtimeVersion.policy === 'fingerprint') {\n return FINGERPRINT_RUNTIME_VERSION_SENTINEL;\n } else {\n return await resolveRuntimeVersionPolicyAsync(runtimeVersion.policy, config, platform);\n }\n}\n\nexport async function resolveRuntimeVersionPolicyAsync(\n policy: 'appVersion' | 'nativeVersion' | 'sdkVersion',\n config: Pick<ExpoConfig, 'version' | 'sdkVersion'> & {\n android?: Pick<Android, 'versionCode'>;\n ios?: Pick<IOS, 'buildNumber'>;\n },\n platform: 'android' | 'ios'\n): Promise<string> {\n if (policy === 'appVersion') {\n return getAppVersion(config);\n } else if (policy === 'nativeVersion') {\n return getNativeVersion(config, platform);\n } else if (policy === 'sdkVersion') {\n if (!config.sdkVersion) {\n throw new Error(\"An SDK version must be defined when using the 'sdkVersion' runtime policy.\");\n }\n return getRuntimeVersionForSDKVersion(config.sdkVersion);\n } else {\n // fingerprint is resolvable only at build time (not in config plugin).\n throw new Error(`\"${policy}\" is not a valid runtime version policy type.`);\n }\n}\n\nexport function getSDKVersion(config: Pick<ExpoConfigUpdates, 'sdkVersion'>): string | null {\n return typeof config.sdkVersion === 'string' ? config.sdkVersion : null;\n}\n\nexport function getUpdatesEnabled(config: Pick<ExpoConfigUpdates, 'updates'>): boolean {\n // allow override of enabled property\n if (config.updates?.enabled !== undefined) {\n return config.updates.enabled;\n }\n\n return getUpdateUrl(config) !== null;\n}\n\nexport function getUpdatesUseEmbeddedUpdate(config: Pick<ExpoConfigUpdates, 'updates'>): boolean {\n if (config.updates?.useEmbeddedUpdate !== undefined) {\n return config.updates.useEmbeddedUpdate;\n }\n\n return true;\n}\n\nexport function getUpdatesBsdiffPatchSupportEnabled(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): boolean {\n if (config.updates?.enableBsdiffPatchSupport !== undefined) {\n return config.updates.enableBsdiffPatchSupport;\n }\n return true;\n}\n\nexport function getUpdatesTimeout(config: Pick<ExpoConfigUpdates, 'updates'>): number {\n return config.updates?.fallbackToCacheTimeout ?? 0;\n}\n\nexport function getUpdatesCheckOnLaunch(\n config: Pick<ExpoConfigUpdates, 'updates'>,\n expoUpdatesPackageVersion?: string | null\n): 'NEVER' | 'ERROR_RECOVERY_ONLY' | 'ALWAYS' | 'WIFI_ONLY' {\n if (config.updates?.checkAutomatically === 'ON_ERROR_RECOVERY') {\n // native 'ERROR_RECOVERY_ONLY' option was only introduced in 0.11.x\n if (expoUpdatesPackageVersion && semver.gte(expoUpdatesPackageVersion, '0.11.0')) {\n return 'ERROR_RECOVERY_ONLY';\n }\n return 'NEVER';\n } else if (config.updates?.checkAutomatically === 'ON_LOAD') {\n return 'ALWAYS';\n } else if (config.updates?.checkAutomatically === 'WIFI_ONLY') {\n return 'WIFI_ONLY';\n } else if (config.updates?.checkAutomatically === 'NEVER') {\n return 'NEVER';\n }\n return 'ALWAYS';\n}\n\nexport function getUpdatesCodeSigningCertificate(\n projectRoot: string,\n config: Pick<ExpoConfigUpdates, 'updates'>\n): string | undefined {\n const codeSigningCertificatePath = config.updates?.codeSigningCertificate;\n if (!codeSigningCertificatePath) {\n return undefined;\n }\n\n const finalPath = path.join(projectRoot, codeSigningCertificatePath);\n if (!fs.existsSync(finalPath)) {\n throw new Error(`File not found at \\`updates.codeSigningCertificate\\` path: ${finalPath}`);\n }\n\n return fs.readFileSync(finalPath, 'utf8');\n}\n\nexport function getUpdatesCodeSigningMetadata(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): NonNullable<ExpoConfigUpdates['updates']>['codeSigningMetadata'] {\n return config.updates?.codeSigningMetadata;\n}\n\nexport function getUpdatesCodeSigningMetadataStringified(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): string | undefined {\n const metadata = getUpdatesCodeSigningMetadata(config);\n if (!metadata) {\n return undefined;\n }\n\n return JSON.stringify(metadata);\n}\n\nexport function getUpdatesRequestHeaders(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): NonNullable<ExpoConfigUpdates['updates']>['requestHeaders'] {\n return config.updates?.requestHeaders;\n}\n\nexport function getUpdatesRequestHeadersStringified(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): string | undefined {\n const metadata = getUpdatesRequestHeaders(config);\n if (!metadata) {\n return undefined;\n }\n\n return JSON.stringify(metadata);\n}\n\nexport function getDisableAntiBrickingMeasures(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): boolean | undefined {\n return config.updates?.disableAntiBrickingMeasures;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Updates.js","names":["_sdkRuntimeVersions","data","require","_fs","_interopRequireDefault","_getenv","_path","_resolveFrom","_semver","AndroidVersion","_interopRequireWildcard","IOSVersion","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","FINGERPRINT_RUNTIME_VERSION_SENTINEL","exports","getExpoUpdatesPackageVersion","projectRoot","expoUpdatesPackageJsonPath","resolveFrom","silent","fs","existsSync","packageJson","JSON","parse","readFileSync","version","getUpdateUrl","config","updates","url","getAppVersion","getNativeVersion","platform","getVersion","buildNumber","getBuildNumber","versionCode","getVersionCode","Error","getRuntimeVersionNullableAsync","getRuntimeVersionAsync","boolish","console","log","runtimeVersion","policy","resolveRuntimeVersionPolicyAsync","sdkVersion","getRuntimeVersionForSDKVersion","getSDKVersion","getUpdatesEnabled","enabled","undefined","getUpdatesUseEmbeddedUpdate","useEmbeddedUpdate","getUpdatesBsdiffPatchSupportEnabled","enableBsdiffPatchSupport","getUpdatesTimeout","fallbackToCacheTimeout","getUpdatesCheckOnLaunch","expoUpdatesPackageVersion","checkAutomatically","semver","gte","getUpdatesCodeSigningCertificate","codeSigningCertificatePath","codeSigningCertificate","finalPath","path","join","getUpdatesCodeSigningMetadata","codeSigningMetadata","getUpdatesCodeSigningMetadataStringified","metadata","stringify","getUpdatesRequestHeaders","requestHeaders","getUpdatesRequestHeadersStringified","getDisableAntiBrickingMeasures","disableAntiBrickingMeasures"],"sources":["../../src/utils/Updates.ts"],"sourcesContent":["import { Android, ExpoConfig, IOS } from '@expo/config-types';\nimport { getRuntimeVersionForSDKVersion } from '@expo/sdk-runtime-versions';\nimport fs from 'fs';\nimport { boolish } from 'getenv';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\nimport semver from 'semver';\n\nimport * as AndroidVersion from '../android/Version';\nimport * as IOSVersion from '../ios/Version';\n\nexport type ExpoConfigUpdates = Pick<\n ExpoConfig,\n 'sdkVersion' | 'runtimeVersion' | 'updates' | 'slug'\n>;\n\nexport const FINGERPRINT_RUNTIME_VERSION_SENTINEL = 'file:fingerprint';\n\nexport function getExpoUpdatesPackageVersion(projectRoot: string): string | null {\n const expoUpdatesPackageJsonPath = resolveFrom.silent(projectRoot, 'expo-updates/package.json');\n if (!expoUpdatesPackageJsonPath || !fs.existsSync(expoUpdatesPackageJsonPath)) {\n return null;\n }\n const packageJson = JSON.parse(fs.readFileSync(expoUpdatesPackageJsonPath, 'utf8'));\n return packageJson.version;\n}\n\nexport function getUpdateUrl(config: Pick<ExpoConfigUpdates, 'updates'>): string | null {\n return config.updates?.url ?? null;\n}\n\nexport function getAppVersion(config: Pick<ExpoConfig, 'version'>): string {\n return config.version ?? '1.0.0';\n}\n\nexport function getNativeVersion(\n config: Pick<ExpoConfig, 'version'> & {\n android?: Pick<Android, 'versionCode'>;\n ios?: Pick<IOS, 'buildNumber'>;\n },\n platform: 'android' | 'ios'\n): string {\n const version = IOSVersion.getVersion(config);\n switch (platform) {\n case 'ios': {\n const buildNumber = IOSVersion.getBuildNumber(config);\n return `${version}(${buildNumber})`;\n }\n case 'android': {\n const versionCode = AndroidVersion.getVersionCode(config);\n return `${version}(${versionCode})`;\n }\n default: {\n throw new Error(\n `\"${platform}\" is not a supported platform. Choose either \"ios\" or \"android\".`\n );\n }\n }\n}\n\nexport async function getRuntimeVersionNullableAsync(\n ...[projectRoot, config, platform]: Parameters<typeof getRuntimeVersionAsync>\n): Promise<string | null> {\n try {\n return await getRuntimeVersionAsync(projectRoot, config, platform);\n } catch (e) {\n if (boolish('EXPO_DEBUG', false)) {\n console.log(e);\n }\n return null;\n }\n}\n\nexport async function getRuntimeVersionAsync(\n projectRoot: string,\n config: Pick<ExpoConfig, 'version' | 'runtimeVersion' | 'sdkVersion'> & {\n android?: Pick<Android, 'versionCode' | 'runtimeVersion'>;\n ios?: Pick<IOS, 'buildNumber' | 'runtimeVersion'>;\n },\n platform: 'android' | 'ios'\n): Promise<string | null> {\n const runtimeVersion = config[platform]?.runtimeVersion ?? config.runtimeVersion;\n if (!runtimeVersion) {\n return null;\n }\n\n if (typeof runtimeVersion === 'string') {\n if (runtimeVersion === FINGERPRINT_RUNTIME_VERSION_SENTINEL) {\n throw new Error(\n `${FINGERPRINT_RUNTIME_VERSION_SENTINEL} is a reserved value for runtime version. To use a fingerprint runtime version, use the \"fingerprint\" runtime version policy.`\n );\n }\n return runtimeVersion;\n } else if (!runtimeVersion.policy) {\n throw new Error(\n `\"${runtimeVersion}\" is not a valid runtime version. Only a string or a runtime version policy is supported.`\n );\n } else if (runtimeVersion.policy === 'fingerprint') {\n return FINGERPRINT_RUNTIME_VERSION_SENTINEL;\n } else {\n return await resolveRuntimeVersionPolicyAsync(runtimeVersion.policy, config, platform);\n }\n}\n\nexport async function resolveRuntimeVersionPolicyAsync(\n policy: 'appVersion' | 'nativeVersion' | 'sdkVersion',\n config: Pick<ExpoConfig, 'version' | 'sdkVersion'> & {\n android?: Pick<Android, 'versionCode'>;\n ios?: Pick<IOS, 'buildNumber'>;\n },\n platform: 'android' | 'ios'\n): Promise<string> {\n if (policy === 'appVersion') {\n return getAppVersion(config);\n } else if (policy === 'nativeVersion') {\n return getNativeVersion(config, platform);\n } else if (policy === 'sdkVersion') {\n if (!config.sdkVersion) {\n throw new Error(\"An SDK version must be defined when using the 'sdkVersion' runtime policy.\");\n }\n return getRuntimeVersionForSDKVersion(config.sdkVersion);\n } else {\n // fingerprint is resolvable only at build time (not in config plugin).\n throw new Error(`\"${policy}\" is not a valid runtime version policy type.`);\n }\n}\n\nexport function getSDKVersion(config: Pick<ExpoConfigUpdates, 'sdkVersion'>): string | null {\n return typeof config.sdkVersion === 'string' ? config.sdkVersion : null;\n}\n\nexport function getUpdatesEnabled(config: Pick<ExpoConfigUpdates, 'updates'>): boolean {\n // allow override of enabled property\n if (config.updates?.enabled !== undefined) {\n return config.updates.enabled;\n }\n\n return getUpdateUrl(config) !== null;\n}\n\nexport function getUpdatesUseEmbeddedUpdate(config: Pick<ExpoConfigUpdates, 'updates'>): boolean {\n if (config.updates?.useEmbeddedUpdate !== undefined) {\n return config.updates.useEmbeddedUpdate;\n }\n\n return true;\n}\n\nexport function getUpdatesBsdiffPatchSupportEnabled(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): boolean {\n if (config.updates?.enableBsdiffPatchSupport !== undefined) {\n return config.updates.enableBsdiffPatchSupport;\n }\n return false;\n}\n\nexport function getUpdatesTimeout(config: Pick<ExpoConfigUpdates, 'updates'>): number {\n return config.updates?.fallbackToCacheTimeout ?? 0;\n}\n\nexport function getUpdatesCheckOnLaunch(\n config: Pick<ExpoConfigUpdates, 'updates'>,\n expoUpdatesPackageVersion?: string | null\n): 'NEVER' | 'ERROR_RECOVERY_ONLY' | 'ALWAYS' | 'WIFI_ONLY' {\n if (config.updates?.checkAutomatically === 'ON_ERROR_RECOVERY') {\n // native 'ERROR_RECOVERY_ONLY' option was only introduced in 0.11.x\n if (expoUpdatesPackageVersion && semver.gte(expoUpdatesPackageVersion, '0.11.0')) {\n return 'ERROR_RECOVERY_ONLY';\n }\n return 'NEVER';\n } else if (config.updates?.checkAutomatically === 'ON_LOAD') {\n return 'ALWAYS';\n } else if (config.updates?.checkAutomatically === 'WIFI_ONLY') {\n return 'WIFI_ONLY';\n } else if (config.updates?.checkAutomatically === 'NEVER') {\n return 'NEVER';\n }\n return 'ALWAYS';\n}\n\nexport function getUpdatesCodeSigningCertificate(\n projectRoot: string,\n config: Pick<ExpoConfigUpdates, 'updates'>\n): string | undefined {\n const codeSigningCertificatePath = config.updates?.codeSigningCertificate;\n if (!codeSigningCertificatePath) {\n return undefined;\n }\n\n const finalPath = path.join(projectRoot, codeSigningCertificatePath);\n if (!fs.existsSync(finalPath)) {\n throw new Error(`File not found at \\`updates.codeSigningCertificate\\` path: ${finalPath}`);\n }\n\n return fs.readFileSync(finalPath, 'utf8');\n}\n\nexport function getUpdatesCodeSigningMetadata(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): NonNullable<ExpoConfigUpdates['updates']>['codeSigningMetadata'] {\n return config.updates?.codeSigningMetadata;\n}\n\nexport function getUpdatesCodeSigningMetadataStringified(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): string | undefined {\n const metadata = getUpdatesCodeSigningMetadata(config);\n if (!metadata) {\n return undefined;\n }\n\n return JSON.stringify(metadata);\n}\n\nexport function getUpdatesRequestHeaders(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): NonNullable<ExpoConfigUpdates['updates']>['requestHeaders'] {\n return config.updates?.requestHeaders;\n}\n\nexport function getUpdatesRequestHeadersStringified(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): string | undefined {\n const metadata = getUpdatesRequestHeaders(config);\n if (!metadata) {\n return undefined;\n }\n\n return JSON.stringify(metadata);\n}\n\nexport function getDisableAntiBrickingMeasures(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): boolean | undefined {\n return config.updates?.disableAntiBrickingMeasures;\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/config-plugins",
3
- "version": "55.0.0",
3
+ "version": "55.0.1",
4
4
  "description": "A library for Expo config plugins",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -55,7 +55,7 @@
55
55
  "paths"
56
56
  ],
57
57
  "dependencies": {
58
- "@expo/config-types": "^55.0.0",
58
+ "@expo/config-types": "^55.0.1",
59
59
  "@expo/json-file": "~10.0.9",
60
60
  "@expo/plist": "^0.5.0",
61
61
  "@expo/sdk-runtime-versions": "^1.0.0",
@@ -78,5 +78,5 @@
78
78
  "publishConfig": {
79
79
  "access": "public"
80
80
  },
81
- "gitHead": "aea645dd881bbf8e396d7eff6f5c0b730176f80c"
81
+ "gitHead": "c7d6f4a7da3ee23f358d214a57029e534bdc69d6"
82
82
  }