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
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
5
|
+
const eas_json_1 = require("@expo/eas-json");
|
|
6
|
+
const core_1 = require("@oclif/core");
|
|
7
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
8
|
+
const version_1 = require("../../../build/android/version");
|
|
9
|
+
const version_2 = require("../../../build/ios/version");
|
|
10
|
+
const EasCommand_1 = tslib_1.__importDefault(require("../../../commandUtils/EasCommand"));
|
|
11
|
+
const AppVersionQuery_1 = require("../../../graphql/queries/AppVersionQuery");
|
|
12
|
+
const AppPlatform_1 = require("../../../graphql/types/AppPlatform");
|
|
13
|
+
const log_1 = tslib_1.__importDefault(require("../../../log"));
|
|
14
|
+
const platform_1 = require("../../../platform");
|
|
15
|
+
const gradleUtils_1 = require("../../../project/android/gradleUtils");
|
|
16
|
+
const versions_1 = require("../../../project/android/versions");
|
|
17
|
+
const applicationIdentifier_1 = require("../../../project/applicationIdentifier");
|
|
18
|
+
const expoConfig_1 = require("../../../project/expoConfig");
|
|
19
|
+
const scheme_1 = require("../../../project/ios/scheme");
|
|
20
|
+
const target_1 = require("../../../project/ios/target");
|
|
21
|
+
const versions_2 = require("../../../project/ios/versions");
|
|
22
|
+
const projectUtils_1 = require("../../../project/projectUtils");
|
|
23
|
+
const remoteVersionSource_1 = require("../../../project/remoteVersionSource");
|
|
24
|
+
const workflow_1 = require("../../../project/workflow");
|
|
25
|
+
const profiles_1 = require("../../../utils/profiles");
|
|
26
|
+
class BuildVersionSyncView extends EasCommand_1.default {
|
|
27
|
+
async runAsync() {
|
|
28
|
+
var _a;
|
|
29
|
+
const { flags } = await this.parse(BuildVersionSyncView);
|
|
30
|
+
const projectDir = await (0, projectUtils_1.findProjectRootAsync)();
|
|
31
|
+
const requestedPlatform = await (0, platform_1.selectRequestedPlatformAsync)(flags.platform);
|
|
32
|
+
const easJsonReader = new eas_json_1.EasJsonReader(projectDir);
|
|
33
|
+
await (0, remoteVersionSource_1.ensureRemoteVersionPolicyAsync)(projectDir, easJsonReader);
|
|
34
|
+
const platforms = (0, platform_1.toPlatforms)(requestedPlatform);
|
|
35
|
+
const buildProfiles = await (0, profiles_1.getProfilesAsync)({
|
|
36
|
+
type: 'build',
|
|
37
|
+
easJsonReader,
|
|
38
|
+
platforms,
|
|
39
|
+
profileName: (_a = flags.profile) !== null && _a !== void 0 ? _a : undefined,
|
|
40
|
+
});
|
|
41
|
+
for (const profileInfo of buildProfiles) {
|
|
42
|
+
const exp = (0, expoConfig_1.getExpoConfig)(projectDir, { env: profileInfo.profile.env });
|
|
43
|
+
const projectId = await (0, projectUtils_1.getProjectIdAsync)(exp);
|
|
44
|
+
await (0, remoteVersionSource_1.validateAppConfigForRemoteVersionPolicyAsync)(exp);
|
|
45
|
+
const platformDisplayName = platform_1.appPlatformDisplayNames[(0, AppPlatform_1.toAppPlatform)(profileInfo.platform)];
|
|
46
|
+
const applicationIdentifier = await (0, applicationIdentifier_1.getApplicationIdentifierAsync)(projectDir, exp, profileInfo.profile, profileInfo.platform);
|
|
47
|
+
const remoteVersions = await AppVersionQuery_1.AppVersionQuery.latestVersionAsync(projectId, (0, AppPlatform_1.toAppPlatform)(profileInfo.platform), applicationIdentifier);
|
|
48
|
+
const workflow = await (0, workflow_1.resolveWorkflowAsync)(projectDir, profileInfo.platform);
|
|
49
|
+
if (!(remoteVersions === null || remoteVersions === void 0 ? void 0 : remoteVersions.buildVersion)) {
|
|
50
|
+
log_1.default.warn(`Skipping versions sync for ${platformDisplayName}. There are no versions configured on Expo servers, use "eas build:version:set" or run a build to initialize it.`);
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (workflow === eas_build_job_1.Workflow.MANAGED) {
|
|
54
|
+
log_1.default.warn(`The remote value for the ${platformDisplayName} ${(0, remoteVersionSource_1.getBuildVersionName)(profileInfo.platform)} is ${chalk_1.default.bold(remoteVersions === null || remoteVersions === void 0 ? void 0 : remoteVersions.buildVersion)}, but it was not synced to the local project. This command has no effect on projects using managed workflow.`);
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
if (profileInfo.platform === eas_build_job_1.Platform.ANDROID) {
|
|
58
|
+
this.syncAndroidAsync({
|
|
59
|
+
projectDir,
|
|
60
|
+
exp,
|
|
61
|
+
profile: profileInfo.profile,
|
|
62
|
+
workflow,
|
|
63
|
+
buildVersion: remoteVersions.buildVersion,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
this.syncIosAsync({
|
|
68
|
+
projectDir,
|
|
69
|
+
exp,
|
|
70
|
+
profile: profileInfo.profile,
|
|
71
|
+
workflow,
|
|
72
|
+
buildVersion: remoteVersions.buildVersion,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
log_1.default.withTick(`Successfully updated the ${platformDisplayName} ${(0, remoteVersionSource_1.getBuildVersionName)(profileInfo.platform)} in native code to ${chalk_1.default.bold(remoteVersions === null || remoteVersions === void 0 ? void 0 : remoteVersions.buildVersion)}.`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async syncIosAsync({ workflow, projectDir, exp, profile, buildVersion, }) {
|
|
79
|
+
const xcodeBuildContext = await (0, scheme_1.resolveXcodeBuildContextAsync)({ exp, projectDir, nonInteractive: false }, profile);
|
|
80
|
+
const targets = await (0, target_1.resolveTargetsAsync)({
|
|
81
|
+
projectDir,
|
|
82
|
+
exp,
|
|
83
|
+
xcodeBuildContext,
|
|
84
|
+
env: profile.env,
|
|
85
|
+
});
|
|
86
|
+
if (!(0, versions_2.isValidBuildNumber)(buildVersion)) {
|
|
87
|
+
throw new Error(`Invalid buildNumber (${buildVersion}), ${versions_2.BUILD_NUMBER_REQUIREMENTS}.`);
|
|
88
|
+
}
|
|
89
|
+
if (workflow === eas_build_job_1.Workflow.GENERIC) {
|
|
90
|
+
await (0, version_2.updateNativeVersionsAsync)({
|
|
91
|
+
projectDir,
|
|
92
|
+
buildNumber: buildVersion,
|
|
93
|
+
targets,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async syncAndroidAsync({ projectDir, workflow, buildVersion, }) {
|
|
98
|
+
var _a, _b;
|
|
99
|
+
if (!(0, versions_1.isValidVersionCode)(buildVersion)) {
|
|
100
|
+
throw new Error(`Invalid versionCode (${buildVersion}), ${versions_1.VERSION_CODE_REQUIREMENTS}.`);
|
|
101
|
+
}
|
|
102
|
+
if (workflow === eas_build_job_1.Workflow.GENERIC) {
|
|
103
|
+
const buildGradle = await (0, gradleUtils_1.getAppBuildGradleAsync)(projectDir);
|
|
104
|
+
const isMultiFlavor = ((_a = buildGradle.android) === null || _a === void 0 ? void 0 : _a.productFlavors) || ((_b = buildGradle.android) === null || _b === void 0 ? void 0 : _b.flavorDimensions);
|
|
105
|
+
if (isMultiFlavor) {
|
|
106
|
+
throw new Error("Versions in native code can't be automatically synced in multi-flavor Android projects. If you are using EAS Build with app version source set to remote, the correct values will be injected at the build time.");
|
|
107
|
+
}
|
|
108
|
+
await (0, version_1.updateNativeVersionsAsync)({ projectDir, versionCode: Number(buildVersion) });
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.default = BuildVersionSyncView;
|
|
113
|
+
BuildVersionSyncView.description = 'Update a version in native code with a value stored on EAS servers';
|
|
114
|
+
BuildVersionSyncView.hidden = true;
|
|
115
|
+
BuildVersionSyncView.flags = {
|
|
116
|
+
platform: core_1.Flags.enum({
|
|
117
|
+
char: 'p',
|
|
118
|
+
options: ['android', 'ios', 'all'],
|
|
119
|
+
}),
|
|
120
|
+
profile: core_1.Flags.string({
|
|
121
|
+
description: 'Name of the build profile from eas.json. Defaults to "production" if defined in eas.json.',
|
|
122
|
+
helpValue: 'PROFILE_NAME',
|
|
123
|
+
}),
|
|
124
|
+
};
|
|
@@ -30,3 +30,4 @@ export default class UpdatePublish extends EasCommand {
|
|
|
30
30
|
runAsync(): Promise<void>;
|
|
31
31
|
}
|
|
32
32
|
export declare function getUpdatesToRepublishInteractiveAsync(projectId: string, branchName: string, platformFlag: string, pageSize: number, offset?: number, cumulativeUpdates?: Exclude<Exclude<ViewBranchUpdatesQuery['app'], null | undefined>['byId']['updateBranchByName'], null | undefined>['updates']): Promise<Exclude<Exclude<ViewBranchUpdatesQuery['app'], null | undefined>['byId']['updateBranchByName'], null | undefined>['updates']>;
|
|
33
|
+
export declare const truncatePublishUpdateMessage: (originalMessage: string) => string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getUpdatesToRepublishInteractiveAsync = exports.ensureBranchExistsAsync = exports.defaultPublishPlatforms = void 0;
|
|
3
|
+
exports.truncatePublishUpdateMessage = exports.getUpdatesToRepublishInteractiveAsync = exports.ensureBranchExistsAsync = exports.defaultPublishPlatforms = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const config_plugins_1 = require("@expo/config-plugins");
|
|
6
6
|
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
@@ -265,7 +265,9 @@ class UpdatePublish extends EasCommand_1.default {
|
|
|
265
265
|
try {
|
|
266
266
|
const platforms = platformFlag === 'all' ? exports.defaultPublishPlatforms : [platformFlag];
|
|
267
267
|
const assets = await (0, publish_1.collectAssetsAsync)({ inputDir: inputDir, platforms });
|
|
268
|
-
const { uniqueUploadedAssetCount } = await (0, publish_1.uploadAssetsAsync)(assets,
|
|
268
|
+
const { uniqueUploadedAssetCount } = await (0, publish_1.uploadAssetsAsync)(assets, (totalAssets, missingAssets) => {
|
|
269
|
+
assetSpinner.text = `Uploading assets. Finished (${totalAssets - missingAssets}/${totalAssets})`;
|
|
270
|
+
});
|
|
269
271
|
uploadedAssetCount = uniqueUploadedAssetCount;
|
|
270
272
|
unsortedUpdateInfoGroups = await (0, publish_1.buildUnsortedUpdateInfoGroupAsync)(assets, exp);
|
|
271
273
|
const uploadAssetSuccessMessage = uploadedAssetCount
|
|
@@ -278,6 +280,7 @@ class UpdatePublish extends EasCommand_1.default {
|
|
|
278
280
|
throw e;
|
|
279
281
|
}
|
|
280
282
|
}
|
|
283
|
+
const truncatedMessage = (0, exports.truncatePublishUpdateMessage)(message);
|
|
281
284
|
const runtimeToPlatformMapping = {};
|
|
282
285
|
for (const runtime of new Set(Object.values(runtimeVersions))) {
|
|
283
286
|
runtimeToPlatformMapping[runtime] = Object.entries(runtimeVersions)
|
|
@@ -302,7 +305,7 @@ class UpdatePublish extends EasCommand_1.default {
|
|
|
302
305
|
branchId,
|
|
303
306
|
updateInfoGroup: localUpdateInfoGroup,
|
|
304
307
|
runtimeVersion: republish ? oldRuntimeVersion : runtime,
|
|
305
|
-
message,
|
|
308
|
+
message: truncatedMessage,
|
|
306
309
|
awaitingCodeSigningInfo: !!codeSigningInfo,
|
|
307
310
|
};
|
|
308
311
|
});
|
|
@@ -374,7 +377,7 @@ class UpdatePublish extends EasCommand_1.default {
|
|
|
374
377
|
? [{ label: 'Android update ID', value: newAndroidUpdate.id }]
|
|
375
378
|
: []),
|
|
376
379
|
...(newIosUpdate ? [{ label: 'iOS update ID', value: newIosUpdate.id }] : []),
|
|
377
|
-
{ label: 'Message', value:
|
|
380
|
+
{ label: 'Message', value: truncatedMessage },
|
|
378
381
|
{ label: 'Website link', value: updateGroupLink },
|
|
379
382
|
]));
|
|
380
383
|
log_1.default.addNewLineIfNone();
|
|
@@ -513,3 +516,11 @@ async function checkEASUpdateURLIsSetAsync(exp) {
|
|
|
513
516
|
throw new Error(`The update URL is incorrectly configured for EAS Update. Please set updates.url to ${expectedURL} in your app.json.`);
|
|
514
517
|
}
|
|
515
518
|
}
|
|
519
|
+
const truncatePublishUpdateMessage = (originalMessage) => {
|
|
520
|
+
if (originalMessage.length > 1024) {
|
|
521
|
+
log_1.default.warn('Update message exceeds the allowed 1024 character limit. Truncating message...');
|
|
522
|
+
return originalMessage.substring(0, 1021) + '...';
|
|
523
|
+
}
|
|
524
|
+
return originalMessage;
|
|
525
|
+
};
|
|
526
|
+
exports.truncatePublishUpdateMessage = truncatePublishUpdateMessage;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { JSONObject } from '@expo/json-file';
|
|
2
|
+
import type { XCBuildConfiguration } from 'xcode';
|
|
2
3
|
import { CommonIosAppCredentialsFragment, IosAppBuildCredentialsFragment } from '../../graphql/generated';
|
|
3
4
|
import { Account } from '../../user/Account';
|
|
4
5
|
export interface App {
|
|
@@ -11,6 +12,7 @@ export interface Target {
|
|
|
11
12
|
bundleIdentifier: string;
|
|
12
13
|
parentBundleIdentifier?: string;
|
|
13
14
|
entitlements: JSONObject;
|
|
15
|
+
buildSettings?: XCBuildConfiguration['buildSettings'];
|
|
14
16
|
}
|
|
15
17
|
export interface TargetCredentials {
|
|
16
18
|
distributionCertificate: {
|
package/build/env.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
/**
|
|
3
|
+
* Dangerous overrides, use only if you know what you are doing
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Overrides applicationId from Android project, setting this option will also
|
|
7
|
+
* ignore failures when parsing build.gradle.
|
|
8
|
+
*/
|
|
9
|
+
overrideAndroidApplicationId: string | undefined;
|
|
10
|
+
};
|
|
11
|
+
export default _default;
|
package/build/env.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = {
|
|
4
|
+
/**
|
|
5
|
+
* Dangerous overrides, use only if you know what you are doing
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Overrides applicationId from Android project, setting this option will also
|
|
9
|
+
* ignore failures when parsing build.gradle.
|
|
10
|
+
*/
|
|
11
|
+
overrideAndroidApplicationId: process.env.EAS_DANGEROUS_OVERRIDE_ANDROID_APPLICATION_ID,
|
|
12
|
+
};
|
|
@@ -709,6 +709,7 @@ export declare type App = Project & {
|
|
|
709
709
|
isLikedByMe: Scalars['Boolean'];
|
|
710
710
|
/** @deprecated No longer supported */
|
|
711
711
|
lastPublishedTime: Scalars['DateTime'];
|
|
712
|
+
latestAppVersionByPlatformAndApplicationIdentifier?: Maybe<AppVersion>;
|
|
712
713
|
latestReleaseForReleaseChannel?: Maybe<AppRelease>;
|
|
713
714
|
/** ID of latest classic update release */
|
|
714
715
|
latestReleaseId: Scalars['ID'];
|
|
@@ -812,6 +813,11 @@ export declare type AppIosAppCredentialsArgs = {
|
|
|
812
813
|
filter?: InputMaybe<IosAppCredentialsFilter>;
|
|
813
814
|
};
|
|
814
815
|
/** Represents an Exponent App (or Experience in legacy terms) */
|
|
816
|
+
export declare type AppLatestAppVersionByPlatformAndApplicationIdentifierArgs = {
|
|
817
|
+
applicationIdentifier: Scalars['String'];
|
|
818
|
+
platform: AppPlatform;
|
|
819
|
+
};
|
|
820
|
+
/** Represents an Exponent App (or Experience in legacy terms) */
|
|
815
821
|
export declare type AppLatestReleaseForReleaseChannelArgs = {
|
|
816
822
|
platform: AppPlatform;
|
|
817
823
|
releaseChannel: Scalars['String'];
|
|
@@ -1004,6 +1010,47 @@ export declare enum AppStoreConnectUserRole {
|
|
|
1004
1010
|
Technical = "TECHNICAL",
|
|
1005
1011
|
Unknown = "UNKNOWN"
|
|
1006
1012
|
}
|
|
1013
|
+
/** Represents Play Store/App Store version of an application */
|
|
1014
|
+
export declare type AppVersion = {
|
|
1015
|
+
__typename?: 'AppVersion';
|
|
1016
|
+
/**
|
|
1017
|
+
* Store identifier for an application
|
|
1018
|
+
* - Android - applicationId
|
|
1019
|
+
* - iOS - bundle identifier
|
|
1020
|
+
*/
|
|
1021
|
+
applicationIdentifier: Scalars['String'];
|
|
1022
|
+
/**
|
|
1023
|
+
* Value that identifies build in a store (it's visible to developers, but not to end users)
|
|
1024
|
+
* - Android - versionCode in build.gradle ("android.versionCode" field in app.json)
|
|
1025
|
+
* - iOS - CFBundleVersion in Info.plist ("ios.buildNumber" field in app.json)
|
|
1026
|
+
*/
|
|
1027
|
+
buildVersion: Scalars['String'];
|
|
1028
|
+
id: Scalars['ID'];
|
|
1029
|
+
platform: AppPlatform;
|
|
1030
|
+
runtimeVersion?: Maybe<Scalars['String']>;
|
|
1031
|
+
/**
|
|
1032
|
+
* User-facing version in a store
|
|
1033
|
+
* - Android - versionName in build.gradle ("version" field in app.json)
|
|
1034
|
+
* - iOS - CFBundleShortVersionString in Info.plist ("version" field in app.json)
|
|
1035
|
+
*/
|
|
1036
|
+
storeVersion: Scalars['String'];
|
|
1037
|
+
};
|
|
1038
|
+
export declare type AppVersionInput = {
|
|
1039
|
+
appId: Scalars['ID'];
|
|
1040
|
+
applicationIdentifier: Scalars['String'];
|
|
1041
|
+
buildVersion: Scalars['String'];
|
|
1042
|
+
platform: AppPlatform;
|
|
1043
|
+
runtimeVersion?: InputMaybe<Scalars['String']>;
|
|
1044
|
+
storeVersion: Scalars['String'];
|
|
1045
|
+
};
|
|
1046
|
+
export declare type AppVersionMutation = {
|
|
1047
|
+
__typename?: 'AppVersionMutation';
|
|
1048
|
+
/** Create an app version */
|
|
1049
|
+
createAppVersion: AppVersion;
|
|
1050
|
+
};
|
|
1051
|
+
export declare type AppVersionMutationCreateAppVersionArgs = {
|
|
1052
|
+
appVersionInput: AppVersionInput;
|
|
1053
|
+
};
|
|
1007
1054
|
export declare type AppleAppIdentifier = {
|
|
1008
1055
|
__typename?: 'AppleAppIdentifier';
|
|
1009
1056
|
account: Account;
|
|
@@ -1181,7 +1228,7 @@ export declare type ApplePushKey = {
|
|
|
1181
1228
|
updatedAt: Scalars['DateTime'];
|
|
1182
1229
|
};
|
|
1183
1230
|
export declare type ApplePushKeyInput = {
|
|
1184
|
-
appleTeamId
|
|
1231
|
+
appleTeamId: Scalars['ID'];
|
|
1185
1232
|
keyIdentifier: Scalars['String'];
|
|
1186
1233
|
keyP8: Scalars['String'];
|
|
1187
1234
|
};
|
|
@@ -1321,6 +1368,7 @@ export declare type Build = ActivityTimelineProjectActivity & BuildOrBuildJob &
|
|
|
1321
1368
|
iosEnterpriseProvisioning?: Maybe<BuildIosEnterpriseProvisioning>;
|
|
1322
1369
|
isGitWorkingTreeDirty?: Maybe<Scalars['Boolean']>;
|
|
1323
1370
|
logFiles: Array<Scalars['String']>;
|
|
1371
|
+
maxBuildTimeSeconds: Scalars['Int'];
|
|
1324
1372
|
metrics?: Maybe<BuildMetrics>;
|
|
1325
1373
|
parentBuild?: Maybe<Build>;
|
|
1326
1374
|
platform: AppPlatform;
|
|
@@ -1331,6 +1379,7 @@ export declare type Build = ActivityTimelineProjectActivity & BuildOrBuildJob &
|
|
|
1331
1379
|
queuePosition?: Maybe<Scalars['Int']>;
|
|
1332
1380
|
reactNativeVersion?: Maybe<Scalars['String']>;
|
|
1333
1381
|
releaseChannel?: Maybe<Scalars['String']>;
|
|
1382
|
+
resourceClass?: Maybe<BuildResourceClass>;
|
|
1334
1383
|
runtimeVersion?: Maybe<Scalars['String']>;
|
|
1335
1384
|
sdkVersion?: Maybe<Scalars['String']>;
|
|
1336
1385
|
status: BuildStatus;
|
|
@@ -1496,11 +1545,13 @@ export declare type BuildMutationCancelBuildArgs = {
|
|
|
1496
1545
|
};
|
|
1497
1546
|
export declare type BuildMutationCreateAndroidBuildArgs = {
|
|
1498
1547
|
appId: Scalars['ID'];
|
|
1548
|
+
buildParams?: InputMaybe<BuildParamsInput>;
|
|
1499
1549
|
job: AndroidJobInput;
|
|
1500
1550
|
metadata?: InputMaybe<BuildMetadataInput>;
|
|
1501
1551
|
};
|
|
1502
1552
|
export declare type BuildMutationCreateIosBuildArgs = {
|
|
1503
1553
|
appId: Scalars['ID'];
|
|
1554
|
+
buildParams?: InputMaybe<BuildParamsInput>;
|
|
1504
1555
|
job: IosJobInput;
|
|
1505
1556
|
metadata?: InputMaybe<BuildMetadataInput>;
|
|
1506
1557
|
};
|
|
@@ -1513,9 +1564,13 @@ export declare type BuildMutationRetryBuildArgs = {
|
|
|
1513
1564
|
export declare type BuildOrBuildJob = {
|
|
1514
1565
|
id: Scalars['ID'];
|
|
1515
1566
|
};
|
|
1567
|
+
export declare type BuildParamsInput = {
|
|
1568
|
+
resourceClass: BuildResourceClass;
|
|
1569
|
+
};
|
|
1516
1570
|
export declare enum BuildPriority {
|
|
1517
1571
|
High = "HIGH",
|
|
1518
|
-
Normal = "NORMAL"
|
|
1572
|
+
Normal = "NORMAL",
|
|
1573
|
+
NormalPlus = "NORMAL_PLUS"
|
|
1519
1574
|
}
|
|
1520
1575
|
/** Publicly visible data for a Build. */
|
|
1521
1576
|
export declare type BuildPublicData = {
|
|
@@ -1568,6 +1623,13 @@ export declare type BuildQueryAllForAppArgs = {
|
|
|
1568
1623
|
export declare type BuildQueryByIdArgs = {
|
|
1569
1624
|
buildId: Scalars['ID'];
|
|
1570
1625
|
};
|
|
1626
|
+
export declare enum BuildResourceClass {
|
|
1627
|
+
AndroidDefault = "ANDROID_DEFAULT",
|
|
1628
|
+
AndroidLarge = "ANDROID_LARGE",
|
|
1629
|
+
IosDefault = "IOS_DEFAULT",
|
|
1630
|
+
IosLarge = "IOS_LARGE",
|
|
1631
|
+
Legacy = "LEGACY"
|
|
1632
|
+
}
|
|
1571
1633
|
export declare enum BuildStatus {
|
|
1572
1634
|
Canceled = "CANCELED",
|
|
1573
1635
|
Errored = "ERRORED",
|
|
@@ -2407,6 +2469,8 @@ export declare type RootMutation = {
|
|
|
2407
2469
|
app?: Maybe<AppMutation>;
|
|
2408
2470
|
/** Mutations that modify an App Store Connect Api Key */
|
|
2409
2471
|
appStoreConnectApiKey: AppStoreConnectApiKeyMutation;
|
|
2472
|
+
/** Mutations that modify an AppVersion */
|
|
2473
|
+
appVersion: AppVersionMutation;
|
|
2410
2474
|
/** Mutations that modify an Identifier for an iOS App */
|
|
2411
2475
|
appleAppIdentifier: AppleAppIdentifierMutation;
|
|
2412
2476
|
/** Mutations that modify an Apple Device */
|
|
@@ -5746,10 +5810,24 @@ export declare type CreateAppMutation = {
|
|
|
5746
5810
|
};
|
|
5747
5811
|
} | null;
|
|
5748
5812
|
};
|
|
5813
|
+
export declare type CreateAppVersionMutationVariables = Exact<{
|
|
5814
|
+
appVersionInput: AppVersionInput;
|
|
5815
|
+
}>;
|
|
5816
|
+
export declare type CreateAppVersionMutation = {
|
|
5817
|
+
__typename?: 'RootMutation';
|
|
5818
|
+
appVersion: {
|
|
5819
|
+
__typename?: 'AppVersionMutation';
|
|
5820
|
+
createAppVersion: {
|
|
5821
|
+
__typename?: 'AppVersion';
|
|
5822
|
+
id: string;
|
|
5823
|
+
};
|
|
5824
|
+
};
|
|
5825
|
+
};
|
|
5749
5826
|
export declare type CreateAndroidBuildMutationVariables = Exact<{
|
|
5750
5827
|
appId: Scalars['ID'];
|
|
5751
5828
|
job: AndroidJobInput;
|
|
5752
5829
|
metadata?: InputMaybe<BuildMetadataInput>;
|
|
5830
|
+
buildParams?: InputMaybe<BuildParamsInput>;
|
|
5753
5831
|
}>;
|
|
5754
5832
|
export declare type CreateAndroidBuildMutation = {
|
|
5755
5833
|
__typename?: 'RootMutation';
|
|
@@ -5827,6 +5905,7 @@ export declare type CreateIosBuildMutationVariables = Exact<{
|
|
|
5827
5905
|
appId: Scalars['ID'];
|
|
5828
5906
|
job: IosJobInput;
|
|
5829
5907
|
metadata?: InputMaybe<BuildMetadataInput>;
|
|
5908
|
+
buildParams?: InputMaybe<BuildParamsInput>;
|
|
5830
5909
|
}>;
|
|
5831
5910
|
export declare type CreateIosBuildMutation = {
|
|
5832
5911
|
__typename?: 'RootMutation';
|
|
@@ -6166,6 +6245,27 @@ export declare type DeleteWebhookMutation = {
|
|
|
6166
6245
|
};
|
|
6167
6246
|
};
|
|
6168
6247
|
};
|
|
6248
|
+
export declare type LatestAppVersionQueryVariables = Exact<{
|
|
6249
|
+
appId: Scalars['String'];
|
|
6250
|
+
platform: AppPlatform;
|
|
6251
|
+
applicationIdentifier: Scalars['String'];
|
|
6252
|
+
}>;
|
|
6253
|
+
export declare type LatestAppVersionQuery = {
|
|
6254
|
+
__typename?: 'RootQuery';
|
|
6255
|
+
app: {
|
|
6256
|
+
__typename?: 'AppQuery';
|
|
6257
|
+
byId: {
|
|
6258
|
+
__typename?: 'App';
|
|
6259
|
+
id: string;
|
|
6260
|
+
latestAppVersionByPlatformAndApplicationIdentifier?: {
|
|
6261
|
+
__typename?: 'AppVersion';
|
|
6262
|
+
id: string;
|
|
6263
|
+
storeVersion: string;
|
|
6264
|
+
buildVersion: string;
|
|
6265
|
+
} | null;
|
|
6266
|
+
};
|
|
6267
|
+
};
|
|
6268
|
+
};
|
|
6169
6269
|
export declare type ViewBranchQueryVariables = Exact<{
|
|
6170
6270
|
appId: Scalars['String'];
|
|
6171
6271
|
name: Scalars['String'];
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* For more info and docs, visit https://graphql-code-generator.com/
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.WebhookType = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.SubmissionStatus = exports.SubmissionAndroidTrack = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StandardOffer = exports.SecondFactorMethod = exports.Role = exports.ProjectArchiveSourceType = exports.Permission = exports.Order = exports.OfferType = exports.MailchimpTag = exports.MailchimpAudience = exports.IosSchemeBuildConfiguration = exports.IosManagedBuildType = exports.IosDistributionType = exports.IosBuildType = exports.InvoiceDiscountType = exports.Feature = exports.EasServiceMetric = exports.EasBuildDeprecationInfoType = exports.DistributionType = exports.CacheControlScope = exports.BuildWorkflow = exports.BuildStatus = exports.BuildPriority = exports.BuildJobStatus = exports.BuildJobLogsFormat = exports.BuildIosEnterpriseProvisioning = exports.BuildCredentialsSource = exports.AssetMetadataStatus = exports.AppsFilter = exports.AppleDeviceClass = exports.AppStoreConnectUserRole = exports.AppSort = exports.AppPrivacy = exports.AppPlatform = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.AndroidBuildType = exports.ActivityTimelineProjectActivityType = void 0;
|
|
9
|
+
exports.WebhookType = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.SubmissionStatus = exports.SubmissionAndroidTrack = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StandardOffer = exports.SecondFactorMethod = exports.Role = exports.ProjectArchiveSourceType = exports.Permission = exports.Order = exports.OfferType = exports.MailchimpTag = exports.MailchimpAudience = exports.IosSchemeBuildConfiguration = exports.IosManagedBuildType = exports.IosDistributionType = exports.IosBuildType = exports.InvoiceDiscountType = exports.Feature = exports.EasServiceMetric = exports.EasBuildDeprecationInfoType = exports.DistributionType = exports.CacheControlScope = exports.BuildWorkflow = exports.BuildStatus = exports.BuildResourceClass = exports.BuildPriority = exports.BuildJobStatus = exports.BuildJobLogsFormat = exports.BuildIosEnterpriseProvisioning = exports.BuildCredentialsSource = exports.AssetMetadataStatus = exports.AppsFilter = exports.AppleDeviceClass = exports.AppStoreConnectUserRole = exports.AppSort = exports.AppPrivacy = exports.AppPlatform = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.AndroidBuildType = exports.ActivityTimelineProjectActivityType = void 0;
|
|
10
10
|
var ActivityTimelineProjectActivityType;
|
|
11
11
|
(function (ActivityTimelineProjectActivityType) {
|
|
12
12
|
ActivityTimelineProjectActivityType["Build"] = "BUILD";
|
|
@@ -114,7 +114,16 @@ var BuildPriority;
|
|
|
114
114
|
(function (BuildPriority) {
|
|
115
115
|
BuildPriority["High"] = "HIGH";
|
|
116
116
|
BuildPriority["Normal"] = "NORMAL";
|
|
117
|
+
BuildPriority["NormalPlus"] = "NORMAL_PLUS";
|
|
117
118
|
})(BuildPriority = exports.BuildPriority || (exports.BuildPriority = {}));
|
|
119
|
+
var BuildResourceClass;
|
|
120
|
+
(function (BuildResourceClass) {
|
|
121
|
+
BuildResourceClass["AndroidDefault"] = "ANDROID_DEFAULT";
|
|
122
|
+
BuildResourceClass["AndroidLarge"] = "ANDROID_LARGE";
|
|
123
|
+
BuildResourceClass["IosDefault"] = "IOS_DEFAULT";
|
|
124
|
+
BuildResourceClass["IosLarge"] = "IOS_LARGE";
|
|
125
|
+
BuildResourceClass["Legacy"] = "LEGACY";
|
|
126
|
+
})(BuildResourceClass = exports.BuildResourceClass || (exports.BuildResourceClass = {}));
|
|
118
127
|
var BuildStatus;
|
|
119
128
|
(function (BuildStatus) {
|
|
120
129
|
BuildStatus["Canceled"] = "CANCELED";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AppPlatform } from '../generated';
|
|
2
|
+
export declare const AppVersionMutation: {
|
|
3
|
+
createAppVersionAsync(appVersionInput: {
|
|
4
|
+
appId: string;
|
|
5
|
+
platform: AppPlatform;
|
|
6
|
+
applicationIdentifier: string;
|
|
7
|
+
storeVersion: string;
|
|
8
|
+
buildVersion: string;
|
|
9
|
+
runtimeVersion?: string;
|
|
10
|
+
}): Promise<string>;
|
|
11
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AppVersionMutation = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
6
|
+
const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
|
|
7
|
+
const client_1 = require("../client");
|
|
8
|
+
exports.AppVersionMutation = {
|
|
9
|
+
async createAppVersionAsync(appVersionInput) {
|
|
10
|
+
var _a;
|
|
11
|
+
const data = await (0, client_1.withErrorHandlingAsync)(client_1.graphqlClient
|
|
12
|
+
.mutation((0, graphql_tag_1.default) `
|
|
13
|
+
mutation CreateAppVersionMutation($appVersionInput: AppVersionInput!) {
|
|
14
|
+
appVersion {
|
|
15
|
+
createAppVersion(appVersionInput: $appVersionInput) {
|
|
16
|
+
id
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
`, {
|
|
21
|
+
appVersionInput,
|
|
22
|
+
})
|
|
23
|
+
.toPromise());
|
|
24
|
+
const appVersionId = (_a = data.appVersion) === null || _a === void 0 ? void 0 : _a.createAppVersion.id;
|
|
25
|
+
(0, assert_1.default)(appVersionId, 'AppVersion ID must be defined');
|
|
26
|
+
return appVersionId;
|
|
27
|
+
},
|
|
28
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AndroidJobInput, BuildFragment, BuildMetadataInput, EasBuildDeprecationInfo, IosJobInput } from '../generated';
|
|
1
|
+
import { AndroidJobInput, BuildFragment, BuildMetadataInput, BuildParamsInput, EasBuildDeprecationInfo, IosJobInput } from '../generated';
|
|
2
2
|
export interface BuildResult {
|
|
3
3
|
build: BuildFragment;
|
|
4
4
|
deprecationInfo?: EasBuildDeprecationInfo | null;
|
|
@@ -8,10 +8,12 @@ export declare const BuildMutation: {
|
|
|
8
8
|
appId: string;
|
|
9
9
|
job: AndroidJobInput;
|
|
10
10
|
metadata: BuildMetadataInput;
|
|
11
|
+
buildParams: BuildParamsInput;
|
|
11
12
|
}): Promise<BuildResult>;
|
|
12
13
|
createIosBuildAsync(input: {
|
|
13
14
|
appId: string;
|
|
14
15
|
job: IosJobInput;
|
|
15
16
|
metadata: BuildMetadataInput;
|
|
17
|
+
buildParams: BuildParamsInput;
|
|
16
18
|
}): Promise<BuildResult>;
|
|
17
19
|
};
|
|
@@ -16,9 +16,15 @@ exports.BuildMutation = {
|
|
|
16
16
|
$appId: ID!
|
|
17
17
|
$job: AndroidJobInput!
|
|
18
18
|
$metadata: BuildMetadataInput
|
|
19
|
+
$buildParams: BuildParamsInput
|
|
19
20
|
) {
|
|
20
21
|
build {
|
|
21
|
-
createAndroidBuild(
|
|
22
|
+
createAndroidBuild(
|
|
23
|
+
appId: $appId
|
|
24
|
+
job: $job
|
|
25
|
+
metadata: $metadata
|
|
26
|
+
buildParams: $buildParams
|
|
27
|
+
) {
|
|
22
28
|
build {
|
|
23
29
|
id
|
|
24
30
|
...BuildFragment
|
|
@@ -43,9 +49,15 @@ exports.BuildMutation = {
|
|
|
43
49
|
$appId: ID!
|
|
44
50
|
$job: IosJobInput!
|
|
45
51
|
$metadata: BuildMetadataInput
|
|
52
|
+
$buildParams: BuildParamsInput
|
|
46
53
|
) {
|
|
47
54
|
build {
|
|
48
|
-
createIosBuild(
|
|
55
|
+
createIosBuild(
|
|
56
|
+
appId: $appId
|
|
57
|
+
job: $job
|
|
58
|
+
metadata: $metadata
|
|
59
|
+
buildParams: $buildParams
|
|
60
|
+
) {
|
|
49
61
|
build {
|
|
50
62
|
id
|
|
51
63
|
...BuildFragment
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AppVersionQuery = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
|
|
6
|
+
const client_1 = require("../client");
|
|
7
|
+
exports.AppVersionQuery = {
|
|
8
|
+
async latestVersionAsync(appId, platform, applicationIdentifier) {
|
|
9
|
+
var _a;
|
|
10
|
+
const data = await (0, client_1.withErrorHandlingAsync)(client_1.graphqlClient
|
|
11
|
+
.query((0, graphql_tag_1.default) `
|
|
12
|
+
query LatestAppVersion(
|
|
13
|
+
$appId: String!
|
|
14
|
+
$platform: AppPlatform!
|
|
15
|
+
$applicationIdentifier: String!
|
|
16
|
+
) {
|
|
17
|
+
app {
|
|
18
|
+
byId(appId: $appId) {
|
|
19
|
+
id
|
|
20
|
+
latestAppVersionByPlatformAndApplicationIdentifier(
|
|
21
|
+
platform: $platform
|
|
22
|
+
applicationIdentifier: $applicationIdentifier
|
|
23
|
+
) {
|
|
24
|
+
id
|
|
25
|
+
storeVersion
|
|
26
|
+
buildVersion
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
`, { appId, applicationIdentifier, platform }, {
|
|
32
|
+
additionalTypenames: ['App', 'AppVersion'],
|
|
33
|
+
})
|
|
34
|
+
.toPromise());
|
|
35
|
+
return (_a = data.app.byId.latestAppVersionByPlatformAndApplicationIdentifier) !== null && _a !== void 0 ? _a : null;
|
|
36
|
+
},
|
|
37
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { WebhookFilter, WebhookFragment } from '../generated';
|
|
2
2
|
export declare const WebhookQuery: {
|
|
3
|
-
byAppIdAsync(appId: string, webhookFilter?: WebhookFilter
|
|
3
|
+
byAppIdAsync(appId: string, webhookFilter?: WebhookFilter): Promise<WebhookFragment[]>;
|
|
4
4
|
byIdAsync(webhookId: string): Promise<WebhookFragment>;
|
|
5
5
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="@expo/apple-utils/ts-declarations/expo__app-store" />
|
|
2
|
-
import { AgeRatingDeclaration, AppInfoLocalization, AppStoreVersion, AppStoreVersionLocalization, CategoryIds } from '@expo/apple-utils';
|
|
2
|
+
import { AgeRatingDeclaration, AppInfoLocalization, AppStoreReviewDetail, AppStoreVersion, AppStoreVersionLocalization, CategoryIds } from '@expo/apple-utils';
|
|
3
3
|
import { AttributesOf } from '../../utils/asc';
|
|
4
4
|
import { AppleMetadata } from '../types';
|
|
5
5
|
declare type PartialExcept<T, K extends keyof T> = Pick<T, K> & Partial<Omit<T, K>>;
|
|
@@ -21,5 +21,6 @@ export declare class AppleConfigReader {
|
|
|
21
21
|
getVersionLocale(locale: string, context: {
|
|
22
22
|
versionIsFirst: boolean;
|
|
23
23
|
}): Partial<AttributesOf<AppStoreVersionLocalization>> | null;
|
|
24
|
+
getReviewDetails(): Partial<AttributesOf<AppStoreReviewDetail>> | null;
|
|
24
25
|
}
|
|
25
26
|
export {};
|