eas-cli 0.34.0 → 0.36.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/README.md +27 -27
  2. package/build/analytics/common.d.ts +8 -0
  3. package/build/analytics/common.js +19 -0
  4. package/build/analytics/events.d.ts +43 -0
  5. package/build/analytics/events.js +51 -0
  6. package/build/{analytics.d.ts → analytics/rudderstackClient.d.ts} +0 -0
  7. package/build/{analytics.js → analytics/rudderstackClient.js} +2 -2
  8. package/build/api.js +3 -3
  9. package/build/build/build.js +18 -27
  10. package/build/build/context.d.ts +1 -1
  11. package/build/build/context.js +2 -2
  12. package/build/build/ios/credentials.js +3 -3
  13. package/build/build/local.js +18 -27
  14. package/build/build/types.d.ts +0 -1
  15. package/build/build/utils/devClient.js +6 -3
  16. package/build/build/utils/formatBuild.js +1 -9
  17. package/build/build/utils/url.js +1 -1
  18. package/build/commandUtils/EasCommand.js +4 -4
  19. package/build/commands/build/index.js +14 -5
  20. package/build/commands/secret/delete.js +1 -1
  21. package/build/credentials/android/AndroidCredentialsProvider.js +2 -2
  22. package/build/credentials/android/actions/RemoveFcm.js +4 -4
  23. package/build/credentials/android/actions/{SetupBuildCredentials.d.ts → SetUpBuildCredentials.d.ts} +1 -1
  24. package/build/credentials/android/actions/{SetupBuildCredentials.js → SetUpBuildCredentials.js} +3 -3
  25. package/build/credentials/android/actions/{SetupBuildCredentialsFromCredentialsJson.d.ts → SetUpBuildCredentialsFromCredentialsJson.d.ts} +1 -1
  26. package/build/credentials/android/actions/{SetupBuildCredentialsFromCredentialsJson.js → SetUpBuildCredentialsFromCredentialsJson.js} +3 -3
  27. package/build/credentials/android/actions/{SetupGoogleServiceAccountKey.d.ts → SetUpGoogleServiceAccountKey.d.ts} +1 -1
  28. package/build/credentials/android/actions/{SetupGoogleServiceAccountKey.js → SetUpGoogleServiceAccountKey.js} +3 -3
  29. package/build/credentials/android/utils/keystore.js +67 -32
  30. package/build/credentials/errors.d.ts +4 -0
  31. package/build/credentials/errors.js +8 -1
  32. package/build/credentials/ios/IosCredentialsProvider.js +4 -4
  33. package/build/credentials/ios/actions/AscApiKeyUtils.d.ts +17 -1
  34. package/build/credentials/ios/actions/AscApiKeyUtils.js +158 -24
  35. package/build/credentials/ios/actions/AssignAscApiKey.d.ts +9 -0
  36. package/build/credentials/ios/actions/AssignAscApiKey.js +29 -0
  37. package/build/credentials/ios/actions/CreateAscApiKey.d.ts +9 -0
  38. package/build/credentials/ios/actions/CreateAscApiKey.js +21 -0
  39. package/build/credentials/ios/actions/DistributionCertificateUtils.js +1 -1
  40. package/build/credentials/ios/actions/PushKeyUtils.js +1 -1
  41. package/build/credentials/ios/actions/RemoveAscApiKey.d.ts +14 -0
  42. package/build/credentials/ios/actions/RemoveAscApiKey.js +55 -0
  43. package/build/credentials/ios/actions/{SetupAdhocProvisioningProfile.d.ts → SetUpAdhocProvisioningProfile.d.ts} +1 -1
  44. package/build/credentials/ios/actions/{SetupAdhocProvisioningProfile.js → SetUpAdhocProvisioningProfile.js} +5 -5
  45. package/build/credentials/ios/actions/SetUpAscApiKey.d.ts +21 -0
  46. package/build/credentials/ios/actions/SetUpAscApiKey.js +114 -0
  47. package/build/credentials/ios/actions/{SetupBuildCredentials.d.ts → SetUpBuildCredentials.d.ts} +1 -1
  48. package/build/credentials/ios/actions/{SetupBuildCredentials.js → SetUpBuildCredentials.js} +5 -5
  49. package/build/credentials/ios/actions/{SetupBuildCredentialsFromCredentialsJson.d.ts → SetUpBuildCredentialsFromCredentialsJson.d.ts} +1 -1
  50. package/build/credentials/ios/actions/{SetupBuildCredentialsFromCredentialsJson.js → SetUpBuildCredentialsFromCredentialsJson.js} +5 -5
  51. package/build/credentials/ios/actions/{SetupDistributionCertificate.d.ts → SetUpDistributionCertificate.d.ts} +1 -1
  52. package/build/credentials/ios/actions/{SetupDistributionCertificate.js → SetUpDistributionCertificate.js} +3 -3
  53. package/build/credentials/ios/actions/{SetupInternalProvisioningProfile.d.ts → SetUpInternalProvisioningProfile.d.ts} +1 -1
  54. package/build/credentials/ios/actions/{SetupInternalProvisioningProfile.js → SetUpInternalProvisioningProfile.js} +7 -7
  55. package/build/credentials/ios/actions/{SetupProvisioningProfile.d.ts → SetUpProvisioningProfile.d.ts} +1 -1
  56. package/build/credentials/ios/actions/{SetupProvisioningProfile.js → SetUpProvisioningProfile.js} +5 -5
  57. package/build/credentials/ios/actions/{SetupPushKey.d.ts → SetUpPushKey.d.ts} +1 -1
  58. package/build/credentials/ios/actions/{SetupPushKey.js → SetUpPushKey.js} +3 -3
  59. package/build/credentials/ios/actions/SetUpSubmissionCredentials.d.ts +10 -0
  60. package/build/credentials/ios/actions/SetUpSubmissionCredentials.js +53 -0
  61. package/build/credentials/ios/actions/{SetupTargetBuildCredentials.d.ts → SetUpTargetBuildCredentials.d.ts} +1 -1
  62. package/build/credentials/ios/actions/{SetupTargetBuildCredentials.js → SetUpTargetBuildCredentials.js} +10 -10
  63. package/build/credentials/ios/actions/{SetupTargetBuildCredentialsFromCredentialsJson.d.ts → SetUpTargetBuildCredentialsFromCredentialsJson.d.ts} +1 -1
  64. package/build/credentials/ios/actions/{SetupTargetBuildCredentialsFromCredentialsJson.js → SetUpTargetBuildCredentialsFromCredentialsJson.js} +3 -3
  65. package/build/credentials/ios/api/GraphqlClient.d.ts +8 -2
  66. package/build/credentials/ios/api/GraphqlClient.js +74 -2
  67. package/build/credentials/ios/api/graphql/mutations/AppStoreConnectApiKeyMutation.d.ts +5 -0
  68. package/build/credentials/ios/api/graphql/mutations/AppStoreConnectApiKeyMutation.js +54 -0
  69. package/build/credentials/ios/api/graphql/mutations/IosAppCredentialsMutation.d.ts +1 -0
  70. package/build/credentials/ios/api/graphql/mutations/IosAppCredentialsMutation.js +25 -0
  71. package/build/credentials/ios/api/graphql/queries/AppStoreConnectApiKeyQuery.d.ts +4 -0
  72. package/build/credentials/ios/api/graphql/queries/AppStoreConnectApiKeyQuery.js +33 -0
  73. package/build/credentials/ios/appstore/AppStoreApi.d.ts +1 -1
  74. package/build/credentials/ios/appstore/Credentials.types.d.ts +1 -0
  75. package/build/credentials/ios/appstore/ascApiKey.d.ts +1 -1
  76. package/build/credentials/ios/appstore/ascApiKey.js +11 -1
  77. package/build/credentials/ios/appstore/entitlements.d.ts +2 -2
  78. package/build/credentials/ios/appstore/entitlements.js +20 -10
  79. package/build/credentials/ios/credentials.d.ts +2 -1
  80. package/build/credentials/ios/credentials.js +7 -2
  81. package/build/credentials/ios/utils/printCredentials.js +30 -1
  82. package/build/credentials/ios/validators/validateAscApiKey.d.ts +5 -0
  83. package/build/credentials/ios/validators/validateAscApiKey.js +21 -0
  84. package/build/credentials/manager/Actions.d.ts +20 -15
  85. package/build/credentials/manager/Actions.js +20 -15
  86. package/build/credentials/manager/AndroidActions.js +6 -6
  87. package/build/credentials/manager/IosActions.d.ts +1 -0
  88. package/build/credentials/manager/IosActions.js +40 -5
  89. package/build/credentials/manager/ManageAndroid.js +6 -6
  90. package/build/credentials/manager/ManageIos.js +56 -17
  91. package/build/credentials/utils/promptForCredentials.d.ts +2 -1
  92. package/build/credentials/utils/promptForCredentials.js +3 -2
  93. package/build/graphql/client.js +1 -1
  94. package/build/graphql/generated.d.ts +233 -82
  95. package/build/graphql/mutations/KeystoreGenerationUrlMutation.d.ts +3 -0
  96. package/build/graphql/mutations/KeystoreGenerationUrlMutation.js +23 -0
  97. package/build/graphql/types/Build.js +1 -6
  98. package/build/graphql/types/credentials/AppStoreConnectApiKey.d.ts +1 -0
  99. package/build/graphql/types/credentials/AppStoreConnectApiKey.js +23 -0
  100. package/build/graphql/types/credentials/IosAppCredentials.js +6 -0
  101. package/build/submit/ArchiveSource.js +2 -1
  102. package/build/submit/BaseSubmitter.d.ts +20 -4
  103. package/build/submit/BaseSubmitter.js +34 -1
  104. package/build/submit/android/AndroidSubmitter.d.ts +12 -6
  105. package/build/submit/android/AndroidSubmitter.js +31 -20
  106. package/build/submit/android/ServiceAccountSource.js +2 -2
  107. package/build/submit/context.d.ts +2 -0
  108. package/build/submit/context.js +14 -0
  109. package/build/submit/ios/AppSpecificPasswordSource.d.ts +9 -6
  110. package/build/submit/ios/AppSpecificPasswordSource.js +42 -20
  111. package/build/submit/ios/AscApiKeySource.d.ts +9 -3
  112. package/build/submit/ios/AscApiKeySource.js +10 -10
  113. package/build/submit/ios/CredentialsServiceSource.d.ts +15 -0
  114. package/build/submit/ios/CredentialsServiceSource.js +52 -0
  115. package/build/submit/ios/IosSubmitCommand.d.ts +1 -2
  116. package/build/submit/ios/IosSubmitCommand.js +24 -53
  117. package/build/submit/ios/IosSubmitter.d.ts +20 -7
  118. package/build/submit/ios/IosSubmitter.js +79 -43
  119. package/build/submit/submit.js +13 -4
  120. package/build/submit/utils/errors.js +2 -0
  121. package/build/user/User.js +1 -1
  122. package/oclif.manifest.json +1 -1
  123. package/package.json +6 -6
  124. package/build/build/utils/analytics.d.ts +0 -22
  125. package/build/build/utils/analytics.js +0 -28
@@ -1,7 +1,7 @@
1
1
  import { AppleDistributionCertificate, AppleDistributionCertificateFragment, IosDistributionType } from '../../../graphql/generated';
2
2
  import { CredentialsContext } from '../../context';
3
3
  import { AppLookupParams } from '../api/GraphqlClient';
4
- export declare class SetupDistributionCertificate {
4
+ export declare class SetUpDistributionCertificate {
5
5
  private app;
6
6
  private distributionType;
7
7
  private validDistCerts?;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SetupDistributionCertificate = void 0;
3
+ exports.SetUpDistributionCertificate = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const assert_1 = (0, tslib_1.__importDefault)(require("assert"));
6
6
  const log_1 = (0, tslib_1.__importDefault)(require("../../../log"));
@@ -12,7 +12,7 @@ const errors_2 = require("../errors");
12
12
  const AppleTeamUtils_1 = require("./AppleTeamUtils");
13
13
  const CreateDistributionCertificate_1 = require("./CreateDistributionCertificate");
14
14
  const DistributionCertificateUtils_1 = require("./DistributionCertificateUtils");
15
- class SetupDistributionCertificate {
15
+ class SetUpDistributionCertificate {
16
16
  constructor(app, distributionType) {
17
17
  this.app = app;
18
18
  this.distributionType = distributionType;
@@ -138,4 +138,4 @@ class SetupDistributionCertificate {
138
138
  return this.validDistCerts;
139
139
  }
140
140
  }
141
- exports.SetupDistributionCertificate = SetupDistributionCertificate;
141
+ exports.SetUpDistributionCertificate = SetUpDistributionCertificate;
@@ -8,7 +8,7 @@ import { AppLookupParams } from '../api/GraphqlClient';
8
8
  * to choose if they want to set up an adhoc or universal distribution provisioning profile. Otherwise, always
9
9
  * set up an adhoc provisioning profile.
10
10
  */
11
- export declare class SetupInternalProvisioningProfile {
11
+ export declare class SetUpInternalProvisioningProfile {
12
12
  private app;
13
13
  constructor(app: AppLookupParams);
14
14
  runAsync(ctx: CredentialsContext): Promise<IosAppBuildCredentialsFragment>;
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SetupInternalProvisioningProfile = void 0;
3
+ exports.SetUpInternalProvisioningProfile = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const generated_1 = require("../../../graphql/generated");
6
6
  const log_1 = (0, tslib_1.__importDefault)(require("../../../log"));
7
7
  const prompts_1 = require("../../../prompts");
8
8
  const BuildCredentialsUtils_1 = require("./BuildCredentialsUtils");
9
- const SetupAdhocProvisioningProfile_1 = require("./SetupAdhocProvisioningProfile");
10
- const SetupProvisioningProfile_1 = require("./SetupProvisioningProfile");
9
+ const SetUpAdhocProvisioningProfile_1 = require("./SetUpAdhocProvisioningProfile");
10
+ const SetUpProvisioningProfile_1 = require("./SetUpProvisioningProfile");
11
11
  /**
12
12
  * It's used when setting up credentials for internal distribution but `enterpriseProvisioning` is not set.
13
13
  *
@@ -15,7 +15,7 @@ const SetupProvisioningProfile_1 = require("./SetupProvisioningProfile");
15
15
  * to choose if they want to set up an adhoc or universal distribution provisioning profile. Otherwise, always
16
16
  * set up an adhoc provisioning profile.
17
17
  */
18
- class SetupInternalProvisioningProfile {
18
+ class SetUpInternalProvisioningProfile {
19
19
  constructor(app) {
20
20
  this.app = app;
21
21
  }
@@ -70,10 +70,10 @@ class SetupInternalProvisioningProfile {
70
70
  }
71
71
  }
72
72
  async setupAdhocProvisioningProfileAsync(ctx) {
73
- return await new SetupAdhocProvisioningProfile_1.SetupAdhocProvisioningProfile(this.app).runAsync(ctx);
73
+ return await new SetUpAdhocProvisioningProfile_1.SetUpAdhocProvisioningProfile(this.app).runAsync(ctx);
74
74
  }
75
75
  async setupUniversalProvisioningProfileAsync(ctx) {
76
- return await new SetupProvisioningProfile_1.SetupProvisioningProfile(this.app, generated_1.IosDistributionType.Enterprise).runAsync(ctx);
76
+ return await new SetUpProvisioningProfile_1.SetUpProvisioningProfile(this.app, generated_1.IosDistributionType.Enterprise).runAsync(ctx);
77
77
  }
78
78
  async askForDistributionTypeAndSetupAsync(ctx, message) {
79
79
  const { distributionType } = await (0, prompts_1.promptAsync)({
@@ -93,4 +93,4 @@ class SetupInternalProvisioningProfile {
93
93
  }
94
94
  }
95
95
  }
96
- exports.SetupInternalProvisioningProfile = SetupInternalProvisioningProfile;
96
+ exports.SetUpInternalProvisioningProfile = SetUpInternalProvisioningProfile;
@@ -4,7 +4,7 @@ import { AppLookupParams } from '../api/GraphqlClient';
4
4
  /**
5
5
  * Sets up either APP_STORE or ENTERPRISE provisioning profiles
6
6
  */
7
- export declare class SetupProvisioningProfile {
7
+ export declare class SetUpProvisioningProfile {
8
8
  private app;
9
9
  private distributionType;
10
10
  constructor(app: AppLookupParams, distributionType: IosDistributionType);
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SetupProvisioningProfile = void 0;
3
+ exports.SetUpProvisioningProfile = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const nullthrows_1 = (0, tslib_1.__importDefault)(require("nullthrows"));
6
6
  const prompts_1 = require("../../../prompts");
@@ -10,11 +10,11 @@ const BuildCredentialsUtils_1 = require("./BuildCredentialsUtils");
10
10
  const ConfigureProvisioningProfile_1 = require("./ConfigureProvisioningProfile");
11
11
  const CreateProvisioningProfile_1 = require("./CreateProvisioningProfile");
12
12
  const ProvisioningProfileUtils_1 = require("./ProvisioningProfileUtils");
13
- const SetupDistributionCertificate_1 = require("./SetupDistributionCertificate");
13
+ const SetUpDistributionCertificate_1 = require("./SetUpDistributionCertificate");
14
14
  /**
15
15
  * Sets up either APP_STORE or ENTERPRISE provisioning profiles
16
16
  */
17
- class SetupProvisioningProfile {
17
+ class SetUpProvisioningProfile {
18
18
  constructor(app, distributionType) {
19
19
  this.app = app;
20
20
  this.distributionType = distributionType;
@@ -42,7 +42,7 @@ class SetupProvisioningProfile {
42
42
  return await (0, BuildCredentialsUtils_1.assignBuildCredentialsAsync)(ctx, this.app, this.distributionType, distCert, updatedProvisioningProfile);
43
43
  }
44
44
  async runAsync(ctx) {
45
- const distCert = await new SetupDistributionCertificate_1.SetupDistributionCertificate(this.app, this.distributionType).runAsync(ctx);
45
+ const distCert = await new SetUpDistributionCertificate_1.SetUpDistributionCertificate(this.app, this.distributionType).runAsync(ctx);
46
46
  const areBuildCredentialsSetup = await this.areBuildCredentialsSetupAsync(ctx);
47
47
  if (areBuildCredentialsSetup) {
48
48
  return (0, nullthrows_1.default)(await (0, BuildCredentialsUtils_1.getBuildCredentialsAsync)(ctx, this.app, this.distributionType));
@@ -82,4 +82,4 @@ class SetupProvisioningProfile {
82
82
  : currentProfile.provisioningProfile === profile.provisioningProfile)) !== null && _a !== void 0 ? _a : null);
83
83
  }
84
84
  }
85
- exports.SetupProvisioningProfile = SetupProvisioningProfile;
85
+ exports.SetUpProvisioningProfile = SetUpProvisioningProfile;
@@ -1,7 +1,7 @@
1
1
  import { CommonIosAppCredentialsFragment } from '../../../graphql/generated';
2
2
  import { CredentialsContext } from '../../context';
3
3
  import { AppLookupParams } from '../api/GraphqlClient';
4
- export declare class SetupPushKey {
4
+ export declare class SetUpPushKey {
5
5
  private app;
6
6
  constructor(app: AppLookupParams);
7
7
  isPushKeySetupAsync(ctx: CredentialsContext): Promise<boolean>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SetupPushKey = void 0;
3
+ exports.SetUpPushKey = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const assert_1 = (0, tslib_1.__importDefault)(require("assert"));
6
6
  const nullthrows_1 = (0, tslib_1.__importDefault)(require("nullthrows"));
@@ -9,7 +9,7 @@ const prompts_1 = require("../../../prompts");
9
9
  const AssignPushKey_1 = require("./AssignPushKey");
10
10
  const CreatePushKey_1 = require("./CreatePushKey");
11
11
  const PushKeyUtils_1 = require("./PushKeyUtils");
12
- class SetupPushKey {
12
+ class SetUpPushKey {
13
13
  constructor(app) {
14
14
  this.app = app;
15
15
  }
@@ -74,4 +74,4 @@ class SetupPushKey {
74
74
  }
75
75
  }
76
76
  }
77
- exports.SetupPushKey = SetupPushKey;
77
+ exports.SetUpPushKey = SetUpPushKey;
@@ -0,0 +1,10 @@
1
+ import { CommonIosAppCredentialsFragment } from '../../../graphql/generated';
2
+ import { CredentialsContext } from '../../context';
3
+ import { AppLookupParams } from '../api/GraphqlClient';
4
+ export declare const PROMPT_FOR_APP_SPECIFIC_PASSWORD = "PROMPT_FOR_APP_SPECIFIC_PASSWORD";
5
+ export declare class SetUpSubmissionCredentials {
6
+ private setupAscApiKeyAction;
7
+ constructor(app: AppLookupParams);
8
+ runAsync(ctx: CredentialsContext): Promise<CommonIosAppCredentialsFragment | string>;
9
+ promptForAppSpecificPasswordAsync(): Promise<string>;
10
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SetUpSubmissionCredentials = exports.PROMPT_FOR_APP_SPECIFIC_PASSWORD = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
6
+ const nullthrows_1 = (0, tslib_1.__importDefault)(require("nullthrows"));
7
+ const wrap_ansi_1 = (0, tslib_1.__importDefault)(require("wrap-ansi"));
8
+ const log_1 = (0, tslib_1.__importStar)(require("../../../log"));
9
+ const prompts_1 = require("../../../prompts");
10
+ const errors_1 = require("../../errors");
11
+ const AscApiKeyUtils_1 = require("./AscApiKeyUtils");
12
+ const SetUpAscApiKey_1 = require("./SetUpAscApiKey");
13
+ exports.PROMPT_FOR_APP_SPECIFIC_PASSWORD = 'PROMPT_FOR_APP_SPECIFIC_PASSWORD';
14
+ class SetUpSubmissionCredentials {
15
+ constructor(app) {
16
+ this.setupAscApiKeyAction = new SetUpAscApiKey_1.SetUpAscApiKey(app, AscApiKeyUtils_1.AppStoreApiKeyPurpose.SUBMISSION_SERVICE);
17
+ // Add this unrelated choice to ASC API Key setup for legacy purposes -- we will deprecate it soon
18
+ this.setupAscApiKeyAction.choices = this.setupAscApiKeyAction.choices.concat({
19
+ title: '[Enter an App Specific Password]',
20
+ value: exports.PROMPT_FOR_APP_SPECIFIC_PASSWORD,
21
+ });
22
+ }
23
+ async runAsync(ctx) {
24
+ try {
25
+ const iosAppCredentials = await this.setupAscApiKeyAction.runAsync(ctx);
26
+ const { keyIdentifier, name } = (0, nullthrows_1.default)(iosAppCredentials.appStoreConnectApiKeyForSubmissions, 'ASC API Key must be defined for EAS Submit');
27
+ log_1.default.log(`Using API Key ID: ${keyIdentifier}${name ? ` (${name})` : ''}`);
28
+ return iosAppCredentials;
29
+ }
30
+ catch (e) {
31
+ if (e instanceof errors_1.UnsupportedCredentialsChoiceError) {
32
+ if (e.choice === exports.PROMPT_FOR_APP_SPECIFIC_PASSWORD) {
33
+ return await this.promptForAppSpecificPasswordAsync();
34
+ }
35
+ }
36
+ throw e;
37
+ }
38
+ }
39
+ async promptForAppSpecificPasswordAsync() {
40
+ log_1.default.addNewLineIfNone();
41
+ log_1.default.log(`Please enter your Apple app-specific password.`);
42
+ log_1.default.log((0, log_1.learnMore)('https://expo.fyi/apple-app-specific-password'));
43
+ log_1.default.warn((0, wrap_ansi_1.default)(`This option will be deprecated soon. You will still be able to provide your password with the ${chalk_1.default.bold('EXPO_APPLE_APP_SPECIFIC_PASSWORD')} environment variable.`, process.stdout.columns || 80));
44
+ const { appSpecificPassword } = await (0, prompts_1.promptAsync)({
45
+ name: 'appSpecificPassword',
46
+ message: 'Your Apple app-specific password:',
47
+ type: 'password',
48
+ validate: (val) => val !== '' || 'Apple app-specific password cannot be empty!',
49
+ });
50
+ return appSpecificPassword;
51
+ }
52
+ }
53
+ exports.SetUpSubmissionCredentials = SetUpSubmissionCredentials;
@@ -9,7 +9,7 @@ interface Options {
9
9
  enterpriseProvisioning?: IosEnterpriseProvisioning;
10
10
  iosCapabilitiesOptions?: IosCapabilitiesOptions;
11
11
  }
12
- export declare class SetupTargetBuildCredentials {
12
+ export declare class SetUpTargetBuildCredentials {
13
13
  private options;
14
14
  constructor(options: Options);
15
15
  runAsync(ctx: CredentialsContext): Promise<IosAppBuildCredentialsFragment>;
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SetupTargetBuildCredentials = void 0;
3
+ exports.SetUpTargetBuildCredentials = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const generated_1 = require("../../../graphql/generated");
6
6
  const log_1 = (0, tslib_1.__importDefault)(require("../../../log"));
7
- const SetupAdhocProvisioningProfile_1 = require("./SetupAdhocProvisioningProfile");
8
- const SetupInternalProvisioningProfile_1 = require("./SetupInternalProvisioningProfile");
9
- const SetupProvisioningProfile_1 = require("./SetupProvisioningProfile");
10
- class SetupTargetBuildCredentials {
7
+ const SetUpAdhocProvisioningProfile_1 = require("./SetUpAdhocProvisioningProfile");
8
+ const SetUpInternalProvisioningProfile_1 = require("./SetUpInternalProvisioningProfile");
9
+ const SetUpProvisioningProfile_1 = require("./SetUpProvisioningProfile");
10
+ class SetUpTargetBuildCredentials {
11
11
  constructor(options) {
12
12
  this.options = options;
13
13
  }
@@ -33,18 +33,18 @@ class SetupTargetBuildCredentials {
33
33
  const { app, distribution, enterpriseProvisioning } = this.options;
34
34
  if (distribution === 'internal') {
35
35
  if (enterpriseProvisioning === 'adhoc') {
36
- return await new SetupAdhocProvisioningProfile_1.SetupAdhocProvisioningProfile(app).runAsync(ctx);
36
+ return await new SetUpAdhocProvisioningProfile_1.SetUpAdhocProvisioningProfile(app).runAsync(ctx);
37
37
  }
38
38
  else if (enterpriseProvisioning === 'universal') {
39
- return await new SetupProvisioningProfile_1.SetupProvisioningProfile(app, generated_1.IosDistributionType.Enterprise).runAsync(ctx);
39
+ return await new SetUpProvisioningProfile_1.SetUpProvisioningProfile(app, generated_1.IosDistributionType.Enterprise).runAsync(ctx);
40
40
  }
41
41
  else {
42
- return await new SetupInternalProvisioningProfile_1.SetupInternalProvisioningProfile(app).runAsync(ctx);
42
+ return await new SetUpInternalProvisioningProfile_1.SetUpInternalProvisioningProfile(app).runAsync(ctx);
43
43
  }
44
44
  }
45
45
  else {
46
- return await new SetupProvisioningProfile_1.SetupProvisioningProfile(app, generated_1.IosDistributionType.AppStore).runAsync(ctx);
46
+ return await new SetUpProvisioningProfile_1.SetUpProvisioningProfile(app, generated_1.IosDistributionType.AppStore).runAsync(ctx);
47
47
  }
48
48
  }
49
49
  }
50
- exports.SetupTargetBuildCredentials = SetupTargetBuildCredentials;
50
+ exports.SetUpTargetBuildCredentials = SetUpTargetBuildCredentials;
@@ -2,7 +2,7 @@ import { AppleDistributionCertificateFragment, AppleProvisioningProfileFragment,
2
2
  import { CredentialsContext } from '../../context';
3
3
  import { IosTargetCredentials } from '../../credentialsJson/types';
4
4
  import { AppLookupParams } from '../api/GraphqlClient';
5
- export declare class SetupTargetBuildCredentialsFromCredentialsJson {
5
+ export declare class SetUpTargetBuildCredentialsFromCredentialsJson {
6
6
  private app;
7
7
  private distributionType;
8
8
  private targetCredentials;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SetupTargetBuildCredentialsFromCredentialsJson = void 0;
3
+ exports.SetUpTargetBuildCredentialsFromCredentialsJson = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
6
6
  const nullthrows_1 = (0, tslib_1.__importDefault)(require("nullthrows"));
@@ -9,7 +9,7 @@ const prompts_1 = require("../../../prompts");
9
9
  const printCredentials_1 = require("../utils/printCredentials");
10
10
  const provisioningProfile_1 = require("../utils/provisioningProfile");
11
11
  const BuildCredentialsUtils_1 = require("./BuildCredentialsUtils");
12
- class SetupTargetBuildCredentialsFromCredentialsJson {
12
+ class SetUpTargetBuildCredentialsFromCredentialsJson {
13
13
  constructor(app, distributionType, targetCredentials) {
14
14
  this.app = app;
15
15
  this.distributionType = distributionType;
@@ -101,7 +101,7 @@ class SetupTargetBuildCredentialsFromCredentialsJson {
101
101
  });
102
102
  }
103
103
  }
104
- exports.SetupTargetBuildCredentialsFromCredentialsJson = SetupTargetBuildCredentialsFromCredentialsJson;
104
+ exports.SetUpTargetBuildCredentialsFromCredentialsJson = SetUpTargetBuildCredentialsFromCredentialsJson;
105
105
  function displaySingleTargetProjectCredentials(app, buildCredentials) {
106
106
  const targetName = app.projectName;
107
107
  (0, printCredentials_1.displayProjectCredentials)(app, { [targetName]: buildCredentials }, [
@@ -1,6 +1,7 @@
1
- import { AppleAppIdentifierFragment, AppleDeviceFragment, AppleDistributionCertificateFragment, ApplePushKeyFragment, AppleTeamFragment, CommonIosAppCredentialsFragment, IosAppBuildCredentialsFragment, IosDistributionType } from '../../../graphql/generated';
1
+ import { AppStoreConnectApiKeyFragment, AppleAppIdentifierFragment, AppleDeviceFragment, AppleDistributionCertificateFragment, ApplePushKeyFragment, AppleTeamFragment, CommonIosAppCredentialsFragment, IosAppBuildCredentialsFragment, IosDistributionType } from '../../../graphql/generated';
2
2
  import { Account } from '../../../user/Account';
3
3
  import { DistributionCertificate, PushKey } from '../appstore/Credentials.types';
4
+ import { MinimalAscApiKey } from '../credentials';
4
5
  import { AppleDistributionCertificateMutationResult } from './graphql/mutations/AppleDistributionCertificateMutation';
5
6
  import { AppleProvisioningProfileMutationResult } from './graphql/mutations/AppleProvisioningProfileMutation';
6
7
  import { AppleProvisioningProfileQueryResult } from './graphql/queries/AppleProvisioningProfileQuery';
@@ -24,8 +25,9 @@ export declare function getIosAppCredentialsWithCommonFieldsAsync(appLookupParam
24
25
  export declare function createOrGetIosAppCredentialsWithCommonFieldsAsync(appLookupParams: AppLookupParams, { appleTeam, }: {
25
26
  appleTeam?: AppleTeamFragment;
26
27
  }): Promise<CommonIosAppCredentialsFragment>;
27
- export declare function updateIosAppCredentialsAsync(appCredentials: CommonIosAppCredentialsFragment, { applePushKeyId, }: {
28
+ export declare function updateIosAppCredentialsAsync(appCredentials: CommonIosAppCredentialsFragment, { applePushKeyId, ascApiKeyIdForSubmissions, }: {
28
29
  applePushKeyId?: string;
30
+ ascApiKeyIdForSubmissions?: string;
29
31
  }): Promise<CommonIosAppCredentialsFragment>;
30
32
  export declare function createOrGetExistingAppleTeamAsync(account: Account, { appleTeamIdentifier, appleTeamName }: {
31
33
  appleTeamIdentifier: string;
@@ -57,3 +59,7 @@ export declare function createPushKeyAsync(account: Account, pushKey: PushKey):
57
59
  export declare function getPushKeysForAccountAsync(account: Account): Promise<ApplePushKeyFragment[]>;
58
60
  export declare function getPushKeyForAppAsync(appLookupParams: AppLookupParams): Promise<ApplePushKeyFragment | null>;
59
61
  export declare function deletePushKeyAsync(pushKeyId: string): Promise<void>;
62
+ export declare function createAscApiKeyAsync(account: Account, ascApiKey: MinimalAscApiKey): Promise<AppStoreConnectApiKeyFragment>;
63
+ export declare function getAscApiKeysForAccountAsync(account: Account): Promise<AppStoreConnectApiKeyFragment[]>;
64
+ export declare function getAscApiKeyForAppSubmissionsAsync(appLookupParams: AppLookupParams): Promise<AppStoreConnectApiKeyFragment | null>;
65
+ export declare function deleteAscApiKeyAsync(ascApiKeyId: string): Promise<void>;
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deletePushKeyAsync = exports.getPushKeyForAppAsync = exports.getPushKeysForAccountAsync = exports.createPushKeyAsync = exports.deleteDistributionCertificateAsync = exports.createDistributionCertificateAsync = exports.getDistributionCertificatesForAccountAsync = exports.getDistributionCertificateForAppAsync = exports.deleteProvisioningProfilesAsync = exports.updateProvisioningProfileAsync = exports.getProvisioningProfileAsync = exports.createProvisioningProfileAsync = exports.getDevicesForAppleTeamAsync = exports.createOrGetExistingAppleAppIdentifierAsync = exports.createOrGetExistingAppleTeamAsync = exports.updateIosAppCredentialsAsync = exports.createOrGetIosAppCredentialsWithCommonFieldsAsync = exports.getIosAppCredentialsWithCommonFieldsAsync = exports.getIosAppCredentialsWithBuildCredentialsAsync = exports.createOrUpdateIosAppBuildCredentialsAsync = void 0;
3
+ exports.deleteAscApiKeyAsync = exports.getAscApiKeyForAppSubmissionsAsync = exports.getAscApiKeysForAccountAsync = exports.createAscApiKeyAsync = exports.deletePushKeyAsync = exports.getPushKeyForAppAsync = exports.getPushKeysForAccountAsync = exports.createPushKeyAsync = exports.deleteDistributionCertificateAsync = exports.createDistributionCertificateAsync = exports.getDistributionCertificatesForAccountAsync = exports.getDistributionCertificateForAppAsync = exports.deleteProvisioningProfilesAsync = exports.updateProvisioningProfileAsync = exports.getProvisioningProfileAsync = exports.createProvisioningProfileAsync = exports.getDevicesForAppleTeamAsync = exports.createOrGetExistingAppleAppIdentifierAsync = exports.createOrGetExistingAppleTeamAsync = exports.updateIosAppCredentialsAsync = exports.createOrGetIosAppCredentialsWithCommonFieldsAsync = exports.getIosAppCredentialsWithCommonFieldsAsync = exports.getIosAppCredentialsWithBuildCredentialsAsync = exports.createOrUpdateIosAppBuildCredentialsAsync = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const apple_utils_1 = require("@expo/apple-utils");
5
6
  const nullthrows_1 = (0, tslib_1.__importDefault)(require("nullthrows"));
7
+ const generated_1 = require("../../../graphql/generated");
6
8
  const bundleIdentifier_1 = require("../../../project/ios/bundleIdentifier");
7
9
  const errors_1 = require("../errors");
10
+ const AppStoreConnectApiKeyMutation_1 = require("./graphql/mutations/AppStoreConnectApiKeyMutation");
8
11
  const AppleAppIdentifierMutation_1 = require("./graphql/mutations/AppleAppIdentifierMutation");
9
12
  const AppleDistributionCertificateMutation_1 = require("./graphql/mutations/AppleDistributionCertificateMutation");
10
13
  const AppleProvisioningProfileMutation_1 = require("./graphql/mutations/AppleProvisioningProfileMutation");
@@ -13,6 +16,7 @@ const AppleTeamMutation_1 = require("./graphql/mutations/AppleTeamMutation");
13
16
  const IosAppBuildCredentialsMutation_1 = require("./graphql/mutations/IosAppBuildCredentialsMutation");
14
17
  const IosAppCredentialsMutation_1 = require("./graphql/mutations/IosAppCredentialsMutation");
15
18
  const AppQuery_1 = require("./graphql/queries/AppQuery");
19
+ const AppStoreConnectApiKeyQuery_1 = require("./graphql/queries/AppStoreConnectApiKeyQuery");
16
20
  const AppleAppIdentifierQuery_1 = require("./graphql/queries/AppleAppIdentifierQuery");
17
21
  const AppleDeviceQuery_1 = require("./graphql/queries/AppleDeviceQuery");
18
22
  const AppleDistributionCertificateQuery_1 = require("./graphql/queries/AppleDistributionCertificateQuery");
@@ -82,11 +86,15 @@ async function createOrGetIosAppCredentialsWithCommonFieldsAsync(appLookupParams
82
86
  return await IosAppCredentialsMutation_1.IosAppCredentialsMutation.createIosAppCredentialsAsync({ appleTeamId: appleTeam === null || appleTeam === void 0 ? void 0 : appleTeam.id }, app.id, appleAppIdentifier.id);
83
87
  }
84
88
  exports.createOrGetIosAppCredentialsWithCommonFieldsAsync = createOrGetIosAppCredentialsWithCommonFieldsAsync;
85
- async function updateIosAppCredentialsAsync(appCredentials, { applePushKeyId, }) {
89
+ async function updateIosAppCredentialsAsync(appCredentials, { applePushKeyId, ascApiKeyIdForSubmissions, }) {
86
90
  let updatedAppCredentials = appCredentials;
87
91
  if (applePushKeyId) {
88
92
  updatedAppCredentials = await IosAppCredentialsMutation_1.IosAppCredentialsMutation.setPushKeyAsync(updatedAppCredentials.id, applePushKeyId);
89
93
  }
94
+ if (ascApiKeyIdForSubmissions) {
95
+ updatedAppCredentials =
96
+ await IosAppCredentialsMutation_1.IosAppCredentialsMutation.setAppStoreConnectApiKeyForSubmissionsAsync(updatedAppCredentials.id, ascApiKeyIdForSubmissions);
97
+ }
90
98
  return updatedAppCredentials;
91
99
  }
92
100
  exports.updateIosAppCredentialsAsync = updateIosAppCredentialsAsync;
@@ -224,4 +232,68 @@ async function deletePushKeyAsync(pushKeyId) {
224
232
  return await ApplePushKeyMutation_1.ApplePushKeyMutation.deleteApplePushKeyAsync(pushKeyId);
225
233
  }
226
234
  exports.deletePushKeyAsync = deletePushKeyAsync;
235
+ async function createAscApiKeyAsync(account, ascApiKey) {
236
+ var _a, _b, _c;
237
+ const maybeAppleTeam = ascApiKey.teamId
238
+ ? await createOrGetExistingAppleTeamAsync(account, {
239
+ appleTeamIdentifier: ascApiKey.teamId,
240
+ appleTeamName: ascApiKey.teamName,
241
+ })
242
+ : null;
243
+ return await AppStoreConnectApiKeyMutation_1.AppStoreConnectApiKeyMutation.createAppStoreConnectApiKeyAsync({
244
+ issuerIdentifier: ascApiKey.issuerId,
245
+ keyIdentifier: ascApiKey.keyId,
246
+ keyP8: ascApiKey.keyP8,
247
+ name: (_a = ascApiKey.name) !== null && _a !== void 0 ? _a : null,
248
+ roles: (_c = (_b = ascApiKey.roles) === null || _b === void 0 ? void 0 : _b.map(role => convertUserRoleToGraphqlType(role))) !== null && _c !== void 0 ? _c : null,
249
+ appleTeamId: maybeAppleTeam ? maybeAppleTeam.id : null,
250
+ }, account.id);
251
+ }
252
+ exports.createAscApiKeyAsync = createAscApiKeyAsync;
253
+ async function getAscApiKeysForAccountAsync(account) {
254
+ return await AppStoreConnectApiKeyQuery_1.AppStoreConnectApiKeyQuery.getAllForAccountAsync(account.name);
255
+ }
256
+ exports.getAscApiKeysForAccountAsync = getAscApiKeysForAccountAsync;
257
+ async function getAscApiKeyForAppSubmissionsAsync(appLookupParams) {
258
+ var _a;
259
+ const maybeIosAppCredentials = await getIosAppCredentialsWithCommonFieldsAsync(appLookupParams);
260
+ return (_a = maybeIosAppCredentials === null || maybeIosAppCredentials === void 0 ? void 0 : maybeIosAppCredentials.appStoreConnectApiKeyForSubmissions) !== null && _a !== void 0 ? _a : null;
261
+ }
262
+ exports.getAscApiKeyForAppSubmissionsAsync = getAscApiKeyForAppSubmissionsAsync;
263
+ async function deleteAscApiKeyAsync(ascApiKeyId) {
264
+ return await AppStoreConnectApiKeyMutation_1.AppStoreConnectApiKeyMutation.deleteAppStoreConnectApiKeyAsync(ascApiKeyId);
265
+ }
266
+ exports.deleteAscApiKeyAsync = deleteAscApiKeyAsync;
267
+ function convertUserRoleToGraphqlType(userRole) {
268
+ switch (userRole) {
269
+ case apple_utils_1.UserRole.ADMIN:
270
+ return generated_1.AppStoreConnectUserRole.Admin;
271
+ case apple_utils_1.UserRole.ACCESS_TO_REPORTS:
272
+ return generated_1.AppStoreConnectUserRole.AccessToReports;
273
+ case apple_utils_1.UserRole.ACCOUNT_HOLDER:
274
+ return generated_1.AppStoreConnectUserRole.AccountHolder;
275
+ case apple_utils_1.UserRole.APP_MANAGER:
276
+ return generated_1.AppStoreConnectUserRole.AppManager;
277
+ case apple_utils_1.UserRole.CLOUD_MANAGED_APP_DISTRIBUTION:
278
+ return generated_1.AppStoreConnectUserRole.CloudManagedAppDistribution;
279
+ case apple_utils_1.UserRole.CLOUD_MANAGED_DEVELOPER_ID:
280
+ return generated_1.AppStoreConnectUserRole.CloudManagedDeveloperId;
281
+ case apple_utils_1.UserRole.CREATE_APPS:
282
+ return generated_1.AppStoreConnectUserRole.CreateApps;
283
+ case apple_utils_1.UserRole.CUSTOMER_SUPPORT:
284
+ return generated_1.AppStoreConnectUserRole.CustomerSupport;
285
+ case apple_utils_1.UserRole.DEVELOPER:
286
+ return generated_1.AppStoreConnectUserRole.Developer;
287
+ case apple_utils_1.UserRole.FINANCE:
288
+ return generated_1.AppStoreConnectUserRole.Finance;
289
+ case apple_utils_1.UserRole.MARKETING:
290
+ return generated_1.AppStoreConnectUserRole.Marketing;
291
+ case apple_utils_1.UserRole.READ_ONLY:
292
+ return generated_1.AppStoreConnectUserRole.ReadOnly;
293
+ case apple_utils_1.UserRole.SALES:
294
+ return generated_1.AppStoreConnectUserRole.Sales;
295
+ case apple_utils_1.UserRole.TECHNICAL:
296
+ return generated_1.AppStoreConnectUserRole.Technical;
297
+ }
298
+ }
227
299
  const formatProjectFullName = ({ account, projectName }) => `@${account.name}/${projectName}`;
@@ -0,0 +1,5 @@
1
+ import { AppStoreConnectApiKeyFragment, AppStoreConnectApiKeyInput } from '../../../../../graphql/generated';
2
+ export declare const AppStoreConnectApiKeyMutation: {
3
+ createAppStoreConnectApiKeyAsync(appStoreConnectApiKeyInput: AppStoreConnectApiKeyInput, accountId: string): Promise<AppStoreConnectApiKeyFragment>;
4
+ deleteAppStoreConnectApiKeyAsync(appStoreConnectApiKeyId: string): Promise<void>;
5
+ };
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppStoreConnectApiKeyMutation = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const assert_1 = (0, tslib_1.__importDefault)(require("assert"));
6
+ const graphql_1 = require("graphql");
7
+ const graphql_tag_1 = (0, tslib_1.__importDefault)(require("graphql-tag"));
8
+ const client_1 = require("../../../../../graphql/client");
9
+ const AppStoreConnectApiKey_1 = require("../../../../../graphql/types/credentials/AppStoreConnectApiKey");
10
+ exports.AppStoreConnectApiKeyMutation = {
11
+ async createAppStoreConnectApiKeyAsync(appStoreConnectApiKeyInput, accountId) {
12
+ const data = await (0, client_1.withErrorHandlingAsync)(client_1.graphqlClient
13
+ .mutation((0, graphql_tag_1.default) `
14
+ mutation CreateAppStoreConnectApiKeyMutation(
15
+ $appStoreConnectApiKeyInput: AppStoreConnectApiKeyInput!
16
+ $accountId: ID!
17
+ ) {
18
+ appStoreConnectApiKey {
19
+ createAppStoreConnectApiKey(
20
+ appStoreConnectApiKeyInput: $appStoreConnectApiKeyInput
21
+ accountId: $accountId
22
+ ) {
23
+ id
24
+ ...AppStoreConnectApiKeyFragment
25
+ }
26
+ }
27
+ }
28
+ ${(0, graphql_1.print)(AppStoreConnectApiKey_1.AppStoreConnectApiKeyFragmentNode)}
29
+ `, {
30
+ appStoreConnectApiKeyInput,
31
+ accountId,
32
+ })
33
+ .toPromise());
34
+ (0, assert_1.default)(data.appStoreConnectApiKey.createAppStoreConnectApiKey, 'GraphQL: `createAppStoreConnectApiKey` not defined in server response');
35
+ return data.appStoreConnectApiKey.createAppStoreConnectApiKey;
36
+ },
37
+ async deleteAppStoreConnectApiKeyAsync(appStoreConnectApiKeyId) {
38
+ await (0, client_1.withErrorHandlingAsync)(client_1.graphqlClient
39
+ .mutation((0, graphql_tag_1.default) `
40
+ mutation DeleteAppStoreConnectApiKeyMutation($appStoreConnectApiKeyId: ID!) {
41
+ appStoreConnectApiKey {
42
+ deleteAppStoreConnectApiKey(id: $appStoreConnectApiKeyId) {
43
+ id
44
+ }
45
+ }
46
+ }
47
+ `, {
48
+ appStoreConnectApiKeyId,
49
+ }, {
50
+ additionalTypenames: ['AppStoreConnectApiKey', 'IosAppCredentials'],
51
+ })
52
+ .toPromise());
53
+ },
54
+ };
@@ -2,4 +2,5 @@ import { CommonIosAppCredentialsFragment, IosAppCredentialsInput } from '../../.
2
2
  export declare const IosAppCredentialsMutation: {
3
3
  createIosAppCredentialsAsync(iosAppCredentialsInput: IosAppCredentialsInput, appId: string, appleAppIdentifierId: string): Promise<CommonIosAppCredentialsFragment>;
4
4
  setPushKeyAsync(iosAppCredentialsId: string, pushKeyId: string): Promise<CommonIosAppCredentialsFragment>;
5
+ setAppStoreConnectApiKeyForSubmissionsAsync(iosAppCredentialsId: string, ascApiKeyId: string): Promise<CommonIosAppCredentialsFragment>;
5
6
  };
@@ -56,4 +56,29 @@ exports.IosAppCredentialsMutation = {
56
56
  .toPromise());
57
57
  return data.iosAppCredentials.setPushKey;
58
58
  },
59
+ async setAppStoreConnectApiKeyForSubmissionsAsync(iosAppCredentialsId, ascApiKeyId) {
60
+ const data = await (0, client_1.withErrorHandlingAsync)(client_1.graphqlClient
61
+ .mutation((0, graphql_tag_1.default) `
62
+ mutation SetAppStoreConnectApiKeyForSubmissionsMutation(
63
+ $iosAppCredentialsId: ID!
64
+ $ascApiKeyId: ID!
65
+ ) {
66
+ iosAppCredentials {
67
+ setAppStoreConnectApiKeyForSubmissions(
68
+ id: $iosAppCredentialsId
69
+ ascApiKeyId: $ascApiKeyId
70
+ ) {
71
+ id
72
+ ...CommonIosAppCredentialsFragment
73
+ }
74
+ }
75
+ }
76
+ ${(0, graphql_1.print)(IosAppCredentials_1.CommonIosAppCredentialsFragmentNode)}
77
+ `, {
78
+ iosAppCredentialsId,
79
+ ascApiKeyId,
80
+ })
81
+ .toPromise());
82
+ return data.iosAppCredentials.setAppStoreConnectApiKeyForSubmissions;
83
+ },
59
84
  };
@@ -0,0 +1,4 @@
1
+ import { AppStoreConnectApiKeyFragment } from '../../../../../graphql/generated';
2
+ export declare const AppStoreConnectApiKeyQuery: {
3
+ getAllForAccountAsync(accountName: string): Promise<AppStoreConnectApiKeyFragment[]>;
4
+ };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppStoreConnectApiKeyQuery = 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 client_1 = require("../../../../../graphql/client");
8
+ const AppStoreConnectApiKey_1 = require("../../../../../graphql/types/credentials/AppStoreConnectApiKey");
9
+ exports.AppStoreConnectApiKeyQuery = {
10
+ async getAllForAccountAsync(accountName) {
11
+ const data = await (0, client_1.withErrorHandlingAsync)(client_1.graphqlClient
12
+ .query((0, graphql_tag_1.default) `
13
+ query AppStoreConnectApiKeyByAccountQuery($accountName: String!) {
14
+ account {
15
+ byName(accountName: $accountName) {
16
+ id
17
+ appStoreConnectApiKeys {
18
+ id
19
+ ...AppStoreConnectApiKeyFragment
20
+ }
21
+ }
22
+ }
23
+ }
24
+ ${(0, graphql_1.print)(AppStoreConnectApiKey_1.AppStoreConnectApiKeyFragmentNode)}
25
+ `, {
26
+ accountName,
27
+ }, {
28
+ additionalTypenames: ['AppStoreConnectApiKey'],
29
+ })
30
+ .toPromise());
31
+ return data.account.byName.appStoreConnectApiKeys;
32
+ },
33
+ };
@@ -18,7 +18,7 @@ export default class AppStoreApi {
18
18
  revokeProvisioningProfileAsync(bundleIdentifier: string, profileClass?: ProfileClass): Promise<void>;
19
19
  createOrReuseAdhocProvisioningProfileAsync(udids: string[], bundleIdentifier: string, distCertSerialNumber: string): Promise<ProvisioningProfile>;
20
20
  listAscApiKeysAsync(): Promise<AscApiKeyInfo[]>;
21
- getAscApiKeyAsync(keyId: string): Promise<AscApiKeyInfo>;
21
+ getAscApiKeyAsync(keyId: string): Promise<AscApiKeyInfo | null>;
22
22
  createAscApiKeyAsync({ nickname }: {
23
23
  nickname: string;
24
24
  }): Promise<AscApiKey>;
@@ -68,6 +68,7 @@ export declare type AscApiKeyInfo = {
68
68
  name: string;
69
69
  teamName?: string;
70
70
  roles: UserRole[];
71
+ isRevoked: boolean;
71
72
  };
72
73
  export declare type AscApiKey = AscApiKeyInfo & {
73
74
  keyP8: string;