eas-cli 18.9.1 → 18.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/README.md +223 -93
  2. package/build/build/utils/repository.js +7 -3
  3. package/build/commandUtils/convex.d.ts +11 -0
  4. package/build/commandUtils/convex.js +71 -0
  5. package/build/commands/build/resign.js +0 -1
  6. package/build/commands/integrations/convex/connect.d.ts +24 -0
  7. package/build/commands/integrations/convex/connect.js +258 -0
  8. package/build/commands/integrations/convex/dashboard.d.ts +9 -0
  9. package/build/commands/integrations/convex/dashboard.js +42 -0
  10. package/build/commands/integrations/convex/project/delete.d.ts +13 -0
  11. package/build/commands/integrations/convex/project/delete.js +65 -0
  12. package/build/commands/integrations/convex/project.d.ts +9 -0
  13. package/build/commands/integrations/convex/project.js +28 -0
  14. package/build/commands/integrations/convex/team/delete.d.ts +17 -0
  15. package/build/commands/integrations/convex/team/delete.js +93 -0
  16. package/build/commands/integrations/convex/team/invite.d.ts +19 -0
  17. package/build/commands/integrations/convex/team/invite.js +108 -0
  18. package/build/commands/integrations/convex/team.d.ts +9 -0
  19. package/build/commands/integrations/convex/team.js +35 -0
  20. package/build/fingerprint/cli.js +1 -0
  21. package/build/graphql/generated.d.ts +241 -1
  22. package/build/graphql/mutations/ConvexMutation.d.ts +10 -0
  23. package/build/graphql/mutations/ConvexMutation.js +89 -0
  24. package/build/graphql/queries/ConvexQuery.d.ts +6 -0
  25. package/build/graphql/queries/ConvexQuery.js +49 -0
  26. package/build/graphql/types/ConvexTeamConnection.d.ts +11 -0
  27. package/build/graphql/types/ConvexTeamConnection.js +42 -0
  28. package/oclif.manifest.json +3828 -3280
  29. package/package.json +4 -4
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const core_1 = require("@oclif/core");
5
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
+ const EasCommand_1 = tslib_1.__importDefault(require("../../../../commandUtils/EasCommand"));
7
+ const convex_1 = require("../../../../commandUtils/convex");
8
+ const flags_1 = require("../../../../commandUtils/flags");
9
+ const ConvexMutation_1 = require("../../../../graphql/mutations/ConvexMutation");
10
+ const ConvexQuery_1 = require("../../../../graphql/queries/ConvexQuery");
11
+ const log_1 = tslib_1.__importStar(require("../../../../log"));
12
+ const ora_1 = require("../../../../ora");
13
+ const projectUtils_1 = require("../../../../project/projectUtils");
14
+ const prompts_1 = require("../../../../prompts");
15
+ class IntegrationsConvexTeamDelete extends EasCommand_1.default {
16
+ static description = "remove a Convex team link from the current Expo app owner account's EAS servers";
17
+ static args = {
18
+ CONVEX_TEAM: core_1.Args.string({
19
+ required: false,
20
+ description: 'Slug of the Convex team to remove',
21
+ }),
22
+ };
23
+ static flags = {
24
+ ...flags_1.EASNonInteractiveFlag,
25
+ yes: core_1.Flags.boolean({
26
+ char: 'y',
27
+ description: 'Skip confirmation prompt',
28
+ default: false,
29
+ }),
30
+ };
31
+ static contextDefinition = {
32
+ ...this.ContextOptions.ProjectConfig,
33
+ };
34
+ async runAsync() {
35
+ const { args: { CONVEX_TEAM: team }, flags: { 'non-interactive': nonInteractive, yes }, } = await this.parse(IntegrationsConvexTeamDelete);
36
+ const { privateProjectConfig: { projectId }, loggedIn: { graphqlClient }, } = await this.getContextAsync(IntegrationsConvexTeamDelete, {
37
+ nonInteractive,
38
+ withServerSideEnvironment: null,
39
+ });
40
+ const account = await (0, projectUtils_1.getOwnerAccountForProjectIdAsync)(graphqlClient, projectId);
41
+ const connections = await ConvexQuery_1.ConvexQuery.getConvexTeamConnectionsByAccountIdAsync(graphqlClient, account.id);
42
+ if (connections.length === 0) {
43
+ (0, convex_1.logNoConvexTeams)(account.name);
44
+ return;
45
+ }
46
+ const connection = await this.resolveConnectionAsync(connections, team, nonInteractive);
47
+ log_1.default.addNewLineIfNone();
48
+ log_1.default.log((0, convex_1.formatConvexTeamConnection)(connection));
49
+ log_1.default.newLine();
50
+ const dashboardUrl = (0, convex_1.getConvexTeamDashboardUrl)(connection);
51
+ if (!nonInteractive && !yes) {
52
+ const confirmed = await (0, prompts_1.confirmAsync)({
53
+ message: `Remove this Convex team link from EAS servers? This does not destroy resources on Convex. Convex dashboard: ${(0, log_1.link)(dashboardUrl, { dim: false })}`,
54
+ });
55
+ if (!confirmed) {
56
+ log_1.default.error('Canceled deletion of the Convex team link');
57
+ return;
58
+ }
59
+ }
60
+ else {
61
+ log_1.default.warn(`Removing the Convex team link from EAS servers. This does not destroy resources on Convex: ${dashboardUrl}`);
62
+ }
63
+ const spinner = (0, ora_1.ora)('Removing Convex team link').start();
64
+ try {
65
+ await ConvexMutation_1.ConvexMutation.deleteConvexTeamConnectionAsync(graphqlClient, connection.id);
66
+ spinner.succeed(`Removed Convex team ${chalk_1.default.bold((0, convex_1.formatConvexTeam)(connection))} from EAS servers`);
67
+ }
68
+ catch (error) {
69
+ spinner.fail('Failed to remove Convex team link');
70
+ throw error;
71
+ }
72
+ }
73
+ async resolveConnectionAsync(connections, team, nonInteractive) {
74
+ if (team) {
75
+ const connection = connections.find(item => item.convexTeamSlug === team || item.convexTeamName === team || item.id === team);
76
+ if (!connection) {
77
+ throw new Error(`Convex team ${team} is not linked to this account.`);
78
+ }
79
+ return connection;
80
+ }
81
+ if (connections.length === 1) {
82
+ return connections[0];
83
+ }
84
+ if (nonInteractive) {
85
+ throw new Error('Convex team slug must be provided in non-interactive mode when multiple Convex team links exist.');
86
+ }
87
+ return await (0, prompts_1.selectAsync)('Select a Convex team link to remove', connections.map(connection => ({
88
+ title: (0, convex_1.formatConvexTeam)(connection),
89
+ value: connection,
90
+ })));
91
+ }
92
+ }
93
+ exports.default = IntegrationsConvexTeamDelete;
@@ -0,0 +1,19 @@
1
+ import EasCommand from '../../../../commandUtils/EasCommand';
2
+ export default class IntegrationsConvexTeamInvite extends EasCommand {
3
+ static description: string;
4
+ static args: {
5
+ CONVEX_TEAM: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
6
+ };
7
+ static flags: {
8
+ 'non-interactive': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
+ };
10
+ static contextDefinition: {
11
+ loggedIn: import("../../../../commandUtils/context/LoggedInContextField").default;
12
+ privateProjectConfig: import("../../../../commandUtils/context/PrivateProjectConfigContextField").PrivateProjectConfigContextField;
13
+ };
14
+ runAsync(): Promise<void>;
15
+ private getActorEmail;
16
+ private logTeam;
17
+ private logPreviousInvite;
18
+ private resolveConnectionAsync;
19
+ }
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const core_1 = require("@oclif/core");
5
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
+ const EasCommand_1 = tslib_1.__importDefault(require("../../../../commandUtils/EasCommand"));
7
+ const convex_1 = require("../../../../commandUtils/convex");
8
+ const flags_1 = require("../../../../commandUtils/flags");
9
+ const ConvexMutation_1 = require("../../../../graphql/mutations/ConvexMutation");
10
+ const ConvexQuery_1 = require("../../../../graphql/queries/ConvexQuery");
11
+ const log_1 = tslib_1.__importStar(require("../../../../log"));
12
+ const ora_1 = require("../../../../ora");
13
+ const projectUtils_1 = require("../../../../project/projectUtils");
14
+ const prompts_1 = require("../../../../prompts");
15
+ class IntegrationsConvexTeamInvite extends EasCommand_1.default {
16
+ static description = 'send a Convex team invitation to your verified email address';
17
+ static args = {
18
+ CONVEX_TEAM: core_1.Args.string({
19
+ required: false,
20
+ description: 'Slug of the Convex team to invite yourself to',
21
+ }),
22
+ };
23
+ static flags = {
24
+ ...flags_1.EASNonInteractiveFlag,
25
+ };
26
+ static contextDefinition = {
27
+ ...this.ContextOptions.ProjectConfig,
28
+ };
29
+ async runAsync() {
30
+ const { args: { CONVEX_TEAM: team }, flags: { 'non-interactive': nonInteractive }, } = await this.parse(IntegrationsConvexTeamInvite);
31
+ const { privateProjectConfig: { projectId }, loggedIn: { graphqlClient, actor }, } = await this.getContextAsync(IntegrationsConvexTeamInvite, {
32
+ nonInteractive,
33
+ withServerSideEnvironment: null,
34
+ });
35
+ const email = this.getActorEmail(actor);
36
+ if (!email) {
37
+ log_1.default.warn(`Could not determine your verified email address, so no Convex team invitation was sent. Run ${chalk_1.default.cyan('eas integrations:convex:team:invite')} after signing in with a user account.`);
38
+ return;
39
+ }
40
+ const account = await (0, projectUtils_1.getOwnerAccountForProjectIdAsync)(graphqlClient, projectId);
41
+ const connections = await ConvexQuery_1.ConvexQuery.getConvexTeamConnectionsByAccountIdAsync(graphqlClient, account.id);
42
+ if (connections.length === 0) {
43
+ (0, convex_1.logNoConvexTeams)(account.name);
44
+ return;
45
+ }
46
+ const connection = await this.resolveConnectionAsync(connections, team, nonInteractive);
47
+ log_1.default.addNewLineIfNone();
48
+ this.logTeam(connection);
49
+ this.logPreviousInvite(connection);
50
+ log_1.default.newLine();
51
+ if (!(await (0, convex_1.confirmRecentConvexInviteAsync)(connection, { nonInteractive }))) {
52
+ log_1.default.warn('Skipped sending Convex team invitation.');
53
+ return;
54
+ }
55
+ const spinner = (0, ora_1.ora)(`Sending Convex team invitation to ${email}`).start();
56
+ try {
57
+ await ConvexMutation_1.ConvexMutation.sendConvexTeamInviteToVerifiedEmailAsync(graphqlClient, {
58
+ convexTeamConnectionId: connection.id,
59
+ });
60
+ spinner.succeed(`Sent Convex team invitation to ${chalk_1.default.bold(email)} for ${chalk_1.default.bold((0, convex_1.formatConvexTeam)(connection))}`);
61
+ log_1.default.log(`Convex dashboard: ${(0, log_1.link)((0, convex_1.getConvexTeamDashboardUrl)(connection), { dim: false })}`);
62
+ }
63
+ catch (error) {
64
+ spinner.fail('Failed to send Convex team invitation');
65
+ throw error;
66
+ }
67
+ }
68
+ getActorEmail(actor) {
69
+ return 'email' in actor && typeof actor.email === 'string' ? actor.email : null;
70
+ }
71
+ logTeam(connection) {
72
+ log_1.default.log(chalk_1.default.bold(`Convex team ${(0, convex_1.formatConvexTeam)(connection)}`));
73
+ log_1.default.log(`${chalk_1.default.bold('Dashboard')}: ${(0, log_1.link)((0, convex_1.getConvexTeamDashboardUrl)(connection), { dim: false })}`);
74
+ }
75
+ logPreviousInvite(connection) {
76
+ if (!connection.invitedEmail && !connection.invitedAt) {
77
+ return;
78
+ }
79
+ log_1.default.newLine();
80
+ log_1.default.log(chalk_1.default.bold('Previous invite'));
81
+ if (connection.invitedEmail) {
82
+ log_1.default.log(`${chalk_1.default.bold('Email')}: ${connection.invitedEmail}`);
83
+ }
84
+ if (connection.invitedAt) {
85
+ log_1.default.log(`${chalk_1.default.bold('Sent at')}: ${connection.invitedAt}`);
86
+ }
87
+ }
88
+ async resolveConnectionAsync(connections, team, nonInteractive) {
89
+ if (team) {
90
+ const connection = connections.find(item => item.convexTeamSlug === team || item.convexTeamName === team || item.id === team);
91
+ if (!connection) {
92
+ throw new Error(`Convex team ${team} is not linked to this account.`);
93
+ }
94
+ return connection;
95
+ }
96
+ if (connections.length === 1) {
97
+ return connections[0];
98
+ }
99
+ if (nonInteractive) {
100
+ throw new Error('Convex team slug must be provided in non-interactive mode when multiple Convex team links exist.');
101
+ }
102
+ return await (0, prompts_1.selectAsync)('Select a Convex team link to invite yourself to', connections.map(connection => ({
103
+ title: (0, convex_1.formatConvexTeam)(connection),
104
+ value: connection,
105
+ })));
106
+ }
107
+ }
108
+ exports.default = IntegrationsConvexTeamInvite;
@@ -0,0 +1,9 @@
1
+ import EasCommand from '../../../commandUtils/EasCommand';
2
+ export default class IntegrationsConvexTeam extends EasCommand {
3
+ static description: string;
4
+ static contextDefinition: {
5
+ loggedIn: import("../../../commandUtils/context/LoggedInContextField").default;
6
+ privateProjectConfig: import("../../../commandUtils/context/PrivateProjectConfigContextField").PrivateProjectConfigContextField;
7
+ };
8
+ runAsync(): Promise<void>;
9
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
5
+ const EasCommand_1 = tslib_1.__importDefault(require("../../../commandUtils/EasCommand"));
6
+ const convex_1 = require("../../../commandUtils/convex");
7
+ const ConvexQuery_1 = require("../../../graphql/queries/ConvexQuery");
8
+ const log_1 = tslib_1.__importDefault(require("../../../log"));
9
+ const projectUtils_1 = require("../../../project/projectUtils");
10
+ class IntegrationsConvexTeam extends EasCommand_1.default {
11
+ static description = "display Convex teams linked to the current Expo app's owner account";
12
+ static contextDefinition = {
13
+ ...this.ContextOptions.ProjectConfig,
14
+ };
15
+ async runAsync() {
16
+ const { privateProjectConfig: { projectId }, loggedIn: { graphqlClient }, } = await this.getContextAsync(IntegrationsConvexTeam, {
17
+ nonInteractive: false,
18
+ withServerSideEnvironment: null,
19
+ });
20
+ const account = await (0, projectUtils_1.getOwnerAccountForProjectIdAsync)(graphqlClient, projectId);
21
+ const connections = await ConvexQuery_1.ConvexQuery.getConvexTeamConnectionsByAccountIdAsync(graphqlClient, account.id);
22
+ if (connections.length === 0) {
23
+ (0, convex_1.logNoConvexTeams)(account.name);
24
+ return;
25
+ }
26
+ log_1.default.log(chalk_1.default.bold(`Convex teams linked to @${account.name}`));
27
+ for (const [index, connection] of connections.entries()) {
28
+ if (index > 0) {
29
+ log_1.default.newLine();
30
+ }
31
+ log_1.default.log((0, convex_1.formatConvexTeamConnection)(connection));
32
+ }
33
+ }
34
+ }
35
+ exports.default = IntegrationsConvexTeam;
@@ -69,6 +69,7 @@ async function createFingerprintWithoutLoggingAsync(projectDir, fingerprintPath,
69
69
  if (options.debug) {
70
70
  fingerprintOptions.debug = true;
71
71
  }
72
+ fingerprintOptions.silent = true;
72
73
  return await withTemporaryEnvAsync(options.env ?? {}, () => Fingerprint.createFingerprintAsync(projectDir, fingerprintOptions));
73
74
  }
74
75
  async function withTemporaryEnvAsync(envVars, fn) {
@@ -3075,6 +3075,7 @@ export type Build = ActivityTimelineProjectActivity & BuildOrBuildJob & {
3075
3075
  releaseChannel?: Maybe<Scalars['String']['output']>;
3076
3076
  requiredPackageManager?: Maybe<Scalars['String']['output']>;
3077
3077
  resolvedEnvironment?: Maybe<Scalars['EnvironmentVariableEnvironment']['output']>;
3078
+ resolvedImage?: Maybe<Scalars['String']['output']>;
3078
3079
  /**
3079
3080
  * The builder resource class requested by the developer
3080
3081
  * @deprecated Use resourceClassDisplayName instead
@@ -3088,7 +3089,7 @@ export type Build = ActivityTimelineProjectActivity & BuildOrBuildJob & {
3088
3089
  /** @deprecated Use 'runtime' field instead. */
3089
3090
  runtimeVersion?: Maybe<Scalars['String']['output']>;
3090
3091
  sdkVersion?: Maybe<Scalars['String']['output']>;
3091
- /** @deprecated Check logs instead. */
3092
+ /** @deprecated Use 'resolvedImage' for the concrete image the build runs on. */
3092
3093
  selectedImage?: Maybe<Scalars['String']['output']>;
3093
3094
  status: BuildStatus;
3094
3095
  submissions: Array<Submission>;
@@ -3602,12 +3603,27 @@ export type ConvexProject = {
3602
3603
  id: Scalars['ID']['output'];
3603
3604
  updatedAt: Scalars['DateTime']['output'];
3604
3605
  };
3606
+ export type ConvexProjectMutation = {
3607
+ __typename?: 'ConvexProjectMutation';
3608
+ deleteConvexProject: Scalars['ID']['output'];
3609
+ setupConvexProject: SetupConvexProjectResult;
3610
+ };
3611
+ export type ConvexProjectMutationDeleteConvexProjectArgs = {
3612
+ convexProjectId: Scalars['ID']['input'];
3613
+ };
3614
+ export type ConvexProjectMutationSetupConvexProjectArgs = {
3615
+ input: SetupConvexProjectInput;
3616
+ };
3605
3617
  export type ConvexTeamConnection = {
3606
3618
  __typename?: 'ConvexTeamConnection';
3607
3619
  account: Account;
3608
3620
  convexTeamIdentifier: Scalars['String']['output'];
3621
+ convexTeamName: Scalars['String']['output'];
3622
+ convexTeamSlug: Scalars['String']['output'];
3609
3623
  createdAt: Scalars['DateTime']['output'];
3610
3624
  id: Scalars['ID']['output'];
3625
+ invitedAt?: Maybe<Scalars['DateTime']['output']>;
3626
+ invitedEmail?: Maybe<Scalars['String']['output']>;
3611
3627
  updatedAt: Scalars['DateTime']['output'];
3612
3628
  };
3613
3629
  export type ConvexTeamConnectionMutation = {
@@ -6593,6 +6609,7 @@ export type RootMutation = {
6593
6609
  build: BuildMutation;
6594
6610
  /** Mutations that create, update, and delete Build Annotations */
6595
6611
  buildAnnotation: BuildAnnotationMutation;
6612
+ convexProject: ConvexProjectMutation;
6596
6613
  convexTeamConnection: ConvexTeamConnectionMutation;
6597
6614
  customDomain: CustomDomainMutation;
6598
6615
  deployments: DeploymentsMutation;
@@ -7119,6 +7136,19 @@ export type SentryProjectMutationCreateSentryProjectArgs = {
7119
7136
  export type SentryProjectMutationDeleteSentryProjectArgs = {
7120
7137
  sentryProjectId: Scalars['ID']['input'];
7121
7138
  };
7139
+ export type SetupConvexProjectInput = {
7140
+ appId: Scalars['ID']['input'];
7141
+ convexTeamConnectionId: Scalars['ID']['input'];
7142
+ deploymentRegion?: InputMaybe<Scalars['String']['input']>;
7143
+ projectName: Scalars['String']['input'];
7144
+ };
7145
+ export type SetupConvexProjectResult = {
7146
+ __typename?: 'SetupConvexProjectResult';
7147
+ convexDeploymentName: Scalars['String']['output'];
7148
+ convexDeploymentUrl: Scalars['String']['output'];
7149
+ convexProject: ConvexProject;
7150
+ deployKey: Scalars['String']['output'];
7151
+ };
7122
7152
  export type SizeBreakdownCategory = {
7123
7153
  __typename?: 'SizeBreakdownCategory';
7124
7154
  assetCount: Scalars['Int']['output'];
@@ -7394,6 +7424,7 @@ export type SubscriptionDetails = {
7394
7424
  endedAt?: Maybe<Scalars['DateTime']['output']>;
7395
7425
  futureSubscription?: Maybe<FutureSubscription>;
7396
7426
  id: Scalars['ID']['output'];
7427
+ includedAgentCreditsInCents: Scalars['Int']['output'];
7397
7428
  isDowngrading?: Maybe<Scalars['Boolean']['output']>;
7398
7429
  meteredBillingStatus: MeteredBillingStatus;
7399
7430
  name?: Maybe<Scalars['String']['output']>;
@@ -13886,6 +13917,101 @@ export type RetryIosBuildMutation = {
13886
13917
  };
13887
13918
  };
13888
13919
  };
13920
+ export type CreateConvexTeamConnectionMutationVariables = Exact<{
13921
+ convexTeamConnectionData: CreateConvexTeamConnectionInput;
13922
+ }>;
13923
+ export type CreateConvexTeamConnectionMutation = {
13924
+ __typename?: 'RootMutation';
13925
+ convexTeamConnection: {
13926
+ __typename?: 'ConvexTeamConnectionMutation';
13927
+ createConvexTeamConnection: {
13928
+ __typename?: 'ConvexTeamConnection';
13929
+ id: string;
13930
+ convexTeamIdentifier: string;
13931
+ convexTeamName: string;
13932
+ convexTeamSlug: string;
13933
+ createdAt: any;
13934
+ updatedAt: any;
13935
+ invitedAt?: any | null;
13936
+ invitedEmail?: string | null;
13937
+ };
13938
+ };
13939
+ };
13940
+ export type DeleteConvexTeamConnectionMutationVariables = Exact<{
13941
+ convexTeamConnectionId: Scalars['ID']['input'];
13942
+ }>;
13943
+ export type DeleteConvexTeamConnectionMutation = {
13944
+ __typename?: 'RootMutation';
13945
+ convexTeamConnection: {
13946
+ __typename?: 'ConvexTeamConnectionMutation';
13947
+ deleteConvexTeamConnection: {
13948
+ __typename?: 'ConvexTeamConnection';
13949
+ id: string;
13950
+ convexTeamIdentifier: string;
13951
+ convexTeamName: string;
13952
+ convexTeamSlug: string;
13953
+ createdAt: any;
13954
+ updatedAt: any;
13955
+ invitedAt?: any | null;
13956
+ invitedEmail?: string | null;
13957
+ };
13958
+ };
13959
+ };
13960
+ export type SetupConvexProjectMutationVariables = Exact<{
13961
+ input: SetupConvexProjectInput;
13962
+ }>;
13963
+ export type SetupConvexProjectMutation = {
13964
+ __typename?: 'RootMutation';
13965
+ convexProject: {
13966
+ __typename?: 'ConvexProjectMutation';
13967
+ setupConvexProject: {
13968
+ __typename?: 'SetupConvexProjectResult';
13969
+ convexDeploymentName: string;
13970
+ convexDeploymentUrl: string;
13971
+ deployKey: string;
13972
+ convexProject: {
13973
+ __typename?: 'ConvexProject';
13974
+ id: string;
13975
+ convexProjectIdentifier: string;
13976
+ convexProjectName: string;
13977
+ convexProjectSlug: string;
13978
+ createdAt: any;
13979
+ updatedAt: any;
13980
+ convexTeamConnection: {
13981
+ __typename?: 'ConvexTeamConnection';
13982
+ id: string;
13983
+ convexTeamIdentifier: string;
13984
+ convexTeamName: string;
13985
+ convexTeamSlug: string;
13986
+ createdAt: any;
13987
+ updatedAt: any;
13988
+ invitedAt?: any | null;
13989
+ invitedEmail?: string | null;
13990
+ };
13991
+ };
13992
+ };
13993
+ };
13994
+ };
13995
+ export type DeleteConvexProjectMutationVariables = Exact<{
13996
+ convexProjectId: Scalars['ID']['input'];
13997
+ }>;
13998
+ export type DeleteConvexProjectMutation = {
13999
+ __typename?: 'RootMutation';
14000
+ convexProject: {
14001
+ __typename?: 'ConvexProjectMutation';
14002
+ deleteConvexProject: string;
14003
+ };
14004
+ };
14005
+ export type SendConvexTeamInviteToVerifiedEmailMutationVariables = Exact<{
14006
+ input: SendConvexTeamInviteToVerifiedEmailInput;
14007
+ }>;
14008
+ export type SendConvexTeamInviteToVerifiedEmailMutation = {
14009
+ __typename?: 'RootMutation';
14010
+ convexTeamConnection: {
14011
+ __typename?: 'ConvexTeamConnectionMutation';
14012
+ sendConvexTeamInviteToVerifiedEmail: boolean;
14013
+ };
14014
+ };
13889
14015
  export type CreateDeviceRunSessionMutationVariables = Exact<{
13890
14016
  deviceRunSessionInput: CreateDeviceRunSessionInput;
13891
14017
  }>;
@@ -16301,6 +16427,63 @@ export type ViewUpdateChannelsPaginatedOnAppQuery = {
16301
16427
  };
16302
16428
  };
16303
16429
  };
16430
+ export type ConvexTeamConnectionsByAccountIdQueryVariables = Exact<{
16431
+ accountId: Scalars['String']['input'];
16432
+ }>;
16433
+ export type ConvexTeamConnectionsByAccountIdQuery = {
16434
+ __typename?: 'RootQuery';
16435
+ account: {
16436
+ __typename?: 'AccountQuery';
16437
+ byId: {
16438
+ __typename?: 'Account';
16439
+ id: string;
16440
+ convexTeamConnections: Array<{
16441
+ __typename?: 'ConvexTeamConnection';
16442
+ id: string;
16443
+ convexTeamIdentifier: string;
16444
+ convexTeamName: string;
16445
+ convexTeamSlug: string;
16446
+ createdAt: any;
16447
+ updatedAt: any;
16448
+ invitedAt?: any | null;
16449
+ invitedEmail?: string | null;
16450
+ }>;
16451
+ };
16452
+ };
16453
+ };
16454
+ export type ConvexProjectByAppIdQueryVariables = Exact<{
16455
+ appId: Scalars['String']['input'];
16456
+ }>;
16457
+ export type ConvexProjectByAppIdQuery = {
16458
+ __typename?: 'RootQuery';
16459
+ app: {
16460
+ __typename?: 'AppQuery';
16461
+ byId: {
16462
+ __typename?: 'App';
16463
+ id: string;
16464
+ convexProject?: {
16465
+ __typename?: 'ConvexProject';
16466
+ id: string;
16467
+ convexProjectIdentifier: string;
16468
+ convexProjectName: string;
16469
+ convexProjectSlug: string;
16470
+ createdAt: any;
16471
+ updatedAt: any;
16472
+ convexTeamConnection: {
16473
+ __typename?: 'ConvexTeamConnection';
16474
+ id: string;
16475
+ convexTeamIdentifier: string;
16476
+ convexTeamName: string;
16477
+ convexTeamSlug: string;
16478
+ createdAt: any;
16479
+ updatedAt: any;
16480
+ invitedAt?: any | null;
16481
+ invitedEmail?: string | null;
16482
+ };
16483
+ } | null;
16484
+ };
16485
+ };
16486
+ };
16304
16487
  export type DeviceRunSessionByIdQueryVariables = Exact<{
16305
16488
  deviceRunSessionId: Scalars['ID']['input'];
16306
16489
  }>;
@@ -18567,6 +18750,63 @@ export type BuildWithFingerprintFragment = {
18567
18750
  buildDuration?: number | null;
18568
18751
  } | null;
18569
18752
  };
18753
+ export type ConvexTeamConnectionFragment = {
18754
+ __typename?: 'ConvexTeamConnection';
18755
+ id: string;
18756
+ convexTeamIdentifier: string;
18757
+ convexTeamName: string;
18758
+ convexTeamSlug: string;
18759
+ createdAt: any;
18760
+ updatedAt: any;
18761
+ invitedAt?: any | null;
18762
+ invitedEmail?: string | null;
18763
+ };
18764
+ export type ConvexProjectFragment = {
18765
+ __typename?: 'ConvexProject';
18766
+ id: string;
18767
+ convexProjectIdentifier: string;
18768
+ convexProjectName: string;
18769
+ convexProjectSlug: string;
18770
+ createdAt: any;
18771
+ updatedAt: any;
18772
+ convexTeamConnection: {
18773
+ __typename?: 'ConvexTeamConnection';
18774
+ id: string;
18775
+ convexTeamIdentifier: string;
18776
+ convexTeamName: string;
18777
+ convexTeamSlug: string;
18778
+ createdAt: any;
18779
+ updatedAt: any;
18780
+ invitedAt?: any | null;
18781
+ invitedEmail?: string | null;
18782
+ };
18783
+ };
18784
+ export type SetupConvexProjectResultFragment = {
18785
+ __typename?: 'SetupConvexProjectResult';
18786
+ convexDeploymentName: string;
18787
+ convexDeploymentUrl: string;
18788
+ deployKey: string;
18789
+ convexProject: {
18790
+ __typename?: 'ConvexProject';
18791
+ id: string;
18792
+ convexProjectIdentifier: string;
18793
+ convexProjectName: string;
18794
+ convexProjectSlug: string;
18795
+ createdAt: any;
18796
+ updatedAt: any;
18797
+ convexTeamConnection: {
18798
+ __typename?: 'ConvexTeamConnection';
18799
+ id: string;
18800
+ convexTeamIdentifier: string;
18801
+ convexTeamName: string;
18802
+ convexTeamSlug: string;
18803
+ createdAt: any;
18804
+ updatedAt: any;
18805
+ invitedAt?: any | null;
18806
+ invitedEmail?: string | null;
18807
+ };
18808
+ };
18809
+ };
18570
18810
  export type EnvironmentSecretFragment = {
18571
18811
  __typename?: 'EnvironmentSecret';
18572
18812
  id: string;
@@ -0,0 +1,10 @@
1
+ import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient';
2
+ import { CreateConvexTeamConnectionInput, SendConvexTeamInviteToVerifiedEmailInput, SetupConvexProjectInput } from '../generated';
3
+ import { ConvexTeamConnectionData, SetupConvexProjectResultData } from '../types/ConvexTeamConnection';
4
+ export declare const ConvexMutation: {
5
+ createConvexTeamConnectionAsync(graphqlClient: ExpoGraphqlClient, input: CreateConvexTeamConnectionInput): Promise<ConvexTeamConnectionData>;
6
+ deleteConvexTeamConnectionAsync(graphqlClient: ExpoGraphqlClient, convexTeamConnectionId: string): Promise<ConvexTeamConnectionData>;
7
+ setupConvexProjectAsync(graphqlClient: ExpoGraphqlClient, input: SetupConvexProjectInput): Promise<SetupConvexProjectResultData>;
8
+ deleteConvexProjectAsync(graphqlClient: ExpoGraphqlClient, convexProjectId: string): Promise<string>;
9
+ sendConvexTeamInviteToVerifiedEmailAsync(graphqlClient: ExpoGraphqlClient, input: SendConvexTeamInviteToVerifiedEmailInput): Promise<boolean>;
10
+ };