From baf94a21c391772b7eb623a4b6e9a95017f53ca2 Mon Sep 17 00:00:00 2001 From: Quinlan Jung Date: Fri, 11 Aug 2023 11:35:47 -0700 Subject: [PATCH 001/105] [eas-cli] more branch map utility functions (#2001) * [eas-cli] more branch map utility functions * update CHANGELOG.md * feedback --- CHANGELOG.md | 2 ++ .../src/rollout/__tests__/branch-mapping-test.ts | 12 ++++++++++++ packages/eas-cli/src/rollout/branch-mapping.ts | 11 +++++++++++ 3 files changed, 25 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d02603448e..6229ce306a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ This is the log of notable changes to EAS CLI and related packages. ### 🧹 Chores +- More branch map utility functions. ([#2001](https://github.com/expo/eas-cli/pull/2001) by [@quinlanj](https://github.com/quinlanj)) + ## [4.1.2](https://github.com/expo/eas-cli/releases/tag/v4.1.2) - 2023-08-10 ### 🧹 Chores diff --git a/packages/eas-cli/src/rollout/__tests__/branch-mapping-test.ts b/packages/eas-cli/src/rollout/__tests__/branch-mapping-test.ts index 58b1aa69bc..ff60d00b3a 100644 --- a/packages/eas-cli/src/rollout/__tests__/branch-mapping-test.ts +++ b/packages/eas-cli/src/rollout/__tests__/branch-mapping-test.ts @@ -18,6 +18,7 @@ import { assertRolloutBranchMapping, composeRollout, createRolloutBranchMapping, + doesTargetRollout, editRolloutBranchMapping, getRollout, getRolloutInfo, @@ -33,6 +34,17 @@ import { standardBranchMapping, } from './fixtures'; +describe(doesTargetRollout, () => { + it('detects whether a runtime targets a constrained rollout', () => { + expect(doesTargetRollout(rolloutBranchMapping, '1.0.0')).toBe(true); + expect(doesTargetRollout(rolloutBranchMapping, '2.0.0')).toBe(false); + }); + it('should always return true if the rollout is unconstrained', () => { + expect(doesTargetRollout(rolloutBranchMappingLegacy, '1.0.0')).toBe(true); + expect(doesTargetRollout(rolloutBranchMappingLegacy, '2.0.0')).toBe(true); + }); +}); + describe(composeRollout, () => { it('composes a rollout', () => { const rollout = getRollout(channelInfoWithBranches); diff --git a/packages/eas-cli/src/rollout/branch-mapping.ts b/packages/eas-cli/src/rollout/branch-mapping.ts index f51966c56e..a56ce8ceac 100644 --- a/packages/eas-cli/src/rollout/branch-mapping.ts +++ b/packages/eas-cli/src/rollout/branch-mapping.ts @@ -257,6 +257,17 @@ export function isRollout(channelInfo: ChannelBasicInfo): boolean { return isRolloutBranchMapping(branchMapping); } +export function doesTargetRollout( + branchMapping: RolloutBranchMapping, + runtimeVersion: string +): boolean { + const rolloutInfo = getRolloutInfoFromBranchMapping(branchMapping); + if (!isConstrainedRolloutInfo(rolloutInfo)) { + return true; + } + return rolloutInfo.runtimeVersion === runtimeVersion; +} + export function createRolloutBranchMapping({ defaultBranchId, rolloutBranchId, From 6bdee0f3956cbf6e6bdec0c4801af340b7bbc542 Mon Sep 17 00:00:00 2001 From: Will Schurman Date: Mon, 14 Aug 2023 17:28:06 -0400 Subject: [PATCH 002/105] [eas-cli][update] Only export at most ios and android dist (#2002) --- CHANGELOG.md | 2 ++ .../eas-cli/src/commands/update/roll-back-to-embedded.ts | 6 +++++- packages/eas-cli/src/project/publish.ts | 9 +++++---- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6229ce306a..9a541d4d6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ›  Breaking changes +- Only export at most ios and android dist for EAS updates. ([#2002](https://github.com/expo/eas-cli/pull/2002) by [@wschurman](https://github.com/wschurman)) + ### πŸŽ‰ New features ### πŸ› Bug fixes diff --git a/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts b/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts index 403aab43c5..7795afe7c3 100644 --- a/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts +++ b/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts @@ -86,7 +86,11 @@ export default class UpdateRollBackToEmbedded extends EasCommand { }), platform: Flags.enum({ char: 'p', - options: [...defaultPublishPlatforms, 'all'], + options: [ + // TODO: Add web when it's fully supported + ...defaultPublishPlatforms, + 'all', + ], default: 'all', required: false, }), diff --git a/packages/eas-cli/src/project/publish.ts b/packages/eas-cli/src/project/publish.ts index 540a2ce8f3..5cffd9330b 100644 --- a/packages/eas-cli/src/project/publish.ts +++ b/packages/eas-cli/src/project/publish.ts @@ -193,6 +193,9 @@ export async function buildBundlesAsync({ throw new Error('Could not locate package.json'); } + const platformArgs = + platformFlag === 'all' ? ['--platform', 'ios', '--platform', 'android'] : [platformFlag]; + if (shouldUseVersionedExpoCLI(projectDir, exp)) { await expoCommandAsync(projectDir, [ 'export', @@ -200,8 +203,7 @@ export async function buildBundlesAsync({ inputDir, '--dump-sourcemap', '--dump-assetmap', - '--platform', - platformFlag, + ...platformArgs, ...(clearCache ? ['--clear'] : []), ]); } else { @@ -214,8 +216,7 @@ export async function buildBundlesAsync({ '--non-interactive', '--dump-sourcemap', '--dump-assetmap', - '--platform', - platformFlag, + ...platformArgs, ...(clearCache ? ['--clear'] : []), ]); } From 32142b4fe85504622497feb384b918974cb6675e Mon Sep 17 00:00:00 2001 From: Quinlan Jung Date: Mon, 14 Aug 2023 14:51:29 -0700 Subject: [PATCH 003/105] [eas-cli] more branch mapping utils (#2003) * [eas-cli] more branch mapping utils * update CHANGELOG.md --- CHANGELOG.md | 1 + .../eas-cli/src/channel/__tests__/branch-mapping-test.ts | 7 +++++++ packages/eas-cli/src/channel/branch-mapping.ts | 7 +++++++ 3 files changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a541d4d6a..81b60fd502 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ This is the log of notable changes to EAS CLI and related packages. ### 🧹 Chores - More branch map utility functions. ([#2001](https://github.com/expo/eas-cli/pull/2001) by [@quinlanj](https://github.com/quinlanj)) +- More branch mapping utils. ([#2003](https://github.com/expo/eas-cli/pull/2003) by [@quinlanj](https://github.com/quinlanj)) ## [4.1.2](https://github.com/expo/eas-cli/releases/tag/v4.1.2) - 2023-08-10 diff --git a/packages/eas-cli/src/channel/__tests__/branch-mapping-test.ts b/packages/eas-cli/src/channel/__tests__/branch-mapping-test.ts index f25f0dbb21..197554394b 100644 --- a/packages/eas-cli/src/channel/__tests__/branch-mapping-test.ts +++ b/packages/eas-cli/src/channel/__tests__/branch-mapping-test.ts @@ -8,6 +8,7 @@ import { assertVersion, getAlwaysTrueBranchMapping, getBranchMapping, + getEmptyBranchMapping, getStandardBranchId, isAlwaysTrueBranchMapping, isEmptyBranchMapping, @@ -24,6 +25,12 @@ describe(assertVersion, () => { }); }); +describe(getEmptyBranchMapping, () => { + it('gets an empty branch mapping', () => { + expect(isEmptyBranchMapping(getEmptyBranchMapping())).toBe(true); + }); +}); + describe(isEmptyBranchMapping, () => { it('detects empty branch mappings', () => { expect(isEmptyBranchMapping(emptyBranchMapping)).toBe(true); diff --git a/packages/eas-cli/src/channel/branch-mapping.ts b/packages/eas-cli/src/channel/branch-mapping.ts index 89e3b0d2ce..dbc6ccd819 100644 --- a/packages/eas-cli/src/channel/branch-mapping.ts +++ b/packages/eas-cli/src/channel/branch-mapping.ts @@ -50,6 +50,13 @@ export type EmptyBranchMapping = { data: []; }; +export function getEmptyBranchMapping(): EmptyBranchMapping { + return { + version: 0, + data: [], + }; +} + export function getAlwaysTrueBranchMapping(branchId: string): AlwaysTrueBranchMapping { return { version: 0, From d6c76237181da722570565877a7d2f95616b260b Mon Sep 17 00:00:00 2001 From: Will Schurman Date: Tue, 15 Aug 2023 11:36:18 -0400 Subject: [PATCH 004/105] [eas-cli][eas-update] Add rollback disambiguation command (#2004) --- CHANGELOG.md | 2 + .../update/__tests__/republish.test.ts | 6 -- .../eas-cli/src/commands/update/republish.ts | 67 +++++++++++++++---- .../eas-cli/src/commands/update/rollback.ts | 42 ++++++++++++ 4 files changed, 99 insertions(+), 18 deletions(-) create mode 100644 packages/eas-cli/src/commands/update/rollback.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 81b60fd502..d2bfa9c6c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features +- Add rollback disambiguation command. ([#2004](https://github.com/expo/eas-cli/pull/2004) by [@wschurman](https://github.com/wschurman)) + ### πŸ› Bug fixes ### 🧹 Chores diff --git a/packages/eas-cli/src/commands/update/__tests__/republish.test.ts b/packages/eas-cli/src/commands/update/__tests__/republish.test.ts index 222c546362..725e993b29 100644 --- a/packages/eas-cli/src/commands/update/__tests__/republish.test.ts +++ b/packages/eas-cli/src/commands/update/__tests__/republish.test.ts @@ -57,12 +57,6 @@ jest.mock('../../../fetch'); describe(UpdateRepublish.name, () => { afterEach(() => vol.reset()); - it('errors without --channel, --branch, or --group', async () => { - await expect(new UpdateRepublish([], commandOptions).run()).rejects.toThrow( - '--channel, --branch, or --group must be specified' - ); - }); - it('errors when providing both --group and --branch', async () => { const flags = ['--group=1234', '--branch=main']; diff --git a/packages/eas-cli/src/commands/update/republish.ts b/packages/eas-cli/src/commands/update/republish.ts index b60a02957e..8ee6b29d2a 100644 --- a/packages/eas-cli/src/commands/update/republish.ts +++ b/packages/eas-cli/src/commands/update/republish.ts @@ -1,6 +1,8 @@ import { Platform } from '@expo/config'; import { Flags } from '@oclif/core'; +import { selectBranchOnAppAsync } from '../../branch/queries'; +import { selectChannelOnAppAsync } from '../../channel/queries'; import EasCommand from '../../commandUtils/EasCommand'; import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient'; import { EasNonInteractiveAndJsonFlags } from '../../commandUtils/flags'; @@ -151,9 +153,6 @@ export default class UpdateRepublish extends EasCommand { if (nonInteractive && !groupId) { throw new Error('Only --group can be used in non-interactive mode'); } - if (!groupId && !(branchName || channelName)) { - throw new Error(`--channel, --branch, or --group must be specified`); - } const platform = rawFlags.platform === 'all' ? defaultRepublishPlatforms : ([rawFlags.platform] as Platform[]); @@ -190,6 +189,10 @@ async function getOrAskUpdatesAsync( })); } + if (flags.nonInteractive) { + throw new Error('Must supply --group when in non-interactive mode'); + } + if (flags.branchName) { return await askUpdatesFromBranchNameAsync(graphqlClient, { ...flags, @@ -206,7 +209,55 @@ async function getOrAskUpdatesAsync( }); } - throw new Error('--channel, --branch, or --group is required'); + const { choice } = await promptAsync({ + type: 'select', + message: 'Find update by branch or channel?', + name: 'choice', + choices: [ + { title: 'Branch', value: 'branch' }, + { title: 'Channel', value: 'channel' }, + ], + }); + + if (choice === 'channel') { + const { name } = await selectChannelOnAppAsync(graphqlClient, { + projectId, + selectionPromptTitle: 'Select a channel to view', + paginatedQueryOptions: { + json: flags.json, + nonInteractive: flags.nonInteractive, + offset: 0, + }, + }); + + return await askUpdatesFromChannelNameAsync(graphqlClient, { + ...flags, + channelName: name, + projectId, + }); + } else if (choice === 'branch') { + const { name } = await selectBranchOnAppAsync(graphqlClient, { + projectId, + promptTitle: 'Select branch from which to choose update', + displayTextForListItem: updateBranch => ({ + title: updateBranch.name, + }), + // discard limit and offset because this query is not their intended target + paginatedQueryOptions: { + json: flags.json, + nonInteractive: flags.nonInteractive, + offset: 0, + }, + }); + + return await askUpdatesFromBranchNameAsync(graphqlClient, { + ...flags, + branchName: name, + projectId, + }); + } else { + throw new Error('Must choose update via channel or branch'); + } } /** Ask the user which update needs to be republished by branch name, this requires interactive mode */ @@ -219,10 +270,6 @@ async function askUpdatesFromBranchNameAsync( nonInteractive, }: { projectId: string; branchName: string; json: boolean; nonInteractive: boolean } ): Promise { - if (nonInteractive) { - throw new Error('Must supply --group when in non-interactive mode'); - } - const updateGroup = await selectUpdateGroupOnBranchAsync(graphqlClient, { projectId, branchName, @@ -246,10 +293,6 @@ async function askUpdatesFromChannelNameAsync( nonInteractive, }: { projectId: string; channelName: string; json: boolean; nonInteractive: boolean } ): Promise { - if (nonInteractive) { - throw new Error('Must supply --group when in non-interactive mode'); - } - const branchName = await getBranchNameFromChannelNameAsync(graphqlClient, projectId, channelName); return await askUpdatesFromBranchNameAsync(graphqlClient, { diff --git a/packages/eas-cli/src/commands/update/rollback.ts b/packages/eas-cli/src/commands/update/rollback.ts new file mode 100644 index 0000000000..4bd71812dc --- /dev/null +++ b/packages/eas-cli/src/commands/update/rollback.ts @@ -0,0 +1,42 @@ +import { Flags } from '@oclif/core'; + +import EasCommand from '../../commandUtils/EasCommand'; +import { promptAsync } from '../../prompts'; +import UpdateRepublish from './republish'; +import UpdateRollBackToEmbedded from './roll-back-to-embedded'; + +export default class UpdateRollback extends EasCommand { + static override description = 'roll back to an embedded update or an existing update'; + + static override hidden = true; + + static override flags = { + 'private-key-path': Flags.string({ + description: `File containing the PEM-encoded private key corresponding to the certificate in expo-updates' configuration. Defaults to a file named "private-key.pem" in the certificate's directory.`, + required: false, + }), + }; + + async runAsync(): Promise { + const { flags } = await this.parse(UpdateRollback); + + const { choice } = await promptAsync({ + type: 'select', + message: 'Which type of update would you like to roll back to?', + name: 'choice', + choices: [ + { title: 'Published Update', value: 'published' }, + { title: 'Embedded Update', value: 'embedded' }, + ], + }); + + const privateKeyPathArg = flags['private-key-path'] + ? ['--private-key-path', flags['private-key-path']] + : []; + if (choice === 'published') { + await UpdateRepublish.run(privateKeyPathArg); + } else { + await UpdateRollBackToEmbedded.run(privateKeyPathArg); + } + } +} From 6cb02d0ccda36fff5569cb5347a762b57961dbb2 Mon Sep 17 00:00:00 2001 From: Will Schurman Date: Tue, 15 Aug 2023 11:39:24 -0400 Subject: [PATCH 005/105] [eas-cli][eas-update] Support republishing roll back to embedded updates (#2006) --- CHANGELOG.md | 2 + packages/eas-cli/src/update/republish.ts | 66 ++++++++++++++++-------- 2 files changed, 46 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d2bfa9c6c1..fc97fefd7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ› Bug fixes +- Support republishing roll back to embedded updates. ([#2006](https://github.com/expo/eas-cli/pull/2006) by [@wschurman](https://github.com/wschurman)) + ### 🧹 Chores - More branch map utility functions. ([#2001](https://github.com/expo/eas-cli/pull/2001) by [@quinlanj](https://github.com/quinlanj)) diff --git a/packages/eas-cli/src/update/republish.ts b/packages/eas-cli/src/update/republish.ts index a7f3be2860..3fc413e20e 100644 --- a/packages/eas-cli/src/update/republish.ts +++ b/packages/eas-cli/src/update/republish.ts @@ -5,14 +5,16 @@ import nullthrows from 'nullthrows'; import { getUpdateGroupUrl } from '../build/utils/url'; import { ExpoGraphqlClient } from '../commandUtils/context/contextUtils/createGraphqlClient'; import fetch from '../fetch'; -import { Update, UpdateInfoGroup } from '../graphql/generated'; +import { UpdateFragment, UpdateInfoGroup } from '../graphql/generated'; import { PublishMutation } from '../graphql/mutations/PublishMutation'; import Log, { link } from '../log'; import { ora } from '../ora'; import { getOwnerAccountForProjectIdAsync } from '../project/projectUtils'; import { CodeSigningInfo, + checkDirectiveBodyAgainstUpdateInfoGroup, checkManifestBodyAgainstUpdateInfoGroup, + getDirectiveBodyAsync, getManifestBodyAsync, signBody, } from '../utils/code-signing'; @@ -23,15 +25,7 @@ export type UpdateToRepublish = { groupId: string; branchId: string; branchName: string; -} & Pick< - Update, - | 'message' - | 'runtimeVersion' - | 'manifestFragment' - | 'platform' - | 'gitCommitHash' - | 'codeSigningInfo' ->; +} & UpdateFragment; /** * @param updatesToPublish The update group to republish @@ -65,6 +59,13 @@ export async function republishAsync({ update.branchName === arbitraryUpdate.branchName && update.runtimeVersion === arbitraryUpdate.runtimeVersion; assert(updatesToPublish.every(isSameGroup), 'All updates must belong to the same update group'); + + assert( + updatesToPublish.every(u => u.isRollBackToEmbedded) || + updatesToPublish.every(u => !u.isRollBackToEmbedded), + 'All updates must either be roll back to embedded updates or not' + ); + const { runtimeVersion } = arbitraryUpdate; // If codesigning was created for the original update, we need to add it to the republish. @@ -96,16 +97,25 @@ export async function republishAsync({ let updatesRepublished: Awaited>; try { - const updateInfoGroup = Object.fromEntries( - updatesToPublish.map(update => [update.platform, JSON.parse(update.manifestFragment)]) - ); + const arbitraryUpdate = updatesToPublish[0]; + const objectToMergeIn = arbitraryUpdate.isRollBackToEmbedded + ? { + rollBackToEmbeddedInfoGroup: Object.fromEntries( + updatesToPublish.map(update => [update.platform, true]) + ), + } + : { + updateInfoGroup: Object.fromEntries( + updatesToPublish.map(update => [update.platform, JSON.parse(update.manifestFragment)]) + ), + }; updatesRepublished = await PublishMutation.publishUpdateGroupAsync(graphqlClient, [ { branchId: targetBranchId, runtimeVersion, message: updateMessage, - updateInfoGroup, + ...objectToMergeIn, gitCommitHash: updatesToPublish[0].gitCommitHash, awaitingCodeSigningInfo: !!codeSigningInfo, }, @@ -120,19 +130,31 @@ export async function republishAsync({ method: 'GET', headers: { accept: 'multipart/mixed' }, }); - const manifestBody = nullthrows(await getManifestBodyAsync(response)); - - checkManifestBodyAgainstUpdateInfoGroup( - manifestBody, - nullthrows(nullthrows(updateInfoGroup)[newUpdate.platform as keyof UpdateInfoGroup]) - ); - const manifestSignature = signBody(manifestBody, codeSigningInfo); + let signature; + if (newUpdate.isRollBackToEmbedded) { + const directiveBody = nullthrows(await getDirectiveBodyAsync(response)); + + checkDirectiveBodyAgainstUpdateInfoGroup(directiveBody); + signature = signBody(directiveBody, codeSigningInfo); + } else { + const manifestBody = nullthrows(await getManifestBodyAsync(response)); + + checkManifestBodyAgainstUpdateInfoGroup( + manifestBody, + nullthrows( + nullthrows(objectToMergeIn.updateInfoGroup)[ + newUpdate.platform as keyof UpdateInfoGroup + ] + ) + ); + signature = signBody(manifestBody, codeSigningInfo); + } await PublishMutation.setCodeSigningInfoAsync(graphqlClient, newUpdate.id, { alg: codeSigningInfo.codeSigningMetadata.alg, keyid: codeSigningInfo.codeSigningMetadata.keyid, - sig: manifestSignature, + sig: signature, }); }) ); From 78ea88cc5f2410b63a01f5b1dc94be78f3d0b8f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rados=C5=82aw=20Krzemie=C5=84?= Date: Thu, 24 Aug 2023 15:35:48 +0200 Subject: [PATCH 006/105] [eas-cli] [ENG-7591] Detect not provisioned devices (#2011) * [eas-cli] Detect not provisioned devices After selecting devices to be provisioned and making a call to App Store Connect API the result is compared with the list of chosen devices. If any are missing, a message is displayed to the user See: https://linear.app/expo/issue/ENG-7591/detect-processing-devices-on-apple-developer-portal-and-dont-allow-the * [eas-cli] Adjust message Updated the message with the link to the devices page in the Apple Developer portal See: https://linear.app/expo/issue/ENG-7591/detect-processing-devices-on-apple-developer-portal-and-dont-allow-the * update CHANGELOG.md --- CHANGELOG.md | 1 + .../actions/SetUpAdhocProvisioningProfile.ts | 18 ++- .../SetUpAdhocProvisioningProfile-test.ts | 137 +++++++++++++++++- 3 files changed, 154 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fc97fefd7e..1094466120 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features - Add rollback disambiguation command. ([#2004](https://github.com/expo/eas-cli/pull/2004) by [@wschurman](https://github.com/wschurman)) +- Detect devices that fail to be provisioned, list them to the user and show the explanation message with the link to the devices page to check actual status. ([#2011](https://github.com/expo/eas-cli/pull/2011) by [@radoslawkrzemien](https://github.com/radoslawkrzemien)) ### πŸ› Bug fixes diff --git a/packages/eas-cli/src/credentials/ios/actions/SetUpAdhocProvisioningProfile.ts b/packages/eas-cli/src/credentials/ios/actions/SetUpAdhocProvisioningProfile.ts index a9be9f1c1c..0e63a37f40 100644 --- a/packages/eas-cli/src/credentials/ios/actions/SetUpAdhocProvisioningProfile.ts +++ b/packages/eas-cli/src/credentials/ios/actions/SetUpAdhocProvisioningProfile.ts @@ -177,7 +177,23 @@ export class SetUpAdhocProvisioningProfile { ); } - // 6. Create (or update) app build credentials + // 6. Compare selected devices with the ones actually provisioned + const diffList = differenceBy( + chosenDevices, + appleProvisioningProfile.appleDevices, + 'identifier' + ); + if (diffList && diffList.length > 0) { + Log.warn(`Failed to provision ${diffList.length} of the selected devices:`); + for (const missingDevice of diffList) { + Log.warn(`- ${formatDeviceLabel(missingDevice)}`); + } + Log.log( + 'Most commonly devices fail to to be provisioned while they are still being processed by Apple, which can take up to 24-72 hours. Check your Apple Developer Portal page at https://developer.apple.com/account/resources/devices/list, the devices in "Processing" status cannot be provisioned yet' + ); + } + + // 7. Create (or update) app build credentials assert(appleProvisioningProfile); return await assignBuildCredentialsAsync( ctx, diff --git a/packages/eas-cli/src/credentials/ios/actions/__tests__/SetUpAdhocProvisioningProfile-test.ts b/packages/eas-cli/src/credentials/ios/actions/__tests__/SetUpAdhocProvisioningProfile-test.ts index 33c7bd7dcd..51e2d5eca0 100644 --- a/packages/eas-cli/src/credentials/ios/actions/__tests__/SetUpAdhocProvisioningProfile-test.ts +++ b/packages/eas-cli/src/credentials/ios/actions/__tests__/SetUpAdhocProvisioningProfile-test.ts @@ -1,4 +1,38 @@ -import { doUDIDsMatch } from '../SetUpAdhocProvisioningProfile'; +import { Env } from '@expo/eas-build-job'; +import { EasJson } from '@expo/eas-json'; + +import { Analytics } from '../../../../analytics/AnalyticsManager'; +import { ExpoGraphqlClient } from '../../../../commandUtils/context/contextUtils/createGraphqlClient'; +import { + Account, + AppleAppIdentifierFragment, + AppleDevice, + AppleDeviceClass, + AppleDeviceFragment, + AppleDistributionCertificateFragment, + IosAppBuildCredentialsFragment, +} from '../../../../graphql/generated'; +import Log from '../../../../log'; +import { getApplePlatformFromTarget } from '../../../../project/ios/target'; +import { Actor } from '../../../../user/User'; +import { CredentialsContext, CredentialsContextProjectInfo } from '../../../context'; +import { ProvisioningProfile } from '../../appstore/Credentials.types'; +import { ApplePlatform } from '../../appstore/constants'; +import { assignBuildCredentialsAsync, getBuildCredentialsAsync } from '../BuildCredentialsUtils'; +import { chooseDevicesAsync } from '../DeviceUtils'; +import { SetUpAdhocProvisioningProfile, doUDIDsMatch } from '../SetUpAdhocProvisioningProfile'; + +jest.mock('../BuildCredentialsUtils'); +jest.mock('../../../context'); +jest.mock('../../../ios/api/GraphqlClient'); +jest.mock('../DeviceUtils', () => { + return { + __esModule: true, + chooseDevicesAsync: jest.fn(), + formatDeviceLabel: jest.requireActual('../DeviceUtils').formatDeviceLabel, + }; +}); +jest.mock('../../../../project/ios/target'); describe(doUDIDsMatch, () => { it('return false if UDIDs do not match', () => { @@ -12,3 +46,104 @@ describe(doUDIDsMatch, () => { expect(doUDIDsMatch(udidsA, udidsB)).toBe(true); }); }); +describe('runWithDistributionCertificateAsync', () => { + beforeEach(() => { + jest.resetAllMocks(); + }); + const setUpAdhocProvisioningProfile = new SetUpAdhocProvisioningProfile({ + app: { account: {} as Account, projectName: 'projName', bundleIdentifier: 'bundleId' }, + target: { targetName: 'targetName', bundleIdentifier: 'bundleId', entitlements: {} }, + }); + describe('compare chosen and provisioned devices', () => { + describe('not all devices provisioned', () => { + it('displays warning to the user and lists the missing devices', async () => { + const { ctx, distCert } = setUpTest(); + jest.mocked(getBuildCredentialsAsync).mockResolvedValue({ + provisioningProfile: { + appleTeam: {}, + appleDevices: [{ identifier: 'id1' }], + developerPortalIdentifier: 'provisioningProfileId', + }, + } as IosAppBuildCredentialsFragment); + const LogWarnSpy = jest.spyOn(Log, 'warn'); + const LogLogSpy = jest.spyOn(Log, 'log'); + const result = await setUpAdhocProvisioningProfile.runWithDistributionCertificateAsync( + ctx, + distCert + ); + expect(result).toEqual({} as IosAppBuildCredentialsFragment); + expect(LogWarnSpy).toHaveBeenCalledTimes(3); + expect(LogWarnSpy).toHaveBeenCalledWith('Failed to provision 2 of the selected devices:'); + expect(LogWarnSpy).toHaveBeenCalledWith('- id2 (iPhone) (Device 2)'); + expect(LogWarnSpy).toHaveBeenCalledWith('- id3 (Mac) (Device 3)'); + expect(LogLogSpy).toHaveBeenCalledTimes(1); + expect(LogLogSpy).toHaveBeenCalledWith( + 'Most commonly devices fail to to be provisioned while they are still being processed by Apple, which can take up to 24-72 hours. Check your Apple Developer Portal page at https://developer.apple.com/account/resources/devices/list, the devices in "Processing" status cannot be provisioned yet' + ); + }); + }); + describe('all devices provisioned', () => { + it('does not display warning', async () => { + const { ctx, distCert } = setUpTest(); + jest.mocked(getBuildCredentialsAsync).mockResolvedValue({ + provisioningProfile: { + appleTeam: {}, + appleDevices: [{ identifier: 'id1' }, { identifier: 'id2' }, { identifier: 'id3' }], + developerPortalIdentifier: 'provisioningProfileId', + }, + } as IosAppBuildCredentialsFragment); + const LogWarnSpy = jest.spyOn(Log, 'warn'); + const LogLogSpy = jest.spyOn(Log, 'log'); + const result = await setUpAdhocProvisioningProfile.runWithDistributionCertificateAsync( + ctx, + distCert + ); + expect(result).toEqual({} as IosAppBuildCredentialsFragment); + expect(LogWarnSpy).not.toHaveBeenCalled(); + expect(LogLogSpy).not.toHaveBeenCalled(); + }); + }); + }); +}); + +function setUpTest(): { ctx: CredentialsContext; distCert: AppleDistributionCertificateFragment } { + const ctx = jest.mocked( + new CredentialsContext( + {} as { + projectInfo: CredentialsContextProjectInfo | null; + easJsonCliConfig?: EasJson['cli']; + nonInteractive: boolean; + projectDir: string; + user: Actor; + graphqlClient: ExpoGraphqlClient; + analytics: Analytics; + env?: Env; + } + ) + ); + Object.defineProperty(ctx, 'ios', { value: jest.mock('../../../ios/api/GraphqlClient') }); + ctx.ios.getDevicesForAppleTeamAsync = jest + .fn() + .mockResolvedValue([ + { identifier: 'id1' }, + { identifier: 'id2' }, + { identifier: 'id3' }, + ] as AppleDeviceFragment[]); + jest.mocked(chooseDevicesAsync).mockResolvedValue([ + { identifier: 'id1', name: 'Device 1', deviceClass: AppleDeviceClass.Ipad }, + { identifier: 'id2', name: 'Device 2', deviceClass: AppleDeviceClass.Iphone }, + { identifier: 'id3', name: 'Device 3', deviceClass: AppleDeviceClass.Mac }, + ] as AppleDevice[]); + // @ts-ignore + jest.mocked(getApplePlatformFromTarget).mockResolvedValue(ApplePlatform.IOS); + Object.defineProperty(ctx, 'appStore', { value: jest.mock('../../appstore/AppStoreApi') }); + ctx.appStore.createOrReuseAdhocProvisioningProfileAsync = jest.fn().mockResolvedValue({ + provisioningProfileId: 'provisioningProfileId', + } as ProvisioningProfile); + ctx.ios.createOrGetExistingAppleAppIdentifierAsync = jest + .fn() + .mockResolvedValue({} as AppleAppIdentifierFragment); + jest.mocked(assignBuildCredentialsAsync).mockResolvedValue({} as IosAppBuildCredentialsFragment); + const distCert = {} as AppleDistributionCertificateFragment; + return { ctx, distCert }; +} From 5a1406d39c030c103fe78dbae07b28bcb76691dd Mon Sep 17 00:00:00 2001 From: Will Schurman Date: Thu, 24 Aug 2023 09:22:30 -0700 Subject: [PATCH 007/105] [eas-cli] Add info to EAS Update asset upload process about asset counts and limits (#2013) --- CHANGELOG.md | 1 + packages/eas-cli/src/commands/update/index.ts | 16 ++++++++++++++++ packages/eas-cli/src/log.ts | 4 ++++ packages/eas-cli/src/project/publish.ts | 6 ++++++ 4 files changed, 27 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1094466120..69db51155f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ This is the log of notable changes to EAS CLI and related packages. - Add rollback disambiguation command. ([#2004](https://github.com/expo/eas-cli/pull/2004) by [@wschurman](https://github.com/wschurman)) - Detect devices that fail to be provisioned, list them to the user and show the explanation message with the link to the devices page to check actual status. ([#2011](https://github.com/expo/eas-cli/pull/2011) by [@radoslawkrzemien](https://github.com/radoslawkrzemien)) +- Add info to EAS Update asset upload process about asset counts and limits. ([#2013](https://github.com/expo/eas-cli/pull/2013) by [@wschurman](https://github.com/wschurman)) ### πŸ› Bug fixes diff --git a/packages/eas-cli/src/commands/update/index.ts b/packages/eas-cli/src/commands/update/index.ts index be412db0ca..2747f1e6bf 100644 --- a/packages/eas-cli/src/commands/update/index.ts +++ b/packages/eas-cli/src/commands/update/index.ts @@ -35,6 +35,7 @@ import { getRuntimeVersionObjectAsync, getUpdateMessageForCommandAsync, isUploadedAssetCountAboveWarningThreshold, + platformDisplayNames, resolveInputDirectoryAsync, uploadAssetsAsync, } from '../../project/publish'; @@ -325,6 +326,21 @@ export default class UpdatePublish extends EasCommand { for (const uploadedAssetPath of uploadResults.uniqueUploadedAssetPaths) { Log.debug(chalk.dim(`- ${uploadedAssetPath}`)); } + + const platformString = (Object.keys(assets) as PublishPlatform[]) + .map(platform => { + const collectedAssetForPlatform = nullthrows(assets[platform]); + const totalAssetsForPlatform = collectedAssetForPlatform.assets.length + 1; // launch asset + const assetString = totalAssetsForPlatform === 1 ? 'asset' : 'assets'; + return `${totalAssetsForPlatform} ${platformDisplayNames[platform]} ${assetString}`; + }) + .join(', '); + Log.withInfo( + `${platformString} (maximum: ${assetLimitPerUpdateGroup} total per update). ${learnMore( + 'https://expo.fyi/eas-update-asset-limits', + { learnMoreMessage: 'Learn more about asset limits.' } + )}` + ); } catch (e) { assetSpinner.fail('Failed to upload'); throw e; diff --git a/packages/eas-cli/src/log.ts b/packages/eas-cli/src/log.ts index a4f4e8c71b..c1a6cbf1bd 100644 --- a/packages/eas-cli/src/log.ts +++ b/packages/eas-cli/src/log.ts @@ -57,6 +57,10 @@ export default class Log { Log.consoleLog(chalk.green(figures.tick), ...args); } + public static withInfo(...args: any[]): void { + Log.consoleLog(chalk.green(figures.info), ...args); + } + private static consoleLog(...args: any[]): void { Log.updateIsLastLineNewLine(args); // eslint-disable-next-line no-console diff --git a/packages/eas-cli/src/project/publish.ts b/packages/eas-cli/src/project/publish.ts index 5cffd9330b..deefacd394 100644 --- a/packages/eas-cli/src/project/publish.ts +++ b/packages/eas-cli/src/project/publish.ts @@ -683,3 +683,9 @@ export function getRuntimeToPlatformMappingFromRuntimeVersions( } return runtimeToPlatformMapping; } + +export const platformDisplayNames: Record = { + android: 'Android', + ios: 'iOS', + web: 'Web', +}; From 8c08541ca3fd1eb75692dcf50ac0d804d733349d Mon Sep 17 00:00:00 2001 From: Brent Vatne Date: Thu, 24 Aug 2023 17:06:03 -0700 Subject: [PATCH 008/105] Create SECURITY.md --- SECURITY.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 SECURITY.md diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000000..50182f4532 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,5 @@ +# Security Policy + +## Reporting a Vulnerability + +Instead of opening a GitHub issue for security vulnerabilities, send an email to our secure inbox: secure@expo.io. From 36b4296d3c4b09d09de044363c232a246b252cd6 Mon Sep 17 00:00:00 2001 From: Brent Vatne Date: Thu, 24 Aug 2023 17:09:47 -0700 Subject: [PATCH 009/105] [.github] Add issue template config --- .github/ISSUE_TEMPLATE/config.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/config.yml diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000..ad13ae60c8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Expo Developers Discord + url: https://chat.expo.dev/ + about: Join other developers in discussions regarding Expo and EAS. From c86550c0c8ff64f1ed8050c4031d0d966b4cde49 Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Fri, 25 Aug 2023 13:26:33 +0200 Subject: [PATCH 010/105] [eas-cli][eas-json] add `developmentClient` to metadata (#2015) * [eas-cli][eas-json] add `developmentClient` to metadata * update CHANGELOG.md --- CHANGELOG.md | 1 + packages/eas-cli/package.json | 2 +- packages/eas-cli/src/build/context.ts | 1 + packages/eas-cli/src/build/createContext.ts | 7 +++++++ packages/eas-cli/src/build/metadata.ts | 1 + packages/eas-json/package.json | 2 +- yarn.lock | 8 ++++---- 7 files changed, 16 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 69db51155f..db0689315f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ This is the log of notable changes to EAS CLI and related packages. - More branch map utility functions. ([#2001](https://github.com/expo/eas-cli/pull/2001) by [@quinlanj](https://github.com/quinlanj)) - More branch mapping utils. ([#2003](https://github.com/expo/eas-cli/pull/2003) by [@quinlanj](https://github.com/quinlanj)) +- Add `developmentClient` to metadata. ([#2015](https://github.com/expo/eas-cli/pull/2015) by [@szdziedzic](https://github.com/szdziedzic)) ## [4.1.2](https://github.com/expo/eas-cli/releases/tag/v4.1.2) - 2023-08-10 diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index 2f3c4915fe..99251ee617 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -13,7 +13,7 @@ "@expo/config": "8.1.2", "@expo/config-plugins": "7.2.4", "@expo/config-types": "49.0.0", - "@expo/eas-build-job": "1.0.30", + "@expo/eas-build-job": "1.0.39", "@expo/eas-json": "4.1.0", "@expo/json-file": "8.2.37", "@expo/multipart-body-parser": "1.1.0", diff --git a/packages/eas-cli/src/build/context.ts b/packages/eas-cli/src/build/context.ts index 5c3fcf0900..2a95a3684d 100644 --- a/packages/eas-cli/src/build/context.ts +++ b/packages/eas-cli/src/build/context.ts @@ -55,4 +55,5 @@ export interface BuildContext { customBuildConfigMetadata?: CustomBuildConfigMetadata; android: T extends Platform.ANDROID ? AndroidBuildContext : undefined; ios: T extends Platform.IOS ? IosBuildContext : undefined; + developmentClient: boolean; } diff --git a/packages/eas-cli/src/build/createContext.ts b/packages/eas-cli/src/build/createContext.ts index 02bea41261..4150677e20 100644 --- a/packages/eas-cli/src/build/createContext.ts +++ b/packages/eas-cli/src/build/createContext.ts @@ -60,6 +60,12 @@ export async function createBuildContextAsync({ const workflow = await resolveWorkflowAsync(projectDir, platform); const accountId = account.id; const runFromCI = getenv.boolish('CI', false); + const developmentClient = + buildProfile.developmentClient ?? + (platform === Platform.ANDROID + ? (buildProfile as BuildProfile)?.gradleCommand === ':app:assembleDebug' + : (buildProfile as BuildProfile)?.buildConfiguration === 'Debug') ?? + false; const credentialsCtx = new CredentialsContext({ projectInfo: { exp, projectId }, @@ -120,6 +126,7 @@ export async function createBuildContextAsync({ message, runFromCI, customBuildConfigMetadata, + developmentClient, }; if (platform === Platform.ANDROID) { const common = commonContext as CommonContext; diff --git a/packages/eas-cli/src/build/metadata.ts b/packages/eas-cli/src/build/metadata.ts index 77d10390d1..d498d87608 100644 --- a/packages/eas-cli/src/build/metadata.ts +++ b/packages/eas-cli/src/build/metadata.ts @@ -63,6 +63,7 @@ export async function collectMetadataAsync( runFromCI: ctx.runFromCI, buildMode: ctx.buildProfile.config ? BuildMode.CUSTOM : BuildMode.BUILD, customWorkflowName: ctx.customBuildConfigMetadata?.workflowName, + developmentClient: ctx.developmentClient, }; return sanitizeMetadata(metadata); } diff --git a/packages/eas-json/package.json b/packages/eas-json/package.json index 9c6f299e5e..8f81ac813f 100644 --- a/packages/eas-json/package.json +++ b/packages/eas-json/package.json @@ -6,7 +6,7 @@ "bugs": "https://github.com/expo/eas-cli/issues", "dependencies": { "@babel/code-frame": "7.18.6", - "@expo/eas-build-job": "1.0.30", + "@expo/eas-build-job": "1.0.39", "chalk": "4.1.2", "env-string": "1.0.1", "fs-extra": "10.1.0", diff --git a/yarn.lock b/yarn.lock index 479c164c06..7e72b3cf94 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1395,10 +1395,10 @@ slugify "^1.3.4" sucrase "^3.20.0" -"@expo/eas-build-job@1.0.30": - version "1.0.30" - resolved "https://registry.yarnpkg.com/@expo/eas-build-job/-/eas-build-job-1.0.30.tgz#f8c57a673a2cc328f4041346996c480c3d910e92" - integrity sha512-KQGn9POn5p3guMNQJ5ykG3wffRlSEpjTCLO87d5lJll9E4u1grpqHJH2chOh5ICxg7tiWcO4iXt5S8tU7Ogpig== +"@expo/eas-build-job@1.0.39": + version "1.0.39" + resolved "https://registry.yarnpkg.com/@expo/eas-build-job/-/eas-build-job-1.0.39.tgz#d3bc6cd50c499f07255bceeb9460e092a19505f7" + integrity sha512-OqCCxLx9HRMFQDiZvfpOfNmGhsTrV15IUOhmbp9iIa+uO/VyPpBvXqiA4ENCN9Jmf6yXtirIranCeJcm+jAuSA== dependencies: joi "^17.9.2" semver "^7.5.4" From 93c5dc1a324e74db5c1793c1373fde7fbc501d0c Mon Sep 17 00:00:00 2001 From: Piotr Szeremeta Date: Fri, 25 Aug 2023 15:46:55 +0200 Subject: [PATCH 011/105] [ENG-9422] nvmrc support for setting node version (#1998) * [ENG-9422][eas-cli] Use .nvmrc to set node version * update CHANGELOG.md --- CHANGELOG.md | 2 + .../eas-cli/src/build/runBuildAndSubmit.ts | 2 + .../eas-cli/src/commands/build/version/get.ts | 1 + .../src/commands/build/version/sync.ts | 1 + .../eas-cli/src/commands/metadata/lint.ts | 1 + .../eas-cli/src/commands/metadata/pull.ts | 1 + .../eas-cli/src/commands/metadata/push.ts | 1 + packages/eas-cli/src/commands/submit.ts | 1 + .../src/utils/__tests__/profiles-test.ts | 55 +++++++++++++++++++ packages/eas-cli/src/utils/profiles.ts | 49 ++++++++++++++++- 10 files changed, 112 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index db0689315f..46688ba6f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,8 @@ This is the log of notable changes to EAS CLI and related packages. - Detect devices that fail to be provisioned, list them to the user and show the explanation message with the link to the devices page to check actual status. ([#2011](https://github.com/expo/eas-cli/pull/2011) by [@radoslawkrzemien](https://github.com/radoslawkrzemien)) - Add info to EAS Update asset upload process about asset counts and limits. ([#2013](https://github.com/expo/eas-cli/pull/2013) by [@wschurman](https://github.com/wschurman)) +- .nvmrc support for setting node version. ([#1954](https://github.com/expo/eas-cli/pull/1954) by [@khamilowicz](https://github.com/khamilowicz)) + ### πŸ› Bug fixes - Support republishing roll back to embedded updates. ([#2006](https://github.com/expo/eas-cli/pull/2006) by [@wschurman](https://github.com/wschurman)) diff --git a/packages/eas-cli/src/build/runBuildAndSubmit.ts b/packages/eas-cli/src/build/runBuildAndSubmit.ts index 174c7e0413..59e888c468 100644 --- a/packages/eas-cli/src/build/runBuildAndSubmit.ts +++ b/packages/eas-cli/src/build/runBuildAndSubmit.ts @@ -117,6 +117,7 @@ export async function runBuildAndSubmitAsync( easJsonAccessor, platforms, profileName: flags.profile ?? undefined, + projectDir, }); Log.log( `Loaded "env" configuration for the "${buildProfiles[0].profileName}" profile: ${ @@ -183,6 +184,7 @@ export async function runBuildAndSubmitAsync( platforms, profileName: flags.submitProfile, type: 'submit', + projectDir, }); for (const startedBuild of startedBuilds) { const submitProfile = nullthrows( diff --git a/packages/eas-cli/src/commands/build/version/get.ts b/packages/eas-cli/src/commands/build/version/get.ts index 22870969ab..0604fc6045 100644 --- a/packages/eas-cli/src/commands/build/version/get.ts +++ b/packages/eas-cli/src/commands/build/version/get.ts @@ -68,6 +68,7 @@ export default class BuildVersionGetView extends EasCommand { easJsonAccessor, platforms, profileName: flags.profile ?? undefined, + projectDir, }); const results: { [key in Platform]?: string } = {}; for (const { profile, platform } of buildProfiles) { diff --git a/packages/eas-cli/src/commands/build/version/sync.ts b/packages/eas-cli/src/commands/build/version/sync.ts index f9f93ec785..179d4cc60e 100644 --- a/packages/eas-cli/src/commands/build/version/sync.ts +++ b/packages/eas-cli/src/commands/build/version/sync.ts @@ -80,6 +80,7 @@ export default class BuildVersionSyncView extends EasCommand { easJsonAccessor, platforms, profileName: flags.profile ?? undefined, + projectDir, }); for (const profileInfo of buildProfiles) { const { exp, projectId } = await getDynamicPrivateProjectConfigAsync({ diff --git a/packages/eas-cli/src/commands/metadata/lint.ts b/packages/eas-cli/src/commands/metadata/lint.ts index dc6f3bf223..b62ecaff43 100644 --- a/packages/eas-cli/src/commands/metadata/lint.ts +++ b/packages/eas-cli/src/commands/metadata/lint.ts @@ -47,6 +47,7 @@ export default class MetadataLint extends EasCommand { easJsonAccessor: EasJsonAccessor.fromProjectPath(projectDir), platforms: [Platform.IOS], profileName: flags.profile, + projectDir, }); if (submitProfiles.length !== 1) { diff --git a/packages/eas-cli/src/commands/metadata/pull.ts b/packages/eas-cli/src/commands/metadata/pull.ts index 3fe7cfc609..bac1bccbf4 100644 --- a/packages/eas-cli/src/commands/metadata/pull.ts +++ b/packages/eas-cli/src/commands/metadata/pull.ts @@ -49,6 +49,7 @@ export default class MetadataPull extends EasCommand { easJsonAccessor: EasJsonAccessor.fromProjectPath(projectDir), platforms: [Platform.IOS], profileName: flags.profile, + projectDir, }); if (submitProfiles.length !== 1) { diff --git a/packages/eas-cli/src/commands/metadata/push.ts b/packages/eas-cli/src/commands/metadata/push.ts index 844e25af0d..69aa0ef3a8 100644 --- a/packages/eas-cli/src/commands/metadata/push.ts +++ b/packages/eas-cli/src/commands/metadata/push.ts @@ -47,6 +47,7 @@ export default class MetadataPush extends EasCommand { easJsonAccessor: EasJsonAccessor.fromProjectPath(projectDir), platforms: [Platform.IOS], profileName: flags.profile, + projectDir, }); if (submitProfiles.length !== 1) { diff --git a/packages/eas-cli/src/commands/submit.ts b/packages/eas-cli/src/commands/submit.ts index 65152e6180..5c0df81c67 100644 --- a/packages/eas-cli/src/commands/submit.ts +++ b/packages/eas-cli/src/commands/submit.ts @@ -118,6 +118,7 @@ export default class Submit extends EasCommand { easJsonAccessor: EasJsonAccessor.fromProjectPath(projectDir), platforms, profileName: flagsWithPlatform.profile, + projectDir, }); const submissions: SubmissionFragment[] = []; diff --git a/packages/eas-cli/src/utils/__tests__/profiles-test.ts b/packages/eas-cli/src/utils/__tests__/profiles-test.ts index 028f5d2c88..2ec7a35eb6 100644 --- a/packages/eas-cli/src/utils/__tests__/profiles-test.ts +++ b/packages/eas-cli/src/utils/__tests__/profiles-test.ts @@ -1,5 +1,8 @@ import { Platform } from '@expo/eas-build-job'; import { BuildProfile, EasJsonAccessor, EasJsonUtils, errors } from '@expo/eas-json'; +import fs from 'fs-extra'; +import { vol } from 'memfs'; +import os from 'os'; import Log from '../../log'; import { selectAsync } from '../../prompts'; @@ -9,6 +12,7 @@ import { maybePrintBuildProfileDeprecationWarningsAsync, } from '../profiles'; +jest.mock('fs'); jest.mock('../../prompts'); jest.mock('@expo/eas-json', () => { const actual = jest.requireActual('@expo/eas-json'); @@ -32,6 +36,7 @@ const getBuildProfileDeprecationWarningsAsync = jest.spyOn( ); const newLineSpy = jest.spyOn(Log, 'newLine'); const warnSpy = jest.spyOn(Log, 'warn'); +const projectDir = '/app'; describe(getProfilesAsync, () => { afterEach(() => { @@ -51,6 +56,7 @@ describe(getProfilesAsync, () => { platforms: [Platform.ANDROID, Platform.IOS], profileName: undefined, type: 'build', + projectDir, }); expect(result[0].profileName).toBe('production'); @@ -71,6 +77,7 @@ describe(getProfilesAsync, () => { platforms: [Platform.ANDROID], profileName: undefined, type: 'build', + projectDir, }) ).rejects.toThrowError(errors.MissingProfileError); }); @@ -86,6 +93,7 @@ describe(getProfilesAsync, () => { platforms: [Platform.ANDROID, Platform.IOS], profileName: 'custom-profile', type: 'build', + projectDir, }); expect(result[0].profileName).toBe('custom-profile'); @@ -98,6 +106,52 @@ describe(getProfilesAsync, () => { expect(getBuildProfileAsync).toBeCalledWith(easJsonAccessor, Platform.IOS, 'custom-profile'); }); + describe('node version', () => { + const nodeVersion = '14.17.1'; + + it('is read from profile', async () => { + const easJsonAccessor = EasJsonAccessor.fromProjectPath(projectDir); + getBuildProfileAsync.mockImplementation(async () => { + return { node: nodeVersion } as BuildProfile; + }); + const result = await getProfilesAsync({ + easJsonAccessor, + platforms: [Platform.ANDROID], + profileName: 'custom-profile', + type: 'build', + projectDir, + }); + + expect(result[0].profile.node).toBe(nodeVersion); + }); + + describe('with .nvmrc', () => { + beforeEach(async () => { + vol.reset(); + await fs.mkdirp(os.tmpdir()); + + vol.fromJSON({ '.nvmrc': nodeVersion }, projectDir); + }); + + it('is read from .nvmrc', async () => { + const easJsonAccessor = EasJsonAccessor.fromProjectPath(projectDir); + getBuildProfileAsync.mockImplementation(async () => { + return {} as BuildProfile; + }); + + const result = await getProfilesAsync({ + easJsonAccessor, + platforms: [Platform.ANDROID], + profileName: 'custom-profile', + type: 'build', + projectDir, + }); + + expect(result[0].profile.node).toBe(nodeVersion); + }); + }); + }); + it('throws validation error if eas.json is invalid', async () => { getBuildProfileAsync.mockImplementation(() => { throw new errors.InvalidEasJsonError('eas.json is not valid'); @@ -109,6 +163,7 @@ describe(getProfilesAsync, () => { platforms: [Platform.ANDROID, Platform.IOS], profileName: undefined, type: 'build', + projectDir, }) ).rejects.toThrowError(/eas.json is not valid/); }); diff --git a/packages/eas-cli/src/utils/profiles.ts b/packages/eas-cli/src/utils/profiles.ts index f8030626e0..4d97830184 100644 --- a/packages/eas-cli/src/utils/profiles.ts +++ b/packages/eas-cli/src/utils/profiles.ts @@ -6,6 +6,9 @@ import { ProfileType, SubmitProfile, } from '@expo/eas-json'; +import fs from 'fs-extra'; +import path from 'path'; +import semver from 'semver'; import Log, { learnMore } from '../log'; @@ -24,19 +27,23 @@ export async function getProfilesAsync({ platforms, profileName, type, + projectDir, }: { easJsonAccessor: EasJsonAccessor; platforms: Platform[]; profileName?: string; + projectDir: string; type: T; }): Promise[]> { const results = platforms.map(async function (platform) { - const profile = await readProfileAsync({ + const profile = await readProfileWithOverridesAsync({ easJsonAccessor, platform, type, profileName, + projectDir, }); + return { profile, profileName: profileName ?? 'production', @@ -47,16 +54,53 @@ export async function getProfilesAsync({ return await Promise.all(results); } -async function readProfileAsync({ +async function maybeSetNodeVersionFromFileAsync( + projectDir: string, + profile: BuildProfile +): Promise { + if (profile?.node) { + return; + } + const nodeVersion = await getNodeVersionFromFileAsync(projectDir); + if (nodeVersion) { + Log.log( + `The EAS build profile does not specify a Node.js version. Using the version specified in .nvmrc: ${nodeVersion} ` + ); + + profile.node = nodeVersion; + } +} + +async function getNodeVersionFromFileAsync(projectDir: string): Promise { + const nvmrcPath = path.join(projectDir, '.nvmrc'); + if (!(await fs.pathExists(nvmrcPath))) { + return; + } + + let nodeVersion: string; + try { + nodeVersion = (await fs.readFile(nvmrcPath, 'utf8')).toString().trim(); + } catch { + return undefined; + } + if (!semver.valid(semver.coerce(nodeVersion))) { + throw new Error(`Invalid node version in .nvmrc: ${nodeVersion}`); + } + return nodeVersion; +} + +async function readProfileWithOverridesAsync({ easJsonAccessor, platform, type, profileName, + projectDir, }: { easJsonAccessor: EasJsonAccessor; platform: Platform; type: T; profileName?: string; + projectDir: string; }): Promise> { if (type === 'build') { const buildProfile = await EasJsonUtils.getBuildProfileAsync( @@ -66,6 +110,7 @@ async function readProfileAsync({ ); await maybePrintBuildProfileDeprecationWarningsAsync(easJsonAccessor, platform, profileName); + await maybeSetNodeVersionFromFileAsync(projectDir, buildProfile); return buildProfile as EasProfile; } else { From b36db1560159eb5225dfdb55868f566fe5990546 Mon Sep 17 00:00:00 2001 From: Will Schurman Date: Fri, 25 Aug 2023 09:14:29 -0700 Subject: [PATCH 012/105] [eas-cli][updates] configure updates as well when somebody tries to run a build with channel set (#2016) --- CHANGELOG.md | 1 + .../eas-cli/src/build/runBuildAndSubmit.ts | 28 +++++++++++++++---- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 46688ba6f8..b156fd9d43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ› Bug fixes - Support republishing roll back to embedded updates. ([#2006](https://github.com/expo/eas-cli/pull/2006) by [@wschurman](https://github.com/wschurman)) +- Configure updates as well when somebody tries to run a build with channel set. ([#2016](https://github.com/expo/eas-cli/pull/2016) by [@wschurman](https://github.com/wschurman)) ### 🧹 Chores diff --git a/packages/eas-cli/src/build/runBuildAndSubmit.ts b/packages/eas-cli/src/build/runBuildAndSubmit.ts index 59e888c468..08e6402788 100644 --- a/packages/eas-cli/src/build/runBuildAndSubmit.ts +++ b/packages/eas-cli/src/build/runBuildAndSubmit.ts @@ -1,3 +1,4 @@ +import { ExpoConfig } from '@expo/config-types'; import { Platform, Workflow } from '@expo/eas-build-job'; import { AppVersionSource, @@ -38,7 +39,6 @@ import { import { checkExpoSdkIsSupportedAsync } from '../project/expoSdk'; import { validateMetroConfigForManagedWorkflowAsync } from '../project/metroConfig'; import { - installExpoUpdatesAsync, isExpoUpdatesInstalledAsDevDependency, isExpoUpdatesInstalledOrAvailable, validateAppVersionRuntimePolicySupportAsync, @@ -57,6 +57,7 @@ import { waitToCompleteAsync as waitForSubmissionsToCompleteAsync, } from '../submit/submit'; import { printSubmissionDetailsUrls } from '../submit/utils/urls'; +import { ensureEASUpdateIsConfiguredAsync } from '../update/configure'; import { validateBuildProfileConfigMatchesProjectConfigAsync } from '../update/utils'; import { Actor } from '../user/User'; import { downloadAndMaybeExtractAppAsync } from '../utils/download'; @@ -322,6 +323,9 @@ async function prepareAndStartBuildAsync({ ); if (buildProfile.profile.channel) { await validateExpoUpdatesInstalledAsProjectDependencyAsync({ + graphqlClient, + exp: buildCtx.exp, + projectId: buildCtx.projectId, projectDir, sdkVersion: buildCtx.exp.sdkVersion, nonInteractive: flags.nonInteractive, @@ -449,11 +453,17 @@ async function maybeDownloadAndRunSimulatorBuildsAsync( } async function validateExpoUpdatesInstalledAsProjectDependencyAsync({ + exp, + graphqlClient, + projectId, projectDir, buildProfile, nonInteractive, sdkVersion, }: { + graphqlClient: ExpoGraphqlClient; + exp: ExpoConfig; + projectId: string; projectDir: string; buildProfile: ProfileData<'build'>; nonInteractive: boolean; @@ -469,18 +479,24 @@ async function validateExpoUpdatesInstalledAsProjectDependencyAsync({ ); } else if (nonInteractive) { Log.warn( - `The build profile "${buildProfile.profileName}" has specified the channel "${buildProfile.profile.channel}", but the "expo-updates" package hasn't been installed. To use channels for your builds, install the "expo-updates" package by running "npx expo install expo-updates".` + `The build profile "${buildProfile.profileName}" has specified the channel "${buildProfile.profile.channel}", but the "expo-updates" package hasn't been installed. To use channels for your builds, install the "expo-updates" package by running "npx expo install expo-updates" followed by "eas update:configure".` ); } else { Log.warn( - `The build profile "${buildProfile.profileName}" specifies the channel "${buildProfile.profile.channel}", but the "expo-updates" package is missing. To use channels in your builds, install the "expo-updates" package.` + `The build profile "${buildProfile.profileName}" specifies the channel "${buildProfile.profile.channel}", but the "expo-updates" package is missing. To use channels in your builds, install the "expo-updates" package and run "eas update:configure".` ); const installExpoUpdates = await confirmAsync({ - message: `Would you like to install the "expo-updates" package?`, + message: `Would you like to install the "expo-updates" package and configure EAS Update now?`, }); if (installExpoUpdates) { - await installExpoUpdatesAsync(projectDir, { silent: false }); - Log.withTick('Installed expo-updates'); + await ensureEASUpdateIsConfiguredAsync(graphqlClient, { + exp, + projectId, + projectDir, + platform: RequestedPlatform.All, + }); + Log.withTick('Installed expo-updates and configured EAS Update.'); + throw new Error('Command must be re-run to pick up new updates configuration.'); } } } From 11be9eba49aa0a687a77a7092e27576a88016616 Mon Sep 17 00:00:00 2001 From: Quinlan Jung Date: Fri, 25 Aug 2023 12:07:59 -0700 Subject: [PATCH 013/105] [ENG-9685][eas-cli] create a linked channel on build if not exists (#2017) * [eas-cli] create linked channel on build * refactor * update CHANGELOG.md * amend doc block --- CHANGELOG.md | 1 + .../eas-cli/src/build/runBuildAndSubmit.ts | 14 +++ packages/eas-cli/src/channel/queries.ts | 103 ++++++++++++++++++ .../eas-cli/src/commands/channel/create.ts | 73 +------------ 4 files changed, 124 insertions(+), 67 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b156fd9d43..6a8a5679d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ This is the log of notable changes to EAS CLI and related packages. - More branch map utility functions. ([#2001](https://github.com/expo/eas-cli/pull/2001) by [@quinlanj](https://github.com/quinlanj)) - More branch mapping utils. ([#2003](https://github.com/expo/eas-cli/pull/2003) by [@quinlanj](https://github.com/quinlanj)) +- Create a linked channel on build if not exists. ([#2017](https://github.com/expo/eas-cli/pull/2017) by [@quinlanj](https://github.com/quinlanj)) - Add `developmentClient` to metadata. ([#2015](https://github.com/expo/eas-cli/pull/2015) by [@szdziedzic](https://github.com/szdziedzic)) ## [4.1.2](https://github.com/expo/eas-cli/releases/tag/v4.1.2) - 2023-08-10 diff --git a/packages/eas-cli/src/build/runBuildAndSubmit.ts b/packages/eas-cli/src/build/runBuildAndSubmit.ts index 08e6402788..9240386e1e 100644 --- a/packages/eas-cli/src/build/runBuildAndSubmit.ts +++ b/packages/eas-cli/src/build/runBuildAndSubmit.ts @@ -14,6 +14,7 @@ import chalk from 'chalk'; import nullthrows from 'nullthrows'; import { Analytics } from '../analytics/AnalyticsManager'; +import { createAndLinkChannelAsync, doesChannelExistAsync } from '../channel/queries'; import { DynamicConfigContextFn } from '../commandUtils/context/DynamicProjectConfigContextField'; import { ExpoGraphqlClient } from '../commandUtils/context/contextUtils/createGraphqlClient'; import { @@ -41,6 +42,7 @@ import { validateMetroConfigForManagedWorkflowAsync } from '../project/metroConf import { isExpoUpdatesInstalledAsDevDependency, isExpoUpdatesInstalledOrAvailable, + isUsingEASUpdate, validateAppVersionRuntimePolicySupportAsync, } from '../project/projectUtils'; import { @@ -331,6 +333,18 @@ async function prepareAndStartBuildAsync({ nonInteractive: flags.nonInteractive, buildProfile, }); + if (isUsingEASUpdate(buildCtx.exp, buildCtx.projectId)) { + const doesChannelExist = await doesChannelExistAsync(graphqlClient, { + appId: buildCtx.projectId, + channelName: buildProfile.profile.channel, + }); + if (!doesChannelExist) { + await createAndLinkChannelAsync(graphqlClient, { + appId: buildCtx.projectId, + channelName: buildProfile.profile.channel, + }); + } + } } await validateAppVersionRuntimePolicySupportAsync(buildCtx.projectDir, buildCtx.exp); diff --git a/packages/eas-cli/src/channel/queries.ts b/packages/eas-cli/src/channel/queries.ts index c814357b00..5b08027f12 100644 --- a/packages/eas-cli/src/channel/queries.ts +++ b/packages/eas-cli/src/channel/queries.ts @@ -2,6 +2,8 @@ import chalk from 'chalk'; import { print } from 'graphql'; import gql from 'graphql-tag'; +import { createUpdateBranchOnAppAsync } from '../branch/queries'; +import { BranchNotFoundError } from '../branch/utils'; import { ExpoGraphqlClient } from '../commandUtils/context/contextUtils/createGraphqlClient'; import { PaginatedQueryOptions } from '../commandUtils/pagination'; import { withErrorHandlingAsync } from '../graphql/client'; @@ -15,13 +17,16 @@ import { BranchQuery, UpdateBranchOnChannelObject } from '../graphql/queries/Bra import { ChannelQuery, UpdateChannelObject } from '../graphql/queries/ChannelQuery'; import { UpdateChannelBasicInfoFragmentNode } from '../graphql/types/UpdateChannelBasicInfo'; import Log from '../log'; +import { getDisplayNameForProjectIdAsync } from '../project/projectUtils'; import formatFields from '../utils/formatFields'; import { printJsonOnlyOutput } from '../utils/json'; import { paginatedQueryWithConfirmPromptAsync, paginatedQueryWithSelectPromptAsync, } from '../utils/queries'; +import { ChannelNotFoundError } from './errors'; import { logChannelDetails } from './print-utils'; +import { ChannelBasicInfo } from './utils'; export const CHANNELS_LIMIT = 25; @@ -264,3 +269,101 @@ export async function ensureChannelExistsAsync( } } } + +export async function doesChannelExistAsync( + graphqlClient: ExpoGraphqlClient, + { appId, channelName }: { appId: string; channelName: string } +): Promise { + try { + await ChannelQuery.viewUpdateChannelAsync(graphqlClient, { + appId, + channelName, + }); + } catch (err) { + if (err instanceof ChannelNotFoundError) { + return false; + } + throw err; + } + return true; +} + +/** + * + * Creates a channel and links it to a branch with the same name. + * + * @param appId the app ID, also known as the project ID + * @param channelName the name of the channel to create + * @param shouldPrintJson print only the JSON output + */ +export async function createAndLinkChannelAsync( + graphqlClient: ExpoGraphqlClient, + { + appId, + channelName, + shouldPrintJson, + }: { appId: string; channelName: string; shouldPrintJson?: boolean } +): Promise { + let branchId: string; + let branchMessage: string; + + try { + const branch = await BranchQuery.getBranchByNameAsync(graphqlClient, { + appId, + name: channelName, + }); + branchId = branch.id; + branchMessage = `We found a branch with the same name`; + } catch (error) { + if (error instanceof BranchNotFoundError) { + const newBranch = await createUpdateBranchOnAppAsync(graphqlClient, { + appId, + name: channelName, + }); + branchId = newBranch.id; + branchMessage = `We also went ahead and made a branch with the same name`; + } else { + throw error; + } + } + + const { + updateChannel: { createUpdateChannelForApp: newChannel }, + } = await createChannelOnAppAsync(graphqlClient, { + appId, + channelName, + branchId, + }); + + if (!newChannel) { + throw new Error( + `Could not create channel with name ${channelName} on project with id ${appId}` + ); + } + + if (shouldPrintJson) { + printJsonOnlyOutput(newChannel); + } else { + Log.addNewLineIfNone(); + Log.withTick( + `Created a new channel on project ${chalk.bold( + await getDisplayNameForProjectIdAsync(graphqlClient, appId) + )}` + ); + Log.log( + formatFields([ + { label: 'Name', value: newChannel.name }, + { label: 'ID', value: newChannel.id }, + ]) + ); + Log.addNewLineIfNone(); + Log.withTick(`${branchMessage} and have pointed the channel at it.`); + Log.log( + formatFields([ + { label: 'Name', value: newChannel.name }, + { label: 'ID', value: branchId }, + ]) + ); + } + return newChannel; +} diff --git a/packages/eas-cli/src/commands/channel/create.ts b/packages/eas-cli/src/commands/channel/create.ts index 0aa7ee7cc0..e3cac740e2 100644 --- a/packages/eas-cli/src/commands/channel/create.ts +++ b/packages/eas-cli/src/commands/channel/create.ts @@ -1,16 +1,11 @@ import chalk from 'chalk'; -import { createUpdateBranchOnAppAsync } from '../../branch/queries'; -import { BranchNotFoundError } from '../../branch/utils'; -import { createChannelOnAppAsync } from '../../channel/queries'; +import { createAndLinkChannelAsync } from '../../channel/queries'; import EasCommand from '../../commandUtils/EasCommand'; import { EasNonInteractiveAndJsonFlags } from '../../commandUtils/flags'; -import { BranchQuery } from '../../graphql/queries/BranchQuery'; import Log from '../../log'; -import { getDisplayNameForProjectIdAsync } from '../../project/projectUtils'; import { promptAsync } from '../../prompts'; -import formatFields from '../../utils/formatFields'; -import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json'; +import { enableJsonOutput } from '../../utils/json'; export default class ChannelCreate extends EasCommand { static override description = 'create a channel'; @@ -60,69 +55,13 @@ export default class ChannelCreate extends EasCommand { })); } - let branchId: string; - let branchMessage: string; - - try { - const branch = await BranchQuery.getBranchByNameAsync(graphqlClient, { - appId: projectId, - name: channelName, - }); - branchId = branch.id; - branchMessage = `We found a branch with the same name`; - } catch (error) { - if (error instanceof BranchNotFoundError) { - const newBranch = await createUpdateBranchOnAppAsync(graphqlClient, { - appId: projectId, - name: channelName, - }); - branchId = newBranch.id; - branchMessage = `We also went ahead and made a branch with the same name`; - } else { - throw error; - } - } - - const { - updateChannel: { createUpdateChannelForApp: newChannel }, - } = await createChannelOnAppAsync(graphqlClient, { + await createAndLinkChannelAsync(graphqlClient, { appId: projectId, channelName, - branchId, + shouldPrintJson: jsonFlag, }); - if (!newChannel) { - throw new Error( - `Could not create channel with name ${channelName} on project with id ${projectId}` - ); - } - - if (jsonFlag) { - printJsonOnlyOutput(newChannel); - } else { - Log.addNewLineIfNone(); - Log.withTick( - `Created a new channel on project ${chalk.bold( - await getDisplayNameForProjectIdAsync(graphqlClient, projectId) - )}` - ); - Log.log( - formatFields([ - { label: 'Name', value: newChannel.name }, - { label: 'ID', value: newChannel.id }, - ]) - ); - Log.addNewLineIfNone(); - Log.withTick(`${branchMessage} and have pointed the channel at it.`); - Log.log( - formatFields([ - { label: 'Name', value: newChannel.name }, - { label: 'ID', value: branchId }, - ]) - ); - - Log.addNewLineIfNone(); - Log.log(chalk.bold('You can now update your app by publishing!')); - } + Log.addNewLineIfNone(); + Log.log(chalk.bold('You can now update your app by publishing!')); } } From 2ac863a9e318c448f35de341ac580c388f692f0f Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Mon, 28 Aug 2023 14:19:20 +0200 Subject: [PATCH 014/105] upgrade eas-cli-local-build-plugin to 1.0.39 --- packages/eas-cli/src/build/local.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eas-cli/src/build/local.ts b/packages/eas-cli/src/build/local.ts index 6886ed43c3..448d7c6893 100644 --- a/packages/eas-cli/src/build/local.ts +++ b/packages/eas-cli/src/build/local.ts @@ -6,7 +6,7 @@ import semver from 'semver'; import { ora } from '../ora'; const PLUGIN_PACKAGE_NAME = 'eas-cli-local-build-plugin'; -const PLUGIN_PACKAGE_VERSION = '1.0.38'; +const PLUGIN_PACKAGE_VERSION = '1.0.39'; export enum LocalBuildMode { /** From 137f9d4ac7d695dd1e1748c27e7a4c6de67a1b79 Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Mon, 28 Aug 2023 14:20:36 +0200 Subject: [PATCH 015/105] v5.0.0 --- lerna.json | 2 +- packages/eas-cli/README.md | 110 ++++++++++++++++----------------- packages/eas-cli/package.json | 4 +- packages/eas-json/package.json | 2 +- 4 files changed, 59 insertions(+), 59 deletions(-) diff --git a/lerna.json b/lerna.json index 273a29e334..a49ade14a8 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "npmClient": "yarn", "useWorkspaces": true, - "version": "4.1.2", + "version": "5.0.0", "$schema": "node_modules/lerna/schemas/lerna-schema.json" } diff --git a/packages/eas-cli/README.md b/packages/eas-cli/README.md index 432c86fe20..33512aaf34 100644 --- a/packages/eas-cli/README.md +++ b/packages/eas-cli/README.md @@ -133,7 +133,7 @@ ALIASES $ eas login ``` -_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/account/login.ts)_ +_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/account/login.ts)_ ## `eas account:logout` @@ -150,7 +150,7 @@ ALIASES $ eas logout ``` -_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/account/logout.ts)_ +_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/account/logout.ts)_ ## `eas account:view` @@ -167,7 +167,7 @@ ALIASES $ eas whoami ``` -_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/account/view.ts)_ +_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/account/view.ts)_ ## `eas analytics [STATUS]` @@ -181,7 +181,7 @@ DESCRIPTION display or change analytics settings ``` -_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/analytics.ts)_ +_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/analytics.ts)_ ## `eas autocomplete [SHELL]` @@ -231,7 +231,7 @@ DESCRIPTION create a branch ``` -_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/branch/create.ts)_ +_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/branch/create.ts)_ ## `eas branch:delete [NAME]` @@ -252,7 +252,7 @@ DESCRIPTION delete a branch ``` -_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/branch/delete.ts)_ +_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/branch/delete.ts)_ ## `eas branch:list` @@ -272,7 +272,7 @@ DESCRIPTION list all branches ``` -_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/branch/list.ts)_ +_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/branch/list.ts)_ ## `eas branch:rename` @@ -292,7 +292,7 @@ DESCRIPTION rename a branch ``` -_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/branch/rename.ts)_ +_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/branch/rename.ts)_ ## `eas branch:view [NAME]` @@ -315,7 +315,7 @@ DESCRIPTION view a branch ``` -_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/branch/view.ts)_ +_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/branch/view.ts)_ ## `eas build` @@ -345,7 +345,7 @@ DESCRIPTION start a build ``` -_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/build/index.ts)_ +_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/index.ts)_ ## `eas build:cancel [BUILD_ID]` @@ -362,7 +362,7 @@ DESCRIPTION cancel a build ``` -_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/build/cancel.ts)_ +_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/cancel.ts)_ ## `eas build:configure` @@ -379,7 +379,7 @@ DESCRIPTION configure the project to support EAS Build ``` -_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/build/configure.ts)_ +_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/configure.ts)_ ## `eas build:inspect` @@ -414,7 +414,7 @@ DESCRIPTION inspect the state of the project at specific build stages, useful for troubleshooting ``` -_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/build/inspect.ts)_ +_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/inspect.ts)_ ## `eas build:list` @@ -452,7 +452,7 @@ DESCRIPTION list all builds for your project ``` -_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/build/list.ts)_ +_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/list.ts)_ ## `eas build:resign` @@ -478,7 +478,7 @@ DESCRIPTION re-sign a build archive ``` -_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/build/resign.ts)_ +_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/resign.ts)_ ## `eas build:run` @@ -502,7 +502,7 @@ DESCRIPTION run simulator/emulator builds from eas-cli ``` -_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/build/run.ts)_ +_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/run.ts)_ ## `eas build:submit` @@ -551,7 +551,7 @@ DESCRIPTION get the latest version from EAS servers ``` -_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/build/version/get.ts)_ +_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/version/get.ts)_ ## `eas build:version:set` @@ -570,7 +570,7 @@ DESCRIPTION update version of an app ``` -_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/build/version/set.ts)_ +_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/version/set.ts)_ ## `eas build:version:sync` @@ -589,7 +589,7 @@ DESCRIPTION update a version in native code with a value stored on EAS servers ``` -_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/build/version/sync.ts)_ +_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/version/sync.ts)_ ## `eas build:view [BUILD_ID]` @@ -606,7 +606,7 @@ DESCRIPTION view a build for your project ``` -_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/build/view.ts)_ +_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/view.ts)_ ## `eas channel:create [NAME]` @@ -627,7 +627,7 @@ DESCRIPTION create a channel ``` -_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/channel/create.ts)_ +_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/channel/create.ts)_ ## `eas channel:edit [NAME]` @@ -649,7 +649,7 @@ DESCRIPTION point a channel at a new branch ``` -_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/channel/edit.ts)_ +_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/channel/edit.ts)_ ## `eas channel:list` @@ -669,7 +669,7 @@ DESCRIPTION list all channels ``` -_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/channel/list.ts)_ +_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/channel/list.ts)_ ## `eas channel:rollout [CHANNEL]` @@ -701,7 +701,7 @@ DESCRIPTION Roll a new branch out on a channel incrementally. ``` -_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/channel/rollout.ts)_ +_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/channel/rollout.ts)_ ## `eas channel:view [NAME]` @@ -724,7 +724,7 @@ DESCRIPTION view a channel ``` -_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/channel/view.ts)_ +_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/channel/view.ts)_ ## `eas config` @@ -745,7 +745,7 @@ DESCRIPTION display project configuration (app.json + eas.json) ``` -_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/config.ts)_ +_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/config.ts)_ ## `eas credentials` @@ -762,7 +762,7 @@ DESCRIPTION manage credentials ``` -_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/credentials.ts)_ +_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/credentials.ts)_ ## `eas device:create` @@ -776,7 +776,7 @@ DESCRIPTION register new Apple Devices to use for internal distribution ``` -_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/device/create.ts)_ +_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/device/create.ts)_ ## `eas device:delete` @@ -796,7 +796,7 @@ DESCRIPTION remove a registered device from your account ``` -_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/device/delete.ts)_ +_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/device/delete.ts)_ ## `eas device:list` @@ -817,7 +817,7 @@ DESCRIPTION list all registered devices for your account ``` -_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/device/list.ts)_ +_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/device/list.ts)_ ## `eas device:rename` @@ -838,7 +838,7 @@ DESCRIPTION rename a registered device ``` -_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/device/rename.ts)_ +_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/device/rename.ts)_ ## `eas device:view [UDID]` @@ -852,7 +852,7 @@ DESCRIPTION view a device for your project ``` -_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/device/view.ts)_ +_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/device/view.ts)_ ## `eas diagnostics` @@ -866,7 +866,7 @@ DESCRIPTION display environment info ``` -_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/diagnostics.ts)_ +_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/diagnostics.ts)_ ## `eas help [COMMAND]` @@ -954,7 +954,7 @@ DESCRIPTION validate the local store configuration ``` -_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/metadata/lint.ts)_ +_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/metadata/lint.ts)_ ## `eas metadata:pull` @@ -971,7 +971,7 @@ DESCRIPTION generate the local store configuration from the app stores ``` -_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/metadata/pull.ts)_ +_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/metadata/pull.ts)_ ## `eas metadata:push` @@ -988,7 +988,7 @@ DESCRIPTION sync the local store configuration to the app stores ``` -_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/metadata/push.ts)_ +_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/metadata/push.ts)_ ## `eas open` @@ -1002,7 +1002,7 @@ DESCRIPTION open the project page in a web browser ``` -_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/open.ts)_ +_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/open.ts)_ ## `eas project:info` @@ -1016,7 +1016,7 @@ DESCRIPTION information about the current project ``` -_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/project/info.ts)_ +_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/project/info.ts)_ ## `eas project:init` @@ -1038,7 +1038,7 @@ ALIASES $ eas init ``` -_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/project/init.ts)_ +_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/project/init.ts)_ ## `eas secret:create` @@ -1061,7 +1061,7 @@ DESCRIPTION create an environment secret on the current project or owner account ``` -_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/secret/create.ts)_ +_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/secret/create.ts)_ ## `eas secret:delete` @@ -1079,7 +1079,7 @@ DESCRIPTION delete an environment secret by ID ``` -_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/secret/delete.ts)_ +_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/secret/delete.ts)_ ## `eas secret:list` @@ -1093,7 +1093,7 @@ DESCRIPTION list environment secrets available for your current app ``` -_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/secret/list.ts)_ +_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/secret/list.ts)_ ## `eas secret:push` @@ -1113,7 +1113,7 @@ DESCRIPTION read environment secrets from env file and store on the server ``` -_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/secret/push.ts)_ +_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/secret/push.ts)_ ## `eas submit` @@ -1143,7 +1143,7 @@ ALIASES $ eas build:submit ``` -_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/submit.ts)_ +_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/submit.ts)_ ## `eas update` @@ -1176,7 +1176,7 @@ DESCRIPTION publish an update group ``` -_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/update/index.ts)_ +_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/update/index.ts)_ ## `eas update:configure` @@ -1194,7 +1194,7 @@ DESCRIPTION configure the project to support EAS Update ``` -_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/update/configure.ts)_ +_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/update/configure.ts)_ ## `eas update:delete GROUPID` @@ -1215,7 +1215,7 @@ DESCRIPTION delete all the updates in an update group ``` -_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/update/delete.ts)_ +_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/update/delete.ts)_ ## `eas update:list` @@ -1237,7 +1237,7 @@ DESCRIPTION view the recent updates ``` -_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/update/list.ts)_ +_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/update/list.ts)_ ## `eas update:republish` @@ -1264,7 +1264,7 @@ DESCRIPTION roll back to an existing update ``` -_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/update/republish.ts)_ +_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/update/republish.ts)_ ## `eas update:view GROUPID` @@ -1284,7 +1284,7 @@ DESCRIPTION update group details ``` -_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/update/view.ts)_ +_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/update/view.ts)_ ## `eas webhook:create` @@ -1305,7 +1305,7 @@ DESCRIPTION create a webhook ``` -_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/webhook/create.ts)_ +_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/webhook/create.ts)_ ## `eas webhook:delete [ID]` @@ -1325,7 +1325,7 @@ DESCRIPTION delete a webhook ``` -_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/webhook/delete.ts)_ +_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/webhook/delete.ts)_ ## `eas webhook:list` @@ -1343,7 +1343,7 @@ DESCRIPTION list webhooks ``` -_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/webhook/list.ts)_ +_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/webhook/list.ts)_ ## `eas webhook:update` @@ -1365,7 +1365,7 @@ DESCRIPTION update a webhook ``` -_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/webhook/update.ts)_ +_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/webhook/update.ts)_ ## `eas webhook:view ID` @@ -1382,7 +1382,7 @@ DESCRIPTION view a webhook ``` -_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v4.1.2/packages/eas-cli/src/commands/webhook/view.ts)_ +_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/webhook/view.ts)_ ## `eas whoami` diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index 99251ee617..b57a54c452 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -1,7 +1,7 @@ { "name": "eas-cli", "description": "EAS command line tool", - "version": "4.1.2", + "version": "5.0.0", "author": "Expo ", "bin": { "eas": "./bin/run" @@ -14,7 +14,7 @@ "@expo/config-plugins": "7.2.4", "@expo/config-types": "49.0.0", "@expo/eas-build-job": "1.0.39", - "@expo/eas-json": "4.1.0", + "@expo/eas-json": "5.0.0", "@expo/json-file": "8.2.37", "@expo/multipart-body-parser": "1.1.0", "@expo/osascript": "2.0.33", diff --git a/packages/eas-json/package.json b/packages/eas-json/package.json index 8f81ac813f..8d02e27fda 100644 --- a/packages/eas-json/package.json +++ b/packages/eas-json/package.json @@ -1,7 +1,7 @@ { "name": "@expo/eas-json", "description": "A library for interacting with eas.json", - "version": "4.1.0", + "version": "5.0.0", "author": "Expo ", "bugs": "https://github.com/expo/eas-cli/issues", "dependencies": { From f7e9af913ccdb8449ee243cf4a070e55e7fad0bb Mon Sep 17 00:00:00 2001 From: Expo CI Date: Mon, 28 Aug 2023 14:00:12 +0000 Subject: [PATCH 016/105] update CHANGELOG.md --- CHANGELOG.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a8a5679d9..31f4681759 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,16 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ›  Breaking changes +### πŸŽ‰ New features + +### πŸ› Bug fixes + +### 🧹 Chores + +## [5.0.0](https://github.com/expo/eas-cli/releases/tag/v5.0.0) - 2023-08-28 + +### πŸ›  Breaking changes + - Only export at most ios and android dist for EAS updates. ([#2002](https://github.com/expo/eas-cli/pull/2002) by [@wschurman](https://github.com/wschurman)) ### πŸŽ‰ New features @@ -13,7 +23,6 @@ This is the log of notable changes to EAS CLI and related packages. - Add rollback disambiguation command. ([#2004](https://github.com/expo/eas-cli/pull/2004) by [@wschurman](https://github.com/wschurman)) - Detect devices that fail to be provisioned, list them to the user and show the explanation message with the link to the devices page to check actual status. ([#2011](https://github.com/expo/eas-cli/pull/2011) by [@radoslawkrzemien](https://github.com/radoslawkrzemien)) - Add info to EAS Update asset upload process about asset counts and limits. ([#2013](https://github.com/expo/eas-cli/pull/2013) by [@wschurman](https://github.com/wschurman)) - - .nvmrc support for setting node version. ([#1954](https://github.com/expo/eas-cli/pull/1954) by [@khamilowicz](https://github.com/khamilowicz)) ### πŸ› Bug fixes From a1d86549ed475307f7919e124051db57812f838a Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Mon, 28 Aug 2023 20:51:18 +0200 Subject: [PATCH 017/105] [eas-cli] fix `eas update` passing `platform` argument incorrectly to `expo-cli` (#2028) * [eas-cli] fix `eas update` passing `platform` argument incorrectly to `expo-cli` * update CHANGELOG.md --- CHANGELOG.md | 2 ++ packages/eas-cli/src/project/publish.ts | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 31f4681759..05c8ad7b2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ› Bug fixes +- Pass `platform` argument to expo-cli correctly when using the `eas update` command. ([#2028](https://github.com/expo/eas-cli/pull/2028) by [@szdziedzic](https://github.com/szdziedzic)) + ### 🧹 Chores ## [5.0.0](https://github.com/expo/eas-cli/releases/tag/v5.0.0) - 2023-08-28 diff --git a/packages/eas-cli/src/project/publish.ts b/packages/eas-cli/src/project/publish.ts index deefacd394..db591332c2 100644 --- a/packages/eas-cli/src/project/publish.ts +++ b/packages/eas-cli/src/project/publish.ts @@ -194,7 +194,9 @@ export async function buildBundlesAsync({ } const platformArgs = - platformFlag === 'all' ? ['--platform', 'ios', '--platform', 'android'] : [platformFlag]; + platformFlag === 'all' + ? ['--platform', 'ios', '--platform', 'android'] + : ['--platform', platformFlag]; if (shouldUseVersionedExpoCLI(projectDir, exp)) { await expoCommandAsync(projectDir, [ From d321a0bccbe0c80289ba8d52b5b1871a7b8b4fae Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Mon, 28 Aug 2023 20:54:10 +0200 Subject: [PATCH 018/105] v5.0.1 --- lerna.json | 2 +- packages/eas-cli/README.md | 110 +++++++++++++++++----------------- packages/eas-cli/package.json | 2 +- 3 files changed, 57 insertions(+), 57 deletions(-) diff --git a/lerna.json b/lerna.json index a49ade14a8..320f133eb2 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "npmClient": "yarn", "useWorkspaces": true, - "version": "5.0.0", + "version": "5.0.1", "$schema": "node_modules/lerna/schemas/lerna-schema.json" } diff --git a/packages/eas-cli/README.md b/packages/eas-cli/README.md index 33512aaf34..d00e8bfff2 100644 --- a/packages/eas-cli/README.md +++ b/packages/eas-cli/README.md @@ -133,7 +133,7 @@ ALIASES $ eas login ``` -_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/account/login.ts)_ +_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/account/login.ts)_ ## `eas account:logout` @@ -150,7 +150,7 @@ ALIASES $ eas logout ``` -_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/account/logout.ts)_ +_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/account/logout.ts)_ ## `eas account:view` @@ -167,7 +167,7 @@ ALIASES $ eas whoami ``` -_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/account/view.ts)_ +_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/account/view.ts)_ ## `eas analytics [STATUS]` @@ -181,7 +181,7 @@ DESCRIPTION display or change analytics settings ``` -_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/analytics.ts)_ +_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/analytics.ts)_ ## `eas autocomplete [SHELL]` @@ -231,7 +231,7 @@ DESCRIPTION create a branch ``` -_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/branch/create.ts)_ +_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/branch/create.ts)_ ## `eas branch:delete [NAME]` @@ -252,7 +252,7 @@ DESCRIPTION delete a branch ``` -_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/branch/delete.ts)_ +_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/branch/delete.ts)_ ## `eas branch:list` @@ -272,7 +272,7 @@ DESCRIPTION list all branches ``` -_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/branch/list.ts)_ +_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/branch/list.ts)_ ## `eas branch:rename` @@ -292,7 +292,7 @@ DESCRIPTION rename a branch ``` -_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/branch/rename.ts)_ +_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/branch/rename.ts)_ ## `eas branch:view [NAME]` @@ -315,7 +315,7 @@ DESCRIPTION view a branch ``` -_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/branch/view.ts)_ +_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/branch/view.ts)_ ## `eas build` @@ -345,7 +345,7 @@ DESCRIPTION start a build ``` -_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/index.ts)_ +_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/index.ts)_ ## `eas build:cancel [BUILD_ID]` @@ -362,7 +362,7 @@ DESCRIPTION cancel a build ``` -_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/cancel.ts)_ +_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/cancel.ts)_ ## `eas build:configure` @@ -379,7 +379,7 @@ DESCRIPTION configure the project to support EAS Build ``` -_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/configure.ts)_ +_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/configure.ts)_ ## `eas build:inspect` @@ -414,7 +414,7 @@ DESCRIPTION inspect the state of the project at specific build stages, useful for troubleshooting ``` -_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/inspect.ts)_ +_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/inspect.ts)_ ## `eas build:list` @@ -452,7 +452,7 @@ DESCRIPTION list all builds for your project ``` -_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/list.ts)_ +_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/list.ts)_ ## `eas build:resign` @@ -478,7 +478,7 @@ DESCRIPTION re-sign a build archive ``` -_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/resign.ts)_ +_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/resign.ts)_ ## `eas build:run` @@ -502,7 +502,7 @@ DESCRIPTION run simulator/emulator builds from eas-cli ``` -_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/run.ts)_ +_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/run.ts)_ ## `eas build:submit` @@ -551,7 +551,7 @@ DESCRIPTION get the latest version from EAS servers ``` -_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/version/get.ts)_ +_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/version/get.ts)_ ## `eas build:version:set` @@ -570,7 +570,7 @@ DESCRIPTION update version of an app ``` -_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/version/set.ts)_ +_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/version/set.ts)_ ## `eas build:version:sync` @@ -589,7 +589,7 @@ DESCRIPTION update a version in native code with a value stored on EAS servers ``` -_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/version/sync.ts)_ +_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/version/sync.ts)_ ## `eas build:view [BUILD_ID]` @@ -606,7 +606,7 @@ DESCRIPTION view a build for your project ``` -_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/build/view.ts)_ +_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/view.ts)_ ## `eas channel:create [NAME]` @@ -627,7 +627,7 @@ DESCRIPTION create a channel ``` -_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/channel/create.ts)_ +_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/channel/create.ts)_ ## `eas channel:edit [NAME]` @@ -649,7 +649,7 @@ DESCRIPTION point a channel at a new branch ``` -_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/channel/edit.ts)_ +_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/channel/edit.ts)_ ## `eas channel:list` @@ -669,7 +669,7 @@ DESCRIPTION list all channels ``` -_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/channel/list.ts)_ +_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/channel/list.ts)_ ## `eas channel:rollout [CHANNEL]` @@ -701,7 +701,7 @@ DESCRIPTION Roll a new branch out on a channel incrementally. ``` -_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/channel/rollout.ts)_ +_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/channel/rollout.ts)_ ## `eas channel:view [NAME]` @@ -724,7 +724,7 @@ DESCRIPTION view a channel ``` -_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/channel/view.ts)_ +_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/channel/view.ts)_ ## `eas config` @@ -745,7 +745,7 @@ DESCRIPTION display project configuration (app.json + eas.json) ``` -_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/config.ts)_ +_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/config.ts)_ ## `eas credentials` @@ -762,7 +762,7 @@ DESCRIPTION manage credentials ``` -_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/credentials.ts)_ +_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/credentials.ts)_ ## `eas device:create` @@ -776,7 +776,7 @@ DESCRIPTION register new Apple Devices to use for internal distribution ``` -_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/device/create.ts)_ +_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/device/create.ts)_ ## `eas device:delete` @@ -796,7 +796,7 @@ DESCRIPTION remove a registered device from your account ``` -_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/device/delete.ts)_ +_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/device/delete.ts)_ ## `eas device:list` @@ -817,7 +817,7 @@ DESCRIPTION list all registered devices for your account ``` -_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/device/list.ts)_ +_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/device/list.ts)_ ## `eas device:rename` @@ -838,7 +838,7 @@ DESCRIPTION rename a registered device ``` -_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/device/rename.ts)_ +_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/device/rename.ts)_ ## `eas device:view [UDID]` @@ -852,7 +852,7 @@ DESCRIPTION view a device for your project ``` -_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/device/view.ts)_ +_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/device/view.ts)_ ## `eas diagnostics` @@ -866,7 +866,7 @@ DESCRIPTION display environment info ``` -_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/diagnostics.ts)_ +_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/diagnostics.ts)_ ## `eas help [COMMAND]` @@ -954,7 +954,7 @@ DESCRIPTION validate the local store configuration ``` -_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/metadata/lint.ts)_ +_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/metadata/lint.ts)_ ## `eas metadata:pull` @@ -971,7 +971,7 @@ DESCRIPTION generate the local store configuration from the app stores ``` -_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/metadata/pull.ts)_ +_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/metadata/pull.ts)_ ## `eas metadata:push` @@ -988,7 +988,7 @@ DESCRIPTION sync the local store configuration to the app stores ``` -_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/metadata/push.ts)_ +_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/metadata/push.ts)_ ## `eas open` @@ -1002,7 +1002,7 @@ DESCRIPTION open the project page in a web browser ``` -_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/open.ts)_ +_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/open.ts)_ ## `eas project:info` @@ -1016,7 +1016,7 @@ DESCRIPTION information about the current project ``` -_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/project/info.ts)_ +_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/project/info.ts)_ ## `eas project:init` @@ -1038,7 +1038,7 @@ ALIASES $ eas init ``` -_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/project/init.ts)_ +_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/project/init.ts)_ ## `eas secret:create` @@ -1061,7 +1061,7 @@ DESCRIPTION create an environment secret on the current project or owner account ``` -_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/secret/create.ts)_ +_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/secret/create.ts)_ ## `eas secret:delete` @@ -1079,7 +1079,7 @@ DESCRIPTION delete an environment secret by ID ``` -_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/secret/delete.ts)_ +_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/secret/delete.ts)_ ## `eas secret:list` @@ -1093,7 +1093,7 @@ DESCRIPTION list environment secrets available for your current app ``` -_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/secret/list.ts)_ +_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/secret/list.ts)_ ## `eas secret:push` @@ -1113,7 +1113,7 @@ DESCRIPTION read environment secrets from env file and store on the server ``` -_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/secret/push.ts)_ +_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/secret/push.ts)_ ## `eas submit` @@ -1143,7 +1143,7 @@ ALIASES $ eas build:submit ``` -_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/submit.ts)_ +_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/submit.ts)_ ## `eas update` @@ -1176,7 +1176,7 @@ DESCRIPTION publish an update group ``` -_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/update/index.ts)_ +_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/update/index.ts)_ ## `eas update:configure` @@ -1194,7 +1194,7 @@ DESCRIPTION configure the project to support EAS Update ``` -_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/update/configure.ts)_ +_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/update/configure.ts)_ ## `eas update:delete GROUPID` @@ -1215,7 +1215,7 @@ DESCRIPTION delete all the updates in an update group ``` -_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/update/delete.ts)_ +_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/update/delete.ts)_ ## `eas update:list` @@ -1237,7 +1237,7 @@ DESCRIPTION view the recent updates ``` -_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/update/list.ts)_ +_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/update/list.ts)_ ## `eas update:republish` @@ -1264,7 +1264,7 @@ DESCRIPTION roll back to an existing update ``` -_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/update/republish.ts)_ +_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/update/republish.ts)_ ## `eas update:view GROUPID` @@ -1284,7 +1284,7 @@ DESCRIPTION update group details ``` -_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/update/view.ts)_ +_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/update/view.ts)_ ## `eas webhook:create` @@ -1305,7 +1305,7 @@ DESCRIPTION create a webhook ``` -_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/webhook/create.ts)_ +_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/webhook/create.ts)_ ## `eas webhook:delete [ID]` @@ -1325,7 +1325,7 @@ DESCRIPTION delete a webhook ``` -_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/webhook/delete.ts)_ +_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/webhook/delete.ts)_ ## `eas webhook:list` @@ -1343,7 +1343,7 @@ DESCRIPTION list webhooks ``` -_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/webhook/list.ts)_ +_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/webhook/list.ts)_ ## `eas webhook:update` @@ -1365,7 +1365,7 @@ DESCRIPTION update a webhook ``` -_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/webhook/update.ts)_ +_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/webhook/update.ts)_ ## `eas webhook:view ID` @@ -1382,7 +1382,7 @@ DESCRIPTION view a webhook ``` -_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.0.0/packages/eas-cli/src/commands/webhook/view.ts)_ +_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/webhook/view.ts)_ ## `eas whoami` diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index b57a54c452..d39d804793 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -1,7 +1,7 @@ { "name": "eas-cli", "description": "EAS command line tool", - "version": "5.0.0", + "version": "5.0.1", "author": "Expo ", "bin": { "eas": "./bin/run" From 81aa127e2895f979088ab6b5c9b35b44fa161451 Mon Sep 17 00:00:00 2001 From: Expo CI Date: Mon, 28 Aug 2023 19:05:12 +0000 Subject: [PATCH 019/105] update CHANGELOG.md --- CHANGELOG.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 05c8ad7b2b..0c8458f7fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,10 +10,14 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ› Bug fixes -- Pass `platform` argument to expo-cli correctly when using the `eas update` command. ([#2028](https://github.com/expo/eas-cli/pull/2028) by [@szdziedzic](https://github.com/szdziedzic)) - ### 🧹 Chores +## [5.0.1](https://github.com/expo/eas-cli/releases/tag/v5.0.1) - 2023-08-28 + +### πŸ› Bug fixes + +- Pass `platform` argument to expo-cli correctly when using the `eas update` command. ([#2028](https://github.com/expo/eas-cli/pull/2028) by [@szdziedzic](https://github.com/szdziedzic)) + ## [5.0.0](https://github.com/expo/eas-cli/releases/tag/v5.0.0) - 2023-08-28 ### πŸ›  Breaking changes From d00814f84b18bd0212f44ff95fda5a97292669f2 Mon Sep 17 00:00:00 2001 From: Cedric van Putten Date: Tue, 29 Aug 2023 13:11:49 +0200 Subject: [PATCH 020/105] fix(eas-cli): implement variadic `--platform` flag when creating EAS updates (#1939) * fix(eas-cli): implement variadic `--platform` flag when creating EAS updates * fix(eas-cli): finish todo and set minimum `@expo/cli@0.10.11` version for multiple `--platform` flags during export * update CHANGELOG.md * fix(eas-cli): be verbose about `--platform=` in bundle script --- CHANGELOG.md | 2 + packages/eas-cli/src/project/publish.ts | 58 ++++++++++++++++++------- packages/eas-cli/src/utils/expoCli.ts | 19 ++++++++ 3 files changed, 64 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c8458f7fd..14d8545711 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ› Bug fixes +- Add proper expo cli `--platform` flag handling when exporting updates. ([#1939](https://github.com/expo/eas-cli/pull/1939) by [@byCedric](https://github.com/byCedric)) + ### 🧹 Chores ## [5.0.1](https://github.com/expo/eas-cli/releases/tag/v5.0.1) - 2023-08-28 diff --git a/packages/eas-cli/src/project/publish.ts b/packages/eas-cli/src/project/publish.ts index db591332c2..b1c92e2bb5 100644 --- a/packages/eas-cli/src/project/publish.ts +++ b/packages/eas-cli/src/project/publish.ts @@ -25,7 +25,11 @@ import { promptAsync } from '../prompts'; import { getBranchNameFromChannelNameAsync } from '../update/getBranchNameFromChannelNameAsync'; import { formatUpdateMessage, truncateString as truncateUpdateMessage } from '../update/utils'; import { PresignedPost, uploadWithPresignedPostWithRetryAsync } from '../uploads'; -import { expoCommandAsync, shouldUseVersionedExpoCLI } from '../utils/expoCli'; +import { + expoCommandAsync, + shouldUseVersionedExpoCLI, + shouldUseVersionedExpoCLIWithExplicitPlatforms, +} from '../utils/expoCli'; import chunk from '../utils/expodash/chunk'; import { truthy } from '../utils/expodash/filter'; import uniqBy from '../utils/expodash/uniqBy'; @@ -184,7 +188,7 @@ export async function buildBundlesAsync({ }: { projectDir: string; inputDir: string; - exp: Pick; + exp: Pick; platformFlag: ExpoCLIExportPlatformFlag; clearCache?: boolean; }): Promise { @@ -193,35 +197,59 @@ export async function buildBundlesAsync({ throw new Error('Could not locate package.json'); } - const platformArgs = - platformFlag === 'all' - ? ['--platform', 'ios', '--platform', 'android'] - : ['--platform', platformFlag]; - - if (shouldUseVersionedExpoCLI(projectDir, exp)) { - await expoCommandAsync(projectDir, [ + // Legacy global Expo CLI + if (!shouldUseVersionedExpoCLI(projectDir, exp)) { + return await expoCommandAsync(projectDir, [ 'export', '--output-dir', inputDir, + '--experimental-bundle', + '--non-interactive', '--dump-sourcemap', '--dump-assetmap', - ...platformArgs, + `--platform=${platformFlag}`, ...(clearCache ? ['--clear'] : []), ]); - } else { - // Legacy global Expo CLI - await expoCommandAsync(projectDir, [ + } + + // Versioned Expo CLI, with multiple platform flag support + if (shouldUseVersionedExpoCLIWithExplicitPlatforms(projectDir)) { + // When creating EAS updates, we don't want to build a web bundle + const platformArgs = + platformFlag === 'all' + ? ['--platform', 'ios', '--platform', 'android'] + : ['--platform', platformFlag]; + + return await expoCommandAsync(projectDir, [ 'export', '--output-dir', inputDir, - '--experimental-bundle', - '--non-interactive', '--dump-sourcemap', '--dump-assetmap', ...platformArgs, ...(clearCache ? ['--clear'] : []), ]); } + + // Versioned Expo CLI, without multiple platform flag support + // Warn users about potential export issues when using Metro web + // See: https://github.com/expo/expo/pull/23621 + if (exp.web?.bundler === 'metro') { + Log.warn('Exporting bundle for all platforms, including Metro web.'); + Log.warn( + 'If your app is incompatible with web, remove the "expo.web.bundler" property from your app manifest, or upgrade to the latest Expo SDK.' + ); + } + + return await expoCommandAsync(projectDir, [ + 'export', + '--output-dir', + inputDir, + '--dump-sourcemap', + '--dump-assetmap', + `--platform=${platformFlag}`, + ...(clearCache ? ['--clear'] : []), + ]); } export async function resolveInputDirectoryAsync( diff --git a/packages/eas-cli/src/utils/expoCli.ts b/packages/eas-cli/src/utils/expoCli.ts index f2c4c76669..abedddae4c 100644 --- a/packages/eas-cli/src/utils/expoCli.ts +++ b/packages/eas-cli/src/utils/expoCli.ts @@ -56,7 +56,26 @@ export function shouldUseVersionedExpoCLIExpensive( return !!resolveFrom.silent(projectDir, '@expo/cli'); } +/** + * Determine if we can and should use `expo export` with multiple `--platform` flags. + * This is an issue related to `expo export --all` causing issues when users have Metro web configured. + * See: https://github.com/expo/expo/pull/23621 + */ +export function shouldUseVersionedExpoCLIWithExplicitPlatformsExpensive( + projectDir: string +): boolean { + const expoCliPath = resolveFrom.silent(projectDir, '@expo/cli/package.json'); + if (!expoCliPath) { + return false; + } + + return gteSdkVersion(require(expoCliPath).version, '0.10.11'); +} + export const shouldUseVersionedExpoCLI = memoize(shouldUseVersionedExpoCLIExpensive); +export const shouldUseVersionedExpoCLIWithExplicitPlatforms = memoize( + shouldUseVersionedExpoCLIWithExplicitPlatformsExpensive +); export async function expoCommandAsync( projectDir: string, From 008279e1ddeec18619d84d887a9f8a2294783ae4 Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Tue, 29 Aug 2023 13:15:39 +0200 Subject: [PATCH 021/105] v5.0.2 --- lerna.json | 2 +- packages/eas-cli/README.md | 110 +++++++++++++++++----------------- packages/eas-cli/package.json | 2 +- 3 files changed, 57 insertions(+), 57 deletions(-) diff --git a/lerna.json b/lerna.json index 320f133eb2..6dfed999b3 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "npmClient": "yarn", "useWorkspaces": true, - "version": "5.0.1", + "version": "5.0.2", "$schema": "node_modules/lerna/schemas/lerna-schema.json" } diff --git a/packages/eas-cli/README.md b/packages/eas-cli/README.md index d00e8bfff2..6e3341c42a 100644 --- a/packages/eas-cli/README.md +++ b/packages/eas-cli/README.md @@ -133,7 +133,7 @@ ALIASES $ eas login ``` -_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/account/login.ts)_ +_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/account/login.ts)_ ## `eas account:logout` @@ -150,7 +150,7 @@ ALIASES $ eas logout ``` -_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/account/logout.ts)_ +_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/account/logout.ts)_ ## `eas account:view` @@ -167,7 +167,7 @@ ALIASES $ eas whoami ``` -_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/account/view.ts)_ +_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/account/view.ts)_ ## `eas analytics [STATUS]` @@ -181,7 +181,7 @@ DESCRIPTION display or change analytics settings ``` -_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/analytics.ts)_ +_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/analytics.ts)_ ## `eas autocomplete [SHELL]` @@ -231,7 +231,7 @@ DESCRIPTION create a branch ``` -_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/branch/create.ts)_ +_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/branch/create.ts)_ ## `eas branch:delete [NAME]` @@ -252,7 +252,7 @@ DESCRIPTION delete a branch ``` -_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/branch/delete.ts)_ +_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/branch/delete.ts)_ ## `eas branch:list` @@ -272,7 +272,7 @@ DESCRIPTION list all branches ``` -_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/branch/list.ts)_ +_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/branch/list.ts)_ ## `eas branch:rename` @@ -292,7 +292,7 @@ DESCRIPTION rename a branch ``` -_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/branch/rename.ts)_ +_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/branch/rename.ts)_ ## `eas branch:view [NAME]` @@ -315,7 +315,7 @@ DESCRIPTION view a branch ``` -_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/branch/view.ts)_ +_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/branch/view.ts)_ ## `eas build` @@ -345,7 +345,7 @@ DESCRIPTION start a build ``` -_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/index.ts)_ +_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/index.ts)_ ## `eas build:cancel [BUILD_ID]` @@ -362,7 +362,7 @@ DESCRIPTION cancel a build ``` -_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/cancel.ts)_ +_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/cancel.ts)_ ## `eas build:configure` @@ -379,7 +379,7 @@ DESCRIPTION configure the project to support EAS Build ``` -_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/configure.ts)_ +_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/configure.ts)_ ## `eas build:inspect` @@ -414,7 +414,7 @@ DESCRIPTION inspect the state of the project at specific build stages, useful for troubleshooting ``` -_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/inspect.ts)_ +_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/inspect.ts)_ ## `eas build:list` @@ -452,7 +452,7 @@ DESCRIPTION list all builds for your project ``` -_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/list.ts)_ +_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/list.ts)_ ## `eas build:resign` @@ -478,7 +478,7 @@ DESCRIPTION re-sign a build archive ``` -_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/resign.ts)_ +_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/resign.ts)_ ## `eas build:run` @@ -502,7 +502,7 @@ DESCRIPTION run simulator/emulator builds from eas-cli ``` -_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/run.ts)_ +_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/run.ts)_ ## `eas build:submit` @@ -551,7 +551,7 @@ DESCRIPTION get the latest version from EAS servers ``` -_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/version/get.ts)_ +_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/version/get.ts)_ ## `eas build:version:set` @@ -570,7 +570,7 @@ DESCRIPTION update version of an app ``` -_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/version/set.ts)_ +_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/version/set.ts)_ ## `eas build:version:sync` @@ -589,7 +589,7 @@ DESCRIPTION update a version in native code with a value stored on EAS servers ``` -_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/version/sync.ts)_ +_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/version/sync.ts)_ ## `eas build:view [BUILD_ID]` @@ -606,7 +606,7 @@ DESCRIPTION view a build for your project ``` -_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/build/view.ts)_ +_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/view.ts)_ ## `eas channel:create [NAME]` @@ -627,7 +627,7 @@ DESCRIPTION create a channel ``` -_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/channel/create.ts)_ +_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/channel/create.ts)_ ## `eas channel:edit [NAME]` @@ -649,7 +649,7 @@ DESCRIPTION point a channel at a new branch ``` -_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/channel/edit.ts)_ +_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/channel/edit.ts)_ ## `eas channel:list` @@ -669,7 +669,7 @@ DESCRIPTION list all channels ``` -_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/channel/list.ts)_ +_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/channel/list.ts)_ ## `eas channel:rollout [CHANNEL]` @@ -701,7 +701,7 @@ DESCRIPTION Roll a new branch out on a channel incrementally. ``` -_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/channel/rollout.ts)_ +_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/channel/rollout.ts)_ ## `eas channel:view [NAME]` @@ -724,7 +724,7 @@ DESCRIPTION view a channel ``` -_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/channel/view.ts)_ +_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/channel/view.ts)_ ## `eas config` @@ -745,7 +745,7 @@ DESCRIPTION display project configuration (app.json + eas.json) ``` -_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/config.ts)_ +_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/config.ts)_ ## `eas credentials` @@ -762,7 +762,7 @@ DESCRIPTION manage credentials ``` -_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/credentials.ts)_ +_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/credentials.ts)_ ## `eas device:create` @@ -776,7 +776,7 @@ DESCRIPTION register new Apple Devices to use for internal distribution ``` -_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/device/create.ts)_ +_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/device/create.ts)_ ## `eas device:delete` @@ -796,7 +796,7 @@ DESCRIPTION remove a registered device from your account ``` -_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/device/delete.ts)_ +_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/device/delete.ts)_ ## `eas device:list` @@ -817,7 +817,7 @@ DESCRIPTION list all registered devices for your account ``` -_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/device/list.ts)_ +_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/device/list.ts)_ ## `eas device:rename` @@ -838,7 +838,7 @@ DESCRIPTION rename a registered device ``` -_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/device/rename.ts)_ +_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/device/rename.ts)_ ## `eas device:view [UDID]` @@ -852,7 +852,7 @@ DESCRIPTION view a device for your project ``` -_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/device/view.ts)_ +_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/device/view.ts)_ ## `eas diagnostics` @@ -866,7 +866,7 @@ DESCRIPTION display environment info ``` -_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/diagnostics.ts)_ +_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/diagnostics.ts)_ ## `eas help [COMMAND]` @@ -954,7 +954,7 @@ DESCRIPTION validate the local store configuration ``` -_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/metadata/lint.ts)_ +_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/metadata/lint.ts)_ ## `eas metadata:pull` @@ -971,7 +971,7 @@ DESCRIPTION generate the local store configuration from the app stores ``` -_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/metadata/pull.ts)_ +_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/metadata/pull.ts)_ ## `eas metadata:push` @@ -988,7 +988,7 @@ DESCRIPTION sync the local store configuration to the app stores ``` -_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/metadata/push.ts)_ +_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/metadata/push.ts)_ ## `eas open` @@ -1002,7 +1002,7 @@ DESCRIPTION open the project page in a web browser ``` -_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/open.ts)_ +_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/open.ts)_ ## `eas project:info` @@ -1016,7 +1016,7 @@ DESCRIPTION information about the current project ``` -_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/project/info.ts)_ +_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/project/info.ts)_ ## `eas project:init` @@ -1038,7 +1038,7 @@ ALIASES $ eas init ``` -_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/project/init.ts)_ +_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/project/init.ts)_ ## `eas secret:create` @@ -1061,7 +1061,7 @@ DESCRIPTION create an environment secret on the current project or owner account ``` -_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/secret/create.ts)_ +_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/secret/create.ts)_ ## `eas secret:delete` @@ -1079,7 +1079,7 @@ DESCRIPTION delete an environment secret by ID ``` -_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/secret/delete.ts)_ +_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/secret/delete.ts)_ ## `eas secret:list` @@ -1093,7 +1093,7 @@ DESCRIPTION list environment secrets available for your current app ``` -_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/secret/list.ts)_ +_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/secret/list.ts)_ ## `eas secret:push` @@ -1113,7 +1113,7 @@ DESCRIPTION read environment secrets from env file and store on the server ``` -_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/secret/push.ts)_ +_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/secret/push.ts)_ ## `eas submit` @@ -1143,7 +1143,7 @@ ALIASES $ eas build:submit ``` -_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/submit.ts)_ +_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/submit.ts)_ ## `eas update` @@ -1176,7 +1176,7 @@ DESCRIPTION publish an update group ``` -_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/update/index.ts)_ +_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/update/index.ts)_ ## `eas update:configure` @@ -1194,7 +1194,7 @@ DESCRIPTION configure the project to support EAS Update ``` -_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/update/configure.ts)_ +_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/update/configure.ts)_ ## `eas update:delete GROUPID` @@ -1215,7 +1215,7 @@ DESCRIPTION delete all the updates in an update group ``` -_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/update/delete.ts)_ +_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/update/delete.ts)_ ## `eas update:list` @@ -1237,7 +1237,7 @@ DESCRIPTION view the recent updates ``` -_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/update/list.ts)_ +_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/update/list.ts)_ ## `eas update:republish` @@ -1264,7 +1264,7 @@ DESCRIPTION roll back to an existing update ``` -_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/update/republish.ts)_ +_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/update/republish.ts)_ ## `eas update:view GROUPID` @@ -1284,7 +1284,7 @@ DESCRIPTION update group details ``` -_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/update/view.ts)_ +_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/update/view.ts)_ ## `eas webhook:create` @@ -1305,7 +1305,7 @@ DESCRIPTION create a webhook ``` -_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/webhook/create.ts)_ +_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/webhook/create.ts)_ ## `eas webhook:delete [ID]` @@ -1325,7 +1325,7 @@ DESCRIPTION delete a webhook ``` -_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/webhook/delete.ts)_ +_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/webhook/delete.ts)_ ## `eas webhook:list` @@ -1343,7 +1343,7 @@ DESCRIPTION list webhooks ``` -_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/webhook/list.ts)_ +_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/webhook/list.ts)_ ## `eas webhook:update` @@ -1365,7 +1365,7 @@ DESCRIPTION update a webhook ``` -_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/webhook/update.ts)_ +_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/webhook/update.ts)_ ## `eas webhook:view ID` @@ -1382,7 +1382,7 @@ DESCRIPTION view a webhook ``` -_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.0.1/packages/eas-cli/src/commands/webhook/view.ts)_ +_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/webhook/view.ts)_ ## `eas whoami` diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index d39d804793..3145b17e37 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -1,7 +1,7 @@ { "name": "eas-cli", "description": "EAS command line tool", - "version": "5.0.1", + "version": "5.0.2", "author": "Expo ", "bin": { "eas": "./bin/run" From b30c86f0c0bc0441fe04318fd814efbe673211d3 Mon Sep 17 00:00:00 2001 From: Expo CI Date: Tue, 29 Aug 2023 11:51:19 +0000 Subject: [PATCH 022/105] update CHANGELOG.md --- CHANGELOG.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 14d8545711..734360dcea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,10 +10,14 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ› Bug fixes -- Add proper expo cli `--platform` flag handling when exporting updates. ([#1939](https://github.com/expo/eas-cli/pull/1939) by [@byCedric](https://github.com/byCedric)) - ### 🧹 Chores +## [5.0.2](https://github.com/expo/eas-cli/releases/tag/v5.0.2) - 2023-08-29 + +### πŸ› Bug fixes + +- Add proper expo cli `--platform` flag handling when exporting updates. ([#1939](https://github.com/expo/eas-cli/pull/1939) by [@byCedric](https://github.com/byCedric)) + ## [5.0.1](https://github.com/expo/eas-cli/releases/tag/v5.0.1) - 2023-08-28 ### πŸ› Bug fixes From 324dce8fc0696ada7e064f636c2ce59c2f2c8966 Mon Sep 17 00:00:00 2001 From: Quinlan Jung Date: Tue, 29 Aug 2023 14:07:35 -0700 Subject: [PATCH 023/105] [eas-cli] fix printing bug: branch with no update (#2023) * [eas-cli] fix branch with no update printing bug * tests * update CHANGELOG.md --- CHANGELOG.md | 1 + .../src/channel/__tests__/print-utils-test.ts | 54 +++++++++++++++ packages/eas-cli/src/channel/print-utils.ts | 66 ++++++++++++------- 3 files changed, 96 insertions(+), 25 deletions(-) create mode 100644 packages/eas-cli/src/channel/__tests__/print-utils-test.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 734360dcea..5ed3d07214 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,6 +41,7 @@ This is the log of notable changes to EAS CLI and related packages. - Support republishing roll back to embedded updates. ([#2006](https://github.com/expo/eas-cli/pull/2006) by [@wschurman](https://github.com/wschurman)) - Configure updates as well when somebody tries to run a build with channel set. ([#2016](https://github.com/expo/eas-cli/pull/2016) by [@wschurman](https://github.com/wschurman)) +- Fix printing bug: branch with no update. ([#2023](https://github.com/expo/eas-cli/pull/2023) by [@quinlanj](https://github.com/quinlanj)) ### 🧹 Chores diff --git a/packages/eas-cli/src/channel/__tests__/print-utils-test.ts b/packages/eas-cli/src/channel/__tests__/print-utils-test.ts new file mode 100644 index 0000000000..9e07d55f69 --- /dev/null +++ b/packages/eas-cli/src/channel/__tests__/print-utils-test.ts @@ -0,0 +1,54 @@ +import { getAlwaysTrueBranchMapping, getEmptyBranchMapping } from '../branch-mapping'; +import { getDescriptionByBranchId } from '../print-utils'; +import { testChannelObject, testUpdateBranch1, testUpdateBranch2 } from './fixtures'; + +describe(getDescriptionByBranchId, () => { + it('should get descriptions for multiple branches with multiple update groups', () => { + const descriptionByBranchId = getDescriptionByBranchId(testChannelObject); + expect(Object.values(descriptionByBranchId)).toHaveLength(2); + expect(descriptionByBranchId[testUpdateBranch1.id]).toEqual({ + branch: 'wrong-channel', + branchRolloutPercentage: 15, + update: { + codeSigningKey: undefined, + group: '16ca6dba-e63b-48b0-baa3-15a894ee9434', + isRollBackToEmbedded: false, + message: '"fix bug" (1 month ago by quintest113)', + platforms: 'android, ios', + runtimeVersion: 'exposdk:48.0.0', + }, + }); + expect(descriptionByBranchId[testUpdateBranch2.id]).toEqual({ + branch: 'production', + branchRolloutPercentage: 85, + update: { + codeSigningKey: undefined, + group: 'e40ad156-e9af-4cc2-8e9d-c7b5c328db48', + isRollBackToEmbedded: false, + message: '"fix bug" (2 months ago by quintest113)', + platforms: 'android, ios', + runtimeVersion: 'exposdk:48.0.0', + }, + }); + }); + it('should get descriptions for branches with no updates', () => { + const noUpdatesBranch = { ...testUpdateBranch1, updateGroups: [] }; + const oneBranchChannel = { + ...testChannelObject, + updateBranches: [noUpdatesBranch], + branchMapping: JSON.stringify(getAlwaysTrueBranchMapping(noUpdatesBranch.id)), + }; + const descriptionByBranchId = getDescriptionByBranchId(oneBranchChannel); + expect(Object.values(descriptionByBranchId)).toHaveLength(1); + expect(descriptionByBranchId[testUpdateBranch1.id]).toEqual({ branch: 'wrong-channel' }); + }); + it('should get descriptions for no branches', () => { + const noBranchChannel = { + ...testChannelObject, + updateBranches: [], + branchMapping: JSON.stringify(getEmptyBranchMapping()), + }; + const descriptionByBranchId = getDescriptionByBranchId(noBranchChannel); + expect(Object.values(descriptionByBranchId)).toHaveLength(0); + }); +}); diff --git a/packages/eas-cli/src/channel/print-utils.ts b/packages/eas-cli/src/channel/print-utils.ts index 0eefe0b8d3..b37ec0b229 100644 --- a/packages/eas-cli/src/channel/print-utils.ts +++ b/packages/eas-cli/src/channel/print-utils.ts @@ -1,4 +1,3 @@ -import assert from 'assert'; import chalk from 'chalk'; import { UpdateChannelObject } from '../graphql/queries/ChannelQuery'; @@ -11,17 +10,35 @@ import { } from '../update/utils'; import { assertVersion, hasEmptyBranchMap, hasStandardBranchMap } from './branch-mapping'; +/** + * Log all the branches associated with the channel and their most recent update group + */ export function logChannelDetails(channel: UpdateChannelObject): void { assertVersion(channel, 0); - assert( - hasEmptyBranchMap(channel) || hasStandardBranchMap(channel) || isRollout(channel), - 'Only standard branch mappings and rollouts are supported.' - ); + const doesSupportMapping = + hasEmptyBranchMap(channel) || hasStandardBranchMap(channel) || isRollout(channel); + if (!doesSupportMapping) { + Log.log(chalk.dim('Custom branch mapping detected.')); + return; + } - const branchDescription = channel.updateBranches.flatMap(branch => { - const updateGroupWithBranchDescriptions = getUpdateGroupDescriptionsWithBranch( - branch.updateGroups + const branchDescriptionByBranchId = getDescriptionByBranchId(channel); + const entries = Object.entries(branchDescriptionByBranchId); + if (entries.length === 0) { + Log.log(chalk.dim('No branches are pointed to this channel.')); + } else { + Log.log( + entries + .map(([_branchId, description]) => formatBranch(description)) + .join(`\n\n${chalk.dim('β€”β€”β€”')}\n\n`) ); + } +} + +export function getDescriptionByBranchId( + channel: UpdateChannelObject +): Record { + return channel.updateBranches.reduce((acc, branch) => { const maybeRollout = isRollout(channel) ? getRollout(channel) : null; let maybePercentOnBranch: number | undefined = undefined; if (maybeRollout) { @@ -31,22 +48,21 @@ export function logChannelDetails(channel: UpdateChannelObject): void { : 100 - maybeRollout.percentRolledOut; } - return updateGroupWithBranchDescriptions.map( - ({ branch, ...updateGroup }): FormattedBranchDescription => ({ - branch, - branchRolloutPercentage: maybePercentOnBranch, - update: updateGroup, - }) - ); - }); - - if (branchDescription.length === 0) { - Log.log(chalk.dim('No branches are pointed to this channel.')); - } else { - Log.log( - branchDescription - .map(description => formatBranch(description)) - .join(`\n\n${chalk.dim('β€”β€”β€”')}\n\n`) + if (branch.updateGroups.length === 0) { + acc[branch.id] = { branch: branch.name, branchRolloutPercentage: maybePercentOnBranch }; + return acc; + } + const updateGroupsWithBranchDescriptions = getUpdateGroupDescriptionsWithBranch( + branch.updateGroups ); - } + // display the most recent update group + const updateGroupWithBranchDescription = updateGroupsWithBranchDescriptions[0]; + const { branch: branchName, ...updateGroup } = updateGroupWithBranchDescription; + acc[branch.id] = { + branch: branchName, + branchRolloutPercentage: maybePercentOnBranch, + update: updateGroup, + }; + return acc; + }, {} as Record); } From 9ff47af4fa1c11ca18a583a78680cd8c7ee96def Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rados=C5=82aw=20Krzemie=C5=84?= Date: Wed, 30 Aug 2023 09:11:00 +0200 Subject: [PATCH 024/105] [eas-cli] [ENG-7536] Stop app config error repeating (#2020) * [eas-cli] Stop app config error repeating If app config error is thrown it is re-thrown with modified message instead of printing it to the as a "cryptic error" and repeating with 0% chances of success (since the config is incorrect) See: https://linear.app/expo/issue/ENG-7536/make-app-config-error-on-credentials-command-not-repeat-indefinitely * [eas-cli] Create custom error Replaced generic error with specific message with a custom error class, which allows for not relying on a message to be exactly as expected See: https://linear.app/expo/issue/ENG-7536/make-app-config-error-on-credentials-command-not-repeat-indefinitely * update CHANGELOG.md * [eas-cli] Remove blank line Removed blank line from changelog See: https://linear.app/expo/issue/ENG-7536/make-app-config-error-on-credentials-command-not-repeat-indefinitely --- CHANGELOG.md | 2 + .../android/actions/BuildCredentialsUtils.ts | 3 +- packages/eas-cli/src/credentials/errors.ts | 6 ++ .../src/credentials/manager/ManageAndroid.ts | 7 ++ .../manager/__tests__/ManageAndroid-test.ts | 69 +++++++++++++++++++ 5 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 packages/eas-cli/src/credentials/manager/__tests__/ManageAndroid-test.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ed3d07214..a61b98d5e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ› Bug fixes +- Make app config error not repeat indefinitely. ([#2020](https://github.com/expo/eas-cli/pull/2020) by [@radoslawkrzemien](https://github.com/radoslawkrzemien)) + ### 🧹 Chores ## [5.0.2](https://github.com/expo/eas-cli/releases/tag/v5.0.2) - 2023-08-29 diff --git a/packages/eas-cli/src/credentials/android/actions/BuildCredentialsUtils.ts b/packages/eas-cli/src/credentials/android/actions/BuildCredentialsUtils.ts index efb887a509..ff075565ae 100644 --- a/packages/eas-cli/src/credentials/android/actions/BuildCredentialsUtils.ts +++ b/packages/eas-cli/src/credentials/android/actions/BuildCredentialsUtils.ts @@ -11,6 +11,7 @@ import { } from '../../../project/projectUtils'; import { promptAsync } from '../../../prompts'; import { CredentialsContext } from '../../context'; +import { AndroidPackageNotDefinedError } from '../../errors'; import { AppLookupParams } from '../api/GraphqlClient'; /** @@ -111,7 +112,7 @@ export async function getAppLookupParamsFromContextAsync( gradleContext ); if (!androidApplicationIdentifier) { - throw new Error( + throw new AndroidPackageNotDefinedError( `android.package needs to be defined in your ${getProjectConfigDescription( ctx.projectDir )} file` diff --git a/packages/eas-cli/src/credentials/errors.ts b/packages/eas-cli/src/credentials/errors.ts index e317b8e867..9b523fd3e0 100644 --- a/packages/eas-cli/src/credentials/errors.ts +++ b/packages/eas-cli/src/credentials/errors.ts @@ -15,3 +15,9 @@ export class UnsupportedCredentialsChoiceError extends Error { super(message); } } + +export class AndroidPackageNotDefinedError extends Error { + constructor(message?: string) { + super(message ?? 'android.package needs to be defined in your app.json/app.config.js file'); + } +} diff --git a/packages/eas-cli/src/credentials/manager/ManageAndroid.ts b/packages/eas-cli/src/credentials/manager/ManageAndroid.ts index 2e60498bc0..4115b52f8a 100644 --- a/packages/eas-cli/src/credentials/manager/ManageAndroid.ts +++ b/packages/eas-cli/src/credentials/manager/ManageAndroid.ts @@ -27,6 +27,7 @@ import { displayEmptyAndroidCredentials, } from '../android/utils/printCredentials'; import { CredentialsContext, CredentialsContextProjectInfo } from '../context'; +import { AndroidPackageNotDefinedError } from '../errors'; import { ActionInfo, AndroidActionType, Scope } from './Actions'; import { buildCredentialsActions, @@ -131,6 +132,12 @@ export class ManageAndroid { await this.runProjectSpecificActionAsync(ctx, chosenAction, gradleContext); } catch (err) { + if (err instanceof AndroidPackageNotDefinedError) { + err.message += `\n${learnMore( + 'https://docs.expo.dev/workflow/configuration/' + )} about configuration with app.json/app.config.js`; + throw err; // breaks out of the loop to avoid failing again after continuation + } Log.error(err); if (process.env.DEBUG) { throw err; // breaks out of the loop so we can get stack trace diff --git a/packages/eas-cli/src/credentials/manager/__tests__/ManageAndroid-test.ts b/packages/eas-cli/src/credentials/manager/__tests__/ManageAndroid-test.ts new file mode 100644 index 0000000000..f4ae06ed36 --- /dev/null +++ b/packages/eas-cli/src/credentials/manager/__tests__/ManageAndroid-test.ts @@ -0,0 +1,69 @@ +import { Platform } from '@expo/eas-build-job'; +import { BuildProfile, EasJsonUtils } from '@expo/eas-json'; + +import { Analytics } from '../../../analytics/AnalyticsManager'; +import { ExpoGraphqlClient } from '../../../commandUtils/context/contextUtils/createGraphqlClient'; +import { learnMore } from '../../../log'; +import { getProjectConfigDescription } from '../../../project/projectUtils'; +import { pressAnyKeyToContinueAsync } from '../../../prompts'; +import { Actor } from '../../../user/User'; +import { getAppLookupParamsFromContextAsync } from '../../android/actions/BuildCredentialsUtils'; +import { CredentialsContextProjectInfo } from '../../context'; +import { AndroidPackageNotDefinedError } from '../../errors'; +import { Action } from '../HelperActions'; +import { ManageAndroid } from '../ManageAndroid'; + +jest.mock('../../android/actions/BuildCredentialsUtils'); +jest.mock('../../../prompts', () => { + return { + ...jest.requireActual('../../../prompts'), + pressAnyKeyToContinueAsync: jest.fn(), + }; +}); +jest.mock('../../../project/projectUtils'); + +describe('runAsync', () => { + describe('"android.package" missing in app.json', () => { + const manageAndroid = new ManageAndroid( + { + projectInfo: {} as CredentialsContextProjectInfo, + actor: {} as Actor, + graphqlClient: {} as ExpoGraphqlClient, + analytics: {} as Analytics, + getDynamicPrivateProjectConfigAsync: jest + .fn() + .mockResolvedValue({ exp: {}, projectId: '' }), + runAsync: jest.fn(), + } as Action, + '' + ); + it('does not repeat the error indefinitely and prints useful error', async () => { + jest.spyOn(EasJsonUtils, 'getBuildProfileNamesAsync').mockResolvedValue(['testProfile']); + jest + .spyOn(EasJsonUtils, 'getBuildProfileAsync') + .mockResolvedValue({} as BuildProfile); + jest.mocked(getProjectConfigDescription).mockReturnValue('app.json'); + jest.mocked(getAppLookupParamsFromContextAsync).mockImplementation(() => { + throw new AndroidPackageNotDefinedError( + 'Specify "android.package" in app.json and run this command again.' + ); + }); + const pressAnyKeyToContinueAsyncMock = jest.mocked(pressAnyKeyToContinueAsync); + Array.from(Array(100)).map((_, i) => { + // continue 101 times if error is rethrown indefinitely + pressAnyKeyToContinueAsyncMock.mockResolvedValueOnce(); + }); + pressAnyKeyToContinueAsyncMock.mockImplementationOnce(async () => { + // fail after 102nd time + fail('test should not reach this place - if it does, the error repeats indefinitely'); + }); + const reThrownError = new AndroidPackageNotDefinedError( + 'Specify "android.package" in app.json and run this command again.\n' + + `${learnMore( + 'https://docs.expo.dev/workflow/configuration/' + )} about configuration with app.json/app.config.js` + ); + await expect(manageAndroid.runAsync()).rejects.toThrow(reThrownError); + }); + }); +}); From c22f410889c8a5f4d3177b012c3bd58c2db57360 Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Wed, 30 Aug 2023 16:00:49 +0200 Subject: [PATCH 025/105] [eas-cli][eas-json] bump `semver` version (#2030) * [eas-cli][eas-json] bump `semver` version * update scripts yarn.lock --- packages/eas-cli/package.json | 2 +- packages/eas-json/package.json | 2 +- scripts/package.json | 2 +- scripts/yarn.lock | 8 ++++---- yarn.lock | 15 +++++++++++---- 5 files changed, 18 insertions(+), 11 deletions(-) diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index 3145b17e37..3e5e6f5660 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -73,7 +73,7 @@ "prompts": "2.4.2", "qrcode-terminal": "0.12.0", "resolve-from": "5.0.0", - "semver": "7.3.8", + "semver": "7.5.2", "slash": "3.0.0", "tar": "6.1.13", "terminal-link": "2.1.1", diff --git a/packages/eas-json/package.json b/packages/eas-json/package.json index 8d02e27fda..07cfc54fd0 100644 --- a/packages/eas-json/package.json +++ b/packages/eas-json/package.json @@ -13,7 +13,7 @@ "golden-fleece": "1.0.9", "joi": "17.7.0", "log-symbols": "4.1.0", - "semver": "7.3.8", + "semver": "7.5.2", "terminal-link": "2.1.1", "tslib": "2.4.1" }, diff --git a/scripts/package.json b/scripts/package.json index a67e81a45a..62ff547c5b 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -23,7 +23,7 @@ "fs-extra": "10.1.0", "lodash-es": "4.17.21", "marked": "3.0.4", - "semver": "7.3.8", + "semver": "7.5.2", "tslib": "2.4.1" }, "devDependencies": { diff --git a/scripts/yarn.lock b/scripts/yarn.lock index a06c3e0a0a..705992f926 100644 --- a/scripts/yarn.lock +++ b/scripts/yarn.lock @@ -166,10 +166,10 @@ marked@3.0.4: resolved "https://registry.yarnpkg.com/marked/-/marked-3.0.4.tgz#b8a1539e5e05c6ea9e93f15c0bad1d54ce890406" integrity sha512-jBo8AOayNaEcvBhNobg6/BLhdsK3NvnKWJg33MAAPbvTWiG4QBn9gpW1+7RssrKu4K1dKlN+0goVQwV41xEfOA== -semver@7.3.8: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== +semver@7.5.2: + version "7.5.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.2.tgz#5b851e66d1be07c1cdaf37dfc856f543325a2beb" + integrity sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ== dependencies: lru-cache "^6.0.0" diff --git a/yarn.lock b/yarn.lock index 7e72b3cf94..5db53bbfe1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12084,10 +12084,10 @@ semver@7.3.4, semver@^7.3.2: dependencies: lru-cache "^6.0.0" -semver@7.3.8, semver@^7.0.0, semver@^7.3.8: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== +semver@7.5.2: + version "7.5.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.2.tgz#5b851e66d1be07c1cdaf37dfc856f543325a2beb" + integrity sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ== dependencies: lru-cache "^6.0.0" @@ -12110,6 +12110,13 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.0.0, semver@^7.3.8: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" From 67e9ea706b00be40bbc3d0e8b1914afad20a45f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Aug 2023 17:04:07 +0200 Subject: [PATCH 026/105] Bump word-wrap from 1.2.3 to 1.2.5 (#2033) Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.5. - [Release notes](https://github.com/jonschlinkert/word-wrap/releases) - [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.5) --- updated-dependencies: - dependency-name: word-wrap dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5db53bbfe1..83298891b6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13658,9 +13658,9 @@ wonka@^6.3.2: integrity sha512-2xXbQ1LnwNS7egVm1HPhW2FyKrekolzhpM3mCwXdQr55gO+tAiY76rhb32OL9kKsW8taj++iP7C6hxlVzbnvrw== word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== wordwrap@^1.0.0: version "1.0.0" From 6cf8bd5c5a72223a2b4c4db3105a2366d0c23c0b Mon Sep 17 00:00:00 2001 From: Piotr Szeremeta Date: Fri, 1 Sep 2023 15:26:28 +0200 Subject: [PATCH 027/105] [ENG-9473] Support installing selected pnpm version (#1988) * [wip][ENG-9473] * [ENG-9473] Add `pnpm` option to `builderEnvironment`. * update CHANGELOG.md * Fix changelog --- CHANGELOG.md | 1 + packages/eas-cli/graphql.schema.json | 26 +++++- .../eas-cli/src/build/android/prepareJob.ts | 1 + packages/eas-cli/src/build/ios/prepareJob.ts | 1 + packages/eas-cli/src/graphql/generated.ts | 2 + packages/eas-json/schema/eas.schema.json | 79 ++++++++++++++++--- packages/eas-json/src/build/schema.ts | 1 + packages/eas-json/src/build/types.ts | 1 + 8 files changed, 99 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a61b98d5e4..6978f465a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ›  Breaking changes ### πŸŽ‰ New features +- Support `pnpm` option in eas.json. ([#1988](https://github.com/expo/eas-cli/pull/1988) by [@khamilowicz](https://github.com/khamilowicz)) ### πŸ› Bug fixes diff --git a/packages/eas-cli/graphql.schema.json b/packages/eas-cli/graphql.schema.json index 274d3ae38e..da9b5abe0e 100644 --- a/packages/eas-cli/graphql.schema.json +++ b/packages/eas-cli/graphql.schema.json @@ -4985,6 +4985,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "pnpm", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "yarn", "description": null, @@ -24625,6 +24637,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "pnpm", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "yarn", "description": null, @@ -40018,4 +40042,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/eas-cli/src/build/android/prepareJob.ts b/packages/eas-cli/src/build/android/prepareJob.ts index 24d9b38e29..91e15e5480 100644 --- a/packages/eas-cli/src/build/android/prepareJob.ts +++ b/packages/eas-cli/src/build/android/prepareJob.ts @@ -66,6 +66,7 @@ export async function prepareJobAsync( builderEnvironment: { image: buildProfile.image, node: buildProfile.node, + pnpm: buildProfile.pnpm, yarn: buildProfile.yarn, ndk: buildProfile.ndk, expoCli: buildProfile.expoCli, diff --git a/packages/eas-cli/src/build/ios/prepareJob.ts b/packages/eas-cli/src/build/ios/prepareJob.ts index 0af4128e49..8f7f622120 100644 --- a/packages/eas-cli/src/build/ios/prepareJob.ts +++ b/packages/eas-cli/src/build/ios/prepareJob.ts @@ -58,6 +58,7 @@ export async function prepareJobAsync( builderEnvironment: { image: buildProfile.image, node: buildProfile.node, + pnpm: buildProfile.pnpm, yarn: buildProfile.yarn, bundler: buildProfile.bundler, cocoapods: buildProfile.cocoapods, diff --git a/packages/eas-cli/src/graphql/generated.ts b/packages/eas-cli/src/graphql/generated.ts index 16227507b4..83279e6b7d 100644 --- a/packages/eas-cli/src/graphql/generated.ts +++ b/packages/eas-cli/src/graphql/generated.ts @@ -794,6 +794,7 @@ export type AndroidBuilderEnvironmentInput = { image?: InputMaybe; ndk?: InputMaybe; node?: InputMaybe; + pnpm?: InputMaybe; yarn?: InputMaybe; }; @@ -3542,6 +3543,7 @@ export type IosBuilderEnvironmentInput = { fastlane?: InputMaybe; image?: InputMaybe; node?: InputMaybe; + pnpm?: InputMaybe; yarn?: InputMaybe; }; diff --git a/packages/eas-json/schema/eas.schema.json b/packages/eas-json/schema/eas.schema.json index c5f53c86f9..0a74c6377d 100644 --- a/packages/eas-json/schema/eas.schema.json +++ b/packages/eas-json/schema/eas.schema.json @@ -24,14 +24,19 @@ "version": { "type": "string", "description": "The compatible versions of EAS CLI with this config", - "examples": [">=0.54.1"] + "examples": [ + ">=0.54.1" + ] }, "requireCommit": { "type": "boolean", "description": "If all changes required to be committed before building or submitting" }, "appVersionSource": { - "enum": ["local", "remote"], + "enum": [ + "local", + "remote" + ], "markdownDescription": "Version policy defines whether version of your app should be based on your local project or values stored on EAS servers (remote).\n\nThis is the configuration required for `eas build:version:set` and works with the `autoIncrement` options per platform.", "markdownEnumDescriptions": [ "When using local, the `autoIncrement` is based on your local project values.", @@ -102,7 +107,10 @@ "description": "The name of the build profile that the current one should inherit values from. This value can't be specified per platform." }, "credentialsSource": { - "enum": ["remote", "local"], + "enum": [ + "remote", + "local" + ], "description": "The source of credentials used to sign build artifacts. Learn more: https://docs.expo.dev/app-signing/local-credentials/", "markdownDescription": "The source of credentials used to sign build artifacts.\n\n- `remote` - if you want to use the credentials managed by EAS.\n- `local` - if you want to provide your own `credentials.json` file. [learn more](https://docs.expo.dev/app-signing/local-credentials/)", "default": "remote", @@ -124,7 +132,10 @@ "markdownDescription": "The channel is a name we can give to multiple builds to identify them easily. [Learn more](https://docs.expo.dev/eas-update/how-eas-update-works/)\n\n**This field only applies to the EAS Update service**, if your project still uses Classic Updates then use the [releaseChannel](https://docs.expo.dev/build-reference/eas-json/#releasechannel) field instead." }, "distribution": { - "enum": ["internal", "store"], + "enum": [ + "internal", + "store" + ], "description": "The method of distributing your app. Learn more: https://docs.expo.dev/build/internal-distribution/", "markdownDescription": "The method of distributing your app.\n\n- `internal` - with this option you'll be able to share your build URLs with anyone, and they will be able to install the builds to their devices straight from the Expo website. When using `internal`, make sure the build produces an APK or IPA file. Otherwise, the shareable URL will be useless. [Learn more](https://docs.expo.dev/build/internal-distribution/)\n- `store` - produces builds for store uploads, your build URLs won't be shareable.", "markdownEnumDescriptions": [ @@ -143,6 +154,11 @@ "description": "Optional override of the prebuild command used by EAS. Learn more: https://docs.expo.dev/workflow/expo-cli/#expo-prebuild", "markdownDescription": "Optional override of the prebuild command used by EAS.\n\nFor example, you can specify `prebuild --template example-template` to use a custom template.\n>`--platform` and `--non-interactive` will be added automatically by the build engine, so you do not need to specify them manually.\n\n[Learn more](https://docs.expo.dev/workflow/expo-cli/#expo-prebuild)" }, + "pnpm": { + "type": "string", + "description": "The version of pnpm to use for the build. See: https://www.npmjs.com/package/pnpm", + "markdownDescription": "The exact version of [pnpm](https://www.npmjs.com/package/pnpm) to use for the build." + }, "node": { "type": "string", "description": "The version of Node.js to use for the build. See: https://nodejs.org/en/about/releases/", @@ -153,6 +169,11 @@ "description": "The version of Yarn to use for the build. See: https://www.npmjs.com/package/yarn", "markdownDescription": "The exact version of [Yarn](https://www.npmjs.com/package/yarn) to use for the build." }, + "pnpm": { + "type": "string", + "description": "The version of pnpm to use for the build. See: https://www.npmjs.com/package/pnpm", + "markdownDescription": "The exact version of [pnpm](https://www.npmjs.com/package/pnpm) to use for the build." + }, "expoCli": { "type": "string", "description": "The version of `expo-cli` used to `prebuild` your app.", @@ -193,7 +214,11 @@ "default": "default", "anyOf": [ { - "enum": ["default", "medium", "large"] + "enum": [ + "default", + "medium", + "large" + ] }, { "type": "string" @@ -252,7 +277,11 @@ "default": "default", "anyOf": [ { - "enum": ["default", "medium", "large"] + "enum": [ + "default", + "medium", + "large" + ] }, { "type": "string" @@ -264,7 +293,12 @@ "description": "The version of Android NDK." }, "autoIncrement": { - "enum": [false, true, "versionCode", "version"], + "enum": [ + false, + true, + "versionCode", + "version" + ], "description": "Controls how EAS CLI bumps your application build version.", "markdownDescription": "Controls how EAS CLI bumps your application build version.\n\nAllowed values:\n- `\"version\"` - bumps the patch of `expo.version` (e.g. `1.2.3` -> `1.2.4`).\n- `\"versionCode\"` (or `true`) - bumps `expo.android.versionCode` (e.g. `3` -> `4`).\n- `false` - versions won't be bumped automatically (default)\n\nIn the case of a bare project, it also updates versions in native code. `expo.version` corresponds to `versionName` and `expo.android.versionCode` to `versionCode` in the `build.gradle`. Google Play uses these values to identify the app build, `versionName` is the version visible to users, whereas `versionCode` defines the version number. The combination of those needs to be unique, so you can bump either of them.\n\nThis feature is not intended for use with dynamic configuration (app.config.js). EAS CLI will throw an error if you don't use app.json.", "default": false, @@ -276,7 +310,10 @@ ] }, "buildType": { - "enum": ["app-bundle", "apk"], + "enum": [ + "app-bundle", + "apk" + ], "description": "Type of the artifact you want to build.", "markdownDescription": "Type of the artifact you want to build. It controls what Gradle task will be used, can be overridden by `gradleCommand` or `developmentClient: true` option.\n- `app-bundle` - `:app:bundleRelease`\n- `apk` - `:app:assembleRelease`", "markdownEnumDescriptions": [ @@ -319,14 +356,22 @@ "default": false }, "enterpriseProvisioning": { - "enum": ["universal", "adhoc"], + "enum": [ + "universal", + "adhoc" + ], "markdownDescription": "Provisioning method used for `\"distribution\": \"internal\"` when you have an Apple account with Apple Developer Enterprise Program membership.\n\nYou can choose if you want to use `adhoc` or `universal` provisioning. The latter is recommended as it does not require you to register each individual device. If you don't provide this option and you still authenticate with an enterprise team, you'll be prompted which provisioning method to use.", "markdownEnumDescriptions": [ "Recommended as it does not require you to register each individual device" ] }, "autoIncrement": { - "enum": [false, true, "buildNumber", "version"], + "enum": [ + false, + true, + "buildNumber", + "version" + ], "description": "Controls how EAS CLI bumps your application build version.", "markdownDescription": "Controls how EAS CLI bumps your application build version.\n\nAllowed values:\n\n- `\"version\"` - bumps the patch of `expo.version` (e.g. `1.2.3` -> `1.2.4`).\n- `\"buildNumber\"` (or `true`) - bumps the last component of `expo.ios.buildNumber` (e.g. `1.2.3.39` -> `1.2.3.40`).\n- `false` - versions won't be bumped automatically (default)\n\nIn the case of a bare project, it also updates versions in native code. `expo.version` corresponds to `CFBundleShortVersionString` and `expo.ios.buildNumber` to `CFBundleVersion` in the `Info.plist`. The App Store is using those values to identify the app build, `CFBundleShortVersionString` is the version visible to users, whereas `CFBundleVersion` defines the build number. The combination of those needs to be unique, so you can bump either of them.\n\nThis feature is not intended for use with dynamic configuration (app.config.js). EAS CLI will throw an error if you don't use app.json.", "default": false, @@ -455,7 +500,12 @@ "markdownDescription": "Path to the JSON file with service account key used to authenticate with Google Play. [Learn more](https://expo.fyi/creating-google-service-account)" }, "track": { - "enum": ["beta", "alpha", "internal", "production"], + "enum": [ + "beta", + "alpha", + "internal", + "production" + ], "description": "The track of the application to use. Learn more: https://support.google.com/googleplay/android-developer/answer/9859348?hl=en", "markdownDescription": "The [track of the application](https://support.google.com/googleplay/android-developer/answer/9859348?hl=en) to use.", "markdownEnumDescriptions": [ @@ -466,7 +516,12 @@ ] }, "releaseStatus": { - "enum": ["draft", "inProgress", "halted", "completed"], + "enum": [ + "draft", + "inProgress", + "halted", + "completed" + ], "description": "The status of a release. Learn more: https://developers.google.com/android-publisher/api-ref/rest/v3/edits.tracks", "markdownDescription": "The status of a release. [Learn more](https://developers.google.com/android-publisher/api-ref/rest/v3/edits.tracks)", "enumDescriptions": [ diff --git a/packages/eas-json/src/build/schema.ts b/packages/eas-json/src/build/schema.ts index 21765d8538..efb3a94c82 100644 --- a/packages/eas-json/src/build/schema.ts +++ b/packages/eas-json/src/build/schema.ts @@ -39,6 +39,7 @@ const CommonBuildProfileSchema = Joi.object({ // build environment env: Joi.object().pattern(Joi.string(), Joi.string().empty(null)), node: Joi.string().empty(null).custom(semverCheck), + pnpm: Joi.string().empty(null).custom(semverCheck), yarn: Joi.string().empty(null).custom(semverCheck), expoCli: Joi.string().empty(null).custom(semverCheck), diff --git a/packages/eas-json/src/build/types.ts b/packages/eas-json/src/build/types.ts index 2c629e1404..c0589a52fe 100644 --- a/packages/eas-json/src/build/types.ts +++ b/packages/eas-json/src/build/types.ts @@ -44,6 +44,7 @@ export interface CommonBuildProfile { // build environment env?: Record; node?: string; + pnpm?: string; yarn?: string; expoCli?: string; From 523a781ba5cc4b804cbf627dba855c8727c03f77 Mon Sep 17 00:00:00 2001 From: Piotr Szeremeta Date: Fri, 1 Sep 2023 16:05:39 +0200 Subject: [PATCH 028/105] upgrade eas-cli-local-build-plugin to 1.0.42 --- packages/eas-cli/src/build/local.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eas-cli/src/build/local.ts b/packages/eas-cli/src/build/local.ts index 448d7c6893..ccc016a1be 100644 --- a/packages/eas-cli/src/build/local.ts +++ b/packages/eas-cli/src/build/local.ts @@ -6,7 +6,7 @@ import semver from 'semver'; import { ora } from '../ora'; const PLUGIN_PACKAGE_NAME = 'eas-cli-local-build-plugin'; -const PLUGIN_PACKAGE_VERSION = '1.0.39'; +const PLUGIN_PACKAGE_VERSION = '1.0.42'; export enum LocalBuildMode { /** From 7c96cc10cf6d89929ae4740abdd398ce7adc81f3 Mon Sep 17 00:00:00 2001 From: Piotr Szeremeta Date: Fri, 1 Sep 2023 16:05:53 +0200 Subject: [PATCH 029/105] v5.1.0 --- lerna.json | 2 +- packages/eas-cli/README.md | 110 ++++++++++++++++----------------- packages/eas-cli/package.json | 4 +- packages/eas-json/package.json | 2 +- 4 files changed, 59 insertions(+), 59 deletions(-) diff --git a/lerna.json b/lerna.json index 6dfed999b3..fb72762af5 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "npmClient": "yarn", "useWorkspaces": true, - "version": "5.0.2", + "version": "5.1.0", "$schema": "node_modules/lerna/schemas/lerna-schema.json" } diff --git a/packages/eas-cli/README.md b/packages/eas-cli/README.md index 6e3341c42a..73f6e75c39 100644 --- a/packages/eas-cli/README.md +++ b/packages/eas-cli/README.md @@ -133,7 +133,7 @@ ALIASES $ eas login ``` -_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/account/login.ts)_ +_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/account/login.ts)_ ## `eas account:logout` @@ -150,7 +150,7 @@ ALIASES $ eas logout ``` -_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/account/logout.ts)_ +_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/account/logout.ts)_ ## `eas account:view` @@ -167,7 +167,7 @@ ALIASES $ eas whoami ``` -_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/account/view.ts)_ +_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/account/view.ts)_ ## `eas analytics [STATUS]` @@ -181,7 +181,7 @@ DESCRIPTION display or change analytics settings ``` -_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/analytics.ts)_ +_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/analytics.ts)_ ## `eas autocomplete [SHELL]` @@ -231,7 +231,7 @@ DESCRIPTION create a branch ``` -_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/branch/create.ts)_ +_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/branch/create.ts)_ ## `eas branch:delete [NAME]` @@ -252,7 +252,7 @@ DESCRIPTION delete a branch ``` -_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/branch/delete.ts)_ +_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/branch/delete.ts)_ ## `eas branch:list` @@ -272,7 +272,7 @@ DESCRIPTION list all branches ``` -_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/branch/list.ts)_ +_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/branch/list.ts)_ ## `eas branch:rename` @@ -292,7 +292,7 @@ DESCRIPTION rename a branch ``` -_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/branch/rename.ts)_ +_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/branch/rename.ts)_ ## `eas branch:view [NAME]` @@ -315,7 +315,7 @@ DESCRIPTION view a branch ``` -_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/branch/view.ts)_ +_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/branch/view.ts)_ ## `eas build` @@ -345,7 +345,7 @@ DESCRIPTION start a build ``` -_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/index.ts)_ +_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/index.ts)_ ## `eas build:cancel [BUILD_ID]` @@ -362,7 +362,7 @@ DESCRIPTION cancel a build ``` -_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/cancel.ts)_ +_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/cancel.ts)_ ## `eas build:configure` @@ -379,7 +379,7 @@ DESCRIPTION configure the project to support EAS Build ``` -_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/configure.ts)_ +_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/configure.ts)_ ## `eas build:inspect` @@ -414,7 +414,7 @@ DESCRIPTION inspect the state of the project at specific build stages, useful for troubleshooting ``` -_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/inspect.ts)_ +_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/inspect.ts)_ ## `eas build:list` @@ -452,7 +452,7 @@ DESCRIPTION list all builds for your project ``` -_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/list.ts)_ +_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/list.ts)_ ## `eas build:resign` @@ -478,7 +478,7 @@ DESCRIPTION re-sign a build archive ``` -_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/resign.ts)_ +_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/resign.ts)_ ## `eas build:run` @@ -502,7 +502,7 @@ DESCRIPTION run simulator/emulator builds from eas-cli ``` -_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/run.ts)_ +_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/run.ts)_ ## `eas build:submit` @@ -551,7 +551,7 @@ DESCRIPTION get the latest version from EAS servers ``` -_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/version/get.ts)_ +_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/version/get.ts)_ ## `eas build:version:set` @@ -570,7 +570,7 @@ DESCRIPTION update version of an app ``` -_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/version/set.ts)_ +_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/version/set.ts)_ ## `eas build:version:sync` @@ -589,7 +589,7 @@ DESCRIPTION update a version in native code with a value stored on EAS servers ``` -_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/version/sync.ts)_ +_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/version/sync.ts)_ ## `eas build:view [BUILD_ID]` @@ -606,7 +606,7 @@ DESCRIPTION view a build for your project ``` -_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/build/view.ts)_ +_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/view.ts)_ ## `eas channel:create [NAME]` @@ -627,7 +627,7 @@ DESCRIPTION create a channel ``` -_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/channel/create.ts)_ +_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/channel/create.ts)_ ## `eas channel:edit [NAME]` @@ -649,7 +649,7 @@ DESCRIPTION point a channel at a new branch ``` -_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/channel/edit.ts)_ +_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/channel/edit.ts)_ ## `eas channel:list` @@ -669,7 +669,7 @@ DESCRIPTION list all channels ``` -_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/channel/list.ts)_ +_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/channel/list.ts)_ ## `eas channel:rollout [CHANNEL]` @@ -701,7 +701,7 @@ DESCRIPTION Roll a new branch out on a channel incrementally. ``` -_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/channel/rollout.ts)_ +_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/channel/rollout.ts)_ ## `eas channel:view [NAME]` @@ -724,7 +724,7 @@ DESCRIPTION view a channel ``` -_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/channel/view.ts)_ +_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/channel/view.ts)_ ## `eas config` @@ -745,7 +745,7 @@ DESCRIPTION display project configuration (app.json + eas.json) ``` -_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/config.ts)_ +_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/config.ts)_ ## `eas credentials` @@ -762,7 +762,7 @@ DESCRIPTION manage credentials ``` -_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/credentials.ts)_ +_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/credentials.ts)_ ## `eas device:create` @@ -776,7 +776,7 @@ DESCRIPTION register new Apple Devices to use for internal distribution ``` -_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/device/create.ts)_ +_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/device/create.ts)_ ## `eas device:delete` @@ -796,7 +796,7 @@ DESCRIPTION remove a registered device from your account ``` -_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/device/delete.ts)_ +_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/device/delete.ts)_ ## `eas device:list` @@ -817,7 +817,7 @@ DESCRIPTION list all registered devices for your account ``` -_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/device/list.ts)_ +_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/device/list.ts)_ ## `eas device:rename` @@ -838,7 +838,7 @@ DESCRIPTION rename a registered device ``` -_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/device/rename.ts)_ +_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/device/rename.ts)_ ## `eas device:view [UDID]` @@ -852,7 +852,7 @@ DESCRIPTION view a device for your project ``` -_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/device/view.ts)_ +_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/device/view.ts)_ ## `eas diagnostics` @@ -866,7 +866,7 @@ DESCRIPTION display environment info ``` -_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/diagnostics.ts)_ +_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/diagnostics.ts)_ ## `eas help [COMMAND]` @@ -954,7 +954,7 @@ DESCRIPTION validate the local store configuration ``` -_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/metadata/lint.ts)_ +_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/metadata/lint.ts)_ ## `eas metadata:pull` @@ -971,7 +971,7 @@ DESCRIPTION generate the local store configuration from the app stores ``` -_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/metadata/pull.ts)_ +_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/metadata/pull.ts)_ ## `eas metadata:push` @@ -988,7 +988,7 @@ DESCRIPTION sync the local store configuration to the app stores ``` -_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/metadata/push.ts)_ +_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/metadata/push.ts)_ ## `eas open` @@ -1002,7 +1002,7 @@ DESCRIPTION open the project page in a web browser ``` -_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/open.ts)_ +_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/open.ts)_ ## `eas project:info` @@ -1016,7 +1016,7 @@ DESCRIPTION information about the current project ``` -_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/project/info.ts)_ +_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/project/info.ts)_ ## `eas project:init` @@ -1038,7 +1038,7 @@ ALIASES $ eas init ``` -_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/project/init.ts)_ +_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/project/init.ts)_ ## `eas secret:create` @@ -1061,7 +1061,7 @@ DESCRIPTION create an environment secret on the current project or owner account ``` -_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/secret/create.ts)_ +_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/secret/create.ts)_ ## `eas secret:delete` @@ -1079,7 +1079,7 @@ DESCRIPTION delete an environment secret by ID ``` -_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/secret/delete.ts)_ +_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/secret/delete.ts)_ ## `eas secret:list` @@ -1093,7 +1093,7 @@ DESCRIPTION list environment secrets available for your current app ``` -_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/secret/list.ts)_ +_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/secret/list.ts)_ ## `eas secret:push` @@ -1113,7 +1113,7 @@ DESCRIPTION read environment secrets from env file and store on the server ``` -_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/secret/push.ts)_ +_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/secret/push.ts)_ ## `eas submit` @@ -1143,7 +1143,7 @@ ALIASES $ eas build:submit ``` -_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/submit.ts)_ +_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/submit.ts)_ ## `eas update` @@ -1176,7 +1176,7 @@ DESCRIPTION publish an update group ``` -_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/update/index.ts)_ +_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/update/index.ts)_ ## `eas update:configure` @@ -1194,7 +1194,7 @@ DESCRIPTION configure the project to support EAS Update ``` -_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/update/configure.ts)_ +_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/update/configure.ts)_ ## `eas update:delete GROUPID` @@ -1215,7 +1215,7 @@ DESCRIPTION delete all the updates in an update group ``` -_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/update/delete.ts)_ +_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/update/delete.ts)_ ## `eas update:list` @@ -1237,7 +1237,7 @@ DESCRIPTION view the recent updates ``` -_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/update/list.ts)_ +_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/update/list.ts)_ ## `eas update:republish` @@ -1264,7 +1264,7 @@ DESCRIPTION roll back to an existing update ``` -_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/update/republish.ts)_ +_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/update/republish.ts)_ ## `eas update:view GROUPID` @@ -1284,7 +1284,7 @@ DESCRIPTION update group details ``` -_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/update/view.ts)_ +_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/update/view.ts)_ ## `eas webhook:create` @@ -1305,7 +1305,7 @@ DESCRIPTION create a webhook ``` -_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/webhook/create.ts)_ +_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/webhook/create.ts)_ ## `eas webhook:delete [ID]` @@ -1325,7 +1325,7 @@ DESCRIPTION delete a webhook ``` -_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/webhook/delete.ts)_ +_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/webhook/delete.ts)_ ## `eas webhook:list` @@ -1343,7 +1343,7 @@ DESCRIPTION list webhooks ``` -_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/webhook/list.ts)_ +_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/webhook/list.ts)_ ## `eas webhook:update` @@ -1365,7 +1365,7 @@ DESCRIPTION update a webhook ``` -_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/webhook/update.ts)_ +_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/webhook/update.ts)_ ## `eas webhook:view ID` @@ -1382,7 +1382,7 @@ DESCRIPTION view a webhook ``` -_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.0.2/packages/eas-cli/src/commands/webhook/view.ts)_ +_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/webhook/view.ts)_ ## `eas whoami` diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index 3e5e6f5660..c9c4cc2104 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -1,7 +1,7 @@ { "name": "eas-cli", "description": "EAS command line tool", - "version": "5.0.2", + "version": "5.1.0", "author": "Expo ", "bin": { "eas": "./bin/run" @@ -14,7 +14,7 @@ "@expo/config-plugins": "7.2.4", "@expo/config-types": "49.0.0", "@expo/eas-build-job": "1.0.39", - "@expo/eas-json": "5.0.0", + "@expo/eas-json": "5.1.0", "@expo/json-file": "8.2.37", "@expo/multipart-body-parser": "1.1.0", "@expo/osascript": "2.0.33", diff --git a/packages/eas-json/package.json b/packages/eas-json/package.json index 07cfc54fd0..d0b85851c1 100644 --- a/packages/eas-json/package.json +++ b/packages/eas-json/package.json @@ -1,7 +1,7 @@ { "name": "@expo/eas-json", "description": "A library for interacting with eas.json", - "version": "5.0.0", + "version": "5.1.0", "author": "Expo ", "bugs": "https://github.com/expo/eas-cli/issues", "dependencies": { From 66d02d9724f1a9bcfb01b6f1766ec2d5b2e0e861 Mon Sep 17 00:00:00 2001 From: Expo CI Date: Fri, 1 Sep 2023 14:14:32 +0000 Subject: [PATCH 030/105] update CHANGELOG.md --- CHANGELOG.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6978f465a7..5bf18109eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,14 +7,21 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ›  Breaking changes ### πŸŽ‰ New features + +### πŸ› Bug fixes + +### 🧹 Chores + +## [5.1.0](https://github.com/expo/eas-cli/releases/tag/v5.1.0) - 2023-09-01 + +### πŸŽ‰ New features + - Support `pnpm` option in eas.json. ([#1988](https://github.com/expo/eas-cli/pull/1988) by [@khamilowicz](https://github.com/khamilowicz)) ### πŸ› Bug fixes - Make app config error not repeat indefinitely. ([#2020](https://github.com/expo/eas-cli/pull/2020) by [@radoslawkrzemien](https://github.com/radoslawkrzemien)) -### 🧹 Chores - ## [5.0.2](https://github.com/expo/eas-cli/releases/tag/v5.0.2) - 2023-08-29 ### πŸ› Bug fixes From 2e31b42b76134377c6b27a6119f6756961b41972 Mon Sep 17 00:00:00 2001 From: Quinlan Jung Date: Fri, 1 Sep 2023 12:38:42 -0700 Subject: [PATCH 031/105] [eas-cli] only print channel-branch pairing if we created a channel (#2036) * [eas-cli] only print channel-branch pairing if we created a channel * update CHANGELOG.md --- CHANGELOG.md | 2 ++ packages/eas-cli/src/commands/update/index.ts | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5bf18109eb..2b7411d641 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ› Bug fixes +- Update: only print channel-branch pairing if we created a channel. ([#2036](https://github.com/expo/eas-cli/pull/2036) by [@quinlanj](https://github.com/quinlanj)) + ### 🧹 Chores ## [5.1.0](https://github.com/expo/eas-cli/releases/tag/v5.1.0) - 2023-09-01 diff --git a/packages/eas-cli/src/commands/update/index.ts b/packages/eas-cli/src/commands/update/index.ts index 2747f1e6bf..37d36436d1 100644 --- a/packages/eas-cli/src/commands/update/index.ts +++ b/packages/eas-cli/src/commands/update/index.ts @@ -360,10 +360,11 @@ export default class UpdatePublish extends EasCommand { branchId, channelName: branchName, }); + Log.withTick( + `Channel: ${chalk.bold(branchName)} pointed at branch: ${chalk.bold(branchName)}` + ); } - Log.withTick(`Channel: ${chalk.bold(branchName)} pointed at branch: ${chalk.bold(branchName)}`); - const vcsClient = getVcsClient(); const gitCommitHash = await vcsClient.getCommitHashAsync(); From 7db9d79c556dd66961e12ae0c52f941085c29c27 Mon Sep 17 00:00:00 2001 From: Piotr Szeremeta Date: Mon, 4 Sep 2023 07:44:39 +0200 Subject: [PATCH 032/105] [Fix] Remove doubled definition of `pnpm` field from eas.schema.json (#2038) --- packages/eas-json/schema/eas.schema.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/eas-json/schema/eas.schema.json b/packages/eas-json/schema/eas.schema.json index 0a74c6377d..856e275e0e 100644 --- a/packages/eas-json/schema/eas.schema.json +++ b/packages/eas-json/schema/eas.schema.json @@ -154,11 +154,6 @@ "description": "Optional override of the prebuild command used by EAS. Learn more: https://docs.expo.dev/workflow/expo-cli/#expo-prebuild", "markdownDescription": "Optional override of the prebuild command used by EAS.\n\nFor example, you can specify `prebuild --template example-template` to use a custom template.\n>`--platform` and `--non-interactive` will be added automatically by the build engine, so you do not need to specify them manually.\n\n[Learn more](https://docs.expo.dev/workflow/expo-cli/#expo-prebuild)" }, - "pnpm": { - "type": "string", - "description": "The version of pnpm to use for the build. See: https://www.npmjs.com/package/pnpm", - "markdownDescription": "The exact version of [pnpm](https://www.npmjs.com/package/pnpm) to use for the build." - }, "node": { "type": "string", "description": "The version of Node.js to use for the build. See: https://nodejs.org/en/about/releases/", From ea9f734b110e8ee44aa1aa47b1d7c650c6f45f07 Mon Sep 17 00:00:00 2001 From: Quinlan Jung Date: Tue, 5 Sep 2023 12:27:54 -0700 Subject: [PATCH 033/105] [eas-cli] fix graphql (#2039) * [eas-cli] fix graphql * update CHANGELOG.md --- CHANGELOG.md | 2 + packages/eas-cli/graphql.schema.json | 1365 +++++++++++++++-- packages/eas-cli/src/graphql/generated.ts | 221 ++- .../getBranchNameFromChannelNameAsync-test.ts | 3 +- .../eas-cli/src/utils/statuspageService.ts | 2 + 5 files changed, 1483 insertions(+), 110 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b7411d641..388ff4b38a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,8 @@ This is the log of notable changes to EAS CLI and related packages. ### 🧹 Chores +- Fix generated graphql tsc errors. ([#2039](https://github.com/expo/eas-cli/pull/2039) by [@quinlanj](https://github.com/quinlanj)) + ## [5.1.0](https://github.com/expo/eas-cli/releases/tag/v5.1.0) - 2023-09-01 ### πŸŽ‰ New features diff --git a/packages/eas-cli/graphql.schema.json b/packages/eas-cli/graphql.schema.json index da9b5abe0e..9ec4915284 100644 --- a/packages/eas-cli/graphql.schema.json +++ b/packages/eas-cli/graphql.schema.json @@ -2712,18 +2712,6 @@ "description": null, "fields": null, "inputFields": [ - { - "name": "authEndpoint", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "authProtocol", "description": null, @@ -2788,18 +2776,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "endSessionEndpoint", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "issuer", "description": null, @@ -2815,54 +2791,6 @@ "defaultValue": null, "isDeprecated": false, "deprecationReason": null - }, - { - "name": "jwksEndpoint", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "revokeEndpoint", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tokenEndpoint", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userInfoEndpoint", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null } ], "interfaces": null, @@ -3633,6 +3561,30 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "experiments", + "description": "Experiments associated with this actor", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ActorExperiment", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "featureGates", "description": "Server feature gate values for this actor, optionally filtering by desired gates.\nOnly resolves for the viewer.", @@ -3736,6 +3688,157 @@ } ] }, + { + "kind": "OBJECT", + "name": "ActorExperiment", + "description": null, + "fields": [ + { + "name": "createdAt", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "enabled", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "experiment", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "Experiment", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "updatedAt", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ActorExperimentMutation", + "description": null, + "fields": [ + { + "name": "createOrUpdateActorExperiment", + "description": "Create or update the value of a User Experiment", + "args": [ + { + "name": "enabled", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "experiment", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "Experiment", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ActorExperiment", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "OBJECT", "name": "ActorQuery", @@ -3771,8 +3874,8 @@ "ofType": null } }, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "Public actor queries are no longer supported" } ], "inputFields": null, @@ -7282,6 +7385,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "filter", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "DeploymentFilterInput", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "first", "description": null, @@ -7549,6 +7664,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "isDeleting", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "isDeprecated", "description": "Whether the latest classic update publish is using a deprecated SDK version", @@ -7960,6 +8091,71 @@ "isDeprecated": true, "deprecationReason": "Legacy access tokens are deprecated" }, + { + "name": "runtimes", + "description": "Runtimes associated with this app", + "args": [ + { + "name": "after", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "before", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "first", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "last", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "RuntimesConnection", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "scopeKey", "description": null, @@ -14114,6 +14310,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "developmentClient", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "distribution", "description": null, @@ -15867,6 +16075,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "developmentClient", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "distribution", "description": null, @@ -19203,16 +19423,77 @@ "deprecationReason": null }, { - "name": "latestUpdate", - "description": null, + "name": "insights", + "description": "Deployment query field", "args": [], "type": { - "kind": "OBJECT", - "name": "Update", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DeploymentInsights", + "ofType": null + } }, - "isDeprecated": true, - "deprecationReason": "Not required for the new Deployment UI" + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "latestUpdatesPerBranch", + "description": "Ordered the same way as 'updateBranches' in UpdateChannel", + "args": [ + { + "name": "limit", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "offset", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "LatestUpdateOnBranch", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null }, { "name": "runtime", @@ -19373,6 +19654,208 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "INPUT_OBJECT", + "name": "DeploymentFilterInput", + "description": null, + "fields": null, + "inputFields": [ + { + "name": "channel", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "runtimeVersion", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DeploymentInsights", + "description": null, + "fields": [ + { + "name": "embeddedUpdateTotalUniqueUsers", + "description": null, + "args": [ + { + "name": "timespan", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "InsightsTimespan", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "embeddedUpdateUniqueUsersOverTime", + "description": null, + "args": [ + { + "name": "timespan", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "InsightsTimespan", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "UniqueUsersOverTimeData", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mostPopularUpdates", + "description": null, + "args": [ + { + "name": "timespan", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "InsightsTimespan", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Update", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "uniqueUsersOverTime", + "description": null, + "args": [ + { + "name": "timespan", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "InsightsTimespan", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "UniqueUsersOverTimeData", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "OBJECT", "name": "DeploymentsConnection", @@ -20498,6 +20981,23 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "ENUM", + "name": "Experiment", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "ORBIT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, { "kind": "OBJECT", "name": "ExperimentationQuery", @@ -25733,6 +26233,45 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "OBJECT", + "name": "LatestUpdateOnBranch", + "description": null, + "fields": [ + { + "name": "branchId", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "update", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Update", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "OBJECT", "name": "LeaveAccountResult", @@ -26694,6 +27233,22 @@ "name": "Notification", "description": null, "fields": [ + { + "name": "accountName", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "createdAt", "description": null, @@ -26801,6 +27356,22 @@ }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "websiteMessage", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, @@ -28608,6 +29179,30 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "experiments", + "description": "Experiments associated with this actor", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ActorExperiment", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "featureGates", "description": "Server feature gate values for this actor, optionally filtering by desired gates.\nOnly resolves for the viewer.", @@ -29017,6 +29612,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "actorExperiment", + "description": "Mutations for Actor experiments", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ActorExperimentMutation", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "androidAppBuildCredentials", "description": "Mutations that modify the build credentials for an Android app", @@ -29711,6 +30322,22 @@ }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "websiteNotifications", + "description": "Mutations that modify a websiteNotification", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "WebsiteNotificationMutation", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, @@ -29780,8 +30407,8 @@ "ofType": null } }, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "Public actor queries are no longer supported" }, { "name": "allPublicApps", @@ -30247,8 +30874,8 @@ "ofType": null } }, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "Public user queries are no longer supported" }, { "name": "userActorPublicData", @@ -30518,7 +31145,7 @@ { "kind": "OBJECT", "name": "RuntimesConnection", - "description": null, + "description": "Represents the connection over the runtime edge of an App", "fields": [ { "name": "edges", @@ -30845,6 +31472,30 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "experiments", + "description": "Experiments associated with this actor", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ActorExperiment", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "featureGates", "description": "Server feature gate values for this actor, optionally filtering by desired gates.\nOnly resolves for the viewer.", @@ -31154,7 +31805,7 @@ }, { "name": "websiteNotifications", - "description": "Web notifications linked to a user", + "description": null, "args": [], "type": { "kind": "NON_NULL", @@ -31173,6 +31824,71 @@ } } }, + "isDeprecated": true, + "deprecationReason": "No longer supported" + }, + { + "name": "websiteNotificationsPaginated", + "description": null, + "args": [ + { + "name": "after", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "before", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "first", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "last", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "WebsiteNotificationsConnection", + "ofType": null + } + }, "isDeprecated": false, "deprecationReason": null } @@ -32417,6 +33133,18 @@ "description": null, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "GITHUB_API_REQUESTS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GITHUB_WEBHOOKS", + "description": null, + "isDeprecated": false, + "deprecationReason": null } ], "possibleTypes": null @@ -34127,6 +34855,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "insights", + "description": "Update query field", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateInsights", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "isGitWorkingTreeDirty", "description": null, @@ -35311,6 +36055,66 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "OBJECT", + "name": "UpdateInsights", + "description": null, + "fields": [ + { + "name": "id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalUniqueUsers", + "description": null, + "args": [ + { + "name": "timespan", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "InsightsTimespan", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "OBJECT", "name": "UpdateMutation", @@ -36130,6 +36934,30 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "experiments", + "description": "Experiments associated with this actor", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ActorExperiment", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "featureGates", "description": "Server feature gate values for this actor, optionally filtering by desired gates.\nOnly resolves for the viewer.", @@ -36554,6 +37382,71 @@ } } }, + "isDeprecated": true, + "deprecationReason": "No longer supported" + }, + { + "name": "websiteNotificationsPaginated", + "description": null, + "args": [ + { + "name": "after", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "before", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "first", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "last", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "WebsiteNotificationsConnection", + "ofType": null + } + }, "isDeprecated": false, "deprecationReason": null } @@ -36853,6 +37746,30 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "experiments", + "description": "Experiments associated with this actor", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ActorExperiment", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "featureGates", "description": "Server feature gate values for this user actor, optionally filtering by desired gates.\nOnly resolves for the viewer.", @@ -37162,7 +38079,7 @@ }, { "name": "websiteNotifications", - "description": "Web notifications linked to a user", + "description": null, "args": [], "type": { "kind": "NON_NULL", @@ -37181,6 +38098,71 @@ } } }, + "isDeprecated": true, + "deprecationReason": "No longer supported" + }, + { + "name": "websiteNotificationsPaginated", + "description": null, + "args": [ + { + "name": "after", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "before", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "first", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "last", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "WebsiteNotificationsConnection", + "ofType": null + } + }, "isDeprecated": false, "deprecationReason": null } @@ -37495,8 +38477,8 @@ "ofType": null } }, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "Public user actor queries are no longer supported" }, { "name": "byUsername", @@ -37528,8 +38510,8 @@ "ofType": null } }, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "Public user actor queries are no longer supported" } ], "inputFields": null, @@ -38518,6 +39500,49 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "INPUT_OBJECT", + "name": "WebNotificationUpdateReadStateInput", + "description": null, + "fields": null, + "inputFields": [ + { + "name": "id", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isRead", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, { "kind": "OBJECT", "name": "Webhook", @@ -38916,6 +39941,160 @@ ], "possibleTypes": null }, + { + "kind": "OBJECT", + "name": "WebsiteNotificationEdge", + "description": null, + "fields": [ + { + "name": "cursor", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Notification", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "WebsiteNotificationMutation", + "description": null, + "fields": [ + { + "name": "updateAllWebsiteNotificationReadStateAsRead", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "updateNotificationReadState", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "WebNotificationUpdateReadStateInput", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Notification", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "WebsiteNotificationsConnection", + "description": null, + "fields": [ + { + "name": "edges", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "WebsiteNotificationEdge", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "OBJECT", "name": "__Directive", @@ -40042,4 +41221,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/eas-cli/src/graphql/generated.ts b/packages/eas-cli/src/graphql/generated.ts index 83279e6b7d..5f41a0e3ae 100644 --- a/packages/eas-cli/src/graphql/generated.ts +++ b/packages/eas-cli/src/graphql/generated.ts @@ -479,17 +479,11 @@ export type AccountSsoConfiguration = { }; export type AccountSsoConfigurationData = { - authEndpoint?: InputMaybe; authProtocol: AuthProtocolType; authProviderIdentifier: Scalars['String']; clientIdentifier: Scalars['String']; clientSecret: Scalars['String']; - endSessionEndpoint?: InputMaybe; issuer: Scalars['String']; - jwksEndpoint?: InputMaybe; - revokeEndpoint?: InputMaybe; - tokenEndpoint?: InputMaybe; - userInfoEndpoint?: InputMaybe; }; export type AccountSsoConfigurationMutation = { @@ -602,6 +596,8 @@ export type Actor = { * For example, when displaying a sentence indicating that actor X created a build or published an update. */ displayName: Scalars['String']; + /** Experiments associated with this actor */ + experiments: Array; /** * Server feature gate values for this actor, optionally filtering by desired gates. * Only resolves for the viewer. @@ -618,9 +614,33 @@ export type ActorFeatureGatesArgs = { filter?: InputMaybe>; }; +export type ActorExperiment = { + __typename?: 'ActorExperiment'; + createdAt: Scalars['DateTime']; + enabled: Scalars['Boolean']; + experiment: Experiment; + id: Scalars['ID']; + updatedAt: Scalars['DateTime']; +}; + +export type ActorExperimentMutation = { + __typename?: 'ActorExperimentMutation'; + /** Create or update the value of a User Experiment */ + createOrUpdateActorExperiment: ActorExperiment; +}; + + +export type ActorExperimentMutationCreateOrUpdateActorExperimentArgs = { + enabled: Scalars['Boolean']; + experiment: Experiment; +}; + export type ActorQuery = { __typename?: 'ActorQuery'; - /** Query an Actor by ID */ + /** + * Query an Actor by ID + * @deprecated Public actor queries are no longer supported + */ byId: Actor; }; @@ -1024,6 +1044,7 @@ export type App = Project & { insights: AppInsights; /** iOS app credentials for the project */ iosAppCredentials: Array; + isDeleting: Scalars['Boolean']; /** Whether the latest classic update publish is using a deprecated SDK version */ isDeprecated: Scalars['Boolean']; /** @deprecated 'likes' have been deprecated. */ @@ -1058,6 +1079,8 @@ export type App = Project & { releaseChannels: Array; /** @deprecated Legacy access tokens are deprecated */ requiresAccessTokenForPushSecurity: Scalars['Boolean']; + /** Runtimes associated with this app */ + runtimes: RuntimesConnection; scopeKey: Scalars['String']; /** SDK version of the latest classic update publish, 0.0.0 otherwise */ sdkVersion: Scalars['String']; @@ -1175,6 +1198,7 @@ export type AppDeploymentArgs = { export type AppDeploymentsArgs = { after?: InputMaybe; before?: InputMaybe; + filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; @@ -1213,6 +1237,15 @@ export type AppLikedByArgs = { }; +/** Represents an Exponent App (or Experience in legacy terms) */ +export type AppRuntimesArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + + /** Represents an Exponent App (or Experience in legacy terms) */ export type AppSubmissionsArgs = { filter: SubmissionFilter; @@ -2054,6 +2087,7 @@ export type Build = ActivityTimelineProjectActivity & BuildOrBuildJob & { completedAt?: Maybe; createdAt: Scalars['DateTime']; customWorkflowName?: Maybe; + developmentClient?: Maybe; distribution?: Maybe; enqueuedAt?: Maybe; error?: Maybe; @@ -2270,6 +2304,7 @@ export type BuildMetadataInput = { cliVersion?: InputMaybe; credentialsSource?: InputMaybe; customWorkflowName?: InputMaybe; + developmentClient?: InputMaybe; distribution?: InputMaybe; gitCommitHash?: InputMaybe; gitCommitMessage?: InputMaybe; @@ -2772,8 +2807,10 @@ export type Deployment = { builds: DeploymentBuildsConnection; channel: UpdateChannel; id: Scalars['ID']; - /** @deprecated Not required for the new Deployment UI */ - latestUpdate?: Maybe; + /** Deployment query field */ + insights: DeploymentInsights; + /** Ordered the same way as 'updateBranches' in UpdateChannel */ + latestUpdatesPerBranch: Array; runtime: Runtime; }; @@ -2786,6 +2823,13 @@ export type DeploymentBuildsArgs = { last?: InputMaybe; }; + +/** Represents a Deployment - a set of Builds with the same Runtime Version and Channel */ +export type DeploymentLatestUpdatesPerBranchArgs = { + limit: Scalars['Int']; + offset: Scalars['Int']; +}; + export type DeploymentBuildEdge = { __typename?: 'DeploymentBuildEdge'; cursor: Scalars['String']; @@ -2805,6 +2849,40 @@ export type DeploymentEdge = { node: Deployment; }; +export type DeploymentFilterInput = { + channel?: InputMaybe; + runtimeVersion?: InputMaybe; +}; + +export type DeploymentInsights = { + __typename?: 'DeploymentInsights'; + embeddedUpdateTotalUniqueUsers: Scalars['Int']; + embeddedUpdateUniqueUsersOverTime: UniqueUsersOverTimeData; + id: Scalars['ID']; + mostPopularUpdates: Array; + uniqueUsersOverTime: UniqueUsersOverTimeData; +}; + + +export type DeploymentInsightsEmbeddedUpdateTotalUniqueUsersArgs = { + timespan: InsightsTimespan; +}; + + +export type DeploymentInsightsEmbeddedUpdateUniqueUsersOverTimeArgs = { + timespan: InsightsTimespan; +}; + + +export type DeploymentInsightsMostPopularUpdatesArgs = { + timespan: InsightsTimespan; +}; + + +export type DeploymentInsightsUniqueUsersOverTimeArgs = { + timespan: InsightsTimespan; +}; + /** Represents the connection over the deployments edge of an App */ export type DeploymentsConnection = { __typename?: 'DeploymentsConnection'; @@ -2973,6 +3051,10 @@ export type EstimatedUsage = { value: Scalars['Float']; }; +export enum Experiment { + Orbit = 'ORBIT' +} + export type ExperimentationQuery = { __typename?: 'ExperimentationQuery'; /** Get device experimentation config */ @@ -3670,6 +3752,12 @@ export type KeystoreGenerationUrlMutation = { createKeystoreGenerationUrl: KeystoreGenerationUrl; }; +export type LatestUpdateOnBranch = { + __typename?: 'LatestUpdateOnBranch'; + branchId: Scalars['String']; + update?: Maybe; +}; + export type LeaveAccountResult = { __typename?: 'LeaveAccountResult'; success: Scalars['Boolean']; @@ -3847,6 +3935,7 @@ export type MeteredBillingStatus = { export type Notification = { __typename?: 'Notification'; + accountName: Scalars['String']; createdAt: Scalars['DateTime']; event: NotificationEvent; id: Scalars['ID']; @@ -3854,6 +3943,7 @@ export type Notification = { metadata?: Maybe; type: NotificationType; updatedAt: Scalars['DateTime']; + websiteMessage: Scalars['String']; }; export enum NotificationEvent { @@ -4086,6 +4176,8 @@ export type Robot = Actor & { accounts: Array; created: Scalars['DateTime']; displayName: Scalars['String']; + /** Experiments associated with this actor */ + experiments: Array; /** * Server feature gate values for this actor, optionally filtering by desired gates. * Only resolves for the viewer. @@ -4157,6 +4249,8 @@ export type RootMutation = { account: AccountMutation; /** Mutations that create, update, and delete an AccountSSOConfiguration */ accountSSOConfiguration: AccountSsoConfigurationMutation; + /** Mutations for Actor experiments */ + actorExperiment: ActorExperimentMutation; /** Mutations that modify the build credentials for an Android app */ androidAppBuildCredentials: AndroidAppBuildCredentialsMutation; /** Mutations that modify the credentials for an Android app */ @@ -4232,6 +4326,8 @@ export type RootMutation = { userInvitation: UserInvitationMutation; /** Mutations that create, delete, update Webhooks */ webhook: WebhookMutation; + /** Mutations that modify a websiteNotification */ + websiteNotifications: WebsiteNotificationMutation; }; @@ -4265,7 +4361,10 @@ export type RootQuery = { account: AccountQuery; /** Top-level query object for querying AccountSSOConfigurationPublicData */ accountSSOConfigurationPublicData: AccountSsoConfigurationPublicDataQuery; - /** Top-level query object for querying Actors. */ + /** + * Top-level query object for querying Actors. + * @deprecated Public actor queries are no longer supported + */ actor: ActorQuery; /** * Public apps in the app directory @@ -4322,7 +4421,10 @@ export type RootQuery = { * @deprecated Public user queries are no longer supported */ user: UserQuery; - /** Top-level query object for querying UserActors. */ + /** + * Top-level query object for querying UserActors. + * @deprecated Public user queries are no longer supported + */ userActor: UserActorQuery; /** Top-level query object for querying UserActorPublicData publicly. */ userActorPublicData: UserActorPublicDataQuery; @@ -4388,6 +4490,7 @@ export type RuntimeFilterInput = { branchId?: InputMaybe; }; +/** Represents the connection over the runtime edge of an App */ export type RuntimesConnection = { __typename?: 'RuntimesConnection'; edges: Array; @@ -4412,6 +4515,8 @@ export type SsoUser = Actor & UserActor & { /** Discord account linked to a user */ discordUser?: Maybe; displayName: Scalars['String']; + /** Experiments associated with this actor */ + experiments: Array; /** * Server feature gate values for this actor, optionally filtering by desired gates. * Only resolves for the viewer. @@ -4439,8 +4544,9 @@ export type SsoUser = Actor & UserActor & { /** @deprecated No longer supported */ twitterUsername?: Maybe; username: Scalars['String']; - /** Web notifications linked to a user */ + /** @deprecated No longer supported */ websiteNotifications: Array; + websiteNotificationsPaginated: WebsiteNotificationsConnection; }; @@ -4478,6 +4584,15 @@ export type SsoUserSnacksArgs = { offset: Scalars['Int']; }; + +/** Represents a human SSO (not robot) actor. */ +export type SsoUserWebsiteNotificationsPaginatedArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + export type SsoUserDataInput = { firstName?: InputMaybe; lastName?: InputMaybe; @@ -4672,7 +4787,9 @@ export type StatuspageService = { export enum StatuspageServiceName { EasBuild = 'EAS_BUILD', EasSubmit = 'EAS_SUBMIT', - EasUpdate = 'EAS_UPDATE' + EasUpdate = 'EAS_UPDATE', + GithubApiRequests = 'GITHUB_API_REQUESTS', + GithubWebhooks = 'GITHUB_WEBHOOKS' } export type StatuspageServiceQuery = { @@ -4906,6 +5023,8 @@ export type Update = ActivityTimelineProjectActivity & { gitCommitHash?: Maybe; group: Scalars['String']; id: Scalars['ID']; + /** Update query field */ + insights: UpdateInsights; isGitWorkingTreeDirty: Scalars['Boolean']; isRollBackToEmbedded: Scalars['Boolean']; manifestFragment: Scalars['String']; @@ -5066,6 +5185,17 @@ export type UpdateInfoGroup = { web?: InputMaybe; }; +export type UpdateInsights = { + __typename?: 'UpdateInsights'; + id: Scalars['ID']; + totalUniqueUsers: Scalars['Int']; +}; + + +export type UpdateInsightsTotalUniqueUsersArgs = { + timespan: InsightsTimespan; +}; + export type UpdateMutation = { __typename?: 'UpdateMutation'; /** Delete an EAS update group */ @@ -5165,6 +5295,8 @@ export type User = Actor & UserActor & { displayName: Scalars['String']; email: Scalars['String']; emailVerified: Scalars['Boolean']; + /** Experiments associated with this actor */ + experiments: Array; /** * Server feature gate values for this actor, optionally filtering by desired gates. * Only resolves for the viewer. @@ -5201,7 +5333,9 @@ export type User = Actor & UserActor & { /** @deprecated No longer supported */ twitterUsername?: Maybe; username: Scalars['String']; + /** @deprecated No longer supported */ websiteNotifications: Array; + websiteNotificationsPaginated: WebsiteNotificationsConnection; }; @@ -5239,6 +5373,15 @@ export type UserSnacksArgs = { offset: Scalars['Int']; }; + +/** Represents a human (not robot) actor. */ +export type UserWebsiteNotificationsPaginatedArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + /** A human user (type User or SSOUser) that can login to the Expo website, use Expo services, and be a member of accounts. */ export type UserActor = { /** Access Tokens belonging to this user actor */ @@ -5263,6 +5406,8 @@ export type UserActor = { * For example, when displaying a sentence indicating that actor X created a build or published an update. */ displayName: Scalars['String']; + /** Experiments associated with this actor */ + experiments: Array; /** * Server feature gate values for this user actor, optionally filtering by desired gates. * Only resolves for the viewer. @@ -5290,8 +5435,9 @@ export type UserActor = { /** @deprecated No longer supported */ twitterUsername?: Maybe; username: Scalars['String']; - /** Web notifications linked to a user */ + /** @deprecated No longer supported */ websiteNotifications: Array; + websiteNotificationsPaginated: WebsiteNotificationsConnection; }; @@ -5329,6 +5475,15 @@ export type UserActorSnacksArgs = { offset: Scalars['Int']; }; + +/** A human user (type User or SSOUser) that can login to the Expo website, use Expo services, and be a member of accounts. */ +export type UserActorWebsiteNotificationsPaginatedArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + /** A human user (type User or SSOUser) that can login to the Expo website, use Expo services, and be a member of accounts. */ export type UserActorPublicData = { __typename?: 'UserActorPublicData'; @@ -5371,9 +5526,15 @@ export type UserActorPublicDataQueryByUsernameArgs = { export type UserActorQuery = { __typename?: 'UserActorQuery'; - /** Query a UserActor by ID */ + /** + * Query a UserActor by ID + * @deprecated Public user actor queries are no longer supported + */ byId: UserActor; - /** Query a UserActor by username */ + /** + * Query a UserActor by username + * @deprecated Public user actor queries are no longer supported + */ byUsername: UserActor; }; @@ -5546,6 +5707,11 @@ export type UserSecondFactorDevice = { user: User; }; +export type WebNotificationUpdateReadStateInput = { + id: Scalars['ID']; + isRead: Scalars['Boolean']; +}; + export type Webhook = { __typename?: 'Webhook'; appId: Scalars['ID']; @@ -5608,6 +5774,29 @@ export enum WebhookType { Submit = 'SUBMIT' } +export type WebsiteNotificationEdge = { + __typename?: 'WebsiteNotificationEdge'; + cursor: Scalars['String']; + node: Notification; +}; + +export type WebsiteNotificationMutation = { + __typename?: 'WebsiteNotificationMutation'; + updateAllWebsiteNotificationReadStateAsRead: Scalars['Boolean']; + updateNotificationReadState: Notification; +}; + + +export type WebsiteNotificationMutationUpdateNotificationReadStateArgs = { + input: WebNotificationUpdateReadStateInput; +}; + +export type WebsiteNotificationsConnection = { + __typename?: 'WebsiteNotificationsConnection'; + edges: Array; + pageInfo: PageInfo; +}; + export type DeleteAndroidAppBuildCredentialsResult = { __typename?: 'deleteAndroidAppBuildCredentialsResult'; id: Scalars['ID']; diff --git a/packages/eas-cli/src/update/__tests__/getBranchNameFromChannelNameAsync-test.ts b/packages/eas-cli/src/update/__tests__/getBranchNameFromChannelNameAsync-test.ts index 9e73da7ba1..cc115a03b4 100644 --- a/packages/eas-cli/src/update/__tests__/getBranchNameFromChannelNameAsync-test.ts +++ b/packages/eas-cli/src/update/__tests__/getBranchNameFromChannelNameAsync-test.ts @@ -1,7 +1,7 @@ import { instance, mock } from 'ts-mockito'; import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient'; -import { App, Runtime, UpdateBranch, UpdateChannel } from '../../graphql/generated'; +import { App, Runtime, UpdateBranch, UpdateChannel, UpdateInsights } from '../../graphql/generated'; import { ChannelQuery } from '../../graphql/queries/ChannelQuery'; import { getBranchNameFromChannelNameAsync } from '../getBranchNameFromChannelNameAsync'; @@ -125,6 +125,7 @@ function mockUpdateBranches(branchNames: string[]): UpdateBranch[] { createdAt: '2022-12-07T02:24:43.487Z', runtimeVersion: '1.0.0', runtime: {} as Runtime, // Temporary fix to resolve type errors + insights: {} as UpdateInsights, // Temporary fix to resolve type errors platform: 'ios', manifestFragment: '...', isRollBackToEmbedded: false, diff --git a/packages/eas-cli/src/utils/statuspageService.ts b/packages/eas-cli/src/utils/statuspageService.ts index 9bb1679487..e33cecfd44 100644 --- a/packages/eas-cli/src/utils/statuspageService.ts +++ b/packages/eas-cli/src/utils/statuspageService.ts @@ -24,6 +24,8 @@ const humanReadableServiceName: Record = { [StatuspageServiceName.EasBuild]: 'EAS Build', [StatuspageServiceName.EasSubmit]: 'EAS Submit', [StatuspageServiceName.EasUpdate]: 'EAS Update', + [StatuspageServiceName.GithubApiRequests]: 'GitHub API Requests', + [StatuspageServiceName.GithubWebhooks]: 'Github Webhooks', }; function warnAboutServiceOutage(service: StatuspageServiceFragment): void { From ad02a056d709745d8c8b0c6d7f5db1e3d3fe3518 Mon Sep 17 00:00:00 2001 From: Quinlan Jung Date: Tue, 5 Sep 2023 12:29:23 -0700 Subject: [PATCH 034/105] [eas-cli] remove unreachable codesigning option (#2041) * [eas-cli] remove unreachable option * update CHANGELOG.md --- CHANGELOG.md | 1 + packages/eas-cli/src/rollout/actions/NonInteractiveRollout.ts | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 388ff4b38a..b0a9053da1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ This is the log of notable changes to EAS CLI and related packages. ### 🧹 Chores +- Remove unreachable codesigning option. ([#2041](https://github.com/expo/eas-cli/pull/2041) by [@quinlanj](https://github.com/quinlanj)) - Fix generated graphql tsc errors. ([#2039](https://github.com/expo/eas-cli/pull/2039) by [@quinlanj](https://github.com/quinlanj)) ## [5.1.0](https://github.com/expo/eas-cli/releases/tag/v5.1.0) - 2023-09-01 diff --git a/packages/eas-cli/src/rollout/actions/NonInteractiveRollout.ts b/packages/eas-cli/src/rollout/actions/NonInteractiveRollout.ts index 3141be2329..a09ebb9e2c 100644 --- a/packages/eas-cli/src/rollout/actions/NonInteractiveRollout.ts +++ b/packages/eas-cli/src/rollout/actions/NonInteractiveRollout.ts @@ -1,7 +1,6 @@ import { EASUpdateAction, EASUpdateContext } from '../../eas-update/utils'; import { UpdateChannelBasicInfoFragment } from '../../graphql/generated'; import { ChannelQuery } from '../../graphql/queries/ChannelQuery'; -import { CodeSigningInfo } from '../../utils/code-signing'; import { CreateRollout, NonInteractiveOptions as CreateRolloutNonInteractiveOptions, @@ -25,7 +24,6 @@ export class NonInteractiveRollout implements EASUpdateAction { constructor( private options: { channelName?: string; - codeSigningInfo?: CodeSigningInfo; action?: RolloutActions; } & Partial & Partial & From 4e2029a5c5816ccbb4c4348e9e7257fda7df21a2 Mon Sep 17 00:00:00 2001 From: Quinlan Jung Date: Tue, 5 Sep 2023 12:30:31 -0700 Subject: [PATCH 035/105] [eas-cli] rollout tests (#2042) * [eas-cli] rollout tests * update CHANGELOG.md --- CHANGELOG.md | 1 + .../actions/__tests__/EditRollout-test.ts | 65 +++++++++++++ .../actions/__tests__/SelectRuntime-test.ts | 96 +++++++++++++++++++ 3 files changed, 162 insertions(+) create mode 100644 packages/eas-cli/src/rollout/actions/__tests__/EditRollout-test.ts create mode 100644 packages/eas-cli/src/rollout/actions/__tests__/SelectRuntime-test.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index b0a9053da1..e697f26257 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ This is the log of notable changes to EAS CLI and related packages. ### 🧹 Chores +- Added rollout tests. ([#2042](https://github.com/expo/eas-cli/pull/2042) by [@quinlanj](https://github.com/quinlanj)) - Remove unreachable codesigning option. ([#2041](https://github.com/expo/eas-cli/pull/2041) by [@quinlanj](https://github.com/quinlanj)) - Fix generated graphql tsc errors. ([#2039](https://github.com/expo/eas-cli/pull/2039) by [@quinlanj](https://github.com/quinlanj)) diff --git a/packages/eas-cli/src/rollout/actions/__tests__/EditRollout-test.ts b/packages/eas-cli/src/rollout/actions/__tests__/EditRollout-test.ts new file mode 100644 index 0000000000..354f1fe6e8 --- /dev/null +++ b/packages/eas-cli/src/rollout/actions/__tests__/EditRollout-test.ts @@ -0,0 +1,65 @@ +import { testBasicChannelInfo, testChannelObject } from '../../../channel/__tests__/fixtures'; +import { getAlwaysTrueBranchMapping, getBranchMapping } from '../../../channel/branch-mapping'; +import { updateChannelBranchMappingAsync } from '../../../commands/channel/edit'; +import { createCtxMock } from '../../../eas-update/__tests__/fixtures'; +import { ChannelQuery } from '../../../graphql/queries/ChannelQuery'; +import { confirmAsync } from '../../../prompts'; +import { RolloutBranchMapping, editRolloutBranchMapping } from '../../branch-mapping'; +import { EditRollout } from '../EditRollout'; + +jest.mock('../../../prompts'); +jest.mock('../../../graphql/queries/ChannelQuery'); +jest.mock('../../../commands/channel/edit'); +describe(EditRollout, () => { + afterEach(() => { + jest.clearAllMocks(); + }); + it('throws if the channel doesnt have an active rollout', async () => { + const ctx = createCtxMock(); + const editRollout = new EditRollout({ + ...testBasicChannelInfo, + branchMapping: JSON.stringify(getAlwaysTrueBranchMapping('test-branch')), + }); + await expect(editRollout.runAsync(ctx)).rejects.toThrowError('is not a rollout'); + }); + it('edits the channel with an active rollout', async () => { + const ctx = createCtxMock(); + jest.mocked(ChannelQuery.viewUpdateChannelAsync).mockResolvedValue(testChannelObject); + jest.mocked(updateChannelBranchMappingAsync).mockResolvedValue(testChannelObject); + jest.mocked(confirmAsync).mockImplementation(async () => true); + const editRollout = new EditRollout(testChannelObject, { percent: 50 }); + await editRollout.runAsync(ctx); + expect(updateChannelBranchMappingAsync).toBeCalledWith( + expect.any(Function), + expect.objectContaining({ + branchMapping: JSON.stringify( + editRolloutBranchMapping( + getBranchMapping(testChannelObject.branchMapping) as RolloutBranchMapping, + 50 + ) + ), + }) + ); + }); + it('works in Non-Interactive Mode', async () => { + const ctx = createCtxMock({ + nonInteractive: true, + }); + jest.mocked(ChannelQuery.viewUpdateChannelAsync).mockResolvedValue(testChannelObject); + jest.mocked(updateChannelBranchMappingAsync).mockResolvedValue(testChannelObject); + jest.mocked(confirmAsync).mockImplementation(async () => true); + const editRollout = new EditRollout(testChannelObject, { percent: 50 }); + await editRollout.runAsync(ctx); + expect(updateChannelBranchMappingAsync).toBeCalledWith( + expect.any(Function), + expect.objectContaining({ + branchMapping: JSON.stringify( + editRolloutBranchMapping( + getBranchMapping(testChannelObject.branchMapping) as RolloutBranchMapping, + 50 + ) + ), + }) + ); + }); +}); diff --git a/packages/eas-cli/src/rollout/actions/__tests__/SelectRuntime-test.ts b/packages/eas-cli/src/rollout/actions/__tests__/SelectRuntime-test.ts new file mode 100644 index 0000000000..02f61fd11f --- /dev/null +++ b/packages/eas-cli/src/rollout/actions/__tests__/SelectRuntime-test.ts @@ -0,0 +1,96 @@ +import { testUpdateBranch1, testUpdateBranch2 } from '../../../channel/__tests__/fixtures'; +import { createCtxMock } from '../../../eas-update/__tests__/fixtures'; +import { NonInteractiveError } from '../../../eas-update/utils'; +import { RuntimeQuery } from '../../../graphql/queries/RuntimeQuery'; +import { UpdateQuery } from '../../../graphql/queries/UpdateQuery'; +import { confirmAsync, promptAsync } from '../../../prompts'; +import { SelectRuntime } from '../SelectRuntime'; + +jest.mock('../../../prompts'); +jest.mock('../../../graphql/queries/RuntimeQuery'); +jest.mock('../../../graphql/queries/UpdateQuery'); +const runtimeFragment1 = { id: 'test-runtime-1-id', version: '1.0.0' }; +const runtimeFragment2 = { id: 'test-runtime-2-id', version: '2.0.0' }; +describe(SelectRuntime, () => { + afterEach(() => { + jest.clearAllMocks(); + }); + it('returns null if project has no runtimes', async () => { + const ctx = createCtxMock(); + jest.mocked(RuntimeQuery.getRuntimesOnBranchAsync).mockResolvedValue({ + edges: [], + pageInfo: { + hasPreviousPage: false, + hasNextPage: false, + }, + }); + const selectRuntime = new SelectRuntime(testUpdateBranch1); + const runtime = await selectRuntime.runAsync(ctx); + expect(runtime).toBeNull(); + }); + it('still prompts if project has only one runtime', async () => { + const ctx = createCtxMock(); + jest.mocked(RuntimeQuery.getRuntimesOnBranchAsync).mockResolvedValue({ + edges: [{ node: runtimeFragment1, cursor: 'cursor' }], + pageInfo: { + hasPreviousPage: false, + hasNextPage: false, + }, + }); + jest.mocked(UpdateQuery.viewUpdateGroupsOnBranchAsync).mockResolvedValue([]); + jest.mocked(confirmAsync).mockImplementation(async () => true); + const selectRuntime = new SelectRuntime(testUpdateBranch1); + const runtime = await selectRuntime.runAsync(ctx); + expect(runtime).toBe('1.0.0'); + expect(confirmAsync).toHaveBeenCalledTimes(1); + }); + it('returns the selected runtime', async () => { + jest.mocked(RuntimeQuery.getRuntimesOnBranchAsync).mockResolvedValue({ + edges: [ + { node: runtimeFragment1, cursor: 'cursor' }, + { node: runtimeFragment2, cursor: 'cursor' }, + ], + pageInfo: { + hasPreviousPage: false, + hasNextPage: false, + }, + }); + jest.mocked(promptAsync).mockImplementation(async () => ({ + item: runtimeFragment2, + })); + const ctx = createCtxMock(); + const selectRuntime = new SelectRuntime(testUpdateBranch1); + const runtime = await selectRuntime.runAsync(ctx); + expect(runtime).toBe('2.0.0'); + }); + it('filters the runtime by intersecting branch id', async () => { + const ctx = createCtxMock(); + jest.mocked(RuntimeQuery.getRuntimesOnBranchAsync).mockResolvedValue({ + edges: [], + pageInfo: { + hasPreviousPage: false, + hasNextPage: false, + }, + }); + const selectRuntime = new SelectRuntime(testUpdateBranch1, { + anotherBranchToIntersectRuntimesBy: testUpdateBranch2, + }); + const runtime = await selectRuntime.runAsync(ctx); + expect(runtime).toBeNull(); + expect(RuntimeQuery.getRuntimesOnBranchAsync).toBeCalledWith( + expect.any(Function), + expect.objectContaining({ + filter: { branchId: testUpdateBranch2.id }, + }) + ); + }); + it('throws an error in Non-Interactive Mode', async () => { + const ctx = createCtxMock({ + nonInteractive: true, + }); + const selectRuntime = new SelectRuntime(testUpdateBranch1); + + // dont fail if users are running in non-interactive mode + await expect(selectRuntime.runAsync(ctx)).rejects.toThrowError(NonInteractiveError); + }); +}); From 9097ab253760a4424dc00cae73c60de63034b54d Mon Sep 17 00:00:00 2001 From: Quinlan Jung Date: Tue, 5 Sep 2023 13:01:20 -0700 Subject: [PATCH 036/105] [ENG-9602][eas-cli] rollouts: json output for ci (#2037) * [eas-cli] rollouts: json output for ci * update CHANGELOG.md * fix tests --- CHANGELOG.md | 2 + .../eas-cli/src/channel/__tests__/fixtures.ts | 1 + .../eas-cli/src/commands/channel/rollout.ts | 4 +- packages/eas-cli/src/graphql/generated.ts | 4 +- .../src/graphql/queries/ChannelQuery.ts | 2 + .../rollout/actions/NonInteractiveRollout.ts | 91 ++++++++++++++++++- 6 files changed, 98 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e697f26257..56f3d7fa40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features +- Rollouts: json output for ci. ([#2037](https://github.com/expo/eas-cli/pull/2037) by [@quinlanj](https://github.com/quinlanj)) + ### πŸ› Bug fixes - Update: only print channel-branch pairing if we created a channel. ([#2036](https://github.com/expo/eas-cli/pull/2036) by [@quinlanj](https://github.com/quinlanj)) diff --git a/packages/eas-cli/src/channel/__tests__/fixtures.ts b/packages/eas-cli/src/channel/__tests__/fixtures.ts index ebddad804d..f69e6d4527 100644 --- a/packages/eas-cli/src/channel/__tests__/fixtures.ts +++ b/packages/eas-cli/src/channel/__tests__/fixtures.ts @@ -124,6 +124,7 @@ export const testChannelObject: UpdateChannelObject = { id: '9309afc2-9752-40db-8ef7-4abc10744c61', name: 'production', createdAt: '2023-05-16T21:26:16.946Z', + updatedAt: '2023-05-16T21:26:16.946Z', branchMapping: '{"data":[{"branchId":"754bf17f-efc0-46ab-8a59-a03f20e53e9b","branchMappingLogic":{"operand":0.15,"clientKey":"rolloutToken","branchMappingOperator":"hash_lt"}},{"branchId":"6941a8dd-5c0a-48bc-8876-f49c88ed419f","branchMappingLogic":"true"}],"version":0}', updateBranches: [testUpdateBranch1, testUpdateBranch2], diff --git a/packages/eas-cli/src/commands/channel/rollout.ts b/packages/eas-cli/src/commands/channel/rollout.ts index 61b03e7646..b4c568bf28 100644 --- a/packages/eas-cli/src/commands/channel/rollout.ts +++ b/packages/eas-cli/src/commands/channel/rollout.ts @@ -17,6 +17,7 @@ import { RolloutActions, RolloutMainMenu, } from '../../rollout/actions/RolloutMainMenu'; +import { enableJsonOutput } from '../../utils/json'; enum ActionRawFlagValue { CREATE = 'create', @@ -137,8 +138,7 @@ export default class ChannelRollout extends EasCommand { nonInteractive: argsAndFlags.nonInteractive, }); if (argsAndFlags.json) { - // TODO(quin): implement json output - throw new Error('Developer Preview doesnt support JSON output yet'); + enableJsonOutput(); } const app = { projectId, exp }; diff --git a/packages/eas-cli/src/graphql/generated.ts b/packages/eas-cli/src/graphql/generated.ts index 5f41a0e3ae..b5ecb2daca 100644 --- a/packages/eas-cli/src/graphql/generated.ts +++ b/packages/eas-cli/src/graphql/generated.ts @@ -6525,7 +6525,7 @@ export type ViewUpdateChannelOnAppQueryVariables = Exact<{ }>; -export type ViewUpdateChannelOnAppQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byId: { __typename?: 'App', id: string, updateChannelByName?: { __typename?: 'UpdateChannel', id: string, name: string, createdAt: any, branchMapping: string, updateBranches: Array<{ __typename?: 'UpdateBranch', id: string, name: string, updateGroups: Array> }> } | null } } }; +export type ViewUpdateChannelOnAppQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byId: { __typename?: 'App', id: string, updateChannelByName?: { __typename?: 'UpdateChannel', id: string, name: string, updatedAt: any, createdAt: any, branchMapping: string, updateBranches: Array<{ __typename?: 'UpdateBranch', id: string, name: string, updateGroups: Array> }> } | null } } }; export type ViewUpdateChannelsOnAppQueryVariables = Exact<{ appId: Scalars['String']; @@ -6534,7 +6534,7 @@ export type ViewUpdateChannelsOnAppQueryVariables = Exact<{ }>; -export type ViewUpdateChannelsOnAppQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byId: { __typename?: 'App', id: string, updateChannels: Array<{ __typename?: 'UpdateChannel', id: string, name: string, createdAt: any, branchMapping: string, updateBranches: Array<{ __typename?: 'UpdateBranch', id: string, name: string, updateGroups: Array> }> }> } } }; +export type ViewUpdateChannelsOnAppQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byId: { __typename?: 'App', id: string, updateChannels: Array<{ __typename?: 'UpdateChannel', id: string, name: string, updatedAt: any, createdAt: any, branchMapping: string, updateBranches: Array<{ __typename?: 'UpdateBranch', id: string, name: string, updateGroups: Array> }> }> } } }; export type ViewUpdateChannelsPaginatedOnAppQueryVariables = Exact<{ appId: Scalars['String']; diff --git a/packages/eas-cli/src/graphql/queries/ChannelQuery.ts b/packages/eas-cli/src/graphql/queries/ChannelQuery.ts index e053c562cc..07cb91559b 100644 --- a/packages/eas-cli/src/graphql/queries/ChannelQuery.ts +++ b/packages/eas-cli/src/graphql/queries/ChannelQuery.ts @@ -60,6 +60,7 @@ export const ChannelQuery = { updateChannelByName(name: $channelName) { id name + updatedAt createdAt branchMapping updateBranches(offset: 0, limit: 5) { @@ -104,6 +105,7 @@ export const ChannelQuery = { updateChannels(offset: $offset, limit: $limit) { id name + updatedAt createdAt branchMapping updateBranches(offset: 0, limit: 5) { diff --git a/packages/eas-cli/src/rollout/actions/NonInteractiveRollout.ts b/packages/eas-cli/src/rollout/actions/NonInteractiveRollout.ts index a09ebb9e2c..de860c33f1 100644 --- a/packages/eas-cli/src/rollout/actions/NonInteractiveRollout.ts +++ b/packages/eas-cli/src/rollout/actions/NonInteractiveRollout.ts @@ -1,6 +1,12 @@ import { EASUpdateAction, EASUpdateContext } from '../../eas-update/utils'; import { UpdateChannelBasicInfoFragment } from '../../graphql/generated'; -import { ChannelQuery } from '../../graphql/queries/ChannelQuery'; +import { + ChannelQuery, + UpdateBranchObject, + UpdateChannelObject, +} from '../../graphql/queries/ChannelQuery'; +import { printJsonOnlyOutput } from '../../utils/json'; +import { getRollout, getRolloutInfo, isConstrainedRolloutInfo, isRollout } from '../branch-mapping'; import { CreateRollout, NonInteractiveOptions as CreateRolloutNonInteractiveOptions, @@ -17,6 +23,19 @@ import { import { ManageRolloutActions } from './ManageRollout'; import { MainMenuActions, RolloutActions } from './RolloutMainMenu'; +type JSONRolloutOutput = { + defaultBranch: UpdateBranchObject; + rolledOutBranch: UpdateBranchObject; + percentRolledOut: number; + runtimeVersion?: string; + updatedAt: Date; +}; + +type JSONOutput = { + hasRollout: boolean; + originalRolloutInfo?: JSONRolloutOutput; + currentRolloutInfo?: JSONRolloutOutput; +}; /** * Control a rollout in non interactive mode. */ @@ -24,6 +43,7 @@ export class NonInteractiveRollout implements EASUpdateAction { constructor( private options: { channelName?: string; + json?: boolean; action?: RolloutActions; } & Partial & Partial & @@ -47,11 +67,26 @@ export class NonInteractiveRollout implements EASUpdateAction { appId: app.projectId, channelName, }); + const channelObject = await this.getChannelObjectAsync(ctx, { + channelName, + runtimeVersion: this.getRuntimeVersion(channelInfo), + }); if (!action) { throw new Error(`--action is required in non-interactive mode.`); } - await this.runActionAsync(ctx, action, channelInfo, this.options); + const updatedChannelInfo = await this.runActionAsync(ctx, action, channelObject, this.options); + const updatedChannelObject = await this.getChannelObjectAsync(ctx, { + channelName, + runtimeVersion: this.getRuntimeVersion(updatedChannelInfo), + }); + if (this.options.json) { + const json = await this.getJsonAsync({ + originalChannelObject: channelObject, + updatedChannelObject, + }); + printJsonOnlyOutput(json); + } } async runActionAsync( @@ -72,4 +107,56 @@ export class NonInteractiveRollout implements EASUpdateAction { return await new EndRollout(channelInfo, options).runAsync(ctx); } } + + async getJsonAsync({ + originalChannelObject, + updatedChannelObject, + }: { + originalChannelObject: UpdateChannelObject; + updatedChannelObject: UpdateChannelObject; + }): Promise { + return { + hasRollout: isRollout(updatedChannelObject), + ...(isRollout(originalChannelObject) + ? { originalRolloutInfo: await this.getRolloutJsonAsync(originalChannelObject) } + : {}), + ...(isRollout(updatedChannelObject) + ? { currentRolloutInfo: await this.getRolloutJsonAsync(updatedChannelObject) } + : {}), + }; + } + + async getRolloutJsonAsync(channelObject: UpdateChannelObject): Promise { + const rollout = getRollout(channelObject); + return { + defaultBranch: rollout.defaultBranch, + rolledOutBranch: rollout.rolledOutBranch, + percentRolledOut: rollout.percentRolledOut, + runtimeVersion: this.getRuntimeVersion(channelObject) ?? undefined, + updatedAt: channelObject.updatedAt, + }; + } + + getRuntimeVersion(channelInfo: UpdateChannelBasicInfoFragment): string | undefined { + if (isRollout(channelInfo)) { + const updatedRolloutInfo = getRolloutInfo(channelInfo); + if (isConstrainedRolloutInfo(updatedRolloutInfo)) { + return updatedRolloutInfo.runtimeVersion; + } + } + return undefined; + } + + async getChannelObjectAsync( + ctx: EASUpdateContext, + { channelName, runtimeVersion }: { channelName: string; runtimeVersion?: string } + ): Promise { + const { graphqlClient, app } = ctx; + const { projectId } = app; + return await ChannelQuery.viewUpdateChannelAsync(graphqlClient, { + appId: projectId, + channelName, + ...(runtimeVersion ? { filter: { runtimeVersions: [runtimeVersion] } } : {}), + }); + } } From 54127c4e37e1c675bfb25af8f871b84304c6d940 Mon Sep 17 00:00:00 2001 From: Quinlan Jung Date: Tue, 5 Sep 2023 13:49:12 -0700 Subject: [PATCH 037/105] [ENG-9828][eas-cli] rollouts: view action for CI (#2040) * [eas-cli] rollouts: non-interactive view * update CHANGELOG.md * rebase --- CHANGELOG.md | 1 + .../eas-cli/src/commands/channel/rollout.ts | 3 +++ .../src/rollout/actions/ManageRollout.ts | 10 ++++++- .../rollout/actions/NonInteractiveRollout.ts | 26 ++++++++++++------- .../src/rollout/actions/RolloutMainMenu.ts | 9 +++++-- 5 files changed, 37 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 56f3d7fa40..2abc6b7eaf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ This is the log of notable changes to EAS CLI and related packages. - Added rollout tests. ([#2042](https://github.com/expo/eas-cli/pull/2042) by [@quinlanj](https://github.com/quinlanj)) - Remove unreachable codesigning option. ([#2041](https://github.com/expo/eas-cli/pull/2041) by [@quinlanj](https://github.com/quinlanj)) - Fix generated graphql tsc errors. ([#2039](https://github.com/expo/eas-cli/pull/2039) by [@quinlanj](https://github.com/quinlanj)) +- Rollouts: view action for CI. ([#2040](https://github.com/expo/eas-cli/pull/2040) by [@quinlanj](https://github.com/quinlanj)) ## [5.1.0](https://github.com/expo/eas-cli/releases/tag/v5.1.0) - 2023-09-01 diff --git a/packages/eas-cli/src/commands/channel/rollout.ts b/packages/eas-cli/src/commands/channel/rollout.ts index b4c568bf28..7901df6332 100644 --- a/packages/eas-cli/src/commands/channel/rollout.ts +++ b/packages/eas-cli/src/commands/channel/rollout.ts @@ -23,6 +23,7 @@ enum ActionRawFlagValue { CREATE = 'create', EDIT = 'edit', END = 'end', + VIEW = 'view', } type ChannelRolloutRawArgsAndFlags = { channel?: string; @@ -168,6 +169,8 @@ export default class ChannelRollout extends EasCommand { return ManageRolloutActions.EDIT; case ActionRawFlagValue.END: return ManageRolloutActions.END; + case ActionRawFlagValue.VIEW: + return ManageRolloutActions.VIEW; } } diff --git a/packages/eas-cli/src/rollout/actions/ManageRollout.ts b/packages/eas-cli/src/rollout/actions/ManageRollout.ts index d86ba6a2e3..57283f3ff0 100644 --- a/packages/eas-cli/src/rollout/actions/ManageRollout.ts +++ b/packages/eas-cli/src/rollout/actions/ManageRollout.ts @@ -20,6 +20,7 @@ import { export enum ManageRolloutActions { EDIT = 'Edit', END = 'End', + VIEW = 'View', GO_BACK = 'Go back', } @@ -31,7 +32,7 @@ export class ManageRollout implements EASUpdateAction { private channelInfo: UpdateChannelBasicInfoFragment, private options: { callingAction?: EASUpdateAction; - action?: ManageRolloutActions.EDIT | ManageRolloutActions.END; + action?: ManageRolloutActions.EDIT | ManageRolloutActions.END | ManageRolloutActions.VIEW; } & Partial & Partial & EndRolloutGeneralOptions @@ -51,6 +52,9 @@ export class ManageRollout implements EASUpdateAction { return new EditRollout(this.channelInfo, this.options); case ManageRolloutActions.END: return new EndRollout(this.channelInfo, this.options); + case ManageRolloutActions.VIEW: + // Rollout is automatically printed in interactive mode + return new Noop(); case ManageRolloutActions.GO_BACK: assert(this.options.callingAction, 'calling action must be defined'); return this.options.callingAction; @@ -94,3 +98,7 @@ export class ManageRollout implements EASUpdateAction { }); } } + +class Noop { + public async runAsync(): Promise {} +} diff --git a/packages/eas-cli/src/rollout/actions/NonInteractiveRollout.ts b/packages/eas-cli/src/rollout/actions/NonInteractiveRollout.ts index de860c33f1..9eff892b32 100644 --- a/packages/eas-cli/src/rollout/actions/NonInteractiveRollout.ts +++ b/packages/eas-cli/src/rollout/actions/NonInteractiveRollout.ts @@ -5,8 +5,10 @@ import { UpdateBranchObject, UpdateChannelObject, } from '../../graphql/queries/ChannelQuery'; +import Log from '../../log'; import { printJsonOnlyOutput } from '../../utils/json'; import { getRollout, getRolloutInfo, isConstrainedRolloutInfo, isRollout } from '../branch-mapping'; +import { printRollout } from '../utils'; import { CreateRollout, NonInteractiveOptions as CreateRolloutNonInteractiveOptions, @@ -75,7 +77,7 @@ export class NonInteractiveRollout implements EASUpdateAction { if (!action) { throw new Error(`--action is required in non-interactive mode.`); } - const updatedChannelInfo = await this.runActionAsync(ctx, action, channelObject, this.options); + const updatedChannelInfo = await this.runActionAsync(ctx, action, channelObject); const updatedChannelObject = await this.getChannelObjectAsync(ctx, { channelName, runtimeVersion: this.getRuntimeVersion(updatedChannelInfo), @@ -92,20 +94,26 @@ export class NonInteractiveRollout implements EASUpdateAction { async runActionAsync( ctx: EASUpdateContext, action: RolloutActions, - channelInfo: UpdateChannelBasicInfoFragment, - options: Partial & - Partial & - EndRolloutGeneralOptions & - Partial + channelObject: UpdateChannelObject ): Promise { switch (action) { case MainMenuActions.CREATE_NEW: - return await new CreateRollout(channelInfo, options).runAsync(ctx); + return await new CreateRollout(channelObject, this.options).runAsync(ctx); case ManageRolloutActions.EDIT: - return await new EditRollout(channelInfo, options).runAsync(ctx); + return await new EditRollout(channelObject, this.options).runAsync(ctx); case ManageRolloutActions.END: - return await new EndRollout(channelInfo, options).runAsync(ctx); + return await new EndRollout(channelObject, this.options).runAsync(ctx); + case ManageRolloutActions.VIEW: + return this.viewRollout(channelObject); + } + } + + viewRollout(channelObject: UpdateChannelObject): UpdateChannelObject { + if (!this.options.json) { + printRollout(channelObject); + Log.warn('For formatted output, add the --json flag to your command.'); } + return channelObject; } async getJsonAsync({ diff --git a/packages/eas-cli/src/rollout/actions/RolloutMainMenu.ts b/packages/eas-cli/src/rollout/actions/RolloutMainMenu.ts index 551063fe2e..131cb32c36 100644 --- a/packages/eas-cli/src/rollout/actions/RolloutMainMenu.ts +++ b/packages/eas-cli/src/rollout/actions/RolloutMainMenu.ts @@ -27,7 +27,8 @@ export enum MainMenuActions { export type RolloutActions = | MainMenuActions.CREATE_NEW | ManageRolloutActions.EDIT - | ManageRolloutActions.END; + | ManageRolloutActions.END + | ManageRolloutActions.VIEW; /** * Manage a rollout for the project. @@ -126,7 +127,11 @@ export class RolloutMainMenu implements EASUpdateAction { toMainMenuAction(action: RolloutActions): MainMenuActions { if (action === MainMenuActions.CREATE_NEW) { return MainMenuActions.CREATE_NEW; - } else if (action === ManageRolloutActions.EDIT || action === ManageRolloutActions.END) { + } else if ( + action === ManageRolloutActions.EDIT || + action === ManageRolloutActions.END || + action === ManageRolloutActions.VIEW + ) { return MainMenuActions.MANAGE_EXISTING; } else { throw new Error(`Action not supported yet: ` + action); From a5dc0bd27c3dc806830026302a4c9e0a587e5cc0 Mon Sep 17 00:00:00 2001 From: Quinlan Jung Date: Tue, 5 Sep 2023 13:50:41 -0700 Subject: [PATCH 038/105] v5.2.0 --- lerna.json | 2 +- packages/eas-cli/README.md | 114 ++++++++++++++++----------------- packages/eas-cli/package.json | 4 +- packages/eas-json/package.json | 2 +- 4 files changed, 61 insertions(+), 61 deletions(-) diff --git a/lerna.json b/lerna.json index fb72762af5..fb0ed6b9a1 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "npmClient": "yarn", "useWorkspaces": true, - "version": "5.1.0", + "version": "5.2.0", "$schema": "node_modules/lerna/schemas/lerna-schema.json" } diff --git a/packages/eas-cli/README.md b/packages/eas-cli/README.md index 73f6e75c39..9b394e66ab 100644 --- a/packages/eas-cli/README.md +++ b/packages/eas-cli/README.md @@ -133,7 +133,7 @@ ALIASES $ eas login ``` -_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/account/login.ts)_ +_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/account/login.ts)_ ## `eas account:logout` @@ -150,7 +150,7 @@ ALIASES $ eas logout ``` -_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/account/logout.ts)_ +_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/account/logout.ts)_ ## `eas account:view` @@ -167,7 +167,7 @@ ALIASES $ eas whoami ``` -_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/account/view.ts)_ +_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/account/view.ts)_ ## `eas analytics [STATUS]` @@ -181,7 +181,7 @@ DESCRIPTION display or change analytics settings ``` -_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/analytics.ts)_ +_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/analytics.ts)_ ## `eas autocomplete [SHELL]` @@ -231,7 +231,7 @@ DESCRIPTION create a branch ``` -_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/branch/create.ts)_ +_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/branch/create.ts)_ ## `eas branch:delete [NAME]` @@ -252,7 +252,7 @@ DESCRIPTION delete a branch ``` -_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/branch/delete.ts)_ +_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/branch/delete.ts)_ ## `eas branch:list` @@ -272,7 +272,7 @@ DESCRIPTION list all branches ``` -_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/branch/list.ts)_ +_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/branch/list.ts)_ ## `eas branch:rename` @@ -292,7 +292,7 @@ DESCRIPTION rename a branch ``` -_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/branch/rename.ts)_ +_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/branch/rename.ts)_ ## `eas branch:view [NAME]` @@ -315,7 +315,7 @@ DESCRIPTION view a branch ``` -_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/branch/view.ts)_ +_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/branch/view.ts)_ ## `eas build` @@ -345,7 +345,7 @@ DESCRIPTION start a build ``` -_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/index.ts)_ +_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/index.ts)_ ## `eas build:cancel [BUILD_ID]` @@ -362,7 +362,7 @@ DESCRIPTION cancel a build ``` -_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/cancel.ts)_ +_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/cancel.ts)_ ## `eas build:configure` @@ -379,7 +379,7 @@ DESCRIPTION configure the project to support EAS Build ``` -_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/configure.ts)_ +_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/configure.ts)_ ## `eas build:inspect` @@ -414,7 +414,7 @@ DESCRIPTION inspect the state of the project at specific build stages, useful for troubleshooting ``` -_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/inspect.ts)_ +_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/inspect.ts)_ ## `eas build:list` @@ -452,7 +452,7 @@ DESCRIPTION list all builds for your project ``` -_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/list.ts)_ +_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/list.ts)_ ## `eas build:resign` @@ -478,7 +478,7 @@ DESCRIPTION re-sign a build archive ``` -_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/resign.ts)_ +_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/resign.ts)_ ## `eas build:run` @@ -502,7 +502,7 @@ DESCRIPTION run simulator/emulator builds from eas-cli ``` -_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/run.ts)_ +_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/run.ts)_ ## `eas build:submit` @@ -551,7 +551,7 @@ DESCRIPTION get the latest version from EAS servers ``` -_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/version/get.ts)_ +_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/version/get.ts)_ ## `eas build:version:set` @@ -570,7 +570,7 @@ DESCRIPTION update version of an app ``` -_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/version/set.ts)_ +_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/version/set.ts)_ ## `eas build:version:sync` @@ -589,7 +589,7 @@ DESCRIPTION update a version in native code with a value stored on EAS servers ``` -_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/version/sync.ts)_ +_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/version/sync.ts)_ ## `eas build:view [BUILD_ID]` @@ -606,7 +606,7 @@ DESCRIPTION view a build for your project ``` -_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/build/view.ts)_ +_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/view.ts)_ ## `eas channel:create [NAME]` @@ -627,7 +627,7 @@ DESCRIPTION create a channel ``` -_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/channel/create.ts)_ +_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/channel/create.ts)_ ## `eas channel:edit [NAME]` @@ -649,7 +649,7 @@ DESCRIPTION point a channel at a new branch ``` -_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/channel/edit.ts)_ +_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/channel/edit.ts)_ ## `eas channel:list` @@ -669,7 +669,7 @@ DESCRIPTION list all channels ``` -_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/channel/list.ts)_ +_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/channel/list.ts)_ ## `eas channel:rollout [CHANNEL]` @@ -677,7 +677,7 @@ Roll a new branch out on a channel incrementally. ``` USAGE - $ eas channel:rollout [CHANNEL] [--action create|edit|end] [--percent ] [--outcome + $ eas channel:rollout [CHANNEL] [--action create|edit|end|view] [--percent ] [--outcome republish-and-revert|revert] [--branch ] [--runtime-version ] [--private-key-path ] [--json --non-interactive] @@ -685,7 +685,7 @@ ARGUMENTS CHANNEL channel on which the rollout should be done FLAGS - --action=(create|edit|end) Rollout action to perform + --action=(create|edit|end|view) Rollout action to perform --branch= Branch to roll out. Use with --action=create --json Enable JSON output, non-JSON messages will be printed to stderr. --non-interactive Run the command in non-interactive mode. @@ -701,7 +701,7 @@ DESCRIPTION Roll a new branch out on a channel incrementally. ``` -_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/channel/rollout.ts)_ +_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/channel/rollout.ts)_ ## `eas channel:view [NAME]` @@ -724,7 +724,7 @@ DESCRIPTION view a channel ``` -_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/channel/view.ts)_ +_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/channel/view.ts)_ ## `eas config` @@ -745,7 +745,7 @@ DESCRIPTION display project configuration (app.json + eas.json) ``` -_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/config.ts)_ +_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/config.ts)_ ## `eas credentials` @@ -762,7 +762,7 @@ DESCRIPTION manage credentials ``` -_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/credentials.ts)_ +_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/credentials.ts)_ ## `eas device:create` @@ -776,7 +776,7 @@ DESCRIPTION register new Apple Devices to use for internal distribution ``` -_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/device/create.ts)_ +_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/device/create.ts)_ ## `eas device:delete` @@ -796,7 +796,7 @@ DESCRIPTION remove a registered device from your account ``` -_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/device/delete.ts)_ +_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/device/delete.ts)_ ## `eas device:list` @@ -817,7 +817,7 @@ DESCRIPTION list all registered devices for your account ``` -_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/device/list.ts)_ +_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/device/list.ts)_ ## `eas device:rename` @@ -838,7 +838,7 @@ DESCRIPTION rename a registered device ``` -_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/device/rename.ts)_ +_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/device/rename.ts)_ ## `eas device:view [UDID]` @@ -852,7 +852,7 @@ DESCRIPTION view a device for your project ``` -_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/device/view.ts)_ +_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/device/view.ts)_ ## `eas diagnostics` @@ -866,7 +866,7 @@ DESCRIPTION display environment info ``` -_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/diagnostics.ts)_ +_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/diagnostics.ts)_ ## `eas help [COMMAND]` @@ -954,7 +954,7 @@ DESCRIPTION validate the local store configuration ``` -_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/metadata/lint.ts)_ +_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/metadata/lint.ts)_ ## `eas metadata:pull` @@ -971,7 +971,7 @@ DESCRIPTION generate the local store configuration from the app stores ``` -_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/metadata/pull.ts)_ +_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/metadata/pull.ts)_ ## `eas metadata:push` @@ -988,7 +988,7 @@ DESCRIPTION sync the local store configuration to the app stores ``` -_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/metadata/push.ts)_ +_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/metadata/push.ts)_ ## `eas open` @@ -1002,7 +1002,7 @@ DESCRIPTION open the project page in a web browser ``` -_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/open.ts)_ +_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/open.ts)_ ## `eas project:info` @@ -1016,7 +1016,7 @@ DESCRIPTION information about the current project ``` -_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/project/info.ts)_ +_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/project/info.ts)_ ## `eas project:init` @@ -1038,7 +1038,7 @@ ALIASES $ eas init ``` -_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/project/init.ts)_ +_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/project/init.ts)_ ## `eas secret:create` @@ -1061,7 +1061,7 @@ DESCRIPTION create an environment secret on the current project or owner account ``` -_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/secret/create.ts)_ +_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/secret/create.ts)_ ## `eas secret:delete` @@ -1079,7 +1079,7 @@ DESCRIPTION delete an environment secret by ID ``` -_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/secret/delete.ts)_ +_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/secret/delete.ts)_ ## `eas secret:list` @@ -1093,7 +1093,7 @@ DESCRIPTION list environment secrets available for your current app ``` -_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/secret/list.ts)_ +_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/secret/list.ts)_ ## `eas secret:push` @@ -1113,7 +1113,7 @@ DESCRIPTION read environment secrets from env file and store on the server ``` -_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/secret/push.ts)_ +_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/secret/push.ts)_ ## `eas submit` @@ -1143,7 +1143,7 @@ ALIASES $ eas build:submit ``` -_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/submit.ts)_ +_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/submit.ts)_ ## `eas update` @@ -1176,7 +1176,7 @@ DESCRIPTION publish an update group ``` -_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/update/index.ts)_ +_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/update/index.ts)_ ## `eas update:configure` @@ -1194,7 +1194,7 @@ DESCRIPTION configure the project to support EAS Update ``` -_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/update/configure.ts)_ +_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/update/configure.ts)_ ## `eas update:delete GROUPID` @@ -1215,7 +1215,7 @@ DESCRIPTION delete all the updates in an update group ``` -_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/update/delete.ts)_ +_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/update/delete.ts)_ ## `eas update:list` @@ -1237,7 +1237,7 @@ DESCRIPTION view the recent updates ``` -_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/update/list.ts)_ +_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/update/list.ts)_ ## `eas update:republish` @@ -1264,7 +1264,7 @@ DESCRIPTION roll back to an existing update ``` -_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/update/republish.ts)_ +_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/update/republish.ts)_ ## `eas update:view GROUPID` @@ -1284,7 +1284,7 @@ DESCRIPTION update group details ``` -_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/update/view.ts)_ +_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/update/view.ts)_ ## `eas webhook:create` @@ -1305,7 +1305,7 @@ DESCRIPTION create a webhook ``` -_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/webhook/create.ts)_ +_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/webhook/create.ts)_ ## `eas webhook:delete [ID]` @@ -1325,7 +1325,7 @@ DESCRIPTION delete a webhook ``` -_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/webhook/delete.ts)_ +_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/webhook/delete.ts)_ ## `eas webhook:list` @@ -1343,7 +1343,7 @@ DESCRIPTION list webhooks ``` -_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/webhook/list.ts)_ +_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/webhook/list.ts)_ ## `eas webhook:update` @@ -1365,7 +1365,7 @@ DESCRIPTION update a webhook ``` -_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/webhook/update.ts)_ +_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/webhook/update.ts)_ ## `eas webhook:view ID` @@ -1382,7 +1382,7 @@ DESCRIPTION view a webhook ``` -_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.1.0/packages/eas-cli/src/commands/webhook/view.ts)_ +_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/webhook/view.ts)_ ## `eas whoami` diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index c9c4cc2104..01abd526ae 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -1,7 +1,7 @@ { "name": "eas-cli", "description": "EAS command line tool", - "version": "5.1.0", + "version": "5.2.0", "author": "Expo ", "bin": { "eas": "./bin/run" @@ -14,7 +14,7 @@ "@expo/config-plugins": "7.2.4", "@expo/config-types": "49.0.0", "@expo/eas-build-job": "1.0.39", - "@expo/eas-json": "5.1.0", + "@expo/eas-json": "5.2.0", "@expo/json-file": "8.2.37", "@expo/multipart-body-parser": "1.1.0", "@expo/osascript": "2.0.33", diff --git a/packages/eas-json/package.json b/packages/eas-json/package.json index d0b85851c1..bed2542d8b 100644 --- a/packages/eas-json/package.json +++ b/packages/eas-json/package.json @@ -1,7 +1,7 @@ { "name": "@expo/eas-json", "description": "A library for interacting with eas.json", - "version": "5.1.0", + "version": "5.2.0", "author": "Expo ", "bugs": "https://github.com/expo/eas-cli/issues", "dependencies": { From bcab3bcb09a11a203fa1d3262a2b1f023470eb19 Mon Sep 17 00:00:00 2001 From: Expo CI Date: Tue, 5 Sep 2023 20:58:51 +0000 Subject: [PATCH 039/105] update CHANGELOG.md --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2abc6b7eaf..afdb748a8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,14 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features +### πŸ› Bug fixes + +### 🧹 Chores + +## [5.2.0](https://github.com/expo/eas-cli/releases/tag/v5.2.0) - 2023-09-05 + +### πŸŽ‰ New features + - Rollouts: json output for ci. ([#2037](https://github.com/expo/eas-cli/pull/2037) by [@quinlanj](https://github.com/quinlanj)) ### πŸ› Bug fixes From cc822b18f37dbc9e6b6c7b9f04b9321739230d8c Mon Sep 17 00:00:00 2001 From: Quinlan Jung Date: Wed, 6 Sep 2023 11:10:44 -0700 Subject: [PATCH 040/105] [eas-cli] rollouts: more robust printing function (#2047) * [eas-cli] rollouts: more robust printing function * update CHANGELOG.md --- CHANGELOG.md | 2 ++ packages/eas-cli/src/rollout/utils.ts | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index afdb748a8b..cc53212725 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ This is the log of notable changes to EAS CLI and related packages. ### 🧹 Chores +- Rollouts: more robust printing function. ([#2047](https://github.com/expo/eas-cli/pull/2047) by [@quinlanj](https://github.com/quinlanj)) + ## [5.2.0](https://github.com/expo/eas-cli/releases/tag/v5.2.0) - 2023-09-05 ### πŸŽ‰ New features diff --git a/packages/eas-cli/src/rollout/utils.ts b/packages/eas-cli/src/rollout/utils.ts index d5ec533b5d..77fcb442ba 100644 --- a/packages/eas-cli/src/rollout/utils.ts +++ b/packages/eas-cli/src/rollout/utils.ts @@ -10,9 +10,13 @@ import Log from '../log'; import { promptAsync } from '../prompts'; import { FormattedUpdateGroupDescription, getUpdateGroupDescriptions } from '../update/utils'; import formatFields from '../utils/formatFields'; -import { Rollout, getRollout, isConstrainedRollout } from './branch-mapping'; +import { Rollout, getRollout, isConstrainedRollout, isRollout } from './branch-mapping'; export function printRollout(channel: UpdateChannelObject): void { + if (!isRollout(channel)) { + Log.log(`Channel ${chalk.bold(channel.name)} doesn't have a rollout.`); + return; + } const rollout = getRollout(channel); displayRolloutDetails(channel.name, rollout); } From da9829a8532b0c6edf2d6aeba4776f08ab9cbcd1 Mon Sep 17 00:00:00 2001 From: Piotr Szeremeta Date: Mon, 11 Sep 2023 14:56:53 +0200 Subject: [PATCH 041/105] [ENG-5266] Suggest correct bundleId when account name not available (#2027) --- packages/eas-cli/src/project/ios/bundleIdentifier.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/eas-cli/src/project/ios/bundleIdentifier.ts b/packages/eas-cli/src/project/ios/bundleIdentifier.ts index b982cd339c..c921215530 100644 --- a/packages/eas-cli/src/project/ios/bundleIdentifier.ts +++ b/packages/eas-cli/src/project/ios/bundleIdentifier.ts @@ -201,8 +201,14 @@ async function getSuggestedBundleIdentifierAsync( } else { // the only callsite is heavily interactive const account = await getOwnerAccountForProjectIdAsync(graphqlClient, projectId); + let possibleId: string; // It's common to use dashes in your node project name, strip them from the suggested package name. - const possibleId = `com.${account.name}.${exp.slug}`.split('-').join(''); + if (account.name) { + possibleId = `com.${account.name}.${exp.slug}`.split('-').join(''); + } else { + possibleId = `com.${exp.slug}`.split('-').join(''); + } + if (isBundleIdentifierValid(possibleId)) { return possibleId; } From 8751a2835f38e4be5079c7f2ffe7129f9a060301 Mon Sep 17 00:00:00 2001 From: _nderscore <_@nderscore.com> Date: Wed, 13 Sep 2023 20:00:01 +0000 Subject: [PATCH 042/105] feat(eas-cli): expose expo export dev flag as an option in eas update (#2050) --- CHANGELOG.md | 2 ++ packages/eas-cli/src/commands/update/index.ts | 12 ++++++++++-- packages/eas-cli/src/project/publish.ts | 5 +++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc53212725..6b820ddab8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features +- Update: expose expo cli `--dev` flag as an argument. ([#2050](https://github.com/expo/eas-cli/pull/2050) by [@nderscore](https://github.com/nderscore)) + ### πŸ› Bug fixes ### 🧹 Chores diff --git a/packages/eas-cli/src/commands/update/index.ts b/packages/eas-cli/src/commands/update/index.ts index 37d36436d1..2bdfecd7d4 100644 --- a/packages/eas-cli/src/commands/update/index.ts +++ b/packages/eas-cli/src/commands/update/index.ts @@ -56,6 +56,7 @@ import { getVcsClient } from '../../vcs'; type RawUpdateFlags = { auto: boolean; + dev: boolean; branch?: string; channel?: string; message?: string; @@ -74,6 +75,7 @@ type RawUpdateFlags = { type UpdateFlags = { auto: boolean; + dev: boolean; platform: ExpoCLIExportPlatformFlag; branchName?: string; channelName?: string; @@ -134,6 +136,10 @@ export default class UpdatePublish extends EasCommand { default: 'all', required: false, }), + dev: Flags.boolean({ + description: 'Publish a development bundle', + default: false, + }), auto: Flags.boolean({ description: 'Use the current git branch and commit message for the EAS branch and update message', @@ -158,6 +164,7 @@ export default class UpdatePublish extends EasCommand { auto: autoFlag, platform: platformFlag, channelName: channelNameArg, + dev, updateMessage: updateMessageArg, inputDir, skipBundler, @@ -220,7 +227,7 @@ export default class UpdatePublish extends EasCommand { if (!skipBundler) { const bundleSpinner = ora().start('Exporting...'); try { - await buildBundlesAsync({ projectDir, inputDir, exp, platformFlag, clearCache }); + await buildBundlesAsync({ projectDir, inputDir, dev, exp, platformFlag, clearCache }); bundleSpinner.succeed('Exported bundle(s)'); } catch (e) { bundleSpinner.fail('Export failed'); @@ -524,7 +531,7 @@ export default class UpdatePublish extends EasCommand { private sanitizeFlags(flags: RawUpdateFlags): UpdateFlags { const nonInteractive = flags['non-interactive'] ?? false; - const { auto, branch: branchName, channel: channelName, message: updateMessage } = flags; + const { auto, branch: branchName, channel: channelName, dev, message: updateMessage } = flags; if (nonInteractive && !auto && !(updateMessage && (branchName || channelName))) { Errors.error( '--branch and --message, or --channel and --message are required when updating in non-interactive mode unless --auto is specified', @@ -553,6 +560,7 @@ export default class UpdatePublish extends EasCommand { auto, branchName, channelName, + dev, updateMessage, inputDir: flags['input-dir'], skipBundler: flags['skip-bundler'], diff --git a/packages/eas-cli/src/project/publish.ts b/packages/eas-cli/src/project/publish.ts index b1c92e2bb5..e67a3f4990 100644 --- a/packages/eas-cli/src/project/publish.ts +++ b/packages/eas-cli/src/project/publish.ts @@ -185,12 +185,14 @@ export async function buildBundlesAsync({ exp, platformFlag, clearCache, + dev = false, }: { projectDir: string; inputDir: string; exp: Pick; platformFlag: ExpoCLIExportPlatformFlag; clearCache?: boolean; + dev?: boolean; }): Promise { const packageJSON = JsonFile.read(path.resolve(projectDir, 'package.json')); if (!packageJSON) { @@ -208,6 +210,7 @@ export async function buildBundlesAsync({ '--dump-sourcemap', '--dump-assetmap', `--platform=${platformFlag}`, + ...(dev ? ['--dev'] : []), ...(clearCache ? ['--clear'] : []), ]); } @@ -227,6 +230,7 @@ export async function buildBundlesAsync({ '--dump-sourcemap', '--dump-assetmap', ...platformArgs, + ...(dev ? ['--dev'] : []), ...(clearCache ? ['--clear'] : []), ]); } @@ -248,6 +252,7 @@ export async function buildBundlesAsync({ '--dump-sourcemap', '--dump-assetmap', `--platform=${platformFlag}`, + ...(dev ? ['--dev'] : []), ...(clearCache ? ['--clear'] : []), ]); } From 7ddd630cfdfb2d8fd4a1dcefbe985a1444f83cf7 Mon Sep 17 00:00:00 2001 From: Piotr Szeremeta Date: Mon, 18 Sep 2023 08:28:39 +0200 Subject: [PATCH 043/105] [FIX] Remove semver validation from node version read from .nvmrc (#2052) * [FIX] Remove semver validation from node version read from .nvmrc Node version can be specified as an alias (such as `iojs`, `lts/hydrogen` etc), so validating it as semver may cause errors for some users. * update CHANGELOG.md --- CHANGELOG.md | 2 ++ packages/eas-cli/src/utils/profiles.ts | 4 ---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b820ddab8..981e17b2bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ› Bug fixes +- Support node aliases in .nvmrc. ([#2052](https://github.com/expo/eas-cli/pull/2052) by [@khamilowicz](https://github.com/khamilowicz)) + ### 🧹 Chores - Rollouts: more robust printing function. ([#2047](https://github.com/expo/eas-cli/pull/2047) by [@quinlanj](https://github.com/quinlanj)) diff --git a/packages/eas-cli/src/utils/profiles.ts b/packages/eas-cli/src/utils/profiles.ts index 4d97830184..6b2f15ae04 100644 --- a/packages/eas-cli/src/utils/profiles.ts +++ b/packages/eas-cli/src/utils/profiles.ts @@ -8,7 +8,6 @@ import { } from '@expo/eas-json'; import fs from 'fs-extra'; import path from 'path'; -import semver from 'semver'; import Log, { learnMore } from '../log'; @@ -83,9 +82,6 @@ async function getNodeVersionFromFileAsync(projectDir: string): Promise Date: Mon, 18 Sep 2023 10:26:36 +0200 Subject: [PATCH 044/105] fix tests --- packages/eas-cli/src/channel/__tests__/print-utils-test.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/eas-cli/src/channel/__tests__/print-utils-test.ts b/packages/eas-cli/src/channel/__tests__/print-utils-test.ts index 9e07d55f69..7776bafdfb 100644 --- a/packages/eas-cli/src/channel/__tests__/print-utils-test.ts +++ b/packages/eas-cli/src/channel/__tests__/print-utils-test.ts @@ -1,3 +1,5 @@ +import { format } from '@expo/timeago.js'; + import { getAlwaysTrueBranchMapping, getEmptyBranchMapping } from '../branch-mapping'; import { getDescriptionByBranchId } from '../print-utils'; import { testChannelObject, testUpdateBranch1, testUpdateBranch2 } from './fixtures'; @@ -13,11 +15,12 @@ describe(getDescriptionByBranchId, () => { codeSigningKey: undefined, group: '16ca6dba-e63b-48b0-baa3-15a894ee9434', isRollBackToEmbedded: false, - message: '"fix bug" (1 month ago by quintest113)', + message: `"fix bug" (${format('2023-07-17T22:48:59.278Z', 'en_US')} by quintest113)`, platforms: 'android, ios', runtimeVersion: 'exposdk:48.0.0', }, }); + expect(descriptionByBranchId[testUpdateBranch2.id]).toEqual({ branch: 'production', branchRolloutPercentage: 85, @@ -25,7 +28,7 @@ describe(getDescriptionByBranchId, () => { codeSigningKey: undefined, group: 'e40ad156-e9af-4cc2-8e9d-c7b5c328db48', isRollBackToEmbedded: false, - message: '"fix bug" (2 months ago by quintest113)', + message: `"fix bug" (${format('2023-06-23T23:37:10.004Z', 'en_US')} by quintest113)`, platforms: 'android, ios', runtimeVersion: 'exposdk:48.0.0', }, From 78b75c6224f269b67fc1159836f3fabdc09cd9c5 Mon Sep 17 00:00:00 2001 From: Kadi Kraman Date: Mon, 25 Sep 2023 16:54:23 +0100 Subject: [PATCH 045/105] [eas-cli] [eas-json] [ENG-10069] add support for bun (#2055) * Update eas-build-job dependency * Add bun to eas-cli * Add bun to eas-json * Add changelog * Use correct PR in changelog * Update packages/eas-json/schema/eas.schema.json Co-authored-by: Szymon Dziedzic * Update gql schema --------- Co-authored-by: Szymon Dziedzic --- CHANGELOG.md | 1 + packages/eas-cli/graphql.schema.json | 520 +++++++++++++++--- packages/eas-cli/package.json | 2 +- .../eas-cli/src/build/android/prepareJob.ts | 1 + packages/eas-cli/src/build/ios/prepareJob.ts | 1 + packages/eas-cli/src/graphql/generated.ts | 74 ++- packages/eas-json/schema/eas.schema.json | 12 +- packages/eas-json/src/build/schema.ts | 1 + packages/eas-json/src/build/types.ts | 1 + yarn.lock | 8 + 10 files changed, 541 insertions(+), 80 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 981e17b2bb..85fb25a39f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features - Update: expose expo cli `--dev` flag as an argument. ([#2050](https://github.com/expo/eas-cli/pull/2050) by [@nderscore](https://github.com/nderscore)) +- Support `bun` option in eas.json. ([#2055](https://github.com/expo/eas-cli/pull/2055) by [@kadikraman](https://github.com/kadikraman)) ### πŸ› Bug fixes diff --git a/packages/eas-cli/graphql.schema.json b/packages/eas-cli/graphql.schema.json index 9ec4915284..82cd35c678 100644 --- a/packages/eas-cli/graphql.schema.json +++ b/packages/eas-cli/graphql.schema.json @@ -5028,6 +5028,18 @@ "description": null, "fields": null, "inputFields": [ + { + "name": "bun", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "env", "description": null, @@ -15089,6 +15101,18 @@ "name": "BuildError", "description": null, "fields": [ + { + "name": "buildPhase", + "description": null, + "args": [], + "type": { + "kind": "ENUM", + "name": "BuildPhase", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "docsUrl", "description": null, @@ -16892,6 +16916,257 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "ENUM", + "name": "BuildPhase", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "BUILDER_INFO", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CLEAN_UP_CREDENTIALS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "COMPLETE_BUILD", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CONFIGURE_EXPO_UPDATES", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CONFIGURE_XCODE_PROJECT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CUSTOM", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DOWNLOAD_APPLICATION_ARCHIVE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "EAS_BUILD_INTERNAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FAIL_BUILD", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FIX_GRADLEW", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INSTALL_CUSTOM_TOOLS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INSTALL_DEPENDENCIES", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INSTALL_PODS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ON_BUILD_CANCEL_HOOK", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ON_BUILD_COMPLETE_HOOK", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ON_BUILD_ERROR_HOOK", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ON_BUILD_SUCCESS_HOOK", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PARSE_CUSTOM_WORKFLOW_CONFIG", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "POST_INSTALL_HOOK", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PREBUILD", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PREPARE_ARTIFACTS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PREPARE_CREDENTIALS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PREPARE_PROJECT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRE_INSTALL_HOOK", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRE_UPLOAD_ARTIFACTS_HOOK", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "QUEUE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "READ_APP_CONFIG", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "READ_PACKAGE_JSON", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RESTORE_CACHE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RUN_EXPO_DOCTOR", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RUN_FASTLANE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RUN_GRADLEW", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SAVE_CACHE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SET_UP_BUILD_ENVIRONMENT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SPIN_UP_BUILDER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "START_BUILD", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNKNOWN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UPLOAD_APPLICATION_ARCHIVE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UPLOAD_ARTIFACTS", + "description": null, + "isDeprecated": true, + "deprecationReason": "No longer supported" + }, + { + "name": "UPLOAD_BUILD_ARTIFACTS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, { "kind": "OBJECT", "name": "BuildPlanCreditThresholdExceededMetadata", @@ -25053,6 +25328,18 @@ "description": null, "fields": null, "inputFields": [ + { + "name": "bun", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "bundler", "description": null, @@ -30291,6 +30578,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "userAppPins", + "description": "Mutations that create, update, and delete pinned apps", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "UserAppPinMutation", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "userInvitation", "description": "Mutations that create, delete, and accept UserInvitations", @@ -31686,6 +31989,30 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "pinnedApps", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "App", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "primaryAccount", "description": "Associated accounts", @@ -31803,30 +32130,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "websiteNotifications", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Notification", - "ofType": null - } - } - } - }, - "isDeprecated": true, - "deprecationReason": "No longer supported" - }, { "name": "websiteNotificationsPaginated", "description": null, @@ -37220,6 +37523,30 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "pinnedApps", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "App", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "primaryAccount", "description": "Associated accounts", @@ -37361,30 +37688,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "websiteNotifications", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Notification", - "ofType": null - } - } - } - }, - "isDeprecated": true, - "deprecationReason": "No longer supported" - }, { "name": "websiteNotificationsPaginated", "description": null, @@ -37960,6 +38263,30 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "pinnedApps", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "App", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "primaryAccount", "description": "Associated accounts", @@ -38077,30 +38404,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "websiteNotifications", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Notification", - "ofType": null - } - } - } - }, - "isDeprecated": true, - "deprecationReason": "No longer supported" - }, { "name": "websiteNotificationsPaginated", "description": null, @@ -38519,6 +38822,79 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "OBJECT", + "name": "UserAppPinMutation", + "description": null, + "fields": [ + { + "name": "pinApp", + "description": null, + "args": [ + { + "name": "appId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "unpinApp", + "description": null, + "args": [ + { + "name": "appId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "INPUT_OBJECT", "name": "UserDataInput", diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index 01abd526ae..6f8e1feb93 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -13,7 +13,7 @@ "@expo/config": "8.1.2", "@expo/config-plugins": "7.2.4", "@expo/config-types": "49.0.0", - "@expo/eas-build-job": "1.0.39", + "@expo/eas-build-job": "1.0.43", "@expo/eas-json": "5.2.0", "@expo/json-file": "8.2.37", "@expo/multipart-body-parser": "1.1.0", diff --git a/packages/eas-cli/src/build/android/prepareJob.ts b/packages/eas-cli/src/build/android/prepareJob.ts index 91e15e5480..eebb7cb3d7 100644 --- a/packages/eas-cli/src/build/android/prepareJob.ts +++ b/packages/eas-cli/src/build/android/prepareJob.ts @@ -67,6 +67,7 @@ export async function prepareJobAsync( image: buildProfile.image, node: buildProfile.node, pnpm: buildProfile.pnpm, + bun: buildProfile.bun, yarn: buildProfile.yarn, ndk: buildProfile.ndk, expoCli: buildProfile.expoCli, diff --git a/packages/eas-cli/src/build/ios/prepareJob.ts b/packages/eas-cli/src/build/ios/prepareJob.ts index 8f7f622120..724db17767 100644 --- a/packages/eas-cli/src/build/ios/prepareJob.ts +++ b/packages/eas-cli/src/build/ios/prepareJob.ts @@ -59,6 +59,7 @@ export async function prepareJobAsync( image: buildProfile.image, node: buildProfile.node, pnpm: buildProfile.pnpm, + bun: buildProfile.bun, yarn: buildProfile.yarn, bundler: buildProfile.bundler, cocoapods: buildProfile.cocoapods, diff --git a/packages/eas-cli/src/graphql/generated.ts b/packages/eas-cli/src/graphql/generated.ts index b5ecb2daca..271b32a2cd 100644 --- a/packages/eas-cli/src/graphql/generated.ts +++ b/packages/eas-cli/src/graphql/generated.ts @@ -809,6 +809,7 @@ export enum AndroidBuildType { } export type AndroidBuilderEnvironmentInput = { + bun?: InputMaybe; env?: InputMaybe; expoCli?: InputMaybe; image?: InputMaybe; @@ -2179,6 +2180,7 @@ export enum BuildCredentialsSource { export type BuildError = { __typename?: 'BuildError'; + buildPhase?: Maybe; docsUrl?: Maybe; errorCode: Scalars['String']; message: Scalars['String']; @@ -2433,6 +2435,50 @@ export type BuildParamsInput = { sdkVersion?: InputMaybe; }; +export enum BuildPhase { + BuilderInfo = 'BUILDER_INFO', + CleanUpCredentials = 'CLEAN_UP_CREDENTIALS', + CompleteBuild = 'COMPLETE_BUILD', + ConfigureExpoUpdates = 'CONFIGURE_EXPO_UPDATES', + ConfigureXcodeProject = 'CONFIGURE_XCODE_PROJECT', + Custom = 'CUSTOM', + DownloadApplicationArchive = 'DOWNLOAD_APPLICATION_ARCHIVE', + EasBuildInternal = 'EAS_BUILD_INTERNAL', + FailBuild = 'FAIL_BUILD', + FixGradlew = 'FIX_GRADLEW', + InstallCustomTools = 'INSTALL_CUSTOM_TOOLS', + InstallDependencies = 'INSTALL_DEPENDENCIES', + InstallPods = 'INSTALL_PODS', + OnBuildCancelHook = 'ON_BUILD_CANCEL_HOOK', + OnBuildCompleteHook = 'ON_BUILD_COMPLETE_HOOK', + OnBuildErrorHook = 'ON_BUILD_ERROR_HOOK', + OnBuildSuccessHook = 'ON_BUILD_SUCCESS_HOOK', + ParseCustomWorkflowConfig = 'PARSE_CUSTOM_WORKFLOW_CONFIG', + PostInstallHook = 'POST_INSTALL_HOOK', + Prebuild = 'PREBUILD', + PrepareArtifacts = 'PREPARE_ARTIFACTS', + PrepareCredentials = 'PREPARE_CREDENTIALS', + PrepareProject = 'PREPARE_PROJECT', + PreInstallHook = 'PRE_INSTALL_HOOK', + PreUploadArtifactsHook = 'PRE_UPLOAD_ARTIFACTS_HOOK', + Queue = 'QUEUE', + ReadAppConfig = 'READ_APP_CONFIG', + ReadPackageJson = 'READ_PACKAGE_JSON', + RestoreCache = 'RESTORE_CACHE', + RunExpoDoctor = 'RUN_EXPO_DOCTOR', + RunFastlane = 'RUN_FASTLANE', + RunGradlew = 'RUN_GRADLEW', + SaveCache = 'SAVE_CACHE', + SetUpBuildEnvironment = 'SET_UP_BUILD_ENVIRONMENT', + SpinUpBuilder = 'SPIN_UP_BUILDER', + StartBuild = 'START_BUILD', + Unknown = 'UNKNOWN', + UploadApplicationArchive = 'UPLOAD_APPLICATION_ARCHIVE', + /** @deprecated No longer supported */ + UploadArtifacts = 'UPLOAD_ARTIFACTS', + UploadBuildArtifacts = 'UPLOAD_BUILD_ARTIFACTS' +} + export type BuildPlanCreditThresholdExceededMetadata = { __typename?: 'BuildPlanCreditThresholdExceededMetadata'; account: Account; @@ -3618,6 +3664,7 @@ export enum IosBuildType { } export type IosBuilderEnvironmentInput = { + bun?: InputMaybe; bundler?: InputMaybe; cocoapods?: InputMaybe; env?: InputMaybe; @@ -4322,6 +4369,8 @@ export type RootMutation = { updateBranch: UpdateBranchMutation; updateChannel: UpdateChannelMutation; uploadSession: UploadSession; + /** Mutations that create, update, and delete pinned apps */ + userAppPins: UserAppPinMutation; /** Mutations that create, delete, and accept UserInvitations */ userInvitation: UserInvitationMutation; /** Mutations that create, delete, update Webhooks */ @@ -4536,6 +4585,7 @@ export type SsoUser = Actor & UserActor & { /** @deprecated No longer supported */ location?: Maybe; notificationSubscriptions: Array; + pinnedApps: Array; /** Associated accounts */ primaryAccount: Account; profilePhoto: Scalars['String']; @@ -4544,8 +4594,6 @@ export type SsoUser = Actor & UserActor & { /** @deprecated No longer supported */ twitterUsername?: Maybe; username: Scalars['String']; - /** @deprecated No longer supported */ - websiteNotifications: Array; websiteNotificationsPaginated: WebsiteNotificationsConnection; }; @@ -5323,6 +5371,7 @@ export type User = Actor & UserActor & { notificationSubscriptions: Array; /** Pending UserInvitations for this user. Only resolves for the viewer. */ pendingUserInvitations: Array; + pinnedApps: Array; /** Associated accounts */ primaryAccount: Account; profilePhoto: Scalars['String']; @@ -5333,8 +5382,6 @@ export type User = Actor & UserActor & { /** @deprecated No longer supported */ twitterUsername?: Maybe; username: Scalars['String']; - /** @deprecated No longer supported */ - websiteNotifications: Array; websiteNotificationsPaginated: WebsiteNotificationsConnection; }; @@ -5427,6 +5474,7 @@ export type UserActor = { /** @deprecated No longer supported */ location?: Maybe; notificationSubscriptions: Array; + pinnedApps: Array; /** Associated accounts */ primaryAccount: Account; profilePhoto: Scalars['String']; @@ -5435,8 +5483,6 @@ export type UserActor = { /** @deprecated No longer supported */ twitterUsername?: Maybe; username: Scalars['String']; - /** @deprecated No longer supported */ - websiteNotifications: Array; websiteNotificationsPaginated: WebsiteNotificationsConnection; }; @@ -5548,6 +5594,22 @@ export type UserActorQueryByUsernameArgs = { username: Scalars['String']; }; +export type UserAppPinMutation = { + __typename?: 'UserAppPinMutation'; + pinApp: Scalars['ID']; + unpinApp?: Maybe; +}; + + +export type UserAppPinMutationPinAppArgs = { + appId: Scalars['ID']; +}; + + +export type UserAppPinMutationUnpinAppArgs = { + appId: Scalars['ID']; +}; + export type UserDataInput = { email?: InputMaybe; firstName?: InputMaybe; diff --git a/packages/eas-json/schema/eas.schema.json b/packages/eas-json/schema/eas.schema.json index 856e275e0e..d0af64ebda 100644 --- a/packages/eas-json/schema/eas.schema.json +++ b/packages/eas-json/schema/eas.schema.json @@ -169,6 +169,11 @@ "description": "The version of pnpm to use for the build. See: https://www.npmjs.com/package/pnpm", "markdownDescription": "The exact version of [pnpm](https://www.npmjs.com/package/pnpm) to use for the build." }, + "bun": { + "type": "string", + "description": "The version of Bun to use for the build. See: https://bun.sh/", + "markdownDescription": "The exact version of [Bun](https://bun.sh/) to use for the build." + }, "expoCli": { "type": "string", "description": "The version of `expo-cli` used to `prebuild` your app.", @@ -415,7 +420,12 @@ "default": "default", "anyOf": [ { - "enum": ["default", "medium", "large", "m-medium"] + "enum": [ + "default", + "medium", + "large", + "m-medium" + ] }, { "type": "string" diff --git a/packages/eas-json/src/build/schema.ts b/packages/eas-json/src/build/schema.ts index efb3a94c82..e7b2558dfe 100644 --- a/packages/eas-json/src/build/schema.ts +++ b/packages/eas-json/src/build/schema.ts @@ -40,6 +40,7 @@ const CommonBuildProfileSchema = Joi.object({ env: Joi.object().pattern(Joi.string(), Joi.string().empty(null)), node: Joi.string().empty(null).custom(semverCheck), pnpm: Joi.string().empty(null).custom(semverCheck), + bun: Joi.string().empty(null).custom(semverCheck), yarn: Joi.string().empty(null).custom(semverCheck), expoCli: Joi.string().empty(null).custom(semverCheck), diff --git a/packages/eas-json/src/build/types.ts b/packages/eas-json/src/build/types.ts index c0589a52fe..60f503a3cf 100644 --- a/packages/eas-json/src/build/types.ts +++ b/packages/eas-json/src/build/types.ts @@ -45,6 +45,7 @@ export interface CommonBuildProfile { env?: Record; node?: string; pnpm?: string; + bun?: string; yarn?: string; expoCli?: string; diff --git a/yarn.lock b/yarn.lock index 83298891b6..01c38de545 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1403,6 +1403,14 @@ joi "^17.9.2" semver "^7.5.4" +"@expo/eas-build-job@1.0.43": + version "1.0.43" + resolved "https://registry.yarnpkg.com/@expo/eas-build-job/-/eas-build-job-1.0.43.tgz#e331b5039372c31b15aedbadc229efee3dcaefba" + integrity sha512-LMOoDIEax31uGBGux6/ocbCjUbWK3cUHuCxrsYlU+bvba4pGifegYWt2YQ/HC2477paq+K69IGjOUCHvNWG6Yg== + dependencies: + joi "^17.9.2" + semver "^7.5.4" + "@expo/image-utils@0.3.22": version "0.3.22" resolved "https://registry.yarnpkg.com/@expo/image-utils/-/image-utils-0.3.22.tgz#3a45fb2e268d20fcc761c87bca3aca7fd8e24260" From a7e88bd7cb155a9e51293d0cc3aa64ff7e36c64b Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Mon, 25 Sep 2023 18:27:06 +0200 Subject: [PATCH 046/105] upgrade eas-cli-local-build-plugin to 1.0.44 --- packages/eas-cli/src/build/local.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eas-cli/src/build/local.ts b/packages/eas-cli/src/build/local.ts index ccc016a1be..18f1ebbef6 100644 --- a/packages/eas-cli/src/build/local.ts +++ b/packages/eas-cli/src/build/local.ts @@ -6,7 +6,7 @@ import semver from 'semver'; import { ora } from '../ora'; const PLUGIN_PACKAGE_NAME = 'eas-cli-local-build-plugin'; -const PLUGIN_PACKAGE_VERSION = '1.0.42'; +const PLUGIN_PACKAGE_VERSION = '1.0.44'; export enum LocalBuildMode { /** From 5bdd46a2a9c339016f023e8c7579dc65b4b65c3c Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Mon, 25 Sep 2023 18:27:59 +0200 Subject: [PATCH 047/105] v5.3.0 --- lerna.json | 2 +- packages/eas-cli/README.md | 115 +++++++++++++++++---------------- packages/eas-cli/package.json | 4 +- packages/eas-json/package.json | 2 +- 4 files changed, 62 insertions(+), 61 deletions(-) diff --git a/lerna.json b/lerna.json index fb0ed6b9a1..c0fccf3a59 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "npmClient": "yarn", "useWorkspaces": true, - "version": "5.2.0", + "version": "5.3.0", "$schema": "node_modules/lerna/schemas/lerna-schema.json" } diff --git a/packages/eas-cli/README.md b/packages/eas-cli/README.md index 9b394e66ab..5f9bc58388 100644 --- a/packages/eas-cli/README.md +++ b/packages/eas-cli/README.md @@ -133,7 +133,7 @@ ALIASES $ eas login ``` -_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/account/login.ts)_ +_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/account/login.ts)_ ## `eas account:logout` @@ -150,7 +150,7 @@ ALIASES $ eas logout ``` -_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/account/logout.ts)_ +_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/account/logout.ts)_ ## `eas account:view` @@ -167,7 +167,7 @@ ALIASES $ eas whoami ``` -_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/account/view.ts)_ +_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/account/view.ts)_ ## `eas analytics [STATUS]` @@ -181,7 +181,7 @@ DESCRIPTION display or change analytics settings ``` -_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/analytics.ts)_ +_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/analytics.ts)_ ## `eas autocomplete [SHELL]` @@ -231,7 +231,7 @@ DESCRIPTION create a branch ``` -_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/branch/create.ts)_ +_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/branch/create.ts)_ ## `eas branch:delete [NAME]` @@ -252,7 +252,7 @@ DESCRIPTION delete a branch ``` -_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/branch/delete.ts)_ +_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/branch/delete.ts)_ ## `eas branch:list` @@ -272,7 +272,7 @@ DESCRIPTION list all branches ``` -_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/branch/list.ts)_ +_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/branch/list.ts)_ ## `eas branch:rename` @@ -292,7 +292,7 @@ DESCRIPTION rename a branch ``` -_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/branch/rename.ts)_ +_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/branch/rename.ts)_ ## `eas branch:view [NAME]` @@ -315,7 +315,7 @@ DESCRIPTION view a branch ``` -_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/branch/view.ts)_ +_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/branch/view.ts)_ ## `eas build` @@ -345,7 +345,7 @@ DESCRIPTION start a build ``` -_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/index.ts)_ +_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/index.ts)_ ## `eas build:cancel [BUILD_ID]` @@ -362,7 +362,7 @@ DESCRIPTION cancel a build ``` -_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/cancel.ts)_ +_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/cancel.ts)_ ## `eas build:configure` @@ -379,7 +379,7 @@ DESCRIPTION configure the project to support EAS Build ``` -_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/configure.ts)_ +_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/configure.ts)_ ## `eas build:inspect` @@ -414,7 +414,7 @@ DESCRIPTION inspect the state of the project at specific build stages, useful for troubleshooting ``` -_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/inspect.ts)_ +_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/inspect.ts)_ ## `eas build:list` @@ -452,7 +452,7 @@ DESCRIPTION list all builds for your project ``` -_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/list.ts)_ +_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/list.ts)_ ## `eas build:resign` @@ -478,7 +478,7 @@ DESCRIPTION re-sign a build archive ``` -_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/resign.ts)_ +_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/resign.ts)_ ## `eas build:run` @@ -502,7 +502,7 @@ DESCRIPTION run simulator/emulator builds from eas-cli ``` -_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/run.ts)_ +_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/run.ts)_ ## `eas build:submit` @@ -551,7 +551,7 @@ DESCRIPTION get the latest version from EAS servers ``` -_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/version/get.ts)_ +_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/version/get.ts)_ ## `eas build:version:set` @@ -570,7 +570,7 @@ DESCRIPTION update version of an app ``` -_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/version/set.ts)_ +_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/version/set.ts)_ ## `eas build:version:sync` @@ -589,7 +589,7 @@ DESCRIPTION update a version in native code with a value stored on EAS servers ``` -_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/version/sync.ts)_ +_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/version/sync.ts)_ ## `eas build:view [BUILD_ID]` @@ -606,7 +606,7 @@ DESCRIPTION view a build for your project ``` -_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/build/view.ts)_ +_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/view.ts)_ ## `eas channel:create [NAME]` @@ -627,7 +627,7 @@ DESCRIPTION create a channel ``` -_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/channel/create.ts)_ +_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/channel/create.ts)_ ## `eas channel:edit [NAME]` @@ -649,7 +649,7 @@ DESCRIPTION point a channel at a new branch ``` -_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/channel/edit.ts)_ +_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/channel/edit.ts)_ ## `eas channel:list` @@ -669,7 +669,7 @@ DESCRIPTION list all channels ``` -_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/channel/list.ts)_ +_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/channel/list.ts)_ ## `eas channel:rollout [CHANNEL]` @@ -701,7 +701,7 @@ DESCRIPTION Roll a new branch out on a channel incrementally. ``` -_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/channel/rollout.ts)_ +_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/channel/rollout.ts)_ ## `eas channel:view [NAME]` @@ -724,7 +724,7 @@ DESCRIPTION view a channel ``` -_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/channel/view.ts)_ +_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/channel/view.ts)_ ## `eas config` @@ -745,7 +745,7 @@ DESCRIPTION display project configuration (app.json + eas.json) ``` -_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/config.ts)_ +_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/config.ts)_ ## `eas credentials` @@ -762,7 +762,7 @@ DESCRIPTION manage credentials ``` -_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/credentials.ts)_ +_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/credentials.ts)_ ## `eas device:create` @@ -776,7 +776,7 @@ DESCRIPTION register new Apple Devices to use for internal distribution ``` -_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/device/create.ts)_ +_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/device/create.ts)_ ## `eas device:delete` @@ -796,7 +796,7 @@ DESCRIPTION remove a registered device from your account ``` -_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/device/delete.ts)_ +_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/device/delete.ts)_ ## `eas device:list` @@ -817,7 +817,7 @@ DESCRIPTION list all registered devices for your account ``` -_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/device/list.ts)_ +_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/device/list.ts)_ ## `eas device:rename` @@ -838,7 +838,7 @@ DESCRIPTION rename a registered device ``` -_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/device/rename.ts)_ +_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/device/rename.ts)_ ## `eas device:view [UDID]` @@ -852,7 +852,7 @@ DESCRIPTION view a device for your project ``` -_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/device/view.ts)_ +_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/device/view.ts)_ ## `eas diagnostics` @@ -866,7 +866,7 @@ DESCRIPTION display environment info ``` -_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/diagnostics.ts)_ +_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/diagnostics.ts)_ ## `eas help [COMMAND]` @@ -954,7 +954,7 @@ DESCRIPTION validate the local store configuration ``` -_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/metadata/lint.ts)_ +_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/metadata/lint.ts)_ ## `eas metadata:pull` @@ -971,7 +971,7 @@ DESCRIPTION generate the local store configuration from the app stores ``` -_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/metadata/pull.ts)_ +_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/metadata/pull.ts)_ ## `eas metadata:push` @@ -988,7 +988,7 @@ DESCRIPTION sync the local store configuration to the app stores ``` -_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/metadata/push.ts)_ +_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/metadata/push.ts)_ ## `eas open` @@ -1002,7 +1002,7 @@ DESCRIPTION open the project page in a web browser ``` -_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/open.ts)_ +_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/open.ts)_ ## `eas project:info` @@ -1016,7 +1016,7 @@ DESCRIPTION information about the current project ``` -_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/project/info.ts)_ +_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/project/info.ts)_ ## `eas project:init` @@ -1038,7 +1038,7 @@ ALIASES $ eas init ``` -_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/project/init.ts)_ +_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/project/init.ts)_ ## `eas secret:create` @@ -1061,7 +1061,7 @@ DESCRIPTION create an environment secret on the current project or owner account ``` -_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/secret/create.ts)_ +_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/secret/create.ts)_ ## `eas secret:delete` @@ -1079,7 +1079,7 @@ DESCRIPTION delete an environment secret by ID ``` -_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/secret/delete.ts)_ +_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/secret/delete.ts)_ ## `eas secret:list` @@ -1093,7 +1093,7 @@ DESCRIPTION list environment secrets available for your current app ``` -_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/secret/list.ts)_ +_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/secret/list.ts)_ ## `eas secret:push` @@ -1113,7 +1113,7 @@ DESCRIPTION read environment secrets from env file and store on the server ``` -_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/secret/push.ts)_ +_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/secret/push.ts)_ ## `eas submit` @@ -1143,7 +1143,7 @@ ALIASES $ eas build:submit ``` -_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/submit.ts)_ +_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/submit.ts)_ ## `eas update` @@ -1152,8 +1152,8 @@ publish an update group ``` USAGE $ eas update [--branch ] [--channel ] [-m ] [--republish | --input-dir | - --skip-bundler] [--group | | ] [--clear-cache] [-p android|ios|all] [--auto] [--private-key-path ] - [--json --non-interactive] + --skip-bundler] [--group | | ] [--clear-cache] [-p android|ios|all] [--dev] [--auto] [--private-key-path + ] [--json --non-interactive] FLAGS -m, --message= A short message describing the update @@ -1162,6 +1162,7 @@ FLAGS --branch= Branch to publish the update group on --channel= Channel that the published update should affect --clear-cache Clear the bundler cache before publishing + --dev Publish a development bundle --group= Update group to republish (deprecated, see republish command) --input-dir= [default: dist] Location of the bundle --json Enable JSON output, non-JSON messages will be printed to stderr. @@ -1176,7 +1177,7 @@ DESCRIPTION publish an update group ``` -_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/update/index.ts)_ +_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/update/index.ts)_ ## `eas update:configure` @@ -1194,7 +1195,7 @@ DESCRIPTION configure the project to support EAS Update ``` -_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/update/configure.ts)_ +_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/update/configure.ts)_ ## `eas update:delete GROUPID` @@ -1215,7 +1216,7 @@ DESCRIPTION delete all the updates in an update group ``` -_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/update/delete.ts)_ +_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/update/delete.ts)_ ## `eas update:list` @@ -1237,7 +1238,7 @@ DESCRIPTION view the recent updates ``` -_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/update/list.ts)_ +_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/update/list.ts)_ ## `eas update:republish` @@ -1264,7 +1265,7 @@ DESCRIPTION roll back to an existing update ``` -_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/update/republish.ts)_ +_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/update/republish.ts)_ ## `eas update:view GROUPID` @@ -1284,7 +1285,7 @@ DESCRIPTION update group details ``` -_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/update/view.ts)_ +_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/update/view.ts)_ ## `eas webhook:create` @@ -1305,7 +1306,7 @@ DESCRIPTION create a webhook ``` -_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/webhook/create.ts)_ +_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/webhook/create.ts)_ ## `eas webhook:delete [ID]` @@ -1325,7 +1326,7 @@ DESCRIPTION delete a webhook ``` -_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/webhook/delete.ts)_ +_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/webhook/delete.ts)_ ## `eas webhook:list` @@ -1343,7 +1344,7 @@ DESCRIPTION list webhooks ``` -_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/webhook/list.ts)_ +_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/webhook/list.ts)_ ## `eas webhook:update` @@ -1365,7 +1366,7 @@ DESCRIPTION update a webhook ``` -_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/webhook/update.ts)_ +_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/webhook/update.ts)_ ## `eas webhook:view ID` @@ -1382,7 +1383,7 @@ DESCRIPTION view a webhook ``` -_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.2.0/packages/eas-cli/src/commands/webhook/view.ts)_ +_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/webhook/view.ts)_ ## `eas whoami` diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index 6f8e1feb93..5dbfcbfbd0 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -1,7 +1,7 @@ { "name": "eas-cli", "description": "EAS command line tool", - "version": "5.2.0", + "version": "5.3.0", "author": "Expo ", "bin": { "eas": "./bin/run" @@ -14,7 +14,7 @@ "@expo/config-plugins": "7.2.4", "@expo/config-types": "49.0.0", "@expo/eas-build-job": "1.0.43", - "@expo/eas-json": "5.2.0", + "@expo/eas-json": "5.3.0", "@expo/json-file": "8.2.37", "@expo/multipart-body-parser": "1.1.0", "@expo/osascript": "2.0.33", diff --git a/packages/eas-json/package.json b/packages/eas-json/package.json index bed2542d8b..05fb718e09 100644 --- a/packages/eas-json/package.json +++ b/packages/eas-json/package.json @@ -1,7 +1,7 @@ { "name": "@expo/eas-json", "description": "A library for interacting with eas.json", - "version": "5.2.0", + "version": "5.3.0", "author": "Expo ", "bugs": "https://github.com/expo/eas-cli/issues", "dependencies": { From 04049a8d1f4f6506c5a5ff311f30b4930daad33b Mon Sep 17 00:00:00 2001 From: Expo CI Date: Mon, 25 Sep 2023 16:41:24 +0000 Subject: [PATCH 048/105] update CHANGELOG.md --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 85fb25a39f..cdd07a2afe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,14 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features +### πŸ› Bug fixes + +### 🧹 Chores + +## [5.3.0](https://github.com/expo/eas-cli/releases/tag/v5.3.0) - 2023-09-25 + +### πŸŽ‰ New features + - Update: expose expo cli `--dev` flag as an argument. ([#2050](https://github.com/expo/eas-cli/pull/2050) by [@nderscore](https://github.com/nderscore)) - Support `bun` option in eas.json. ([#2055](https://github.com/expo/eas-cli/pull/2055) by [@kadikraman](https://github.com/kadikraman)) From cc99794bbd1c074569072ee8bcf6618a1b2f5ff7 Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Thu, 28 Sep 2023 20:59:43 +0200 Subject: [PATCH 049/105] [ENG-10176][eas-json] update images info in `eas.schema.json` (#2068) --- CHANGELOG.md | 2 + packages/eas-json/schema/eas.schema.json | 100 +++++++---------------- 2 files changed, 30 insertions(+), 72 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cdd07a2afe..ab2759147f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ This is the log of notable changes to EAS CLI and related packages. ### 🧹 Chores +- Update EAS Build images description in our VSCode plugin. Add new `macos-ventura-13.6-xcode-15.0` image. ([#2068](https://github.com/expo/eas-cli/pull/2068) by [@szdziedzic](https://github.com/szdziedzic)) + ## [5.3.0](https://github.com/expo/eas-cli/releases/tag/v5.3.0) - 2023-09-25 ### πŸŽ‰ New features diff --git a/packages/eas-json/schema/eas.schema.json b/packages/eas-json/schema/eas.schema.json index d0af64ebda..0f56078dc7 100644 --- a/packages/eas-json/schema/eas.schema.json +++ b/packages/eas-json/schema/eas.schema.json @@ -24,19 +24,14 @@ "version": { "type": "string", "description": "The compatible versions of EAS CLI with this config", - "examples": [ - ">=0.54.1" - ] + "examples": [">=0.54.1"] }, "requireCommit": { "type": "boolean", "description": "If all changes required to be committed before building or submitting" }, "appVersionSource": { - "enum": [ - "local", - "remote" - ], + "enum": ["local", "remote"], "markdownDescription": "Version policy defines whether version of your app should be based on your local project or values stored on EAS servers (remote).\n\nThis is the configuration required for `eas build:version:set` and works with the `autoIncrement` options per platform.", "markdownEnumDescriptions": [ "When using local, the `autoIncrement` is based on your local project values.", @@ -107,10 +102,7 @@ "description": "The name of the build profile that the current one should inherit values from. This value can't be specified per platform." }, "credentialsSource": { - "enum": [ - "remote", - "local" - ], + "enum": ["remote", "local"], "description": "The source of credentials used to sign build artifacts. Learn more: https://docs.expo.dev/app-signing/local-credentials/", "markdownDescription": "The source of credentials used to sign build artifacts.\n\n- `remote` - if you want to use the credentials managed by EAS.\n- `local` - if you want to provide your own `credentials.json` file. [learn more](https://docs.expo.dev/app-signing/local-credentials/)", "default": "remote", @@ -132,10 +124,7 @@ "markdownDescription": "The channel is a name we can give to multiple builds to identify them easily. [Learn more](https://docs.expo.dev/eas-update/how-eas-update-works/)\n\n**This field only applies to the EAS Update service**, if your project still uses Classic Updates then use the [releaseChannel](https://docs.expo.dev/build-reference/eas-json/#releasechannel) field instead." }, "distribution": { - "enum": [ - "internal", - "store" - ], + "enum": ["internal", "store"], "description": "The method of distributing your app. Learn more: https://docs.expo.dev/build/internal-distribution/", "markdownDescription": "The method of distributing your app.\n\n- `internal` - with this option you'll be able to share your build URLs with anyone, and they will be able to install the builds to their devices straight from the Expo website. When using `internal`, make sure the build produces an APK or IPA file. Otherwise, the shareable URL will be useless. [Learn more](https://docs.expo.dev/build/internal-distribution/)\n- `store` - produces builds for store uploads, your build URLs won't be shareable.", "markdownEnumDescriptions": [ @@ -214,11 +203,7 @@ "default": "default", "anyOf": [ { - "enum": [ - "default", - "medium", - "large" - ] + "enum": ["default", "medium", "large"] }, { "type": "string" @@ -277,11 +262,7 @@ "default": "default", "anyOf": [ { - "enum": [ - "default", - "medium", - "large" - ] + "enum": ["default", "medium", "large"] }, { "type": "string" @@ -293,12 +274,7 @@ "description": "The version of Android NDK." }, "autoIncrement": { - "enum": [ - false, - true, - "versionCode", - "version" - ], + "enum": [false, true, "versionCode", "version"], "description": "Controls how EAS CLI bumps your application build version.", "markdownDescription": "Controls how EAS CLI bumps your application build version.\n\nAllowed values:\n- `\"version\"` - bumps the patch of `expo.version` (e.g. `1.2.3` -> `1.2.4`).\n- `\"versionCode\"` (or `true`) - bumps `expo.android.versionCode` (e.g. `3` -> `4`).\n- `false` - versions won't be bumped automatically (default)\n\nIn the case of a bare project, it also updates versions in native code. `expo.version` corresponds to `versionName` and `expo.android.versionCode` to `versionCode` in the `build.gradle`. Google Play uses these values to identify the app build, `versionName` is the version visible to users, whereas `versionCode` defines the version number. The combination of those needs to be unique, so you can bump either of them.\n\nThis feature is not intended for use with dynamic configuration (app.config.js). EAS CLI will throw an error if you don't use app.json.", "default": false, @@ -310,10 +286,7 @@ ] }, "buildType": { - "enum": [ - "app-bundle", - "apk" - ], + "enum": ["app-bundle", "apk"], "description": "Type of the artifact you want to build.", "markdownDescription": "Type of the artifact you want to build. It controls what Gradle task will be used, can be overridden by `gradleCommand` or `developmentClient: true` option.\n- `app-bundle` - `:app:bundleRelease`\n- `apk` - `:app:assembleRelease`", "markdownEnumDescriptions": [ @@ -356,22 +329,14 @@ "default": false }, "enterpriseProvisioning": { - "enum": [ - "universal", - "adhoc" - ], + "enum": ["universal", "adhoc"], "markdownDescription": "Provisioning method used for `\"distribution\": \"internal\"` when you have an Apple account with Apple Developer Enterprise Program membership.\n\nYou can choose if you want to use `adhoc` or `universal` provisioning. The latter is recommended as it does not require you to register each individual device. If you don't provide this option and you still authenticate with an enterprise team, you'll be prompted which provisioning method to use.", "markdownEnumDescriptions": [ "Recommended as it does not require you to register each individual device" ] }, "autoIncrement": { - "enum": [ - false, - true, - "buildNumber", - "version" - ], + "enum": [false, true, "buildNumber", "version"], "description": "Controls how EAS CLI bumps your application build version.", "markdownDescription": "Controls how EAS CLI bumps your application build version.\n\nAllowed values:\n\n- `\"version\"` - bumps the patch of `expo.version` (e.g. `1.2.3` -> `1.2.4`).\n- `\"buildNumber\"` (or `true`) - bumps the last component of `expo.ios.buildNumber` (e.g. `1.2.3.39` -> `1.2.3.40`).\n- `false` - versions won't be bumped automatically (default)\n\nIn the case of a bare project, it also updates versions in native code. `expo.version` corresponds to `CFBundleShortVersionString` and `expo.ios.buildNumber` to `CFBundleVersion` in the `Info.plist`. The App Store is using those values to identify the app build, `CFBundleShortVersionString` is the version visible to users, whereas `CFBundleVersion` defines the build number. The combination of those needs to be unique, so you can bump either of them.\n\nThis feature is not intended for use with dynamic configuration (app.config.js). EAS CLI will throw an error if you don't use app.json.", "default": false, @@ -391,26 +356,32 @@ "enum": [ "default", "latest", + "macos-ventura-13.6-xcode-15.0", "macos-ventura-13.4-xcode-14.3.1", "macos-ventura-13.3-xcode-14.3", "macos-monterey-12.6-xcode-14.2", "macos-monterey-12.6-xcode-14.1", - "macos-monterey-12.6-xcode-14.0", - "macos-monterey-12.4-xcode-13.4", - "macos-monterey-12.3-xcode-13.3", - "macos-monterey-12.1-xcode-13.2", - "macos-big-sur-11.4-xcode-13.0", - "macos-big-sur-11.4-xcode-12.5" + "macos-monterey-12.6-xcode-14.0" ], "markdownEnumDescriptions": [ - "`macos-ventura-13.3-xcode-14.3` for Apple silicon builders, `macos-monterey-12.6-xcode-14.1` for Intel builders", - "`macos-ventura-13.4-xcode-14.3.1` for Apple silicon builders, `macos-monterey-12.6-xcode-14.2` for Intel builders", + "`macos-ventura-13.4-xcode-14.3.1`", + "`macos-ventura-13.6-xcode-15.0`", "only available for Apple silicon builders", "only available for Apple silicon builders" ] }, { - "type": "string" + "deprecated": true, + "enum": [ + "macos-monterey-12.4-xcode-13.4", + "macos-monterey-12.3-xcode-13.3", + "macos-monterey-12.1-xcode-13.2" + ], + "markdownEnumDescriptions": [ + "This image is deprecated, please use one of the more recent images instead.", + "This image is deprecated, please use one of the more recent images instead.", + "This image is deprecated, please use one of the more recent images instead." + ] } ] }, @@ -420,12 +391,7 @@ "default": "default", "anyOf": [ { - "enum": [ - "default", - "medium", - "large", - "m-medium" - ] + "enum": ["default", "medium", "large", "m-medium"] }, { "type": "string" @@ -505,12 +471,7 @@ "markdownDescription": "Path to the JSON file with service account key used to authenticate with Google Play. [Learn more](https://expo.fyi/creating-google-service-account)" }, "track": { - "enum": [ - "beta", - "alpha", - "internal", - "production" - ], + "enum": ["beta", "alpha", "internal", "production"], "description": "The track of the application to use. Learn more: https://support.google.com/googleplay/android-developer/answer/9859348?hl=en", "markdownDescription": "The [track of the application](https://support.google.com/googleplay/android-developer/answer/9859348?hl=en) to use.", "markdownEnumDescriptions": [ @@ -521,12 +482,7 @@ ] }, "releaseStatus": { - "enum": [ - "draft", - "inProgress", - "halted", - "completed" - ], + "enum": ["draft", "inProgress", "halted", "completed"], "description": "The status of a release. Learn more: https://developers.google.com/android-publisher/api-ref/rest/v3/edits.tracks", "markdownDescription": "The status of a release. [Learn more](https://developers.google.com/android-publisher/api-ref/rest/v3/edits.tracks)", "enumDescriptions": [ From 056d0b1017e6f6fc89769d2f6eb2673a4447ad50 Mon Sep 17 00:00:00 2001 From: Brent Vatne Date: Thu, 28 Sep 2023 12:22:45 -0700 Subject: [PATCH 050/105] v5.3.1 --- lerna.json | 2 +- packages/eas-cli/README.md | 110 ++++++++++++++++----------------- packages/eas-cli/package.json | 4 +- packages/eas-json/package.json | 2 +- 4 files changed, 59 insertions(+), 59 deletions(-) diff --git a/lerna.json b/lerna.json index c0fccf3a59..3f4f2ea552 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "npmClient": "yarn", "useWorkspaces": true, - "version": "5.3.0", + "version": "5.3.1", "$schema": "node_modules/lerna/schemas/lerna-schema.json" } diff --git a/packages/eas-cli/README.md b/packages/eas-cli/README.md index 5f9bc58388..3ec6c1774b 100644 --- a/packages/eas-cli/README.md +++ b/packages/eas-cli/README.md @@ -133,7 +133,7 @@ ALIASES $ eas login ``` -_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/account/login.ts)_ +_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/account/login.ts)_ ## `eas account:logout` @@ -150,7 +150,7 @@ ALIASES $ eas logout ``` -_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/account/logout.ts)_ +_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/account/logout.ts)_ ## `eas account:view` @@ -167,7 +167,7 @@ ALIASES $ eas whoami ``` -_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/account/view.ts)_ +_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/account/view.ts)_ ## `eas analytics [STATUS]` @@ -181,7 +181,7 @@ DESCRIPTION display or change analytics settings ``` -_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/analytics.ts)_ +_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/analytics.ts)_ ## `eas autocomplete [SHELL]` @@ -231,7 +231,7 @@ DESCRIPTION create a branch ``` -_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/branch/create.ts)_ +_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/branch/create.ts)_ ## `eas branch:delete [NAME]` @@ -252,7 +252,7 @@ DESCRIPTION delete a branch ``` -_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/branch/delete.ts)_ +_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/branch/delete.ts)_ ## `eas branch:list` @@ -272,7 +272,7 @@ DESCRIPTION list all branches ``` -_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/branch/list.ts)_ +_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/branch/list.ts)_ ## `eas branch:rename` @@ -292,7 +292,7 @@ DESCRIPTION rename a branch ``` -_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/branch/rename.ts)_ +_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/branch/rename.ts)_ ## `eas branch:view [NAME]` @@ -315,7 +315,7 @@ DESCRIPTION view a branch ``` -_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/branch/view.ts)_ +_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/branch/view.ts)_ ## `eas build` @@ -345,7 +345,7 @@ DESCRIPTION start a build ``` -_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/index.ts)_ +_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/index.ts)_ ## `eas build:cancel [BUILD_ID]` @@ -362,7 +362,7 @@ DESCRIPTION cancel a build ``` -_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/cancel.ts)_ +_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/cancel.ts)_ ## `eas build:configure` @@ -379,7 +379,7 @@ DESCRIPTION configure the project to support EAS Build ``` -_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/configure.ts)_ +_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/configure.ts)_ ## `eas build:inspect` @@ -414,7 +414,7 @@ DESCRIPTION inspect the state of the project at specific build stages, useful for troubleshooting ``` -_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/inspect.ts)_ +_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/inspect.ts)_ ## `eas build:list` @@ -452,7 +452,7 @@ DESCRIPTION list all builds for your project ``` -_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/list.ts)_ +_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/list.ts)_ ## `eas build:resign` @@ -478,7 +478,7 @@ DESCRIPTION re-sign a build archive ``` -_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/resign.ts)_ +_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/resign.ts)_ ## `eas build:run` @@ -502,7 +502,7 @@ DESCRIPTION run simulator/emulator builds from eas-cli ``` -_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/run.ts)_ +_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/run.ts)_ ## `eas build:submit` @@ -551,7 +551,7 @@ DESCRIPTION get the latest version from EAS servers ``` -_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/version/get.ts)_ +_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/version/get.ts)_ ## `eas build:version:set` @@ -570,7 +570,7 @@ DESCRIPTION update version of an app ``` -_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/version/set.ts)_ +_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/version/set.ts)_ ## `eas build:version:sync` @@ -589,7 +589,7 @@ DESCRIPTION update a version in native code with a value stored on EAS servers ``` -_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/version/sync.ts)_ +_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/version/sync.ts)_ ## `eas build:view [BUILD_ID]` @@ -606,7 +606,7 @@ DESCRIPTION view a build for your project ``` -_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/build/view.ts)_ +_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/view.ts)_ ## `eas channel:create [NAME]` @@ -627,7 +627,7 @@ DESCRIPTION create a channel ``` -_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/channel/create.ts)_ +_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/channel/create.ts)_ ## `eas channel:edit [NAME]` @@ -649,7 +649,7 @@ DESCRIPTION point a channel at a new branch ``` -_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/channel/edit.ts)_ +_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/channel/edit.ts)_ ## `eas channel:list` @@ -669,7 +669,7 @@ DESCRIPTION list all channels ``` -_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/channel/list.ts)_ +_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/channel/list.ts)_ ## `eas channel:rollout [CHANNEL]` @@ -701,7 +701,7 @@ DESCRIPTION Roll a new branch out on a channel incrementally. ``` -_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/channel/rollout.ts)_ +_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/channel/rollout.ts)_ ## `eas channel:view [NAME]` @@ -724,7 +724,7 @@ DESCRIPTION view a channel ``` -_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/channel/view.ts)_ +_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/channel/view.ts)_ ## `eas config` @@ -745,7 +745,7 @@ DESCRIPTION display project configuration (app.json + eas.json) ``` -_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/config.ts)_ +_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/config.ts)_ ## `eas credentials` @@ -762,7 +762,7 @@ DESCRIPTION manage credentials ``` -_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/credentials.ts)_ +_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/credentials.ts)_ ## `eas device:create` @@ -776,7 +776,7 @@ DESCRIPTION register new Apple Devices to use for internal distribution ``` -_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/device/create.ts)_ +_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/device/create.ts)_ ## `eas device:delete` @@ -796,7 +796,7 @@ DESCRIPTION remove a registered device from your account ``` -_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/device/delete.ts)_ +_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/device/delete.ts)_ ## `eas device:list` @@ -817,7 +817,7 @@ DESCRIPTION list all registered devices for your account ``` -_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/device/list.ts)_ +_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/device/list.ts)_ ## `eas device:rename` @@ -838,7 +838,7 @@ DESCRIPTION rename a registered device ``` -_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/device/rename.ts)_ +_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/device/rename.ts)_ ## `eas device:view [UDID]` @@ -852,7 +852,7 @@ DESCRIPTION view a device for your project ``` -_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/device/view.ts)_ +_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/device/view.ts)_ ## `eas diagnostics` @@ -866,7 +866,7 @@ DESCRIPTION display environment info ``` -_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/diagnostics.ts)_ +_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/diagnostics.ts)_ ## `eas help [COMMAND]` @@ -954,7 +954,7 @@ DESCRIPTION validate the local store configuration ``` -_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/metadata/lint.ts)_ +_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/metadata/lint.ts)_ ## `eas metadata:pull` @@ -971,7 +971,7 @@ DESCRIPTION generate the local store configuration from the app stores ``` -_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/metadata/pull.ts)_ +_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/metadata/pull.ts)_ ## `eas metadata:push` @@ -988,7 +988,7 @@ DESCRIPTION sync the local store configuration to the app stores ``` -_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/metadata/push.ts)_ +_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/metadata/push.ts)_ ## `eas open` @@ -1002,7 +1002,7 @@ DESCRIPTION open the project page in a web browser ``` -_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/open.ts)_ +_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/open.ts)_ ## `eas project:info` @@ -1016,7 +1016,7 @@ DESCRIPTION information about the current project ``` -_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/project/info.ts)_ +_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/project/info.ts)_ ## `eas project:init` @@ -1038,7 +1038,7 @@ ALIASES $ eas init ``` -_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/project/init.ts)_ +_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/project/init.ts)_ ## `eas secret:create` @@ -1061,7 +1061,7 @@ DESCRIPTION create an environment secret on the current project or owner account ``` -_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/secret/create.ts)_ +_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/secret/create.ts)_ ## `eas secret:delete` @@ -1079,7 +1079,7 @@ DESCRIPTION delete an environment secret by ID ``` -_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/secret/delete.ts)_ +_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/secret/delete.ts)_ ## `eas secret:list` @@ -1093,7 +1093,7 @@ DESCRIPTION list environment secrets available for your current app ``` -_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/secret/list.ts)_ +_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/secret/list.ts)_ ## `eas secret:push` @@ -1113,7 +1113,7 @@ DESCRIPTION read environment secrets from env file and store on the server ``` -_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/secret/push.ts)_ +_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/secret/push.ts)_ ## `eas submit` @@ -1143,7 +1143,7 @@ ALIASES $ eas build:submit ``` -_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/submit.ts)_ +_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/submit.ts)_ ## `eas update` @@ -1177,7 +1177,7 @@ DESCRIPTION publish an update group ``` -_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/update/index.ts)_ +_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/update/index.ts)_ ## `eas update:configure` @@ -1195,7 +1195,7 @@ DESCRIPTION configure the project to support EAS Update ``` -_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/update/configure.ts)_ +_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/update/configure.ts)_ ## `eas update:delete GROUPID` @@ -1216,7 +1216,7 @@ DESCRIPTION delete all the updates in an update group ``` -_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/update/delete.ts)_ +_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/update/delete.ts)_ ## `eas update:list` @@ -1238,7 +1238,7 @@ DESCRIPTION view the recent updates ``` -_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/update/list.ts)_ +_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/update/list.ts)_ ## `eas update:republish` @@ -1265,7 +1265,7 @@ DESCRIPTION roll back to an existing update ``` -_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/update/republish.ts)_ +_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/update/republish.ts)_ ## `eas update:view GROUPID` @@ -1285,7 +1285,7 @@ DESCRIPTION update group details ``` -_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/update/view.ts)_ +_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/update/view.ts)_ ## `eas webhook:create` @@ -1306,7 +1306,7 @@ DESCRIPTION create a webhook ``` -_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/webhook/create.ts)_ +_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/webhook/create.ts)_ ## `eas webhook:delete [ID]` @@ -1326,7 +1326,7 @@ DESCRIPTION delete a webhook ``` -_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/webhook/delete.ts)_ +_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/webhook/delete.ts)_ ## `eas webhook:list` @@ -1344,7 +1344,7 @@ DESCRIPTION list webhooks ``` -_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/webhook/list.ts)_ +_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/webhook/list.ts)_ ## `eas webhook:update` @@ -1366,7 +1366,7 @@ DESCRIPTION update a webhook ``` -_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/webhook/update.ts)_ +_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/webhook/update.ts)_ ## `eas webhook:view ID` @@ -1383,7 +1383,7 @@ DESCRIPTION view a webhook ``` -_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.3.0/packages/eas-cli/src/commands/webhook/view.ts)_ +_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/webhook/view.ts)_ ## `eas whoami` diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index 5dbfcbfbd0..27b647891a 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -1,7 +1,7 @@ { "name": "eas-cli", "description": "EAS command line tool", - "version": "5.3.0", + "version": "5.3.1", "author": "Expo ", "bin": { "eas": "./bin/run" @@ -14,7 +14,7 @@ "@expo/config-plugins": "7.2.4", "@expo/config-types": "49.0.0", "@expo/eas-build-job": "1.0.43", - "@expo/eas-json": "5.3.0", + "@expo/eas-json": "5.3.1", "@expo/json-file": "8.2.37", "@expo/multipart-body-parser": "1.1.0", "@expo/osascript": "2.0.33", diff --git a/packages/eas-json/package.json b/packages/eas-json/package.json index 05fb718e09..0065f48f40 100644 --- a/packages/eas-json/package.json +++ b/packages/eas-json/package.json @@ -1,7 +1,7 @@ { "name": "@expo/eas-json", "description": "A library for interacting with eas.json", - "version": "5.3.0", + "version": "5.3.1", "author": "Expo ", "bugs": "https://github.com/expo/eas-cli/issues", "dependencies": { From 5fb68a652b56c3887cbb8d18fe786f7b0ebdaecb Mon Sep 17 00:00:00 2001 From: Expo CI Date: Thu, 28 Sep 2023 19:31:07 +0000 Subject: [PATCH 051/105] update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab2759147f..a7c25ba45b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,10 @@ This is the log of notable changes to EAS CLI and related packages. ### 🧹 Chores +## [5.3.1](https://github.com/expo/eas-cli/releases/tag/v5.3.1) - 2023-09-28 + +### 🧹 Chores + - Update EAS Build images description in our VSCode plugin. Add new `macos-ventura-13.6-xcode-15.0` image. ([#2068](https://github.com/expo/eas-cli/pull/2068) by [@szdziedzic](https://github.com/szdziedzic)) ## [5.3.0](https://github.com/expo/eas-cli/releases/tag/v5.3.0) - 2023-09-25 From c1c9e06f76e120b55047f171043f37a98d55058f Mon Sep 17 00:00:00 2001 From: Jakov Glavina Date: Thu, 28 Sep 2023 23:44:06 +0200 Subject: [PATCH 052/105] feat: add tap to pay on iphone entitlement (#2069) --- CHANGELOG.md | 2 ++ packages/eas-cli/package.json | 2 +- .../src/credentials/ios/appstore/bundleIdCapabilities.ts | 7 +++++++ yarn.lock | 8 ++++---- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a7c25ba45b..97a5fed1ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features +- Add support for the Tap to Pay on iPhone iOS entitlement. ([#2069](https://github.com/expo/eas-cli/pull/2069) by [@fobos531](https://github.com/fobos531)) + ### πŸ› Bug fixes ### 🧹 Chores diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index 27b647891a..ae89c13aa4 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -8,7 +8,7 @@ }, "bugs": "https://github.com/expo/eas-cli/issues", "dependencies": { - "@expo/apple-utils": "1.3.1", + "@expo/apple-utils": "1.3.2", "@expo/code-signing-certificates": "0.0.5", "@expo/config": "8.1.2", "@expo/config-plugins": "7.2.4", diff --git a/packages/eas-cli/src/credentials/ios/appstore/bundleIdCapabilities.ts b/packages/eas-cli/src/credentials/ios/appstore/bundleIdCapabilities.ts index 6a17c8c2b2..b794c242a9 100644 --- a/packages/eas-cli/src/credentials/ios/appstore/bundleIdCapabilities.ts +++ b/packages/eas-cli/src/credentials/ios/appstore/bundleIdCapabilities.ts @@ -733,6 +733,13 @@ export const CapabilityMapping: CapabilityClassifier[] = [ validateOptions: validateBooleanOptions, getOptions: getBooleanOptions, }, + { + entitlement: 'com.apple.developer.proximity-reader.payment.acceptance', + name: 'Tap to Pay on iPhone', + capability: CapabilityType.TAP_TO_PAY_ON_IPHONE, + validateOptions: validateBooleanOptions, + getOptions: getBooleanOptions, + }, { entitlement: 'com.apple.developer.matter.allow-setup-payload', name: 'Matter Allow Setup Payload', diff --git a/yarn.lock b/yarn.lock index 01c38de545..145bd81824 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1329,10 +1329,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@expo/apple-utils@1.3.1": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@expo/apple-utils/-/apple-utils-1.3.1.tgz#99a2627c167af138722af9806a09a35f87115a39" - integrity sha512-ADPHXIpTWlt9tIg9yhwyuxQ6UMICWMfHgoCE1v8zzyYsa3BcKvawgkAGApYNxp2IYUKiNMqRYzViEKgq+Svk3w== +"@expo/apple-utils@1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@expo/apple-utils/-/apple-utils-1.3.2.tgz#c2c80e03bb4c310e183b109ea37bbc88cef59313" + integrity sha512-8utf2r+ka9uI1qhazBEbLzjPX0CIBvvpBHy0o4XFoLUiZDvBqGBEctduvJc49hvu/16hxVtNqGXs1U97OVKe4g== "@expo/bunyan@^4.0.0": version "4.0.0" From 480bc30468b789411c8b876c6bdfdc2d6090e677 Mon Sep 17 00:00:00 2001 From: Brent Vatne Date: Thu, 28 Sep 2023 15:01:57 -0700 Subject: [PATCH 053/105] v5.4.0 --- lerna.json | 2 +- packages/eas-cli/README.md | 110 +++++++++++++++++----------------- packages/eas-cli/package.json | 2 +- 3 files changed, 57 insertions(+), 57 deletions(-) diff --git a/lerna.json b/lerna.json index 3f4f2ea552..ec045e4530 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "npmClient": "yarn", "useWorkspaces": true, - "version": "5.3.1", + "version": "5.4.0", "$schema": "node_modules/lerna/schemas/lerna-schema.json" } diff --git a/packages/eas-cli/README.md b/packages/eas-cli/README.md index 3ec6c1774b..8194a2969f 100644 --- a/packages/eas-cli/README.md +++ b/packages/eas-cli/README.md @@ -133,7 +133,7 @@ ALIASES $ eas login ``` -_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/account/login.ts)_ +_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/account/login.ts)_ ## `eas account:logout` @@ -150,7 +150,7 @@ ALIASES $ eas logout ``` -_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/account/logout.ts)_ +_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/account/logout.ts)_ ## `eas account:view` @@ -167,7 +167,7 @@ ALIASES $ eas whoami ``` -_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/account/view.ts)_ +_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/account/view.ts)_ ## `eas analytics [STATUS]` @@ -181,7 +181,7 @@ DESCRIPTION display or change analytics settings ``` -_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/analytics.ts)_ +_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/analytics.ts)_ ## `eas autocomplete [SHELL]` @@ -231,7 +231,7 @@ DESCRIPTION create a branch ``` -_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/branch/create.ts)_ +_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/branch/create.ts)_ ## `eas branch:delete [NAME]` @@ -252,7 +252,7 @@ DESCRIPTION delete a branch ``` -_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/branch/delete.ts)_ +_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/branch/delete.ts)_ ## `eas branch:list` @@ -272,7 +272,7 @@ DESCRIPTION list all branches ``` -_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/branch/list.ts)_ +_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/branch/list.ts)_ ## `eas branch:rename` @@ -292,7 +292,7 @@ DESCRIPTION rename a branch ``` -_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/branch/rename.ts)_ +_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/branch/rename.ts)_ ## `eas branch:view [NAME]` @@ -315,7 +315,7 @@ DESCRIPTION view a branch ``` -_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/branch/view.ts)_ +_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/branch/view.ts)_ ## `eas build` @@ -345,7 +345,7 @@ DESCRIPTION start a build ``` -_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/index.ts)_ +_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/index.ts)_ ## `eas build:cancel [BUILD_ID]` @@ -362,7 +362,7 @@ DESCRIPTION cancel a build ``` -_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/cancel.ts)_ +_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/cancel.ts)_ ## `eas build:configure` @@ -379,7 +379,7 @@ DESCRIPTION configure the project to support EAS Build ``` -_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/configure.ts)_ +_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/configure.ts)_ ## `eas build:inspect` @@ -414,7 +414,7 @@ DESCRIPTION inspect the state of the project at specific build stages, useful for troubleshooting ``` -_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/inspect.ts)_ +_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/inspect.ts)_ ## `eas build:list` @@ -452,7 +452,7 @@ DESCRIPTION list all builds for your project ``` -_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/list.ts)_ +_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/list.ts)_ ## `eas build:resign` @@ -478,7 +478,7 @@ DESCRIPTION re-sign a build archive ``` -_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/resign.ts)_ +_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/resign.ts)_ ## `eas build:run` @@ -502,7 +502,7 @@ DESCRIPTION run simulator/emulator builds from eas-cli ``` -_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/run.ts)_ +_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/run.ts)_ ## `eas build:submit` @@ -551,7 +551,7 @@ DESCRIPTION get the latest version from EAS servers ``` -_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/version/get.ts)_ +_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/version/get.ts)_ ## `eas build:version:set` @@ -570,7 +570,7 @@ DESCRIPTION update version of an app ``` -_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/version/set.ts)_ +_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/version/set.ts)_ ## `eas build:version:sync` @@ -589,7 +589,7 @@ DESCRIPTION update a version in native code with a value stored on EAS servers ``` -_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/version/sync.ts)_ +_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/version/sync.ts)_ ## `eas build:view [BUILD_ID]` @@ -606,7 +606,7 @@ DESCRIPTION view a build for your project ``` -_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/build/view.ts)_ +_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/view.ts)_ ## `eas channel:create [NAME]` @@ -627,7 +627,7 @@ DESCRIPTION create a channel ``` -_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/channel/create.ts)_ +_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/channel/create.ts)_ ## `eas channel:edit [NAME]` @@ -649,7 +649,7 @@ DESCRIPTION point a channel at a new branch ``` -_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/channel/edit.ts)_ +_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/channel/edit.ts)_ ## `eas channel:list` @@ -669,7 +669,7 @@ DESCRIPTION list all channels ``` -_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/channel/list.ts)_ +_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/channel/list.ts)_ ## `eas channel:rollout [CHANNEL]` @@ -701,7 +701,7 @@ DESCRIPTION Roll a new branch out on a channel incrementally. ``` -_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/channel/rollout.ts)_ +_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/channel/rollout.ts)_ ## `eas channel:view [NAME]` @@ -724,7 +724,7 @@ DESCRIPTION view a channel ``` -_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/channel/view.ts)_ +_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/channel/view.ts)_ ## `eas config` @@ -745,7 +745,7 @@ DESCRIPTION display project configuration (app.json + eas.json) ``` -_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/config.ts)_ +_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/config.ts)_ ## `eas credentials` @@ -762,7 +762,7 @@ DESCRIPTION manage credentials ``` -_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/credentials.ts)_ +_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/credentials.ts)_ ## `eas device:create` @@ -776,7 +776,7 @@ DESCRIPTION register new Apple Devices to use for internal distribution ``` -_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/device/create.ts)_ +_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/device/create.ts)_ ## `eas device:delete` @@ -796,7 +796,7 @@ DESCRIPTION remove a registered device from your account ``` -_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/device/delete.ts)_ +_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/device/delete.ts)_ ## `eas device:list` @@ -817,7 +817,7 @@ DESCRIPTION list all registered devices for your account ``` -_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/device/list.ts)_ +_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/device/list.ts)_ ## `eas device:rename` @@ -838,7 +838,7 @@ DESCRIPTION rename a registered device ``` -_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/device/rename.ts)_ +_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/device/rename.ts)_ ## `eas device:view [UDID]` @@ -852,7 +852,7 @@ DESCRIPTION view a device for your project ``` -_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/device/view.ts)_ +_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/device/view.ts)_ ## `eas diagnostics` @@ -866,7 +866,7 @@ DESCRIPTION display environment info ``` -_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/diagnostics.ts)_ +_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/diagnostics.ts)_ ## `eas help [COMMAND]` @@ -954,7 +954,7 @@ DESCRIPTION validate the local store configuration ``` -_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/metadata/lint.ts)_ +_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/metadata/lint.ts)_ ## `eas metadata:pull` @@ -971,7 +971,7 @@ DESCRIPTION generate the local store configuration from the app stores ``` -_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/metadata/pull.ts)_ +_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/metadata/pull.ts)_ ## `eas metadata:push` @@ -988,7 +988,7 @@ DESCRIPTION sync the local store configuration to the app stores ``` -_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/metadata/push.ts)_ +_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/metadata/push.ts)_ ## `eas open` @@ -1002,7 +1002,7 @@ DESCRIPTION open the project page in a web browser ``` -_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/open.ts)_ +_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/open.ts)_ ## `eas project:info` @@ -1016,7 +1016,7 @@ DESCRIPTION information about the current project ``` -_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/project/info.ts)_ +_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/project/info.ts)_ ## `eas project:init` @@ -1038,7 +1038,7 @@ ALIASES $ eas init ``` -_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/project/init.ts)_ +_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/project/init.ts)_ ## `eas secret:create` @@ -1061,7 +1061,7 @@ DESCRIPTION create an environment secret on the current project or owner account ``` -_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/secret/create.ts)_ +_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/secret/create.ts)_ ## `eas secret:delete` @@ -1079,7 +1079,7 @@ DESCRIPTION delete an environment secret by ID ``` -_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/secret/delete.ts)_ +_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/secret/delete.ts)_ ## `eas secret:list` @@ -1093,7 +1093,7 @@ DESCRIPTION list environment secrets available for your current app ``` -_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/secret/list.ts)_ +_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/secret/list.ts)_ ## `eas secret:push` @@ -1113,7 +1113,7 @@ DESCRIPTION read environment secrets from env file and store on the server ``` -_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/secret/push.ts)_ +_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/secret/push.ts)_ ## `eas submit` @@ -1143,7 +1143,7 @@ ALIASES $ eas build:submit ``` -_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/submit.ts)_ +_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/submit.ts)_ ## `eas update` @@ -1177,7 +1177,7 @@ DESCRIPTION publish an update group ``` -_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/update/index.ts)_ +_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/update/index.ts)_ ## `eas update:configure` @@ -1195,7 +1195,7 @@ DESCRIPTION configure the project to support EAS Update ``` -_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/update/configure.ts)_ +_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/update/configure.ts)_ ## `eas update:delete GROUPID` @@ -1216,7 +1216,7 @@ DESCRIPTION delete all the updates in an update group ``` -_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/update/delete.ts)_ +_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/update/delete.ts)_ ## `eas update:list` @@ -1238,7 +1238,7 @@ DESCRIPTION view the recent updates ``` -_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/update/list.ts)_ +_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/update/list.ts)_ ## `eas update:republish` @@ -1265,7 +1265,7 @@ DESCRIPTION roll back to an existing update ``` -_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/update/republish.ts)_ +_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/update/republish.ts)_ ## `eas update:view GROUPID` @@ -1285,7 +1285,7 @@ DESCRIPTION update group details ``` -_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/update/view.ts)_ +_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/update/view.ts)_ ## `eas webhook:create` @@ -1306,7 +1306,7 @@ DESCRIPTION create a webhook ``` -_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/webhook/create.ts)_ +_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/webhook/create.ts)_ ## `eas webhook:delete [ID]` @@ -1326,7 +1326,7 @@ DESCRIPTION delete a webhook ``` -_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/webhook/delete.ts)_ +_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/webhook/delete.ts)_ ## `eas webhook:list` @@ -1344,7 +1344,7 @@ DESCRIPTION list webhooks ``` -_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/webhook/list.ts)_ +_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/webhook/list.ts)_ ## `eas webhook:update` @@ -1366,7 +1366,7 @@ DESCRIPTION update a webhook ``` -_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/webhook/update.ts)_ +_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/webhook/update.ts)_ ## `eas webhook:view ID` @@ -1383,7 +1383,7 @@ DESCRIPTION view a webhook ``` -_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.3.1/packages/eas-cli/src/commands/webhook/view.ts)_ +_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/webhook/view.ts)_ ## `eas whoami` diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index ae89c13aa4..ca45313ae8 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -1,7 +1,7 @@ { "name": "eas-cli", "description": "EAS command line tool", - "version": "5.3.1", + "version": "5.4.0", "author": "Expo ", "bin": { "eas": "./bin/run" From 0fba735f7a0ca0e8d21bfd755c760e64a6a8dc0b Mon Sep 17 00:00:00 2001 From: Expo CI Date: Thu, 28 Sep 2023 22:12:53 +0000 Subject: [PATCH 054/105] update CHANGELOG.md --- CHANGELOG.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 97a5fed1ea..e7416b27b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,12 +8,16 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features -- Add support for the Tap to Pay on iPhone iOS entitlement. ([#2069](https://github.com/expo/eas-cli/pull/2069) by [@fobos531](https://github.com/fobos531)) - ### πŸ› Bug fixes ### 🧹 Chores +## [5.4.0](https://github.com/expo/eas-cli/releases/tag/v5.4.0) - 2023-09-28 + +### πŸŽ‰ New features + +- Add support for the Tap to Pay on iPhone iOS entitlement. ([#2069](https://github.com/expo/eas-cli/pull/2069) by [@fobos531](https://github.com/fobos531)) + ## [5.3.1](https://github.com/expo/eas-cli/releases/tag/v5.3.1) - 2023-09-28 ### 🧹 Chores From feaedbe634eb6b9adbc16ac6ab8bf6ddd763e3b4 Mon Sep 17 00:00:00 2001 From: Kadi Kraman Date: Tue, 3 Oct 2023 11:28:38 +0100 Subject: [PATCH 055/105] [eas-cli] [ENG-10225] add requiredPackageManager to build metadata (#2067) * Add requiredPackageManager to build metadata * Use correct version in changelog * Fix changelog * Update @expo/eas-build-job library * Update graphql schema * Update gql schema --- CHANGELOG.md | 2 + packages/eas-cli/graphql.schema.json | 60 +++++++++------------ packages/eas-cli/package.json | 4 +- packages/eas-cli/src/build/context.ts | 2 + packages/eas-cli/src/build/createContext.ts | 4 ++ packages/eas-cli/src/build/metadata.ts | 1 + packages/eas-cli/src/graphql/generated.ts | 5 +- yarn.lock | 30 ++++------- 8 files changed, 48 insertions(+), 60 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e7416b27b3..065e978b6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ This is the log of notable changes to EAS CLI and related packages. ### 🧹 Chores +- Add `requiredPackageManager` to metadata. ([#2067](https://github.com/expo/eas-cli/pull/2067) by [@kadikraman](https://github.com/kadikraman)) + ## [5.4.0](https://github.com/expo/eas-cli/releases/tag/v5.4.0) - 2023-09-28 ### πŸŽ‰ New features diff --git a/packages/eas-cli/graphql.schema.json b/packages/eas-cli/graphql.schema.json index 82cd35c678..a08a04e88b 100644 --- a/packages/eas-cli/graphql.schema.json +++ b/packages/eas-cli/graphql.schema.json @@ -9437,18 +9437,6 @@ "defaultValue": null, "isDeprecated": false, "deprecationReason": null - }, - { - "name": "useDeprecatedBackend", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null } ], "type": { @@ -9478,18 +9466,6 @@ "defaultValue": null, "isDeprecated": false, "deprecationReason": null - }, - { - "name": "useDeprecatedBackend", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null } ], "type": { @@ -9523,18 +9499,6 @@ "defaultValue": null, "isDeprecated": false, "deprecationReason": null - }, - { - "name": "useDeprecatedBackend", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null } ], "type": { @@ -14730,6 +14694,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "requiredPackageManager", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "resourceClass", "description": "The builder resource class requested by the developer", @@ -16207,6 +16183,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "requiredPackageManager", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "runFromCI", "description": null, diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index ca45313ae8..e6bcf1c00d 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -13,12 +13,12 @@ "@expo/config": "8.1.2", "@expo/config-plugins": "7.2.4", "@expo/config-types": "49.0.0", - "@expo/eas-build-job": "1.0.43", + "@expo/eas-build-job": "1.0.46", "@expo/eas-json": "5.3.1", "@expo/json-file": "8.2.37", "@expo/multipart-body-parser": "1.1.0", "@expo/osascript": "2.0.33", - "@expo/package-manager": "0.0.57", + "@expo/package-manager": "1.1.1", "@expo/pkcs12": "0.0.8", "@expo/plist": "0.0.20", "@expo/plugin-help": "5.1.22", diff --git a/packages/eas-cli/src/build/context.ts b/packages/eas-cli/src/build/context.ts index 2a95a3684d..87ad149786 100644 --- a/packages/eas-cli/src/build/context.ts +++ b/packages/eas-cli/src/build/context.ts @@ -1,6 +1,7 @@ import { ExpoConfig } from '@expo/config'; import { Platform, Workflow } from '@expo/eas-build-job'; import { BuildProfile, EasJson } from '@expo/eas-json'; +import { NodePackageManager } from '@expo/package-manager'; import { Analytics, AnalyticsEventProperties } from '../analytics/AnalyticsManager'; import { ExpoGraphqlClient } from '../commandUtils/context/contextUtils/createGraphqlClient'; @@ -56,4 +57,5 @@ export interface BuildContext { android: T extends Platform.ANDROID ? AndroidBuildContext : undefined; ios: T extends Platform.IOS ? IosBuildContext : undefined; developmentClient: boolean; + requiredPackageManager: NodePackageManager['name'] | null; } diff --git a/packages/eas-cli/src/build/createContext.ts b/packages/eas-cli/src/build/createContext.ts index 4150677e20..0996996349 100644 --- a/packages/eas-cli/src/build/createContext.ts +++ b/packages/eas-cli/src/build/createContext.ts @@ -1,6 +1,7 @@ import { Platform } from '@expo/eas-build-job'; import { BuildProfile, EasJson, ResourceClass } from '@expo/eas-json'; import JsonFile from '@expo/json-file'; +import { resolvePackageManager } from '@expo/package-manager'; import getenv from 'getenv'; import resolveFrom from 'resolve-from'; import { v4 as uuidv4 } from 'uuid'; @@ -67,6 +68,8 @@ export async function createBuildContextAsync({ : (buildProfile as BuildProfile)?.buildConfiguration === 'Debug') ?? false; + const requiredPackageManager = resolvePackageManager(projectDir); + const credentialsCtx = new CredentialsContext({ projectInfo: { exp, projectId }, nonInteractive, @@ -127,6 +130,7 @@ export async function createBuildContextAsync({ runFromCI, customBuildConfigMetadata, developmentClient, + requiredPackageManager, }; if (platform === Platform.ANDROID) { const common = commonContext as CommonContext; diff --git a/packages/eas-cli/src/build/metadata.ts b/packages/eas-cli/src/build/metadata.ts index d498d87608..5416867476 100644 --- a/packages/eas-cli/src/build/metadata.ts +++ b/packages/eas-cli/src/build/metadata.ts @@ -64,6 +64,7 @@ export async function collectMetadataAsync( buildMode: ctx.buildProfile.config ? BuildMode.CUSTOM : BuildMode.BUILD, customWorkflowName: ctx.customBuildConfigMetadata?.workflowName, developmentClient: ctx.developmentClient, + requiredPackageManager: ctx.requiredPackageManager ?? undefined, }; return sanitizeMetadata(metadata); } diff --git a/packages/eas-cli/src/graphql/generated.ts b/packages/eas-cli/src/graphql/generated.ts index 271b32a2cd..968602c516 100644 --- a/packages/eas-cli/src/graphql/generated.ts +++ b/packages/eas-cli/src/graphql/generated.ts @@ -1401,19 +1401,16 @@ export type AppInsights = { export type AppInsightsTotalUniqueUsersArgs = { timespan: InsightsTimespan; - useDeprecatedBackend?: InputMaybe; }; export type AppInsightsUniqueUsersByAppVersionOverTimeArgs = { timespan: InsightsTimespan; - useDeprecatedBackend?: InputMaybe; }; export type AppInsightsUniqueUsersByPlatformOverTimeArgs = { timespan: InsightsTimespan; - useDeprecatedBackend?: InputMaybe; }; export type AppMutation = { @@ -2123,6 +2120,7 @@ export type Build = ActivityTimelineProjectActivity & BuildOrBuildJob & { queuePosition?: Maybe; reactNativeVersion?: Maybe; releaseChannel?: Maybe; + requiredPackageManager?: Maybe; /** * The builder resource class requested by the developer * @deprecated Use resourceClassDisplayName instead @@ -2315,6 +2313,7 @@ export type BuildMetadataInput = { message?: InputMaybe; reactNativeVersion?: InputMaybe; releaseChannel?: InputMaybe; + requiredPackageManager?: InputMaybe; runFromCI?: InputMaybe; runWithNoWaitFlag?: InputMaybe; runtimeVersion?: InputMaybe; diff --git a/yarn.lock b/yarn.lock index 145bd81824..5d23708cec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1403,10 +1403,10 @@ joi "^17.9.2" semver "^7.5.4" -"@expo/eas-build-job@1.0.43": - version "1.0.43" - resolved "https://registry.yarnpkg.com/@expo/eas-build-job/-/eas-build-job-1.0.43.tgz#e331b5039372c31b15aedbadc229efee3dcaefba" - integrity sha512-LMOoDIEax31uGBGux6/ocbCjUbWK3cUHuCxrsYlU+bvba4pGifegYWt2YQ/HC2477paq+K69IGjOUCHvNWG6Yg== +"@expo/eas-build-job@1.0.46": + version "1.0.46" + resolved "https://registry.yarnpkg.com/@expo/eas-build-job/-/eas-build-job-1.0.46.tgz#e99c0c9f2065cfb91b9a382dedb2e14892e47076" + integrity sha512-f1KE3t8uvMKPSVVphXlJ70/zn5wMFB47yYM3orVZiirq2pd/0UfWYF5YiNktgEyGglxqmq3gNV06H9pEDTUJew== dependencies: joi "^17.9.2" semver "^7.5.4" @@ -1428,15 +1428,6 @@ semver "7.3.2" tempy "0.3.0" -"@expo/json-file@8.2.36": - version "8.2.36" - resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-8.2.36.tgz#62a505cb7f30a34d097386476794680a3f7385ff" - integrity sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ== - dependencies: - "@babel/code-frame" "~7.10.4" - json5 "^1.0.1" - write-file-atomic "^2.3.0" - "@expo/json-file@8.2.37", "@expo/json-file@^8.2.37", "@expo/json-file@~8.2.37": version "8.2.37" resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-8.2.37.tgz#9c02d3b42134907c69cc0a027b18671b69344049" @@ -1471,19 +1462,20 @@ "@expo/spawn-async" "^1.5.0" exec-async "^2.2.0" -"@expo/package-manager@0.0.57": - version "0.0.57" - resolved "https://registry.yarnpkg.com/@expo/package-manager/-/package-manager-0.0.57.tgz#1cd71da0632c52a9a001b45e5d0d7e1e16de97d3" - integrity sha512-Y4RpSL9EqaPF+Vd2GrK6r7Xx7Dv0Xdq3AGAD9C0KwV21WqP/scj/dpjxFY+ABwmdhNsFzYXb8fmDyh4tiKenPQ== +"@expo/package-manager@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@expo/package-manager/-/package-manager-1.1.1.tgz#065326c5684c2acfbfdc290d93eabb7a36225507" + integrity sha512-NxtfIA25iEiNwMT+s8PEmdKzjyfWd2qkCLJkf6jKZGaH9c06YXyOAi2jvCyM8XuSzJz4pcEH8kz1HkJAInjB7Q== dependencies: - "@expo/json-file" "8.2.36" + "@expo/json-file" "^8.2.37" "@expo/spawn-async" "^1.5.0" ansi-regex "^5.0.0" chalk "^4.0.0" find-up "^5.0.0" find-yarn-workspace-root "~2.0.0" + js-yaml "^3.13.1" + micromatch "^4.0.2" npm-package-arg "^7.0.0" - rimraf "^3.0.2" split "^1.0.1" sudo-prompt "9.1.1" From a56abe33ddcd139def5997e6be721dd2d93dbbfa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Oct 2023 11:13:56 -0700 Subject: [PATCH 056/105] Bump graphql from 16.6.0 to 16.8.1 (#2060) Bumps [graphql](https://github.com/graphql/graphql-js) from 16.6.0 to 16.8.1. - [Release notes](https://github.com/graphql/graphql-js/releases) - [Commits](https://github.com/graphql/graphql-js/compare/v16.6.0...v16.8.1) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- packages/eas-cli/package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index e6bcf1c00d..236b370201 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -50,7 +50,7 @@ "fs-extra": "10.1.0", "getenv": "1.0.0", "gradle-to-js": "2.0.1", - "graphql": "16.6.0", + "graphql": "16.8.1", "graphql-tag": "2.12.6", "https-proxy-agent": "5.0.1", "ignore": "5.2.4", diff --git a/yarn.lock b/yarn.lock index 5d23708cec..8ef9e24c9c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7988,10 +7988,10 @@ graphql-ws@^5.4.1: resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.5.5.tgz#f375486d3f196e2a2527b503644693ae3a8670a9" integrity sha512-hvyIS71vs4Tu/yUYHPvGXsTgo0t3arU820+lT5VjZS2go0ewp2LqyCgxEN56CzOG7Iys52eRhHBiD1gGRdiQtw== -graphql@16.6.0: - version "16.6.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.6.0.tgz#c2dcffa4649db149f6282af726c8c83f1c7c5fdb" - integrity sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw== +graphql@16.8.1: + version "16.8.1" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.1.tgz#1930a965bef1170603702acdb68aedd3f3cf6f07" + integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== grouped-queue@^2.0.0: version "2.0.0" From 49b6e1f9e48deb32de332dc09cec8f03e0a2ab9c Mon Sep 17 00:00:00 2001 From: Alan Hughes <30924086+alanjhughes@users.noreply.github.com> Date: Wed, 11 Oct 2023 09:56:27 +0100 Subject: [PATCH 057/105] [eas-cli] add account type to project owner prompt (#2083) --- CHANGELOG.md | 2 + packages/eas-cli/graphql.schema.json | 71 +++++++++++++++ packages/eas-cli/src/commands/project/init.ts | 87 +++++++++++++++---- packages/eas-cli/src/graphql/generated.ts | 69 ++++++++------- packages/eas-cli/src/graphql/types/Account.ts | 4 + 5 files changed, 187 insertions(+), 46 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 065e978b6c..328e536a3f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features +- Add account type to the items in the prompt to select project owner. ([#2083](https://github.com/expo/eas-cli/pull/2083) by [@alanjhughes](https://github.com/alanjhughes)) + ### πŸ› Bug fixes ### 🧹 Chores diff --git a/packages/eas-cli/graphql.schema.json b/packages/eas-cli/graphql.schema.json index a08a04e88b..ef113c80b1 100644 --- a/packages/eas-cli/graphql.schema.json +++ b/packages/eas-cli/graphql.schema.json @@ -22472,6 +22472,54 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "lastRunBuild", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Build", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lastRunErrorCode", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lastRunErrorMessage", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lastRunStatus", + "description": null, + "args": [], + "type": { + "kind": "ENUM", + "name": "GitHubBuildTriggerRunStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "platform", "description": null, @@ -22680,6 +22728,29 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "ENUM", + "name": "GitHubBuildTriggerRunStatus", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "ERRORED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SUCCESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, { "kind": "ENUM", "name": "GitHubBuildTriggerType", diff --git a/packages/eas-cli/src/commands/project/init.ts b/packages/eas-cli/src/commands/project/init.ts index 10f6db3af4..1dea009ce9 100644 --- a/packages/eas-cli/src/commands/project/init.ts +++ b/packages/eas-cli/src/commands/project/init.ts @@ -16,7 +16,7 @@ import { ora } from '../../ora'; import { createOrModifyExpoConfigAsync, getPrivateExpoConfig } from '../../project/expoConfig'; import { findProjectIdByAccountNameAndSlugNullableAsync } from '../../project/fetchOrCreateProjectIDForWriteToConfigWithConfirmationAsync'; import { toAppPrivacy } from '../../project/projectUtils'; -import { confirmAsync, promptAsync } from '../../prompts'; +import { Choice, confirmAsync, promptAsync } from '../../prompts'; import { Actor } from '../../user/User'; type InitializeMethodOptions = { @@ -234,21 +234,11 @@ export default class ProjectInit extends EasCommand { if (allAccounts.length === 1) { accountName = allAccounts[0].name; } else { - // if regular user, put primary account first - const sortedAccounts = - actor.__typename === 'Robot' - ? allAccounts - : [...allAccounts].sort((a, _b) => - actor.__typename === 'User' ? (a.name === actor.username ? -1 : 1) : 0 - ); - - const choices = sortedAccounts.map(account => ({ - title: account.name, - value: account, - description: !accountNamesWhereUserHasSufficientPermissionsToCreateApp.has(account.name) - ? '(Viewer Role)' - : undefined, - })); + const choices = ProjectInit.getAccountChoices( + actor, + accountNamesWhereUserHasSufficientPermissionsToCreateApp + ); + accountName = ( await promptAsync({ type: 'select', @@ -321,6 +311,71 @@ export default class ProjectInit extends EasCommand { return createdProjectId; } + private static getAccountChoices( + actor: Actor, + namesWithSufficientPermissions: Set + ): Choice[] { + const allAccounts = actor.accounts; + + const sortedAccounts = + actor.__typename === 'Robot' + ? allAccounts + : [...allAccounts].sort((a, _b) => + actor.__typename === 'User' ? (a.name === actor.username ? -1 : 1) : 0 + ); + + if (actor.__typename !== 'Robot') { + const personalAccount = allAccounts?.find( + account => account?.ownerUserActor?.id === actor.id + ); + + const personalAccountChoice = personalAccount + ? { + title: personalAccount.name, + value: personalAccount, + description: !namesWithSufficientPermissions.has(personalAccount.name) + ? '(Personal) (Viewer Role)' + : '(Personal)', + } + : undefined; + + const userAccounts = allAccounts + ?.filter(account => account.ownerUserActor && account.name !== actor.username) + .map(account => ({ + title: account.name, + value: account, + description: !namesWithSufficientPermissions.has(account.name) + ? '(Team) (Viewer Role)' + : '(Team)', + })); + + const organizationAccounts = allAccounts + ?.filter(account => account.name !== actor.username && !account.ownerUserActor) + .map(account => ({ + title: account.name, + value: account, + description: !namesWithSufficientPermissions.has(account.name) + ? '(Organization) (Viewer Role)' + : '(Organization)', + })); + + let choices: Choice[] = []; + if (personalAccountChoice) { + choices = [personalAccountChoice]; + } + + return [...choices, ...userAccounts, ...organizationAccounts].sort((a, _b) => + actor.__typename === 'User' ? (a.value.name === actor.username ? -1 : 1) : 0 + ); + } + + return sortedAccounts.map(account => ({ + title: account.name, + value: account, + description: !namesWithSufficientPermissions.has(account.name) ? '(Viewer Role)' : undefined, + })); + } + async runAsync(): Promise { const { flags: { id: idArgument, force, 'non-interactive': nonInteractive }, diff --git a/packages/eas-cli/src/graphql/generated.ts b/packages/eas-cli/src/graphql/generated.ts index 968602c516..f4f2300628 100644 --- a/packages/eas-cli/src/graphql/generated.ts +++ b/packages/eas-cli/src/graphql/generated.ts @@ -3265,6 +3265,10 @@ export type GitHubBuildTrigger = { id: Scalars['ID']; isActive: Scalars['Boolean']; lastRunAt?: Maybe; + lastRunBuild?: Maybe; + lastRunErrorCode?: Maybe; + lastRunErrorMessage?: Maybe; + lastRunStatus?: Maybe; platform: AppPlatform; sourcePattern: Scalars['String']; targetPattern?: Maybe; @@ -3298,6 +3302,11 @@ export type GitHubBuildTriggerMutationUpdateGitHubBuildTriggerArgs = { githubBuildTriggerId: Scalars['ID']; }; +export enum GitHubBuildTriggerRunStatus { + Errored = 'ERRORED', + Success = 'SUCCESS' +} + export enum GitHubBuildTriggerType { PullRequestUpdated = 'PULL_REQUEST_UPDATED', PushToBranch = 'PUSH_TO_BRANCH', @@ -5984,7 +5993,7 @@ export type CreateAndroidAppCredentialsMutationVariables = Exact<{ }>; -export type CreateAndroidAppCredentialsMutation = { __typename?: 'RootMutation', androidAppCredentials: { __typename?: 'AndroidAppCredentialsMutation', createAndroidAppCredentials: { __typename?: 'AndroidAppCredentials', id: string, applicationIdentifier?: string | null, isLegacy: boolean, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, androidFcm?: { __typename?: 'AndroidFcm', id: string, credential: any, version: AndroidFcmVersion, createdAt: any, updatedAt: any, snippet: { __typename?: 'FcmSnippetLegacy', firstFourCharacters: string, lastFourCharacters: string } | { __typename?: 'FcmSnippetV1', projectId: string, keyId: string, serviceAccountEmail: string, clientId?: string | null } } | null, googleServiceAccountKeyForSubmissions?: { __typename?: 'GoogleServiceAccountKey', id: string, projectIdentifier: string, privateKeyIdentifier: string, clientEmail: string, clientIdentifier: string, createdAt: any, updatedAt: any } | null, androidAppBuildCredentialsList: Array<{ __typename?: 'AndroidAppBuildCredentials', id: string, isDefault: boolean, isLegacy: boolean, name: string, androidKeystore?: { __typename?: 'AndroidKeystore', id: string, type: AndroidKeystoreType, keystore: string, keystorePassword: string, keyAlias: string, keyPassword?: string | null, md5CertificateFingerprint?: string | null, sha1CertificateFingerprint?: string | null, sha256CertificateFingerprint?: string | null, createdAt: any, updatedAt: any } | null }> } } }; +export type CreateAndroidAppCredentialsMutation = { __typename?: 'RootMutation', androidAppCredentials: { __typename?: 'AndroidAppCredentialsMutation', createAndroidAppCredentials: { __typename?: 'AndroidAppCredentials', id: string, applicationIdentifier?: string | null, isLegacy: boolean, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, androidFcm?: { __typename?: 'AndroidFcm', id: string, credential: any, version: AndroidFcmVersion, createdAt: any, updatedAt: any, snippet: { __typename?: 'FcmSnippetLegacy', firstFourCharacters: string, lastFourCharacters: string } | { __typename?: 'FcmSnippetV1', projectId: string, keyId: string, serviceAccountEmail: string, clientId?: string | null } } | null, googleServiceAccountKeyForSubmissions?: { __typename?: 'GoogleServiceAccountKey', id: string, projectIdentifier: string, privateKeyIdentifier: string, clientEmail: string, clientIdentifier: string, createdAt: any, updatedAt: any } | null, androidAppBuildCredentialsList: Array<{ __typename?: 'AndroidAppBuildCredentials', id: string, isDefault: boolean, isLegacy: boolean, name: string, androidKeystore?: { __typename?: 'AndroidKeystore', id: string, type: AndroidKeystoreType, keystore: string, keystorePassword: string, keyAlias: string, keyPassword?: string | null, md5CertificateFingerprint?: string | null, sha1CertificateFingerprint?: string | null, sha256CertificateFingerprint?: string | null, createdAt: any, updatedAt: any } | null }> } } }; export type SetFcmMutationVariables = Exact<{ androidAppCredentialsId: Scalars['ID']; @@ -5992,7 +6001,7 @@ export type SetFcmMutationVariables = Exact<{ }>; -export type SetFcmMutation = { __typename?: 'RootMutation', androidAppCredentials: { __typename?: 'AndroidAppCredentialsMutation', setFcm: { __typename?: 'AndroidAppCredentials', id: string, applicationIdentifier?: string | null, isLegacy: boolean, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, androidFcm?: { __typename?: 'AndroidFcm', id: string, credential: any, version: AndroidFcmVersion, createdAt: any, updatedAt: any, snippet: { __typename?: 'FcmSnippetLegacy', firstFourCharacters: string, lastFourCharacters: string } | { __typename?: 'FcmSnippetV1', projectId: string, keyId: string, serviceAccountEmail: string, clientId?: string | null } } | null, googleServiceAccountKeyForSubmissions?: { __typename?: 'GoogleServiceAccountKey', id: string, projectIdentifier: string, privateKeyIdentifier: string, clientEmail: string, clientIdentifier: string, createdAt: any, updatedAt: any } | null, androidAppBuildCredentialsList: Array<{ __typename?: 'AndroidAppBuildCredentials', id: string, isDefault: boolean, isLegacy: boolean, name: string, androidKeystore?: { __typename?: 'AndroidKeystore', id: string, type: AndroidKeystoreType, keystore: string, keystorePassword: string, keyAlias: string, keyPassword?: string | null, md5CertificateFingerprint?: string | null, sha1CertificateFingerprint?: string | null, sha256CertificateFingerprint?: string | null, createdAt: any, updatedAt: any } | null }> } } }; +export type SetFcmMutation = { __typename?: 'RootMutation', androidAppCredentials: { __typename?: 'AndroidAppCredentialsMutation', setFcm: { __typename?: 'AndroidAppCredentials', id: string, applicationIdentifier?: string | null, isLegacy: boolean, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, androidFcm?: { __typename?: 'AndroidFcm', id: string, credential: any, version: AndroidFcmVersion, createdAt: any, updatedAt: any, snippet: { __typename?: 'FcmSnippetLegacy', firstFourCharacters: string, lastFourCharacters: string } | { __typename?: 'FcmSnippetV1', projectId: string, keyId: string, serviceAccountEmail: string, clientId?: string | null } } | null, googleServiceAccountKeyForSubmissions?: { __typename?: 'GoogleServiceAccountKey', id: string, projectIdentifier: string, privateKeyIdentifier: string, clientEmail: string, clientIdentifier: string, createdAt: any, updatedAt: any } | null, androidAppBuildCredentialsList: Array<{ __typename?: 'AndroidAppBuildCredentials', id: string, isDefault: boolean, isLegacy: boolean, name: string, androidKeystore?: { __typename?: 'AndroidKeystore', id: string, type: AndroidKeystoreType, keystore: string, keystorePassword: string, keyAlias: string, keyPassword?: string | null, md5CertificateFingerprint?: string | null, sha1CertificateFingerprint?: string | null, sha256CertificateFingerprint?: string | null, createdAt: any, updatedAt: any } | null }> } } }; export type SetGoogleServiceAccountKeyForSubmissionsMutationVariables = Exact<{ androidAppCredentialsId: Scalars['ID']; @@ -6000,7 +6009,7 @@ export type SetGoogleServiceAccountKeyForSubmissionsMutationVariables = Exact<{ }>; -export type SetGoogleServiceAccountKeyForSubmissionsMutation = { __typename?: 'RootMutation', androidAppCredentials: { __typename?: 'AndroidAppCredentialsMutation', setGoogleServiceAccountKeyForSubmissions: { __typename?: 'AndroidAppCredentials', id: string, applicationIdentifier?: string | null, isLegacy: boolean, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, androidFcm?: { __typename?: 'AndroidFcm', id: string, credential: any, version: AndroidFcmVersion, createdAt: any, updatedAt: any, snippet: { __typename?: 'FcmSnippetLegacy', firstFourCharacters: string, lastFourCharacters: string } | { __typename?: 'FcmSnippetV1', projectId: string, keyId: string, serviceAccountEmail: string, clientId?: string | null } } | null, googleServiceAccountKeyForSubmissions?: { __typename?: 'GoogleServiceAccountKey', id: string, projectIdentifier: string, privateKeyIdentifier: string, clientEmail: string, clientIdentifier: string, createdAt: any, updatedAt: any } | null, androidAppBuildCredentialsList: Array<{ __typename?: 'AndroidAppBuildCredentials', id: string, isDefault: boolean, isLegacy: boolean, name: string, androidKeystore?: { __typename?: 'AndroidKeystore', id: string, type: AndroidKeystoreType, keystore: string, keystorePassword: string, keyAlias: string, keyPassword?: string | null, md5CertificateFingerprint?: string | null, sha1CertificateFingerprint?: string | null, sha256CertificateFingerprint?: string | null, createdAt: any, updatedAt: any } | null }> } } }; +export type SetGoogleServiceAccountKeyForSubmissionsMutation = { __typename?: 'RootMutation', androidAppCredentials: { __typename?: 'AndroidAppCredentialsMutation', setGoogleServiceAccountKeyForSubmissions: { __typename?: 'AndroidAppCredentials', id: string, applicationIdentifier?: string | null, isLegacy: boolean, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, androidFcm?: { __typename?: 'AndroidFcm', id: string, credential: any, version: AndroidFcmVersion, createdAt: any, updatedAt: any, snippet: { __typename?: 'FcmSnippetLegacy', firstFourCharacters: string, lastFourCharacters: string } | { __typename?: 'FcmSnippetV1', projectId: string, keyId: string, serviceAccountEmail: string, clientId?: string | null } } | null, googleServiceAccountKeyForSubmissions?: { __typename?: 'GoogleServiceAccountKey', id: string, projectIdentifier: string, privateKeyIdentifier: string, clientEmail: string, clientIdentifier: string, createdAt: any, updatedAt: any } | null, androidAppBuildCredentialsList: Array<{ __typename?: 'AndroidAppBuildCredentials', id: string, isDefault: boolean, isLegacy: boolean, name: string, androidKeystore?: { __typename?: 'AndroidKeystore', id: string, type: AndroidKeystoreType, keystore: string, keystorePassword: string, keyAlias: string, keyPassword?: string | null, md5CertificateFingerprint?: string | null, sha1CertificateFingerprint?: string | null, sha256CertificateFingerprint?: string | null, createdAt: any, updatedAt: any } | null }> } } }; export type CreateAndroidFcmMutationVariables = Exact<{ androidFcmInput: AndroidFcmInput; @@ -6054,7 +6063,7 @@ export type CommonAndroidAppCredentialsWithBuildCredentialsByApplicationIdentifi }>; -export type CommonAndroidAppCredentialsWithBuildCredentialsByApplicationIdentifierQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, androidAppCredentials: Array<{ __typename?: 'AndroidAppCredentials', id: string, applicationIdentifier?: string | null, isLegacy: boolean, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, androidFcm?: { __typename?: 'AndroidFcm', id: string, credential: any, version: AndroidFcmVersion, createdAt: any, updatedAt: any, snippet: { __typename?: 'FcmSnippetLegacy', firstFourCharacters: string, lastFourCharacters: string } | { __typename?: 'FcmSnippetV1', projectId: string, keyId: string, serviceAccountEmail: string, clientId?: string | null } } | null, googleServiceAccountKeyForSubmissions?: { __typename?: 'GoogleServiceAccountKey', id: string, projectIdentifier: string, privateKeyIdentifier: string, clientEmail: string, clientIdentifier: string, createdAt: any, updatedAt: any } | null, androidAppBuildCredentialsList: Array<{ __typename?: 'AndroidAppBuildCredentials', id: string, isDefault: boolean, isLegacy: boolean, name: string, androidKeystore?: { __typename?: 'AndroidKeystore', id: string, type: AndroidKeystoreType, keystore: string, keystorePassword: string, keyAlias: string, keyPassword?: string | null, md5CertificateFingerprint?: string | null, sha1CertificateFingerprint?: string | null, sha256CertificateFingerprint?: string | null, createdAt: any, updatedAt: any } | null }> }> } } }; +export type CommonAndroidAppCredentialsWithBuildCredentialsByApplicationIdentifierQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, androidAppCredentials: Array<{ __typename?: 'AndroidAppCredentials', id: string, applicationIdentifier?: string | null, isLegacy: boolean, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, androidFcm?: { __typename?: 'AndroidFcm', id: string, credential: any, version: AndroidFcmVersion, createdAt: any, updatedAt: any, snippet: { __typename?: 'FcmSnippetLegacy', firstFourCharacters: string, lastFourCharacters: string } | { __typename?: 'FcmSnippetV1', projectId: string, keyId: string, serviceAccountEmail: string, clientId?: string | null } } | null, googleServiceAccountKeyForSubmissions?: { __typename?: 'GoogleServiceAccountKey', id: string, projectIdentifier: string, privateKeyIdentifier: string, clientEmail: string, clientIdentifier: string, createdAt: any, updatedAt: any } | null, androidAppBuildCredentialsList: Array<{ __typename?: 'AndroidAppBuildCredentials', id: string, isDefault: boolean, isLegacy: boolean, name: string, androidKeystore?: { __typename?: 'AndroidKeystore', id: string, type: AndroidKeystoreType, keystore: string, keystorePassword: string, keyAlias: string, keyPassword?: string | null, md5CertificateFingerprint?: string | null, sha1CertificateFingerprint?: string | null, sha256CertificateFingerprint?: string | null, createdAt: any, updatedAt: any } | null }> }> } } }; export type GoogleServiceAccountKeyByAccountQueryVariables = Exact<{ accountName: Scalars['String']; @@ -6123,7 +6132,7 @@ export type CreateAppleDistributionCertificateMutationVariables = Exact<{ }>; -export type CreateAppleDistributionCertificateMutation = { __typename?: 'RootMutation', appleDistributionCertificate: { __typename?: 'AppleDistributionCertificateMutation', createAppleDistributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null } }; +export type CreateAppleDistributionCertificateMutation = { __typename?: 'RootMutation', appleDistributionCertificate: { __typename?: 'AppleDistributionCertificateMutation', createAppleDistributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null } }; export type DeleteAppleDistributionCertificateMutationVariables = Exact<{ appleDistributionCertificateId: Scalars['ID']; @@ -6162,7 +6171,7 @@ export type CreateApplePushKeyMutationVariables = Exact<{ }>; -export type CreateApplePushKeyMutation = { __typename?: 'RootMutation', applePushKey: { __typename?: 'ApplePushKeyMutation', createApplePushKey: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } } }; +export type CreateApplePushKeyMutation = { __typename?: 'RootMutation', applePushKey: { __typename?: 'ApplePushKeyMutation', createApplePushKey: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } } }; export type DeleteApplePushKeyMutationVariables = Exact<{ applePushKeyId: Scalars['ID']; @@ -6177,7 +6186,7 @@ export type CreateAppleTeamMutationVariables = Exact<{ }>; -export type CreateAppleTeamMutation = { __typename?: 'RootMutation', appleTeam: { __typename?: 'AppleTeamMutation', createAppleTeam: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null, account: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } } } }; +export type CreateAppleTeamMutation = { __typename?: 'RootMutation', appleTeam: { __typename?: 'AppleTeamMutation', createAppleTeam: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null, account: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } } } }; export type CreateIosAppBuildCredentialsMutationVariables = Exact<{ iosAppBuildCredentialsInput: IosAppBuildCredentialsInput; @@ -6185,7 +6194,7 @@ export type CreateIosAppBuildCredentialsMutationVariables = Exact<{ }>; -export type CreateIosAppBuildCredentialsMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', createIosAppBuildCredentials: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null } } }; +export type CreateIosAppBuildCredentialsMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', createIosAppBuildCredentials: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null } } }; export type SetDistributionCertificateMutationVariables = Exact<{ iosAppBuildCredentialsId: Scalars['ID']; @@ -6193,7 +6202,7 @@ export type SetDistributionCertificateMutationVariables = Exact<{ }>; -export type SetDistributionCertificateMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', setDistributionCertificate: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null } } }; +export type SetDistributionCertificateMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', setDistributionCertificate: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null } } }; export type SetProvisioningProfileMutationVariables = Exact<{ iosAppBuildCredentialsId: Scalars['ID']; @@ -6201,7 +6210,7 @@ export type SetProvisioningProfileMutationVariables = Exact<{ }>; -export type SetProvisioningProfileMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', setProvisioningProfile: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null } } }; +export type SetProvisioningProfileMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', setProvisioningProfile: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null } } }; export type CreateIosAppCredentialsMutationVariables = Exact<{ iosAppCredentialsInput: IosAppCredentialsInput; @@ -6210,7 +6219,7 @@ export type CreateIosAppCredentialsMutationVariables = Exact<{ }>; -export type CreateIosAppCredentialsMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', createIosAppCredentials: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; +export type CreateIosAppCredentialsMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', createIosAppCredentials: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; export type SetPushKeyMutationVariables = Exact<{ iosAppCredentialsId: Scalars['ID']; @@ -6218,7 +6227,7 @@ export type SetPushKeyMutationVariables = Exact<{ }>; -export type SetPushKeyMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', setPushKey: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; +export type SetPushKeyMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', setPushKey: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; export type SetAppStoreConnectApiKeyForSubmissionsMutationVariables = Exact<{ iosAppCredentialsId: Scalars['ID']; @@ -6226,7 +6235,7 @@ export type SetAppStoreConnectApiKeyForSubmissionsMutationVariables = Exact<{ }>; -export type SetAppStoreConnectApiKeyForSubmissionsMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', setAppStoreConnectApiKeyForSubmissions: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; +export type SetAppStoreConnectApiKeyForSubmissionsMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', setAppStoreConnectApiKeyForSubmissions: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; export type AppStoreConnectApiKeyByAccountQueryVariables = Exact<{ accountName: Scalars['String']; @@ -6276,14 +6285,14 @@ export type AppleDistributionCertificateByAppQueryVariables = Exact<{ }>; -export type AppleDistributionCertificateByAppQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null }> }> } } }; +export type AppleDistributionCertificateByAppQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null }> }> } } }; export type AppleDistributionCertificateByAccountQueryVariables = Exact<{ accountName: Scalars['String']; }>; -export type AppleDistributionCertificateByAccountQuery = { __typename?: 'RootQuery', account: { __typename?: 'AccountQuery', byName: { __typename?: 'Account', id: string, appleDistributionCertificates: Array<{ __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> }> } } }; +export type AppleDistributionCertificateByAccountQuery = { __typename?: 'RootQuery', account: { __typename?: 'AccountQuery', byName: { __typename?: 'Account', id: string, appleDistributionCertificates: Array<{ __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> }> } } }; export type AppleProvisioningProfilesByAppQueryVariables = Exact<{ projectFullName: Scalars['String']; @@ -6299,7 +6308,7 @@ export type ApplePushKeyByAccountQueryVariables = Exact<{ }>; -export type ApplePushKeyByAccountQuery = { __typename?: 'RootQuery', account: { __typename?: 'AccountQuery', byName: { __typename?: 'Account', id: string, applePushKeys: Array<{ __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> }> } } }; +export type ApplePushKeyByAccountQuery = { __typename?: 'RootQuery', account: { __typename?: 'AccountQuery', byName: { __typename?: 'Account', id: string, applePushKeys: Array<{ __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> }> } } }; export type AppleTeamsByAccountNameQueryVariables = Exact<{ accountName: Scalars['String']; @@ -6325,7 +6334,7 @@ export type IosAppBuildCredentialsByAppleAppIdentiferAndDistributionQueryVariabl }>; -export type IosAppBuildCredentialsByAppleAppIdentiferAndDistributionQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }> }> } } }; +export type IosAppBuildCredentialsByAppleAppIdentiferAndDistributionQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }> }> } } }; export type IosAppCredentialsWithBuildCredentialsByAppIdentifierIdQueryVariables = Exact<{ projectFullName: Scalars['String']; @@ -6334,7 +6343,7 @@ export type IosAppCredentialsWithBuildCredentialsByAppIdentifierIdQueryVariables }>; -export type IosAppCredentialsWithBuildCredentialsByAppIdentifierIdQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }> } } }; +export type IosAppCredentialsWithBuildCredentialsByAppIdentifierIdQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }> } } }; export type CommonIosAppCredentialsWithBuildCredentialsByAppIdentifierIdQueryVariables = Exact<{ projectFullName: Scalars['String']; @@ -6342,7 +6351,7 @@ export type CommonIosAppCredentialsWithBuildCredentialsByAppIdentifierIdQueryVar }>; -export type CommonIosAppCredentialsWithBuildCredentialsByAppIdentifierIdQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }> } } }; +export type CommonIosAppCredentialsWithBuildCredentialsByAppIdentifierIdQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }> } } }; export type CreateAppMutationVariables = Exact<{ appInput: AppInput; @@ -6499,14 +6508,14 @@ export type AppByIdQueryVariables = Exact<{ }>; -export type AppByIdQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byId: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } } } }; +export type AppByIdQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byId: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } } } }; export type AppByFullNameQueryVariables = Exact<{ fullName: Scalars['String']; }>; -export type AppByFullNameQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } } } }; +export type AppByFullNameQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } } } }; export type LatestAppVersionQueryVariables = Exact<{ appId: Scalars['String']; @@ -6698,7 +6707,7 @@ export type ViewUpdateGroupsOnAppQuery = { __typename?: 'RootQuery', app: { __ty export type CurrentUserQueryVariables = Exact<{ [key: string]: never; }>; -export type CurrentUserQuery = { __typename?: 'RootQuery', meActor?: { __typename: 'Robot', firstName?: string | null, id: string, featureGates: any, isExpoAdmin: boolean, accounts: Array<{ __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> }> } | { __typename: 'SSOUser', username: string, id: string, featureGates: any, isExpoAdmin: boolean, primaryAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> }, accounts: Array<{ __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> }> } | { __typename: 'User', username: string, id: string, featureGates: any, isExpoAdmin: boolean, primaryAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> }, accounts: Array<{ __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> }> } | null }; +export type CurrentUserQuery = { __typename?: 'RootQuery', meActor?: { __typename: 'Robot', firstName?: string | null, id: string, featureGates: any, isExpoAdmin: boolean, accounts: Array<{ __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> }> } | { __typename: 'SSOUser', username: string, id: string, featureGates: any, isExpoAdmin: boolean, primaryAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> }, accounts: Array<{ __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> }> } | { __typename: 'User', username: string, id: string, featureGates: any, isExpoAdmin: boolean, primaryAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> }, accounts: Array<{ __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> }> } | null }; export type WebhooksByAppIdQueryVariables = Exact<{ appId: Scalars['String']; @@ -6715,9 +6724,9 @@ export type WebhookByIdQueryVariables = Exact<{ export type WebhookByIdQuery = { __typename?: 'RootQuery', webhook: { __typename?: 'WebhookQuery', byId: { __typename?: 'Webhook', id: string, event: WebhookType, url: string, createdAt: any, updatedAt: any } } }; -export type AccountFragment = { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> }; +export type AccountFragment = { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> }; -export type AppFragment = { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }; +export type AppFragment = { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }; export type BuildFragment = { __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } }; @@ -6743,7 +6752,7 @@ export type WebhookFragment = { __typename?: 'Webhook', id: string, event: Webho export type AndroidAppBuildCredentialsFragment = { __typename?: 'AndroidAppBuildCredentials', id: string, isDefault: boolean, isLegacy: boolean, name: string, androidKeystore?: { __typename?: 'AndroidKeystore', id: string, type: AndroidKeystoreType, keystore: string, keystorePassword: string, keyAlias: string, keyPassword?: string | null, md5CertificateFingerprint?: string | null, sha1CertificateFingerprint?: string | null, sha256CertificateFingerprint?: string | null, createdAt: any, updatedAt: any } | null }; -export type CommonAndroidAppCredentialsFragment = { __typename?: 'AndroidAppCredentials', id: string, applicationIdentifier?: string | null, isLegacy: boolean, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, androidFcm?: { __typename?: 'AndroidFcm', id: string, credential: any, version: AndroidFcmVersion, createdAt: any, updatedAt: any, snippet: { __typename?: 'FcmSnippetLegacy', firstFourCharacters: string, lastFourCharacters: string } | { __typename?: 'FcmSnippetV1', projectId: string, keyId: string, serviceAccountEmail: string, clientId?: string | null } } | null, googleServiceAccountKeyForSubmissions?: { __typename?: 'GoogleServiceAccountKey', id: string, projectIdentifier: string, privateKeyIdentifier: string, clientEmail: string, clientIdentifier: string, createdAt: any, updatedAt: any } | null, androidAppBuildCredentialsList: Array<{ __typename?: 'AndroidAppBuildCredentials', id: string, isDefault: boolean, isLegacy: boolean, name: string, androidKeystore?: { __typename?: 'AndroidKeystore', id: string, type: AndroidKeystoreType, keystore: string, keystorePassword: string, keyAlias: string, keyPassword?: string | null, md5CertificateFingerprint?: string | null, sha1CertificateFingerprint?: string | null, sha256CertificateFingerprint?: string | null, createdAt: any, updatedAt: any } | null }> }; +export type CommonAndroidAppCredentialsFragment = { __typename?: 'AndroidAppCredentials', id: string, applicationIdentifier?: string | null, isLegacy: boolean, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, androidFcm?: { __typename?: 'AndroidFcm', id: string, credential: any, version: AndroidFcmVersion, createdAt: any, updatedAt: any, snippet: { __typename?: 'FcmSnippetLegacy', firstFourCharacters: string, lastFourCharacters: string } | { __typename?: 'FcmSnippetV1', projectId: string, keyId: string, serviceAccountEmail: string, clientId?: string | null } } | null, googleServiceAccountKeyForSubmissions?: { __typename?: 'GoogleServiceAccountKey', id: string, projectIdentifier: string, privateKeyIdentifier: string, clientEmail: string, clientIdentifier: string, createdAt: any, updatedAt: any } | null, androidAppBuildCredentialsList: Array<{ __typename?: 'AndroidAppBuildCredentials', id: string, isDefault: boolean, isLegacy: boolean, name: string, androidKeystore?: { __typename?: 'AndroidKeystore', id: string, type: AndroidKeystoreType, keystore: string, keystorePassword: string, keyAlias: string, keyPassword?: string | null, md5CertificateFingerprint?: string | null, sha1CertificateFingerprint?: string | null, sha256CertificateFingerprint?: string | null, createdAt: any, updatedAt: any } | null }> }; export type AndroidFcmFragment = { __typename?: 'AndroidFcm', id: string, credential: any, version: AndroidFcmVersion, createdAt: any, updatedAt: any, snippet: { __typename?: 'FcmSnippetLegacy', firstFourCharacters: string, lastFourCharacters: string } | { __typename?: 'FcmSnippetV1', projectId: string, keyId: string, serviceAccountEmail: string, clientId?: string | null } }; @@ -6757,20 +6766,20 @@ export type AppleDeviceFragment = { __typename?: 'AppleDevice', id: string, iden export type AppleDeviceRegistrationRequestFragment = { __typename?: 'AppleDeviceRegistrationRequest', id: string }; -export type AppleDistributionCertificateFragment = { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> }; +export type AppleDistributionCertificateFragment = { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> }; export type AppleProvisioningProfileFragment = { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> }; export type AppleProvisioningProfileIdentifiersFragment = { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null }; -export type ApplePushKeyFragment = { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> }; +export type ApplePushKeyFragment = { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> }; export type AppleTeamFragment = { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null }; export type GoogleServiceAccountKeyFragment = { __typename?: 'GoogleServiceAccountKey', id: string, projectIdentifier: string, privateKeyIdentifier: string, clientEmail: string, clientIdentifier: string, createdAt: any, updatedAt: any }; -export type IosAppBuildCredentialsFragment = { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }; +export type IosAppBuildCredentialsFragment = { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }; -export type CommonIosAppCredentialsWithoutBuildCredentialsFragment = { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }; +export type CommonIosAppCredentialsWithoutBuildCredentialsFragment = { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }; -export type CommonIosAppCredentialsFragment = { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }; +export type CommonIosAppCredentialsFragment = { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }; diff --git a/packages/eas-cli/src/graphql/types/Account.ts b/packages/eas-cli/src/graphql/types/Account.ts index ff3787e239..6495b89139 100644 --- a/packages/eas-cli/src/graphql/types/Account.ts +++ b/packages/eas-cli/src/graphql/types/Account.ts @@ -4,6 +4,10 @@ export const AccountFragmentNode = gql` fragment AccountFragment on Account { id name + ownerUserActor { + id + username + } users { actor { id From 1948fd6e81d33d2756c3b3a3b6014854fc76eabb Mon Sep 17 00:00:00 2001 From: Radoslaw Krzemien Date: Mon, 16 Oct 2023 15:21:33 +0200 Subject: [PATCH 058/105] [eas-cli] Add createdAt to AppleDeviceFragment Added a new field to gql type to fetch it later See: https://linear.app/expo/issue/ENG-10334/show-creation-time-of-device-record-in-ad-hoc-device-selection-prompt --- packages/eas-cli/src/graphql/types/credentials/AppleDevice.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/eas-cli/src/graphql/types/credentials/AppleDevice.ts b/packages/eas-cli/src/graphql/types/credentials/AppleDevice.ts index c19a58b649..6c1721ed48 100644 --- a/packages/eas-cli/src/graphql/types/credentials/AppleDevice.ts +++ b/packages/eas-cli/src/graphql/types/credentials/AppleDevice.ts @@ -15,5 +15,6 @@ export const AppleDeviceFragmentNode = gql` name model deviceClass + createdAt } `; From 8df2a08b2009080e523a9ea298260547881c45ad Mon Sep 17 00:00:00 2001 From: Radoslaw Krzemien Date: Mon, 16 Oct 2023 15:29:27 +0200 Subject: [PATCH 059/105] [eas-cli] Generate gql schema Generated a new graphql schema based on updated local version of www See: https://linear.app/expo/issue/ENG-10334/show-creation-time-of-device-record-in-ad-hoc-device-selection-prompt --- packages/eas-cli/graphql.schema.json | 63 +++++++++++++++++------ packages/eas-cli/src/graphql/generated.ts | 45 +++++++++------- 2 files changed, 72 insertions(+), 36 deletions(-) diff --git a/packages/eas-cli/graphql.schema.json b/packages/eas-cli/graphql.schema.json index ef113c80b1..2db401d994 100644 --- a/packages/eas-cli/graphql.schema.json +++ b/packages/eas-cli/graphql.schema.json @@ -6317,22 +6317,6 @@ "defaultValue": null, "isDeprecated": false, "deprecationReason": null - }, - { - "name": "type", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "AndroidKeystoreType", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null } ], "interfaces": null, @@ -6894,6 +6878,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "filter", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "BranchFilterInput", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "first", "description": null, @@ -11300,6 +11296,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "createdAt", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "deviceClass", "description": null, @@ -14072,6 +14080,29 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "INPUT_OBJECT", + "name": "BranchFilterInput", + "description": null, + "fields": null, + "inputFields": [ + { + "name": "searchTerm", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, { "kind": "OBJECT", "name": "Build", diff --git a/packages/eas-cli/src/graphql/generated.ts b/packages/eas-cli/src/graphql/generated.ts index f4f2300628..5450516d58 100644 --- a/packages/eas-cli/src/graphql/generated.ts +++ b/packages/eas-cli/src/graphql/generated.ts @@ -949,7 +949,6 @@ export type AndroidKeystoreInput = { keyAlias: Scalars['String']; keyPassword?: InputMaybe; keystorePassword: Scalars['String']; - type: AndroidKeystoreType; }; export type AndroidKeystoreMutation = { @@ -1138,6 +1137,7 @@ export type AppAndroidAppCredentialsArgs = { export type AppBranchesPaginatedArgs = { after?: InputMaybe; before?: InputMaybe; + filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; @@ -1678,6 +1678,7 @@ export type AppleDevice = { __typename?: 'AppleDevice'; account: Account; appleTeam: AppleTeam; + createdAt?: Maybe; deviceClass?: Maybe; enabled?: Maybe; id: Scalars['ID']; @@ -2067,6 +2068,10 @@ export type BillingPeriod = { start: Scalars['DateTime']; }; +export type BranchFilterInput = { + searchTerm?: InputMaybe; +}; + /** Represents an EAS Build */ export type Build = ActivityTimelineProjectActivity & BuildOrBuildJob & { __typename?: 'Build'; @@ -6101,7 +6106,7 @@ export type CreateAppleDeviceMutationVariables = Exact<{ }>; -export type CreateAppleDeviceMutation = { __typename?: 'RootMutation', appleDevice: { __typename?: 'AppleDeviceMutation', createAppleDevice: { __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null } } }; +export type CreateAppleDeviceMutation = { __typename?: 'RootMutation', appleDevice: { __typename?: 'AppleDeviceMutation', createAppleDevice: { __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null } } }; export type DeleteAppleDeviceMutationVariables = Exact<{ deviceId: Scalars['ID']; @@ -6116,7 +6121,7 @@ export type UpdateAppleDeviceMutationVariables = Exact<{ }>; -export type UpdateAppleDeviceMutation = { __typename?: 'RootMutation', appleDevice: { __typename?: 'AppleDeviceMutation', updateAppleDevice: { __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null } } }; +export type UpdateAppleDeviceMutation = { __typename?: 'RootMutation', appleDevice: { __typename?: 'AppleDeviceMutation', updateAppleDevice: { __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null } } }; export type CreateAppleDeviceRegistrationRequestMutationVariables = Exact<{ appleTeamId: Scalars['ID']; @@ -6148,7 +6153,7 @@ export type CreateAppleProvisioningProfileMutationVariables = Exact<{ }>; -export type CreateAppleProvisioningProfileMutation = { __typename?: 'RootMutation', appleProvisioningProfile: { __typename?: 'AppleProvisioningProfileMutation', createAppleProvisioningProfile: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } } }; +export type CreateAppleProvisioningProfileMutation = { __typename?: 'RootMutation', appleProvisioningProfile: { __typename?: 'AppleProvisioningProfileMutation', createAppleProvisioningProfile: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } } }; export type UpdateAppleProvisioningProfileMutationVariables = Exact<{ appleProvisioningProfileId: Scalars['ID']; @@ -6156,7 +6161,7 @@ export type UpdateAppleProvisioningProfileMutationVariables = Exact<{ }>; -export type UpdateAppleProvisioningProfileMutation = { __typename?: 'RootMutation', appleProvisioningProfile: { __typename?: 'AppleProvisioningProfileMutation', updateAppleProvisioningProfile: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } } }; +export type UpdateAppleProvisioningProfileMutation = { __typename?: 'RootMutation', appleProvisioningProfile: { __typename?: 'AppleProvisioningProfileMutation', updateAppleProvisioningProfile: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } } }; export type DeleteAppleProvisioningProfilesMutationVariables = Exact<{ appleProvisioningProfileIds: Array | Scalars['ID']; @@ -6194,7 +6199,7 @@ export type CreateIosAppBuildCredentialsMutationVariables = Exact<{ }>; -export type CreateIosAppBuildCredentialsMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', createIosAppBuildCredentials: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null } } }; +export type CreateIosAppBuildCredentialsMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', createIosAppBuildCredentials: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null } } }; export type SetDistributionCertificateMutationVariables = Exact<{ iosAppBuildCredentialsId: Scalars['ID']; @@ -6202,7 +6207,7 @@ export type SetDistributionCertificateMutationVariables = Exact<{ }>; -export type SetDistributionCertificateMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', setDistributionCertificate: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null } } }; +export type SetDistributionCertificateMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', setDistributionCertificate: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null } } }; export type SetProvisioningProfileMutationVariables = Exact<{ iosAppBuildCredentialsId: Scalars['ID']; @@ -6210,7 +6215,7 @@ export type SetProvisioningProfileMutationVariables = Exact<{ }>; -export type SetProvisioningProfileMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', setProvisioningProfile: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null } } }; +export type SetProvisioningProfileMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', setProvisioningProfile: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null } } }; export type CreateIosAppCredentialsMutationVariables = Exact<{ iosAppCredentialsInput: IosAppCredentialsInput; @@ -6219,7 +6224,7 @@ export type CreateIosAppCredentialsMutationVariables = Exact<{ }>; -export type CreateIosAppCredentialsMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', createIosAppCredentials: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; +export type CreateIosAppCredentialsMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', createIosAppCredentials: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; export type SetPushKeyMutationVariables = Exact<{ iosAppCredentialsId: Scalars['ID']; @@ -6227,7 +6232,7 @@ export type SetPushKeyMutationVariables = Exact<{ }>; -export type SetPushKeyMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', setPushKey: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; +export type SetPushKeyMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', setPushKey: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; export type SetAppStoreConnectApiKeyForSubmissionsMutationVariables = Exact<{ iosAppCredentialsId: Scalars['ID']; @@ -6235,7 +6240,7 @@ export type SetAppStoreConnectApiKeyForSubmissionsMutationVariables = Exact<{ }>; -export type SetAppStoreConnectApiKeyForSubmissionsMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', setAppStoreConnectApiKeyForSubmissions: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; +export type SetAppStoreConnectApiKeyForSubmissionsMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', setAppStoreConnectApiKeyForSubmissions: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; export type AppStoreConnectApiKeyByAccountQueryVariables = Exact<{ accountName: Scalars['String']; @@ -6258,7 +6263,7 @@ export type AppleDevicesByAppleTeamQueryVariables = Exact<{ }>; -export type AppleDevicesByAppleTeamQuery = { __typename?: 'RootQuery', appleTeam: { __typename?: 'AppleTeamQuery', byAppleTeamIdentifier?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, appleTeam: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } }> } | null } }; +export type AppleDevicesByAppleTeamQuery = { __typename?: 'RootQuery', appleTeam: { __typename?: 'AppleTeamQuery', byAppleTeamIdentifier?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null, appleTeam: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } }> } | null } }; export type AppleDevicesByTeamIdentifierQueryVariables = Exact<{ accountName: Scalars['String']; @@ -6301,7 +6306,7 @@ export type AppleProvisioningProfilesByAppQueryVariables = Exact<{ }>; -export type AppleProvisioningProfilesByAppQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }>, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } } | null }> }> } } }; +export type AppleProvisioningProfilesByAppQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }>, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } } | null }> }> } } }; export type ApplePushKeyByAccountQueryVariables = Exact<{ accountName: Scalars['String']; @@ -6334,7 +6339,7 @@ export type IosAppBuildCredentialsByAppleAppIdentiferAndDistributionQueryVariabl }>; -export type IosAppBuildCredentialsByAppleAppIdentiferAndDistributionQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }> }> } } }; +export type IosAppBuildCredentialsByAppleAppIdentiferAndDistributionQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }> }> } } }; export type IosAppCredentialsWithBuildCredentialsByAppIdentifierIdQueryVariables = Exact<{ projectFullName: Scalars['String']; @@ -6343,7 +6348,7 @@ export type IosAppCredentialsWithBuildCredentialsByAppIdentifierIdQueryVariables }>; -export type IosAppCredentialsWithBuildCredentialsByAppIdentifierIdQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }> } } }; +export type IosAppCredentialsWithBuildCredentialsByAppIdentifierIdQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }> } } }; export type CommonIosAppCredentialsWithBuildCredentialsByAppIdentifierIdQueryVariables = Exact<{ projectFullName: Scalars['String']; @@ -6351,7 +6356,7 @@ export type CommonIosAppCredentialsWithBuildCredentialsByAppIdentifierIdQueryVar }>; -export type CommonIosAppCredentialsWithBuildCredentialsByAppIdentifierIdQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }> } } }; +export type CommonIosAppCredentialsWithBuildCredentialsByAppIdentifierIdQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }> } } }; export type CreateAppMutationVariables = Exact<{ appInput: AppInput; @@ -6762,13 +6767,13 @@ export type AppStoreConnectApiKeyFragment = { __typename?: 'AppStoreConnectApiKe export type AppleAppIdentifierFragment = { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }; -export type AppleDeviceFragment = { __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }; +export type AppleDeviceFragment = { __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }; export type AppleDeviceRegistrationRequestFragment = { __typename?: 'AppleDeviceRegistrationRequest', id: string }; export type AppleDistributionCertificateFragment = { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> }; -export type AppleProvisioningProfileFragment = { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> }; +export type AppleProvisioningProfileFragment = { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> }; export type AppleProvisioningProfileIdentifiersFragment = { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null }; @@ -6778,8 +6783,8 @@ export type AppleTeamFragment = { __typename?: 'AppleTeam', id: string, appleTea export type GoogleServiceAccountKeyFragment = { __typename?: 'GoogleServiceAccountKey', id: string, projectIdentifier: string, privateKeyIdentifier: string, clientEmail: string, clientIdentifier: string, createdAt: any, updatedAt: any }; -export type IosAppBuildCredentialsFragment = { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }; +export type IosAppBuildCredentialsFragment = { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }; export type CommonIosAppCredentialsWithoutBuildCredentialsFragment = { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }; -export type CommonIosAppCredentialsFragment = { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }; +export type CommonIosAppCredentialsFragment = { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }; From 606ce9a1fff18681267fc73f17051ae9c890503e Mon Sep 17 00:00:00 2001 From: Radoslaw Krzemien Date: Mon, 16 Oct 2023 15:30:19 +0200 Subject: [PATCH 060/105] [eas-cli] Fix mutation Fixed mutation that started to fail after schema update See: https://linear.app/expo/issue/ENG-10334/show-creation-time-of-device-record-in-ad-hoc-device-selection-prompt --- packages/eas-cli/src/credentials/android/api/GraphqlClient.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/eas-cli/src/credentials/android/api/GraphqlClient.ts b/packages/eas-cli/src/credentials/android/api/GraphqlClient.ts index d46376507b..f646764ce6 100644 --- a/packages/eas-cli/src/credentials/android/api/GraphqlClient.ts +++ b/packages/eas-cli/src/credentials/android/api/GraphqlClient.ts @@ -260,7 +260,6 @@ export async function createKeystoreAsync( keystorePassword: keystore.keystorePassword, keyAlias: keystore.keyAlias, keyPassword: keystore.keyPassword, - type: keystore.type, }, account.id ); From 41c039c4284b5b0cb373faac29a8a1c45d4b1395 Mon Sep 17 00:00:00 2001 From: Radoslaw Krzemien Date: Mon, 16 Oct 2023 15:31:07 +0200 Subject: [PATCH 061/105] [eas-cli] Display creation date Added creation date to the AppleDevice formatting function used to display details in cli See: https://linear.app/expo/issue/ENG-10334/show-creation-time-of-device-record-in-ad-hoc-device-selection-prompt --- .../credentials/ios/actions/DeviceUtils.ts | 2 +- .../ios/actions/__tests__/DeviceUtils-test.ts | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 packages/eas-cli/src/credentials/ios/actions/__tests__/DeviceUtils-test.ts diff --git a/packages/eas-cli/src/credentials/ios/actions/DeviceUtils.ts b/packages/eas-cli/src/credentials/ios/actions/DeviceUtils.ts index 8682cb354b..03642b836f 100644 --- a/packages/eas-cli/src/credentials/ios/actions/DeviceUtils.ts +++ b/packages/eas-cli/src/credentials/ios/actions/DeviceUtils.ts @@ -31,7 +31,7 @@ export function formatDeviceLabel(device: AppleDeviceFragment): string { const deviceDetails = formatDeviceDetails(device); return `${device.identifier}${deviceDetails !== '' ? ` ${deviceDetails}` : ''}${ device.name ? ` (${device.name})` : '' - }`; + }${device.createdAt ? ` (created at: ${device.createdAt})` : ''}`; } function formatDeviceDetails(device: AppleDeviceFragment): string { diff --git a/packages/eas-cli/src/credentials/ios/actions/__tests__/DeviceUtils-test.ts b/packages/eas-cli/src/credentials/ios/actions/__tests__/DeviceUtils-test.ts new file mode 100644 index 0000000000..7d8b672444 --- /dev/null +++ b/packages/eas-cli/src/credentials/ios/actions/__tests__/DeviceUtils-test.ts @@ -0,0 +1,25 @@ +import { v4 as uuidv4 } from 'uuid'; + +import { AppleDeviceClass, AppleDeviceFragment } from '../../../../graphql/generated'; +import { formatDeviceLabel } from '../DeviceUtils'; + +describe(formatDeviceLabel, () => { + it('returns createdAt clause', async () => { + const currentDate = new Date(); + const appleDevice = { + __typename: 'AppleDevice', + id: uuidv4(), + identifier: 'test-apple-device-id', + name: 'test-apple-device-name', + model: '15', + deviceClass: AppleDeviceClass.Iphone, + createdAt: currentDate.toISOString(), + } as AppleDeviceFragment; + + const result = formatDeviceLabel(appleDevice); + + expect(result).toEqual( + `test-apple-device-id (iPhone 15) (test-apple-device-name) (created at: ${currentDate.toISOString()})` + ); + }); +}); From 4982e12bf6be6a0627766b04414c618e0ddba0ac Mon Sep 17 00:00:00 2001 From: Radoslaw Krzemien Date: Mon, 16 Oct 2023 16:03:09 +0200 Subject: [PATCH 062/105] Revert "[eas-cli] Display creation date" This reverts commit 41c039c4284b5b0cb373faac29a8a1c45d4b1395. --- .../credentials/ios/actions/DeviceUtils.ts | 2 +- .../ios/actions/__tests__/DeviceUtils-test.ts | 25 ------------------- 2 files changed, 1 insertion(+), 26 deletions(-) delete mode 100644 packages/eas-cli/src/credentials/ios/actions/__tests__/DeviceUtils-test.ts diff --git a/packages/eas-cli/src/credentials/ios/actions/DeviceUtils.ts b/packages/eas-cli/src/credentials/ios/actions/DeviceUtils.ts index 03642b836f..8682cb354b 100644 --- a/packages/eas-cli/src/credentials/ios/actions/DeviceUtils.ts +++ b/packages/eas-cli/src/credentials/ios/actions/DeviceUtils.ts @@ -31,7 +31,7 @@ export function formatDeviceLabel(device: AppleDeviceFragment): string { const deviceDetails = formatDeviceDetails(device); return `${device.identifier}${deviceDetails !== '' ? ` ${deviceDetails}` : ''}${ device.name ? ` (${device.name})` : '' - }${device.createdAt ? ` (created at: ${device.createdAt})` : ''}`; + }`; } function formatDeviceDetails(device: AppleDeviceFragment): string { diff --git a/packages/eas-cli/src/credentials/ios/actions/__tests__/DeviceUtils-test.ts b/packages/eas-cli/src/credentials/ios/actions/__tests__/DeviceUtils-test.ts deleted file mode 100644 index 7d8b672444..0000000000 --- a/packages/eas-cli/src/credentials/ios/actions/__tests__/DeviceUtils-test.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { v4 as uuidv4 } from 'uuid'; - -import { AppleDeviceClass, AppleDeviceFragment } from '../../../../graphql/generated'; -import { formatDeviceLabel } from '../DeviceUtils'; - -describe(formatDeviceLabel, () => { - it('returns createdAt clause', async () => { - const currentDate = new Date(); - const appleDevice = { - __typename: 'AppleDevice', - id: uuidv4(), - identifier: 'test-apple-device-id', - name: 'test-apple-device-name', - model: '15', - deviceClass: AppleDeviceClass.Iphone, - createdAt: currentDate.toISOString(), - } as AppleDeviceFragment; - - const result = formatDeviceLabel(appleDevice); - - expect(result).toEqual( - `test-apple-device-id (iPhone 15) (test-apple-device-name) (created at: ${currentDate.toISOString()})` - ); - }); -}); From c5d75568ef49562d852407a31ecf0fb7e0f79606 Mon Sep 17 00:00:00 2001 From: Radoslaw Krzemien Date: Mon, 16 Oct 2023 16:03:25 +0200 Subject: [PATCH 063/105] Revert "[eas-cli] Fix mutation" This reverts commit 606ce9a1fff18681267fc73f17051ae9c890503e. --- packages/eas-cli/src/credentials/android/api/GraphqlClient.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/eas-cli/src/credentials/android/api/GraphqlClient.ts b/packages/eas-cli/src/credentials/android/api/GraphqlClient.ts index f646764ce6..d46376507b 100644 --- a/packages/eas-cli/src/credentials/android/api/GraphqlClient.ts +++ b/packages/eas-cli/src/credentials/android/api/GraphqlClient.ts @@ -260,6 +260,7 @@ export async function createKeystoreAsync( keystorePassword: keystore.keystorePassword, keyAlias: keystore.keyAlias, keyPassword: keystore.keyPassword, + type: keystore.type, }, account.id ); From 0e4f00df2f82e801cedcf934aa4c3e6d4941ae7a Mon Sep 17 00:00:00 2001 From: Radoslaw Krzemien Date: Mon, 16 Oct 2023 16:03:36 +0200 Subject: [PATCH 064/105] Revert "[eas-cli] Generate gql schema" This reverts commit 8df2a08b2009080e523a9ea298260547881c45ad. --- packages/eas-cli/graphql.schema.json | 63 ++++++----------------- packages/eas-cli/src/graphql/generated.ts | 45 +++++++--------- 2 files changed, 36 insertions(+), 72 deletions(-) diff --git a/packages/eas-cli/graphql.schema.json b/packages/eas-cli/graphql.schema.json index 2db401d994..ef113c80b1 100644 --- a/packages/eas-cli/graphql.schema.json +++ b/packages/eas-cli/graphql.schema.json @@ -6317,6 +6317,22 @@ "defaultValue": null, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "type", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AndroidKeystoreType", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null } ], "interfaces": null, @@ -6878,18 +6894,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "filter", - "description": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "BranchFilterInput", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "first", "description": null, @@ -11296,18 +11300,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "deviceClass", "description": null, @@ -14080,29 +14072,6 @@ "enumValues": null, "possibleTypes": null }, - { - "kind": "INPUT_OBJECT", - "name": "BranchFilterInput", - "description": null, - "fields": null, - "inputFields": [ - { - "name": "searchTerm", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, { "kind": "OBJECT", "name": "Build", diff --git a/packages/eas-cli/src/graphql/generated.ts b/packages/eas-cli/src/graphql/generated.ts index 5450516d58..f4f2300628 100644 --- a/packages/eas-cli/src/graphql/generated.ts +++ b/packages/eas-cli/src/graphql/generated.ts @@ -949,6 +949,7 @@ export type AndroidKeystoreInput = { keyAlias: Scalars['String']; keyPassword?: InputMaybe; keystorePassword: Scalars['String']; + type: AndroidKeystoreType; }; export type AndroidKeystoreMutation = { @@ -1137,7 +1138,6 @@ export type AppAndroidAppCredentialsArgs = { export type AppBranchesPaginatedArgs = { after?: InputMaybe; before?: InputMaybe; - filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; @@ -1678,7 +1678,6 @@ export type AppleDevice = { __typename?: 'AppleDevice'; account: Account; appleTeam: AppleTeam; - createdAt?: Maybe; deviceClass?: Maybe; enabled?: Maybe; id: Scalars['ID']; @@ -2068,10 +2067,6 @@ export type BillingPeriod = { start: Scalars['DateTime']; }; -export type BranchFilterInput = { - searchTerm?: InputMaybe; -}; - /** Represents an EAS Build */ export type Build = ActivityTimelineProjectActivity & BuildOrBuildJob & { __typename?: 'Build'; @@ -6106,7 +6101,7 @@ export type CreateAppleDeviceMutationVariables = Exact<{ }>; -export type CreateAppleDeviceMutation = { __typename?: 'RootMutation', appleDevice: { __typename?: 'AppleDeviceMutation', createAppleDevice: { __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null } } }; +export type CreateAppleDeviceMutation = { __typename?: 'RootMutation', appleDevice: { __typename?: 'AppleDeviceMutation', createAppleDevice: { __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null } } }; export type DeleteAppleDeviceMutationVariables = Exact<{ deviceId: Scalars['ID']; @@ -6121,7 +6116,7 @@ export type UpdateAppleDeviceMutationVariables = Exact<{ }>; -export type UpdateAppleDeviceMutation = { __typename?: 'RootMutation', appleDevice: { __typename?: 'AppleDeviceMutation', updateAppleDevice: { __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null } } }; +export type UpdateAppleDeviceMutation = { __typename?: 'RootMutation', appleDevice: { __typename?: 'AppleDeviceMutation', updateAppleDevice: { __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null } } }; export type CreateAppleDeviceRegistrationRequestMutationVariables = Exact<{ appleTeamId: Scalars['ID']; @@ -6153,7 +6148,7 @@ export type CreateAppleProvisioningProfileMutationVariables = Exact<{ }>; -export type CreateAppleProvisioningProfileMutation = { __typename?: 'RootMutation', appleProvisioningProfile: { __typename?: 'AppleProvisioningProfileMutation', createAppleProvisioningProfile: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } } }; +export type CreateAppleProvisioningProfileMutation = { __typename?: 'RootMutation', appleProvisioningProfile: { __typename?: 'AppleProvisioningProfileMutation', createAppleProvisioningProfile: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } } }; export type UpdateAppleProvisioningProfileMutationVariables = Exact<{ appleProvisioningProfileId: Scalars['ID']; @@ -6161,7 +6156,7 @@ export type UpdateAppleProvisioningProfileMutationVariables = Exact<{ }>; -export type UpdateAppleProvisioningProfileMutation = { __typename?: 'RootMutation', appleProvisioningProfile: { __typename?: 'AppleProvisioningProfileMutation', updateAppleProvisioningProfile: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } } }; +export type UpdateAppleProvisioningProfileMutation = { __typename?: 'RootMutation', appleProvisioningProfile: { __typename?: 'AppleProvisioningProfileMutation', updateAppleProvisioningProfile: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } } }; export type DeleteAppleProvisioningProfilesMutationVariables = Exact<{ appleProvisioningProfileIds: Array | Scalars['ID']; @@ -6199,7 +6194,7 @@ export type CreateIosAppBuildCredentialsMutationVariables = Exact<{ }>; -export type CreateIosAppBuildCredentialsMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', createIosAppBuildCredentials: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null } } }; +export type CreateIosAppBuildCredentialsMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', createIosAppBuildCredentials: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null } } }; export type SetDistributionCertificateMutationVariables = Exact<{ iosAppBuildCredentialsId: Scalars['ID']; @@ -6207,7 +6202,7 @@ export type SetDistributionCertificateMutationVariables = Exact<{ }>; -export type SetDistributionCertificateMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', setDistributionCertificate: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null } } }; +export type SetDistributionCertificateMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', setDistributionCertificate: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null } } }; export type SetProvisioningProfileMutationVariables = Exact<{ iosAppBuildCredentialsId: Scalars['ID']; @@ -6215,7 +6210,7 @@ export type SetProvisioningProfileMutationVariables = Exact<{ }>; -export type SetProvisioningProfileMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', setProvisioningProfile: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null } } }; +export type SetProvisioningProfileMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', setProvisioningProfile: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null } } }; export type CreateIosAppCredentialsMutationVariables = Exact<{ iosAppCredentialsInput: IosAppCredentialsInput; @@ -6224,7 +6219,7 @@ export type CreateIosAppCredentialsMutationVariables = Exact<{ }>; -export type CreateIosAppCredentialsMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', createIosAppCredentials: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; +export type CreateIosAppCredentialsMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', createIosAppCredentials: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; export type SetPushKeyMutationVariables = Exact<{ iosAppCredentialsId: Scalars['ID']; @@ -6232,7 +6227,7 @@ export type SetPushKeyMutationVariables = Exact<{ }>; -export type SetPushKeyMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', setPushKey: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; +export type SetPushKeyMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', setPushKey: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; export type SetAppStoreConnectApiKeyForSubmissionsMutationVariables = Exact<{ iosAppCredentialsId: Scalars['ID']; @@ -6240,7 +6235,7 @@ export type SetAppStoreConnectApiKeyForSubmissionsMutationVariables = Exact<{ }>; -export type SetAppStoreConnectApiKeyForSubmissionsMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', setAppStoreConnectApiKeyForSubmissions: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; +export type SetAppStoreConnectApiKeyForSubmissionsMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', setAppStoreConnectApiKeyForSubmissions: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; export type AppStoreConnectApiKeyByAccountQueryVariables = Exact<{ accountName: Scalars['String']; @@ -6263,7 +6258,7 @@ export type AppleDevicesByAppleTeamQueryVariables = Exact<{ }>; -export type AppleDevicesByAppleTeamQuery = { __typename?: 'RootQuery', appleTeam: { __typename?: 'AppleTeamQuery', byAppleTeamIdentifier?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null, appleTeam: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } }> } | null } }; +export type AppleDevicesByAppleTeamQuery = { __typename?: 'RootQuery', appleTeam: { __typename?: 'AppleTeamQuery', byAppleTeamIdentifier?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, appleTeam: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } }> } | null } }; export type AppleDevicesByTeamIdentifierQueryVariables = Exact<{ accountName: Scalars['String']; @@ -6306,7 +6301,7 @@ export type AppleProvisioningProfilesByAppQueryVariables = Exact<{ }>; -export type AppleProvisioningProfilesByAppQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }>, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } } | null }> }> } } }; +export type AppleProvisioningProfilesByAppQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }>, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } } | null }> }> } } }; export type ApplePushKeyByAccountQueryVariables = Exact<{ accountName: Scalars['String']; @@ -6339,7 +6334,7 @@ export type IosAppBuildCredentialsByAppleAppIdentiferAndDistributionQueryVariabl }>; -export type IosAppBuildCredentialsByAppleAppIdentiferAndDistributionQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }> }> } } }; +export type IosAppBuildCredentialsByAppleAppIdentiferAndDistributionQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }> }> } } }; export type IosAppCredentialsWithBuildCredentialsByAppIdentifierIdQueryVariables = Exact<{ projectFullName: Scalars['String']; @@ -6348,7 +6343,7 @@ export type IosAppCredentialsWithBuildCredentialsByAppIdentifierIdQueryVariables }>; -export type IosAppCredentialsWithBuildCredentialsByAppIdentifierIdQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }> } } }; +export type IosAppCredentialsWithBuildCredentialsByAppIdentifierIdQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }> } } }; export type CommonIosAppCredentialsWithBuildCredentialsByAppIdentifierIdQueryVariables = Exact<{ projectFullName: Scalars['String']; @@ -6356,7 +6351,7 @@ export type CommonIosAppCredentialsWithBuildCredentialsByAppIdentifierIdQueryVar }>; -export type CommonIosAppCredentialsWithBuildCredentialsByAppIdentifierIdQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }> } } }; +export type CommonIosAppCredentialsWithBuildCredentialsByAppIdentifierIdQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }> } } }; export type CreateAppMutationVariables = Exact<{ appInput: AppInput; @@ -6767,13 +6762,13 @@ export type AppStoreConnectApiKeyFragment = { __typename?: 'AppStoreConnectApiKe export type AppleAppIdentifierFragment = { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }; -export type AppleDeviceFragment = { __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }; +export type AppleDeviceFragment = { __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }; export type AppleDeviceRegistrationRequestFragment = { __typename?: 'AppleDeviceRegistrationRequest', id: string }; export type AppleDistributionCertificateFragment = { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> }; -export type AppleProvisioningProfileFragment = { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> }; +export type AppleProvisioningProfileFragment = { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> }; export type AppleProvisioningProfileIdentifiersFragment = { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null }; @@ -6783,8 +6778,8 @@ export type AppleTeamFragment = { __typename?: 'AppleTeam', id: string, appleTea export type GoogleServiceAccountKeyFragment = { __typename?: 'GoogleServiceAccountKey', id: string, projectIdentifier: string, privateKeyIdentifier: string, clientEmail: string, clientIdentifier: string, createdAt: any, updatedAt: any }; -export type IosAppBuildCredentialsFragment = { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }; +export type IosAppBuildCredentialsFragment = { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }; export type CommonIosAppCredentialsWithoutBuildCredentialsFragment = { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }; -export type CommonIosAppCredentialsFragment = { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }; +export type CommonIosAppCredentialsFragment = { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }; From 474c95a7b7cd777564f969bb332f2d6608ba0c1c Mon Sep 17 00:00:00 2001 From: Radoslaw Krzemien Date: Mon, 16 Oct 2023 16:03:49 +0200 Subject: [PATCH 065/105] Revert "[eas-cli] Add createdAt to AppleDeviceFragment" This reverts commit 1948fd6e81d33d2756c3b3a3b6014854fc76eabb. --- packages/eas-cli/src/graphql/types/credentials/AppleDevice.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/eas-cli/src/graphql/types/credentials/AppleDevice.ts b/packages/eas-cli/src/graphql/types/credentials/AppleDevice.ts index 6c1721ed48..c19a58b649 100644 --- a/packages/eas-cli/src/graphql/types/credentials/AppleDevice.ts +++ b/packages/eas-cli/src/graphql/types/credentials/AppleDevice.ts @@ -15,6 +15,5 @@ export const AppleDeviceFragmentNode = gql` name model deviceClass - createdAt } `; From 91787e1f76cd3d925e5a337868692ab8ba24338f Mon Sep 17 00:00:00 2001 From: Will Schurman Date: Mon, 16 Oct 2023 10:30:28 -0700 Subject: [PATCH 066/105] [eas-update] Increase asset upload timeout to 90s and reset on upload retry for slow connections (#2085) --- CHANGELOG.md | 2 ++ packages/eas-cli/src/commands/update/index.ts | 18 ++++++++++++------ .../src/project/__tests__/publish-test.ts | 5 ++++- packages/eas-cli/src/project/publish.ts | 9 +++++++-- packages/eas-cli/src/uploads.ts | 4 +++- 5 files changed, 28 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 328e536a3f..50b11dacf4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ› Bug fixes +- EAS Update: Increase asset upload timeout to 90s and reset on upload retry for slow connections. ([#2085](https://github.com/expo/eas-cli/pull/2085) by [@wschurman](https://github.com/wschurman)) + ### 🧹 Chores - Add `requiredPackageManager` to metadata. ([#2067](https://github.com/expo/eas-cli/pull/2067) by [@kadikraman](https://github.com/kadikraman)) diff --git a/packages/eas-cli/src/commands/update/index.ts b/packages/eas-cli/src/commands/update/index.ts index 2bdfecd7d4..f4b1f6cf52 100644 --- a/packages/eas-cli/src/commands/update/index.ts +++ b/packages/eas-cli/src/commands/update/index.ts @@ -250,20 +250,22 @@ export default class UpdatePublish extends EasCommand { realizedPlatforms = Object.keys(assets) as PublishPlatform[]; // Timeout mechanism: - // - Start with 60 second timeout. 60 seconds is chosen because the cloud function that processes - // uploaded assets has a timeout of 60 seconds. - // - Each time one or more assets reports as ready, reset the timeout to 60 seconds. - // - Start upload. Internally, uploadAssetsAsync uploads them all and then checks for successful + // - Start with NO_ACTIVITY_TIMEOUT. 90 seconds is chosen because the cloud function that processes + // uploaded assets has a timeout of 60 seconds and uploading can take some time on a slow connection. + // - Each time one or more assets reports as ready, reset the timeout. + // - Each time an asset upload begins, reset the timeout. This includes retries. + // - Start upload. Internally, uploadAssetsAsync uploads them all first and then checks for successful // processing every (5 + n) seconds with a linear backoff of n + 1 second. // - At the same time as upload is started, start timeout checker which checks every 1 second to see // if timeout has been reached. When timeout expires, send a cancellation signal to currently running // upload function call to instruct it to stop uploading or checking for successful processing. + const NO_ACTIVITY_TIMEOUT = 90 * 1000; // 90 seconds let lastUploadedStorageKeys = new Set(); let lastAssetUploadResults: { asset: RawAsset & { storageKey: string }; finished: boolean; }[] = []; - let timeAtWhichToTimeout = Date.now() + 60 * 1000; // sixty seconds from now + let timeAtWhichToTimeout = Date.now() + NO_ACTIVITY_TIMEOUT; const cancelationToken = { isCanceledOrFinished: false }; const uploadResults = await Promise.race([ @@ -277,7 +279,7 @@ export default class UpdatePublish extends EasCommand { assetUploadResults.filter(r => r.finished).map(r => r.asset.storageKey) ); if (!areSetsEqual(currentUploadedStorageKeys, lastUploadedStorageKeys)) { - timeAtWhichToTimeout = Date.now() + 60 * 1000; // reset timeout to sixty seconds from now + timeAtWhichToTimeout = Date.now() + NO_ACTIVITY_TIMEOUT; // reset timeout to NO_ACTIVITY_TIMEOUT lastUploadedStorageKeys = currentUploadedStorageKeys; lastAssetUploadResults = assetUploadResults; } @@ -285,6 +287,10 @@ export default class UpdatePublish extends EasCommand { const totalAssets = assetUploadResults.length; const missingAssetCount = assetUploadResults.filter(a => !a.finished).length; assetSpinner.text = `Uploading (${totalAssets - missingAssetCount}/${totalAssets})`; + }, + () => { + // when an upload is retried, reset the timeout as we know this will now need more time + timeAtWhichToTimeout = Date.now() + NO_ACTIVITY_TIMEOUT; // reset timeout to NO_ACTIVITY_TIMEOUT } ), (async () => { diff --git a/packages/eas-cli/src/project/__tests__/publish-test.ts b/packages/eas-cli/src/project/__tests__/publish-test.ts index bf9c2f4940..9da4d1eb27 100644 --- a/packages/eas-cli/src/project/__tests__/publish-test.ts +++ b/packages/eas-cli/src/project/__tests__/publish-test.ts @@ -576,6 +576,7 @@ describe(uploadAssetsAsync, () => { assetsForUpdateInfoGroup, testProjectId, { isCanceledOrFinished: false }, + () => {}, () => {} ) ).resolves.toEqual({ @@ -622,6 +623,7 @@ describe(uploadAssetsAsync, () => { { isCanceledOrFinished: false, }, + () => {}, () => {} ) ).resolves.toEqual({ @@ -667,7 +669,8 @@ describe(uploadAssetsAsync, () => { assetsForUpdateInfoGroup, testProjectId, { isCanceledOrFinished: false }, - onAssetUploadResultsChangedFn + onAssetUploadResultsChangedFn, + () => {} ); expect(onAssetUploadResultsChangedFn).toHaveBeenCalledTimes(3); }); diff --git a/packages/eas-cli/src/project/publish.ts b/packages/eas-cli/src/project/publish.ts index e67a3f4990..4c1cda8933 100644 --- a/packages/eas-cli/src/project/publish.ts +++ b/packages/eas-cli/src/project/publish.ts @@ -424,7 +424,8 @@ export async function uploadAssetsAsync( cancelationToken: { isCanceledOrFinished: boolean }, onAssetUploadResultsChanged: ( assetUploadResults: { asset: RawAsset & { storageKey: string }; finished: boolean }[] - ) => void + ) => void, + onAssetUploadBegin: () => void ): Promise { let assets: RawAsset[] = []; let platform: keyof CollectedAssets; @@ -486,7 +487,11 @@ export async function uploadAssetsAsync( throw Error('Canceled upload'); } const presignedPost: PresignedPost = JSON.parse(specifications[i]); - await uploadWithPresignedPostWithRetryAsync(missingAsset.path, presignedPost); + await uploadWithPresignedPostWithRetryAsync( + missingAsset.path, + presignedPost, + onAssetUploadBegin + ); }); }), ]); diff --git a/packages/eas-cli/src/uploads.ts b/packages/eas-cli/src/uploads.ts index 3ee101956a..0d946acf33 100644 --- a/packages/eas-cli/src/uploads.ts +++ b/packages/eas-cli/src/uploads.ts @@ -28,13 +28,15 @@ export async function uploadFileAtPathToGCSAsync( export async function uploadWithPresignedPostWithRetryAsync( file: string, - presignedPost: PresignedPost + presignedPost: PresignedPost, + onAssetUploadBegin: () => void ): Promise { return await promiseRetry( async retry => { // retry fetch errors (usually connection or DNS errors) let response: Response; try { + onAssetUploadBegin(); response = await uploadWithPresignedPostAsync(file, presignedPost); } catch (e: any) { return retry(e); From aa14f21597341e91ce85af53a1f83e471d20be01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rados=C5=82aw=20Krzemie=C5=84?= Date: Wed, 18 Oct 2023 17:52:04 +0200 Subject: [PATCH 067/105] [eas-cli] [ENG-10334] Display device creation date (#2092) * [eas-cli] Add createdAt to AppleDeviceFragment Added a new field to gql type to fetch it later See: https://linear.app/expo/issue/ENG-10334/show-creation-time-of-device-record-in-ad-hoc-device-selection-prompt * [eas-cli] Generate gql schema Generated a new graphql schema based on updated local version of www See: https://linear.app/expo/issue/ENG-10334/show-creation-time-of-device-record-in-ad-hoc-device-selection-prompt * [eas-cli] Fix mutation Fixed mutation that started to fail after schema update See: https://linear.app/expo/issue/ENG-10334/show-creation-time-of-device-record-in-ad-hoc-device-selection-prompt * [eas-cli] Display creation date Added creation date to the AppleDevice formatting function used to display details in cli See: https://linear.app/expo/issue/ENG-10334/show-creation-time-of-device-record-in-ad-hoc-device-selection-prompt * [eas-cli] Add changelog Manually added the changelog entry since the automation failed for some reason See: https://linear.app/expo/issue/ENG-10334/show-creation-time-of-device-record-in-ad-hoc-device-selection-prompt --- CHANGELOG.md | 1 + packages/eas-cli/graphql.schema.json | 63 ++++++++++++++----- .../credentials/android/api/GraphqlClient.ts | 1 - .../credentials/ios/actions/DeviceUtils.ts | 2 +- .../ios/actions/__tests__/DeviceUtils-test.ts | 25 ++++++++ packages/eas-cli/src/graphql/generated.ts | 45 +++++++------ .../graphql/types/credentials/AppleDevice.ts | 1 + 7 files changed, 100 insertions(+), 38 deletions(-) create mode 100644 packages/eas-cli/src/credentials/ios/actions/__tests__/DeviceUtils-test.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 50b11dacf4..440a9f53cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ This is the log of notable changes to EAS CLI and related packages. ### 🧹 Chores - Add `requiredPackageManager` to metadata. ([#2067](https://github.com/expo/eas-cli/pull/2067) by [@kadikraman](https://github.com/kadikraman)) +- Display Apple device creation date when listing devices. ([#2092](https://github.com/expo/eas-cli/pull/2092) by [@radoslawkrzemien](https://github.com/radoslawkrzemien)) ## [5.4.0](https://github.com/expo/eas-cli/releases/tag/v5.4.0) - 2023-09-28 diff --git a/packages/eas-cli/graphql.schema.json b/packages/eas-cli/graphql.schema.json index ef113c80b1..2db401d994 100644 --- a/packages/eas-cli/graphql.schema.json +++ b/packages/eas-cli/graphql.schema.json @@ -6317,22 +6317,6 @@ "defaultValue": null, "isDeprecated": false, "deprecationReason": null - }, - { - "name": "type", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "AndroidKeystoreType", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null } ], "interfaces": null, @@ -6894,6 +6878,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "filter", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "BranchFilterInput", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "first", "description": null, @@ -11300,6 +11296,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "createdAt", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "deviceClass", "description": null, @@ -14072,6 +14080,29 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "INPUT_OBJECT", + "name": "BranchFilterInput", + "description": null, + "fields": null, + "inputFields": [ + { + "name": "searchTerm", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, { "kind": "OBJECT", "name": "Build", diff --git a/packages/eas-cli/src/credentials/android/api/GraphqlClient.ts b/packages/eas-cli/src/credentials/android/api/GraphqlClient.ts index d46376507b..f646764ce6 100644 --- a/packages/eas-cli/src/credentials/android/api/GraphqlClient.ts +++ b/packages/eas-cli/src/credentials/android/api/GraphqlClient.ts @@ -260,7 +260,6 @@ export async function createKeystoreAsync( keystorePassword: keystore.keystorePassword, keyAlias: keystore.keyAlias, keyPassword: keystore.keyPassword, - type: keystore.type, }, account.id ); diff --git a/packages/eas-cli/src/credentials/ios/actions/DeviceUtils.ts b/packages/eas-cli/src/credentials/ios/actions/DeviceUtils.ts index 8682cb354b..03642b836f 100644 --- a/packages/eas-cli/src/credentials/ios/actions/DeviceUtils.ts +++ b/packages/eas-cli/src/credentials/ios/actions/DeviceUtils.ts @@ -31,7 +31,7 @@ export function formatDeviceLabel(device: AppleDeviceFragment): string { const deviceDetails = formatDeviceDetails(device); return `${device.identifier}${deviceDetails !== '' ? ` ${deviceDetails}` : ''}${ device.name ? ` (${device.name})` : '' - }`; + }${device.createdAt ? ` (created at: ${device.createdAt})` : ''}`; } function formatDeviceDetails(device: AppleDeviceFragment): string { diff --git a/packages/eas-cli/src/credentials/ios/actions/__tests__/DeviceUtils-test.ts b/packages/eas-cli/src/credentials/ios/actions/__tests__/DeviceUtils-test.ts new file mode 100644 index 0000000000..7d8b672444 --- /dev/null +++ b/packages/eas-cli/src/credentials/ios/actions/__tests__/DeviceUtils-test.ts @@ -0,0 +1,25 @@ +import { v4 as uuidv4 } from 'uuid'; + +import { AppleDeviceClass, AppleDeviceFragment } from '../../../../graphql/generated'; +import { formatDeviceLabel } from '../DeviceUtils'; + +describe(formatDeviceLabel, () => { + it('returns createdAt clause', async () => { + const currentDate = new Date(); + const appleDevice = { + __typename: 'AppleDevice', + id: uuidv4(), + identifier: 'test-apple-device-id', + name: 'test-apple-device-name', + model: '15', + deviceClass: AppleDeviceClass.Iphone, + createdAt: currentDate.toISOString(), + } as AppleDeviceFragment; + + const result = formatDeviceLabel(appleDevice); + + expect(result).toEqual( + `test-apple-device-id (iPhone 15) (test-apple-device-name) (created at: ${currentDate.toISOString()})` + ); + }); +}); diff --git a/packages/eas-cli/src/graphql/generated.ts b/packages/eas-cli/src/graphql/generated.ts index f4f2300628..5450516d58 100644 --- a/packages/eas-cli/src/graphql/generated.ts +++ b/packages/eas-cli/src/graphql/generated.ts @@ -949,7 +949,6 @@ export type AndroidKeystoreInput = { keyAlias: Scalars['String']; keyPassword?: InputMaybe; keystorePassword: Scalars['String']; - type: AndroidKeystoreType; }; export type AndroidKeystoreMutation = { @@ -1138,6 +1137,7 @@ export type AppAndroidAppCredentialsArgs = { export type AppBranchesPaginatedArgs = { after?: InputMaybe; before?: InputMaybe; + filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; @@ -1678,6 +1678,7 @@ export type AppleDevice = { __typename?: 'AppleDevice'; account: Account; appleTeam: AppleTeam; + createdAt?: Maybe; deviceClass?: Maybe; enabled?: Maybe; id: Scalars['ID']; @@ -2067,6 +2068,10 @@ export type BillingPeriod = { start: Scalars['DateTime']; }; +export type BranchFilterInput = { + searchTerm?: InputMaybe; +}; + /** Represents an EAS Build */ export type Build = ActivityTimelineProjectActivity & BuildOrBuildJob & { __typename?: 'Build'; @@ -6101,7 +6106,7 @@ export type CreateAppleDeviceMutationVariables = Exact<{ }>; -export type CreateAppleDeviceMutation = { __typename?: 'RootMutation', appleDevice: { __typename?: 'AppleDeviceMutation', createAppleDevice: { __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null } } }; +export type CreateAppleDeviceMutation = { __typename?: 'RootMutation', appleDevice: { __typename?: 'AppleDeviceMutation', createAppleDevice: { __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null } } }; export type DeleteAppleDeviceMutationVariables = Exact<{ deviceId: Scalars['ID']; @@ -6116,7 +6121,7 @@ export type UpdateAppleDeviceMutationVariables = Exact<{ }>; -export type UpdateAppleDeviceMutation = { __typename?: 'RootMutation', appleDevice: { __typename?: 'AppleDeviceMutation', updateAppleDevice: { __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null } } }; +export type UpdateAppleDeviceMutation = { __typename?: 'RootMutation', appleDevice: { __typename?: 'AppleDeviceMutation', updateAppleDevice: { __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null } } }; export type CreateAppleDeviceRegistrationRequestMutationVariables = Exact<{ appleTeamId: Scalars['ID']; @@ -6148,7 +6153,7 @@ export type CreateAppleProvisioningProfileMutationVariables = Exact<{ }>; -export type CreateAppleProvisioningProfileMutation = { __typename?: 'RootMutation', appleProvisioningProfile: { __typename?: 'AppleProvisioningProfileMutation', createAppleProvisioningProfile: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } } }; +export type CreateAppleProvisioningProfileMutation = { __typename?: 'RootMutation', appleProvisioningProfile: { __typename?: 'AppleProvisioningProfileMutation', createAppleProvisioningProfile: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } } }; export type UpdateAppleProvisioningProfileMutationVariables = Exact<{ appleProvisioningProfileId: Scalars['ID']; @@ -6156,7 +6161,7 @@ export type UpdateAppleProvisioningProfileMutationVariables = Exact<{ }>; -export type UpdateAppleProvisioningProfileMutation = { __typename?: 'RootMutation', appleProvisioningProfile: { __typename?: 'AppleProvisioningProfileMutation', updateAppleProvisioningProfile: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } } }; +export type UpdateAppleProvisioningProfileMutation = { __typename?: 'RootMutation', appleProvisioningProfile: { __typename?: 'AppleProvisioningProfileMutation', updateAppleProvisioningProfile: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } } }; export type DeleteAppleProvisioningProfilesMutationVariables = Exact<{ appleProvisioningProfileIds: Array | Scalars['ID']; @@ -6194,7 +6199,7 @@ export type CreateIosAppBuildCredentialsMutationVariables = Exact<{ }>; -export type CreateIosAppBuildCredentialsMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', createIosAppBuildCredentials: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null } } }; +export type CreateIosAppBuildCredentialsMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', createIosAppBuildCredentials: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null } } }; export type SetDistributionCertificateMutationVariables = Exact<{ iosAppBuildCredentialsId: Scalars['ID']; @@ -6202,7 +6207,7 @@ export type SetDistributionCertificateMutationVariables = Exact<{ }>; -export type SetDistributionCertificateMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', setDistributionCertificate: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null } } }; +export type SetDistributionCertificateMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', setDistributionCertificate: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null } } }; export type SetProvisioningProfileMutationVariables = Exact<{ iosAppBuildCredentialsId: Scalars['ID']; @@ -6210,7 +6215,7 @@ export type SetProvisioningProfileMutationVariables = Exact<{ }>; -export type SetProvisioningProfileMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', setProvisioningProfile: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null } } }; +export type SetProvisioningProfileMutation = { __typename?: 'RootMutation', iosAppBuildCredentials: { __typename?: 'IosAppBuildCredentialsMutation', setProvisioningProfile: { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null } } }; export type CreateIosAppCredentialsMutationVariables = Exact<{ iosAppCredentialsInput: IosAppCredentialsInput; @@ -6219,7 +6224,7 @@ export type CreateIosAppCredentialsMutationVariables = Exact<{ }>; -export type CreateIosAppCredentialsMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', createIosAppCredentials: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; +export type CreateIosAppCredentialsMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', createIosAppCredentials: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; export type SetPushKeyMutationVariables = Exact<{ iosAppCredentialsId: Scalars['ID']; @@ -6227,7 +6232,7 @@ export type SetPushKeyMutationVariables = Exact<{ }>; -export type SetPushKeyMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', setPushKey: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; +export type SetPushKeyMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', setPushKey: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; export type SetAppStoreConnectApiKeyForSubmissionsMutationVariables = Exact<{ iosAppCredentialsId: Scalars['ID']; @@ -6235,7 +6240,7 @@ export type SetAppStoreConnectApiKeyForSubmissionsMutationVariables = Exact<{ }>; -export type SetAppStoreConnectApiKeyForSubmissionsMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', setAppStoreConnectApiKeyForSubmissions: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; +export type SetAppStoreConnectApiKeyForSubmissionsMutation = { __typename?: 'RootMutation', iosAppCredentials: { __typename?: 'IosAppCredentialsMutation', setAppStoreConnectApiKeyForSubmissions: { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null } } }; export type AppStoreConnectApiKeyByAccountQueryVariables = Exact<{ accountName: Scalars['String']; @@ -6258,7 +6263,7 @@ export type AppleDevicesByAppleTeamQueryVariables = Exact<{ }>; -export type AppleDevicesByAppleTeamQuery = { __typename?: 'RootQuery', appleTeam: { __typename?: 'AppleTeamQuery', byAppleTeamIdentifier?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, appleTeam: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } }> } | null } }; +export type AppleDevicesByAppleTeamQuery = { __typename?: 'RootQuery', appleTeam: { __typename?: 'AppleTeamQuery', byAppleTeamIdentifier?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null, appleTeam: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } }> } | null } }; export type AppleDevicesByTeamIdentifierQueryVariables = Exact<{ accountName: Scalars['String']; @@ -6301,7 +6306,7 @@ export type AppleProvisioningProfilesByAppQueryVariables = Exact<{ }>; -export type AppleProvisioningProfilesByAppQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }>, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } } | null }> }> } } }; +export type AppleProvisioningProfilesByAppQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }>, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } } | null }> }> } } }; export type ApplePushKeyByAccountQueryVariables = Exact<{ accountName: Scalars['String']; @@ -6334,7 +6339,7 @@ export type IosAppBuildCredentialsByAppleAppIdentiferAndDistributionQueryVariabl }>; -export type IosAppBuildCredentialsByAppleAppIdentiferAndDistributionQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }> }> } } }; +export type IosAppBuildCredentialsByAppleAppIdentiferAndDistributionQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }> }> } } }; export type IosAppCredentialsWithBuildCredentialsByAppIdentifierIdQueryVariables = Exact<{ projectFullName: Scalars['String']; @@ -6343,7 +6348,7 @@ export type IosAppCredentialsWithBuildCredentialsByAppIdentifierIdQueryVariables }>; -export type IosAppCredentialsWithBuildCredentialsByAppIdentifierIdQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }> } } }; +export type IosAppCredentialsWithBuildCredentialsByAppIdentifierIdQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }> } } }; export type CommonIosAppCredentialsWithBuildCredentialsByAppIdentifierIdQueryVariables = Exact<{ projectFullName: Scalars['String']; @@ -6351,7 +6356,7 @@ export type CommonIosAppCredentialsWithBuildCredentialsByAppIdentifierIdQueryVar }>; -export type CommonIosAppCredentialsWithBuildCredentialsByAppIdentifierIdQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }> } } }; +export type CommonIosAppCredentialsWithBuildCredentialsByAppIdentifierIdQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byFullName: { __typename?: 'App', id: string, iosAppCredentials: Array<{ __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }> } } }; export type CreateAppMutationVariables = Exact<{ appInput: AppInput; @@ -6762,13 +6767,13 @@ export type AppStoreConnectApiKeyFragment = { __typename?: 'AppStoreConnectApiKe export type AppleAppIdentifierFragment = { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }; -export type AppleDeviceFragment = { __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }; +export type AppleDeviceFragment = { __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }; export type AppleDeviceRegistrationRequestFragment = { __typename?: 'AppleDeviceRegistrationRequest', id: string }; export type AppleDistributionCertificateFragment = { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> }; -export type AppleProvisioningProfileFragment = { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> }; +export type AppleProvisioningProfileFragment = { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> }; export type AppleProvisioningProfileIdentifiersFragment = { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null }; @@ -6778,8 +6783,8 @@ export type AppleTeamFragment = { __typename?: 'AppleTeam', id: string, appleTea export type GoogleServiceAccountKeyFragment = { __typename?: 'GoogleServiceAccountKey', id: string, projectIdentifier: string, privateKeyIdentifier: string, clientEmail: string, clientIdentifier: string, createdAt: any, updatedAt: any }; -export type IosAppBuildCredentialsFragment = { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }; +export type IosAppBuildCredentialsFragment = { __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }; export type CommonIosAppCredentialsWithoutBuildCredentialsFragment = { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }; -export type CommonIosAppCredentialsFragment = { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }; +export type CommonIosAppCredentialsFragment = { __typename?: 'IosAppCredentials', id: string, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosDistributionType: IosDistributionType, distributionCertificate?: { __typename?: 'AppleDistributionCertificate', id: string, certificateP12?: string | null, certificatePassword?: string | null, serialNumber: string, developerPortalIdentifier?: string | null, validityNotBefore: any, validityNotAfter: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppBuildCredentialsList: Array<{ __typename?: 'IosAppBuildCredentials', id: string, iosAppCredentials: { __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, developerPortalIdentifier?: string | null } | null }> } | null, provisioningProfile?: { __typename?: 'AppleProvisioningProfile', id: string, expiration: any, developerPortalIdentifier?: string | null, provisioningProfile?: string | null, updatedAt: any, status: string, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleDevices: Array<{ __typename?: 'AppleDevice', id: string, identifier: string, name?: string | null, model?: string | null, deviceClass?: AppleDeviceClass | null, createdAt?: any | null }> } | null }>, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string }, pushKey?: { __typename?: 'ApplePushKey', id: string, keyIdentifier: string, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null, iosAppCredentialsList: Array<{ __typename?: 'IosAppCredentials', id: string, app: { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }, appleAppIdentifier: { __typename?: 'AppleAppIdentifier', id: string, bundleIdentifier: string } }> } | null, appStoreConnectApiKeyForSubmissions?: { __typename?: 'AppStoreConnectApiKey', id: string, issuerIdentifier: string, keyIdentifier: string, name?: string | null, roles?: Array | null, createdAt: any, updatedAt: any, appleTeam?: { __typename?: 'AppleTeam', id: string, appleTeamIdentifier: string, appleTeamName?: string | null } | null } | null }; diff --git a/packages/eas-cli/src/graphql/types/credentials/AppleDevice.ts b/packages/eas-cli/src/graphql/types/credentials/AppleDevice.ts index c19a58b649..6c1721ed48 100644 --- a/packages/eas-cli/src/graphql/types/credentials/AppleDevice.ts +++ b/packages/eas-cli/src/graphql/types/credentials/AppleDevice.ts @@ -15,5 +15,6 @@ export const AppleDeviceFragmentNode = gql` name model deviceClass + createdAt } `; From 5ed155e67aa4700d57f557b9e0fb13073f092917 Mon Sep 17 00:00:00 2001 From: Will Schurman Date: Wed, 18 Oct 2023 12:05:11 -0700 Subject: [PATCH 068/105] [ci] Try to fix changelog-bot usage of hub CLI (#2095) --- .github/workflows/changelog-bot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/changelog-bot.yml b/.github/workflows/changelog-bot.yml index 7efd574d9f..ea2bd67afa 100644 --- a/.github/workflows/changelog-bot.yml +++ b/.github/workflows/changelog-bot.yml @@ -16,7 +16,7 @@ jobs: with: node-version: 18 - name: Checkout Pull Request - run: hub pr checkout ${{ github.event.issue.number }} + run: gh pr checkout ${{ github.event.issue.number }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Install dependencies From 743ae7c6483c015de941e55f8078d45694712995 Mon Sep 17 00:00:00 2001 From: Josh McFarlin <32019743+Josh-McFarlin@users.noreply.github.com> Date: Wed, 18 Oct 2023 14:18:20 -0700 Subject: [PATCH 069/105] [eas-cli] VCS Context Fields to replace helper functions (#2086) * [eas-cli] Add context fields for vcs clients * [eas-cli] Replace vcs client helper with new context field * [eas-cli] Pass instance of vcs client in helpers instead of re-calling vcs helper * update CHANGELOG.md --- CHANGELOG.md | 1 + packages/eas-cli/src/branch/utils.ts | 7 ++- .../build/android/__tests__/version-test.ts | 9 +++- packages/eas-cli/src/build/android/build.ts | 16 +++++- .../eas-cli/src/build/android/prepareJob.ts | 3 +- .../build/android/syncProjectConfiguration.ts | 5 +- packages/eas-cli/src/build/android/version.ts | 10 ++-- packages/eas-cli/src/build/build.ts | 8 +-- packages/eas-cli/src/build/configure.ts | 25 ++++++---- packages/eas-cli/src/build/context.ts | 2 + packages/eas-cli/src/build/createContext.ts | 7 ++- .../src/build/ios/__tests__/version-test.ts | 33 +++++++++---- packages/eas-cli/src/build/ios/build.ts | 4 ++ packages/eas-cli/src/build/ios/prepareJob.ts | 3 +- .../src/build/ios/syncProjectConfiguration.ts | 7 ++- packages/eas-cli/src/build/ios/version.ts | 28 +++++++---- packages/eas-cli/src/build/metadata.ts | 14 +++--- .../eas-cli/src/build/runBuildAndSubmit.ts | 18 +++++-- packages/eas-cli/src/build/utils/devClient.ts | 13 +++-- .../eas-cli/src/build/utils/repository.ts | 49 +++++++++++-------- packages/eas-cli/src/build/validate.ts | 5 +- .../eas-cli/src/commandUtils/EasCommand.ts | 4 ++ .../context/VcsClientContextField.ts | 9 ++++ .../eas-cli/src/commands/branch/create.ts | 4 +- packages/eas-cli/src/commands/build/cancel.ts | 1 + .../eas-cli/src/commands/build/configure.ts | 20 ++++++-- packages/eas-cli/src/commands/build/index.ts | 3 ++ .../eas-cli/src/commands/build/inspect.ts | 9 ++-- .../eas-cli/src/commands/build/internal.ts | 3 ++ packages/eas-cli/src/commands/build/list.ts | 1 + packages/eas-cli/src/commands/build/resign.ts | 5 ++ packages/eas-cli/src/commands/build/run.ts | 1 + .../eas-cli/src/commands/build/version/get.ts | 3 ++ .../eas-cli/src/commands/build/version/set.ts | 3 ++ .../src/commands/build/version/sync.ts | 13 ++++- packages/eas-cli/src/commands/build/view.ts | 1 + packages/eas-cli/src/commands/credentials.ts | 3 ++ packages/eas-cli/src/commands/diagnostics.ts | 12 +++-- .../eas-cli/src/commands/metadata/pull.ts | 5 +- .../eas-cli/src/commands/metadata/push.ts | 5 +- packages/eas-cli/src/commands/submit.ts | 3 ++ .../update/__tests__/configure.test.ts | 3 ++ .../eas-cli/src/commands/update/configure.ts | 6 ++- packages/eas-cli/src/commands/update/index.ts | 16 ++++-- .../commands/update/roll-back-to-embedded.ts | 16 ++++-- .../android/actions/BuildCredentialsUtils.ts | 1 + packages/eas-cli/src/credentials/context.ts | 4 ++ .../src/credentials/credentialsJson/update.ts | 15 +++--- .../SetUpAdhocProvisioningProfile-test.ts | 2 + .../src/credentials/manager/HelperActions.ts | 2 + .../src/credentials/manager/ManageAndroid.ts | 3 +- .../src/credentials/manager/ManageIos.ts | 3 ++ .../src/credentials/manager/SelectPlatform.ts | 2 + .../manager/__tests__/ManageAndroid-test.ts | 2 + packages/eas-cli/src/metadata/auth.ts | 15 ++++-- .../src/project/__tests__/workflow-test.ts | 22 ++++++--- .../android/__tests__/applicationId-test.ts | 32 ++++++++---- .../project/android/__tests__/gradle-test.ts | 37 +++++++++----- .../src/project/android/applicationId.ts | 10 ++-- .../eas-cli/src/project/android/gradle.ts | 6 ++- .../src/project/applicationIdentifier.ts | 18 ++++--- .../ios/__tests__/bundleIdentifier-test.ts | 24 ++++++--- .../src/project/ios/bundleIdentifier.ts | 10 ++-- .../eas-cli/src/project/ios/entitlements.ts | 6 ++- packages/eas-cli/src/project/ios/scheme.ts | 6 ++- packages/eas-cli/src/project/ios/target.ts | 41 +++++++++++----- packages/eas-cli/src/project/publish.ts | 42 +++++++++------- packages/eas-cli/src/project/workflow.ts | 19 ++++--- .../submit/android/AndroidSubmitCommand.ts | 4 +- .../__tests__/AndroidSubmitCommand-test.ts | 7 +++ .../__tests__/ServiceAccountSource-test.ts | 6 +++ packages/eas-cli/src/submit/context.ts | 5 ++ packages/eas-cli/src/submit/ios/AppProduce.ts | 2 +- .../eas-cli/src/submit/ios/AscApiKeySource.ts | 2 +- .../ios/__tests__/AscApiKeySource-test.ts | 5 ++ .../ios/__tests__/IosSubmitCommand-test.ts | 5 ++ packages/eas-cli/src/update/configure.ts | 10 ++-- .../eas-cli/src/update/ios/UpdatesModule.ts | 8 +-- 78 files changed, 560 insertions(+), 232 deletions(-) create mode 100644 packages/eas-cli/src/commandUtils/context/VcsClientContextField.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 440a9f53cd..2603629672 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ This is the log of notable changes to EAS CLI and related packages. ### 🧹 Chores - Add `requiredPackageManager` to metadata. ([#2067](https://github.com/expo/eas-cli/pull/2067) by [@kadikraman](https://github.com/kadikraman)) +- Move `getVcsClient` into command context. ([#2086](https://github.com/expo/eas-cli/pull/2086) by [@Josh-McFarlin](https://github.com/Josh-McFarlin)) - Display Apple device creation date when listing devices. ([#2092](https://github.com/expo/eas-cli/pull/2092) by [@radoslawkrzemien](https://github.com/radoslawkrzemien)) ## [5.4.0](https://github.com/expo/eas-cli/releases/tag/v5.4.0) - 2023-09-28 diff --git a/packages/eas-cli/src/branch/utils.ts b/packages/eas-cli/src/branch/utils.ts index fcb73b1003..d9affe89f9 100644 --- a/packages/eas-cli/src/branch/utils.ts +++ b/packages/eas-cli/src/branch/utils.ts @@ -1,9 +1,8 @@ -import { getVcsClient } from '../vcs'; +import { Client } from '../vcs/vcs'; -export async function getDefaultBranchNameAsync(): Promise { +export async function getDefaultBranchNameAsync(vcsClient: Client): Promise { return ( - (await getVcsClient().getBranchNameAsync()) || - `branch-${Math.random().toString(36).substring(2, 4)}` + (await vcsClient.getBranchNameAsync()) || `branch-${Math.random().toString(36).substring(2, 4)}` ); } diff --git a/packages/eas-cli/src/build/android/__tests__/version-test.ts b/packages/eas-cli/src/build/android/__tests__/version-test.ts index 01eb6c3cf7..9cca21117c 100644 --- a/packages/eas-cli/src/build/android/__tests__/version-test.ts +++ b/packages/eas-cli/src/build/android/__tests__/version-test.ts @@ -8,6 +8,7 @@ import os from 'os'; import path from 'path'; import { getAppBuildGradleAsync, resolveConfigValue } from '../../../project/android/gradleUtils'; +import { getVcsClient } from '../../../vcs'; import { BumpStrategy, bumpVersionAsync, @@ -18,6 +19,8 @@ import { const fsReal = jest.requireActual('fs').promises as typeof fs; jest.mock('fs'); +const vcsClient = getVcsClient(); + afterAll(async () => { // do not remove the following line // this fixes a weird error with tempy in @expo/image-utils @@ -191,7 +194,8 @@ describe(maybeResolveVersionsAsync, () => { const { appVersion, appBuildVersion } = await maybeResolveVersionsAsync( '/app', exp, - {} as BuildProfile + {} as BuildProfile, + vcsClient ); expect(appVersion).toBe('3.0.0'); expect(appBuildVersion).toBe('123'); @@ -203,7 +207,8 @@ describe(maybeResolveVersionsAsync, () => { const { appVersion, appBuildVersion } = await maybeResolveVersionsAsync( '/app', exp, - {} as BuildProfile + {} as BuildProfile, + vcsClient ); expect(appVersion).toBe('5.0.0'); expect(appBuildVersion).toBe('126'); diff --git a/packages/eas-cli/src/build/android/build.ts b/packages/eas-cli/src/build/android/build.ts index 6b1d8b6398..16c2559f48 100644 --- a/packages/eas-cli/src/build/android/build.ts +++ b/packages/eas-cli/src/build/android/build.ts @@ -59,13 +59,22 @@ This means that it will most likely produce an AAB and you will not be able to i await checkGoogleServicesFileAsync(ctx); await validatePNGsForManagedProjectAsync(ctx); - const gradleContext = await resolveGradleBuildContextAsync(ctx.projectDir, buildProfile); + const gradleContext = await resolveGradleBuildContextAsync( + ctx.projectDir, + buildProfile, + ctx.vcsClient + ); if (ctx.workflow === Workflow.MANAGED) { await ensureApplicationIdIsDefinedForManagedProjectAsync(ctx); } - const applicationId = await getApplicationIdAsync(ctx.projectDir, ctx.exp, gradleContext); + const applicationId = await getApplicationIdAsync( + ctx.projectDir, + ctx.exp, + ctx.vcsClient, + gradleContext + ); const versionCodeOverride = ctx.easJsonCliConfig?.appVersionSource === AppVersionSource.REMOTE ? await resolveRemoteVersionCodeAsync(ctx.graphqlClient, { @@ -74,6 +83,7 @@ This means that it will most likely produce an AAB and you will not be able to i exp: ctx.exp, applicationId, buildProfile, + vcsClient: ctx.vcsClient, }) : undefined; @@ -97,6 +107,7 @@ export async function prepareAndroidBuildAsync( ? false : ctx.buildProfile.autoIncrement, projectId: ctx.projectId, + vcsClient: ctx.vcsClient, }); }, prepareJobAsync: async ( @@ -136,6 +147,7 @@ async function ensureAndroidCredentialsAsync( const androidApplicationIdentifier = await getApplicationIdAsync( ctx.projectDir, ctx.exp, + ctx.vcsClient, ctx.android.gradleContext ); const provider = new AndroidCredentialsProvider(ctx.credentialsCtx, { diff --git a/packages/eas-cli/src/build/android/prepareJob.ts b/packages/eas-cli/src/build/android/prepareJob.ts index eebb7cb3d7..01600acb81 100644 --- a/packages/eas-cli/src/build/android/prepareJob.ts +++ b/packages/eas-cli/src/build/android/prepareJob.ts @@ -14,7 +14,6 @@ import slash from 'slash'; import { AndroidCredentials } from '../../credentials/android/AndroidCredentialsProvider'; import { getCustomBuildConfigPath } from '../../project/customBuildConfig'; import { getUsername } from '../../project/projectUtils'; -import { getVcsClient } from '../../vcs'; import { BuildContext } from '../context'; interface JobData { @@ -34,7 +33,7 @@ export async function prepareJobAsync( const username = getUsername(ctx.exp, ctx.user); const buildProfile: BuildProfile = ctx.buildProfile; const projectRootDirectory = - slash(path.relative(await getVcsClient().getRootPathAsync(), ctx.projectDir)) || '.'; + slash(path.relative(await ctx.vcsClient.getRootPathAsync(), ctx.projectDir)) || '.'; const { credentials } = jobData; const buildCredentials = credentials ? { diff --git a/packages/eas-cli/src/build/android/syncProjectConfiguration.ts b/packages/eas-cli/src/build/android/syncProjectConfiguration.ts index 691df2b53c..d1a774ccd8 100644 --- a/packages/eas-cli/src/build/android/syncProjectConfiguration.ts +++ b/packages/eas-cli/src/build/android/syncProjectConfiguration.ts @@ -11,6 +11,7 @@ import Log from '../../log'; import { isExpoUpdatesInstalled } from '../../project/projectUtils'; import { resolveWorkflowAsync } from '../../project/workflow'; import { syncUpdatesConfigurationAsync } from '../../update/android/UpdatesModule'; +import { Client } from '../../vcs/vcs'; import { BumpStrategy, bumpVersionAsync, bumpVersionInAppJsonAsync } from './version'; export async function syncProjectConfigurationAsync( @@ -20,14 +21,16 @@ export async function syncProjectConfigurationAsync( exp, localAutoIncrement, projectId, + vcsClient, }: { projectDir: string; exp: ExpoConfig; localAutoIncrement?: AndroidVersionAutoIncrement; projectId: string; + vcsClient: Client; } ): Promise { - const workflow = await resolveWorkflowAsync(projectDir, Platform.ANDROID); + const workflow = await resolveWorkflowAsync(projectDir, Platform.ANDROID, vcsClient); const versionBumpStrategy = resolveVersionBumpStrategy(localAutoIncrement ?? false); if (workflow === Workflow.GENERIC) { diff --git a/packages/eas-cli/src/build/android/version.ts b/packages/eas-cli/src/build/android/version.ts index e2651a0d43..165d460bba 100644 --- a/packages/eas-cli/src/build/android/version.ts +++ b/packages/eas-cli/src/build/android/version.ts @@ -18,6 +18,7 @@ import { } from '../../project/android/gradleUtils'; import { getNextVersionCode } from '../../project/android/versions'; import { resolveWorkflowAsync } from '../../project/workflow'; +import { Client } from '../../vcs/vcs'; import { updateAppJsonConfigAsync } from '../utils/appJson'; import { bumpAppVersionAsync, ensureStaticConfigExists } from '../utils/version'; @@ -96,9 +97,10 @@ export async function bumpVersionInAppJsonAsync({ export async function maybeResolveVersionsAsync( projectDir: string, exp: ExpoConfig, - buildProfile: BuildProfile + buildProfile: BuildProfile, + vcsClient: Client ): Promise<{ appVersion?: string; appBuildVersion?: string }> { - const workflow = await resolveWorkflowAsync(projectDir, Platform.ANDROID); + const workflow = await resolveWorkflowAsync(projectDir, Platform.ANDROID, vcsClient); if (workflow === Workflow.GENERIC) { const buildGradle = await getAppBuildGradleAsync(projectDir); try { @@ -183,12 +185,14 @@ export async function resolveRemoteVersionCodeAsync( exp, applicationId, buildProfile, + vcsClient, }: { projectDir: string; projectId: string; exp: ExpoConfig; applicationId: string; buildProfile: BuildProfile; + vcsClient: Client; } ): Promise { const remoteVersions = await AppVersionQuery.latestVersionAsync( @@ -198,7 +202,7 @@ export async function resolveRemoteVersionCodeAsync( applicationId ); - const localVersions = await maybeResolveVersionsAsync(projectDir, exp, buildProfile); + const localVersions = await maybeResolveVersionsAsync(projectDir, exp, buildProfile, vcsClient); let currentBuildVersion: string; if (remoteVersions?.buildVersion) { currentBuildVersion = remoteVersions.buildVersion; diff --git a/packages/eas-cli/src/build/build.ts b/packages/eas-cli/src/build/build.ts index 62d129a3ee..a3453135fb 100644 --- a/packages/eas-cli/src/build/build.ts +++ b/packages/eas-cli/src/build/build.ts @@ -36,7 +36,6 @@ import { formatBytes } from '../utils/files'; import { printJsonOnlyOutput } from '../utils/json'; import { createProgressTracker } from '../utils/progress'; import { sleepAsync } from '../utils/promise'; -import { getVcsClient } from '../vcs'; import { BuildContext } from './context'; import { EasBuildDownForMaintenanceError, @@ -125,9 +124,10 @@ export async function prepareBuildRequestForPlatformAsync< } ); - if (await getVcsClient().isCommitRequiredAsync()) { + if (await ctx.vcsClient.isCommitRequiredAsync()) { Log.addNewLineIfNone(); await reviewAndCommitChangesAsync( + ctx.vcsClient, `[EAS Build] Run EAS Build for ${requestedPlatformDisplayNames[ctx.platform as Platform]}`, { nonInteractive: ctx.nonInteractive } ); @@ -137,7 +137,7 @@ export async function prepareBuildRequestForPlatformAsync< if (ctx.localBuildOptions.localBuildMode === LocalBuildMode.LOCAL_BUILD_PLUGIN) { projectArchive = { type: ArchiveSourceType.PATH, - path: (await makeProjectTarballAsync()).path, + path: (await makeProjectTarballAsync(ctx.vcsClient)).path, }; } else if (ctx.localBuildOptions.localBuildMode === LocalBuildMode.INTERNAL) { projectArchive = { @@ -245,7 +245,7 @@ async function uploadProjectAsync( 'https://expo.fyi/eas-build-archive' )}` ); - const projectTarball = await makeProjectTarballAsync(); + const projectTarball = await makeProjectTarballAsync(ctx.vcsClient); if (projectTarball.size > 1024 * 1024 * 100) { Log.warn( diff --git a/packages/eas-cli/src/build/configure.ts b/packages/eas-cli/src/build/configure.ts index 79ae710b6d..fc098a4094 100644 --- a/packages/eas-cli/src/build/configure.ts +++ b/packages/eas-cli/src/build/configure.ts @@ -6,12 +6,13 @@ import fs from 'fs-extra'; import Log, { learnMore } from '../log'; import { resolveWorkflowAsync } from '../project/workflow'; import { easCliVersion } from '../utils/easCli'; -import { getVcsClient } from '../vcs'; +import { Client } from '../vcs/vcs'; import { maybeBailOnRepoStatusAsync, reviewAndCommitChangesAsync } from './utils/repository'; interface ConfigureParams { projectDir: string; nonInteractive: boolean; + vcsClient: Client; } export async function easJsonExistsAsync(projectDir: string): Promise { @@ -36,14 +37,18 @@ export async function ensureProjectConfiguredAsync( return true; } -async function configureAsync({ projectDir, nonInteractive }: ConfigureParams): Promise { - await maybeBailOnRepoStatusAsync(); +async function configureAsync({ + projectDir, + nonInteractive, + vcsClient, +}: ConfigureParams): Promise { + await maybeBailOnRepoStatusAsync(vcsClient); - await createEasJsonAsync(projectDir); + await createEasJsonAsync(projectDir, vcsClient); - if (await getVcsClient().isCommitRequiredAsync()) { + if (await vcsClient.isCommitRequiredAsync()) { Log.newLine(); - await reviewAndCommitChangesAsync('Configure EAS Build', { + await reviewAndCommitChangesAsync(vcsClient, 'Configure EAS Build', { nonInteractive, }); } @@ -92,20 +97,20 @@ const EAS_JSON_BARE_DEFAULT: EasJson = { }, }; -async function createEasJsonAsync(projectDir: string): Promise { +async function createEasJsonAsync(projectDir: string, vcsClient: Client): Promise { const easJsonPath = EasJsonAccessor.formatEasJsonPath(projectDir); const hasAndroidNativeProject = - (await resolveWorkflowAsync(projectDir, Platform.ANDROID)) === Workflow.GENERIC; + (await resolveWorkflowAsync(projectDir, Platform.ANDROID, vcsClient)) === Workflow.GENERIC; const hasIosNativeProject = - (await resolveWorkflowAsync(projectDir, Platform.IOS)) === Workflow.GENERIC; + (await resolveWorkflowAsync(projectDir, Platform.IOS, vcsClient)) === Workflow.GENERIC; const easJson = hasAndroidNativeProject || hasIosNativeProject ? EAS_JSON_BARE_DEFAULT : EAS_JSON_MANAGED_DEFAULT; await fs.writeFile(easJsonPath, `${JSON.stringify(easJson, null, 2)}\n`); - await getVcsClient().trackFileAsync(easJsonPath); + await vcsClient.trackFileAsync(easJsonPath); Log.withTick( `Generated ${chalk.bold('eas.json')}. ${learnMore( 'https://docs.expo.dev/build-reference/eas-json/' diff --git a/packages/eas-cli/src/build/context.ts b/packages/eas-cli/src/build/context.ts index 87ad149786..3c8a54da82 100644 --- a/packages/eas-cli/src/build/context.ts +++ b/packages/eas-cli/src/build/context.ts @@ -12,6 +12,7 @@ import { GradleBuildContext } from '../project/android/gradle'; import { CustomBuildConfigMetadata } from '../project/customBuildConfig'; import { XcodeBuildContext } from '../project/ios/scheme'; import { Actor } from '../user/User'; +import { Client } from '../vcs/vcs'; import { LocalBuildOptions } from './local'; export type CommonContext = Omit, 'android' | 'ios'>; @@ -58,4 +59,5 @@ export interface BuildContext { ios: T extends Platform.IOS ? IosBuildContext : undefined; developmentClient: boolean; requiredPackageManager: NodePackageManager['name'] | null; + vcsClient: Client; } diff --git a/packages/eas-cli/src/build/createContext.ts b/packages/eas-cli/src/build/createContext.ts index 0996996349..6da379ce99 100644 --- a/packages/eas-cli/src/build/createContext.ts +++ b/packages/eas-cli/src/build/createContext.ts @@ -14,6 +14,7 @@ import { CustomBuildConfigMetadata } from '../project/customBuildConfig'; import { getOwnerAccountForProjectIdAsync } from '../project/projectUtils'; import { resolveWorkflowAsync } from '../project/workflow'; import { Actor } from '../user/User'; +import { Client } from '../vcs/vcs'; import { createAndroidContextAsync } from './android/build'; import { BuildContext, CommonContext } from './context'; import { createIosContextAsync } from './ios/build'; @@ -35,6 +36,7 @@ export async function createBuildContextAsync({ actor, graphqlClient, analytics, + vcsClient, getDynamicPrivateProjectConfigAsync, customBuildConfigMetadata, }: { @@ -52,13 +54,14 @@ export async function createBuildContextAsync({ actor: Actor; graphqlClient: ExpoGraphqlClient; analytics: Analytics; + vcsClient: Client; getDynamicPrivateProjectConfigAsync: DynamicConfigContextFn; customBuildConfigMetadata?: CustomBuildConfigMetadata; }): Promise> { const { exp, projectId } = await getDynamicPrivateProjectConfigAsync({ env: buildProfile.env }); const projectName = exp.slug; const account = await getOwnerAccountForProjectIdAsync(graphqlClient, projectId); - const workflow = await resolveWorkflowAsync(projectDir, platform); + const workflow = await resolveWorkflowAsync(projectDir, platform, vcsClient); const accountId = account.id; const runFromCI = getenv.boolish('CI', false); const developmentClient = @@ -79,6 +82,7 @@ export async function createBuildContextAsync({ analytics, env: buildProfile.env, easJsonCliConfig, + vcsClient, }); const devClientProperties = getDevClientEventProperties({ @@ -125,6 +129,7 @@ export async function createBuildContextAsync({ user: actor, graphqlClient, analytics, + vcsClient, workflow, message, runFromCI, diff --git a/packages/eas-cli/src/build/ios/__tests__/version-test.ts b/packages/eas-cli/src/build/ios/__tests__/version-test.ts index 2438a92b8a..339f6e5ad4 100644 --- a/packages/eas-cli/src/build/ios/__tests__/version-test.ts +++ b/packages/eas-cli/src/build/ios/__tests__/version-test.ts @@ -6,6 +6,7 @@ import os from 'os'; import type { XCBuildConfiguration } from 'xcode'; import { readPlistAsync } from '../../../utils/plist'; +import { getVcsClient } from '../../../vcs'; import { BumpStrategy, bumpVersionAsync, @@ -18,6 +19,8 @@ import { jest.mock('fs'); +const vcsClient = getVcsClient(); + const getXCBuildConfigurationFromPbxproj = jest.spyOn( IOSConfig.Target, 'getXCBuildConfigurationFromPbxproj' @@ -262,7 +265,7 @@ describe(readBuildNumberAsync, () => { describe('bare project', () => { it('reads the build number from native code', async () => { const exp = initBareWorkflowProject(); - const buildNumber = await readBuildNumberAsync('/app', exp, {}); + const buildNumber = await readBuildNumberAsync('/app', exp, {}, vcsClient); expect(buildNumber).toBe('1'); }); }); @@ -270,7 +273,7 @@ describe(readBuildNumberAsync, () => { describe('managed project', () => { it('reads the build number from expo config', async () => { const exp = initManagedProject(); - const buildNumber = await readBuildNumberAsync('/app', exp, {}); + const buildNumber = await readBuildNumberAsync('/app', exp, {}, vcsClient); expect(buildNumber).toBe('1'); }); }); @@ -280,16 +283,21 @@ describe(readShortVersionAsync, () => { describe('bare project', () => { it('reads the short version from native code', async () => { const exp = initBareWorkflowProject(); - const appVersion = await readShortVersionAsync('/app', exp, {}); + const appVersion = await readShortVersionAsync('/app', exp, {}, vcsClient); expect(appVersion).toBe('1.0.0'); }); it('evaluates interpolated build number', async () => { const exp = initBareWorkflowProject({ appVersion: '$(CURRENT_PROJECT_VERSION)', }); - const buildNumber = await readShortVersionAsync('/app', exp, { - CURRENT_PROJECT_VERSION: '1.0.0', - }); + const buildNumber = await readShortVersionAsync( + '/app', + exp, + { + CURRENT_PROJECT_VERSION: '1.0.0', + }, + vcsClient + ); expect(buildNumber).toBe('1.0.0'); }); @@ -299,9 +307,14 @@ describe(readShortVersionAsync, () => { }); await expect( - readShortVersionAsync('/app', exp, { - CURRENT_PROJECT_VERSION: '0.0.7.1.028', - }) + readShortVersionAsync( + '/app', + exp, + { + CURRENT_PROJECT_VERSION: '0.0.7.1.028', + }, + vcsClient + ) ).rejects.toThrowError( 'CFBundleShortVersionString (version field in app.json/app.config.js) must be a period-separated list of three non-negative integers. Current value: 0.0.7.1.028' ); @@ -311,7 +324,7 @@ describe(readShortVersionAsync, () => { describe('managed project', () => { it('reads the version from app config', async () => { const exp = initBareWorkflowProject(); - const appVersion = await readShortVersionAsync('/app', exp, {}); + const appVersion = await readShortVersionAsync('/app', exp, {}, vcsClient); expect(appVersion).toBe('1.0.0'); }); }); diff --git a/packages/eas-cli/src/build/ios/build.ts b/packages/eas-cli/src/build/ios/build.ts index c77b168558..031a5e1318 100644 --- a/packages/eas-cli/src/build/ios/build.ts +++ b/packages/eas-cli/src/build/ios/build.ts @@ -39,6 +39,7 @@ export async function createIosContextAsync( projectDir: ctx.projectDir, nonInteractive: ctx.nonInteractive, exp: ctx.exp, + vcsClient: ctx.vcsClient, }, buildProfile ); @@ -47,6 +48,7 @@ export async function createIosContextAsync( exp: ctx.exp, xcodeBuildContext, env: buildProfile.env, + vcsClient: ctx.vcsClient, }); const applicationTarget = findApplicationTarget(targets); const buildNumberOverride = @@ -57,6 +59,7 @@ export async function createIosContextAsync( exp: ctx.exp, applicationTarget, buildProfile, + vcsClient: ctx.vcsClient, }) : undefined; return { @@ -86,6 +89,7 @@ export async function prepareIosBuildAsync( ? false : ctx.buildProfile.autoIncrement, projectId: ctx.projectId, + vcsClient: ctx.vcsClient, }); }, prepareJobAsync: async ( diff --git a/packages/eas-cli/src/build/ios/prepareJob.ts b/packages/eas-cli/src/build/ios/prepareJob.ts index 724db17767..921bf8fec4 100644 --- a/packages/eas-cli/src/build/ios/prepareJob.ts +++ b/packages/eas-cli/src/build/ios/prepareJob.ts @@ -16,7 +16,6 @@ import { IosCredentials, TargetCredentials } from '../../credentials/ios/types'; import { IosJobSecretsInput } from '../../graphql/generated'; import { getCustomBuildConfigPath } from '../../project/customBuildConfig'; import { getUsername } from '../../project/projectUtils'; -import { getVcsClient } from '../../vcs'; import { BuildContext } from '../context'; interface JobData { @@ -37,7 +36,7 @@ export async function prepareJobAsync( const username = getUsername(ctx.exp, ctx.user); const buildProfile: BuildProfile = ctx.buildProfile; const projectRootDirectory = - slash(path.relative(await getVcsClient().getRootPathAsync(), ctx.projectDir)) || '.'; + slash(path.relative(await ctx.vcsClient.getRootPathAsync(), ctx.projectDir)) || '.'; const buildCredentials: Ios.BuildSecrets['buildCredentials'] = {}; if (jobData.credentials) { const targetNames = Object.keys(jobData.credentials); diff --git a/packages/eas-cli/src/build/ios/syncProjectConfiguration.ts b/packages/eas-cli/src/build/ios/syncProjectConfiguration.ts index 50822975b1..ca810537c1 100644 --- a/packages/eas-cli/src/build/ios/syncProjectConfiguration.ts +++ b/packages/eas-cli/src/build/ios/syncProjectConfiguration.ts @@ -7,6 +7,7 @@ import { Target } from '../../credentials/ios/types'; import { isExpoUpdatesInstalled } from '../../project/projectUtils'; import { resolveWorkflowAsync } from '../../project/workflow'; import { syncUpdatesConfigurationAsync } from '../../update/ios/UpdatesModule'; +import { Client } from '../../vcs/vcs'; import { BumpStrategy, bumpVersionAsync, bumpVersionInAppJsonAsync } from './version'; export async function syncProjectConfigurationAsync( @@ -17,20 +18,22 @@ export async function syncProjectConfigurationAsync( targets, localAutoIncrement, projectId, + vcsClient, }: { projectDir: string; exp: ExpoConfig; targets: Target[]; localAutoIncrement?: IosVersionAutoIncrement; projectId: string; + vcsClient: Client; } ): Promise { - const workflow = await resolveWorkflowAsync(projectDir, Platform.IOS); + const workflow = await resolveWorkflowAsync(projectDir, Platform.IOS, vcsClient); const versionBumpStrategy = resolveVersionBumpStrategy(localAutoIncrement ?? false); if (workflow === Workflow.GENERIC) { if (isExpoUpdatesInstalled(projectDir)) { - await syncUpdatesConfigurationAsync(graphqlClient, projectDir, exp, projectId); + await syncUpdatesConfigurationAsync(graphqlClient, vcsClient, projectDir, exp, projectId); } await bumpVersionAsync({ projectDir, exp, bumpStrategy: versionBumpStrategy, targets }); } else { diff --git a/packages/eas-cli/src/build/ios/version.ts b/packages/eas-cli/src/build/ios/version.ts index cde0bfdc7c..dddd846532 100644 --- a/packages/eas-cli/src/build/ios/version.ts +++ b/packages/eas-cli/src/build/ios/version.ts @@ -19,6 +19,7 @@ import { resolveWorkflowAsync } from '../../project/workflow'; import { promptAsync } from '../../prompts'; import uniqBy from '../../utils/expodash/uniqBy'; import { readPlistAsync, writePlistAsync } from '../../utils/plist'; +import { Client } from '../../vcs/vcs'; import { updateAppJsonConfigAsync } from '../utils/appJson'; import { bumpAppVersionAsync, ensureStaticConfigExists } from '../utils/version'; @@ -110,9 +111,10 @@ function validateShortVersion(shortVersion: string | undefined): void { export async function readShortVersionAsync( projectDir: string, exp: ExpoConfig, - buildSettings: XCBuildConfiguration['buildSettings'] + buildSettings: XCBuildConfiguration['buildSettings'], + vcsClient: Client ): Promise { - const workflow = await resolveWorkflowAsync(projectDir, Platform.IOS); + const workflow = await resolveWorkflowAsync(projectDir, Platform.IOS, vcsClient); if (workflow === Workflow.GENERIC) { const infoPlist = await readInfoPlistAsync(projectDir, buildSettings); @@ -131,9 +133,10 @@ export async function readShortVersionAsync( export async function readBuildNumberAsync( projectDir: string, exp: ExpoConfig, - buildSettings: XCBuildConfiguration['buildSettings'] + buildSettings: XCBuildConfiguration['buildSettings'], + vcsClient: Client ): Promise { - const workflow = await resolveWorkflowAsync(projectDir, Platform.IOS); + const workflow = await resolveWorkflowAsync(projectDir, Platform.IOS, vcsClient); if (workflow === Workflow.GENERIC) { const infoPlist = await readInfoPlistAsync(projectDir, buildSettings); return ( @@ -147,7 +150,8 @@ export async function readBuildNumberAsync( export async function maybeResolveVersionsAsync( projectDir: string, exp: ExpoConfig, - targets: Target[] + targets: Target[], + vcsClient: Client ): Promise<{ appVersion?: string; appBuildVersion?: string }> { const applicationTarget = findApplicationTarget(targets); try { @@ -155,12 +159,14 @@ export async function maybeResolveVersionsAsync( appBuildVersion: await readBuildNumberAsync( projectDir, exp, - applicationTarget.buildSettings ?? {} + applicationTarget.buildSettings ?? {}, + vcsClient ), appVersion: await readShortVersionAsync( projectDir, exp, - applicationTarget.buildSettings ?? {} + applicationTarget.buildSettings ?? {}, + vcsClient ), }; } catch (err: any) { @@ -278,12 +284,14 @@ export async function resolveRemoteBuildNumberAsync( exp, applicationTarget, buildProfile, + vcsClient, }: { projectDir: string; projectId: string; exp: ExpoConfig; applicationTarget: Target; buildProfile: BuildProfile; + vcsClient: Client; } ): Promise { const remoteVersions = await AppVersionQuery.latestVersionAsync( @@ -296,12 +304,14 @@ export async function resolveRemoteBuildNumberAsync( const localBuildNumber = await readBuildNumberAsync( projectDir, exp, - applicationTarget.buildSettings ?? {} + applicationTarget.buildSettings ?? {}, + vcsClient ); const localShortVersion = await readShortVersionAsync( projectDir, exp, - applicationTarget.buildSettings ?? {} + applicationTarget.buildSettings ?? {}, + vcsClient ); let currentBuildVersion: string; if (remoteVersions?.buildVersion) { diff --git a/packages/eas-cli/src/build/metadata.ts b/packages/eas-cli/src/build/metadata.ts index 5416867476..4b7b4359d5 100644 --- a/packages/eas-cli/src/build/metadata.ts +++ b/packages/eas-cli/src/build/metadata.ts @@ -15,7 +15,6 @@ import { readReleaseChannelSafelyAsync as readIosReleaseChannelSafelyAsync, } from '../update/ios/UpdatesModule'; import { easCliVersion } from '../utils/easCli'; -import { getVcsClient } from '../vcs'; import { maybeResolveVersionsAsync as maybeResolveAndroidVersionsAsync } from './android/version'; import { BuildContext } from './context'; import { maybeResolveVersionsAsync as maybeResolveIosVersionsAsync } from './ios/version'; @@ -24,7 +23,6 @@ import { LocalBuildMode } from './local'; export async function collectMetadataAsync( ctx: BuildContext ): Promise { - const vcsClient = getVcsClient(); const channelOrReleaseChannel = await resolveChannelOrReleaseChannelAsync(ctx); const distribution = ('simulator' in ctx.buildProfile && ctx.buildProfile.simulator @@ -44,14 +42,14 @@ export async function collectMetadataAsync( appName: ctx.exp.name, appIdentifier: resolveAppIdentifier(ctx), buildProfile: ctx.buildProfileName, - gitCommitHash: await vcsClient.getCommitHashAsync(), + gitCommitHash: await ctx.vcsClient.getCommitHashAsync(), gitCommitMessage: truncateGitCommitMessage( - (await vcsClient.getLastCommitMessageAsync()) ?? undefined + (await ctx.vcsClient.getLastCommitMessageAsync()) ?? undefined ), isGitWorkingTreeDirty: ctx.localBuildOptions.localBuildMode === LocalBuildMode.INTERNAL ? false - : await vcsClient.hasUncommittedChangesAsync(), + : await ctx.vcsClient.hasUncommittedChangesAsync(), username: getUsername(ctx.exp, ctx.user), message: ctx.message, ...(ctx.platform === Platform.IOS && { @@ -77,7 +75,8 @@ async function maybeResolveVersionsAsync( const resolvedVersion = await maybeResolveIosVersionsAsync( ctx.projectDir, ctx.exp, - iosContext.ios.targets + iosContext.ios.targets, + ctx.vcsClient ); if (iosContext.ios.buildNumberOverride) { return { @@ -91,7 +90,8 @@ async function maybeResolveVersionsAsync( const resolvedVersion = await maybeResolveAndroidVersionsAsync( ctx.projectDir, ctx.exp, - androidCtx.buildProfile + androidCtx.buildProfile, + ctx.vcsClient ); if (androidCtx.android.versionCodeOverride) { return { diff --git a/packages/eas-cli/src/build/runBuildAndSubmit.ts b/packages/eas-cli/src/build/runBuildAndSubmit.ts index 9240386e1e..b96fac14a6 100644 --- a/packages/eas-cli/src/build/runBuildAndSubmit.ts +++ b/packages/eas-cli/src/build/runBuildAndSubmit.ts @@ -66,7 +66,7 @@ import { downloadAndMaybeExtractAppAsync } from '../utils/download'; import { truthy } from '../utils/expodash/filter'; import { printJsonOnlyOutput } from '../utils/json'; import { ProfileData, getProfilesAsync } from '../utils/profiles'; -import { getVcsClient } from '../vcs'; +import { Client } from '../vcs/vcs'; import { prepareAndroidBuildAsync } from './android/build'; import { BuildRequestSender, MaybeBuildFragment, waitForBuildEndAsync } from './build'; import { ensureProjectConfiguredAsync } from './configure'; @@ -98,17 +98,19 @@ export interface BuildFlags { export async function runBuildAndSubmitAsync( graphqlClient: ExpoGraphqlClient, analytics: Analytics, + vcsClient: Client, projectDir: string, flags: BuildFlags, actor: Actor, getDynamicPrivateProjectConfigAsync: DynamicConfigContextFn ): Promise { - await getVcsClient().ensureRepoExistsAsync(); - await ensureRepoIsCleanAsync(flags.nonInteractive); + await vcsClient.ensureRepoExistsAsync(); + await ensureRepoIsCleanAsync(vcsClient, flags.nonInteractive); await ensureProjectConfiguredAsync({ projectDir, nonInteractive: flags.nonInteractive, + vcsClient, }); const easJsonAccessor = EasJsonAccessor.fromProjectPath(projectDir); const easJsonCliConfig: EasJson['cli'] = @@ -134,6 +136,7 @@ export async function runBuildAndSubmitAsync( projectDir, nonInteractive: flags.nonInteractive, buildProfiles, + vcsClient, }); const customBuildConfigMetadataByPlatform: { [p in AppPlatform]?: CustomBuildConfigMetadata } = @@ -163,6 +166,7 @@ export async function runBuildAndSubmitAsync( actor, graphqlClient, analytics, + vcsClient, getDynamicPrivateProjectConfigAsync, customBuildConfigMetadata: customBuildConfigMetadataByPlatform[platform], }); @@ -274,6 +278,7 @@ async function prepareAndStartBuildAsync({ actor, graphqlClient, analytics, + vcsClient, getDynamicPrivateProjectConfigAsync, customBuildConfigMetadata, }: { @@ -285,6 +290,7 @@ async function prepareAndStartBuildAsync({ actor: Actor; graphqlClient: ExpoGraphqlClient; analytics: Analytics; + vcsClient: Client; getDynamicPrivateProjectConfigAsync: DynamicConfigContextFn; customBuildConfigMetadata?: CustomBuildConfigMetadata; }): Promise<{ build: BuildFragment | undefined; buildCtx: BuildContext }> { @@ -303,6 +309,7 @@ async function prepareAndStartBuildAsync({ actor, graphqlClient, analytics, + vcsClient, getDynamicPrivateProjectConfigAsync, customBuildConfigMetadata, }); @@ -329,6 +336,7 @@ async function prepareAndStartBuildAsync({ exp: buildCtx.exp, projectId: buildCtx.projectId, projectDir, + vcsClient: buildCtx.vcsClient, sdkVersion: buildCtx.exp.sdkVersion, nonInteractive: flags.nonInteractive, buildProfile, @@ -411,6 +419,7 @@ async function prepareAndStartSubmissionAsync({ analytics: buildCtx.analytics, projectId: buildCtx.projectId, exp: buildCtx.exp, + vcsClient: buildCtx.vcsClient, }); if (moreBuilds) { @@ -471,6 +480,7 @@ async function validateExpoUpdatesInstalledAsProjectDependencyAsync({ graphqlClient, projectId, projectDir, + vcsClient, buildProfile, nonInteractive, sdkVersion, @@ -479,6 +489,7 @@ async function validateExpoUpdatesInstalledAsProjectDependencyAsync({ exp: ExpoConfig; projectId: string; projectDir: string; + vcsClient: Client; buildProfile: ProfileData<'build'>; nonInteractive: boolean; sdkVersion?: string; @@ -508,6 +519,7 @@ async function validateExpoUpdatesInstalledAsProjectDependencyAsync({ projectId, projectDir, platform: RequestedPlatform.All, + vcsClient, }); Log.withTick('Installed expo-updates and configured EAS Update.'); throw new Error('Command must be re-run to pick up new updates configuration.'); diff --git a/packages/eas-cli/src/build/utils/devClient.ts b/packages/eas-cli/src/build/utils/devClient.ts index d6ade50126..45ad523280 100644 --- a/packages/eas-cli/src/build/utils/devClient.ts +++ b/packages/eas-cli/src/build/utils/devClient.ts @@ -10,15 +10,17 @@ import { resolveWorkflowAsync } from '../../project/workflow'; import { confirmAsync } from '../../prompts'; import { expoCommandAsync } from '../../utils/expoCli'; import { ProfileData } from '../../utils/profiles'; -import { getVcsClient } from '../../vcs'; +import { Client } from '../../vcs/vcs'; import { reviewAndCommitChangesAsync } from './repository'; export async function ensureExpoDevClientInstalledForDevClientBuildsAsync({ projectDir, + vcsClient, nonInteractive = false, buildProfiles = [], }: { projectDir: string; + vcsClient: Client; nonInteractive?: boolean; buildProfiles?: ProfileData<'build'>[]; }): Promise { @@ -41,7 +43,7 @@ export async function ensureExpoDevClientInstalledForDevClientBuildsAsync({ ); const workflowPerPlatformList = await Promise.all( - platformsToCheck.map(platform => resolveWorkflowAsync(projectDir, platform)) + platformsToCheck.map(platform => resolveWorkflowAsync(projectDir, platform, vcsClient)) ); Log.newLine(); @@ -62,7 +64,7 @@ export async function ensureExpoDevClientInstalledForDevClientBuildsAsync({ instructions: 'The command will abort unless you agree.', }); if (install) { - await installExpoDevClientAsync(projectDir, { nonInteractive }); + await installExpoDevClientAsync(projectDir, vcsClient, { nonInteractive }); } else { Errors.error(`Install ${chalk.bold('expo-dev-client')} manually and come back later.`, { exit: 1, @@ -100,6 +102,7 @@ async function isExpoDevClientInstalledAsync(projectDir: string): Promise { Log.newLine(); @@ -107,8 +110,8 @@ async function installExpoDevClientAsync( Log.newLine(); await expoCommandAsync(projectDir, ['install', 'expo-dev-client']); Log.newLine(); - if (await getVcsClient().isCommitRequiredAsync()) { - await reviewAndCommitChangesAsync('Install expo-dev-client', { + if (await vcsClient.isCommitRequiredAsync()) { + await reviewAndCommitChangesAsync(vcsClient, 'Install expo-dev-client', { nonInteractive, }); } diff --git a/packages/eas-cli/src/build/utils/repository.ts b/packages/eas-cli/src/build/utils/repository.ts index 9d91d8ffff..5c6874c4c4 100644 --- a/packages/eas-cli/src/build/utils/repository.ts +++ b/packages/eas-cli/src/build/utils/repository.ts @@ -10,10 +10,10 @@ import { confirmAsync, promptAsync } from '../../prompts'; import { formatBytes } from '../../utils/files'; import { getTmpDirectory } from '../../utils/paths'; import { endTimer, formatMilliseconds, startTimer } from '../../utils/timer'; -import { getVcsClient } from '../../vcs'; +import { Client } from '../../vcs/vcs'; -export async function maybeBailOnRepoStatusAsync(): Promise { - if (!(await getVcsClient().isCommitRequiredAsync())) { +export async function maybeBailOnRepoStatusAsync(vcsClient: Client): Promise { + if (!(await vcsClient.isCommitRequiredAsync())) { return; } Log.addNewLineIfNone(); @@ -32,8 +32,11 @@ export async function maybeBailOnRepoStatusAsync(): Promise { } } -export async function ensureRepoIsCleanAsync(nonInteractive = false): Promise { - if (!(await getVcsClient().isCommitRequiredAsync())) { +export async function ensureRepoIsCleanAsync( + vcsClient: Client, + nonInteractive = false +): Promise { + if (!(await vcsClient.isCommitRequiredAsync())) { return; } Log.addNewLineIfNone(); @@ -50,19 +53,22 @@ export async function ensureRepoIsCleanAsync(nonInteractive = false): Promise { +export async function commitPromptAsync( + vcsClient: Client, + { + initialCommitMessage, + commitAllFiles, + }: { + initialCommitMessage?: string; + commitAllFiles?: boolean; + } = {} +): Promise { const { message } = await promptAsync({ type: 'text', name: 'message', @@ -70,14 +76,16 @@ export async function commitPromptAsync({ initial: initialCommitMessage, validate: (input: string) => input !== '', }); - await getVcsClient().commitAsync({ + await vcsClient.commitAsync({ commitAllFiles, commitMessage: message, nonInteractive: false, }); } -export async function makeProjectTarballAsync(): Promise<{ path: string; size: number }> { +export async function makeProjectTarballAsync( + vcsClient: Client +): Promise<{ path: string; size: number }> { const spinner = ora('Compressing project files'); await fs.mkdirp(getTmpDirectory()); @@ -99,7 +107,7 @@ export async function makeProjectTarballAsync(): Promise<{ path: string; size: n startTimer(compressTimerLabel); try { - await getVcsClient().makeShallowCopyAsync(shallowClonePath); + await vcsClient.makeShallowCopyAsync(shallowClonePath); await tar.create({ cwd: shallowClonePath, file: tarPath, prefix: 'project', gzip: true }, [ '.', ]); @@ -133,11 +141,12 @@ enum ShouldCommitChanges { } export async function reviewAndCommitChangesAsync( + vcsClient: Client, initialCommitMessage: string, { nonInteractive, askedFirstTime = true }: { nonInteractive: boolean; askedFirstTime?: boolean } ): Promise { if (process.env.EAS_BUILD_AUTOCOMMIT) { - await getVcsClient().commitAsync({ + await vcsClient.commitAsync({ commitMessage: initialCommitMessage, commitAllFiles: false, nonInteractive, @@ -171,11 +180,11 @@ export async function reviewAndCommitChangesAsync( "Aborting, run the command again once you're ready. Make sure to commit any changes you've made." ); } else if (selected === ShouldCommitChanges.Yes) { - await commitPromptAsync({ initialCommitMessage }); + await commitPromptAsync(vcsClient, { initialCommitMessage }); Log.withTick('Committed changes.'); } else if (selected === ShouldCommitChanges.ShowDiffFirst) { - await getVcsClient().showDiffAsync(); - await reviewAndCommitChangesAsync(initialCommitMessage, { + await vcsClient.showDiffAsync(); + await reviewAndCommitChangesAsync(vcsClient, initialCommitMessage, { nonInteractive, askedFirstTime: false, }); diff --git a/packages/eas-cli/src/build/validate.ts b/packages/eas-cli/src/build/validate.ts index df8fda82f4..666cbd1889 100644 --- a/packages/eas-cli/src/build/validate.ts +++ b/packages/eas-cli/src/build/validate.ts @@ -6,7 +6,6 @@ import semver from 'semver'; import Log, { learnMore } from '../log'; import { isPNGAsync } from '../utils/image'; -import { getVcsClient } from '../vcs'; import { CommonContext } from './context'; export function checkNodeEnvVariable(ctx: CommonContext): void { @@ -28,12 +27,12 @@ export async function checkGoogleServicesFileAsync( if (!googleServicesFilePath) { return; } - const rootDir = path.normalize(await getVcsClient().getRootPathAsync()); + const rootDir = path.normalize(await ctx.vcsClient.getRootPathAsync()); const absGoogleServicesFilePath = path.resolve(ctx.projectDir, googleServicesFilePath); if ( (await fs.pathExists(absGoogleServicesFilePath)) && (!isInsideDirectory(absGoogleServicesFilePath, rootDir) || - (await getVcsClient().isFileIgnoredAsync(path.relative(rootDir, absGoogleServicesFilePath)))) + (await ctx.vcsClient.isFileIgnoredAsync(path.relative(rootDir, absGoogleServicesFilePath)))) ) { Log.warn( `File specified via "${ctx.platform}.googleServicesFile" field in your app.json is not checked in to your repository and won't be uploaded to the builder.` diff --git a/packages/eas-cli/src/commandUtils/EasCommand.ts b/packages/eas-cli/src/commandUtils/EasCommand.ts index f3c1c1fa93..6f2429b61e 100644 --- a/packages/eas-cli/src/commandUtils/EasCommand.ts +++ b/packages/eas-cli/src/commandUtils/EasCommand.ts @@ -22,6 +22,7 @@ import { OptionalPrivateProjectConfigContextField } from './context/OptionalPriv import { PrivateProjectConfigContextField } from './context/PrivateProjectConfigContextField'; import ProjectDirContextField from './context/ProjectDirContextField'; import SessionManagementContextField from './context/SessionManagementContextField'; +import VcsClientContextField from './context/VcsClientContextField'; import { EasCommandError } from './errors'; export type ContextInput< @@ -101,6 +102,9 @@ export default abstract class EasCommand extends Command { Analytics: { analytics: new AnalyticsContextField(), }, + Vcs: { + vcsClient: new VcsClientContextField(), + }, }; /** diff --git a/packages/eas-cli/src/commandUtils/context/VcsClientContextField.ts b/packages/eas-cli/src/commandUtils/context/VcsClientContextField.ts new file mode 100644 index 0000000000..8f09538010 --- /dev/null +++ b/packages/eas-cli/src/commandUtils/context/VcsClientContextField.ts @@ -0,0 +1,9 @@ +import { getVcsClient } from '../../vcs'; +import { Client } from '../../vcs/vcs'; +import ContextField from './ContextField'; + +export default class VcsClientContextField extends ContextField { + async getValueAsync(): Promise { + return getVcsClient(); + } +} diff --git a/packages/eas-cli/src/commands/branch/create.ts b/packages/eas-cli/src/commands/branch/create.ts index 1982f8c71c..4731c657bd 100644 --- a/packages/eas-cli/src/commands/branch/create.ts +++ b/packages/eas-cli/src/commands/branch/create.ts @@ -27,6 +27,7 @@ export default class BranchCreate extends EasCommand { static override contextDefinition = { ...this.ContextOptions.ProjectConfig, ...this.ContextOptions.LoggedIn, + ...this.ContextOptions.Vcs, }; async runAsync(): Promise { @@ -37,6 +38,7 @@ export default class BranchCreate extends EasCommand { const { privateProjectConfig: { projectId }, loggedIn: { graphqlClient }, + vcsClient, } = await this.getContextAsync(BranchCreate, { nonInteractive, }); @@ -56,7 +58,7 @@ export default class BranchCreate extends EasCommand { type: 'text', name: 'name', message: 'Provide a branch name:', - initial: await getDefaultBranchNameAsync(), + initial: await getDefaultBranchNameAsync(vcsClient), validate: value => (value ? true : validationMessage), })); } diff --git a/packages/eas-cli/src/commands/build/cancel.ts b/packages/eas-cli/src/commands/build/cancel.ts index acee88871f..28db2d99f9 100644 --- a/packages/eas-cli/src/commands/build/cancel.ts +++ b/packages/eas-cli/src/commands/build/cancel.ts @@ -139,6 +139,7 @@ export default class BuildCancel extends EasCommand { static override contextDefinition = { ...this.ContextOptions.ProjectConfig, ...this.ContextOptions.LoggedIn, + ...this.ContextOptions.Vcs, }; async runAsync(): Promise { diff --git a/packages/eas-cli/src/commands/build/configure.ts b/packages/eas-cli/src/commands/build/configure.ts index 0e40b1fd3b..2bde23eef0 100644 --- a/packages/eas-cli/src/commands/build/configure.ts +++ b/packages/eas-cli/src/commands/build/configure.ts @@ -16,7 +16,6 @@ import { ensureUseClassicUpdatesIsRemovedAsync, } from '../../update/configure'; import { syncUpdatesConfigurationAsync as syncIosUpdatesConfigurationAsync } from '../../update/ios/UpdatesModule'; -import { getVcsClient } from '../../vcs'; export default class BuildConfigure extends EasCommand { static override description = 'configure the project to support EAS Build'; @@ -32,6 +31,7 @@ export default class BuildConfigure extends EasCommand { static override contextDefinition = { ...this.ContextOptions.ProjectConfig, ...this.ContextOptions.LoggedIn, + ...this.ContextOptions.Vcs, }; async runAsync(): Promise { @@ -39,6 +39,7 @@ export default class BuildConfigure extends EasCommand { const { privateProjectConfig: { exp, projectId, projectDir }, loggedIn: { graphqlClient }, + vcsClient, } = await this.getContextAsync(BuildConfigure, { nonInteractive: false, }); @@ -47,7 +48,9 @@ export default class BuildConfigure extends EasCommand { 'πŸ’‘ The following process will configure your iOS and/or Android project to be compatible with EAS Build. These changes only apply to your local project files and you can safely revert them at any time.' ); - await getVcsClient().ensureRepoExistsAsync(); + // BuildConfigure.ContextOptions.Vcs.client.getValueAsync() + + await vcsClient.ensureRepoExistsAsync(); const expoUpdatesIsInstalled = isExpoUpdatesInstalled(projectDir); @@ -64,6 +67,7 @@ export default class BuildConfigure extends EasCommand { const didCreateEasJson = await ensureProjectConfiguredAsync({ projectDir, nonInteractive: false, + vcsClient, }); if (didCreateEasJson && isUsingEASUpdate(exp, projectId)) { if (exp.updates?.useClassicUpdates) { @@ -78,16 +82,22 @@ export default class BuildConfigure extends EasCommand { // configure expo-updates if (expoUpdatesIsInstalled) { if ([RequestedPlatform.Android, RequestedPlatform.All].includes(platform)) { - const workflow = await resolveWorkflowAsync(projectDir, Platform.ANDROID); + const workflow = await resolveWorkflowAsync(projectDir, Platform.ANDROID, vcsClient); if (workflow === Workflow.GENERIC) { await syncAndroidUpdatesConfigurationAsync(graphqlClient, projectDir, exp, projectId); } } if ([RequestedPlatform.Ios, RequestedPlatform.All].includes(platform)) { - const workflow = await resolveWorkflowAsync(projectDir, Platform.IOS); + const workflow = await resolveWorkflowAsync(projectDir, Platform.IOS, vcsClient); if (workflow === Workflow.GENERIC) { - await syncIosUpdatesConfigurationAsync(graphqlClient, projectDir, exp, projectId); + await syncIosUpdatesConfigurationAsync( + graphqlClient, + vcsClient, + projectDir, + exp, + projectId + ); } } } diff --git a/packages/eas-cli/src/commands/build/index.ts b/packages/eas-cli/src/commands/build/index.ts index 1f7d4e2782..981d728f35 100644 --- a/packages/eas-cli/src/commands/build/index.ts +++ b/packages/eas-cli/src/commands/build/index.ts @@ -106,6 +106,7 @@ export default class Build extends EasCommand { ...this.ContextOptions.DynamicProjectConfig, ...this.ContextOptions.ProjectDir, ...this.ContextOptions.Analytics, + ...this.ContextOptions.Vcs, }; async runAsync(): Promise { @@ -121,6 +122,7 @@ export default class Build extends EasCommand { getDynamicPrivateProjectConfigAsync, projectDir, analytics, + vcsClient, } = await this.getContextAsync(Build, { nonInteractive: flags.nonInteractive, }); @@ -141,6 +143,7 @@ export default class Build extends EasCommand { await runBuildAndSubmitAsync( graphqlClient, analytics, + vcsClient, projectDir, flagsWithPlatform, actor, diff --git a/packages/eas-cli/src/commands/build/inspect.ts b/packages/eas-cli/src/commands/build/inspect.ts index 07800683e3..f49a144288 100644 --- a/packages/eas-cli/src/commands/build/inspect.ts +++ b/packages/eas-cli/src/commands/build/inspect.ts @@ -11,7 +11,6 @@ import Log from '../../log'; import { ora } from '../../ora'; import { RequestedPlatform } from '../../platform'; import { getTmpDirectory } from '../../utils/paths'; -import { getVcsClient } from '../../vcs'; enum InspectStage { ARCHIVE = 'archive', @@ -67,6 +66,7 @@ export default class BuildInspect extends EasCommand { ...this.ContextOptions.DynamicProjectConfig, ...this.ContextOptions.ProjectDir, ...this.ContextOptions.Analytics, + ...this.ContextOptions.Vcs, }; async runAsync(): Promise { @@ -76,6 +76,7 @@ export default class BuildInspect extends EasCommand { getDynamicPrivateProjectConfigAsync, projectDir, analytics, + vcsClient, } = await this.getContextAsync(BuildInspect, { nonInteractive: false, }); @@ -92,15 +93,15 @@ export default class BuildInspect extends EasCommand { await this.prepareOutputDirAsync(outputDirectory, flags.force); if (flags.stage === InspectStage.ARCHIVE) { - const vcs = getVcsClient(); - await vcs.ensureRepoExistsAsync(); - await vcs.makeShallowCopyAsync(tmpWorkingdir); + await vcsClient.ensureRepoExistsAsync(); + await vcsClient.makeShallowCopyAsync(tmpWorkingdir); await this.copyToOutputDirAsync(tmpWorkingdir, outputDirectory); } else { try { await runBuildAndSubmitAsync( graphqlClient, analytics, + vcsClient, projectDir, { nonInteractive: false, diff --git a/packages/eas-cli/src/commands/build/internal.ts b/packages/eas-cli/src/commands/build/internal.ts index 20937eaada..e55417c28e 100644 --- a/packages/eas-cli/src/commands/build/internal.ts +++ b/packages/eas-cli/src/commands/build/internal.ts @@ -37,6 +37,7 @@ export default class BuildInternal extends EasCommand { ...this.ContextOptions.DynamicProjectConfig, ...this.ContextOptions.ProjectDir, ...this.ContextOptions.Analytics, + ...this.ContextOptions.Vcs, }; async runAsync(): Promise { @@ -49,6 +50,7 @@ export default class BuildInternal extends EasCommand { getDynamicPrivateProjectConfigAsync, projectDir, analytics, + vcsClient, } = await this.getContextAsync(BuildInternal, { nonInteractive: true, }); @@ -60,6 +62,7 @@ export default class BuildInternal extends EasCommand { await runBuildAndSubmitAsync( graphqlClient, analytics, + vcsClient, projectDir, { requestedPlatform: flags.platform as RequestedPlatform, diff --git a/packages/eas-cli/src/commands/build/list.ts b/packages/eas-cli/src/commands/build/list.ts index a929bca7bb..7b1c2a4e11 100644 --- a/packages/eas-cli/src/commands/build/list.ts +++ b/packages/eas-cli/src/commands/build/list.ts @@ -56,6 +56,7 @@ export default class BuildList extends EasCommand { static override contextDefinition = { ...this.ContextOptions.ProjectConfig, ...this.ContextOptions.LoggedIn, + ...this.ContextOptions.Vcs, }; async runAsync(): Promise { diff --git a/packages/eas-cli/src/commands/build/resign.ts b/packages/eas-cli/src/commands/build/resign.ts index a006a06912..ce649bd0fb 100644 --- a/packages/eas-cli/src/commands/build/resign.ts +++ b/packages/eas-cli/src/commands/build/resign.ts @@ -88,6 +88,7 @@ export default class BuildResign extends EasCommand { ...this.ContextOptions.DynamicProjectConfig, ...this.ContextOptions.ProjectDir, ...this.ContextOptions.Analytics, + ...this.ContextOptions.Vcs, }; async runAsync(): Promise { @@ -104,6 +105,7 @@ export default class BuildResign extends EasCommand { getDynamicPrivateProjectConfigAsync, projectDir, analytics, + vcsClient, } = await this.getContextAsync(BuildResign, { nonInteractive: flags.nonInteractive, }); @@ -145,6 +147,7 @@ export default class BuildResign extends EasCommand { analytics, env: buildProfile.env, easJsonCliConfig, + vcsClient, }); if (buildProfile.credentialsSource !== CredentialsSource.LOCAL && !nonInteractive) { await credentialsCtx.appStore.ensureAuthenticatedAsync(); @@ -154,6 +157,7 @@ export default class BuildResign extends EasCommand { projectDir, nonInteractive, exp, + vcsClient, }, buildProfile ); @@ -162,6 +166,7 @@ export default class BuildResign extends EasCommand { exp, xcodeBuildContext, env: buildProfile.env, + vcsClient, }); const credentialsResult = await ensureIosCredentialsForBuildResignAsync( credentialsCtx, diff --git a/packages/eas-cli/src/commands/build/run.ts b/packages/eas-cli/src/commands/build/run.ts index 3da3f4fbdb..193272ae8f 100644 --- a/packages/eas-cli/src/commands/build/run.ts +++ b/packages/eas-cli/src/commands/build/run.ts @@ -73,6 +73,7 @@ export default class Run extends EasCommand { ...this.ContextOptions.LoggedIn, ...this.ContextOptions.ProjectConfig, ...this.ContextOptions.ProjectDir, + ...this.ContextOptions.Vcs, }; async runAsync(): Promise { diff --git a/packages/eas-cli/src/commands/build/version/get.ts b/packages/eas-cli/src/commands/build/version/get.ts index 0604fc6045..050a477c72 100644 --- a/packages/eas-cli/src/commands/build/version/get.ts +++ b/packages/eas-cli/src/commands/build/version/get.ts @@ -38,6 +38,7 @@ export default class BuildVersionGetView extends EasCommand { ...this.ContextOptions.LoggedIn, ...this.ContextOptions.DynamicProjectConfig, ...this.ContextOptions.ProjectDir, + ...this.ContextOptions.Vcs, }; public async runAsync(): Promise { @@ -49,6 +50,7 @@ export default class BuildVersionGetView extends EasCommand { loggedIn: { graphqlClient }, getDynamicPrivateProjectConfigAsync, projectDir, + vcsClient, } = await this.getContextAsync(BuildVersionGetView, { nonInteractive: true, }); @@ -85,6 +87,7 @@ export default class BuildVersionGetView extends EasCommand { exp, buildProfile: profile, platform, + vcsClient, }); const remoteVersions = await AppVersionQuery.latestVersionAsync( graphqlClient, diff --git a/packages/eas-cli/src/commands/build/version/set.ts b/packages/eas-cli/src/commands/build/version/set.ts index 39e30b6307..f7bf613044 100644 --- a/packages/eas-cli/src/commands/build/version/set.ts +++ b/packages/eas-cli/src/commands/build/version/set.ts @@ -41,6 +41,7 @@ export default class BuildVersionSetView extends EasCommand { ...this.ContextOptions.LoggedIn, ...this.ContextOptions.DynamicProjectConfig, ...this.ContextOptions.ProjectDir, + ...this.ContextOptions.Vcs, }; public async runAsync(): Promise { @@ -49,6 +50,7 @@ export default class BuildVersionSetView extends EasCommand { loggedIn: { graphqlClient }, getDynamicPrivateProjectConfigAsync, projectDir, + vcsClient, } = await this.getContextAsync(BuildVersionSetView, { nonInteractive: false, }); @@ -74,6 +76,7 @@ export default class BuildVersionSetView extends EasCommand { exp, buildProfile: profile, platform, + vcsClient, }); const remoteVersions = await AppVersionQuery.latestVersionAsync( graphqlClient, diff --git a/packages/eas-cli/src/commands/build/version/sync.ts b/packages/eas-cli/src/commands/build/version/sync.ts index 179d4cc60e..5e423a41e0 100644 --- a/packages/eas-cli/src/commands/build/version/sync.ts +++ b/packages/eas-cli/src/commands/build/version/sync.ts @@ -28,6 +28,7 @@ import { } from '../../../project/remoteVersionSource'; import { resolveWorkflowAsync } from '../../../project/workflow'; import { getProfilesAsync } from '../../../utils/profiles'; +import { Client } from '../../../vcs/vcs'; interface SyncContext { projectDir: string; @@ -35,6 +36,7 @@ interface SyncContext { workflow: Workflow; profile: BuildProfile; buildVersion: string; + vcsClient: Client; } export default class BuildVersionSyncView extends EasCommand { @@ -58,6 +60,7 @@ export default class BuildVersionSyncView extends EasCommand { ...this.ContextOptions.LoggedIn, ...this.ContextOptions.DynamicProjectConfig, ...this.ContextOptions.ProjectDir, + ...this.ContextOptions.Vcs, }; public async runAsync(): Promise { @@ -66,6 +69,7 @@ export default class BuildVersionSyncView extends EasCommand { loggedIn: { graphqlClient }, getDynamicPrivateProjectConfigAsync, projectDir, + vcsClient, } = await this.getContextAsync(BuildVersionSyncView, { nonInteractive: true, }); @@ -97,6 +101,7 @@ export default class BuildVersionSyncView extends EasCommand { exp, buildProfile: profileInfo.profile, platform: profileInfo.platform, + vcsClient, }); const remoteVersions = await AppVersionQuery.latestVersionAsync( graphqlClient, @@ -104,7 +109,7 @@ export default class BuildVersionSyncView extends EasCommand { toAppPlatform(profileInfo.platform), applicationIdentifier ); - const workflow = await resolveWorkflowAsync(projectDir, profileInfo.platform); + const workflow = await resolveWorkflowAsync(projectDir, profileInfo.platform, vcsClient); if (!remoteVersions?.buildVersion) { Log.warn( `Skipping versions sync for ${platformDisplayName}. There are no versions configured on Expo servers, use "eas build:version:set" or run a build to initialize it.` @@ -128,6 +133,7 @@ export default class BuildVersionSyncView extends EasCommand { profile: profileInfo.profile as BuildProfile, workflow, buildVersion: remoteVersions.buildVersion, + vcsClient, }); } else { this.syncIosAsync({ @@ -136,6 +142,7 @@ export default class BuildVersionSyncView extends EasCommand { profile: profileInfo.profile as BuildProfile, workflow, buildVersion: remoteVersions.buildVersion, + vcsClient, }); } Log.withTick( @@ -152,9 +159,10 @@ export default class BuildVersionSyncView extends EasCommand { exp, profile, buildVersion, + vcsClient, }: SyncContext): Promise { const xcodeBuildContext = await resolveXcodeBuildContextAsync( - { exp, projectDir, nonInteractive: false }, + { exp, projectDir, nonInteractive: false, vcsClient }, profile ); const targets = await resolveTargetsAsync({ @@ -162,6 +170,7 @@ export default class BuildVersionSyncView extends EasCommand { exp, xcodeBuildContext, env: profile.env, + vcsClient, }); if (!isValidBuildNumber(buildVersion)) { diff --git a/packages/eas-cli/src/commands/build/view.ts b/packages/eas-cli/src/commands/build/view.ts index 8188da1299..05d7b2fe2a 100644 --- a/packages/eas-cli/src/commands/build/view.ts +++ b/packages/eas-cli/src/commands/build/view.ts @@ -20,6 +20,7 @@ export default class BuildView extends EasCommand { static override contextDefinition = { ...this.ContextOptions.ProjectConfig, ...this.ContextOptions.LoggedIn, + ...this.ContextOptions.Vcs, }; async runAsync(): Promise { diff --git a/packages/eas-cli/src/commands/credentials.ts b/packages/eas-cli/src/commands/credentials.ts index 031b1a068d..56ac736e5f 100644 --- a/packages/eas-cli/src/commands/credentials.ts +++ b/packages/eas-cli/src/commands/credentials.ts @@ -15,6 +15,7 @@ export default class Credentials extends EasCommand { ...this.ContextOptions.OptionalProjectConfig, ...this.ContextOptions.DynamicProjectConfig, ...this.ContextOptions.Analytics, + ...this.ContextOptions.Vcs, }; async runAsync(): Promise { @@ -24,6 +25,7 @@ export default class Credentials extends EasCommand { privateProjectConfig, getDynamicPrivateProjectConfigAsync, analytics, + vcsClient, } = await this.getContextAsync(Credentials, { nonInteractive: false, }); @@ -31,6 +33,7 @@ export default class Credentials extends EasCommand { await new SelectPlatform( actor, graphqlClient, + vcsClient, analytics, privateProjectConfig ?? null, getDynamicPrivateProjectConfigAsync, diff --git a/packages/eas-cli/src/commands/diagnostics.ts b/packages/eas-cli/src/commands/diagnostics.ts index 097bb332c2..dfb943d9c7 100644 --- a/packages/eas-cli/src/commands/diagnostics.ts +++ b/packages/eas-cli/src/commands/diagnostics.ts @@ -5,16 +5,18 @@ import EasCommand from '../commandUtils/EasCommand'; import Log from '../log'; import { resolveWorkflowAsync } from '../project/workflow'; import { easCliVersion } from '../utils/easCli'; +import { Client } from '../vcs/vcs'; export default class Diagnostics extends EasCommand { static override description = 'display environment info'; static override contextDefinition = { ...this.ContextOptions.ProjectDir, + ...this.ContextOptions.Vcs, }; async runAsync(): Promise { - const { projectDir } = await this.getContextAsync(Diagnostics, { + const { projectDir, vcsClient } = await this.getContextAsync(Diagnostics, { nonInteractive: true, }); @@ -43,13 +45,13 @@ export default class Diagnostics extends EasCommand { ); Log.log(info.trimEnd()); - await this.printWorkflowAsync(projectDir); + await this.printWorkflowAsync(projectDir, vcsClient); Log.newLine(); } - private async printWorkflowAsync(projectDir: string): Promise { - const androidWorkflow = await resolveWorkflowAsync(projectDir, Platform.ANDROID); - const iosWorkflow = await resolveWorkflowAsync(projectDir, Platform.IOS); + private async printWorkflowAsync(projectDir: string, vcsClient: Client): Promise { + const androidWorkflow = await resolveWorkflowAsync(projectDir, Platform.ANDROID, vcsClient); + const iosWorkflow = await resolveWorkflowAsync(projectDir, Platform.IOS, vcsClient); if (androidWorkflow === iosWorkflow) { Log.log(` Project workflow: ${androidWorkflow}`); diff --git a/packages/eas-cli/src/commands/metadata/pull.ts b/packages/eas-cli/src/commands/metadata/pull.ts index bac1bccbf4..37719ce0f2 100644 --- a/packages/eas-cli/src/commands/metadata/pull.ts +++ b/packages/eas-cli/src/commands/metadata/pull.ts @@ -27,6 +27,7 @@ export default class MetadataPull extends EasCommand { ...this.ContextOptions.ProjectConfig, ...this.ContextOptions.LoggedIn, ...this.ContextOptions.Analytics, + ...this.ContextOptions.Vcs, }; async runAsync(): Promise { @@ -37,12 +38,13 @@ export default class MetadataPull extends EasCommand { loggedIn: { actor, graphqlClient }, privateProjectConfig: { exp, projectId, projectDir }, analytics, + vcsClient, } = await this.getContextAsync(MetadataPull, { nonInteractive: false, }); // this command is interactive (all nonInteractive flags passed to utility functions are false) - await ensureProjectConfiguredAsync({ projectDir, nonInteractive: false }); + await ensureProjectConfiguredAsync({ projectDir, nonInteractive: false, vcsClient }); const submitProfiles = await getProfilesAsync({ type: 'submit', @@ -64,6 +66,7 @@ export default class MetadataPull extends EasCommand { graphqlClient, analytics, nonInteractive: false, + vcsClient, }); try { diff --git a/packages/eas-cli/src/commands/metadata/push.ts b/packages/eas-cli/src/commands/metadata/push.ts index 69aa0ef3a8..18306a9799 100644 --- a/packages/eas-cli/src/commands/metadata/push.ts +++ b/packages/eas-cli/src/commands/metadata/push.ts @@ -25,6 +25,7 @@ export default class MetadataPush extends EasCommand { ...this.ContextOptions.ProjectConfig, ...this.ContextOptions.LoggedIn, ...this.ContextOptions.Analytics, + ...this.ContextOptions.Vcs, }; async runAsync(): Promise { @@ -35,12 +36,13 @@ export default class MetadataPush extends EasCommand { loggedIn: { actor, graphqlClient }, privateProjectConfig: { exp, projectId, projectDir }, analytics, + vcsClient, } = await this.getContextAsync(MetadataPush, { nonInteractive: false, }); // this command is interactive (all nonInteractive flags passed to utility functions are false) - await ensureProjectConfiguredAsync({ projectDir, nonInteractive: false }); + await ensureProjectConfiguredAsync({ projectDir, nonInteractive: false, vcsClient }); const submitProfiles = await getProfilesAsync({ type: 'submit', @@ -62,6 +64,7 @@ export default class MetadataPush extends EasCommand { graphqlClient, analytics, nonInteractive: false, + vcsClient, }); try { diff --git a/packages/eas-cli/src/commands/submit.ts b/packages/eas-cli/src/commands/submit.ts index 5c0df81c67..07b3fbc46d 100644 --- a/packages/eas-cli/src/commands/submit.ts +++ b/packages/eas-cli/src/commands/submit.ts @@ -94,6 +94,7 @@ export default class Submit extends EasCommand { ...this.ContextOptions.ProjectConfig, ...this.ContextOptions.ProjectDir, ...this.ContextOptions.Analytics, + ...this.ContextOptions.Vcs, }; async runAsync(): Promise { @@ -102,6 +103,7 @@ export default class Submit extends EasCommand { loggedIn: { actor, graphqlClient }, privateProjectConfig: { exp, projectId, projectDir }, analytics, + vcsClient, } = await this.getContextAsync(Submit, { nonInteractive: false, }); @@ -135,6 +137,7 @@ export default class Submit extends EasCommand { analytics, exp, projectId, + vcsClient, }); if (submissionProfiles.length > 1) { diff --git a/packages/eas-cli/src/commands/update/__tests__/configure.test.ts b/packages/eas-cli/src/commands/update/__tests__/configure.test.ts index 784c7f12cc..a93a60f6a0 100644 --- a/packages/eas-cli/src/commands/update/__tests__/configure.test.ts +++ b/packages/eas-cli/src/commands/update/__tests__/configure.test.ts @@ -3,10 +3,12 @@ import { instance, mock } from 'ts-mockito'; import { ExpoGraphqlClient } from '../../../commandUtils/context/contextUtils/createGraphqlClient'; import { ensureEASUpdateIsConfiguredAsync } from '../../../update/configure'; +import { Client } from '../../../vcs/vcs'; describe(ensureEASUpdateIsConfiguredAsync, () => { it('errors with "useClassicUpdates" set and no app.json', async () => { const graphqlClient = instance(mock({})); + const vcsClient = instance(mock({})); const exp: ExpoConfig = { name: 'test', slug: 'test', @@ -19,6 +21,7 @@ describe(ensureEASUpdateIsConfiguredAsync, () => { projectId: 'test', projectDir: '/tmp/test', platform: null, + vcsClient, }); }).rejects.toThrow( `Your app config sets "updates.useClassicUpdates" but EAS Update does not support classic updates. Remove "useClassicUpdates" from your app config and run this command again.` diff --git a/packages/eas-cli/src/commands/update/configure.ts b/packages/eas-cli/src/commands/update/configure.ts index 68902ec3ea..5f153e432d 100644 --- a/packages/eas-cli/src/commands/update/configure.ts +++ b/packages/eas-cli/src/commands/update/configure.ts @@ -10,7 +10,6 @@ import { ensureEASUpdateIsConfiguredAsync, ensureEASUpdateIsConfiguredInEasJsonAsync, } from '../../update/configure'; -import { getVcsClient } from '../../vcs'; export default class UpdateConfigure extends EasCommand { static override description = 'configure the project to support EAS Update'; @@ -28,6 +27,7 @@ export default class UpdateConfigure extends EasCommand { static override contextDefinition = { ...this.ContextOptions.ProjectConfig, ...this.ContextOptions.LoggedIn, + ...this.ContextOptions.Vcs, }; async runAsync(): Promise { @@ -36,6 +36,7 @@ export default class UpdateConfigure extends EasCommand { const { privateProjectConfig: { projectId, exp, projectDir }, loggedIn: { graphqlClient }, + vcsClient, } = await this.getContextAsync(UpdateConfigure, { nonInteractive: flags['non-interactive'], }); @@ -44,13 +45,14 @@ export default class UpdateConfigure extends EasCommand { 'πŸ’‘ The following process will configure your project to use EAS Update. These changes only apply to your local project files and you can safely revert them at any time.' ); - await getVcsClient().ensureRepoExistsAsync(); + await vcsClient.ensureRepoExistsAsync(); await ensureEASUpdateIsConfiguredAsync(graphqlClient, { exp, projectId, projectDir, platform, + vcsClient, }); await ensureEASUpdateIsConfiguredInEasJsonAsync(projectDir); diff --git a/packages/eas-cli/src/commands/update/index.ts b/packages/eas-cli/src/commands/update/index.ts index f4b1f6cf52..780f24f141 100644 --- a/packages/eas-cli/src/commands/update/index.ts +++ b/packages/eas-cli/src/commands/update/index.ts @@ -52,7 +52,6 @@ import uniqBy from '../../utils/expodash/uniqBy'; import formatFields from '../../utils/formatFields'; import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json'; import { maybeWarnAboutEasOutagesAsync } from '../../utils/statuspageService'; -import { getVcsClient } from '../../vcs'; type RawUpdateFlags = { auto: boolean; @@ -155,6 +154,7 @@ export default class UpdatePublish extends EasCommand { static override contextDefinition = { ...this.ContextOptions.DynamicProjectConfig, ...this.ContextOptions.LoggedIn, + ...this.ContextOptions.Vcs, }; async runAsync(): Promise { @@ -179,6 +179,7 @@ export default class UpdatePublish extends EasCommand { getDynamicPublicProjectConfigAsync, getDynamicPrivateProjectConfigAsync, loggedIn: { graphqlClient }, + vcsClient, } = await this.getContextAsync(UpdatePublish, { nonInteractive, }); @@ -200,6 +201,7 @@ export default class UpdatePublish extends EasCommand { platform: getRequestedPlatform(platformFlag), projectDir, projectId, + vcsClient, }); const { exp } = await getDynamicPublicProjectConfigAsync(); @@ -208,6 +210,7 @@ export default class UpdatePublish extends EasCommand { const branchName = await getBranchNameForCommandAsync({ graphqlClient, + vcsClient, projectId, channelNameArg, branchNameArg, @@ -216,7 +219,7 @@ export default class UpdatePublish extends EasCommand { paginatedQueryOptions, }); - const updateMessage = await getUpdateMessageForCommandAsync({ + const updateMessage = await getUpdateMessageForCommandAsync(vcsClient, { updateMessageArg, autoFlag, nonInteractive, @@ -359,7 +362,12 @@ export default class UpdatePublish extends EasCommand { throw e; } - const runtimeVersions = await getRuntimeVersionObjectAsync(exp, realizedPlatforms, projectDir); + const runtimeVersions = await getRuntimeVersionObjectAsync( + exp, + realizedPlatforms, + projectDir, + vcsClient + ); const runtimeToPlatformMapping = getRuntimeToPlatformMappingFromRuntimeVersions(runtimeVersions); @@ -378,8 +386,6 @@ export default class UpdatePublish extends EasCommand { ); } - const vcsClient = getVcsClient(); - const gitCommitHash = await vcsClient.getCommitHashAsync(); const isGitWorkingTreeDirty = await vcsClient.hasUncommittedChangesAsync(); diff --git a/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts b/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts index 7795afe7c3..9d4906d2b0 100644 --- a/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts +++ b/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts @@ -43,7 +43,6 @@ import uniqBy from '../../utils/expodash/uniqBy'; import formatFields from '../../utils/formatFields'; import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json'; import { maybeWarnAboutEasOutagesAsync } from '../../utils/statuspageService'; -import { getVcsClient } from '../../vcs'; type RawUpdateFlags = { auto: boolean; @@ -109,6 +108,7 @@ export default class UpdateRollBackToEmbedded extends EasCommand { static override contextDefinition = { ...this.ContextOptions.DynamicProjectConfig, ...this.ContextOptions.LoggedIn, + ...this.ContextOptions.Vcs, }; async runAsync(): Promise { @@ -129,6 +129,7 @@ export default class UpdateRollBackToEmbedded extends EasCommand { getDynamicPublicProjectConfigAsync, getDynamicPrivateProjectConfigAsync, loggedIn: { graphqlClient }, + vcsClient, } = await this.getContextAsync(UpdateRollBackToEmbedded, { nonInteractive, }); @@ -150,6 +151,7 @@ export default class UpdateRollBackToEmbedded extends EasCommand { platform: getRequestedPlatform(platformFlag), projectDir, projectId, + vcsClient, }); const { exp } = await getDynamicPublicProjectConfigAsync(); @@ -158,6 +160,7 @@ export default class UpdateRollBackToEmbedded extends EasCommand { const branchName = await getBranchNameForCommandAsync({ graphqlClient, + vcsClient, projectId, channelNameArg, branchNameArg, @@ -166,7 +169,7 @@ export default class UpdateRollBackToEmbedded extends EasCommand { paginatedQueryOptions, }); - const updateMessage = await getUpdateMessageForCommandAsync({ + const updateMessage = await getUpdateMessageForCommandAsync(vcsClient, { updateMessageArg, autoFlag, nonInteractive, @@ -190,12 +193,15 @@ export default class UpdateRollBackToEmbedded extends EasCommand { Log.withTick(`Channel: ${chalk.bold(branchName)} pointed at branch: ${chalk.bold(branchName)}`); - const vcsClient = getVcsClient(); - const gitCommitHash = await vcsClient.getCommitHashAsync(); const isGitWorkingTreeDirty = await vcsClient.hasUncommittedChangesAsync(); - const runtimeVersions = await getRuntimeVersionObjectAsync(exp, realizedPlatforms, projectDir); + const runtimeVersions = await getRuntimeVersionObjectAsync( + exp, + realizedPlatforms, + projectDir, + vcsClient + ); let newUpdates: UpdatePublishMutation['updateBranch']['publishUpdateGroups']; const publishSpinner = ora('Publishing...').start(); diff --git a/packages/eas-cli/src/credentials/android/actions/BuildCredentialsUtils.ts b/packages/eas-cli/src/credentials/android/actions/BuildCredentialsUtils.ts index ff075565ae..71a8632c38 100644 --- a/packages/eas-cli/src/credentials/android/actions/BuildCredentialsUtils.ts +++ b/packages/eas-cli/src/credentials/android/actions/BuildCredentialsUtils.ts @@ -109,6 +109,7 @@ export async function getAppLookupParamsFromContextAsync( const androidApplicationIdentifier = await getApplicationIdAsync( ctx.projectDir, ctx.exp, + ctx.vcsClient, gradleContext ); if (!androidApplicationIdentifier) { diff --git a/packages/eas-cli/src/credentials/context.ts b/packages/eas-cli/src/credentials/context.ts index b0be625c3b..43a775b8c9 100644 --- a/packages/eas-cli/src/credentials/context.ts +++ b/packages/eas-cli/src/credentials/context.ts @@ -9,6 +9,7 @@ import Log from '../log'; import { getPrivateExpoConfig } from '../project/expoConfig'; import { confirmAsync } from '../prompts'; import { Actor } from '../user/User'; +import { Client } from '../vcs/vcs'; import * as AndroidGraphqlClient from './android/api/GraphqlClient'; import * as IosGraphqlClient from './ios/api/GraphqlClient'; import AppStoreApi from './ios/appstore/AppStoreApi'; @@ -28,6 +29,7 @@ export class CredentialsContext { public readonly user: Actor; public readonly graphqlClient: ExpoGraphqlClient; public readonly analytics: Analytics; + public readonly vcsClient: Client; public readonly easJsonCliConfig?: EasJson['cli']; private shouldAskAuthenticateAppStore: boolean = true; @@ -44,6 +46,7 @@ export class CredentialsContext { user: Actor; graphqlClient: ExpoGraphqlClient; analytics: Analytics; + vcsClient: Client; env?: Env; } ) { @@ -52,6 +55,7 @@ export class CredentialsContext { this.user = options.user; this.graphqlClient = options.graphqlClient; this.analytics = options.analytics; + this.vcsClient = options.vcsClient; this.nonInteractive = options.nonInteractive ?? false; this.projectInfo = options.projectInfo; } diff --git a/packages/eas-cli/src/credentials/credentialsJson/update.ts b/packages/eas-cli/src/credentials/credentialsJson/update.ts index 40f71d29a6..68c0b73779 100644 --- a/packages/eas-cli/src/credentials/credentialsJson/update.ts +++ b/packages/eas-cli/src/credentials/credentialsJson/update.ts @@ -6,8 +6,8 @@ import { AndroidAppBuildCredentialsFragment, IosDistributionType } from '../../g import Log from '../../log'; import { findApplicationTarget, findTargetByName } from '../../project/ios/target'; import zipObject from '../../utils/expodash/zipObject'; -import { getVcsClient } from '../../vcs'; import GitClient from '../../vcs/clients/git'; +import { Client } from '../../vcs/vcs'; import { CredentialsContext } from '../context'; import { App, Target, TargetCredentials } from '../ios/types'; import { readRawAsync } from './read'; @@ -38,7 +38,7 @@ export async function updateAndroidCredentialsAsync( rawCredentialsJson?.android?.keystore?.keystorePath ?? 'credentials/android/keystore.jks'; Log.log(`Writing Keystore to ${keystorePath}`); await updateFileAsync(ctx.projectDir, keystorePath, keystore.keystore); - const shouldWarnKeystore = await isFileUntrackedAsync(keystorePath); + const shouldWarnKeystore = await isFileUntrackedAsync(keystorePath, ctx.vcsClient); const androidCredentials: Partial = { keystore: { @@ -52,7 +52,7 @@ export async function updateAndroidCredentialsAsync( await fs.writeJson(getCredentialsJsonPath(ctx.projectDir), rawCredentialsJson, { spaces: 2, }); - const shouldWarnCredentialsJson = await isFileUntrackedAsync('credentials.json'); + const shouldWarnCredentialsJson = await isFileUntrackedAsync('credentials.json', ctx.vcsClient); const newFilePaths = []; if (shouldWarnKeystore) { @@ -137,14 +137,14 @@ export async function updateIosCredentialsAsync( const newFilePaths = []; for (const [, targetCredentials] of Object.entries(iosCredentials)) { - if (await isFileUntrackedAsync(targetCredentials.distributionCertificate.path)) { + if (await isFileUntrackedAsync(targetCredentials.distributionCertificate.path, ctx.vcsClient)) { newFilePaths.push(targetCredentials.distributionCertificate.path); } - if (await isFileUntrackedAsync(targetCredentials.provisioningProfilePath)) { + if (await isFileUntrackedAsync(targetCredentials.provisioningProfilePath, ctx.vcsClient)) { newFilePaths.push(targetCredentials.provisioningProfilePath); } } - if (await isFileUntrackedAsync('credentials.json')) { + if (await isFileUntrackedAsync('credentials.json', ctx.vcsClient)) { newFilePaths.push('credentials.json'); } displayUntrackedFilesWarning(newFilePaths); @@ -296,8 +296,7 @@ async function updateFileAsync( } } -async function isFileUntrackedAsync(path: string): Promise { - const vcsClient = getVcsClient(); +async function isFileUntrackedAsync(path: string, vcsClient: Client): Promise { if (vcsClient instanceof GitClient) { return await vcsClient.isFileUntrackedAsync(path); } diff --git a/packages/eas-cli/src/credentials/ios/actions/__tests__/SetUpAdhocProvisioningProfile-test.ts b/packages/eas-cli/src/credentials/ios/actions/__tests__/SetUpAdhocProvisioningProfile-test.ts index 51e2d5eca0..d81e5bef55 100644 --- a/packages/eas-cli/src/credentials/ios/actions/__tests__/SetUpAdhocProvisioningProfile-test.ts +++ b/packages/eas-cli/src/credentials/ios/actions/__tests__/SetUpAdhocProvisioningProfile-test.ts @@ -15,6 +15,7 @@ import { import Log from '../../../../log'; import { getApplePlatformFromTarget } from '../../../../project/ios/target'; import { Actor } from '../../../../user/User'; +import { Client } from '../../../../vcs/vcs'; import { CredentialsContext, CredentialsContextProjectInfo } from '../../../context'; import { ProvisioningProfile } from '../../appstore/Credentials.types'; import { ApplePlatform } from '../../appstore/constants'; @@ -118,6 +119,7 @@ function setUpTest(): { ctx: CredentialsContext; distCert: AppleDistributionCert graphqlClient: ExpoGraphqlClient; analytics: Analytics; env?: Env; + vcsClient: Client; } ) ); diff --git a/packages/eas-cli/src/credentials/manager/HelperActions.ts b/packages/eas-cli/src/credentials/manager/HelperActions.ts index 92defe0190..808ff6dd2d 100644 --- a/packages/eas-cli/src/credentials/manager/HelperActions.ts +++ b/packages/eas-cli/src/credentials/manager/HelperActions.ts @@ -4,12 +4,14 @@ import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/creat import Log from '../../log'; import { pressAnyKeyToContinueAsync } from '../../prompts'; import { Actor } from '../../user/User'; +import { Client } from '../../vcs/vcs'; import { CredentialsContext, CredentialsContextProjectInfo } from '../context'; export interface Action { actor: Actor; graphqlClient: ExpoGraphqlClient; analytics: Analytics; + vcsClient: Client; projectInfo: CredentialsContextProjectInfo | null; getDynamicPrivateProjectConfigAsync: DynamicConfigContextFn; runAsync(ctx: CredentialsContext): Promise; diff --git a/packages/eas-cli/src/credentials/manager/ManageAndroid.ts b/packages/eas-cli/src/credentials/manager/ManageAndroid.ts index 4115b52f8a..d283ba1c4e 100644 --- a/packages/eas-cli/src/credentials/manager/ManageAndroid.ts +++ b/packages/eas-cli/src/credentials/manager/ManageAndroid.ts @@ -65,6 +65,7 @@ export class ManageAndroid { analytics: this.callingAction.analytics, env: buildProfile?.env, nonInteractive: false, + vcsClient: this.callingAction.vcsClient, }); let gradleContext; @@ -153,7 +154,7 @@ export class ManageAndroid { buildProfile: BuildProfile ): Promise { assert(ctx.hasProjectContext, 'createProjectContextAsync: must have project context.'); - return await resolveGradleBuildContextAsync(ctx.projectDir, buildProfile); + return await resolveGradleBuildContextAsync(ctx.projectDir, buildProfile, ctx.vcsClient); } private async runProjectSpecificActionAsync( diff --git a/packages/eas-cli/src/credentials/manager/ManageIos.ts b/packages/eas-cli/src/credentials/manager/ManageIos.ts index 7667ab0b6e..cf084c55b9 100644 --- a/packages/eas-cli/src/credentials/manager/ManageIos.ts +++ b/packages/eas-cli/src/credentials/manager/ManageIos.ts @@ -78,6 +78,7 @@ export class ManageIos { analytics: this.callingAction.analytics, env: buildProfile?.env, nonInteractive: false, + vcsClient: this.callingAction.vcsClient, }); const buildCredentialsActions = getBuildCredentialsActions(ctx); const pushKeyActions = getPushKeyActions(ctx); @@ -194,6 +195,7 @@ export class ManageIos { projectDir: ctx.projectDir, nonInteractive: ctx.nonInteractive, exp: ctx.exp, + vcsClient: ctx.vcsClient, }, buildProfile ); @@ -202,6 +204,7 @@ export class ManageIos { projectDir: ctx.projectDir, xcodeBuildContext, env: buildProfile.env, + vcsClient: ctx.vcsClient, }); return { app, diff --git a/packages/eas-cli/src/credentials/manager/SelectPlatform.ts b/packages/eas-cli/src/credentials/manager/SelectPlatform.ts index c00a3d283f..33198f5096 100644 --- a/packages/eas-cli/src/credentials/manager/SelectPlatform.ts +++ b/packages/eas-cli/src/credentials/manager/SelectPlatform.ts @@ -3,6 +3,7 @@ import { DynamicConfigContextFn } from '../../commandUtils/context/DynamicProjec import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient'; import { selectPlatformAsync } from '../../platform'; import { Actor } from '../../user/User'; +import { Client } from '../../vcs/vcs'; import { CredentialsContextProjectInfo } from '../context'; import { ManageAndroid } from './ManageAndroid'; import { ManageIos } from './ManageIos'; @@ -11,6 +12,7 @@ export class SelectPlatform { constructor( public readonly actor: Actor, public readonly graphqlClient: ExpoGraphqlClient, + public readonly vcsClient: Client, public readonly analytics: Analytics, public readonly projectInfo: CredentialsContextProjectInfo | null, public readonly getDynamicPrivateProjectConfigAsync: DynamicConfigContextFn, diff --git a/packages/eas-cli/src/credentials/manager/__tests__/ManageAndroid-test.ts b/packages/eas-cli/src/credentials/manager/__tests__/ManageAndroid-test.ts index f4ae06ed36..e47f41623f 100644 --- a/packages/eas-cli/src/credentials/manager/__tests__/ManageAndroid-test.ts +++ b/packages/eas-cli/src/credentials/manager/__tests__/ManageAndroid-test.ts @@ -7,6 +7,7 @@ import { learnMore } from '../../../log'; import { getProjectConfigDescription } from '../../../project/projectUtils'; import { pressAnyKeyToContinueAsync } from '../../../prompts'; import { Actor } from '../../../user/User'; +import { Client } from '../../../vcs/vcs'; import { getAppLookupParamsFromContextAsync } from '../../android/actions/BuildCredentialsUtils'; import { CredentialsContextProjectInfo } from '../../context'; import { AndroidPackageNotDefinedError } from '../../errors'; @@ -30,6 +31,7 @@ describe('runAsync', () => { actor: {} as Actor, graphqlClient: {} as ExpoGraphqlClient, analytics: {} as Analytics, + vcsClient: {} as Client, getDynamicPrivateProjectConfigAsync: jest .fn() .mockResolvedValue({ exp: {}, projectId: '' }), diff --git a/packages/eas-cli/src/metadata/auth.ts b/packages/eas-cli/src/metadata/auth.ts index b10d7be510..d41508be00 100644 --- a/packages/eas-cli/src/metadata/auth.ts +++ b/packages/eas-cli/src/metadata/auth.ts @@ -6,6 +6,7 @@ import assert from 'assert'; import { CredentialsContext } from '../credentials/context'; import { getRequestContext } from '../credentials/ios/appstore/authenticate'; import { getBundleIdentifierAsync } from '../project/ios/bundleIdentifier'; +import { Client } from '../vcs/vcs'; export type MetadataAppStoreAuthentication = { /** The root entity of the App store */ @@ -21,13 +22,14 @@ export type MetadataAppStoreAuthentication = { async function resolveAppStoreBundleIdentifierAsync( projectDir: string, profile: SubmitProfile, - exp: ExpoConfig + exp: ExpoConfig, + vcsClient: Client ): Promise { if ('bundleIdentifier' in profile) { - return profile.bundleIdentifier ?? (await getBundleIdentifierAsync(projectDir, exp)); + return profile.bundleIdentifier ?? (await getBundleIdentifierAsync(projectDir, exp, vcsClient)); } - return await getBundleIdentifierAsync(projectDir, exp); + return await getBundleIdentifierAsync(projectDir, exp, vcsClient); } /** @@ -45,7 +47,12 @@ export async function getAppStoreAuthAsync({ exp: ExpoConfig; credentialsCtx: CredentialsContext; }): Promise { - const bundleId = await resolveAppStoreBundleIdentifierAsync(projectDir, profile, exp); + const bundleId = await resolveAppStoreBundleIdentifierAsync( + projectDir, + profile, + exp, + credentialsCtx.vcsClient + ); const authCtx = await credentialsCtx.appStore.ensureAuthenticatedAsync(); assert(authCtx.authState, 'Failed to authenticate with App Store Connect'); diff --git a/packages/eas-cli/src/project/__tests__/workflow-test.ts b/packages/eas-cli/src/project/__tests__/workflow-test.ts index ec70813a60..afdf8b4c7a 100644 --- a/packages/eas-cli/src/project/__tests__/workflow-test.ts +++ b/packages/eas-cli/src/project/__tests__/workflow-test.ts @@ -1,11 +1,13 @@ import { Platform, Workflow } from '@expo/eas-build-job'; import { vol } from 'memfs'; +import { getVcsClient } from '../../vcs'; import { resolveWorkflowAsync, resolveWorkflowPerPlatformAsync } from '../workflow'; jest.mock('fs'); const projectDir = '/app'; +const vcsClient = getVcsClient(); describe(resolveWorkflowAsync, () => { beforeEach(() => { @@ -21,10 +23,12 @@ describe(resolveWorkflowAsync, () => { projectDir ); - await expect(resolveWorkflowAsync(projectDir, Platform.ANDROID)).resolves.toBe( + await expect(resolveWorkflowAsync(projectDir, Platform.ANDROID, vcsClient)).resolves.toBe( + Workflow.GENERIC + ); + await expect(resolveWorkflowAsync(projectDir, Platform.IOS, vcsClient)).resolves.toBe( Workflow.GENERIC ); - await expect(resolveWorkflowAsync(projectDir, Platform.IOS)).resolves.toBe(Workflow.GENERIC); }); test('bare workflow for single platform', async () => { @@ -35,10 +39,12 @@ describe(resolveWorkflowAsync, () => { projectDir ); - await expect(resolveWorkflowAsync(projectDir, Platform.ANDROID)).resolves.toBe( + await expect(resolveWorkflowAsync(projectDir, Platform.ANDROID, vcsClient)).resolves.toBe( Workflow.MANAGED ); - await expect(resolveWorkflowAsync(projectDir, Platform.IOS)).resolves.toBe(Workflow.GENERIC); + await expect(resolveWorkflowAsync(projectDir, Platform.IOS, vcsClient)).resolves.toBe( + Workflow.GENERIC + ); }); test('android/ios directories are ignored', async () => { @@ -51,10 +57,12 @@ describe(resolveWorkflowAsync, () => { projectDir ); - await expect(resolveWorkflowAsync(projectDir, Platform.ANDROID)).resolves.toBe( + await expect(resolveWorkflowAsync(projectDir, Platform.ANDROID, vcsClient)).resolves.toBe( + Workflow.MANAGED + ); + await expect(resolveWorkflowAsync(projectDir, Platform.IOS, vcsClient)).resolves.toBe( Workflow.MANAGED ); - await expect(resolveWorkflowAsync(projectDir, Platform.IOS)).resolves.toBe(Workflow.MANAGED); }); }); @@ -72,7 +80,7 @@ describe(resolveWorkflowPerPlatformAsync, () => { projectDir ); - await expect(resolveWorkflowPerPlatformAsync(projectDir)).resolves.toEqual({ + await expect(resolveWorkflowPerPlatformAsync(projectDir, vcsClient)).resolves.toEqual({ android: Workflow.GENERIC, ios: Workflow.GENERIC, }); diff --git a/packages/eas-cli/src/project/android/__tests__/applicationId-test.ts b/packages/eas-cli/src/project/android/__tests__/applicationId-test.ts index de053e508d..8efa325bfb 100644 --- a/packages/eas-cli/src/project/android/__tests__/applicationId-test.ts +++ b/packages/eas-cli/src/project/android/__tests__/applicationId-test.ts @@ -7,6 +7,7 @@ import { ExpoGraphqlClient } from '../../../commandUtils/context/contextUtils/cr import { jester, jester as mockJester } from '../../../credentials/__tests__/fixtures-constants'; import { AppQuery } from '../../../graphql/queries/AppQuery'; import { promptAsync } from '../../../prompts'; +import { getVcsClient } from '../../../vcs'; import { ensureApplicationIdIsDefinedForManagedProjectAsync, getApplicationIdAsync, @@ -17,6 +18,8 @@ jest.mock('../../../prompts'); jest.mock('../../../graphql/queries/AppQuery'); jest.mock('../../../user/actions', () => ({ ensureLoggedInAsync: jest.fn(() => mockJester) })); +const vcsClient = getVcsClient(); + beforeEach(async () => { vol.reset(); @@ -44,7 +47,9 @@ describe(getApplicationIdAsync, () => { '/app' ); - const applicationId = await getApplicationIdAsync('/app', {} as any, { moduleName: 'app' }); + const applicationId = await getApplicationIdAsync('/app', {} as any, vcsClient, { + moduleName: 'app', + }); expect(applicationId).toBe('com.expo.notdominik'); }); @@ -56,9 +61,9 @@ describe(getApplicationIdAsync, () => { }, '/app' ); - await expect(getApplicationIdAsync('/app', {} as any, undefined)).rejects.toThrowError( - /Failed to find 'build.gradle' / - ); + await expect( + getApplicationIdAsync('/app', {} as any, vcsClient, undefined) + ).rejects.toThrowError(/Failed to find 'build.gradle' /); }); it('throws an error if the project does not have applicationId defined in build.gradle', async () => { @@ -71,7 +76,7 @@ describe(getApplicationIdAsync, () => { ); await expect( - getApplicationIdAsync('/app', {} as any, { moduleName: 'app' }) + getApplicationIdAsync('/app', {} as any, vcsClient, { moduleName: 'app' }) ).rejects.toThrowError(/Could not read applicationId/); }); }); @@ -83,6 +88,7 @@ describe(getApplicationIdAsync, () => { { android: { package: 'com.expo.notdominik' }, } as any, + vcsClient, { moduleName: 'app' } ); expect(applicationId).toBe('com.expo.notdominik'); @@ -90,15 +96,20 @@ describe(getApplicationIdAsync, () => { it('throws an error if Android package is not defined in app config', async () => { await expect( - getApplicationIdAsync('/app', {} as any, { moduleName: 'app' }) + getApplicationIdAsync('/app', {} as any, vcsClient, { moduleName: 'app' }) ).rejects.toThrowError(/Specify "android.package"/); }); it('throws an error if Android package in app config is invalid', async () => { await expect( - getApplicationIdAsync('/app', { android: { package: '1com.expo.notdominik' } } as any, { - moduleName: 'app', - }) + getApplicationIdAsync( + '/app', + { android: { package: '1com.expo.notdominik' } } as any, + vcsClient, + { + moduleName: 'app', + } + ) ).rejects.toThrowError(/Specify "android.package"/); }); }); @@ -121,6 +132,7 @@ describe(ensureApplicationIdIsDefinedForManagedProjectAsync, () => { projectDir: '/app', projectId: '', exp: {} as any, + vcsClient, }) ).rejects.toThrowError(/we can't update this file programmatically/); }); @@ -150,6 +162,7 @@ describe(ensureApplicationIdIsDefinedForManagedProjectAsync, () => { projectDir: '/app', projectId: '', exp: {} as any, + vcsClient, }) ).resolves.toBe('com.expo.notdominik'); expect(promptAsync).toHaveBeenCalled(); @@ -182,6 +195,7 @@ describe(ensureApplicationIdIsDefinedForManagedProjectAsync, () => { projectDir: '/app', projectId: '', exp: {} as any, + vcsClient, }) ).resolves.toBe('com.expo.notdominik'); const appJson = JSON.parse(await fs.readFile('/app/app.json', 'utf-8')); diff --git a/packages/eas-cli/src/project/android/__tests__/gradle-test.ts b/packages/eas-cli/src/project/android/__tests__/gradle-test.ts index 35a1beea5c..3314f13fc9 100644 --- a/packages/eas-cli/src/project/android/__tests__/gradle-test.ts +++ b/packages/eas-cli/src/project/android/__tests__/gradle-test.ts @@ -4,12 +4,15 @@ import os from 'os'; import { jester as mockJester } from '../../../credentials/__tests__/fixtures-constants'; import { promptAsync } from '../../../prompts'; +import { getVcsClient } from '../../../vcs'; import { resolveGradleBuildContextAsync } from '../gradle'; jest.mock('fs'); jest.mock('../../../prompts'); jest.mock('../../../user/actions', () => ({ ensureLoggedInAsync: jest.fn(() => mockJester) })); +const vcsClient = getVcsClient(); + beforeEach(async () => { vol.reset(); // do not remove the following line @@ -36,7 +39,7 @@ describe(resolveGradleBuildContextAsync, () => { '/app' ); - const gradleContext = await resolveGradleBuildContextAsync('/app', {} as any); + const gradleContext = await resolveGradleBuildContextAsync('/app', {} as any, vcsClient); expect(gradleContext).toEqual({ moduleName: 'app' }); }); it('resolves to flavor', async () => { @@ -59,9 +62,13 @@ describe(resolveGradleBuildContextAsync, () => { '/app' ); - const gradleContext = await resolveGradleBuildContextAsync('/app', { - gradleCommand: ':app:buildAbcRelease', - } as any); + const gradleContext = await resolveGradleBuildContextAsync( + '/app', + { + gradleCommand: ':app:buildAbcRelease', + } as any, + vcsClient + ); expect(gradleContext).toEqual({ moduleName: 'app', flavor: 'abc' }); }); @@ -73,9 +80,13 @@ describe(resolveGradleBuildContextAsync, () => { }, '/app' ); - const gradleContext = await resolveGradleBuildContextAsync('/app', { - gradleCommand: ':app:buildAbcRelease', - } as any); + const gradleContext = await resolveGradleBuildContextAsync( + '/app', + { + gradleCommand: ':app:buildAbcRelease', + } as any, + vcsClient + ); expect(gradleContext).toEqual(undefined); }); it('returns undefined if flavor does not exist', async () => { @@ -93,16 +104,20 @@ describe(resolveGradleBuildContextAsync, () => { '/app' ); - const gradleContext = await resolveGradleBuildContextAsync('/app', { - gradleCommand: ':app:buildAbcRelease', - } as any); + const gradleContext = await resolveGradleBuildContextAsync( + '/app', + { + gradleCommand: ':app:buildAbcRelease', + } as any, + vcsClient + ); expect(gradleContext).toEqual(undefined); }); }); describe('managed projects', () => { it('resolves to { moduleName: app } for managed projects', async () => { - const gradleContext = await resolveGradleBuildContextAsync('/app', {} as any); + const gradleContext = await resolveGradleBuildContextAsync('/app', {} as any, {} as any); expect(gradleContext).toEqual({ moduleName: 'app' }); }); }); diff --git a/packages/eas-cli/src/project/android/applicationId.ts b/packages/eas-cli/src/project/android/applicationId.ts index ea1962bef6..53f1f1f931 100644 --- a/packages/eas-cli/src/project/android/applicationId.ts +++ b/packages/eas-cli/src/project/android/applicationId.ts @@ -15,6 +15,7 @@ import { getProjectConfigDescription, } from '../../project/projectUtils'; import { promptAsync } from '../../prompts'; +import { Client } from '../../vcs/vcs'; import { resolveWorkflowAsync } from '../workflow'; import { GradleBuildContext } from './gradle'; import * as gradleUtils from './gradleUtils'; @@ -26,17 +27,19 @@ export async function ensureApplicationIdIsDefinedForManagedProjectAsync({ projectDir, projectId, exp, + vcsClient, }: { graphqlClient: ExpoGraphqlClient; projectDir: string; projectId: string; exp: ExpoConfig; + vcsClient: Client; }): Promise { - const workflow = await resolveWorkflowAsync(projectDir, Platform.ANDROID); + const workflow = await resolveWorkflowAsync(projectDir, Platform.ANDROID, vcsClient); assert(workflow === Workflow.MANAGED, 'This function should be called only for managed projects'); try { - return await getApplicationIdAsync(projectDir, exp, { + return await getApplicationIdAsync(projectDir, exp, vcsClient, { moduleName: gradleUtils.DEFAULT_MODULE_NAME, }); } catch { @@ -95,9 +98,10 @@ export async function getApplicationIdFromBareAsync( export async function getApplicationIdAsync( projectDir: string, exp: ExpoConfig, + vcsClient: Client, gradleContext?: GradleBuildContext ): Promise { - const workflow = await resolveWorkflowAsync(projectDir, Platform.ANDROID); + const workflow = await resolveWorkflowAsync(projectDir, Platform.ANDROID, vcsClient); if (workflow === Workflow.GENERIC) { warnIfAndroidPackageDefinedInAppConfigForBareWorkflowProject(projectDir, exp); diff --git a/packages/eas-cli/src/project/android/gradle.ts b/packages/eas-cli/src/project/android/gradle.ts index d9720afa63..b5349923e5 100644 --- a/packages/eas-cli/src/project/android/gradle.ts +++ b/packages/eas-cli/src/project/android/gradle.ts @@ -3,6 +3,7 @@ import { BuildProfile } from '@expo/eas-json'; import Log from '../../log'; import { resolveWorkflowAsync } from '../../project/workflow'; +import { Client } from '../../vcs/vcs'; import * as gradleUtils from './gradleUtils'; export interface GradleBuildContext { @@ -12,9 +13,10 @@ export interface GradleBuildContext { export async function resolveGradleBuildContextAsync( projectDir: string, - buildProfile: BuildProfile + buildProfile: BuildProfile, + vcsClient: Client ): Promise { - const workflow = await resolveWorkflowAsync(projectDir, Platform.ANDROID); + const workflow = await resolveWorkflowAsync(projectDir, Platform.ANDROID, vcsClient); if (workflow === Workflow.GENERIC) { try { if (buildProfile.gradleCommand) { diff --git a/packages/eas-cli/src/project/applicationIdentifier.ts b/packages/eas-cli/src/project/applicationIdentifier.ts index 1cf3f3379b..729058f4b4 100644 --- a/packages/eas-cli/src/project/applicationIdentifier.ts +++ b/packages/eas-cli/src/project/applicationIdentifier.ts @@ -3,6 +3,7 @@ import { Platform, Workflow } from '@expo/eas-build-job'; import { BuildProfile } from '@expo/eas-json'; import { ExpoGraphqlClient } from '../commandUtils/context/contextUtils/createGraphqlClient'; +import { Client } from '../vcs/vcs'; import { ensureApplicationIdIsDefinedForManagedProjectAsync, getApplicationIdAsync, @@ -23,6 +24,7 @@ export async function getApplicationIdentifierAsync({ exp, buildProfile, platform, + vcsClient, }: { graphqlClient: ExpoGraphqlClient; projectDir: string; @@ -30,10 +32,11 @@ export async function getApplicationIdentifierAsync({ exp: ExpoConfig; buildProfile: BuildProfile; platform: Platform; + vcsClient: Client; }): Promise { if (platform === Platform.ANDROID) { const profile = buildProfile as BuildProfile; - const workflow = await resolveWorkflowAsync(projectDir, Platform.ANDROID); + const workflow = await resolveWorkflowAsync(projectDir, Platform.ANDROID, vcsClient); if (workflow === Workflow.MANAGED) { return await ensureApplicationIdIsDefinedForManagedProjectAsync({ @@ -41,13 +44,14 @@ export async function getApplicationIdentifierAsync({ projectDir, projectId, exp, + vcsClient, }); } - const gradleContext = await resolveGradleBuildContextAsync(projectDir, profile); - return await getApplicationIdAsync(projectDir, exp, gradleContext); + const gradleContext = await resolveGradleBuildContextAsync(projectDir, profile, vcsClient); + return await getApplicationIdAsync(projectDir, exp, vcsClient, gradleContext); } else { - const workflow = await resolveWorkflowAsync(projectDir, Platform.IOS); + const workflow = await resolveWorkflowAsync(projectDir, Platform.IOS, vcsClient); const profile = buildProfile as BuildProfile; if (workflow === Workflow.MANAGED) { return await ensureBundleIdentifierIsDefinedForManagedProjectAsync({ @@ -55,11 +59,12 @@ export async function getApplicationIdentifierAsync({ projectDir, projectId, exp, + vcsClient, }); } const xcodeBuildContext = await resolveXcodeBuildContextAsync( - { exp, projectDir, nonInteractive: false }, + { exp, projectDir, nonInteractive: false, vcsClient }, profile ); const targets = await resolveTargetsAsync({ @@ -67,9 +72,10 @@ export async function getApplicationIdentifierAsync({ exp, xcodeBuildContext, env: profile.env, + vcsClient, }); const applicationTarget = findApplicationTarget(targets); - return await getBundleIdentifierAsync(projectDir, exp, { + return await getBundleIdentifierAsync(projectDir, exp, vcsClient, { targetName: applicationTarget.targetName, buildConfiguration: applicationTarget.buildConfiguration, }); diff --git a/packages/eas-cli/src/project/ios/__tests__/bundleIdentifier-test.ts b/packages/eas-cli/src/project/ios/__tests__/bundleIdentifier-test.ts index 5b0da292c1..df15d300ad 100644 --- a/packages/eas-cli/src/project/ios/__tests__/bundleIdentifier-test.ts +++ b/packages/eas-cli/src/project/ios/__tests__/bundleIdentifier-test.ts @@ -8,6 +8,7 @@ import { ExpoGraphqlClient } from '../../../commandUtils/context/contextUtils/cr import { jester, jester as mockJester } from '../../../credentials/__tests__/fixtures-constants'; import { AppQuery } from '../../../graphql/queries/AppQuery'; import { promptAsync } from '../../../prompts'; +import { getVcsClient } from '../../../vcs'; import { ensureBundleIdentifierIsDefinedForManagedProjectAsync, getBundleIdentifierAsync, @@ -19,6 +20,8 @@ jest.mock('../../../prompts'); jest.mock('../../../graphql/queries/AppQuery'); jest.mock('../../../user/actions', () => ({ ensureLoggedInAsync: jest.fn(() => mockJester) })); +const vcsClient = getVcsClient(); + beforeEach(async () => { vol.reset(); @@ -44,7 +47,7 @@ describe(getBundleIdentifierAsync, () => { '/app' ); - const bundleIdentifier = await getBundleIdentifierAsync('/app', {} as any); + const bundleIdentifier = await getBundleIdentifierAsync('/app', {} as any, vcsClient); expect(bundleIdentifier).toBe('org.name.testproject'); }); @@ -59,7 +62,7 @@ describe(getBundleIdentifierAsync, () => { '/app' ); - await expect(getBundleIdentifierAsync('/app', {} as any)).rejects.toThrowError( + await expect(getBundleIdentifierAsync('/app', {} as any, vcsClient)).rejects.toThrowError( /Could not read bundle identifier/ ); }); @@ -67,21 +70,25 @@ describe(getBundleIdentifierAsync, () => { describe('managed projects', () => { it('reads bundleIdentifier from app config', async () => { - const applicationId = await getBundleIdentifierAsync('/app', { - ios: { bundleIdentifier: 'com.expo.notdominik' }, - } as any); + const applicationId = await getBundleIdentifierAsync( + '/app', + { + ios: { bundleIdentifier: 'com.expo.notdominik' }, + } as any, + vcsClient + ); expect(applicationId).toBe('com.expo.notdominik'); }); it('throws an error if bundleIdentifier is not defined in app config', async () => { - await expect(getBundleIdentifierAsync('/app', {} as any)).rejects.toThrowError( + await expect(getBundleIdentifierAsync('/app', {} as any, vcsClient)).rejects.toThrowError( /Specify "ios.bundleIdentifier"/ ); }); it('throws an error if bundleIdentifier in app config is invalid', async () => { await expect( - getBundleIdentifierAsync('/app', { ios: { bundleIdentifier: '' } } as any) + getBundleIdentifierAsync('/app', { ios: { bundleIdentifier: '' } } as any, vcsClient) ).rejects.toThrowError(/Specify "ios.bundleIdentifier"/); }); }); @@ -103,6 +110,7 @@ describe(ensureBundleIdentifierIsDefinedForManagedProjectAsync, () => { projectDir: '/app', projectId: '1234', exp: {} as any, + vcsClient, }) ).rejects.toThrowError(/we can't update this file programmatically/); }); @@ -132,6 +140,7 @@ describe(ensureBundleIdentifierIsDefinedForManagedProjectAsync, () => { projectDir: '/app', projectId: '1234', exp: {} as any, + vcsClient, }) ).resolves.toBe('com.expo.notdominik'); expect(promptAsync).toHaveBeenCalled(); @@ -162,6 +171,7 @@ describe(ensureBundleIdentifierIsDefinedForManagedProjectAsync, () => { projectDir: '/app', projectId: '1234', exp: {} as any, + vcsClient, }) ).resolves.toBe('com.expo.notdominik'); const appJson = JSON.parse(await fs.readFile('/app/app.json', 'utf-8')); diff --git a/packages/eas-cli/src/project/ios/bundleIdentifier.ts b/packages/eas-cli/src/project/ios/bundleIdentifier.ts index c921215530..825561d82c 100644 --- a/packages/eas-cli/src/project/ios/bundleIdentifier.ts +++ b/packages/eas-cli/src/project/ios/bundleIdentifier.ts @@ -9,6 +9,7 @@ import { readAppJson } from '../../build/utils/appJson'; import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient'; import Log, { learnMore } from '../../log'; import { promptAsync } from '../../prompts'; +import { Client } from '../../vcs/vcs'; import { getOwnerAccountForProjectIdAsync, getProjectConfigDescription } from '../projectUtils'; import { resolveWorkflowAsync } from '../workflow'; @@ -19,17 +20,19 @@ export async function ensureBundleIdentifierIsDefinedForManagedProjectAsync({ projectDir, projectId, exp, + vcsClient, }: { graphqlClient: ExpoGraphqlClient; projectDir: string; projectId: string; exp: ExpoConfig; + vcsClient: Client; }): Promise { - const workflow = await resolveWorkflowAsync(projectDir, Platform.IOS); + const workflow = await resolveWorkflowAsync(projectDir, Platform.IOS, vcsClient); assert(workflow === Workflow.MANAGED, 'This function should be called only for managed projects'); try { - return await getBundleIdentifierAsync(projectDir, exp); + return await getBundleIdentifierAsync(projectDir, exp, vcsClient); } catch { return await configureBundleIdentifierAsync({ graphqlClient, @@ -49,9 +52,10 @@ export class AmbiguousBundleIdentifierError extends Error { export async function getBundleIdentifierAsync( projectDir: string, exp: ExpoConfig, + vcsClient: Client, xcodeContext?: { targetName?: string; buildConfiguration?: string } ): Promise { - const workflow = await resolveWorkflowAsync(projectDir, Platform.IOS); + const workflow = await resolveWorkflowAsync(projectDir, Platform.IOS, vcsClient); if (workflow === Workflow.GENERIC) { warnIfBundleIdentifierDefinedInAppConfigForBareWorkflowProject(projectDir, exp); diff --git a/packages/eas-cli/src/project/ios/entitlements.ts b/packages/eas-cli/src/project/ios/entitlements.ts index f29ac6efaa..8f1f669d2f 100644 --- a/packages/eas-cli/src/project/ios/entitlements.ts +++ b/packages/eas-cli/src/project/ios/entitlements.ts @@ -3,6 +3,7 @@ import { JSONObject } from '@expo/json-file'; import { getPrebuildConfigAsync } from '@expo/prebuild-config'; import { readPlistAsync } from '../../utils/plist'; +import { Client } from '../../vcs/vcs'; import { hasIgnoredIosProjectAsync } from '../workflow'; interface Target { @@ -11,7 +12,8 @@ interface Target { } export async function getManagedApplicationTargetEntitlementsAsync( projectDir: string, - env: Record + env: Record, + vcsClient: Client ): Promise { const originalProcessEnv: NodeJS.ProcessEnv = process.env; @@ -26,7 +28,7 @@ export async function getManagedApplicationTargetEntitlementsAsync( projectRoot: projectDir, platforms: ['ios'], introspect: true, - ignoreExistingNativeFiles: await hasIgnoredIosProjectAsync(projectDir), + ignoreExistingNativeFiles: await hasIgnoredIosProjectAsync(projectDir, vcsClient), }); return expWithMods.ios?.entitlements || {}; } finally { diff --git a/packages/eas-cli/src/project/ios/scheme.ts b/packages/eas-cli/src/project/ios/scheme.ts index 0327c212e9..f5b6e708e0 100644 --- a/packages/eas-cli/src/project/ios/scheme.ts +++ b/packages/eas-cli/src/project/ios/scheme.ts @@ -7,6 +7,7 @@ import chalk from 'chalk'; import Log from '../../log'; import { promptAsync } from '../../prompts'; import sortBy from '../../utils/expodash/sortBy'; +import { Client } from '../../vcs/vcs'; import { resolveWorkflowAsync } from '../workflow'; export interface XcodeBuildContext { @@ -19,10 +20,11 @@ export async function resolveXcodeBuildContextAsync( exp, projectDir, nonInteractive, - }: { exp: ExpoConfig; projectDir: string; nonInteractive: boolean }, + vcsClient, + }: { exp: ExpoConfig; projectDir: string; nonInteractive: boolean; vcsClient: Client }, buildProfile: BuildProfile ): Promise { - const workflow = await resolveWorkflowAsync(projectDir, Platform.IOS); + const workflow = await resolveWorkflowAsync(projectDir, Platform.IOS, vcsClient); if (workflow === Workflow.GENERIC) { const buildScheme = buildProfile.scheme ?? diff --git a/packages/eas-cli/src/project/ios/target.ts b/packages/eas-cli/src/project/ios/target.ts index a1230364c3..df2371536a 100644 --- a/packages/eas-cli/src/project/ios/target.ts +++ b/packages/eas-cli/src/project/ios/target.ts @@ -7,6 +7,7 @@ import type { XCBuildConfiguration } from 'xcode'; import { ApplePlatform } from '../../credentials/ios/appstore/constants'; import { Target } from '../../credentials/ios/types'; +import { Client } from '../../vcs/vcs'; import { resolveWorkflowAsync } from '../workflow'; import { getBundleIdentifierAsync } from './bundleIdentifier'; import { @@ -27,6 +28,7 @@ interface ResolveTargetOptions { exp: ExpoConfig; env?: Record; xcodeBuildContext: XcodeBuildContext; + vcsClient: Client; } const AppExtensionsConfigSchema = Joi.array().items( @@ -43,16 +45,23 @@ export async function resolveManagedProjectTargetsAsync({ projectDir, xcodeBuildContext, env, + vcsClient, }: ResolveTargetOptions): Promise { const { buildScheme, buildConfiguration } = xcodeBuildContext; const applicationTargetName = buildScheme; - const applicationTargetBundleIdentifier = await getBundleIdentifierAsync(projectDir, exp, { - targetName: applicationTargetName, - buildConfiguration, - }); + const applicationTargetBundleIdentifier = await getBundleIdentifierAsync( + projectDir, + exp, + vcsClient, + { + targetName: applicationTargetName, + buildConfiguration, + } + ); const applicationTargetEntitlements = await getManagedApplicationTargetEntitlementsAsync( projectDir, - env ?? {} + env ?? {}, + vcsClient ); const appExtensions: UserDefinedTarget[] = exp.extra?.eas?.build?.experimental?.ios?.appExtensions ?? []; @@ -89,6 +98,7 @@ export async function resolveBareProjectTargetsAsync({ exp, projectDir, xcodeBuildContext, + vcsClient, }: ResolveTargetOptions): Promise { const { buildScheme, buildConfiguration } = xcodeBuildContext; const result: Target[] = []; @@ -98,7 +108,7 @@ export async function resolveBareProjectTargetsAsync({ projectDir, buildScheme ); - const bundleIdentifier = await getBundleIdentifierAsync(projectDir, exp, { + const bundleIdentifier = await getBundleIdentifierAsync(projectDir, exp, vcsClient, { targetName: applicationTarget.name, buildConfiguration, }); @@ -125,6 +135,7 @@ export async function resolveBareProjectTargetsAsync({ target: applicationTarget, bundleIdentifier, pbxProject, + vcsClient, }); if (dependencies.length > 0) { result.push(...dependencies); @@ -134,7 +145,7 @@ export async function resolveBareProjectTargetsAsync({ } export async function resolveTargetsAsync(opts: ResolveTargetOptions): Promise { - const workflow = await resolveWorkflowAsync(opts.projectDir, Platform.IOS); + const workflow = await resolveWorkflowAsync(opts.projectDir, Platform.IOS, opts.vcsClient); if (workflow === Workflow.GENERIC) { return await resolveBareProjectTargetsAsync(opts); } else if (workflow === Workflow.MANAGED) { @@ -151,6 +162,7 @@ async function resolveBareProjectDependenciesAsync({ target, bundleIdentifier, pbxProject, + vcsClient, }: { exp: ExpoConfig; projectDir: string; @@ -158,6 +170,7 @@ async function resolveBareProjectDependenciesAsync({ target: IOSConfig.Target.Target; bundleIdentifier: string; pbxProject: XcodeProject; + vcsClient: Client; }): Promise { const result: Target[] = []; @@ -166,10 +179,15 @@ async function resolveBareProjectDependenciesAsync({ if (!dependency.signable) { continue; } - const dependencyBundleIdentifier = await getBundleIdentifierAsync(projectDir, exp, { - targetName: dependency.name, - buildConfiguration, - }); + const dependencyBundleIdentifier = await getBundleIdentifierAsync( + projectDir, + exp, + vcsClient, + { + targetName: dependency.name, + buildConfiguration, + } + ); const entitlements = await getNativeTargetEntitlementsAsync(projectDir, { targetName: target.name, buildConfiguration, @@ -193,6 +211,7 @@ async function resolveBareProjectDependenciesAsync({ target: dependency, bundleIdentifier: dependencyBundleIdentifier, pbxProject, + vcsClient, }); if (dependencyDependencies.length > 0) { result.push(...dependencyDependencies); diff --git a/packages/eas-cli/src/project/publish.ts b/packages/eas-cli/src/project/publish.ts index 4c1cda8933..d8029b1e84 100644 --- a/packages/eas-cli/src/project/publish.ts +++ b/packages/eas-cli/src/project/publish.ts @@ -33,7 +33,7 @@ import { import chunk from '../utils/expodash/chunk'; import { truthy } from '../utils/expodash/filter'; import uniqBy from '../utils/expodash/uniqBy'; -import { getVcsClient } from '../vcs'; +import { Client } from '../vcs/vcs'; import { resolveWorkflowAsync } from './workflow'; export type ExpoCLIExportPlatformFlag = Platform | 'all'; @@ -545,6 +545,7 @@ export async function getBranchNameForCommandAsync({ autoFlag, nonInteractive, paginatedQueryOptions, + vcsClient, }: { graphqlClient: ExpoGraphqlClient; projectId: string; @@ -553,6 +554,7 @@ export async function getBranchNameForCommandAsync({ autoFlag: boolean; nonInteractive: boolean; paginatedQueryOptions: PaginatedQueryOptions; + vcsClient: Client; }): Promise { if (channelNameArg && branchNameArg) { throw new Error( @@ -569,7 +571,7 @@ export async function getBranchNameForCommandAsync({ } if (autoFlag) { - return await getDefaultBranchNameAsync(); + return await getDefaultBranchNameAsync(vcsClient); } else if (nonInteractive) { throw new Error('Must supply --channel, --branch or --auto when in non-interactive mode.'); } else { @@ -593,7 +595,7 @@ export async function getBranchNameForCommandAsync({ type: 'text', name: 'name', message: 'No branches found. Provide a branch name:', - initial: await getDefaultBranchNameAsync(), + initial: await getDefaultBranchNameAsync(vcsClient), validate: value => (value ? true : 'Branch name may not be empty.'), }); branchName = name; @@ -604,20 +606,23 @@ export async function getBranchNameForCommandAsync({ } } -export async function getUpdateMessageForCommandAsync({ - updateMessageArg, - autoFlag, - nonInteractive, - jsonFlag, -}: { - updateMessageArg: string | undefined; - autoFlag: boolean; - nonInteractive: boolean; - jsonFlag: boolean; -}): Promise { +export async function getUpdateMessageForCommandAsync( + vcsClient: Client, + { + updateMessageArg, + autoFlag, + nonInteractive, + jsonFlag, + }: { + updateMessageArg: string | undefined; + autoFlag: boolean; + nonInteractive: boolean; + jsonFlag: boolean; + } +): Promise { let updateMessage = updateMessageArg; if (!updateMessageArg && autoFlag) { - updateMessage = (await getVcsClient().getLastCommitMessageAsync())?.trim(); + updateMessage = (await vcsClient.getLastCommitMessageAsync())?.trim(); } if (!updateMessage) { @@ -633,7 +638,7 @@ export async function getUpdateMessageForCommandAsync({ type: 'text', name: 'updateMessageLocal', message: `Provide an update message:`, - initial: (await getVcsClient().getLastCommitMessageAsync())?.trim(), + initial: (await vcsClient.getLastCommitMessageAsync())?.trim(), validate: (value: any) => (value ? true : validationMessage), }); updateMessage = updateMessageLocal; @@ -672,7 +677,8 @@ export function getRequestedPlatform( export async function getRuntimeVersionObjectAsync( exp: ExpoConfig, platforms: Platform[], - projectDir: string + projectDir: string, + vcsClient: Client ): Promise<{ platform: string; runtimeVersion: string }[]> { for (const platform of platforms) { if (platform === 'web') { @@ -681,7 +687,7 @@ export async function getRuntimeVersionObjectAsync( const isPolicy = typeof (exp[platform]?.runtimeVersion ?? exp.runtimeVersion) === 'object'; if (isPolicy) { const isManaged = - (await resolveWorkflowAsync(projectDir, platform as EASBuildJobPlatform)) === + (await resolveWorkflowAsync(projectDir, platform as EASBuildJobPlatform, vcsClient)) === Workflow.MANAGED; if (!isManaged) { throw new Error( diff --git a/packages/eas-cli/src/project/workflow.ts b/packages/eas-cli/src/project/workflow.ts index 17a307388c..01ea529fa0 100644 --- a/packages/eas-cli/src/project/workflow.ts +++ b/packages/eas-cli/src/project/workflow.ts @@ -3,11 +3,12 @@ import { Platform, Workflow } from '@expo/eas-build-job'; import fs from 'fs-extra'; import path from 'path'; -import { getVcsClient } from '../vcs'; +import { Client } from '../vcs/vcs'; export async function resolveWorkflowAsync( projectDir: string, - platform: Platform + platform: Platform, + vcsClient: Client ): Promise { let platformWorkflowMarkers: string[]; try { @@ -22,7 +23,6 @@ export async function resolveWorkflowAsync( return Workflow.MANAGED; } - const vcsClient = getVcsClient(); const vcsRootPath = path.normalize(await vcsClient.getRootPathAsync()); for (const marker of platformWorkflowMarkers) { if ( @@ -36,17 +36,20 @@ export async function resolveWorkflowAsync( } export async function resolveWorkflowPerPlatformAsync( - projectDir: string + projectDir: string, + vcsClient: Client ): Promise> { const [android, ios] = await Promise.all([ - resolveWorkflowAsync(projectDir, Platform.ANDROID), - resolveWorkflowAsync(projectDir, Platform.IOS), + resolveWorkflowAsync(projectDir, Platform.ANDROID, vcsClient), + resolveWorkflowAsync(projectDir, Platform.IOS, vcsClient), ]); return { android, ios }; } -export async function hasIgnoredIosProjectAsync(projectDir: string): Promise { - const vcsClient = getVcsClient(); +export async function hasIgnoredIosProjectAsync( + projectDir: string, + vcsClient: Client +): Promise { const vcsRootPath = path.normalize(await vcsClient.getRootPathAsync()); try { diff --git a/packages/eas-cli/src/submit/android/AndroidSubmitCommand.ts b/packages/eas-cli/src/submit/android/AndroidSubmitCommand.ts index 2f92e4ff39..dbd26bbe98 100644 --- a/packages/eas-cli/src/submit/android/AndroidSubmitCommand.ts +++ b/packages/eas-cli/src/submit/android/AndroidSubmitCommand.ts @@ -58,7 +58,9 @@ export default class AndroidSubmitCommand { private async maybeGetAndroidPackageFromCurrentProjectAsync(): Promise> { try { - return result(await getApplicationIdAsync(this.ctx.projectDir, this.ctx.exp)); + return result( + await getApplicationIdAsync(this.ctx.projectDir, this.ctx.exp, this.ctx.vcsClient) + ); } catch (error: any) { if (error instanceof AmbiguousApplicationIdError) { Log.warn( diff --git a/packages/eas-cli/src/submit/android/__tests__/AndroidSubmitCommand-test.ts b/packages/eas-cli/src/submit/android/__tests__/AndroidSubmitCommand-test.ts index dbb6ab18f4..5a0d972da6 100644 --- a/packages/eas-cli/src/submit/android/__tests__/AndroidSubmitCommand-test.ts +++ b/packages/eas-cli/src/submit/android/__tests__/AndroidSubmitCommand-test.ts @@ -20,6 +20,7 @@ import { import { SubmissionMutation } from '../../../graphql/mutations/SubmissionMutation'; import { createTestProject } from '../../../project/__tests__/project-utils'; import { getOwnerAccountForProjectIdAsync } from '../../../project/projectUtils'; +import { getVcsClient } from '../../../vcs'; import { createSubmissionContextAsync } from '../../context'; import { getRecentBuildsForSubmissionAsync } from '../../utils/builds'; import AndroidSubmitCommand from '../AndroidSubmitCommand'; @@ -35,6 +36,8 @@ jest.mock('../../../credentials/android/api/graphql/queries/AndroidAppCredential jest.mock('../../utils/builds'); jest.mock('../../../project/projectUtils'); +const vcsClient = getVcsClient(); + describe(AndroidSubmitCommand, () => { const testProject = createTestProject(testProjectId, mockJester.accounts[0].name, { android: { @@ -96,6 +99,7 @@ describe(AndroidSubmitCommand, () => { analytics, exp: testProject.appJSON.expo, projectId, + vcsClient, }); const command = new AndroidSubmitCommand(ctx); await expect(command.runAsync()).rejects.toThrowError( @@ -128,6 +132,7 @@ describe(AndroidSubmitCommand, () => { analytics, exp: testProject.appJSON.expo, projectId, + vcsClient, }); const command = new AndroidSubmitCommand(ctx); @@ -168,6 +173,7 @@ describe(AndroidSubmitCommand, () => { analytics, exp: testProject.appJSON.expo, projectId, + vcsClient, }); const command = new AndroidSubmitCommand(ctx); @@ -211,6 +217,7 @@ describe(AndroidSubmitCommand, () => { analytics, exp: testProject.appJSON.expo, projectId, + vcsClient, }); const command = new AndroidSubmitCommand(ctx); await command.runAsync(); diff --git a/packages/eas-cli/src/submit/android/__tests__/ServiceAccountSource-test.ts b/packages/eas-cli/src/submit/android/__tests__/ServiceAccountSource-test.ts index fb0b5637a5..5af20d5f42 100644 --- a/packages/eas-cli/src/submit/android/__tests__/ServiceAccountSource-test.ts +++ b/packages/eas-cli/src/submit/android/__tests__/ServiceAccountSource-test.ts @@ -15,6 +15,7 @@ import { SetUpGoogleServiceAccountKey } from '../../../credentials/android/actio import { createTestProject } from '../../../project/__tests__/project-utils'; import { getOwnerAccountForProjectIdAsync } from '../../../project/projectUtils'; import { promptAsync } from '../../../prompts'; +import { getVcsClient } from '../../../vcs'; import { createSubmissionContextAsync } from '../../context'; import { ServiceAccountSource, @@ -44,6 +45,8 @@ const mockDetectableServiceAccountJson = JSON.stringify({ client_email: 'beep-boop@iam.gserviceaccount.com', }); +const vcsClient = getVcsClient(); + beforeAll(() => { vol.fromJSON({ '/google-service-account.json': mockDetectableServiceAccountJson, @@ -158,6 +161,7 @@ describe(getServiceAccountKeyResultAsync, () => { analytics, exp: testProject.appJSON.expo, projectId, + vcsClient, }); const source: ServiceAccountSource = { sourceType: ServiceAccountSourceType.path, @@ -199,6 +203,7 @@ describe(getServiceAccountKeyResultAsync, () => { analytics, exp: testProject.appJSON.expo, projectId, + vcsClient, }); const source: ServiceAccountSource = { sourceType: ServiceAccountSourceType.prompt, @@ -236,6 +241,7 @@ describe(getServiceAccountKeyResultAsync, () => { analytics, exp: testProject.appJSON.expo, projectId, + vcsClient, }); const serviceAccountResult = await getServiceAccountKeyResultAsync(ctx, { sourceType: ServiceAccountSourceType.credentialsService, diff --git a/packages/eas-cli/src/submit/context.ts b/packages/eas-cli/src/submit/context.ts index 1154c08a03..928ee17913 100644 --- a/packages/eas-cli/src/submit/context.ts +++ b/packages/eas-cli/src/submit/context.ts @@ -12,6 +12,7 @@ import { ExpoGraphqlClient } from '../commandUtils/context/contextUtils/createGr import { CredentialsContext } from '../credentials/context'; import { getOwnerAccountForProjectIdAsync } from '../project/projectUtils'; import { Actor } from '../user/User'; +import { Client } from '../vcs/vcs'; export interface SubmissionContext { accountName: string; @@ -28,6 +29,7 @@ export interface SubmissionContext { user: Actor; graphqlClient: ExpoGraphqlClient; analytics: Analytics; + vcsClient: Client; applicationIdentifierOverride?: string; } @@ -52,6 +54,7 @@ export async function createSubmissionContextAsync(params: { analytics: Analytics; exp: ExpoConfig; projectId: string; + vcsClient: Client; }): Promise> { const { applicationIdentifier, @@ -62,6 +65,7 @@ export async function createSubmissionContextAsync(params: { projectId, graphqlClient, analytics, + vcsClient, } = params; const { env, ...rest } = params; const projectName = exp.slug; @@ -76,6 +80,7 @@ export async function createSubmissionContextAsync(params: { analytics, projectInfo: { exp, projectId }, nonInteractive, + vcsClient, }); } diff --git a/packages/eas-cli/src/submit/ios/AppProduce.ts b/packages/eas-cli/src/submit/ios/AppProduce.ts index bb9d315bb7..9ae53c6e54 100644 --- a/packages/eas-cli/src/submit/ios/AppProduce.ts +++ b/packages/eas-cli/src/submit/ios/AppProduce.ts @@ -37,7 +37,7 @@ export async function ensureAppStoreConnectAppExistsAsync( bundleIdentifier: ctx.applicationIdentifierOverride ?? ctx.profile.bundleIdentifier ?? - (await getBundleIdentifierAsync(ctx.projectDir, exp)), + (await getBundleIdentifierAsync(ctx.projectDir, exp, ctx.vcsClient)), appName: appName ?? exp.name ?? (await promptForAppNameAsync()), language: sanitizeLanguage(language), }; diff --git a/packages/eas-cli/src/submit/ios/AscApiKeySource.ts b/packages/eas-cli/src/submit/ios/AscApiKeySource.ts index ae8a514ff7..49a646f3ca 100644 --- a/packages/eas-cli/src/submit/ios/AscApiKeySource.ts +++ b/packages/eas-cli/src/submit/ios/AscApiKeySource.ts @@ -78,7 +78,7 @@ async function maybeGetIosBundleIdentifierAsync( ctx: SubmissionContext ): Promise { try { - return await getBundleIdentifierAsync(ctx.projectDir, ctx.exp); + return await getBundleIdentifierAsync(ctx.projectDir, ctx.exp, ctx.vcsClient); } catch (error: any) { if (error instanceof AmbiguousBundleIdentifierError) { Log.warn( diff --git a/packages/eas-cli/src/submit/ios/__tests__/AscApiKeySource-test.ts b/packages/eas-cli/src/submit/ios/__tests__/AscApiKeySource-test.ts index 0f27fa97ed..392327eb8f 100644 --- a/packages/eas-cli/src/submit/ios/__tests__/AscApiKeySource-test.ts +++ b/packages/eas-cli/src/submit/ios/__tests__/AscApiKeySource-test.ts @@ -17,6 +17,7 @@ import { AppQuery } from '../../../graphql/queries/AppQuery'; import { createTestProject } from '../../../project/__tests__/project-utils'; import { getBundleIdentifierAsync } from '../../../project/ios/bundleIdentifier'; import { promptAsync } from '../../../prompts'; +import { getVcsClient } from '../../../vcs'; import { SubmissionContext, createSubmissionContextAsync } from '../../context'; import { AscApiKeySource, @@ -41,6 +42,8 @@ const testProject = createTestProject(testProjectId, mockJester.accounts[0].name }); const projectId = uuidv4(); +const vcsClient = getVcsClient(); + async function getIosSubmissionContextAsync(): Promise> { const graphqlClient = instance(mock()); const analytics = instance(mock()); @@ -59,6 +62,7 @@ async function getIosSubmissionContextAsync(): Promise { analytics, exp: testProject.appJSON.expo, projectId, + vcsClient, }); const source: AscApiKeySource = { sourceType: AscApiKeySourceType.credentialsService, diff --git a/packages/eas-cli/src/submit/ios/__tests__/IosSubmitCommand-test.ts b/packages/eas-cli/src/submit/ios/__tests__/IosSubmitCommand-test.ts index d65eb60e0f..8f15f4a61b 100644 --- a/packages/eas-cli/src/submit/ios/__tests__/IosSubmitCommand-test.ts +++ b/packages/eas-cli/src/submit/ios/__tests__/IosSubmitCommand-test.ts @@ -13,6 +13,7 @@ import { SubmissionArchiveSourceType } from '../../../graphql/generated'; import { SubmissionMutation } from '../../../graphql/mutations/SubmissionMutation'; import { createTestProject } from '../../../project/__tests__/project-utils'; import { getOwnerAccountForProjectIdAsync } from '../../../project/projectUtils'; +import { getVcsClient } from '../../../vcs'; import { createSubmissionContextAsync } from '../../context'; import IosSubmitCommand from '../IosSubmitCommand'; @@ -31,6 +32,8 @@ jest.mock('../../../user/actions', () => ({ })); jest.mock('../../../project/projectUtils'); +const vcsClient = getVcsClient(); + describe(IosSubmitCommand, () => { const testProject = createTestProject(testProjectId, mockJester.accounts[0].name, {}); @@ -74,6 +77,7 @@ describe(IosSubmitCommand, () => { analytics, exp: testProject.appJSON.expo, projectId, + vcsClient, }); const command = new IosSubmitCommand(ctx); await expect(command.runAsync()).rejects.toThrowError(); @@ -105,6 +109,7 @@ describe(IosSubmitCommand, () => { analytics, exp: testProject.appJSON.expo, projectId, + vcsClient, }); const command = new IosSubmitCommand(ctx); await command.runAsync(); diff --git a/packages/eas-cli/src/update/configure.ts b/packages/eas-cli/src/update/configure.ts index 0b54aaaf81..5ae5e5bfd2 100644 --- a/packages/eas-cli/src/update/configure.ts +++ b/packages/eas-cli/src/update/configure.ts @@ -18,6 +18,7 @@ import { } from '../project/projectUtils'; import { resolveWorkflowPerPlatformAsync } from '../project/workflow'; import { confirmAsync } from '../prompts'; +import { Client } from '../vcs/vcs'; import { syncUpdatesConfigurationAsync as syncAndroidUpdatesConfigurationAsync } from './android/UpdatesModule'; import { syncUpdatesConfigurationAsync as syncIosUpdatesConfigurationAsync } from './ios/UpdatesModule'; @@ -260,6 +261,7 @@ function warnEASUpdatesManualConfig({ */ async function ensureEASUpdateIsConfiguredNativelyAsync( graphqlClient: ExpoGraphqlClient, + vcsClient: Client, { exp, projectId, @@ -280,7 +282,7 @@ async function ensureEASUpdateIsConfiguredNativelyAsync( } if (['all', 'ios'].includes(platform) && workflows.ios === Workflow.GENERIC) { - await syncIosUpdatesConfigurationAsync(graphqlClient, projectDir, exp, projectId); + await syncIosUpdatesConfigurationAsync(graphqlClient, vcsClient, projectDir, exp, projectId); Log.withTick(`Configured ${chalk.bold('Expo.plist')} for EAS Update`); } } @@ -360,11 +362,13 @@ export async function ensureEASUpdateIsConfiguredAsync( exp: expMaybeWithoutUpdates, projectId, projectDir, + vcsClient, platform, }: { exp: ExpoConfig; projectId: string; projectDir: string; + vcsClient: Client; platform: RequestedPlatform | null; } ): Promise { @@ -396,7 +400,7 @@ export async function ensureEASUpdateIsConfiguredAsync( return; } - const workflows = await resolveWorkflowPerPlatformAsync(projectDir); + const workflows = await resolveWorkflowPerPlatformAsync(projectDir, vcsClient); const { projectChanged, exp: expWithUpdates } = await ensureEASUpdatesIsConfiguredInExpoConfigAsync({ exp: expMaybeWithoutUpdates, @@ -407,7 +411,7 @@ export async function ensureEASUpdateIsConfiguredAsync( }); if (projectChanged || !hasExpoUpdates) { - await ensureEASUpdateIsConfiguredNativelyAsync(graphqlClient, { + await ensureEASUpdateIsConfiguredNativelyAsync(graphqlClient, vcsClient, { exp: expWithUpdates, projectDir, projectId, diff --git a/packages/eas-cli/src/update/ios/UpdatesModule.ts b/packages/eas-cli/src/update/ios/UpdatesModule.ts index c95126a27e..0a79d718fb 100644 --- a/packages/eas-cli/src/update/ios/UpdatesModule.ts +++ b/packages/eas-cli/src/update/ios/UpdatesModule.ts @@ -5,11 +5,12 @@ import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/creat import { RequestedPlatform } from '../../platform'; import { getOwnerAccountForProjectIdAsync } from '../../project/projectUtils'; import { readPlistAsync, writePlistAsync } from '../../utils/plist'; -import { getVcsClient } from '../../vcs'; +import { Client } from '../../vcs/vcs'; import { ensureValidVersions } from '../utils'; export async function syncUpdatesConfigurationAsync( graphqlClient: ExpoGraphqlClient, + vcsClient: Client, projectDir: string, exp: ExpoConfig, projectId: string @@ -23,7 +24,7 @@ export async function syncUpdatesConfigurationAsync( expoPlist, accountName ); - await writeExpoPlistAsync(projectDir, updatedExpoPlist); + await writeExpoPlistAsync(vcsClient, projectDir, updatedExpoPlist); } async function readExpoPlistAsync(projectDir: string): Promise { @@ -32,12 +33,13 @@ async function readExpoPlistAsync(projectDir: string): Promise { const expoPlistPath = IOSConfig.Paths.getExpoPlistPath(projectDir); await writePlistAsync(expoPlistPath, expoPlist); - await getVcsClient().trackFileAsync(expoPlistPath); + await vcsClient.trackFileAsync(expoPlistPath); } export async function readReleaseChannelSafelyAsync(projectDir: string): Promise { From 14980fe6e898bc0f794f841bb2210eef4eb40de0 Mon Sep 17 00:00:00 2001 From: Will Schurman Date: Wed, 18 Oct 2023 15:39:01 -0700 Subject: [PATCH 070/105] [expo-updates] Gate roll back to embedded to expo-updates >= 0.19.0 (#2094) --- CHANGELOG.md | 1 + .../__tests__/roll-back-to-embedded.test.ts | 4 ++ .../commands/update/roll-back-to-embedded.ts | 9 ++- .../eas-cli/src/commands/update/rollback.ts | 2 - .../project/__tests__/projectUtils.test.ts | 68 +++++++++++++++++++ packages/eas-cli/src/project/projectUtils.ts | 17 +++++ 6 files changed, 97 insertions(+), 4 deletions(-) create mode 100644 packages/eas-cli/src/project/__tests__/projectUtils.test.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 2603629672..b228bd264c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features - Add account type to the items in the prompt to select project owner. ([#2083](https://github.com/expo/eas-cli/pull/2083) by [@alanjhughes](https://github.com/alanjhughes)) +- Gate roll back to embedded to expo-updates >= 0.19.0. ([#2094](https://github.com/expo/eas-cli/pull/2094) by [@wschurman](https://github.com/wschurman)) ### πŸ› Bug fixes diff --git a/packages/eas-cli/src/commands/update/__tests__/roll-back-to-embedded.test.ts b/packages/eas-cli/src/commands/update/__tests__/roll-back-to-embedded.test.ts index f78de92397..5e4524581a 100644 --- a/packages/eas-cli/src/commands/update/__tests__/roll-back-to-embedded.test.ts +++ b/packages/eas-cli/src/commands/update/__tests__/roll-back-to-embedded.test.ts @@ -43,6 +43,10 @@ jest.mock('@expo/config'); jest.mock('@expo/config-plugins'); jest.mock('../../../branch/queries'); jest.mock('../../../commandUtils/context/contextUtils/getProjectIdAsync'); +jest.mock('../../../project/projectUtils', () => ({ + ...jest.requireActual('../../../project/projectUtils'), + enforceRollBackToEmbeddedUpdateSupportAsync: jest.fn(), +})); jest.mock('../../../update/configure'); jest.mock('../../../update/getBranchNameFromChannelNameAsync'); jest.mock('../../../graphql/mutations/PublishMutation'); diff --git a/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts b/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts index 9d4906d2b0..811cbe6955 100644 --- a/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts +++ b/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts @@ -20,7 +20,10 @@ import { PublishMutation } from '../../graphql/mutations/PublishMutation'; import Log, { link } from '../../log'; import { ora } from '../../ora'; import { RequestedPlatform } from '../../platform'; -import { getOwnerAccountForProjectIdAsync } from '../../project/projectUtils'; +import { + enforceRollBackToEmbeddedUpdateSupportAsync, + getOwnerAccountForProjectIdAsync, +} from '../../project/projectUtils'; import { ExpoCLIExportPlatformFlag, defaultPublishPlatforms, @@ -67,7 +70,6 @@ type UpdateFlags = { }; export default class UpdateRollBackToEmbedded extends EasCommand { - static override hidden = true; // until we launch static override description = 'roll back to the embedded update'; static override flags = { @@ -154,6 +156,9 @@ export default class UpdateRollBackToEmbedded extends EasCommand { vcsClient, }); + // check that the expo-updates package version supports roll back to embedded + await enforceRollBackToEmbeddedUpdateSupportAsync(projectDir); + const { exp } = await getDynamicPublicProjectConfigAsync(); const { exp: expPrivate } = await getDynamicPrivateProjectConfigAsync(); const codeSigningInfo = await getCodeSigningInfoAsync(expPrivate, privateKeyPath); diff --git a/packages/eas-cli/src/commands/update/rollback.ts b/packages/eas-cli/src/commands/update/rollback.ts index 4bd71812dc..cbe07ee12d 100644 --- a/packages/eas-cli/src/commands/update/rollback.ts +++ b/packages/eas-cli/src/commands/update/rollback.ts @@ -8,8 +8,6 @@ import UpdateRollBackToEmbedded from './roll-back-to-embedded'; export default class UpdateRollback extends EasCommand { static override description = 'roll back to an embedded update or an existing update'; - static override hidden = true; - static override flags = { 'private-key-path': Flags.string({ description: `File containing the PEM-encoded private key corresponding to the certificate in expo-updates' configuration. Defaults to a file named "private-key.pem" in the certificate's directory.`, diff --git a/packages/eas-cli/src/project/__tests__/projectUtils.test.ts b/packages/eas-cli/src/project/__tests__/projectUtils.test.ts new file mode 100644 index 0000000000..655717a965 --- /dev/null +++ b/packages/eas-cli/src/project/__tests__/projectUtils.test.ts @@ -0,0 +1,68 @@ +import { AppJSONConfig, PackageJSONConfig } from '@expo/config'; +import { vol } from 'memfs'; +import path from 'path'; +import resolveFrom from 'resolve-from'; + +import { enforceRollBackToEmbeddedUpdateSupportAsync } from '../projectUtils'; + +jest.mock('fs'); +jest.mock('resolve-from'); + +const projectRoot = '/test-project'; + +describe(enforceRollBackToEmbeddedUpdateSupportAsync, () => { + it('does not throw when an appropriate version is installed', async () => { + mockTestProject('0.19.1'); + + await enforceRollBackToEmbeddedUpdateSupportAsync(projectRoot); + }); + + it('throws when an unappropriate version is installed', async () => { + mockTestProject('0.18.0'); + + await expect(enforceRollBackToEmbeddedUpdateSupportAsync(projectRoot)).rejects.toThrowError( + 'The expo-updates package must have a version >= 0.19.0 to use roll back to embedded, which corresponds to Expo SDK 50 or greater.' + ); + }); +}); + +function mockTestProject(expoUpdatesPackageVersion: string): { appJson: AppJSONConfig } { + const packageJSON: PackageJSONConfig = { + name: 'testing123', + version: '0.1.0', + description: 'fake description', + main: 'index.js', + dependencies: { + 'expo-updates': expoUpdatesPackageVersion, + }, + }; + + const expoUpdatesPackageJSON: PackageJSONConfig = { + name: 'expo-updates', + version: expoUpdatesPackageVersion, + }; + + const appJSON: AppJSONConfig = { + expo: { + name: 'testing 123', + version: '0.1.0', + slug: 'testing-123', + sdkVersion: '33.0.0', + }, + }; + + jest + .mocked(resolveFrom.silent) + .mockReturnValue(path.join(projectRoot, 'node_modules/expo-updates/package.json')); + + vol.fromJSON( + { + 'package.json': JSON.stringify(packageJSON), + 'app.json': JSON.stringify(appJSON), + 'node_modules/expo-updates/package.json': JSON.stringify(expoUpdatesPackageJSON), + }, + projectRoot + ); + + return { appJson: appJSON }; +} diff --git a/packages/eas-cli/src/project/projectUtils.ts b/packages/eas-cli/src/project/projectUtils.ts index fac78b329e..9fbe088050 100644 --- a/packages/eas-cli/src/project/projectUtils.ts +++ b/packages/eas-cli/src/project/projectUtils.ts @@ -109,6 +109,23 @@ export async function validateAppVersionRuntimePolicySupportAsync( ); } +export async function enforceRollBackToEmbeddedUpdateSupportAsync( + projectDir: string +): Promise { + const maybePackageJson = resolveFrom.silent(projectDir, 'expo-updates/package.json'); + + if (maybePackageJson) { + const { version } = await fs.readJson(maybePackageJson); + if (semver.gte(version, '0.19.0')) { + return; + } + } + + throw new Error( + 'The expo-updates package must have a version >= 0.19.0 to use roll back to embedded, which corresponds to Expo SDK 50 or greater.' + ); +} + export async function installExpoUpdatesAsync( projectDir: string, options?: { silent: boolean } From e8df9cdeb64b4aa8e18addd5e9593e9d778e9b31 Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Thu, 19 Oct 2023 12:13:04 +0200 Subject: [PATCH 071/105] [eas-cli][eas-json] remove Intel resource class related code (#2093) * [eas-cli][eas-json] remove Intel resource class related code * fix types * update CHANGELOG.md --- CHANGELOG.md | 1 + packages/eas-cli/src/build/build.ts | 86 +------------------ .../eas-cli/src/build/runBuildAndSubmit.ts | 2 - .../eas-cli/src/build/utils/resourceClass.ts | 24 +----- packages/eas-cli/src/commands/build/resign.ts | 2 - packages/eas-json/src/build/schema.ts | 1 - packages/eas-json/src/build/types.ts | 9 -- 7 files changed, 8 insertions(+), 117 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b228bd264c..5171100cbf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ This is the log of notable changes to EAS CLI and related packages. - Add `requiredPackageManager` to metadata. ([#2067](https://github.com/expo/eas-cli/pull/2067) by [@kadikraman](https://github.com/kadikraman)) - Move `getVcsClient` into command context. ([#2086](https://github.com/expo/eas-cli/pull/2086) by [@Josh-McFarlin](https://github.com/Josh-McFarlin)) - Display Apple device creation date when listing devices. ([#2092](https://github.com/expo/eas-cli/pull/2092) by [@radoslawkrzemien](https://github.com/radoslawkrzemien)) +- Clean up Intel resource classes code after their deletion. ([#2093](https://github.com/expo/eas-cli/pull/2093) by [@szdziedzic](https://github.com/szdziedzic)) ## [5.4.0](https://github.com/expo/eas-cli/releases/tag/v5.4.0) - 2023-09-28 diff --git a/packages/eas-cli/src/build/build.ts b/packages/eas-cli/src/build/build.ts index a3453135fb..836c7ead5c 100644 --- a/packages/eas-cli/src/build/build.ts +++ b/packages/eas-cli/src/build/build.ts @@ -1,5 +1,5 @@ import { ArchiveSource, ArchiveSourceType, Job, Metadata, Platform } from '@expo/eas-build-job'; -import { CredentialsSource, EasJsonAccessor, EasJsonUtils, ResourceClass } from '@expo/eas-json'; +import { CredentialsSource } from '@expo/eas-json'; import assert from 'assert'; import chalk from 'chalk'; import cliProgress from 'cli-progress'; @@ -17,7 +17,6 @@ import { BuildFragment, BuildParamsInput, BuildPriority, - BuildResourceClass, BuildStatus, UploadSessionType, } from '../graphql/generated'; @@ -30,7 +29,6 @@ import { appPlatformEmojis, requestedPlatformDisplayNames, } from '../platform'; -import { confirmAsync } from '../prompts'; import { uploadFileAtPathToGCSAsync } from '../uploads'; import { formatBytes } from '../utils/files'; import { printJsonOnlyOutput } from '../utils/json'; @@ -335,12 +333,7 @@ export type MaybeBuildFragment = BuildFragment | null; export async function waitForBuildEndAsync( graphqlClient: ExpoGraphqlClient, - { - buildIds, - accountName, - projectDir, - nonInteractive, - }: { buildIds: string[]; accountName: string; projectDir: string; nonInteractive: boolean }, + { buildIds, accountName }: { buildIds: string[]; accountName: string }, { intervalSec = 10 } = {} ): Promise { let spinner; @@ -357,10 +350,7 @@ export async function waitForBuildEndAsync( const builds = await getBuildsSafelyAsync(graphqlClient, buildIds); const { refetch } = builds.length === 1 - ? await handleSingleBuildProgressAsync( - { build: builds[0], accountName, projectDir, nonInteractive }, - { spinner } - ) + ? await handleSingleBuildProgressAsync({ build: builds[0], accountName }, { spinner }) : await handleMultipleBuildsProgressAsync({ builds }, { spinner, originalSpinnerText }); if (!refetch) { return builds; @@ -398,13 +388,9 @@ async function handleSingleBuildProgressAsync( { build, accountName, - projectDir, - nonInteractive, }: { build: MaybeBuildFragment; accountName: string; - projectDir: string; - nonInteractive: boolean; }, { spinner }: { spinner: Ora } ): Promise { @@ -458,54 +444,6 @@ async function handleSingleBuildProgressAsync( ); } - if ( - build.platform === AppPlatform.Ios && - [BuildResourceClass.IosIntelLarge, BuildResourceClass.IosIntelMedium].includes( - build.resourceClass - ) - ) { - let askToSwitchToM1 = false; - if ( - build.priority === BuildPriority.High && - build.estimatedWaitTimeLeftSeconds >= /* 10 minutes */ 10 * 60 - ) { - Log.newLine(); - Log.warn( - `Warning: Priority queue wait time for legacy iOS Intel workers is longer than usual (more than 10 minutes).` - ); - Log.warn(`We recommend switching to the new, faster M1 workers for iOS builds.`); - Log.warn( - learnMore('https://blog.expo.dev/m1-workers-on-eas-build-dcaa2c1333ad', { - learnMoreMessage: 'Learn more on switching to M1 workers.', - }) - ); - askToSwitchToM1 = true; - } else if ( - build.priority !== BuildPriority.High && - build.estimatedWaitTimeLeftSeconds >= /* 120 minutes */ 120 * 60 - ) { - Log.newLine(); - Log.warn( - `Warning: Free tier queue wait time for legacy iOS Intel workers is longer than usual.` - ); - Log.warn(`We recommend switching to the new, faster M1 workers for iOS builds.`); - Log.warn( - learnMore('https://blog.expo.dev/m1-workers-on-eas-build-dcaa2c1333ad', { - learnMoreMessage: 'Learn more on switching to M1 workers.', - }) - ); - askToSwitchToM1 = true; - } - if (!nonInteractive && askToSwitchToM1) { - const shouldSwitchToM1 = await confirmAsync({ - message: `Switch iOS builds to M1 workers (modifies build profiles in eas.json)?`, - }); - if (shouldSwitchToM1) { - await updateIosBuildProfilesToUseM1WorkersAsync(projectDir); - } - } - } - Log.newLine(); Log.log(`Waiting in ${priorityToQueueDisplayName[build.priority]}`); queueProgressBar.start( @@ -654,21 +592,3 @@ function formatAccountSubscriptionsUrl(accountName: string): string { getExpoWebsiteBaseUrl() ).toString(); } - -async function updateIosBuildProfilesToUseM1WorkersAsync(projectDir: string): Promise { - const easJsonAccessor = EasJsonAccessor.fromProjectPath(projectDir); - await easJsonAccessor.readRawJsonAsync(); - - const profileNames = await EasJsonUtils.getBuildProfileNamesAsync(easJsonAccessor); - easJsonAccessor.patch(easJsonRawObject => { - for (const profileName of profileNames) { - easJsonRawObject.build[profileName].ios = { - ...easJsonRawObject.build[profileName].ios, - resourceClass: ResourceClass.M_MEDIUM, - }; - } - return easJsonRawObject; - }); - await easJsonAccessor.writeAsync(); - Log.withTick('Updated eas.json. Your next builds will run on M1 workers.'); -} diff --git a/packages/eas-cli/src/build/runBuildAndSubmit.ts b/packages/eas-cli/src/build/runBuildAndSubmit.ts index b96fac14a6..58b23213ed 100644 --- a/packages/eas-cli/src/build/runBuildAndSubmit.ts +++ b/packages/eas-cli/src/build/runBuildAndSubmit.ts @@ -231,8 +231,6 @@ export async function runBuildAndSubmitAsync( const builds = await waitForBuildEndAsync(graphqlClient, { buildIds: startedBuilds.map(({ build }) => build.id), accountName, - projectDir, - nonInteractive: flags.nonInteractive, }); if (!flags.json) { printBuildResults(builds); diff --git a/packages/eas-cli/src/build/utils/resourceClass.ts b/packages/eas-cli/src/build/utils/resourceClass.ts index 622621e234..7a305e6171 100644 --- a/packages/eas-cli/src/build/utils/resourceClass.ts +++ b/packages/eas-cli/src/build/utils/resourceClass.ts @@ -7,21 +7,13 @@ import Log, { link } from '../../log'; type AndroidResourceClass = Exclude< ResourceClass, - | ResourceClass.M1_EXPERIMENTAL - | ResourceClass.M1_MEDIUM - | ResourceClass.M1_LARGE - | ResourceClass.INTEL_MEDIUM - | ResourceClass.M_MEDIUM - | ResourceClass.M_LARGE + ResourceClass.M1_MEDIUM | ResourceClass.M_MEDIUM | ResourceClass.M_LARGE >; const iosResourceClassToBuildResourceClassMapping: Record = { [ResourceClass.DEFAULT]: BuildResourceClass.IosDefault, [ResourceClass.LARGE]: BuildResourceClass.IosLarge, - [ResourceClass.M1_EXPERIMENTAL]: BuildResourceClass.IosMMedium, [ResourceClass.M1_MEDIUM]: BuildResourceClass.IosMMedium, - [ResourceClass.M1_LARGE]: BuildResourceClass.IosMLarge, - [ResourceClass.INTEL_MEDIUM]: BuildResourceClass.IosIntelMedium, [ResourceClass.MEDIUM]: BuildResourceClass.IosMedium, [ResourceClass.M_MEDIUM]: BuildResourceClass.IosMMedium, [ResourceClass.M_LARGE]: BuildResourceClass.IosMLarge, @@ -57,15 +49,7 @@ export async function resolveBuildResourceClassAsync( } function resolveAndroidResourceClass(selectedResourceClass?: ResourceClass): BuildResourceClass { - if ( - selectedResourceClass && - [ - ResourceClass.M1_EXPERIMENTAL, - ResourceClass.M1_MEDIUM, - ResourceClass.M1_LARGE, - ResourceClass.INTEL_MEDIUM, - ].includes(selectedResourceClass) - ) { + if (selectedResourceClass && ResourceClass.M1_MEDIUM === selectedResourceClass) { throw new Error(`Resource class ${selectedResourceClass} is only available for iOS builds`); } @@ -88,7 +72,7 @@ function resolveIosResourceClass( ); } - if ([ResourceClass.M1_EXPERIMENTAL, ResourceClass.M1_MEDIUM].includes(resourceClass)) { + if (ResourceClass.M1_MEDIUM === resourceClass) { Log.warn( `Resource class ${chalk.bold(resourceClass)} is deprecated. Use ${chalk.bold( 'm-medium' @@ -96,7 +80,7 @@ function resolveIosResourceClass( ); } - if ([ResourceClass.M_LARGE, ResourceClass.M1_LARGE].includes(resourceClass)) { + if (ResourceClass.M_LARGE === resourceClass) { Log.warn( `Resource class ${chalk.bold(resourceClass)} is deprecated. Use ${chalk.bold( 'large' diff --git a/packages/eas-cli/src/commands/build/resign.ts b/packages/eas-cli/src/commands/build/resign.ts index ce649bd0fb..ee657aadf9 100644 --- a/packages/eas-cli/src/commands/build/resign.ts +++ b/packages/eas-cli/src/commands/build/resign.ts @@ -204,8 +204,6 @@ export default class BuildResign extends EasCommand { const buildResult = await waitForBuildEndAsync(graphqlClient, { buildIds: [newBuild.id], accountName: account.name, - nonInteractive, - projectDir, }); if (!flags.json) { printBuildResults(buildResult); diff --git a/packages/eas-json/src/build/schema.ts b/packages/eas-json/src/build/schema.ts index e7b2558dfe..56d507c9c6 100644 --- a/packages/eas-json/src/build/schema.ts +++ b/packages/eas-json/src/build/schema.ts @@ -14,7 +14,6 @@ const AllowedAndroidResourceClasses: ResourceClass[] = AllowedCommonResourceClas const AllowedIosResourceClasses: ResourceClass[] = [ ...AllowedCommonResourceClasses, ResourceClass.M1_MEDIUM, - ResourceClass.INTEL_MEDIUM, ResourceClass.M_MEDIUM, ResourceClass.M_LARGE, ]; diff --git a/packages/eas-json/src/build/types.ts b/packages/eas-json/src/build/types.ts index 60f503a3cf..3cc23cf0e0 100644 --- a/packages/eas-json/src/build/types.ts +++ b/packages/eas-json/src/build/types.ts @@ -8,19 +8,10 @@ export enum CredentialsSource { export enum ResourceClass { DEFAULT = 'default', LARGE = 'large', - /** - * @deprecated use M_MEDIUM instead - */ - M1_EXPERIMENTAL = 'm1-experimental', /** * @deprecated use M_MEDIUM instead */ M1_MEDIUM = 'm1-medium', - /** - * @deprecated use M_LARGE instead - */ - M1_LARGE = 'm1-large', - INTEL_MEDIUM = 'intel-medium', MEDIUM = 'medium', M_MEDIUM = 'm-medium', /** From b2bab3a52330634afdb49df53b098a3712acf48b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Oct 2023 12:02:52 +0200 Subject: [PATCH 072/105] Bump @babel/traverse from 7.12.5 to 7.23.2 (#2089) Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.12.5 to 7.23.2. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse) --- updated-dependencies: - dependency-name: "@babel/traverse" dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 388 ++++++++++++++++++------------------------------------ 1 file changed, 128 insertions(+), 260 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8ef9e24c9c..999f1575d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -73,13 +73,6 @@ dependencies: "@babel/highlight" "^7.12.13" -"@babel/code-frame@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" - integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== - dependencies: - "@babel/highlight" "^7.14.5" - "@babel/code-frame@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" @@ -94,6 +87,14 @@ dependencies: "@babel/highlight" "^7.16.7" +"@babel/code-frame@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== + dependencies: + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" + "@babel/compat-data@^7.16.0": version "7.16.4" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" @@ -172,15 +173,6 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.12.5": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.5.tgz#a2c50de5c8b6d708ab95be5e6053936c1884a4de" - integrity sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A== - dependencies: - "@babel/types" "^7.12.5" - jsesc "^2.5.1" - source-map "^0.5.0" - "@babel/generator@^7.14.0", "@babel/generator@^7.16.5": version "7.16.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.5.tgz#26e1192eb8f78e0a3acaf3eede3c6fc96d22bedf" @@ -190,16 +182,7 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/generator@^7.15.0", "@babel/generator@^7.7.2": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" - integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== - dependencies: - "@babel/types" "^7.15.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.16.7", "@babel/generator@^7.16.8": +"@babel/generator@^7.16.7": version "7.16.8" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe" integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw== @@ -217,15 +200,6 @@ "@jridgewell/gen-mapping" "^0.1.0" jsesc "^2.5.1" -"@babel/generator@^7.18.10": - version "7.18.12" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.12.tgz#fa58daa303757bd6f5e4bbca91b342040463d9f4" - integrity sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg== - dependencies: - "@babel/types" "^7.18.10" - "@jridgewell/gen-mapping" "^0.3.2" - jsesc "^2.5.1" - "@babel/generator@^7.18.13": version "7.19.6" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.6.tgz#9e481a3fe9ca6261c972645ae3904ec0f9b34a1d" @@ -235,6 +209,25 @@ "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" +"@babel/generator@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" + integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== + dependencies: + "@babel/types" "^7.23.0" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/generator@^7.7.2": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" + integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== + dependencies: + "@babel/types" "^7.15.0" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" @@ -323,10 +316,10 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" - integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== "@babel/helper-function-name@^7.10.4": version "7.10.4" @@ -337,48 +330,13 @@ "@babel/template" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-function-name@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" - integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== - dependencies: - "@babel/helper-get-function-arity" "^7.14.5" - "@babel/template" "^7.14.5" - "@babel/types" "^7.14.5" - -"@babel/helper-function-name@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481" - integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== - dependencies: - "@babel/helper-get-function-arity" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/helper-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" - integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== - dependencies: - "@babel/helper-get-function-arity" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-function-name@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" - integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== - dependencies: - "@babel/template" "^7.16.7" - "@babel/types" "^7.17.0" - -"@babel/helper-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" - integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== dependencies: - "@babel/template" "^7.18.6" - "@babel/types" "^7.18.9" + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" "@babel/helper-get-function-arity@^7.10.4": version "7.10.4" @@ -387,54 +345,12 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-get-function-arity@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" - integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-get-function-arity@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" - integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-get-function-arity@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" - integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-hoist-variables@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" - integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-hoist-variables@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" - integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" - integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.22.5" "@babel/helper-member-expression-to-functions@^7.12.1": version "7.12.1" @@ -600,13 +516,6 @@ dependencies: "@babel/types" "^7.11.0" -"@babel/helper-split-export-declaration@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" - integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== - dependencies: - "@babel/types" "^7.14.5" - "@babel/helper-split-export-declaration@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438" @@ -621,12 +530,12 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.22.5" "@babel/helper-string-parser@^7.18.10": version "7.18.10" @@ -638,6 +547,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" @@ -648,7 +562,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== -"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": +"@babel/helper-validator-identifier@^7.14.9": version "7.14.9" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== @@ -673,6 +587,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + "@babel/helper-validator-option@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" @@ -728,15 +647,6 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/highlight@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" - integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== - dependencies: - "@babel/helper-validator-identifier" "^7.14.5" - chalk "^2.0.0" - js-tokens "^4.0.0" - "@babel/highlight@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" @@ -764,7 +674,16 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.12.5": +"@babel/highlight@^7.22.13": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" + integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.10.4": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.5.tgz#b4af32ddd473c0bfa643bd7ff0728b8e71b81ea0" integrity sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ== @@ -774,11 +693,6 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.6.tgz#8f194828193e8fa79166f34a4b4e52f3e769a314" integrity sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ== -"@babel/parser@^7.14.5", "@babel/parser@^7.15.0": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" - integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== - "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.16.8": version "7.16.8" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.8.tgz#61c243a3875f7d0b0962b0543a33ece6ff2f1f17" @@ -789,11 +703,16 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.10.tgz#873b16db82a8909e0fbd7f115772f4b739f6ce78" integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ== -"@babel/parser@^7.18.10", "@babel/parser@^7.18.11": +"@babel/parser@^7.18.10": version "7.18.11" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.11.tgz#68bb07ab3d380affa9a3f96728df07969645d2d9" integrity sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ== +"@babel/parser@^7.22.15", "@babel/parser@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" + integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== + "@babel/plugin-proposal-class-properties@^7.0.0": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de" @@ -1103,15 +1022,6 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/template@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" - integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/parser" "^7.14.5" - "@babel/types" "^7.14.5" - "@babel/template@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" @@ -1130,7 +1040,7 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/template@^7.18.10", "@babel/template@^7.18.6": +"@babel/template@^7.18.10": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== @@ -1139,97 +1049,28 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/traverse@^7.12.1", "@babel/traverse@^7.12.5": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.5.tgz#78a0c68c8e8a35e4cacfd31db8bb303d5606f095" - integrity sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.5" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.12.5" - "@babel/types" "^7.12.5" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.19" - -"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.5.tgz#d7d400a8229c714a59b87624fc67b0f1fbd4b2b3" - integrity sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.5" - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/parser" "^7.16.5" - "@babel/types" "^7.16.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.16.7": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.8.tgz#bab2f2b09a5fe8a8d9cad22cbfe3ba1d126fef9c" - integrity sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.8" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.16.8" - "@babel/types" "^7.16.8" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.16.8": - version "7.18.11" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.11.tgz#3d51f2afbd83ecf9912bcbb5c4d94e3d2ddaa16f" - integrity sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.10" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.18.11" - "@babel/types" "^7.18.10" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.17.10", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.10.tgz#1ee1a5ac39f4eac844e6cf855b35520e5eb6f8b5" - integrity sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.10" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.10" - "@babel/types" "^7.17.10" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.7.2": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" - integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.0" - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-hoist-variables" "^7.14.5" - "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/parser" "^7.15.0" - "@babel/types" "^7.15.0" +"@babel/template@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.12.1", "@babel/traverse@^7.12.5", "@babel/traverse@^7.14.0", "@babel/traverse@^7.16.5", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.10", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.7.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" + integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.0" + "@babel/types" "^7.23.0" debug "^4.1.0" globals "^11.1.0" @@ -1242,7 +1083,7 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" -"@babel/types@^7.14.5", "@babel/types@^7.15.0": +"@babel/types@^7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== @@ -1274,7 +1115,7 @@ "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" -"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9": +"@babel/types@^7.18.10": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.10.tgz#4908e81b6b339ca7c6b7a555a5fc29446f26dde6" integrity sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ== @@ -1292,6 +1133,15 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" +"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" + integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -2558,6 +2408,11 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + "@jridgewell/set-array@^1.0.0": version "1.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" @@ -2578,6 +2433,11 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== +"@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + "@jridgewell/trace-mapping@0.3.9": version "0.3.9" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" @@ -2602,6 +2462,14 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@jridgewell/trace-mapping@^0.3.17": + version "0.3.19" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" + integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@jridgewell/trace-mapping@^0.3.9": version "0.3.10" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.10.tgz#db436f0917d655393851bc258918c00226c9b183" @@ -5562,7 +5430,7 @@ chalk@^1.0.0: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0: +chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== From 7374a93f0380cb9a8fe7d0cd8475ec162c7337a8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Oct 2023 12:05:43 +0200 Subject: [PATCH 073/105] Bump undici from 5.19.1 to 5.26.3 (#2088) Bumps [undici](https://github.com/nodejs/undici) from 5.19.1 to 5.26.3. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v5.19.1...v5.26.3) --- updated-dependencies: - dependency-name: undici dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 999f1575d7..e2001e8cae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1447,6 +1447,11 @@ resolved "https://registry.yarnpkg.com/@expo/timeago.js/-/timeago.js-1.0.0.tgz#8fb2b17e93e7a8d28387a4d292af12e071040045" integrity sha512-PD45CGlCL8kG0U3YcH1NvYxQThw5XAS7qE9bgP4L7dakm8lsMz+p8BQ1IjBFMmImawVWsV3py6JZINaEebXLnw== +"@fastify/busboy@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.0.0.tgz#f22824caff3ae506b18207bad4126dbc6ccdb6b8" + integrity sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ== + "@gar/promisify@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210" @@ -13146,11 +13151,11 @@ unc-path-regex@^0.1.2: integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= undici@^5.12.0, undici@^5.8.0: - version "5.19.1" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.19.1.tgz#92b1fd3ab2c089b5a6bd3e579dcda8f1934ebf6d" - integrity sha512-YiZ61LPIgY73E7syxCDxxa3LV2yl3sN8spnIuTct60boiiRaE1J8mNWHO8Im2Zi/sFrPusjLlmRPrsyraSqX6A== + version "5.26.3" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.26.3.tgz#ab3527b3d5bb25b12f898dfd22165d472dd71b79" + integrity sha512-H7n2zmKEWgOllKkIUkLvFmsJQj062lSm3uA4EYApG8gLuiOM0/go9bIoC3HVaSnfg4xunowDE2i9p8drkXuvDw== dependencies: - busboy "^1.6.0" + "@fastify/busboy" "^2.0.0" unique-filename@^1.1.1: version "1.1.1" From 239ad4a88e21ad252298b1fb8618bf5b8dd63c2b Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Wed, 25 Oct 2023 11:55:02 +0200 Subject: [PATCH 074/105] [ENG-10384][eas-json] update `eas.schema.json` to include new JDK 17 image (#2099) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [eas-json] update `eas.schema.json` to include new JDK 17 image * Update packages/eas-json/schema/eas.schema.json Co-authored-by: StanisΕ‚aw Chmiela * update CHANGELOG.md --------- Co-authored-by: StanisΕ‚aw Chmiela --- CHANGELOG.md | 1 + packages/eas-json/schema/eas.schema.json | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5171100cbf..dd629539ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ This is the log of notable changes to EAS CLI and related packages. - Move `getVcsClient` into command context. ([#2086](https://github.com/expo/eas-cli/pull/2086) by [@Josh-McFarlin](https://github.com/Josh-McFarlin)) - Display Apple device creation date when listing devices. ([#2092](https://github.com/expo/eas-cli/pull/2092) by [@radoslawkrzemien](https://github.com/radoslawkrzemien)) - Clean up Intel resource classes code after their deletion. ([#2093](https://github.com/expo/eas-cli/pull/2093) by [@szdziedzic](https://github.com/szdziedzic)) +- Update images descriptions in `eas.schema.json` and add info about the new JDK 17 image. ([#2099](https://github.com/expo/eas-cli/pull/2099) by [@szdziedzic](https://github.com/szdziedzic)) ## [5.4.0](https://github.com/expo/eas-cli/releases/tag/v5.4.0) - 2023-09-28 diff --git a/packages/eas-json/schema/eas.schema.json b/packages/eas-json/schema/eas.schema.json index 0f56078dc7..4e99c2b49a 100644 --- a/packages/eas-json/schema/eas.schema.json +++ b/packages/eas-json/schema/eas.schema.json @@ -238,6 +238,7 @@ "default", "latest", "stable", + "ubuntu-22.04-jdk-17-ndk-r21e", "ubuntu-22.04-jdk-11-ndk-r21e", "ubuntu-22.04-jdk-8-ndk-r21e", "ubuntu-20.04-jdk-11-ndk-r21e", @@ -246,9 +247,9 @@ "ubuntu-18.04-jdk-8-ndk-r19c" ], "markdownEnumDescriptions": [ - "- React Native `>=0.68.0` - `ubuntu-20.04-jdk-11-ndk-r21e`\n- React Native `<0.68.0` - `ubuntu-18.04-jdk-8-ndk-r19c`", - "`ubuntu-22.04-jdk-11-ndk-r21e`", - "`ubuntu-20.04-jdk-11-ndk-r21e`" + "- React Native `>=0.68.0` - `ubuntu-22.04-jdk-11-ndk-r21e`\n- React Native `<0.68.0` - `ubuntu-18.04-jdk-8-ndk-r19c`", + "`ubuntu-22.04-jdk-17-ndk-r21e`", + "`ubuntu-22.04-jdk-11-ndk-r21e`" ] }, { From b9064287fcd215ce4e30c2e2be0d13f9e0a44cee Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Wed, 25 Oct 2023 12:00:01 +0200 Subject: [PATCH 075/105] v5.5.0 --- lerna.json | 2 +- packages/eas-cli/README.md | 158 +++++++++++++++++++++------------ packages/eas-cli/package.json | 4 +- packages/eas-json/package.json | 2 +- 4 files changed, 107 insertions(+), 59 deletions(-) diff --git a/lerna.json b/lerna.json index ec045e4530..31668b0945 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "npmClient": "yarn", "useWorkspaces": true, - "version": "5.4.0", + "version": "5.5.0", "$schema": "node_modules/lerna/schemas/lerna-schema.json" } diff --git a/packages/eas-cli/README.md b/packages/eas-cli/README.md index 8194a2969f..697a98a262 100644 --- a/packages/eas-cli/README.md +++ b/packages/eas-cli/README.md @@ -110,6 +110,8 @@ eas --help COMMAND * [`eas update:delete GROUPID`](#eas-updatedelete-groupid) * [`eas update:list`](#eas-updatelist) * [`eas update:republish`](#eas-updaterepublish) +* [`eas update:roll-back-to-embedded`](#eas-updateroll-back-to-embedded) +* [`eas update:rollback`](#eas-updaterollback) * [`eas update:view GROUPID`](#eas-updateview-groupid) * [`eas webhook:create`](#eas-webhookcreate) * [`eas webhook:delete [ID]`](#eas-webhookdelete-id) @@ -133,7 +135,7 @@ ALIASES $ eas login ``` -_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/account/login.ts)_ +_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/account/login.ts)_ ## `eas account:logout` @@ -150,7 +152,7 @@ ALIASES $ eas logout ``` -_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/account/logout.ts)_ +_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/account/logout.ts)_ ## `eas account:view` @@ -167,7 +169,7 @@ ALIASES $ eas whoami ``` -_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/account/view.ts)_ +_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/account/view.ts)_ ## `eas analytics [STATUS]` @@ -181,7 +183,7 @@ DESCRIPTION display or change analytics settings ``` -_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/analytics.ts)_ +_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/analytics.ts)_ ## `eas autocomplete [SHELL]` @@ -231,7 +233,7 @@ DESCRIPTION create a branch ``` -_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/branch/create.ts)_ +_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/branch/create.ts)_ ## `eas branch:delete [NAME]` @@ -252,7 +254,7 @@ DESCRIPTION delete a branch ``` -_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/branch/delete.ts)_ +_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/branch/delete.ts)_ ## `eas branch:list` @@ -272,7 +274,7 @@ DESCRIPTION list all branches ``` -_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/branch/list.ts)_ +_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/branch/list.ts)_ ## `eas branch:rename` @@ -292,7 +294,7 @@ DESCRIPTION rename a branch ``` -_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/branch/rename.ts)_ +_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/branch/rename.ts)_ ## `eas branch:view [NAME]` @@ -315,7 +317,7 @@ DESCRIPTION view a branch ``` -_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/branch/view.ts)_ +_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/branch/view.ts)_ ## `eas build` @@ -345,7 +347,7 @@ DESCRIPTION start a build ``` -_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/index.ts)_ +_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/index.ts)_ ## `eas build:cancel [BUILD_ID]` @@ -362,7 +364,7 @@ DESCRIPTION cancel a build ``` -_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/cancel.ts)_ +_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/cancel.ts)_ ## `eas build:configure` @@ -379,7 +381,7 @@ DESCRIPTION configure the project to support EAS Build ``` -_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/configure.ts)_ +_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/configure.ts)_ ## `eas build:inspect` @@ -414,7 +416,7 @@ DESCRIPTION inspect the state of the project at specific build stages, useful for troubleshooting ``` -_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/inspect.ts)_ +_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/inspect.ts)_ ## `eas build:list` @@ -452,7 +454,7 @@ DESCRIPTION list all builds for your project ``` -_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/list.ts)_ +_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/list.ts)_ ## `eas build:resign` @@ -478,7 +480,7 @@ DESCRIPTION re-sign a build archive ``` -_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/resign.ts)_ +_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/resign.ts)_ ## `eas build:run` @@ -502,7 +504,7 @@ DESCRIPTION run simulator/emulator builds from eas-cli ``` -_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/run.ts)_ +_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/run.ts)_ ## `eas build:submit` @@ -551,7 +553,7 @@ DESCRIPTION get the latest version from EAS servers ``` -_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/version/get.ts)_ +_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/version/get.ts)_ ## `eas build:version:set` @@ -570,7 +572,7 @@ DESCRIPTION update version of an app ``` -_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/version/set.ts)_ +_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/version/set.ts)_ ## `eas build:version:sync` @@ -589,7 +591,7 @@ DESCRIPTION update a version in native code with a value stored on EAS servers ``` -_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/version/sync.ts)_ +_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/version/sync.ts)_ ## `eas build:view [BUILD_ID]` @@ -606,7 +608,7 @@ DESCRIPTION view a build for your project ``` -_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/build/view.ts)_ +_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/view.ts)_ ## `eas channel:create [NAME]` @@ -627,7 +629,7 @@ DESCRIPTION create a channel ``` -_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/channel/create.ts)_ +_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/channel/create.ts)_ ## `eas channel:edit [NAME]` @@ -649,7 +651,7 @@ DESCRIPTION point a channel at a new branch ``` -_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/channel/edit.ts)_ +_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/channel/edit.ts)_ ## `eas channel:list` @@ -669,7 +671,7 @@ DESCRIPTION list all channels ``` -_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/channel/list.ts)_ +_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/channel/list.ts)_ ## `eas channel:rollout [CHANNEL]` @@ -701,7 +703,7 @@ DESCRIPTION Roll a new branch out on a channel incrementally. ``` -_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/channel/rollout.ts)_ +_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/channel/rollout.ts)_ ## `eas channel:view [NAME]` @@ -724,7 +726,7 @@ DESCRIPTION view a channel ``` -_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/channel/view.ts)_ +_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/channel/view.ts)_ ## `eas config` @@ -745,7 +747,7 @@ DESCRIPTION display project configuration (app.json + eas.json) ``` -_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/config.ts)_ +_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/config.ts)_ ## `eas credentials` @@ -762,7 +764,7 @@ DESCRIPTION manage credentials ``` -_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/credentials.ts)_ +_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/credentials.ts)_ ## `eas device:create` @@ -776,7 +778,7 @@ DESCRIPTION register new Apple Devices to use for internal distribution ``` -_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/device/create.ts)_ +_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/device/create.ts)_ ## `eas device:delete` @@ -796,7 +798,7 @@ DESCRIPTION remove a registered device from your account ``` -_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/device/delete.ts)_ +_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/device/delete.ts)_ ## `eas device:list` @@ -817,7 +819,7 @@ DESCRIPTION list all registered devices for your account ``` -_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/device/list.ts)_ +_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/device/list.ts)_ ## `eas device:rename` @@ -838,7 +840,7 @@ DESCRIPTION rename a registered device ``` -_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/device/rename.ts)_ +_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/device/rename.ts)_ ## `eas device:view [UDID]` @@ -852,7 +854,7 @@ DESCRIPTION view a device for your project ``` -_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/device/view.ts)_ +_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/device/view.ts)_ ## `eas diagnostics` @@ -866,7 +868,7 @@ DESCRIPTION display environment info ``` -_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/diagnostics.ts)_ +_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/diagnostics.ts)_ ## `eas help [COMMAND]` @@ -954,7 +956,7 @@ DESCRIPTION validate the local store configuration ``` -_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/metadata/lint.ts)_ +_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/metadata/lint.ts)_ ## `eas metadata:pull` @@ -971,7 +973,7 @@ DESCRIPTION generate the local store configuration from the app stores ``` -_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/metadata/pull.ts)_ +_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/metadata/pull.ts)_ ## `eas metadata:push` @@ -988,7 +990,7 @@ DESCRIPTION sync the local store configuration to the app stores ``` -_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/metadata/push.ts)_ +_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/metadata/push.ts)_ ## `eas open` @@ -1002,7 +1004,7 @@ DESCRIPTION open the project page in a web browser ``` -_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/open.ts)_ +_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/open.ts)_ ## `eas project:info` @@ -1016,7 +1018,7 @@ DESCRIPTION information about the current project ``` -_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/project/info.ts)_ +_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/project/info.ts)_ ## `eas project:init` @@ -1038,7 +1040,7 @@ ALIASES $ eas init ``` -_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/project/init.ts)_ +_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/project/init.ts)_ ## `eas secret:create` @@ -1061,7 +1063,7 @@ DESCRIPTION create an environment secret on the current project or owner account ``` -_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/secret/create.ts)_ +_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/secret/create.ts)_ ## `eas secret:delete` @@ -1079,7 +1081,7 @@ DESCRIPTION delete an environment secret by ID ``` -_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/secret/delete.ts)_ +_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/secret/delete.ts)_ ## `eas secret:list` @@ -1093,7 +1095,7 @@ DESCRIPTION list environment secrets available for your current app ``` -_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/secret/list.ts)_ +_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/secret/list.ts)_ ## `eas secret:push` @@ -1113,7 +1115,7 @@ DESCRIPTION read environment secrets from env file and store on the server ``` -_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/secret/push.ts)_ +_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/secret/push.ts)_ ## `eas submit` @@ -1143,7 +1145,7 @@ ALIASES $ eas build:submit ``` -_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/submit.ts)_ +_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/submit.ts)_ ## `eas update` @@ -1177,7 +1179,7 @@ DESCRIPTION publish an update group ``` -_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/update/index.ts)_ +_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/update/index.ts)_ ## `eas update:configure` @@ -1195,7 +1197,7 @@ DESCRIPTION configure the project to support EAS Update ``` -_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/update/configure.ts)_ +_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/update/configure.ts)_ ## `eas update:delete GROUPID` @@ -1216,7 +1218,7 @@ DESCRIPTION delete all the updates in an update group ``` -_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/update/delete.ts)_ +_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/update/delete.ts)_ ## `eas update:list` @@ -1238,7 +1240,7 @@ DESCRIPTION view the recent updates ``` -_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/update/list.ts)_ +_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/update/list.ts)_ ## `eas update:republish` @@ -1265,7 +1267,53 @@ DESCRIPTION roll back to an existing update ``` -_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/update/republish.ts)_ +_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/update/republish.ts)_ + +## `eas update:roll-back-to-embedded` + +roll back to the embedded update + +``` +USAGE + $ eas update:roll-back-to-embedded [--branch ] [--channel ] [--message ] [-p android|ios|all] [--auto] + [--private-key-path ] [--json --non-interactive] + +FLAGS + -p, --platform=(android|ios|all) [default: all] + --auto Use the current git branch and commit message for the EAS branch and update message + --branch= Branch to publish the rollback to embedded update group on + --channel= Channel that the published rollback to embedded update should affect + --json Enable JSON output, non-JSON messages will be printed to stderr. + --message= A short message describing the rollback to embedded update + --non-interactive Run the command in non-interactive mode. + --private-key-path= File containing the PEM-encoded private key corresponding to the certificate in + expo-updates' configuration. Defaults to a file named "private-key.pem" in the + certificate's directory. + +DESCRIPTION + roll back to the embedded update +``` + +_See code: [src/commands/update/roll-back-to-embedded.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts)_ + +## `eas update:rollback` + +roll back to an embedded update or an existing update + +``` +USAGE + $ eas update:rollback [--private-key-path ] + +FLAGS + --private-key-path= File containing the PEM-encoded private key corresponding to the certificate in + expo-updates' configuration. Defaults to a file named "private-key.pem" in the + certificate's directory. + +DESCRIPTION + roll back to an embedded update or an existing update +``` + +_See code: [src/commands/update/rollback.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/update/rollback.ts)_ ## `eas update:view GROUPID` @@ -1285,7 +1333,7 @@ DESCRIPTION update group details ``` -_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/update/view.ts)_ +_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/update/view.ts)_ ## `eas webhook:create` @@ -1306,7 +1354,7 @@ DESCRIPTION create a webhook ``` -_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/webhook/create.ts)_ +_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/webhook/create.ts)_ ## `eas webhook:delete [ID]` @@ -1326,7 +1374,7 @@ DESCRIPTION delete a webhook ``` -_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/webhook/delete.ts)_ +_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/webhook/delete.ts)_ ## `eas webhook:list` @@ -1344,7 +1392,7 @@ DESCRIPTION list webhooks ``` -_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/webhook/list.ts)_ +_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/webhook/list.ts)_ ## `eas webhook:update` @@ -1366,7 +1414,7 @@ DESCRIPTION update a webhook ``` -_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/webhook/update.ts)_ +_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/webhook/update.ts)_ ## `eas webhook:view ID` @@ -1383,7 +1431,7 @@ DESCRIPTION view a webhook ``` -_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.4.0/packages/eas-cli/src/commands/webhook/view.ts)_ +_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/webhook/view.ts)_ ## `eas whoami` diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index 236b370201..bddf6d1731 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -1,7 +1,7 @@ { "name": "eas-cli", "description": "EAS command line tool", - "version": "5.4.0", + "version": "5.5.0", "author": "Expo ", "bin": { "eas": "./bin/run" @@ -14,7 +14,7 @@ "@expo/config-plugins": "7.2.4", "@expo/config-types": "49.0.0", "@expo/eas-build-job": "1.0.46", - "@expo/eas-json": "5.3.1", + "@expo/eas-json": "5.5.0", "@expo/json-file": "8.2.37", "@expo/multipart-body-parser": "1.1.0", "@expo/osascript": "2.0.33", diff --git a/packages/eas-json/package.json b/packages/eas-json/package.json index 0065f48f40..a3e05a40bf 100644 --- a/packages/eas-json/package.json +++ b/packages/eas-json/package.json @@ -1,7 +1,7 @@ { "name": "@expo/eas-json", "description": "A library for interacting with eas.json", - "version": "5.3.1", + "version": "5.5.0", "author": "Expo ", "bugs": "https://github.com/expo/eas-cli/issues", "dependencies": { From 7c7d6ec1188c7e021bb86f1a162a7dcce3bf052a Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Wed, 25 Oct 2023 12:32:44 +0200 Subject: [PATCH 076/105] update changelog --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index dd629539ba..37fb98fc1f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,14 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features +### πŸ› Bug fixes + +### 🧹 Chores + +## [5.5.0](https://github.com/expo/eas-cli/releases/tag/v5.5.0) - 2023-10-25 + +### πŸŽ‰ New features + - Add account type to the items in the prompt to select project owner. ([#2083](https://github.com/expo/eas-cli/pull/2083) by [@alanjhughes](https://github.com/alanjhughes)) - Gate roll back to embedded to expo-updates >= 0.19.0. ([#2094](https://github.com/expo/eas-cli/pull/2094) by [@wschurman](https://github.com/wschurman)) From fe710d03fa7b0d8b3044a59c965019a816dd5d7c Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Wed, 25 Oct 2023 12:38:12 +0200 Subject: [PATCH 077/105] [ci] fix `release-changelog` workflow (#2100) --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5b2ba7b3c4..5a53761992 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -175,7 +175,7 @@ jobs: working-directory: ./scripts run: yarn --silent release-changelog $EAS_CLI_VERSION > /tmp/current-changelog - name: Publish release - run: hub release edit v$EAS_CLI_VERSION --draft=false -F /tmp/current-changelog + run: gh release edit v$EAS_CLI_VERSION --draft=false -F /tmp/current-changelog env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Commit and push From 5bf7f279fd4ffa9d86fe789e88a87b3640458775 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rados=C5=82aw=20Krzemie=C5=84?= Date: Thu, 26 Oct 2023 15:20:05 +0200 Subject: [PATCH 078/105] [eas-cli] [ENG-8973] Use selected builds profile name if not specified (#2101) * [eas-cli] Use selected build's profile if possible When user calls `eas submit` command without specified profile name, the command used to default to `production` profile. If the user then selects one of their builds from EAS which was built with another build profile, then using the `production` submit profile may be confusing. Now, after selecting the build from EAS, command checks if a corresponding submit profile with the same name as seleted build's build profile exists, and if so uses that submit profile See: https://linear.app/expo/issue/ENG-8973/eas-submit-doesnt-use-asc-configuration-from-selected-build-profile * [eas-cli] Add tests Added tests for IosSubmitCommand and AndroidSubmitCommand checking what params are passed to SubmissionMutation when user selects build from EAS and corresponding submit profile exists/does not exist See: https://linear.app/expo/issue/ENG-8973/eas-submit-doesnt-use-asc-configuration-from-selected-build-profile * [eas-cli] Add tests Added tests for new `refreshContextSubmitProfileAsync` function See: https://linear.app/expo/issue/ENG-8973/eas-submit-doesnt-use-asc-configuration-from-selected-build-profile * [eas-cli] Remove unused imports Removed unused imports See: https://linear.app/expo/issue/ENG-8973/eas-submit-doesnt-use-asc-configuration-from-selected-build-profile * update CHANGELOG.md * [eas-cli] Don't refresh submit profile if profile specified by the user Just noticed that if the user does specify the profile and then selects the build from EAS, that specified profile would then be overwritten by the profile corresponding with the one from selected build. This shouldn't be the case and this commit fixes that See: https://linear.app/expo/issue/ENG-8973/eas-submit-doesnt-use-asc-configuration-from-selected-build-profile * [eas-cli] Add tests Added tests for cases when matching submit profile exists for selected build but the user explicitly specifies another profile when calling the command See: https://linear.app/expo/issue/ENG-8973/eas-submit-doesnt-use-asc-configuration-from-selected-build-profile * [eas-cli] Adjust error message Function should not be called when user specifies the profile name so the message is adjusted to not include such a case See: https://linear.app/expo/issue/ENG-8973/eas-submit-doesnt-use-asc-configuration-from-selected-build-profile --- CHANGELOG.md | 2 + packages/eas-cli/src/commands/submit.ts | 1 + .../src/submit/__tests__/commons-test.ts | 134 ++++++++++ .../submit/android/AndroidSubmitCommand.ts | 41 ++- .../src/submit/android/AndroidSubmitter.ts | 19 +- .../__tests__/AndroidSubmitCommand-test.ts | 237 +++++++++++++++++- packages/eas-cli/src/submit/commons.ts | 25 ++ packages/eas-cli/src/submit/context.ts | 2 + .../src/submit/ios/IosSubmitCommand.ts | 38 ++- .../eas-cli/src/submit/ios/IosSubmitter.ts | 19 +- .../ios/__tests__/IosSubmitCommand-test.ts | 216 +++++++++++++++- 11 files changed, 689 insertions(+), 45 deletions(-) create mode 100644 packages/eas-cli/src/submit/__tests__/commons-test.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 37fb98fc1f..9dd82e33bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features +- Use corresponding submit profile when selecting build from EAS. ([#2101](https://github.com/expo/eas-cli/pull/2101) by [@radoslawkrzemien](https://github.com/radoslawkrzemien)) + ### πŸ› Bug fixes ### 🧹 Chores diff --git a/packages/eas-cli/src/commands/submit.ts b/packages/eas-cli/src/commands/submit.ts index 07b3fbc46d..1496721b40 100644 --- a/packages/eas-cli/src/commands/submit.ts +++ b/packages/eas-cli/src/commands/submit.ts @@ -138,6 +138,7 @@ export default class Submit extends EasCommand { exp, projectId, vcsClient, + specifiedProfile: flagsWithPlatform.profile, }); if (submissionProfiles.length > 1) { diff --git a/packages/eas-cli/src/submit/__tests__/commons-test.ts b/packages/eas-cli/src/submit/__tests__/commons-test.ts new file mode 100644 index 0000000000..1696888ef4 --- /dev/null +++ b/packages/eas-cli/src/submit/__tests__/commons-test.ts @@ -0,0 +1,134 @@ +import { Platform } from '@expo/eas-build-job'; +import { + AndroidReleaseStatus, + AndroidReleaseTrack, + EasJsonAccessor, + EasJsonUtils, +} from '@expo/eas-json'; +import { MissingProfileError } from '@expo/eas-json/build/errors'; + +import { refreshContextSubmitProfileAsync } from '../commons'; +import { SubmissionContext } from '../context'; + +jest.mock('@expo/eas-json'); + +describe(refreshContextSubmitProfileAsync, () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + describe('iOS', () => { + it('returns updated context if profile exists', async () => { + const submitContext = { + profile: { language: 'pl-PL' }, + } as any as SubmissionContext; + jest + .mocked(EasJsonUtils.getSubmitProfileAsync) + .mockImplementation( + async ( + _accessor: EasJsonAccessor, + _platform: Platform, + _profileName: string | undefined + ) => { + return { language: 'en-US' }; + } + ); + + const result = await refreshContextSubmitProfileAsync(submitContext, 'existingProfile'); + + expect(result).toEqual({ profile: { language: 'en-US' } }); + }); + it('returns unmodified context if profile does not exist', async () => { + const submitContext = { + profile: { language: 'pl-PL' }, + } as any as SubmissionContext; + jest + .mocked(EasJsonUtils.getSubmitProfileAsync) + .mockImplementation( + async ( + _accessor: EasJsonAccessor, + _platform: Platform, + profileName: string | undefined + ) => { + throw new MissingProfileError(`Missing submit profile in eas.json: ${profileName}`); + } + ); + + const result = await refreshContextSubmitProfileAsync(submitContext, 'nonExistingProfile'); + + expect(result).toEqual({ profile: { language: 'pl-PL' } }); + }); + }); + + describe('Android', () => { + it('returns updated context if profile exists', async () => { + const submitContext = { + profile: { + track: AndroidReleaseTrack.internal, + releaseStatus: AndroidReleaseStatus.draft, + changesNotSentForReview: false, + applicationId: 'appId1', + }, + } as any as SubmissionContext; + jest + .mocked(EasJsonUtils.getSubmitProfileAsync) + .mockImplementation( + async ( + _accessor: EasJsonAccessor, + _platform: Platform, + _profileName: string | undefined + ) => { + return { + track: AndroidReleaseTrack.beta, + releaseStatus: AndroidReleaseStatus.inProgress, + changesNotSentForReview: true, + applicationId: 'appId2', + }; + } + ); + + const result = await refreshContextSubmitProfileAsync(submitContext, 'existingProfile'); + + expect(result).toEqual({ + profile: { + track: AndroidReleaseTrack.beta, + releaseStatus: AndroidReleaseStatus.inProgress, + changesNotSentForReview: true, + applicationId: 'appId2', + }, + }); + }); + it('returns unmodified context if profile does not exist', async () => { + const submitContext = { + profile: { + track: AndroidReleaseTrack.internal, + releaseStatus: AndroidReleaseStatus.draft, + changesNotSentForReview: false, + applicationId: 'appId1', + }, + } as any as SubmissionContext; + jest + .mocked(EasJsonUtils.getSubmitProfileAsync) + .mockImplementation( + async ( + _accessor: EasJsonAccessor, + _platform: Platform, + profileName: string | undefined + ) => { + throw new MissingProfileError(`Missing submit profile in eas.json: ${profileName}`); + } + ); + + const result = await refreshContextSubmitProfileAsync(submitContext, 'nonExistingProfile'); + + expect(result).toEqual({ + profile: { + track: AndroidReleaseTrack.internal, + releaseStatus: AndroidReleaseStatus.draft, + changesNotSentForReview: false, + applicationId: 'appId1', + }, + }); + }); + }); +}); diff --git a/packages/eas-cli/src/submit/android/AndroidSubmitCommand.ts b/packages/eas-cli/src/submit/android/AndroidSubmitCommand.ts index dbd26bbe98..9ccc04fe7b 100644 --- a/packages/eas-cli/src/submit/android/AndroidSubmitCommand.ts +++ b/packages/eas-cli/src/submit/android/AndroidSubmitCommand.ts @@ -13,8 +13,8 @@ import { getApplicationIdAsync, } from '../../project/android/applicationId'; import capitalizeFirstLetter from '../../utils/expodash/capitalize'; -import { ArchiveSource } from '../ArchiveSource'; -import { resolveArchiveSource } from '../commons'; +import { ArchiveSource, ArchiveSourceType, getArchiveAsync } from '../ArchiveSource'; +import { refreshContextSubmitProfileAsync, resolveArchiveSource } from '../commons'; import { SubmissionContext } from '../context'; import AndroidSubmitter, { AndroidSubmissionOptions } from './AndroidSubmitter'; import { ServiceAccountSource, ServiceAccountSourceType } from './ServiceAccountSource'; @@ -24,21 +24,42 @@ export default class AndroidSubmitCommand { async runAsync(): Promise { Log.addNewLineIfNone(); - const submissionOptions = await this.getAndroidSubmissionOptionsAsync(); - const submitter = new AndroidSubmitter(this.ctx, submissionOptions); + const archiveSource = this.resolveArchiveSource(); + if (!archiveSource.ok) { + Log.error(archiveSource.reason?.message); + throw new Error('Submission failed'); + } + + const archiveSourceValue = archiveSource.enforceValue(); + const archive = await getArchiveAsync( + { + graphqlClient: this.ctx.graphqlClient, + platform: Platform.ANDROID, + projectId: this.ctx.projectId, + nonInteractive: this.ctx.nonInteractive, + }, + archiveSourceValue + ); + const archiveProfile = + archive.sourceType === ArchiveSourceType.build ? archive.build.buildProfile : undefined; + + if (archiveProfile && !this.ctx.specifiedProfile) { + this.ctx = await refreshContextSubmitProfileAsync(this.ctx, archiveProfile); + } + const submissionOptions = await this.getAndroidSubmissionOptionsAsync(archiveSourceValue); + const submitter = new AndroidSubmitter(this.ctx, submissionOptions, archive); return await submitter.submitAsync(); } - private async getAndroidSubmissionOptionsAsync(): Promise { + private async getAndroidSubmissionOptionsAsync( + archiveSource: ArchiveSource + ): Promise { const track = this.resolveTrack(); const releaseStatus = this.resolveReleaseStatus(); - const archiveSource = this.resolveArchiveSource(); const rollout = this.resolveRollout(); const serviceAccountSource = await this.resolveServiceAccountSourceAsync(); - const errored = [track, releaseStatus, archiveSource, serviceAccountSource, rollout].filter( - r => !r.ok - ); + const errored = [track, releaseStatus, serviceAccountSource, rollout].filter(r => !r.ok); if (errored.length > 0) { const message = errored.map(err => err.reason?.message).join('\n'); Log.error(message); @@ -50,7 +71,7 @@ export default class AndroidSubmitCommand { track: track.enforceValue(), releaseStatus: releaseStatus.enforceValue(), rollout: rollout.enforceValue(), - archiveSource: archiveSource.enforceValue(), + archiveSource, serviceAccountSource: serviceAccountSource.enforceValue(), changesNotSentForReview: this.ctx.profile.changesNotSentForReview, }; diff --git a/packages/eas-cli/src/submit/android/AndroidSubmitter.ts b/packages/eas-cli/src/submit/android/AndroidSubmitter.ts index 0abcdc52ee..0e907950c4 100644 --- a/packages/eas-cli/src/submit/android/AndroidSubmitter.ts +++ b/packages/eas-cli/src/submit/android/AndroidSubmitter.ts @@ -10,7 +10,7 @@ import { } from '../../graphql/generated'; import { SubmissionMutation } from '../../graphql/mutations/SubmissionMutation'; import formatFields from '../../utils/formatFields'; -import { ArchiveSource, ResolvedArchiveSource, getArchiveAsync } from '../ArchiveSource'; +import { ArchiveSource, ResolvedArchiveSource } from '../ArchiveSource'; import BaseSubmitter, { SubmissionInput } from '../BaseSubmitter'; import { SubmissionContext } from '../context'; import { @@ -44,19 +44,14 @@ export default class AndroidSubmitter extends BaseSubmitter< ResolvedSourceOptions, AndroidSubmissionOptions > { - constructor(ctx: SubmissionContext, options: AndroidSubmissionOptions) { + constructor( + ctx: SubmissionContext, + options: AndroidSubmissionOptions, + archive: ResolvedArchiveSource + ) { const sourceOptionsResolver = { // eslint-disable-next-line async-protect/async-suffix - archive: async () => - await getArchiveAsync( - { - graphqlClient: ctx.graphqlClient, - platform: Platform.ANDROID, - projectId: ctx.projectId, - nonInteractive: ctx.nonInteractive, - }, - this.options.archiveSource - ), + archive: async () => archive, // eslint-disable-next-line async-protect/async-suffix serviceAccountKeyResult: async () => { return await getServiceAccountKeyResultAsync(this.ctx, this.options.serviceAccountSource); diff --git a/packages/eas-cli/src/submit/android/__tests__/AndroidSubmitCommand-test.ts b/packages/eas-cli/src/submit/android/__tests__/AndroidSubmitCommand-test.ts index 5a0d972da6..f902000ffd 100644 --- a/packages/eas-cli/src/submit/android/__tests__/AndroidSubmitCommand-test.ts +++ b/packages/eas-cli/src/submit/android/__tests__/AndroidSubmitCommand-test.ts @@ -21,7 +21,14 @@ import { SubmissionMutation } from '../../../graphql/mutations/SubmissionMutatio import { createTestProject } from '../../../project/__tests__/project-utils'; import { getOwnerAccountForProjectIdAsync } from '../../../project/projectUtils'; import { getVcsClient } from '../../../vcs'; -import { createSubmissionContextAsync } from '../../context'; +import { + ArchiveResolverContext, + ArchiveSource, + ArchiveSourceType, + getArchiveAsync, +} from '../../ArchiveSource'; +import { refreshContextSubmitProfileAsync } from '../../commons'; +import { SubmissionContext, createSubmissionContextAsync } from '../../context'; import { getRecentBuildsForSubmissionAsync } from '../../utils/builds'; import AndroidSubmitCommand from '../AndroidSubmitCommand'; @@ -35,6 +42,20 @@ jest.mock('../../../credentials/android/api/graphql/queries/AndroidAppCredential })); jest.mock('../../utils/builds'); jest.mock('../../../project/projectUtils'); +jest.mock('../../ArchiveSource', () => { + return { + __esModule__: true, + ...jest.requireActual('../../ArchiveSource'), + getArchiveAsync: jest.fn(), + }; +}); +jest.mock('../../commons', () => { + return { + __esModule__: true, + ...jest.requireActual('../../commons'), + refreshContextSubmitProfileAsync: jest.fn(), + }; +}); const vcsClient = getVcsClient(); @@ -52,6 +73,11 @@ describe(AndroidSubmitCommand, () => { private_key: 'super secret', client_email: 'beep-boop@iam.gserviceaccount.com', }), + '/google-other-service-account.json': JSON.stringify({ + type: 'service_account', + private_key: 'other super secret', + client_email: 'beep-boop-blep@iam.gserviceaccount.com', + }), }; const fakeBuildFragment: Partial = { @@ -81,6 +107,9 @@ describe(AndroidSubmitCommand, () => { const projectId = uuidv4(); const graphqlClient = {} as any as ExpoGraphqlClient; const analytics = instance(mock()); + jest + .mocked(getArchiveAsync) + .mockImplementation(jest.requireActual('../../ArchiveSource').getArchiveAsync); const ctx = await createSubmissionContextAsync({ platform: Platform.ANDROID, @@ -113,6 +142,9 @@ describe(AndroidSubmitCommand, () => { const projectId = uuidv4(); const graphqlClient = {} as any as ExpoGraphqlClient; const analytics = instance(mock()); + jest + .mocked(getArchiveAsync) + .mockImplementation(jest.requireActual('../../ArchiveSource').getArchiveAsync); const ctx = await createSubmissionContextAsync({ platform: Platform.ANDROID, @@ -154,6 +186,9 @@ describe(AndroidSubmitCommand, () => { const projectId = uuidv4(); const graphqlClient = {} as any as ExpoGraphqlClient; const analytics = instance(mock()); + jest + .mocked(getArchiveAsync) + .mockImplementation(jest.requireActual('../../ArchiveSource').getArchiveAsync); const ctx = await createSubmissionContextAsync({ platform: Platform.ANDROID, @@ -198,6 +233,9 @@ describe(AndroidSubmitCommand, () => { jest .mocked(getRecentBuildsForSubmissionAsync) .mockResolvedValueOnce([fakeBuildFragment as BuildFragment]); + jest + .mocked(getArchiveAsync) + .mockImplementation(jest.requireActual('../../ArchiveSource').getArchiveAsync); const ctx = await createSubmissionContextAsync({ platform: Platform.ANDROID, @@ -233,5 +271,202 @@ describe(AndroidSubmitCommand, () => { submittedBuildId: fakeBuildFragment.id, }); }); + describe('build selected from EAS', () => { + it('sends a request to EAS Submit', async () => { + const projectId = uuidv4(); + const graphqlClient = {} as any as ExpoGraphqlClient; + const analytics = instance(mock()); + const selectedBuild = { + id: uuidv4(), + buildProfile: 'otherProfile', + } as any as BuildFragment; + jest + .mocked(getArchiveAsync) + .mockImplementation(async (_ctx: ArchiveResolverContext, _source: ArchiveSource) => { + return { + sourceType: ArchiveSourceType.build, + build: selectedBuild, + }; + }); + jest + .mocked(refreshContextSubmitProfileAsync) + .mockImplementation(async (ctx: SubmissionContext, _archiveProfile: string) => { + ctx.profile = { + serviceAccountKeyPath: '/google-other-service-account.json', + track: AndroidReleaseTrack.beta, + releaseStatus: AndroidReleaseStatus.draft, + changesNotSentForReview: false, + applicationId: 'otherAppId', + }; + return ctx; + }); + + const ctx = await createSubmissionContextAsync({ + platform: Platform.ANDROID, + projectDir: testProject.projectRoot, + archiveFlags: {}, + profile: { + serviceAccountKeyPath: '/google-service-account.json', + track: AndroidReleaseTrack.internal, + releaseStatus: AndroidReleaseStatus.draft, + changesNotSentForReview: false, + }, + nonInteractive: false, + actor: mockJester, + graphqlClient, + analytics, + exp: testProject.appJSON.expo, + projectId, + vcsClient, + }); + + const command = new AndroidSubmitCommand(ctx); + await command.runAsync(); + + expect(SubmissionMutation.createAndroidSubmissionAsync).toHaveBeenCalledWith( + graphqlClient, + { + appId: projectId, + archiveSource: undefined, + config: { + googleServiceAccountKeyJson: fakeFiles['/google-other-service-account.json'], + releaseStatus: SubmissionAndroidReleaseStatus.Draft, + track: SubmissionAndroidTrack.Beta, + changesNotSentForReview: false, + rollout: undefined, + }, + submittedBuildId: selectedBuild.id, + } + ); + }); + it('sends a request to EAS Submit with default profile data when submit profile matching selected build profile does not exist', async () => { + const projectId = uuidv4(); + const graphqlClient = {} as any as ExpoGraphqlClient; + const analytics = instance(mock()); + const selectedBuild = { + id: uuidv4(), + buildProfile: 'otherProfile', + } as any as BuildFragment; + jest + .mocked(getArchiveAsync) + .mockImplementation(async (_ctx: ArchiveResolverContext, _source: ArchiveSource) => { + return { + sourceType: ArchiveSourceType.build, + build: selectedBuild, + }; + }); + jest + .mocked(refreshContextSubmitProfileAsync) + .mockImplementation(async (ctx: SubmissionContext, _archiveProfile: string) => { + return ctx; + }); + + const ctx = await createSubmissionContextAsync({ + platform: Platform.ANDROID, + projectDir: testProject.projectRoot, + archiveFlags: {}, + profile: { + serviceAccountKeyPath: '/google-service-account.json', + track: AndroidReleaseTrack.internal, + releaseStatus: AndroidReleaseStatus.draft, + changesNotSentForReview: false, + }, + nonInteractive: false, + actor: mockJester, + graphqlClient, + analytics, + exp: testProject.appJSON.expo, + projectId, + vcsClient, + }); + + const command = new AndroidSubmitCommand(ctx); + await command.runAsync(); + + expect(SubmissionMutation.createAndroidSubmissionAsync).toHaveBeenCalledWith( + graphqlClient, + { + appId: projectId, + archiveSource: undefined, + config: { + googleServiceAccountKeyJson: fakeFiles['/google-service-account.json'], + releaseStatus: SubmissionAndroidReleaseStatus.Draft, + track: SubmissionAndroidTrack.Internal, + changesNotSentForReview: false, + rollout: undefined, + }, + submittedBuildId: selectedBuild.id, + } + ); + }); + it('sends a request to EAS Submit with specified profile data even when submit profile matching selected build profile exists', async () => { + const projectId = uuidv4(); + const graphqlClient = {} as any as ExpoGraphqlClient; + const analytics = instance(mock()); + const selectedBuild = { + id: uuidv4(), + buildProfile: 'otherProfile', + } as any as BuildFragment; + jest + .mocked(getArchiveAsync) + .mockImplementation(async (_ctx: ArchiveResolverContext, _source: ArchiveSource) => { + return { + sourceType: ArchiveSourceType.build, + build: selectedBuild, + }; + }); + jest + .mocked(refreshContextSubmitProfileAsync) + .mockImplementation(async (ctx: SubmissionContext, _archiveProfile: string) => { + ctx.profile = { + serviceAccountKeyPath: '/google-other-service-account.json', + track: AndroidReleaseTrack.beta, + releaseStatus: AndroidReleaseStatus.draft, + changesNotSentForReview: false, + applicationId: 'otherAppId', + }; + return ctx; + }); + + const ctx = await createSubmissionContextAsync({ + platform: Platform.ANDROID, + projectDir: testProject.projectRoot, + archiveFlags: {}, + profile: { + serviceAccountKeyPath: '/google-service-account.json', + track: AndroidReleaseTrack.internal, + releaseStatus: AndroidReleaseStatus.draft, + changesNotSentForReview: false, + }, + nonInteractive: false, + actor: mockJester, + graphqlClient, + analytics, + exp: testProject.appJSON.expo, + projectId, + vcsClient, + specifiedProfile: 'specificProfile', + }); + + const command = new AndroidSubmitCommand(ctx); + await command.runAsync(); + + expect(SubmissionMutation.createAndroidSubmissionAsync).toHaveBeenCalledWith( + graphqlClient, + { + appId: projectId, + archiveSource: undefined, + config: { + googleServiceAccountKeyJson: fakeFiles['/google-service-account.json'], + releaseStatus: SubmissionAndroidReleaseStatus.Draft, + track: SubmissionAndroidTrack.Internal, + changesNotSentForReview: false, + rollout: undefined, + }, + submittedBuildId: selectedBuild.id, + } + ); + }); + }); }); }); diff --git a/packages/eas-cli/src/submit/commons.ts b/packages/eas-cli/src/submit/commons.ts index ce47af53a1..9c20ca230d 100644 --- a/packages/eas-cli/src/submit/commons.ts +++ b/packages/eas-cli/src/submit/commons.ts @@ -1,5 +1,8 @@ import { Platform } from '@expo/eas-build-job'; +import { EasJsonAccessor, EasJsonUtils, SubmitProfile } from '@expo/eas-json'; +import { MissingProfileError } from '@expo/eas-json/build/errors'; +import Log from '../log'; import { ArchiveSource, ArchiveSourceType, isUuidV4 } from './ArchiveSource'; import { SubmissionContext } from './context'; @@ -40,3 +43,25 @@ export function resolveArchiveSource(ctx: SubmissionContext< }; } } + +export async function refreshContextSubmitProfileAsync( + ctx: SubmissionContext, + archiveProfile: string +): Promise> { + try { + ctx.profile = (await EasJsonUtils.getSubmitProfileAsync( + EasJsonAccessor.fromProjectPath(ctx.projectDir), + ctx.platform, + archiveProfile ? archiveProfile : 'production' + )) as SubmitProfile; + } catch (err) { + if (err instanceof MissingProfileError) { + Log.log( + `Selected build uses "${archiveProfile}" build profile but a submit profile with the same name is missing in eas.json. Using default ("production") profile` + ); + } else { + throw err; + } + } + return ctx; +} diff --git a/packages/eas-cli/src/submit/context.ts b/packages/eas-cli/src/submit/context.ts index 928ee17913..357baa247b 100644 --- a/packages/eas-cli/src/submit/context.ts +++ b/packages/eas-cli/src/submit/context.ts @@ -31,6 +31,7 @@ export interface SubmissionContext { analytics: Analytics; vcsClient: Client; applicationIdentifierOverride?: string; + specifiedProfile?: string; } export interface SubmitArchiveFlags { @@ -55,6 +56,7 @@ export async function createSubmissionContextAsync(params: { exp: ExpoConfig; projectId: string; vcsClient: Client; + specifiedProfile?: string; }): Promise> { const { applicationIdentifier, diff --git a/packages/eas-cli/src/submit/ios/IosSubmitCommand.ts b/packages/eas-cli/src/submit/ios/IosSubmitCommand.ts index baf58ae0ab..6c0af1bb2e 100644 --- a/packages/eas-cli/src/submit/ios/IosSubmitCommand.ts +++ b/packages/eas-cli/src/submit/ios/IosSubmitCommand.ts @@ -7,8 +7,8 @@ import wrapAnsi from 'wrap-ansi'; import { MissingCredentialsError } from '../../credentials/errors'; import { SubmissionFragment } from '../../graphql/generated'; import Log, { learnMore } from '../../log'; -import { ArchiveSource } from '../ArchiveSource'; -import { resolveArchiveSource } from '../commons'; +import { ArchiveSource, ArchiveSourceType, getArchiveAsync } from '../ArchiveSource'; +import { refreshContextSubmitProfileAsync, resolveArchiveSource } from '../commons'; import { SubmissionContext } from '../context'; import { ensureAppStoreConnectAppExistsAsync } from './AppProduce'; import { @@ -23,13 +23,36 @@ export default class IosSubmitCommand { async runAsync(): Promise { Log.addNewLineIfNone(); - const options = await this.resolveSubmissionOptionsAsync(); - const submitter = new IosSubmitter(this.ctx, options); + const archiveSource = this.resolveArchiveSource(); + if (!archiveSource.ok) { + Log.error(archiveSource.reason?.message); + throw new Error('Submission failed'); + } + + const archiveSourceValue = archiveSource.enforceValue(); + const archive = await getArchiveAsync( + { + graphqlClient: this.ctx.graphqlClient, + platform: Platform.IOS, + projectId: this.ctx.projectId, + nonInteractive: this.ctx.nonInteractive, + }, + archiveSourceValue + ); + const archiveProfile = + archive.sourceType === ArchiveSourceType.build ? archive.build.buildProfile : undefined; + + if (archiveProfile && !this.ctx.specifiedProfile) { + this.ctx = await refreshContextSubmitProfileAsync(this.ctx, archiveProfile); + } + const options = await this.resolveSubmissionOptionsAsync(archiveSourceValue); + const submitter = new IosSubmitter(this.ctx, options, archive); return await submitter.submitAsync(); } - private async resolveSubmissionOptionsAsync(): Promise { - const archiveSource = this.resolveArchiveSource(); + private async resolveSubmissionOptionsAsync( + archiveSource: ArchiveSource + ): Promise { const credentialsSource = await this.resolveCredentialSubmissionOptionsAsync(); const maybeAppSpecificPasswordSource = 'appSpecificPasswordSource' in credentialsSource @@ -40,7 +63,6 @@ export default class IosSubmitCommand { const ascAppIdentifier = await this.resolveAscAppIdentifierAsync(); const errored = [ - archiveSource, ...(maybeAppSpecificPasswordSource ? [maybeAppSpecificPasswordSource] : []), ...(maybeAscApiKeySource ? [maybeAscApiKeySource] : []), ascAppIdentifier, @@ -54,7 +76,7 @@ export default class IosSubmitCommand { return { projectId: this.ctx.projectId, ascAppIdentifier: ascAppIdentifier.enforceValue(), - archiveSource: archiveSource.enforceValue(), + archiveSource, ...(maybeAppSpecificPasswordSource ? { appSpecificPasswordSource: maybeAppSpecificPasswordSource.enforceValue(), diff --git a/packages/eas-cli/src/submit/ios/IosSubmitter.ts b/packages/eas-cli/src/submit/ios/IosSubmitter.ts index 8de7bae664..ea45fd7d19 100644 --- a/packages/eas-cli/src/submit/ios/IosSubmitter.ts +++ b/packages/eas-cli/src/submit/ios/IosSubmitter.ts @@ -6,7 +6,7 @@ import { MinimalAscApiKey } from '../../credentials/ios/credentials'; import { IosSubmissionConfigInput, SubmissionFragment } from '../../graphql/generated'; import { SubmissionMutation } from '../../graphql/mutations/SubmissionMutation'; import formatFields from '../../utils/formatFields'; -import { ArchiveSource, ResolvedArchiveSource, getArchiveAsync } from '../ArchiveSource'; +import { ArchiveSource, ResolvedArchiveSource } from '../ArchiveSource'; import BaseSubmitter, { SubmissionInput } from '../BaseSubmitter'; import { SubmissionContext } from '../context'; import { @@ -47,19 +47,14 @@ export default class IosSubmitter extends BaseSubmitter< ResolvedSourceOptions, IosSubmissionOptions > { - constructor(ctx: SubmissionContext, options: IosSubmissionOptions) { + constructor( + ctx: SubmissionContext, + options: IosSubmissionOptions, + archive: ResolvedArchiveSource + ) { const sourceOptionsResolver = { // eslint-disable-next-line async-protect/async-suffix - archive: async () => - await getArchiveAsync( - { - graphqlClient: ctx.graphqlClient, - platform: Platform.IOS, - projectId: ctx.projectId, - nonInteractive: ctx.nonInteractive, - }, - this.options.archiveSource - ), + archive: async () => archive, // eslint-disable-next-line async-protect/async-suffix credentials: async () => { const maybeAppSpecificPassword = this.options.appSpecificPasswordSource diff --git a/packages/eas-cli/src/submit/ios/__tests__/IosSubmitCommand-test.ts b/packages/eas-cli/src/submit/ios/__tests__/IosSubmitCommand-test.ts index 8f15f4a61b..e214002744 100644 --- a/packages/eas-cli/src/submit/ios/__tests__/IosSubmitCommand-test.ts +++ b/packages/eas-cli/src/submit/ios/__tests__/IosSubmitCommand-test.ts @@ -9,12 +9,19 @@ import { jester as mockJester, testProjectId, } from '../../../credentials/__tests__/fixtures-constants'; -import { SubmissionArchiveSourceType } from '../../../graphql/generated'; +import { BuildFragment, SubmissionArchiveSourceType } from '../../../graphql/generated'; import { SubmissionMutation } from '../../../graphql/mutations/SubmissionMutation'; import { createTestProject } from '../../../project/__tests__/project-utils'; import { getOwnerAccountForProjectIdAsync } from '../../../project/projectUtils'; import { getVcsClient } from '../../../vcs'; -import { createSubmissionContextAsync } from '../../context'; +import { + ArchiveResolverContext, + ArchiveSource, + ArchiveSourceType, + getArchiveAsync, +} from '../../ArchiveSource'; +import { refreshContextSubmitProfileAsync } from '../../commons'; +import { SubmissionContext, createSubmissionContextAsync } from '../../context'; import IosSubmitCommand from '../IosSubmitCommand'; jest.mock('fs'); @@ -31,6 +38,20 @@ jest.mock('../../../user/actions', () => ({ ensureLoggedInAsync: jest.fn(() => mockJester), })); jest.mock('../../../project/projectUtils'); +jest.mock('../../ArchiveSource', () => { + return { + __esModule__: true, + ...jest.requireActual('../../ArchiveSource'), + getArchiveAsync: jest.fn(), + }; +}); +jest.mock('../../commons', () => { + return { + __esModule__: true, + ...jest.requireActual('../../commons'), + refreshContextSubmitProfileAsync: jest.fn(), + }; +}); const vcsClient = getVcsClient(); @@ -53,6 +74,7 @@ describe(IosSubmitCommand, () => { }); beforeEach(() => { + jest.clearAllMocks(); jest.mocked(getOwnerAccountForProjectIdAsync).mockResolvedValue(mockJester.accounts[0]); }); @@ -61,6 +83,9 @@ describe(IosSubmitCommand, () => { const projectId = uuidv4(); const graphqlClient = {} as any as ExpoGraphqlClient; const analytics = instance(mock()); + jest + .mocked(getArchiveAsync) + .mockImplementation(jest.requireActual('../../ArchiveSource').getArchiveAsync); const ctx = await createSubmissionContextAsync({ platform: Platform.IOS, @@ -89,6 +114,9 @@ describe(IosSubmitCommand, () => { const projectId = uuidv4(); const graphqlClient = {} as any as ExpoGraphqlClient; const analytics = instance(mock()); + jest + .mocked(getArchiveAsync) + .mockImplementation(jest.requireActual('../../ArchiveSource').getArchiveAsync); process.env.EXPO_APPLE_APP_SPECIFIC_PASSWORD = 'supersecret'; @@ -126,5 +154,189 @@ describe(IosSubmitCommand, () => { delete process.env.EXPO_APPLE_APP_SPECIFIC_PASSWORD; }); + describe('build selected from EAS', () => { + it('sends a request to EAS Submit with profile data matching selected build profile', async () => { + const projectId = uuidv4(); + const graphqlClient = {} as any as ExpoGraphqlClient; + const analytics = instance(mock()); + const selectedBuild = { + id: uuidv4(), + buildProfile: 'otherProfile', + } as any as BuildFragment; + jest + .mocked(getArchiveAsync) + .mockImplementation(async (_ctx: ArchiveResolverContext, _source: ArchiveSource) => { + return { + sourceType: ArchiveSourceType.build, + build: selectedBuild, + }; + }); + jest + .mocked(refreshContextSubmitProfileAsync) + .mockImplementation(async (ctx: SubmissionContext, _archiveProfile: string) => { + ctx.profile = { + language: 'en-US', + appleId: 'other-test@example.com', + ascAppId: '87654321', + }; + return ctx; + }); + + process.env.EXPO_APPLE_APP_SPECIFIC_PASSWORD = 'supersecret'; + + const ctx = await createSubmissionContextAsync({ + platform: Platform.IOS, + projectDir: testProject.projectRoot, + archiveFlags: {}, + profile: { + language: 'en-US', + appleId: 'test@example.com', + ascAppId: '12345678', + }, + nonInteractive: false, + actor: mockJester, + graphqlClient, + analytics, + exp: testProject.appJSON.expo, + projectId, + vcsClient, + }); + const command = new IosSubmitCommand(ctx); + await command.runAsync(); + + expect(SubmissionMutation.createIosSubmissionAsync).toHaveBeenCalledWith(graphqlClient, { + appId: projectId, + submittedBuildId: selectedBuild.id, + config: { + appleIdUsername: 'other-test@example.com', + appleAppSpecificPassword: 'supersecret', + ascAppIdentifier: '87654321', + }, + archiveSource: undefined, + }); + + delete process.env.EXPO_APPLE_APP_SPECIFIC_PASSWORD; + }); + it('sends a request to EAS Submit with default profile data when submit profile matching selected build profile does not exist', async () => { + const projectId = uuidv4(); + const graphqlClient = {} as any as ExpoGraphqlClient; + const analytics = instance(mock()); + const selectedBuild = { + id: uuidv4(), + buildProfile: 'otherProfile', + } as any as BuildFragment; + jest + .mocked(getArchiveAsync) + .mockImplementation(async (_ctx: ArchiveResolverContext, _source: ArchiveSource) => { + return { + sourceType: ArchiveSourceType.build, + build: selectedBuild, + }; + }); + jest + .mocked(refreshContextSubmitProfileAsync) + .mockImplementation(async (ctx: SubmissionContext, _archiveProfile: string) => { + return ctx; + }); + + process.env.EXPO_APPLE_APP_SPECIFIC_PASSWORD = 'supersecret'; + + const ctx = await createSubmissionContextAsync({ + platform: Platform.IOS, + projectDir: testProject.projectRoot, + archiveFlags: {}, + profile: { + language: 'en-US', + appleId: 'test@example.com', + ascAppId: '12345678', + }, + nonInteractive: false, + actor: mockJester, + graphqlClient, + analytics, + exp: testProject.appJSON.expo, + projectId, + vcsClient, + }); + const command = new IosSubmitCommand(ctx); + await command.runAsync(); + + expect(SubmissionMutation.createIosSubmissionAsync).toHaveBeenCalledWith(graphqlClient, { + appId: projectId, + submittedBuildId: selectedBuild.id, + config: { + appleIdUsername: 'test@example.com', + appleAppSpecificPassword: 'supersecret', + ascAppIdentifier: '12345678', + }, + archiveSource: undefined, + }); + + delete process.env.EXPO_APPLE_APP_SPECIFIC_PASSWORD; + }); + it('sends a request to EAS Submit with specified profile data even when submit profile matching selected build profile exists', async () => { + const projectId = uuidv4(); + const graphqlClient = {} as any as ExpoGraphqlClient; + const analytics = instance(mock()); + const selectedBuild = { + id: uuidv4(), + buildProfile: 'otherProfile', + } as any as BuildFragment; + jest + .mocked(getArchiveAsync) + .mockImplementation(async (_ctx: ArchiveResolverContext, _source: ArchiveSource) => { + return { + sourceType: ArchiveSourceType.build, + build: selectedBuild, + }; + }); + jest + .mocked(refreshContextSubmitProfileAsync) + .mockImplementation(async (ctx: SubmissionContext, _archiveProfile: string) => { + ctx.profile = { + language: 'en-US', + appleId: 'other-test@example.com', + ascAppId: '87654321', + }; + return ctx; + }); + + process.env.EXPO_APPLE_APP_SPECIFIC_PASSWORD = 'supersecret'; + + const ctx = await createSubmissionContextAsync({ + platform: Platform.IOS, + projectDir: testProject.projectRoot, + archiveFlags: {}, + profile: { + language: 'en-US', + appleId: 'test@example.com', + ascAppId: '12345678', + }, + nonInteractive: false, + actor: mockJester, + graphqlClient, + analytics, + exp: testProject.appJSON.expo, + projectId, + vcsClient, + specifiedProfile: 'specificProfile', + }); + const command = new IosSubmitCommand(ctx); + await command.runAsync(); + + expect(SubmissionMutation.createIosSubmissionAsync).toHaveBeenCalledWith(graphqlClient, { + appId: projectId, + submittedBuildId: selectedBuild.id, + config: { + appleIdUsername: 'test@example.com', + appleAppSpecificPassword: 'supersecret', + ascAppIdentifier: '12345678', + }, + archiveSource: undefined, + }); + + delete process.env.EXPO_APPLE_APP_SPECIFIC_PASSWORD; + }); + }); }); }); From dc25b207b9ffcb769c54a8d62d546dbb5f84723a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanis=C5=82aw=20Chmiela?= Date: Fri, 27 Oct 2023 12:53:07 +0200 Subject: [PATCH 079/105] [eas-cli] Add `buildArtifactsUrl` to `eas-cli build:view --json` (#2102) # Why It's nice to be able to download both application archive and "build artifact". # How Added `buildArtifactsUrl` to GraphQL query. It contains the thing I'm looking for. # Test Plan Ran `easd build:view 7bab0c66-d917-4873-9241-c5fa0b01dec1 --json` and confirmed it has the new field. --- CHANGELOG.md | 2 + packages/eas-cli/graphql.schema.json | 56 ++++++++++++++++++--- packages/eas-cli/src/graphql/generated.ts | 27 ++++++---- packages/eas-cli/src/graphql/types/Build.ts | 1 + 4 files changed, 70 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9dd82e33bf..3a4c54cf19 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ› Bug fixes +- Added `buildArtifactsUrl` to `eas-cli build:view --json` output. ([#2102](https://github.com/expo/eas-cli/pull/2102) by [@sjchmiela](https://github.com/sjchmiela)) + ### 🧹 Chores ## [5.5.0](https://github.com/expo/eas-cli/releases/tag/v5.5.0) - 2023-10-25 diff --git a/packages/eas-cli/graphql.schema.json b/packages/eas-cli/graphql.schema.json index 2db401d994..dedfc9ed67 100644 --- a/packages/eas-cli/graphql.schema.json +++ b/packages/eas-cli/graphql.schema.json @@ -15331,6 +15331,38 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "developmentClient", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "distributions", + "description": null, + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "DistributionType", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "platforms", "description": null, @@ -17702,13 +17734,13 @@ "name": "IOS_INTEL_LARGE", "description": null, "isDeprecated": true, - "deprecationReason": "Use IOS_INTEL_MEDIUM instead" + "deprecationReason": "No longer available. Use IOS_M_LARGE instead." }, { "name": "IOS_INTEL_MEDIUM", "description": null, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "No longer available. Use IOS_M_MEDIUM instead." }, { "name": "IOS_LARGE", @@ -17725,8 +17757,8 @@ { "name": "IOS_M1_MEDIUM", "description": null, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "Use IOS_M_MEDIUM instead" }, { "name": "IOS_MEDIUM", @@ -22250,7 +22282,7 @@ }, { "name": "searchRepositories", - "description": null, + "description": "@deprecated", "args": [ { "name": "githubAppInstallationId", @@ -23628,6 +23660,18 @@ }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "generateGitHubUserAccessToken", + "description": "Generate a GitHub User Access Token", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, diff --git a/packages/eas-cli/src/graphql/generated.ts b/packages/eas-cli/src/graphql/generated.ts index 5450516d58..aee48bc6dd 100644 --- a/packages/eas-cli/src/graphql/generated.ts +++ b/packages/eas-cli/src/graphql/generated.ts @@ -2205,6 +2205,8 @@ export type BuildFilter = { export type BuildFilterInput = { channel?: InputMaybe; + developmentClient?: InputMaybe; + distributions?: InputMaybe>; platforms?: InputMaybe>; releaseChannel?: InputMaybe; }; @@ -2568,12 +2570,14 @@ export enum BuildResourceClass { AndroidLarge = 'ANDROID_LARGE', AndroidMedium = 'ANDROID_MEDIUM', IosDefault = 'IOS_DEFAULT', - /** @deprecated Use IOS_INTEL_MEDIUM instead */ + /** @deprecated No longer available. Use IOS_M_LARGE instead. */ IosIntelLarge = 'IOS_INTEL_LARGE', + /** @deprecated No longer available. Use IOS_M_MEDIUM instead. */ IosIntelMedium = 'IOS_INTEL_MEDIUM', IosLarge = 'IOS_LARGE', /** @deprecated Use IOS_M_MEDIUM instead */ IosM1Large = 'IOS_M1_LARGE', + /** @deprecated Use IOS_M_MEDIUM instead */ IosM1Medium = 'IOS_M1_MEDIUM', IosMedium = 'IOS_MEDIUM', IosMLarge = 'IOS_M_LARGE', @@ -3239,6 +3243,7 @@ export type GitHubAppQuery = { environment: GitHubAppEnvironment; installation: GitHubAppInstallation; name: Scalars['String']; + /** @deprecated */ searchRepositories: GitHubRepositoryPaginationResult; }; @@ -3426,6 +3431,8 @@ export type GitHubUserMutation = { __typename?: 'GitHubUserMutation'; /** Delete a GitHub User by ID */ deleteGitHubUser: DeleteGitHubUserResult; + /** Generate a GitHub User Access Token */ + generateGitHubUserAccessToken?: Maybe; }; @@ -6380,7 +6387,7 @@ export type CreateAndroidBuildMutationVariables = Exact<{ }>; -export type CreateAndroidBuildMutation = { __typename?: 'RootMutation', build: { __typename?: 'BuildMutation', createAndroidBuild: { __typename?: 'CreateBuildResult', build: { __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } }, deprecationInfo?: { __typename?: 'EASBuildDeprecationInfo', type: EasBuildDeprecationInfoType, message: string } | null } } }; +export type CreateAndroidBuildMutation = { __typename?: 'RootMutation', build: { __typename?: 'BuildMutation', createAndroidBuild: { __typename?: 'CreateBuildResult', build: { __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null, buildArtifactsUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } }, deprecationInfo?: { __typename?: 'EASBuildDeprecationInfo', type: EasBuildDeprecationInfoType, message: string } | null } } }; export type CreateIosBuildMutationVariables = Exact<{ appId: Scalars['ID']; @@ -6390,7 +6397,7 @@ export type CreateIosBuildMutationVariables = Exact<{ }>; -export type CreateIosBuildMutation = { __typename?: 'RootMutation', build: { __typename?: 'BuildMutation', createIosBuild: { __typename?: 'CreateBuildResult', build: { __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } }, deprecationInfo?: { __typename?: 'EASBuildDeprecationInfo', type: EasBuildDeprecationInfoType, message: string } | null } } }; +export type CreateIosBuildMutation = { __typename?: 'RootMutation', build: { __typename?: 'BuildMutation', createIosBuild: { __typename?: 'CreateBuildResult', build: { __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null, buildArtifactsUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } }, deprecationInfo?: { __typename?: 'EASBuildDeprecationInfo', type: EasBuildDeprecationInfoType, message: string } | null } } }; export type UpdateBuildMetadataMutationVariables = Exact<{ buildId: Scalars['ID']; @@ -6398,7 +6405,7 @@ export type UpdateBuildMetadataMutationVariables = Exact<{ }>; -export type UpdateBuildMetadataMutation = { __typename?: 'RootMutation', build: { __typename?: 'BuildMutation', updateBuildMetadata: { __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } } } }; +export type UpdateBuildMetadataMutation = { __typename?: 'RootMutation', build: { __typename?: 'BuildMutation', updateBuildMetadata: { __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null, buildArtifactsUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } } } }; export type RetryIosBuildMutationVariables = Exact<{ buildId: Scalars['ID']; @@ -6406,7 +6413,7 @@ export type RetryIosBuildMutationVariables = Exact<{ }>; -export type RetryIosBuildMutation = { __typename?: 'RootMutation', build: { __typename?: 'BuildMutation', retryIosBuild: { __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } } } }; +export type RetryIosBuildMutation = { __typename?: 'RootMutation', build: { __typename?: 'BuildMutation', retryIosBuild: { __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null, buildArtifactsUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } } } }; export type CreateEnvironmentSecretForAccountMutationVariables = Exact<{ input: CreateEnvironmentSecretInput; @@ -6574,14 +6581,14 @@ export type BuildsByIdQueryVariables = Exact<{ }>; -export type BuildsByIdQuery = { __typename?: 'RootQuery', builds: { __typename?: 'BuildQuery', byId: { __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } } } }; +export type BuildsByIdQuery = { __typename?: 'RootQuery', builds: { __typename?: 'BuildQuery', byId: { __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null, buildArtifactsUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } } } }; export type BuildsWithSubmissionsByIdQueryVariables = Exact<{ buildId: Scalars['ID']; }>; -export type BuildsWithSubmissionsByIdQuery = { __typename?: 'RootQuery', builds: { __typename?: 'BuildQuery', byId: { __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, submissions: Array<{ __typename?: 'Submission', id: string, status: SubmissionStatus, platform: AppPlatform, logsUrl?: string | null, app: { __typename?: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } }, androidConfig?: { __typename?: 'AndroidSubmissionConfig', applicationIdentifier?: string | null, track: SubmissionAndroidTrack, releaseStatus?: SubmissionAndroidReleaseStatus | null, rollout?: number | null } | null, iosConfig?: { __typename?: 'IosSubmissionConfig', ascAppIdentifier: string, appleIdUsername?: string | null } | null, error?: { __typename?: 'SubmissionError', errorCode?: string | null, message?: string | null } | null }>, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } } } }; +export type BuildsWithSubmissionsByIdQuery = { __typename?: 'RootQuery', builds: { __typename?: 'BuildQuery', byId: { __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, submissions: Array<{ __typename?: 'Submission', id: string, status: SubmissionStatus, platform: AppPlatform, logsUrl?: string | null, app: { __typename?: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } }, androidConfig?: { __typename?: 'AndroidSubmissionConfig', applicationIdentifier?: string | null, track: SubmissionAndroidTrack, releaseStatus?: SubmissionAndroidReleaseStatus | null, rollout?: number | null } | null, iosConfig?: { __typename?: 'IosSubmissionConfig', ascAppIdentifier: string, appleIdUsername?: string | null } | null, error?: { __typename?: 'SubmissionError', errorCode?: string | null, message?: string | null } | null }>, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null, buildArtifactsUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } } } }; export type ViewBuildsOnAppQueryVariables = Exact<{ appId: Scalars['String']; @@ -6591,7 +6598,7 @@ export type ViewBuildsOnAppQueryVariables = Exact<{ }>; -export type ViewBuildsOnAppQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byId: { __typename?: 'App', id: string, builds: Array<{ __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } }> } } }; +export type ViewBuildsOnAppQuery = { __typename?: 'RootQuery', app: { __typename?: 'AppQuery', byId: { __typename?: 'App', id: string, builds: Array<{ __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null, buildArtifactsUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } }> } } }; export type ViewUpdateChannelOnAppQueryVariables = Exact<{ appId: Scalars['String']; @@ -6733,9 +6740,9 @@ export type AccountFragment = { __typename?: 'Account', id: string, name: string export type AppFragment = { __typename?: 'App', id: string, fullName: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string, ownerUserActor?: { __typename?: 'SSOUser', id: string, username: string } | { __typename?: 'User', id: string, username: string } | null, users: Array<{ __typename?: 'UserPermission', role: Role, actor: { __typename?: 'Robot', id: string } | { __typename?: 'SSOUser', id: string } | { __typename?: 'User', id: string } }> } }; -export type BuildFragment = { __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } }; +export type BuildFragment = { __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null, buildArtifactsUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } }; -export type BuildWithSubmissionsFragment = { __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, submissions: Array<{ __typename?: 'Submission', id: string, status: SubmissionStatus, platform: AppPlatform, logsUrl?: string | null, app: { __typename?: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } }, androidConfig?: { __typename?: 'AndroidSubmissionConfig', applicationIdentifier?: string | null, track: SubmissionAndroidTrack, releaseStatus?: SubmissionAndroidReleaseStatus | null, rollout?: number | null } | null, iosConfig?: { __typename?: 'IosSubmissionConfig', ascAppIdentifier: string, appleIdUsername?: string | null } | null, error?: { __typename?: 'SubmissionError', errorCode?: string | null, message?: string | null } | null }>, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } }; +export type BuildWithSubmissionsFragment = { __typename?: 'Build', id: string, status: BuildStatus, platform: AppPlatform, channel?: string | null, releaseChannel?: string | null, distribution?: DistributionType | null, iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null, buildProfile?: string | null, sdkVersion?: string | null, appVersion?: string | null, appBuildVersion?: string | null, runtimeVersion?: string | null, gitCommitHash?: string | null, gitCommitMessage?: string | null, initialQueuePosition?: number | null, queuePosition?: number | null, estimatedWaitTimeLeftSeconds?: number | null, priority: BuildPriority, createdAt: any, updatedAt: any, message?: string | null, completedAt?: any | null, resourceClass: BuildResourceClass, expirationDate?: any | null, submissions: Array<{ __typename?: 'Submission', id: string, status: SubmissionStatus, platform: AppPlatform, logsUrl?: string | null, app: { __typename?: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } }, androidConfig?: { __typename?: 'AndroidSubmissionConfig', applicationIdentifier?: string | null, track: SubmissionAndroidTrack, releaseStatus?: SubmissionAndroidReleaseStatus | null, rollout?: number | null } | null, iosConfig?: { __typename?: 'IosSubmissionConfig', ascAppIdentifier: string, appleIdUsername?: string | null } | null, error?: { __typename?: 'SubmissionError', errorCode?: string | null, message?: string | null } | null }>, error?: { __typename?: 'BuildError', errorCode: string, message: string, docsUrl?: string | null } | null, artifacts?: { __typename?: 'BuildArtifacts', buildUrl?: string | null, xcodeBuildLogsUrl?: string | null, applicationArchiveUrl?: string | null, buildArtifactsUrl?: string | null } | null, initiatingActor?: { __typename: 'Robot', id: string, displayName: string } | { __typename: 'SSOUser', id: string, displayName: string } | { __typename: 'User', id: string, displayName: string } | null, project: { __typename: 'App', id: string, name: string, slug: string, ownerAccount: { __typename?: 'Account', id: string, name: string } } | { __typename: 'Snack', id: string, name: string, slug: string } }; export type EnvironmentSecretFragment = { __typename?: 'EnvironmentSecret', id: string, name: string, type: EnvironmentSecretType, createdAt: any }; diff --git a/packages/eas-cli/src/graphql/types/Build.ts b/packages/eas-cli/src/graphql/types/Build.ts index 1fe2b0df0f..4f71747d7d 100644 --- a/packages/eas-cli/src/graphql/types/Build.ts +++ b/packages/eas-cli/src/graphql/types/Build.ts @@ -17,6 +17,7 @@ export const BuildFragmentNode = gql` buildUrl xcodeBuildLogsUrl applicationArchiveUrl + buildArtifactsUrl } initiatingActor { __typename From d2bb189cf3c5e9c09076620acb840791ed76b296 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanis=C5=82aw=20Chmiela?= Date: Fri, 27 Oct 2023 13:25:22 +0200 Subject: [PATCH 080/105] v5.6.0 --- lerna.json | 2 +- packages/eas-cli/README.md | 114 +++++++++++++++++----------------- packages/eas-cli/package.json | 2 +- 3 files changed, 59 insertions(+), 59 deletions(-) diff --git a/lerna.json b/lerna.json index 31668b0945..762446c0d3 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "npmClient": "yarn", "useWorkspaces": true, - "version": "5.5.0", + "version": "5.6.0", "$schema": "node_modules/lerna/schemas/lerna-schema.json" } diff --git a/packages/eas-cli/README.md b/packages/eas-cli/README.md index 697a98a262..dbbf6e9d48 100644 --- a/packages/eas-cli/README.md +++ b/packages/eas-cli/README.md @@ -135,7 +135,7 @@ ALIASES $ eas login ``` -_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/account/login.ts)_ +_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/account/login.ts)_ ## `eas account:logout` @@ -152,7 +152,7 @@ ALIASES $ eas logout ``` -_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/account/logout.ts)_ +_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/account/logout.ts)_ ## `eas account:view` @@ -169,7 +169,7 @@ ALIASES $ eas whoami ``` -_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/account/view.ts)_ +_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/account/view.ts)_ ## `eas analytics [STATUS]` @@ -183,7 +183,7 @@ DESCRIPTION display or change analytics settings ``` -_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/analytics.ts)_ +_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/analytics.ts)_ ## `eas autocomplete [SHELL]` @@ -233,7 +233,7 @@ DESCRIPTION create a branch ``` -_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/branch/create.ts)_ +_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/branch/create.ts)_ ## `eas branch:delete [NAME]` @@ -254,7 +254,7 @@ DESCRIPTION delete a branch ``` -_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/branch/delete.ts)_ +_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/branch/delete.ts)_ ## `eas branch:list` @@ -274,7 +274,7 @@ DESCRIPTION list all branches ``` -_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/branch/list.ts)_ +_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/branch/list.ts)_ ## `eas branch:rename` @@ -294,7 +294,7 @@ DESCRIPTION rename a branch ``` -_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/branch/rename.ts)_ +_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/branch/rename.ts)_ ## `eas branch:view [NAME]` @@ -317,7 +317,7 @@ DESCRIPTION view a branch ``` -_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/branch/view.ts)_ +_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/branch/view.ts)_ ## `eas build` @@ -347,7 +347,7 @@ DESCRIPTION start a build ``` -_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/index.ts)_ +_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/index.ts)_ ## `eas build:cancel [BUILD_ID]` @@ -364,7 +364,7 @@ DESCRIPTION cancel a build ``` -_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/cancel.ts)_ +_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/cancel.ts)_ ## `eas build:configure` @@ -381,7 +381,7 @@ DESCRIPTION configure the project to support EAS Build ``` -_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/configure.ts)_ +_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/configure.ts)_ ## `eas build:inspect` @@ -416,7 +416,7 @@ DESCRIPTION inspect the state of the project at specific build stages, useful for troubleshooting ``` -_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/inspect.ts)_ +_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/inspect.ts)_ ## `eas build:list` @@ -454,7 +454,7 @@ DESCRIPTION list all builds for your project ``` -_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/list.ts)_ +_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/list.ts)_ ## `eas build:resign` @@ -480,7 +480,7 @@ DESCRIPTION re-sign a build archive ``` -_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/resign.ts)_ +_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/resign.ts)_ ## `eas build:run` @@ -504,7 +504,7 @@ DESCRIPTION run simulator/emulator builds from eas-cli ``` -_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/run.ts)_ +_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/run.ts)_ ## `eas build:submit` @@ -553,7 +553,7 @@ DESCRIPTION get the latest version from EAS servers ``` -_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/version/get.ts)_ +_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/version/get.ts)_ ## `eas build:version:set` @@ -572,7 +572,7 @@ DESCRIPTION update version of an app ``` -_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/version/set.ts)_ +_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/version/set.ts)_ ## `eas build:version:sync` @@ -591,7 +591,7 @@ DESCRIPTION update a version in native code with a value stored on EAS servers ``` -_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/version/sync.ts)_ +_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/version/sync.ts)_ ## `eas build:view [BUILD_ID]` @@ -608,7 +608,7 @@ DESCRIPTION view a build for your project ``` -_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/build/view.ts)_ +_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/view.ts)_ ## `eas channel:create [NAME]` @@ -629,7 +629,7 @@ DESCRIPTION create a channel ``` -_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/channel/create.ts)_ +_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/channel/create.ts)_ ## `eas channel:edit [NAME]` @@ -651,7 +651,7 @@ DESCRIPTION point a channel at a new branch ``` -_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/channel/edit.ts)_ +_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/channel/edit.ts)_ ## `eas channel:list` @@ -671,7 +671,7 @@ DESCRIPTION list all channels ``` -_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/channel/list.ts)_ +_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/channel/list.ts)_ ## `eas channel:rollout [CHANNEL]` @@ -703,7 +703,7 @@ DESCRIPTION Roll a new branch out on a channel incrementally. ``` -_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/channel/rollout.ts)_ +_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/channel/rollout.ts)_ ## `eas channel:view [NAME]` @@ -726,7 +726,7 @@ DESCRIPTION view a channel ``` -_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/channel/view.ts)_ +_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/channel/view.ts)_ ## `eas config` @@ -747,7 +747,7 @@ DESCRIPTION display project configuration (app.json + eas.json) ``` -_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/config.ts)_ +_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/config.ts)_ ## `eas credentials` @@ -764,7 +764,7 @@ DESCRIPTION manage credentials ``` -_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/credentials.ts)_ +_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/credentials.ts)_ ## `eas device:create` @@ -778,7 +778,7 @@ DESCRIPTION register new Apple Devices to use for internal distribution ``` -_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/device/create.ts)_ +_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/device/create.ts)_ ## `eas device:delete` @@ -798,7 +798,7 @@ DESCRIPTION remove a registered device from your account ``` -_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/device/delete.ts)_ +_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/device/delete.ts)_ ## `eas device:list` @@ -819,7 +819,7 @@ DESCRIPTION list all registered devices for your account ``` -_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/device/list.ts)_ +_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/device/list.ts)_ ## `eas device:rename` @@ -840,7 +840,7 @@ DESCRIPTION rename a registered device ``` -_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/device/rename.ts)_ +_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/device/rename.ts)_ ## `eas device:view [UDID]` @@ -854,7 +854,7 @@ DESCRIPTION view a device for your project ``` -_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/device/view.ts)_ +_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/device/view.ts)_ ## `eas diagnostics` @@ -868,7 +868,7 @@ DESCRIPTION display environment info ``` -_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/diagnostics.ts)_ +_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/diagnostics.ts)_ ## `eas help [COMMAND]` @@ -956,7 +956,7 @@ DESCRIPTION validate the local store configuration ``` -_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/metadata/lint.ts)_ +_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/metadata/lint.ts)_ ## `eas metadata:pull` @@ -973,7 +973,7 @@ DESCRIPTION generate the local store configuration from the app stores ``` -_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/metadata/pull.ts)_ +_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/metadata/pull.ts)_ ## `eas metadata:push` @@ -990,7 +990,7 @@ DESCRIPTION sync the local store configuration to the app stores ``` -_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/metadata/push.ts)_ +_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/metadata/push.ts)_ ## `eas open` @@ -1004,7 +1004,7 @@ DESCRIPTION open the project page in a web browser ``` -_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/open.ts)_ +_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/open.ts)_ ## `eas project:info` @@ -1018,7 +1018,7 @@ DESCRIPTION information about the current project ``` -_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/project/info.ts)_ +_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/project/info.ts)_ ## `eas project:init` @@ -1040,7 +1040,7 @@ ALIASES $ eas init ``` -_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/project/init.ts)_ +_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/project/init.ts)_ ## `eas secret:create` @@ -1063,7 +1063,7 @@ DESCRIPTION create an environment secret on the current project or owner account ``` -_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/secret/create.ts)_ +_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/secret/create.ts)_ ## `eas secret:delete` @@ -1081,7 +1081,7 @@ DESCRIPTION delete an environment secret by ID ``` -_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/secret/delete.ts)_ +_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/secret/delete.ts)_ ## `eas secret:list` @@ -1095,7 +1095,7 @@ DESCRIPTION list environment secrets available for your current app ``` -_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/secret/list.ts)_ +_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/secret/list.ts)_ ## `eas secret:push` @@ -1115,7 +1115,7 @@ DESCRIPTION read environment secrets from env file and store on the server ``` -_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/secret/push.ts)_ +_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/secret/push.ts)_ ## `eas submit` @@ -1145,7 +1145,7 @@ ALIASES $ eas build:submit ``` -_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/submit.ts)_ +_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/submit.ts)_ ## `eas update` @@ -1179,7 +1179,7 @@ DESCRIPTION publish an update group ``` -_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/update/index.ts)_ +_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/update/index.ts)_ ## `eas update:configure` @@ -1197,7 +1197,7 @@ DESCRIPTION configure the project to support EAS Update ``` -_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/update/configure.ts)_ +_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/update/configure.ts)_ ## `eas update:delete GROUPID` @@ -1218,7 +1218,7 @@ DESCRIPTION delete all the updates in an update group ``` -_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/update/delete.ts)_ +_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/update/delete.ts)_ ## `eas update:list` @@ -1240,7 +1240,7 @@ DESCRIPTION view the recent updates ``` -_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/update/list.ts)_ +_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/update/list.ts)_ ## `eas update:republish` @@ -1267,7 +1267,7 @@ DESCRIPTION roll back to an existing update ``` -_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/update/republish.ts)_ +_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/update/republish.ts)_ ## `eas update:roll-back-to-embedded` @@ -1294,7 +1294,7 @@ DESCRIPTION roll back to the embedded update ``` -_See code: [src/commands/update/roll-back-to-embedded.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts)_ +_See code: [src/commands/update/roll-back-to-embedded.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts)_ ## `eas update:rollback` @@ -1313,7 +1313,7 @@ DESCRIPTION roll back to an embedded update or an existing update ``` -_See code: [src/commands/update/rollback.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/update/rollback.ts)_ +_See code: [src/commands/update/rollback.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/update/rollback.ts)_ ## `eas update:view GROUPID` @@ -1333,7 +1333,7 @@ DESCRIPTION update group details ``` -_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/update/view.ts)_ +_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/update/view.ts)_ ## `eas webhook:create` @@ -1354,7 +1354,7 @@ DESCRIPTION create a webhook ``` -_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/webhook/create.ts)_ +_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/webhook/create.ts)_ ## `eas webhook:delete [ID]` @@ -1374,7 +1374,7 @@ DESCRIPTION delete a webhook ``` -_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/webhook/delete.ts)_ +_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/webhook/delete.ts)_ ## `eas webhook:list` @@ -1392,7 +1392,7 @@ DESCRIPTION list webhooks ``` -_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/webhook/list.ts)_ +_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/webhook/list.ts)_ ## `eas webhook:update` @@ -1414,7 +1414,7 @@ DESCRIPTION update a webhook ``` -_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/webhook/update.ts)_ +_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/webhook/update.ts)_ ## `eas webhook:view ID` @@ -1431,7 +1431,7 @@ DESCRIPTION view a webhook ``` -_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.5.0/packages/eas-cli/src/commands/webhook/view.ts)_ +_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/webhook/view.ts)_ ## `eas whoami` diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index bddf6d1731..5727952ec6 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -1,7 +1,7 @@ { "name": "eas-cli", "description": "EAS command line tool", - "version": "5.5.0", + "version": "5.6.0", "author": "Expo ", "bin": { "eas": "./bin/run" From 335fb1f55e1403eba5f3b9ea837c63647039da6c Mon Sep 17 00:00:00 2001 From: Expo CI Date: Fri, 27 Oct 2023 11:32:31 +0000 Subject: [PATCH 081/105] update CHANGELOG.md --- CHANGELOG.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a4c54cf19..cc91ba14a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,14 +8,20 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features +### πŸ› Bug fixes + +### 🧹 Chores + +## [5.6.0](https://github.com/expo/eas-cli/releases/tag/v5.6.0) - 2023-10-27 + +### πŸŽ‰ New features + - Use corresponding submit profile when selecting build from EAS. ([#2101](https://github.com/expo/eas-cli/pull/2101) by [@radoslawkrzemien](https://github.com/radoslawkrzemien)) ### πŸ› Bug fixes - Added `buildArtifactsUrl` to `eas-cli build:view --json` output. ([#2102](https://github.com/expo/eas-cli/pull/2102) by [@sjchmiela](https://github.com/sjchmiela)) -### 🧹 Chores - ## [5.5.0](https://github.com/expo/eas-cli/releases/tag/v5.5.0) - 2023-10-25 ### πŸŽ‰ New features From 2600805da280780f2a0436bc03c20e8f7d5fac10 Mon Sep 17 00:00:00 2001 From: Evan Bacon Date: Mon, 30 Oct 2023 09:36:50 -0700 Subject: [PATCH 082/105] Add EXPO_APPLE_TEAM_ID and EXPO_APPLE_PROVIDER_ID support (#2091) --- CHANGELOG.md | 1 + .../eas-cli/src/credentials/ios/appstore/authenticate.ts | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc91ba14a6..c967b9f342 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features - Add account type to the items in the prompt to select project owner. ([#2083](https://github.com/expo/eas-cli/pull/2083) by [@alanjhughes](https://github.com/alanjhughes)) +- Add `EXPO_APPLE_TEAM_ID` and `EXPO_APPLE_PROVIDER_ID` support. ([#2091](https://github.com/expo/eas-cli/pull/2091) by [@EvanBacon](https://github.com/EvanBacon)) - Gate roll back to embedded to expo-updates >= 0.19.0. ([#2094](https://github.com/expo/eas-cli/pull/2094) by [@wschurman](https://github.com/wschurman)) ### πŸ› Bug fixes diff --git a/packages/eas-cli/src/credentials/ios/appstore/authenticate.ts b/packages/eas-cli/src/credentials/ios/appstore/authenticate.ts index 6bddc2d41a..b81a3e66f4 100644 --- a/packages/eas-cli/src/credentials/ios/appstore/authenticate.ts +++ b/packages/eas-cli/src/credentials/ios/appstore/authenticate.ts @@ -8,6 +8,7 @@ import { } from '@expo/apple-utils'; import assert from 'assert'; import chalk from 'chalk'; +import { int } from 'getenv'; import Log from '../../../log'; import { toggleConfirmAsync } from '../../../prompts'; @@ -188,7 +189,10 @@ async function authenticateAsUserAsync(options: Options = {}): Promise const authState = await loginAsync( { cookies: options.cookies, - teamId: options.teamId, + teamId: options.teamId ?? process.env.EXPO_APPLE_TEAM_ID, + providerId: process.env.EXPO_APPLE_PROVIDER_ID + ? int(process.env.EXPO_APPLE_PROVIDER_ID) + : undefined, }, { // TODO: Provide a way to disable this for users who want to mix and match teams / providers. From f8cfa009c110ec32001e4150b8fc895190e1320c Mon Sep 17 00:00:00 2001 From: Will Schurman Date: Tue, 31 Oct 2023 14:20:51 -0700 Subject: [PATCH 083/105] [eas-cli] Add link to SDK upgrade page for SDK-gated command error (#2106) --- CHANGELOG.md | 2 ++ packages/eas-cli/src/project/projectUtils.ts | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c967b9f342..978269f05a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ This is the log of notable changes to EAS CLI and related packages. ### 🧹 Chores +- Add link to SDK upgrade page for SDK-gated command error. ([#2106](https://github.com/expo/eas-cli/pull/2106) by [@wschurman](https://github.com/wschurman)) + ## [5.6.0](https://github.com/expo/eas-cli/releases/tag/v5.6.0) - 2023-10-27 ### πŸŽ‰ New features diff --git a/packages/eas-cli/src/project/projectUtils.ts b/packages/eas-cli/src/project/projectUtils.ts index 9fbe088050..8fe2aa62d0 100644 --- a/packages/eas-cli/src/project/projectUtils.ts +++ b/packages/eas-cli/src/project/projectUtils.ts @@ -9,7 +9,7 @@ import { getEASUpdateURL } from '../api'; import { ExpoGraphqlClient } from '../commandUtils/context/contextUtils/createGraphqlClient'; import { AccountFragment, AppPrivacy } from '../graphql/generated'; import { AppQuery } from '../graphql/queries/AppQuery'; -import Log from '../log'; +import Log, { learnMore } from '../log'; import { Actor } from '../user/User'; import { expoCommandAsync } from '../utils/expoCli'; @@ -122,7 +122,9 @@ export async function enforceRollBackToEmbeddedUpdateSupportAsync( } throw new Error( - 'The expo-updates package must have a version >= 0.19.0 to use roll back to embedded, which corresponds to Expo SDK 50 or greater.' + `The expo-updates package must have a version >= 0.19.0 to use roll back to embedded, which corresponds to Expo SDK 50 or greater. ${learnMore( + 'https://docs.expo.dev/workflow/upgrading-expo-sdk-walkthrough/' + )}` ); } From 9f4e39b21fa4f9716213b6d3acb5b12b661e17b4 Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Wed, 8 Nov 2023 12:29:09 +0100 Subject: [PATCH 084/105] [ENG-10566][eas-cli] add `selectedImage` and `customNodeVersion` to build metadata (#2113) * [eas-cli] add `selectedImage` to build metadata * bump eas-build-job * update gql schema * update CHANGELOG.md --- CHANGELOG.md | 1 + packages/eas-cli/graphql.schema.json | 741 +++++++++++++++++++--- packages/eas-cli/package.json | 2 +- packages/eas-cli/src/build/metadata.ts | 2 + packages/eas-cli/src/graphql/generated.ts | 84 ++- packages/eas-json/package.json | 2 +- yarn.lock | 16 +- 7 files changed, 747 insertions(+), 101 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 978269f05a..d4c80aa2b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ This is the log of notable changes to EAS CLI and related packages. ### 🧹 Chores - Add link to SDK upgrade page for SDK-gated command error. ([#2106](https://github.com/expo/eas-cli/pull/2106) by [@wschurman](https://github.com/wschurman)) +- Add `selectedImage` and `customNodeVersion` information to build metadata. ([#2113](https://github.com/expo/eas-cli/pull/2113) by [@szdziedzic](https://github.com/szdziedzic)) ## [5.6.0](https://github.com/expo/eas-cli/releases/tag/v5.6.0) - 2023-10-27 diff --git a/packages/eas-cli/graphql.schema.json b/packages/eas-cli/graphql.schema.json index dedfc9ed67..6b0ce2d649 100644 --- a/packages/eas-cli/graphql.schema.json +++ b/packages/eas-cli/graphql.schema.json @@ -14305,6 +14305,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "customNodeVersion", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "customWorkflowName", "description": null, @@ -14761,8 +14773,453 @@ "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "String", + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "retryDisabledReason", + "description": null, + "args": [ + { + "name": "newMode", + "description": null, + "type": { + "kind": "ENUM", + "name": "BuildMode", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "ENUM", + "name": "BuildRetryDisabledReason", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "runFromCI", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "runtimeVersion", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sdkVersion", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "selectedImage", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "BuildStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "submissions", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Submission", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "updatedAt", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "workerStartedAt", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "ActivityTimelineProjectActivity", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "BuildOrBuildJob", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "BuildAnnotation", + "description": null, + "fields": [ + { + "name": "buildPhase", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "exampleBuildLog", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "internalNotes", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "message", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "regexString", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "title", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "BuildAnnotationDataInput", + "description": null, + "fields": null, + "inputFields": [ + { + "name": "buildPhase", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "exampleBuildLog", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "internalNotes", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "message", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "regexString", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "title", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "BuildAnnotationFiltersInput", + "description": null, + "fields": null, + "inputFields": [ + { + "name": "buildPhases", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "BuildAnnotationMutation", + "description": null, + "fields": [ + { + "name": "createBuildAnnotation", + "description": "Create a Build Annotation", + "args": [ + { + "name": "buildAnnotationData", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "BuildAnnotationDataInput", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "BuildAnnotation", "ofType": null } }, @@ -14770,16 +15227,20 @@ "deprecationReason": null }, { - "name": "retryDisabledReason", - "description": null, + "name": "deleteBuildAnnotation", + "description": "Delete a Build Annotation", "args": [ { - "name": "newMode", + "name": "buildAnnotationId", "description": null, "type": { - "kind": "ENUM", - "name": "BuildMode", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } }, "defaultValue": null, "isDeprecated": false, @@ -14787,69 +15248,94 @@ } ], "type": { - "kind": "ENUM", - "name": "BuildRetryDisabledReason", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "runFromCI", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "runtimeVersion", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sdkVersion", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DeleteBuildAnnotationResult", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "status", - "description": null, - "args": [], + "name": "updateBuildAnnotation", + "description": "Update a Build Annotation", + "args": [ + { + "name": "buildAnnotationData", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "BuildAnnotationDataInput", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "buildAnnotationId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "ENUM", - "name": "BuildStatus", + "kind": "OBJECT", + "name": "BuildAnnotation", "ofType": null } }, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "BuildAnnotationsQuery", + "description": null, + "fields": [ { - "name": "submissions", - "description": null, - "args": [], + "name": "all", + "description": "View build annotations", + "args": [ + { + "name": "filters", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "BuildAnnotationFiltersInput", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { "kind": "NON_NULL", "name": null, @@ -14861,7 +15347,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "Submission", + "name": "BuildAnnotation", "ofType": null } } @@ -14871,47 +15357,41 @@ "deprecationReason": null }, { - "name": "updatedAt", - "description": null, - "args": [], + "name": "byId", + "description": "Find a build annotation by ID", + "args": [ + { + "name": "buildAnnotationId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "DateTime", + "kind": "OBJECT", + "name": "BuildAnnotation", "ofType": null } }, "isDeprecated": false, "deprecationReason": null - }, - { - "name": "workerStartedAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null } ], "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "ActivityTimelineProjectActivity", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "BuildOrBuildJob", - "ofType": null - } - ], + "interfaces": [], "enumValues": null, "possibleTypes": null }, @@ -16126,6 +16606,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "customNodeVersion", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "customWorkflowName", "description": null, @@ -16306,6 +16798,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "selectedImage", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "trackingContext", "description": null, @@ -19295,6 +19799,33 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "OBJECT", + "name": "DeleteBuildAnnotationResult", + "description": null, + "fields": [ + { + "name": "buildAnnotationId", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "OBJECT", "name": "DeleteDiscordUserResult", @@ -26878,6 +27409,12 @@ "description": null, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "NEWSLETTER_SIGNUP_LIST", + "description": null, + "isDeprecated": false, + "deprecationReason": null } ], "possibleTypes": null @@ -30327,6 +30864,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "buildAnnotation", + "description": "Mutations that create, update, and delete Build Annotations", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "BuildAnnotationMutation", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "buildJob", "description": "Mutations that modify an BuildJob", @@ -31029,6 +31582,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "buildAnnotations", + "description": "Top-level query object for querying annotations.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "BuildAnnotationsQuery", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "buildJobs", "description": null, diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index 5727952ec6..b44e04bda0 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -13,7 +13,7 @@ "@expo/config": "8.1.2", "@expo/config-plugins": "7.2.4", "@expo/config-types": "49.0.0", - "@expo/eas-build-job": "1.0.46", + "@expo/eas-build-job": "1.0.48", "@expo/eas-json": "5.5.0", "@expo/json-file": "8.2.37", "@expo/multipart-body-parser": "1.1.0", diff --git a/packages/eas-cli/src/build/metadata.ts b/packages/eas-cli/src/build/metadata.ts index 4b7b4359d5..b4d1240d1a 100644 --- a/packages/eas-cli/src/build/metadata.ts +++ b/packages/eas-cli/src/build/metadata.ts @@ -63,6 +63,8 @@ export async function collectMetadataAsync( customWorkflowName: ctx.customBuildConfigMetadata?.workflowName, developmentClient: ctx.developmentClient, requiredPackageManager: ctx.requiredPackageManager ?? undefined, + selectedImage: ctx.buildProfile.image, + customNodeVersion: ctx.buildProfile.node, }; return sanitizeMetadata(metadata); } diff --git a/packages/eas-cli/src/graphql/generated.ts b/packages/eas-cli/src/graphql/generated.ts index aee48bc6dd..f3cb437c16 100644 --- a/packages/eas-cli/src/graphql/generated.ts +++ b/packages/eas-cli/src/graphql/generated.ts @@ -2089,6 +2089,7 @@ export type Build = ActivityTimelineProjectActivity & BuildOrBuildJob & { childBuild?: Maybe; completedAt?: Maybe; createdAt: Scalars['DateTime']; + customNodeVersion?: Maybe; customWorkflowName?: Maybe; developmentClient?: Maybe; distribution?: Maybe; @@ -2137,6 +2138,7 @@ export type Build = ActivityTimelineProjectActivity & BuildOrBuildJob & { runFromCI?: Maybe; runtimeVersion?: Maybe; sdkVersion?: Maybe; + selectedImage?: Maybe; status: BuildStatus; submissions: Array; updatedAt: Scalars['DateTime']; @@ -2155,6 +2157,74 @@ export type BuildRetryDisabledReasonArgs = { newMode?: InputMaybe; }; +export type BuildAnnotation = { + __typename?: 'BuildAnnotation'; + buildPhase: Scalars['String']; + exampleBuildLog?: Maybe; + id: Scalars['ID']; + internalNotes?: Maybe; + message: Scalars['String']; + regexString: Scalars['String']; + title: Scalars['String']; +}; + +export type BuildAnnotationDataInput = { + buildPhase: Scalars['String']; + exampleBuildLog?: InputMaybe; + internalNotes?: InputMaybe; + message: Scalars['String']; + regexString: Scalars['String']; + title: Scalars['String']; +}; + +export type BuildAnnotationFiltersInput = { + buildPhases: Array; +}; + +export type BuildAnnotationMutation = { + __typename?: 'BuildAnnotationMutation'; + /** Create a Build Annotation */ + createBuildAnnotation: BuildAnnotation; + /** Delete a Build Annotation */ + deleteBuildAnnotation: DeleteBuildAnnotationResult; + /** Update a Build Annotation */ + updateBuildAnnotation: BuildAnnotation; +}; + + +export type BuildAnnotationMutationCreateBuildAnnotationArgs = { + buildAnnotationData: BuildAnnotationDataInput; +}; + + +export type BuildAnnotationMutationDeleteBuildAnnotationArgs = { + buildAnnotationId: Scalars['ID']; +}; + + +export type BuildAnnotationMutationUpdateBuildAnnotationArgs = { + buildAnnotationData: BuildAnnotationDataInput; + buildAnnotationId: Scalars['ID']; +}; + +export type BuildAnnotationsQuery = { + __typename?: 'BuildAnnotationsQuery'; + /** View build annotations */ + all: Array; + /** Find a build annotation by ID */ + byId: BuildAnnotation; +}; + + +export type BuildAnnotationsQueryAllArgs = { + filters?: InputMaybe; +}; + + +export type BuildAnnotationsQueryByIdArgs = { + buildAnnotationId: Scalars['ID']; +}; + export type BuildArtifact = { __typename?: 'BuildArtifact'; manifestPlistUrl?: Maybe; @@ -2310,6 +2380,7 @@ export type BuildMetadataInput = { channel?: InputMaybe; cliVersion?: InputMaybe; credentialsSource?: InputMaybe; + customNodeVersion?: InputMaybe; customWorkflowName?: InputMaybe; developmentClient?: InputMaybe; distribution?: InputMaybe; @@ -2325,6 +2396,7 @@ export type BuildMetadataInput = { runWithNoWaitFlag?: InputMaybe; runtimeVersion?: InputMaybe; sdkVersion?: InputMaybe; + selectedImage?: InputMaybe; trackingContext?: InputMaybe; username?: InputMaybe; workflow?: InputMaybe; @@ -2790,6 +2862,11 @@ export type DeleteAppleProvisioningProfileResult = { id: Scalars['ID']; }; +export type DeleteBuildAnnotationResult = { + __typename?: 'DeleteBuildAnnotationResult'; + buildAnnotationId: Scalars['ID']; +}; + export type DeleteDiscordUserResult = { __typename?: 'DeleteDiscordUserResult'; id: Scalars['ID']; @@ -3849,7 +3926,8 @@ export enum MailchimpAudience { export enum MailchimpTag { DevClientUsers = 'DEV_CLIENT_USERS', - EasMasterList = 'EAS_MASTER_LIST' + EasMasterList = 'EAS_MASTER_LIST', + NewsletterSignupList = 'NEWSLETTER_SIGNUP_LIST' } export type MailchimpTagPayload = { @@ -4349,6 +4427,8 @@ export type RootMutation = { asset: AssetMutation; /** Mutations that modify an EAS Build */ build: BuildMutation; + /** Mutations that create, update, and delete Build Annotations */ + buildAnnotation: BuildAnnotationMutation; /** Mutations that modify an BuildJob */ buildJob: BuildJobMutation; /** Mutations for Discord users */ @@ -4452,6 +4532,8 @@ export type RootQuery = { appleTeam: AppleTeamQuery; asset: AssetQuery; backgroundJobReceipt: BackgroundJobReceiptQuery; + /** Top-level query object for querying annotations. */ + buildAnnotations: BuildAnnotationsQuery; buildJobs: BuildJobQuery; buildOrBuildJob: BuildOrBuildJobQuery; /** Top-level query object for querying BuildPublicData publicly. */ diff --git a/packages/eas-json/package.json b/packages/eas-json/package.json index a3e05a40bf..c0486dbd80 100644 --- a/packages/eas-json/package.json +++ b/packages/eas-json/package.json @@ -6,7 +6,7 @@ "bugs": "https://github.com/expo/eas-cli/issues", "dependencies": { "@babel/code-frame": "7.18.6", - "@expo/eas-build-job": "1.0.39", + "@expo/eas-build-job": "1.0.48", "chalk": "4.1.2", "env-string": "1.0.1", "fs-extra": "10.1.0", diff --git a/yarn.lock b/yarn.lock index e2001e8cae..966ac55b1b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1245,18 +1245,10 @@ slugify "^1.3.4" sucrase "^3.20.0" -"@expo/eas-build-job@1.0.39": - version "1.0.39" - resolved "https://registry.yarnpkg.com/@expo/eas-build-job/-/eas-build-job-1.0.39.tgz#d3bc6cd50c499f07255bceeb9460e092a19505f7" - integrity sha512-OqCCxLx9HRMFQDiZvfpOfNmGhsTrV15IUOhmbp9iIa+uO/VyPpBvXqiA4ENCN9Jmf6yXtirIranCeJcm+jAuSA== - dependencies: - joi "^17.9.2" - semver "^7.5.4" - -"@expo/eas-build-job@1.0.46": - version "1.0.46" - resolved "https://registry.yarnpkg.com/@expo/eas-build-job/-/eas-build-job-1.0.46.tgz#e99c0c9f2065cfb91b9a382dedb2e14892e47076" - integrity sha512-f1KE3t8uvMKPSVVphXlJ70/zn5wMFB47yYM3orVZiirq2pd/0UfWYF5YiNktgEyGglxqmq3gNV06H9pEDTUJew== +"@expo/eas-build-job@1.0.48": + version "1.0.48" + resolved "https://registry.yarnpkg.com/@expo/eas-build-job/-/eas-build-job-1.0.48.tgz#fca70a6f15171ff1bd6f28021a4473b924f3c11e" + integrity sha512-44N9fKrur7xOtY8DnHcFEzJTPenOBUkfpNous4xziG8u58oXvlraiNaTSi++4EpFfsBS3U+jQAW9UMlJqfu8WA== dependencies: joi "^17.9.2" semver "^7.5.4" From c33334bbee73a692ebef15d115799d5a8c11e5d9 Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Wed, 8 Nov 2023 12:31:42 +0100 Subject: [PATCH 085/105] upgrade eas-cli-local-build-plugin to 1.0.48 --- packages/eas-cli/src/build/local.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eas-cli/src/build/local.ts b/packages/eas-cli/src/build/local.ts index 18f1ebbef6..eddaedcde9 100644 --- a/packages/eas-cli/src/build/local.ts +++ b/packages/eas-cli/src/build/local.ts @@ -6,7 +6,7 @@ import semver from 'semver'; import { ora } from '../ora'; const PLUGIN_PACKAGE_NAME = 'eas-cli-local-build-plugin'; -const PLUGIN_PACKAGE_VERSION = '1.0.44'; +const PLUGIN_PACKAGE_VERSION = '1.0.48'; export enum LocalBuildMode { /** From 1bdab637993d7fa3dde0d21d57a34ac29c9219e2 Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Wed, 8 Nov 2023 12:33:34 +0100 Subject: [PATCH 086/105] fix changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d4c80aa2b2..5d8de87df2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features +- Add `EXPO_APPLE_TEAM_ID` and `EXPO_APPLE_PROVIDER_ID` support. ([#2091](https://github.com/expo/eas-cli/pull/2091) by [@EvanBacon](https://github.com/EvanBacon)) + ### πŸ› Bug fixes ### 🧹 Chores @@ -30,7 +32,6 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features - Add account type to the items in the prompt to select project owner. ([#2083](https://github.com/expo/eas-cli/pull/2083) by [@alanjhughes](https://github.com/alanjhughes)) -- Add `EXPO_APPLE_TEAM_ID` and `EXPO_APPLE_PROVIDER_ID` support. ([#2091](https://github.com/expo/eas-cli/pull/2091) by [@EvanBacon](https://github.com/EvanBacon)) - Gate roll back to embedded to expo-updates >= 0.19.0. ([#2094](https://github.com/expo/eas-cli/pull/2094) by [@wschurman](https://github.com/wschurman)) ### πŸ› Bug fixes From 5815b8b3a8fca3a60c81bd3f19f12313c5e0bd6f Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Wed, 8 Nov 2023 12:34:03 +0100 Subject: [PATCH 087/105] v5.7.0 --- lerna.json | 2 +- packages/eas-cli/README.md | 114 ++++++++++++++++----------------- packages/eas-cli/package.json | 4 +- packages/eas-json/package.json | 2 +- 4 files changed, 61 insertions(+), 61 deletions(-) diff --git a/lerna.json b/lerna.json index 762446c0d3..7c6f296d20 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "npmClient": "yarn", "useWorkspaces": true, - "version": "5.6.0", + "version": "5.7.0", "$schema": "node_modules/lerna/schemas/lerna-schema.json" } diff --git a/packages/eas-cli/README.md b/packages/eas-cli/README.md index dbbf6e9d48..fde82b996e 100644 --- a/packages/eas-cli/README.md +++ b/packages/eas-cli/README.md @@ -135,7 +135,7 @@ ALIASES $ eas login ``` -_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/account/login.ts)_ +_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/account/login.ts)_ ## `eas account:logout` @@ -152,7 +152,7 @@ ALIASES $ eas logout ``` -_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/account/logout.ts)_ +_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/account/logout.ts)_ ## `eas account:view` @@ -169,7 +169,7 @@ ALIASES $ eas whoami ``` -_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/account/view.ts)_ +_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/account/view.ts)_ ## `eas analytics [STATUS]` @@ -183,7 +183,7 @@ DESCRIPTION display or change analytics settings ``` -_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/analytics.ts)_ +_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/analytics.ts)_ ## `eas autocomplete [SHELL]` @@ -233,7 +233,7 @@ DESCRIPTION create a branch ``` -_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/branch/create.ts)_ +_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/branch/create.ts)_ ## `eas branch:delete [NAME]` @@ -254,7 +254,7 @@ DESCRIPTION delete a branch ``` -_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/branch/delete.ts)_ +_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/branch/delete.ts)_ ## `eas branch:list` @@ -274,7 +274,7 @@ DESCRIPTION list all branches ``` -_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/branch/list.ts)_ +_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/branch/list.ts)_ ## `eas branch:rename` @@ -294,7 +294,7 @@ DESCRIPTION rename a branch ``` -_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/branch/rename.ts)_ +_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/branch/rename.ts)_ ## `eas branch:view [NAME]` @@ -317,7 +317,7 @@ DESCRIPTION view a branch ``` -_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/branch/view.ts)_ +_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/branch/view.ts)_ ## `eas build` @@ -347,7 +347,7 @@ DESCRIPTION start a build ``` -_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/index.ts)_ +_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/index.ts)_ ## `eas build:cancel [BUILD_ID]` @@ -364,7 +364,7 @@ DESCRIPTION cancel a build ``` -_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/cancel.ts)_ +_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/cancel.ts)_ ## `eas build:configure` @@ -381,7 +381,7 @@ DESCRIPTION configure the project to support EAS Build ``` -_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/configure.ts)_ +_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/configure.ts)_ ## `eas build:inspect` @@ -416,7 +416,7 @@ DESCRIPTION inspect the state of the project at specific build stages, useful for troubleshooting ``` -_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/inspect.ts)_ +_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/inspect.ts)_ ## `eas build:list` @@ -454,7 +454,7 @@ DESCRIPTION list all builds for your project ``` -_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/list.ts)_ +_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/list.ts)_ ## `eas build:resign` @@ -480,7 +480,7 @@ DESCRIPTION re-sign a build archive ``` -_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/resign.ts)_ +_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/resign.ts)_ ## `eas build:run` @@ -504,7 +504,7 @@ DESCRIPTION run simulator/emulator builds from eas-cli ``` -_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/run.ts)_ +_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/run.ts)_ ## `eas build:submit` @@ -553,7 +553,7 @@ DESCRIPTION get the latest version from EAS servers ``` -_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/version/get.ts)_ +_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/version/get.ts)_ ## `eas build:version:set` @@ -572,7 +572,7 @@ DESCRIPTION update version of an app ``` -_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/version/set.ts)_ +_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/version/set.ts)_ ## `eas build:version:sync` @@ -591,7 +591,7 @@ DESCRIPTION update a version in native code with a value stored on EAS servers ``` -_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/version/sync.ts)_ +_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/version/sync.ts)_ ## `eas build:view [BUILD_ID]` @@ -608,7 +608,7 @@ DESCRIPTION view a build for your project ``` -_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/build/view.ts)_ +_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/view.ts)_ ## `eas channel:create [NAME]` @@ -629,7 +629,7 @@ DESCRIPTION create a channel ``` -_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/channel/create.ts)_ +_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/channel/create.ts)_ ## `eas channel:edit [NAME]` @@ -651,7 +651,7 @@ DESCRIPTION point a channel at a new branch ``` -_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/channel/edit.ts)_ +_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/channel/edit.ts)_ ## `eas channel:list` @@ -671,7 +671,7 @@ DESCRIPTION list all channels ``` -_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/channel/list.ts)_ +_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/channel/list.ts)_ ## `eas channel:rollout [CHANNEL]` @@ -703,7 +703,7 @@ DESCRIPTION Roll a new branch out on a channel incrementally. ``` -_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/channel/rollout.ts)_ +_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/channel/rollout.ts)_ ## `eas channel:view [NAME]` @@ -726,7 +726,7 @@ DESCRIPTION view a channel ``` -_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/channel/view.ts)_ +_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/channel/view.ts)_ ## `eas config` @@ -747,7 +747,7 @@ DESCRIPTION display project configuration (app.json + eas.json) ``` -_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/config.ts)_ +_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/config.ts)_ ## `eas credentials` @@ -764,7 +764,7 @@ DESCRIPTION manage credentials ``` -_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/credentials.ts)_ +_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/credentials.ts)_ ## `eas device:create` @@ -778,7 +778,7 @@ DESCRIPTION register new Apple Devices to use for internal distribution ``` -_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/device/create.ts)_ +_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/device/create.ts)_ ## `eas device:delete` @@ -798,7 +798,7 @@ DESCRIPTION remove a registered device from your account ``` -_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/device/delete.ts)_ +_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/device/delete.ts)_ ## `eas device:list` @@ -819,7 +819,7 @@ DESCRIPTION list all registered devices for your account ``` -_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/device/list.ts)_ +_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/device/list.ts)_ ## `eas device:rename` @@ -840,7 +840,7 @@ DESCRIPTION rename a registered device ``` -_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/device/rename.ts)_ +_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/device/rename.ts)_ ## `eas device:view [UDID]` @@ -854,7 +854,7 @@ DESCRIPTION view a device for your project ``` -_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/device/view.ts)_ +_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/device/view.ts)_ ## `eas diagnostics` @@ -868,7 +868,7 @@ DESCRIPTION display environment info ``` -_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/diagnostics.ts)_ +_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/diagnostics.ts)_ ## `eas help [COMMAND]` @@ -956,7 +956,7 @@ DESCRIPTION validate the local store configuration ``` -_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/metadata/lint.ts)_ +_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/metadata/lint.ts)_ ## `eas metadata:pull` @@ -973,7 +973,7 @@ DESCRIPTION generate the local store configuration from the app stores ``` -_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/metadata/pull.ts)_ +_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/metadata/pull.ts)_ ## `eas metadata:push` @@ -990,7 +990,7 @@ DESCRIPTION sync the local store configuration to the app stores ``` -_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/metadata/push.ts)_ +_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/metadata/push.ts)_ ## `eas open` @@ -1004,7 +1004,7 @@ DESCRIPTION open the project page in a web browser ``` -_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/open.ts)_ +_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/open.ts)_ ## `eas project:info` @@ -1018,7 +1018,7 @@ DESCRIPTION information about the current project ``` -_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/project/info.ts)_ +_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/project/info.ts)_ ## `eas project:init` @@ -1040,7 +1040,7 @@ ALIASES $ eas init ``` -_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/project/init.ts)_ +_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/project/init.ts)_ ## `eas secret:create` @@ -1063,7 +1063,7 @@ DESCRIPTION create an environment secret on the current project or owner account ``` -_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/secret/create.ts)_ +_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/secret/create.ts)_ ## `eas secret:delete` @@ -1081,7 +1081,7 @@ DESCRIPTION delete an environment secret by ID ``` -_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/secret/delete.ts)_ +_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/secret/delete.ts)_ ## `eas secret:list` @@ -1095,7 +1095,7 @@ DESCRIPTION list environment secrets available for your current app ``` -_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/secret/list.ts)_ +_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/secret/list.ts)_ ## `eas secret:push` @@ -1115,7 +1115,7 @@ DESCRIPTION read environment secrets from env file and store on the server ``` -_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/secret/push.ts)_ +_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/secret/push.ts)_ ## `eas submit` @@ -1145,7 +1145,7 @@ ALIASES $ eas build:submit ``` -_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/submit.ts)_ +_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/submit.ts)_ ## `eas update` @@ -1179,7 +1179,7 @@ DESCRIPTION publish an update group ``` -_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/update/index.ts)_ +_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/update/index.ts)_ ## `eas update:configure` @@ -1197,7 +1197,7 @@ DESCRIPTION configure the project to support EAS Update ``` -_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/update/configure.ts)_ +_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/update/configure.ts)_ ## `eas update:delete GROUPID` @@ -1218,7 +1218,7 @@ DESCRIPTION delete all the updates in an update group ``` -_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/update/delete.ts)_ +_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/update/delete.ts)_ ## `eas update:list` @@ -1240,7 +1240,7 @@ DESCRIPTION view the recent updates ``` -_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/update/list.ts)_ +_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/update/list.ts)_ ## `eas update:republish` @@ -1267,7 +1267,7 @@ DESCRIPTION roll back to an existing update ``` -_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/update/republish.ts)_ +_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/update/republish.ts)_ ## `eas update:roll-back-to-embedded` @@ -1294,7 +1294,7 @@ DESCRIPTION roll back to the embedded update ``` -_See code: [src/commands/update/roll-back-to-embedded.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts)_ +_See code: [src/commands/update/roll-back-to-embedded.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts)_ ## `eas update:rollback` @@ -1313,7 +1313,7 @@ DESCRIPTION roll back to an embedded update or an existing update ``` -_See code: [src/commands/update/rollback.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/update/rollback.ts)_ +_See code: [src/commands/update/rollback.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/update/rollback.ts)_ ## `eas update:view GROUPID` @@ -1333,7 +1333,7 @@ DESCRIPTION update group details ``` -_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/update/view.ts)_ +_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/update/view.ts)_ ## `eas webhook:create` @@ -1354,7 +1354,7 @@ DESCRIPTION create a webhook ``` -_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/webhook/create.ts)_ +_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/webhook/create.ts)_ ## `eas webhook:delete [ID]` @@ -1374,7 +1374,7 @@ DESCRIPTION delete a webhook ``` -_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/webhook/delete.ts)_ +_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/webhook/delete.ts)_ ## `eas webhook:list` @@ -1392,7 +1392,7 @@ DESCRIPTION list webhooks ``` -_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/webhook/list.ts)_ +_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/webhook/list.ts)_ ## `eas webhook:update` @@ -1414,7 +1414,7 @@ DESCRIPTION update a webhook ``` -_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/webhook/update.ts)_ +_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/webhook/update.ts)_ ## `eas webhook:view ID` @@ -1431,7 +1431,7 @@ DESCRIPTION view a webhook ``` -_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.6.0/packages/eas-cli/src/commands/webhook/view.ts)_ +_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/webhook/view.ts)_ ## `eas whoami` diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index b44e04bda0..68b33c9c12 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -1,7 +1,7 @@ { "name": "eas-cli", "description": "EAS command line tool", - "version": "5.6.0", + "version": "5.7.0", "author": "Expo ", "bin": { "eas": "./bin/run" @@ -14,7 +14,7 @@ "@expo/config-plugins": "7.2.4", "@expo/config-types": "49.0.0", "@expo/eas-build-job": "1.0.48", - "@expo/eas-json": "5.5.0", + "@expo/eas-json": "5.7.0", "@expo/json-file": "8.2.37", "@expo/multipart-body-parser": "1.1.0", "@expo/osascript": "2.0.33", diff --git a/packages/eas-json/package.json b/packages/eas-json/package.json index c0486dbd80..8ca4e2fa59 100644 --- a/packages/eas-json/package.json +++ b/packages/eas-json/package.json @@ -1,7 +1,7 @@ { "name": "@expo/eas-json", "description": "A library for interacting with eas.json", - "version": "5.5.0", + "version": "5.7.0", "author": "Expo ", "bugs": "https://github.com/expo/eas-cli/issues", "dependencies": { From abda123286962708a603c0caaf3601c952e0b0cb Mon Sep 17 00:00:00 2001 From: Expo CI Date: Wed, 8 Nov 2023 12:14:17 +0000 Subject: [PATCH 088/105] update CHANGELOG.md --- CHANGELOG.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d8de87df2..7ed20de44f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,12 +8,18 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features -- Add `EXPO_APPLE_TEAM_ID` and `EXPO_APPLE_PROVIDER_ID` support. ([#2091](https://github.com/expo/eas-cli/pull/2091) by [@EvanBacon](https://github.com/EvanBacon)) - ### πŸ› Bug fixes ### 🧹 Chores +## [5.7.0](https://github.com/expo/eas-cli/releases/tag/v5.7.0) - 2023-11-08 + +### πŸŽ‰ New features + +- Add `EXPO_APPLE_TEAM_ID` and `EXPO_APPLE_PROVIDER_ID` support. ([#2091](https://github.com/expo/eas-cli/pull/2091) by [@EvanBacon](https://github.com/EvanBacon)) + +### 🧹 Chores + - Add link to SDK upgrade page for SDK-gated command error. ([#2106](https://github.com/expo/eas-cli/pull/2106) by [@wschurman](https://github.com/wschurman)) - Add `selectedImage` and `customNodeVersion` information to build metadata. ([#2113](https://github.com/expo/eas-cli/pull/2113) by [@szdziedzic](https://github.com/szdziedzic)) From cd3a62ec80575bf469f27d0ecb30149552ececd9 Mon Sep 17 00:00:00 2001 From: Quinlan Jung Date: Wed, 8 Nov 2023 12:25:54 -0800 Subject: [PATCH 089/105] [eas-cli] move rollouts out of dev preview (#2114) * [eas-cli] move rollouts out of dev preview * update CHANGELOG.md --- CHANGELOG.md | 2 ++ packages/eas-cli/src/commands/channel/rollout.ts | 5 ----- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ed20de44f..290406419f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features +- Move channel:rollout out of developer preview. ([#2114](https://github.com/expo/eas-cli/pull/2114) by [@quinlanj](https://github.com/quinlanj)) + ### πŸ› Bug fixes ### 🧹 Chores diff --git a/packages/eas-cli/src/commands/channel/rollout.ts b/packages/eas-cli/src/commands/channel/rollout.ts index 7901df6332..c0002f9217 100644 --- a/packages/eas-cli/src/commands/channel/rollout.ts +++ b/packages/eas-cli/src/commands/channel/rollout.ts @@ -152,11 +152,6 @@ export default class ChannelRollout extends EasCommand { if (argsAndFlags.nonInteractive) { await new NonInteractiveRollout(argsAndFlags).runAsync(ctx); } else { - Log.addNewLineIfNone(); - Log.warn( - `✨ This command is in Developer Preview and has not been released to production yet. Website support is coming soon.` - ); - Log.addNewLineIfNone(); await new RolloutMainMenu(argsAndFlags).runAsync(ctx); } } From 5e31a9d55d951c959294c83031ba136ac6be603d Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Fri, 10 Nov 2023 14:37:13 +0100 Subject: [PATCH 090/105] remove unused `Log` import to fix typecheck --- packages/eas-cli/src/commands/channel/rollout.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/eas-cli/src/commands/channel/rollout.ts b/packages/eas-cli/src/commands/channel/rollout.ts index c0002f9217..ce60c1b96e 100644 --- a/packages/eas-cli/src/commands/channel/rollout.ts +++ b/packages/eas-cli/src/commands/channel/rollout.ts @@ -2,7 +2,6 @@ import { Flags } from '@oclif/core'; import EasCommand from '../../commandUtils/EasCommand'; import { EasNonInteractiveAndJsonFlags } from '../../commandUtils/flags'; -import Log from '../../log'; import { NonInteractiveOptions as CreateRolloutNonInteractiveOptions } from '../../rollout/actions/CreateRollout'; import { NonInteractiveOptions as EditRolloutNonInteractiveOptions } from '../../rollout/actions/EditRollout'; import { From cd6a0c49f36e10bc2f9a36d8e3fde4d68780fb20 Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Fri, 10 Nov 2023 17:46:01 +0100 Subject: [PATCH 091/105] [eas-cli] update `@expo/package-manager` to `1.1.2` (#2118) * [eas-cli] update `@expo/package-manager` to `1.1.2` * update CHANGELOG.md --- CHANGELOG.md | 2 ++ packages/eas-cli/package.json | 2 +- yarn.lock | 8 ++++---- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 290406419f..4ba1d492bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,8 @@ This is the log of notable changes to EAS CLI and related packages. ### 🧹 Chores +- Update `@expo/package-manager` to `1.1.2` to change package manager resolution order. ([#2118](https://github.com/expo/eas-cli/pull/2118) by [@szdziedzic](https://github.com/szdziedzic)) + ## [5.7.0](https://github.com/expo/eas-cli/releases/tag/v5.7.0) - 2023-11-08 ### πŸŽ‰ New features diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index 68b33c9c12..d39cbfbd6a 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -18,7 +18,7 @@ "@expo/json-file": "8.2.37", "@expo/multipart-body-parser": "1.1.0", "@expo/osascript": "2.0.33", - "@expo/package-manager": "1.1.1", + "@expo/package-manager": "1.1.2", "@expo/pkcs12": "0.0.8", "@expo/plist": "0.0.20", "@expo/plugin-help": "5.1.22", diff --git a/yarn.lock b/yarn.lock index 966ac55b1b..570570761a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1304,10 +1304,10 @@ "@expo/spawn-async" "^1.5.0" exec-async "^2.2.0" -"@expo/package-manager@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@expo/package-manager/-/package-manager-1.1.1.tgz#065326c5684c2acfbfdc290d93eabb7a36225507" - integrity sha512-NxtfIA25iEiNwMT+s8PEmdKzjyfWd2qkCLJkf6jKZGaH9c06YXyOAi2jvCyM8XuSzJz4pcEH8kz1HkJAInjB7Q== +"@expo/package-manager@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@expo/package-manager/-/package-manager-1.1.2.tgz#e58c9bed4cbb829ebf2cbb80b8542600a6609bd1" + integrity sha512-JI9XzrxB0QVXysyuJ996FPCJGDCYRkbUvgG4QmMTTMFA1T+mv8YzazC3T9C1pHQUAAveVCre1+Pqv0nZXN24Xg== dependencies: "@expo/json-file" "^8.2.37" "@expo/spawn-async" "^1.5.0" From 8e7c668f47a4f7050eaa880dfe48a4e63b5c97ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rados=C5=82aw=20Krzemie=C5=84?= Date: Mon, 13 Nov 2023 13:40:51 +0100 Subject: [PATCH 092/105] [eas-cli] [ENG-10555] Fix device provsioning (#2119) * [eas-cli] Fix provisioning Updates provisioning profile in EAS before using it if the profile id matches the one from apple but the list of devices does not See: https://linear.app/expo/issue/ENG-10555/ios-devices-get-stuck-in-failed-to-provision-state-until-the-developer * [eas-cli] Add test Added test for a newly added case See: https://linear.app/expo/issue/ENG-10555/ios-devices-get-stuck-in-failed-to-provision-state-until-the-developer * update CHANGELOG.md * [eas-cli] Remove unused import Remove unused import See: https://linear.app/expo/issue/ENG-10555/ios-devices-get-stuck-in-failed-to-provision-state-until-the-developer --- CHANGELOG.md | 2 + .../actions/SetUpAdhocProvisioningProfile.ts | 75 ++++++++++++++----- .../SetUpAdhocProvisioningProfile-test.ts | 75 +++++++++++++------ 3 files changed, 111 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ba1d492bb..cc0721e876 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ› Bug fixes +- Fixed provisioning of new devices into an existing profile. ([#2119](https://github.com/expo/eas-cli/pull/2119) by [@radoslawkrzemien](https://github.com/radoslawkrzemien)) + ### 🧹 Chores - Update `@expo/package-manager` to `1.1.2` to change package manager resolution order. ([#2118](https://github.com/expo/eas-cli/pull/2118) by [@szdziedzic](https://github.com/szdziedzic)) diff --git a/packages/eas-cli/src/credentials/ios/actions/SetUpAdhocProvisioningProfile.ts b/packages/eas-cli/src/credentials/ios/actions/SetUpAdhocProvisioningProfile.ts index 0e63a37f40..f6ef7ca2c9 100644 --- a/packages/eas-cli/src/credentials/ios/actions/SetUpAdhocProvisioningProfile.ts +++ b/packages/eas-cli/src/credentials/ios/actions/SetUpAdhocProvisioningProfile.ts @@ -5,6 +5,8 @@ import nullthrows from 'nullthrows'; import DeviceCreateAction, { RegistrationMethod } from '../../../devices/actions/create/action'; import { + AppleAppIdentifierFragment, + AppleDevice, AppleDeviceFragment, AppleDistributionCertificateFragment, AppleProvisioningProfileFragment, @@ -19,6 +21,7 @@ import differenceBy from '../../../utils/expodash/differenceBy'; import { CredentialsContext } from '../../context'; import { MissingCredentialsNonInteractiveError } from '../../errors'; import { AppLookupParams } from '../api/graphql/types/AppLookupParams'; +import { ProvisioningProfile } from '../appstore/Credentials.types'; import { ApplePlatform } from '../appstore/constants'; import { Target } from '../types'; import { validateProvisioningProfileAsync } from '../validators/validateProvisioningProfile'; @@ -146,25 +149,14 @@ export class SetUpAdhocProvisioningProfile { ); let appleProvisioningProfile: AppleProvisioningProfileFragment | null = null; if (currentBuildCredentials?.provisioningProfile) { - if ( - currentBuildCredentials.provisioningProfile.developerPortalIdentifier !== - provisioningProfileStoreInfo.provisioningProfileId - ) { - await ctx.ios.deleteProvisioningProfilesAsync(ctx.graphqlClient, [ - currentBuildCredentials.provisioningProfile.id, - ]); - appleProvisioningProfile = await ctx.ios.createProvisioningProfileAsync( - ctx.graphqlClient, - app, - appleAppIdentifier, - { - appleProvisioningProfile: provisioningProfileStoreInfo.provisioningProfile, - developerPortalIdentifier: provisioningProfileStoreInfo.provisioningProfileId, - } - ); - } else { - appleProvisioningProfile = currentBuildCredentials.provisioningProfile; - } + appleProvisioningProfile = await this.reuseCurrentProvisioningProfileAsync( + currentBuildCredentials.provisioningProfile, + provisioningProfileStoreInfo, + ctx, + app, + appleAppIdentifier, + chosenDevices + ); } else { appleProvisioningProfile = await ctx.ios.createProvisioningProfileAsync( ctx.graphqlClient, @@ -183,7 +175,7 @@ export class SetUpAdhocProvisioningProfile { appleProvisioningProfile.appleDevices, 'identifier' ); - if (diffList && diffList.length > 0) { + if (diffList.length > 0) { Log.warn(`Failed to provision ${diffList.length} of the selected devices:`); for (const missingDevice of diffList) { Log.warn(`- ${formatDeviceLabel(missingDevice)}`); @@ -205,6 +197,49 @@ export class SetUpAdhocProvisioningProfile { ); } + private async reuseCurrentProvisioningProfileAsync( + currentProvisioningProfile: AppleProvisioningProfileFragment, + provisioningProfileStoreInfo: ProvisioningProfile, + ctx: CredentialsContext, + app: AppLookupParams, + appleAppIdentifier: AppleAppIdentifierFragment, + chosenDevices: AppleDevice[] + ): Promise { + if ( + currentProvisioningProfile.developerPortalIdentifier !== + provisioningProfileStoreInfo.provisioningProfileId + ) { + // If IDs don't match, the profile needs to be deleted and re-created + await ctx.ios.deleteProvisioningProfilesAsync(ctx.graphqlClient, [ + currentProvisioningProfile.id, + ]); + return await ctx.ios.createProvisioningProfileAsync( + ctx.graphqlClient, + app, + appleAppIdentifier, + { + appleProvisioningProfile: provisioningProfileStoreInfo.provisioningProfile, + developerPortalIdentifier: provisioningProfileStoreInfo.provisioningProfileId, + } + ); + } else if ( + differenceBy(chosenDevices, currentProvisioningProfile.appleDevices, 'identifier').length > 0 + ) { + // If IDs match, but the devices lists don't, the profile needs to be updated first + return await ctx.ios.updateProvisioningProfileAsync( + ctx.graphqlClient, + currentProvisioningProfile.id, + { + appleProvisioningProfile: provisioningProfileStoreInfo.provisioningProfile, + developerPortalIdentifier: provisioningProfileStoreInfo.provisioningProfileId, + } + ); + } else { + // Otherwise the current profile can be reused + return currentProvisioningProfile; + } + } + private async areBuildCredentialsSetupAsync(ctx: CredentialsContext): Promise { const { app, target } = this.options; const buildCredentials = await getBuildCredentialsAsync(ctx, app, IosDistributionType.AdHoc); diff --git a/packages/eas-cli/src/credentials/ios/actions/__tests__/SetUpAdhocProvisioningProfile-test.ts b/packages/eas-cli/src/credentials/ios/actions/__tests__/SetUpAdhocProvisioningProfile-test.ts index d81e5bef55..40f623385c 100644 --- a/packages/eas-cli/src/credentials/ios/actions/__tests__/SetUpAdhocProvisioningProfile-test.ts +++ b/packages/eas-cli/src/credentials/ios/actions/__tests__/SetUpAdhocProvisioningProfile-test.ts @@ -57,30 +57,63 @@ describe('runWithDistributionCertificateAsync', () => { }); describe('compare chosen and provisioned devices', () => { describe('not all devices provisioned', () => { - it('displays warning to the user and lists the missing devices', async () => { - const { ctx, distCert } = setUpTest(); - jest.mocked(getBuildCredentialsAsync).mockResolvedValue({ - provisioningProfile: { + describe('still not provisioned after an update', () => { + it('displays warning to the user and lists the missing devices', async () => { + const { ctx, distCert } = setUpTest(); + jest.mocked(getBuildCredentialsAsync).mockResolvedValue({ + provisioningProfile: { + appleTeam: {}, + appleDevices: [{ identifier: 'id1' }], + developerPortalIdentifier: 'provisioningProfileId', + }, + } as IosAppBuildCredentialsFragment); + ctx.ios.updateProvisioningProfileAsync = jest.fn().mockResolvedValue({ appleTeam: {}, appleDevices: [{ identifier: 'id1' }], developerPortalIdentifier: 'provisioningProfileId', - }, - } as IosAppBuildCredentialsFragment); - const LogWarnSpy = jest.spyOn(Log, 'warn'); - const LogLogSpy = jest.spyOn(Log, 'log'); - const result = await setUpAdhocProvisioningProfile.runWithDistributionCertificateAsync( - ctx, - distCert - ); - expect(result).toEqual({} as IosAppBuildCredentialsFragment); - expect(LogWarnSpy).toHaveBeenCalledTimes(3); - expect(LogWarnSpy).toHaveBeenCalledWith('Failed to provision 2 of the selected devices:'); - expect(LogWarnSpy).toHaveBeenCalledWith('- id2 (iPhone) (Device 2)'); - expect(LogWarnSpy).toHaveBeenCalledWith('- id3 (Mac) (Device 3)'); - expect(LogLogSpy).toHaveBeenCalledTimes(1); - expect(LogLogSpy).toHaveBeenCalledWith( - 'Most commonly devices fail to to be provisioned while they are still being processed by Apple, which can take up to 24-72 hours. Check your Apple Developer Portal page at https://developer.apple.com/account/resources/devices/list, the devices in "Processing" status cannot be provisioned yet' - ); + }); + const LogWarnSpy = jest.spyOn(Log, 'warn'); + const LogLogSpy = jest.spyOn(Log, 'log'); + const result = await setUpAdhocProvisioningProfile.runWithDistributionCertificateAsync( + ctx, + distCert + ); + expect(result).toEqual({} as IosAppBuildCredentialsFragment); + expect(LogWarnSpy).toHaveBeenCalledTimes(3); + expect(LogWarnSpy).toHaveBeenCalledWith('Failed to provision 2 of the selected devices:'); + expect(LogWarnSpy).toHaveBeenCalledWith('- id2 (iPhone) (Device 2)'); + expect(LogWarnSpy).toHaveBeenCalledWith('- id3 (Mac) (Device 3)'); + expect(LogLogSpy).toHaveBeenCalledTimes(1); + expect(LogLogSpy).toHaveBeenCalledWith( + 'Most commonly devices fail to to be provisioned while they are still being processed by Apple, which can take up to 24-72 hours. Check your Apple Developer Portal page at https://developer.apple.com/account/resources/devices/list, the devices in "Processing" status cannot be provisioned yet' + ); + }); + }); + describe('all devices provisioned after an update', () => { + it('does not display warning', async () => { + const { ctx, distCert } = setUpTest(); + jest.mocked(getBuildCredentialsAsync).mockResolvedValue({ + provisioningProfile: { + appleTeam: {}, + appleDevices: [{ identifier: 'id1' }], + developerPortalIdentifier: 'provisioningProfileId', + }, + } as IosAppBuildCredentialsFragment); + ctx.ios.updateProvisioningProfileAsync = jest.fn().mockResolvedValue({ + appleTeam: {}, + appleDevices: [{ identifier: 'id1' }, { identifier: 'id2' }, { identifier: 'id3' }], + developerPortalIdentifier: 'provisioningProfileId', + }); + const LogWarnSpy = jest.spyOn(Log, 'warn'); + const LogLogSpy = jest.spyOn(Log, 'log'); + const result = await setUpAdhocProvisioningProfile.runWithDistributionCertificateAsync( + ctx, + distCert + ); + expect(result).toEqual({} as IosAppBuildCredentialsFragment); + expect(LogWarnSpy).not.toHaveBeenCalled(); + expect(LogLogSpy).not.toHaveBeenCalled(); + }); }); }); describe('all devices provisioned', () => { From 54b1028cd61d52e77929537d6273363581e55f30 Mon Sep 17 00:00:00 2001 From: Radoslaw Krzemien Date: Mon, 13 Nov 2023 13:43:01 +0100 Subject: [PATCH 093/105] v5.8.0 --- lerna.json | 2 +- packages/eas-cli/README.md | 114 +++++++++++++++++----------------- packages/eas-cli/package.json | 2 +- 3 files changed, 59 insertions(+), 59 deletions(-) diff --git a/lerna.json b/lerna.json index 7c6f296d20..c0c80ff43a 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "npmClient": "yarn", "useWorkspaces": true, - "version": "5.7.0", + "version": "5.8.0", "$schema": "node_modules/lerna/schemas/lerna-schema.json" } diff --git a/packages/eas-cli/README.md b/packages/eas-cli/README.md index fde82b996e..9046872be6 100644 --- a/packages/eas-cli/README.md +++ b/packages/eas-cli/README.md @@ -135,7 +135,7 @@ ALIASES $ eas login ``` -_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/account/login.ts)_ +_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/account/login.ts)_ ## `eas account:logout` @@ -152,7 +152,7 @@ ALIASES $ eas logout ``` -_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/account/logout.ts)_ +_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/account/logout.ts)_ ## `eas account:view` @@ -169,7 +169,7 @@ ALIASES $ eas whoami ``` -_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/account/view.ts)_ +_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/account/view.ts)_ ## `eas analytics [STATUS]` @@ -183,7 +183,7 @@ DESCRIPTION display or change analytics settings ``` -_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/analytics.ts)_ +_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/analytics.ts)_ ## `eas autocomplete [SHELL]` @@ -233,7 +233,7 @@ DESCRIPTION create a branch ``` -_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/branch/create.ts)_ +_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/branch/create.ts)_ ## `eas branch:delete [NAME]` @@ -254,7 +254,7 @@ DESCRIPTION delete a branch ``` -_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/branch/delete.ts)_ +_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/branch/delete.ts)_ ## `eas branch:list` @@ -274,7 +274,7 @@ DESCRIPTION list all branches ``` -_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/branch/list.ts)_ +_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/branch/list.ts)_ ## `eas branch:rename` @@ -294,7 +294,7 @@ DESCRIPTION rename a branch ``` -_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/branch/rename.ts)_ +_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/branch/rename.ts)_ ## `eas branch:view [NAME]` @@ -317,7 +317,7 @@ DESCRIPTION view a branch ``` -_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/branch/view.ts)_ +_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/branch/view.ts)_ ## `eas build` @@ -347,7 +347,7 @@ DESCRIPTION start a build ``` -_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/index.ts)_ +_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/index.ts)_ ## `eas build:cancel [BUILD_ID]` @@ -364,7 +364,7 @@ DESCRIPTION cancel a build ``` -_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/cancel.ts)_ +_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/cancel.ts)_ ## `eas build:configure` @@ -381,7 +381,7 @@ DESCRIPTION configure the project to support EAS Build ``` -_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/configure.ts)_ +_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/configure.ts)_ ## `eas build:inspect` @@ -416,7 +416,7 @@ DESCRIPTION inspect the state of the project at specific build stages, useful for troubleshooting ``` -_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/inspect.ts)_ +_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/inspect.ts)_ ## `eas build:list` @@ -454,7 +454,7 @@ DESCRIPTION list all builds for your project ``` -_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/list.ts)_ +_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/list.ts)_ ## `eas build:resign` @@ -480,7 +480,7 @@ DESCRIPTION re-sign a build archive ``` -_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/resign.ts)_ +_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/resign.ts)_ ## `eas build:run` @@ -504,7 +504,7 @@ DESCRIPTION run simulator/emulator builds from eas-cli ``` -_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/run.ts)_ +_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/run.ts)_ ## `eas build:submit` @@ -553,7 +553,7 @@ DESCRIPTION get the latest version from EAS servers ``` -_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/version/get.ts)_ +_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/version/get.ts)_ ## `eas build:version:set` @@ -572,7 +572,7 @@ DESCRIPTION update version of an app ``` -_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/version/set.ts)_ +_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/version/set.ts)_ ## `eas build:version:sync` @@ -591,7 +591,7 @@ DESCRIPTION update a version in native code with a value stored on EAS servers ``` -_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/version/sync.ts)_ +_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/version/sync.ts)_ ## `eas build:view [BUILD_ID]` @@ -608,7 +608,7 @@ DESCRIPTION view a build for your project ``` -_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/build/view.ts)_ +_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/view.ts)_ ## `eas channel:create [NAME]` @@ -629,7 +629,7 @@ DESCRIPTION create a channel ``` -_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/channel/create.ts)_ +_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/channel/create.ts)_ ## `eas channel:edit [NAME]` @@ -651,7 +651,7 @@ DESCRIPTION point a channel at a new branch ``` -_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/channel/edit.ts)_ +_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/channel/edit.ts)_ ## `eas channel:list` @@ -671,7 +671,7 @@ DESCRIPTION list all channels ``` -_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/channel/list.ts)_ +_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/channel/list.ts)_ ## `eas channel:rollout [CHANNEL]` @@ -703,7 +703,7 @@ DESCRIPTION Roll a new branch out on a channel incrementally. ``` -_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/channel/rollout.ts)_ +_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/channel/rollout.ts)_ ## `eas channel:view [NAME]` @@ -726,7 +726,7 @@ DESCRIPTION view a channel ``` -_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/channel/view.ts)_ +_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/channel/view.ts)_ ## `eas config` @@ -747,7 +747,7 @@ DESCRIPTION display project configuration (app.json + eas.json) ``` -_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/config.ts)_ +_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/config.ts)_ ## `eas credentials` @@ -764,7 +764,7 @@ DESCRIPTION manage credentials ``` -_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/credentials.ts)_ +_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/credentials.ts)_ ## `eas device:create` @@ -778,7 +778,7 @@ DESCRIPTION register new Apple Devices to use for internal distribution ``` -_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/device/create.ts)_ +_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/device/create.ts)_ ## `eas device:delete` @@ -798,7 +798,7 @@ DESCRIPTION remove a registered device from your account ``` -_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/device/delete.ts)_ +_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/device/delete.ts)_ ## `eas device:list` @@ -819,7 +819,7 @@ DESCRIPTION list all registered devices for your account ``` -_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/device/list.ts)_ +_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/device/list.ts)_ ## `eas device:rename` @@ -840,7 +840,7 @@ DESCRIPTION rename a registered device ``` -_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/device/rename.ts)_ +_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/device/rename.ts)_ ## `eas device:view [UDID]` @@ -854,7 +854,7 @@ DESCRIPTION view a device for your project ``` -_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/device/view.ts)_ +_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/device/view.ts)_ ## `eas diagnostics` @@ -868,7 +868,7 @@ DESCRIPTION display environment info ``` -_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/diagnostics.ts)_ +_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/diagnostics.ts)_ ## `eas help [COMMAND]` @@ -956,7 +956,7 @@ DESCRIPTION validate the local store configuration ``` -_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/metadata/lint.ts)_ +_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/metadata/lint.ts)_ ## `eas metadata:pull` @@ -973,7 +973,7 @@ DESCRIPTION generate the local store configuration from the app stores ``` -_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/metadata/pull.ts)_ +_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/metadata/pull.ts)_ ## `eas metadata:push` @@ -990,7 +990,7 @@ DESCRIPTION sync the local store configuration to the app stores ``` -_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/metadata/push.ts)_ +_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/metadata/push.ts)_ ## `eas open` @@ -1004,7 +1004,7 @@ DESCRIPTION open the project page in a web browser ``` -_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/open.ts)_ +_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/open.ts)_ ## `eas project:info` @@ -1018,7 +1018,7 @@ DESCRIPTION information about the current project ``` -_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/project/info.ts)_ +_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/project/info.ts)_ ## `eas project:init` @@ -1040,7 +1040,7 @@ ALIASES $ eas init ``` -_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/project/init.ts)_ +_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/project/init.ts)_ ## `eas secret:create` @@ -1063,7 +1063,7 @@ DESCRIPTION create an environment secret on the current project or owner account ``` -_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/secret/create.ts)_ +_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/secret/create.ts)_ ## `eas secret:delete` @@ -1081,7 +1081,7 @@ DESCRIPTION delete an environment secret by ID ``` -_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/secret/delete.ts)_ +_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/secret/delete.ts)_ ## `eas secret:list` @@ -1095,7 +1095,7 @@ DESCRIPTION list environment secrets available for your current app ``` -_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/secret/list.ts)_ +_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/secret/list.ts)_ ## `eas secret:push` @@ -1115,7 +1115,7 @@ DESCRIPTION read environment secrets from env file and store on the server ``` -_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/secret/push.ts)_ +_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/secret/push.ts)_ ## `eas submit` @@ -1145,7 +1145,7 @@ ALIASES $ eas build:submit ``` -_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/submit.ts)_ +_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/submit.ts)_ ## `eas update` @@ -1179,7 +1179,7 @@ DESCRIPTION publish an update group ``` -_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/update/index.ts)_ +_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/update/index.ts)_ ## `eas update:configure` @@ -1197,7 +1197,7 @@ DESCRIPTION configure the project to support EAS Update ``` -_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/update/configure.ts)_ +_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/update/configure.ts)_ ## `eas update:delete GROUPID` @@ -1218,7 +1218,7 @@ DESCRIPTION delete all the updates in an update group ``` -_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/update/delete.ts)_ +_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/update/delete.ts)_ ## `eas update:list` @@ -1240,7 +1240,7 @@ DESCRIPTION view the recent updates ``` -_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/update/list.ts)_ +_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/update/list.ts)_ ## `eas update:republish` @@ -1267,7 +1267,7 @@ DESCRIPTION roll back to an existing update ``` -_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/update/republish.ts)_ +_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/update/republish.ts)_ ## `eas update:roll-back-to-embedded` @@ -1294,7 +1294,7 @@ DESCRIPTION roll back to the embedded update ``` -_See code: [src/commands/update/roll-back-to-embedded.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts)_ +_See code: [src/commands/update/roll-back-to-embedded.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts)_ ## `eas update:rollback` @@ -1313,7 +1313,7 @@ DESCRIPTION roll back to an embedded update or an existing update ``` -_See code: [src/commands/update/rollback.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/update/rollback.ts)_ +_See code: [src/commands/update/rollback.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/update/rollback.ts)_ ## `eas update:view GROUPID` @@ -1333,7 +1333,7 @@ DESCRIPTION update group details ``` -_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/update/view.ts)_ +_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/update/view.ts)_ ## `eas webhook:create` @@ -1354,7 +1354,7 @@ DESCRIPTION create a webhook ``` -_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/webhook/create.ts)_ +_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/webhook/create.ts)_ ## `eas webhook:delete [ID]` @@ -1374,7 +1374,7 @@ DESCRIPTION delete a webhook ``` -_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/webhook/delete.ts)_ +_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/webhook/delete.ts)_ ## `eas webhook:list` @@ -1392,7 +1392,7 @@ DESCRIPTION list webhooks ``` -_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/webhook/list.ts)_ +_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/webhook/list.ts)_ ## `eas webhook:update` @@ -1414,7 +1414,7 @@ DESCRIPTION update a webhook ``` -_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/webhook/update.ts)_ +_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/webhook/update.ts)_ ## `eas webhook:view ID` @@ -1431,7 +1431,7 @@ DESCRIPTION view a webhook ``` -_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.7.0/packages/eas-cli/src/commands/webhook/view.ts)_ +_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/webhook/view.ts)_ ## `eas whoami` diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index d39cbfbd6a..c2296d5577 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -1,7 +1,7 @@ { "name": "eas-cli", "description": "EAS command line tool", - "version": "5.7.0", + "version": "5.8.0", "author": "Expo ", "bin": { "eas": "./bin/run" From fea791300ddd1f0ad7b884f27f257de3403e71d9 Mon Sep 17 00:00:00 2001 From: Expo CI Date: Mon, 13 Nov 2023 12:52:45 +0000 Subject: [PATCH 094/105] update CHANGELOG.md --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc0721e876..bc12d4f8ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,14 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features +### πŸ› Bug fixes + +### 🧹 Chores + +## [5.8.0](https://github.com/expo/eas-cli/releases/tag/v5.8.0) - 2023-11-13 + +### πŸŽ‰ New features + - Move channel:rollout out of developer preview. ([#2114](https://github.com/expo/eas-cli/pull/2114) by [@quinlanj](https://github.com/quinlanj)) ### πŸ› Bug fixes From 7c48b2bd35a85a3c36e65605320cd28eb436f5aa Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Wed, 15 Nov 2023 10:35:16 +0100 Subject: [PATCH 095/105] [ENG-9927][eas-cli] add `profile` flag to `eas build:run` command (#2035) * [eas-cli] add `profile` flag to `eas build:run` command * update CHANGELOG.md --- CHANGELOG.md | 2 ++ packages/eas-cli/src/commands/build/run.ts | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc12d4f8ed..7bbbfefe94 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features +- Add `--profile` flag to `eas build:run` command. ([#2035](https://github.com/expo/eas-cli/pull/2035) by [@szdziedzic](https://github.com/szdziedzic)) + ### πŸ› Bug fixes ### 🧹 Chores diff --git a/packages/eas-cli/src/commands/build/run.ts b/packages/eas-cli/src/commands/build/run.ts index 193272ae8f..f6b41931a8 100644 --- a/packages/eas-cli/src/commands/build/run.ts +++ b/packages/eas-cli/src/commands/build/run.ts @@ -33,6 +33,7 @@ interface RawRunFlags { platform?: string; limit?: number; offset?: number; + profile?: string; } interface RunCommandFlags { @@ -40,6 +41,7 @@ interface RunCommandFlags { runArchiveFlags: RunArchiveFlags; limit?: number; offset?: number; + profile?: string; } export default class Run extends EasCommand { @@ -66,6 +68,12 @@ export default class Run extends EasCommand { char: 'p', options: ['android', 'ios'], }), + profile: Flags.string({ + char: 'e', + description: + 'Name of the build profile used to create the build to run. When specified, only builds created with the specified build profile will be queried.', + helpValue: 'PROFILE_NAME', + }), ...EasPaginatedQueryFlags, }; @@ -98,7 +106,7 @@ export default class Run extends EasCommand { } private async sanitizeFlagsAsync(flags: RawRunFlags): Promise { - const { platform, limit, offset, ...runArchiveFlags } = flags; + const { platform, limit, offset, profile, ...runArchiveFlags } = flags; const selectedPlatform = await resolvePlatformAsync(platform); @@ -122,11 +130,16 @@ export default class Run extends EasCommand { }); } + if (profile && (runArchiveFlags.id || runArchiveFlags.path || runArchiveFlags.url)) { + Log.warn('The --profile flag is ignored when using --id, --path, or --url flags.'); + } + return { selectedPlatform, runArchiveFlags, limit, offset, + profile, }; } } @@ -208,6 +221,7 @@ async function maybeGetBuildAsync( platform: flags.selectedPlatform, distribution: distributionType, status: BuildStatus.Finished, + buildProfile: flags.profile, }, paginatedQueryOptions, selectPromptDisabledFunction: build => !isRunnableOnSimulatorOrEmulator(build), @@ -223,6 +237,7 @@ async function maybeGetBuildAsync( platform: flags.selectedPlatform, distribution: distributionType, status: BuildStatus.Finished, + buildProfile: flags.profile, }, }); From e300d7a118ffab475d6958646fa48c98489937b3 Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Wed, 15 Nov 2023 11:20:36 +0100 Subject: [PATCH 096/105] upgrade eas-cli-local-build-plugin to 1.0.49 --- packages/eas-cli/src/build/local.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eas-cli/src/build/local.ts b/packages/eas-cli/src/build/local.ts index eddaedcde9..29e4ddb1ce 100644 --- a/packages/eas-cli/src/build/local.ts +++ b/packages/eas-cli/src/build/local.ts @@ -6,7 +6,7 @@ import semver from 'semver'; import { ora } from '../ora'; const PLUGIN_PACKAGE_NAME = 'eas-cli-local-build-plugin'; -const PLUGIN_PACKAGE_VERSION = '1.0.48'; +const PLUGIN_PACKAGE_VERSION = '1.0.49'; export enum LocalBuildMode { /** From 97c6df81affcf4ad05748686f243540e1be3f8e3 Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Wed, 15 Nov 2023 11:20:45 +0100 Subject: [PATCH 097/105] v5.9.0 --- lerna.json | 2 +- packages/eas-cli/README.md | 120 +++++++++++++++++----------------- packages/eas-cli/package.json | 2 +- 3 files changed, 63 insertions(+), 61 deletions(-) diff --git a/lerna.json b/lerna.json index c0c80ff43a..38c926ff4d 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "npmClient": "yarn", "useWorkspaces": true, - "version": "5.8.0", + "version": "5.9.0", "$schema": "node_modules/lerna/schemas/lerna-schema.json" } diff --git a/packages/eas-cli/README.md b/packages/eas-cli/README.md index 9046872be6..a83983ad9f 100644 --- a/packages/eas-cli/README.md +++ b/packages/eas-cli/README.md @@ -135,7 +135,7 @@ ALIASES $ eas login ``` -_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/account/login.ts)_ +_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/account/login.ts)_ ## `eas account:logout` @@ -152,7 +152,7 @@ ALIASES $ eas logout ``` -_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/account/logout.ts)_ +_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/account/logout.ts)_ ## `eas account:view` @@ -169,7 +169,7 @@ ALIASES $ eas whoami ``` -_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/account/view.ts)_ +_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/account/view.ts)_ ## `eas analytics [STATUS]` @@ -183,7 +183,7 @@ DESCRIPTION display or change analytics settings ``` -_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/analytics.ts)_ +_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/analytics.ts)_ ## `eas autocomplete [SHELL]` @@ -233,7 +233,7 @@ DESCRIPTION create a branch ``` -_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/branch/create.ts)_ +_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/branch/create.ts)_ ## `eas branch:delete [NAME]` @@ -254,7 +254,7 @@ DESCRIPTION delete a branch ``` -_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/branch/delete.ts)_ +_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/branch/delete.ts)_ ## `eas branch:list` @@ -274,7 +274,7 @@ DESCRIPTION list all branches ``` -_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/branch/list.ts)_ +_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/branch/list.ts)_ ## `eas branch:rename` @@ -294,7 +294,7 @@ DESCRIPTION rename a branch ``` -_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/branch/rename.ts)_ +_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/branch/rename.ts)_ ## `eas branch:view [NAME]` @@ -317,7 +317,7 @@ DESCRIPTION view a branch ``` -_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/branch/view.ts)_ +_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/branch/view.ts)_ ## `eas build` @@ -347,7 +347,7 @@ DESCRIPTION start a build ``` -_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/index.ts)_ +_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/index.ts)_ ## `eas build:cancel [BUILD_ID]` @@ -364,7 +364,7 @@ DESCRIPTION cancel a build ``` -_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/cancel.ts)_ +_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/cancel.ts)_ ## `eas build:configure` @@ -381,7 +381,7 @@ DESCRIPTION configure the project to support EAS Build ``` -_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/configure.ts)_ +_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/configure.ts)_ ## `eas build:inspect` @@ -416,7 +416,7 @@ DESCRIPTION inspect the state of the project at specific build stages, useful for troubleshooting ``` -_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/inspect.ts)_ +_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/inspect.ts)_ ## `eas build:list` @@ -454,7 +454,7 @@ DESCRIPTION list all builds for your project ``` -_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/list.ts)_ +_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/list.ts)_ ## `eas build:resign` @@ -480,7 +480,7 @@ DESCRIPTION re-sign a build archive ``` -_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/resign.ts)_ +_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/resign.ts)_ ## `eas build:run` @@ -488,10 +488,12 @@ run simulator/emulator builds from eas-cli ``` USAGE - $ eas build:run [--latest | --id | --path | --url ] [-p android|ios] [--offset - ] [--limit ] + $ eas build:run [--latest | --id | --path | --url ] [-p android|ios] [-e ] + [--offset ] [--limit ] FLAGS + -e, --profile=PROFILE_NAME Name of the build profile used to create the build to run. When specified, only builds + created with the specified build profile will be queried. -p, --platform=(android|ios) --id= ID of the simulator/emulator build to run --latest Run the latest simulator/emulator build for specified platform @@ -504,7 +506,7 @@ DESCRIPTION run simulator/emulator builds from eas-cli ``` -_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/run.ts)_ +_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/run.ts)_ ## `eas build:submit` @@ -553,7 +555,7 @@ DESCRIPTION get the latest version from EAS servers ``` -_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/version/get.ts)_ +_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/version/get.ts)_ ## `eas build:version:set` @@ -572,7 +574,7 @@ DESCRIPTION update version of an app ``` -_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/version/set.ts)_ +_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/version/set.ts)_ ## `eas build:version:sync` @@ -591,7 +593,7 @@ DESCRIPTION update a version in native code with a value stored on EAS servers ``` -_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/version/sync.ts)_ +_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/version/sync.ts)_ ## `eas build:view [BUILD_ID]` @@ -608,7 +610,7 @@ DESCRIPTION view a build for your project ``` -_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/build/view.ts)_ +_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/view.ts)_ ## `eas channel:create [NAME]` @@ -629,7 +631,7 @@ DESCRIPTION create a channel ``` -_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/channel/create.ts)_ +_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/channel/create.ts)_ ## `eas channel:edit [NAME]` @@ -651,7 +653,7 @@ DESCRIPTION point a channel at a new branch ``` -_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/channel/edit.ts)_ +_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/channel/edit.ts)_ ## `eas channel:list` @@ -671,7 +673,7 @@ DESCRIPTION list all channels ``` -_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/channel/list.ts)_ +_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/channel/list.ts)_ ## `eas channel:rollout [CHANNEL]` @@ -703,7 +705,7 @@ DESCRIPTION Roll a new branch out on a channel incrementally. ``` -_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/channel/rollout.ts)_ +_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/channel/rollout.ts)_ ## `eas channel:view [NAME]` @@ -726,7 +728,7 @@ DESCRIPTION view a channel ``` -_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/channel/view.ts)_ +_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/channel/view.ts)_ ## `eas config` @@ -747,7 +749,7 @@ DESCRIPTION display project configuration (app.json + eas.json) ``` -_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/config.ts)_ +_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/config.ts)_ ## `eas credentials` @@ -764,7 +766,7 @@ DESCRIPTION manage credentials ``` -_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/credentials.ts)_ +_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/credentials.ts)_ ## `eas device:create` @@ -778,7 +780,7 @@ DESCRIPTION register new Apple Devices to use for internal distribution ``` -_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/device/create.ts)_ +_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/device/create.ts)_ ## `eas device:delete` @@ -798,7 +800,7 @@ DESCRIPTION remove a registered device from your account ``` -_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/device/delete.ts)_ +_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/device/delete.ts)_ ## `eas device:list` @@ -819,7 +821,7 @@ DESCRIPTION list all registered devices for your account ``` -_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/device/list.ts)_ +_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/device/list.ts)_ ## `eas device:rename` @@ -840,7 +842,7 @@ DESCRIPTION rename a registered device ``` -_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/device/rename.ts)_ +_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/device/rename.ts)_ ## `eas device:view [UDID]` @@ -854,7 +856,7 @@ DESCRIPTION view a device for your project ``` -_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/device/view.ts)_ +_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/device/view.ts)_ ## `eas diagnostics` @@ -868,7 +870,7 @@ DESCRIPTION display environment info ``` -_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/diagnostics.ts)_ +_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/diagnostics.ts)_ ## `eas help [COMMAND]` @@ -956,7 +958,7 @@ DESCRIPTION validate the local store configuration ``` -_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/metadata/lint.ts)_ +_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/metadata/lint.ts)_ ## `eas metadata:pull` @@ -973,7 +975,7 @@ DESCRIPTION generate the local store configuration from the app stores ``` -_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/metadata/pull.ts)_ +_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/metadata/pull.ts)_ ## `eas metadata:push` @@ -990,7 +992,7 @@ DESCRIPTION sync the local store configuration to the app stores ``` -_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/metadata/push.ts)_ +_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/metadata/push.ts)_ ## `eas open` @@ -1004,7 +1006,7 @@ DESCRIPTION open the project page in a web browser ``` -_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/open.ts)_ +_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/open.ts)_ ## `eas project:info` @@ -1018,7 +1020,7 @@ DESCRIPTION information about the current project ``` -_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/project/info.ts)_ +_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/project/info.ts)_ ## `eas project:init` @@ -1040,7 +1042,7 @@ ALIASES $ eas init ``` -_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/project/init.ts)_ +_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/project/init.ts)_ ## `eas secret:create` @@ -1063,7 +1065,7 @@ DESCRIPTION create an environment secret on the current project or owner account ``` -_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/secret/create.ts)_ +_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/secret/create.ts)_ ## `eas secret:delete` @@ -1081,7 +1083,7 @@ DESCRIPTION delete an environment secret by ID ``` -_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/secret/delete.ts)_ +_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/secret/delete.ts)_ ## `eas secret:list` @@ -1095,7 +1097,7 @@ DESCRIPTION list environment secrets available for your current app ``` -_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/secret/list.ts)_ +_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/secret/list.ts)_ ## `eas secret:push` @@ -1115,7 +1117,7 @@ DESCRIPTION read environment secrets from env file and store on the server ``` -_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/secret/push.ts)_ +_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/secret/push.ts)_ ## `eas submit` @@ -1145,7 +1147,7 @@ ALIASES $ eas build:submit ``` -_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/submit.ts)_ +_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/submit.ts)_ ## `eas update` @@ -1179,7 +1181,7 @@ DESCRIPTION publish an update group ``` -_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/update/index.ts)_ +_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/update/index.ts)_ ## `eas update:configure` @@ -1197,7 +1199,7 @@ DESCRIPTION configure the project to support EAS Update ``` -_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/update/configure.ts)_ +_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/update/configure.ts)_ ## `eas update:delete GROUPID` @@ -1218,7 +1220,7 @@ DESCRIPTION delete all the updates in an update group ``` -_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/update/delete.ts)_ +_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/update/delete.ts)_ ## `eas update:list` @@ -1240,7 +1242,7 @@ DESCRIPTION view the recent updates ``` -_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/update/list.ts)_ +_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/update/list.ts)_ ## `eas update:republish` @@ -1267,7 +1269,7 @@ DESCRIPTION roll back to an existing update ``` -_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/update/republish.ts)_ +_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/update/republish.ts)_ ## `eas update:roll-back-to-embedded` @@ -1294,7 +1296,7 @@ DESCRIPTION roll back to the embedded update ``` -_See code: [src/commands/update/roll-back-to-embedded.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts)_ +_See code: [src/commands/update/roll-back-to-embedded.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts)_ ## `eas update:rollback` @@ -1313,7 +1315,7 @@ DESCRIPTION roll back to an embedded update or an existing update ``` -_See code: [src/commands/update/rollback.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/update/rollback.ts)_ +_See code: [src/commands/update/rollback.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/update/rollback.ts)_ ## `eas update:view GROUPID` @@ -1333,7 +1335,7 @@ DESCRIPTION update group details ``` -_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/update/view.ts)_ +_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/update/view.ts)_ ## `eas webhook:create` @@ -1354,7 +1356,7 @@ DESCRIPTION create a webhook ``` -_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/webhook/create.ts)_ +_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/webhook/create.ts)_ ## `eas webhook:delete [ID]` @@ -1374,7 +1376,7 @@ DESCRIPTION delete a webhook ``` -_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/webhook/delete.ts)_ +_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/webhook/delete.ts)_ ## `eas webhook:list` @@ -1392,7 +1394,7 @@ DESCRIPTION list webhooks ``` -_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/webhook/list.ts)_ +_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/webhook/list.ts)_ ## `eas webhook:update` @@ -1414,7 +1416,7 @@ DESCRIPTION update a webhook ``` -_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/webhook/update.ts)_ +_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/webhook/update.ts)_ ## `eas webhook:view ID` @@ -1431,7 +1433,7 @@ DESCRIPTION view a webhook ``` -_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.8.0/packages/eas-cli/src/commands/webhook/view.ts)_ +_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/webhook/view.ts)_ ## `eas whoami` diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index c2296d5577..c76bc00bea 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -1,7 +1,7 @@ { "name": "eas-cli", "description": "EAS command line tool", - "version": "5.8.0", + "version": "5.9.0", "author": "Expo ", "bin": { "eas": "./bin/run" From a541a2e53400632495e3bb843ed72cccc79b241a Mon Sep 17 00:00:00 2001 From: Expo CI Date: Wed, 15 Nov 2023 10:28:35 +0000 Subject: [PATCH 098/105] update CHANGELOG.md --- CHANGELOG.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7bbbfefe94..33c14e319c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,12 +8,16 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸŽ‰ New features -- Add `--profile` flag to `eas build:run` command. ([#2035](https://github.com/expo/eas-cli/pull/2035) by [@szdziedzic](https://github.com/szdziedzic)) - ### πŸ› Bug fixes ### 🧹 Chores +## [5.9.0](https://github.com/expo/eas-cli/releases/tag/v5.9.0) - 2023-11-15 + +### πŸŽ‰ New features + +- Add `--profile` flag to `eas build:run` command. ([#2035](https://github.com/expo/eas-cli/pull/2035) by [@szdziedzic](https://github.com/szdziedzic)) + ## [5.8.0](https://github.com/expo/eas-cli/releases/tag/v5.8.0) - 2023-11-13 ### πŸŽ‰ New features From 50d78b04d87b62fd5678f883530091a330c86976 Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Fri, 17 Nov 2023 12:41:00 +0100 Subject: [PATCH 099/105] [ENG-9772][eas-cli] don't ask user to install dev client if running in non-interactive mode (#2124) * [eas-cli] don't ask user to install dev client if running in non ineractive mode * update CHANGELOG.md --- CHANGELOG.md | 2 ++ packages/eas-cli/src/build/utils/devClient.ts | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 33c14e319c..42c5826b33 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ› Bug fixes +- Don't ask a user to install the dev client if running in non-interactive mode. ([#2124](https://github.com/expo/eas-cli/pull/2124) by [@szdziedzic](https://github.com/szdziedzic)) + ### 🧹 Chores ## [5.9.0](https://github.com/expo/eas-cli/releases/tag/v5.9.0) - 2023-11-15 diff --git a/packages/eas-cli/src/build/utils/devClient.ts b/packages/eas-cli/src/build/utils/devClient.ts index 45ad523280..206c6d6a2a 100644 --- a/packages/eas-cli/src/build/utils/devClient.ts +++ b/packages/eas-cli/src/build/utils/devClient.ts @@ -57,6 +57,19 @@ export async function ensureExpoDevClientInstalledForDevClientBuildsAsync({ 'expo-dev-client' )} installed for your project.` ); + if (nonInteractive) { + Log.error(`You'll need to install ${chalk.bold('expo-dev-client')} manually.`); + Log.error( + learnMore('https://docs.expo.dev/clients/installation/', { + learnMoreMessage: 'See installation instructions on how to do it.', + dim: false, + }) + ); + Errors.error(`Install ${chalk.bold('expo-dev-client')} manually and try again later.`, { + exit: 1, + }); + } + const areAllManaged = workflowPerPlatformList.every(i => i === Workflow.MANAGED); if (areAllManaged) { const install = await confirmAsync({ From 1db76a1b2db5735116a0f3247172eced53d8506e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rados=C5=82aw=20Krzemie=C5=84?= Date: Mon, 20 Nov 2023 12:17:24 +0100 Subject: [PATCH 100/105] [eas-cli] Always refresh provisioning profile (#2125) * [eas-cli] Always refresh provisioning profile There are other cases when the provisioning profile needs to be refreshed before use and which cannot be easily validated at runtime without bigger changes in the code. It is simpler (at least for the time being) to just refresh existing profile each time See: https://exponent-internal.slack.com/archives/C9PRD479V/p1700236895524379 https://exponent-internal.slack.com/archives/C9PRD479V/p1700229660146479 * [eas-cli] Fix test Added missing mock See: https://exponent-internal.slack.com/archives/C9PRD479V/p1700236895524379 https://exponent-internal.slack.com/archives/C9PRD479V/p1700229660146479 * update CHANGELOG.md --- CHANGELOG.md | 1 + .../actions/SetUpAdhocProvisioningProfile.ts | 18 +++++------------- .../SetUpAdhocProvisioningProfile-test.ts | 5 +++++ 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42c5826b33..8251bd1ea9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ› Bug fixes - Don't ask a user to install the dev client if running in non-interactive mode. ([#2124](https://github.com/expo/eas-cli/pull/2124) by [@szdziedzic](https://github.com/szdziedzic)) +- Always refresh existing provisioning profile before use. ([#2125](https://github.com/expo/eas-cli/pull/2125) by [@radoslawkrzemien](https://github.com/radoslawkrzemien)) ### 🧹 Chores diff --git a/packages/eas-cli/src/credentials/ios/actions/SetUpAdhocProvisioningProfile.ts b/packages/eas-cli/src/credentials/ios/actions/SetUpAdhocProvisioningProfile.ts index f6ef7ca2c9..37e975489b 100644 --- a/packages/eas-cli/src/credentials/ios/actions/SetUpAdhocProvisioningProfile.ts +++ b/packages/eas-cli/src/credentials/ios/actions/SetUpAdhocProvisioningProfile.ts @@ -6,7 +6,6 @@ import nullthrows from 'nullthrows'; import DeviceCreateAction, { RegistrationMethod } from '../../../devices/actions/create/action'; import { AppleAppIdentifierFragment, - AppleDevice, AppleDeviceFragment, AppleDistributionCertificateFragment, AppleProvisioningProfileFragment, @@ -147,15 +146,14 @@ export class SetUpAdhocProvisioningProfile { app, appleTeam ); - let appleProvisioningProfile: AppleProvisioningProfileFragment | null = null; + let appleProvisioningProfile: AppleProvisioningProfileFragment | null; if (currentBuildCredentials?.provisioningProfile) { appleProvisioningProfile = await this.reuseCurrentProvisioningProfileAsync( currentBuildCredentials.provisioningProfile, provisioningProfileStoreInfo, ctx, app, - appleAppIdentifier, - chosenDevices + appleAppIdentifier ); } else { appleProvisioningProfile = await ctx.ios.createProvisioningProfileAsync( @@ -202,8 +200,7 @@ export class SetUpAdhocProvisioningProfile { provisioningProfileStoreInfo: ProvisioningProfile, ctx: CredentialsContext, app: AppLookupParams, - appleAppIdentifier: AppleAppIdentifierFragment, - chosenDevices: AppleDevice[] + appleAppIdentifier: AppleAppIdentifierFragment ): Promise { if ( currentProvisioningProfile.developerPortalIdentifier !== @@ -222,10 +219,8 @@ export class SetUpAdhocProvisioningProfile { developerPortalIdentifier: provisioningProfileStoreInfo.provisioningProfileId, } ); - } else if ( - differenceBy(chosenDevices, currentProvisioningProfile.appleDevices, 'identifier').length > 0 - ) { - // If IDs match, but the devices lists don't, the profile needs to be updated first + } else { + // If not, the profile needs to be updated first return await ctx.ios.updateProvisioningProfileAsync( ctx.graphqlClient, currentProvisioningProfile.id, @@ -234,9 +229,6 @@ export class SetUpAdhocProvisioningProfile { developerPortalIdentifier: provisioningProfileStoreInfo.provisioningProfileId, } ); - } else { - // Otherwise the current profile can be reused - return currentProvisioningProfile; } } diff --git a/packages/eas-cli/src/credentials/ios/actions/__tests__/SetUpAdhocProvisioningProfile-test.ts b/packages/eas-cli/src/credentials/ios/actions/__tests__/SetUpAdhocProvisioningProfile-test.ts index 40f623385c..bbdf4e32cb 100644 --- a/packages/eas-cli/src/credentials/ios/actions/__tests__/SetUpAdhocProvisioningProfile-test.ts +++ b/packages/eas-cli/src/credentials/ios/actions/__tests__/SetUpAdhocProvisioningProfile-test.ts @@ -126,6 +126,11 @@ describe('runWithDistributionCertificateAsync', () => { developerPortalIdentifier: 'provisioningProfileId', }, } as IosAppBuildCredentialsFragment); + ctx.ios.updateProvisioningProfileAsync = jest.fn().mockResolvedValue({ + appleTeam: {}, + appleDevices: [{ identifier: 'id1' }, { identifier: 'id2' }, { identifier: 'id3' }], + developerPortalIdentifier: 'provisioningProfileId', + }); const LogWarnSpy = jest.spyOn(Log, 'warn'); const LogLogSpy = jest.spyOn(Log, 'log'); const result = await setUpAdhocProvisioningProfile.runWithDistributionCertificateAsync( From 8817842b72d3604955e69e5be5c374a65de9802f Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Mon, 20 Nov 2023 12:18:46 +0100 Subject: [PATCH 101/105] v5.9.1 --- lerna.json | 2 +- packages/eas-cli/README.md | 114 +++++++++++++++++----------------- packages/eas-cli/package.json | 2 +- 3 files changed, 59 insertions(+), 59 deletions(-) diff --git a/lerna.json b/lerna.json index 38c926ff4d..e11353257e 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "npmClient": "yarn", "useWorkspaces": true, - "version": "5.9.0", + "version": "5.9.1", "$schema": "node_modules/lerna/schemas/lerna-schema.json" } diff --git a/packages/eas-cli/README.md b/packages/eas-cli/README.md index a83983ad9f..c737fa8cc1 100644 --- a/packages/eas-cli/README.md +++ b/packages/eas-cli/README.md @@ -135,7 +135,7 @@ ALIASES $ eas login ``` -_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/account/login.ts)_ +_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/account/login.ts)_ ## `eas account:logout` @@ -152,7 +152,7 @@ ALIASES $ eas logout ``` -_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/account/logout.ts)_ +_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/account/logout.ts)_ ## `eas account:view` @@ -169,7 +169,7 @@ ALIASES $ eas whoami ``` -_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/account/view.ts)_ +_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/account/view.ts)_ ## `eas analytics [STATUS]` @@ -183,7 +183,7 @@ DESCRIPTION display or change analytics settings ``` -_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/analytics.ts)_ +_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/analytics.ts)_ ## `eas autocomplete [SHELL]` @@ -233,7 +233,7 @@ DESCRIPTION create a branch ``` -_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/branch/create.ts)_ +_See code: [src/commands/branch/create.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/branch/create.ts)_ ## `eas branch:delete [NAME]` @@ -254,7 +254,7 @@ DESCRIPTION delete a branch ``` -_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/branch/delete.ts)_ +_See code: [src/commands/branch/delete.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/branch/delete.ts)_ ## `eas branch:list` @@ -274,7 +274,7 @@ DESCRIPTION list all branches ``` -_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/branch/list.ts)_ +_See code: [src/commands/branch/list.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/branch/list.ts)_ ## `eas branch:rename` @@ -294,7 +294,7 @@ DESCRIPTION rename a branch ``` -_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/branch/rename.ts)_ +_See code: [src/commands/branch/rename.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/branch/rename.ts)_ ## `eas branch:view [NAME]` @@ -317,7 +317,7 @@ DESCRIPTION view a branch ``` -_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/branch/view.ts)_ +_See code: [src/commands/branch/view.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/branch/view.ts)_ ## `eas build` @@ -347,7 +347,7 @@ DESCRIPTION start a build ``` -_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/index.ts)_ +_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/build/index.ts)_ ## `eas build:cancel [BUILD_ID]` @@ -364,7 +364,7 @@ DESCRIPTION cancel a build ``` -_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/cancel.ts)_ +_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/build/cancel.ts)_ ## `eas build:configure` @@ -381,7 +381,7 @@ DESCRIPTION configure the project to support EAS Build ``` -_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/configure.ts)_ +_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/build/configure.ts)_ ## `eas build:inspect` @@ -416,7 +416,7 @@ DESCRIPTION inspect the state of the project at specific build stages, useful for troubleshooting ``` -_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/inspect.ts)_ +_See code: [src/commands/build/inspect.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/build/inspect.ts)_ ## `eas build:list` @@ -454,7 +454,7 @@ DESCRIPTION list all builds for your project ``` -_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/list.ts)_ +_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/build/list.ts)_ ## `eas build:resign` @@ -480,7 +480,7 @@ DESCRIPTION re-sign a build archive ``` -_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/resign.ts)_ +_See code: [src/commands/build/resign.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/build/resign.ts)_ ## `eas build:run` @@ -506,7 +506,7 @@ DESCRIPTION run simulator/emulator builds from eas-cli ``` -_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/run.ts)_ +_See code: [src/commands/build/run.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/build/run.ts)_ ## `eas build:submit` @@ -555,7 +555,7 @@ DESCRIPTION get the latest version from EAS servers ``` -_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/version/get.ts)_ +_See code: [src/commands/build/version/get.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/build/version/get.ts)_ ## `eas build:version:set` @@ -574,7 +574,7 @@ DESCRIPTION update version of an app ``` -_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/version/set.ts)_ +_See code: [src/commands/build/version/set.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/build/version/set.ts)_ ## `eas build:version:sync` @@ -593,7 +593,7 @@ DESCRIPTION update a version in native code with a value stored on EAS servers ``` -_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/version/sync.ts)_ +_See code: [src/commands/build/version/sync.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/build/version/sync.ts)_ ## `eas build:view [BUILD_ID]` @@ -610,7 +610,7 @@ DESCRIPTION view a build for your project ``` -_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/build/view.ts)_ +_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/build/view.ts)_ ## `eas channel:create [NAME]` @@ -631,7 +631,7 @@ DESCRIPTION create a channel ``` -_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/channel/create.ts)_ +_See code: [src/commands/channel/create.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/channel/create.ts)_ ## `eas channel:edit [NAME]` @@ -653,7 +653,7 @@ DESCRIPTION point a channel at a new branch ``` -_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/channel/edit.ts)_ +_See code: [src/commands/channel/edit.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/channel/edit.ts)_ ## `eas channel:list` @@ -673,7 +673,7 @@ DESCRIPTION list all channels ``` -_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/channel/list.ts)_ +_See code: [src/commands/channel/list.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/channel/list.ts)_ ## `eas channel:rollout [CHANNEL]` @@ -705,7 +705,7 @@ DESCRIPTION Roll a new branch out on a channel incrementally. ``` -_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/channel/rollout.ts)_ +_See code: [src/commands/channel/rollout.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/channel/rollout.ts)_ ## `eas channel:view [NAME]` @@ -728,7 +728,7 @@ DESCRIPTION view a channel ``` -_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/channel/view.ts)_ +_See code: [src/commands/channel/view.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/channel/view.ts)_ ## `eas config` @@ -749,7 +749,7 @@ DESCRIPTION display project configuration (app.json + eas.json) ``` -_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/config.ts)_ +_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/config.ts)_ ## `eas credentials` @@ -766,7 +766,7 @@ DESCRIPTION manage credentials ``` -_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/credentials.ts)_ +_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/credentials.ts)_ ## `eas device:create` @@ -780,7 +780,7 @@ DESCRIPTION register new Apple Devices to use for internal distribution ``` -_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/device/create.ts)_ +_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/device/create.ts)_ ## `eas device:delete` @@ -800,7 +800,7 @@ DESCRIPTION remove a registered device from your account ``` -_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/device/delete.ts)_ +_See code: [src/commands/device/delete.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/device/delete.ts)_ ## `eas device:list` @@ -821,7 +821,7 @@ DESCRIPTION list all registered devices for your account ``` -_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/device/list.ts)_ +_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/device/list.ts)_ ## `eas device:rename` @@ -842,7 +842,7 @@ DESCRIPTION rename a registered device ``` -_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/device/rename.ts)_ +_See code: [src/commands/device/rename.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/device/rename.ts)_ ## `eas device:view [UDID]` @@ -856,7 +856,7 @@ DESCRIPTION view a device for your project ``` -_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/device/view.ts)_ +_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/device/view.ts)_ ## `eas diagnostics` @@ -870,7 +870,7 @@ DESCRIPTION display environment info ``` -_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/diagnostics.ts)_ +_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/diagnostics.ts)_ ## `eas help [COMMAND]` @@ -958,7 +958,7 @@ DESCRIPTION validate the local store configuration ``` -_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/metadata/lint.ts)_ +_See code: [src/commands/metadata/lint.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/metadata/lint.ts)_ ## `eas metadata:pull` @@ -975,7 +975,7 @@ DESCRIPTION generate the local store configuration from the app stores ``` -_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/metadata/pull.ts)_ +_See code: [src/commands/metadata/pull.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/metadata/pull.ts)_ ## `eas metadata:push` @@ -992,7 +992,7 @@ DESCRIPTION sync the local store configuration to the app stores ``` -_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/metadata/push.ts)_ +_See code: [src/commands/metadata/push.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/metadata/push.ts)_ ## `eas open` @@ -1006,7 +1006,7 @@ DESCRIPTION open the project page in a web browser ``` -_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/open.ts)_ +_See code: [src/commands/open.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/open.ts)_ ## `eas project:info` @@ -1020,7 +1020,7 @@ DESCRIPTION information about the current project ``` -_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/project/info.ts)_ +_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/project/info.ts)_ ## `eas project:init` @@ -1042,7 +1042,7 @@ ALIASES $ eas init ``` -_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/project/init.ts)_ +_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/project/init.ts)_ ## `eas secret:create` @@ -1065,7 +1065,7 @@ DESCRIPTION create an environment secret on the current project or owner account ``` -_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/secret/create.ts)_ +_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/secret/create.ts)_ ## `eas secret:delete` @@ -1083,7 +1083,7 @@ DESCRIPTION delete an environment secret by ID ``` -_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/secret/delete.ts)_ +_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/secret/delete.ts)_ ## `eas secret:list` @@ -1097,7 +1097,7 @@ DESCRIPTION list environment secrets available for your current app ``` -_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/secret/list.ts)_ +_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/secret/list.ts)_ ## `eas secret:push` @@ -1117,7 +1117,7 @@ DESCRIPTION read environment secrets from env file and store on the server ``` -_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/secret/push.ts)_ +_See code: [src/commands/secret/push.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/secret/push.ts)_ ## `eas submit` @@ -1147,7 +1147,7 @@ ALIASES $ eas build:submit ``` -_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/submit.ts)_ +_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/submit.ts)_ ## `eas update` @@ -1181,7 +1181,7 @@ DESCRIPTION publish an update group ``` -_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/update/index.ts)_ +_See code: [src/commands/update/index.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/update/index.ts)_ ## `eas update:configure` @@ -1199,7 +1199,7 @@ DESCRIPTION configure the project to support EAS Update ``` -_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/update/configure.ts)_ +_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/update/configure.ts)_ ## `eas update:delete GROUPID` @@ -1220,7 +1220,7 @@ DESCRIPTION delete all the updates in an update group ``` -_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/update/delete.ts)_ +_See code: [src/commands/update/delete.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/update/delete.ts)_ ## `eas update:list` @@ -1242,7 +1242,7 @@ DESCRIPTION view the recent updates ``` -_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/update/list.ts)_ +_See code: [src/commands/update/list.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/update/list.ts)_ ## `eas update:republish` @@ -1269,7 +1269,7 @@ DESCRIPTION roll back to an existing update ``` -_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/update/republish.ts)_ +_See code: [src/commands/update/republish.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/update/republish.ts)_ ## `eas update:roll-back-to-embedded` @@ -1296,7 +1296,7 @@ DESCRIPTION roll back to the embedded update ``` -_See code: [src/commands/update/roll-back-to-embedded.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts)_ +_See code: [src/commands/update/roll-back-to-embedded.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/update/roll-back-to-embedded.ts)_ ## `eas update:rollback` @@ -1315,7 +1315,7 @@ DESCRIPTION roll back to an embedded update or an existing update ``` -_See code: [src/commands/update/rollback.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/update/rollback.ts)_ +_See code: [src/commands/update/rollback.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/update/rollback.ts)_ ## `eas update:view GROUPID` @@ -1335,7 +1335,7 @@ DESCRIPTION update group details ``` -_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/update/view.ts)_ +_See code: [src/commands/update/view.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/update/view.ts)_ ## `eas webhook:create` @@ -1356,7 +1356,7 @@ DESCRIPTION create a webhook ``` -_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/webhook/create.ts)_ +_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/webhook/create.ts)_ ## `eas webhook:delete [ID]` @@ -1376,7 +1376,7 @@ DESCRIPTION delete a webhook ``` -_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/webhook/delete.ts)_ +_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/webhook/delete.ts)_ ## `eas webhook:list` @@ -1394,7 +1394,7 @@ DESCRIPTION list webhooks ``` -_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/webhook/list.ts)_ +_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/webhook/list.ts)_ ## `eas webhook:update` @@ -1416,7 +1416,7 @@ DESCRIPTION update a webhook ``` -_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/webhook/update.ts)_ +_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/webhook/update.ts)_ ## `eas webhook:view ID` @@ -1433,7 +1433,7 @@ DESCRIPTION view a webhook ``` -_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.9.0/packages/eas-cli/src/commands/webhook/view.ts)_ +_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v5.9.1/packages/eas-cli/src/commands/webhook/view.ts)_ ## `eas whoami` diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index c76bc00bea..df4dbf0d96 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -1,7 +1,7 @@ { "name": "eas-cli", "description": "EAS command line tool", - "version": "5.9.0", + "version": "5.9.1", "author": "Expo ", "bin": { "eas": "./bin/run" From 5b46476175f81c3239d258cbb656c5c1d1a4a6c5 Mon Sep 17 00:00:00 2001 From: Expo CI Date: Mon, 20 Nov 2023 11:25:56 +0000 Subject: [PATCH 102/105] update CHANGELOG.md --- CHANGELOG.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8251bd1ea9..8b63973439 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,11 +10,15 @@ This is the log of notable changes to EAS CLI and related packages. ### πŸ› Bug fixes +### 🧹 Chores + +## [5.9.1](https://github.com/expo/eas-cli/releases/tag/v5.9.1) - 2023-11-20 + +### πŸ› Bug fixes + - Don't ask a user to install the dev client if running in non-interactive mode. ([#2124](https://github.com/expo/eas-cli/pull/2124) by [@szdziedzic](https://github.com/szdziedzic)) - Always refresh existing provisioning profile before use. ([#2125](https://github.com/expo/eas-cli/pull/2125) by [@radoslawkrzemien](https://github.com/radoslawkrzemien)) -### 🧹 Chores - ## [5.9.0](https://github.com/expo/eas-cli/releases/tag/v5.9.0) - 2023-11-15 ### πŸŽ‰ New features From 8c8b354beede7dbbddf8444416fb72e11a509e4f Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Wed, 22 Nov 2023 18:28:51 +0100 Subject: [PATCH 103/105] [ENG-10464][eas-cli] throw error if custom build config is gitignored (#2123) * [eas-cli] throw error if custom build config is gitignored * update CHANGELOG.md --- CHANGELOG.md | 2 ++ .../eas-cli/src/build/runBuildAndSubmit.ts | 6 ++++- .../eas-cli/src/project/customBuildConfig.ts | 22 +++++++++++++++---- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b63973439..aeccb2d319 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ This is the log of notable changes to EAS CLI and related packages. ### 🧹 Chores +- Throw error if custom build config is gitignored. ([#2123](https://github.com/expo/eas-cli/pull/2123) by [@szdziedzic](https://github.com/szdziedzic)) + ## [5.9.1](https://github.com/expo/eas-cli/releases/tag/v5.9.1) - 2023-11-20 ### πŸ› Bug fixes diff --git a/packages/eas-cli/src/build/runBuildAndSubmit.ts b/packages/eas-cli/src/build/runBuildAndSubmit.ts index 58b23213ed..15b6e61375 100644 --- a/packages/eas-cli/src/build/runBuildAndSubmit.ts +++ b/packages/eas-cli/src/build/runBuildAndSubmit.ts @@ -143,7 +143,11 @@ export async function runBuildAndSubmitAsync( {}; for (const buildProfile of buildProfiles) { validateBuildProfileVersionSettings(buildProfile, easJsonCliConfig); - const maybeMetadata = await validateCustomBuildConfigAsync(projectDir, buildProfile.profile); + const maybeMetadata = await validateCustomBuildConfigAsync({ + projectDir, + profile: buildProfile.profile, + vcsClient, + }); if (maybeMetadata) { customBuildConfigMetadataByPlatform[toAppPlatform(buildProfile.platform)] = maybeMetadata; } diff --git a/packages/eas-cli/src/project/customBuildConfig.ts b/packages/eas-cli/src/project/customBuildConfig.ts index 87dff85f84..7b46dc2ab6 100644 --- a/packages/eas-cli/src/project/customBuildConfig.ts +++ b/packages/eas-cli/src/project/customBuildConfig.ts @@ -5,14 +5,21 @@ import chalk from 'chalk'; import fs from 'fs-extra'; import path from 'path'; +import { Client } from '../vcs/vcs'; + export interface CustomBuildConfigMetadata { workflowName?: string; } -export async function validateCustomBuildConfigAsync( - projectDir: string, - profile: BuildProfile -): Promise { +export async function validateCustomBuildConfigAsync({ + profile, + projectDir, + vcsClient, +}: { + projectDir: string; + profile: BuildProfile; + vcsClient: Client; +}): Promise { if (!profile.config) { return undefined; } @@ -24,6 +31,13 @@ export async function validateCustomBuildConfigAsync( `Custom build configuration file ${chalk.bold(relativeConfigPath)} does not exist.` ); } + if (await vcsClient.isFileIgnoredAsync(relativeConfigPath)) { + throw new Error( + `Custom build configuration file ${chalk.bold( + relativeConfigPath + )} is ignored by your version control system. Remove it from the ignore list to successfully create custom build.` + ); + } try { const config = await readAndValidateBuildConfigAsync(configPath, { From ffa45bbefad68b9c173a277f56f9f95284424e5e Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Mon, 27 Nov 2023 18:16:25 +0100 Subject: [PATCH 104/105] [eas-cli] bump @expo/steps version (#2130) * [eas-cli] bump @expo/steps version * update CHANGELOG.md --- CHANGELOG.md | 1 + packages/eas-cli/package.json | 2 +- yarn.lock | 18 +++++++++--------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aeccb2d319..96c866442f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ This is the log of notable changes to EAS CLI and related packages. ### 🧹 Chores - Throw error if custom build config is gitignored. ([#2123](https://github.com/expo/eas-cli/pull/2123) by [@szdziedzic](https://github.com/szdziedzic)) +- Update `@expo/steps` library to `1.0.51`. ([#2130](https://github.com/expo/eas-cli/pull/2130) by [@szdziedzic](https://github.com/szdziedzic)) ## [5.9.1](https://github.com/expo/eas-cli/releases/tag/v5.9.1) - 2023-11-20 diff --git a/packages/eas-cli/package.json b/packages/eas-cli/package.json index df4dbf0d96..757c78d523 100644 --- a/packages/eas-cli/package.json +++ b/packages/eas-cli/package.json @@ -27,7 +27,7 @@ "@expo/results": "1.0.0", "@expo/rudder-sdk-node": "1.1.1", "@expo/spawn-async": "1.7.0", - "@expo/steps": "1.0.34", + "@expo/steps": "1.0.51", "@expo/timeago.js": "1.0.0", "@oclif/core": "1.23.2", "@oclif/plugin-autocomplete": "1.3.10", diff --git a/yarn.lock b/yarn.lock index 570570761a..373e0c1011 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1279,10 +1279,10 @@ json5 "^2.2.2" write-file-atomic "^2.3.0" -"@expo/logger@1.0.30": - version "1.0.30" - resolved "https://registry.yarnpkg.com/@expo/logger/-/logger-1.0.30.tgz#f964cc7b73cbb0c05de44c874a9451f5cfd2ec2d" - integrity sha512-8wEUDZNLAv+Wi4jvo0kFErQ7nc4ZFfArq5GDeSCoIrRfdKK8baot7YJoJVsmpQ9/JXnTEAgwGDP3vYaR5wzcyg== +"@expo/logger@1.0.37": + version "1.0.37" + resolved "https://registry.yarnpkg.com/@expo/logger/-/logger-1.0.37.tgz#79b2336d4e9ed70bd19a53168eb91d6a899f11d8" + integrity sha512-Xx3pt7FCsUkjsnu3lJoGp/LXYqoa5TyYx1/lgvfz4NSRgUT+5f6LNiYIowUjXab80PbW3gA/KqHYY9V7iZm8aQ== dependencies: "@types/bunyan" "^1.8.8" bunyan "^1.8.15" @@ -1418,12 +1418,12 @@ dependencies: cross-spawn "^7.0.3" -"@expo/steps@1.0.34": - version "1.0.34" - resolved "https://registry.yarnpkg.com/@expo/steps/-/steps-1.0.34.tgz#ba2f27a9d3e163b2d0fe6ef7775b237f7d18a286" - integrity sha512-jQoxeMWWl2mUwLGyiUD38z/FNao2jbDP8Tjvkr/YAfIOHaro36E3Vmn1YsKTYmtc41TGcFdCzqly95faRNrhvQ== +"@expo/steps@1.0.51": + version "1.0.51" + resolved "https://registry.yarnpkg.com/@expo/steps/-/steps-1.0.51.tgz#79aad4eb556e38a9f1c21703ebbea3af4f068807" + integrity sha512-S+2ESok2+kMjqWqJIK6p7Uk3aXf0hEbl7x10n1QBQdFzpkQmcNmpyNguOiFYyaj9dRleG2aPbwCv942m37VQWw== dependencies: - "@expo/logger" "1.0.30" + "@expo/logger" "1.0.37" "@expo/spawn-async" "^1.7.2" arg "^5.0.2" fs-extra "^11.1.1" From 0cd0c8c5bd5f4019d2a9658d258f6179df083031 Mon Sep 17 00:00:00 2001 From: Szymon Dziedzic Date: Tue, 28 Nov 2023 13:58:03 +0100 Subject: [PATCH 105/105] [eas-json] move ubuntu 18 images to ubuntu 20 (#2137) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [eas-json] move ubuntu 18 images to ubuntu 20 * update CHANGELOG.md * Update CHANGELOG.md Co-authored-by: StanisΕ‚aw Chmiela --------- Co-authored-by: StanisΕ‚aw Chmiela --- CHANGELOG.md | 1 + packages/eas-json/schema/eas.schema.json | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 96c866442f..d4ae94b3ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ This is the log of notable changes to EAS CLI and related packages. - Throw error if custom build config is gitignored. ([#2123](https://github.com/expo/eas-cli/pull/2123) by [@szdziedzic](https://github.com/szdziedzic)) - Update `@expo/steps` library to `1.0.51`. ([#2130](https://github.com/expo/eas-cli/pull/2130) by [@szdziedzic](https://github.com/szdziedzic)) +- Update `eas.schema.json` to include changes after some of our images were migrated from Ubuntu 18.04 to Ubuntu 20.04. ([#2137](https://github.com/expo/eas-cli/pull/2137) by [@szdziedzic](https://github.com/szdziedzic)) ## [5.9.1](https://github.com/expo/eas-cli/releases/tag/v5.9.1) - 2023-11-20 diff --git a/packages/eas-json/schema/eas.schema.json b/packages/eas-json/schema/eas.schema.json index 4e99c2b49a..405194f867 100644 --- a/packages/eas-json/schema/eas.schema.json +++ b/packages/eas-json/schema/eas.schema.json @@ -243,11 +243,11 @@ "ubuntu-22.04-jdk-8-ndk-r21e", "ubuntu-20.04-jdk-11-ndk-r21e", "ubuntu-20.04-jdk-8-ndk-r21e", - "ubuntu-18.04-jdk-11-ndk-r19c", - "ubuntu-18.04-jdk-8-ndk-r19c" + "ubuntu-20.04-jdk-11-ndk-r19c", + "ubuntu-20.04-jdk-8-ndk-r19c" ], "markdownEnumDescriptions": [ - "- React Native `>=0.68.0` - `ubuntu-22.04-jdk-11-ndk-r21e`\n- React Native `<0.68.0` - `ubuntu-18.04-jdk-8-ndk-r19c`", + "- React Native `>=0.68.0` - `ubuntu-22.04-jdk-11-ndk-r21e`\n- React Native `<0.68.0` - `ubuntu-20.04-jdk-8-ndk-r19c`", "`ubuntu-22.04-jdk-17-ndk-r21e`", "`ubuntu-22.04-jdk-11-ndk-r21e`" ]