eas-cli 0.34.1 → 0.35.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.
Files changed (90) hide show
  1. package/README.md +27 -27
  2. package/build/api.js +3 -3
  3. package/build/build/utils/formatBuild.js +1 -9
  4. package/build/build/utils/url.js +1 -1
  5. package/build/commands/build/index.js +12 -3
  6. package/build/commands/secret/delete.js +1 -1
  7. package/build/credentials/android/AndroidCredentialsProvider.js +2 -2
  8. package/build/credentials/android/actions/{SetupBuildCredentials.d.ts → SetUpBuildCredentials.d.ts} +1 -1
  9. package/build/credentials/android/actions/{SetupBuildCredentials.js → SetUpBuildCredentials.js} +3 -3
  10. package/build/credentials/android/actions/{SetupBuildCredentialsFromCredentialsJson.d.ts → SetUpBuildCredentialsFromCredentialsJson.d.ts} +1 -1
  11. package/build/credentials/android/actions/{SetupBuildCredentialsFromCredentialsJson.js → SetUpBuildCredentialsFromCredentialsJson.js} +3 -3
  12. package/build/credentials/android/actions/{SetupGoogleServiceAccountKey.d.ts → SetUpGoogleServiceAccountKey.d.ts} +1 -1
  13. package/build/credentials/android/actions/{SetupGoogleServiceAccountKey.js → SetUpGoogleServiceAccountKey.js} +3 -3
  14. package/build/credentials/errors.d.ts +4 -0
  15. package/build/credentials/errors.js +8 -1
  16. package/build/credentials/ios/IosCredentialsProvider.js +4 -4
  17. package/build/credentials/ios/actions/AscApiKeyUtils.d.ts +17 -1
  18. package/build/credentials/ios/actions/AscApiKeyUtils.js +156 -23
  19. package/build/credentials/ios/actions/AssignAscApiKey.d.ts +9 -0
  20. package/build/credentials/ios/actions/AssignAscApiKey.js +29 -0
  21. package/build/credentials/ios/actions/CreateAscApiKey.d.ts +9 -0
  22. package/build/credentials/ios/actions/CreateAscApiKey.js +21 -0
  23. package/build/credentials/ios/actions/DistributionCertificateUtils.js +1 -1
  24. package/build/credentials/ios/actions/PushKeyUtils.js +1 -1
  25. package/build/credentials/ios/actions/RemoveAscApiKey.d.ts +14 -0
  26. package/build/credentials/ios/actions/RemoveAscApiKey.js +55 -0
  27. package/build/credentials/ios/actions/{SetupAdhocProvisioningProfile.d.ts → SetUpAdhocProvisioningProfile.d.ts} +1 -1
  28. package/build/credentials/ios/actions/{SetupAdhocProvisioningProfile.js → SetUpAdhocProvisioningProfile.js} +5 -5
  29. package/build/credentials/ios/actions/SetUpAscApiKey.d.ts +21 -0
  30. package/build/credentials/ios/actions/SetUpAscApiKey.js +114 -0
  31. package/build/credentials/ios/actions/{SetupBuildCredentials.d.ts → SetUpBuildCredentials.d.ts} +1 -1
  32. package/build/credentials/ios/actions/{SetupBuildCredentials.js → SetUpBuildCredentials.js} +5 -5
  33. package/build/credentials/ios/actions/{SetupBuildCredentialsFromCredentialsJson.d.ts → SetUpBuildCredentialsFromCredentialsJson.d.ts} +1 -1
  34. package/build/credentials/ios/actions/{SetupBuildCredentialsFromCredentialsJson.js → SetUpBuildCredentialsFromCredentialsJson.js} +5 -5
  35. package/build/credentials/ios/actions/{SetupDistributionCertificate.d.ts → SetUpDistributionCertificate.d.ts} +1 -1
  36. package/build/credentials/ios/actions/{SetupDistributionCertificate.js → SetUpDistributionCertificate.js} +3 -3
  37. package/build/credentials/ios/actions/{SetupInternalProvisioningProfile.d.ts → SetUpInternalProvisioningProfile.d.ts} +1 -1
  38. package/build/credentials/ios/actions/{SetupInternalProvisioningProfile.js → SetUpInternalProvisioningProfile.js} +7 -7
  39. package/build/credentials/ios/actions/{SetupProvisioningProfile.d.ts → SetUpProvisioningProfile.d.ts} +1 -1
  40. package/build/credentials/ios/actions/{SetupProvisioningProfile.js → SetUpProvisioningProfile.js} +5 -5
  41. package/build/credentials/ios/actions/{SetupPushKey.d.ts → SetUpPushKey.d.ts} +1 -1
  42. package/build/credentials/ios/actions/{SetupPushKey.js → SetUpPushKey.js} +3 -3
  43. package/build/credentials/ios/actions/SetUpSubmissionCredentials.d.ts +10 -0
  44. package/build/credentials/ios/actions/SetUpSubmissionCredentials.js +53 -0
  45. package/build/credentials/ios/actions/{SetupTargetBuildCredentials.d.ts → SetUpTargetBuildCredentials.d.ts} +1 -1
  46. package/build/credentials/ios/actions/{SetupTargetBuildCredentials.js → SetUpTargetBuildCredentials.js} +10 -10
  47. package/build/credentials/ios/actions/{SetupTargetBuildCredentialsFromCredentialsJson.d.ts → SetUpTargetBuildCredentialsFromCredentialsJson.d.ts} +1 -1
  48. package/build/credentials/ios/actions/{SetupTargetBuildCredentialsFromCredentialsJson.js → SetUpTargetBuildCredentialsFromCredentialsJson.js} +3 -3
  49. package/build/credentials/ios/api/GraphqlClient.d.ts +8 -2
  50. package/build/credentials/ios/api/GraphqlClient.js +74 -2
  51. package/build/credentials/ios/api/graphql/mutations/AppStoreConnectApiKeyMutation.d.ts +5 -0
  52. package/build/credentials/ios/api/graphql/mutations/AppStoreConnectApiKeyMutation.js +54 -0
  53. package/build/credentials/ios/api/graphql/mutations/IosAppCredentialsMutation.d.ts +1 -0
  54. package/build/credentials/ios/api/graphql/mutations/IosAppCredentialsMutation.js +25 -0
  55. package/build/credentials/ios/api/graphql/queries/AppStoreConnectApiKeyQuery.d.ts +4 -0
  56. package/build/credentials/ios/api/graphql/queries/AppStoreConnectApiKeyQuery.js +33 -0
  57. package/build/credentials/ios/appstore/AppStoreApi.d.ts +1 -1
  58. package/build/credentials/ios/appstore/Credentials.types.d.ts +1 -0
  59. package/build/credentials/ios/appstore/ascApiKey.d.ts +1 -1
  60. package/build/credentials/ios/appstore/ascApiKey.js +22 -12
  61. package/build/credentials/ios/credentials.d.ts +2 -1
  62. package/build/credentials/ios/credentials.js +8 -3
  63. package/build/credentials/ios/validators/validateAscApiKey.d.ts +5 -0
  64. package/build/credentials/ios/validators/validateAscApiKey.js +21 -0
  65. package/build/credentials/manager/Actions.d.ts +20 -15
  66. package/build/credentials/manager/Actions.js +20 -15
  67. package/build/credentials/manager/AndroidActions.js +3 -3
  68. package/build/credentials/manager/IosActions.d.ts +1 -0
  69. package/build/credentials/manager/IosActions.js +40 -5
  70. package/build/credentials/manager/ManageAndroid.js +6 -6
  71. package/build/credentials/manager/ManageIos.js +53 -14
  72. package/build/credentials/utils/promptForCredentials.d.ts +2 -1
  73. package/build/credentials/utils/promptForCredentials.js +3 -2
  74. package/build/graphql/client.js +1 -1
  75. package/build/graphql/generated.d.ts +64 -2
  76. package/build/graphql/types/Build.js +1 -6
  77. package/build/submit/ArchiveSource.js +2 -1
  78. package/build/submit/android/ServiceAccountSource.js +2 -2
  79. package/build/submit/ios/AppSpecificPasswordSource.d.ts +2 -6
  80. package/build/submit/ios/AppSpecificPasswordSource.js +0 -18
  81. package/build/submit/ios/AscApiKeySource.d.ts +9 -3
  82. package/build/submit/ios/AscApiKeySource.js +10 -10
  83. package/build/submit/ios/CredentialsServiceSource.d.ts +14 -0
  84. package/build/submit/ios/CredentialsServiceSource.js +46 -0
  85. package/build/submit/ios/IosSubmitCommand.js +22 -14
  86. package/build/submit/ios/IosSubmitter.d.ts +3 -0
  87. package/build/submit/ios/IosSubmitter.js +29 -19
  88. package/build/submit/utils/errors.js +2 -0
  89. package/oclif.manifest.json +1 -1
  90. package/package.json +4 -4
@@ -3,7 +3,7 @@ import { ApiKey, ApiKeyProps } from '@expo/apple-utils';
3
3
  import { AscApiKey, AscApiKeyInfo } from './Credentials.types';
4
4
  import { AuthCtx } from './authenticate';
5
5
  export declare function listAscApiKeysAsync(authCtx: AuthCtx): Promise<AscApiKeyInfo[]>;
6
- export declare function getAscApiKeyAsync(authCtx: AuthCtx, keyId: string): Promise<AscApiKeyInfo>;
6
+ export declare function getAscApiKeyAsync(authCtx: AuthCtx, keyId: string): Promise<AscApiKeyInfo | null>;
7
7
  export declare function createAscApiKeyAsync(authCtx: AuthCtx, { nickname, allAppsVisible, roles, keyType, }: Partial<Pick<ApiKeyProps, 'nickname' | 'roles' | 'allAppsVisible' | 'keyType'>>): Promise<AscApiKey>;
8
8
  export declare function revokeAscApiKeyAsync(authCtx: AuthCtx, keyId: string): Promise<AscApiKeyInfo>;
9
9
  export declare function getAscApiKeyInfo(apiKey: ApiKey, authCtx: AuthCtx): AscApiKeyInfo;
@@ -7,36 +7,42 @@ const log_1 = (0, tslib_1.__importDefault)(require("../../../log"));
7
7
  const ora_1 = require("../../../ora");
8
8
  const authenticate_1 = require("./authenticate");
9
9
  async function listAscApiKeysAsync(authCtx) {
10
- const spinner = (0, ora_1.ora)(`Fetching App Store Connect API Keys.`).start();
10
+ const spinner = (0, ora_1.ora)(`Fetching App Store Connect Api Keys.`).start();
11
11
  try {
12
12
  const context = (0, authenticate_1.getRequestContext)(authCtx);
13
13
  const keys = await apple_utils_1.ApiKey.getAsync(context);
14
- spinner.succeed(`Fetched App Store Connect API Keys.`);
14
+ spinner.succeed(`Fetched App Store Connect Api Keys.`);
15
15
  return keys.map(key => getAscApiKeyInfo(key, authCtx));
16
16
  }
17
17
  catch (error) {
18
- spinner.fail(`Failed to fetch App Store Connect API Keys.`);
18
+ spinner.fail(`Failed to fetch App Store Connect Api Keys.`);
19
19
  throw error;
20
20
  }
21
21
  }
22
22
  exports.listAscApiKeysAsync = listAscApiKeysAsync;
23
23
  async function getAscApiKeyAsync(authCtx, keyId) {
24
- const spinner = (0, ora_1.ora)(`Fetching App Store Connect API Key.`).start();
24
+ var _a;
25
+ const spinner = (0, ora_1.ora)(`Fetching App Store Connect Api Key.`).start();
25
26
  try {
26
27
  const context = (0, authenticate_1.getRequestContext)(authCtx);
27
28
  const apiKey = await apple_utils_1.ApiKey.infoAsync(context, { id: keyId });
28
- spinner.succeed(`Fetched App Store Connect API Key (ID: ${keyId}).`);
29
+ spinner.succeed(`Fetched App Store Connect Api Key (ID: ${keyId}).`);
29
30
  return getAscApiKeyInfo(apiKey, authCtx);
30
31
  }
31
32
  catch (error) {
33
+ const message = (_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : '';
34
+ if (message.includes("There is no resource of type 'apiKeys' with id")) {
35
+ spinner.stop();
36
+ return null;
37
+ }
32
38
  log_1.default.error(error);
33
- spinner.fail(`Failed to fetch App Store Connect API Key.`);
39
+ spinner.fail(`Failed to fetch App Store Connect Api Key.`);
34
40
  throw error;
35
41
  }
36
42
  }
37
43
  exports.getAscApiKeyAsync = getAscApiKeyAsync;
38
44
  async function createAscApiKeyAsync(authCtx, { nickname, allAppsVisible, roles, keyType, }) {
39
- const spinner = (0, ora_1.ora)(`Creating App Store Connect API Key.`).start();
45
+ const spinner = (0, ora_1.ora)(`Creating App Store Connect Api Key.`).start();
40
46
  try {
41
47
  const context = (0, authenticate_1.getRequestContext)(authCtx);
42
48
  const key = await apple_utils_1.ApiKey.createAsync(context, {
@@ -58,29 +64,32 @@ async function createAscApiKeyAsync(authCtx, { nickname, allAppsVisible, roles,
58
64
  }
59
65
  throw new Error(`Failed to download .p8 file of ${humanReadableKey}.`);
60
66
  }
67
+ // this object has more optional parameters populated
68
+ const fullKey = await apple_utils_1.ApiKey.infoAsync(context, { id: key.id });
69
+ spinner.succeed(`Created App Store Connect Api Key.`);
61
70
  return {
62
- ...getAscApiKeyInfo(key, authCtx),
71
+ ...getAscApiKeyInfo(fullKey, authCtx),
63
72
  keyP8,
64
73
  };
65
74
  }
66
75
  catch (err) {
67
- spinner.fail('Failed to create App Store Connect API Key.');
76
+ spinner.fail('Failed to create App Store Connect Api Key.');
68
77
  throw err;
69
78
  }
70
79
  }
71
80
  exports.createAscApiKeyAsync = createAscApiKeyAsync;
72
81
  async function revokeAscApiKeyAsync(authCtx, keyId) {
73
- const spinner = (0, ora_1.ora)(`Revoking App Store Connect API Key.`).start();
82
+ const spinner = (0, ora_1.ora)(`Revoking App Store Connect Api Key.`).start();
74
83
  try {
75
84
  const context = (0, authenticate_1.getRequestContext)(authCtx);
76
85
  const apiKey = await apple_utils_1.ApiKey.infoAsync(context, { id: keyId });
77
86
  const revokedKey = await apiKey.revokeAsync();
78
- spinner.succeed(`Revoked App Store Connect API Key.`);
87
+ spinner.succeed(`Revoked App Store Connect Api Key.`);
79
88
  return getAscApiKeyInfo(revokedKey, authCtx);
80
89
  }
81
90
  catch (error) {
82
91
  log_1.default.error(error);
83
- spinner.fail(`Failed to revoke App Store Connect API Key.`);
92
+ spinner.fail(`Failed to revoke App Store Connect Api Key.`);
84
93
  throw error;
85
94
  }
86
95
  }
@@ -94,6 +103,7 @@ function getAscApiKeyInfo(apiKey, authCtx) {
94
103
  teamId: authCtx.team.id,
95
104
  teamName: authCtx.team.name,
96
105
  roles: apiKey.attributes.roles,
106
+ isRevoked: !!apiKey.attributes.revokingDate,
97
107
  };
98
108
  }
99
109
  exports.getAscApiKeyInfo = getAscApiKeyInfo;
@@ -52,6 +52,7 @@ export interface AscApiKeyPath {
52
52
  keyId: string;
53
53
  issuerId: string;
54
54
  }
55
- export declare const ascApiKeyMetadataSchema: CredentialSchema<Omit<MinimalAscApiKey, 'keyP8'>>;
55
+ export declare const ascApiKeyIdSchema: CredentialSchema<Pick<MinimalAscApiKey, 'keyId'>>;
56
+ export declare const ascApiKeyIssuerIdSchema: CredentialSchema<Pick<MinimalAscApiKey, 'issuerId'>>;
56
57
  export declare const pushKeySchema: CredentialSchema<PushKey>;
57
58
  export declare const provisioningProfileSchema: CredentialSchema<ProvisioningProfile>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.provisioningProfileSchema = exports.pushKeySchema = exports.ascApiKeyMetadataSchema = exports.distributionCertificateSchema = exports.getAppLookupParams = void 0;
3
+ exports.provisioningProfileSchema = exports.pushKeySchema = exports.ascApiKeyIssuerIdSchema = exports.ascApiKeyIdSchema = exports.distributionCertificateSchema = exports.getAppLookupParams = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const log_1 = (0, tslib_1.__importDefault)(require("../../log"));
6
6
  const p12Certificate_1 = require("./utils/p12Certificate");
@@ -50,14 +50,19 @@ exports.distributionCertificateSchema = {
50
50
  return answers;
51
51
  },
52
52
  };
53
- exports.ascApiKeyMetadataSchema = {
54
- name: 'App Store Connect API Key',
53
+ exports.ascApiKeyIdSchema = {
54
+ name: 'App Store Connect Api Key',
55
55
  questions: [
56
56
  {
57
57
  field: 'keyId',
58
58
  type: 'string',
59
59
  question: 'Key ID:',
60
60
  },
61
+ ],
62
+ };
63
+ exports.ascApiKeyIssuerIdSchema = {
64
+ name: 'App Store Connect Api Key',
65
+ questions: [
61
66
  {
62
67
  field: 'issuerId',
63
68
  type: 'string',
@@ -0,0 +1,5 @@
1
+ import { AppStoreConnectApiKeyFragment } from '../../../graphql/generated';
2
+ import { CredentialsContext } from '../../context';
3
+ import { MinimalAscApiKey } from '../credentials';
4
+ export declare function isAscApiKeyValidAndTrackedAsync(ctx: CredentialsContext, ascApiKey: MinimalAscApiKey): Promise<boolean>;
5
+ export declare function getValidAndTrackedAscApiKeysAsync(ctx: CredentialsContext, ascApiKeys: AppStoreConnectApiKeyFragment[]): Promise<AppStoreConnectApiKeyFragment[]>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getValidAndTrackedAscApiKeysAsync = exports.isAscApiKeyValidAndTrackedAsync = void 0;
4
+ async function isAscApiKeyValidAndTrackedAsync(ctx, ascApiKey) {
5
+ const ascApiKeyInfo = await ctx.appStore.getAscApiKeyAsync(ascApiKey.keyId);
6
+ return isKeyValid(ascApiKeyInfo);
7
+ }
8
+ exports.isAscApiKeyValidAndTrackedAsync = isAscApiKeyValidAndTrackedAsync;
9
+ async function getValidAndTrackedAscApiKeysAsync(ctx, ascApiKeys) {
10
+ const ascApiKeysInfo = await ctx.appStore.listAscApiKeysAsync();
11
+ const validAscApiKeysInfo = ascApiKeysInfo.filter(keyInfo => isKeyValid(keyInfo));
12
+ const validKeyIdentifiers = new Set(validAscApiKeysInfo.map(keyInfo => keyInfo.keyId));
13
+ return ascApiKeys.filter(key => validKeyIdentifiers.has(key.keyIdentifier));
14
+ }
15
+ exports.getValidAndTrackedAscApiKeysAsync = getValidAndTrackedAscApiKeysAsync;
16
+ function isKeyValid(ascApiKeyInfo) {
17
+ if (!ascApiKeyInfo) {
18
+ return false;
19
+ }
20
+ return !ascApiKeyInfo.isRevoked;
21
+ }
@@ -23,25 +23,30 @@ export declare enum AndroidActionType {
23
23
  CreateGsaKey = 11,
24
24
  UseExistingGsaKey = 12,
25
25
  RemoveGsaKey = 13,
26
- SetupGsaKey = 14,
26
+ SetUpGsaKey = 14,
27
27
  UpdateCredentialsJson = 15,
28
- SetupBuildCredentialsFromCredentialsJson = 16
28
+ SetUpBuildCredentialsFromCredentialsJson = 16
29
29
  }
30
30
  export declare enum IosActionType {
31
31
  ManageCredentialsJson = 0,
32
32
  ManageBuildCredentials = 1,
33
33
  ManagePushKey = 2,
34
- GoBackToCaller = 3,
35
- GoBackToHighLevelActions = 4,
36
- SetupBuildCredentials = 5,
37
- SetupBuildCredentialsFromCredentialsJson = 6,
38
- UpdateCredentialsJson = 7,
39
- UseExistingDistributionCertificate = 8,
40
- RemoveProvisioningProfile = 9,
41
- CreateDistributionCertificate = 10,
42
- RemoveDistributionCertificate = 11,
43
- SetupPushKey = 12,
44
- CreatePushKey = 13,
45
- UseExistingPushKey = 14,
46
- RemovePushKey = 15
34
+ ManageAscApiKey = 3,
35
+ GoBackToCaller = 4,
36
+ GoBackToHighLevelActions = 5,
37
+ SetUpBuildCredentials = 6,
38
+ SetUpBuildCredentialsFromCredentialsJson = 7,
39
+ UpdateCredentialsJson = 8,
40
+ UseExistingDistributionCertificate = 9,
41
+ RemoveProvisioningProfile = 10,
42
+ CreateDistributionCertificate = 11,
43
+ RemoveDistributionCertificate = 12,
44
+ SetUpPushKey = 13,
45
+ CreatePushKey = 14,
46
+ UseExistingPushKey = 15,
47
+ RemovePushKey = 16,
48
+ SetUpAscApiKeyForSubmissions = 17,
49
+ UseExistingAscApiKeyForSubmissions = 18,
50
+ CreateAscApiKeyForSubmissions = 19,
51
+ RemoveAscApiKey = 20
47
52
  }
@@ -23,26 +23,31 @@ var AndroidActionType;
23
23
  AndroidActionType[AndroidActionType["CreateGsaKey"] = 11] = "CreateGsaKey";
24
24
  AndroidActionType[AndroidActionType["UseExistingGsaKey"] = 12] = "UseExistingGsaKey";
25
25
  AndroidActionType[AndroidActionType["RemoveGsaKey"] = 13] = "RemoveGsaKey";
26
- AndroidActionType[AndroidActionType["SetupGsaKey"] = 14] = "SetupGsaKey";
26
+ AndroidActionType[AndroidActionType["SetUpGsaKey"] = 14] = "SetUpGsaKey";
27
27
  AndroidActionType[AndroidActionType["UpdateCredentialsJson"] = 15] = "UpdateCredentialsJson";
28
- AndroidActionType[AndroidActionType["SetupBuildCredentialsFromCredentialsJson"] = 16] = "SetupBuildCredentialsFromCredentialsJson";
28
+ AndroidActionType[AndroidActionType["SetUpBuildCredentialsFromCredentialsJson"] = 16] = "SetUpBuildCredentialsFromCredentialsJson";
29
29
  })(AndroidActionType = exports.AndroidActionType || (exports.AndroidActionType = {}));
30
30
  var IosActionType;
31
31
  (function (IosActionType) {
32
32
  IosActionType[IosActionType["ManageCredentialsJson"] = 0] = "ManageCredentialsJson";
33
33
  IosActionType[IosActionType["ManageBuildCredentials"] = 1] = "ManageBuildCredentials";
34
34
  IosActionType[IosActionType["ManagePushKey"] = 2] = "ManagePushKey";
35
- IosActionType[IosActionType["GoBackToCaller"] = 3] = "GoBackToCaller";
36
- IosActionType[IosActionType["GoBackToHighLevelActions"] = 4] = "GoBackToHighLevelActions";
37
- IosActionType[IosActionType["SetupBuildCredentials"] = 5] = "SetupBuildCredentials";
38
- IosActionType[IosActionType["SetupBuildCredentialsFromCredentialsJson"] = 6] = "SetupBuildCredentialsFromCredentialsJson";
39
- IosActionType[IosActionType["UpdateCredentialsJson"] = 7] = "UpdateCredentialsJson";
40
- IosActionType[IosActionType["UseExistingDistributionCertificate"] = 8] = "UseExistingDistributionCertificate";
41
- IosActionType[IosActionType["RemoveProvisioningProfile"] = 9] = "RemoveProvisioningProfile";
42
- IosActionType[IosActionType["CreateDistributionCertificate"] = 10] = "CreateDistributionCertificate";
43
- IosActionType[IosActionType["RemoveDistributionCertificate"] = 11] = "RemoveDistributionCertificate";
44
- IosActionType[IosActionType["SetupPushKey"] = 12] = "SetupPushKey";
45
- IosActionType[IosActionType["CreatePushKey"] = 13] = "CreatePushKey";
46
- IosActionType[IosActionType["UseExistingPushKey"] = 14] = "UseExistingPushKey";
47
- IosActionType[IosActionType["RemovePushKey"] = 15] = "RemovePushKey";
35
+ IosActionType[IosActionType["ManageAscApiKey"] = 3] = "ManageAscApiKey";
36
+ IosActionType[IosActionType["GoBackToCaller"] = 4] = "GoBackToCaller";
37
+ IosActionType[IosActionType["GoBackToHighLevelActions"] = 5] = "GoBackToHighLevelActions";
38
+ IosActionType[IosActionType["SetUpBuildCredentials"] = 6] = "SetUpBuildCredentials";
39
+ IosActionType[IosActionType["SetUpBuildCredentialsFromCredentialsJson"] = 7] = "SetUpBuildCredentialsFromCredentialsJson";
40
+ IosActionType[IosActionType["UpdateCredentialsJson"] = 8] = "UpdateCredentialsJson";
41
+ IosActionType[IosActionType["UseExistingDistributionCertificate"] = 9] = "UseExistingDistributionCertificate";
42
+ IosActionType[IosActionType["RemoveProvisioningProfile"] = 10] = "RemoveProvisioningProfile";
43
+ IosActionType[IosActionType["CreateDistributionCertificate"] = 11] = "CreateDistributionCertificate";
44
+ IosActionType[IosActionType["RemoveDistributionCertificate"] = 12] = "RemoveDistributionCertificate";
45
+ IosActionType[IosActionType["SetUpPushKey"] = 13] = "SetUpPushKey";
46
+ IosActionType[IosActionType["CreatePushKey"] = 14] = "CreatePushKey";
47
+ IosActionType[IosActionType["UseExistingPushKey"] = 15] = "UseExistingPushKey";
48
+ IosActionType[IosActionType["RemovePushKey"] = 16] = "RemovePushKey";
49
+ IosActionType[IosActionType["SetUpAscApiKeyForSubmissions"] = 17] = "SetUpAscApiKeyForSubmissions";
50
+ IosActionType[IosActionType["UseExistingAscApiKeyForSubmissions"] = 18] = "UseExistingAscApiKeyForSubmissions";
51
+ IosActionType[IosActionType["CreateAscApiKeyForSubmissions"] = 19] = "CreateAscApiKeyForSubmissions";
52
+ IosActionType[IosActionType["RemoveAscApiKey"] = 20] = "RemoveAscApiKey";
48
53
  })(IosActionType = exports.IosActionType || (exports.IosActionType = {}));
@@ -36,7 +36,7 @@ exports.credentialsJsonActions = [
36
36
  scope: Actions_1.Scope.Project,
37
37
  },
38
38
  {
39
- value: Actions_1.AndroidActionType.SetupBuildCredentialsFromCredentialsJson,
39
+ value: Actions_1.AndroidActionType.SetUpBuildCredentialsFromCredentialsJson,
40
40
  title: 'Upload credentials from credentials.json to EAS',
41
41
  scope: Actions_1.Scope.Project,
42
42
  },
@@ -87,8 +87,8 @@ exports.fcmActions = [
87
87
  ];
88
88
  exports.gsaKeyActions = [
89
89
  {
90
- value: Actions_1.AndroidActionType.SetupGsaKey,
91
- title: 'Setup a Google Service Account Key',
90
+ value: Actions_1.AndroidActionType.SetUpGsaKey,
91
+ title: 'Set up a Google Service Account Key',
92
92
  scope: Actions_1.Scope.Project,
93
93
  },
94
94
  {
@@ -3,4 +3,5 @@ import { ActionInfo } from './Actions';
3
3
  export declare const highLevelActions: ActionInfo[];
4
4
  export declare const credentialsJsonActions: ActionInfo[];
5
5
  export declare function getPushKeyActions(ctx: CredentialsContext): ActionInfo[];
6
+ export declare function getAscApiKeyActions(ctx: CredentialsContext): ActionInfo[];
6
7
  export declare function getBuildCredentialsActions(ctx: CredentialsContext): ActionInfo[];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getBuildCredentialsActions = exports.getPushKeyActions = exports.credentialsJsonActions = exports.highLevelActions = void 0;
3
+ exports.getBuildCredentialsActions = exports.getAscApiKeyActions = exports.getPushKeyActions = exports.credentialsJsonActions = exports.highLevelActions = void 0;
4
4
  const Actions_1 = require("./Actions");
5
5
  exports.highLevelActions = [
6
6
  {
@@ -13,6 +13,11 @@ exports.highLevelActions = [
13
13
  title: 'Push Notifications: Manage your Apple Push Notifications Key',
14
14
  scope: Actions_1.Scope.Manager,
15
15
  },
16
+ {
17
+ value: Actions_1.IosActionType.ManageAscApiKey,
18
+ title: 'App Store Connect: Manage your Api Key',
19
+ scope: Actions_1.Scope.Manager,
20
+ },
16
21
  {
17
22
  value: Actions_1.IosActionType.ManageCredentialsJson,
18
23
  title: 'credentials.json: Upload/Download credentials between EAS servers and your local json ',
@@ -31,7 +36,7 @@ exports.credentialsJsonActions = [
31
36
  scope: Actions_1.Scope.Project,
32
37
  },
33
38
  {
34
- value: Actions_1.IosActionType.SetupBuildCredentialsFromCredentialsJson,
39
+ value: Actions_1.IosActionType.SetUpBuildCredentialsFromCredentialsJson,
35
40
  title: 'Upload credentials from credentials.json to EAS',
36
41
  scope: Actions_1.Scope.Project,
37
42
  },
@@ -44,8 +49,8 @@ exports.credentialsJsonActions = [
44
49
  function getPushKeyActions(ctx) {
45
50
  return [
46
51
  {
47
- value: Actions_1.IosActionType.SetupPushKey,
48
- title: 'Setup your project to use Push Notifications',
52
+ value: Actions_1.IosActionType.SetUpPushKey,
53
+ title: 'Set up your project to use Push Notifications',
49
54
  scope: Actions_1.Scope.Project,
50
55
  },
51
56
  {
@@ -71,12 +76,42 @@ function getPushKeyActions(ctx) {
71
76
  ];
72
77
  }
73
78
  exports.getPushKeyActions = getPushKeyActions;
79
+ function getAscApiKeyActions(ctx) {
80
+ return [
81
+ {
82
+ value: Actions_1.IosActionType.SetUpAscApiKeyForSubmissions,
83
+ title: 'Set up your project to use an Api Key for EAS Submit',
84
+ scope: Actions_1.Scope.Project,
85
+ },
86
+ {
87
+ value: Actions_1.IosActionType.UseExistingAscApiKeyForSubmissions,
88
+ title: 'Use an existing Api Key for EAS Submit',
89
+ scope: Actions_1.Scope.Project,
90
+ },
91
+ {
92
+ value: Actions_1.IosActionType.CreateAscApiKeyForSubmissions,
93
+ title: 'Add a new Api Key For EAS Submit',
94
+ scope: ctx.hasProjectContext ? Actions_1.Scope.Project : Actions_1.Scope.Account,
95
+ },
96
+ {
97
+ value: Actions_1.IosActionType.RemoveAscApiKey,
98
+ title: 'Delete an Api Key',
99
+ scope: Actions_1.Scope.Account,
100
+ },
101
+ {
102
+ value: Actions_1.IosActionType.GoBackToHighLevelActions,
103
+ title: 'Go back',
104
+ scope: Actions_1.Scope.Manager,
105
+ },
106
+ ];
107
+ }
108
+ exports.getAscApiKeyActions = getAscApiKeyActions;
74
109
  function getBuildCredentialsActions(ctx) {
75
110
  return [
76
111
  {
77
112
  // This command will be triggered during build to ensure all credentials are ready
78
113
  // I'm leaving it here for now to simplify testing
79
- value: Actions_1.IosActionType.SetupBuildCredentials,
114
+ value: Actions_1.IosActionType.SetUpBuildCredentials,
80
115
  title: 'All: Set up all the required credentials to build your project',
81
116
  scope: Actions_1.Scope.Project,
82
117
  },
@@ -20,8 +20,8 @@ const DownloadKeystore_1 = require("../android/actions/DownloadKeystore");
20
20
  const RemoveFcm_1 = require("../android/actions/RemoveFcm");
21
21
  const RemoveGoogleServiceAccountKey_1 = require("../android/actions/RemoveGoogleServiceAccountKey");
22
22
  const RemoveKeystore_1 = require("../android/actions/RemoveKeystore");
23
- const SetupBuildCredentialsFromCredentialsJson_1 = require("../android/actions/SetupBuildCredentialsFromCredentialsJson");
24
- const SetupGoogleServiceAccountKey_1 = require("../android/actions/SetupGoogleServiceAccountKey");
23
+ const SetUpBuildCredentialsFromCredentialsJson_1 = require("../android/actions/SetUpBuildCredentialsFromCredentialsJson");
24
+ const SetUpGoogleServiceAccountKey_1 = require("../android/actions/SetUpGoogleServiceAccountKey");
25
25
  const UpdateCredentialsJson_1 = require("../android/actions/UpdateCredentialsJson");
26
26
  const UseExistingGoogleServiceAccountKey_1 = require("../android/actions/UseExistingGoogleServiceAccountKey");
27
27
  const printCredentials_1 = require("../android/utils/printCredentials");
@@ -180,8 +180,8 @@ class ManageAndroid {
180
180
  else if (action === Actions_1.AndroidActionType.RemoveGsaKey) {
181
181
  await new RemoveGoogleServiceAccountKey_1.SelectAndRemoveGoogleServiceAccountKey(appLookupParams.account).runAsync(ctx);
182
182
  }
183
- else if (action === Actions_1.AndroidActionType.SetupGsaKey) {
184
- await new SetupGoogleServiceAccountKey_1.SetupGoogleServiceAccountKey(appLookupParams).runAsync(ctx);
183
+ else if (action === Actions_1.AndroidActionType.SetUpGsaKey) {
184
+ await new SetUpGoogleServiceAccountKey_1.SetUpGoogleServiceAccountKey(appLookupParams).runAsync(ctx);
185
185
  }
186
186
  else if (action === Actions_1.AndroidActionType.UpdateCredentialsJson) {
187
187
  const buildCredentials = await new SelectAndroidBuildCredentials_1.SelectExistingAndroidBuildCredentials(appLookupParams).runAsync(ctx);
@@ -189,8 +189,8 @@ class ManageAndroid {
189
189
  await new UpdateCredentialsJson_1.UpdateCredentialsJson().runAsync(ctx, buildCredentials);
190
190
  }
191
191
  }
192
- else if (action === Actions_1.AndroidActionType.SetupBuildCredentialsFromCredentialsJson) {
193
- await new SetupBuildCredentialsFromCredentialsJson_1.SetupBuildCredentialsFromCredentialsJson(appLookupParams).runAsync(ctx);
192
+ else if (action === Actions_1.AndroidActionType.SetUpBuildCredentialsFromCredentialsJson) {
193
+ await new SetUpBuildCredentialsFromCredentialsJson_1.SetUpBuildCredentialsFromCredentialsJson(appLookupParams).runAsync(ctx);
194
194
  }
195
195
  }
196
196
  }
@@ -13,20 +13,25 @@ const projectUtils_1 = require("../../project/projectUtils");
13
13
  const prompts_1 = require("../../prompts");
14
14
  const Account_1 = require("../../user/Account");
15
15
  const actions_1 = require("../../user/actions");
16
+ const AscApiKeyUtils_1 = require("../ios/actions/AscApiKeyUtils");
17
+ const AssignAscApiKey_1 = require("../ios/actions/AssignAscApiKey");
16
18
  const AssignPushKey_1 = require("../ios/actions/AssignPushKey");
17
19
  const BuildCredentialsUtils_1 = require("../ios/actions/BuildCredentialsUtils");
20
+ const CreateAscApiKey_1 = require("../ios/actions/CreateAscApiKey");
18
21
  const CreateDistributionCertificate_1 = require("../ios/actions/CreateDistributionCertificate");
19
22
  const CreatePushKey_1 = require("../ios/actions/CreatePushKey");
20
23
  const DistributionCertificateUtils_1 = require("../ios/actions/DistributionCertificateUtils");
21
24
  const PushKeyUtils_1 = require("../ios/actions/PushKeyUtils");
25
+ const RemoveAscApiKey_1 = require("../ios/actions/RemoveAscApiKey");
22
26
  const RemoveDistributionCertificate_1 = require("../ios/actions/RemoveDistributionCertificate");
23
27
  const RemoveProvisioningProfile_1 = require("../ios/actions/RemoveProvisioningProfile");
24
28
  const RemovePushKey_1 = require("../ios/actions/RemovePushKey");
25
- const SetupAdhocProvisioningProfile_1 = require("../ios/actions/SetupAdhocProvisioningProfile");
26
- const SetupBuildCredentials_1 = require("../ios/actions/SetupBuildCredentials");
27
- const SetupBuildCredentialsFromCredentialsJson_1 = require("../ios/actions/SetupBuildCredentialsFromCredentialsJson");
28
- const SetupProvisioningProfile_1 = require("../ios/actions/SetupProvisioningProfile");
29
- const SetupPushKey_1 = require("../ios/actions/SetupPushKey");
29
+ const SetUpAdhocProvisioningProfile_1 = require("../ios/actions/SetUpAdhocProvisioningProfile");
30
+ const SetUpAscApiKey_1 = require("../ios/actions/SetUpAscApiKey");
31
+ const SetUpBuildCredentials_1 = require("../ios/actions/SetUpBuildCredentials");
32
+ const SetUpBuildCredentialsFromCredentialsJson_1 = require("../ios/actions/SetUpBuildCredentialsFromCredentialsJson");
33
+ const SetUpProvisioningProfile_1 = require("../ios/actions/SetUpProvisioningProfile");
34
+ const SetUpPushKey_1 = require("../ios/actions/SetUpPushKey");
30
35
  const UpdateCredentialsJson_1 = require("../ios/actions/UpdateCredentialsJson");
31
36
  const entitlements_1 = require("../ios/appstore/entitlements");
32
37
  const printCredentials_1 = require("../ios/utils/printCredentials");
@@ -42,6 +47,7 @@ class ManageIos {
42
47
  async runAsync(ctx, currentActions = IosActions_1.highLevelActions) {
43
48
  const buildCredentialsActions = (0, IosActions_1.getBuildCredentialsActions)(ctx);
44
49
  const pushKeyActions = (0, IosActions_1.getPushKeyActions)(ctx);
50
+ const ascApiKeyActions = (0, IosActions_1.getAscApiKeyActions)(ctx);
45
51
  await ctx.bestEffortAppStoreAuthenticateAsync();
46
52
  const accountName = ctx.hasProjectContext
47
53
  ? (0, projectUtils_1.getProjectAccountName)(ctx.exp, ctx.user)
@@ -89,6 +95,10 @@ class ManageIos {
89
95
  currentActions = pushKeyActions;
90
96
  continue;
91
97
  }
98
+ else if (chosenAction === Actions_1.IosActionType.ManageAscApiKey) {
99
+ currentActions = ascApiKeyActions;
100
+ continue;
101
+ }
92
102
  else if (chosenAction === Actions_1.IosActionType.GoBackToHighLevelActions) {
93
103
  currentActions = IosActions_1.highLevelActions;
94
104
  continue;
@@ -154,14 +164,20 @@ class ManageIos {
154
164
  else if (action === Actions_1.IosActionType.CreatePushKey) {
155
165
  await new CreatePushKey_1.CreatePushKey(account).runAsync(ctx);
156
166
  }
167
+ else if (action === Actions_1.IosActionType.CreateAscApiKeyForSubmissions) {
168
+ await new CreateAscApiKey_1.CreateAscApiKey(account).runAsync(ctx, AscApiKeyUtils_1.AppStoreApiKeyPurpose.SUBMISSION_SERVICE);
169
+ }
157
170
  else if (action === Actions_1.IosActionType.RemovePushKey) {
158
171
  await new RemovePushKey_1.SelectAndRemovePushKey(account).runAsync(ctx);
159
172
  }
173
+ else if (action === Actions_1.IosActionType.RemoveAscApiKey) {
174
+ await new RemoveAscApiKey_1.SelectAndRemoveAscApiKey(account).runAsync(ctx);
175
+ }
160
176
  }
161
177
  async runProjectSpecificActionAsync(ctx, app, targets, buildProfile, action) {
162
178
  var _a;
163
- if (action === Actions_1.IosActionType.SetupBuildCredentials) {
164
- await new SetupBuildCredentials_1.SetupBuildCredentials({
179
+ if (action === Actions_1.IosActionType.SetUpBuildCredentials) {
180
+ await new SetUpBuildCredentials_1.SetUpBuildCredentials({
165
181
  app,
166
182
  targets,
167
183
  distribution: buildProfile.distribution,
@@ -173,8 +189,8 @@ class ManageIos {
173
189
  return;
174
190
  }
175
191
  const distributionType = await new SelectIosDistributionTypeGraphqlFromBuildProfile_1.SelectIosDistributionTypeGraphqlFromBuildProfile(buildProfile).runAsync(ctx);
176
- if (action === Actions_1.IosActionType.SetupBuildCredentialsFromCredentialsJson) {
177
- await new SetupBuildCredentialsFromCredentialsJson_1.SetupBuildCredentialsFromCredentialsJson(app, targets, distributionType).runAsync(ctx);
192
+ if (action === Actions_1.IosActionType.SetUpBuildCredentialsFromCredentialsJson) {
193
+ await new SetUpBuildCredentialsFromCredentialsJson_1.SetUpBuildCredentialsFromCredentialsJson(app, targets, distributionType).runAsync(ctx);
178
194
  return;
179
195
  }
180
196
  else if (action === Actions_1.IosActionType.UpdateCredentialsJson) {
@@ -217,14 +233,14 @@ class ManageIos {
217
233
  }
218
234
  return;
219
235
  }
220
- case Actions_1.IosActionType.SetupPushKey: {
221
- const setupPushKeyAction = await new SetupPushKey_1.SetupPushKey(appLookupParams);
236
+ case Actions_1.IosActionType.SetUpPushKey: {
237
+ const setupPushKeyAction = await new SetUpPushKey_1.SetUpPushKey(appLookupParams);
222
238
  const isPushKeySetup = await setupPushKeyAction.isPushKeySetupAsync(ctx);
223
239
  if (isPushKeySetup) {
224
240
  log_1.default.log(`Push Key is already set up for ${appLookupParams.projectName} ${appLookupParams.bundleIdentifier}`);
225
241
  }
226
242
  else {
227
- await new SetupPushKey_1.SetupPushKey(appLookupParams).runAsync(ctx);
243
+ await new SetUpPushKey_1.SetUpPushKey(appLookupParams).runAsync(ctx);
228
244
  }
229
245
  return;
230
246
  }
@@ -245,6 +261,29 @@ class ManageIos {
245
261
  }
246
262
  return;
247
263
  }
264
+ case Actions_1.IosActionType.SetUpAscApiKeyForSubmissions: {
265
+ await new SetUpAscApiKey_1.SetUpAscApiKey(appLookupParams, AscApiKeyUtils_1.AppStoreApiKeyPurpose.SUBMISSION_SERVICE).runAsync(ctx);
266
+ return;
267
+ }
268
+ case Actions_1.IosActionType.UseExistingAscApiKeyForSubmissions: {
269
+ const ascApiKey = await (0, AscApiKeyUtils_1.selectAscApiKeysFromAccountAsync)(ctx, appLookupParams.account, {
270
+ filterDifferentAppleTeam: true,
271
+ });
272
+ if (ascApiKey) {
273
+ await new AssignAscApiKey_1.AssignAscApiKey(appLookupParams).runAsync(ctx, ascApiKey, AscApiKeyUtils_1.AppStoreApiKeyPurpose.SUBMISSION_SERVICE);
274
+ }
275
+ return;
276
+ }
277
+ case Actions_1.IosActionType.CreateAscApiKeyForSubmissions: {
278
+ const ascApiKey = await new CreateAscApiKey_1.CreateAscApiKey(appLookupParams.account).runAsync(ctx, AscApiKeyUtils_1.AppStoreApiKeyPurpose.SUBMISSION_SERVICE);
279
+ const confirm = await (0, prompts_1.confirmAsync)({
280
+ message: `Do you want ${appLookupParams.projectName} to use the new Api Key?`,
281
+ });
282
+ if (confirm) {
283
+ await new AssignAscApiKey_1.AssignAscApiKey(appLookupParams).runAsync(ctx, ascApiKey, AscApiKeyUtils_1.AppStoreApiKeyPurpose.SUBMISSION_SERVICE);
284
+ }
285
+ return;
286
+ }
248
287
  default:
249
288
  throw new Error('Unknown action selected');
250
289
  }
@@ -253,10 +292,10 @@ class ManageIos {
253
292
  log_1.default.log(`Setting up ${appLookupParams.projectName} to use Distribution Certificate`);
254
293
  log_1.default.log(`Creating provisioning profile...`);
255
294
  if (distributionType === generated_1.IosDistributionType.AdHoc) {
256
- return await new SetupAdhocProvisioningProfile_1.SetupAdhocProvisioningProfile(appLookupParams).runWithDistributionCertificateAsync(ctx, distCert);
295
+ return await new SetUpAdhocProvisioningProfile_1.SetUpAdhocProvisioningProfile(appLookupParams).runWithDistributionCertificateAsync(ctx, distCert);
257
296
  }
258
297
  else {
259
- return await new SetupProvisioningProfile_1.SetupProvisioningProfile(appLookupParams, distributionType).createAndAssignProfileAsync(ctx, distCert);
298
+ return await new SetUpProvisioningProfile_1.SetUpProvisioningProfile(appLookupParams, distributionType).createAndAssignProfileAsync(ctx, distCert);
260
299
  }
261
300
  }
262
301
  async selectTargetAsync(targets) {
@@ -13,4 +13,5 @@ export declare type CredentialSchema<T> = {
13
13
  transformResultAsync?: (answers: Partial<T>) => Promise<T>;
14
14
  };
15
15
  export declare function askForUserProvidedAsync<T>(schema: CredentialSchema<T>, initialValues?: Partial<T>): Promise<T | null>;
16
- export declare function getCredentialsFromUserAsync<T>(credentialsSchema: CredentialSchema<T>, initialValues: Partial<T>): Promise<T>;
16
+ export declare function getCredentialsFromUserAsync<T>(credentialsSchema: CredentialSchema<T>, initialValues?: Partial<T>): Promise<T>;
17
+ export declare function shouldAutoGenerateCredentialsAsync<T>(schema: CredentialSchema<T>): Promise<boolean>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCredentialsFromUserAsync = exports.askForUserProvidedAsync = void 0;
3
+ exports.shouldAutoGenerateCredentialsAsync = exports.getCredentialsFromUserAsync = exports.askForUserProvidedAsync = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const fs_extra_1 = (0, tslib_1.__importDefault)(require("fs-extra"));
6
6
  const path_1 = (0, tslib_1.__importDefault)(require("path"));
@@ -29,7 +29,7 @@ async function askForUserProvidedAsync(schema, initialValues = {}) {
29
29
  return await getCredentialsFromUserAsync(schema, initialValues);
30
30
  }
31
31
  exports.askForUserProvidedAsync = askForUserProvidedAsync;
32
- async function getCredentialsFromUserAsync(credentialsSchema, initialValues) {
32
+ async function getCredentialsFromUserAsync(credentialsSchema, initialValues = {}) {
33
33
  var _a;
34
34
  const results = {};
35
35
  for (const question of credentialsSchema.questions) {
@@ -48,6 +48,7 @@ async function shouldAutoGenerateCredentialsAsync(schema) {
48
48
  });
49
49
  return answer;
50
50
  }
51
+ exports.shouldAutoGenerateCredentialsAsync = shouldAutoGenerateCredentialsAsync;
51
52
  async function askQuestionAndProcessAnswerAsync(definition, initialValue) {
52
53
  const questionObject = buildQuestionObject(definition, initialValue);
53
54
  const { input } = await (0, prompts_1.promptAsync)(questionObject);
@@ -13,7 +13,7 @@ const api_1 = require("../api");
13
13
  const log_1 = (0, tslib_1.__importDefault)(require("../log"));
14
14
  const sessionStorage_1 = require("../user/sessionStorage");
15
15
  exports.graphqlClient = (0, core_1.createClient)({
16
- url: (0, api_1.getExpoApiBaseUrl)() + '/--/graphql',
16
+ url: (0, api_1.getExpoApiBaseUrl)() + '/graphql',
17
17
  exchanges: [
18
18
  core_1.dedupExchange,
19
19
  core_1.cacheExchange,