eas-cli 0.46.0 → 0.48.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 (311) hide show
  1. package/README.md +845 -2
  2. package/build/analytics/rudderstackClient.js +3 -3
  3. package/build/api.d.ts +25 -1
  4. package/build/api.js +70 -38
  5. package/build/build/android/build.js +4 -4
  6. package/build/build/android/prepareJob.js +2 -2
  7. package/build/build/android/syncProjectConfiguration.js +7 -7
  8. package/build/build/android/version.js +3 -3
  9. package/build/build/build.js +4 -4
  10. package/build/build/configure.js +3 -3
  11. package/build/build/createContext.js +2 -2
  12. package/build/build/ios/credentials.js +1 -1
  13. package/build/build/ios/graphql.js +1 -1
  14. package/build/build/ios/prepareJob.js +2 -2
  15. package/build/build/ios/syncProjectConfiguration.js +3 -3
  16. package/build/build/ios/version.js +3 -3
  17. package/build/build/local.js +3 -3
  18. package/build/build/metadata.js +7 -18
  19. package/build/build/runBuildAndSubmit.js +3 -3
  20. package/build/build/utils/appJson.js +3 -3
  21. package/build/build/utils/credentials.js +2 -2
  22. package/build/build/utils/devClient.js +3 -3
  23. package/build/build/utils/formatBuild.js +2 -2
  24. package/build/build/utils/printBuildInfo.js +5 -5
  25. package/build/build/utils/repository.js +5 -5
  26. package/build/build/utils/url.js +1 -1
  27. package/build/build/utils/version.js +4 -4
  28. package/build/build/validate.js +3 -3
  29. package/build/commandUtils/EasCommand.js +2 -2
  30. package/build/commands/account/login.js +2 -2
  31. package/build/commands/account/logout.js +2 -2
  32. package/build/commands/account/view.js +3 -3
  33. package/build/commands/analytics.js +3 -3
  34. package/build/commands/branch/create.js +4 -4
  35. package/build/commands/branch/delete.js +4 -4
  36. package/build/commands/branch/list.js +5 -5
  37. package/build/commands/branch/publish.js +1 -1
  38. package/build/commands/branch/rename.js +4 -4
  39. package/build/commands/branch/view.js +6 -6
  40. package/build/commands/build/cancel.js +4 -4
  41. package/build/commands/build/configure.js +6 -7
  42. package/build/commands/build/index.js +12 -8
  43. package/build/commands/build/inspect.js +5 -5
  44. package/build/commands/build/list.js +3 -3
  45. package/build/commands/build/view.js +2 -2
  46. package/build/commands/channel/create.js +12 -11
  47. package/build/commands/channel/delete.js +3 -3
  48. package/build/commands/channel/edit.js +38 -32
  49. package/build/commands/channel/list.js +4 -4
  50. package/build/commands/channel/rollout.js +50 -41
  51. package/build/commands/channel/view.d.ts +0 -2
  52. package/build/commands/channel/view.js +9 -53
  53. package/build/commands/config.js +3 -3
  54. package/build/commands/credentials.js +1 -1
  55. package/build/commands/device/create.js +3 -3
  56. package/build/commands/device/delete.js +4 -4
  57. package/build/commands/device/list.js +5 -5
  58. package/build/commands/device/view.js +3 -3
  59. package/build/commands/diagnostics.js +3 -3
  60. package/build/commands/project/info.js +4 -4
  61. package/build/commands/project/init.js +3 -3
  62. package/build/commands/secret/create.js +3 -3
  63. package/build/commands/secret/delete.js +2 -2
  64. package/build/commands/secret/list.js +5 -5
  65. package/build/commands/submit.js +4 -4
  66. package/build/commands/update/configure.d.ts +3 -0
  67. package/build/commands/update/configure.js +151 -36
  68. package/build/commands/update/delete.js +6 -6
  69. package/build/commands/update/index.d.ts +1 -0
  70. package/build/commands/update/index.js +65 -12
  71. package/build/commands/update/list.js +6 -6
  72. package/build/commands/update/view.js +4 -4
  73. package/build/commands/webhook/create.js +1 -1
  74. package/build/commands/webhook/delete.js +5 -5
  75. package/build/commands/webhook/list.js +3 -3
  76. package/build/commands/webhook/update.js +2 -2
  77. package/build/commands/webhook/view.js +2 -2
  78. package/build/credentials/android/AndroidCredentialsProvider.js +2 -2
  79. package/build/credentials/android/actions/AssignFcm.js +1 -1
  80. package/build/credentials/android/actions/AssignGoogleServiceAccountKey.js +1 -1
  81. package/build/credentials/android/actions/BuildCredentialsUtils.js +1 -1
  82. package/build/credentials/android/actions/CreateFcm.js +1 -1
  83. package/build/credentials/android/actions/CreateGoogleServiceAccountKey.js +1 -1
  84. package/build/credentials/android/actions/CreateKeystore.js +1 -1
  85. package/build/credentials/android/actions/DownloadKeystore.js +3 -3
  86. package/build/credentials/android/actions/RemoveFcm.js +1 -1
  87. package/build/credentials/android/actions/RemoveGoogleServiceAccountKey.js +1 -1
  88. package/build/credentials/android/actions/RemoveKeystore.js +2 -2
  89. package/build/credentials/android/actions/SetUpBuildCredentials.js +2 -2
  90. package/build/credentials/android/actions/SetUpBuildCredentialsFromCredentialsJson.js +1 -1
  91. package/build/credentials/android/actions/SetUpGoogleServiceAccountKey.js +2 -2
  92. package/build/credentials/android/actions/UpdateCredentialsJson.js +1 -1
  93. package/build/credentials/android/actions/UseExistingGoogleServiceAccountKey.js +1 -1
  94. package/build/credentials/android/api/graphql/mutations/AndroidAppBuildCredentialsMutation.js +2 -2
  95. package/build/credentials/android/api/graphql/mutations/AndroidAppCredentialsMutation.js +2 -2
  96. package/build/credentials/android/api/graphql/mutations/AndroidFcmMutation.js +2 -2
  97. package/build/credentials/android/api/graphql/mutations/AndroidKeystoreMutation.js +2 -2
  98. package/build/credentials/android/api/graphql/mutations/GoogleServiceAccountKeyMutation.js +2 -2
  99. package/build/credentials/android/api/graphql/queries/AndroidAppCredentialsQuery.js +2 -2
  100. package/build/credentials/android/api/graphql/queries/GoogleServiceAccountKeyQuery.js +1 -1
  101. package/build/credentials/android/utils/googleServiceAccountKey.js +6 -6
  102. package/build/credentials/android/utils/keystore.js +9 -12
  103. package/build/credentials/android/utils/keystoreNew.js +2 -2
  104. package/build/credentials/android/utils/printCredentials.js +3 -3
  105. package/build/credentials/context.js +7 -7
  106. package/build/credentials/credentialsJson/read.js +2 -2
  107. package/build/credentials/credentialsJson/types.js +1 -1
  108. package/build/credentials/credentialsJson/update.js +6 -6
  109. package/build/credentials/credentialsJson/utils.js +1 -1
  110. package/build/credentials/ios/IosCredentialsProvider.js +2 -2
  111. package/build/credentials/ios/actions/AscApiKeyUtils.js +4 -4
  112. package/build/credentials/ios/actions/AssignAscApiKey.js +1 -1
  113. package/build/credentials/ios/actions/AssignPushKey.js +1 -1
  114. package/build/credentials/ios/actions/BuildCredentialsUtils.js +1 -1
  115. package/build/credentials/ios/actions/ConfigureProvisioningProfile.js +3 -3
  116. package/build/credentials/ios/actions/CreateAscApiKey.js +1 -1
  117. package/build/credentials/ios/actions/CreateDistributionCertificate.js +1 -1
  118. package/build/credentials/ios/actions/CreateProvisioningProfile.js +3 -3
  119. package/build/credentials/ios/actions/CreatePushKey.js +1 -1
  120. package/build/credentials/ios/actions/DistributionCertificateUtils.js +4 -4
  121. package/build/credentials/ios/actions/ProvisioningProfileUtils.js +1 -1
  122. package/build/credentials/ios/actions/PushKeyUtils.js +2 -2
  123. package/build/credentials/ios/actions/RemoveAscApiKey.d.ts +1 -2
  124. package/build/credentials/ios/actions/RemoveAscApiKey.js +3 -4
  125. package/build/credentials/ios/actions/RemoveDistributionCertificate.js +1 -1
  126. package/build/credentials/ios/actions/RemoveProvisioningProfile.js +2 -2
  127. package/build/credentials/ios/actions/RemovePushKey.d.ts +1 -2
  128. package/build/credentials/ios/actions/RemovePushKey.js +3 -4
  129. package/build/credentials/ios/actions/SetUpAdhocProvisioningProfile.js +6 -6
  130. package/build/credentials/ios/actions/SetUpAscApiKey.js +3 -3
  131. package/build/credentials/ios/actions/SetUpBuildCredentials.js +3 -3
  132. package/build/credentials/ios/actions/SetUpBuildCredentialsFromCredentialsJson.js +2 -2
  133. package/build/credentials/ios/actions/SetUpDistributionCertificate.js +4 -4
  134. package/build/credentials/ios/actions/SetUpInternalProvisioningProfile.js +4 -1
  135. package/build/credentials/ios/actions/SetUpProvisioningProfile.js +1 -1
  136. package/build/credentials/ios/actions/SetUpPushKey.js +3 -3
  137. package/build/credentials/ios/actions/SetUpSubmissionCredentials.js +4 -4
  138. package/build/credentials/ios/actions/SetUpTargetBuildCredentials.js +1 -1
  139. package/build/credentials/ios/actions/SetUpTargetBuildCredentialsFromCredentialsJson.js +3 -3
  140. package/build/credentials/ios/actions/UpdateCredentialsJson.js +1 -1
  141. package/build/credentials/ios/api/GraphqlClient.js +1 -1
  142. package/build/credentials/ios/api/graphql/mutations/AppStoreConnectApiKeyMutation.js +2 -2
  143. package/build/credentials/ios/api/graphql/mutations/AppleAppIdentifierMutation.js +2 -2
  144. package/build/credentials/ios/api/graphql/mutations/AppleDeviceMutation.js +1 -1
  145. package/build/credentials/ios/api/graphql/mutations/AppleDeviceRegistrationRequestMutation.js +1 -1
  146. package/build/credentials/ios/api/graphql/mutations/AppleDistributionCertificateMutation.js +2 -2
  147. package/build/credentials/ios/api/graphql/mutations/AppleProvisioningProfileMutation.js +1 -1
  148. package/build/credentials/ios/api/graphql/mutations/ApplePushKeyMutation.js +2 -2
  149. package/build/credentials/ios/api/graphql/mutations/AppleTeamMutation.js +1 -1
  150. package/build/credentials/ios/api/graphql/mutations/IosAppBuildCredentialsMutation.js +2 -2
  151. package/build/credentials/ios/api/graphql/mutations/IosAppCredentialsMutation.js +2 -2
  152. package/build/credentials/ios/api/graphql/queries/AppQuery.js +2 -2
  153. package/build/credentials/ios/api/graphql/queries/AppStoreConnectApiKeyQuery.js +1 -1
  154. package/build/credentials/ios/api/graphql/queries/AppleAppIdentifierQuery.js +1 -1
  155. package/build/credentials/ios/api/graphql/queries/AppleDeviceQuery.js +2 -2
  156. package/build/credentials/ios/api/graphql/queries/AppleDistributionCertificateQuery.js +2 -2
  157. package/build/credentials/ios/api/graphql/queries/AppleProvisioningProfileQuery.js +2 -2
  158. package/build/credentials/ios/api/graphql/queries/ApplePushKeyQuery.js +1 -1
  159. package/build/credentials/ios/api/graphql/queries/AppleTeamQuery.js +1 -1
  160. package/build/credentials/ios/api/graphql/queries/IosAppBuildCredentialsQuery.js +2 -2
  161. package/build/credentials/ios/api/graphql/queries/IosAppCredentialsQuery.js +2 -2
  162. package/build/credentials/ios/appstore/AppStoreApi.d.ts +1 -1
  163. package/build/credentials/ios/appstore/AppStoreApi.js +2 -2
  164. package/build/credentials/ios/appstore/Credentials.js +1 -1
  165. package/build/credentials/ios/appstore/ascApiKey.js +1 -1
  166. package/build/credentials/ios/appstore/authenticate.js +3 -3
  167. package/build/credentials/ios/appstore/bundleIdCapabilities.js +2 -2
  168. package/build/credentials/ios/appstore/capabilityIdentifiers.js +1 -1
  169. package/build/credentials/ios/appstore/contractMessages.js +2 -2
  170. package/build/credentials/ios/appstore/ensureAppExists.js +2 -2
  171. package/build/credentials/ios/appstore/keychain.js +1 -1
  172. package/build/credentials/ios/appstore/provisioningProfile.d.ts +1 -1
  173. package/build/credentials/ios/appstore/provisioningProfile.js +1 -1
  174. package/build/credentials/ios/appstore/pushKey.js +3 -3
  175. package/build/credentials/ios/appstore/resolveCredentials.js +5 -5
  176. package/build/credentials/ios/credentials.js +1 -1
  177. package/build/credentials/ios/utils/convertHTMLToASCII.js +4 -4
  178. package/build/credentials/ios/utils/p12Certificate.js +1 -1
  179. package/build/credentials/ios/utils/printCredentials.js +4 -4
  180. package/build/credentials/ios/utils/provisioningProfile.js +1 -1
  181. package/build/credentials/ios/validators/validateProvisioningProfile.js +5 -5
  182. package/build/credentials/manager/HelperActions.js +1 -1
  183. package/build/credentials/manager/ManageAndroid.js +2 -2
  184. package/build/credentials/manager/ManageIos.js +3 -3
  185. package/build/credentials/manager/SelectAndroidBuildCredentials.js +1 -1
  186. package/build/credentials/manager/SelectBuildProfileFromEasJson.js +1 -1
  187. package/build/credentials/utils/promptForCredentials.js +5 -6
  188. package/build/devices/actions/create/action.js +2 -2
  189. package/build/devices/actions/create/inputMethod.js +3 -3
  190. package/build/devices/actions/create/registrationUrlMethod.js +4 -4
  191. package/build/devices/manager.js +4 -4
  192. package/build/devices/utils/formatDevice.js +1 -1
  193. package/build/fetch.d.ts +7 -0
  194. package/build/fetch.js +21 -0
  195. package/build/graphql/client.js +2 -5
  196. package/build/graphql/generated.d.ts +770 -703
  197. package/build/graphql/generated.js +6 -1
  198. package/build/graphql/mutations/AppMutation.js +2 -2
  199. package/build/graphql/mutations/BuildMutation.js +2 -2
  200. package/build/graphql/mutations/EnvironmentSecretMutation.js +1 -1
  201. package/build/graphql/mutations/KeystoreGenerationUrlMutation.js +1 -1
  202. package/build/graphql/mutations/PublishMutation.d.ts +2 -1
  203. package/build/graphql/mutations/PublishMutation.js +26 -1
  204. package/build/graphql/mutations/SubmissionMutation.js +2 -2
  205. package/build/graphql/mutations/UploadSessionMutation.js +1 -1
  206. package/build/graphql/mutations/WebhookMutation.js +1 -1
  207. package/build/graphql/queries/BranchQuery.d.ts +7 -0
  208. package/build/graphql/queries/BranchQuery.js +29 -0
  209. package/build/graphql/queries/BuildQuery.js +1 -1
  210. package/build/graphql/queries/ChannelQuery.d.ts +4 -0
  211. package/build/graphql/queries/ChannelQuery.js +49 -0
  212. package/build/graphql/queries/EnvironmentSecretsQuery.js +1 -1
  213. package/build/graphql/queries/ProjectQuery.js +1 -1
  214. package/build/graphql/queries/PublishQuery.js +1 -1
  215. package/build/graphql/queries/SubmissionQuery.js +1 -1
  216. package/build/graphql/queries/UpdateQuery.js +1 -1
  217. package/build/graphql/queries/UserQuery.js +1 -1
  218. package/build/graphql/queries/WebhookQuery.js +1 -1
  219. package/build/graphql/types/App.js +1 -1
  220. package/build/graphql/types/Build.js +1 -1
  221. package/build/graphql/types/EnvironmentSecret.js +1 -1
  222. package/build/graphql/types/Submission.js +1 -1
  223. package/build/graphql/types/UpdateBranch.js +1 -1
  224. package/build/graphql/types/Webhook.js +1 -1
  225. package/build/graphql/types/credentials/AndroidAppBuildCredentials.js +1 -1
  226. package/build/graphql/types/credentials/AndroidAppCredentials.js +1 -1
  227. package/build/graphql/types/credentials/AndroidFcm.js +1 -1
  228. package/build/graphql/types/credentials/AndroidKeystore.js +1 -1
  229. package/build/graphql/types/credentials/AppStoreConnectApiKey.js +1 -1
  230. package/build/graphql/types/credentials/AppleAppIdentifier.js +1 -1
  231. package/build/graphql/types/credentials/AppleDevice.js +1 -1
  232. package/build/graphql/types/credentials/AppleDeviceRegistrationRequest.js +1 -1
  233. package/build/graphql/types/credentials/AppleDistributionCertificate.js +1 -1
  234. package/build/graphql/types/credentials/AppleProvisioningProfile.js +1 -1
  235. package/build/graphql/types/credentials/ApplePushKey.js +1 -1
  236. package/build/graphql/types/credentials/AppleTeam.js +1 -1
  237. package/build/graphql/types/credentials/GoogleServiceAccountKey.js +1 -1
  238. package/build/graphql/types/credentials/IosAppBuildCredentials.js +1 -1
  239. package/build/graphql/types/credentials/IosAppCredentials.js +1 -1
  240. package/build/log.js +4 -4
  241. package/build/ora.js +2 -2
  242. package/build/platform.js +1 -1
  243. package/build/project/android/applicationId.js +6 -6
  244. package/build/project/android/gradle.js +2 -2
  245. package/build/project/android/gradleUtils.js +2 -2
  246. package/build/project/ensureProjectExists.js +3 -3
  247. package/build/project/expoSdk.js +3 -3
  248. package/build/project/ios/bundleIdentifier.js +4 -4
  249. package/build/project/ios/scheme.js +3 -3
  250. package/build/project/metroConfig.js +3 -3
  251. package/build/project/projectUtils.d.ts +3 -5
  252. package/build/project/projectUtils.js +37 -38
  253. package/build/project/publish.js +8 -8
  254. package/build/project/workflow.js +2 -2
  255. package/build/prompts.js +1 -1
  256. package/build/submit/ArchiveSource.js +3 -3
  257. package/build/submit/BaseSubmitter.js +1 -1
  258. package/build/submit/android/AndroidSubmitCommand.js +3 -3
  259. package/build/submit/android/AndroidSubmitter.js +3 -3
  260. package/build/submit/android/ServiceAccountSource.js +4 -4
  261. package/build/submit/ios/AppProduce.js +2 -2
  262. package/build/submit/ios/AppSpecificPasswordSource.js +3 -4
  263. package/build/submit/ios/AscApiKeySource.js +2 -2
  264. package/build/submit/ios/CredentialsServiceSource.js +2 -2
  265. package/build/submit/ios/IosSubmitCommand.js +5 -5
  266. package/build/submit/ios/IosSubmitter.js +3 -3
  267. package/build/submit/ios/utils/language.js +1 -1
  268. package/build/submit/submit.js +4 -4
  269. package/build/submit/utils/errors.js +1 -1
  270. package/build/submit/utils/files.js +1 -1
  271. package/build/submit/utils/logs.js +5 -5
  272. package/build/submit/utils/summary.js +3 -3
  273. package/build/submit/utils/urls.js +2 -2
  274. package/build/submit/utils/wait.js +2 -2
  275. package/build/{build → update}/android/UpdatesModule.d.ts +0 -0
  276. package/build/{build → update}/android/UpdatesModule.js +4 -3
  277. package/build/{build → update}/ios/UpdatesModule.d.ts +0 -0
  278. package/build/{build → update}/ios/UpdatesModule.js +7 -8
  279. package/build/update/utils.d.ts +3 -0
  280. package/build/update/utils.js +20 -2
  281. package/build/uploads.d.ts +2 -10
  282. package/build/uploads.js +32 -12
  283. package/build/user/User.js +3 -5
  284. package/build/user/UserSettings.js +2 -2
  285. package/build/user/actions.js +5 -5
  286. package/build/user/otp.js +6 -8
  287. package/build/user/sessionStorage.js +1 -1
  288. package/build/utils/code-signing.d.ts +29 -0
  289. package/build/utils/code-signing.js +165 -0
  290. package/build/utils/expoCli.js +4 -4
  291. package/build/utils/files.js +3 -3
  292. package/build/utils/formatFields.js +1 -1
  293. package/build/utils/json.js +2 -2
  294. package/build/utils/paths.js +2 -2
  295. package/build/utils/plist.js +3 -3
  296. package/build/utils/profiles.js +2 -2
  297. package/build/utils/progress.d.ts +6 -3
  298. package/build/utils/progress.js +1 -1
  299. package/build/vcs/clients/git.js +3 -3
  300. package/build/vcs/clients/gitNoCommit.js +3 -3
  301. package/build/vcs/git.js +1 -1
  302. package/build/vcs/index.js +3 -3
  303. package/build/vcs/local.js +4 -4
  304. package/build/webhooks/formatWebhook.js +1 -1
  305. package/build/webhooks/input.js +2 -2
  306. package/oclif.manifest.json +1 -1
  307. package/package.json +33 -27
  308. package/build/ApiV2Error.d.ts +0 -16
  309. package/build/ApiV2Error.js +0 -14
  310. package/build/build/utils/updates.d.ts +0 -3
  311. package/build/build/utils/updates.js +0 -15
@@ -3,45 +3,169 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const config_1 = require("@expo/config");
5
5
  const eas_build_job_1 = require("@expo/eas-build-job");
6
- const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
6
+ const core_1 = require("@oclif/core");
7
+ const assert_1 = tslib_1.__importDefault(require("assert"));
8
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
7
9
  const api_1 = require("../../api");
8
- const EasCommand_1 = (0, tslib_1.__importDefault)(require("../../commandUtils/EasCommand"));
9
- const log_1 = (0, tslib_1.__importStar)(require("../../log"));
10
+ const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
11
+ const generated_1 = require("../../graphql/generated");
12
+ const log_1 = tslib_1.__importStar(require("../../log"));
13
+ const platform_1 = require("../../platform");
10
14
  const projectUtils_1 = require("../../project/projectUtils");
11
15
  const workflow_1 = require("../../project/workflow");
16
+ const UpdatesModule_1 = require("../../update/android/UpdatesModule");
17
+ const UpdatesModule_2 = require("../../update/ios/UpdatesModule");
12
18
  const DEFAULT_MANAGED_RUNTIME_VERSION = { policy: 'sdkVersion' };
13
19
  const DEFAULT_BARE_RUNTIME_VERSION = '1.0.0';
14
- async function configureProjectForEASUpdateAsync(projectDir, exp, isBare) {
15
- var _a, _b;
20
+ class UpdateConfigure extends EasCommand_1.default {
21
+ async runAsync() {
22
+ log_1.default.log('💡 The following process will configure your project to run EAS Update. These changes only apply to your local project files and you can safely revert them at any time.');
23
+ const { flags } = await this.parse(UpdateConfigure);
24
+ const platform = flags.platform;
25
+ const projectDir = await (0, projectUtils_1.findProjectRootAsync)();
26
+ const { exp } = (0, config_1.getConfig)(projectDir, {
27
+ skipSDKVersionRequirement: true,
28
+ });
29
+ if (!(0, projectUtils_1.isExpoUpdatesInstalledOrAvailable)(projectDir, exp.sdkVersion)) {
30
+ await (0, projectUtils_1.installExpoUpdatesAsync)(projectDir);
31
+ }
32
+ const [androidWorkflow, iosWorkflow] = await Promise.all([
33
+ (0, workflow_1.resolveWorkflowAsync)(projectDir, eas_build_job_1.Platform.ANDROID),
34
+ (0, workflow_1.resolveWorkflowAsync)(projectDir, eas_build_job_1.Platform.IOS),
35
+ ]);
36
+ const updatedExp = await configureAppJSONForEASUpdateAsync({
37
+ projectDir,
38
+ exp,
39
+ platform,
40
+ workflows: {
41
+ android: androidWorkflow,
42
+ ios: iosWorkflow,
43
+ },
44
+ });
45
+ log_1.default.withTick(`Configured ${chalk_1.default.bold('app.json')} for EAS Update`);
46
+ // configure native files for EAS Update
47
+ if ([platform_1.RequestedPlatform.Android, platform_1.RequestedPlatform.All].includes(platform) &&
48
+ androidWorkflow === eas_build_job_1.Workflow.GENERIC) {
49
+ await (0, UpdatesModule_1.syncUpdatesConfigurationAsync)(projectDir, updatedExp);
50
+ log_1.default.withTick(`Configured ${chalk_1.default.bold('AndroidManifest.xml')} for EAS Update`);
51
+ }
52
+ if ([platform_1.RequestedPlatform.Ios, platform_1.RequestedPlatform.All].includes(platform) &&
53
+ iosWorkflow === eas_build_job_1.Workflow.GENERIC) {
54
+ await (0, UpdatesModule_2.syncUpdatesConfigurationAsync)(projectDir, updatedExp);
55
+ log_1.default.withTick(`Configured ${chalk_1.default.bold('Expo.plist')} for EAS Update`);
56
+ }
57
+ log_1.default.addNewLineIfNone();
58
+ log_1.default.log(`🎉 Your app is configured to run EAS Update!`);
59
+ }
60
+ }
61
+ exports.default = UpdateConfigure;
62
+ UpdateConfigure.description = 'configure the project to support EAS Update';
63
+ UpdateConfigure.flags = {
64
+ platform: core_1.Flags.enum({
65
+ description: 'Platform to configure',
66
+ char: 'p',
67
+ options: ['android', 'ios', 'all'],
68
+ default: 'all',
69
+ }),
70
+ };
71
+ async function configureAppJSONForEASUpdateAsync({ projectDir, exp, platform, workflows, }) {
72
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
16
73
  const projectId = await (0, projectUtils_1.getProjectIdAsync)(exp);
17
74
  const easUpdateURL = (0, api_1.getEASUpdateURL)(projectId);
18
- const preexistingRuntimeVersion = exp.runtimeVersion;
19
- const defaultRuntimeVersion = isBare
75
+ const updates = { ...exp.updates, url: easUpdateURL };
76
+ const androidDefaultRuntimeVersion = workflows['android'] === eas_build_job_1.Workflow.GENERIC
77
+ ? DEFAULT_BARE_RUNTIME_VERSION
78
+ : DEFAULT_MANAGED_RUNTIME_VERSION;
79
+ const iosDefaultRuntimeVersion = workflows['ios'] === eas_build_job_1.Workflow.GENERIC
20
80
  ? DEFAULT_BARE_RUNTIME_VERSION
21
81
  : DEFAULT_MANAGED_RUNTIME_VERSION;
22
- const result = await (0, config_1.modifyConfigAsync)(projectDir, {
23
- runtimeVersion: preexistingRuntimeVersion !== null && preexistingRuntimeVersion !== void 0 ? preexistingRuntimeVersion : defaultRuntimeVersion,
24
- updates: { ...exp.updates, url: easUpdateURL },
25
- });
82
+ const newAndroidRuntimeVersion = (_c = (_b = (_a = exp.android) === null || _a === void 0 ? void 0 : _a.runtimeVersion) !== null && _b !== void 0 ? _b : exp.runtimeVersion) !== null && _c !== void 0 ? _c : androidDefaultRuntimeVersion;
83
+ const newIosRuntimeVersion = (_f = (_e = (_d = exp.ios) === null || _d === void 0 ? void 0 : _d.runtimeVersion) !== null && _e !== void 0 ? _e : exp.runtimeVersion) !== null && _f !== void 0 ? _f : iosDefaultRuntimeVersion;
84
+ let newConfig;
85
+ switch (platform) {
86
+ case platform_1.RequestedPlatform.All: {
87
+ if (isRuntimeEqual(newAndroidRuntimeVersion, newIosRuntimeVersion)) {
88
+ newConfig = {
89
+ runtimeVersion: newAndroidRuntimeVersion,
90
+ android: {
91
+ ...exp.android,
92
+ runtimeVersion: undefined,
93
+ },
94
+ ios: { ...exp.ios, runtimeVersion: undefined },
95
+ updates,
96
+ };
97
+ }
98
+ else {
99
+ newConfig = {
100
+ runtimeVersion: undefined,
101
+ android: {
102
+ ...exp.android,
103
+ runtimeVersion: newAndroidRuntimeVersion,
104
+ },
105
+ ios: {
106
+ ...exp.ios,
107
+ runtimeVersion: newIosRuntimeVersion,
108
+ },
109
+ updates,
110
+ };
111
+ }
112
+ break;
113
+ }
114
+ case platform_1.RequestedPlatform.Android: {
115
+ newConfig = {
116
+ android: {
117
+ ...exp.android,
118
+ runtimeVersion: newAndroidRuntimeVersion,
119
+ },
120
+ updates,
121
+ };
122
+ break;
123
+ }
124
+ case platform_1.RequestedPlatform.Ios: {
125
+ newConfig = {
126
+ ios: {
127
+ ...exp.ios,
128
+ runtimeVersion: newIosRuntimeVersion,
129
+ },
130
+ updates,
131
+ };
132
+ break;
133
+ }
134
+ default: {
135
+ throw new Error(`Unsupported platform: ${platform}`);
136
+ }
137
+ }
138
+ const result = await (0, config_1.modifyConfigAsync)(projectDir, newConfig);
139
+ const prexistingAndroidRuntimeVersion = (_h = (_g = exp.android) === null || _g === void 0 ? void 0 : _g.runtimeVersion) !== null && _h !== void 0 ? _h : exp.runtimeVersion;
140
+ const prexistingIosRuntimeVersion = (_k = (_j = exp.ios) === null || _j === void 0 ? void 0 : _j.runtimeVersion) !== null && _k !== void 0 ? _k : exp.runtimeVersion;
26
141
  switch (result.type) {
27
142
  case 'success':
28
- if ((_a = exp.updates) === null || _a === void 0 ? void 0 : _a.url) {
143
+ if ((_l = exp.updates) === null || _l === void 0 ? void 0 : _l.url) {
29
144
  if (exp.updates.url !== easUpdateURL) {
30
- log_1.default.withTick(`Overwrote "${(_b = exp.updates) === null || _b === void 0 ? void 0 : _b.url}" with "${easUpdateURL}" for the updates.url value in app.json`);
145
+ log_1.default.withTick(`Overwrote "${(_m = exp.updates) === null || _m === void 0 ? void 0 : _m.url}" with "${easUpdateURL}" for the updates.url value in app.json`);
31
146
  }
32
147
  }
33
148
  else {
34
149
  log_1.default.withTick(`Set updates.url value, to "${easUpdateURL}" in app.json`);
35
150
  }
36
- if (!preexistingRuntimeVersion) {
37
- log_1.default.withTick(`Set runtimeVersion to "${JSON.stringify(defaultRuntimeVersion)}" in app.json`);
151
+ if (!prexistingAndroidRuntimeVersion &&
152
+ [platform_1.RequestedPlatform.Android, platform_1.RequestedPlatform.All].includes(platform)) {
153
+ log_1.default.withTick(`Set ${platform_1.appPlatformDisplayNames[generated_1.AppPlatform.Android]} runtimeVersion to "${JSON.stringify((_p = (_o = newConfig.android) === null || _o === void 0 ? void 0 : _o.runtimeVersion) !== null && _p !== void 0 ? _p : newConfig.runtimeVersion)}" in app.json`);
154
+ }
155
+ if (!prexistingIosRuntimeVersion &&
156
+ [platform_1.RequestedPlatform.Ios, platform_1.RequestedPlatform.All].includes(platform)) {
157
+ log_1.default.withTick(`Set ${platform_1.appPlatformDisplayNames[generated_1.AppPlatform.Ios]} runtimeVersion to "${JSON.stringify((_r = (_q = newConfig.ios) === null || _q === void 0 ? void 0 : _q.runtimeVersion) !== null && _r !== void 0 ? _r : newConfig.runtimeVersion)}" in app.json`);
38
158
  }
39
159
  break;
40
160
  case 'warn': {
41
161
  log_1.default.addNewLineIfNone();
42
162
  log_1.default.warn(`It looks like you are using a dynamic configuration! ${(0, log_1.learnMore)('https://docs.expo.dev/workflow/configuration/#dynamic-configuration-with-appconfigjs)')}`);
43
163
  log_1.default.warn(`In order to finish configuring your project for EAS Update, you are going to need manually add the following to your app.config.js:\n${(0, log_1.learnMore)('https://expo.fyi/eas-update-config.md')}\n`);
44
- log_1.default.log(chalk_1.default.bold(`{\n "updates": {\n "url": "${easUpdateURL}"\n },\n "runtimeVersion": {\n "policy": "sdkVersion"\n }\n}`));
164
+ log_1.default.log(chalk_1.default.bold(JSON.stringify(newConfig, null, 2)));
165
+ log_1.default.addNewLineIfNone();
166
+ if (workflows['android'] === eas_build_job_1.Workflow.GENERIC || workflows['ios'] === eas_build_job_1.Workflow.GENERIC) {
167
+ log_1.default.warn(`You will also have to manually edit the projects ${chalk_1.default.bold('Expo.plist/AndroidManifest.xml')}. ${(0, log_1.learnMore)('https://expo.fyi/eas-update-config.md#native-configuration')}`);
168
+ }
45
169
  log_1.default.addNewLineIfNone();
46
170
  throw new Error(result.message);
47
171
  }
@@ -50,26 +174,17 @@ async function configureProjectForEASUpdateAsync(projectDir, exp, isBare) {
50
174
  default:
51
175
  throw new Error('Unexpected result type from modifyConfigAsync');
52
176
  }
177
+ (0, assert_1.default)(result.config, 'A successful result should have a config');
178
+ return result.config.expo;
53
179
  }
54
- class UpdateConfigure extends EasCommand_1.default {
55
- async runAsync() {
56
- log_1.default.log('💡 The following process will configure your project to run EAS Update. These changes only apply to your local project files and you can safely revert them at any time.');
57
- const projectDir = await (0, projectUtils_1.findProjectRootAsync)();
58
- const { exp } = (0, config_1.getConfig)(projectDir, {
59
- skipSDKVersionRequirement: true,
60
- });
61
- const hasAndroidNativeProject = (await (0, workflow_1.resolveWorkflowAsync)(projectDir, eas_build_job_1.Platform.ANDROID)) === eas_build_job_1.Workflow.GENERIC;
62
- const hasIosNativeProject = (await (0, workflow_1.resolveWorkflowAsync)(projectDir, eas_build_job_1.Platform.IOS)) === eas_build_job_1.Workflow.GENERIC;
63
- const isBare = hasAndroidNativeProject || hasIosNativeProject;
64
- await configureProjectForEASUpdateAsync(projectDir, exp, isBare);
65
- log_1.default.addNewLineIfNone();
66
- if (isBare) {
67
- log_1.default.log(`🧐 It seems you are on the bare workflow! Please also update your native files. You can do this by either running ${chalk_1.default.bold('eas build:configure')} or manually editing Expo.plist/AndroidManifest.xml. ${(0, log_1.learnMore)('https://expo.fyi/eas-update-config.md#native-configuration')}`);
68
- }
69
- else {
70
- log_1.default.log(`🎉 Your app is configured to run EAS Update!`);
71
- }
180
+ function isRuntimeEqual(runtimeVersionA, runtimeVersionB) {
181
+ if (typeof runtimeVersionA === 'string' && typeof runtimeVersionB === 'string') {
182
+ return runtimeVersionA === runtimeVersionB;
183
+ }
184
+ else if (typeof runtimeVersionA === 'object' && typeof runtimeVersionB === 'object') {
185
+ return runtimeVersionA.policy === runtimeVersionB.policy;
186
+ }
187
+ else {
188
+ return false;
72
189
  }
73
190
  }
74
- exports.default = UpdateConfigure;
75
- UpdateConfigure.description = 'configure the project to support EAS Update';
@@ -2,11 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const core_1 = require("@oclif/core");
5
- const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
6
- const graphql_tag_1 = (0, tslib_1.__importDefault)(require("graphql-tag"));
7
- const EasCommand_1 = (0, tslib_1.__importDefault)(require("../../commandUtils/EasCommand"));
5
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
+ const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
7
+ const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
8
8
  const client_1 = require("../../graphql/client");
9
- const log_1 = (0, tslib_1.__importDefault)(require("../../log"));
9
+ const log_1 = tslib_1.__importDefault(require("../../log"));
10
10
  const prompts_1 = require("../../prompts");
11
11
  const json_1 = require("../../utils/json");
12
12
  async function deleteUpdateGroupAsync({ group, }) {
@@ -32,8 +32,8 @@ class UpdateDelete extends EasCommand_1.default {
32
32
  const shouldAbort = await (0, prompts_1.confirmAsync)({
33
33
  message: `🚨${chalk_1.default.red('CAUTION')}🚨\n\n` +
34
34
  `${chalk_1.default.yellow(`This will delete all of the updates in group "${group}".`)} ${chalk_1.default.red('This is a permanent operation.')}\n\n` +
35
- `If you want to revert to a previous publish, you should use 'branch:publish --republish' targeted at the last working update group instead.\n\n` +
36
- `An update group should only be deleted in an emergency like an accidental publish of a secret. In this case user 'branch:publish --republish' to revert to the last working update group first and then proceed with the deletion. Deleting an update group when it is the latest publish can lead to inconsistent cacheing behavior by clients.\n\n` +
35
+ `If you want to revert to a previous publish, you should use 'update --republish' targeted at the last working update group instead.\n\n` +
36
+ `An update group should only be deleted in an emergency like an accidental publish of a secret. In this case user 'update --republish' to revert to the last working update group first and then proceed with the deletion. Deleting an update group when it is the latest publish can lead to inconsistent cacheing behavior by clients.\n\n` +
37
37
  `Would you like to abort?`,
38
38
  });
39
39
  if (shouldAbort) {
@@ -13,6 +13,7 @@ export default class UpdatePublish extends EasCommand {
13
13
  platform: import("@oclif/core/lib/interfaces").OptionFlag<string>;
14
14
  json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
15
15
  auto: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
16
+ 'private-key-path': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
16
17
  };
17
18
  runAsync(): Promise<void>;
18
19
  }
@@ -6,24 +6,27 @@ const config_1 = require("@expo/config");
6
6
  const config_plugins_1 = require("@expo/config-plugins");
7
7
  const eas_build_job_1 = require("@expo/eas-build-job");
8
8
  const core_1 = require("@oclif/core");
9
- const assert_1 = (0, tslib_1.__importDefault)(require("assert"));
10
- const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
11
- const dateformat_1 = (0, tslib_1.__importDefault)(require("dateformat"));
12
- const graphql_tag_1 = (0, tslib_1.__importDefault)(require("graphql-tag"));
9
+ const assert_1 = tslib_1.__importDefault(require("assert"));
10
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
11
+ const dateformat_1 = tslib_1.__importDefault(require("dateformat"));
12
+ const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
13
+ const nullthrows_1 = tslib_1.__importDefault(require("nullthrows"));
13
14
  const api_1 = require("../../api");
14
- const EasCommand_1 = (0, tslib_1.__importDefault)(require("../../commandUtils/EasCommand"));
15
+ const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
16
+ const fetch_1 = tslib_1.__importDefault(require("../../fetch"));
15
17
  const client_1 = require("../../graphql/client");
16
18
  const PublishMutation_1 = require("../../graphql/mutations/PublishMutation");
17
19
  const UpdateQuery_1 = require("../../graphql/queries/UpdateQuery");
18
- const log_1 = (0, tslib_1.__importDefault)(require("../../log"));
20
+ const log_1 = tslib_1.__importDefault(require("../../log"));
19
21
  const ora_1 = require("../../ora");
20
22
  const projectUtils_1 = require("../../project/projectUtils");
21
23
  const publish_1 = require("../../project/publish");
22
24
  const workflow_1 = require("../../project/workflow");
23
25
  const prompts_1 = require("../../prompts");
24
26
  const utils_1 = require("../../update/utils");
25
- const uniqBy_1 = (0, tslib_1.__importDefault)(require("../../utils/expodash/uniqBy"));
26
- const formatFields_1 = (0, tslib_1.__importDefault)(require("../../utils/formatFields"));
27
+ const code_signing_1 = require("../../utils/code-signing");
28
+ const uniqBy_1 = tslib_1.__importDefault(require("../../utils/expodash/uniqBy"));
29
+ const formatFields_1 = tslib_1.__importDefault(require("../../utils/formatFields"));
27
30
  const json_1 = require("../../utils/json");
28
31
  const vcs_1 = require("../../vcs");
29
32
  const create_1 = require("../branch/create");
@@ -86,7 +89,7 @@ async function ensureBranchExistsAsync({ appId, name: branchName, }) {
86
89
  class UpdatePublish extends EasCommand_1.default {
87
90
  async runAsync() {
88
91
  var _a, _b, _c;
89
- let { flags: { branch: branchName, json: jsonFlag, auto: autoFlag, message, republish, group, 'input-dir': inputDir, 'skip-bundler': skipBundler, platform, }, } = await this.parse(UpdatePublish);
92
+ let { flags: { branch: branchName, json: jsonFlag, auto: autoFlag, message, republish, group, 'input-dir': inputDir, 'skip-bundler': skipBundler, platform, 'private-key-path': privateKeyPath, }, } = await this.parse(UpdatePublish);
90
93
  if (jsonFlag) {
91
94
  (0, json_1.enableJsonOutput)();
92
95
  }
@@ -98,6 +101,21 @@ class UpdatePublish extends EasCommand_1.default {
98
101
  skipSDKVersionRequirement: true,
99
102
  isPublicConfig: true,
100
103
  });
104
+ const codeSigningInfo = await (0, code_signing_1.getCodeSigningInfoAsync)(exp, privateKeyPath);
105
+ if (!(0, projectUtils_1.isExpoUpdatesInstalledOrAvailable)(projectDir, exp.sdkVersion)) {
106
+ const install = await (0, prompts_1.confirmAsync)({
107
+ message: `You are creating an update which requires ${chalk_1.default.bold('expo-updates')} to be installed in your app.\n Do you want EAS CLI to install it for you?`,
108
+ instructions: 'The command will abort unless you agree.',
109
+ });
110
+ if (install) {
111
+ await (0, projectUtils_1.installExpoUpdatesAsync)(projectDir);
112
+ }
113
+ else {
114
+ core_1.Errors.error(`Install ${chalk_1.default.bold('expo-updates')} manually and come back later.`, {
115
+ exit: 1,
116
+ });
117
+ }
118
+ }
101
119
  const runtimeVersions = await getRuntimeVersionObjectAsync(exp, platformFlag, projectDir);
102
120
  const projectId = await (0, projectUtils_1.getProjectIdAsync)(exp);
103
121
  await checkEASUpdateURLIsSetAsync(exp);
@@ -262,19 +280,47 @@ class UpdatePublish extends EasCommand_1.default {
262
280
  unsortedUpdateInfoGroups[platform],
263
281
  ]));
264
282
  if (republish && !oldRuntimeVersion) {
265
- throw new Error('Can not find the runtime version of the update group that is being republished.');
283
+ throw new Error('Cannot find the runtime version of the update group that is being republished.');
266
284
  }
267
285
  return {
268
286
  branchId,
269
287
  updateInfoGroup: localUpdateInfoGroup,
270
288
  runtimeVersion: republish ? oldRuntimeVersion : runtime,
271
289
  message,
290
+ awaitingCodeSigningInfo: !!codeSigningInfo,
272
291
  };
273
292
  });
274
293
  let newUpdates;
275
294
  const publishSpinner = (0, ora_1.ora)('Publishing...').start();
276
295
  try {
277
296
  newUpdates = await PublishMutation_1.PublishMutation.publishUpdateGroupAsync(updateGroups);
297
+ if (codeSigningInfo) {
298
+ log_1.default.log('🔒 Signing updates');
299
+ const updatesTemp = [...newUpdates];
300
+ const updateGroupsAndTheirUpdates = updateGroups.map(updateGroup => {
301
+ const newUpdates = updatesTemp.splice(0, Object.keys(updateGroup.updateInfoGroup).length);
302
+ return {
303
+ updateGroup,
304
+ newUpdates,
305
+ };
306
+ });
307
+ await Promise.all(updateGroupsAndTheirUpdates.map(async ({ updateGroup, newUpdates }) => {
308
+ await Promise.all(newUpdates.map(async (newUpdate) => {
309
+ const response = await (0, fetch_1.default)(newUpdate.manifestPermalink, {
310
+ method: 'GET',
311
+ headers: { accept: 'multipart/mixed' },
312
+ });
313
+ const manifestBody = (0, nullthrows_1.default)(await (0, code_signing_1.getManifestBodyAsync)(response));
314
+ (0, code_signing_1.checkManifestBodyAgainstUpdateInfoGroup)(manifestBody, (0, nullthrows_1.default)(updateGroup.updateInfoGroup[newUpdate.platform]));
315
+ const manifestSignature = (0, code_signing_1.signManifestBody)(manifestBody, codeSigningInfo);
316
+ await PublishMutation_1.PublishMutation.setCodeSigningInfoAsync(newUpdate.id, {
317
+ alg: codeSigningInfo.codeSigningMetadata.alg,
318
+ keyid: codeSigningInfo.codeSigningMetadata.keyid,
319
+ sig: manifestSignature,
320
+ });
321
+ }));
322
+ }));
323
+ }
278
324
  publishSpinner.succeed('Published!');
279
325
  }
280
326
  catch (e) {
@@ -352,6 +398,10 @@ UpdatePublish.flags = {
352
398
  description: 'Use the current git branch and commit message for the EAS branch and update message',
353
399
  default: false,
354
400
  }),
401
+ 'private-key-path': core_1.Flags.string({
402
+ description: `File containing the PEM-encoded private key corresponding to the certificate in expo-updates' configuration. Defaults to a file named "private-key.pem" in the certificate's directory.`,
403
+ required: false,
404
+ }),
355
405
  };
356
406
  async function getRuntimeVersionObjectAsync(exp, platformFlag, projectDir) {
357
407
  var _a, _b;
@@ -361,11 +411,14 @@ async function getRuntimeVersionObjectAsync(exp, platformFlag, projectDir) {
361
411
  if (isPolicy) {
362
412
  const isManaged = (await (0, workflow_1.resolveWorkflowAsync)(projectDir, platform)) === eas_build_job_1.Workflow.MANAGED;
363
413
  if (!isManaged) {
364
- throw new Error('Runtime version policies are only supported in the managed workflow.');
414
+ throw new Error('Runtime version policies are only supported in the managed workflow. In the bare workflow, runtime version needs to be set manually.');
365
415
  }
366
416
  }
367
417
  }
368
- return Object.fromEntries(platforms.map(platform => [platform, config_plugins_1.Updates.getRuntimeVersion(exp, platform)]));
418
+ return Object.fromEntries(platforms.map(platform => [
419
+ platform,
420
+ (0, nullthrows_1.default)(config_plugins_1.Updates.getRuntimeVersion(exp, platform), `Unable to determine runtime version for ${platform}`),
421
+ ]));
369
422
  }
370
423
  function formatUpdateTitle(update) {
371
424
  const { message, createdAt, actor, runtimeVersion } = update;
@@ -3,16 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const config_1 = require("@expo/config");
5
5
  const core_1 = require("@oclif/core");
6
- const assert_1 = (0, tslib_1.__importDefault)(require("assert"));
7
- const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
8
- const cli_table3_1 = (0, tslib_1.__importDefault)(require("cli-table3"));
9
- const EasCommand_1 = (0, tslib_1.__importDefault)(require("../../commandUtils/EasCommand"));
6
+ const assert_1 = tslib_1.__importDefault(require("assert"));
7
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
+ const cli_table3_1 = tslib_1.__importDefault(require("cli-table3"));
9
+ const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
10
10
  const UpdateQuery_1 = require("../../graphql/queries/UpdateQuery");
11
- const log_1 = (0, tslib_1.__importDefault)(require("../../log"));
11
+ const log_1 = tslib_1.__importDefault(require("../../log"));
12
12
  const projectUtils_1 = require("../../project/projectUtils");
13
13
  const prompts_1 = require("../../prompts");
14
14
  const utils_1 = require("../../update/utils");
15
- const groupBy_1 = (0, tslib_1.__importDefault)(require("../../utils/expodash/groupBy"));
15
+ const groupBy_1 = tslib_1.__importDefault(require("../../utils/expodash/groupBy"));
16
16
  const json_1 = require("../../utils/json");
17
17
  const vcs_1 = require("../../vcs");
18
18
  class BranchView extends EasCommand_1.default {
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.viewUpdateAsync = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const core_1 = require("@oclif/core");
6
- const cli_table3_1 = (0, tslib_1.__importDefault)(require("cli-table3"));
7
- const graphql_tag_1 = (0, tslib_1.__importDefault)(require("graphql-tag"));
8
- const EasCommand_1 = (0, tslib_1.__importDefault)(require("../../commandUtils/EasCommand"));
6
+ const cli_table3_1 = tslib_1.__importDefault(require("cli-table3"));
7
+ const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
8
+ const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
9
9
  const client_1 = require("../../graphql/client");
10
- const log_1 = (0, tslib_1.__importDefault)(require("../../log"));
10
+ const log_1 = tslib_1.__importDefault(require("../../log"));
11
11
  const utils_1 = require("../../update/utils");
12
12
  const json_1 = require("../../utils/json");
13
13
  async function viewUpdateAsync({ groupId, }) {
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const config_1 = require("@expo/config");
5
5
  const core_1 = require("@oclif/core");
6
- const EasCommand_1 = (0, tslib_1.__importDefault)(require("../../commandUtils/EasCommand"));
6
+ const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
7
7
  const generated_1 = require("../../graphql/generated");
8
8
  const WebhookMutation_1 = require("../../graphql/mutations/WebhookMutation");
9
9
  const ora_1 = require("../../ora");
@@ -2,13 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const config_1 = require("@expo/config");
5
- const assert_1 = (0, tslib_1.__importDefault)(require("assert"));
6
- const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
7
- const nullthrows_1 = (0, tslib_1.__importDefault)(require("nullthrows"));
8
- const EasCommand_1 = (0, tslib_1.__importDefault)(require("../../commandUtils/EasCommand"));
5
+ const assert_1 = tslib_1.__importDefault(require("assert"));
6
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
7
+ const nullthrows_1 = tslib_1.__importDefault(require("nullthrows"));
8
+ const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
9
9
  const WebhookMutation_1 = require("../../graphql/mutations/WebhookMutation");
10
10
  const WebhookQuery_1 = require("../../graphql/queries/WebhookQuery");
11
- const log_1 = (0, tslib_1.__importDefault)(require("../../log"));
11
+ const log_1 = tslib_1.__importDefault(require("../../log"));
12
12
  const ora_1 = require("../../ora");
13
13
  const projectUtils_1 = require("../../project/projectUtils");
14
14
  const prompts_1 = require("../../prompts");
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const config_1 = require("@expo/config");
5
5
  const core_1 = require("@oclif/core");
6
- const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
7
- const EasCommand_1 = (0, tslib_1.__importDefault)(require("../../commandUtils/EasCommand"));
6
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
7
+ const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
8
8
  const generated_1 = require("../../graphql/generated");
9
9
  const WebhookQuery_1 = require("../../graphql/queries/WebhookQuery");
10
- const log_1 = (0, tslib_1.__importDefault)(require("../../log"));
10
+ const log_1 = tslib_1.__importDefault(require("../../log"));
11
11
  const ora_1 = require("../../ora");
12
12
  const projectUtils_1 = require("../../project/projectUtils");
13
13
  const formatWebhook_1 = require("../../webhooks/formatWebhook");
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const core_1 = require("@oclif/core");
5
- const EasCommand_1 = (0, tslib_1.__importDefault)(require("../../commandUtils/EasCommand"));
5
+ const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
6
6
  const generated_1 = require("../../graphql/generated");
7
7
  const WebhookMutation_1 = require("../../graphql/mutations/WebhookMutation");
8
8
  const WebhookQuery_1 = require("../../graphql/queries/WebhookQuery");
9
9
  const ora_1 = require("../../ora");
10
- const pick_1 = (0, tslib_1.__importDefault)(require("../../utils/expodash/pick"));
10
+ const pick_1 = tslib_1.__importDefault(require("../../utils/expodash/pick"));
11
11
  const input_1 = require("../../webhooks/input");
12
12
  class WebhookUpdate extends EasCommand_1.default {
13
13
  async runAsync() {
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const EasCommand_1 = (0, tslib_1.__importDefault)(require("../../commandUtils/EasCommand"));
4
+ const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
5
5
  const WebhookQuery_1 = require("../../graphql/queries/WebhookQuery");
6
- const log_1 = (0, tslib_1.__importDefault)(require("../../log"));
6
+ const log_1 = tslib_1.__importDefault(require("../../log"));
7
7
  const ora_1 = require("../../ora");
8
8
  const formatWebhook_1 = require("../../webhooks/formatWebhook");
9
9
  class WebhookView extends EasCommand_1.default {
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const eas_build_job_1 = require("@expo/eas-build-job");
5
5
  const eas_json_1 = require("@expo/eas-json");
6
- const nullthrows_1 = (0, tslib_1.__importDefault)(require("nullthrows"));
7
- const credentialsJsonReader = (0, tslib_1.__importStar)(require("../credentialsJson/read"));
6
+ const nullthrows_1 = tslib_1.__importDefault(require("nullthrows"));
7
+ const credentialsJsonReader = tslib_1.__importStar(require("../credentialsJson/read"));
8
8
  const SetUpBuildCredentials_1 = require("./actions/SetUpBuildCredentials");
9
9
  class AndroidCredentialsProvider {
10
10
  constructor(ctx, options) {
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AssignFcm = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const log_1 = (0, tslib_1.__importDefault)(require("../../../log"));
5
+ const log_1 = tslib_1.__importDefault(require("../../../log"));
6
6
  class AssignFcm {
7
7
  constructor(app) {
8
8
  this.app = app;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AssignGoogleServiceAccountKey = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const log_1 = (0, tslib_1.__importDefault)(require("../../../log"));
5
+ const log_1 = tslib_1.__importDefault(require("../../../log"));
6
6
  class AssignGoogleServiceAccountKey {
7
7
  constructor(app) {
8
8
  this.app = app;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.sortBuildCredentials = exports.promptForNameAsync = exports.createOrUpdateDefaultAndroidAppBuildCredentialsAsync = exports.getAppLookupParamsFromContextAsync = exports.promptUserAndCopyLegacyCredentialsAsync = exports.canCopyLegacyCredentialsAsync = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const assert_1 = (0, tslib_1.__importDefault)(require("assert"));
5
+ const assert_1 = tslib_1.__importDefault(require("assert"));
6
6
  const nanoid_1 = require("nanoid");
7
7
  const ora_1 = require("../../../ora");
8
8
  const applicationId_1 = require("../../../project/android/applicationId");
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CreateFcm = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const generated_1 = require("../../../graphql/generated");
6
- const log_1 = (0, tslib_1.__importDefault)(require("../../../log"));
6
+ const log_1 = tslib_1.__importDefault(require("../../../log"));
7
7
  const prompts_1 = require("../../../prompts");
8
8
  class CreateFcm {
9
9
  constructor(account) {
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CreateGoogleServiceAccountKey = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const log_1 = (0, tslib_1.__importDefault)(require("../../../log"));
5
+ const log_1 = tslib_1.__importDefault(require("../../../log"));
6
6
  const prompts_1 = require("../../../prompts");
7
7
  const googleServiceAccountKey_1 = require("../utils/googleServiceAccountKey");
8
8
  class CreateGoogleServiceAccountKey {
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CreateKeystore = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const log_1 = (0, tslib_1.__importDefault)(require("../../../log"));
5
+ const log_1 = tslib_1.__importDefault(require("../../../log"));
6
6
  const projectUtils_1 = require("../../../project/projectUtils");
7
7
  const promptForCredentials_1 = require("../../utils/promptForCredentials");
8
8
  const credentials_1 = require("../credentials");
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BackupKeystore = exports.DownloadKeystore = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
6
- const fs_extra_1 = (0, tslib_1.__importDefault)(require("fs-extra"));
7
- const log_1 = (0, tslib_1.__importDefault)(require("../../../log"));
5
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
+ const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
7
+ const log_1 = tslib_1.__importDefault(require("../../../log"));
8
8
  const prompts_1 = require("../../../prompts");
9
9
  const files_1 = require("../../../utils/files");
10
10
  const GraphqlClient_1 = require("../api/GraphqlClient");
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RemoveFcm = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const log_1 = (0, tslib_1.__importDefault)(require("../../../log"));
5
+ const log_1 = tslib_1.__importDefault(require("../../../log"));
6
6
  const prompts_1 = require("../../../prompts");
7
7
  const GraphqlClient_1 = require("../api/GraphqlClient");
8
8
  class RemoveFcm {