eas-cli 20.3.0 → 20.4.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.
- package/README.md +136 -113
- package/build/commandUtils/new/templates/AGENTS.md +25 -146
- package/build/commandUtils/new/templates/CLAUDE.md +1 -9
- package/build/commands/observe/session.d.ts +18 -0
- package/build/commands/observe/session.js +65 -0
- package/build/graphql/generated.d.ts +51 -74
- package/build/graphql/generated.js +1 -1
- package/build/graphql/types/Observe.js +1 -0
- package/build/observe/fetchCustomEvents.d.ts +2 -2
- package/build/observe/fetchCustomEvents.js +2 -2
- package/build/observe/fetchEvents.d.ts +4 -3
- package/build/observe/fetchEvents.js +4 -3
- package/build/observe/fetchSessions.d.ts +51 -0
- package/build/observe/fetchSessions.js +86 -0
- package/build/observe/formatEvents.d.ts +1 -0
- package/build/observe/formatEvents.js +1 -0
- package/build/observe/formatSessions.d.ts +15 -0
- package/build/observe/formatSessions.js +100 -0
- package/build/update/getBranchFromChannelNameAndCreateAndLinkIfNotExistsAsync.js +23 -26
- package/oclif.manifest.json +1438 -1343
- package/package.json +4 -3
|
@@ -1062,7 +1062,6 @@ export type AndroidAppCredentialsMutationCreateAndroidAppCredentialsArgs = {
|
|
|
1062
1062
|
applicationIdentifier: Scalars['String']['input'];
|
|
1063
1063
|
};
|
|
1064
1064
|
export type AndroidAppCredentialsMutationCreateFcmV1CredentialArgs = {
|
|
1065
|
-
accountId?: InputMaybe<Scalars['ID']['input']>;
|
|
1066
1065
|
androidAppCredentialsId: Scalars['String']['input'];
|
|
1067
1066
|
credential: Scalars['String']['input'];
|
|
1068
1067
|
};
|
|
@@ -1195,8 +1194,6 @@ export type AndroidJobOverridesInput = {
|
|
|
1195
1194
|
};
|
|
1196
1195
|
export type AndroidJobSecretsInput = {
|
|
1197
1196
|
buildCredentials?: InputMaybe<AndroidJobBuildCredentialsInput>;
|
|
1198
|
-
/** @deprecated Robot access token is no longer needed as it's generated server-side and injected into the builder environment automatically. */
|
|
1199
|
-
robotAccessToken?: InputMaybe<Scalars['String']['input']>;
|
|
1200
1197
|
};
|
|
1201
1198
|
export type AndroidJobVersionInput = {
|
|
1202
1199
|
versionCode: Scalars['String']['input'];
|
|
@@ -1221,8 +1218,6 @@ export type AndroidKeystoreInput = {
|
|
|
1221
1218
|
keyAlias: Scalars['String']['input'];
|
|
1222
1219
|
keyPassword?: InputMaybe<Scalars['String']['input']>;
|
|
1223
1220
|
keystorePassword: Scalars['String']['input'];
|
|
1224
|
-
/** @deprecated Type will be automatically inferred from keystore content. */
|
|
1225
|
-
type?: InputMaybe<AndroidKeystoreType>;
|
|
1226
1221
|
};
|
|
1227
1222
|
export type AndroidKeystoreMutation = {
|
|
1228
1223
|
__typename?: 'AndroidKeystoreMutation';
|
|
@@ -1323,7 +1318,7 @@ export type App = Project & {
|
|
|
1323
1318
|
* @deprecated Classic updates have been deprecated.
|
|
1324
1319
|
*/
|
|
1325
1320
|
icon?: Maybe<AppIcon>;
|
|
1326
|
-
/** @deprecated
|
|
1321
|
+
/** @deprecated No longer supported */
|
|
1327
1322
|
iconUrl?: Maybe<Scalars['String']['output']>;
|
|
1328
1323
|
id: Scalars['ID']['output'];
|
|
1329
1324
|
/** App query field for querying EAS Insights about this app */
|
|
@@ -1341,7 +1336,7 @@ export type App = Project & {
|
|
|
1341
1336
|
/** @deprecated 'likes' have been deprecated. */
|
|
1342
1337
|
isLikedByMe: Scalars['Boolean']['output'];
|
|
1343
1338
|
lastDeletionAttemptTime?: Maybe<Scalars['DateTime']['output']>;
|
|
1344
|
-
/** @deprecated
|
|
1339
|
+
/** @deprecated No longer supported */
|
|
1345
1340
|
lastPublishedTime: Scalars['DateTime']['output'];
|
|
1346
1341
|
/** Time of the last user activity (update, branch, submission). */
|
|
1347
1342
|
latestActivity: Scalars['DateTime']['output'];
|
|
@@ -1361,9 +1356,9 @@ export type App = Project & {
|
|
|
1361
1356
|
name: Scalars['String']['output'];
|
|
1362
1357
|
observe: AppObserve;
|
|
1363
1358
|
ownerAccount: Account;
|
|
1364
|
-
/** @deprecated
|
|
1359
|
+
/** @deprecated No longer supported */
|
|
1365
1360
|
packageName: Scalars['String']['output'];
|
|
1366
|
-
/** @deprecated
|
|
1361
|
+
/** @deprecated No longer supported */
|
|
1367
1362
|
packageUsername: Scalars['String']['output'];
|
|
1368
1363
|
/**
|
|
1369
1364
|
* android.playStoreUrl field from most recent classic update manifest
|
|
@@ -1373,7 +1368,7 @@ export type App = Project & {
|
|
|
1373
1368
|
posthogProject?: Maybe<PostHogProject>;
|
|
1374
1369
|
/** @deprecated No longer supported */
|
|
1375
1370
|
privacy: Scalars['String']['output'];
|
|
1376
|
-
/** @deprecated
|
|
1371
|
+
/** @deprecated No longer supported */
|
|
1377
1372
|
privacySetting: AppPrivacy;
|
|
1378
1373
|
profileImageUrl?: Maybe<Scalars['String']['output']>;
|
|
1379
1374
|
/**
|
|
@@ -1433,7 +1428,7 @@ export type App = Project & {
|
|
|
1433
1428
|
usageMetrics: AppUsageMetrics;
|
|
1434
1429
|
/** @deprecated Use ownerAccount.name instead */
|
|
1435
1430
|
username: Scalars['String']['output'];
|
|
1436
|
-
/** @deprecated
|
|
1431
|
+
/** @deprecated No longer supported */
|
|
1437
1432
|
users?: Maybe<Array<Maybe<User>>>;
|
|
1438
1433
|
vexoApp?: Maybe<VexoApp>;
|
|
1439
1434
|
/** Notification preferences of the viewer for this app */
|
|
@@ -1461,7 +1456,6 @@ export type AppActivityTimelineProjectActivitiesArgs = {
|
|
|
1461
1456
|
createdBefore?: InputMaybe<Scalars['DateTime']['input']>;
|
|
1462
1457
|
filterChannels?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
1463
1458
|
filterPlatforms?: InputMaybe<Array<AppPlatform>>;
|
|
1464
|
-
filterReleaseChannels?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
1465
1459
|
filterTypes?: InputMaybe<Array<ActivityTimelineProjectActivityType>>;
|
|
1466
1460
|
limit: Scalars['Int']['input'];
|
|
1467
1461
|
};
|
|
@@ -1813,7 +1807,7 @@ export type AppFingerprintsConnection = {
|
|
|
1813
1807
|
};
|
|
1814
1808
|
export type AppIcon = {
|
|
1815
1809
|
__typename?: 'AppIcon';
|
|
1816
|
-
/** @deprecated
|
|
1810
|
+
/** @deprecated No longer supported */
|
|
1817
1811
|
colorPalette?: Maybe<Scalars['JSON']['output']>;
|
|
1818
1812
|
originalUrl: Scalars['String']['output'];
|
|
1819
1813
|
primaryColor?: Maybe<Scalars['String']['output']>;
|
|
@@ -1825,8 +1819,6 @@ export type AppInfoInput = {
|
|
|
1825
1819
|
export type AppInput = {
|
|
1826
1820
|
accountId: Scalars['ID']['input'];
|
|
1827
1821
|
appInfo?: InputMaybe<AppInfoInput>;
|
|
1828
|
-
/** @deprecated Field no longer supported */
|
|
1829
|
-
privacy?: InputMaybe<AppPrivacy>;
|
|
1830
1822
|
projectName: Scalars['String']['input'];
|
|
1831
1823
|
};
|
|
1832
1824
|
export type AppInsights = {
|
|
@@ -1853,7 +1845,7 @@ export type AppMutation = {
|
|
|
1853
1845
|
__typename?: 'AppMutation';
|
|
1854
1846
|
/** Create an app */
|
|
1855
1847
|
createApp: App;
|
|
1856
|
-
/** @deprecated
|
|
1848
|
+
/** @deprecated No longer supported */
|
|
1857
1849
|
grantAccess?: Maybe<App>;
|
|
1858
1850
|
/** Remove profile image (icon) for the app. Do nothing if there's no profile image associated. */
|
|
1859
1851
|
removeProfileImage: App;
|
|
@@ -2710,8 +2702,6 @@ export type AppWithGithubRepositoryInput = {
|
|
|
2710
2702
|
accountId: Scalars['ID']['input'];
|
|
2711
2703
|
appInfo?: InputMaybe<AppInfoInput>;
|
|
2712
2704
|
installationIdentifier?: InputMaybe<Scalars['String']['input']>;
|
|
2713
|
-
/** @deprecated Field no longer supported */
|
|
2714
|
-
privacy?: InputMaybe<AppPrivacy>;
|
|
2715
2705
|
projectName: Scalars['String']['input'];
|
|
2716
2706
|
};
|
|
2717
2707
|
export type AppWorkflowFilterInput = {
|
|
@@ -3509,11 +3499,7 @@ export type BuildArtifacts = {
|
|
|
3509
3499
|
xcodeBuildLogsUrl?: Maybe<Scalars['String']['output']>;
|
|
3510
3500
|
};
|
|
3511
3501
|
export type BuildCacheInput = {
|
|
3512
|
-
/** @deprecated We don't cache anything by default anymore */
|
|
3513
|
-
cacheDefaultPaths?: InputMaybe<Scalars['Boolean']['input']>;
|
|
3514
3502
|
clear?: InputMaybe<Scalars['Boolean']['input']>;
|
|
3515
|
-
/** @deprecated We use paths now since there is no default caching anymore */
|
|
3516
|
-
customPaths?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
|
3517
3503
|
disabled?: InputMaybe<Scalars['Boolean']['input']>;
|
|
3518
3504
|
key?: InputMaybe<Scalars['String']['input']>;
|
|
3519
3505
|
paths?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
@@ -3577,8 +3563,6 @@ export type BuildMetadataInput = {
|
|
|
3577
3563
|
appIdentifier?: InputMaybe<Scalars['String']['input']>;
|
|
3578
3564
|
appName?: InputMaybe<Scalars['String']['input']>;
|
|
3579
3565
|
appVersion?: InputMaybe<Scalars['String']['input']>;
|
|
3580
|
-
/** @deprecated Use job.mode instead. */
|
|
3581
|
-
buildMode?: InputMaybe<BuildMode>;
|
|
3582
3566
|
buildProfile?: InputMaybe<Scalars['String']['input']>;
|
|
3583
3567
|
channel?: InputMaybe<Scalars['String']['input']>;
|
|
3584
3568
|
cliVersion?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -3604,8 +3588,6 @@ export type BuildMetadataInput = {
|
|
|
3604
3588
|
runWithNoWaitFlag?: InputMaybe<Scalars['Boolean']['input']>;
|
|
3605
3589
|
runtimeVersion?: InputMaybe<Scalars['String']['input']>;
|
|
3606
3590
|
sdkVersion?: InputMaybe<Scalars['String']['input']>;
|
|
3607
|
-
/** @deprecated Unused. */
|
|
3608
|
-
selectedImage?: InputMaybe<Scalars['String']['input']>;
|
|
3609
3591
|
simulator?: InputMaybe<Scalars['Boolean']['input']>;
|
|
3610
3592
|
trackingContext?: InputMaybe<Scalars['JSONObject']['input']>;
|
|
3611
3593
|
username?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -3747,7 +3729,7 @@ export declare enum BuildPhase {
|
|
|
3747
3729
|
StartBuild = "START_BUILD",
|
|
3748
3730
|
Unknown = "UNKNOWN",
|
|
3749
3731
|
UploadApplicationArchive = "UPLOAD_APPLICATION_ARCHIVE",
|
|
3750
|
-
/** @deprecated
|
|
3732
|
+
/** @deprecated No longer supported */
|
|
3751
3733
|
UploadArtifacts = "UPLOAD_ARTIFACTS",
|
|
3752
3734
|
UploadBuildArtifacts = "UPLOAD_BUILD_ARTIFACTS"
|
|
3753
3735
|
}
|
|
@@ -4044,6 +4026,16 @@ export type CreateConvexTeamConnectionInput = {
|
|
|
4044
4026
|
convexTeamName?: InputMaybe<Scalars['String']['input']>;
|
|
4045
4027
|
deploymentRegion: Scalars['String']['input'];
|
|
4046
4028
|
};
|
|
4029
|
+
export type CreateDeviceRunSessionArtifactUploadSessionInput = {
|
|
4030
|
+
filename: Scalars['String']['input'];
|
|
4031
|
+
metadata?: InputMaybe<Scalars['JSONObject']['input']>;
|
|
4032
|
+
name: Scalars['String']['input'];
|
|
4033
|
+
size: Scalars['Int']['input'];
|
|
4034
|
+
};
|
|
4035
|
+
export type CreateDeviceRunSessionArtifactUploadSessionResult = {
|
|
4036
|
+
__typename?: 'CreateDeviceRunSessionArtifactUploadSessionResult';
|
|
4037
|
+
uploadSession: DeviceRunSessionArtifactUploadSession;
|
|
4038
|
+
};
|
|
4047
4039
|
export type CreateDeviceRunSessionInput = {
|
|
4048
4040
|
appId: Scalars['ID']['input'];
|
|
4049
4041
|
/**
|
|
@@ -4213,8 +4205,6 @@ export type CreateSentryProjectInput = {
|
|
|
4213
4205
|
export type CreateSharedEnvironmentVariableInput = {
|
|
4214
4206
|
environments?: InputMaybe<Array<Scalars['EnvironmentVariableEnvironment']['input']>>;
|
|
4215
4207
|
fileName?: InputMaybe<Scalars['String']['input']>;
|
|
4216
|
-
/** @deprecated Whether the variable is global is now governed by its scope - account / app. */
|
|
4217
|
-
isGlobal?: InputMaybe<Scalars['Boolean']['input']>;
|
|
4218
4208
|
name: Scalars['String']['input'];
|
|
4219
4209
|
overwrite?: InputMaybe<Scalars['Boolean']['input']>;
|
|
4220
4210
|
type?: InputMaybe<EnvironmentSecretType>;
|
|
@@ -4586,6 +4576,11 @@ export type DeviceRunSession = {
|
|
|
4586
4576
|
type: DeviceRunSessionType;
|
|
4587
4577
|
updatedAt: Scalars['DateTime']['output'];
|
|
4588
4578
|
};
|
|
4579
|
+
export type DeviceRunSessionArtifactUploadSession = {
|
|
4580
|
+
__typename?: 'DeviceRunSessionArtifactUploadSession';
|
|
4581
|
+
headers: Scalars['JSONObject']['output'];
|
|
4582
|
+
url: Scalars['String']['output'];
|
|
4583
|
+
};
|
|
4589
4584
|
export type DeviceRunSessionFilterInput = {
|
|
4590
4585
|
platforms?: InputMaybe<Array<AppPlatform>>;
|
|
4591
4586
|
statuses?: InputMaybe<Array<DeviceRunSessionStatus>>;
|
|
@@ -4593,6 +4588,8 @@ export type DeviceRunSessionFilterInput = {
|
|
|
4593
4588
|
};
|
|
4594
4589
|
export type DeviceRunSessionMutation = {
|
|
4595
4590
|
__typename?: 'DeviceRunSessionMutation';
|
|
4591
|
+
/** Create an upload session for an artifact produced by an active device run session */
|
|
4592
|
+
createArtifactUploadSession: CreateDeviceRunSessionArtifactUploadSessionResult;
|
|
4596
4593
|
/** Create a device run session */
|
|
4597
4594
|
createDeviceRunSession: DeviceRunSession;
|
|
4598
4595
|
/**
|
|
@@ -4604,6 +4601,10 @@ export type DeviceRunSessionMutation = {
|
|
|
4604
4601
|
/** Mark a device run session as started and persist remote connection details */
|
|
4605
4602
|
startDeviceRunSession: DeviceRunSession;
|
|
4606
4603
|
};
|
|
4604
|
+
export type DeviceRunSessionMutationCreateArtifactUploadSessionArgs = {
|
|
4605
|
+
deviceRunSessionId: Scalars['ID']['input'];
|
|
4606
|
+
input: CreateDeviceRunSessionArtifactUploadSessionInput;
|
|
4607
|
+
};
|
|
4607
4608
|
export type DeviceRunSessionMutationCreateDeviceRunSessionArgs = {
|
|
4608
4609
|
deviceRunSessionInput: CreateDeviceRunSessionInput;
|
|
4609
4610
|
};
|
|
@@ -6453,8 +6454,6 @@ export type IosJobOverridesInput = {
|
|
|
6453
6454
|
};
|
|
6454
6455
|
export type IosJobSecretsInput = {
|
|
6455
6456
|
buildCredentials?: InputMaybe<Array<InputMaybe<IosJobTargetCredentialsInput>>>;
|
|
6456
|
-
/** @deprecated Robot access token is no longer needed as it's generated server-side and injected into the builder environment automatically. */
|
|
6457
|
-
robotAccessToken?: InputMaybe<Scalars['String']['input']>;
|
|
6458
6457
|
};
|
|
6459
6458
|
export type IosJobTargetCredentialsInput = {
|
|
6460
6459
|
distributionCertificate: IosJobDistributionCertificateInput;
|
|
@@ -6494,7 +6493,7 @@ export type JobRun = {
|
|
|
6494
6493
|
__typename?: 'JobRun';
|
|
6495
6494
|
app: App;
|
|
6496
6495
|
artifacts: Array<WorkflowArtifact>;
|
|
6497
|
-
/** @deprecated
|
|
6496
|
+
/** @deprecated No longer supported */
|
|
6498
6497
|
childJobRun?: Maybe<JobRun>;
|
|
6499
6498
|
createdAt: Scalars['DateTime']['output'];
|
|
6500
6499
|
displayName?: Maybe<Scalars['String']['output']>;
|
|
@@ -7030,7 +7029,7 @@ export declare enum PostHogRegion {
|
|
|
7030
7029
|
export type Project = {
|
|
7031
7030
|
description: Scalars['String']['output'];
|
|
7032
7031
|
fullName: Scalars['String']['output'];
|
|
7033
|
-
/** @deprecated
|
|
7032
|
+
/** @deprecated No longer supported */
|
|
7034
7033
|
iconUrl?: Maybe<Scalars['String']['output']>;
|
|
7035
7034
|
id: Scalars['ID']['output'];
|
|
7036
7035
|
name: Scalars['String']['output'];
|
|
@@ -7092,8 +7091,6 @@ export type PublishUpdateGroupInput = {
|
|
|
7092
7091
|
message?: InputMaybe<Scalars['String']['input']>;
|
|
7093
7092
|
rollBackToEmbeddedInfoGroup?: InputMaybe<UpdateRollBackToEmbeddedGroup>;
|
|
7094
7093
|
rolloutInfoGroup?: InputMaybe<UpdateRolloutInfoGroup>;
|
|
7095
|
-
/** @deprecated Use fingerprintInfoGroup instead */
|
|
7096
|
-
runtimeFingerprintSource?: InputMaybe<FingerprintSourceInput>;
|
|
7097
7094
|
runtimeVersion: Scalars['String']['input'];
|
|
7098
7095
|
turtleJobRunId?: InputMaybe<Scalars['String']['input']>;
|
|
7099
7096
|
updateInfoGroup?: InputMaybe<UpdateInfoGroup>;
|
|
@@ -7657,7 +7654,7 @@ export type SsoUser = Actor & UserActor & {
|
|
|
7657
7654
|
/** Coalesced project activity for all apps belonging to all accounts this user belongs to. Only resolves for the viewer. */
|
|
7658
7655
|
activityTimelineProjectActivities: Array<ActivityTimelineProjectActivity>;
|
|
7659
7656
|
appCount: Scalars['Int']['output'];
|
|
7660
|
-
/** @deprecated
|
|
7657
|
+
/** @deprecated No longer supported */
|
|
7661
7658
|
appetizeCode?: Maybe<Scalars['String']['output']>;
|
|
7662
7659
|
/**
|
|
7663
7660
|
* Apps this user has published. If this user is the viewer, this field returns the apps the user has access to.
|
|
@@ -7680,16 +7677,16 @@ export type SsoUser = Actor & UserActor & {
|
|
|
7680
7677
|
fullName?: Maybe<Scalars['String']['output']>;
|
|
7681
7678
|
/** GitHub account linked to a user */
|
|
7682
7679
|
githubUser?: Maybe<GitHubUser>;
|
|
7683
|
-
/** @deprecated
|
|
7680
|
+
/** @deprecated No longer supported */
|
|
7684
7681
|
githubUsername?: Maybe<Scalars['String']['output']>;
|
|
7685
7682
|
id: Scalars['ID']['output'];
|
|
7686
|
-
/** @deprecated
|
|
7683
|
+
/** @deprecated No longer supported */
|
|
7687
7684
|
industry?: Maybe<Scalars['String']['output']>;
|
|
7688
7685
|
isExpoAdmin: Scalars['Boolean']['output'];
|
|
7689
7686
|
isStaffModeEnabled: Scalars['Boolean']['output'];
|
|
7690
7687
|
lastDeletionAttemptTime?: Maybe<Scalars['DateTime']['output']>;
|
|
7691
7688
|
lastName?: Maybe<Scalars['String']['output']>;
|
|
7692
|
-
/** @deprecated
|
|
7689
|
+
/** @deprecated No longer supported */
|
|
7693
7690
|
location?: Maybe<Scalars['String']['output']>;
|
|
7694
7691
|
pinnedApps: Array<App>;
|
|
7695
7692
|
pinnedDashboardViews: Array<PinnedDashboardView>;
|
|
@@ -7701,7 +7698,7 @@ export type SsoUser = Actor & UserActor & {
|
|
|
7701
7698
|
profilePhoto: Scalars['String']['output'];
|
|
7702
7699
|
/** Snacks associated with this account */
|
|
7703
7700
|
snacks: Array<Snack>;
|
|
7704
|
-
/** @deprecated
|
|
7701
|
+
/** @deprecated No longer supported */
|
|
7705
7702
|
twitterUsername?: Maybe<Scalars['String']['output']>;
|
|
7706
7703
|
username: Scalars['String']['output'];
|
|
7707
7704
|
websiteNotificationsPaginated: WebsiteNotificationsConnection;
|
|
@@ -7736,15 +7733,7 @@ export type SsoUserWebsiteNotificationsPaginatedArgs = {
|
|
|
7736
7733
|
};
|
|
7737
7734
|
export type SsoUserDataInput = {
|
|
7738
7735
|
firstName?: InputMaybe<Scalars['String']['input']>;
|
|
7739
|
-
/** @deprecated Field no longer supported */
|
|
7740
|
-
githubUsername?: InputMaybe<Scalars['String']['input']>;
|
|
7741
|
-
/** @deprecated Field no longer supported */
|
|
7742
|
-
industry?: InputMaybe<Scalars['String']['input']>;
|
|
7743
7736
|
lastName?: InputMaybe<Scalars['String']['input']>;
|
|
7744
|
-
/** @deprecated Field no longer supported */
|
|
7745
|
-
location?: InputMaybe<Scalars['String']['input']>;
|
|
7746
|
-
/** @deprecated Field no longer supported */
|
|
7747
|
-
twitterUsername?: InputMaybe<Scalars['String']['input']>;
|
|
7748
7737
|
};
|
|
7749
7738
|
export type SecondFactorBooleanResult = {
|
|
7750
7739
|
__typename?: 'SecondFactorBooleanResult';
|
|
@@ -7873,7 +7862,7 @@ export type Snack = Project & {
|
|
|
7873
7862
|
/** Has the Snack been run without errors */
|
|
7874
7863
|
hasBeenRunSuccessfully?: Maybe<Scalars['Boolean']['output']>;
|
|
7875
7864
|
hashId: Scalars['String']['output'];
|
|
7876
|
-
/** @deprecated
|
|
7865
|
+
/** @deprecated No longer supported */
|
|
7877
7866
|
iconUrl?: Maybe<Scalars['String']['output']>;
|
|
7878
7867
|
id: Scalars['ID']['output'];
|
|
7879
7868
|
/** Draft status, which is true when the Snack was not saved explicitly, but auto-saved */
|
|
@@ -8533,8 +8522,6 @@ export type UpdateEnvironmentVariableInput = {
|
|
|
8533
8522
|
environments?: InputMaybe<Array<Scalars['EnvironmentVariableEnvironment']['input']>>;
|
|
8534
8523
|
fileName?: InputMaybe<Scalars['String']['input']>;
|
|
8535
8524
|
id: Scalars['ID']['input'];
|
|
8536
|
-
/** @deprecated You cannot change whether the variable is global. */
|
|
8537
|
-
isGlobal?: InputMaybe<Scalars['Boolean']['input']>;
|
|
8538
8525
|
name?: InputMaybe<Scalars['String']['input']>;
|
|
8539
8526
|
type?: InputMaybe<EnvironmentSecretType>;
|
|
8540
8527
|
value?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -8655,8 +8642,6 @@ export type UpdateVexoAppInput = {
|
|
|
8655
8642
|
export type UpdatesFilter = {
|
|
8656
8643
|
platform?: InputMaybe<AppPlatform>;
|
|
8657
8644
|
runtimeVersions?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
8658
|
-
/** @deprecated Use runtimeVersions instead. */
|
|
8659
|
-
sdkVersions?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
8660
8645
|
};
|
|
8661
8646
|
export type UpdatesFilterV2 = {
|
|
8662
8647
|
platform?: InputMaybe<AppPlatform>;
|
|
@@ -8753,7 +8738,7 @@ export type User = Actor & UserActor & {
|
|
|
8753
8738
|
/** Coalesced project activity for all apps belonging to all accounts this user belongs to. Only resolves for the viewer. */
|
|
8754
8739
|
activityTimelineProjectActivities: Array<ActivityTimelineProjectActivity>;
|
|
8755
8740
|
appCount: Scalars['Int']['output'];
|
|
8756
|
-
/** @deprecated
|
|
8741
|
+
/** @deprecated No longer supported */
|
|
8757
8742
|
appetizeCode?: Maybe<Scalars['String']['output']>;
|
|
8758
8743
|
/**
|
|
8759
8744
|
* Apps this user has published
|
|
@@ -8778,22 +8763,22 @@ export type User = Actor & UserActor & {
|
|
|
8778
8763
|
fullName?: Maybe<Scalars['String']['output']>;
|
|
8779
8764
|
/** GitHub account linked to a user */
|
|
8780
8765
|
githubUser?: Maybe<GitHubUser>;
|
|
8781
|
-
/** @deprecated
|
|
8766
|
+
/** @deprecated No longer supported */
|
|
8782
8767
|
githubUsername?: Maybe<Scalars['String']['output']>;
|
|
8783
8768
|
hasPassword: Scalars['Boolean']['output'];
|
|
8784
8769
|
/** Whether this user has any pending user invitations. Only resolves for the viewer. */
|
|
8785
8770
|
hasPendingUserInvitations: Scalars['Boolean']['output'];
|
|
8786
8771
|
id: Scalars['ID']['output'];
|
|
8787
|
-
/** @deprecated
|
|
8772
|
+
/** @deprecated No longer supported */
|
|
8788
8773
|
industry?: Maybe<Scalars['String']['output']>;
|
|
8789
8774
|
isExpoAdmin: Scalars['Boolean']['output'];
|
|
8790
|
-
/** @deprecated
|
|
8775
|
+
/** @deprecated No longer supported */
|
|
8791
8776
|
isLegacy: Scalars['Boolean']['output'];
|
|
8792
8777
|
isSecondFactorAuthenticationEnabled: Scalars['Boolean']['output'];
|
|
8793
8778
|
isStaffModeEnabled: Scalars['Boolean']['output'];
|
|
8794
8779
|
lastDeletionAttemptTime?: Maybe<Scalars['DateTime']['output']>;
|
|
8795
8780
|
lastName?: Maybe<Scalars['String']['output']>;
|
|
8796
|
-
/** @deprecated
|
|
8781
|
+
/** @deprecated No longer supported */
|
|
8797
8782
|
location?: Maybe<Scalars['String']['output']>;
|
|
8798
8783
|
newEmailPendingVerification?: Maybe<Scalars['String']['output']>;
|
|
8799
8784
|
oAuthIdentities: Array<OAuthIdentity>;
|
|
@@ -8813,7 +8798,7 @@ export type User = Actor & UserActor & {
|
|
|
8813
8798
|
secondFactorDevices: Array<UserSecondFactorDevice>;
|
|
8814
8799
|
/** Snacks associated with this account */
|
|
8815
8800
|
snacks: Array<Snack>;
|
|
8816
|
-
/** @deprecated
|
|
8801
|
+
/** @deprecated No longer supported */
|
|
8817
8802
|
twitterUsername?: Maybe<Scalars['String']['output']>;
|
|
8818
8803
|
username: Scalars['String']['output'];
|
|
8819
8804
|
websiteNotificationsPaginated: WebsiteNotificationsConnection;
|
|
@@ -8857,7 +8842,7 @@ export type UserActor = {
|
|
|
8857
8842
|
*/
|
|
8858
8843
|
activityTimelineProjectActivities: Array<ActivityTimelineProjectActivity>;
|
|
8859
8844
|
appCount: Scalars['Int']['output'];
|
|
8860
|
-
/** @deprecated
|
|
8845
|
+
/** @deprecated No longer supported */
|
|
8861
8846
|
appetizeCode?: Maybe<Scalars['String']['output']>;
|
|
8862
8847
|
/**
|
|
8863
8848
|
* Apps this user has published
|
|
@@ -8884,16 +8869,16 @@ export type UserActor = {
|
|
|
8884
8869
|
fullName?: Maybe<Scalars['String']['output']>;
|
|
8885
8870
|
/** GitHub account linked to a user */
|
|
8886
8871
|
githubUser?: Maybe<GitHubUser>;
|
|
8887
|
-
/** @deprecated
|
|
8872
|
+
/** @deprecated No longer supported */
|
|
8888
8873
|
githubUsername?: Maybe<Scalars['String']['output']>;
|
|
8889
8874
|
id: Scalars['ID']['output'];
|
|
8890
|
-
/** @deprecated
|
|
8875
|
+
/** @deprecated No longer supported */
|
|
8891
8876
|
industry?: Maybe<Scalars['String']['output']>;
|
|
8892
8877
|
isExpoAdmin: Scalars['Boolean']['output'];
|
|
8893
8878
|
isStaffModeEnabled: Scalars['Boolean']['output'];
|
|
8894
8879
|
lastDeletionAttemptTime?: Maybe<Scalars['DateTime']['output']>;
|
|
8895
8880
|
lastName?: Maybe<Scalars['String']['output']>;
|
|
8896
|
-
/** @deprecated
|
|
8881
|
+
/** @deprecated No longer supported */
|
|
8897
8882
|
location?: Maybe<Scalars['String']['output']>;
|
|
8898
8883
|
pinnedApps: Array<App>;
|
|
8899
8884
|
preferences: UserPreferences;
|
|
@@ -8904,7 +8889,7 @@ export type UserActor = {
|
|
|
8904
8889
|
profilePhoto: Scalars['String']['output'];
|
|
8905
8890
|
/** Snacks associated with this user's personal account */
|
|
8906
8891
|
snacks: Array<Snack>;
|
|
8907
|
-
/** @deprecated
|
|
8892
|
+
/** @deprecated No longer supported */
|
|
8908
8893
|
twitterUsername?: Maybe<Scalars['String']['output']>;
|
|
8909
8894
|
username: Scalars['String']['output'];
|
|
8910
8895
|
websiteNotificationsPaginated: WebsiteNotificationsConnection;
|
|
@@ -9102,22 +9087,12 @@ export type UserDashboardViewPinMutationUnpinDashboardViewArgs = {
|
|
|
9102
9087
|
accountId: Scalars['ID']['input'];
|
|
9103
9088
|
};
|
|
9104
9089
|
export type UserDataInput = {
|
|
9105
|
-
/** @deprecated Field no longer supported */
|
|
9106
|
-
appetizeCode?: InputMaybe<Scalars['String']['input']>;
|
|
9107
9090
|
email?: InputMaybe<Scalars['String']['input']>;
|
|
9108
9091
|
firstName?: InputMaybe<Scalars['String']['input']>;
|
|
9109
9092
|
fullName?: InputMaybe<Scalars['String']['input']>;
|
|
9110
|
-
/** @deprecated Field no longer supported */
|
|
9111
|
-
githubUsername?: InputMaybe<Scalars['String']['input']>;
|
|
9112
9093
|
id?: InputMaybe<Scalars['ID']['input']>;
|
|
9113
|
-
/** @deprecated Field no longer supported */
|
|
9114
|
-
industry?: InputMaybe<Scalars['String']['input']>;
|
|
9115
9094
|
lastName?: InputMaybe<Scalars['String']['input']>;
|
|
9116
|
-
/** @deprecated Field no longer supported */
|
|
9117
|
-
location?: InputMaybe<Scalars['String']['input']>;
|
|
9118
9095
|
profilePhoto?: InputMaybe<Scalars['String']['input']>;
|
|
9119
|
-
/** @deprecated Field no longer supported */
|
|
9120
|
-
twitterUsername?: InputMaybe<Scalars['String']['input']>;
|
|
9121
9096
|
username?: InputMaybe<Scalars['String']['input']>;
|
|
9122
9097
|
};
|
|
9123
9098
|
export declare enum UserEntityTypeName {
|
|
@@ -18290,6 +18265,7 @@ export type AppObserveEventsQuery = {
|
|
|
18290
18265
|
sessionId?: string | null;
|
|
18291
18266
|
easClientId: string;
|
|
18292
18267
|
customParams?: any | null;
|
|
18268
|
+
routeName?: string | null;
|
|
18293
18269
|
};
|
|
18294
18270
|
}>;
|
|
18295
18271
|
};
|
|
@@ -20672,6 +20648,7 @@ export type AppObserveEventFragment = {
|
|
|
20672
20648
|
sessionId?: string | null;
|
|
20673
20649
|
easClientId: string;
|
|
20674
20650
|
customParams?: any | null;
|
|
20651
|
+
routeName?: string | null;
|
|
20675
20652
|
};
|
|
20676
20653
|
export type AppObserveAppVersionFragment = {
|
|
20677
20654
|
__typename?: 'AppObserveAppVersion';
|
|
@@ -311,7 +311,7 @@ var BuildPhase;
|
|
|
311
311
|
BuildPhase["StartBuild"] = "START_BUILD";
|
|
312
312
|
BuildPhase["Unknown"] = "UNKNOWN";
|
|
313
313
|
BuildPhase["UploadApplicationArchive"] = "UPLOAD_APPLICATION_ARCHIVE";
|
|
314
|
-
/** @deprecated
|
|
314
|
+
/** @deprecated No longer supported */
|
|
315
315
|
BuildPhase["UploadArtifacts"] = "UPLOAD_ARTIFACTS";
|
|
316
316
|
BuildPhase["UploadBuildArtifacts"] = "UPLOAD_BUILD_ARTIFACTS";
|
|
317
317
|
})(BuildPhase || (exports.BuildPhase = BuildPhase = {}));
|
|
@@ -4,8 +4,8 @@ exports.fetchObserveCustomEventsAsync = fetchObserveCustomEventsAsync;
|
|
|
4
4
|
const ObserveQuery_1 = require("../graphql/queries/ObserveQuery");
|
|
5
5
|
async function fetchObserveCustomEventsAsync(graphqlClient, appId, options) {
|
|
6
6
|
const filter = {
|
|
7
|
-
startTime: options.startTime,
|
|
8
|
-
endTime: options.endTime,
|
|
7
|
+
...(options.startTime && { startTime: options.startTime }),
|
|
8
|
+
...(options.endTime && { endTime: options.endTime }),
|
|
9
9
|
...(options.eventName && { eventName: options.eventName }),
|
|
10
10
|
...(options.platform && { platform: options.platform }),
|
|
11
11
|
...(options.appVersion && { appVersion: options.appVersion }),
|
|
@@ -8,15 +8,16 @@ export declare enum EventsOrderPreset {
|
|
|
8
8
|
}
|
|
9
9
|
export declare function resolveOrderBy(input: string): AppObserveEventsOrderBy;
|
|
10
10
|
interface FetchObserveEventsOptions {
|
|
11
|
-
metricName
|
|
11
|
+
metricName?: string;
|
|
12
12
|
orderBy: AppObserveEventsOrderBy;
|
|
13
13
|
limit: number;
|
|
14
14
|
after?: string;
|
|
15
|
-
startTime
|
|
16
|
-
endTime
|
|
15
|
+
startTime?: string;
|
|
16
|
+
endTime?: string;
|
|
17
17
|
platform?: AppObservePlatform;
|
|
18
18
|
appVersion?: string;
|
|
19
19
|
updateId?: string;
|
|
20
|
+
sessionId?: string;
|
|
20
21
|
}
|
|
21
22
|
interface FetchObserveEventsResult {
|
|
22
23
|
events: AppObserveEvent[];
|
|
@@ -40,12 +40,13 @@ function resolveOrderBy(input) {
|
|
|
40
40
|
}
|
|
41
41
|
async function fetchObserveEventsAsync(graphqlClient, appId, options) {
|
|
42
42
|
const filter = {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
...(options.startTime && { startTime: options.startTime }),
|
|
44
|
+
...(options.endTime && { endTime: options.endTime }),
|
|
45
|
+
...(options.metricName && { metricName: options.metricName }),
|
|
46
46
|
...(options.platform && { platform: options.platform }),
|
|
47
47
|
...(options.appVersion && { appVersion: options.appVersion }),
|
|
48
48
|
...(options.updateId && { appUpdateId: options.updateId }),
|
|
49
|
+
...(options.sessionId && { sessionId: options.sessionId }),
|
|
49
50
|
};
|
|
50
51
|
return await ObserveQuery_1.ObserveQuery.eventsAsync(graphqlClient, {
|
|
51
52
|
appId,
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ExpoGraphqlClient } from '../commandUtils/context/contextUtils/createGraphqlClient';
|
|
2
|
+
export interface SessionEventEntry {
|
|
3
|
+
source: 'metric' | 'log';
|
|
4
|
+
timestamp: string;
|
|
5
|
+
sessionId: string;
|
|
6
|
+
appVersion: string;
|
|
7
|
+
appBuildNumber: string;
|
|
8
|
+
appUpdateId: string | null;
|
|
9
|
+
deviceModel: string;
|
|
10
|
+
deviceOs: string;
|
|
11
|
+
deviceOsVersion: string;
|
|
12
|
+
countryCode: string | null;
|
|
13
|
+
easClientId: string;
|
|
14
|
+
metricName?: string;
|
|
15
|
+
metricValue?: number;
|
|
16
|
+
customParams?: {
|
|
17
|
+
[key: string]: any;
|
|
18
|
+
} | null;
|
|
19
|
+
routeName?: string | null;
|
|
20
|
+
eventName?: string;
|
|
21
|
+
severityText?: string | null;
|
|
22
|
+
severityNumber?: number | null;
|
|
23
|
+
properties?: Array<{
|
|
24
|
+
key: string;
|
|
25
|
+
value: string;
|
|
26
|
+
type: string;
|
|
27
|
+
}>;
|
|
28
|
+
environment?: string | null;
|
|
29
|
+
}
|
|
30
|
+
export interface SessionMetadata {
|
|
31
|
+
appVersion: string;
|
|
32
|
+
appBuildNumber: string;
|
|
33
|
+
appUpdateId: string | null;
|
|
34
|
+
deviceOs: string;
|
|
35
|
+
deviceOsVersion: string;
|
|
36
|
+
deviceModel: string;
|
|
37
|
+
countryCode: string | null;
|
|
38
|
+
firstSeenAt: string;
|
|
39
|
+
lastSeenAt: string;
|
|
40
|
+
}
|
|
41
|
+
export interface FetchSessionEventsOptions {
|
|
42
|
+
sessionId: string;
|
|
43
|
+
limit: number;
|
|
44
|
+
}
|
|
45
|
+
export interface FetchSessionEventsResult {
|
|
46
|
+
entries: SessionEventEntry[];
|
|
47
|
+
metadata: SessionMetadata | null;
|
|
48
|
+
hasMoreMetricEvents: boolean;
|
|
49
|
+
hasMoreLogEvents: boolean;
|
|
50
|
+
}
|
|
51
|
+
export declare function fetchObserveSessionEventsAsync(graphqlClient: ExpoGraphqlClient, appId: string, options: FetchSessionEventsOptions): Promise<FetchSessionEventsResult>;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchObserveSessionEventsAsync = fetchObserveSessionEventsAsync;
|
|
4
|
+
const generated_1 = require("../graphql/generated");
|
|
5
|
+
const fetchCustomEvents_1 = require("./fetchCustomEvents");
|
|
6
|
+
const fetchEvents_1 = require("./fetchEvents");
|
|
7
|
+
function metricEventToEntry(event) {
|
|
8
|
+
return {
|
|
9
|
+
source: 'metric',
|
|
10
|
+
timestamp: event.timestamp,
|
|
11
|
+
sessionId: event.sessionId ?? '',
|
|
12
|
+
appVersion: event.appVersion,
|
|
13
|
+
appBuildNumber: event.appBuildNumber,
|
|
14
|
+
appUpdateId: event.appUpdateId ?? null,
|
|
15
|
+
deviceModel: event.deviceModel,
|
|
16
|
+
deviceOs: event.deviceOs,
|
|
17
|
+
deviceOsVersion: event.deviceOsVersion,
|
|
18
|
+
countryCode: event.countryCode ?? null,
|
|
19
|
+
easClientId: event.easClientId,
|
|
20
|
+
metricName: event.metricName,
|
|
21
|
+
metricValue: event.metricValue,
|
|
22
|
+
customParams: event.customParams ?? null,
|
|
23
|
+
routeName: event.routeName ?? null,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function customEventToEntry(event) {
|
|
27
|
+
return {
|
|
28
|
+
source: 'log',
|
|
29
|
+
timestamp: event.timestamp,
|
|
30
|
+
sessionId: event.sessionId ?? '',
|
|
31
|
+
appVersion: event.appVersion,
|
|
32
|
+
appBuildNumber: event.appBuildNumber,
|
|
33
|
+
appUpdateId: event.appUpdateId ?? null,
|
|
34
|
+
deviceModel: event.deviceModel,
|
|
35
|
+
deviceOs: event.deviceOs,
|
|
36
|
+
deviceOsVersion: event.deviceOsVersion,
|
|
37
|
+
countryCode: event.countryCode ?? null,
|
|
38
|
+
easClientId: event.easClientId,
|
|
39
|
+
eventName: event.eventName,
|
|
40
|
+
severityText: event.severityText ?? null,
|
|
41
|
+
severityNumber: event.severityNumber ?? null,
|
|
42
|
+
properties: event.properties.map(p => ({ key: p.key, value: p.value, type: p.type })),
|
|
43
|
+
environment: event.environment ?? null,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
async function fetchObserveSessionEventsAsync(graphqlClient, appId, options) {
|
|
47
|
+
const [metricResult, logResult] = await Promise.all([
|
|
48
|
+
(0, fetchEvents_1.fetchObserveEventsAsync)(graphqlClient, appId, {
|
|
49
|
+
orderBy: {
|
|
50
|
+
field: generated_1.AppObserveEventsOrderByField.Timestamp,
|
|
51
|
+
direction: generated_1.AppObserveEventsOrderByDirection.Asc,
|
|
52
|
+
},
|
|
53
|
+
limit: options.limit,
|
|
54
|
+
sessionId: options.sessionId,
|
|
55
|
+
}),
|
|
56
|
+
(0, fetchCustomEvents_1.fetchObserveCustomEventsAsync)(graphqlClient, appId, {
|
|
57
|
+
limit: options.limit,
|
|
58
|
+
sessionId: options.sessionId,
|
|
59
|
+
}),
|
|
60
|
+
]);
|
|
61
|
+
const entries = [
|
|
62
|
+
...metricResult.events.map(metricEventToEntry),
|
|
63
|
+
...logResult.events.map(customEventToEntry),
|
|
64
|
+
].sort((a, b) => (a.timestamp < b.timestamp ? -1 : a.timestamp > b.timestamp ? 1 : 0));
|
|
65
|
+
let metadata = null;
|
|
66
|
+
if (entries.length > 0) {
|
|
67
|
+
const newest = entries[entries.length - 1];
|
|
68
|
+
metadata = {
|
|
69
|
+
appVersion: newest.appVersion,
|
|
70
|
+
appBuildNumber: newest.appBuildNumber,
|
|
71
|
+
appUpdateId: newest.appUpdateId,
|
|
72
|
+
deviceOs: newest.deviceOs,
|
|
73
|
+
deviceOsVersion: newest.deviceOsVersion,
|
|
74
|
+
deviceModel: newest.deviceModel,
|
|
75
|
+
countryCode: newest.countryCode,
|
|
76
|
+
firstSeenAt: entries[0].timestamp,
|
|
77
|
+
lastSeenAt: newest.timestamp,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
entries,
|
|
82
|
+
metadata,
|
|
83
|
+
hasMoreMetricEvents: metricResult.pageInfo.hasNextPage,
|
|
84
|
+
hasMoreLogEvents: logResult.pageInfo.hasNextPage,
|
|
85
|
+
};
|
|
86
|
+
}
|