eas-cli 8.0.0 → 9.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 (78) hide show
  1. package/README.md +62 -60
  2. package/build/build/android/build.js +1 -0
  3. package/build/build/android/graphql.js +0 -1
  4. package/build/build/android/prepareJob.js +0 -2
  5. package/build/build/android/syncProjectConfiguration.d.ts +3 -1
  6. package/build/build/android/syncProjectConfiguration.js +2 -2
  7. package/build/build/createContext.d.ts +2 -1
  8. package/build/build/createContext.js +2 -1
  9. package/build/build/ios/build.js +1 -0
  10. package/build/build/ios/graphql.js +0 -1
  11. package/build/build/ios/prepareJob.js +0 -2
  12. package/build/build/ios/syncProjectConfiguration.d.ts +3 -1
  13. package/build/build/ios/syncProjectConfiguration.js +2 -2
  14. package/build/build/local.js +1 -1
  15. package/build/build/metadata.js +11 -25
  16. package/build/build/runBuildAndSubmit.d.ts +1 -0
  17. package/build/build/runBuildAndSubmit.js +4 -3
  18. package/build/build/utils/formatBuild.js +0 -4
  19. package/build/commandUtils/context/contextUtils/getProjectIdAsync.d.ts +11 -0
  20. package/build/commandUtils/context/contextUtils/getProjectIdAsync.js +8 -3
  21. package/build/commands/build/configure.js +8 -2
  22. package/build/commands/build/index.d.ts +1 -0
  23. package/build/commands/build/index.js +5 -0
  24. package/build/commands/build/inspect.js +1 -0
  25. package/build/commands/build/internal.js +1 -0
  26. package/build/commands/credentials/configure-build.js +1 -1
  27. package/build/commands/project/onboarding.d.ts +15 -0
  28. package/build/commands/project/onboarding.js +154 -0
  29. package/build/commands/update/configure.js +1 -0
  30. package/build/commands/update/index.js +2 -0
  31. package/build/commands/update/roll-back-to-embedded.js +2 -0
  32. package/build/credentials/context.d.ts +2 -0
  33. package/build/credentials/context.js +3 -1
  34. package/build/credentials/errors.d.ts +6 -0
  35. package/build/credentials/errors.js +14 -1
  36. package/build/credentials/ios/actions/ConfigureProvisioningProfile.js +9 -4
  37. package/build/credentials/ios/actions/CreateProvisioningProfile.d.ts +1 -0
  38. package/build/credentials/ios/actions/CreateProvisioningProfile.js +22 -5
  39. package/build/credentials/ios/actions/SetUpProvisioningProfile.js +17 -5
  40. package/build/credentials/manager/SetUpBuildCredentialsCommandAction.d.ts +2 -1
  41. package/build/credentials/manager/SetUpBuildCredentialsCommandAction.js +4 -3
  42. package/build/credentials/manager/SetUpIosBuildCredentials.js +1 -1
  43. package/build/graphql/generated.d.ts +648 -184
  44. package/build/graphql/generated.js +63 -17
  45. package/build/graphql/mutations/UserPreferencesMutation.d.ts +9 -0
  46. package/build/graphql/mutations/UserPreferencesMutation.js +44 -0
  47. package/build/graphql/queries/UserQuery.js +10 -0
  48. package/build/graphql/types/App.js +7 -0
  49. package/build/graphql/types/Build.js +0 -1
  50. package/build/onboarding/git.d.ts +10 -0
  51. package/build/onboarding/git.js +57 -0
  52. package/build/onboarding/installDependencies.d.ts +3 -0
  53. package/build/onboarding/installDependencies.js +20 -0
  54. package/build/onboarding/runCommand.d.ts +7 -0
  55. package/build/onboarding/runCommand.js +41 -0
  56. package/build/project/projectUtils.d.ts +0 -1
  57. package/build/project/projectUtils.js +1 -12
  58. package/build/project/publish.d.ts +3 -2
  59. package/build/project/publish.js +4 -10
  60. package/build/project/resolveRuntimeVersionAsync.d.ts +3 -2
  61. package/build/project/resolveRuntimeVersionAsync.js +2 -9
  62. package/build/rollout/actions/CreateRollout.js +1 -0
  63. package/build/update/android/UpdatesModule.d.ts +7 -3
  64. package/build/update/android/UpdatesModule.js +3 -19
  65. package/build/update/configure.d.ts +3 -2
  66. package/build/update/configure.js +17 -5
  67. package/build/update/ios/UpdatesModule.d.ts +8 -3
  68. package/build/update/ios/UpdatesModule.js +3 -20
  69. package/build/update/utils.d.ts +0 -2
  70. package/build/update/utils.js +2 -22
  71. package/build/utils/expoUpdatesCli.d.ts +4 -1
  72. package/build/utils/expoUpdatesCli.js +5 -2
  73. package/build/vcs/clients/git.d.ts +2 -0
  74. package/build/vcs/clients/git.js +52 -27
  75. package/build/vcs/git.d.ts +6 -4
  76. package/build/vcs/git.js +13 -6
  77. package/oclif.manifest.json +30 -1
  78. package/package.json +5 -5
@@ -6,8 +6,8 @@
6
6
  * For more info and docs, visit https://graphql-code-generator.com/
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.NotificationEvent = exports.MailchimpTag = exports.MailchimpAudience = exports.IosSchemeBuildConfiguration = exports.IosManagedBuildType = exports.IosDistributionType = exports.IosBuildType = exports.InvoiceDiscountType = exports.GitHubBuildTriggerType = exports.GitHubBuildTriggerRunStatus = exports.GitHubAppInstallationStatus = exports.GitHubAppEnvironment = exports.Feature = exports.Experiment = exports.EnvironmentSecretType = exports.EasTotalPlanEnablementUnit = exports.EasServiceMetric = exports.EasService = exports.EasBuildDeprecationInfoType = exports.EasBuildBillingResourceClass = exports.DistributionType = exports.BuildWorkflow = exports.BuildTrigger = exports.BuildStatus = exports.BuildRetryDisabledReason = exports.BuildResourceClass = exports.BuildPriority = exports.BuildPhase = exports.BuildMode = exports.BuildLimitThresholdExceededMetadataType = exports.BuildJobStatus = exports.BuildJobLogsFormat = exports.BuildIosEnterpriseProvisioning = exports.BuildCredentialsSource = exports.BackgroundJobState = exports.BackgroundJobResultType = exports.AuthProtocolType = exports.AssetMetadataStatus = exports.AppsFilter = exports.AppleDeviceClass = exports.AppStoreConnectUserRole = exports.AppSort = exports.AppPrivacy = exports.AppPlatform = exports.AppInternalDistributionBuildPrivacy = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.AndroidBuildType = exports.ActivityTimelineProjectActivityType = exports.AccountAppsSortByField = void 0;
10
- exports.WorkerLoggerLevel = exports.WebhookType = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.TargetEntityMutationType = exports.SubmissionStatus = exports.SubmissionArchiveSourceType = exports.SubmissionAndroidTrack = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StatuspageServiceStatus = exports.StatuspageServiceName = exports.StatuspageIncidentStatus = exports.StatuspageIncidentImpact = exports.StandardOffer = exports.SecondFactorMethod = exports.Role = exports.ProjectArchiveSourceType = exports.Permission = exports.Order = exports.OfferType = exports.NotificationType = void 0;
9
+ exports.IosManagedBuildType = exports.IosDistributionType = exports.IosBuildType = exports.InvoiceDiscountType = exports.GitHubJobRunTriggerType = exports.GitHubJobRunTriggerRunStatus = exports.GitHubJobRunJobType = exports.GitHubBuildTriggerType = exports.GitHubBuildTriggerRunStatus = exports.GitHubAppInstallationStatus = exports.GitHubAppEnvironment = exports.Feature = exports.Experiment = exports.EnvironmentSecretType = exports.EasTotalPlanEnablementUnit = exports.EasServiceMetric = exports.EasService = exports.EasBuildWaiverType = exports.EasBuildDeprecationInfoType = exports.EasBuildBillingResourceClass = exports.DistributionType = exports.BuildWorkflow = exports.BuildTrigger = exports.BuildStatus = exports.BuildRetryDisabledReason = exports.BuildResourceClass = exports.BuildPriority = exports.BuildPhase = exports.BuildMode = exports.BuildLimitThresholdExceededMetadataType = exports.BuildIosEnterpriseProvisioning = exports.BuildCredentialsSource = exports.BackgroundJobState = exports.BackgroundJobResultType = exports.AuthProviderIdentifier = exports.AuthProtocolType = exports.AssetMetadataStatus = exports.AppsFilter = exports.AppleTeamType = exports.AppleDeviceClass = exports.AppStoreConnectUserRole = exports.AppSort = exports.AppPrivacy = exports.AppPlatform = exports.AppInternalDistributionBuildPrivacy = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.AndroidBuildType = exports.ActivityTimelineProjectActivityType = exports.AccountAppsSortByField = void 0;
10
+ exports.WorkerLoggerLevel = exports.WebhookType = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.TargetEntityMutationType = exports.SubmissionStatus = exports.SubmissionArchiveSourceType = exports.SubmissionAndroidTrack = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StatuspageServiceStatus = exports.StatuspageServiceName = exports.StatuspageIncidentStatus = exports.StatuspageIncidentImpact = exports.StandardOffer = exports.SecondFactorMethod = exports.Role = exports.ResourceClassExperiment = exports.ProjectArchiveSourceType = exports.Permission = exports.Order = exports.OnboardingEnvironment = exports.OnboardingDeviceType = exports.OfferType = exports.NotificationType = exports.NotificationEvent = exports.MailchimpTag = exports.MailchimpAudience = exports.JobRunStatus = exports.JobRunPriority = exports.IosSchemeBuildConfiguration = void 0;
11
11
  var AccountAppsSortByField;
12
12
  (function (AccountAppsSortByField) {
13
13
  AccountAppsSortByField["LatestActivityTime"] = "LATEST_ACTIVITY_TIME";
@@ -20,7 +20,6 @@ var AccountAppsSortByField;
20
20
  var ActivityTimelineProjectActivityType;
21
21
  (function (ActivityTimelineProjectActivityType) {
22
22
  ActivityTimelineProjectActivityType["Build"] = "BUILD";
23
- ActivityTimelineProjectActivityType["BuildJob"] = "BUILD_JOB";
24
23
  ActivityTimelineProjectActivityType["Submission"] = "SUBMISSION";
25
24
  ActivityTimelineProjectActivityType["Update"] = "UPDATE";
26
25
  })(ActivityTimelineProjectActivityType || (exports.ActivityTimelineProjectActivityType = ActivityTimelineProjectActivityType = {}));
@@ -91,6 +90,12 @@ var AppleDeviceClass;
91
90
  AppleDeviceClass["Mac"] = "MAC";
92
91
  AppleDeviceClass["Unknown"] = "UNKNOWN";
93
92
  })(AppleDeviceClass || (exports.AppleDeviceClass = AppleDeviceClass = {}));
93
+ var AppleTeamType;
94
+ (function (AppleTeamType) {
95
+ AppleTeamType["CompanyOrOrganization"] = "COMPANY_OR_ORGANIZATION";
96
+ AppleTeamType["Individual"] = "INDIVIDUAL";
97
+ AppleTeamType["InHouse"] = "IN_HOUSE";
98
+ })(AppleTeamType || (exports.AppleTeamType = AppleTeamType = {}));
94
99
  var AppsFilter;
95
100
  (function (AppsFilter) {
96
101
  /** Featured Projects */
@@ -107,6 +112,13 @@ var AuthProtocolType;
107
112
  (function (AuthProtocolType) {
108
113
  AuthProtocolType["Oidc"] = "OIDC";
109
114
  })(AuthProtocolType || (exports.AuthProtocolType = AuthProtocolType = {}));
115
+ var AuthProviderIdentifier;
116
+ (function (AuthProviderIdentifier) {
117
+ AuthProviderIdentifier["GoogleWs"] = "GOOGLE_WS";
118
+ AuthProviderIdentifier["MsEntraId"] = "MS_ENTRA_ID";
119
+ AuthProviderIdentifier["Okta"] = "OKTA";
120
+ AuthProviderIdentifier["OneLogin"] = "ONE_LOGIN";
121
+ })(AuthProviderIdentifier || (exports.AuthProviderIdentifier = AuthProviderIdentifier = {}));
110
122
  var BackgroundJobResultType;
111
123
  (function (BackgroundJobResultType) {
112
124
  BackgroundJobResultType["GithubBuild"] = "GITHUB_BUILD";
@@ -129,20 +141,6 @@ var BuildIosEnterpriseProvisioning;
129
141
  BuildIosEnterpriseProvisioning["Adhoc"] = "ADHOC";
130
142
  BuildIosEnterpriseProvisioning["Universal"] = "UNIVERSAL";
131
143
  })(BuildIosEnterpriseProvisioning || (exports.BuildIosEnterpriseProvisioning = BuildIosEnterpriseProvisioning = {}));
132
- var BuildJobLogsFormat;
133
- (function (BuildJobLogsFormat) {
134
- BuildJobLogsFormat["Json"] = "JSON";
135
- BuildJobLogsFormat["Raw"] = "RAW";
136
- })(BuildJobLogsFormat || (exports.BuildJobLogsFormat = BuildJobLogsFormat = {}));
137
- var BuildJobStatus;
138
- (function (BuildJobStatus) {
139
- BuildJobStatus["Errored"] = "ERRORED";
140
- BuildJobStatus["Finished"] = "FINISHED";
141
- BuildJobStatus["InProgress"] = "IN_PROGRESS";
142
- BuildJobStatus["Pending"] = "PENDING";
143
- BuildJobStatus["SentToQueue"] = "SENT_TO_QUEUE";
144
- BuildJobStatus["Started"] = "STARTED";
145
- })(BuildJobStatus || (exports.BuildJobStatus = BuildJobStatus = {}));
146
144
  var BuildLimitThresholdExceededMetadataType;
147
145
  (function (BuildLimitThresholdExceededMetadataType) {
148
146
  BuildLimitThresholdExceededMetadataType["Ios"] = "IOS";
@@ -269,6 +267,11 @@ var EasBuildDeprecationInfoType;
269
267
  EasBuildDeprecationInfoType["Internal"] = "INTERNAL";
270
268
  EasBuildDeprecationInfoType["UserFacing"] = "USER_FACING";
271
269
  })(EasBuildDeprecationInfoType || (exports.EasBuildDeprecationInfoType = EasBuildDeprecationInfoType = {}));
270
+ var EasBuildWaiverType;
271
+ (function (EasBuildWaiverType) {
272
+ EasBuildWaiverType["FastFailedBuild"] = "FAST_FAILED_BUILD";
273
+ EasBuildWaiverType["SystemError"] = "SYSTEM_ERROR";
274
+ })(EasBuildWaiverType || (exports.EasBuildWaiverType = EasBuildWaiverType = {}));
272
275
  var EasService;
273
276
  (function (EasService) {
274
277
  EasService["Builds"] = "BUILDS";
@@ -337,6 +340,20 @@ var GitHubBuildTriggerType;
337
340
  GitHubBuildTriggerType["PushToBranch"] = "PUSH_TO_BRANCH";
338
341
  GitHubBuildTriggerType["TagUpdated"] = "TAG_UPDATED";
339
342
  })(GitHubBuildTriggerType || (exports.GitHubBuildTriggerType = GitHubBuildTriggerType = {}));
343
+ var GitHubJobRunJobType;
344
+ (function (GitHubJobRunJobType) {
345
+ GitHubJobRunJobType["PublishUpdate"] = "PUBLISH_UPDATE";
346
+ })(GitHubJobRunJobType || (exports.GitHubJobRunJobType = GitHubJobRunJobType = {}));
347
+ var GitHubJobRunTriggerRunStatus;
348
+ (function (GitHubJobRunTriggerRunStatus) {
349
+ GitHubJobRunTriggerRunStatus["Errored"] = "ERRORED";
350
+ GitHubJobRunTriggerRunStatus["Success"] = "SUCCESS";
351
+ })(GitHubJobRunTriggerRunStatus || (exports.GitHubJobRunTriggerRunStatus = GitHubJobRunTriggerRunStatus = {}));
352
+ var GitHubJobRunTriggerType;
353
+ (function (GitHubJobRunTriggerType) {
354
+ GitHubJobRunTriggerType["PullRequestUpdated"] = "PULL_REQUEST_UPDATED";
355
+ GitHubJobRunTriggerType["PushToBranch"] = "PUSH_TO_BRANCH";
356
+ })(GitHubJobRunTriggerType || (exports.GitHubJobRunTriggerType = GitHubJobRunTriggerType = {}));
340
357
  var InvoiceDiscountType;
341
358
  (function (InvoiceDiscountType) {
342
359
  InvoiceDiscountType["Amount"] = "AMOUNT";
@@ -366,6 +383,21 @@ var IosSchemeBuildConfiguration;
366
383
  IosSchemeBuildConfiguration["Debug"] = "DEBUG";
367
384
  IosSchemeBuildConfiguration["Release"] = "RELEASE";
368
385
  })(IosSchemeBuildConfiguration || (exports.IosSchemeBuildConfiguration = IosSchemeBuildConfiguration = {}));
386
+ var JobRunPriority;
387
+ (function (JobRunPriority) {
388
+ JobRunPriority["High"] = "HIGH";
389
+ JobRunPriority["Normal"] = "NORMAL";
390
+ })(JobRunPriority || (exports.JobRunPriority = JobRunPriority = {}));
391
+ var JobRunStatus;
392
+ (function (JobRunStatus) {
393
+ JobRunStatus["Canceled"] = "CANCELED";
394
+ JobRunStatus["Errored"] = "ERRORED";
395
+ JobRunStatus["Finished"] = "FINISHED";
396
+ JobRunStatus["InProgress"] = "IN_PROGRESS";
397
+ JobRunStatus["InQueue"] = "IN_QUEUE";
398
+ JobRunStatus["New"] = "NEW";
399
+ JobRunStatus["PendingCancel"] = "PENDING_CANCEL";
400
+ })(JobRunStatus || (exports.JobRunStatus = JobRunStatus = {}));
369
401
  var MailchimpAudience;
370
402
  (function (MailchimpAudience) {
371
403
  MailchimpAudience["ExpoDevelopers"] = "EXPO_DEVELOPERS";
@@ -402,6 +434,16 @@ var OfferType;
402
434
  /** Term subscription */
403
435
  OfferType["Subscription"] = "SUBSCRIPTION";
404
436
  })(OfferType || (exports.OfferType = OfferType = {}));
437
+ var OnboardingDeviceType;
438
+ (function (OnboardingDeviceType) {
439
+ OnboardingDeviceType["Device"] = "DEVICE";
440
+ OnboardingDeviceType["Simulator"] = "SIMULATOR";
441
+ })(OnboardingDeviceType || (exports.OnboardingDeviceType = OnboardingDeviceType = {}));
442
+ var OnboardingEnvironment;
443
+ (function (OnboardingEnvironment) {
444
+ OnboardingEnvironment["DevBuild"] = "DEV_BUILD";
445
+ OnboardingEnvironment["ExpoGo"] = "EXPO_GO";
446
+ })(OnboardingEnvironment || (exports.OnboardingEnvironment = OnboardingEnvironment = {}));
405
447
  var Order;
406
448
  (function (Order) {
407
449
  Order["Asc"] = "ASC";
@@ -422,6 +464,10 @@ var ProjectArchiveSourceType;
422
464
  ProjectArchiveSourceType["S3"] = "S3";
423
465
  ProjectArchiveSourceType["Url"] = "URL";
424
466
  })(ProjectArchiveSourceType || (exports.ProjectArchiveSourceType = ProjectArchiveSourceType = {}));
467
+ var ResourceClassExperiment;
468
+ (function (ResourceClassExperiment) {
469
+ ResourceClassExperiment["C3D"] = "C3D";
470
+ })(ResourceClassExperiment || (exports.ResourceClassExperiment = ResourceClassExperiment = {}));
425
471
  var Role;
426
472
  (function (Role) {
427
473
  Role["Admin"] = "ADMIN";
@@ -0,0 +1,9 @@
1
+ import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient';
2
+ export declare const UserPreferencesMutation: {
3
+ markCliDoneInOnboardingUserPreferencesAsync(graphqlClient: ExpoGraphqlClient, userPreferencesData: {
4
+ appId: string;
5
+ }): Promise<{
6
+ isCLIDone: boolean;
7
+ appId: string;
8
+ }>;
9
+ };
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserPreferencesMutation = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const assert_1 = tslib_1.__importDefault(require("assert"));
6
+ const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
7
+ const client_1 = require("../client");
8
+ exports.UserPreferencesMutation = {
9
+ async markCliDoneInOnboardingUserPreferencesAsync(graphqlClient, userPreferencesData) {
10
+ var _a, _b;
11
+ const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
12
+ .mutation((0, graphql_tag_1.default) `
13
+ mutation MarkCliDoneInOnboardingUserPreferencesMutation(
14
+ $preferences: UserPreferencesInput!
15
+ ) {
16
+ me {
17
+ setPreferences(preferences: $preferences) {
18
+ onboarding {
19
+ appId
20
+ isCLIDone
21
+ }
22
+ }
23
+ }
24
+ }
25
+ `, {
26
+ preferences: {
27
+ onboarding: {
28
+ ...userPreferencesData,
29
+ isCLIDone: true,
30
+ lastUsed: new Date().toISOString(),
31
+ },
32
+ },
33
+ })
34
+ .toPromise());
35
+ const appId = (_a = data.me.setPreferences.onboarding) === null || _a === void 0 ? void 0 : _a.appId;
36
+ (0, assert_1.default)(appId, 'App ID must be defined');
37
+ const isCLIDone = (_b = data.me.setPreferences.onboarding) === null || _b === void 0 ? void 0 : _b.isCLIDone;
38
+ (0, assert_1.default)(isCLIDone, 'isCLIDone must be defined and true');
39
+ return {
40
+ appId,
41
+ isCLIDone,
42
+ };
43
+ },
44
+ };
@@ -20,6 +20,16 @@ exports.UserQuery = {
20
20
  id
21
21
  ...AccountFragment
22
22
  }
23
+ preferences {
24
+ onboarding {
25
+ appId
26
+ platform
27
+ deviceType
28
+ environment
29
+ isCLIDone
30
+ lastUsed
31
+ }
32
+ }
23
33
  }
24
34
  ... on Robot {
25
35
  firstName
@@ -14,6 +14,13 @@ exports.AppFragmentNode = (0, graphql_tag_1.default) `
14
14
  name
15
15
  ...AccountFragment
16
16
  }
17
+ githubRepository {
18
+ id
19
+ metadata {
20
+ githubRepoOwnerName
21
+ githubRepoName
22
+ }
23
+ }
17
24
  }
18
25
  ${Account_1.AccountFragmentNode}
19
26
  `;
@@ -39,7 +39,6 @@ exports.BuildFragmentNode = (0, graphql_tag_1.default) `
39
39
  }
40
40
  }
41
41
  channel
42
- releaseChannel
43
42
  distribution
44
43
  iosEnterpriseProvisioning
45
44
  buildProfile
@@ -0,0 +1,10 @@
1
+ export declare function runGitCloneAsync({ targetProjectDir, githubRepositoryName, githubUsername, }: {
2
+ githubUsername: string;
3
+ githubRepositoryName: string;
4
+ targetProjectDir: string;
5
+ }): Promise<{
6
+ targetProjectDir: string;
7
+ }>;
8
+ export declare function runGitPushAsync({ targetProjectDir, }: {
9
+ targetProjectDir: string;
10
+ }): Promise<void>;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runGitPushAsync = exports.runGitCloneAsync = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const runCommand_1 = require("./runCommand");
6
+ const log_1 = tslib_1.__importDefault(require("../log"));
7
+ const prompts_1 = require("../prompts");
8
+ async function runGitCloneAsync({ targetProjectDir, githubRepositoryName, githubUsername, }) {
9
+ try {
10
+ await (0, runCommand_1.runCommandAsync)({
11
+ command: 'git',
12
+ args: [
13
+ 'clone',
14
+ `git@github.com:${githubUsername}/${githubRepositoryName}.git`,
15
+ targetProjectDir,
16
+ ],
17
+ shouldPrintStderrLineAsStdout: line => {
18
+ return line.includes('Cloning into');
19
+ },
20
+ });
21
+ return { targetProjectDir };
22
+ }
23
+ catch (error) {
24
+ if (error.stderr.includes('already exists')) {
25
+ log_1.default.warn(`Directory ${targetProjectDir} already exists.`);
26
+ const shouldContinue = await (0, prompts_1.confirmAsync)({
27
+ message: 'Do you want to clone your project to some other destination?',
28
+ });
29
+ if (!shouldContinue) {
30
+ throw new Error('Directory already exists. Aborting...');
31
+ }
32
+ const { newTargetProjectDir } = await (0, prompts_1.promptAsync)({
33
+ type: 'text',
34
+ name: 'newTargetProjectDir',
35
+ message: 'New target directory path:',
36
+ validate: (input) => input !== '',
37
+ });
38
+ return await runGitCloneAsync({
39
+ githubRepositoryName,
40
+ githubUsername,
41
+ targetProjectDir: newTargetProjectDir,
42
+ });
43
+ }
44
+ else {
45
+ throw error;
46
+ }
47
+ }
48
+ }
49
+ exports.runGitCloneAsync = runGitCloneAsync;
50
+ async function runGitPushAsync({ targetProjectDir, }) {
51
+ await (0, runCommand_1.runCommandAsync)({
52
+ command: 'git',
53
+ args: ['push'],
54
+ cwd: targetProjectDir,
55
+ });
56
+ }
57
+ exports.runGitPushAsync = runGitPushAsync;
@@ -0,0 +1,3 @@
1
+ export declare function installDependenciesAsync({ projectDir, }: {
2
+ projectDir: string;
3
+ }): Promise<void>;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.installDependenciesAsync = void 0;
4
+ const runCommand_1 = require("./runCommand");
5
+ async function installDependenciesAsync({ projectDir, }) {
6
+ // TODO: add support for other package managers
7
+ await (0, runCommand_1.runCommandAsync)({
8
+ command: 'npm',
9
+ args: ['install'],
10
+ cwd: projectDir,
11
+ shouldShowStderrLine: line => {
12
+ return (!line.includes('WARN') &&
13
+ !line.includes('deprecated') &&
14
+ !line.includes('no longer maintained') &&
15
+ !line.includes('has been moved') &&
16
+ !(line === 'npm'));
17
+ },
18
+ });
19
+ }
20
+ exports.installDependenciesAsync = installDependenciesAsync;
@@ -0,0 +1,7 @@
1
+ export declare function runCommandAsync({ cwd, args, command, shouldShowStderrLine, shouldPrintStderrLineAsStdout, }: {
2
+ cwd?: string;
3
+ args: string[];
4
+ command: string;
5
+ shouldShowStderrLine?: (line: string) => boolean;
6
+ shouldPrintStderrLineAsStdout?: (line: string) => boolean;
7
+ }): Promise<void>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runCommandAsync = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const spawn_async_1 = tslib_1.__importDefault(require("@expo/spawn-async"));
6
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
7
+ const log_1 = tslib_1.__importDefault(require("../log"));
8
+ async function runCommandAsync({ cwd, args, command, shouldShowStderrLine, shouldPrintStderrLineAsStdout, }) {
9
+ log_1.default.log(`🏗️ Running ${chalk_1.default.bold(`${command} ${args.join(' ')}`)}...`);
10
+ const spawnPromise = (0, spawn_async_1.default)(command, args, {
11
+ stdio: ['inherit', 'pipe', 'pipe'],
12
+ cwd,
13
+ });
14
+ const { child: { stdout, stderr }, } = spawnPromise;
15
+ if (!stdout || !stderr) {
16
+ throw new Error(`Failed to spawn ${command}`);
17
+ }
18
+ stdout.on('data', data => {
19
+ for (const line of data.toString().trim().split('\n')) {
20
+ log_1.default.log(`${chalk_1.default.gray(`[${command}]`)} ${line}`);
21
+ }
22
+ });
23
+ stderr.on('data', data => {
24
+ for (const line of data.toString().trim().split('\n')) {
25
+ if (shouldShowStderrLine && !shouldShowStderrLine(line)) {
26
+ continue;
27
+ }
28
+ const log = `${chalk_1.default.gray(`[${command}]`)} ${line}`;
29
+ if (shouldPrintStderrLineAsStdout && shouldPrintStderrLineAsStdout(line)) {
30
+ log_1.default.log(log);
31
+ }
32
+ else {
33
+ log_1.default.warn(`${chalk_1.default.gray(`[${command}]`)} ${line}`);
34
+ }
35
+ }
36
+ });
37
+ await spawnPromise;
38
+ log_1.default.succeed(`✅ ${chalk_1.default.bold(`${command} ${args.join(' ')}`)} succeeded`);
39
+ log_1.default.log('');
40
+ }
41
+ exports.runCommandAsync = runCommandAsync;
@@ -19,7 +19,6 @@ export declare function isExpoUpdatesInstalledOrAvailable(projectDir: string, sd
19
19
  export declare function isUsingEASUpdate(exp: ExpoConfig, projectId: string): boolean;
20
20
  export declare function validateAppVersionRuntimePolicySupportAsync(projectDir: string, exp: ExpoConfig): Promise<void>;
21
21
  export declare function enforceRollBackToEmbeddedUpdateSupportAsync(projectDir: string): Promise<void>;
22
- export declare function isClassicUpdatesSupportedAsync(projectDir: string): Promise<boolean>;
23
22
  export declare function isModernExpoUpdatesCLIWithRuntimeVersionCommandSupportedAsync(projectDir: string): Promise<boolean>;
24
23
  export declare function installExpoUpdatesAsync(projectDir: string, options?: {
25
24
  silent: boolean;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDisplayNameForProjectIdAsync = exports.getOwnerAccountForProjectIdAsync = exports.installExpoUpdatesAsync = exports.isModernExpoUpdatesCLIWithRuntimeVersionCommandSupportedAsync = exports.isClassicUpdatesSupportedAsync = exports.enforceRollBackToEmbeddedUpdateSupportAsync = exports.validateAppVersionRuntimePolicySupportAsync = exports.isUsingEASUpdate = exports.isExpoUpdatesInstalledOrAvailable = exports.isExpoUpdatesInstalledAsDevDependency = exports.isExpoNotificationsInstalled = exports.isExpoUpdatesInstalled = exports.getProjectConfigDescription = exports.toAppPrivacy = exports.getUsername = void 0;
3
+ exports.getDisplayNameForProjectIdAsync = exports.getOwnerAccountForProjectIdAsync = exports.installExpoUpdatesAsync = exports.isModernExpoUpdatesCLIWithRuntimeVersionCommandSupportedAsync = exports.enforceRollBackToEmbeddedUpdateSupportAsync = exports.validateAppVersionRuntimePolicySupportAsync = exports.isUsingEASUpdate = exports.isExpoUpdatesInstalledOrAvailable = exports.isExpoUpdatesInstalledAsDevDependency = exports.isExpoNotificationsInstalled = exports.isExpoUpdatesInstalled = exports.getProjectConfigDescription = exports.toAppPrivacy = exports.getUsername = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const config_1 = require("@expo/config");
6
6
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
@@ -123,17 +123,6 @@ async function enforceRollBackToEmbeddedUpdateSupportAsync(projectDir) {
123
123
  throw new Error(`The expo-updates package must have a version >= 0.19.0 to use roll back to embedded, which corresponds to Expo SDK 50 or greater. ${(0, log_1.learnMore)('https://docs.expo.dev/workflow/upgrading-expo-sdk-walkthrough/')}`);
124
124
  }
125
125
  exports.enforceRollBackToEmbeddedUpdateSupportAsync = enforceRollBackToEmbeddedUpdateSupportAsync;
126
- async function isClassicUpdatesSupportedAsync(projectDir) {
127
- const expoUpdatesPackageVersion = await getExpoUpdatesPackageVersionIfInstalledAsync(projectDir);
128
- if (expoUpdatesPackageVersion === null) {
129
- return false;
130
- }
131
- if (expoUpdatesPackageVersion.includes('canary')) {
132
- return false;
133
- }
134
- return semver_1.default.lt(expoUpdatesPackageVersion, '0.19.0');
135
- }
136
- exports.isClassicUpdatesSupportedAsync = isClassicUpdatesSupportedAsync;
137
126
  async function isModernExpoUpdatesCLIWithRuntimeVersionCommandSupportedAsync(projectDir) {
138
127
  const expoUpdatesPackageVersion = await getExpoUpdatesPackageVersionIfInstalledAsync(projectDir);
139
128
  if (expoUpdatesPackageVersion === null) {
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { ExpoConfig, Platform } from '@expo/config';
3
- import { Workflow } from '@expo/eas-build-job';
3
+ import { Env, Workflow } from '@expo/eas-build-job';
4
4
  import Joi from 'joi';
5
5
  import { ExpoGraphqlClient } from '../commandUtils/context/contextUtils/createGraphqlClient';
6
6
  import { PaginatedQueryOptions } from '../commandUtils/pagination';
@@ -137,11 +137,12 @@ export declare function getUpdateMessageForCommandAsync(vcsClient: Client, { upd
137
137
  export declare const defaultPublishPlatforms: Platform[];
138
138
  export declare function getRequestedPlatform(platform: ExpoCLIExportPlatformFlag): RequestedPlatform | null;
139
139
  /** Get runtime versions grouped by platform. Runtime version is always `null` on web where the platform is always backwards compatible. */
140
- export declare function getRuntimeVersionObjectAsync({ exp, platforms, workflows, projectDir, }: {
140
+ export declare function getRuntimeVersionObjectAsync({ exp, platforms, workflows, projectDir, env, }: {
141
141
  exp: ExpoConfig;
142
142
  platforms: Platform[];
143
143
  workflows: Record<Platform, Workflow>;
144
144
  projectDir: string;
145
+ env: Env | undefined;
145
146
  }): Promise<{
146
147
  platform: string;
147
148
  runtimeVersion: string;
@@ -464,7 +464,7 @@ function getRequestedPlatform(platform) {
464
464
  }
465
465
  exports.getRequestedPlatform = getRequestedPlatform;
466
466
  /** Get runtime versions grouped by platform. Runtime version is always `null` on web where the platform is always backwards compatible. */
467
- async function getRuntimeVersionObjectAsync({ exp, platforms, workflows, projectDir, }) {
467
+ async function getRuntimeVersionObjectAsync({ exp, platforms, workflows, projectDir, env, }) {
468
468
  return await Promise.all(platforms.map(async (platform) => {
469
469
  return {
470
470
  platform,
@@ -473,12 +473,13 @@ async function getRuntimeVersionObjectAsync({ exp, platforms, workflows, project
473
473
  platform,
474
474
  workflow: workflows[platform],
475
475
  projectDir,
476
+ env,
476
477
  }),
477
478
  };
478
479
  }));
479
480
  }
480
481
  exports.getRuntimeVersionObjectAsync = getRuntimeVersionObjectAsync;
481
- async function getRuntimeVersionForPlatformAsync({ exp, platform, workflow, projectDir, }) {
482
+ async function getRuntimeVersionForPlatformAsync({ exp, platform, workflow, projectDir, env, }) {
482
483
  var _a, _b;
483
484
  if (platform === 'web') {
484
485
  return 'UNVERSIONED';
@@ -487,14 +488,7 @@ async function getRuntimeVersionForPlatformAsync({ exp, platform, workflow, proj
487
488
  try {
488
489
  log_1.default.debug('Using expo-updates runtimeversion:resolve CLI for runtime version resolution');
489
490
  const extraArgs = log_1.default.isDebug ? ['--debug'] : [];
490
- const resolvedRuntimeVersionJSONResult = await (0, expoUpdatesCli_1.expoUpdatesCommandAsync)(projectDir, [
491
- 'runtimeversion:resolve',
492
- '--platform',
493
- platform,
494
- '--workflow',
495
- workflow,
496
- ...extraArgs,
497
- ]);
491
+ const resolvedRuntimeVersionJSONResult = await (0, expoUpdatesCli_1.expoUpdatesCommandAsync)(projectDir, ['runtimeversion:resolve', '--platform', platform, '--workflow', workflow, ...extraArgs], { env });
498
492
  const runtimeVersionResult = JSON.parse(resolvedRuntimeVersionJSONResult);
499
493
  log_1.default.debug('runtimeversion:resolve output:');
500
494
  log_1.default.debug(resolvedRuntimeVersionJSONResult);
@@ -1,8 +1,9 @@
1
1
  import { ExpoConfig } from '@expo/config';
2
- import { Workflow } from '@expo/eas-build-job';
3
- export declare function resolveRuntimeVersionAsync({ exp, platform, workflow, projectDir, }: {
2
+ import { Env, Workflow } from '@expo/eas-build-job';
3
+ export declare function resolveRuntimeVersionAsync({ exp, platform, workflow, projectDir, env, }: {
4
4
  exp: ExpoConfig;
5
5
  platform: 'ios' | 'android';
6
6
  workflow: Workflow;
7
7
  projectDir: string;
8
+ env: Env | undefined;
8
9
  }): Promise<string | null>;
@@ -6,7 +6,7 @@ const config_plugins_1 = require("@expo/config-plugins");
6
6
  const projectUtils_1 = require("./projectUtils");
7
7
  const log_1 = tslib_1.__importDefault(require("../log"));
8
8
  const expoUpdatesCli_1 = require("../utils/expoUpdatesCli");
9
- async function resolveRuntimeVersionAsync({ exp, platform, workflow, projectDir, }) {
9
+ async function resolveRuntimeVersionAsync({ exp, platform, workflow, projectDir, env, }) {
10
10
  var _a;
11
11
  if (!(await (0, projectUtils_1.isModernExpoUpdatesCLIWithRuntimeVersionCommandSupportedAsync)(projectDir))) {
12
12
  // fall back to the previous behavior (using the @expo/config-plugins eas-cli dependency rather
@@ -16,14 +16,7 @@ async function resolveRuntimeVersionAsync({ exp, platform, workflow, projectDir,
16
16
  try {
17
17
  log_1.default.debug('Using expo-updates runtimeversion:resolve CLI for runtime version resolution');
18
18
  const extraArgs = log_1.default.isDebug ? ['--debug'] : [];
19
- const resolvedRuntimeVersionJSONResult = await (0, expoUpdatesCli_1.expoUpdatesCommandAsync)(projectDir, [
20
- 'runtimeversion:resolve',
21
- '--platform',
22
- platform,
23
- '--workflow',
24
- workflow,
25
- ...extraArgs,
26
- ]);
19
+ const resolvedRuntimeVersionJSONResult = await (0, expoUpdatesCli_1.expoUpdatesCommandAsync)(projectDir, ['runtimeversion:resolve', '--platform', platform, '--workflow', workflow, ...extraArgs], { env });
27
20
  const runtimeVersionResult = JSON.parse(resolvedRuntimeVersionJSONResult);
28
21
  log_1.default.debug('runtimeversion:resolve output:');
29
22
  log_1.default.debug(resolvedRuntimeVersionJSONResult);
@@ -190,6 +190,7 @@ class CreateRollout {
190
190
  exp: ctx.app.exp,
191
191
  platform,
192
192
  workflow: workflows[platform],
193
+ env: undefined,
193
194
  })))).filter(filter_1.truthy);
194
195
  const dedupedRuntimes = [...new Set(runtimes)];
195
196
  if (dedupedRuntimes.length === 0) {
@@ -1,8 +1,12 @@
1
1
  import { ExpoConfig } from '@expo/config';
2
- import { Workflow } from '@expo/eas-build-job';
2
+ import { Env, Workflow } from '@expo/eas-build-job';
3
3
  /**
4
4
  * Synchronize updates configuration to native files. This needs to do essentially the same thing as `withUpdates`
5
5
  */
6
- export declare function syncUpdatesConfigurationAsync(projectDir: string, exp: ExpoConfig, workflow: Workflow): Promise<void>;
7
- export declare function readReleaseChannelSafelyAsync(projectDir: string): Promise<string | null>;
6
+ export declare function syncUpdatesConfigurationAsync({ projectDir, exp, workflow, env, }: {
7
+ projectDir: string;
8
+ exp: ExpoConfig;
9
+ workflow: Workflow;
10
+ env: Env | undefined;
11
+ }): Promise<void>;
8
12
  export declare function readChannelSafelyAsync(projectDir: string): Promise<string | null>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.readChannelSafelyAsync = exports.readReleaseChannelSafelyAsync = exports.syncUpdatesConfigurationAsync = void 0;
3
+ exports.readChannelSafelyAsync = exports.syncUpdatesConfigurationAsync = void 0;
4
4
  const config_plugins_1 = require("@expo/config-plugins");
5
5
  const platform_1 = require("../../platform");
6
6
  const projectUtils_1 = require("../../project/projectUtils");
@@ -9,16 +9,10 @@ const utils_1 = require("../utils");
9
9
  /**
10
10
  * Synchronize updates configuration to native files. This needs to do essentially the same thing as `withUpdates`
11
11
  */
12
- async function syncUpdatesConfigurationAsync(projectDir, exp, workflow) {
12
+ async function syncUpdatesConfigurationAsync({ projectDir, exp, workflow, env, }) {
13
13
  (0, utils_1.ensureValidVersions)(exp, platform_1.RequestedPlatform.Android);
14
14
  if (await (0, projectUtils_1.isModernExpoUpdatesCLIWithRuntimeVersionCommandSupportedAsync)(projectDir)) {
15
- await (0, expoUpdatesCli_1.expoUpdatesCommandAsync)(projectDir, [
16
- 'configuration:syncnative',
17
- '--platform',
18
- 'android',
19
- '--workflow',
20
- workflow,
21
- ]);
15
+ await (0, expoUpdatesCli_1.expoUpdatesCommandAsync)(projectDir, ['configuration:syncnative', '--platform', 'android', '--workflow', workflow], { env });
22
16
  return;
23
17
  }
24
18
  // sync AndroidManifest.xml
@@ -36,16 +30,6 @@ async function syncUpdatesConfigurationAsync(projectDir, exp, workflow) {
36
30
  await config_plugins_1.XML.writeXMLAsync({ path: stringsJSONPath, xml: updatedStringsResourceXML });
37
31
  }
38
32
  exports.syncUpdatesConfigurationAsync = syncUpdatesConfigurationAsync;
39
- async function readReleaseChannelSafelyAsync(projectDir) {
40
- try {
41
- const androidManifest = await getAndroidManifestAsync(projectDir);
42
- return config_plugins_1.AndroidConfig.Manifest.getMainApplicationMetaDataValue(androidManifest, config_plugins_1.AndroidConfig.Updates.Config.RELEASE_CHANNEL);
43
- }
44
- catch {
45
- return null;
46
- }
47
- }
48
- exports.readReleaseChannelSafelyAsync = readReleaseChannelSafelyAsync;
49
33
  async function readChannelSafelyAsync(projectDir) {
50
34
  var _a;
51
35
  try {
@@ -1,5 +1,5 @@
1
1
  import { ExpoConfig } from '@expo/config-types';
2
- import { Workflow } from '@expo/eas-build-job';
2
+ import { Env, Workflow } from '@expo/eas-build-job';
3
3
  import { RequestedPlatform } from '../platform';
4
4
  import { Client } from '../vcs/vcs';
5
5
  export declare const DEFAULT_MANAGED_RUNTIME_VERSION_GTE_SDK_49: {
@@ -24,10 +24,11 @@ export declare function ensureEASUpdateIsConfiguredInEasJsonAsync(projectDir: st
24
24
  * - Sets `updates.url` if not set
25
25
  * - Ensure latest changes are reflected in the native config, if any
26
26
  */
27
- export declare function ensureEASUpdateIsConfiguredAsync({ exp: expMaybeWithoutUpdates, projectId, projectDir, vcsClient, platform, }: {
27
+ export declare function ensureEASUpdateIsConfiguredAsync({ exp: expMaybeWithoutUpdates, projectId, projectDir, vcsClient, platform, env, }: {
28
28
  exp: ExpoConfig;
29
29
  projectId: string;
30
30
  projectDir: string;
31
31
  vcsClient: Client;
32
32
  platform: RequestedPlatform | null;
33
+ env: Env | undefined;
33
34
  }): Promise<void>;