eas-cli 13.4.1 → 14.0.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 (211) hide show
  1. package/README.md +73 -73
  2. package/build/ApiV2Error.js +5 -1
  3. package/build/analytics/AnalyticsManager.js +5 -4
  4. package/build/api.js +1 -0
  5. package/build/branch/actions/SelectBranch.js +1 -0
  6. package/build/branch/queries.d.ts +3 -3
  7. package/build/branch/queries.js +7 -5
  8. package/build/build/validate.js +6 -3
  9. package/build/channel/actions/SelectChannel.js +1 -0
  10. package/build/channel/queries.d.ts +0 -1
  11. package/build/channel/queries.js +11 -16
  12. package/build/commandUtils/EasCommand.js +100 -90
  13. package/build/commandUtils/builds.d.ts +1 -0
  14. package/build/commandUtils/builds.js +3 -0
  15. package/build/commandUtils/context/contextUtils/findProjectDirAndVerifyProjectSetupAsync.js +1 -1
  16. package/build/commandUtils/context/contextUtils/getProjectIdAsync.js +0 -2
  17. package/build/commandUtils/gating/FeatureGateEnvOverrides.js +1 -1
  18. package/build/commandUtils/gating/FeatureGating.js +2 -0
  19. package/build/commands/account/login.js +16 -18
  20. package/build/commands/account/logout.js +6 -8
  21. package/build/commands/account/view.js +8 -10
  22. package/build/commands/analytics.js +2 -2
  23. package/build/commands/branch/create.js +18 -20
  24. package/build/commands/branch/delete.js +17 -19
  25. package/build/commands/branch/list.js +11 -13
  26. package/build/commands/branch/publish.js +2 -2
  27. package/build/commands/branch/rename.js +18 -20
  28. package/build/commands/branch/view.js +19 -21
  29. package/build/commands/build/cancel.js +22 -24
  30. package/build/commands/build/configure.js +15 -17
  31. package/build/commands/build/delete.js +22 -24
  32. package/build/commands/build/index.js +81 -83
  33. package/build/commands/build/inspect.js +42 -44
  34. package/build/commands/build/internal.js +32 -34
  35. package/build/commands/build/list.js +58 -60
  36. package/build/commands/build/resign.js +36 -38
  37. package/build/commands/build/run.js +36 -38
  38. package/build/commands/build/version/get.js +21 -23
  39. package/build/commands/build/version/set.js +20 -22
  40. package/build/commands/build/version/sync.js +20 -22
  41. package/build/commands/build/view.js +12 -14
  42. package/build/commands/channel/create.js +17 -19
  43. package/build/commands/channel/delete.js +18 -20
  44. package/build/commands/channel/edit.js +20 -22
  45. package/build/commands/channel/list.js +12 -14
  46. package/build/commands/channel/pause.js +20 -22
  47. package/build/commands/channel/resume.js +20 -22
  48. package/build/commands/channel/rollout.js +74 -76
  49. package/build/commands/channel/view.js +18 -20
  50. package/build/commands/config.js +21 -23
  51. package/build/commands/credentials/configure-build.js +21 -23
  52. package/build/commands/credentials/index.js +13 -15
  53. package/build/commands/device/create.js +6 -8
  54. package/build/commands/device/delete.js +12 -14
  55. package/build/commands/device/list.js +12 -14
  56. package/build/commands/device/rename.js +13 -15
  57. package/build/commands/device/view.js +8 -10
  58. package/build/commands/diagnostics.js +6 -8
  59. package/build/commands/env/create.js +39 -41
  60. package/build/commands/env/delete.js +25 -27
  61. package/build/commands/env/exec.js +22 -24
  62. package/build/commands/env/get.js +26 -28
  63. package/build/commands/env/link.js +27 -29
  64. package/build/commands/env/list.js +27 -29
  65. package/build/commands/env/pull.js +23 -25
  66. package/build/commands/env/push.js +21 -23
  67. package/build/commands/env/unlink.js +23 -25
  68. package/build/commands/env/update.js +38 -40
  69. package/build/commands/fingerprint/compare.d.ts +28 -0
  70. package/build/commands/fingerprint/compare.js +324 -0
  71. package/build/commands/metadata/lint.js +18 -20
  72. package/build/commands/metadata/pull.js +15 -17
  73. package/build/commands/metadata/push.js +15 -17
  74. package/build/commands/open.js +6 -8
  75. package/build/commands/project/info.js +6 -8
  76. package/build/commands/project/init.js +26 -30
  77. package/build/commands/project/onboarding.js +10 -12
  78. package/build/commands/secret/create.js +30 -32
  79. package/build/commands/secret/delete.js +14 -16
  80. package/build/commands/secret/list.js +7 -9
  81. package/build/commands/secret/push.js +23 -25
  82. package/build/commands/submit/internal.js +23 -25
  83. package/build/commands/submit.js +54 -56
  84. package/build/commands/update/configure.js +18 -20
  85. package/build/commands/update/delete.js +16 -18
  86. package/build/commands/update/edit.js +25 -27
  87. package/build/commands/update/index.js +65 -67
  88. package/build/commands/update/list.js +21 -23
  89. package/build/commands/update/republish.js +45 -47
  90. package/build/commands/update/roll-back-to-embedded.d.ts +2 -1
  91. package/build/commands/update/roll-back-to-embedded.js +92 -84
  92. package/build/commands/update/rollback.js +7 -7
  93. package/build/commands/update/view.js +16 -18
  94. package/build/commands/webhook/create.js +20 -22
  95. package/build/commands/webhook/delete.js +17 -19
  96. package/build/commands/webhook/list.js +14 -16
  97. package/build/commands/webhook/update.js +23 -25
  98. package/build/commands/webhook/view.js +13 -15
  99. package/build/commands/worker/alias.js +30 -32
  100. package/build/commands/worker/deploy.js +38 -40
  101. package/build/commands/workflow/create.js +16 -18
  102. package/build/commands/workflow/run.js +13 -15
  103. package/build/commands/workflow/validate.js +18 -20
  104. package/build/credentials/android/AndroidCredentialsProvider.js +3 -1
  105. package/build/credentials/android/actions/AssignFcm.js +1 -0
  106. package/build/credentials/android/actions/AssignGoogleServiceAccountKeyForFcmV1.js +1 -0
  107. package/build/credentials/android/actions/AssignGoogleServiceAccountKeyForSubmissions.js +1 -0
  108. package/build/credentials/android/actions/CreateFcm.js +1 -0
  109. package/build/credentials/android/actions/CreateGoogleServiceAccountKey.js +1 -0
  110. package/build/credentials/android/actions/CreateKeystore.js +1 -0
  111. package/build/credentials/android/actions/DownloadKeystore.js +2 -0
  112. package/build/credentials/android/actions/RemoveFcm.js +1 -0
  113. package/build/credentials/android/actions/RemoveGoogleServiceAccountKey.js +2 -0
  114. package/build/credentials/android/actions/RemoveKeystore.js +1 -0
  115. package/build/credentials/android/actions/SetUpBuildCredentials.js +1 -0
  116. package/build/credentials/android/actions/SetUpBuildCredentialsFromCredentialsJson.js +1 -0
  117. package/build/credentials/android/actions/SetUpGoogleServiceAccountKeyForFcmV1.js +1 -0
  118. package/build/credentials/android/actions/SetUpGoogleServiceAccountKeyForSubmissions.js +1 -0
  119. package/build/credentials/android/actions/UseExistingGoogleServiceAccountKey.js +1 -0
  120. package/build/credentials/context.js +14 -5
  121. package/build/credentials/errors.js +1 -0
  122. package/build/credentials/ios/IosCredentialsProvider.js +3 -1
  123. package/build/credentials/ios/actions/AssignAscApiKey.js +1 -0
  124. package/build/credentials/ios/actions/AssignPushKey.js +1 -0
  125. package/build/credentials/ios/actions/ConfigureProvisioningProfile.js +4 -0
  126. package/build/credentials/ios/actions/CreateAscApiKey.js +1 -0
  127. package/build/credentials/ios/actions/CreateDistributionCertificate.js +1 -0
  128. package/build/credentials/ios/actions/CreateProvisioningProfile.js +3 -0
  129. package/build/credentials/ios/actions/CreatePushKey.js +1 -0
  130. package/build/credentials/ios/actions/RemoveAscApiKey.js +2 -0
  131. package/build/credentials/ios/actions/RemoveDistributionCertificate.js +3 -0
  132. package/build/credentials/ios/actions/RemoveProvisioningProfile.js +2 -0
  133. package/build/credentials/ios/actions/RemovePushKey.js +2 -0
  134. package/build/credentials/ios/actions/SetUpAdhocProvisioningProfile.js +1 -0
  135. package/build/credentials/ios/actions/SetUpAscApiKey.js +9 -7
  136. package/build/credentials/ios/actions/SetUpBuildCredentials.js +1 -0
  137. package/build/credentials/ios/actions/SetUpBuildCredentialsFromCredentialsJson.js +3 -0
  138. package/build/credentials/ios/actions/SetUpDistributionCertificate.js +3 -0
  139. package/build/credentials/ios/actions/SetUpInternalProvisioningProfile.js +1 -0
  140. package/build/credentials/ios/actions/SetUpProvisioningProfile.js +3 -0
  141. package/build/credentials/ios/actions/SetUpPushKey.js +1 -0
  142. package/build/credentials/ios/actions/SetUpTargetBuildCredentials.js +1 -0
  143. package/build/credentials/ios/actions/SetUpTargetBuildCredentialsFromCredentialsJson.js +3 -0
  144. package/build/credentials/ios/actions/UpdateCredentialsJson.js +3 -0
  145. package/build/credentials/ios/appstore/AppStoreApi.js +2 -0
  146. package/build/credentials/manager/CheckBuildProfileFlagAgainstEasJson.js +3 -0
  147. package/build/credentials/manager/CreateAndroidBuildCredentials.js +1 -0
  148. package/build/credentials/manager/ManageAndroid.js +2 -0
  149. package/build/credentials/manager/ManageIos.js +2 -0
  150. package/build/credentials/manager/SelectAndroidBuildCredentials.js +2 -0
  151. package/build/credentials/manager/SelectBuildProfileFromEasJson.js +2 -0
  152. package/build/credentials/manager/SelectIosDistributionTypeGraphqlFromBuildProfile.js +1 -0
  153. package/build/credentials/manager/SelectPlatform.js +7 -0
  154. package/build/credentials/manager/SetDefaultAndroidKeystore.js +1 -0
  155. package/build/credentials/manager/SetUpAndroidBuildCredentials.js +1 -0
  156. package/build/credentials/manager/SetUpBuildCredentialsCommandAction.js +9 -0
  157. package/build/credentials/manager/SetUpIosBuildCredentials.js +1 -0
  158. package/build/devices/actions/create/action.js +4 -0
  159. package/build/devices/manager.js +4 -0
  160. package/build/fetch.js +1 -0
  161. package/build/graphql/generated.d.ts +179 -3
  162. package/build/graphql/generated.js +8 -3
  163. package/build/graphql/mutations/AppMutation.d.ts +0 -2
  164. package/build/graphql/queries/BuildQuery.d.ts +4 -1
  165. package/build/graphql/queries/BuildQuery.js +19 -0
  166. package/build/graphql/types/Build.d.ts +1 -0
  167. package/build/graphql/types/Build.js +15 -1
  168. package/build/graphql/types/Fingerprint.d.ts +1 -0
  169. package/build/graphql/types/Fingerprint.js +12 -0
  170. package/build/log.js +2 -2
  171. package/build/metadata/apple/config/reader.js +1 -0
  172. package/build/metadata/apple/config/writer.js +1 -0
  173. package/build/metadata/apple/tasks/age-rating.js +1 -4
  174. package/build/metadata/apple/tasks/app-info.js +1 -4
  175. package/build/metadata/apple/tasks/app-review-detail.js +1 -4
  176. package/build/metadata/apple/tasks/app-version.js +2 -1
  177. package/build/metadata/errors.js +5 -0
  178. package/build/project/fetchOrCreateProjectIDForWriteToConfigWithConfirmationAsync.d.ts +0 -2
  179. package/build/project/fetchOrCreateProjectIDForWriteToConfigWithConfirmationAsync.js +0 -1
  180. package/build/project/projectUtils.d.ts +1 -2
  181. package/build/project/projectUtils.js +1 -14
  182. package/build/rollout/actions/CreateRollout.d.ts +9 -10
  183. package/build/rollout/actions/CreateRollout.js +2 -0
  184. package/build/rollout/actions/EditRollout.d.ts +2 -3
  185. package/build/rollout/actions/EditRollout.js +2 -0
  186. package/build/rollout/actions/EndRollout.d.ts +4 -6
  187. package/build/rollout/actions/EndRollout.js +2 -0
  188. package/build/rollout/actions/ManageRollout.d.ts +2 -3
  189. package/build/rollout/actions/ManageRollout.js +2 -0
  190. package/build/rollout/actions/NonInteractiveRollout.d.ts +6 -27
  191. package/build/rollout/actions/NonInteractiveRollout.js +1 -0
  192. package/build/rollout/actions/RolloutMainMenu.d.ts +6 -7
  193. package/build/rollout/actions/RolloutMainMenu.js +1 -0
  194. package/build/rollout/actions/SelectRuntime.d.ts +6 -20
  195. package/build/rollout/actions/SelectRuntime.js +3 -0
  196. package/build/submit/BaseSubmitter.js +4 -0
  197. package/build/submit/android/AndroidSubmitCommand.js +1 -0
  198. package/build/submit/ios/IosSubmitCommand.js +1 -0
  199. package/build/update/configure.js +2 -1
  200. package/build/update/getBranchFromChannelNameAndCreateAndLinkIfNotExistsAsync.js +3 -3
  201. package/build/user/SessionManager.js +2 -0
  202. package/build/utils/fingerprint.d.ts +97 -0
  203. package/build/utils/fingerprint.js +5 -0
  204. package/build/utils/fingerprintCli.d.ts +5 -7
  205. package/build/utils/fingerprintCli.js +11 -1
  206. package/build/utils/fingerprintDiff.d.ts +33 -0
  207. package/build/utils/fingerprintDiff.js +122 -0
  208. package/build/vcs/clients/git.js +2 -1
  209. package/build/vcs/local.js +2 -1
  210. package/oclif.manifest.json +51 -7
  211. package/package.json +15 -13
@@ -1,6 +1,5 @@
1
1
  import { EASUpdateAction, EASUpdateContext } from '../../eas-update/utils';
2
- import { UpdateBranchBasicInfoFragment, UpdateChannelBasicInfoFragment, UpdateFragment } from '../../graphql/generated';
3
- import { UpdateChannelObject } from '../../graphql/queries/ChannelQuery';
2
+ import { UpdateChannelBasicInfoFragment } from '../../graphql/generated';
4
3
  export type NonInteractiveOptions = {
5
4
  branchNameToRollout: string;
6
5
  percent: number;
@@ -14,12 +13,12 @@ export declare class CreateRollout implements EASUpdateAction<UpdateChannelBasic
14
13
  private readonly options;
15
14
  constructor(channelInfo: UpdateChannelBasicInfoFragment, options?: Partial<NonInteractiveOptions>);
16
15
  runAsync(ctx: EASUpdateContext): Promise<UpdateChannelBasicInfoFragment>;
17
- confirmCreationAsync(ctx: EASUpdateContext): Promise<boolean>;
18
- getChannelObjectAsync(ctx: EASUpdateContext, runtimeVersion: string): Promise<UpdateChannelObject>;
19
- getLatestUpdateGroupOnBranchAsync(ctx: EASUpdateContext, branchInfo: UpdateBranchBasicInfoFragment, runtimeVersion: string): Promise<UpdateFragment[] | null>;
20
- selectRuntimeVersionAsync(ctx: EASUpdateContext, branchToRollout: UpdateBranchBasicInfoFragment, defaultBranchId: string): Promise<string>;
21
- selectRuntimeVersionFromAlternativeSourceAsync(ctx: EASUpdateContext, branchToRollout: UpdateBranchBasicInfoFragment, defaultBranch: UpdateBranchBasicInfoFragment): Promise<string>;
22
- selectRuntimeVersionFromProjectConfigAsync(ctx: EASUpdateContext): Promise<string>;
23
- selectBranchAsync(ctx: EASUpdateContext, defaultBranchId: string): Promise<UpdateBranchBasicInfoFragment>;
24
- resolveBranchNameAsync(ctx: EASUpdateContext, branchName: string): Promise<UpdateBranchBasicInfoFragment>;
16
+ private confirmCreationAsync;
17
+ private getChannelObjectAsync;
18
+ private getLatestUpdateGroupOnBranchAsync;
19
+ private selectRuntimeVersionAsync;
20
+ private selectRuntimeVersionFromAlternativeSourceAsync;
21
+ private selectRuntimeVersionFromProjectConfigAsync;
22
+ private selectBranchAsync;
23
+ private resolveBranchNameAsync;
25
24
  }
@@ -28,6 +28,8 @@ function assertNonInteractiveOptions(options) {
28
28
  * Create a rollout for the project.
29
29
  */
30
30
  class CreateRollout {
31
+ channelInfo;
32
+ options;
31
33
  constructor(channelInfo, options = {}) {
32
34
  this.channelInfo = channelInfo;
33
35
  this.options = options;
@@ -1,6 +1,5 @@
1
1
  import { EASUpdateAction, EASUpdateContext } from '../../eas-update/utils';
2
2
  import { UpdateChannelBasicInfoFragment } from '../../graphql/generated';
3
- import { UpdateChannelObject } from '../../graphql/queries/ChannelQuery';
4
3
  export type NonInteractiveOptions = {
5
4
  percent: number;
6
5
  };
@@ -12,6 +11,6 @@ export declare class EditRollout implements EASUpdateAction<UpdateChannelBasicIn
12
11
  private readonly options;
13
12
  constructor(channelInfo: UpdateChannelBasicInfoFragment, options?: Partial<NonInteractiveOptions>);
14
13
  runAsync(ctx: EASUpdateContext): Promise<UpdateChannelBasicInfoFragment>;
15
- confirmEditAsync(ctx: EASUpdateContext): Promise<boolean>;
16
- getChannelObjectAsync(ctx: EASUpdateContext): Promise<UpdateChannelObject>;
14
+ private confirmEditAsync;
15
+ private getChannelObjectAsync;
17
16
  }
@@ -20,6 +20,8 @@ function assertNonInteractiveOptions(options) {
20
20
  * Edit an existing rollout for the project.
21
21
  */
22
22
  class EditRollout {
23
+ channelInfo;
24
+ options;
23
25
  constructor(channelInfo, options = {}) {
24
26
  this.channelInfo = channelInfo;
25
27
  this.options = options;
@@ -1,7 +1,5 @@
1
1
  import { EASUpdateAction, EASUpdateContext } from '../../eas-update/utils';
2
2
  import { UpdateChannelBasicInfoFragment } from '../../graphql/generated';
3
- import { UpdateBranchObject, UpdateChannelObject } from '../../graphql/queries/ChannelQuery';
4
- import { Rollout } from '../branch-mapping';
5
3
  export declare enum EndOutcome {
6
4
  REPUBLISH_AND_REVERT = "republish-and-revert",
7
5
  REVERT = "revert"
@@ -20,8 +18,8 @@ export declare class EndRollout implements EASUpdateAction<UpdateChannelBasicInf
20
18
  private readonly options;
21
19
  constructor(channelInfo: UpdateChannelBasicInfoFragment, options: Partial<NonInteractiveOptions> & GeneralOptions);
22
20
  runAsync(ctx: EASUpdateContext): Promise<UpdateChannelBasicInfoFragment>;
23
- getChannelObjectAsync(ctx: EASUpdateContext): Promise<UpdateChannelObject>;
24
- selectOutcomeAsync(rollout: Rollout<UpdateBranchObject>): Promise<EndOutcome>;
25
- performOutcomeAsync(ctx: EASUpdateContext, rollout: Rollout<UpdateBranchObject>, outcome: EndOutcome): Promise<UpdateChannelBasicInfoFragment>;
26
- confirmOutcomeAsync(ctx: EASUpdateContext, selectedOutcome: EndOutcome, rollout: Rollout<UpdateBranchObject>): Promise<boolean>;
21
+ private getChannelObjectAsync;
22
+ private selectOutcomeAsync;
23
+ private performOutcomeAsync;
24
+ private confirmOutcomeAsync;
27
25
  }
@@ -29,6 +29,8 @@ function assertNonInteractiveOptions(options) {
29
29
  * End an existing rollout for the project.
30
30
  */
31
31
  class EndRollout {
32
+ channelInfo;
33
+ options;
32
34
  constructor(channelInfo, options) {
33
35
  this.channelInfo = channelInfo;
34
36
  this.options = options;
@@ -2,7 +2,6 @@ import { NonInteractiveOptions as EditRolloutNonInteractiveOptions } from './Edi
2
2
  import { GeneralOptions as EndRolloutGeneralOptions, NonInteractiveOptions as EndRolloutNonInteractiveOptions } from './EndRollout';
3
3
  import { EASUpdateAction, EASUpdateContext } from '../../eas-update/utils';
4
4
  import { UpdateChannelBasicInfoFragment } from '../../graphql/generated';
5
- import { UpdateChannelObject } from '../../graphql/queries/ChannelQuery';
6
5
  export declare enum ManageRolloutActions {
7
6
  EDIT = "Edit",
8
7
  END = "End",
@@ -20,6 +19,6 @@ export declare class ManageRollout implements EASUpdateAction<EASUpdateAction> {
20
19
  action?: ManageRolloutActions.EDIT | ManageRolloutActions.END | ManageRolloutActions.VIEW;
21
20
  } & Partial<EditRolloutNonInteractiveOptions> & Partial<EndRolloutNonInteractiveOptions> & EndRolloutGeneralOptions);
22
21
  runAsync(ctx: EASUpdateContext): Promise<EASUpdateAction>;
23
- selectActionAsync(): Promise<ManageRolloutActions>;
24
- getChannelObjectAsync(ctx: EASUpdateContext): Promise<UpdateChannelObject>;
22
+ private selectActionAsync;
23
+ private getChannelObjectAsync;
25
24
  }
@@ -21,6 +21,8 @@ var ManageRolloutActions;
21
21
  * Manage a rollout for the project.
22
22
  */
23
23
  class ManageRollout {
24
+ channelInfo;
25
+ options;
24
26
  constructor(channelInfo, options) {
25
27
  this.channelInfo = channelInfo;
26
28
  this.options = options;
@@ -3,20 +3,6 @@ import { NonInteractiveOptions as EditRolloutNonInteractiveOptions } from './Edi
3
3
  import { GeneralOptions as EndRolloutGeneralOptions, NonInteractiveOptions as EndRolloutNonInteractiveOptions } from './EndRollout';
4
4
  import { RolloutActions } from './RolloutMainMenu';
5
5
  import { EASUpdateAction, EASUpdateContext } from '../../eas-update/utils';
6
- import { UpdateChannelBasicInfoFragment } from '../../graphql/generated';
7
- import { UpdateBranchObject, UpdateChannelObject } from '../../graphql/queries/ChannelQuery';
8
- type JSONRolloutOutput = {
9
- defaultBranch: UpdateBranchObject;
10
- rolledOutBranch: UpdateBranchObject;
11
- percentRolledOut: number;
12
- runtimeVersion?: string;
13
- updatedAt: Date;
14
- };
15
- type JSONOutput = {
16
- hasRollout: boolean;
17
- originalRolloutInfo?: JSONRolloutOutput;
18
- currentRolloutInfo?: JSONRolloutOutput;
19
- };
20
6
  /**
21
7
  * Control a rollout in non interactive mode.
22
8
  */
@@ -28,17 +14,10 @@ export declare class NonInteractiveRollout implements EASUpdateAction<void> {
28
14
  action?: RolloutActions;
29
15
  } & Partial<EditRolloutNonInteractiveOptions> & Partial<EndRolloutNonInteractiveOptions> & EndRolloutGeneralOptions & Partial<CreateRolloutNonInteractiveOptions>);
30
16
  runAsync(ctx: EASUpdateContext): Promise<void>;
31
- runActionAsync(ctx: EASUpdateContext, action: RolloutActions, channelObject: UpdateChannelObject): Promise<UpdateChannelBasicInfoFragment>;
32
- viewRollout(channelObject: UpdateChannelObject): UpdateChannelObject;
33
- getJsonAsync({ originalChannelObject, updatedChannelObject, }: {
34
- originalChannelObject: UpdateChannelObject;
35
- updatedChannelObject: UpdateChannelObject;
36
- }): Promise<JSONOutput>;
37
- getRolloutJsonAsync(channelObject: UpdateChannelObject): Promise<JSONRolloutOutput>;
38
- getRuntimeVersion(channelInfo: UpdateChannelBasicInfoFragment): string | undefined;
39
- getChannelObjectAsync(ctx: EASUpdateContext, { channelName, runtimeVersion }: {
40
- channelName: string;
41
- runtimeVersion?: string;
42
- }): Promise<UpdateChannelObject>;
17
+ private runActionAsync;
18
+ private viewRollout;
19
+ private getJsonAsync;
20
+ private getRolloutJsonAsync;
21
+ private getRuntimeVersion;
22
+ private getChannelObjectAsync;
43
23
  }
44
- export {};
@@ -16,6 +16,7 @@ const utils_1 = require("../utils");
16
16
  * Control a rollout in non interactive mode.
17
17
  */
18
18
  class NonInteractiveRollout {
19
+ options;
19
20
  constructor(options) {
20
21
  this.options = options;
21
22
  }
@@ -3,7 +3,6 @@ import { NonInteractiveOptions as EditRolloutNonInteractiveOptions } from './Edi
3
3
  import { GeneralOptions as EndRolloutGeneralOptions, NonInteractiveOptions as EndRolloutNonInteractiveOptions } from './EndRollout';
4
4
  import { ManageRolloutActions } from './ManageRollout';
5
5
  import { EASUpdateAction, EASUpdateContext } from '../../eas-update/utils';
6
- import { UpdateChannelBasicInfoFragment } from '../../graphql/generated';
7
6
  export declare enum MainMenuActions {
8
7
  CREATE_NEW = "Create a new rollout",
9
8
  MANAGE_EXISTING = "Manage an existing rollout"
@@ -19,10 +18,10 @@ export declare class RolloutMainMenu implements EASUpdateAction<void> {
19
18
  action?: RolloutActions;
20
19
  } & Partial<EditRolloutNonInteractiveOptions> & Partial<EndRolloutNonInteractiveOptions> & EndRolloutGeneralOptions & Partial<CreateRolloutNonInteractiveOptions>);
21
20
  runAsync(ctx: EASUpdateContext): Promise<void>;
22
- runActionAsync(ctx: EASUpdateContext, menuAction: MainMenuActions): Promise<null>;
23
- selectRolloutAsync(ctx: EASUpdateContext): Promise<UpdateChannelBasicInfoFragment | null>;
24
- selectChannelToRolloutAsync(ctx: EASUpdateContext): Promise<UpdateChannelBasicInfoFragment>;
25
- resolveChannelNameAsync(ctx: EASUpdateContext, channelName: string): Promise<UpdateChannelBasicInfoFragment>;
26
- toMainMenuAction(action: RolloutActions): MainMenuActions;
27
- promptMenuActionAsync(): Promise<MainMenuActions>;
21
+ private runActionAsync;
22
+ private selectRolloutAsync;
23
+ private selectChannelToRolloutAsync;
24
+ private resolveChannelNameAsync;
25
+ private toMainMenuAction;
26
+ private promptMenuActionAsync;
28
27
  }
@@ -20,6 +20,7 @@ var MainMenuActions;
20
20
  * Manage a rollout for the project.
21
21
  */
22
22
  class RolloutMainMenu {
23
+ options;
23
24
  constructor(options) {
24
25
  this.options = options;
25
26
  }
@@ -1,7 +1,5 @@
1
- import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient';
2
1
  import { EASUpdateAction, EASUpdateContext } from '../../eas-update/utils';
3
- import { RuntimeFragment, UpdateBranchBasicInfoFragment } from '../../graphql/generated';
4
- import { Connection } from '../../utils/relay';
2
+ import { UpdateBranchBasicInfoFragment } from '../../graphql/generated';
5
3
  /**
6
4
  * Select a runtime from a branch
7
5
  */
@@ -12,22 +10,10 @@ export declare class SelectRuntime implements EASUpdateAction<string | null> {
12
10
  constructor(branchInfo: UpdateBranchBasicInfoFragment, options?: {
13
11
  anotherBranchToIntersectRuntimesBy?: UpdateBranchBasicInfoFragment;
14
12
  });
15
- warnNoRuntime(): void;
16
- formatCantFindRuntime(): string;
13
+ private warnNoRuntime;
14
+ private formatCantFindRuntime;
17
15
  runAsync(ctx: EASUpdateContext): Promise<string | null>;
18
- getNewestRuntimeAsync(graphqlClient: ExpoGraphqlClient, { appId, branchName, anotherBranchIdToIntersectRuntimesBy, }: {
19
- appId: string;
20
- branchName: string;
21
- anotherBranchIdToIntersectRuntimesBy?: string;
22
- }): Promise<Connection<RuntimeFragment>>;
23
- displayLatestUpdateGroupAsync({ graphqlClient, appId, branchName, runtime, }: {
24
- graphqlClient: ExpoGraphqlClient;
25
- appId: string;
26
- branchName: string;
27
- runtime: RuntimeFragment;
28
- }): Promise<string>;
29
- selectRuntimesAsync(graphqlClient: ExpoGraphqlClient, { appId, batchSize, }: {
30
- appId: string;
31
- batchSize?: number;
32
- }): Promise<RuntimeFragment | null>;
16
+ private getNewestRuntimeAsync;
17
+ private displayLatestUpdateGroupAsync;
18
+ private selectRuntimesAsync;
33
19
  }
@@ -15,6 +15,9 @@ const utils_2 = require("../utils");
15
15
  * Select a runtime from a branch
16
16
  */
17
17
  class SelectRuntime {
18
+ branchInfo;
19
+ options;
20
+ printedType;
18
21
  constructor(branchInfo, options = {}) {
19
22
  this.branchInfo = branchInfo;
20
23
  this.options = options;
@@ -10,6 +10,10 @@ const log_1 = tslib_1.__importDefault(require("../log"));
10
10
  const ora_1 = require("../ora");
11
11
  const platform_1 = require("../platform");
12
12
  class BaseSubmitter {
13
+ ctx;
14
+ options;
15
+ sourceOptionResolver;
16
+ sourceOptionAnalytics;
13
17
  constructor(ctx, options, sourceOptionResolver, sourceOptionAnalytics) {
14
18
  this.ctx = ctx;
15
19
  this.options = options;
@@ -13,6 +13,7 @@ const capitalize_1 = tslib_1.__importDefault(require("../../utils/expodash/capit
13
13
  const ArchiveSource_1 = require("../ArchiveSource");
14
14
  const commons_1 = require("../commons");
15
15
  class AndroidSubmitCommand {
16
+ ctx;
16
17
  constructor(ctx) {
17
18
  this.ctx = ctx;
18
19
  }
@@ -15,6 +15,7 @@ const log_1 = tslib_1.__importStar(require("../../log"));
15
15
  const ArchiveSource_1 = require("../ArchiveSource");
16
16
  const commons_1 = require("../commons");
17
17
  class IosSubmitCommand {
18
+ ctx;
18
19
  constructor(ctx) {
19
20
  this.ctx = ctx;
20
21
  }
@@ -6,6 +6,7 @@ const eas_build_job_1 = require("@expo/eas-build-job");
6
6
  const eas_json_1 = require("@expo/eas-json");
7
7
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
8
  const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
9
+ const nullthrows_1 = tslib_1.__importDefault(require("nullthrows"));
9
10
  const semver_1 = tslib_1.__importDefault(require("semver"));
10
11
  const UpdatesModule_1 = require("./android/UpdatesModule");
11
12
  const UpdatesModule_2 = require("./ios/UpdatesModule");
@@ -115,7 +116,7 @@ async function ensureEASUpdatesIsConfiguredInExpoConfigAsync({ exp, projectId, p
115
116
  return {
116
117
  projectChanged: true,
117
118
  // TODO(cedric): fix return type of `modifyConfigAsync` to avoid `null` for type === success repsonses
118
- exp: result.config?.expo,
119
+ exp: (0, nullthrows_1.default)(result.config, 'Expected config to be defined'),
119
120
  };
120
121
  case 'warn':
121
122
  warnEASUpdatesManualConfig({ modifyConfig, workflows });
@@ -27,19 +27,19 @@ async function getBranchFromChannelNameAndCreateAndLinkIfNotExistsAsync(graphqlC
27
27
  if (!(error instanceof errors_1.ChannelNotFoundError)) {
28
28
  throw error;
29
29
  }
30
- const { branchId } = await (0, queries_1.ensureBranchExistsAsync)(graphqlClient, {
30
+ const { branch } = await (0, queries_1.ensureBranchExistsAsync)(graphqlClient, {
31
31
  appId: projectId,
32
32
  branchName: channelName,
33
33
  });
34
34
  const { updateChannel: { createUpdateChannelForApp: newChannel }, } = await (0, queries_2.createChannelOnAppAsync)(graphqlClient, {
35
35
  appId: projectId,
36
36
  channelName,
37
- branchId,
37
+ branchId: branch.id,
38
38
  });
39
39
  if (!newChannel) {
40
40
  throw new Error(`Could not create channel with name ${channelName} on project with id ${projectId}`);
41
41
  }
42
- branchInfo = { branchId, branchName: channelName };
42
+ branchInfo = { branchId: branch.id, branchName: channelName };
43
43
  }
44
44
  return branchInfo;
45
45
  }
@@ -22,6 +22,8 @@ var UserSecondFactorDeviceMethod;
22
22
  UserSecondFactorDeviceMethod["SMS"] = "sms";
23
23
  })(UserSecondFactorDeviceMethod || (exports.UserSecondFactorDeviceMethod = UserSecondFactorDeviceMethod = {}));
24
24
  class SessionManager {
25
+ analytics;
26
+ currentActor;
25
27
  constructor(analytics) {
26
28
  this.analytics = analytics;
27
29
  }
@@ -0,0 +1,97 @@
1
+ /**
2
+ * DO NOT EDIT unless the same change is made in `@expo/fingerprint`
3
+ */
4
+ /// <reference types="node" />
5
+ export interface HashSourceFile {
6
+ type: 'file';
7
+ filePath: string;
8
+ /**
9
+ * Reasons of this source coming from
10
+ */
11
+ reasons: string[];
12
+ }
13
+ export interface HashSourceDir {
14
+ type: 'dir';
15
+ filePath: string;
16
+ /**
17
+ * Reasons of this source coming from
18
+ */
19
+ reasons: string[];
20
+ }
21
+ export interface HashSourceContents {
22
+ type: 'contents';
23
+ id: string;
24
+ contents: string | Buffer;
25
+ /**
26
+ * Reasons of this source coming from
27
+ */
28
+ reasons: string[];
29
+ }
30
+ export type HashSource = HashSourceFile | HashSourceDir | HashSourceContents;
31
+ export interface Fingerprint {
32
+ /**
33
+ * Sources and their hash values to generate a fingerprint
34
+ */
35
+ sources: FingerprintSource[];
36
+ /**
37
+ * The final hash value of the whole fingerprint
38
+ */
39
+ hash: string;
40
+ }
41
+ export interface DebugInfoFile {
42
+ path: string;
43
+ hash: string;
44
+ }
45
+ export interface DebugInfoDir {
46
+ path: string;
47
+ hash: string;
48
+ children: (DebugInfoFile | DebugInfoDir | undefined)[];
49
+ }
50
+ export interface DebugInfoContents {
51
+ hash: string;
52
+ }
53
+ export type DebugInfo = DebugInfoFile | DebugInfoDir | DebugInfoContents;
54
+ export type FingerprintSource = HashSource & {
55
+ /**
56
+ * Hash value of the `source`.
57
+ * If the source is excluding by `Options.dirExcludes`, the value will be null.
58
+ */
59
+ hash: string | null;
60
+ /**
61
+ * Debug info from the hashing process. Differs based on source type. Designed to be consumed by humans
62
+ * as opposed to programmatically.
63
+ */
64
+ debugInfo?: DebugInfo;
65
+ };
66
+ export type FingerprintDiffItem = {
67
+ /**
68
+ * The operation type of the diff item.
69
+ */
70
+ op: 'added';
71
+ /**
72
+ * The added source.
73
+ */
74
+ addedSource: FingerprintSource;
75
+ } | {
76
+ /**
77
+ * The operation type of the diff item.
78
+ */
79
+ op: 'removed';
80
+ /**
81
+ * The removed source.
82
+ */
83
+ removedSource: FingerprintSource;
84
+ } | {
85
+ /**
86
+ * The operation type of the diff item.
87
+ */
88
+ op: 'changed';
89
+ /**
90
+ * The source before.
91
+ */
92
+ beforeSource: FingerprintSource;
93
+ /**
94
+ * The source after.
95
+ */
96
+ afterSource: FingerprintSource;
97
+ };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * DO NOT EDIT unless the same change is made in `@expo/fingerprint`
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +1,5 @@
1
1
  import { Env, Workflow } from '@expo/eas-build-job';
2
+ import { Fingerprint, FingerprintDiffItem } from './fingerprint';
2
3
  export type FingerprintOptions = {
3
4
  workflow: Workflow;
4
5
  platforms: string[];
@@ -6,11 +7,10 @@ export type FingerprintOptions = {
6
7
  env: Env | undefined;
7
8
  cwd?: string;
8
9
  };
9
- export declare function createFingerprintAsync(projectDir: string, options: FingerprintOptions): Promise<{
10
- hash: string;
11
- sources: object[];
10
+ export declare function diffFingerprint(projectDir: string, fingerprint1: Fingerprint, fingerprint2: Fingerprint): FingerprintDiffItem[] | null;
11
+ export declare function createFingerprintAsync(projectDir: string, options: FingerprintOptions): Promise<(Fingerprint & {
12
12
  isDebugSource: boolean;
13
- } | null>;
13
+ }) | null>;
14
14
  /**
15
15
  * Computes project fingerprints based on provided options and returns a map of fingerprint data keyed by a string.
16
16
  *
@@ -23,8 +23,6 @@ export declare function createFingerprintAsync(projectDir: string, options: Fing
23
23
  *
24
24
  * @throws Will throw an error if fingerprint computation fails.
25
25
  */
26
- export declare function createFingerprintsByKeyAsync(projectDir: string, fingerprintOptionsByKey: Map<string, FingerprintOptions>): Promise<Map<string, {
27
- hash: string;
28
- sources: object[];
26
+ export declare function createFingerprintsByKeyAsync(projectDir: string, fingerprintOptionsByKey: Map<string, FingerprintOptions>): Promise<Map<string, Fingerprint & {
29
27
  isDebugSource: boolean;
30
28
  }>>;
@@ -1,12 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createFingerprintsByKeyAsync = exports.createFingerprintAsync = void 0;
3
+ exports.createFingerprintsByKeyAsync = exports.createFingerprintAsync = exports.diffFingerprint = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const eas_build_job_1 = require("@expo/eas-build-job");
6
6
  const resolve_from_1 = require("resolve-from");
7
7
  const mapMapAsync_1 = tslib_1.__importDefault(require("./expodash/mapMapAsync"));
8
8
  const log_1 = tslib_1.__importDefault(require("../log"));
9
9
  const ora_1 = require("../ora");
10
+ function diffFingerprint(projectDir, fingerprint1, fingerprint2) {
11
+ // @expo/fingerprint is exported in the expo package for SDK 52+
12
+ const fingerprintPath = (0, resolve_from_1.silent)(projectDir, 'expo/fingerprint');
13
+ if (!fingerprintPath) {
14
+ return null;
15
+ }
16
+ const Fingerprint = require(fingerprintPath);
17
+ return Fingerprint.diffFingerprints(fingerprint1, fingerprint2);
18
+ }
19
+ exports.diffFingerprint = diffFingerprint;
10
20
  async function createFingerprintAsync(projectDir, options) {
11
21
  // @expo/fingerprint is exported in the expo package for SDK 52+
12
22
  const fingerprintPath = (0, resolve_from_1.silent)(projectDir, 'expo/fingerprint');
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Computes and prints a line-based diff between two strings, displaying changes as chunks.
3
+ *
4
+ * Each chunk contains lines that were added or removed, prefixed with contextual lines
5
+ * from the unchanged parts of the strings. The output is styled similarly to `git diff`
6
+ * with headers indicating line ranges for the changes in the original and modified strings.
7
+ *
8
+ * @param {string} str1 - The original string to compare.
9
+ * @param {string} str2 - The modified string to compare against the original.
10
+ * @param {number} [contextLines=2] - The number of unchanged lines to display before and after each chunk of changes.
11
+ *
12
+ * ### Output:
13
+ * - Each chunk begins with a header in the format `@@ -<original range> +<modified range> @@`.
14
+ * - Removed lines are prefixed with a red `-` and the original line number.
15
+ * - Added lines are prefixed with a green `+` and the modified line number.
16
+ * - Context lines are displayed in gray without a `+` or `-` prefix.
17
+ *
18
+ * ### Notes:
19
+ * - Consecutive changes are grouped into a single chunk if separated by no more than the specified number of context lines.
20
+ *
21
+ * ### Example:
22
+ * ```typescript
23
+ * abridgedDiff("Line1\nLine2\nLine3", "Line1\nLineX\nLine3", 1);
24
+ *
25
+ * Output:
26
+ * `@@ -2,1 +2,1 @@`
27
+ * Line1
28
+ * -Line2
29
+ * +LineX
30
+ * Line3
31
+ * ```
32
+ */
33
+ export declare function abridgedDiff(str1: string, str2: string, contextLines?: number): void;