@expo/config-plugins
Advanced tools
@@ -165,8 +165,3 @@ "use strict"; | ||
| } | ||
| const bsPatchSupport = (0, _Updates().getUpdatesBsdiffPatchSupportEnabled)(config); | ||
| if (bsPatchSupport) { | ||
| (0, _Manifest().addMetaDataItemToMainApplication)(mainApplication, Config.BSDIFF_PATCH_SUPPORT, 'true'); | ||
| } else { | ||
| (0, _Manifest().removeMetaDataItemFromMainApplication)(mainApplication, Config.BSDIFF_PATCH_SUPPORT); | ||
| } | ||
| (0, _Manifest().addMetaDataItemToMainApplication)(mainApplication, Config.BSDIFF_PATCH_SUPPORT, (0, _Updates().getUpdatesBsdiffPatchSupportEnabled)(config) ? 'true' : 'false'); | ||
| return await setVersionsConfigAsync(projectRoot, config, androidManifest); | ||
@@ -173,0 +168,0 @@ } |
@@ -1,1 +0,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 type { ExpoConfig } from '@expo/config-types';\n\nimport { createBuildGradlePropsConfigPlugin } from './BuildProperties';\nimport type { AndroidManifest } from './Manifest';\nimport {\n addMetaDataItemToMainApplication,\n findMetaDataItem,\n getMainApplicationOrThrow,\n removeMetaDataItemFromMainApplication,\n} from './Manifest';\nimport { buildResourceItem, type ResourceXML } from './Resources';\nimport { removeStringItem, setStringItem } from './Strings';\nimport type { ConfigPlugin, ExportedConfigWithProps } from '../Plugin.types';\nimport { createStringsXmlPlugin, withAndroidManifest } from '../plugins/android-plugins';\nimport { withPlugins } from '../plugins/withPlugins';\nimport type { ExpoConfigUpdates } from '../utils/Updates';\nimport {\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<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":"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","ignoreList":[]} | ||
| {"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","BSDIFF_PATCH_SUPPORT","getUpdatesBsdiffPatchSupportEnabled","setVersionsConfigAsync","findMetaDataItem","RUNTIME_VERSION","Error"],"sources":["../../src/android/Updates.ts"],"sourcesContent":["import type { ExpoConfig } from '@expo/config-types';\n\nimport { createBuildGradlePropsConfigPlugin } from './BuildProperties';\nimport type { AndroidManifest } from './Manifest';\nimport {\n addMetaDataItemToMainApplication,\n findMetaDataItem,\n getMainApplicationOrThrow,\n removeMetaDataItemFromMainApplication,\n} from './Manifest';\nimport { buildResourceItem, type ResourceXML } from './Resources';\nimport { removeStringItem, setStringItem } from './Strings';\nimport type { ConfigPlugin, ExportedConfigWithProps } from '../Plugin.types';\nimport { createStringsXmlPlugin, withAndroidManifest } from '../plugins/android-plugins';\nimport { withPlugins } from '../plugins/withPlugins';\nimport type { ExpoConfigUpdates } from '../utils/Updates';\nimport {\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<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 addMetaDataItemToMainApplication(\n mainApplication,\n Config.BSDIFF_PATCH_SUPPORT,\n getUpdatesBsdiffPatchSupportEnabled(config) ? 'true' : 'false'\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":[]} |
@@ -135,8 +135,3 @@ "use strict"; | ||
| } | ||
| const bsPatchSupport = (0, _Updates().getUpdatesBsdiffPatchSupportEnabled)(config); | ||
| if (bsPatchSupport) { | ||
| newExpoPlist[Config.ENABLE_BSDIFF_PATCH_SUPPORT] = bsPatchSupport; | ||
| } else { | ||
| delete newExpoPlist[Config.ENABLE_BSDIFF_PATCH_SUPPORT]; | ||
| } | ||
| newExpoPlist[Config.ENABLE_BSDIFF_PATCH_SUPPORT] = (0, _Updates().getUpdatesBsdiffPatchSupportEnabled)(config); | ||
| return await setVersionsConfigAsync(projectRoot, config, newExpoPlist); | ||
@@ -143,0 +138,0 @@ } |
@@ -1,1 +0,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 type { ExpoConfig } from '@expo/config-types';\n\nimport { createBuildPodfilePropsConfigPlugin } from './BuildProperties';\nimport type { ExpoPlist } from './IosConfig.types';\nimport type { ConfigPlugin } from '../Plugin.types';\nimport { withExpoPlist } from '../plugins/ios-plugins';\nimport { withPlugins } from '../plugins/withPlugins';\nimport type { ExpoConfigUpdates } from '../utils/Updates';\nimport {\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":";;;;;;;;;AAEA,SAAAA,iBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,gBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAE,YAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,WAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,aAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,YAAA,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;AAcA,SAAAK,UAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,SAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAkD,IAEtCM,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,CAACE,gBAAgB,EAAEC,kCAAkC,CAAC,CAAC;AACpF,CAAC;;AAED;AACA;AACA;AAFAL,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAGO,MAAMI,kCAAkC,GAAAL,OAAA,CAAAK,kCAAA,GAAG,IAAAC,sDAAmC,EACnF,CACE;EACEC,QAAQ,EAAE,oBAAoB;EAC9BC,eAAe,EAAGN,MAAM,IAAMA,MAAM,EAAEO,OAAO,EAAEC,cAAc,KAAK,IAAI,GAAG,MAAM,GAAGC;AACpF,CAAC,CACF,EACD,oCACF,CAAC;AAED,MAAMP,gBAA8B,GAAIF,MAAM,IAAK;EACjD,OAAO,IAAAU,2BAAa,EAACV,MAAM,EAAE,MAAOA,MAAM,IAAK;IAC7C,MAAMW,WAAW,GAAGX,MAAM,CAACY,UAAU,CAACD,WAAW;IACjD,MAAME,yBAAyB,GAAG,IAAAC,uCAA4B,EAACH,WAAW,CAAC;IAC3EX,MAAM,CAACe,UAAU,GAAG,MAAMC,qBAAqB,CAC7CL,WAAW,EACXX,MAAM,EACNA,MAAM,CAACe,UAAU,EACjBF,yBACF,CAAC;IACD,OAAOb,MAAM;EACf,CAAC,CAAC;AACJ,CAAC;AAEM,eAAegB,qBAAqBA,CACzCL,WAAmB,EACnBX,MAAyB,EACzBiB,SAAoB,EACpBJ,yBAAyC,EACrB;EACpB,MAAMK,aAAa,GAAG,IAAAC,kCAAuB,EAACnB,MAAM,EAAEa,yBAAyB,CAAC;EAChF,MAAMO,OAAO,GAAG,IAAAC,4BAAiB,EAACrB,MAAM,CAAC;EACzC,MAAMsB,iBAAiB,GAAG,IAAAC,sCAA2B,EAACvB,MAAM,CAAC;;EAE7D;EACA,IAAI,CAACsB,iBAAiB,IAAIF,OAAO,KAAK,CAAC,IAAIF,aAAa,KAAK,QAAQ,EAAE;IACrE,IAAAM,yBAAa,EACX,2BAA2B,EAC3B,8QACF,CAAC;EACH;EAEA,MAAMC,YAAY,GAAG;IACnB,GAAGR,SAAS;IACZ,CAACpB,MAAM,CAAC6B,OAAO,GAAG,IAAAC,4BAAiB,EAAC3B,MAAM,CAAC;IAC3C,CAACH,MAAM,CAAC+B,eAAe,GAAGV,aAAa;IACvC,CAACrB,MAAM,CAACgC,cAAc,GAAGT;EAC3B,CAAC;;EAED;EACA;EACA;EACA;EACA,IAAIE,iBAAiB,EAAE;IACrB,OAAOG,YAAY,CAAC5B,MAAM,CAACiC,2BAA2B,CAAC;EACzD,CAAC,MAAM;IACLL,YAAY,CAAC5B,MAAM,CAACiC,2BAA2B,CAAC,GAAG,KAAK;EAC1D;EAEA,MAAMC,SAAS,GAAG,IAAAC,uBAAY,EAAChC,MAAM,CAAC;EACtC,IAAI+B,SAAS,EAAE;IACbN,YAAY,CAAC5B,MAAM,CAACoC,UAAU,CAAC,GAAGF,SAAS;EAC7C,CAAC,MAAM;IACL,OAAON,YAAY,CAAC5B,MAAM,CAACoC,UAAU,CAAC;EACxC;EAEA,MAAMC,sBAAsB,GAAG,IAAAC,2CAAgC,EAACxB,WAAW,EAAEX,MAAM,CAAC;EACpF,IAAIkC,sBAAsB,EAAE;IAC1BT,YAAY,CAAC5B,MAAM,CAACuC,wBAAwB,CAAC,GAAGF,sBAAsB;EACxE,CAAC,MAAM;IACL,OAAOT,YAAY,CAAC5B,MAAM,CAACuC,wBAAwB,CAAC;EACtD;EAEA,MAAMC,mBAAmB,GAAG,IAAAC,wCAA6B,EAACtC,MAAM,CAAC;EACjE,IAAIqC,mBAAmB,EAAE;IACvBZ,YAAY,CAAC5B,MAAM,CAAC0C,qBAAqB,CAAC,GAAGF,mBAAmB;EAClE,CAAC,MAAM;IACL,OAAOZ,YAAY,CAAC5B,MAAM,CAAC0C,qBAAqB,CAAC;EACnD;EAEA,MAAMC,cAAc,GAAG,IAAAC,mCAAwB,EAACzC,MAAM,CAAC;EACvD,IAAIwC,cAAc,EAAE;IAClBf,YAAY,CAAC5B,MAAM,CAAC6C,yCAAyC,CAAC,GAAGF,cAAc;EACjF,CAAC,MAAM;IACL,OAAOf,YAAY,CAAC5B,MAAM,CAAC6C,yCAAyC,CAAC;EACvE;EAEA,MAAMC,2BAA2B,GAAG,IAAAC,yCAA8B,EAAC5C,MAAM,CAAC;EAC1E,IAAI2C,2BAA2B,EAAE;IAC/BlB,YAAY,CAAC5B,MAAM,CAACgD,8BAA8B,CAAC,GAAGF,2BAA2B;EACnF,CAAC,MAAM;IACL,OAAOlB,YAAY,CAAC5B,MAAM,CAACgD,8BAA8B,CAAC;EAC5D;EAEA,MAAMC,cAAc,GAAG,IAAAC,8CAAmC,EAAC/C,MAAM,CAAC;EAClE,IAAI8C,cAAc,EAAE;IAClBrB,YAAY,CAAC5B,MAAM,CAACmD,2BAA2B,CAAC,GAAGF,cAAc;EACnE,CAAC,MAAM;IACL,OAAOrB,YAAY,CAAC5B,MAAM,CAACmD,2BAA2B,CAAC;EACzD;EAEA,OAAO,MAAMC,sBAAsB,CAACtC,WAAW,EAAEX,MAAM,EAAEyB,YAAY,CAAC;AACxE;AAEO,eAAewB,sBAAsBA,CAC1CtC,WAAmB,EACnBX,MAAyB,EACzBiB,SAAoB,EACA;EACpB,MAAMQ,YAAY,GAAG;IAAE,GAAGR;EAAU,CAAC;EAErC,MAAMiC,cAAc,GAAG,MAAM,IAAAC,yCAA8B,EAACxC,WAAW,EAAEX,MAAM,EAAE,KAAK,CAAC;EACvF,IAAI,CAACkD,cAAc,IAAIjC,SAAS,CAACpB,MAAM,CAACuD,eAAe,CAAC,EAAE;IACxD,MAAM,IAAIC,KAAK,CACb,oNACF,CAAC;EACH;EAEA,IAAIH,cAAc,EAAE;IAClB,OAAOzB,YAAY,CAAC,qBAAqB,CAAC;IAC1CA,YAAY,CAAC5B,MAAM,CAACuD,eAAe,CAAC,GAAGF,cAAc;EACvD,CAAC,MAAM;IACL,OAAOzB,YAAY,CAAC,qBAAqB,CAAC;IAC1C,OAAOA,YAAY,CAAC5B,MAAM,CAACuD,eAAe,CAAC;EAC7C;EAEA,OAAO3B,YAAY;AACrB","ignoreList":[]} | ||
| {"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","ENABLE_BSDIFF_PATCH_SUPPORT","getUpdatesBsdiffPatchSupportEnabled","setVersionsConfigAsync","runtimeVersion","getRuntimeVersionNullableAsync","RUNTIME_VERSION","Error"],"sources":["../../src/ios/Updates.ts"],"sourcesContent":["import type { ExpoConfig } from '@expo/config-types';\n\nimport { createBuildPodfilePropsConfigPlugin } from './BuildProperties';\nimport type { ExpoPlist } from './IosConfig.types';\nimport type { ConfigPlugin } from '../Plugin.types';\nimport { withExpoPlist } from '../plugins/ios-plugins';\nimport { withPlugins } from '../plugins/withPlugins';\nimport type { ExpoConfigUpdates } from '../utils/Updates';\nimport {\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 newExpoPlist[Config.ENABLE_BSDIFF_PATCH_SUPPORT] = getUpdatesBsdiffPatchSupportEnabled(config);\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":[]} |
@@ -181,3 +181,3 @@ "use strict"; | ||
| } | ||
| return false; | ||
| return true; | ||
| } | ||
@@ -184,0 +184,0 @@ function getUpdatesTimeout(config) { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"Updates.js","names":["_sdkRuntimeVersions","data","require","_fs","_interopRequireDefault","_getenv","_path","_resolveFrom","_semver","AndroidVersion","_interopRequireWildcard","IOSVersion","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","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 type { 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":[]} | ||
| {"version":3,"file":"Updates.js","names":["_sdkRuntimeVersions","data","require","_fs","_interopRequireDefault","_getenv","_path","_resolveFrom","_semver","AndroidVersion","_interopRequireWildcard","IOSVersion","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","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 type { 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":[]} |
+2
-2
| { | ||
| "name": "@expo/config-plugins", | ||
| "version": "56.0.5", | ||
| "version": "56.0.6", | ||
| "description": "A library for Expo config plugins", | ||
@@ -74,3 +74,3 @@ "main": "build/index.js", | ||
| }, | ||
| "gitHead": "51c27fce31a5b3a877a4b05d832dabf4a99db5e1", | ||
| "gitHead": "290368bc41026449a05a4ebf991b85c3a2fb0e3a", | ||
| "scripts": { | ||
@@ -77,0 +77,0 @@ "build": "tsc --emitDeclarationOnly && babel src --out-dir build --extensions \".ts\" --source-maps --ignore \"src/**/__mocks__/*\",\"src/**/__tests__/*\",\"src/**/__integration_tests__/*\"", |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
1170998
-0.07%13417
-0.07%