@expo/config-plugins 10.0.2 → 10.0.3
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.
- package/build/android/GoogleServices.js +1 -1
- package/build/android/GoogleServices.js.map +1 -1
- package/build/android/Updates.js +1 -1
- package/build/android/Updates.js.map +1 -1
- package/build/ios/Maps.js +2 -2
- package/build/ios/Maps.js.map +1 -1
- package/build/ios/Updates.js +1 -1
- package/build/ios/Updates.js.map +1 -1
- package/build/utils/Updates.d.ts +1 -1
- package/build/utils/Updates.js.map +1 -1
- package/build/utils/errors.js +1 -1
- package/build/utils/errors.js.map +1 -1
- package/package.json +27 -5
|
@@ -97,7 +97,7 @@ async function setGoogleServicesFile(config, projectRoot, targetPath = DEFAULT_T
|
|
|
97
97
|
await (0, _fs().copyFilePathToPathAsync)(completeSourcePath, destinationPath);
|
|
98
98
|
} catch (e) {
|
|
99
99
|
console.log(e);
|
|
100
|
-
throw new Error(`Cannot copy google-services.json from ${completeSourcePath} to ${destinationPath}.
|
|
100
|
+
throw new Error(`Cannot copy google-services.json from ${completeSourcePath} to ${destinationPath}. Ensure the source and destination paths exist.`);
|
|
101
101
|
}
|
|
102
102
|
return true;
|
|
103
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleServices.js","names":["_path","data","_interopRequireDefault","require","_androidPlugins","_withDangerousMod","_fs","_warnings","e","__esModule","default","DEFAULT_TARGET_PATH","googleServicesClassPath","googleServicesPlugin","googleServicesVersion","withClassPath","config","withProjectBuildGradle","modResults","language","contents","setClassPath","addWarningAndroid","exports","withApplyPlugin","withAppBuildGradle","applyPlugin","withGoogleServicesFile","withDangerousMod","setGoogleServicesFile","modRequest","projectRoot","getGoogleServicesFilePath","android","googleServicesFile","targetPath","partialSourcePath","completeSourcePath","path","resolve","destinationPath","copyFilePathToPathAsync","console","log","Error","buildGradle","includes","replace","appBuildGradle","pattern","RegExp","match"],"sources":["../../src/android/GoogleServices.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\nimport path from 'path';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAppBuildGradle, withProjectBuildGradle } from '../plugins/android-plugins';\nimport { withDangerousMod } from '../plugins/withDangerousMod';\nimport { copyFilePathToPathAsync } from '../utils/fs';\nimport { addWarningAndroid } from '../utils/warnings';\n\nconst DEFAULT_TARGET_PATH = './android/app/google-services.json';\n\nconst googleServicesClassPath = 'com.google.gms:google-services';\nconst googleServicesPlugin = 'com.google.gms.google-services';\n\n// NOTE(brentvatne): This may be annoying to keep up to date...\nconst googleServicesVersion = '4.4.1';\n\nexport const withClassPath: ConfigPlugin = (config) => {\n return withProjectBuildGradle(config, (config) => {\n if (config.modResults.language === 'groovy') {\n config.modResults.contents = setClassPath(config, config.modResults.contents);\n } else {\n addWarningAndroid(\n 'android.googleServicesFile',\n `Cannot automatically configure project build.gradle if it's not groovy`\n );\n }\n return config;\n });\n};\n\nexport const withApplyPlugin: ConfigPlugin = (config) => {\n return withAppBuildGradle(config, (config) => {\n if (config.modResults.language === 'groovy') {\n config.modResults.contents = applyPlugin(config, config.modResults.contents);\n } else {\n addWarningAndroid(\n 'android.googleServicesFile',\n `Cannot automatically configure app build.gradle if it's not groovy`\n );\n }\n return config;\n });\n};\n\n/**\n * Add `google-services.json` to project\n */\nexport const withGoogleServicesFile: ConfigPlugin = (config) => {\n return withDangerousMod(config, [\n 'android',\n async (config) => {\n await setGoogleServicesFile(config, config.modRequest.projectRoot);\n return config;\n },\n ]);\n};\n\nexport function getGoogleServicesFilePath(config: Pick<ExpoConfig, 'android'>) {\n return config.android?.googleServicesFile ?? null;\n}\n\nexport async function setGoogleServicesFile(\n config: Pick<ExpoConfig, 'android'>,\n projectRoot: string,\n targetPath: string = DEFAULT_TARGET_PATH\n) {\n const partialSourcePath = getGoogleServicesFilePath(config);\n if (!partialSourcePath) {\n return false;\n }\n\n const completeSourcePath = path.resolve(projectRoot, partialSourcePath);\n const destinationPath = path.resolve(projectRoot, targetPath);\n\n try {\n await copyFilePathToPathAsync(completeSourcePath, destinationPath);\n } catch (e) {\n console.log(e);\n throw new Error(\n `Cannot copy google-services.json from ${completeSourcePath} to ${destinationPath}.
|
|
1
|
+
{"version":3,"file":"GoogleServices.js","names":["_path","data","_interopRequireDefault","require","_androidPlugins","_withDangerousMod","_fs","_warnings","e","__esModule","default","DEFAULT_TARGET_PATH","googleServicesClassPath","googleServicesPlugin","googleServicesVersion","withClassPath","config","withProjectBuildGradle","modResults","language","contents","setClassPath","addWarningAndroid","exports","withApplyPlugin","withAppBuildGradle","applyPlugin","withGoogleServicesFile","withDangerousMod","setGoogleServicesFile","modRequest","projectRoot","getGoogleServicesFilePath","android","googleServicesFile","targetPath","partialSourcePath","completeSourcePath","path","resolve","destinationPath","copyFilePathToPathAsync","console","log","Error","buildGradle","includes","replace","appBuildGradle","pattern","RegExp","match"],"sources":["../../src/android/GoogleServices.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\nimport path from 'path';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAppBuildGradle, withProjectBuildGradle } from '../plugins/android-plugins';\nimport { withDangerousMod } from '../plugins/withDangerousMod';\nimport { copyFilePathToPathAsync } from '../utils/fs';\nimport { addWarningAndroid } from '../utils/warnings';\n\nconst DEFAULT_TARGET_PATH = './android/app/google-services.json';\n\nconst googleServicesClassPath = 'com.google.gms:google-services';\nconst googleServicesPlugin = 'com.google.gms.google-services';\n\n// NOTE(brentvatne): This may be annoying to keep up to date...\nconst googleServicesVersion = '4.4.1';\n\nexport const withClassPath: ConfigPlugin = (config) => {\n return withProjectBuildGradle(config, (config) => {\n if (config.modResults.language === 'groovy') {\n config.modResults.contents = setClassPath(config, config.modResults.contents);\n } else {\n addWarningAndroid(\n 'android.googleServicesFile',\n `Cannot automatically configure project build.gradle if it's not groovy`\n );\n }\n return config;\n });\n};\n\nexport const withApplyPlugin: ConfigPlugin = (config) => {\n return withAppBuildGradle(config, (config) => {\n if (config.modResults.language === 'groovy') {\n config.modResults.contents = applyPlugin(config, config.modResults.contents);\n } else {\n addWarningAndroid(\n 'android.googleServicesFile',\n `Cannot automatically configure app build.gradle if it's not groovy`\n );\n }\n return config;\n });\n};\n\n/**\n * Add `google-services.json` to project\n */\nexport const withGoogleServicesFile: ConfigPlugin = (config) => {\n return withDangerousMod(config, [\n 'android',\n async (config) => {\n await setGoogleServicesFile(config, config.modRequest.projectRoot);\n return config;\n },\n ]);\n};\n\nexport function getGoogleServicesFilePath(config: Pick<ExpoConfig, 'android'>) {\n return config.android?.googleServicesFile ?? null;\n}\n\nexport async function setGoogleServicesFile(\n config: Pick<ExpoConfig, 'android'>,\n projectRoot: string,\n targetPath: string = DEFAULT_TARGET_PATH\n) {\n const partialSourcePath = getGoogleServicesFilePath(config);\n if (!partialSourcePath) {\n return false;\n }\n\n const completeSourcePath = path.resolve(projectRoot, partialSourcePath);\n const destinationPath = path.resolve(projectRoot, targetPath);\n\n try {\n await copyFilePathToPathAsync(completeSourcePath, destinationPath);\n } catch (e) {\n console.log(e);\n throw new Error(\n `Cannot copy google-services.json from ${completeSourcePath} to ${destinationPath}. Ensure the source and destination paths exist.`\n );\n }\n return true;\n}\n\n/**\n * Adding the Google Services plugin\n * NOTE(brentvatne): string replacement is a fragile approach! we need a\n * better solution than this.\n */\nexport function setClassPath(config: Pick<ExpoConfig, 'android'>, buildGradle: string) {\n const googleServicesFile = getGoogleServicesFilePath(config);\n if (!googleServicesFile) {\n return buildGradle;\n }\n\n if (buildGradle.includes(googleServicesClassPath)) {\n return buildGradle;\n }\n\n //\n return buildGradle.replace(\n /dependencies\\s?{/,\n `dependencies {\n classpath '${googleServicesClassPath}:${googleServicesVersion}'`\n );\n}\n\nexport function applyPlugin(config: Pick<ExpoConfig, 'android'>, appBuildGradle: string) {\n const googleServicesFile = getGoogleServicesFilePath(config);\n if (!googleServicesFile) {\n return appBuildGradle;\n }\n\n // Make sure the project does not have the plugin already\n const pattern = new RegExp(`apply\\\\s+plugin:\\\\s+['\"]${googleServicesPlugin}['\"]`);\n if (appBuildGradle.match(pattern)) {\n return appBuildGradle;\n }\n\n // Add it to the end of the file\n return appBuildGradle + `\\napply plugin: '${googleServicesPlugin}'`;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build/android/Updates.js
CHANGED
|
@@ -167,7 +167,7 @@ async function setVersionsConfigAsync(projectRoot, config, androidManifest) {
|
|
|
167
167
|
const mainApplication = (0, _Manifest().getMainApplicationOrThrow)(androidManifest);
|
|
168
168
|
const runtimeVersion = await (0, _Updates().getRuntimeVersionNullableAsync)(projectRoot, config, 'android');
|
|
169
169
|
if (!runtimeVersion && (0, _Manifest().findMetaDataItem)(mainApplication, Config.RUNTIME_VERSION) > -1) {
|
|
170
|
-
throw new Error('A runtime version is set in your AndroidManifest.xml, but is missing from your app.json/app.config.js.
|
|
170
|
+
throw new Error('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.');
|
|
171
171
|
}
|
|
172
172
|
if (runtimeVersion) {
|
|
173
173
|
(0, _Manifest().removeMetaDataItemFromMainApplication)(mainApplication, 'expo.modules.updates.EXPO_SDK_VERSION');
|
|
@@ -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","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 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}\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 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 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 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","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 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}\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 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":[]}
|
package/build/ios/Maps.js
CHANGED
|
@@ -167,7 +167,7 @@ const withMapsCocoaPods = (config, {
|
|
|
167
167
|
results = addMapsCocoaPods(config.modResults.contents);
|
|
168
168
|
} catch (error) {
|
|
169
169
|
if (error.code === 'ERR_NO_MATCH') {
|
|
170
|
-
throw new Error(`Cannot add react-native-maps to the project's ios/Podfile because it's malformed.
|
|
170
|
+
throw new Error(`Cannot add react-native-maps to the project's ios/Podfile because it's malformed. Report this with a copy of your project Podfile: https://github.com/expo/expo/issues`);
|
|
171
171
|
}
|
|
172
172
|
throw error;
|
|
173
173
|
}
|
|
@@ -198,7 +198,7 @@ const withGoogleMapsAppDelegate = (config, {
|
|
|
198
198
|
config.modResults.contents = addGoogleMapsAppDelegateInit(config.modResults.contents, apiKey).contents;
|
|
199
199
|
} catch (error) {
|
|
200
200
|
if (error.code === 'ERR_NO_MATCH') {
|
|
201
|
-
throw new Error(`Cannot add Google Maps to the project's AppDelegate because it's malformed.
|
|
201
|
+
throw new Error(`Cannot add Google Maps to the project's AppDelegate because it's malformed. Report this with a copy of your project AppDelegate: https://github.com/expo/expo/issues`);
|
|
202
202
|
}
|
|
203
203
|
throw error;
|
|
204
204
|
}
|
package/build/ios/Maps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Maps.js","names":["_path","data","_interopRequireDefault","require","_resolveFrom","_iosPlugins","_generateCode","e","__esModule","default","debug","MATCH_INIT","exports","withGoogleMapsKey","createInfoPlistPlugin","setGoogleMapsApiKey","withMaps","config","apiKey","getGoogleMapsApiKey","withMapsCocoaPods","useGoogleMaps","withGoogleMapsAppDelegate","ios","googleMapsApiKey","GMSApiKey","infoPlist","addGoogleMapsAppDelegateImport","src","newSrc","mergeContents","tag","join","anchor","offset","comment","removeGoogleMapsAppDelegateImport","removeContents","addGoogleMapsAppDelegateInit","removeGoogleMapsAppDelegateInit","addMapsCocoaPods","removeMapsCocoaPods","isReactNativeMapsInstalled","projectRoot","resolved","resolveFrom","silent","path","dirname","isReactNativeMapsAutolinked","withPodfile","googleMapsPath","modRequest","isLinked","results","modResults","contents","error","code","Error","didMerge","didClear","withAppDelegate","language"],"sources":["../../src/ios/Maps.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { ConfigPlugin, InfoPlist } from '../Plugin.types';\nimport { createInfoPlistPlugin, withAppDelegate, withPodfile } from '../plugins/ios-plugins';\nimport { mergeContents, MergeResults, removeContents } from '../utils/generateCode';\n\nconst debug = require('debug')('expo:config-plugins:ios:maps') as typeof console.log;\n\nexport const MATCH_INIT = /\\bsuper\\.application\\(\\w+?, didFinishLaunchingWithOptions: \\w+?\\)/g;\n\nconst withGoogleMapsKey = createInfoPlistPlugin(setGoogleMapsApiKey, 'withGoogleMapsKey');\n\nexport const withMaps: ConfigPlugin = (config) => {\n config = withGoogleMapsKey(config);\n\n const apiKey = getGoogleMapsApiKey(config);\n // Technically adds react-native-maps (Apple maps) and google maps.\n\n debug('Google Maps API Key:', apiKey);\n config = withMapsCocoaPods(config, { useGoogleMaps: !!apiKey });\n\n // Adds/Removes AppDelegate setup for Google Maps API on iOS\n config = withGoogleMapsAppDelegate(config, { apiKey });\n\n return config;\n};\n\nexport function getGoogleMapsApiKey(config: Pick<ExpoConfig, 'ios'>) {\n return config.ios?.config?.googleMapsApiKey ?? null;\n}\n\nexport function setGoogleMapsApiKey(\n config: Pick<ExpoConfig, 'ios'>,\n { GMSApiKey, ...infoPlist }: InfoPlist\n): InfoPlist {\n const apiKey = getGoogleMapsApiKey(config);\n\n if (apiKey === null) {\n return infoPlist;\n }\n\n return {\n ...infoPlist,\n GMSApiKey: apiKey,\n };\n}\n\nexport function addGoogleMapsAppDelegateImport(src: string): MergeResults {\n const newSrc = ['#if canImport(GoogleMaps)', 'import GoogleMaps', '#endif'];\n\n return mergeContents({\n tag: 'react-native-maps-import',\n src,\n newSrc: newSrc.join('\\n'),\n anchor: /@UIApplicationMain/,\n offset: 0,\n comment: '//',\n });\n}\n\nexport function removeGoogleMapsAppDelegateImport(src: string): MergeResults {\n return removeContents({\n tag: 'react-native-maps-import',\n src,\n });\n}\n\nexport function addGoogleMapsAppDelegateInit(src: string, apiKey: string): MergeResults {\n const newSrc = ['#if canImport(GoogleMaps)', `GMSServices.provideAPIKey(\"${apiKey}\")`, '#endif'];\n\n return mergeContents({\n tag: 'react-native-maps-init',\n src,\n newSrc: newSrc.join('\\n'),\n anchor: MATCH_INIT,\n offset: 0,\n comment: '//',\n });\n}\n\nexport function removeGoogleMapsAppDelegateInit(src: string): MergeResults {\n return removeContents({\n tag: 'react-native-maps-init',\n src,\n });\n}\n\n/**\n * @param src The contents of the Podfile.\n * @returns Podfile with Google Maps added.\n */\nexport function addMapsCocoaPods(src: string): MergeResults {\n return mergeContents({\n tag: 'react-native-maps',\n src,\n newSrc: ` pod 'react-native-google-maps', path: File.dirname(\\`node --print \"require.resolve('react-native-maps/package.json')\"\\`)`,\n anchor: /use_native_modules/,\n offset: 0,\n comment: '#',\n });\n}\n\nexport function removeMapsCocoaPods(src: string): MergeResults {\n return removeContents({\n tag: 'react-native-maps',\n src,\n });\n}\n\nfunction isReactNativeMapsInstalled(projectRoot: string): string | null {\n const resolved = resolveFrom.silent(projectRoot, 'react-native-maps/package.json');\n return resolved ? path.dirname(resolved) : null;\n}\n\nfunction isReactNativeMapsAutolinked(config: Pick<ExpoConfig, '_internal'>): boolean {\n // Only add the native code changes if we know that the package is going to be linked natively.\n // This is specifically for monorepo support where one app might have react-native-maps (adding it to the node_modules)\n // but another app will not have it installed in the package.json, causing it to not be linked natively.\n // This workaround only exists because react-native-maps doesn't have a config plugin vendored in the package.\n\n // TODO: `react-native-maps` doesn't use Expo autolinking so we cannot safely disable the module.\n return true;\n\n // return (\n // !config._internal?.autolinkedModules ||\n // config._internal.autolinkedModules.includes('react-native-maps')\n // );\n}\n\nconst withMapsCocoaPods: ConfigPlugin<{ useGoogleMaps: boolean }> = (config, { useGoogleMaps }) => {\n return withPodfile(config, async (config) => {\n // Only add the block if react-native-maps is installed in the project (best effort).\n // Generally prebuild runs after a yarn install so this should always work as expected.\n const googleMapsPath = isReactNativeMapsInstalled(config.modRequest.projectRoot);\n const isLinked = isReactNativeMapsAutolinked(config);\n debug('Is Expo Autolinked:', isLinked);\n debug('react-native-maps path:', googleMapsPath);\n\n let results: MergeResults;\n\n if (isLinked && googleMapsPath && useGoogleMaps) {\n try {\n results = addMapsCocoaPods(config.modResults.contents);\n } catch (error: any) {\n if (error.code === 'ERR_NO_MATCH') {\n throw new Error(\n `Cannot add react-native-maps to the project's ios/Podfile because it's malformed. Please report this with a copy of your project Podfile.`\n );\n }\n throw error;\n }\n } else {\n // If the package is no longer installed, then remove the block.\n results = removeMapsCocoaPods(config.modResults.contents);\n }\n\n if (results.didMerge || results.didClear) {\n config.modResults.contents = results.contents;\n }\n\n return config;\n });\n};\n\nconst withGoogleMapsAppDelegate: ConfigPlugin<{ apiKey: string | null }> = (config, { apiKey }) => {\n return withAppDelegate(config, (config) => {\n if (\n !apiKey ||\n !isReactNativeMapsAutolinked(config) ||\n !isReactNativeMapsInstalled(config.modRequest.projectRoot)\n ) {\n config.modResults.contents = removeGoogleMapsAppDelegateImport(\n config.modResults.contents\n ).contents;\n config.modResults.contents = removeGoogleMapsAppDelegateInit(\n config.modResults.contents\n ).contents;\n return config;\n }\n\n if (config.modResults.language !== 'swift') {\n throw new Error(\n `Cannot setup Google Maps because the project AppDelegate is not a supported language: ${config.modResults.language}`\n );\n }\n\n try {\n config.modResults.contents = addGoogleMapsAppDelegateImport(\n config.modResults.contents\n ).contents;\n config.modResults.contents = addGoogleMapsAppDelegateInit(\n config.modResults.contents,\n apiKey\n ).contents;\n } catch (error: any) {\n if (error.code === 'ERR_NO_MATCH') {\n throw new Error(\n `Cannot add Google Maps to the project's AppDelegate because it's malformed. Please report this with a copy of your project AppDelegate.`\n );\n }\n throw error;\n }\n return config;\n });\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Maps.js","names":["_path","data","_interopRequireDefault","require","_resolveFrom","_iosPlugins","_generateCode","e","__esModule","default","debug","MATCH_INIT","exports","withGoogleMapsKey","createInfoPlistPlugin","setGoogleMapsApiKey","withMaps","config","apiKey","getGoogleMapsApiKey","withMapsCocoaPods","useGoogleMaps","withGoogleMapsAppDelegate","ios","googleMapsApiKey","GMSApiKey","infoPlist","addGoogleMapsAppDelegateImport","src","newSrc","mergeContents","tag","join","anchor","offset","comment","removeGoogleMapsAppDelegateImport","removeContents","addGoogleMapsAppDelegateInit","removeGoogleMapsAppDelegateInit","addMapsCocoaPods","removeMapsCocoaPods","isReactNativeMapsInstalled","projectRoot","resolved","resolveFrom","silent","path","dirname","isReactNativeMapsAutolinked","withPodfile","googleMapsPath","modRequest","isLinked","results","modResults","contents","error","code","Error","didMerge","didClear","withAppDelegate","language"],"sources":["../../src/ios/Maps.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { ConfigPlugin, InfoPlist } from '../Plugin.types';\nimport { createInfoPlistPlugin, withAppDelegate, withPodfile } from '../plugins/ios-plugins';\nimport { mergeContents, MergeResults, removeContents } from '../utils/generateCode';\n\nconst debug = require('debug')('expo:config-plugins:ios:maps') as typeof console.log;\n\nexport const MATCH_INIT = /\\bsuper\\.application\\(\\w+?, didFinishLaunchingWithOptions: \\w+?\\)/g;\n\nconst withGoogleMapsKey = createInfoPlistPlugin(setGoogleMapsApiKey, 'withGoogleMapsKey');\n\nexport const withMaps: ConfigPlugin = (config) => {\n config = withGoogleMapsKey(config);\n\n const apiKey = getGoogleMapsApiKey(config);\n // Technically adds react-native-maps (Apple maps) and google maps.\n\n debug('Google Maps API Key:', apiKey);\n config = withMapsCocoaPods(config, { useGoogleMaps: !!apiKey });\n\n // Adds/Removes AppDelegate setup for Google Maps API on iOS\n config = withGoogleMapsAppDelegate(config, { apiKey });\n\n return config;\n};\n\nexport function getGoogleMapsApiKey(config: Pick<ExpoConfig, 'ios'>) {\n return config.ios?.config?.googleMapsApiKey ?? null;\n}\n\nexport function setGoogleMapsApiKey(\n config: Pick<ExpoConfig, 'ios'>,\n { GMSApiKey, ...infoPlist }: InfoPlist\n): InfoPlist {\n const apiKey = getGoogleMapsApiKey(config);\n\n if (apiKey === null) {\n return infoPlist;\n }\n\n return {\n ...infoPlist,\n GMSApiKey: apiKey,\n };\n}\n\nexport function addGoogleMapsAppDelegateImport(src: string): MergeResults {\n const newSrc = ['#if canImport(GoogleMaps)', 'import GoogleMaps', '#endif'];\n\n return mergeContents({\n tag: 'react-native-maps-import',\n src,\n newSrc: newSrc.join('\\n'),\n anchor: /@UIApplicationMain/,\n offset: 0,\n comment: '//',\n });\n}\n\nexport function removeGoogleMapsAppDelegateImport(src: string): MergeResults {\n return removeContents({\n tag: 'react-native-maps-import',\n src,\n });\n}\n\nexport function addGoogleMapsAppDelegateInit(src: string, apiKey: string): MergeResults {\n const newSrc = ['#if canImport(GoogleMaps)', `GMSServices.provideAPIKey(\"${apiKey}\")`, '#endif'];\n\n return mergeContents({\n tag: 'react-native-maps-init',\n src,\n newSrc: newSrc.join('\\n'),\n anchor: MATCH_INIT,\n offset: 0,\n comment: '//',\n });\n}\n\nexport function removeGoogleMapsAppDelegateInit(src: string): MergeResults {\n return removeContents({\n tag: 'react-native-maps-init',\n src,\n });\n}\n\n/**\n * @param src The contents of the Podfile.\n * @returns Podfile with Google Maps added.\n */\nexport function addMapsCocoaPods(src: string): MergeResults {\n return mergeContents({\n tag: 'react-native-maps',\n src,\n newSrc: ` pod 'react-native-google-maps', path: File.dirname(\\`node --print \"require.resolve('react-native-maps/package.json')\"\\`)`,\n anchor: /use_native_modules/,\n offset: 0,\n comment: '#',\n });\n}\n\nexport function removeMapsCocoaPods(src: string): MergeResults {\n return removeContents({\n tag: 'react-native-maps',\n src,\n });\n}\n\nfunction isReactNativeMapsInstalled(projectRoot: string): string | null {\n const resolved = resolveFrom.silent(projectRoot, 'react-native-maps/package.json');\n return resolved ? path.dirname(resolved) : null;\n}\n\nfunction isReactNativeMapsAutolinked(config: Pick<ExpoConfig, '_internal'>): boolean {\n // Only add the native code changes if we know that the package is going to be linked natively.\n // This is specifically for monorepo support where one app might have react-native-maps (adding it to the node_modules)\n // but another app will not have it installed in the package.json, causing it to not be linked natively.\n // This workaround only exists because react-native-maps doesn't have a config plugin vendored in the package.\n\n // TODO: `react-native-maps` doesn't use Expo autolinking so we cannot safely disable the module.\n return true;\n\n // return (\n // !config._internal?.autolinkedModules ||\n // config._internal.autolinkedModules.includes('react-native-maps')\n // );\n}\n\nconst withMapsCocoaPods: ConfigPlugin<{ useGoogleMaps: boolean }> = (config, { useGoogleMaps }) => {\n return withPodfile(config, async (config) => {\n // Only add the block if react-native-maps is installed in the project (best effort).\n // Generally prebuild runs after a yarn install so this should always work as expected.\n const googleMapsPath = isReactNativeMapsInstalled(config.modRequest.projectRoot);\n const isLinked = isReactNativeMapsAutolinked(config);\n debug('Is Expo Autolinked:', isLinked);\n debug('react-native-maps path:', googleMapsPath);\n\n let results: MergeResults;\n\n if (isLinked && googleMapsPath && useGoogleMaps) {\n try {\n results = addMapsCocoaPods(config.modResults.contents);\n } catch (error: any) {\n if (error.code === 'ERR_NO_MATCH') {\n throw new Error(\n `Cannot add react-native-maps to the project's ios/Podfile because it's malformed. Report this with a copy of your project Podfile: https://github.com/expo/expo/issues`\n );\n }\n throw error;\n }\n } else {\n // If the package is no longer installed, then remove the block.\n results = removeMapsCocoaPods(config.modResults.contents);\n }\n\n if (results.didMerge || results.didClear) {\n config.modResults.contents = results.contents;\n }\n\n return config;\n });\n};\n\nconst withGoogleMapsAppDelegate: ConfigPlugin<{ apiKey: string | null }> = (config, { apiKey }) => {\n return withAppDelegate(config, (config) => {\n if (\n !apiKey ||\n !isReactNativeMapsAutolinked(config) ||\n !isReactNativeMapsInstalled(config.modRequest.projectRoot)\n ) {\n config.modResults.contents = removeGoogleMapsAppDelegateImport(\n config.modResults.contents\n ).contents;\n config.modResults.contents = removeGoogleMapsAppDelegateInit(\n config.modResults.contents\n ).contents;\n return config;\n }\n\n if (config.modResults.language !== 'swift') {\n throw new Error(\n `Cannot setup Google Maps because the project AppDelegate is not a supported language: ${config.modResults.language}`\n );\n }\n\n try {\n config.modResults.contents = addGoogleMapsAppDelegateImport(\n config.modResults.contents\n ).contents;\n config.modResults.contents = addGoogleMapsAppDelegateInit(\n config.modResults.contents,\n apiKey\n ).contents;\n } catch (error: any) {\n if (error.code === 'ERR_NO_MATCH') {\n throw new Error(\n `Cannot add Google Maps to the project's AppDelegate because it's malformed. Report this with a copy of your project AppDelegate: https://github.com/expo/expo/issues`\n );\n }\n throw error;\n }\n return config;\n });\n};\n"],"mappings":"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","ignoreList":[]}
|
package/build/ios/Updates.js
CHANGED
|
@@ -139,7 +139,7 @@ async function setVersionsConfigAsync(projectRoot, config, expoPlist) {
|
|
|
139
139
|
};
|
|
140
140
|
const runtimeVersion = await (0, _Updates().getRuntimeVersionNullableAsync)(projectRoot, config, 'ios');
|
|
141
141
|
if (!runtimeVersion && expoPlist[Config.RUNTIME_VERSION]) {
|
|
142
|
-
throw new Error('A runtime version is set in your Expo.plist, but is missing from your app.json/app.config.js.
|
|
142
|
+
throw new Error('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.');
|
|
143
143
|
}
|
|
144
144
|
if (runtimeVersion) {
|
|
145
145
|
delete newExpoPlist['EXUpdatesSDKVersion'];
|
package/build/ios/Updates.js.map
CHANGED
|
@@ -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","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 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}\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 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 app.json/app.config.js. Please either set runtimeVersion in your app.json/app.config.js 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","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 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}\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 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":[]}
|
package/build/utils/Updates.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Android, ExpoConfig, IOS } from '@expo/config-types';
|
|
2
|
-
export type ExpoConfigUpdates = Pick<ExpoConfig, 'sdkVersion' | '
|
|
2
|
+
export type ExpoConfigUpdates = Pick<ExpoConfig, 'sdkVersion' | 'runtimeVersion' | 'updates' | 'slug'>;
|
|
3
3
|
export declare const FINGERPRINT_RUNTIME_VERSION_SENTINEL = "file:fingerprint";
|
|
4
4
|
export declare function getExpoUpdatesPackageVersion(projectRoot: string): string | null;
|
|
5
5
|
export declare function getUpdateUrl(config: Pick<ExpoConfigUpdates, 'updates'>): string | null;
|
|
@@ -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","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' | 'owner' | '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 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","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 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/build/utils/errors.js
CHANGED
|
@@ -7,7 +7,7 @@ exports.UnexpectedError = exports.PluginError = void 0;
|
|
|
7
7
|
class UnexpectedError extends Error {
|
|
8
8
|
name = 'UnexpectedError';
|
|
9
9
|
constructor(message) {
|
|
10
|
-
super(`${message}\
|
|
10
|
+
super(`${message}\nReport this issue: https://github.com/expo/expo/issues`);
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
exports.UnexpectedError = UnexpectedError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","names":["UnexpectedError","Error","name","constructor","message","exports","PluginError","isPluginError","code","cause"],"sources":["../../src/utils/errors.ts"],"sourcesContent":["export class UnexpectedError extends Error {\n readonly name = 'UnexpectedError';\n\n constructor(message: string) {\n super(`${message}\\
|
|
1
|
+
{"version":3,"file":"errors.js","names":["UnexpectedError","Error","name","constructor","message","exports","PluginError","isPluginError","code","cause"],"sources":["../../src/utils/errors.ts"],"sourcesContent":["export class UnexpectedError extends Error {\n readonly name = 'UnexpectedError';\n\n constructor(message: string) {\n super(`${message}\\nReport this issue: https://github.com/expo/expo/issues`);\n }\n}\n\nexport type PluginErrorCode =\n | 'INVALID_PLUGIN_TYPE'\n | 'INVALID_PLUGIN_IMPORT'\n | 'PLUGIN_NOT_FOUND'\n | 'CONFLICTING_PROVIDER'\n | 'INVALID_MOD_ORDER'\n | 'MISSING_PROVIDER';\n\n/**\n * Based on `JsonFileError` from `@expo/json-file`\n */\nexport class PluginError extends Error {\n readonly name = 'PluginError';\n readonly isPluginError = true;\n\n constructor(\n message: string,\n public code: PluginErrorCode,\n public cause?: Error\n ) {\n super(cause ? `${message}\\n└─ Cause: ${cause.name}: ${cause.message}` : message);\n }\n}\n"],"mappings":";;;;;;AAAO,MAAMA,eAAe,SAASC,KAAK,CAAC;EAChCC,IAAI,GAAG,iBAAiB;EAEjCC,WAAWA,CAACC,OAAe,EAAE;IAC3B,KAAK,CAAC,GAAGA,OAAO,0DAA0D,CAAC;EAC7E;AACF;AAACC,OAAA,CAAAL,eAAA,GAAAA,eAAA;AAUD;AACA;AACA;AACO,MAAMM,WAAW,SAASL,KAAK,CAAC;EAC5BC,IAAI,GAAG,aAAa;EACpBK,aAAa,GAAG,IAAI;EAE7BJ,WAAWA,CACTC,OAAe,EACRI,IAAqB,EACrBC,KAAa,EACpB;IACA,KAAK,CAACA,KAAK,GAAG,GAAGL,OAAO,eAAeK,KAAK,CAACP,IAAI,KAAKO,KAAK,CAACL,OAAO,EAAE,GAAGA,OAAO,CAAC;IAAC,KAH1EI,IAAqB,GAArBA,IAAqB;IAAA,KACrBC,KAAa,GAAbA,KAAa;EAGtB;AACF;AAACJ,OAAA,CAAAC,WAAA,GAAAA,WAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,8 +1,30 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/config-plugins",
|
|
3
|
-
"version": "10.0.
|
|
3
|
+
"version": "10.0.3",
|
|
4
4
|
"description": "A library for Expo config plugins",
|
|
5
5
|
"main": "build/index.js",
|
|
6
|
+
"types": "build/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./build/index.d.ts",
|
|
10
|
+
"default": "./build/index.js"
|
|
11
|
+
},
|
|
12
|
+
"./build/android": {
|
|
13
|
+
"types": "./build/android/index.d.ts",
|
|
14
|
+
"default": "./build/android/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./build/ios": {
|
|
17
|
+
"types": "./build/ios/index.d.ts",
|
|
18
|
+
"default": "./build/ios/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./build": {
|
|
21
|
+
"types": "./build/index.d.ts",
|
|
22
|
+
"default": "./build/index.js"
|
|
23
|
+
},
|
|
24
|
+
"./build/*.js": "./build/*.js",
|
|
25
|
+
"./build/*": "./build/*.js",
|
|
26
|
+
"./package.json": "./package.json"
|
|
27
|
+
},
|
|
6
28
|
"scripts": {
|
|
7
29
|
"build": "tsc --emitDeclarationOnly && babel src --out-dir build --extensions \".ts\" --source-maps --ignore \"src/**/__mocks__/*\",\"src/**/__tests__/*\",\"src/**/__integration_tests__/*\"",
|
|
8
30
|
"clean": "expo-module clean",
|
|
@@ -33,13 +55,13 @@
|
|
|
33
55
|
"paths"
|
|
34
56
|
],
|
|
35
57
|
"dependencies": {
|
|
36
|
-
"@expo/config-types": "^53.0.
|
|
58
|
+
"@expo/config-types": "^53.0.4",
|
|
37
59
|
"@expo/json-file": "~9.1.4",
|
|
38
60
|
"@expo/plist": "^0.3.4",
|
|
39
61
|
"@expo/sdk-runtime-versions": "^1.0.0",
|
|
40
62
|
"chalk": "^4.1.2",
|
|
41
63
|
"debug": "^4.3.5",
|
|
42
|
-
"getenv": "^
|
|
64
|
+
"getenv": "^2.0.0",
|
|
43
65
|
"glob": "^10.4.2",
|
|
44
66
|
"resolve-from": "^5.0.0",
|
|
45
67
|
"semver": "^7.5.4",
|
|
@@ -52,10 +74,10 @@
|
|
|
52
74
|
"@types/debug": "^4.1.5",
|
|
53
75
|
"@types/find-up": "^4.0.0",
|
|
54
76
|
"@types/xml2js": "~0.4.11",
|
|
55
|
-
"expo-module-scripts": "^4.1.
|
|
77
|
+
"expo-module-scripts": "^4.1.7"
|
|
56
78
|
},
|
|
57
79
|
"publishConfig": {
|
|
58
80
|
"access": "public"
|
|
59
81
|
},
|
|
60
|
-
"gitHead": "
|
|
82
|
+
"gitHead": "cc3b641cc2e4e7686dca75e7029cf76a07b3d647"
|
|
61
83
|
}
|