1{"version":3,"file":"Updates.js","names":["CREATE_MANIFEST_ANDROID_PATH","Config","withUpdates","config","expoUsername","withPlugins","withUpdatesManifest","withRuntimeVersionResource","withAndroidManifest","projectRoot","modRequest","expoUpdatesPackageVersion","getExpoUpdatesPackageVersion","modResults","setUpdatesConfig","createStringsXmlPlugin","applyRuntimeVersionFromConfig","stringsJSON","runtimeVersion","getRuntimeVersionNullable","setStringItem","buildResourceItem","name","value","removeStringItem","androidManifest","username","mainApplication","getMainApplicationOrThrow","addMetaDataItemToMainApplication","ENABLED","String","getUpdatesEnabled","CHECK_ON_LAUNCH","getUpdatesCheckOnLaunch","LAUNCH_WAIT_MS","getUpdatesTimeout","updateUrl","getUpdateUrl","UPDATE_URL","removeMetaDataItemFromMainApplication","codeSigningCertificate","getUpdatesCodeSigningCertificate","CODE_SIGNING_CERTIFICATE","codeSigningMetadata","getUpdatesCodeSigningMetadataStringified","CODE_SIGNING_METADATA","setVersionsConfig","findMetaDataItem","RUNTIME_VERSION","Error","sdkVersion","getSDKVersion","SDK_VERSION","ensureBuildGradleContainsConfigurationScript","buildGradleContents","isBuildGradleConfigured","cleanedUpBuildGradleContents","isBuildGradleMisconfigured","split","some","line","includes","replace","RegExp","gradleScriptApply","formatApplyLineForBuildGradle","updatesGradleScriptPath","resolveFrom","silent","relativePath","path","relative","join","posixPath","process","platform","androidBuildScript","isMainApplicationMetaDataSet","getMainApplicationMetaDataValue","Boolean","isMainApplicationMetaDataSynced","areVersionsSynced","expectedRuntimeVersion","expectedSdkVersion","currentRuntimeVersion","currentSdkVersion"],"sources":["../../src/android/Updates.ts"],"sourcesContent":["import path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { createStringsXmlPlugin, withAndroidManifest } from '../plugins/android-plugins';\nimport { withPlugins } from '../plugins/withPlugins';\nimport {\n  ExpoConfigUpdates,\n  getExpoUpdatesPackageVersion,\n  getRuntimeVersionNullable,\n  getSDKVersion,\n  getUpdatesCheckOnLaunch,\n  getUpdatesCodeSigningCertificate,\n  getUpdatesCodeSigningMetadataStringified,\n  getUpdatesEnabled,\n  getUpdatesTimeout,\n  getUpdateUrl,\n} from '../utils/Updates';\nimport {\n  addMetaDataItemToMainApplication,\n  AndroidManifest,\n  findMetaDataItem,\n  getMainApplicationMetaDataValue,\n  getMainApplicationOrThrow,\n  removeMetaDataItemFromMainApplication,\n} from './Manifest';\nimport { buildResourceItem, ResourceXML } from './Resources';\nimport { removeStringItem, setStringItem } from './Strings';\n\nconst CREATE_MANIFEST_ANDROID_PATH = 'expo-updates/scripts/create-manifest-android.gradle';\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  SDK_VERSION = 'expo.modules.updates.EXPO_SDK_VERSION',\n  RUNTIME_VERSION = 'expo.modules.updates.EXPO_RUNTIME_VERSION',\n  UPDATE_URL = 'expo.modules.updates.EXPO_UPDATE_URL',\n  RELEASE_CHANNEL = 'expo.modules.updates.EXPO_RELEASE_CHANNEL',\n  UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY = 'expo.modules.updates.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY',\n  CODE_SIGNING_CERTIFICATE = 'expo.modules.updates.CODE_SIGNING_CERTIFICATE',\n  CODE_SIGNING_METADATA = 'expo.modules.updates.CODE_SIGNING_METADATA',\n}\n\nexport const withUpdates: ConfigPlugin<{ expoUsername: string | null }> = (\n  config,\n  { expoUsername }\n) => {\n  return withPlugins(config, [[withUpdatesManifest, { expoUsername }], withRuntimeVersionResource]);\n};\n\nconst withUpdatesManifest: ConfigPlugin<{ expoUsername: string | null }> = (\n  config,\n  { expoUsername }\n) => {\n  return withAndroidManifest(config, (config) => {\n    const projectRoot = config.modRequest.projectRoot;\n    const expoUpdatesPackageVersion = getExpoUpdatesPackageVersion(projectRoot);\n    config.modResults = setUpdatesConfig(\n      projectRoot,\n      config,\n      config.modResults,\n      expoUsername,\n      expoUpdatesPackageVersion\n    );\n    return config;\n  });\n};\n\nconst withRuntimeVersionResource = createStringsXmlPlugin(\n  applyRuntimeVersionFromConfig,\n  'withRuntimeVersionResource'\n);\n\nexport function applyRuntimeVersionFromConfig(\n  config: Pick<ExpoConfigUpdates, 'sdkVersion' | 'runtimeVersion'>,\n  stringsJSON: ResourceXML\n): ResourceXML {\n  const runtimeVersion = getRuntimeVersionNullable(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 function setUpdatesConfig(\n  projectRoot: string,\n  config: ExpoConfigUpdates,\n  androidManifest: AndroidManifest,\n  username: string | null,\n  expoUpdatesPackageVersion?: string | null\n): AndroidManifest {\n  const mainApplication = getMainApplicationOrThrow(androidManifest);\n\n  addMetaDataItemToMainApplication(\n    mainApplication,\n    Config.ENABLED,\n    String(getUpdatesEnabled(config))\n  );\n  addMetaDataItemToMainApplication(\n    mainApplication,\n    Config.CHECK_ON_LAUNCH,\n    getUpdatesCheckOnLaunch(config, expoUpdatesPackageVersion)\n  );\n  addMetaDataItemToMainApplication(\n    mainApplication,\n    Config.LAUNCH_WAIT_MS,\n    String(getUpdatesTimeout(config))\n  );\n\n  const updateUrl = getUpdateUrl(config, username);\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  return setVersionsConfig(config, androidManifest);\n}\n\nexport function setVersionsConfig(\n  config: Pick<ExpoConfigUpdates, 'sdkVersion' | 'runtimeVersion'>,\n  androidManifest: AndroidManifest\n): AndroidManifest {\n  const mainApplication = getMainApplicationOrThrow(androidManifest);\n\n  const runtimeVersion = getRuntimeVersionNullable(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 app.json/app.config.js. Please either set runtimeVersion in your app.json/app.config.js or remove expo.modules.updates.EXPO_RUNTIME_VERSION from your AndroidManifest.xml.'\n    );\n  }\n  const sdkVersion = getSDKVersion(config);\n  if (runtimeVersion) {\n    removeMetaDataItemFromMainApplication(mainApplication, Config.SDK_VERSION);\n    addMetaDataItemToMainApplication(\n      mainApplication,\n      Config.RUNTIME_VERSION,\n      '@string/expo_runtime_version'\n    );\n  } else if (sdkVersion) {\n    /**\n     * runtime version maybe null in projects using classic updates. In that\n     * case we use SDK version\n     */\n    removeMetaDataItemFromMainApplication(mainApplication, Config.RUNTIME_VERSION);\n    addMetaDataItemToMainApplication(mainApplication, Config.SDK_VERSION, sdkVersion);\n  } else {\n    removeMetaDataItemFromMainApplication(mainApplication, Config.RUNTIME_VERSION);\n    removeMetaDataItemFromMainApplication(mainApplication, Config.SDK_VERSION);\n  }\n\n  return androidManifest;\n}\nexport function ensureBuildGradleContainsConfigurationScript(\n  projectRoot: string,\n  buildGradleContents: string\n): string {\n  if (!isBuildGradleConfigured(projectRoot, buildGradleContents)) {\n    let cleanedUpBuildGradleContents;\n\n    const isBuildGradleMisconfigured = buildGradleContents\n      .split('\\n')\n      .some((line) => line.includes(CREATE_MANIFEST_ANDROID_PATH));\n    if (isBuildGradleMisconfigured) {\n      cleanedUpBuildGradleContents = buildGradleContents.replace(\n        new RegExp(`(\\n// Integration with Expo updates)?\\n.*${CREATE_MANIFEST_ANDROID_PATH}.*\\n`),\n        ''\n      );\n    } else {\n      cleanedUpBuildGradleContents = buildGradleContents;\n    }\n\n    const gradleScriptApply = formatApplyLineForBuildGradle(projectRoot);\n    return `${cleanedUpBuildGradleContents}\\n// Integration with Expo updates\\n${gradleScriptApply}\\n`;\n  } else {\n    return buildGradleContents;\n  }\n}\n\nexport function formatApplyLineForBuildGradle(projectRoot: string): string {\n  const updatesGradleScriptPath = resolveFrom.silent(projectRoot, CREATE_MANIFEST_ANDROID_PATH);\n\n  if (!updatesGradleScriptPath) {\n    throw new Error(\n      \"Could not find the build script for Android. This could happen in case of outdated 'node_modules'. Run 'npm install' to make sure that it's up-to-date.\"\n    );\n  }\n\n  const relativePath = path.relative(\n    path.join(projectRoot, 'android', 'app'),\n    updatesGradleScriptPath\n  );\n  const posixPath = process.platform === 'win32' ? relativePath.replace(/\\\\/g, '/') : relativePath;\n\n  return `apply from: \"${posixPath}\"`;\n}\n\nexport function isBuildGradleConfigured(projectRoot: string, buildGradleContents: string): boolean {\n  const androidBuildScript = formatApplyLineForBuildGradle(projectRoot);\n\n  return (\n    buildGradleContents\n      .replace(/\\r\\n/g, '\\n')\n      .split('\\n')\n      // Check for both single and double quotes\n      .some((line) => line === androidBuildScript || line === androidBuildScript.replace(/\"/g, \"'\"))\n  );\n}\n\nexport function isMainApplicationMetaDataSet(androidManifest: AndroidManifest): boolean {\n  const updateUrl = getMainApplicationMetaDataValue(androidManifest, Config.UPDATE_URL);\n  const runtimeVersion = getMainApplicationMetaDataValue(androidManifest, Config.RUNTIME_VERSION);\n  const sdkVersion = getMainApplicationMetaDataValue(androidManifest, Config.SDK_VERSION);\n\n  return Boolean(updateUrl && (sdkVersion || runtimeVersion));\n}\n\nexport function isMainApplicationMetaDataSynced(\n  projectRoot: string,\n  config: ExpoConfigUpdates,\n  androidManifest: AndroidManifest,\n  username: string | null\n): boolean {\n  return (\n    getUpdateUrl(config, username) ===\n      getMainApplicationMetaDataValue(androidManifest, Config.UPDATE_URL) &&\n    String(getUpdatesEnabled(config)) ===\n      getMainApplicationMetaDataValue(androidManifest, Config.ENABLED) &&\n    String(getUpdatesTimeout(config)) ===\n      getMainApplicationMetaDataValue(androidManifest, Config.LAUNCH_WAIT_MS) &&\n    getUpdatesCheckOnLaunch(config) ===\n      getMainApplicationMetaDataValue(androidManifest, Config.CHECK_ON_LAUNCH) &&\n    getUpdatesCodeSigningCertificate(projectRoot, config) ===\n      getMainApplicationMetaDataValue(androidManifest, Config.CODE_SIGNING_CERTIFICATE) &&\n    getUpdatesCodeSigningMetadataStringified(config) ===\n      getMainApplicationMetaDataValue(androidManifest, Config.CODE_SIGNING_METADATA) &&\n    areVersionsSynced(config, androidManifest)\n  );\n}\n\nexport function areVersionsSynced(\n  config: Pick<ExpoConfigUpdates, 'runtimeVersion' | 'sdkVersion'>,\n  androidManifest: AndroidManifest\n): boolean {\n  const expectedRuntimeVersion = getRuntimeVersionNullable(config, 'android');\n  const expectedSdkVersion = getSDKVersion(config);\n\n  const currentRuntimeVersion = getMainApplicationMetaDataValue(\n    androidManifest,\n    Config.RUNTIME_VERSION\n  );\n  const currentSdkVersion = getMainApplicationMetaDataValue(androidManifest, Config.SDK_VERSION);\n\n  if (expectedRuntimeVersion !== null) {\n    return currentRuntimeVersion === expectedRuntimeVersion && currentSdkVersion === null;\n  } else if (expectedSdkVersion !== null) {\n    return currentSdkVersion === expectedSdkVersion && currentRuntimeVersion === null;\n  } else {\n    return true;\n  }\n}\n"],"mappings":"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"}