eas-cli 18.8.0 → 18.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,5 +5,11 @@ export declare function getArtifactUrl(artifactId: string): string;
5
5
  export declare function getInternalDistributionInstallUrl(build: BuildFragment): string;
6
6
  export declare function getUpdateGroupUrl(accountName: string, projectName: string, updateGroupId: string): string;
7
7
  export declare function getWorkflowRunUrl(accountName: string, projectName: string, workflowRunId: string): string;
8
+ /**
9
+ * @deprecated Links to the raw job-run page; prefer a higher-level URL (e.g. the workflow run
10
+ * or the feature-specific dashboard) that gives users more context. Use this only for internal
11
+ * tooling where no richer URL exists.
12
+ */
13
+ export declare function getBareJobRunUrl(accountName: string, projectName: string, jobRunId: string): string;
8
14
  export declare function getProjectGitHubSettingsUrl(accountName: string, projectName: string): string;
9
15
  export declare function getHostingDeploymentsUrl(accountName: string, projectName: string): string;
@@ -6,6 +6,7 @@ exports.getArtifactUrl = getArtifactUrl;
6
6
  exports.getInternalDistributionInstallUrl = getInternalDistributionInstallUrl;
7
7
  exports.getUpdateGroupUrl = getUpdateGroupUrl;
8
8
  exports.getWorkflowRunUrl = getWorkflowRunUrl;
9
+ exports.getBareJobRunUrl = getBareJobRunUrl;
9
10
  exports.getProjectGitHubSettingsUrl = getProjectGitHubSettingsUrl;
10
11
  exports.getHostingDeploymentsUrl = getHostingDeploymentsUrl;
11
12
  const tslib_1 = require("tslib");
@@ -38,6 +39,14 @@ function getUpdateGroupUrl(accountName, projectName, updateGroupId) {
38
39
  function getWorkflowRunUrl(accountName, projectName, workflowRunId) {
39
40
  return new URL(`/accounts/${encodeURIComponent(accountName)}/projects/${encodeURIComponent(projectName)}/workflows/${workflowRunId}`, (0, api_1.getExpoWebsiteBaseUrl)()).toString();
40
41
  }
42
+ /**
43
+ * @deprecated Links to the raw job-run page; prefer a higher-level URL (e.g. the workflow run
44
+ * or the feature-specific dashboard) that gives users more context. Use this only for internal
45
+ * tooling where no richer URL exists.
46
+ */
47
+ function getBareJobRunUrl(accountName, projectName, jobRunId) {
48
+ return new URL(`/accounts/${encodeURIComponent(accountName)}/projects/${encodeURIComponent(projectName)}/job-runs/${encodeURIComponent(jobRunId)}`, (0, api_1.getExpoWebsiteBaseUrl)()).toString();
49
+ }
41
50
  function getProjectGitHubSettingsUrl(accountName, projectName) {
42
51
  return new URL(`/accounts/${encodeURIComponent(accountName)}/projects/${encodeURIComponent(projectName)}/github`, (0, api_1.getExpoWebsiteBaseUrl)()).toString();
43
52
  }
@@ -0,0 +1,16 @@
1
+ import EasCommand from '../../commandUtils/EasCommand';
2
+ export default class SimulatorStart extends EasCommand {
3
+ static hidden: boolean;
4
+ static description: string;
5
+ static flags: {
6
+ 'non-interactive': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
7
+ platform: import("@oclif/core/lib/interfaces").OptionFlag<"android" | "ios", import("@oclif/core/lib/interfaces").CustomOptions>;
8
+ type: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
9
+ 'package-version': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ };
11
+ static contextDefinition: {
12
+ loggedIn: import("../../commandUtils/context/LoggedInContextField").default;
13
+ projectId: import("../../commandUtils/context/ProjectIdContextField").ProjectIdContextField;
14
+ };
15
+ runAsync(): Promise<void>;
16
+ }
@@ -0,0 +1,203 @@
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 url_1 = require("../../build/utils/url");
6
+ const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
7
+ const flags_1 = require("../../commandUtils/flags");
8
+ const generated_1 = require("../../graphql/generated");
9
+ const DeviceRunSessionMutation_1 = require("../../graphql/mutations/DeviceRunSessionMutation");
10
+ const DeviceRunSessionQuery_1 = require("../../graphql/queries/DeviceRunSessionQuery");
11
+ const log_1 = tslib_1.__importStar(require("../../log"));
12
+ const ora_1 = require("../../ora");
13
+ const promise_1 = require("../../utils/promise");
14
+ const nullthrows_1 = tslib_1.__importDefault(require("nullthrows"));
15
+ const POLL_INTERVAL_MS = 5_000; // 5 seconds
16
+ const POLL_TIMEOUT_MS = 15 * 60 * 1_000; // 15 minutes
17
+ // Mapping enum → CLI flag value. Declared as Record<DeviceRunSessionType, string>
18
+ // so adding a new enum value in codegen fails the build until it is wired up here.
19
+ const DEVICE_RUN_SESSION_TYPE_FLAG_VALUES = {
20
+ [generated_1.DeviceRunSessionType.AgentDevice]: 'agent-device',
21
+ };
22
+ const DEVICE_RUN_SESSION_TYPE_BY_FLAG_VALUE = Object.fromEntries(Object.entries(DEVICE_RUN_SESSION_TYPE_FLAG_VALUES).map(([type, value]) => [value, type]));
23
+ class SimulatorStart extends EasCommand_1.default {
24
+ static hidden = true;
25
+ static description = '[EXPERIMENTAL] start a remote simulator session on EAS and get the credentials to connect to it with the CLI tool of your choice';
26
+ static flags = {
27
+ platform: core_1.Flags.option({
28
+ description: 'Device platform',
29
+ options: ['android', 'ios'],
30
+ required: true,
31
+ })(),
32
+ type: core_1.Flags.option({
33
+ description: 'Type of device run session to create',
34
+ options: Object.values(DEVICE_RUN_SESSION_TYPE_FLAG_VALUES),
35
+ default: DEVICE_RUN_SESSION_TYPE_FLAG_VALUES[generated_1.DeviceRunSessionType.AgentDevice],
36
+ })(),
37
+ 'package-version': core_1.Flags.string({
38
+ description: 'Version of the package backing the device run session (e.g. "0.1.3-alpha.3"). Defaults to "latest" when omitted.',
39
+ }),
40
+ ...flags_1.EASNonInteractiveFlag,
41
+ };
42
+ static contextDefinition = {
43
+ ...this.ContextOptions.ProjectId,
44
+ ...this.ContextOptions.LoggedIn,
45
+ };
46
+ async runAsync() {
47
+ const { flags } = await this.parse(SimulatorStart);
48
+ const { projectId, loggedIn: { graphqlClient }, } = await this.getContextAsync(SimulatorStart, {
49
+ nonInteractive: flags['non-interactive'],
50
+ });
51
+ const platform = flags.platform === 'android' ? generated_1.AppPlatform.Android : generated_1.AppPlatform.Ios;
52
+ const createSpinner = (0, ora_1.ora)('🚀 Creating device run session').start();
53
+ let deviceRunSessionId;
54
+ try {
55
+ const session = await DeviceRunSessionMutation_1.DeviceRunSessionMutation.createDeviceRunSessionAsync(graphqlClient, {
56
+ appId: projectId,
57
+ platform,
58
+ type: DEVICE_RUN_SESSION_TYPE_BY_FLAG_VALUE[flags.type],
59
+ packageVersion: flags['package-version'],
60
+ });
61
+ deviceRunSessionId = session.id;
62
+ const jobRunId = (0, nullthrows_1.default)(session.turtleJobRun?.id, 'Expected device run session to start');
63
+ const jobRunUrl = (0, url_1.getBareJobRunUrl)(session.app.ownerAccount.name, session.app.slug, jobRunId);
64
+ createSpinner.succeed(`Device run session created (id: ${deviceRunSessionId}) ${(0, log_1.link)(jobRunUrl)}`);
65
+ }
66
+ catch (err) {
67
+ createSpinner.fail('Failed to create device run session');
68
+ throw err;
69
+ }
70
+ const checkReadiness = getReadinessCheckerForType(flags.type);
71
+ const pollSpinner = (0, ora_1.ora)(`⏳ Waiting for ${flags.type} daemon to start`).start();
72
+ const deadline = Date.now() + POLL_TIMEOUT_MS;
73
+ let result = { ready: false };
74
+ try {
75
+ while (Date.now() < deadline) {
76
+ const session = await DeviceRunSessionQuery_1.DeviceRunSessionQuery.byIdAsync(graphqlClient, deviceRunSessionId);
77
+ if (session.status === generated_1.DeviceRunSessionStatus.Errored ||
78
+ session.status === generated_1.DeviceRunSessionStatus.Stopped) {
79
+ throw new Error(`Device run session ${deviceRunSessionId} ${session.status.toLowerCase()} before the ${flags.type} daemon was ready.`);
80
+ }
81
+ const jobRunStatus = session.turtleJobRun?.status;
82
+ if (jobRunStatus === generated_1.JobRunStatus.Errored ||
83
+ jobRunStatus === generated_1.JobRunStatus.Canceled ||
84
+ jobRunStatus === generated_1.JobRunStatus.Finished) {
85
+ throw new Error(`Turtle job run for device run session ${deviceRunSessionId} ${jobRunStatus.toLowerCase()} before the ${flags.type} daemon was ready.`);
86
+ }
87
+ const logMessages = await fetchLogMessagesAsync(session.turtleJobRun?.logFileUrls ?? []);
88
+ result = checkReadiness(logMessages);
89
+ if (result.ready) {
90
+ pollSpinner.succeed(`🎉 ${flags.type} daemon is ready`);
91
+ break;
92
+ }
93
+ await (0, promise_1.sleepAsync)(POLL_INTERVAL_MS);
94
+ }
95
+ }
96
+ catch (err) {
97
+ pollSpinner.fail(`Failed while polling for ${flags.type} daemon logs`);
98
+ throw err;
99
+ }
100
+ if (!result.ready) {
101
+ pollSpinner.fail(`Timed out waiting for ${flags.type} daemon to start`);
102
+ throw new Error(`Timed out after ${Math.round(POLL_TIMEOUT_MS / 1000)}s waiting for ${flags.type} daemon to start.`);
103
+ }
104
+ log_1.default.newLine();
105
+ log_1.default.log(`🔑 Run the following in your shell to attach to ${flags.type}:`);
106
+ log_1.default.newLine();
107
+ log_1.default.log(result.message);
108
+ }
109
+ }
110
+ exports.default = SimulatorStart;
111
+ function getReadinessCheckerForType(type) {
112
+ switch (type) {
113
+ case DEVICE_RUN_SESSION_TYPE_FLAG_VALUES[generated_1.DeviceRunSessionType.AgentDevice]:
114
+ return checkAgentDeviceReadiness;
115
+ default:
116
+ throw new Error(`Unsupported device run session type: ${type}`);
117
+ }
118
+ }
119
+ const AGENT_DEVICE_BASE_URL_ENV_VAR = 'AGENT_DEVICE_DAEMON_BASE_URL';
120
+ const AGENT_DEVICE_AUTH_TOKEN_ENV_VAR = 'AGENT_DEVICE_DAEMON_AUTH_TOKEN';
121
+ function checkAgentDeviceReadiness(logMessages) {
122
+ let baseUrl;
123
+ let authToken;
124
+ for (const msg of logMessages) {
125
+ baseUrl = baseUrl ?? extractExportedEnvValue(msg, AGENT_DEVICE_BASE_URL_ENV_VAR);
126
+ authToken = authToken ?? extractExportedEnvValue(msg, AGENT_DEVICE_AUTH_TOKEN_ENV_VAR);
127
+ if (baseUrl && authToken) {
128
+ break;
129
+ }
130
+ }
131
+ if (baseUrl && authToken) {
132
+ return {
133
+ ready: true,
134
+ message: [
135
+ `export ${AGENT_DEVICE_BASE_URL_ENV_VAR}='${baseUrl}'`,
136
+ `export ${AGENT_DEVICE_AUTH_TOKEN_ENV_VAR}='${authToken}'`,
137
+ ].join('\n'),
138
+ };
139
+ }
140
+ return { ready: false };
141
+ }
142
+ async function fetchLogMessagesAsync(logUrls) {
143
+ const messages = [];
144
+ for (const url of logUrls) {
145
+ const text = await fetchLogTextAsync(url);
146
+ if (!text) {
147
+ continue;
148
+ }
149
+ for (const line of text.split('\n')) {
150
+ if (!line.trim()) {
151
+ continue;
152
+ }
153
+ messages.push(extractLogMessage(line));
154
+ }
155
+ }
156
+ return messages;
157
+ }
158
+ async function fetchLogTextAsync(url) {
159
+ try {
160
+ const response = await fetch(url);
161
+ if (!response.ok) {
162
+ return undefined;
163
+ }
164
+ return await response.text();
165
+ }
166
+ catch {
167
+ return undefined;
168
+ }
169
+ }
170
+ function extractLogMessage(line) {
171
+ // Turtle job run logs are JSONL (bunyan-shaped), e.g.
172
+ // {"msg":"export FOO=\"bar\"","time":"...","logId":"..."}
173
+ // Fall back to the raw line if it's not JSON or doesn't have a string msg.
174
+ const trimmed = line.trim();
175
+ if (!trimmed.startsWith('{')) {
176
+ return line;
177
+ }
178
+ try {
179
+ const parsed = JSON.parse(trimmed);
180
+ if (parsed && typeof parsed === 'object' && 'msg' in parsed) {
181
+ const msg = parsed.msg;
182
+ if (typeof msg === 'string') {
183
+ return msg;
184
+ }
185
+ }
186
+ }
187
+ catch {
188
+ // not JSON, fall through
189
+ }
190
+ return line;
191
+ }
192
+ function extractExportedEnvValue(text, varName) {
193
+ // Matches: export NAME=value | export NAME="value" | export NAME='value'
194
+ const pattern = new RegExp(`export\\s+${escapeRegExp(varName)}=(?:"([^"]*)"|'([^']*)'|(\\S+))`);
195
+ const match = pattern.exec(text);
196
+ if (!match) {
197
+ return undefined;
198
+ }
199
+ return match[1] ?? match[2] ?? match[3];
200
+ }
201
+ function escapeRegExp(value) {
202
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
203
+ }
@@ -2437,6 +2437,19 @@ export type AppleDeviceRegistrationRequestMutationCreateAppleDeviceRegistrationR
2437
2437
  accountId: Scalars['ID']['input'];
2438
2438
  appleTeamId: Scalars['ID']['input'];
2439
2439
  };
2440
+ /** Publicly visible data for an AppleDeviceRegistrationRequest. */
2441
+ export type AppleDeviceRegistrationRequestPublicData = {
2442
+ __typename?: 'AppleDeviceRegistrationRequestPublicData';
2443
+ id: Scalars['ID']['output'];
2444
+ };
2445
+ export type AppleDeviceRegistrationRequestPublicDataQuery = {
2446
+ __typename?: 'AppleDeviceRegistrationRequestPublicDataQuery';
2447
+ /** Get AppleDeviceRegistrationRequest public data by ID */
2448
+ byId?: Maybe<AppleDeviceRegistrationRequestPublicData>;
2449
+ };
2450
+ export type AppleDeviceRegistrationRequestPublicDataQueryByIdArgs = {
2451
+ id: Scalars['ID']['input'];
2452
+ };
2440
2453
  export type AppleDeviceRegistrationRequestQuery = {
2441
2454
  __typename?: 'AppleDeviceRegistrationRequestQuery';
2442
2455
  byId: AppleDeviceRegistrationRequest;
@@ -3549,6 +3562,16 @@ export type CreateConvexTeamConnectionInput = {
3549
3562
  convexTeamName?: InputMaybe<Scalars['String']['input']>;
3550
3563
  deploymentRegion: Scalars['String']['input'];
3551
3564
  };
3565
+ export type CreateDeviceRunSessionInput = {
3566
+ appId: Scalars['ID']['input'];
3567
+ /**
3568
+ * The version of the package backing the device run session (e.g. "0.1.3-alpha.3").
3569
+ * If omitted, consumers treat the session as pinned to "latest".
3570
+ */
3571
+ packageVersion?: InputMaybe<Scalars['String']['input']>;
3572
+ platform: AppPlatform;
3573
+ type: DeviceRunSessionType;
3574
+ };
3552
3575
  export type CreateEchoChatInput = {
3553
3576
  agentMetadata?: InputMaybe<Scalars['JSONObject']['input']>;
3554
3577
  agentType?: InputMaybe<EchoAgentType>;
@@ -4045,6 +4068,54 @@ export type DeploymentsMutationDeleteWorkerDeploymentByIdentifierArgs = {
4045
4068
  appId: Scalars['ID']['input'];
4046
4069
  deploymentIdentifier: Scalars['ID']['input'];
4047
4070
  };
4071
+ export type DeviceRunSession = {
4072
+ __typename?: 'DeviceRunSession';
4073
+ app: App;
4074
+ createdAt: Scalars['DateTime']['output'];
4075
+ finishedAt?: Maybe<Scalars['DateTime']['output']>;
4076
+ id: Scalars['ID']['output'];
4077
+ initiatingActor?: Maybe<Actor>;
4078
+ /**
4079
+ * The version of the package backing the device run session. Null means the session is
4080
+ * pinned to "latest" at the consumer side.
4081
+ */
4082
+ packageVersion?: Maybe<Scalars['String']['output']>;
4083
+ platform: AppPlatform;
4084
+ startedAt?: Maybe<Scalars['DateTime']['output']>;
4085
+ status: DeviceRunSessionStatus;
4086
+ turtleJobRun?: Maybe<JobRun>;
4087
+ type: DeviceRunSessionType;
4088
+ updatedAt: Scalars['DateTime']['output'];
4089
+ };
4090
+ export type DeviceRunSessionMutation = {
4091
+ __typename?: 'DeviceRunSessionMutation';
4092
+ /** Create a device run session */
4093
+ createDeviceRunSession: DeviceRunSession;
4094
+ /** Stop a device run session */
4095
+ stopDeviceRunSession: DeviceRunSession;
4096
+ };
4097
+ export type DeviceRunSessionMutationCreateDeviceRunSessionArgs = {
4098
+ deviceRunSessionInput: CreateDeviceRunSessionInput;
4099
+ };
4100
+ export type DeviceRunSessionMutationStopDeviceRunSessionArgs = {
4101
+ deviceRunSessionId: Scalars['ID']['input'];
4102
+ };
4103
+ export type DeviceRunSessionQuery = {
4104
+ __typename?: 'DeviceRunSessionQuery';
4105
+ byId: DeviceRunSession;
4106
+ };
4107
+ export type DeviceRunSessionQueryByIdArgs = {
4108
+ deviceRunSessionId: Scalars['ID']['input'];
4109
+ };
4110
+ export declare enum DeviceRunSessionStatus {
4111
+ Errored = "ERRORED",
4112
+ InProgress = "IN_PROGRESS",
4113
+ New = "NEW",
4114
+ Stopped = "STOPPED"
4115
+ }
4116
+ export declare enum DeviceRunSessionType {
4117
+ AgentDevice = "AGENT_DEVICE"
4118
+ }
4048
4119
  export type DiscordUser = {
4049
4120
  __typename?: 'DiscordUser';
4050
4121
  discordIdentifier: Scalars['String']['output'];
@@ -4668,6 +4739,7 @@ export declare enum EntityTypeName {
4668
4739
  BillingContractEntity = "BillingContractEntity",
4669
4740
  BranchEntity = "BranchEntity",
4670
4741
  ChannelEntity = "ChannelEntity",
4742
+ ConvexTeamConnectionEntity = "ConvexTeamConnectionEntity",
4671
4743
  CustomerEntity = "CustomerEntity",
4672
4744
  EchoProjectEntity = "EchoProjectEntity",
4673
4745
  EchoVersionEntity = "EchoVersionEntity",
@@ -6402,6 +6474,8 @@ export type RootMutation = {
6402
6474
  deployments: DeploymentsMutation;
6403
6475
  /** Mutations that assign or modify DevDomainNames for apps */
6404
6476
  devDomainName: AppDevDomainNameMutation;
6477
+ /** Mutations that create and stop device run sessions */
6478
+ deviceRunSession: DeviceRunSessionMutation;
6405
6479
  /** Mutations for Discord users */
6406
6480
  discordUser: DiscordUserMutation;
6407
6481
  /** Mutations for Echo chats */
@@ -6530,6 +6604,8 @@ export type RootQuery = {
6530
6604
  appStoreConnectApiKey: AppStoreConnectApiKeyQuery;
6531
6605
  /** Top-level query object for querying Apple Device registration requests. */
6532
6606
  appleDeviceRegistrationRequest: AppleDeviceRegistrationRequestQuery;
6607
+ /** Top-level query object for querying AppleDeviceRegistrationRequest publicly. */
6608
+ appleDeviceRegistrationRequestPublicData: AppleDeviceRegistrationRequestPublicDataQuery;
6533
6609
  /** Top-level query object for querying Apple distribution certificates. */
6534
6610
  appleDistributionCertificate?: Maybe<AppleDistributionCertificateQuery>;
6535
6611
  /** Top-level query object for querying Apple provisioning profiles. */
@@ -6553,6 +6629,7 @@ export type RootQuery = {
6553
6629
  convexIntegration: ConvexIntegrationQuery;
6554
6630
  /** Top-level query object for querying Deployments. */
6555
6631
  deployments: DeploymentQuery;
6632
+ deviceRunSessions: DeviceRunSessionQuery;
6556
6633
  /** Top-level query object for querying Echo chats. */
6557
6634
  echoChat: EchoChatQuery;
6558
6635
  /** Top-level query object for querying Echo messages. */
@@ -13658,6 +13735,34 @@ export type RetryIosBuildMutation = {
13658
13735
  };
13659
13736
  };
13660
13737
  };
13738
+ export type CreateDeviceRunSessionMutationVariables = Exact<{
13739
+ deviceRunSessionInput: CreateDeviceRunSessionInput;
13740
+ }>;
13741
+ export type CreateDeviceRunSessionMutation = {
13742
+ __typename?: 'RootMutation';
13743
+ deviceRunSession: {
13744
+ __typename?: 'DeviceRunSessionMutation';
13745
+ createDeviceRunSession: {
13746
+ __typename?: 'DeviceRunSession';
13747
+ id: string;
13748
+ status: DeviceRunSessionStatus;
13749
+ app: {
13750
+ __typename?: 'App';
13751
+ id: string;
13752
+ slug: string;
13753
+ ownerAccount: {
13754
+ __typename?: 'Account';
13755
+ id: string;
13756
+ name: string;
13757
+ };
13758
+ };
13759
+ turtleJobRun?: {
13760
+ __typename?: 'JobRun';
13761
+ id: string;
13762
+ } | null;
13763
+ };
13764
+ };
13765
+ };
13661
13766
  export type CreateEnvironmentSecretForAccountMutationVariables = Exact<{
13662
13767
  input: CreateEnvironmentSecretInput;
13663
13768
  accountId: Scalars['String']['input'];
@@ -15953,6 +16058,26 @@ export type ViewUpdateChannelsPaginatedOnAppQuery = {
15953
16058
  };
15954
16059
  };
15955
16060
  };
16061
+ export type DeviceRunSessionByIdQueryVariables = Exact<{
16062
+ deviceRunSessionId: Scalars['ID']['input'];
16063
+ }>;
16064
+ export type DeviceRunSessionByIdQuery = {
16065
+ __typename?: 'RootQuery';
16066
+ deviceRunSessions: {
16067
+ __typename?: 'DeviceRunSessionQuery';
16068
+ byId: {
16069
+ __typename?: 'DeviceRunSession';
16070
+ id: string;
16071
+ status: DeviceRunSessionStatus;
16072
+ turtleJobRun?: {
16073
+ __typename?: 'JobRun';
16074
+ id: string;
16075
+ status: JobRunStatus;
16076
+ logFileUrls: Array<string>;
16077
+ } | null;
16078
+ };
16079
+ };
16080
+ };
15956
16081
  export type EnvironmentSecretsByAppIdQueryVariables = Exact<{
15957
16082
  appId: Scalars['String']['input'];
15958
16083
  }>;
@@ -6,9 +6,9 @@
6
6
  * For more info and docs, visit https://graphql-code-generator.com/
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.EasServiceMetric = exports.EasService = exports.EasBuildWaiverType = exports.EasBuildDeprecationInfoType = exports.EasBuildBillingResourceClass = exports.DistributionType = exports.DashboardViewPin = exports.CustomDomainStatus = exports.CustomDomainDnsRecordType = exports.CrashSampleFor = exports.ContinentCode = exports.BuildWorkflow = exports.BuildTrigger = exports.BuildStatus = exports.BuildRetryDisabledReason = exports.BuildResourceClass = exports.BuildPriority = exports.BuildPhase = exports.BuildMode = exports.BuildLimitThresholdExceededMetadataType = exports.BuildIosEnterpriseProvisioning = exports.BuildCredentialsSource = exports.BuildAnnotationType = exports.BackgroundJobState = exports.BackgroundJobResultType = exports.AuthProviderIdentifier = exports.AuthProtocolType = exports.AuditLogsExportFormat = exports.AssetMetadataStatus = exports.AssetMapSourceType = exports.AppsFilter = exports.AppleTeamType = exports.AppleDeviceClass = exports.AppUploadSessionType = exports.AppStoreConnectUserRole = exports.AppSort = exports.AppProfileImageWidth = exports.AppPrivacy = exports.AppPlatform = exports.AppObservePlatform = exports.AppObserveEventsOrderByField = exports.AppObserveEventsOrderByDirection = exports.AppInternalDistributionBuildPrivacy = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.AndroidBuildType = exports.ActivityTimelineProjectActivityType = exports.AccountUploadSessionType = exports.AccountMemberType = exports.AccountAppsSortByField = void 0;
10
- exports.ResponseCacheStatus = exports.ResourceClassExperiment = exports.RequestsOrderByField = exports.RequestsOrderByDirection = exports.RequestMethod = exports.ProjectArchiveSourceType = exports.Permission = exports.Order = exports.OnboardingEnvironment = exports.OnboardingDeviceType = exports.OfferType = exports.OAuthProvider = exports.NotificationType = exports.NotificationEvent = exports.LocalBuildArchiveSourceType = exports.JobRunStatus = exports.JobRunPriority = exports.IosSchemeBuildConfiguration = exports.IosManagedBuildType = exports.IosDistributionType = exports.IosBuildType = exports.InvoiceDiscountType = exports.InsightsFilterType = exports.GitHubJobRunTriggerType = exports.GitHubJobRunTriggerRunStatus = exports.GitHubJobRunJobType = exports.GitHubBuildTriggerType = exports.GitHubBuildTriggerRunStatus = exports.GitHubBuildTriggerExecutionBehavior = exports.GitHubAppInstallationStatus = exports.GitHubAppInstallationAccountType = exports.GitHubAppEnvironment = exports.FingerprintSourceType = exports.Feature = exports.Experiment = exports.EnvironmentVariableVisibility = exports.EnvironmentVariableScope = exports.EnvironmentSecretType = exports.EntityTypeName = exports.EchoVersionSource = exports.EchoProjectVisibility = exports.EchoProjectUploadSessionType = exports.EchoProjectIconSource = exports.EchoMessageRole = exports.EchoMessagePartType = exports.EchoChatState = exports.EchoChangeType = exports.EchoBuildStatus = exports.EchoAgentType = exports.EasTotalPlanEnablementUnit = void 0;
11
- exports.WorkflowsInsightsRunsOverTimeGranularity = exports.WorkflowsInsightsExportFormat = exports.WorkflowRunTriggerEventType = exports.WorkflowRunStatus = exports.WorkflowProjectSourceType = exports.WorkflowJobType = exports.WorkflowJobStatus = exports.WorkflowJobReviewDecision = exports.WorkflowDeviceTestCaseStatus = exports.WorkflowArtifactStorageType = exports.WorkerLoggerLevel = exports.WorkerDeploymentLogLevel = exports.WorkerDeploymentCrashKind = exports.WebhookType = exports.UserSpecifiedAccountUsage = exports.UserEntityTypeName = exports.UserAgentPlatform = exports.UserAgentOs = exports.UserAgentBrowser = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.UpdateDiffReceiptStateValue = exports.UpdateDiffReceiptOrderByField = exports.UpdateDiffReceiptOrderByDirection = exports.TargetEntityMutationType = exports.SubmissionStatus = exports.SubmissionPriority = exports.SubmissionArchiveSourceType = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StatuspageServiceStatus = exports.StatuspageServiceName = exports.StatuspageIncidentStatus = exports.StatuspageIncidentImpact = exports.StandardOffer = exports.SecondFactorMethod = exports.Role = exports.ResponseType = exports.ResponseStatusType = void 0;
9
+ exports.EasBuildWaiverType = exports.EasBuildDeprecationInfoType = exports.EasBuildBillingResourceClass = exports.DistributionType = exports.DeviceRunSessionType = exports.DeviceRunSessionStatus = exports.DashboardViewPin = exports.CustomDomainStatus = exports.CustomDomainDnsRecordType = exports.CrashSampleFor = exports.ContinentCode = exports.BuildWorkflow = exports.BuildTrigger = exports.BuildStatus = exports.BuildRetryDisabledReason = exports.BuildResourceClass = exports.BuildPriority = exports.BuildPhase = exports.BuildMode = exports.BuildLimitThresholdExceededMetadataType = exports.BuildIosEnterpriseProvisioning = exports.BuildCredentialsSource = exports.BuildAnnotationType = exports.BackgroundJobState = exports.BackgroundJobResultType = exports.AuthProviderIdentifier = exports.AuthProtocolType = exports.AuditLogsExportFormat = exports.AssetMetadataStatus = exports.AssetMapSourceType = exports.AppsFilter = exports.AppleTeamType = exports.AppleDeviceClass = exports.AppUploadSessionType = exports.AppStoreConnectUserRole = exports.AppSort = exports.AppProfileImageWidth = exports.AppPrivacy = exports.AppPlatform = exports.AppObservePlatform = exports.AppObserveEventsOrderByField = exports.AppObserveEventsOrderByDirection = exports.AppInternalDistributionBuildPrivacy = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.AndroidBuildType = exports.ActivityTimelineProjectActivityType = exports.AccountUploadSessionType = exports.AccountMemberType = exports.AccountAppsSortByField = void 0;
10
+ exports.RequestsOrderByField = exports.RequestsOrderByDirection = exports.RequestMethod = exports.ProjectArchiveSourceType = exports.Permission = exports.Order = exports.OnboardingEnvironment = exports.OnboardingDeviceType = exports.OfferType = exports.OAuthProvider = exports.NotificationType = exports.NotificationEvent = exports.LocalBuildArchiveSourceType = exports.JobRunStatus = exports.JobRunPriority = exports.IosSchemeBuildConfiguration = exports.IosManagedBuildType = exports.IosDistributionType = exports.IosBuildType = exports.InvoiceDiscountType = exports.InsightsFilterType = exports.GitHubJobRunTriggerType = exports.GitHubJobRunTriggerRunStatus = exports.GitHubJobRunJobType = exports.GitHubBuildTriggerType = exports.GitHubBuildTriggerRunStatus = exports.GitHubBuildTriggerExecutionBehavior = exports.GitHubAppInstallationStatus = exports.GitHubAppInstallationAccountType = exports.GitHubAppEnvironment = exports.FingerprintSourceType = exports.Feature = exports.Experiment = exports.EnvironmentVariableVisibility = exports.EnvironmentVariableScope = exports.EnvironmentSecretType = exports.EntityTypeName = exports.EchoVersionSource = exports.EchoProjectVisibility = exports.EchoProjectUploadSessionType = exports.EchoProjectIconSource = exports.EchoMessageRole = exports.EchoMessagePartType = exports.EchoChatState = exports.EchoChangeType = exports.EchoBuildStatus = exports.EchoAgentType = exports.EasTotalPlanEnablementUnit = exports.EasServiceMetric = exports.EasService = void 0;
11
+ exports.WorkflowsInsightsRunsOverTimeGranularity = exports.WorkflowsInsightsExportFormat = exports.WorkflowRunTriggerEventType = exports.WorkflowRunStatus = exports.WorkflowProjectSourceType = exports.WorkflowJobType = exports.WorkflowJobStatus = exports.WorkflowJobReviewDecision = exports.WorkflowDeviceTestCaseStatus = exports.WorkflowArtifactStorageType = exports.WorkerLoggerLevel = exports.WorkerDeploymentLogLevel = exports.WorkerDeploymentCrashKind = exports.WebhookType = exports.UserSpecifiedAccountUsage = exports.UserEntityTypeName = exports.UserAgentPlatform = exports.UserAgentOs = exports.UserAgentBrowser = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.UpdateDiffReceiptStateValue = exports.UpdateDiffReceiptOrderByField = exports.UpdateDiffReceiptOrderByDirection = exports.TargetEntityMutationType = exports.SubmissionStatus = exports.SubmissionPriority = exports.SubmissionArchiveSourceType = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StatuspageServiceStatus = exports.StatuspageServiceName = exports.StatuspageIncidentStatus = exports.StatuspageIncidentImpact = exports.StandardOffer = exports.SecondFactorMethod = exports.Role = exports.ResponseType = exports.ResponseStatusType = exports.ResponseCacheStatus = exports.ResourceClassExperiment = void 0;
12
12
  var AccountAppsSortByField;
13
13
  (function (AccountAppsSortByField) {
14
14
  AccountAppsSortByField["LatestActivityTime"] = "LATEST_ACTIVITY_TIME";
@@ -363,6 +363,17 @@ var DashboardViewPin;
363
363
  DashboardViewPin["Activity"] = "ACTIVITY";
364
364
  DashboardViewPin["Overview"] = "OVERVIEW";
365
365
  })(DashboardViewPin || (exports.DashboardViewPin = DashboardViewPin = {}));
366
+ var DeviceRunSessionStatus;
367
+ (function (DeviceRunSessionStatus) {
368
+ DeviceRunSessionStatus["Errored"] = "ERRORED";
369
+ DeviceRunSessionStatus["InProgress"] = "IN_PROGRESS";
370
+ DeviceRunSessionStatus["New"] = "NEW";
371
+ DeviceRunSessionStatus["Stopped"] = "STOPPED";
372
+ })(DeviceRunSessionStatus || (exports.DeviceRunSessionStatus = DeviceRunSessionStatus = {}));
373
+ var DeviceRunSessionType;
374
+ (function (DeviceRunSessionType) {
375
+ DeviceRunSessionType["AgentDevice"] = "AGENT_DEVICE";
376
+ })(DeviceRunSessionType || (exports.DeviceRunSessionType = DeviceRunSessionType = {}));
366
377
  var DistributionType;
367
378
  (function (DistributionType) {
368
379
  DistributionType["Internal"] = "INTERNAL";
@@ -494,6 +505,7 @@ var EntityTypeName;
494
505
  EntityTypeName["BillingContractEntity"] = "BillingContractEntity";
495
506
  EntityTypeName["BranchEntity"] = "BranchEntity";
496
507
  EntityTypeName["ChannelEntity"] = "ChannelEntity";
508
+ EntityTypeName["ConvexTeamConnectionEntity"] = "ConvexTeamConnectionEntity";
497
509
  EntityTypeName["CustomerEntity"] = "CustomerEntity";
498
510
  EntityTypeName["EchoProjectEntity"] = "EchoProjectEntity";
499
511
  EntityTypeName["EchoVersionEntity"] = "EchoVersionEntity";
@@ -0,0 +1,5 @@
1
+ import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient';
2
+ import { CreateDeviceRunSessionInput, CreateDeviceRunSessionMutation } from '../generated';
3
+ export declare const DeviceRunSessionMutation: {
4
+ createDeviceRunSessionAsync(graphqlClient: ExpoGraphqlClient, deviceRunSessionInput: CreateDeviceRunSessionInput): Promise<CreateDeviceRunSessionMutation["deviceRunSession"]["createDeviceRunSession"]>;
5
+ };
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeviceRunSessionMutation = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
6
+ const client_1 = require("../client");
7
+ exports.DeviceRunSessionMutation = {
8
+ async createDeviceRunSessionAsync(graphqlClient, deviceRunSessionInput) {
9
+ const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
10
+ .mutation((0, graphql_tag_1.default) `
11
+ mutation CreateDeviceRunSessionMutation($deviceRunSessionInput: CreateDeviceRunSessionInput!) {
12
+ deviceRunSession {
13
+ createDeviceRunSession(deviceRunSessionInput: $deviceRunSessionInput) {
14
+ id
15
+ status
16
+ app {
17
+ id
18
+ slug
19
+ ownerAccount {
20
+ id
21
+ name
22
+ }
23
+ }
24
+ turtleJobRun {
25
+ id
26
+ }
27
+ }
28
+ }
29
+ }
30
+ `, { deviceRunSessionInput }, { noRetry: true })
31
+ .toPromise());
32
+ return data.deviceRunSession.createDeviceRunSession;
33
+ },
34
+ };
@@ -0,0 +1,5 @@
1
+ import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient';
2
+ import { DeviceRunSessionByIdQuery } from '../generated';
3
+ export declare const DeviceRunSessionQuery: {
4
+ byIdAsync(graphqlClient: ExpoGraphqlClient, deviceRunSessionId: string): Promise<DeviceRunSessionByIdQuery["deviceRunSessions"]["byId"]>;
5
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeviceRunSessionQuery = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
6
+ const client_1 = require("../client");
7
+ exports.DeviceRunSessionQuery = {
8
+ async byIdAsync(graphqlClient, deviceRunSessionId) {
9
+ const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
10
+ .query((0, graphql_tag_1.default) `
11
+ query DeviceRunSessionByIdQuery($deviceRunSessionId: ID!) {
12
+ deviceRunSessions {
13
+ byId(deviceRunSessionId: $deviceRunSessionId) {
14
+ id
15
+ status
16
+ turtleJobRun {
17
+ id
18
+ status
19
+ logFileUrls
20
+ }
21
+ }
22
+ }
23
+ }
24
+ `, { deviceRunSessionId }, { requestPolicy: 'network-only' })
25
+ .toPromise());
26
+ return data.deviceRunSessions.byId;
27
+ },
28
+ };