@expo/build-tools 0.1.109 → 0.1.110
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.
|
@@ -9,3 +9,4 @@ export declare function androidSetChannelNativelyAsync(ctx: BuildContext<Job>):
|
|
|
9
9
|
export declare function androidSetClassicReleaseChannelNativelyAsync(ctx: BuildContext<Job>): Promise<void>;
|
|
10
10
|
export declare function androidGetNativelyDefinedClassicReleaseChannelAsync(ctx: BuildContext<Job>): Promise<string | null>;
|
|
11
11
|
export declare function androidGetNativelyDefinedRuntimeVersionAsync(ctx: BuildContext<Job>): Promise<string | null>;
|
|
12
|
+
export declare function unescapeAndroidString(value: string): string;
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.androidGetNativelyDefinedRuntimeVersionAsync = exports.androidGetNativelyDefinedClassicReleaseChannelAsync = exports.androidSetClassicReleaseChannelNativelyAsync = exports.androidSetChannelNativelyAsync = exports.AndroidMetadataName = void 0;
|
|
6
|
+
exports.unescapeAndroidString = exports.androidGetNativelyDefinedRuntimeVersionAsync = exports.androidGetNativelyDefinedClassicReleaseChannelAsync = exports.androidSetClassicReleaseChannelNativelyAsync = exports.androidSetChannelNativelyAsync = exports.AndroidMetadataName = void 0;
|
|
7
7
|
const assert_1 = __importDefault(require("assert"));
|
|
8
8
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
9
|
const config_plugins_1 = require("@expo/config-plugins");
|
|
@@ -28,6 +28,7 @@ async function androidSetChannelNativelyAsync(ctx) {
|
|
|
28
28
|
}
|
|
29
29
|
exports.androidSetChannelNativelyAsync = androidSetChannelNativelyAsync;
|
|
30
30
|
async function androidSetClassicReleaseChannelNativelyAsync(ctx) {
|
|
31
|
+
var _a, _b;
|
|
31
32
|
const { releaseChannel } = ctx.job;
|
|
32
33
|
assert_1.default(releaseChannel, 'releaseChannel must be defined');
|
|
33
34
|
const escapedReleaseChannel = config_plugins_1.XML.escapeAndroidString(releaseChannel);
|
|
@@ -40,6 +41,15 @@ async function androidSetClassicReleaseChannelNativelyAsync(ctx) {
|
|
|
40
41
|
const stringResourceObject = await config_plugins_1.AndroidConfig.Resources.readResourcesXMLAsync({
|
|
41
42
|
path: stringResourcePath,
|
|
42
43
|
});
|
|
44
|
+
// TODO move this to expo-cli
|
|
45
|
+
if (Array.isArray((_a = stringResourceObject === null || stringResourceObject === void 0 ? void 0 : stringResourceObject.resources) === null || _a === void 0 ? void 0 : _a.string)) {
|
|
46
|
+
for (const string of (_b = stringResourceObject === null || stringResourceObject === void 0 ? void 0 : stringResourceObject.resources) === null || _b === void 0 ? void 0 : _b.string) {
|
|
47
|
+
if (string.$.translatable === 'false') {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
string._ = unescapeAndroidString(string._);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
43
53
|
const resourceName = 'release_channel';
|
|
44
54
|
const releaseChannelResourceItem = config_plugins_1.AndroidConfig.Resources.buildResourceItem({
|
|
45
55
|
name: resourceName,
|
|
@@ -71,4 +81,9 @@ async function androidGetNativelyDefinedRuntimeVersionAsync(ctx) {
|
|
|
71
81
|
return config_plugins_1.AndroidConfig.Manifest.getMainApplicationMetaDataValue(androidManifest, AndroidMetadataName.RUNTIME_VERSION);
|
|
72
82
|
}
|
|
73
83
|
exports.androidGetNativelyDefinedRuntimeVersionAsync = androidGetNativelyDefinedRuntimeVersionAsync;
|
|
84
|
+
// TODO move this to expo-cli
|
|
85
|
+
function unescapeAndroidString(value) {
|
|
86
|
+
return value.replace(/\\(.)/g, '$1');
|
|
87
|
+
}
|
|
88
|
+
exports.unescapeAndroidString = unescapeAndroidString;
|
|
74
89
|
//# sourceMappingURL=expoUpdates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expoUpdates.js","sourceRoot":"","sources":["../../src/android/expoUpdates.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,wDAA0B;AAC1B,yDAA0D;AAK1D,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,mIAA4G,CAAA;IAC5G,oFAA6D,CAAA;IAC7D,oFAA6D,CAAA;AAC/D,CAAC,EAJW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAI9B;AAEM,KAAK,UAAU,8BAA8B,CAAC,GAAsB;;IACzE,gBAAM,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,OAAO,0CAAE,OAAO,EAAE,iCAAiC,CAAC,CAAC;IAEpE,MAAM,YAAY,GAAG,MAAM,8BAAa,CAAC,KAAK,CAAC,uBAAuB,CACpE,GAAG,CAAC,2BAA2B,CAChC,CAAC;IAEF,IAAI,CAAC,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC,qCAAqC,YAAY,EAAE,CAAC,CAAC;KACtE;IAED,MAAM,eAAe,GAAG,MAAM,8BAAa,CAAC,QAAQ,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;IAC5F,MAAM,OAAO,GAAG,8BAAa,CAAC,QAAQ,CAAC,yBAAyB,CAAC,eAAe,CAAC,CAAC;IAClF,MAAM,gCAAgC,GAAG,8BAAa,CAAC,QAAQ,CAAC,+BAA+B,CAC7F,eAAe,EACf,mBAAmB,CAAC,yCAAyC,CAC9D,CAAC;IACF,8BAAa,CAAC,QAAQ,CAAC,gCAAgC,CACrD,OAAO,EACP,mBAAmB,CAAC,yCAAyC,EAC7D,IAAI,CAAC,SAAS,iCACT,IAAI,CAAC,KAAK,CAAC,gCAAgC,aAAhC,gCAAgC,cAAhC,gCAAgC,GAAI,IAAI,CAAC,KACvD,mBAAmB,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAC5C,EACF,OAAO,CACR,CAAC;IACF,MAAM,8BAAa,CAAC,QAAQ,CAAC,yBAAyB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;AACxF,CAAC;AA3BD,wEA2BC;AAEM,KAAK,UAAU,4CAA4C,CAChE,GAAsB
|
|
1
|
+
{"version":3,"file":"expoUpdates.js","sourceRoot":"","sources":["../../src/android/expoUpdates.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'assert';\n\nimport fs from 'fs-extra';\nimport { AndroidConfig, XML } from '@expo/config-plugins';\nimport { Job } from '@expo/eas-build-job';\n\nimport { BuildContext } from '../context';\n\nexport enum AndroidMetadataName {\n UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY = 'expo.modules.updates.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY',\n RELEASE_CHANNEL = 'expo.modules.updates.EXPO_RELEASE_CHANNEL',\n RUNTIME_VERSION = 'expo.modules.updates.EXPO_RUNTIME_VERSION',\n}\n\nexport async function androidSetChannelNativelyAsync(ctx: BuildContext<Job>): Promise<void> {\n assert(ctx.job.updates?.channel, 'updates.channel must be defined');\n\n const manifestPath = await AndroidConfig.Paths.getAndroidManifestAsync(\n ctx.reactNativeProjectDirectory\n );\n\n if (!(await fs.pathExists(manifestPath))) {\n throw new Error(`Couldn't find Android manifest at ${manifestPath}`);\n }\n\n const androidManifest = await AndroidConfig.Manifest.readAndroidManifestAsync(manifestPath);\n const mainApp = AndroidConfig.Manifest.getMainApplicationOrThrow(androidManifest);\n const stringifiedUpdatesRequestHeaders = AndroidConfig.Manifest.getMainApplicationMetaDataValue(\n androidManifest,\n AndroidMetadataName.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY\n );\n AndroidConfig.Manifest.addMetaDataItemToMainApplication(\n mainApp,\n AndroidMetadataName.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY,\n JSON.stringify({\n ...JSON.parse(stringifiedUpdatesRequestHeaders ?? '{}'),\n 'expo-channel-name': ctx.job.updates.channel,\n }),\n 'value'\n );\n await AndroidConfig.Manifest.writeAndroidManifestAsync(manifestPath, androidManifest);\n}\n\nexport async function androidSetClassicReleaseChannelNativelyAsync(\n ctx: BuildContext<Job>\n): Promise<void> {\n const { releaseChannel } = ctx.job;\n assert(releaseChannel, 'releaseChannel must be defined');\n const escapedReleaseChannel = XML.escapeAndroidString(releaseChannel);\n\n const manifestPath = await AndroidConfig.Paths.getAndroidManifestAsync(\n ctx.reactNativeProjectDirectory\n );\n if (!(await fs.pathExists(manifestPath))) {\n throw new Error(`Couldn't find Android manifest at ${manifestPath}`);\n }\n\n // Store the release channel in a string resource to ensure it is interpreted as a string\n const stringResourcePath = await AndroidConfig.Strings.getProjectStringsXMLPathAsync(\n ctx.reactNativeProjectDirectory\n );\n const stringResourceObject = await AndroidConfig.Resources.readResourcesXMLAsync({\n path: stringResourcePath,\n });\n\n // TODO move this to expo-cli\n if (Array.isArray(stringResourceObject?.resources?.string)) {\n for (const string of stringResourceObject?.resources?.string) {\n if (string.$.translatable === 'false') {\n continue;\n }\n string._ = unescapeAndroidString(string._);\n }\n }\n\n const resourceName = 'release_channel';\n const releaseChannelResourceItem = AndroidConfig.Resources.buildResourceItem({\n name: resourceName,\n value: escapedReleaseChannel,\n });\n const newStringResourceObject = AndroidConfig.Strings.setStringItem(\n [releaseChannelResourceItem],\n stringResourceObject\n );\n await XML.writeXMLAsync({ path: stringResourcePath, xml: newStringResourceObject });\n\n const androidManifest = await AndroidConfig.Manifest.readAndroidManifestAsync(manifestPath);\n const mainApp = AndroidConfig.Manifest.getMainApplicationOrThrow(androidManifest);\n AndroidConfig.Manifest.addMetaDataItemToMainApplication(\n mainApp,\n AndroidMetadataName.RELEASE_CHANNEL,\n `@string/${resourceName}`,\n 'value'\n );\n await AndroidConfig.Manifest.writeAndroidManifestAsync(manifestPath, androidManifest);\n}\n\nexport async function androidGetNativelyDefinedClassicReleaseChannelAsync(\n ctx: BuildContext<Job>\n): Promise<string | null> {\n const manifestPath = await AndroidConfig.Paths.getAndroidManifestAsync(\n ctx.reactNativeProjectDirectory\n );\n if (!(await fs.pathExists(manifestPath))) {\n return null;\n }\n\n const androidManifest = await AndroidConfig.Manifest.readAndroidManifestAsync(manifestPath);\n return AndroidConfig.Manifest.getMainApplicationMetaDataValue(\n androidManifest,\n AndroidMetadataName.RELEASE_CHANNEL\n );\n}\n\nexport async function androidGetNativelyDefinedRuntimeVersionAsync(\n ctx: BuildContext<Job>\n): Promise<string | null> {\n const manifestPath = await AndroidConfig.Paths.getAndroidManifestAsync(\n ctx.reactNativeProjectDirectory\n );\n if (!(await fs.pathExists(manifestPath))) {\n return null;\n }\n\n const androidManifest = await AndroidConfig.Manifest.readAndroidManifestAsync(manifestPath);\n return AndroidConfig.Manifest.getMainApplicationMetaDataValue(\n androidManifest,\n AndroidMetadataName.RUNTIME_VERSION\n );\n}\n\n// TODO move this to expo-cli\nexport function unescapeAndroidString(value: string): string {\n return value.replace(/\\\\(.)/g, '$1');\n}\n"]}
|