eas-cli 12.4.1 → 12.5.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.
Files changed (68) hide show
  1. package/README.md +66 -62
  2. package/build/build/evaluateConfigWithEnvVarsAsync.d.ts +1 -4
  3. package/build/build/evaluateConfigWithEnvVarsAsync.js +3 -6
  4. package/build/build/local.js +19 -11
  5. package/build/build/runBuildAndSubmit.d.ts +0 -2
  6. package/build/build/runBuildAndSubmit.js +0 -1
  7. package/build/commandUtils/flags.d.ts +0 -3
  8. package/build/commandUtils/flags.js +1 -15
  9. package/build/commands/build/index.d.ts +0 -2
  10. package/build/commands/build/index.js +0 -2
  11. package/build/commands/build/resign.d.ts +0 -1
  12. package/build/commands/build/resign.js +0 -2
  13. package/build/commands/build/version/get.d.ts +0 -1
  14. package/build/commands/build/version/get.js +0 -2
  15. package/build/commands/build/version/set.d.ts +0 -1
  16. package/build/commands/build/version/set.js +0 -3
  17. package/build/commands/build/version/sync.d.ts +0 -1
  18. package/build/commands/build/version/sync.js +0 -3
  19. package/build/commands/config.d.ts +0 -1
  20. package/build/commands/config.js +0 -2
  21. package/build/commands/env/exec.d.ts +23 -0
  22. package/build/commands/env/exec.js +124 -0
  23. package/build/commands/submit/internal.d.ts +24 -0
  24. package/build/commands/submit/internal.js +168 -0
  25. package/build/commands/update/republish.d.ts +2 -0
  26. package/build/commands/update/republish.js +34 -4
  27. package/build/commands/worker/deploy.js +15 -14
  28. package/build/credentials/manager/Actions.d.ts +4 -2
  29. package/build/credentials/manager/Actions.js +2 -0
  30. package/build/credentials/manager/AndroidActions.js +5 -0
  31. package/build/credentials/manager/IosActions.js +5 -0
  32. package/build/credentials/manager/ManageAndroid.js +3 -0
  33. package/build/credentials/manager/ManageIos.js +3 -0
  34. package/build/graphql/generated.d.ts +165 -32
  35. package/build/graphql/generated.js +1 -0
  36. package/build/graphql/queries/AppStoreConnectApiKeyQuery.d.ts +8 -0
  37. package/build/graphql/queries/AppStoreConnectApiKeyQuery.js +32 -0
  38. package/build/graphql/queries/GoogleServiceAccountKeyQuery.d.ts +6 -0
  39. package/build/graphql/queries/GoogleServiceAccountKeyQuery.js +25 -0
  40. package/build/graphql/types/Submission.js +1 -1
  41. package/build/project/android/applicationId.js +3 -3
  42. package/build/project/expoConfig.js +0 -15
  43. package/build/project/ios/bundleIdentifier.js +3 -3
  44. package/build/project/publish.js +3 -2
  45. package/build/submit/ArchiveSource.js +15 -1
  46. package/build/submit/BaseSubmitter.d.ts +1 -0
  47. package/build/submit/BaseSubmitter.js +5 -2
  48. package/build/submit/android/AndroidSubmitCommand.d.ts +2 -2
  49. package/build/submit/android/AndroidSubmitCommand.js +1 -1
  50. package/build/submit/ios/IosSubmitCommand.d.ts +2 -2
  51. package/build/submit/ios/IosSubmitCommand.js +1 -1
  52. package/build/submit/submit.js +2 -1
  53. package/build/submit/utils/builds.js +22 -10
  54. package/build/submit/utils/logs.js +16 -17
  55. package/build/update/getBranchFromChannelNameAndCreateAndLinkIfNotExistsAsync.d.ts +5 -0
  56. package/build/update/{getBranchNameFromChannelNameAsync.js → getBranchFromChannelNameAndCreateAndLinkIfNotExistsAsync.js} +8 -7
  57. package/build/update/republish.js +2 -2
  58. package/build/utils/prompts.js +3 -3
  59. package/build/worker/assets.d.ts +1 -1
  60. package/build/worker/assets.js +4 -2
  61. package/build/worker/deployment.d.ts +10 -0
  62. package/build/worker/deployment.js +38 -27
  63. package/build/worker/upload.js +4 -6
  64. package/build/worker/utils/logs.d.ts +14 -13
  65. package/build/worker/utils/logs.js +18 -18
  66. package/oclif.manifest.json +103 -79
  67. package/package.json +7 -6
  68. package/build/update/getBranchNameFromChannelNameAsync.d.ts +0 -2
@@ -1406,13 +1406,13 @@ export type AppWorkerDeploymentsArgs = {
1406
1406
  };
1407
1407
  /** Represents an Exponent App (or Experience in legacy terms) */
1408
1408
  export type AppWorkerDeploymentsCrashArgs = {
1409
- crashId: Scalars['ID']['input'];
1409
+ crashKey: Scalars['ID']['input'];
1410
1410
  sampleFor?: InputMaybe<CrashSampleFor>;
1411
1411
  };
1412
1412
  /** Represents an Exponent App (or Experience in legacy terms) */
1413
1413
  export type AppWorkerDeploymentsCrashesArgs = {
1414
- limit?: Scalars['Int']['input'];
1415
- timespan: CrashesTimespan;
1414
+ filters?: InputMaybe<CrashesFilters>;
1415
+ timespan: DatasetTimespan;
1416
1416
  };
1417
1417
  /** Represents an Exponent App (or Experience in legacy terms) */
1418
1418
  export type AppWorkerDeploymentsRequestArgs = {
@@ -1421,7 +1421,7 @@ export type AppWorkerDeploymentsRequestArgs = {
1421
1421
  /** Represents an Exponent App (or Experience in legacy terms) */
1422
1422
  export type AppWorkerDeploymentsRequestsArgs = {
1423
1423
  filters?: InputMaybe<RequestsFilters>;
1424
- timespan: RequestsTimespan;
1424
+ timespan: DatasetTimespan;
1425
1425
  };
1426
1426
  export type AppBranchEdge = {
1427
1427
  __typename?: 'AppBranchEdge';
@@ -1683,6 +1683,13 @@ export type AppStoreConnectApiKeyMutationUpdateAppStoreConnectApiKeyArgs = {
1683
1683
  appStoreConnectApiKeyUpdateInput: AppStoreConnectApiKeyUpdateInput;
1684
1684
  id: Scalars['ID']['input'];
1685
1685
  };
1686
+ export type AppStoreConnectApiKeyQuery = {
1687
+ __typename?: 'AppStoreConnectApiKeyQuery';
1688
+ byId: AppStoreConnectApiKey;
1689
+ };
1690
+ export type AppStoreConnectApiKeyQueryByIdArgs = {
1691
+ id: Scalars['ID']['input'];
1692
+ };
1686
1693
  export type AppStoreConnectApiKeyUpdateInput = {
1687
1694
  appleTeamId?: InputMaybe<Scalars['ID']['input']>;
1688
1695
  };
@@ -2755,9 +2762,8 @@ export declare enum CrashSampleFor {
2755
2762
  Newest = "NEWEST",
2756
2763
  Oldest = "OLDEST"
2757
2764
  }
2758
- export type CrashesTimespan = {
2759
- end: Scalars['DateTime']['input'];
2760
- start?: InputMaybe<Scalars['DateTime']['input']>;
2765
+ export type CrashesFilters = {
2766
+ name?: InputMaybe<Array<Scalars['String']['input']>>;
2761
2767
  };
2762
2768
  export type CreateAccessTokenInput = {
2763
2769
  actorID: Scalars['ID']['input'];
@@ -2860,11 +2866,21 @@ export type CreateSubmissionResult = {
2860
2866
  /** Created submission */
2861
2867
  submission: Submission;
2862
2868
  };
2869
+ export type CumulativeMetrics = {
2870
+ __typename?: 'CumulativeMetrics';
2871
+ /** Totals from the beginning of time till now */
2872
+ totals: CumulativeMetricsTotals;
2873
+ };
2863
2874
  export type CumulativeMetricsOverTimeData = {
2864
2875
  __typename?: 'CumulativeMetricsOverTimeData';
2865
2876
  data: LineChartData;
2866
2877
  metricsAtLastTimestamp: Array<LineDatapoint>;
2867
2878
  };
2879
+ export type CumulativeMetricsTotals = {
2880
+ __typename?: 'CumulativeMetricsTotals';
2881
+ totalFailedInstalls: Scalars['Int']['output'];
2882
+ totalInstalls: Scalars['Int']['output'];
2883
+ };
2868
2884
  export type CustomBuildConfigInput = {
2869
2885
  path: Scalars['String']['input'];
2870
2886
  };
@@ -2911,6 +2927,10 @@ export declare enum CustomDomainStatus {
2911
2927
  Pending = "PENDING",
2912
2928
  TimedOut = "TIMED_OUT"
2913
2929
  }
2930
+ export type DatasetTimespan = {
2931
+ end: Scalars['DateTime']['input'];
2932
+ start: Scalars['DateTime']['input'];
2933
+ };
2914
2934
  export type DeleteAccessTokenResult = {
2915
2935
  __typename?: 'DeleteAccessTokenResult';
2916
2936
  id: Scalars['ID']['output'];
@@ -3010,6 +3030,11 @@ export type DeleteWebhookResult = {
3010
3030
  __typename?: 'DeleteWebhookResult';
3011
3031
  id: Scalars['ID']['output'];
3012
3032
  };
3033
+ export type DeleteWorkerDeploymentResult = {
3034
+ __typename?: 'DeleteWorkerDeploymentResult';
3035
+ deploymentIdentifier: Scalars['WorkerDeploymentIdentifier']['output'];
3036
+ id: Scalars['ID']['output'];
3037
+ };
3013
3038
  export type DeployServerlessFunctionResult = {
3014
3039
  __typename?: 'DeployServerlessFunctionResult';
3015
3040
  url: Scalars['String']['output'];
@@ -3017,6 +3042,7 @@ export type DeployServerlessFunctionResult = {
3017
3042
  /** Represents a Deployment - a set of Builds with the same Runtime Version and Channel */
3018
3043
  export type Deployment = {
3019
3044
  __typename?: 'Deployment';
3045
+ buildCount: Scalars['Int']['output'];
3020
3046
  builds: DeploymentBuildsConnection;
3021
3047
  channel: UpdateChannel;
3022
3048
  id: Scalars['ID']['output'];
@@ -3027,6 +3053,10 @@ export type Deployment = {
3027
3053
  runtime: Runtime;
3028
3054
  };
3029
3055
  /** Represents a Deployment - a set of Builds with the same Runtime Version and Channel */
3056
+ export type DeploymentBuildCountArgs = {
3057
+ statuses?: InputMaybe<Array<BuildStatus>>;
3058
+ };
3059
+ /** Represents a Deployment - a set of Builds with the same Runtime Version and Channel */
3030
3060
  export type DeploymentBuildsArgs = {
3031
3061
  after?: InputMaybe<Scalars['String']['input']>;
3032
3062
  before?: InputMaybe<Scalars['String']['input']>;
@@ -3096,6 +3126,12 @@ export type DeploymentQuery = {
3096
3126
  export type DeploymentQueryByIdArgs = {
3097
3127
  deploymentId: Scalars['ID']['input'];
3098
3128
  };
3129
+ export type DeploymentResult = {
3130
+ __typename?: 'DeploymentResult';
3131
+ data?: Maybe<UpdateDeploymentsConnection>;
3132
+ error?: Maybe<Scalars['String']['output']>;
3133
+ success: Scalars['Boolean']['output'];
3134
+ };
3099
3135
  export type DeploymentSignedUrlResult = {
3100
3136
  __typename?: 'DeploymentSignedUrlResult';
3101
3137
  deploymentIdentifier: Scalars['ID']['output'];
@@ -3114,6 +3150,7 @@ export type DeploymentsMutation = {
3114
3150
  /** Create a signed deployment URL */
3115
3151
  createSignedDeploymentUrl: DeploymentSignedUrlResult;
3116
3152
  deleteAlias: DeleteAliasResult;
3153
+ deleteWorkerDeployment: DeleteWorkerDeploymentResult;
3117
3154
  };
3118
3155
  export type DeploymentsMutationAssignAliasArgs = {
3119
3156
  aliasName?: InputMaybe<Scalars['WorkerDeploymentIdentifier']['input']>;
@@ -3128,6 +3165,9 @@ export type DeploymentsMutationDeleteAliasArgs = {
3128
3165
  aliasName?: InputMaybe<Scalars['WorkerDeploymentIdentifier']['input']>;
3129
3166
  appId: Scalars['ID']['input'];
3130
3167
  };
3168
+ export type DeploymentsMutationDeleteWorkerDeploymentArgs = {
3169
+ workerDeploymentId: Scalars['ID']['input'];
3170
+ };
3131
3171
  export type DiscordUser = {
3132
3172
  __typename?: 'DiscordUser';
3133
3173
  discordIdentifier: Scalars['String']['output'];
@@ -3713,6 +3753,7 @@ export type GoogleServiceAccountKey = {
3713
3753
  clientIdentifier: Scalars['String']['output'];
3714
3754
  createdAt: Scalars['DateTime']['output'];
3715
3755
  id: Scalars['ID']['output'];
3756
+ keyJson: Scalars['String']['output'];
3716
3757
  privateKeyIdentifier: Scalars['String']['output'];
3717
3758
  projectIdentifier: Scalars['String']['output'];
3718
3759
  updatedAt: Scalars['DateTime']['output'];
@@ -3734,6 +3775,13 @@ export type GoogleServiceAccountKeyMutationCreateGoogleServiceAccountKeyArgs = {
3734
3775
  export type GoogleServiceAccountKeyMutationDeleteGoogleServiceAccountKeyArgs = {
3735
3776
  id: Scalars['ID']['input'];
3736
3777
  };
3778
+ export type GoogleServiceAccountKeyQuery = {
3779
+ __typename?: 'GoogleServiceAccountKeyQuery';
3780
+ byId: GoogleServiceAccountKey;
3781
+ };
3782
+ export type GoogleServiceAccountKeyQueryByIdArgs = {
3783
+ id: Scalars['ID']['input'];
3784
+ };
3737
3785
  /**
3738
3786
  * The value field is always sent from the client as a string,
3739
3787
  * and then it's parsed server-side according to the filterType
@@ -4496,10 +4544,6 @@ export type RequestsFilters = {
4496
4544
  status?: InputMaybe<Array<Scalars['Int']['input']>>;
4497
4545
  statusType?: InputMaybe<Array<ResponseStatusType>>;
4498
4546
  };
4499
- export type RequestsTimespan = {
4500
- end: Scalars['DateTime']['input'];
4501
- start: Scalars['DateTime']['input'];
4502
- };
4503
4547
  export type RescindUserInvitationResult = {
4504
4548
  __typename?: 'RescindUserInvitationResult';
4505
4549
  id: Scalars['ID']['output'];
@@ -4689,6 +4733,7 @@ export type RootMutation = {
4689
4733
  webhook: WebhookMutation;
4690
4734
  /** Mutations that modify a websiteNotification */
4691
4735
  websiteNotifications: WebsiteNotificationMutation;
4736
+ workflowJob: WorkflowJobMutation;
4692
4737
  };
4693
4738
  export type RootMutationAccountArgs = {
4694
4739
  accountName?: InputMaybe<Scalars['ID']['input']>;
@@ -4726,6 +4771,8 @@ export type RootQuery = {
4726
4771
  * @deprecated Use 'byId' field under 'app'.
4727
4772
  */
4728
4773
  appByAppId?: Maybe<App>;
4774
+ /** Top-level query object for querying App Store Connect API Keys. */
4775
+ appStoreConnectApiKey: AppStoreConnectApiKeyQuery;
4729
4776
  /** Top-level query object for querying Apple Device registration requests. */
4730
4777
  appleDeviceRegistrationRequest: AppleDeviceRegistrationRequestQuery;
4731
4778
  /** Top-level query object for querying Apple Teams. */
@@ -4749,6 +4796,8 @@ export type RootQuery = {
4749
4796
  experimentation: ExperimentationQuery;
4750
4797
  /** Top-level query object for querying GitHub App information and resources it has access to. */
4751
4798
  githubApp: GitHubAppQuery;
4799
+ /** Top-level query object for querying Google Service Account Keys. */
4800
+ googleServiceAccountKey: GoogleServiceAccountKeyQuery;
4752
4801
  /** Top-level query object for querying Stripe Invoices. */
4753
4802
  invoice: InvoiceQuery;
4754
4803
  jobRun: JobRunQuery;
@@ -5361,7 +5410,7 @@ export type Update = ActivityTimelineProjectActivity & {
5361
5410
  branchId: Scalars['ID']['output'];
5362
5411
  codeSigningInfo?: Maybe<CodeSigningInfo>;
5363
5412
  createdAt: Scalars['DateTime']['output'];
5364
- deployments: UpdateDeploymentsConnection;
5413
+ deployments: DeploymentResult;
5365
5414
  expoGoSDKVersion?: Maybe<Scalars['String']['output']>;
5366
5415
  gitCommitHash?: Maybe<Scalars['String']['output']>;
5367
5416
  group: Scalars['String']['output'];
@@ -5452,6 +5501,7 @@ export type UpdateChannel = {
5452
5501
  branchMapping: Scalars['String']['output'];
5453
5502
  createdAt: Scalars['DateTime']['output'];
5454
5503
  id: Scalars['ID']['output'];
5504
+ isPaused: Scalars['Boolean']['output'];
5455
5505
  name: Scalars['String']['output'];
5456
5506
  updateBranches: Array<UpdateBranch>;
5457
5507
  updatedAt: Scalars['DateTime']['output'];
@@ -5478,6 +5528,10 @@ export type UpdateChannelMutation = {
5478
5528
  * stringified JSON supplied to the mutation as a variable.
5479
5529
  */
5480
5530
  editUpdateChannel: UpdateChannel;
5531
+ /** Pause updates for an EAS channel. */
5532
+ pauseUpdateChannel: UpdateChannel;
5533
+ /** Resume updates for an EAS channel. */
5534
+ resumeUpdateChannel: UpdateChannel;
5481
5535
  };
5482
5536
  export type UpdateChannelMutationCreateUpdateChannelForAppArgs = {
5483
5537
  appId: Scalars['ID']['input'];
@@ -5491,6 +5545,12 @@ export type UpdateChannelMutationEditUpdateChannelArgs = {
5491
5545
  branchMapping: Scalars['String']['input'];
5492
5546
  channelId: Scalars['ID']['input'];
5493
5547
  };
5548
+ export type UpdateChannelMutationPauseUpdateChannelArgs = {
5549
+ channelId: Scalars['ID']['input'];
5550
+ };
5551
+ export type UpdateChannelMutationResumeUpdateChannelArgs = {
5552
+ channelId: Scalars['ID']['input'];
5553
+ };
5494
5554
  export type UpdateDeploymentEdge = {
5495
5555
  __typename?: 'UpdateDeploymentEdge';
5496
5556
  cursor: Scalars['String']['output'];
@@ -5528,6 +5588,7 @@ export type UpdateInfoGroup = {
5528
5588
  };
5529
5589
  export type UpdateInsights = {
5530
5590
  __typename?: 'UpdateInsights';
5591
+ cumulativeMetrics: CumulativeMetrics;
5531
5592
  cumulativeMetricsOverTime: CumulativeMetricsOverTimeData;
5532
5593
  id: Scalars['ID']['output'];
5533
5594
  totalUniqueUsers: Scalars['Int']['output'];
@@ -5976,6 +6037,7 @@ export declare enum UserEntityTypeName {
5976
6037
  Password = "Password",
5977
6038
  SsoUser = "SSOUser",
5978
6039
  User = "User",
6040
+ UserPermission = "UserPermission",
5979
6041
  UserSecondFactorBackupCodes = "UserSecondFactorBackupCodes",
5980
6042
  UserSecondFactorDevice = "UserSecondFactorDevice"
5981
6043
  }
@@ -6227,6 +6289,7 @@ export type WorkerCustomDomain = {
6227
6289
  export type WorkerDeployment = {
6228
6290
  __typename?: 'WorkerDeployment';
6229
6291
  aliases?: Maybe<Array<WorkerDeploymentAlias>>;
6292
+ crashes?: Maybe<WorkerDeploymentCrashes>;
6230
6293
  createdAt: Scalars['DateTime']['output'];
6231
6294
  deploymentDomain: Scalars['String']['output'];
6232
6295
  deploymentIdentifier: Scalars['WorkerDeploymentIdentifier']['output'];
@@ -6238,13 +6301,17 @@ export type WorkerDeployment = {
6238
6301
  subdomain: Scalars['String']['output'];
6239
6302
  url: Scalars['String']['output'];
6240
6303
  };
6304
+ export type WorkerDeploymentCrashesArgs = {
6305
+ filters?: InputMaybe<CrashesFilters>;
6306
+ timespan: DatasetTimespan;
6307
+ };
6241
6308
  export type WorkerDeploymentLogsArgs = {
6242
6309
  limit?: InputMaybe<Scalars['Int']['input']>;
6243
6310
  timespan: LogsTimespan;
6244
6311
  };
6245
6312
  export type WorkerDeploymentRequestsArgs = {
6246
6313
  filters?: InputMaybe<RequestsFilters>;
6247
- timespan: RequestsTimespan;
6314
+ timespan: DatasetTimespan;
6248
6315
  };
6249
6316
  export type WorkerDeploymentAlias = {
6250
6317
  __typename?: 'WorkerDeploymentAlias';
@@ -6271,30 +6338,59 @@ export type WorkerDeploymentAliasesConnection = {
6271
6338
  export type WorkerDeploymentCrashEdge = {
6272
6339
  __typename?: 'WorkerDeploymentCrashEdge';
6273
6340
  logs: Array<WorkerDeploymentLogNode>;
6341
+ node: WorkerDeploymentCrashNode;
6274
6342
  request?: Maybe<WorkerDeploymentRequestNode>;
6275
- sample: WorkerDeploymentCrashSample;
6276
6343
  };
6277
6344
  export type WorkerDeploymentCrashNode = {
6278
6345
  __typename?: 'WorkerDeploymentCrashNode';
6279
- id: Scalars['ID']['output'];
6280
- minOccurrences: Scalars['Int']['output'];
6281
- mostRecentlyOccurredAt: Scalars['DateTime']['output'];
6282
- oldestOccurredAt: Scalars['DateTime']['output'];
6283
- sample: WorkerDeploymentCrashSample;
6284
- };
6285
- export type WorkerDeploymentCrashSample = {
6286
- __typename?: 'WorkerDeploymentCrashSample';
6346
+ crashHash: Scalars['ID']['output'];
6347
+ crashTimestamp: Scalars['DateTime']['output'];
6348
+ deploymentIdentifier: Scalars['String']['output'];
6287
6349
  firstStackLine?: Maybe<Scalars['String']['output']>;
6350
+ key: Scalars['ID']['output'];
6288
6351
  message: Scalars['String']['output'];
6289
6352
  name: Scalars['String']['output'];
6353
+ requestTimestamp: Scalars['DateTime']['output'];
6290
6354
  scriptName: Scalars['String']['output'];
6291
6355
  stack?: Maybe<Array<Scalars['String']['output']>>;
6292
- timestamp: Scalars['DateTime']['output'];
6293
6356
  };
6294
6357
  export type WorkerDeploymentCrashes = {
6295
6358
  __typename?: 'WorkerDeploymentCrashes';
6296
- minRowsWithoutLimit?: Maybe<Scalars['Int']['output']>;
6359
+ byCrashHash: Array<WorkerDeploymentCrashesHashEdge>;
6360
+ byName: Array<WorkerDeploymentCrashesNameEdge>;
6361
+ interval: Scalars['Int']['output'];
6362
+ minRowsWithoutLimit: Scalars['Int']['output'];
6297
6363
  nodes: Array<WorkerDeploymentCrashNode>;
6364
+ summary: WorkerDeploymentCrashesAggregationNode;
6365
+ timeseries: Array<WorkerDeploymentCrashesTimeseriesEdge>;
6366
+ };
6367
+ export type WorkerDeploymentCrashesAggregationNode = {
6368
+ __typename?: 'WorkerDeploymentCrashesAggregationNode';
6369
+ crashesPerMs?: Maybe<Scalars['Float']['output']>;
6370
+ crashesSum: Scalars['Int']['output'];
6371
+ distinctCrashes: Scalars['Int']['output'];
6372
+ firstOccurredAt: Scalars['DateTime']['output'];
6373
+ mostRecentlyOccurredAt: Scalars['DateTime']['output'];
6374
+ sampleRate: Scalars['Float']['output'];
6375
+ };
6376
+ export type WorkerDeploymentCrashesHashEdge = {
6377
+ __typename?: 'WorkerDeploymentCrashesHashEdge';
6378
+ crashHash: Scalars['ID']['output'];
6379
+ node: WorkerDeploymentCrashesAggregationNode;
6380
+ sample: WorkerDeploymentCrashNode;
6381
+ timeseries: Array<WorkerDeploymentCrashesTimeseriesEdge>;
6382
+ };
6383
+ export type WorkerDeploymentCrashesNameEdge = {
6384
+ __typename?: 'WorkerDeploymentCrashesNameEdge';
6385
+ name: Scalars['String']['output'];
6386
+ node: WorkerDeploymentCrashesAggregationNode;
6387
+ sample: WorkerDeploymentCrashNode;
6388
+ timeseries: Array<WorkerDeploymentCrashesTimeseriesEdge>;
6389
+ };
6390
+ export type WorkerDeploymentCrashesTimeseriesEdge = {
6391
+ __typename?: 'WorkerDeploymentCrashesTimeseriesEdge';
6392
+ node?: Maybe<WorkerDeploymentCrashesAggregationNode>;
6393
+ timestamp: Scalars['DateTime']['output'];
6298
6394
  };
6299
6395
  export type WorkerDeploymentEdge = {
6300
6396
  __typename?: 'WorkerDeploymentEdge';
@@ -6329,7 +6425,7 @@ export type WorkerDeploymentQueryByIdArgs = {
6329
6425
  };
6330
6426
  export type WorkerDeploymentRequestEdge = {
6331
6427
  __typename?: 'WorkerDeploymentRequestEdge';
6332
- crash?: Maybe<WorkerDeploymentCrashSample>;
6428
+ crash?: Maybe<WorkerDeploymentCrashNode>;
6333
6429
  logs: Array<WorkerDeploymentLogNode>;
6334
6430
  node: WorkerDeploymentRequestNode;
6335
6431
  };
@@ -6469,6 +6565,13 @@ export declare enum WorkerLoggerLevel {
6469
6565
  Trace = "TRACE",
6470
6566
  Warn = "WARN"
6471
6567
  }
6568
+ export type WorkflowJobMutation = {
6569
+ __typename?: 'WorkflowJobMutation';
6570
+ approveWorkflowJob: Scalars['ID']['output'];
6571
+ };
6572
+ export type WorkflowJobMutationApproveWorkflowJobArgs = {
6573
+ workflowJobId: Scalars['ID']['input'];
6574
+ };
6472
6575
  export type DeleteAndroidAppBuildCredentialsResult = {
6473
6576
  __typename?: 'deleteAndroidAppBuildCredentialsResult';
6474
6577
  id: Scalars['ID']['output'];
@@ -10939,7 +11042,7 @@ export type CreateAndroidSubmissionMutation = {
10939
11042
  id: string;
10940
11043
  status: SubmissionStatus;
10941
11044
  platform: AppPlatform;
10942
- logsUrl?: string | null;
11045
+ logFiles: Array<string>;
10943
11046
  app: {
10944
11047
  __typename?: 'App';
10945
11048
  id: string;
@@ -10989,7 +11092,7 @@ export type CreateIosSubmissionMutation = {
10989
11092
  id: string;
10990
11093
  status: SubmissionStatus;
10991
11094
  platform: AppPlatform;
10992
- logsUrl?: string | null;
11095
+ logFiles: Array<string>;
10993
11096
  app: {
10994
11097
  __typename?: 'App';
10995
11098
  id: string;
@@ -11204,6 +11307,22 @@ export type AppByFullNameQuery = {
11204
11307
  };
11205
11308
  };
11206
11309
  };
11310
+ export type AppStoreConnectApiKeyByIdQueryVariables = Exact<{
11311
+ ascApiKeyId: Scalars['ID']['input'];
11312
+ }>;
11313
+ export type AppStoreConnectApiKeyByIdQuery = {
11314
+ __typename?: 'RootQuery';
11315
+ appStoreConnectApiKey: {
11316
+ __typename?: 'AppStoreConnectApiKeyQuery';
11317
+ byId: {
11318
+ __typename?: 'AppStoreConnectApiKey';
11319
+ id: string;
11320
+ issuerIdentifier: string;
11321
+ keyIdentifier: string;
11322
+ keyP8: string;
11323
+ };
11324
+ };
11325
+ };
11207
11326
  export type LatestAppVersionQueryVariables = Exact<{
11208
11327
  appId: Scalars['String']['input'];
11209
11328
  platform: AppPlatform;
@@ -11547,7 +11666,7 @@ export type BuildsWithSubmissionsByIdQuery = {
11547
11666
  id: string;
11548
11667
  status: SubmissionStatus;
11549
11668
  platform: AppPlatform;
11550
- logsUrl?: string | null;
11669
+ logFiles: Array<string>;
11551
11670
  app: {
11552
11671
  __typename?: 'App';
11553
11672
  id: string;
@@ -12012,6 +12131,20 @@ export type EnvironmentVariablesSharedWithSensitiveQuery = {
12012
12131
  };
12013
12132
  };
12014
12133
  };
12134
+ export type GoogleServiceAccountKeyByIdQueryVariables = Exact<{
12135
+ ascApiKeyId: Scalars['ID']['input'];
12136
+ }>;
12137
+ export type GoogleServiceAccountKeyByIdQuery = {
12138
+ __typename?: 'RootQuery';
12139
+ googleServiceAccountKey: {
12140
+ __typename?: 'GoogleServiceAccountKeyQuery';
12141
+ byId: {
12142
+ __typename?: 'GoogleServiceAccountKey';
12143
+ id: string;
12144
+ keyJson: string;
12145
+ };
12146
+ };
12147
+ };
12015
12148
  export type GetAssetMetadataQueryVariables = Exact<{
12016
12149
  storageKeys: Array<Scalars['String']['input']> | Scalars['String']['input'];
12017
12150
  }>;
@@ -12117,7 +12250,7 @@ export type SubmissionsByIdQuery = {
12117
12250
  id: string;
12118
12251
  status: SubmissionStatus;
12119
12252
  platform: AppPlatform;
12120
- logsUrl?: string | null;
12253
+ logFiles: Array<string>;
12121
12254
  app: {
12122
12255
  __typename?: 'App';
12123
12256
  id: string;
@@ -12168,7 +12301,7 @@ export type GetAllSubmissionsForAppQuery = {
12168
12301
  id: string;
12169
12302
  status: SubmissionStatus;
12170
12303
  platform: AppPlatform;
12171
- logsUrl?: string | null;
12304
+ logFiles: Array<string>;
12172
12305
  app: {
12173
12306
  __typename?: 'App';
12174
12307
  id: string;
@@ -12768,7 +12901,7 @@ export type BuildWithSubmissionsFragment = {
12768
12901
  id: string;
12769
12902
  status: SubmissionStatus;
12770
12903
  platform: AppPlatform;
12771
- logsUrl?: string | null;
12904
+ logFiles: Array<string>;
12772
12905
  app: {
12773
12906
  __typename?: 'App';
12774
12907
  id: string;
@@ -12882,7 +13015,7 @@ export type SubmissionFragment = {
12882
13015
  id: string;
12883
13016
  status: SubmissionStatus;
12884
13017
  platform: AppPlatform;
12885
- logsUrl?: string | null;
13018
+ logFiles: Array<string>;
12886
13019
  app: {
12887
13020
  __typename?: 'App';
12888
13021
  id: string;
@@ -765,6 +765,7 @@ var UserEntityTypeName;
765
765
  UserEntityTypeName["Password"] = "Password";
766
766
  UserEntityTypeName["SsoUser"] = "SSOUser";
767
767
  UserEntityTypeName["User"] = "User";
768
+ UserEntityTypeName["UserPermission"] = "UserPermission";
768
769
  UserEntityTypeName["UserSecondFactorBackupCodes"] = "UserSecondFactorBackupCodes";
769
770
  UserEntityTypeName["UserSecondFactorDevice"] = "UserSecondFactorDevice";
770
771
  })(UserEntityTypeName || (exports.UserEntityTypeName = UserEntityTypeName = {}));
@@ -0,0 +1,8 @@
1
+ import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient';
2
+ export declare const AppStoreConnectApiKeyQuery: {
3
+ getByIdAsync(graphqlClient: ExpoGraphqlClient, ascApiKeyId: string): Promise<{
4
+ issuerIdentifier: string;
5
+ keyIdentifier: string;
6
+ keyP8: string;
7
+ }>;
8
+ };
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppStoreConnectApiKeyQuery = 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.AppStoreConnectApiKeyQuery = {
8
+ async getByIdAsync(graphqlClient, ascApiKeyId) {
9
+ const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
10
+ .query((0, graphql_tag_1.default) `
11
+ query AppStoreConnectApiKeyById($ascApiKeyId: ID!) {
12
+ appStoreConnectApiKey {
13
+ byId(id: $ascApiKeyId) {
14
+ id
15
+ issuerIdentifier
16
+ keyIdentifier
17
+ keyP8
18
+ }
19
+ }
20
+ }
21
+ `, { ascApiKeyId }, {
22
+ additionalTypenames: ['AppStoreConnectApiKey'],
23
+ })
24
+ .toPromise());
25
+ const key = data.appStoreConnectApiKey.byId;
26
+ return {
27
+ issuerIdentifier: key.issuerIdentifier,
28
+ keyIdentifier: key.keyIdentifier,
29
+ keyP8: key.keyP8,
30
+ };
31
+ },
32
+ };
@@ -0,0 +1,6 @@
1
+ import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient';
2
+ export declare const GoogleServiceAccountKeyQuery: {
3
+ getByIdAsync(graphqlClient: ExpoGraphqlClient, ascApiKeyId: string): Promise<{
4
+ keyJson: string;
5
+ }>;
6
+ };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoogleServiceAccountKeyQuery = 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.GoogleServiceAccountKeyQuery = {
8
+ async getByIdAsync(graphqlClient, ascApiKeyId) {
9
+ const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
10
+ .query((0, graphql_tag_1.default) `
11
+ query GoogleServiceAccountKeyById($ascApiKeyId: ID!) {
12
+ googleServiceAccountKey {
13
+ byId(id: $ascApiKeyId) {
14
+ id
15
+ keyJson
16
+ }
17
+ }
18
+ }
19
+ `, { ascApiKeyId }, {
20
+ additionalTypenames: ['GoogleServiceAccountKey'],
21
+ })
22
+ .toPromise());
23
+ return { keyJson: data.googleServiceAccountKey.byId.keyJson };
24
+ },
25
+ };
@@ -31,6 +31,6 @@ exports.SubmissionFragmentNode = (0, graphql_tag_1.default) `
31
31
  errorCode
32
32
  message
33
33
  }
34
- logsUrl
34
+ logFiles
35
35
  }
36
36
  `;
@@ -43,9 +43,6 @@ class AmbiguousApplicationIdError extends Error {
43
43
  }
44
44
  exports.AmbiguousApplicationIdError = AmbiguousApplicationIdError;
45
45
  async function getApplicationIdFromBareAsync(projectDir, gradleContext) {
46
- if (env_1.default.overrideAndroidApplicationId) {
47
- return env_1.default.overrideAndroidApplicationId;
48
- }
49
46
  const errorMessage = 'Could not read applicationId from Android project.';
50
47
  if (gradleContext) {
51
48
  const buildGradle = await gradleUtils.getAppBuildGradleAsync(projectDir);
@@ -72,6 +69,9 @@ async function getApplicationIdFromBareAsync(projectDir, gradleContext) {
72
69
  }
73
70
  exports.getApplicationIdFromBareAsync = getApplicationIdFromBareAsync;
74
71
  async function getApplicationIdAsync(projectDir, exp, vcsClient, gradleContext) {
72
+ if (env_1.default.overrideAndroidApplicationId) {
73
+ return env_1.default.overrideAndroidApplicationId;
74
+ }
75
75
  const workflow = await (0, workflow_1.resolveWorkflowAsync)(projectDir, eas_build_job_1.Platform.ANDROID, vcsClient);
76
76
  if (workflow === eas_build_job_1.Workflow.GENERIC) {
77
77
  warnIfAndroidPackageDefinedInAppConfigForBareWorkflowProject(projectDir, exp);
@@ -3,14 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getPublicExpoConfig = exports.isUsingStaticExpoConfig = exports.ensureExpoConfigExists = exports.getPrivateExpoConfig = exports.createOrModifyExpoConfigAsync = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const config_1 = require("@expo/config");
6
- const json_file_1 = tslib_1.__importDefault(require("@expo/json-file"));
7
6
  const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
8
7
  const joi_1 = tslib_1.__importDefault(require("joi"));
9
- const nullthrows_1 = tslib_1.__importDefault(require("nullthrows"));
10
8
  const path_1 = tslib_1.__importDefault(require("path"));
11
9
  async function createOrModifyExpoConfigAsync(projectDir, exp, readOptions) {
12
10
  ensureExpoConfigExists(projectDir);
13
- await ensureStaticExpoConfigIsValidAsync(projectDir);
14
11
  if (readOptions) {
15
12
  return await (0, config_1.modifyConfigAsync)(projectDir, exp, readOptions);
16
13
  }
@@ -68,18 +65,6 @@ function ensureExpoConfigExists(projectDir) {
68
65
  }
69
66
  }
70
67
  exports.ensureExpoConfigExists = ensureExpoConfigExists;
71
- async function ensureStaticExpoConfigIsValidAsync(projectDir) {
72
- if (isUsingStaticExpoConfig(projectDir)) {
73
- const staticConfigPath = (0, nullthrows_1.default)((0, config_1.getConfigFilePaths)(projectDir).staticConfigPath);
74
- const staticConfig = await json_file_1.default.readAsync(staticConfigPath);
75
- // Add the "expo" key if it doesn't exist on app.json yet, such as in
76
- // projects initialized with RNC CLI
77
- if (!staticConfig?.expo) {
78
- staticConfig.expo = {};
79
- await json_file_1.default.writeAsync(staticConfigPath, staticConfig);
80
- }
81
- }
82
- }
83
68
  function isUsingStaticExpoConfig(projectDir) {
84
69
  const paths = (0, config_1.getConfigFilePaths)(projectDir);
85
70
  return !!(paths.staticConfigPath?.endsWith('app.json') && !paths.dynamicConfigPath);
@@ -39,12 +39,12 @@ class AmbiguousBundleIdentifierError extends Error {
39
39
  }
40
40
  exports.AmbiguousBundleIdentifierError = AmbiguousBundleIdentifierError;
41
41
  async function getBundleIdentifierAsync(projectDir, exp, vcsClient, xcodeContext) {
42
+ if (env_1.default.overrideIosBundleIdentifier) {
43
+ return env_1.default.overrideIosBundleIdentifier;
44
+ }
42
45
  const workflow = await (0, workflow_1.resolveWorkflowAsync)(projectDir, eas_build_job_1.Platform.IOS, vcsClient);
43
46
  if (workflow === eas_build_job_1.Workflow.GENERIC) {
44
47
  warnIfBundleIdentifierDefinedInAppConfigForBareWorkflowProject(projectDir, exp);
45
- if (env_1.default.overrideIosBundleIdentifier) {
46
- return env_1.default.overrideIosBundleIdentifier;
47
- }
48
48
  const xcodeProject = config_plugins_1.IOSConfig.XcodeUtils.getPbxproj(projectDir);
49
49
  const isMultiScheme = config_plugins_1.IOSConfig.BuildScheme.getSchemesFromXcodeproj(projectDir).length > 1;
50
50
  const isMultiTarget = config_plugins_1.IOSConfig.Target.getNativeTargets(xcodeProject).filter(([, target]) => config_plugins_1.IOSConfig.Target.isTargetOfType(target, config_plugins_1.IOSConfig.Target.TargetType.APPLICATION)).length > 1;
@@ -25,7 +25,7 @@ const PublishQuery_1 = require("../graphql/queries/PublishQuery");
25
25
  const log_1 = tslib_1.__importStar(require("../log"));
26
26
  const platform_1 = require("../platform");
27
27
  const prompts_1 = require("../prompts");
28
- const getBranchNameFromChannelNameAsync_1 = require("../update/getBranchNameFromChannelNameAsync");
28
+ const getBranchFromChannelNameAndCreateAndLinkIfNotExistsAsync_1 = require("../update/getBranchFromChannelNameAndCreateAndLinkIfNotExistsAsync");
29
29
  const utils_2 = require("../update/utils");
30
30
  const uploads_1 = require("../uploads");
31
31
  const expoCli_1 = require("../utils/expoCli");
@@ -383,7 +383,8 @@ async function getBranchNameForCommandAsync({ graphqlClient, projectId, channelN
383
383
  throw new Error('Cannot specify both --channel and --branch. Specify either --channel, --branch, or --auto.');
384
384
  }
385
385
  if (channelNameArg) {
386
- return await (0, getBranchNameFromChannelNameAsync_1.getBranchNameFromChannelNameAsync)(graphqlClient, projectId, channelNameArg);
386
+ const { branchName } = await (0, getBranchFromChannelNameAndCreateAndLinkIfNotExistsAsync_1.getBranchFromChannelNameAndCreateAndLinkIfNotExistsAsync)(graphqlClient, projectId, channelNameArg);
387
+ return branchName;
387
388
  }
388
389
  if (branchNameArg) {
389
390
  return branchNameArg;