1{"version":3,"file":"Updates.js","names":["Fingerprint","data","_interopRequireWildcard","require","_sdkRuntimeVersions","_fs","_interopRequireDefault","_getenv","_path","_resolveFrom","_semver","_","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","getExpoUpdatesPackageVersion","projectRoot","expoUpdatesPackageJsonPath","resolveFrom","silent","fs","existsSync","packageJson","JSON","parse","readFileSync","version","getUpdateUrl","config","_config$updates$url","_config$updates","updates","url","getAppVersion","_config$version","getNativeVersion","platform","IOSConfig","Version","getVersion","buildNumber","getBuildNumber","versionCode","AndroidConfig","getVersionCode","Error","getRuntimeVersionNullableAsync","getRuntimeVersionAsync","e","boolish","console","log","_config$platform$runt","_config$platform","runtimeVersion","policy","sdkVersion","getRuntimeVersionForSDKVersion","warn","createProjectHashAsync","stringify","getSDKVersion","getUpdatesEnabled","_config$updates2","enabled","undefined","getUpdatesTimeout","_config$updates$fallb","_config$updates3","fallbackToCacheTimeout","getUpdatesCheckOnLaunch","expoUpdatesPackageVersion","_config$updates4","_config$updates5","_config$updates6","_config$updates7","checkAutomatically","semver","gte","getUpdatesCodeSigningCertificate","_config$updates8","codeSigningCertificatePath","codeSigningCertificate","finalPath","path","join","getUpdatesCodeSigningMetadata","_config$updates9","codeSigningMetadata","getUpdatesCodeSigningMetadataStringified","metadata","getUpdatesRequestHeaders","_config$updates10","requestHeaders","getUpdatesRequestHeadersStringified"],"sources":["../../src/utils/Updates.ts"],"sourcesContent":["import { Android, ExpoConfig, IOS } from '@expo/config-types';\nimport * as Fingerprint from '@expo/fingerprint';\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 { AndroidConfig, IOSConfig } from '..';\n\nexport type ExpoConfigUpdates = Pick<\n ExpoConfig,\n 'sdkVersion' | 'owner' | 'runtimeVersion' | 'updates' | 'slug'\n>;\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 = IOSConfig.Version.getVersion(config);\n switch (platform) {\n case 'ios': {\n const buildNumber = IOSConfig.Version.getBuildNumber(config);\n return `${version}(${buildNumber})`;\n }\n case 'android': {\n const versionCode = AndroidConfig.Version.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 return runtimeVersion;\n } else if (runtimeVersion.policy === 'appVersion') {\n return getAppVersion(config);\n } else if (runtimeVersion.policy === 'nativeVersion') {\n return getNativeVersion(config, platform);\n } else if (runtimeVersion.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 if (runtimeVersion.policy === 'fingerprintExperimental') {\n console.warn(\n \"Use of the experimental 'fingerprintExperimental' runtime policy may result in unexpected system behavior.\"\n );\n return await Fingerprint.createProjectHashAsync(projectRoot);\n }\n\n throw new Error(\n `\"${\n typeof runtimeVersion === 'object' ? JSON.stringify(runtimeVersion) : runtimeVersion\n }\" is not a valid runtime version. getRuntimeVersionAsync only supports a string, \"sdkVersion\", \"appVersion\", \"nativeVersion\" or \"fingerprintExperimental\" policy.`\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 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"],"mappings":"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"}