@expo/config-plugins 8.0.0-beta.0 → 8.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/utils/Updates.js
CHANGED
|
@@ -121,13 +121,12 @@ async function getRuntimeVersionAsync(projectRoot, config, platform) {
|
|
|
121
121
|
}
|
|
122
122
|
if (typeof runtimeVersion === 'string') {
|
|
123
123
|
if (runtimeVersion === FINGERPRINT_RUNTIME_VERSION_SENTINEL) {
|
|
124
|
-
throw new Error(`${FINGERPRINT_RUNTIME_VERSION_SENTINEL} is a reserved value for runtime version. To use a fingerprint runtime version, use the "
|
|
124
|
+
throw new Error(`${FINGERPRINT_RUNTIME_VERSION_SENTINEL} is a reserved value for runtime version. To use a fingerprint runtime version, use the "fingerprint" runtime version policy.`);
|
|
125
125
|
}
|
|
126
126
|
return runtimeVersion;
|
|
127
127
|
} else if (!runtimeVersion.policy) {
|
|
128
128
|
throw new Error(`"${runtimeVersion}" is not a valid runtime version. Only a string or a runtime version policy is supported.`);
|
|
129
|
-
} else if (runtimeVersion.policy === '
|
|
130
|
-
console.warn(`Use of the experimental '${runtimeVersion.policy}' runtime policy may result in unexpected system behavior.`);
|
|
129
|
+
} else if (runtimeVersion.policy === 'fingerprint') {
|
|
131
130
|
return FINGERPRINT_RUNTIME_VERSION_SENTINEL;
|
|
132
131
|
} else {
|
|
133
132
|
return await resolveRuntimeVersionPolicyAsync(runtimeVersion.policy, config, platform);
|
|
@@ -144,7 +143,7 @@ async function resolveRuntimeVersionPolicyAsync(policy, config, platform) {
|
|
|
144
143
|
}
|
|
145
144
|
return (0, _sdkRuntimeVersions().getRuntimeVersionForSDKVersion)(config.sdkVersion);
|
|
146
145
|
} else {
|
|
147
|
-
//
|
|
146
|
+
// fingerprint is resolvable only at build time (not in config plugin).
|
|
148
147
|
throw new Error(`"${policy}" is not a valid runtime version policy type.`);
|
|
149
148
|
}
|
|
150
149
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Updates.js","names":["_sdkRuntimeVersions","data","require","_fs","_interopRequireDefault","_getenv","_path","_resolveFrom","_semver","_","obj","__esModule","default","FINGERPRINT_RUNTIME_VERSION_SENTINEL","exports","getExpoUpdatesPackageVersion","projectRoot","expoUpdatesPackageJsonPath","resolveFrom","silent","fs","existsSync","packageJson","JSON","parse","readFileSync","version","getUpdateUrl","config","updates","url","getAppVersion","getNativeVersion","platform","IOSConfig","Version","getVersion","buildNumber","getBuildNumber","versionCode","AndroidConfig","getVersionCode","Error","getRuntimeVersionNullableAsync","getRuntimeVersionAsync","e","boolish","console","log","runtimeVersion","policy","warn","resolveRuntimeVersionPolicyAsync","sdkVersion","getRuntimeVersionForSDKVersion","getSDKVersion","getUpdatesEnabled","enabled","undefined","getUpdatesTimeout","fallbackToCacheTimeout","getUpdatesCheckOnLaunch","expoUpdatesPackageVersion","checkAutomatically","semver","gte","getUpdatesCodeSigningCertificate","codeSigningCertificatePath","codeSigningCertificate","finalPath","path","join","getUpdatesCodeSigningMetadata","codeSigningMetadata","getUpdatesCodeSigningMetadataStringified","metadata","stringify","getUpdatesRequestHeaders","requestHeaders","getUpdatesRequestHeadersStringified"],"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 { AndroidConfig, IOSConfig } from '..';\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 = IOSConfig.Version.getVersion(config);\n switch (platform) {\n case 'ios': {\n const buildNumber = IOSConfig.Version.getBuildNumber(config);\n return `${version}(${buildNumber})`;\n }\n case 'android': {\n const versionCode = AndroidConfig.Version.getVersionCode(config);\n return `${version}(${versionCode})`;\n }\n default: {\n throw new Error(\n `\"${platform}\" is not a supported platform. Choose either \"ios\" or \"android\".`\n );\n }\n }\n}\n\nexport async function getRuntimeVersionNullableAsync(\n ...[projectRoot, config, platform]: Parameters<typeof getRuntimeVersionAsync>\n): Promise<string | null> {\n try {\n return await getRuntimeVersionAsync(projectRoot, config, platform);\n } catch (e) {\n if (boolish('EXPO_DEBUG', false)) {\n console.log(e);\n }\n return null;\n }\n}\n\nexport async function getRuntimeVersionAsync(\n projectRoot: string,\n config: Pick<ExpoConfig, 'version' | 'runtimeVersion' | 'sdkVersion'> & {\n android?: Pick<Android, 'versionCode' | 'runtimeVersion'>;\n ios?: Pick<IOS, 'buildNumber' | 'runtimeVersion'>;\n },\n platform: 'android' | 'ios'\n): Promise<string | null> {\n const runtimeVersion = config[platform]?.runtimeVersion ?? config.runtimeVersion;\n if (!runtimeVersion) {\n return null;\n }\n\n if (typeof runtimeVersion === 'string') {\n 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 \"fingerprintExperimental\" 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 === 'fingerprintExperimental') {\n console.warn(\n `Use of the experimental '${runtimeVersion.policy}' runtime policy may result in unexpected system behavior.`\n );\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 // fingerprintExperimental 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 getUpdatesTimeout(config: Pick<ExpoConfigUpdates, 'updates'>): number {\n return config.updates?.fallbackToCacheTimeout ?? 0;\n}\n\nexport function getUpdatesCheckOnLaunch(\n config: Pick<ExpoConfigUpdates, 'updates'>,\n expoUpdatesPackageVersion?: string | null\n): 'NEVER' | 'ERROR_RECOVERY_ONLY' | 'ALWAYS' | 'WIFI_ONLY' {\n if (config.updates?.checkAutomatically === 'ON_ERROR_RECOVERY') {\n // native 'ERROR_RECOVERY_ONLY' option was only introduced in 0.11.x\n if (expoUpdatesPackageVersion && semver.gte(expoUpdatesPackageVersion, '0.11.0')) {\n return 'ERROR_RECOVERY_ONLY';\n }\n return 'NEVER';\n } else if (config.updates?.checkAutomatically === 'ON_LOAD') {\n return 'ALWAYS';\n } else if (config.updates?.checkAutomatically === 'WIFI_ONLY') {\n return 'WIFI_ONLY';\n } else if (config.updates?.checkAutomatically === 'NEVER') {\n return 'NEVER';\n }\n return 'ALWAYS';\n}\n\nexport function getUpdatesCodeSigningCertificate(\n projectRoot: string,\n config: Pick<ExpoConfigUpdates, 'updates'>\n): string | undefined {\n const codeSigningCertificatePath = config.updates?.codeSigningCertificate;\n if (!codeSigningCertificatePath) {\n return undefined;\n }\n\n const finalPath = path.join(projectRoot, codeSigningCertificatePath);\n if (!fs.existsSync(finalPath)) {\n throw new Error(`File not found at \\`updates.codeSigningCertificate\\` path: ${finalPath}`);\n }\n\n return fs.readFileSync(finalPath, 'utf8');\n}\n\nexport function getUpdatesCodeSigningMetadata(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): NonNullable<ExpoConfigUpdates['updates']>['codeSigningMetadata'] {\n return config.updates?.codeSigningMetadata;\n}\n\nexport function getUpdatesCodeSigningMetadataStringified(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): string | undefined {\n const metadata = getUpdatesCodeSigningMetadata(config);\n if (!metadata) {\n return undefined;\n }\n\n return JSON.stringify(metadata);\n}\n\nexport function getUpdatesRequestHeaders(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): NonNullable<ExpoConfigUpdates['updates']>['requestHeaders'] {\n return config.updates?.requestHeaders;\n}\n\nexport function getUpdatesRequestHeadersStringified(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): string | undefined {\n const metadata = getUpdatesRequestHeaders(config);\n if (!metadata) {\n return undefined;\n }\n\n return JSON.stringify(metadata);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Updates.js","names":["_sdkRuntimeVersions","data","require","_fs","_interopRequireDefault","_getenv","_path","_resolveFrom","_semver","_","obj","__esModule","default","FINGERPRINT_RUNTIME_VERSION_SENTINEL","exports","getExpoUpdatesPackageVersion","projectRoot","expoUpdatesPackageJsonPath","resolveFrom","silent","fs","existsSync","packageJson","JSON","parse","readFileSync","version","getUpdateUrl","config","updates","url","getAppVersion","getNativeVersion","platform","IOSConfig","Version","getVersion","buildNumber","getBuildNumber","versionCode","AndroidConfig","getVersionCode","Error","getRuntimeVersionNullableAsync","getRuntimeVersionAsync","e","boolish","console","log","runtimeVersion","policy","resolveRuntimeVersionPolicyAsync","sdkVersion","getRuntimeVersionForSDKVersion","getSDKVersion","getUpdatesEnabled","enabled","undefined","getUpdatesTimeout","fallbackToCacheTimeout","getUpdatesCheckOnLaunch","expoUpdatesPackageVersion","checkAutomatically","semver","gte","getUpdatesCodeSigningCertificate","codeSigningCertificatePath","codeSigningCertificate","finalPath","path","join","getUpdatesCodeSigningMetadata","codeSigningMetadata","getUpdatesCodeSigningMetadataStringified","metadata","stringify","getUpdatesRequestHeaders","requestHeaders","getUpdatesRequestHeadersStringified"],"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 { AndroidConfig, IOSConfig } from '..';\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 = IOSConfig.Version.getVersion(config);\n switch (platform) {\n case 'ios': {\n const buildNumber = IOSConfig.Version.getBuildNumber(config);\n return `${version}(${buildNumber})`;\n }\n case 'android': {\n const versionCode = AndroidConfig.Version.getVersionCode(config);\n return `${version}(${versionCode})`;\n }\n default: {\n throw new Error(\n `\"${platform}\" is not a supported platform. Choose either \"ios\" or \"android\".`\n );\n }\n }\n}\n\nexport async function getRuntimeVersionNullableAsync(\n ...[projectRoot, config, platform]: Parameters<typeof getRuntimeVersionAsync>\n): Promise<string | null> {\n try {\n return await getRuntimeVersionAsync(projectRoot, config, platform);\n } catch (e) {\n if (boolish('EXPO_DEBUG', false)) {\n console.log(e);\n }\n return null;\n }\n}\n\nexport async function getRuntimeVersionAsync(\n projectRoot: string,\n config: Pick<ExpoConfig, 'version' | 'runtimeVersion' | 'sdkVersion'> & {\n android?: Pick<Android, 'versionCode' | 'runtimeVersion'>;\n ios?: Pick<IOS, 'buildNumber' | 'runtimeVersion'>;\n },\n platform: 'android' | 'ios'\n): Promise<string | null> {\n const runtimeVersion = config[platform]?.runtimeVersion ?? config.runtimeVersion;\n if (!runtimeVersion) {\n return null;\n }\n\n if (typeof runtimeVersion === 'string') {\n 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 getUpdatesTimeout(config: Pick<ExpoConfigUpdates, 'updates'>): number {\n return config.updates?.fallbackToCacheTimeout ?? 0;\n}\n\nexport function getUpdatesCheckOnLaunch(\n config: Pick<ExpoConfigUpdates, 'updates'>,\n expoUpdatesPackageVersion?: string | null\n): 'NEVER' | 'ERROR_RECOVERY_ONLY' | 'ALWAYS' | 'WIFI_ONLY' {\n if (config.updates?.checkAutomatically === 'ON_ERROR_RECOVERY') {\n // native 'ERROR_RECOVERY_ONLY' option was only introduced in 0.11.x\n if (expoUpdatesPackageVersion && semver.gte(expoUpdatesPackageVersion, '0.11.0')) {\n return 'ERROR_RECOVERY_ONLY';\n }\n return 'NEVER';\n } else if (config.updates?.checkAutomatically === 'ON_LOAD') {\n return 'ALWAYS';\n } else if (config.updates?.checkAutomatically === 'WIFI_ONLY') {\n return 'WIFI_ONLY';\n } else if (config.updates?.checkAutomatically === 'NEVER') {\n return 'NEVER';\n }\n return 'ALWAYS';\n}\n\nexport function getUpdatesCodeSigningCertificate(\n projectRoot: string,\n config: Pick<ExpoConfigUpdates, 'updates'>\n): string | undefined {\n const codeSigningCertificatePath = config.updates?.codeSigningCertificate;\n if (!codeSigningCertificatePath) {\n return undefined;\n }\n\n const finalPath = path.join(projectRoot, codeSigningCertificatePath);\n if (!fs.existsSync(finalPath)) {\n throw new Error(`File not found at \\`updates.codeSigningCertificate\\` path: ${finalPath}`);\n }\n\n return fs.readFileSync(finalPath, 'utf8');\n}\n\nexport function getUpdatesCodeSigningMetadata(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): NonNullable<ExpoConfigUpdates['updates']>['codeSigningMetadata'] {\n return config.updates?.codeSigningMetadata;\n}\n\nexport function getUpdatesCodeSigningMetadataStringified(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): string | undefined {\n const metadata = getUpdatesCodeSigningMetadata(config);\n if (!metadata) {\n return undefined;\n }\n\n return JSON.stringify(metadata);\n}\n\nexport function getUpdatesRequestHeaders(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): NonNullable<ExpoConfigUpdates['updates']>['requestHeaders'] {\n return config.updates?.requestHeaders;\n}\n\nexport function getUpdatesRequestHeadersStringified(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): string | undefined {\n const metadata = getUpdatesRequestHeaders(config);\n if (!metadata) {\n return undefined;\n }\n\n return JSON.stringify(metadata);\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/config-plugins",
|
|
3
|
-
"version": "8.0.
|
|
3
|
+
"version": "8.0.1",
|
|
4
4
|
"description": "A library for Expo config plugins",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"publishConfig": {
|
|
59
59
|
"access": "public"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "216e96034fb009ff126fdc57d3de01df86d2f2d6"
|
|
62
62
|
}
|