eas-cli 18.5.0 → 18.7.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 (57) hide show
  1. package/README.md +90 -89
  2. package/build/commandUtils/pagination.d.ts +2 -1
  3. package/build/commandUtils/pagination.js +3 -2
  4. package/build/commands/build/dev.d.ts +1 -0
  5. package/build/commands/build/dev.js +10 -2
  6. package/build/commands/deploy/index.js +18 -2
  7. package/build/commands/metadata/pull.d.ts +1 -1
  8. package/build/commands/metadata/pull.js +2 -4
  9. package/build/commands/metadata/push.d.ts +1 -1
  10. package/build/commands/metadata/push.js +2 -4
  11. package/build/commands/observe/events.d.ts +27 -0
  12. package/build/commands/observe/events.js +140 -0
  13. package/build/commands/observe/metrics.d.ts +21 -0
  14. package/build/commands/observe/metrics.js +111 -0
  15. package/build/commands/observe/versions.d.ts +19 -0
  16. package/build/commands/observe/versions.js +69 -0
  17. package/build/credentials/ios/IosCredentialsProvider.js +8 -4
  18. package/build/credentials/ios/utils/provisioningProfile.d.ts +1 -0
  19. package/build/credentials/ios/utils/provisioningProfile.js +15 -1
  20. package/build/graphql/generated.d.ts +634 -61
  21. package/build/graphql/generated.js +11 -9
  22. package/build/graphql/queries/ObserveQuery.d.ts +35 -0
  23. package/build/graphql/queries/ObserveQuery.js +109 -0
  24. package/build/graphql/types/Observe.d.ts +3 -0
  25. package/build/graphql/types/Observe.js +84 -0
  26. package/build/metadata/apple/config/reader.d.ts +9 -1
  27. package/build/metadata/apple/config/reader.js +25 -0
  28. package/build/metadata/apple/config/writer.d.ts +7 -1
  29. package/build/metadata/apple/config/writer.js +44 -0
  30. package/build/metadata/apple/data.d.ts +2 -1
  31. package/build/metadata/apple/tasks/app-clip.d.ts +37 -0
  32. package/build/metadata/apple/tasks/app-clip.js +404 -0
  33. package/build/metadata/apple/tasks/index.js +2 -0
  34. package/build/metadata/apple/tasks/previews.js +16 -12
  35. package/build/metadata/apple/tasks/screenshots.js +15 -4
  36. package/build/metadata/apple/types.d.ts +28 -1
  37. package/build/observe/fetchEvents.d.ts +27 -0
  38. package/build/observe/fetchEvents.js +83 -0
  39. package/build/observe/fetchMetrics.d.ts +11 -0
  40. package/build/observe/fetchMetrics.js +78 -0
  41. package/build/observe/fetchVersions.d.ts +7 -0
  42. package/build/observe/fetchVersions.js +31 -0
  43. package/build/observe/formatEvents.d.ts +31 -0
  44. package/build/observe/formatEvents.js +99 -0
  45. package/build/observe/formatMetrics.d.ts +38 -0
  46. package/build/observe/formatMetrics.js +206 -0
  47. package/build/observe/formatVersions.d.ts +32 -0
  48. package/build/observe/formatVersions.js +92 -0
  49. package/build/observe/metricNames.d.ts +4 -0
  50. package/build/observe/metricNames.js +33 -0
  51. package/build/observe/startAndEndTime.d.ts +18 -0
  52. package/build/observe/startAndEndTime.js +36 -0
  53. package/build/user/SessionManager.js +11 -0
  54. package/build/worker/upload.js +15 -5
  55. package/oclif.manifest.json +2102 -1620
  56. package/package.json +9 -6
  57. package/schema/metadata-0.json +177 -0
@@ -162,6 +162,8 @@ export type Account = {
162
162
  /** Billing information. Only visible to members with the ADMIN or OWNER role. */
163
163
  billing?: Maybe<Billing>;
164
164
  billingPeriod: BillingPeriod;
165
+ /** Convex team connections for this account */
166
+ convexTeamConnections: Array<ConvexTeamConnection>;
165
167
  createdAt: Scalars['DateTime']['output'];
166
168
  displayName?: Maybe<Scalars['String']['output']>;
167
169
  /** Echo projects for this account (paginated, most recent first) */
@@ -197,6 +199,8 @@ export type Account = {
197
199
  name: Scalars['String']['output'];
198
200
  /** Offers set on this account */
199
201
  offers?: Maybe<Array<Offer>>;
202
+ /** Onboarding milestone stats for this account */
203
+ onboardingStats: AccountOnboardingStats;
200
204
  /**
201
205
  * Owning User of this account if personal account
202
206
  * @deprecated Deprecated in favor of ownerUserActor
@@ -708,6 +712,14 @@ export type AccountNotificationPreferenceInput = {
708
712
  event: NotificationEvent;
709
713
  type: NotificationType;
710
714
  };
715
+ /** Onboarding milestone stats for an account */
716
+ export type AccountOnboardingStats = {
717
+ __typename?: 'AccountOnboardingStats';
718
+ firstBuildCompletedAt?: Maybe<Scalars['DateTime']['output']>;
719
+ firstSubmissionCompletedAt?: Maybe<Scalars['DateTime']['output']>;
720
+ hasConfiguredUpdate: Scalars['Boolean']['output'];
721
+ hasTeamMembers: Scalars['Boolean']['output'];
722
+ };
711
723
  export type AccountQuery = {
712
724
  __typename?: 'AccountQuery';
713
725
  /** Query an Account by ID */
@@ -994,7 +1006,6 @@ export type AndroidAppCredentialsMutationCreateAndroidAppCredentialsArgs = {
994
1006
  applicationIdentifier: Scalars['String']['input'];
995
1007
  };
996
1008
  export type AndroidAppCredentialsMutationCreateFcmV1CredentialArgs = {
997
- accountId: Scalars['ID']['input'];
998
1009
  androidAppCredentialsId: Scalars['String']['input'];
999
1010
  credential: Scalars['String']['input'];
1000
1011
  };
@@ -1201,6 +1212,7 @@ export type App = Project & {
1201
1212
  activityTimelineProjectActivities: Array<ActivityTimelineProjectActivity>;
1202
1213
  /** Android app credentials for the project */
1203
1214
  androidAppCredentials: Array<AndroidAppCredentials>;
1215
+ appStoreConnectApp?: Maybe<AppStoreConnectApp>;
1204
1216
  /**
1205
1217
  * ios.appStoreUrl field from most recent classic update manifest
1206
1218
  * @deprecated Classic updates have been deprecated.
@@ -1333,6 +1345,7 @@ export type App = Project & {
1333
1345
  timelineActivity: TimelineActivityConnection;
1334
1346
  /** @deprecated 'likes' have been deprecated. */
1335
1347
  trendScore: Scalars['Float']['output'];
1348
+ turtleBrownfieldArtifactsPaginated: BrownfieldArtifactsConnection;
1336
1349
  /** get an EAS branch owned by the app by name */
1337
1350
  updateBranchByName?: Maybe<UpdateBranch>;
1338
1351
  /** EAS branches owned by an app */
@@ -1508,6 +1521,14 @@ export type AppTimelineActivityArgs = {
1508
1521
  last?: InputMaybe<Scalars['Int']['input']>;
1509
1522
  };
1510
1523
  /** Represents an Exponent App (or Experience in legacy terms) */
1524
+ export type AppTurtleBrownfieldArtifactsPaginatedArgs = {
1525
+ after?: InputMaybe<Scalars['String']['input']>;
1526
+ before?: InputMaybe<Scalars['String']['input']>;
1527
+ filter?: InputMaybe<BrownfieldArtifactFilterInput>;
1528
+ first?: InputMaybe<Scalars['Int']['input']>;
1529
+ last?: InputMaybe<Scalars['Int']['input']>;
1530
+ };
1531
+ /** Represents an Exponent App (or Experience in legacy terms) */
1511
1532
  export type AppUpdateBranchByNameArgs = {
1512
1533
  name: Scalars['String']['input'];
1513
1534
  };
@@ -1769,12 +1790,15 @@ export type AppNotificationPreferenceInput = {
1769
1790
  };
1770
1791
  export type AppObserve = {
1771
1792
  __typename?: 'AppObserve';
1793
+ appVersions: Array<AppObserveAppVersion>;
1772
1794
  environments: Array<Scalars['String']['output']>;
1773
1795
  events: AppObserveEventsConnection;
1774
- releases: Array<AppObserveRelease>;
1775
1796
  timeSeries: AppObserveTimeSeries;
1776
1797
  totalEventCount: Scalars['Int']['output'];
1777
1798
  };
1799
+ export type AppObserveAppVersionsArgs = {
1800
+ input: AppObserveReleasesInput;
1801
+ };
1778
1802
  export type AppObserveEnvironmentsArgs = {
1779
1803
  endTime?: InputMaybe<Scalars['DateTime']['input']>;
1780
1804
  platform?: InputMaybe<AppObservePlatform>;
@@ -1788,12 +1812,48 @@ export type AppObserveEventsArgs = {
1788
1812
  last?: InputMaybe<Scalars['Int']['input']>;
1789
1813
  orderBy?: InputMaybe<AppObserveEventsOrderBy>;
1790
1814
  };
1791
- export type AppObserveReleasesArgs = {
1792
- input: AppObserveReleasesInput;
1793
- };
1794
1815
  export type AppObserveTimeSeriesArgs = {
1795
1816
  input: AppObserveTimeSeriesInput;
1796
1817
  };
1818
+ export type AppObserveAppBuildNumber = {
1819
+ __typename?: 'AppObserveAppBuildNumber';
1820
+ appBuildNumber: Scalars['String']['output'];
1821
+ easBuilds: Array<AppObserveAppEasBuild>;
1822
+ eventCount: Scalars['Int']['output'];
1823
+ firstSeenAt: Scalars['DateTime']['output'];
1824
+ uniqueUserCount: Scalars['Int']['output'];
1825
+ };
1826
+ export type AppObserveAppEasBuild = {
1827
+ __typename?: 'AppObserveAppEasBuild';
1828
+ easBuildId: Scalars['String']['output'];
1829
+ eventCount: Scalars['Int']['output'];
1830
+ firstSeenAt: Scalars['DateTime']['output'];
1831
+ uniqueUserCount: Scalars['Int']['output'];
1832
+ };
1833
+ export type AppObserveAppUpdate = {
1834
+ __typename?: 'AppObserveAppUpdate';
1835
+ appUpdateId: Scalars['String']['output'];
1836
+ easBuilds: Array<AppObserveAppEasBuild>;
1837
+ eventCount: Scalars['Int']['output'];
1838
+ firstSeenAt: Scalars['DateTime']['output'];
1839
+ uniqueUserCount: Scalars['Int']['output'];
1840
+ };
1841
+ export type AppObserveAppVersion = {
1842
+ __typename?: 'AppObserveAppVersion';
1843
+ appVersion: Scalars['String']['output'];
1844
+ buildNumbers: Array<AppObserveAppBuildNumber>;
1845
+ eventCount: Scalars['Int']['output'];
1846
+ firstSeenAt: Scalars['DateTime']['output'];
1847
+ metrics: Array<AppObserveAppVersionMetric>;
1848
+ uniqueUserCount: Scalars['Int']['output'];
1849
+ updates: Array<AppObserveAppUpdate>;
1850
+ };
1851
+ export type AppObserveAppVersionMetric = {
1852
+ __typename?: 'AppObserveAppVersionMetric';
1853
+ eventCount: Scalars['Int']['output'];
1854
+ metricName: Scalars['String']['output'];
1855
+ statistics: AppObserveVersionMarkerStatistics;
1856
+ };
1797
1857
  export type AppObserveEvent = {
1798
1858
  __typename?: 'AppObserveEvent';
1799
1859
  appBuildNumber: Scalars['String']['output'];
@@ -1803,6 +1863,7 @@ export type AppObserveEvent = {
1803
1863
  appVersion: Scalars['String']['output'];
1804
1864
  clientVersion?: Maybe<Scalars['String']['output']>;
1805
1865
  countryCode?: Maybe<Scalars['String']['output']>;
1866
+ customParams?: Maybe<Scalars['JSON']['output']>;
1806
1867
  deviceLanguageTag?: Maybe<Scalars['String']['output']>;
1807
1868
  deviceModel: Scalars['String']['output'];
1808
1869
  deviceName?: Maybe<Scalars['String']['output']>;
@@ -1836,6 +1897,8 @@ export type AppObserveEventsConnection = {
1836
1897
  pageInfo: PageInfo;
1837
1898
  };
1838
1899
  export type AppObserveEventsFilter = {
1900
+ appBuildNumber?: InputMaybe<Scalars['String']['input']>;
1901
+ appEasBuildId?: InputMaybe<Scalars['String']['input']>;
1839
1902
  appUpdateId?: InputMaybe<Scalars['String']['input']>;
1840
1903
  appVersion?: InputMaybe<Scalars['String']['input']>;
1841
1904
  easClientId?: InputMaybe<Scalars['String']['input']>;
@@ -1862,32 +1925,21 @@ export declare enum AppObservePlatform {
1862
1925
  Android = "ANDROID",
1863
1926
  Ios = "IOS"
1864
1927
  }
1865
- export type AppObserveRelease = {
1866
- __typename?: 'AppObserveRelease';
1867
- appUpdateId?: Maybe<Scalars['String']['output']>;
1868
- appVersion: Scalars['String']['output'];
1869
- firstSeenAt: Scalars['DateTime']['output'];
1870
- type: AppObserveReleaseType;
1871
- };
1872
- export declare enum AppObserveReleaseType {
1873
- Update = "UPDATE",
1874
- Version = "VERSION"
1875
- }
1876
1928
  export type AppObserveReleasesInput = {
1877
1929
  endTime: Scalars['DateTime']['input'];
1878
1930
  environment?: InputMaybe<Scalars['String']['input']>;
1931
+ metricNames?: InputMaybe<Array<Scalars['String']['input']>>;
1879
1932
  platform: AppObservePlatform;
1880
1933
  startTime: Scalars['DateTime']['input'];
1881
1934
  };
1882
1935
  export type AppObserveTimeSeries = {
1883
1936
  __typename?: 'AppObserveTimeSeries';
1937
+ appVersionMarkers: Array<AppObserveAppVersion>;
1884
1938
  buckets: Array<AppObserveTimeSeriesBucket>;
1885
1939
  eventCount: Scalars['Int']['output'];
1886
1940
  latestVersionStatistics?: Maybe<AppObserveVersionStatistics>;
1887
1941
  previousVersionStatistics?: Maybe<AppObserveVersionStatistics>;
1888
1942
  statistics: AppObserveTimeSeriesStatistics;
1889
- updateMarkers: Array<AppObserveUpdateMarker>;
1890
- versionMarkers: Array<AppObserveVersionMarker>;
1891
1943
  };
1892
1944
  export type AppObserveTimeSeriesBucket = {
1893
1945
  __typename?: 'AppObserveTimeSeriesBucket';
@@ -1902,6 +1954,8 @@ export type AppObserveTimeSeriesBucket = {
1902
1954
  p99?: Maybe<Scalars['Float']['output']>;
1903
1955
  };
1904
1956
  export type AppObserveTimeSeriesInput = {
1957
+ appBuildNumber?: InputMaybe<Scalars['String']['input']>;
1958
+ appEasBuildId?: InputMaybe<Scalars['String']['input']>;
1905
1959
  appUpdateId?: InputMaybe<Scalars['String']['input']>;
1906
1960
  appVersion?: InputMaybe<Scalars['String']['input']>;
1907
1961
  bucketIntervalMinutes?: InputMaybe<Scalars['Int']['input']>;
@@ -1922,20 +1976,6 @@ export type AppObserveTimeSeriesStatistics = {
1922
1976
  p90?: Maybe<Scalars['Float']['output']>;
1923
1977
  p99?: Maybe<Scalars['Float']['output']>;
1924
1978
  };
1925
- export type AppObserveUpdateMarker = {
1926
- __typename?: 'AppObserveUpdateMarker';
1927
- appUpdateId: Scalars['String']['output'];
1928
- appVersion: Scalars['String']['output'];
1929
- eventCount: Scalars['Int']['output'];
1930
- firstSeenAt: Scalars['DateTime']['output'];
1931
- };
1932
- export type AppObserveVersionMarker = {
1933
- __typename?: 'AppObserveVersionMarker';
1934
- appVersion: Scalars['String']['output'];
1935
- eventCount: Scalars['Int']['output'];
1936
- firstSeenAt: Scalars['DateTime']['output'];
1937
- statistics: AppObserveVersionMarkerStatistics;
1938
- };
1939
1979
  export type AppObserveVersionMarkerStatistics = {
1940
1980
  __typename?: 'AppObserveVersionMarkerStatistics';
1941
1981
  average?: Maybe<Scalars['Float']['output']>;
@@ -2045,9 +2085,13 @@ export type AppStoreConnectApiKey = {
2045
2085
  keyIdentifier: Scalars['String']['output'];
2046
2086
  keyP8: Scalars['String']['output'];
2047
2087
  name?: Maybe<Scalars['String']['output']>;
2088
+ remoteAppStoreConnectApps: Array<RemoteAppStoreConnectApp>;
2048
2089
  roles?: Maybe<Array<AppStoreConnectUserRole>>;
2049
2090
  updatedAt: Scalars['DateTime']['output'];
2050
2091
  };
2092
+ export type AppStoreConnectApiKeyRemoteAppStoreConnectAppsArgs = {
2093
+ bundleIdentifier?: InputMaybe<Scalars['String']['input']>;
2094
+ };
2051
2095
  export type AppStoreConnectApiKeyInput = {
2052
2096
  appleTeamId?: InputMaybe<Scalars['ID']['input']>;
2053
2097
  issuerIdentifier: Scalars['String']['input'];
@@ -2086,6 +2130,36 @@ export type AppStoreConnectApiKeyQueryByIdArgs = {
2086
2130
  export type AppStoreConnectApiKeyUpdateInput = {
2087
2131
  appleTeamId?: InputMaybe<Scalars['ID']['input']>;
2088
2132
  };
2133
+ export type AppStoreConnectApp = {
2134
+ __typename?: 'AppStoreConnectApp';
2135
+ app: App;
2136
+ appStoreConnectApiKey: AppStoreConnectApiKey;
2137
+ ascAppIdentifier: Scalars['String']['output'];
2138
+ createdAt: Scalars['DateTime']['output'];
2139
+ id: Scalars['ID']['output'];
2140
+ remoteAppStoreConnectApp: RemoteAppStoreConnectApp;
2141
+ updatedAt: Scalars['DateTime']['output'];
2142
+ webhookEventTypes: Array<Scalars['String']['output']>;
2143
+ webhookIdentifier: Scalars['ID']['output'];
2144
+ };
2145
+ export type AppStoreConnectAppInput = {
2146
+ appId: Scalars['ID']['input'];
2147
+ appStoreConnectApiKeyId: Scalars['ID']['input'];
2148
+ ascAppIdentifier: Scalars['String']['input'];
2149
+ };
2150
+ export type AppStoreConnectAppMutation = {
2151
+ __typename?: 'AppStoreConnectAppMutation';
2152
+ /** Create an App Store Connect app for an Expo app. */
2153
+ createAppStoreConnectApp: AppStoreConnectApp;
2154
+ /** Delete an App Store Connect app by ID. */
2155
+ deleteAppStoreConnectApp: DeleteAppStoreConnectAppResult;
2156
+ };
2157
+ export type AppStoreConnectAppMutationCreateAppStoreConnectAppArgs = {
2158
+ appStoreConnectAppInput: AppStoreConnectAppInput;
2159
+ };
2160
+ export type AppStoreConnectAppMutationDeleteAppStoreConnectAppArgs = {
2161
+ appStoreConnectAppId: Scalars['ID']['input'];
2162
+ };
2089
2163
  export declare enum AppStoreConnectUserRole {
2090
2164
  AccessToReports = "ACCESS_TO_REPORTS",
2091
2165
  AccountHolder = "ACCOUNT_HOLDER",
@@ -2778,6 +2852,32 @@ export type BranchQuery = {
2778
2852
  export type BranchQueryByIdArgs = {
2779
2853
  branchId: Scalars['ID']['input'];
2780
2854
  };
2855
+ export type BrownfieldArtifact = {
2856
+ __typename?: 'BrownfieldArtifact';
2857
+ bundleName: Scalars['String']['output'];
2858
+ createdAt: Scalars['DateTime']['output'];
2859
+ downloadUrl?: Maybe<Scalars['String']['output']>;
2860
+ id: Scalars['ID']['output'];
2861
+ platform: AppPlatform;
2862
+ sizeBytes?: Maybe<Scalars['Int']['output']>;
2863
+ updatedAt: Scalars['DateTime']['output'];
2864
+ version: Scalars['String']['output'];
2865
+ };
2866
+ export type BrownfieldArtifactEdge = {
2867
+ __typename?: 'BrownfieldArtifactEdge';
2868
+ cursor: Scalars['String']['output'];
2869
+ node: BrownfieldArtifact;
2870
+ };
2871
+ export type BrownfieldArtifactFilterInput = {
2872
+ bundleName?: InputMaybe<Scalars['String']['input']>;
2873
+ platform?: InputMaybe<AppPlatform>;
2874
+ version?: InputMaybe<Scalars['String']['input']>;
2875
+ };
2876
+ export type BrownfieldArtifactsConnection = {
2877
+ __typename?: 'BrownfieldArtifactsConnection';
2878
+ edges: Array<BrownfieldArtifactEdge>;
2879
+ pageInfo: PageInfo;
2880
+ };
2781
2881
  /** Represents an EAS Build */
2782
2882
  export type Build = ActivityTimelineProjectActivity & BuildOrBuildJob & {
2783
2883
  __typename?: 'Build';
@@ -3337,12 +3437,6 @@ export type CodeSigningInfoInput = {
3337
3437
  keyid: Scalars['String']['input'];
3338
3438
  sig: Scalars['String']['input'];
3339
3439
  };
3340
- /** Metadata to set when completing a message. */
3341
- export type CompleteEchoMessageMetadataInput = {
3342
- cost?: InputMaybe<Scalars['Float']['input']>;
3343
- finishReason?: InputMaybe<Scalars['String']['input']>;
3344
- tokens?: InputMaybe<EchoMessageTokenUsageInput>;
3345
- };
3346
3440
  export type Concurrencies = {
3347
3441
  __typename?: 'Concurrencies';
3348
3442
  android: Scalars['Int']['output'];
@@ -3363,6 +3457,25 @@ export type ConvexIntegrationQuery = {
3363
3457
  __typename?: 'ConvexIntegrationQuery';
3364
3458
  clientIdentifier: Scalars['String']['output'];
3365
3459
  };
3460
+ export type ConvexTeamConnection = {
3461
+ __typename?: 'ConvexTeamConnection';
3462
+ account: Account;
3463
+ convexTeamIdentifier: Scalars['String']['output'];
3464
+ createdAt: Scalars['DateTime']['output'];
3465
+ id: Scalars['ID']['output'];
3466
+ updatedAt: Scalars['DateTime']['output'];
3467
+ };
3468
+ export type ConvexTeamConnectionMutation = {
3469
+ __typename?: 'ConvexTeamConnectionMutation';
3470
+ createConvexTeamConnection: ConvexTeamConnection;
3471
+ deleteConvexTeamConnection: ConvexTeamConnection;
3472
+ };
3473
+ export type ConvexTeamConnectionMutationCreateConvexTeamConnectionArgs = {
3474
+ convexTeamConnectionData: CreateConvexTeamConnectionInput;
3475
+ };
3476
+ export type ConvexTeamConnectionMutationDeleteConvexTeamConnectionArgs = {
3477
+ convexTeamConnectionId: Scalars['ID']['input'];
3478
+ };
3366
3479
  export declare enum CrashSampleFor {
3367
3480
  Newest = "NEWEST",
3368
3481
  Oldest = "OLDEST"
@@ -3392,11 +3505,37 @@ export type CreateAndroidSubmissionInput = {
3392
3505
  config: AndroidSubmissionConfigInput;
3393
3506
  submittedBuildId?: InputMaybe<Scalars['ID']['input']>;
3394
3507
  };
3508
+ export type CreateBrownfieldArtifactInput = {
3509
+ appId: Scalars['ID']['input'];
3510
+ bundleName: Scalars['String']['input'];
3511
+ /** Filename for the artifact (e.g. "MyFramework.xcframework.tar.gz"). */
3512
+ filename: Scalars['String']['input'];
3513
+ platform: AppPlatform;
3514
+ /** The ID of the turtle job run that is producing this artifact. */
3515
+ producingTurtleJobRunId: Scalars['ID']['input'];
3516
+ /** Size of the artifact in bytes. Required for generating the signed upload URL. */
3517
+ size: Scalars['Int']['input'];
3518
+ /** Optional. If omitted, the version is auto-incremented from the latest artifact for the same platform and bundle name. */
3519
+ version?: InputMaybe<Scalars['String']['input']>;
3520
+ };
3521
+ export type CreateBrownfieldArtifactResult = {
3522
+ __typename?: 'CreateBrownfieldArtifactResult';
3523
+ artifact: BrownfieldArtifact;
3524
+ /** Headers to include with the upload request. */
3525
+ uploadHeaders: Scalars['JSONObject']['output'];
3526
+ /** Signed URL to upload the artifact to. */
3527
+ uploadUrl: Scalars['String']['output'];
3528
+ };
3395
3529
  export type CreateBuildResult = {
3396
3530
  __typename?: 'CreateBuildResult';
3397
3531
  build: Build;
3398
3532
  deprecationInfo?: Maybe<EasBuildDeprecationInfo>;
3399
3533
  };
3534
+ export type CreateConvexTeamConnectionInput = {
3535
+ accountId: Scalars['ID']['input'];
3536
+ convexTeamName?: InputMaybe<Scalars['String']['input']>;
3537
+ deploymentRegion: Scalars['String']['input'];
3538
+ };
3400
3539
  export type CreateEchoChatInput = {
3401
3540
  agentMetadata?: InputMaybe<Scalars['JSONObject']['input']>;
3402
3541
  agentType?: InputMaybe<EchoAgentType>;
@@ -3406,10 +3545,12 @@ export type CreateEchoChatInput = {
3406
3545
  };
3407
3546
  export type CreateEchoMessageInput = {
3408
3547
  echoChatId: Scalars['ID']['input'];
3548
+ echoTurnId?: InputMaybe<Scalars['ID']['input']>;
3409
3549
  id?: InputMaybe<Scalars['ID']['input']>;
3410
3550
  metadata?: InputMaybe<Scalars['JSONObject']['input']>;
3411
3551
  parentEchoMessageId?: InputMaybe<Scalars['ID']['input']>;
3412
3552
  role: EchoMessageRole;
3553
+ /** Legacy alias for echoTurnId. Must be a valid UUIDv7. Provide exactly one of echoTurnId or turnId. */
3413
3554
  turnId?: InputMaybe<Scalars['ID']['input']>;
3414
3555
  userId?: InputMaybe<Scalars['ID']['input']>;
3415
3556
  };
@@ -3456,6 +3597,7 @@ export type CreateEchoVersionInput = {
3456
3597
  diffs: Scalars['JSON']['input'];
3457
3598
  echoChatId?: InputMaybe<Scalars['ID']['input']>;
3458
3599
  echoProjectId: Scalars['ID']['input'];
3600
+ echoTurnId?: InputMaybe<Scalars['ID']['input']>;
3459
3601
  gitBranch?: InputMaybe<Scalars['String']['input']>;
3460
3602
  gitCommitHash?: InputMaybe<Scalars['String']['input']>;
3461
3603
  gitCommitMessage?: InputMaybe<Scalars['String']['input']>;
@@ -3463,6 +3605,7 @@ export type CreateEchoVersionInput = {
3463
3605
  revertedFromEchoVersionId?: InputMaybe<Scalars['ID']['input']>;
3464
3606
  source: EchoVersionSource;
3465
3607
  thumbnail?: InputMaybe<EchoVersionThumbnailInput>;
3608
+ /** Legacy alias for echoTurnId. Must be a valid UUIDv7. Provide exactly one of echoTurnId or turnId. */
3466
3609
  turnId?: InputMaybe<Scalars['ID']['input']>;
3467
3610
  };
3468
3611
  export type CreateEnvironmentSecretInput = {
@@ -3671,6 +3814,10 @@ export type DeleteAndroidKeystoreResult = {
3671
3814
  __typename?: 'DeleteAndroidKeystoreResult';
3672
3815
  id: Scalars['ID']['output'];
3673
3816
  };
3817
+ export type DeleteAppStoreConnectAppResult = {
3818
+ __typename?: 'DeleteAppStoreConnectAppResult';
3819
+ id: Scalars['ID']['output'];
3820
+ };
3674
3821
  export type DeleteAppleDeviceResult = {
3675
3822
  __typename?: 'DeleteAppleDeviceResult';
3676
3823
  id: Scalars['ID']['output'];
@@ -3737,6 +3884,10 @@ export type DeleteSsoUserResult = {
3737
3884
  __typename?: 'DeleteSSOUserResult';
3738
3885
  id: Scalars['ID']['output'];
3739
3886
  };
3887
+ export type DeleteSentryInstallationResult = {
3888
+ __typename?: 'DeleteSentryInstallationResult';
3889
+ id: Scalars['ID']['output'];
3890
+ };
3740
3891
  export type DeleteSentryProjectResult = {
3741
3892
  __typename?: 'DeleteSentryProjectResult';
3742
3893
  id: Scalars['ID']['output'];
@@ -3918,6 +4069,7 @@ export declare enum EasBuildWaiverType {
3918
4069
  SystemError = "SYSTEM_ERROR"
3919
4070
  }
3920
4071
  export declare enum EasService {
4072
+ Agent = "AGENT",
3921
4073
  Builds = "BUILDS",
3922
4074
  Jobs = "JOBS",
3923
4075
  Mcp = "MCP",
@@ -3927,6 +4079,7 @@ export declare enum EasServiceMetric {
3927
4079
  AssetsRequests = "ASSETS_REQUESTS",
3928
4080
  BandwidthUsage = "BANDWIDTH_USAGE",
3929
4081
  Builds = "BUILDS",
4082
+ CreditUsage = "CREDIT_USAGE",
3930
4083
  LocalBuilds = "LOCAL_BUILDS",
3931
4084
  ManifestRequests = "MANIFEST_REQUESTS",
3932
4085
  McpRequests = "MCP_REQUESTS",
@@ -4029,22 +4182,18 @@ export type EchoMessage = {
4029
4182
  echoChat: EchoChat;
4030
4183
  /** Message parts (text, tool calls, etc.) ordered by index */
4031
4184
  echoMessageParts: Array<EchoMessagePart>;
4185
+ /** Turn entity for grouping user message + assistant response */
4186
+ echoTurn?: Maybe<EchoTurn>;
4032
4187
  id: Scalars['ID']['output'];
4033
4188
  metadata?: Maybe<Scalars['JSONObject']['output']>;
4034
4189
  /** Parent message (for conversation branching) */
4035
4190
  parentEchoMessage?: Maybe<EchoMessage>;
4036
4191
  role: EchoMessageRole;
4037
- /** Turn ID for grouping user message + assistant response (UUID) */
4192
+ /** Turn ID (legacy alias for echoTurn.id, prefer echoTurn) */
4038
4193
  turnId?: Maybe<Scalars['ID']['output']>;
4039
4194
  /** User who sent the message (for user messages) */
4040
4195
  user?: Maybe<User>;
4041
4196
  };
4042
- /** Breakdown of cache write input tokens by cache TTL. */
4043
- export type EchoMessageCacheWriteInput = {
4044
- ttl1h?: InputMaybe<Scalars['Int']['input']>;
4045
- ttl5m?: InputMaybe<Scalars['Int']['input']>;
4046
- ttl24h?: InputMaybe<Scalars['Int']['input']>;
4047
- };
4048
4197
  export type EchoMessageConnection = {
4049
4198
  __typename?: 'EchoMessageConnection';
4050
4199
  edges: Array<EchoMessageEdge>;
@@ -4058,14 +4207,17 @@ export type EchoMessageEdge = {
4058
4207
  };
4059
4208
  export type EchoMessageMutation = {
4060
4209
  __typename?: 'EchoMessageMutation';
4061
- /** Mark a message as completed (sets completedAt and optionally updates metadata with tokens) */
4210
+ /**
4211
+ * Mark a message as completed (sets completedAt).
4212
+ * metadata is accepted for backward compatibility but ignored — use echoTurn.completeTurn instead.
4213
+ */
4062
4214
  completeMessage: EchoMessage;
4063
4215
  /** Create a new message */
4064
4216
  createMessage: EchoMessage;
4065
4217
  };
4066
4218
  export type EchoMessageMutationCompleteMessageArgs = {
4067
4219
  id: Scalars['ID']['input'];
4068
- metadata?: InputMaybe<CompleteEchoMessageMetadataInput>;
4220
+ metadata?: InputMaybe<Scalars['JSONObject']['input']>;
4069
4221
  };
4070
4222
  export type EchoMessageMutationCreateMessageArgs = {
4071
4223
  input: CreateEchoMessageInput;
@@ -4135,15 +4287,6 @@ export declare enum EchoMessageRole {
4135
4287
  Assistant = "ASSISTANT",
4136
4288
  User = "USER"
4137
4289
  }
4138
- /** Token usage for billing. Tracks input/output tokens and cache usage. */
4139
- export type EchoMessageTokenUsageInput = {
4140
- cacheRead?: InputMaybe<Scalars['Int']['input']>;
4141
- cacheWrite?: InputMaybe<Scalars['Int']['input']>;
4142
- cacheWriteBreakdown?: InputMaybe<EchoMessageCacheWriteInput>;
4143
- input: Scalars['Int']['input'];
4144
- output: Scalars['Int']['input'];
4145
- reasoning?: InputMaybe<Scalars['Int']['input']>;
4146
- };
4147
4290
  export type EchoProject = {
4148
4291
  __typename?: 'EchoProject';
4149
4292
  account: Account;
@@ -4324,6 +4467,50 @@ export type EchoRepositoryResult = {
4324
4467
  owner: Scalars['String']['output'];
4325
4468
  url: Scalars['String']['output'];
4326
4469
  };
4470
+ export type EchoTurn = {
4471
+ __typename?: 'EchoTurn';
4472
+ completedAt?: Maybe<Scalars['DateTime']['output']>;
4473
+ createdAt: Scalars['DateTime']['output'];
4474
+ /** Parent chat */
4475
+ echoChat: EchoChat;
4476
+ /** Messages in this turn */
4477
+ echoMessages: Array<EchoMessage>;
4478
+ id: Scalars['ID']['output'];
4479
+ };
4480
+ /** Breakdown of cache write input tokens by cache TTL. */
4481
+ export type EchoTurnCacheWriteInput = {
4482
+ ttl1h?: InputMaybe<Scalars['Int']['input']>;
4483
+ ttl5m?: InputMaybe<Scalars['Int']['input']>;
4484
+ ttl24h?: InputMaybe<Scalars['Int']['input']>;
4485
+ };
4486
+ export type EchoTurnMutation = {
4487
+ __typename?: 'EchoTurnMutation';
4488
+ /** Mark a turn as completed and create a billing ledger entry */
4489
+ completeTurn: EchoTurn;
4490
+ };
4491
+ export type EchoTurnMutationCompleteTurnArgs = {
4492
+ id: Scalars['ID']['input'];
4493
+ usage: EchoTurnUsageInput;
4494
+ };
4495
+ /** Token usage for billing. Tracks input/output tokens and cache usage. */
4496
+ export type EchoTurnTokenUsageInput = {
4497
+ cacheRead?: InputMaybe<Scalars['Int']['input']>;
4498
+ cacheWrite?: InputMaybe<Scalars['Int']['input']>;
4499
+ cacheWriteBreakdown?: InputMaybe<EchoTurnCacheWriteInput>;
4500
+ input: Scalars['Int']['input'];
4501
+ output: Scalars['Int']['input'];
4502
+ reasoning?: InputMaybe<Scalars['Int']['input']>;
4503
+ };
4504
+ /** Cumulative usage data for a completed turn. */
4505
+ export type EchoTurnUsageInput = {
4506
+ agent?: InputMaybe<Scalars['String']['input']>;
4507
+ cost?: InputMaybe<Scalars['Float']['input']>;
4508
+ finishReason?: InputMaybe<Scalars['String']['input']>;
4509
+ model?: InputMaybe<Scalars['String']['input']>;
4510
+ provider?: InputMaybe<Scalars['String']['input']>;
4511
+ sdkCost?: InputMaybe<Scalars['Float']['input']>;
4512
+ tokens?: InputMaybe<EchoTurnTokenUsageInput>;
4513
+ };
4327
4514
  export type EchoVersion = {
4328
4515
  __typename?: 'EchoVersion';
4329
4516
  buildError?: Maybe<Scalars['String']['output']>;
@@ -4333,6 +4520,8 @@ export type EchoVersion = {
4333
4520
  echoChat?: Maybe<EchoChat>;
4334
4521
  /** Parent project */
4335
4522
  echoProject: EchoProject;
4523
+ /** Turn that created this version */
4524
+ echoTurn?: Maybe<EchoTurn>;
4336
4525
  gitBranch: Scalars['String']['output'];
4337
4526
  gitCommitHash?: Maybe<Scalars['String']['output']>;
4338
4527
  gitCommitMessage?: Maybe<Scalars['String']['output']>;
@@ -4342,7 +4531,7 @@ export type EchoVersion = {
4342
4531
  revertedFromEchoVersion?: Maybe<EchoVersion>;
4343
4532
  source: EchoVersionSource;
4344
4533
  thumbnail?: Maybe<EchoVersionThumbnail>;
4345
- /** Turn ID that created this version (UUID, optional) */
4534
+ /** Turn ID (legacy alias for echoTurn.id, prefer echoTurn) */
4346
4535
  turnId?: Maybe<Scalars['ID']['output']>;
4347
4536
  };
4348
4537
  export type EchoVersionConnection = {
@@ -4413,7 +4602,7 @@ export declare enum EntityTypeName {
4413
4602
  AndroidKeystoreEntity = "AndroidKeystoreEntity",
4414
4603
  AppEntity = "AppEntity",
4415
4604
  AppStoreConnectApiKeyEntity = "AppStoreConnectApiKeyEntity",
4416
- AppStoreConnectAppWebhookEntity = "AppStoreConnectAppWebhookEntity",
4605
+ AppStoreConnectAppEntity = "AppStoreConnectAppEntity",
4417
4606
  AppleDeviceEntity = "AppleDeviceEntity",
4418
4607
  AppleDistributionCertificateEntity = "AppleDistributionCertificateEntity",
4419
4608
  AppleProvisioningProfileEntity = "AppleProvisioningProfileEntity",
@@ -4955,6 +5144,7 @@ export type GitHubRepository = {
4955
5144
  githubRepositoryIdentifier: Scalars['Int']['output'];
4956
5145
  githubRepositoryUrl?: Maybe<Scalars['String']['output']>;
4957
5146
  id: Scalars['ID']['output'];
5147
+ lastDeletionAttemptTime?: Maybe<Scalars['DateTime']['output']>;
4958
5148
  metadata: GitHubRepositoryMetadata;
4959
5149
  nodeIdentifier: Scalars['String']['output'];
4960
5150
  };
@@ -4976,8 +5166,8 @@ export type GitHubRepositoryMutation = {
4976
5166
  createAndConfigureRepository: BackgroundJobReceipt;
4977
5167
  /** Create a GitHub repository for an App */
4978
5168
  createGitHubRepository: GitHubRepository;
4979
- /** Delete a GitHub repository by ID */
4980
- deleteGitHubRepository: GitHubRepository;
5169
+ /** Delete a GitHub repository by ID in the background */
5170
+ scheduleGitHubRepositoryDeletion: BackgroundJobReceipt;
4981
5171
  };
4982
5172
  export type GitHubRepositoryMutationConfigureEasArgs = {
4983
5173
  githubRepositoryId: Scalars['ID']['input'];
@@ -4988,7 +5178,7 @@ export type GitHubRepositoryMutationCreateAndConfigureRepositoryArgs = {
4988
5178
  export type GitHubRepositoryMutationCreateGitHubRepositoryArgs = {
4989
5179
  githubRepositoryData: CreateGitHubRepositoryInput;
4990
5180
  };
4991
- export type GitHubRepositoryMutationDeleteGitHubRepositoryArgs = {
5181
+ export type GitHubRepositoryMutationScheduleGitHubRepositoryDeletionArgs = {
4992
5182
  githubRepositoryId: Scalars['ID']['input'];
4993
5183
  };
4994
5184
  export type GitHubRepositoryOwner = {
@@ -5953,6 +6143,13 @@ export type PublishUpdateGroupInput = {
5953
6143
  turtleJobRunId?: InputMaybe<Scalars['String']['input']>;
5954
6144
  updateInfoGroup?: InputMaybe<UpdateInfoGroup>;
5955
6145
  };
6146
+ export type RemoteAppStoreConnectApp = {
6147
+ __typename?: 'RemoteAppStoreConnectApp';
6148
+ appStoreIconUrl?: Maybe<Scalars['String']['output']>;
6149
+ ascAppIdentifier: Scalars['String']['output'];
6150
+ bundleIdentifier: Scalars['String']['output'];
6151
+ name?: Maybe<Scalars['String']['output']>;
6152
+ };
5956
6153
  export declare enum RequestMethod {
5957
6154
  Delete = "DELETE",
5958
6155
  Get = "GET",
@@ -6110,6 +6307,8 @@ export type RootMutation = {
6110
6307
  app?: Maybe<AppMutation>;
6111
6308
  /** Mutations that modify an App Store Connect Api Key */
6112
6309
  appStoreConnectApiKey: AppStoreConnectApiKeyMutation;
6310
+ /** Mutations for App Store Connect apps. */
6311
+ appStoreConnectApp: AppStoreConnectAppMutation;
6113
6312
  /** Mutations that modify an AppVersion */
6114
6313
  appVersion: AppVersionMutation;
6115
6314
  /** Mutations that modify an Identifier for an iOS App */
@@ -6132,6 +6331,7 @@ export type RootMutation = {
6132
6331
  build: BuildMutation;
6133
6332
  /** Mutations that create, update, and delete Build Annotations */
6134
6333
  buildAnnotation: BuildAnnotationMutation;
6334
+ convexTeamConnection: ConvexTeamConnectionMutation;
6135
6335
  customDomain: CustomDomainMutation;
6136
6336
  deployments: DeploymentsMutation;
6137
6337
  /** Mutations that assign or modify DevDomainNames for apps */
@@ -6148,6 +6348,8 @@ export type RootMutation = {
6148
6348
  echoProject: EchoProjectMutation;
6149
6349
  /** Mutations for Echo repository management via the GitHub App */
6150
6350
  echoRepository: EchoRepositoryMutation;
6351
+ /** Mutations for Echo turns */
6352
+ echoTurn: EchoTurnMutation;
6151
6353
  /** Mutations for Echo versions */
6152
6354
  echoVersion: EchoVersionMutation;
6153
6355
  /** Mutations that create and delete EnvironmentSecrets */
@@ -6194,6 +6396,7 @@ export type RootMutation = {
6194
6396
  sentryProject: SentryProjectMutation;
6195
6397
  /** Mutations that modify an EAS Submit submission */
6196
6398
  submission: SubmissionMutation;
6399
+ turtleBrownfieldArtifacts: TurtleBrownfieldArtifactMutation;
6197
6400
  update: UpdateMutation;
6198
6401
  updateBranch: UpdateBranchMutation;
6199
6402
  updateChannel: UpdateChannelMutation;
@@ -6326,6 +6529,7 @@ export type RootQuery = {
6326
6529
  /** Top-level query object for querying Expo status page services. */
6327
6530
  statuspageService: StatuspageServiceQuery;
6328
6531
  submissions: SubmissionQuery;
6532
+ turtleBrownfieldArtifacts: TurtleBrownfieldArtifactQuery;
6329
6533
  /** Top-level query object for querying Updates. */
6330
6534
  updates: UpdateQuery;
6331
6535
  /** fetch all updates in a group */
@@ -6508,6 +6712,7 @@ export type SsoUser = Actor & UserActor & {
6508
6712
  /** @deprecated No longer supported */
6509
6713
  industry?: Maybe<Scalars['String']['output']>;
6510
6714
  isExpoAdmin: Scalars['Boolean']['output'];
6715
+ isStaffModeEnabled: Scalars['Boolean']['output'];
6511
6716
  lastDeletionAttemptTime?: Maybe<Scalars['DateTime']['output']>;
6512
6717
  lastName?: Maybe<Scalars['String']['output']>;
6513
6718
  /** @deprecated No longer supported */
@@ -6601,6 +6806,8 @@ export type SentryInstallationMutation = {
6601
6806
  __typename?: 'SentryInstallationMutation';
6602
6807
  /** Confirm a pending Sentry installation */
6603
6808
  confirmPendingSentryInstallation: SentryInstallation;
6809
+ /** Force delete a Sentry installation from Expo's side */
6810
+ deleteSentryInstallation: DeleteSentryInstallationResult;
6604
6811
  /** Generate a Sentry token for an installation */
6605
6812
  generateSentryToken: GenerateSentryTokenResult;
6606
6813
  /** Link a Sentry installation to an Expo account */
@@ -6609,6 +6816,9 @@ export type SentryInstallationMutation = {
6609
6816
  export type SentryInstallationMutationConfirmPendingSentryInstallationArgs = {
6610
6817
  installationId: Scalars['ID']['input'];
6611
6818
  };
6819
+ export type SentryInstallationMutationDeleteSentryInstallationArgs = {
6820
+ accountId: Scalars['ID']['input'];
6821
+ };
6612
6822
  export type SentryInstallationMutationGenerateSentryTokenArgs = {
6613
6823
  accountId: Scalars['ID']['input'];
6614
6824
  };
@@ -6638,6 +6848,12 @@ export type SentryProjectMutationCreateSentryProjectArgs = {
6638
6848
  export type SentryProjectMutationDeleteSentryProjectArgs = {
6639
6849
  sentryProjectId: Scalars['ID']['input'];
6640
6850
  };
6851
+ export type SizeBreakdownCategory = {
6852
+ __typename?: 'SizeBreakdownCategory';
6853
+ assetCount: Scalars['Int']['output'];
6854
+ category: Scalars['String']['output'];
6855
+ totalBytes: Scalars['Float']['output'];
6856
+ };
6641
6857
  export type Snack = Project & {
6642
6858
  __typename?: 'Snack';
6643
6859
  /** Description of the Snack */
@@ -6949,6 +7165,26 @@ export type TimelineActivityFilterInput = {
6949
7165
  releaseChannels?: InputMaybe<Array<Scalars['String']['input']>>;
6950
7166
  types?: InputMaybe<Array<ActivityTimelineProjectActivityType>>;
6951
7167
  };
7168
+ export type TurtleBrownfieldArtifactMutation = {
7169
+ __typename?: 'TurtleBrownfieldArtifactMutation';
7170
+ createTurtleBrownfieldArtifact: CreateBrownfieldArtifactResult;
7171
+ };
7172
+ export type TurtleBrownfieldArtifactMutationCreateTurtleBrownfieldArtifactArgs = {
7173
+ input: CreateBrownfieldArtifactInput;
7174
+ };
7175
+ export type TurtleBrownfieldArtifactQuery = {
7176
+ __typename?: 'TurtleBrownfieldArtifactQuery';
7177
+ byId: BrownfieldArtifact;
7178
+ latestForApp?: Maybe<BrownfieldArtifact>;
7179
+ };
7180
+ export type TurtleBrownfieldArtifactQueryByIdArgs = {
7181
+ turtleBrownfieldArtifactId: Scalars['ID']['input'];
7182
+ };
7183
+ export type TurtleBrownfieldArtifactQueryLatestForAppArgs = {
7184
+ appId: Scalars['ID']['input'];
7185
+ bundleName: Scalars['String']['input'];
7186
+ platform: AppPlatform;
7187
+ };
6952
7188
  export type UniqueUsersOverTimeData = {
6953
7189
  __typename?: 'UniqueUsersOverTimeData';
6954
7190
  data: LineChartData;
@@ -7188,8 +7424,10 @@ export type UpdateDeploymentsConnection = {
7188
7424
  export type UpdateDiffReceipt = {
7189
7425
  __typename?: 'UpdateDiffReceipt';
7190
7426
  appId: Scalars['ID']['output'];
7427
+ baseUpdate?: Maybe<Update>;
7191
7428
  baseUpdateId: Scalars['ID']['output'];
7192
7429
  createdAt: Scalars['DateTime']['output'];
7430
+ downloadUrl?: Maybe<Scalars['String']['output']>;
7193
7431
  errorCode?: Maybe<Scalars['String']['output']>;
7194
7432
  errorMessage?: Maybe<Scalars['String']['output']>;
7195
7433
  fileSize?: Maybe<Scalars['Int']['output']>;
@@ -7322,6 +7560,7 @@ export type UpdateInsights = {
7322
7560
  cumulativeAverageMetrics: CumulativeAverageMetrics;
7323
7561
  cumulativeMetrics: CumulativeMetrics;
7324
7562
  id: Scalars['ID']['output'];
7563
+ sizeBreakdownByCategory: Array<SizeBreakdownCategory>;
7325
7564
  totalUniqueUsers: Scalars['Int']['output'];
7326
7565
  };
7327
7566
  export type UpdateInsightsCumulativeMetricsArgs = {
@@ -7452,6 +7691,7 @@ export type UsageMetricTotal = {
7452
7691
  export declare enum UsageMetricType {
7453
7692
  Bandwidth = "BANDWIDTH",
7454
7693
  Build = "BUILD",
7694
+ Credit = "CREDIT",
7455
7695
  Minute = "MINUTE",
7456
7696
  Request = "REQUEST",
7457
7697
  Update = "UPDATE",
@@ -7513,6 +7753,7 @@ export type User = Actor & UserActor & {
7513
7753
  /** @deprecated No longer supported */
7514
7754
  isLegacy: Scalars['Boolean']['output'];
7515
7755
  isSecondFactorAuthenticationEnabled: Scalars['Boolean']['output'];
7756
+ isStaffModeEnabled: Scalars['Boolean']['output'];
7516
7757
  lastDeletionAttemptTime?: Maybe<Scalars['DateTime']['output']>;
7517
7758
  lastName?: Maybe<Scalars['String']['output']>;
7518
7759
  /** @deprecated No longer supported */
@@ -7609,6 +7850,7 @@ export type UserActor = {
7609
7850
  /** @deprecated No longer supported */
7610
7851
  industry?: Maybe<Scalars['String']['output']>;
7611
7852
  isExpoAdmin: Scalars['Boolean']['output'];
7853
+ isStaffModeEnabled: Scalars['Boolean']['output'];
7612
7854
  lastDeletionAttemptTime?: Maybe<Scalars['DateTime']['output']>;
7613
7855
  lastName?: Maybe<Scalars['String']['output']>;
7614
7856
  /** @deprecated No longer supported */
@@ -8925,6 +9167,10 @@ export type WorkflowRunTimeRangeInput = {
8925
9167
  latest?: InputMaybe<Scalars['DateTime']['input']>;
8926
9168
  };
8927
9169
  export declare enum WorkflowRunTriggerEventType {
9170
+ AppStoreConnectAppVersionStateChanged = "APP_STORE_CONNECT_APP_VERSION_STATE_CHANGED",
9171
+ AppStoreConnectBetaFeedbackSubmitted = "APP_STORE_CONNECT_BETA_FEEDBACK_SUBMITTED",
9172
+ AppStoreConnectBuildUploadStateChanged = "APP_STORE_CONNECT_BUILD_UPLOAD_STATE_CHANGED",
9173
+ AppStoreConnectExternalBetaStateChanged = "APP_STORE_CONNECT_EXTERNAL_BETA_STATE_CHANGED",
8928
9174
  EasSubmit = "EAS_SUBMIT",
8929
9175
  ExpoLaunch = "EXPO_LAUNCH",
8930
9176
  GithubPullRequestLabeled = "GITHUB_PULL_REQUEST_LABELED",
@@ -15808,6 +16054,203 @@ export type GoogleServiceAccountKeyByIdQuery = {
15808
16054
  };
15809
16055
  };
15810
16056
  };
16057
+ export type AppObserveTimeSeriesQueryVariables = Exact<{
16058
+ appId: Scalars['String']['input'];
16059
+ input: AppObserveTimeSeriesInput;
16060
+ }>;
16061
+ export type AppObserveTimeSeriesQuery = {
16062
+ __typename?: 'RootQuery';
16063
+ app: {
16064
+ __typename?: 'AppQuery';
16065
+ byId: {
16066
+ __typename?: 'App';
16067
+ id: string;
16068
+ observe: {
16069
+ __typename?: 'AppObserve';
16070
+ timeSeries: {
16071
+ __typename?: 'AppObserveTimeSeries';
16072
+ eventCount: number;
16073
+ appVersionMarkers: Array<{
16074
+ __typename?: 'AppObserveAppVersion';
16075
+ appVersion: string;
16076
+ firstSeenAt: any;
16077
+ eventCount: number;
16078
+ uniqueUserCount: number;
16079
+ buildNumbers: Array<{
16080
+ __typename?: 'AppObserveAppBuildNumber';
16081
+ appBuildNumber: string;
16082
+ firstSeenAt: any;
16083
+ eventCount: number;
16084
+ uniqueUserCount: number;
16085
+ easBuilds: Array<{
16086
+ __typename?: 'AppObserveAppEasBuild';
16087
+ easBuildId: string;
16088
+ firstSeenAt: any;
16089
+ eventCount: number;
16090
+ uniqueUserCount: number;
16091
+ }>;
16092
+ }>;
16093
+ updates: Array<{
16094
+ __typename?: 'AppObserveAppUpdate';
16095
+ appUpdateId: string;
16096
+ firstSeenAt: any;
16097
+ eventCount: number;
16098
+ uniqueUserCount: number;
16099
+ easBuilds: Array<{
16100
+ __typename?: 'AppObserveAppEasBuild';
16101
+ easBuildId: string;
16102
+ firstSeenAt: any;
16103
+ eventCount: number;
16104
+ uniqueUserCount: number;
16105
+ }>;
16106
+ }>;
16107
+ metrics: Array<{
16108
+ __typename?: 'AppObserveAppVersionMetric';
16109
+ metricName: string;
16110
+ eventCount: number;
16111
+ statistics: {
16112
+ __typename?: 'AppObserveVersionMarkerStatistics';
16113
+ min?: number | null;
16114
+ max?: number | null;
16115
+ median?: number | null;
16116
+ average?: number | null;
16117
+ p80?: number | null;
16118
+ p90?: number | null;
16119
+ p99?: number | null;
16120
+ };
16121
+ }>;
16122
+ }>;
16123
+ statistics: {
16124
+ __typename?: 'AppObserveTimeSeriesStatistics';
16125
+ min?: number | null;
16126
+ max?: number | null;
16127
+ median?: number | null;
16128
+ average?: number | null;
16129
+ p80?: number | null;
16130
+ p90?: number | null;
16131
+ p99?: number | null;
16132
+ };
16133
+ };
16134
+ };
16135
+ };
16136
+ };
16137
+ };
16138
+ export type AppObserveAppVersionsQueryVariables = Exact<{
16139
+ appId: Scalars['String']['input'];
16140
+ input: AppObserveReleasesInput;
16141
+ }>;
16142
+ export type AppObserveAppVersionsQuery = {
16143
+ __typename?: 'RootQuery';
16144
+ app: {
16145
+ __typename?: 'AppQuery';
16146
+ byId: {
16147
+ __typename?: 'App';
16148
+ id: string;
16149
+ observe: {
16150
+ __typename?: 'AppObserve';
16151
+ appVersions: Array<{
16152
+ __typename?: 'AppObserveAppVersion';
16153
+ appVersion: string;
16154
+ firstSeenAt: any;
16155
+ eventCount: number;
16156
+ uniqueUserCount: number;
16157
+ buildNumbers: Array<{
16158
+ __typename?: 'AppObserveAppBuildNumber';
16159
+ appBuildNumber: string;
16160
+ firstSeenAt: any;
16161
+ eventCount: number;
16162
+ uniqueUserCount: number;
16163
+ easBuilds: Array<{
16164
+ __typename?: 'AppObserveAppEasBuild';
16165
+ easBuildId: string;
16166
+ firstSeenAt: any;
16167
+ eventCount: number;
16168
+ uniqueUserCount: number;
16169
+ }>;
16170
+ }>;
16171
+ updates: Array<{
16172
+ __typename?: 'AppObserveAppUpdate';
16173
+ appUpdateId: string;
16174
+ firstSeenAt: any;
16175
+ eventCount: number;
16176
+ uniqueUserCount: number;
16177
+ easBuilds: Array<{
16178
+ __typename?: 'AppObserveAppEasBuild';
16179
+ easBuildId: string;
16180
+ firstSeenAt: any;
16181
+ eventCount: number;
16182
+ uniqueUserCount: number;
16183
+ }>;
16184
+ }>;
16185
+ metrics: Array<{
16186
+ __typename?: 'AppObserveAppVersionMetric';
16187
+ metricName: string;
16188
+ eventCount: number;
16189
+ statistics: {
16190
+ __typename?: 'AppObserveVersionMarkerStatistics';
16191
+ min?: number | null;
16192
+ max?: number | null;
16193
+ median?: number | null;
16194
+ average?: number | null;
16195
+ p80?: number | null;
16196
+ p90?: number | null;
16197
+ p99?: number | null;
16198
+ };
16199
+ }>;
16200
+ }>;
16201
+ };
16202
+ };
16203
+ };
16204
+ };
16205
+ export type AppObserveEventsQueryVariables = Exact<{
16206
+ appId: Scalars['String']['input'];
16207
+ filter?: InputMaybe<AppObserveEventsFilter>;
16208
+ first?: InputMaybe<Scalars['Int']['input']>;
16209
+ after?: InputMaybe<Scalars['String']['input']>;
16210
+ orderBy?: InputMaybe<AppObserveEventsOrderBy>;
16211
+ }>;
16212
+ export type AppObserveEventsQuery = {
16213
+ __typename?: 'RootQuery';
16214
+ app: {
16215
+ __typename?: 'AppQuery';
16216
+ byId: {
16217
+ __typename?: 'App';
16218
+ id: string;
16219
+ observe: {
16220
+ __typename?: 'AppObserve';
16221
+ events: {
16222
+ __typename?: 'AppObserveEventsConnection';
16223
+ pageInfo: {
16224
+ __typename?: 'PageInfo';
16225
+ hasNextPage: boolean;
16226
+ hasPreviousPage: boolean;
16227
+ endCursor?: string | null;
16228
+ };
16229
+ edges: Array<{
16230
+ __typename?: 'AppObserveEventEdge';
16231
+ cursor: string;
16232
+ node: {
16233
+ __typename?: 'AppObserveEvent';
16234
+ id: string;
16235
+ metricName: string;
16236
+ metricValue: number;
16237
+ timestamp: any;
16238
+ appVersion: string;
16239
+ appBuildNumber: string;
16240
+ appUpdateId?: string | null;
16241
+ deviceModel: string;
16242
+ deviceOs: string;
16243
+ deviceOsVersion: string;
16244
+ countryCode?: string | null;
16245
+ sessionId?: string | null;
16246
+ easClientId: string;
16247
+ };
16248
+ }>;
16249
+ };
16250
+ };
16251
+ };
16252
+ };
16253
+ };
15811
16254
  export type GetAssetMetadataQueryVariables = Exact<{
15812
16255
  storageKeys: Array<Scalars['String']['input']> | Scalars['String']['input'];
15813
16256
  }>;
@@ -17623,6 +18066,136 @@ export type FingerprintFragment = {
17623
18066
  }>;
17624
18067
  };
17625
18068
  };
18069
+ export type AppObserveTimeSeriesFragment = {
18070
+ __typename?: 'AppObserveTimeSeries';
18071
+ eventCount: number;
18072
+ appVersionMarkers: Array<{
18073
+ __typename?: 'AppObserveAppVersion';
18074
+ appVersion: string;
18075
+ firstSeenAt: any;
18076
+ eventCount: number;
18077
+ uniqueUserCount: number;
18078
+ buildNumbers: Array<{
18079
+ __typename?: 'AppObserveAppBuildNumber';
18080
+ appBuildNumber: string;
18081
+ firstSeenAt: any;
18082
+ eventCount: number;
18083
+ uniqueUserCount: number;
18084
+ easBuilds: Array<{
18085
+ __typename?: 'AppObserveAppEasBuild';
18086
+ easBuildId: string;
18087
+ firstSeenAt: any;
18088
+ eventCount: number;
18089
+ uniqueUserCount: number;
18090
+ }>;
18091
+ }>;
18092
+ updates: Array<{
18093
+ __typename?: 'AppObserveAppUpdate';
18094
+ appUpdateId: string;
18095
+ firstSeenAt: any;
18096
+ eventCount: number;
18097
+ uniqueUserCount: number;
18098
+ easBuilds: Array<{
18099
+ __typename?: 'AppObserveAppEasBuild';
18100
+ easBuildId: string;
18101
+ firstSeenAt: any;
18102
+ eventCount: number;
18103
+ uniqueUserCount: number;
18104
+ }>;
18105
+ }>;
18106
+ metrics: Array<{
18107
+ __typename?: 'AppObserveAppVersionMetric';
18108
+ metricName: string;
18109
+ eventCount: number;
18110
+ statistics: {
18111
+ __typename?: 'AppObserveVersionMarkerStatistics';
18112
+ min?: number | null;
18113
+ max?: number | null;
18114
+ median?: number | null;
18115
+ average?: number | null;
18116
+ p80?: number | null;
18117
+ p90?: number | null;
18118
+ p99?: number | null;
18119
+ };
18120
+ }>;
18121
+ }>;
18122
+ statistics: {
18123
+ __typename?: 'AppObserveTimeSeriesStatistics';
18124
+ min?: number | null;
18125
+ max?: number | null;
18126
+ median?: number | null;
18127
+ average?: number | null;
18128
+ p80?: number | null;
18129
+ p90?: number | null;
18130
+ p99?: number | null;
18131
+ };
18132
+ };
18133
+ export type AppObserveEventFragment = {
18134
+ __typename?: 'AppObserveEvent';
18135
+ id: string;
18136
+ metricName: string;
18137
+ metricValue: number;
18138
+ timestamp: any;
18139
+ appVersion: string;
18140
+ appBuildNumber: string;
18141
+ appUpdateId?: string | null;
18142
+ deviceModel: string;
18143
+ deviceOs: string;
18144
+ deviceOsVersion: string;
18145
+ countryCode?: string | null;
18146
+ sessionId?: string | null;
18147
+ easClientId: string;
18148
+ };
18149
+ export type AppObserveAppVersionFragment = {
18150
+ __typename?: 'AppObserveAppVersion';
18151
+ appVersion: string;
18152
+ firstSeenAt: any;
18153
+ eventCount: number;
18154
+ uniqueUserCount: number;
18155
+ buildNumbers: Array<{
18156
+ __typename?: 'AppObserveAppBuildNumber';
18157
+ appBuildNumber: string;
18158
+ firstSeenAt: any;
18159
+ eventCount: number;
18160
+ uniqueUserCount: number;
18161
+ easBuilds: Array<{
18162
+ __typename?: 'AppObserveAppEasBuild';
18163
+ easBuildId: string;
18164
+ firstSeenAt: any;
18165
+ eventCount: number;
18166
+ uniqueUserCount: number;
18167
+ }>;
18168
+ }>;
18169
+ updates: Array<{
18170
+ __typename?: 'AppObserveAppUpdate';
18171
+ appUpdateId: string;
18172
+ firstSeenAt: any;
18173
+ eventCount: number;
18174
+ uniqueUserCount: number;
18175
+ easBuilds: Array<{
18176
+ __typename?: 'AppObserveAppEasBuild';
18177
+ easBuildId: string;
18178
+ firstSeenAt: any;
18179
+ eventCount: number;
18180
+ uniqueUserCount: number;
18181
+ }>;
18182
+ }>;
18183
+ metrics: Array<{
18184
+ __typename?: 'AppObserveAppVersionMetric';
18185
+ metricName: string;
18186
+ eventCount: number;
18187
+ statistics: {
18188
+ __typename?: 'AppObserveVersionMarkerStatistics';
18189
+ min?: number | null;
18190
+ max?: number | null;
18191
+ median?: number | null;
18192
+ average?: number | null;
18193
+ p80?: number | null;
18194
+ p90?: number | null;
18195
+ p99?: number | null;
18196
+ };
18197
+ }>;
18198
+ };
17626
18199
  export type RuntimeFragment = {
17627
18200
  __typename?: 'Runtime';
17628
18201
  id: string;