eas-cli 0.54.1 → 0.56.0
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/README.md +44 -44
- package/build/build/android/build.js +2 -1
- package/build/build/android/version.d.ts +5 -0
- package/build/build/android/version.js +16 -9
- package/build/build/build.d.ts +2 -2
- package/build/build/build.js +16 -5
- package/build/build/context.d.ts +4 -3
- package/build/build/createContext.d.ts +5 -2
- package/build/build/createContext.js +3 -1
- package/build/build/ios/build.js +3 -17
- package/build/build/ios/syncProjectConfiguration.d.ts +3 -3
- package/build/build/ios/syncProjectConfiguration.js +2 -2
- package/build/build/ios/version.d.ts +10 -3
- package/build/build/ios/version.js +57 -28
- package/build/build/metadata.js +1 -1
- package/build/build/runBuildAndSubmit.d.ts +2 -0
- package/build/build/runBuildAndSubmit.js +19 -3
- package/build/build/types.d.ts +4 -0
- package/build/build/types.js +6 -1
- package/build/commands/build/index.d.ts +2 -0
- package/build/commands/build/index.js +8 -1
- package/build/commands/build/version/set.d.ts +10 -0
- package/build/commands/build/version/set.js +82 -0
- package/build/commands/build/version/sync.d.ts +12 -0
- package/build/commands/build/version/sync.js +124 -0
- package/build/commands/update/index.d.ts +1 -0
- package/build/commands/update/index.js +15 -4
- package/build/credentials/ios/types.d.ts +2 -0
- package/build/env.d.ts +11 -0
- package/build/env.js +12 -0
- package/build/graphql/generated.d.ts +102 -2
- package/build/graphql/generated.js +10 -1
- package/build/graphql/mutations/AppVersionMutation.d.ts +11 -0
- package/build/graphql/mutations/AppVersionMutation.js +28 -0
- package/build/graphql/mutations/BuildMutation.d.ts +3 -1
- package/build/graphql/mutations/BuildMutation.js +14 -2
- package/build/graphql/queries/AppVersionQuery.d.ts +4 -0
- package/build/graphql/queries/AppVersionQuery.js +37 -0
- package/build/graphql/queries/WebhookQuery.d.ts +1 -1
- package/build/metadata/apple/config/reader.d.ts +2 -1
- package/build/metadata/apple/config/reader.js +66 -9
- package/build/metadata/apple/config/writer.d.ts +3 -2
- package/build/metadata/apple/config/writer.js +64 -12
- package/build/metadata/apple/data.d.ts +2 -1
- package/build/metadata/apple/tasks/app-review-detail.d.ts +14 -0
- package/build/metadata/apple/tasks/app-review-detail.js +49 -0
- package/build/metadata/apple/tasks/app-version.js +2 -2
- package/build/metadata/apple/tasks/index.js +2 -1
- package/build/metadata/apple/types.d.ts +9 -11
- package/build/metadata/errors.d.ts +5 -0
- package/build/metadata/errors.js +18 -9
- package/build/metadata/upload.js +13 -3
- package/build/platform.d.ts +1 -0
- package/build/platform.js +17 -1
- package/build/project/android/applicationId.js +6 -2
- package/build/project/android/versions.d.ts +3 -0
- package/build/project/android/versions.js +23 -0
- package/build/project/applicationIdentifier.d.ts +4 -0
- package/build/project/applicationIdentifier.js +37 -0
- package/build/project/ios/bundleIdentifier.js +2 -2
- package/build/project/ios/target.js +14 -1
- package/build/project/ios/versions.d.ts +3 -0
- package/build/project/ios/versions.js +17 -0
- package/build/project/publish.d.ts +1 -2
- package/build/project/publish.js +15 -14
- package/build/project/remoteVersionSource.d.ts +6 -0
- package/build/project/remoteVersionSource.js +52 -0
- package/build/project/workflow.js +13 -11
- package/build/submit/utils/files.js +1 -1
- package/build/uploads.d.ts +9 -2
- package/build/uploads.js +21 -7
- package/oclif.manifest.json +1 -1
- package/package.json +9 -5
- package/schema/metadata-0.json +396 -336
|
@@ -104,8 +104,8 @@ exports.isBundleIdentifierValid = isBundleIdentifierValid;
|
|
|
104
104
|
let warnPrinted = false;
|
|
105
105
|
function warnIfBundleIdentifierDefinedInAppConfigForBareWorkflowProject(projectDir, exp) {
|
|
106
106
|
if (config_plugins_1.IOSConfig.BundleIdentifier.getBundleIdentifier(exp) && !warnPrinted) {
|
|
107
|
-
log_1.default.warn(`
|
|
108
|
-
'EAS Build
|
|
107
|
+
log_1.default.warn(`Specified value for "ios.bundleIdentifier" in ${(0, projectUtils_1.getProjectConfigDescription)(projectDir)} is ignored because an ${chalk_1.default.bold('ios')} directory was detected in the project.\n` +
|
|
108
|
+
'EAS Build will use the value found in the native code.');
|
|
109
109
|
warnPrinted = true;
|
|
110
110
|
}
|
|
111
111
|
}
|
|
@@ -55,6 +55,7 @@ exports.resolveMangedProjectTargetsAsync = resolveMangedProjectTargetsAsync;
|
|
|
55
55
|
async function resolveBareProjectTargetsAsync({ exp, projectDir, xcodeBuildContext, }) {
|
|
56
56
|
const { buildScheme, buildConfiguration } = xcodeBuildContext;
|
|
57
57
|
const result = [];
|
|
58
|
+
const pbxProject = config_plugins_1.IOSConfig.XcodeUtils.getPbxproj(projectDir);
|
|
58
59
|
const applicationTarget = await config_plugins_1.IOSConfig.Target.findApplicationTargetWithDependenciesAsync(projectDir, buildScheme);
|
|
59
60
|
const bundleIdentifier = await (0, bundleIdentifier_1.getBundleIdentifierAsync)(projectDir, exp, {
|
|
60
61
|
targetName: applicationTarget.name,
|
|
@@ -69,6 +70,7 @@ async function resolveBareProjectTargetsAsync({ exp, projectDir, xcodeBuildConte
|
|
|
69
70
|
bundleIdentifier,
|
|
70
71
|
buildConfiguration,
|
|
71
72
|
entitlements: entitlements !== null && entitlements !== void 0 ? entitlements : {},
|
|
73
|
+
buildSettings: resolveBareProjectBuildSettings(pbxProject, applicationTarget.name, buildConfiguration),
|
|
72
74
|
});
|
|
73
75
|
const dependencies = await resolveBareProjectDependenciesAsync({
|
|
74
76
|
exp,
|
|
@@ -76,6 +78,7 @@ async function resolveBareProjectTargetsAsync({ exp, projectDir, xcodeBuildConte
|
|
|
76
78
|
buildConfiguration,
|
|
77
79
|
target: applicationTarget,
|
|
78
80
|
bundleIdentifier,
|
|
81
|
+
pbxProject,
|
|
79
82
|
});
|
|
80
83
|
if (dependencies.length > 0) {
|
|
81
84
|
result.push(...dependencies);
|
|
@@ -96,7 +99,7 @@ async function resolveTargetsAsync(opts) {
|
|
|
96
99
|
}
|
|
97
100
|
}
|
|
98
101
|
exports.resolveTargetsAsync = resolveTargetsAsync;
|
|
99
|
-
async function resolveBareProjectDependenciesAsync({ exp, projectDir, buildConfiguration, target, bundleIdentifier, }) {
|
|
102
|
+
async function resolveBareProjectDependenciesAsync({ exp, projectDir, buildConfiguration, target, bundleIdentifier, pbxProject, }) {
|
|
100
103
|
const result = [];
|
|
101
104
|
if (target.dependencies && target.dependencies.length > 0) {
|
|
102
105
|
for (const dependency of target.dependencies) {
|
|
@@ -114,6 +117,7 @@ async function resolveBareProjectDependenciesAsync({ exp, projectDir, buildConfi
|
|
|
114
117
|
bundleIdentifier: dependencyBundleIdentifier,
|
|
115
118
|
parentBundleIdentifier: bundleIdentifier,
|
|
116
119
|
entitlements: entitlements !== null && entitlements !== void 0 ? entitlements : {},
|
|
120
|
+
buildSettings: resolveBareProjectBuildSettings(pbxProject, dependency.name, buildConfiguration),
|
|
117
121
|
});
|
|
118
122
|
const dependencyDependencies = await resolveBareProjectDependenciesAsync({
|
|
119
123
|
exp,
|
|
@@ -121,6 +125,7 @@ async function resolveBareProjectDependenciesAsync({ exp, projectDir, buildConfi
|
|
|
121
125
|
buildConfiguration,
|
|
122
126
|
target: dependency,
|
|
123
127
|
bundleIdentifier: dependencyBundleIdentifier,
|
|
128
|
+
pbxProject,
|
|
124
129
|
});
|
|
125
130
|
if (dependencyDependencies.length > 0) {
|
|
126
131
|
result.push(...dependencyDependencies);
|
|
@@ -145,3 +150,11 @@ function findTargetByName(targets, name) {
|
|
|
145
150
|
return target;
|
|
146
151
|
}
|
|
147
152
|
exports.findTargetByName = findTargetByName;
|
|
153
|
+
function resolveBareProjectBuildSettings(project, targetName, buildConfiguration) {
|
|
154
|
+
var _a;
|
|
155
|
+
const xcBuildConfiguration = config_plugins_1.IOSConfig.Target.getXCBuildConfigurationFromPbxproj(project, {
|
|
156
|
+
targetName,
|
|
157
|
+
buildConfiguration,
|
|
158
|
+
});
|
|
159
|
+
return (_a = xcBuildConfiguration === null || xcBuildConfiguration === void 0 ? void 0 : xcBuildConfiguration.buildSettings) !== null && _a !== void 0 ? _a : {};
|
|
160
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const BUILD_NUMBER_REQUIREMENTS = "buildNumber needs to consist only of up to 3 dot-separated positive integers";
|
|
2
|
+
export declare function isValidBuildNumber(buildNumber: string): boolean;
|
|
3
|
+
export declare function getNextBuildNumber(buildNumber: string): string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getNextBuildNumber = exports.isValidBuildNumber = exports.BUILD_NUMBER_REQUIREMENTS = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
6
|
+
exports.BUILD_NUMBER_REQUIREMENTS = `buildNumber needs to consist only of up to 3 dot-separated positive integers`;
|
|
7
|
+
function isValidBuildNumber(buildNumber) {
|
|
8
|
+
return !!buildNumber.match(/^\d+(\.\d+)?(\.\d+)?$/);
|
|
9
|
+
}
|
|
10
|
+
exports.isValidBuildNumber = isValidBuildNumber;
|
|
11
|
+
function getNextBuildNumber(buildNumber) {
|
|
12
|
+
(0, assert_1.default)(isValidBuildNumber(buildNumber), `Invalid buildNumber ${buildNumber}`);
|
|
13
|
+
const comps = buildNumber.split('.');
|
|
14
|
+
comps[comps.length - 1] = String(Number(comps[comps.length - 1]) + 1);
|
|
15
|
+
return comps.join('.');
|
|
16
|
+
}
|
|
17
|
+
exports.getNextBuildNumber = getNextBuildNumber;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { ExpoConfig, Platform } from '@expo/config';
|
|
3
3
|
import Joi from 'joi';
|
|
4
4
|
import { PartialManifestAsset } from '../graphql/generated';
|
|
5
|
-
export declare const TIMEOUT_LIMIT = 60000;
|
|
6
5
|
export declare type PublishPlatform = Extract<'android' | 'ios', Platform>;
|
|
7
6
|
declare type Metadata = {
|
|
8
7
|
version: number;
|
|
@@ -78,5 +77,5 @@ declare type AssetUploadResult = {
|
|
|
78
77
|
uniqueAssetCount: number;
|
|
79
78
|
uniqueUploadedAssetCount: number;
|
|
80
79
|
};
|
|
81
|
-
export declare function uploadAssetsAsync(assetsForUpdateInfoGroup: CollectedAssets, updateSpinnerText?: (
|
|
80
|
+
export declare function uploadAssetsAsync(assetsForUpdateInfoGroup: CollectedAssets, updateSpinnerText?: (totalAssets: number, missingAssets: number) => void): Promise<AssetUploadResult>;
|
|
82
81
|
export {};
|
package/build/project/publish.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.uploadAssetsAsync = exports.filterOutAssetsThatAlreadyExistAsync = exports.collectAssetsAsync = exports.loadMetadata = exports.resolveInputDirectoryAsync = exports.buildBundlesAsync = exports.buildUnsortedUpdateInfoGroupAsync = exports.convertAssetToUpdateInfoGroupFormatAsync = exports.getStorageKeyForAssetAsync = exports.getStorageKey = exports.getBase64URLEncoding = exports.guessContentTypeFromExtension = exports.MetadataJoi =
|
|
3
|
+
exports.uploadAssetsAsync = exports.filterOutAssetsThatAlreadyExistAsync = exports.collectAssetsAsync = exports.loadMetadata = exports.resolveInputDirectoryAsync = exports.buildBundlesAsync = exports.buildUnsortedUpdateInfoGroupAsync = exports.convertAssetToUpdateInfoGroupFormatAsync = exports.getStorageKeyForAssetAsync = exports.getStorageKey = exports.getBase64URLEncoding = exports.guessContentTypeFromExtension = exports.MetadataJoi = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const json_file_1 = tslib_1.__importDefault(require("@expo/json-file"));
|
|
6
6
|
const crypto_1 = tslib_1.__importDefault(require("crypto"));
|
|
@@ -12,11 +12,9 @@ const promise_limit_1 = tslib_1.__importDefault(require("promise-limit"));
|
|
|
12
12
|
const generated_1 = require("../graphql/generated");
|
|
13
13
|
const PublishMutation_1 = require("../graphql/mutations/PublishMutation");
|
|
14
14
|
const PublishQuery_1 = require("../graphql/queries/PublishQuery");
|
|
15
|
-
const log_1 = tslib_1.__importDefault(require("../log"));
|
|
16
15
|
const uploads_1 = require("../uploads");
|
|
17
16
|
const expoCli_1 = require("../utils/expoCli");
|
|
18
17
|
const uniqBy_1 = tslib_1.__importDefault(require("../utils/expodash/uniqBy"));
|
|
19
|
-
exports.TIMEOUT_LIMIT = 60000; // 1 minute
|
|
20
18
|
const fileMetadataJoi = joi_1.default.object({
|
|
21
19
|
assets: joi_1.default.array()
|
|
22
20
|
.required()
|
|
@@ -108,7 +106,14 @@ async function buildBundlesAsync({ projectDir, inputDir, }) {
|
|
|
108
106
|
if (!packageJSON) {
|
|
109
107
|
throw new Error('Could not locate package.json');
|
|
110
108
|
}
|
|
111
|
-
await (0, expoCli_1.expoCommandAsync)(projectDir, [
|
|
109
|
+
await (0, expoCli_1.expoCommandAsync)(projectDir, [
|
|
110
|
+
'export',
|
|
111
|
+
'--output-dir',
|
|
112
|
+
inputDir,
|
|
113
|
+
'--experimental-bundle',
|
|
114
|
+
'--non-interactive',
|
|
115
|
+
'--dump-sourcemap',
|
|
116
|
+
]);
|
|
112
117
|
}
|
|
113
118
|
exports.buildBundlesAsync = buildBundlesAsync;
|
|
114
119
|
async function resolveInputDirectoryAsync(customInputDirectory) {
|
|
@@ -189,7 +194,6 @@ async function uploadAssetsAsync(assetsForUpdateInfoGroup, updateSpinnerText) {
|
|
|
189
194
|
...assetsForUpdateInfoGroup[platform].assets,
|
|
190
195
|
];
|
|
191
196
|
}
|
|
192
|
-
updateSpinnerText === null || updateSpinnerText === void 0 ? void 0 : updateSpinnerText(`${assets.length} ${assets.length === 1 ? 'asset' : 'assets'} present`);
|
|
193
197
|
const assetsWithStorageKey = await Promise.all(assets.map(async (asset) => {
|
|
194
198
|
return {
|
|
195
199
|
...asset,
|
|
@@ -197,29 +201,26 @@ async function uploadAssetsAsync(assetsForUpdateInfoGroup, updateSpinnerText) {
|
|
|
197
201
|
};
|
|
198
202
|
}));
|
|
199
203
|
const uniqueAssets = (0, uniqBy_1.default)(assetsWithStorageKey, asset => asset.storageKey);
|
|
200
|
-
|
|
204
|
+
const totalAssets = uniqueAssets.length;
|
|
205
|
+
updateSpinnerText === null || updateSpinnerText === void 0 ? void 0 : updateSpinnerText(totalAssets, totalAssets);
|
|
201
206
|
let missingAssets = await filterOutAssetsThatAlreadyExistAsync(uniqueAssets);
|
|
202
207
|
const uniqueUploadedAssetCount = missingAssets.length;
|
|
203
208
|
const { specifications } = await PublishMutation_1.PublishMutation.getUploadURLsAsync(missingAssets.map(ma => ma.contentType));
|
|
209
|
+
updateSpinnerText === null || updateSpinnerText === void 0 ? void 0 : updateSpinnerText(totalAssets, missingAssets.length);
|
|
204
210
|
const assetUploadPromiseLimit = (0, promise_limit_1.default)(15);
|
|
205
211
|
await Promise.all(missingAssets.map((missingAsset, i) => {
|
|
206
212
|
assetUploadPromiseLimit(async () => {
|
|
207
213
|
const presignedPost = JSON.parse(specifications[i]);
|
|
208
|
-
|
|
214
|
+
await (0, uploads_1.uploadWithPresignedPostAsync)(missingAsset.path, presignedPost);
|
|
209
215
|
});
|
|
210
216
|
}));
|
|
211
|
-
updateSpinnerText === null || updateSpinnerText === void 0 ? void 0 : updateSpinnerText(`${missingAssets.length} new ${missingAssets.length === 1 ? 'asset' : 'assets'} uploading`);
|
|
212
|
-
// Wait up to TIMEOUT_LIMIT for assets to be uploaded and processed
|
|
213
|
-
const start = Date.now();
|
|
214
217
|
let timeout = 1;
|
|
215
218
|
while (missingAssets.length > 0) {
|
|
216
|
-
const timeoutPromise = new Promise(resolve => setTimeout(resolve, timeout * 1000)); // linear backoff
|
|
219
|
+
const timeoutPromise = new Promise(resolve => setTimeout(resolve, Math.min(timeout * 1000, 5000))); // linear backoff
|
|
217
220
|
missingAssets = await filterOutAssetsThatAlreadyExistAsync(missingAssets);
|
|
218
221
|
await timeoutPromise; // await after filterOutAssetsThatAlreadyExistAsync for easy mocking with jest.runAllTimers
|
|
219
222
|
timeout += 1;
|
|
220
|
-
|
|
221
|
-
throw new Error('Asset upload timed out. Please try again.');
|
|
222
|
-
}
|
|
223
|
+
updateSpinnerText === null || updateSpinnerText === void 0 ? void 0 : updateSpinnerText(totalAssets, missingAssets.length);
|
|
223
224
|
}
|
|
224
225
|
return {
|
|
225
226
|
assetCount: assets.length,
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ExpoConfig } from '@expo/config';
|
|
2
|
+
import { Platform } from '@expo/eas-build-job';
|
|
3
|
+
import { EasJsonReader } from '@expo/eas-json';
|
|
4
|
+
export declare function ensureRemoteVersionPolicyAsync(projectDir: string, easJsonReader: EasJsonReader): Promise<void>;
|
|
5
|
+
export declare function validateAppConfigForRemoteVersionPolicyAsync(exp: ExpoConfig): Promise<void>;
|
|
6
|
+
export declare function getBuildVersionName(platform: Platform): string;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getBuildVersionName = exports.validateAppConfigForRemoteVersionPolicyAsync = exports.ensureRemoteVersionPolicyAsync = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
6
|
+
const eas_json_1 = require("@expo/eas-json");
|
|
7
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
8
|
+
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
9
|
+
const log_1 = tslib_1.__importDefault(require("../log"));
|
|
10
|
+
const prompts_1 = require("../prompts");
|
|
11
|
+
async function ensureRemoteVersionPolicyAsync(projectDir, easJsonReader) {
|
|
12
|
+
const easJsonCliConfig = await easJsonReader.getCliConfigAsync();
|
|
13
|
+
if ((easJsonCliConfig === null || easJsonCliConfig === void 0 ? void 0 : easJsonCliConfig.appVersionSource) === eas_json_1.AppVersionSource.REMOTE) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
log_1.default.log(`The app version source defines whether the app version is stored locally in your project source (e.g. in app.json, Info.plist, or build.gradle) or remotely on EAS servers and only applied to the project at build time. To use this command, you will need to enable the remote version policy by adding ${chalk_1.default.bold('{"cli": { "appVersionSource": "remote" }}')} in eas.json.`);
|
|
17
|
+
// TODO: add link to docs
|
|
18
|
+
const confirm = await (0, prompts_1.confirmAsync)({
|
|
19
|
+
message: 'Do you want to set app version source to remote now?',
|
|
20
|
+
});
|
|
21
|
+
if (!confirm) {
|
|
22
|
+
throw new Error('Aborting...');
|
|
23
|
+
}
|
|
24
|
+
const easJsonPath = eas_json_1.EasJsonReader.formatEasJsonPath(projectDir);
|
|
25
|
+
const easJson = await fs_extra_1.default.readJSON(easJsonPath);
|
|
26
|
+
easJson.cli = { ...easJson === null || easJson === void 0 ? void 0 : easJson.cli, appVersionSource: eas_json_1.AppVersionSource.REMOTE };
|
|
27
|
+
await fs_extra_1.default.writeFile(easJsonPath, `${JSON.stringify(easJson, null, 2)}\n`);
|
|
28
|
+
log_1.default.withTick('Updated eas.json');
|
|
29
|
+
}
|
|
30
|
+
exports.ensureRemoteVersionPolicyAsync = ensureRemoteVersionPolicyAsync;
|
|
31
|
+
async function validateAppConfigForRemoteVersionPolicyAsync(exp) {
|
|
32
|
+
var _a, _b, _c;
|
|
33
|
+
if (typeof exp.runtimeVersion === 'object' && ((_a = exp.runtimeVersion) === null || _a === void 0 ? void 0 : _a.policy) === 'nativeVersion') {
|
|
34
|
+
throw new Error(`${chalk_1.default.bold('nativeVersion')} policy for ${chalk_1.default.bold('runtimeVersion')} is currently not supported when version source is set to remote. Switch policy e.g. to ${chalk_1.default.bold('appVersion')} or define version explicitly.`);
|
|
35
|
+
}
|
|
36
|
+
if (((_b = exp.ios) === null || _b === void 0 ? void 0 : _b.buildNumber) !== undefined) {
|
|
37
|
+
throw new Error(`${chalk_1.default.bold('ios.buildNumber')} field in app config is not supported when version source is set to remote, remove it and re-run the command.`);
|
|
38
|
+
}
|
|
39
|
+
if (((_c = exp.android) === null || _c === void 0 ? void 0 : _c.versionCode) !== undefined) {
|
|
40
|
+
throw new Error(`${chalk_1.default.bold('android.versionCode')} field in app config is not supported when version source is set to remote, remove it and re-run the command.`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.validateAppConfigForRemoteVersionPolicyAsync = validateAppConfigForRemoteVersionPolicyAsync;
|
|
44
|
+
function getBuildVersionName(platform) {
|
|
45
|
+
if (platform === eas_build_job_1.Platform.ANDROID) {
|
|
46
|
+
return 'versionCode';
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
return 'buildNumber';
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.getBuildVersionName = getBuildVersionName;
|
|
@@ -8,23 +8,25 @@ const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
|
8
8
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
9
9
|
const vcs_1 = require("../vcs");
|
|
10
10
|
async function resolveWorkflowAsync(projectDir, platform) {
|
|
11
|
-
let
|
|
11
|
+
let platformWorkflowMarkers;
|
|
12
12
|
try {
|
|
13
|
-
|
|
13
|
+
platformWorkflowMarkers =
|
|
14
14
|
platform === eas_build_job_1.Platform.ANDROID
|
|
15
|
-
?
|
|
16
|
-
|
|
15
|
+
? [
|
|
16
|
+
path_1.default.join(projectDir, 'android/app/build.gradle'),
|
|
17
|
+
await config_plugins_1.AndroidConfig.Paths.getAndroidManifestAsync(projectDir),
|
|
18
|
+
]
|
|
19
|
+
: [config_plugins_1.IOSConfig.Paths.getPBXProjectPath(projectDir)];
|
|
17
20
|
}
|
|
18
21
|
catch {
|
|
19
22
|
return eas_build_job_1.Workflow.MANAGED;
|
|
20
23
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
else {
|
|
27
|
-
return eas_build_job_1.Workflow.MANAGED;
|
|
24
|
+
for (const marker of platformWorkflowMarkers) {
|
|
25
|
+
if ((await fs_extra_1.default.pathExists(marker)) &&
|
|
26
|
+
!(await (0, vcs_1.getVcsClient)().isFileIgnoredAsync(path_1.default.relative(projectDir, marker)))) {
|
|
27
|
+
return eas_build_job_1.Workflow.GENERIC;
|
|
28
|
+
}
|
|
28
29
|
}
|
|
30
|
+
return eas_build_job_1.Workflow.MANAGED;
|
|
29
31
|
}
|
|
30
32
|
exports.resolveWorkflowAsync = resolveWorkflowAsync;
|
|
@@ -18,7 +18,7 @@ async function isExistingFileAsync(filePath) {
|
|
|
18
18
|
exports.isExistingFileAsync = isExistingFileAsync;
|
|
19
19
|
async function uploadAppArchiveAsync(path) {
|
|
20
20
|
const fileSize = (await fs_extra_1.default.stat(path)).size;
|
|
21
|
-
const { url } = await (0, uploads_1.
|
|
21
|
+
const { url } = await (0, uploads_1.uploadFileAtPathToS3Async)(generated_1.UploadSessionType.EasSubmitAppArchive, path, (0, progress_1.createProgressTracker)({
|
|
22
22
|
total: fileSize,
|
|
23
23
|
message: 'Uploading to EAS Submit',
|
|
24
24
|
completedMessage: 'Uploaded to EAS Submit',
|
package/build/uploads.d.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
|
+
import { Response } from 'node-fetch';
|
|
1
2
|
import { UploadSessionType } from './graphql/generated';
|
|
2
3
|
import { PresignedPost } from './graphql/mutations/UploadSessionMutation';
|
|
3
4
|
import { ProgressHandler } from './utils/progress';
|
|
4
|
-
export declare function
|
|
5
|
+
export declare function uploadFileAtPathToS3Async(type: UploadSessionType, path: string, handleProgressEvent: ProgressHandler): Promise<{
|
|
5
6
|
url: string;
|
|
6
7
|
bucketKey: string;
|
|
7
8
|
}>;
|
|
8
|
-
export declare function uploadWithPresignedPostAsync(file: string, presignedPost: PresignedPost, handleProgressEvent?: ProgressHandler): Promise<
|
|
9
|
+
export declare function uploadWithPresignedPostAsync(file: string, presignedPost: PresignedPost, handleProgressEvent?: ProgressHandler): Promise<Response>;
|
|
10
|
+
/**
|
|
11
|
+
* S3 returns broken URLs, sth like:
|
|
12
|
+
* https://submission-service-archives.s3.amazonaws.com/production%2Fdc98ca84-1473-4cb3-ae81-8c7b291cb27e%2F4424aa95-b985-4e2f-8755-9507b1037c1c
|
|
13
|
+
* This function replaces %2F with /.
|
|
14
|
+
*/
|
|
15
|
+
export declare function fixS3Url(archiveUrl: string): string;
|
package/build/uploads.js
CHANGED
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.uploadWithPresignedPostAsync = exports.
|
|
3
|
+
exports.fixS3Url = exports.uploadWithPresignedPostAsync = exports.uploadFileAtPathToS3Async = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
6
6
|
const form_data_1 = tslib_1.__importDefault(require("form-data"));
|
|
7
7
|
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
8
|
+
const nullthrows_1 = tslib_1.__importDefault(require("nullthrows"));
|
|
9
|
+
const url_1 = require("url");
|
|
8
10
|
const fetch_1 = tslib_1.__importDefault(require("./fetch"));
|
|
9
11
|
const UploadSessionMutation_1 = require("./graphql/mutations/UploadSessionMutation");
|
|
10
|
-
async function
|
|
12
|
+
async function uploadFileAtPathToS3Async(type, path, handleProgressEvent) {
|
|
11
13
|
const presignedPost = await UploadSessionMutation_1.UploadSessionMutation.createUploadSessionAsync(type);
|
|
12
|
-
const url = await uploadWithPresignedPostAsync(path, presignedPost, handleProgressEvent);
|
|
13
14
|
(0, assert_1.default)(presignedPost.fields.key, 'key is not specified in in presigned post');
|
|
15
|
+
const response = await uploadWithPresignedPostAsync(path, presignedPost, handleProgressEvent);
|
|
16
|
+
const location = (0, nullthrows_1.default)(response.headers.get('location'), `location does not exist in response headers (make sure you're uploading to AWS S3)`);
|
|
17
|
+
const url = fixS3Url(location);
|
|
14
18
|
return { url, bucketKey: presignedPost.fields.key };
|
|
15
19
|
}
|
|
16
|
-
exports.
|
|
20
|
+
exports.uploadFileAtPathToS3Async = uploadFileAtPathToS3Async;
|
|
17
21
|
async function uploadWithPresignedPostAsync(file, presignedPost, handleProgressEvent) {
|
|
18
22
|
const fileStat = await fs_extra_1.default.stat(file);
|
|
19
23
|
const fileSize = fileStat.size;
|
|
@@ -45,7 +49,7 @@ async function uploadWithPresignedPostAsync(file, presignedPost, handleProgressE
|
|
|
45
49
|
try {
|
|
46
50
|
const response = await uploadPromise;
|
|
47
51
|
handleProgressEvent({ isComplete: true });
|
|
48
|
-
return
|
|
52
|
+
return response;
|
|
49
53
|
}
|
|
50
54
|
catch (error) {
|
|
51
55
|
handleProgressEvent({ isComplete: true, error });
|
|
@@ -53,8 +57,18 @@ async function uploadWithPresignedPostAsync(file, presignedPost, handleProgressE
|
|
|
53
57
|
}
|
|
54
58
|
}
|
|
55
59
|
else {
|
|
56
|
-
|
|
57
|
-
return String(response.headers.get('location'));
|
|
60
|
+
return await uploadPromise;
|
|
58
61
|
}
|
|
59
62
|
}
|
|
60
63
|
exports.uploadWithPresignedPostAsync = uploadWithPresignedPostAsync;
|
|
64
|
+
/**
|
|
65
|
+
* S3 returns broken URLs, sth like:
|
|
66
|
+
* https://submission-service-archives.s3.amazonaws.com/production%2Fdc98ca84-1473-4cb3-ae81-8c7b291cb27e%2F4424aa95-b985-4e2f-8755-9507b1037c1c
|
|
67
|
+
* This function replaces %2F with /.
|
|
68
|
+
*/
|
|
69
|
+
function fixS3Url(archiveUrl) {
|
|
70
|
+
const parsed = new url_1.URL(archiveUrl);
|
|
71
|
+
parsed.pathname = decodeURIComponent(parsed.pathname);
|
|
72
|
+
return parsed.toString();
|
|
73
|
+
}
|
|
74
|
+
exports.fixS3Url = fixS3Url;
|
package/oclif.manifest.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"0.54.1","commands":{"analytics":{"id":"analytics","description":"display or change analytics settings","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"STATUS","options":["on","off"]}]},"config":{"id":"config","description":"display project configuration (app.json + eas.json)","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios)","multiple":false,"options":["android","ios"]},"profile":{"name":"profile","type":"option","multiple":false}},"args":[],"_globalFlags":{}},"credentials":{"id":"credentials","description":"manage credentials","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"diagnostics":{"id":"diagnostics","description":"display environment info","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"submit":{"id":"submit","description":"submit app binary to App Store and/or Play Store","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["build:submit"],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"]},"profile":{"name":"profile","type":"option","description":"Name of the submit profile from eas.json. Defaults to \"production\" if defined in eas.json.","multiple":false},"latest":{"name":"latest","type":"boolean","description":"Submit the latest build for specified platform","allowNo":false,"exclusive":["id","path","url"]},"id":{"name":"id","type":"option","description":"ID of the build to submit","multiple":false,"exclusive":["latest, path, url"]},"path":{"name":"path","type":"option","description":"Path to the .apk/.aab/.ipa file","multiple":false,"exclusive":["latest","id","url"]},"url":{"name":"url","type":"option","description":"App archive url","multiple":false,"exclusive":["latest","id","path"]},"verbose":{"name":"verbose","type":"boolean","description":"Always print logs from Submission Service","allowNo":false},"wait":{"name":"wait","type":"boolean","description":"Wait for submission to complete","allowNo":true},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false}},"args":[],"_globalFlags":{}},"account:login":{"id":"account:login","description":"log in with your Expo account","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["login"],"flags":{},"args":[]},"account:logout":{"id":"account:logout","description":"log out","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["logout"],"flags":{},"args":[]},"account:view":{"id":"account:view","description":"show the username you are logged in as","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["whoami"],"flags":{},"args":[]},"branch:create":{"id":"branch:create","description":"create a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return a json with the new branch ID and name.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to create","required":false}],"_globalFlags":{}},"branch:delete":{"id":"branch:delete","description":"delete a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return JSON with the edited branch's ID and name.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to delete","required":false}],"_globalFlags":{}},"branch:list":{"id":"branch:list","description":"list all branches","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return output as JSON","allowNo":false}},"args":[],"_globalFlags":{}},"branch:publish":{"id":"branch:publish","description":"deprecated, use \"eas update\"","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{},"args":[]},"branch:rename":{"id":"branch:rename","description":"rename a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"from":{"name":"from","type":"option","description":"current name of the branch.","required":false,"multiple":false},"to":{"name":"to","type":"option","description":"new name of the branch.","required":false,"multiple":false},"json":{"name":"json","type":"boolean","description":"return a json with the edited branch's ID and name.","allowNo":false}},"args":[],"_globalFlags":{}},"branch:view":{"id":"branch:view","description":"view a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return a json with the branch's ID name and recent update groups.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to view","required":false}],"_globalFlags":{}},"build:cancel":{"id":"build:cancel","description":"cancel a build","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"BUILD_ID"}]},"build:configure":{"id":"build:configure","description":"configure the project to support EAS Build","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","description":"Platform to configure","helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"]}},"args":[],"_globalFlags":{}},"build":{"id":"build","description":"start a build","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"]},"skip-credentials-check":{"name":"skip-credentials-check","type":"boolean","hidden":true,"allowNo":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"skip-project-configuration":{"name":"skip-project-configuration","type":"boolean","hidden":true,"allowNo":false},"profile":{"name":"profile","type":"option","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false},"local":{"name":"local","type":"boolean","description":"Run build locally [experimental]","allowNo":false},"output":{"name":"output","type":"option","description":"Output path for local build","multiple":false},"wait":{"name":"wait","type":"boolean","description":"Wait for build(s) to complete","allowNo":true},"clear-cache":{"name":"clear-cache","type":"boolean","description":"Clear cache before the build","allowNo":false},"auto-submit":{"name":"auto-submit","type":"boolean","description":"Submit on build complete using the submit profile with the same name as the build profile","allowNo":false,"exclusive":["auto-submit-with-profile"]},"auto-submit-with-profile":{"name":"auto-submit-with-profile","type":"option","description":"Submit on build complete using the submit profile with provided name","helpValue":"PROFILE_NAME","multiple":false,"exclusive":["auto-submit"]}},"args":[],"_globalFlags":{}},"build:inspect":{"id":"build:inspect","description":"inspect the state of the project at specific build stages, useful for troubleshooting","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","required":true,"helpValue":"(android|ios)","multiple":false,"options":["android","ios"]},"profile":{"name":"profile","type":"option","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false},"stage":{"name":"stage","type":"option","char":"s","description":"Stage of the build you want to inspect.\n archive - builds the project archive that would be uploaded to EAS when building\n pre-build - prepares the project to be built with Gradle/Xcode. Does not run the native build.\n post-build - builds the native project and leaves the output directory for inspection","required":true,"helpValue":"(archive|pre-build|post-build)","multiple":false,"options":["archive","pre-build","post-build"]},"output":{"name":"output","type":"option","char":"o","description":"Output directory.","required":true,"helpValue":"OUTPUT_DIRECTORY","multiple":false},"force":{"name":"force","type":"boolean","description":"Delete OUTPUT_DIRECTORY if it already exists.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[],"_globalFlags":{}},"build:list":{"id":"build:list","description":"list all builds for your project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","helpValue":"(all|android|ios)","multiple":false,"options":["all","android","ios"]},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"status":{"name":"status","type":"option","helpValue":"(new|in-queue|in-progress|errored|finished|canceled)","multiple":false,"options":["new","in-queue","in-progress","errored","finished","canceled"]},"distribution":{"name":"distribution","type":"option","helpValue":"(store|internal|simulator)","multiple":false,"options":["store","internal","simulator"]},"channel":{"name":"channel","type":"option","multiple":false},"appVersion":{"name":"appVersion","type":"option","multiple":false},"appBuildVersion":{"name":"appBuildVersion","type":"option","multiple":false},"sdkVersion":{"name":"sdkVersion","type":"option","multiple":false},"runtimeVersion":{"name":"runtimeVersion","type":"option","multiple":false},"appIdentifier":{"name":"appIdentifier","type":"option","multiple":false},"buildProfile":{"name":"buildProfile","type":"option","multiple":false},"gitCommitHash":{"name":"gitCommitHash","type":"option","multiple":false},"limit":{"name":"limit","type":"option","multiple":false}},"args":[],"_globalFlags":{}},"build:view":{"id":"build:view","description":"view a build for your project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false}},"args":[{"name":"BUILD_ID"}],"_globalFlags":{}},"channel:create":{"id":"channel:create","description":"create a channel","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the new channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to create","required":false}],"_globalFlags":{}},"channel:delete":{"id":"channel:delete","description":"Delete a channel","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object","allowNo":false},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to delete","required":false}],"_globalFlags":{}},"channel:edit":{"id":"channel:edit","description":"point a channel at a new branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"Name of the branch to point to","multiple":false},"json":{"name":"json","type":"boolean","description":"Print output as a JSON object with the channel ID, name and branch mapping","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to edit","required":false}],"_globalFlags":{}},"channel:list":{"id":"channel:list","description":"list all channels","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[],"_globalFlags":{}},"channel:rollout":{"id":"channel:rollout","description":"Rollout a new branch out to a channel incrementally.","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"branch to rollout","required":false,"multiple":false},"percent":{"name":"percent","type":"option","description":"percent of traffic to redirect to the new branch","required":false,"multiple":false},"end":{"name":"end","type":"boolean","description":"end the rollout","allowNo":false},"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the new channel ID, name and branch mapping","allowNo":false}},"args":[{"name":"channel","description":"rollout that the channel is on","required":true}],"_globalFlags":{}},"channel:view":{"id":"channel:view","description":"view a channel","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to view","required":false}],"_globalFlags":{}},"device:create":{"id":"device:create","description":"register new Apple Devices to use for internal distribution","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"device:delete":{"id":"device:delete","description":"remove a registered device from your account","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"apple-team-id":{"name":"apple-team-id","type":"option","multiple":false},"udid":{"name":"udid","type":"option","multiple":true}},"args":[],"_globalFlags":{}},"device:list":{"id":"device:list","description":"list all registered devices for your account","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"apple-team-id":{"name":"apple-team-id","type":"option","multiple":false}},"args":[],"_globalFlags":{}},"device:view":{"id":"device:view","description":"view a device for your project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"UDID"}]},"metadata:pull":{"id":"metadata:pull","description":"generate the local store configuration from the app stores","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"profile":{"name":"profile","type":"option","description":"Name of the submit profile from eas.json. Defaults to \"production\" if defined in eas.json.","multiple":false}},"args":[],"_globalFlags":{}},"metadata:push":{"id":"metadata:push","description":"sync the local store configuration to the app stores","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"profile":{"name":"profile","type":"option","description":"Name of the submit profile from eas.json. Defaults to \"production\" if defined in eas.json.","multiple":false}},"args":[],"_globalFlags":{}},"project:info":{"id":"project:info","description":"information about the current project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"project:init":{"id":"project:init","description":"create or link an EAS project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["init"],"flags":{},"args":[]},"secret:create":{"id":"secret:create","description":"create an environment secret on the current project or owner account","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"scope":{"name":"scope","type":"option","description":"Scope for the secret","helpValue":"(account|project)","multiple":false,"options":["account","project"],"default":"project"},"name":{"name":"name","type":"option","description":"Name of the secret","multiple":false},"value":{"name":"value","type":"option","description":"Value of the secret","multiple":false},"force":{"name":"force","type":"boolean","description":"Delete and recreate existing secrets","allowNo":false}},"args":[],"_globalFlags":{}},"secret:delete":{"id":"secret:delete","description":"delete an environment secret by ID","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"id":{"name":"id","type":"option","description":"ID of the secret to delete","multiple":false}},"args":[],"_globalFlags":{}},"secret:list":{"id":"secret:list","description":"list environment secrets available for your current app","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"update:configure":{"id":"update:configure","description":"configure the project to support EAS Update","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","description":"Platform to configure","helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"],"default":"all"}},"args":[],"_globalFlags":{}},"update:delete":{"id":"update:delete","description":"delete all the updates in an update group","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Return a json with the group ID of the deleted updates.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group to delete.","required":true}],"_globalFlags":{}},"update":{"id":"update","description":"publish an update group","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"Branch to publish the update group on","required":false,"multiple":false},"message":{"name":"message","type":"option","description":"A short message describing the update","required":false,"multiple":false},"republish":{"name":"republish","type":"boolean","description":"Republish an update group","allowNo":false,"exclusive":["input-dir","skip-bundler"]},"group":{"name":"group","type":"option","description":"Update group to republish","multiple":false,"exclusive":["input-dir","skip-bundler"]},"input-dir":{"name":"input-dir","type":"option","description":"Location of the bundle","required":false,"multiple":false,"default":"dist"},"skip-bundler":{"name":"skip-bundler","type":"boolean","description":"Skip running Expo CLI to bundle the app before publishing","allowNo":false},"platform":{"name":"platform","type":"option","char":"p","required":false,"helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"],"default":"all"},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"auto":{"name":"auto","type":"boolean","description":"Use the current git branch and commit message for the EAS branch and update message","allowNo":false},"private-key-path":{"name":"private-key-path","type":"option","description":"File containing the PEM-encoded private key corresponding to the certificate in expo-updates' configuration. Defaults to a file named \"private-key.pem\" in the certificate's directory.","required":false,"multiple":false},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false}},"args":[],"_globalFlags":{}},"update:list":{"id":"update:list","description":"view the recent updates for a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"List all updates on this branch","multiple":false,"exclusive":["all"]},"all":{"name":"all","type":"boolean","description":"List all updates associated with this project","allowNo":false,"exclusive":["branch"]},"json":{"name":"json","type":"boolean","description":"Return a json with all of the recent update groups.","allowNo":false}},"args":[],"_globalFlags":{}},"update:view":{"id":"update:view","description":"update group details","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Return a json with the updates belonging to the group.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group.","required":true}],"_globalFlags":{}},"webhook:create":{"id":"webhook:create","description":"create a webhook","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","multiple":false,"options":["BUILD","SUBMIT"]},"url":{"name":"url","type":"option","description":"Webhook URL","multiple":false},"secret":{"name":"secret","type":"option","description":"Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header.","multiple":false}},"args":[],"_globalFlags":{}},"webhook:delete":{"id":"webhook:delete","description":"delete a webhook","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"ID","description":"ID of the webhook to delete","required":false}]},"webhook:list":{"id":"webhook:list","description":"list webhooks","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","multiple":false,"options":["BUILD","SUBMIT"]}},"args":[],"_globalFlags":{}},"webhook:update":{"id":"webhook:update","description":"update a webhook","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"id":{"name":"id","type":"option","description":"Webhook ID","required":true,"multiple":false},"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","multiple":false,"options":["BUILD","SUBMIT"]},"url":{"name":"url","type":"option","description":"Webhook URL","multiple":false},"secret":{"name":"secret","type":"option","description":"Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header.","multiple":false}},"args":[],"_globalFlags":{}},"webhook:view":{"id":"webhook:view","description":"view a webhook","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"ID","description":"ID of the webhook to view","required":true}]}}}
|
|
1
|
+
{"version":"0.56.0","commands":{"analytics":{"id":"analytics","description":"display or change analytics settings","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"STATUS","options":["on","off"]}]},"config":{"id":"config","description":"display project configuration (app.json + eas.json)","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios)","multiple":false,"options":["android","ios"]},"profile":{"name":"profile","type":"option","multiple":false}},"args":[],"_globalFlags":{}},"credentials":{"id":"credentials","description":"manage credentials","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"diagnostics":{"id":"diagnostics","description":"display environment info","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"submit":{"id":"submit","description":"submit app binary to App Store and/or Play Store","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["build:submit"],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"]},"profile":{"name":"profile","type":"option","description":"Name of the submit profile from eas.json. Defaults to \"production\" if defined in eas.json.","multiple":false},"latest":{"name":"latest","type":"boolean","description":"Submit the latest build for specified platform","allowNo":false,"exclusive":["id","path","url"]},"id":{"name":"id","type":"option","description":"ID of the build to submit","multiple":false,"exclusive":["latest, path, url"]},"path":{"name":"path","type":"option","description":"Path to the .apk/.aab/.ipa file","multiple":false,"exclusive":["latest","id","url"]},"url":{"name":"url","type":"option","description":"App archive url","multiple":false,"exclusive":["latest","id","path"]},"verbose":{"name":"verbose","type":"boolean","description":"Always print logs from Submission Service","allowNo":false},"wait":{"name":"wait","type":"boolean","description":"Wait for submission to complete","allowNo":true},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false}},"args":[],"_globalFlags":{}},"account:login":{"id":"account:login","description":"log in with your Expo account","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["login"],"flags":{},"args":[]},"account:logout":{"id":"account:logout","description":"log out","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["logout"],"flags":{},"args":[]},"account:view":{"id":"account:view","description":"show the username you are logged in as","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["whoami"],"flags":{},"args":[]},"branch:create":{"id":"branch:create","description":"create a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return a json with the new branch ID and name.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to create","required":false}],"_globalFlags":{}},"branch:delete":{"id":"branch:delete","description":"delete a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return JSON with the edited branch's ID and name.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to delete","required":false}],"_globalFlags":{}},"branch:list":{"id":"branch:list","description":"list all branches","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return output as JSON","allowNo":false}},"args":[],"_globalFlags":{}},"branch:publish":{"id":"branch:publish","description":"deprecated, use \"eas update\"","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{},"args":[]},"branch:rename":{"id":"branch:rename","description":"rename a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"from":{"name":"from","type":"option","description":"current name of the branch.","required":false,"multiple":false},"to":{"name":"to","type":"option","description":"new name of the branch.","required":false,"multiple":false},"json":{"name":"json","type":"boolean","description":"return a json with the edited branch's ID and name.","allowNo":false}},"args":[],"_globalFlags":{}},"branch:view":{"id":"branch:view","description":"view a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return a json with the branch's ID name and recent update groups.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to view","required":false}],"_globalFlags":{}},"build:cancel":{"id":"build:cancel","description":"cancel a build","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"BUILD_ID"}]},"build:configure":{"id":"build:configure","description":"configure the project to support EAS Build","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","description":"Platform to configure","helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"]}},"args":[],"_globalFlags":{}},"build":{"id":"build","description":"start a build","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"]},"skip-credentials-check":{"name":"skip-credentials-check","type":"boolean","hidden":true,"allowNo":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"skip-project-configuration":{"name":"skip-project-configuration","type":"boolean","hidden":true,"allowNo":false},"profile":{"name":"profile","type":"option","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false},"local":{"name":"local","type":"boolean","description":"Run build locally [experimental]","allowNo":false},"output":{"name":"output","type":"option","description":"Output path for local build","multiple":false},"wait":{"name":"wait","type":"boolean","description":"Wait for build(s) to complete","allowNo":true},"clear-cache":{"name":"clear-cache","type":"boolean","description":"Clear cache before the build","allowNo":false},"auto-submit":{"name":"auto-submit","type":"boolean","description":"Submit on build complete using the submit profile with the same name as the build profile","allowNo":false,"exclusive":["auto-submit-with-profile"]},"auto-submit-with-profile":{"name":"auto-submit-with-profile","type":"option","description":"Submit on build complete using the submit profile with provided name","helpValue":"PROFILE_NAME","multiple":false,"exclusive":["auto-submit"]},"resource-class":{"name":"resource-class","type":"option","description":"The instance type that will be used to run this build [experimental]","hidden":true,"helpValue":"(default|large)","multiple":false,"options":["default","large"]}},"args":[],"_globalFlags":{}},"build:inspect":{"id":"build:inspect","description":"inspect the state of the project at specific build stages, useful for troubleshooting","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","required":true,"helpValue":"(android|ios)","multiple":false,"options":["android","ios"]},"profile":{"name":"profile","type":"option","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false},"stage":{"name":"stage","type":"option","char":"s","description":"Stage of the build you want to inspect.\n archive - builds the project archive that would be uploaded to EAS when building\n pre-build - prepares the project to be built with Gradle/Xcode. Does not run the native build.\n post-build - builds the native project and leaves the output directory for inspection","required":true,"helpValue":"(archive|pre-build|post-build)","multiple":false,"options":["archive","pre-build","post-build"]},"output":{"name":"output","type":"option","char":"o","description":"Output directory.","required":true,"helpValue":"OUTPUT_DIRECTORY","multiple":false},"force":{"name":"force","type":"boolean","description":"Delete OUTPUT_DIRECTORY if it already exists.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[],"_globalFlags":{}},"build:list":{"id":"build:list","description":"list all builds for your project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","helpValue":"(all|android|ios)","multiple":false,"options":["all","android","ios"]},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"status":{"name":"status","type":"option","helpValue":"(new|in-queue|in-progress|errored|finished|canceled)","multiple":false,"options":["new","in-queue","in-progress","errored","finished","canceled"]},"distribution":{"name":"distribution","type":"option","helpValue":"(store|internal|simulator)","multiple":false,"options":["store","internal","simulator"]},"channel":{"name":"channel","type":"option","multiple":false},"appVersion":{"name":"appVersion","type":"option","multiple":false},"appBuildVersion":{"name":"appBuildVersion","type":"option","multiple":false},"sdkVersion":{"name":"sdkVersion","type":"option","multiple":false},"runtimeVersion":{"name":"runtimeVersion","type":"option","multiple":false},"appIdentifier":{"name":"appIdentifier","type":"option","multiple":false},"buildProfile":{"name":"buildProfile","type":"option","multiple":false},"gitCommitHash":{"name":"gitCommitHash","type":"option","multiple":false},"limit":{"name":"limit","type":"option","multiple":false}},"args":[],"_globalFlags":{}},"build:view":{"id":"build:view","description":"view a build for your project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false}},"args":[{"name":"BUILD_ID"}],"_globalFlags":{}},"channel:create":{"id":"channel:create","description":"create a channel","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the new channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to create","required":false}],"_globalFlags":{}},"channel:delete":{"id":"channel:delete","description":"Delete a channel","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object","allowNo":false},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to delete","required":false}],"_globalFlags":{}},"channel:edit":{"id":"channel:edit","description":"point a channel at a new branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"Name of the branch to point to","multiple":false},"json":{"name":"json","type":"boolean","description":"Print output as a JSON object with the channel ID, name and branch mapping","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to edit","required":false}],"_globalFlags":{}},"channel:list":{"id":"channel:list","description":"list all channels","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[],"_globalFlags":{}},"channel:rollout":{"id":"channel:rollout","description":"Rollout a new branch out to a channel incrementally.","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"branch to rollout","required":false,"multiple":false},"percent":{"name":"percent","type":"option","description":"percent of traffic to redirect to the new branch","required":false,"multiple":false},"end":{"name":"end","type":"boolean","description":"end the rollout","allowNo":false},"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the new channel ID, name and branch mapping","allowNo":false}},"args":[{"name":"channel","description":"rollout that the channel is on","required":true}],"_globalFlags":{}},"channel:view":{"id":"channel:view","description":"view a channel","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to view","required":false}],"_globalFlags":{}},"device:create":{"id":"device:create","description":"register new Apple Devices to use for internal distribution","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"device:delete":{"id":"device:delete","description":"remove a registered device from your account","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"apple-team-id":{"name":"apple-team-id","type":"option","multiple":false},"udid":{"name":"udid","type":"option","multiple":true}},"args":[],"_globalFlags":{}},"device:list":{"id":"device:list","description":"list all registered devices for your account","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"apple-team-id":{"name":"apple-team-id","type":"option","multiple":false}},"args":[],"_globalFlags":{}},"device:view":{"id":"device:view","description":"view a device for your project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"UDID"}]},"metadata:pull":{"id":"metadata:pull","description":"generate the local store configuration from the app stores","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"profile":{"name":"profile","type":"option","description":"Name of the submit profile from eas.json. Defaults to \"production\" if defined in eas.json.","multiple":false}},"args":[],"_globalFlags":{}},"metadata:push":{"id":"metadata:push","description":"sync the local store configuration to the app stores","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"profile":{"name":"profile","type":"option","description":"Name of the submit profile from eas.json. Defaults to \"production\" if defined in eas.json.","multiple":false}},"args":[],"_globalFlags":{}},"project:info":{"id":"project:info","description":"information about the current project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"project:init":{"id":"project:init","description":"create or link an EAS project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["init"],"flags":{},"args":[]},"secret:create":{"id":"secret:create","description":"create an environment secret on the current project or owner account","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"scope":{"name":"scope","type":"option","description":"Scope for the secret","helpValue":"(account|project)","multiple":false,"options":["account","project"],"default":"project"},"name":{"name":"name","type":"option","description":"Name of the secret","multiple":false},"value":{"name":"value","type":"option","description":"Value of the secret","multiple":false},"force":{"name":"force","type":"boolean","description":"Delete and recreate existing secrets","allowNo":false}},"args":[],"_globalFlags":{}},"secret:delete":{"id":"secret:delete","description":"delete an environment secret by ID","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"id":{"name":"id","type":"option","description":"ID of the secret to delete","multiple":false}},"args":[],"_globalFlags":{}},"secret:list":{"id":"secret:list","description":"list environment secrets available for your current app","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"update:configure":{"id":"update:configure","description":"configure the project to support EAS Update","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","description":"Platform to configure","helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"],"default":"all"}},"args":[],"_globalFlags":{}},"update:delete":{"id":"update:delete","description":"delete all the updates in an update group","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Return a json with the group ID of the deleted updates.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group to delete.","required":true}],"_globalFlags":{}},"update":{"id":"update","description":"publish an update group","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"Branch to publish the update group on","required":false,"multiple":false},"message":{"name":"message","type":"option","description":"A short message describing the update","required":false,"multiple":false},"republish":{"name":"republish","type":"boolean","description":"Republish an update group","allowNo":false,"exclusive":["input-dir","skip-bundler"]},"group":{"name":"group","type":"option","description":"Update group to republish","multiple":false,"exclusive":["input-dir","skip-bundler"]},"input-dir":{"name":"input-dir","type":"option","description":"Location of the bundle","required":false,"multiple":false,"default":"dist"},"skip-bundler":{"name":"skip-bundler","type":"boolean","description":"Skip running Expo CLI to bundle the app before publishing","allowNo":false},"platform":{"name":"platform","type":"option","char":"p","required":false,"helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"],"default":"all"},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"auto":{"name":"auto","type":"boolean","description":"Use the current git branch and commit message for the EAS branch and update message","allowNo":false},"private-key-path":{"name":"private-key-path","type":"option","description":"File containing the PEM-encoded private key corresponding to the certificate in expo-updates' configuration. Defaults to a file named \"private-key.pem\" in the certificate's directory.","required":false,"multiple":false},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false}},"args":[],"_globalFlags":{}},"update:list":{"id":"update:list","description":"view the recent updates for a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"List all updates on this branch","multiple":false,"exclusive":["all"]},"all":{"name":"all","type":"boolean","description":"List all updates associated with this project","allowNo":false,"exclusive":["branch"]},"json":{"name":"json","type":"boolean","description":"Return a json with all of the recent update groups.","allowNo":false}},"args":[],"_globalFlags":{}},"update:view":{"id":"update:view","description":"update group details","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Return a json with the updates belonging to the group.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group.","required":true}],"_globalFlags":{}},"webhook:create":{"id":"webhook:create","description":"create a webhook","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","multiple":false,"options":["BUILD","SUBMIT"]},"url":{"name":"url","type":"option","description":"Webhook URL","multiple":false},"secret":{"name":"secret","type":"option","description":"Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header.","multiple":false}},"args":[],"_globalFlags":{}},"webhook:delete":{"id":"webhook:delete","description":"delete a webhook","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"ID","description":"ID of the webhook to delete","required":false}]},"webhook:list":{"id":"webhook:list","description":"list webhooks","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","multiple":false,"options":["BUILD","SUBMIT"]}},"args":[],"_globalFlags":{}},"webhook:update":{"id":"webhook:update","description":"update a webhook","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"id":{"name":"id","type":"option","description":"Webhook ID","required":true,"multiple":false},"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","multiple":false,"options":["BUILD","SUBMIT"]},"url":{"name":"url","type":"option","description":"Webhook URL","multiple":false},"secret":{"name":"secret","type":"option","description":"Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header.","multiple":false}},"args":[],"_globalFlags":{}},"webhook:view":{"id":"webhook:view","description":"view a webhook","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"ID","description":"ID of the webhook to view","required":true}]},"build:version:set":{"id":"build:version:set","description":"Update version of an app.","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios)","multiple":false,"options":["android","ios"]},"profile":{"name":"profile","type":"option","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false}},"args":[],"_globalFlags":{}},"build:version:sync":{"id":"build:version:sync","description":"Update a version in native code with a value stored on EAS servers","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"]},"profile":{"name":"profile","type":"option","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false}},"args":[],"_globalFlags":{}}}}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eas-cli",
|
|
3
3
|
"description": "EAS command line tool",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.56.0",
|
|
5
5
|
"author": "Expo <support@expo.dev>",
|
|
6
6
|
"bin": {
|
|
7
7
|
"eas": "./bin/run"
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"@expo/config-plugins": "4.1.4",
|
|
15
15
|
"@expo/config-types": "45.0.0",
|
|
16
16
|
"@expo/eas-build-job": "0.2.77",
|
|
17
|
-
"@expo/eas-json": "0.
|
|
17
|
+
"@expo/eas-json": "0.56.0",
|
|
18
18
|
"@expo/json-file": "8.2.36",
|
|
19
19
|
"@expo/multipart-body-parser": "1.1.0",
|
|
20
20
|
"@expo/pkcs12": "0.0.8",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"nock": "13.2.4",
|
|
104
104
|
"tempy": "0.7.0",
|
|
105
105
|
"ts-deepmerge": "2.0.1",
|
|
106
|
-
"typescript": "4.
|
|
106
|
+
"typescript": "4.7.4"
|
|
107
107
|
},
|
|
108
108
|
"engines": {
|
|
109
109
|
"node": ">=14.0.0"
|
|
@@ -166,7 +166,7 @@
|
|
|
166
166
|
},
|
|
167
167
|
"warn-if-update-available": {
|
|
168
168
|
"timeoutInDays": 0.5,
|
|
169
|
-
"message": "<%= chalk
|
|
169
|
+
"message": "<%= chalk('★') %> <%= chalk.bold(config.name + '@' + latest) %> <%= chalk.bold('is now available.') %>\n<%= chalk.dim('To upgrade, run ') %><%= chalk.dim(chalk.bold('npm install -g eas-cli')) %><%= chalk.dim('.') %>\n<%= chalk.dim('Proceeding with outdated version.') %>\n"
|
|
170
170
|
},
|
|
171
171
|
"update": {
|
|
172
172
|
"node": {
|
|
@@ -201,5 +201,9 @@
|
|
|
201
201
|
"generate-graphql-code": "graphql-codegen --config graphql-codegen.yml",
|
|
202
202
|
"clean": "rm -rf dist build tmp node_modules yarn-error.log"
|
|
203
203
|
},
|
|
204
|
-
"
|
|
204
|
+
"volta": {
|
|
205
|
+
"node": "18.6.0",
|
|
206
|
+
"yarn": "1.22.19"
|
|
207
|
+
},
|
|
208
|
+
"gitHead": "5f73b0a2d7d8b3332a8342e0e9c181a20a57cc92"
|
|
205
209
|
}
|