eas-cli 0.33.1 → 0.36.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 +27 -27
- package/build/analytics/common.d.ts +8 -0
- package/build/analytics/common.js +19 -0
- package/build/analytics/events.d.ts +43 -0
- package/build/analytics/events.js +51 -0
- package/build/{analytics.d.ts → analytics/rudderstackClient.d.ts} +0 -0
- package/build/{analytics.js → analytics/rudderstackClient.js} +4 -10
- package/build/api.js +3 -3
- package/build/build/android/configure.js +2 -2
- package/build/build/android/graphql.js +2 -4
- package/build/build/android/prepareJob.js +4 -3
- package/build/build/build.js +20 -29
- package/build/build/configure.js +14 -7
- package/build/build/context.d.ts +1 -1
- package/build/build/context.js +2 -2
- package/build/build/ios/UpdatesModule.js +2 -2
- package/build/build/ios/credentials.js +3 -3
- package/build/build/ios/graphql.js +2 -23
- package/build/build/ios/prepareJob.js +4 -6
- package/build/build/local.js +18 -27
- package/build/build/metadata.js +5 -10
- package/build/build/types.d.ts +0 -1
- package/build/build/utils/devClient.js +8 -5
- package/build/build/utils/formatBuild.js +1 -9
- package/build/build/utils/repository.js +10 -7
- package/build/build/utils/url.js +1 -1
- package/build/build/validate.js +4 -4
- package/build/commandUtils/EasCommand.d.ts +1 -0
- package/build/commandUtils/EasCommand.js +25 -4
- package/build/commands/branch/create.js +3 -2
- package/build/commands/branch/delete.js +1 -1
- package/build/commands/branch/list.js +1 -1
- package/build/commands/branch/publish.js +6 -5
- package/build/commands/branch/view.js +1 -1
- package/build/commands/build/index.js +44 -25
- package/build/commands/channel/edit.js +1 -1
- package/build/commands/channel/list.js +1 -1
- package/build/commands/channel/view.js +1 -1
- package/build/commands/diagnostics.js +2 -2
- package/build/commands/project/info.js +1 -1
- package/build/commands/secret/delete.js +1 -1
- package/build/commands/update/view.js +1 -1
- package/build/credentials/android/AndroidCredentialsProvider.js +2 -2
- package/build/credentials/android/actions/RemoveFcm.js +4 -4
- package/build/credentials/android/actions/{SetupBuildCredentials.d.ts → SetUpBuildCredentials.d.ts} +1 -1
- package/build/credentials/android/actions/{SetupBuildCredentials.js → SetUpBuildCredentials.js} +3 -3
- package/build/credentials/android/actions/{SetupBuildCredentialsFromCredentialsJson.d.ts → SetUpBuildCredentialsFromCredentialsJson.d.ts} +1 -1
- package/build/credentials/android/actions/{SetupBuildCredentialsFromCredentialsJson.js → SetUpBuildCredentialsFromCredentialsJson.js} +3 -3
- package/build/credentials/android/actions/{SetupGoogleServiceAccountKey.d.ts → SetUpGoogleServiceAccountKey.d.ts} +1 -1
- package/build/credentials/android/actions/{SetupGoogleServiceAccountKey.js → SetUpGoogleServiceAccountKey.js} +3 -3
- package/build/credentials/android/api/graphql/queries/GoogleServiceAccountKeyQuery.js +2 -0
- package/build/credentials/android/utils/keystore.js +67 -32
- package/build/credentials/credentialsJson/update.js +5 -4
- package/build/credentials/errors.d.ts +4 -0
- package/build/credentials/errors.js +8 -1
- package/build/credentials/ios/IosCredentialsProvider.js +4 -4
- package/build/credentials/ios/actions/AscApiKeyUtils.d.ts +17 -1
- package/build/credentials/ios/actions/AscApiKeyUtils.js +158 -24
- package/build/credentials/ios/actions/AssignAscApiKey.d.ts +9 -0
- package/build/credentials/ios/actions/AssignAscApiKey.js +29 -0
- package/build/credentials/ios/actions/CreateAscApiKey.d.ts +9 -0
- package/build/credentials/ios/actions/CreateAscApiKey.js +21 -0
- package/build/credentials/ios/actions/CreateDistributionCertificate.js +1 -1
- package/build/credentials/ios/actions/CreatePushKey.js +1 -1
- package/build/credentials/ios/actions/DistributionCertificateUtils.d.ts +1 -1
- package/build/credentials/ios/actions/DistributionCertificateUtils.js +6 -8
- package/build/credentials/ios/actions/PushKeyUtils.d.ts +1 -1
- package/build/credentials/ios/actions/PushKeyUtils.js +6 -6
- package/build/credentials/ios/actions/RemoveAscApiKey.d.ts +14 -0
- package/build/credentials/ios/actions/RemoveAscApiKey.js +55 -0
- package/build/credentials/ios/actions/{SetupAdhocProvisioningProfile.d.ts → SetUpAdhocProvisioningProfile.d.ts} +1 -1
- package/build/credentials/ios/actions/{SetupAdhocProvisioningProfile.js → SetUpAdhocProvisioningProfile.js} +5 -5
- package/build/credentials/ios/actions/SetUpAscApiKey.d.ts +21 -0
- package/build/credentials/ios/actions/SetUpAscApiKey.js +114 -0
- package/build/credentials/ios/actions/{SetupBuildCredentials.d.ts → SetUpBuildCredentials.d.ts} +1 -1
- package/build/credentials/ios/actions/{SetupBuildCredentials.js → SetUpBuildCredentials.js} +5 -5
- package/build/credentials/ios/actions/{SetupBuildCredentialsFromCredentialsJson.d.ts → SetUpBuildCredentialsFromCredentialsJson.d.ts} +1 -1
- package/build/credentials/ios/actions/{SetupBuildCredentialsFromCredentialsJson.js → SetUpBuildCredentialsFromCredentialsJson.js} +5 -5
- package/build/credentials/ios/actions/{SetupDistributionCertificate.d.ts → SetUpDistributionCertificate.d.ts} +1 -1
- package/build/credentials/ios/actions/{SetupDistributionCertificate.js → SetUpDistributionCertificate.js} +3 -3
- package/build/credentials/ios/actions/{SetupInternalProvisioningProfile.d.ts → SetUpInternalProvisioningProfile.d.ts} +1 -1
- package/build/credentials/ios/actions/{SetupInternalProvisioningProfile.js → SetUpInternalProvisioningProfile.js} +7 -7
- package/build/credentials/ios/actions/{SetupProvisioningProfile.d.ts → SetUpProvisioningProfile.d.ts} +1 -1
- package/build/credentials/ios/actions/{SetupProvisioningProfile.js → SetUpProvisioningProfile.js} +5 -5
- package/build/credentials/ios/actions/{SetupPushKey.d.ts → SetUpPushKey.d.ts} +1 -1
- package/build/credentials/ios/actions/{SetupPushKey.js → SetUpPushKey.js} +3 -3
- package/build/credentials/ios/actions/SetUpSubmissionCredentials.d.ts +10 -0
- package/build/credentials/ios/actions/SetUpSubmissionCredentials.js +53 -0
- package/build/credentials/ios/actions/{SetupTargetBuildCredentials.d.ts → SetUpTargetBuildCredentials.d.ts} +1 -1
- package/build/credentials/ios/actions/{SetupTargetBuildCredentials.js → SetUpTargetBuildCredentials.js} +10 -10
- package/build/credentials/ios/actions/{SetupTargetBuildCredentialsFromCredentialsJson.d.ts → SetUpTargetBuildCredentialsFromCredentialsJson.d.ts} +1 -1
- package/build/credentials/ios/actions/{SetupTargetBuildCredentialsFromCredentialsJson.js → SetUpTargetBuildCredentialsFromCredentialsJson.js} +3 -3
- package/build/credentials/ios/api/GraphqlClient.d.ts +8 -2
- package/build/credentials/ios/api/GraphqlClient.js +74 -2
- package/build/credentials/ios/api/graphql/mutations/AppStoreConnectApiKeyMutation.d.ts +5 -0
- package/build/credentials/ios/api/graphql/mutations/AppStoreConnectApiKeyMutation.js +54 -0
- package/build/credentials/ios/api/graphql/mutations/IosAppCredentialsMutation.d.ts +1 -0
- package/build/credentials/ios/api/graphql/mutations/IosAppCredentialsMutation.js +25 -0
- package/build/credentials/ios/api/graphql/queries/AppQuery.js +3 -1
- package/build/credentials/ios/api/graphql/queries/AppStoreConnectApiKeyQuery.d.ts +4 -0
- package/build/credentials/ios/api/graphql/queries/AppStoreConnectApiKeyQuery.js +33 -0
- package/build/credentials/ios/api/graphql/queries/AppleDeviceQuery.js +6 -2
- package/build/credentials/ios/api/graphql/queries/AppleDistributionCertificateQuery.js +7 -1
- package/build/credentials/ios/api/graphql/queries/AppleProvisioningProfileQuery.js +5 -1
- package/build/credentials/ios/api/graphql/queries/ApplePushKeyQuery.js +2 -0
- package/build/credentials/ios/api/graphql/queries/AppleTeamQuery.js +5 -1
- package/build/credentials/ios/appstore/AppStoreApi.d.ts +1 -1
- package/build/credentials/ios/appstore/Credentials.types.d.ts +1 -0
- package/build/credentials/ios/appstore/ascApiKey.d.ts +1 -1
- package/build/credentials/ios/appstore/ascApiKey.js +11 -1
- package/build/credentials/ios/appstore/entitlements.d.ts +2 -2
- package/build/credentials/ios/appstore/entitlements.js +20 -10
- package/build/credentials/ios/credentials.d.ts +2 -1
- package/build/credentials/ios/credentials.js +7 -2
- package/build/credentials/ios/utils/printCredentials.js +30 -1
- package/build/credentials/ios/validators/validateAscApiKey.d.ts +5 -0
- package/build/credentials/ios/validators/validateAscApiKey.js +21 -0
- package/build/credentials/manager/Actions.d.ts +52 -0
- package/build/credentials/manager/Actions.js +53 -0
- package/build/credentials/manager/AndroidActions.d.ts +6 -0
- package/build/credentials/manager/AndroidActions.js +114 -0
- package/build/credentials/manager/IosActions.d.ts +7 -0
- package/build/credentials/manager/IosActions.js +145 -0
- package/build/credentials/manager/ManageAndroid.d.ts +1 -29
- package/build/credentials/manager/ManageAndroid.js +30 -163
- package/build/credentials/manager/ManageIos.d.ts +1 -29
- package/build/credentials/manager/ManageIos.js +81 -169
- package/build/credentials/utils/promptForCredentials.d.ts +2 -1
- package/build/credentials/utils/promptForCredentials.js +3 -2
- package/build/graphql/client.d.ts +8 -2
- package/build/graphql/client.js +1 -1
- package/build/graphql/generated.d.ts +313 -85
- package/build/graphql/generated.js +23 -1
- package/build/graphql/mutations/KeystoreGenerationUrlMutation.d.ts +3 -0
- package/build/graphql/mutations/KeystoreGenerationUrlMutation.js +23 -0
- package/build/graphql/queries/BuildQuery.js +4 -1
- package/build/graphql/queries/EnvironmentSecretsQuery.js +4 -2
- package/build/graphql/queries/ProjectQuery.js +3 -1
- package/build/graphql/queries/PublishQuery.js +4 -1
- package/build/graphql/queries/SubmissionQuery.js +5 -2
- package/build/graphql/queries/UserQuery.js +4 -1
- package/build/graphql/queries/WebhookQuery.js +6 -2
- package/build/graphql/types/Build.js +1 -6
- package/build/graphql/types/credentials/AppStoreConnectApiKey.d.ts +1 -0
- package/build/graphql/types/credentials/AppStoreConnectApiKey.js +23 -0
- package/build/graphql/types/credentials/IosAppCredentials.js +6 -0
- package/build/log.d.ts +0 -2
- package/build/log.js +2 -12
- package/build/project/projectUtils.js +1 -1
- package/build/project/publish.js +2 -2
- package/build/project/workflow.js +2 -2
- package/build/submit/ArchiveSource.js +2 -1
- package/build/submit/BaseSubmitter.d.ts +20 -4
- package/build/submit/BaseSubmitter.js +34 -1
- package/build/submit/android/AndroidSubmitter.d.ts +12 -6
- package/build/submit/android/AndroidSubmitter.js +31 -20
- package/build/submit/android/ServiceAccountSource.js +2 -2
- package/build/submit/context.d.ts +2 -0
- package/build/submit/context.js +14 -0
- package/build/submit/ios/AppSpecificPasswordSource.d.ts +9 -6
- package/build/submit/ios/AppSpecificPasswordSource.js +42 -20
- package/build/submit/ios/AscApiKeySource.d.ts +9 -3
- package/build/submit/ios/AscApiKeySource.js +10 -10
- package/build/submit/ios/CredentialsServiceSource.d.ts +15 -0
- package/build/submit/ios/CredentialsServiceSource.js +52 -0
- package/build/submit/ios/IosSubmitCommand.d.ts +1 -2
- package/build/submit/ios/IosSubmitCommand.js +24 -53
- package/build/submit/ios/IosSubmitter.d.ts +20 -7
- package/build/submit/ios/IosSubmitter.js +79 -43
- package/build/submit/submit.js +13 -4
- package/build/submit/utils/errors.js +2 -0
- package/build/user/User.js +2 -1
- package/build/utils/easCli.d.ts +1 -0
- package/build/utils/easCli.js +5 -0
- package/build/utils/{expoCommand.d.ts → expoCli.d.ts} +0 -0
- package/build/utils/{expoCommand.js → expoCli.js} +0 -0
- package/build/utils/profiles.js +9 -2
- package/build/vcs/clients/git.d.ts +26 -0
- package/build/vcs/clients/git.js +184 -0
- package/build/vcs/clients/gitNoCommit.d.ts +7 -0
- package/build/vcs/clients/gitNoCommit.js +27 -0
- package/build/vcs/clients/noVcs.d.ts +6 -0
- package/build/vcs/clients/noVcs.js +19 -0
- package/build/vcs/git.d.ts +10 -17
- package/build/vcs/git.js +7 -175
- package/build/vcs/index.d.ts +2 -2
- package/build/vcs/index.js +15 -6
- package/build/vcs/local.d.ts +18 -5
- package/build/vcs/local.js +61 -32
- package/build/vcs/vcs.d.ts +2 -1
- package/build/vcs/vcs.js +8 -4
- package/oclif.manifest.json +1 -1
- package/package.json +7 -7
- package/build/build/utils/analytics.d.ts +0 -22
- package/build/build/utils/analytics.js +0 -28
|
@@ -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.CacheControlScope = exports.IosManagedBuildType = exports.IosSchemeBuildConfiguration = exports.StandardOffer = exports.MailchimpAudience = exports.MailchimpTag = exports.UploadSessionType = exports.IosBuildType = exports.EasBuildDeprecationInfoType = exports.BuildCredentialsSource = exports.AndroidBuildType = exports.ProjectArchiveSourceType = exports.BuildWorkflow = exports.Order = exports.AssetMetadataStatus = exports.AppSort = exports.AppsFilter = exports.WebhookType = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.IosDistributionType = exports.AppleDeviceClass = exports.BuildJobStatus = exports.BuildJobLogsFormat = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidTrack = exports.SubmissionAndroidArchiveType = exports.SubmissionStatus = exports.BuildIosEnterpriseProvisioning = exports.ActivityTimelineProjectActivityType = exports.Role = exports.Permission = exports.SecondFactorMethod = exports.DistributionType = exports.BuildStatus = exports.AppPlatform = exports.AppPrivacy = exports.Feature = exports.OfferType = void 0;
|
|
9
|
+
exports.CacheControlScope = exports.IosManagedBuildType = exports.IosSchemeBuildConfiguration = exports.StandardOffer = exports.MailchimpAudience = exports.MailchimpTag = exports.UploadSessionType = exports.IosBuildType = exports.EasBuildDeprecationInfoType = exports.BuildCredentialsSource = exports.AndroidBuildType = exports.ProjectArchiveSourceType = exports.BuildWorkflow = exports.Order = exports.AssetMetadataStatus = exports.AppSort = exports.AppsFilter = exports.WebhookType = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.AppStoreConnectUserRole = exports.IosDistributionType = exports.AppleDeviceClass = exports.BuildJobStatus = exports.BuildJobLogsFormat = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidTrack = exports.SubmissionAndroidArchiveType = exports.SubmissionStatus = exports.BuildIosEnterpriseProvisioning = exports.ActivityTimelineProjectActivityType = exports.Role = exports.Permission = exports.SecondFactorMethod = exports.DistributionType = exports.BuildStatus = exports.AppPlatform = exports.AppPrivacy = exports.Feature = exports.OfferType = void 0;
|
|
10
10
|
var OfferType;
|
|
11
11
|
(function (OfferType) {
|
|
12
12
|
/** Term subscription */
|
|
@@ -143,6 +143,25 @@ var IosDistributionType;
|
|
|
143
143
|
IosDistributionType["AdHoc"] = "AD_HOC";
|
|
144
144
|
IosDistributionType["Development"] = "DEVELOPMENT";
|
|
145
145
|
})(IosDistributionType = exports.IosDistributionType || (exports.IosDistributionType = {}));
|
|
146
|
+
var AppStoreConnectUserRole;
|
|
147
|
+
(function (AppStoreConnectUserRole) {
|
|
148
|
+
AppStoreConnectUserRole["Admin"] = "ADMIN";
|
|
149
|
+
AppStoreConnectUserRole["Finance"] = "FINANCE";
|
|
150
|
+
AppStoreConnectUserRole["Technical"] = "TECHNICAL";
|
|
151
|
+
AppStoreConnectUserRole["AccountHolder"] = "ACCOUNT_HOLDER";
|
|
152
|
+
AppStoreConnectUserRole["ReadOnly"] = "READ_ONLY";
|
|
153
|
+
AppStoreConnectUserRole["Sales"] = "SALES";
|
|
154
|
+
AppStoreConnectUserRole["Marketing"] = "MARKETING";
|
|
155
|
+
AppStoreConnectUserRole["AppManager"] = "APP_MANAGER";
|
|
156
|
+
AppStoreConnectUserRole["Developer"] = "DEVELOPER";
|
|
157
|
+
AppStoreConnectUserRole["AccessToReports"] = "ACCESS_TO_REPORTS";
|
|
158
|
+
AppStoreConnectUserRole["CustomerSupport"] = "CUSTOMER_SUPPORT";
|
|
159
|
+
AppStoreConnectUserRole["CreateApps"] = "CREATE_APPS";
|
|
160
|
+
AppStoreConnectUserRole["CloudManagedDeveloperId"] = "CLOUD_MANAGED_DEVELOPER_ID";
|
|
161
|
+
AppStoreConnectUserRole["CloudManagedAppDistribution"] = "CLOUD_MANAGED_APP_DISTRIBUTION";
|
|
162
|
+
AppStoreConnectUserRole["ImageManager"] = "IMAGE_MANAGER";
|
|
163
|
+
AppStoreConnectUserRole["Unknown"] = "UNKNOWN";
|
|
164
|
+
})(AppStoreConnectUserRole = exports.AppStoreConnectUserRole || (exports.AppStoreConnectUserRole = {}));
|
|
146
165
|
var AndroidFcmVersion;
|
|
147
166
|
(function (AndroidFcmVersion) {
|
|
148
167
|
AndroidFcmVersion["Legacy"] = "LEGACY";
|
|
@@ -196,6 +215,7 @@ var AndroidBuildType;
|
|
|
196
215
|
(function (AndroidBuildType) {
|
|
197
216
|
AndroidBuildType["Apk"] = "APK";
|
|
198
217
|
AndroidBuildType["AppBundle"] = "APP_BUNDLE";
|
|
218
|
+
/** @deprecated Use developmentClient option instead. */
|
|
199
219
|
AndroidBuildType["DevelopmentClient"] = "DEVELOPMENT_CLIENT";
|
|
200
220
|
})(AndroidBuildType = exports.AndroidBuildType || (exports.AndroidBuildType = {}));
|
|
201
221
|
var BuildCredentialsSource;
|
|
@@ -208,6 +228,7 @@ var EasBuildDeprecationInfoType;
|
|
|
208
228
|
EasBuildDeprecationInfoType["UserFacing"] = "USER_FACING";
|
|
209
229
|
EasBuildDeprecationInfoType["Internal"] = "INTERNAL";
|
|
210
230
|
})(EasBuildDeprecationInfoType = exports.EasBuildDeprecationInfoType || (exports.EasBuildDeprecationInfoType = {}));
|
|
231
|
+
/** @deprecated Use developmentClient option instead. */
|
|
211
232
|
var IosBuildType;
|
|
212
233
|
(function (IosBuildType) {
|
|
213
234
|
IosBuildType["Release"] = "RELEASE";
|
|
@@ -243,6 +264,7 @@ var IosSchemeBuildConfiguration;
|
|
|
243
264
|
IosSchemeBuildConfiguration["Release"] = "RELEASE";
|
|
244
265
|
IosSchemeBuildConfiguration["Debug"] = "DEBUG";
|
|
245
266
|
})(IosSchemeBuildConfiguration = exports.IosSchemeBuildConfiguration || (exports.IosSchemeBuildConfiguration = {}));
|
|
267
|
+
/** @deprecated Use developmentClient option instead. */
|
|
246
268
|
var IosManagedBuildType;
|
|
247
269
|
(function (IosManagedBuildType) {
|
|
248
270
|
IosManagedBuildType["Release"] = "RELEASE";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KeystoreGenerationUrlMutation = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const graphql_tag_1 = (0, tslib_1.__importDefault)(require("graphql-tag"));
|
|
6
|
+
const client_1 = require("../client");
|
|
7
|
+
exports.KeystoreGenerationUrlMutation = {
|
|
8
|
+
async createKeystoreGenerationUrlAsync() {
|
|
9
|
+
const data = await (0, client_1.withErrorHandlingAsync)(client_1.graphqlClient
|
|
10
|
+
.mutation((0, graphql_tag_1.default) `
|
|
11
|
+
mutation CreateKeystoreGenerationUrlMutation {
|
|
12
|
+
keystoreGenerationUrl {
|
|
13
|
+
createKeystoreGenerationUrl {
|
|
14
|
+
id
|
|
15
|
+
url
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
`)
|
|
20
|
+
.toPromise());
|
|
21
|
+
return data.keystoreGenerationUrl.createKeystoreGenerationUrl.url;
|
|
22
|
+
},
|
|
23
|
+
};
|
|
@@ -21,6 +21,7 @@ exports.BuildQuery = {
|
|
|
21
21
|
${(0, graphql_1.print)(Build_1.BuildFragmentNode)}
|
|
22
22
|
`, { buildId }, {
|
|
23
23
|
requestPolicy: useCache ? 'cache-first' : 'network-only',
|
|
24
|
+
additionalTypenames: ['Build'],
|
|
24
25
|
})
|
|
25
26
|
.toPromise());
|
|
26
27
|
return data.builds.byId;
|
|
@@ -48,7 +49,9 @@ exports.BuildQuery = {
|
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
51
|
${(0, graphql_1.print)(Build_1.BuildFragmentNode)}
|
|
51
|
-
`, { appId, offset, limit, filter }
|
|
52
|
+
`, { appId, offset, limit, filter }, {
|
|
53
|
+
additionalTypenames: ['Build'],
|
|
54
|
+
})
|
|
52
55
|
.toPromise());
|
|
53
56
|
return (_b = (_a = data.app) === null || _a === void 0 ? void 0 : _a.byId.builds) !== null && _b !== void 0 ? _b : [];
|
|
54
57
|
},
|
|
@@ -27,7 +27,9 @@ exports.EnvironmentSecretsQuery = {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
${(0, graphql_1.print)(EnvironmentSecret_1.EnvironmentSecretFragmentNode)}
|
|
30
|
-
`, { accountName }
|
|
30
|
+
`, { accountName }, {
|
|
31
|
+
additionalTypenames: ['EnvironmentSecret'],
|
|
32
|
+
})
|
|
31
33
|
.toPromise());
|
|
32
34
|
return data.account.byName.environmentSecrets;
|
|
33
35
|
},
|
|
@@ -47,7 +49,7 @@ exports.EnvironmentSecretsQuery = {
|
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
51
|
${(0, graphql_1.print)(EnvironmentSecret_1.EnvironmentSecretFragmentNode)}
|
|
50
|
-
`, { appId })
|
|
52
|
+
`, { appId }, { additionalTypenames: ['EnvironmentSecret'] })
|
|
51
53
|
.toPromise());
|
|
52
54
|
return (_b = (_a = data.app) === null || _a === void 0 ? void 0 : _a.byId.environmentSecrets) !== null && _b !== void 0 ? _b : [];
|
|
53
55
|
},
|
|
@@ -18,7 +18,10 @@ exports.PublishQuery = {
|
|
|
18
18
|
}
|
|
19
19
|
`, {
|
|
20
20
|
storageKeys,
|
|
21
|
-
}, {
|
|
21
|
+
}, {
|
|
22
|
+
requestPolicy: 'network-only',
|
|
23
|
+
additionalTypenames: ['AssetMetadataResult'],
|
|
24
|
+
} // Since we reptitively query this to monitor the asset upload, we need to ensure it is not cached.
|
|
22
25
|
)
|
|
23
26
|
.toPromise());
|
|
24
27
|
return data.asset.metadata;
|
|
@@ -19,7 +19,10 @@ exports.SubmissionQuery = {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
${(0, graphql_1.print)(Submission_1.SubmissionFragmentNode)}
|
|
22
|
-
`, { submissionId }, {
|
|
22
|
+
`, { submissionId }, {
|
|
23
|
+
requestPolicy: useCache ? 'cache-first' : 'network-only',
|
|
24
|
+
additionalTypenames: ['Submission'],
|
|
25
|
+
})
|
|
23
26
|
.toPromise());
|
|
24
27
|
return data.submissions.byId;
|
|
25
28
|
},
|
|
@@ -49,7 +52,7 @@ exports.SubmissionQuery = {
|
|
|
49
52
|
}
|
|
50
53
|
}
|
|
51
54
|
${(0, graphql_1.print)(Submission_1.SubmissionFragmentNode)}
|
|
52
|
-
`, { appId, offset, limit, status, platform })
|
|
55
|
+
`, { appId, offset, limit, status, platform }, { additionalTypenames: ['Submission'] })
|
|
53
56
|
.toPromise());
|
|
54
57
|
return (_b = (_a = data.app) === null || _a === void 0 ? void 0 : _a.byId.submissions) !== null && _b !== void 0 ? _b : [];
|
|
55
58
|
},
|
|
@@ -23,7 +23,9 @@ exports.WebhookQuery = {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
${(0, graphql_1.print)(Webhook_1.WebhookFragmentNode)}
|
|
26
|
-
`, { appId, webhookFilter }
|
|
26
|
+
`, { appId, webhookFilter }, {
|
|
27
|
+
additionalTypenames: ['Webhook'],
|
|
28
|
+
})
|
|
27
29
|
.toPromise());
|
|
28
30
|
return (_b = (_a = data.app) === null || _a === void 0 ? void 0 : _a.byId.webhooks) !== null && _b !== void 0 ? _b : [];
|
|
29
31
|
},
|
|
@@ -39,7 +41,9 @@ exports.WebhookQuery = {
|
|
|
39
41
|
}
|
|
40
42
|
}
|
|
41
43
|
${(0, graphql_1.print)(Webhook_1.WebhookFragmentNode)}
|
|
42
|
-
`, { webhookId }
|
|
44
|
+
`, { webhookId }, {
|
|
45
|
+
additionalTypenames: ['Webhook'],
|
|
46
|
+
})
|
|
43
47
|
.toPromise());
|
|
44
48
|
return data.webhook.byId;
|
|
45
49
|
},
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const AppStoreConnectApiKeyFragmentNode: import("graphql").DocumentNode;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AppStoreConnectApiKeyFragmentNode = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const graphql_1 = require("graphql");
|
|
6
|
+
const graphql_tag_1 = (0, tslib_1.__importDefault)(require("graphql-tag"));
|
|
7
|
+
const AppleTeam_1 = require("./AppleTeam");
|
|
8
|
+
exports.AppStoreConnectApiKeyFragmentNode = (0, graphql_tag_1.default) `
|
|
9
|
+
fragment AppStoreConnectApiKeyFragment on AppStoreConnectApiKey {
|
|
10
|
+
id
|
|
11
|
+
appleTeam {
|
|
12
|
+
id
|
|
13
|
+
...AppleTeamFragment
|
|
14
|
+
}
|
|
15
|
+
issuerIdentifier
|
|
16
|
+
keyIdentifier
|
|
17
|
+
name
|
|
18
|
+
roles
|
|
19
|
+
createdAt
|
|
20
|
+
updatedAt
|
|
21
|
+
}
|
|
22
|
+
${(0, graphql_1.print)(AppleTeam_1.AppleTeamFragmentNode)}
|
|
23
|
+
`;
|
|
@@ -4,6 +4,7 @@ exports.CommonIosAppCredentialsFragmentNode = exports.CommonIosAppCredentialsWit
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const graphql_tag_1 = (0, tslib_1.__importDefault)(require("graphql-tag"));
|
|
6
6
|
const App_1 = require("../App");
|
|
7
|
+
const AppStoreConnectApiKey_1 = require("./AppStoreConnectApiKey");
|
|
7
8
|
const AppleAppIdentifier_1 = require("./AppleAppIdentifier");
|
|
8
9
|
const ApplePushKey_1 = require("./ApplePushKey");
|
|
9
10
|
const AppleTeam_1 = require("./AppleTeam");
|
|
@@ -27,11 +28,16 @@ exports.CommonIosAppCredentialsWithoutBuildCredentialsFragmentNode = (0, graphql
|
|
|
27
28
|
id
|
|
28
29
|
...ApplePushKeyFragment
|
|
29
30
|
}
|
|
31
|
+
appStoreConnectApiKeyForSubmissions {
|
|
32
|
+
id
|
|
33
|
+
...AppStoreConnectApiKeyFragment
|
|
34
|
+
}
|
|
30
35
|
}
|
|
31
36
|
${App_1.AppFragmentNode}
|
|
32
37
|
${AppleTeam_1.AppleTeamFragmentNode}
|
|
33
38
|
${AppleAppIdentifier_1.AppleAppIdentifierFragmentNode}
|
|
34
39
|
${ApplePushKey_1.ApplePushKeyFragmentNode}
|
|
40
|
+
${AppStoreConnectApiKey_1.AppStoreConnectApiKeyFragmentNode}
|
|
35
41
|
`;
|
|
36
42
|
exports.CommonIosAppCredentialsFragmentNode = (0, graphql_tag_1.default) `
|
|
37
43
|
fragment CommonIosAppCredentialsFragment on IosAppCredentials {
|
package/build/log.d.ts
CHANGED
|
@@ -11,8 +11,6 @@ export default class Log {
|
|
|
11
11
|
static succeed(message: string): void;
|
|
12
12
|
static withTick(...args: any[]): void;
|
|
13
13
|
private static consoleLog;
|
|
14
|
-
private static consoleWarn;
|
|
15
|
-
private static consoleError;
|
|
16
14
|
private static withTextColor;
|
|
17
15
|
private static isLastLineNewLine;
|
|
18
16
|
private static updateIsLastLineNewLine;
|
package/build/log.js
CHANGED
|
@@ -20,10 +20,10 @@ class Log {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
static error(...args) {
|
|
23
|
-
Log.
|
|
23
|
+
Log.consoleLog(...Log.withTextColor(args, chalk_1.default.red));
|
|
24
24
|
}
|
|
25
25
|
static warn(...args) {
|
|
26
|
-
Log.
|
|
26
|
+
Log.consoleLog(...Log.withTextColor(args, chalk_1.default.yellow));
|
|
27
27
|
}
|
|
28
28
|
static debug(...args) {
|
|
29
29
|
if (Log.isDebug) {
|
|
@@ -47,16 +47,6 @@ class Log {
|
|
|
47
47
|
// eslint-disable-next-line no-console
|
|
48
48
|
console.log(...args);
|
|
49
49
|
}
|
|
50
|
-
static consoleWarn(...args) {
|
|
51
|
-
Log.updateIsLastLineNewLine(args);
|
|
52
|
-
// eslint-disable-next-line no-console
|
|
53
|
-
console.warn(...args);
|
|
54
|
-
}
|
|
55
|
-
static consoleError(...args) {
|
|
56
|
-
Log.updateIsLastLineNewLine(args);
|
|
57
|
-
// eslint-disable-next-line no-console
|
|
58
|
-
console.error(...args);
|
|
59
|
-
}
|
|
60
50
|
static withTextColor(args, chalkColor) {
|
|
61
51
|
return args.map(arg => chalkColor(arg));
|
|
62
52
|
}
|
package/build/project/publish.js
CHANGED
|
@@ -13,7 +13,7 @@ const PublishMutation_1 = require("../graphql/mutations/PublishMutation");
|
|
|
13
13
|
const PublishQuery_1 = require("../graphql/queries/PublishQuery");
|
|
14
14
|
const log_1 = (0, tslib_1.__importDefault)(require("../log"));
|
|
15
15
|
const uploads_1 = require("../uploads");
|
|
16
|
-
const
|
|
16
|
+
const expoCli_1 = require("../utils/expoCli");
|
|
17
17
|
const uniqBy_1 = (0, tslib_1.__importDefault)(require("../utils/expodash/uniqBy"));
|
|
18
18
|
exports.TIMEOUT_LIMIT = 60000; // 1 minute
|
|
19
19
|
const fileMetadataJoi = joi_1.default.object({
|
|
@@ -108,7 +108,7 @@ async function buildBundlesAsync({ projectDir, inputDir, }) {
|
|
|
108
108
|
throw new Error('Could not locate package.json');
|
|
109
109
|
}
|
|
110
110
|
log_1.default.withTick(`Building bundle with expo-cli...`);
|
|
111
|
-
await (0,
|
|
111
|
+
await (0, expoCli_1.expoCommandAsync)(projectDir, ['export', '--output-dir', inputDir, '--experimental-bundle']);
|
|
112
112
|
}
|
|
113
113
|
exports.buildBundlesAsync = buildBundlesAsync;
|
|
114
114
|
async function resolveInputDirectoryAsync(customInputDirectory) {
|
|
@@ -6,7 +6,7 @@ const config_plugins_1 = require("@expo/config-plugins");
|
|
|
6
6
|
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
7
7
|
const fs_extra_1 = (0, tslib_1.__importDefault)(require("fs-extra"));
|
|
8
8
|
const path_1 = (0, tslib_1.__importDefault)(require("path"));
|
|
9
|
-
const vcs_1 =
|
|
9
|
+
const vcs_1 = require("../vcs");
|
|
10
10
|
async function resolveWorkflowAsync(projectDir, platform) {
|
|
11
11
|
let platformWorkflowMarker;
|
|
12
12
|
try {
|
|
@@ -19,7 +19,7 @@ async function resolveWorkflowAsync(projectDir, platform) {
|
|
|
19
19
|
return eas_build_job_1.Workflow.MANAGED;
|
|
20
20
|
}
|
|
21
21
|
if (await fs_extra_1.default.pathExists(platformWorkflowMarker)) {
|
|
22
|
-
return (await vcs_1.
|
|
22
|
+
return (await (0, vcs_1.getVcsClient)().isFileIgnoredAsync(path_1.default.relative(projectDir, platformWorkflowMarker)))
|
|
23
23
|
? eas_build_job_1.Workflow.MANAGED
|
|
24
24
|
: eas_build_job_1.Workflow.GENERIC;
|
|
25
25
|
}
|
|
@@ -188,7 +188,7 @@ async function handleBuildListSourceAsync(source) {
|
|
|
188
188
|
}
|
|
189
189
|
}
|
|
190
190
|
function formatBuildChoice(build, expiryDate) {
|
|
191
|
-
const { id, platform, updatedAt, appVersion, sdkVersion, runtimeVersion, buildProfile, appBuildVersion, releaseChannel, } = build;
|
|
191
|
+
const { id, platform, updatedAt, appVersion, sdkVersion, runtimeVersion, buildProfile, appBuildVersion, releaseChannel, initiatingActor, } = build;
|
|
192
192
|
const formatValue = (field) => field ? chalk_1.default.bold(field) : chalk_1.default.dim('Unknown');
|
|
193
193
|
const buildDate = new Date(updatedAt);
|
|
194
194
|
const maybeRuntimeVersion = runtimeVersion ? `Runtime: ${formatValue(runtimeVersion)}` : null;
|
|
@@ -204,6 +204,7 @@ function formatBuildChoice(build, expiryDate) {
|
|
|
204
204
|
.filter(it => it != null)
|
|
205
205
|
.join(', '),
|
|
206
206
|
`\tProfile: ${formatValue(buildProfile)}, Release channel: ${formatValue(releaseChannel)}`,
|
|
207
|
+
`\tAuthored by: ${formatValue(initiatingActor === null || initiatingActor === void 0 ? void 0 : initiatingActor.displayName)}`,
|
|
207
208
|
].join('\n');
|
|
208
209
|
return {
|
|
209
210
|
title,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Platform } from '@expo/eas-build-job';
|
|
2
|
+
import { Event } from '../analytics/events';
|
|
2
3
|
import { AndroidSubmissionConfigInput, IosSubmissionConfigInput, SubmissionFragment } from '../graphql/generated';
|
|
3
4
|
import { SubmissionContext } from './context';
|
|
4
5
|
export interface SubmissionInput<P extends Platform> {
|
|
@@ -6,11 +7,26 @@ export interface SubmissionInput<P extends Platform> {
|
|
|
6
7
|
submissionConfig: P extends Platform.ANDROID ? AndroidSubmissionConfigInput : IosSubmissionConfigInput;
|
|
7
8
|
buildId?: string;
|
|
8
9
|
}
|
|
9
|
-
|
|
10
|
+
interface AnalyticEvents {
|
|
11
|
+
attemptEvent: Event;
|
|
12
|
+
successEvent: Event;
|
|
13
|
+
failureEvent: Event;
|
|
14
|
+
}
|
|
15
|
+
export default abstract class BaseSubmitter<P extends Platform, ResolvedSourceOptions, SubmissionOptions> {
|
|
10
16
|
protected ctx: SubmissionContext<P>;
|
|
11
17
|
protected options: SubmissionOptions;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
18
|
+
protected sourceOptionResolver: {
|
|
19
|
+
[K in keyof ResolvedSourceOptions]: () => Promise<ResolvedSourceOptions[K]>;
|
|
20
|
+
};
|
|
21
|
+
protected sourceOptionAnalytics: Record<keyof ResolvedSourceOptions, AnalyticEvents>;
|
|
22
|
+
constructor(ctx: SubmissionContext<P>, options: SubmissionOptions, sourceOptionResolver: {
|
|
23
|
+
[K in keyof ResolvedSourceOptions]: () => Promise<ResolvedSourceOptions[K]>;
|
|
24
|
+
}, sourceOptionAnalytics: Record<keyof ResolvedSourceOptions, AnalyticEvents>);
|
|
25
|
+
private getSourceOptionsAsync;
|
|
26
|
+
submitAsync(): Promise<SubmissionFragment>;
|
|
27
|
+
abstract createSubmissionInputAsync(resolvedOptions: ResolvedSourceOptions): Promise<SubmissionInput<P>>;
|
|
28
|
+
private createSubmissionAsync;
|
|
29
|
+
private createSubmissionWithAnalyticsAsync;
|
|
15
30
|
protected abstract createPlatformSubmissionAsync(input: SubmissionInput<P>): Promise<SubmissionFragment>;
|
|
16
31
|
}
|
|
32
|
+
export {};
|
|
@@ -1,14 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
+
const common_1 = require("../analytics/common");
|
|
5
|
+
const events_1 = require("../analytics/events");
|
|
4
6
|
const AppPlatform_1 = require("../graphql/types/AppPlatform");
|
|
5
7
|
const log_1 = (0, tslib_1.__importDefault)(require("../log"));
|
|
6
8
|
const ora_1 = require("../ora");
|
|
7
9
|
const platform_1 = require("../platform");
|
|
8
10
|
class BaseSubmitter {
|
|
9
|
-
constructor(ctx, options) {
|
|
11
|
+
constructor(ctx, options, sourceOptionResolver, sourceOptionAnalytics) {
|
|
10
12
|
this.ctx = ctx;
|
|
11
13
|
this.options = options;
|
|
14
|
+
this.sourceOptionResolver = sourceOptionResolver;
|
|
15
|
+
this.sourceOptionAnalytics = sourceOptionAnalytics;
|
|
16
|
+
}
|
|
17
|
+
async getSourceOptionsAsync() {
|
|
18
|
+
const resolvedSourceOptions = {};
|
|
19
|
+
// Do not perform this in parallel as some of these require user interaction
|
|
20
|
+
for (const key in this.sourceOptionResolver) {
|
|
21
|
+
const sourceOptionKey = key;
|
|
22
|
+
const sourceOptionAnalytics = this.sourceOptionAnalytics[sourceOptionKey];
|
|
23
|
+
const sourceOption = await (0, common_1.withAnalyticsAsync)(async () => await this.sourceOptionResolver[sourceOptionKey](), {
|
|
24
|
+
attemptEvent: sourceOptionAnalytics.attemptEvent,
|
|
25
|
+
successEvent: sourceOptionAnalytics.successEvent,
|
|
26
|
+
failureEvent: sourceOptionAnalytics.failureEvent,
|
|
27
|
+
trackingCtx: this.ctx.trackingCtx,
|
|
28
|
+
});
|
|
29
|
+
resolvedSourceOptions[sourceOptionKey] = sourceOption;
|
|
30
|
+
}
|
|
31
|
+
return resolvedSourceOptions;
|
|
32
|
+
}
|
|
33
|
+
async submitAsync() {
|
|
34
|
+
const resolvedSourceOptions = await this.getSourceOptionsAsync();
|
|
35
|
+
const input = await this.createSubmissionInputAsync(resolvedSourceOptions);
|
|
36
|
+
return await this.createSubmissionWithAnalyticsAsync(input);
|
|
12
37
|
}
|
|
13
38
|
async createSubmissionAsync(submissionInput) {
|
|
14
39
|
log_1.default.addNewLineIfNone();
|
|
@@ -24,5 +49,13 @@ class BaseSubmitter {
|
|
|
24
49
|
throw err;
|
|
25
50
|
}
|
|
26
51
|
}
|
|
52
|
+
async createSubmissionWithAnalyticsAsync(submissionInput) {
|
|
53
|
+
return await (0, common_1.withAnalyticsAsync)(async () => this.createSubmissionAsync(submissionInput), {
|
|
54
|
+
attemptEvent: events_1.SubmissionEvent.SUBMIT_REQUEST_ATTEMPT,
|
|
55
|
+
successEvent: events_1.SubmissionEvent.SUBMIT_REQUEST_SUCCESS,
|
|
56
|
+
failureEvent: events_1.SubmissionEvent.SUBMIT_REQUEST_FAIL,
|
|
57
|
+
trackingCtx: this.ctx.trackingCtx,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
27
60
|
}
|
|
28
61
|
exports.default = BaseSubmitter;
|
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
import { Platform } from '@expo/eas-build-job';
|
|
2
2
|
import { AndroidSubmissionConfigInput, SubmissionFragment } from '../../graphql/generated';
|
|
3
|
-
import { ArchiveSource } from '../ArchiveSource';
|
|
3
|
+
import { Archive, ArchiveSource } from '../ArchiveSource';
|
|
4
4
|
import BaseSubmitter, { SubmissionInput } from '../BaseSubmitter';
|
|
5
|
+
import { SubmissionContext } from '../context';
|
|
5
6
|
import { AndroidPackageSource } from './AndroidPackageSource';
|
|
6
|
-
import { ServiceAccountSource } from './ServiceAccountSource';
|
|
7
|
+
import { ServiceAccountKeyResult, ServiceAccountSource } from './ServiceAccountSource';
|
|
7
8
|
export interface AndroidSubmissionOptions extends Pick<AndroidSubmissionConfigInput, 'track' | 'releaseStatus' | 'changesNotSentForReview'> {
|
|
8
9
|
projectId: string;
|
|
9
10
|
androidPackageSource: AndroidPackageSource;
|
|
10
11
|
archiveSource: ArchiveSource;
|
|
11
12
|
serviceAccountSource: ServiceAccountSource;
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
interface ResolvedSourceOptions {
|
|
15
|
+
archive: Archive;
|
|
16
|
+
serviceAccountKeyResult: ServiceAccountKeyResult;
|
|
17
|
+
}
|
|
18
|
+
export default class AndroidSubmitter extends BaseSubmitter<Platform.ANDROID, ResolvedSourceOptions, AndroidSubmissionOptions> {
|
|
19
|
+
constructor(ctx: SubmissionContext<Platform.ANDROID>, options: AndroidSubmissionOptions);
|
|
20
|
+
createSubmissionInputAsync(resolvedSourceOptions: ResolvedSourceOptions): Promise<SubmissionInput<Platform.ANDROID>>;
|
|
15
21
|
protected createPlatformSubmissionAsync({ projectId, submissionConfig, buildId, }: SubmissionInput<Platform.ANDROID>): Promise<SubmissionFragment>;
|
|
16
|
-
private
|
|
17
|
-
private formatSubmissionConfigAsync;
|
|
22
|
+
private formatSubmissionConfig;
|
|
18
23
|
private prepareSummaryData;
|
|
19
24
|
}
|
|
25
|
+
export {};
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
|
|
5
|
+
const events_1 = require("../../analytics/events");
|
|
5
6
|
const SubmissionMutation_1 = require("../../graphql/mutations/SubmissionMutation");
|
|
6
7
|
const formatFields_1 = (0, tslib_1.__importDefault)(require("../../utils/formatFields"));
|
|
7
8
|
const ArchiveSource_1 = require("../ArchiveSource");
|
|
@@ -10,16 +11,39 @@ const summary_1 = require("../utils/summary");
|
|
|
10
11
|
const AndroidPackageSource_1 = require("./AndroidPackageSource");
|
|
11
12
|
const ServiceAccountSource_1 = require("./ServiceAccountSource");
|
|
12
13
|
class AndroidSubmitter extends BaseSubmitter_1.default {
|
|
13
|
-
|
|
14
|
+
constructor(ctx, options) {
|
|
15
|
+
const sourceOptionsResolver = {
|
|
16
|
+
// eslint-disable-next-line async-protect/async-suffix
|
|
17
|
+
archive: async () => await (0, ArchiveSource_1.getArchiveAsync)(this.options.archiveSource),
|
|
18
|
+
// eslint-disable-next-line async-protect/async-suffix
|
|
19
|
+
serviceAccountKeyResult: async () => {
|
|
20
|
+
const androidPackage = await (0, AndroidPackageSource_1.getAndroidPackageAsync)(this.options.androidPackageSource);
|
|
21
|
+
return await (0, ServiceAccountSource_1.getServiceAccountKeyResultAsync)(this.ctx, this.options.serviceAccountSource, androidPackage);
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
const sourceOptionsAnalytics = {
|
|
25
|
+
archive: {
|
|
26
|
+
attemptEvent: events_1.SubmissionEvent.GATHER_ARCHIVE_ATTEMPT,
|
|
27
|
+
successEvent: events_1.SubmissionEvent.GATHER_ARCHIVE_SUCCESS,
|
|
28
|
+
failureEvent: events_1.SubmissionEvent.GATHER_ARCHIVE_FAIL,
|
|
29
|
+
},
|
|
30
|
+
serviceAccountKeyResult: {
|
|
31
|
+
attemptEvent: events_1.SubmissionEvent.GATHER_CREDENTIALS_ATTEMPT,
|
|
32
|
+
successEvent: events_1.SubmissionEvent.GATHER_CREDENTIALS_SUCCESS,
|
|
33
|
+
failureEvent: events_1.SubmissionEvent.GATHER_CREDENTIALS_FAIL,
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
super(ctx, options, sourceOptionsResolver, sourceOptionsAnalytics);
|
|
37
|
+
}
|
|
38
|
+
async createSubmissionInputAsync(resolvedSourceOptions) {
|
|
14
39
|
var _a;
|
|
15
|
-
const
|
|
16
|
-
const submissionConfig = await this.formatSubmissionConfigAsync(this.options, resolvedSourceOptions);
|
|
40
|
+
const submissionConfig = await this.formatSubmissionConfig(this.options, resolvedSourceOptions);
|
|
17
41
|
(0, summary_1.printSummary)(this.prepareSummaryData(this.options, resolvedSourceOptions), SummaryHumanReadableKeys);
|
|
18
|
-
return
|
|
42
|
+
return {
|
|
19
43
|
projectId: this.options.projectId,
|
|
20
44
|
submissionConfig,
|
|
21
45
|
buildId: (_a = resolvedSourceOptions.archive.build) === null || _a === void 0 ? void 0 : _a.id,
|
|
22
|
-
}
|
|
46
|
+
};
|
|
23
47
|
}
|
|
24
48
|
async createPlatformSubmissionAsync({ projectId, submissionConfig, buildId, }) {
|
|
25
49
|
return await SubmissionMutation_1.SubmissionMutation.createAndroidSubmissionAsync({
|
|
@@ -28,20 +52,9 @@ class AndroidSubmitter extends BaseSubmitter_1.default {
|
|
|
28
52
|
submittedBuildId: buildId,
|
|
29
53
|
});
|
|
30
54
|
}
|
|
31
|
-
|
|
32
|
-
const androidPackage = await (0, AndroidPackageSource_1.getAndroidPackageAsync)(this.options.androidPackageSource);
|
|
33
|
-
const archive = await (0, ArchiveSource_1.getArchiveAsync)(this.options.archiveSource);
|
|
34
|
-
const serviceAccountKeyResult = await (0, ServiceAccountSource_1.getServiceAccountKeyResultAsync)(this.ctx, this.options.serviceAccountSource, androidPackage);
|
|
35
|
-
return {
|
|
36
|
-
androidPackage,
|
|
37
|
-
archive,
|
|
38
|
-
serviceAccountKeyResult,
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
async formatSubmissionConfigAsync(options, { archive, androidPackage, serviceAccountKeyResult }) {
|
|
55
|
+
formatSubmissionConfig(options, { archive, serviceAccountKeyResult }) {
|
|
42
56
|
const { track, releaseStatus, changesNotSentForReview } = options;
|
|
43
57
|
return {
|
|
44
|
-
applicationIdentifier: androidPackage,
|
|
45
58
|
archiveUrl: archive.url,
|
|
46
59
|
track,
|
|
47
60
|
changesNotSentForReview,
|
|
@@ -49,12 +62,11 @@ class AndroidSubmitter extends BaseSubmitter_1.default {
|
|
|
49
62
|
...serviceAccountKeyResult.result,
|
|
50
63
|
};
|
|
51
64
|
}
|
|
52
|
-
prepareSummaryData(options, { archive,
|
|
65
|
+
prepareSummaryData(options, { archive, serviceAccountKeyResult }) {
|
|
53
66
|
const { projectId, track, releaseStatus, changesNotSentForReview } = options;
|
|
54
67
|
// structuring order affects table rows order
|
|
55
68
|
return {
|
|
56
69
|
projectId,
|
|
57
|
-
androidPackage,
|
|
58
70
|
track,
|
|
59
71
|
changesNotSentForReview: changesNotSentForReview !== null && changesNotSentForReview !== void 0 ? changesNotSentForReview : undefined,
|
|
60
72
|
releaseStatus: releaseStatus !== null && releaseStatus !== void 0 ? releaseStatus : undefined,
|
|
@@ -65,7 +77,6 @@ class AndroidSubmitter extends BaseSubmitter_1.default {
|
|
|
65
77
|
}
|
|
66
78
|
exports.default = AndroidSubmitter;
|
|
67
79
|
const SummaryHumanReadableKeys = {
|
|
68
|
-
androidPackage: 'Android package',
|
|
69
80
|
archivePath: 'Archive path',
|
|
70
81
|
archiveUrl: 'Download URL',
|
|
71
82
|
changesNotSentForReview: 'Changes not sent for a review',
|
|
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
|
|
6
6
|
const fs_extra_1 = (0, tslib_1.__importDefault)(require("fs-extra"));
|
|
7
7
|
const nullthrows_1 = (0, tslib_1.__importDefault)(require("nullthrows"));
|
|
8
|
-
const
|
|
8
|
+
const SetUpGoogleServiceAccountKey_1 = require("../../credentials/android/actions/SetUpGoogleServiceAccountKey");
|
|
9
9
|
const googleServiceAccountKey_1 = require("../../credentials/android/utils/googleServiceAccountKey");
|
|
10
10
|
const log_1 = (0, tslib_1.__importStar)(require("../../log"));
|
|
11
11
|
const prompts_1 = require("../../prompts");
|
|
@@ -56,7 +56,7 @@ async function getServiceAccountFromCredentialsServiceAsync(ctx, androidApplicat
|
|
|
56
56
|
projectName: ctx.projectName,
|
|
57
57
|
androidApplicationIdentifier,
|
|
58
58
|
};
|
|
59
|
-
const setupGoogleServiceAccountKeyAction = new
|
|
59
|
+
const setupGoogleServiceAccountKeyAction = new SetUpGoogleServiceAccountKey_1.SetUpGoogleServiceAccountKey(appLookupParams);
|
|
60
60
|
const androidAppCredentials = await setupGoogleServiceAccountKeyAction.runAsync(ctx.credentialsCtx);
|
|
61
61
|
const googleServiceAccountKey = (0, nullthrows_1.default)(androidAppCredentials.googleServiceAccountKeyForSubmissions, 'Credentials Service must provide a valid GoogleServiceAccountKey');
|
|
62
62
|
return {
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { ExpoConfig } from '@expo/config';
|
|
2
2
|
import { Platform } from '@expo/eas-build-job';
|
|
3
3
|
import { SubmitProfile } from '@expo/eas-json';
|
|
4
|
+
import { TrackingContext } from '../analytics/common';
|
|
4
5
|
import { CredentialsContext } from '../credentials/context';
|
|
5
6
|
import { Actor } from '../user/User';
|
|
6
7
|
export interface SubmissionContext<T extends Platform> {
|
|
7
8
|
accountName: string;
|
|
8
9
|
archiveFlags: SubmitArchiveFlags;
|
|
9
10
|
credentialsCtx: CredentialsContext;
|
|
11
|
+
trackingCtx: TrackingContext;
|
|
10
12
|
exp: ExpoConfig;
|
|
11
13
|
nonInteractive: boolean;
|
|
12
14
|
platform: T;
|