eas-cli 14.2.0 → 14.3.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.
- package/README.md +70 -70
- package/build/commandUtils/context/contextUtils/findProjectDirAndVerifyProjectSetupAsync.js +5 -1
- package/build/commandUtils/context/contextUtils/loadServerSideEnvironmentVariablesAsync.js +2 -2
- package/build/commandUtils/flags.d.ts +1 -1
- package/build/commands/build/version/sync.js +1 -1
- package/build/commands/device/delete.js +2 -2
- package/build/commands/device/rename.js +2 -2
- package/build/commands/env/create.d.ts +1 -1
- package/build/commands/env/exec.js +1 -1
- package/build/commands/env/update.d.ts +1 -1
- package/build/commands/worker/alias.js +1 -1
- package/build/commands/worker/deploy.js +6 -3
- package/build/commands/workflow/run.js +12 -3
- package/build/devices/actions/create/currentMachineMethod.js +1 -1
- package/build/devices/actions/create/inputMethod.js +1 -1
- package/build/graphql/generated.d.ts +60 -6
- package/build/graphql/generated.js +12 -6
- package/build/graphql/mutations/WorkflowRevisionMutation.d.ts +2 -2
- package/build/project/fetchOrCreateProjectIDForWriteToConfigWithConfirmationAsync.js +2 -2
- package/build/project/uploadAccountScopedFileAsync.d.ts +14 -0
- package/build/project/uploadAccountScopedFileAsync.js +35 -0
- package/build/utils/statuspageService.js +2 -2
- package/build/worker/upload.d.ts +2 -0
- package/build/worker/upload.js +6 -4
- package/oclif.manifest.json +1 -1
- package/package.json +6 -5
- package/build/project/uploadAccountScopedEasJsonAsync.d.ts +0 -12
- package/build/project/uploadAccountScopedEasJsonAsync.js +0 -34
|
@@ -19,7 +19,7 @@ export declare const EASVariableFormatFlag: {
|
|
|
19
19
|
format: import("@oclif/core/lib/interfaces").OptionFlag<string>;
|
|
20
20
|
};
|
|
21
21
|
export declare const EASVariableVisibilityFlag: {
|
|
22
|
-
visibility: import("@oclif/core/lib/interfaces").OptionFlag<"
|
|
22
|
+
visibility: import("@oclif/core/lib/interfaces").OptionFlag<"plaintext" | "sensitive" | "secret" | undefined>;
|
|
23
23
|
};
|
|
24
24
|
export type EASEnvironmentVariableScopeFlagValue = 'project' | 'account';
|
|
25
25
|
export declare const EASEnvironmentVariableScopeFlag: {
|
|
@@ -82,7 +82,7 @@ class BuildVersionSyncView extends EasCommand_1.default {
|
|
|
82
82
|
const remoteVersions = await AppVersionQuery_1.AppVersionQuery.latestVersionAsync(graphqlClient, projectId, (0, AppPlatform_1.toAppPlatform)(profileInfo.platform), applicationIdentifier);
|
|
83
83
|
const workflow = await (0, workflow_1.resolveWorkflowAsync)(projectDir, profileInfo.platform, vcsClient);
|
|
84
84
|
if (!remoteVersions?.buildVersion) {
|
|
85
|
-
log_1.default.warn(`Skipping versions sync for ${platformDisplayName}. There are no versions configured on
|
|
85
|
+
log_1.default.warn(`Skipping versions sync for ${platformDisplayName}. There are no versions configured on EAS, use "eas build:version:set" or run a build to initialize it.`);
|
|
86
86
|
continue;
|
|
87
87
|
}
|
|
88
88
|
if (workflow === eas_build_job_1.Workflow.MANAGED) {
|
|
@@ -108,10 +108,10 @@ class DeviceDelete extends EasCommand_1.default {
|
|
|
108
108
|
return true;
|
|
109
109
|
}
|
|
110
110
|
async removeDeviceFromExpoAsync(graphqlClient, chosenDevice) {
|
|
111
|
-
const removalSpinner = (0, ora_1.ora)(`Removing Apple device on
|
|
111
|
+
const removalSpinner = (0, ora_1.ora)(`Removing Apple device on EAS`).start();
|
|
112
112
|
try {
|
|
113
113
|
await AppleDeviceMutation_1.AppleDeviceMutation.deleteAppleDeviceAsync(graphqlClient, chosenDevice.id);
|
|
114
|
-
removalSpinner.succeed('Removed Apple device from
|
|
114
|
+
removalSpinner.succeed('Removed Apple device from EAS');
|
|
115
115
|
}
|
|
116
116
|
catch (err) {
|
|
117
117
|
removalSpinner.fail();
|
|
@@ -75,12 +75,12 @@ class DeviceRename extends EasCommand_1.default {
|
|
|
75
75
|
return name;
|
|
76
76
|
}
|
|
77
77
|
async renameDeviceOnExpoAsync(graphqlClient, chosenDevice, newDeviceName) {
|
|
78
|
-
const removalSpinner = (0, ora_1.ora)(`Renaming Apple device on
|
|
78
|
+
const removalSpinner = (0, ora_1.ora)(`Renaming Apple device on EAS`).start();
|
|
79
79
|
try {
|
|
80
80
|
await AppleDeviceMutation_1.AppleDeviceMutation.updateAppleDeviceAsync(graphqlClient, chosenDevice.id, {
|
|
81
81
|
name: newDeviceName,
|
|
82
82
|
});
|
|
83
|
-
removalSpinner.succeed('Renamed Apple device on
|
|
83
|
+
removalSpinner.succeed('Renamed Apple device on EAS');
|
|
84
84
|
}
|
|
85
85
|
catch (err) {
|
|
86
86
|
removalSpinner.fail();
|
|
@@ -12,7 +12,7 @@ export default class EnvCreate extends EasCommand {
|
|
|
12
12
|
'non-interactive': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
13
|
environment: import("@oclif/core/lib/interfaces").OptionFlag<EnvironmentVariableEnvironment[] | undefined>;
|
|
14
14
|
scope: import("@oclif/core/lib/interfaces").OptionFlag<EASEnvironmentVariableScopeFlagValue>;
|
|
15
|
-
visibility: import("@oclif/core/lib/interfaces").OptionFlag<"
|
|
15
|
+
visibility: import("@oclif/core/lib/interfaces").OptionFlag<"plaintext" | "sensitive" | "secret" | undefined>;
|
|
16
16
|
name: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
|
|
17
17
|
value: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
|
|
18
18
|
link: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
@@ -105,7 +105,7 @@ class EnvExec extends EasCommand_1.default {
|
|
|
105
105
|
.join(', ')}.`);
|
|
106
106
|
}
|
|
107
107
|
else {
|
|
108
|
-
log_1.default.log(`No environment variables with visibility "Plain text" and "Sensitive" found for the "${environment.toLowerCase()}" environment on EAS
|
|
108
|
+
log_1.default.log(`No environment variables with visibility "Plain text" and "Sensitive" found for the "${environment.toLowerCase()}" environment on EAS.`);
|
|
109
109
|
}
|
|
110
110
|
log_1.default.newLine();
|
|
111
111
|
const environmentVariables = {};
|
|
@@ -7,7 +7,7 @@ export default class EnvUpdate extends EasCommand {
|
|
|
7
7
|
'non-interactive': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
8
8
|
environment: import("@oclif/core/lib/interfaces").OptionFlag<EnvironmentVariableEnvironment[] | undefined>;
|
|
9
9
|
scope: import("@oclif/core/lib/interfaces").OptionFlag<EASEnvironmentVariableScopeFlagValue>;
|
|
10
|
-
visibility: import("@oclif/core/lib/interfaces").OptionFlag<"
|
|
10
|
+
visibility: import("@oclif/core/lib/interfaces").OptionFlag<"plaintext" | "sensitive" | "secret" | undefined>;
|
|
11
11
|
'variable-name': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
|
|
12
12
|
'variable-environment': import("@oclif/core/lib/interfaces").OptionFlag<EnvironmentVariableEnvironment | undefined>;
|
|
13
13
|
name: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
|
|
@@ -46,7 +46,7 @@ class WorkerAlias extends EasCommand_1.default {
|
|
|
46
46
|
if (flags.json) {
|
|
47
47
|
(0, json_1.enableJsonOutput)();
|
|
48
48
|
}
|
|
49
|
-
log_1.default.warn('EAS
|
|
49
|
+
log_1.default.warn('EAS Hosting is still in beta and subject to changes.');
|
|
50
50
|
const { getDynamicPrivateProjectConfigAsync, loggedIn: { graphqlClient }, } = await this.getContextAsync(WorkerAlias, {
|
|
51
51
|
nonInteractive: true,
|
|
52
52
|
withServerSideEnvironment: null,
|
|
@@ -64,7 +64,7 @@ class WorkerDeploy extends EasCommand_1.default {
|
|
|
64
64
|
if (flags.json) {
|
|
65
65
|
(0, json_1.enableJsonOutput)();
|
|
66
66
|
}
|
|
67
|
-
log_1.default.warn('EAS
|
|
67
|
+
log_1.default.warn('EAS Hosting is still in beta and subject to changes.');
|
|
68
68
|
const { getDynamicPrivateProjectConfigAsync, loggedIn: { graphqlClient }, projectDir, } = await this.getContextAsync(WorkerDeploy, { ...flags, withServerSideEnvironment: null });
|
|
69
69
|
const projectDist = await resolveExportedProjectAsync(flags, projectDir);
|
|
70
70
|
const { projectId } = await getDynamicPrivateProjectConfigAsync();
|
|
@@ -310,7 +310,7 @@ async function resolveExportedProjectAsync(flags, projectDir) {
|
|
|
310
310
|
isDirectory(clientPath),
|
|
311
311
|
]);
|
|
312
312
|
if (!exportDirStat?.isDirectory()) {
|
|
313
|
-
throw new Error(`No "${flags.exportDir}/" folder found.
|
|
313
|
+
throw new Error(`No "${flags.exportDir}/" folder found. Export your app with "npx expo export --platform web"`);
|
|
314
314
|
}
|
|
315
315
|
if (expoRoutesStat?.isFile()) {
|
|
316
316
|
return {
|
|
@@ -328,6 +328,9 @@ function logExportedProjectInfo(project) {
|
|
|
328
328
|
// Only show the timestamp for exports older than 1 minute
|
|
329
329
|
if (project.modifiedAt && Date.now() - project.modifiedAt.getTime() > 60000) {
|
|
330
330
|
modifiedAgo = ` - exported ${(0, timeago_js_1.format)(project.modifiedAt)}`;
|
|
331
|
+
log_1.default.warn(`> Project export: ${project.type}${modifiedAgo}}`);
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
log_1.default.log((0, chalk_1.default) `{dim > Project export: ${project.type}}`);
|
|
331
335
|
}
|
|
332
|
-
log_1.default.log((0, chalk_1.default) `{dim > Project export: ${project.type}${modifiedAgo}}`);
|
|
333
336
|
}
|
|
@@ -11,7 +11,7 @@ const WorkflowRevisionMutation_1 = require("../../graphql/mutations/WorkflowRevi
|
|
|
11
11
|
const WorkflowRunMutation_1 = require("../../graphql/mutations/WorkflowRunMutation");
|
|
12
12
|
const log_1 = tslib_1.__importStar(require("../../log"));
|
|
13
13
|
const projectUtils_1 = require("../../project/projectUtils");
|
|
14
|
-
const
|
|
14
|
+
const uploadAccountScopedFileAsync_1 = require("../../project/uploadAccountScopedFileAsync");
|
|
15
15
|
const uploadAccountScopedProjectSourceAsync_1 = require("../../project/uploadAccountScopedProjectSourceAsync");
|
|
16
16
|
const workflowFile_1 = require("../../utils/workflowFile");
|
|
17
17
|
class WorkflowRun extends EasCommand_1.default {
|
|
@@ -65,16 +65,24 @@ class WorkflowRun extends EasCommand_1.default {
|
|
|
65
65
|
}
|
|
66
66
|
let projectArchiveBucketKey;
|
|
67
67
|
let easJsonBucketKey;
|
|
68
|
+
let packageJsonBucketKey;
|
|
68
69
|
try {
|
|
69
70
|
({ projectArchiveBucketKey } = await (0, uploadAccountScopedProjectSourceAsync_1.uploadAccountScopedProjectSourceAsync)({
|
|
70
71
|
graphqlClient,
|
|
71
72
|
vcsClient,
|
|
72
73
|
accountId: account.id,
|
|
73
74
|
}));
|
|
74
|
-
({ easJsonBucketKey } = await (0,
|
|
75
|
+
({ fileBucketKey: easJsonBucketKey } = await (0, uploadAccountScopedFileAsync_1.uploadAccountScopedFileAsync)({
|
|
75
76
|
graphqlClient,
|
|
76
77
|
accountId: account.id,
|
|
77
|
-
projectDir,
|
|
78
|
+
filePath: path.join(projectDir, 'eas.json'),
|
|
79
|
+
maxSizeBytes: 1024 * 1024,
|
|
80
|
+
}));
|
|
81
|
+
({ fileBucketKey: packageJsonBucketKey } = await (0, uploadAccountScopedFileAsync_1.uploadAccountScopedFileAsync)({
|
|
82
|
+
graphqlClient,
|
|
83
|
+
accountId: account.id,
|
|
84
|
+
filePath: path.join(projectDir, 'package.json'),
|
|
85
|
+
maxSizeBytes: 1024 * 1024,
|
|
78
86
|
}));
|
|
79
87
|
}
|
|
80
88
|
catch (err) {
|
|
@@ -93,6 +101,7 @@ class WorkflowRun extends EasCommand_1.default {
|
|
|
93
101
|
type: generated_1.WorkflowProjectSourceType.Gcs,
|
|
94
102
|
projectArchiveBucketKey,
|
|
95
103
|
easJsonBucketKey,
|
|
104
|
+
packageJsonBucketKey,
|
|
96
105
|
},
|
|
97
106
|
},
|
|
98
107
|
});
|
|
@@ -31,7 +31,7 @@ async function collectDataAndRegisterDeviceAsync(graphqlClient, { accountId, app
|
|
|
31
31
|
return;
|
|
32
32
|
}
|
|
33
33
|
const { udid, deviceClass, name } = deviceData;
|
|
34
|
-
const spinner = (0, ora_1.ora)(`Registering Apple device on
|
|
34
|
+
const spinner = (0, ora_1.ora)(`Registering Apple device on EAS`).start();
|
|
35
35
|
try {
|
|
36
36
|
await AppleDeviceMutation_1.AppleDeviceMutation.createAppleDeviceAsync(graphqlClient, {
|
|
37
37
|
appleTeamId: appleTeam.id,
|
|
@@ -24,7 +24,7 @@ async function runInputMethodAsync(graphqlClient, accountId, appleTeam) {
|
|
|
24
24
|
exports.runInputMethodAsync = runInputMethodAsync;
|
|
25
25
|
async function collectDataAndRegisterDeviceAsync(graphqlClient, { accountId, appleTeam, }) {
|
|
26
26
|
const { udid, deviceClass, name } = await collectDeviceDataAsync(appleTeam);
|
|
27
|
-
const spinner = (0, ora_1.ora)(`Registering Apple device on
|
|
27
|
+
const spinner = (0, ora_1.ora)(`Registering Apple device on EAS`).start();
|
|
28
28
|
try {
|
|
29
29
|
await AppleDeviceMutation_1.AppleDeviceMutation.createAppleDeviceAsync(graphqlClient, {
|
|
30
30
|
appleTeamId: appleTeam.id,
|
|
@@ -166,6 +166,8 @@ export type Account = {
|
|
|
166
166
|
id: Scalars['ID']['output'];
|
|
167
167
|
isCurrent: Scalars['Boolean']['output'];
|
|
168
168
|
isDisabled: Scalars['Boolean']['output'];
|
|
169
|
+
/** Whether an Account plan falls into AppDevDomainName's free or paid tier */
|
|
170
|
+
isFreeAppDevDomainTier: Scalars['Boolean']['output'];
|
|
169
171
|
/** Whether this account has SSO enabled. Can be queried by all members. */
|
|
170
172
|
isSSOEnabled: Scalars['Boolean']['output'];
|
|
171
173
|
lastDeletionAttemptTime?: Maybe<Scalars['DateTime']['output']>;
|
|
@@ -176,6 +178,7 @@ export type Account = {
|
|
|
176
178
|
owner?: Maybe<User>;
|
|
177
179
|
/** Owning UserActor of this account if personal account */
|
|
178
180
|
ownerUserActor?: Maybe<UserActor>;
|
|
181
|
+
profileImageUrl: Scalars['String']['output'];
|
|
179
182
|
pushSecurityEnabled: Scalars['Boolean']['output'];
|
|
180
183
|
/** @deprecated Legacy access tokens are deprecated */
|
|
181
184
|
requiresAccessTokenForPushSecurity: Scalars['Boolean']['output'];
|
|
@@ -1216,6 +1219,8 @@ export type App = Project & {
|
|
|
1216
1219
|
/** EAS updates owned by an app */
|
|
1217
1220
|
updates: Array<Update>;
|
|
1218
1221
|
updatesPaginated: AppUpdatesConnection;
|
|
1222
|
+
/** Project query object for querying EAS usage metrics */
|
|
1223
|
+
usageMetrics: AppUsageMetrics;
|
|
1219
1224
|
/** @deprecated Use ownerAccount.name instead */
|
|
1220
1225
|
username: Scalars['String']['output'];
|
|
1221
1226
|
/** @deprecated No longer supported */
|
|
@@ -1750,6 +1755,37 @@ export type AppUpdatesConnection = {
|
|
|
1750
1755
|
export declare enum AppUploadSessionType {
|
|
1751
1756
|
ProfileImageUpload = "PROFILE_IMAGE_UPLOAD"
|
|
1752
1757
|
}
|
|
1758
|
+
export type AppUsageMetric = {
|
|
1759
|
+
__typename?: 'AppUsageMetric';
|
|
1760
|
+
id: Scalars['ID']['output'];
|
|
1761
|
+
metricType: UsageMetricType;
|
|
1762
|
+
serviceMetric: EasServiceMetric;
|
|
1763
|
+
timestamp: Scalars['DateTime']['output'];
|
|
1764
|
+
value: Scalars['Float']['output'];
|
|
1765
|
+
};
|
|
1766
|
+
export type AppUsageMetricTotal = {
|
|
1767
|
+
__typename?: 'AppUsageMetricTotal';
|
|
1768
|
+
billingPeriod: BillingPeriod;
|
|
1769
|
+
id: Scalars['ID']['output'];
|
|
1770
|
+
planMetrics: Array<EstimatedUsage>;
|
|
1771
|
+
/** Total cost of overages, in cents */
|
|
1772
|
+
totalCost: Scalars['Float']['output'];
|
|
1773
|
+
};
|
|
1774
|
+
export type AppUsageMetrics = {
|
|
1775
|
+
__typename?: 'AppUsageMetrics';
|
|
1776
|
+
byBillingPeriod: AppUsageMetricTotal;
|
|
1777
|
+
metricsForServiceMetric: Array<AppUsageMetric>;
|
|
1778
|
+
};
|
|
1779
|
+
export type AppUsageMetricsByBillingPeriodArgs = {
|
|
1780
|
+
date: Scalars['DateTime']['input'];
|
|
1781
|
+
service?: InputMaybe<EasService>;
|
|
1782
|
+
};
|
|
1783
|
+
export type AppUsageMetricsMetricsForServiceMetricArgs = {
|
|
1784
|
+
filterParams?: InputMaybe<Scalars['JSONObject']['input']>;
|
|
1785
|
+
granularity: UsageMetricsGranularity;
|
|
1786
|
+
serviceMetric: EasServiceMetric;
|
|
1787
|
+
timespan: UsageMetricsTimespan;
|
|
1788
|
+
};
|
|
1753
1789
|
/** Represents Play Store/App Store version of an application */
|
|
1754
1790
|
export type AppVersion = {
|
|
1755
1791
|
__typename?: 'AppVersion';
|
|
@@ -2796,6 +2832,7 @@ export declare enum CrashSampleFor {
|
|
|
2796
2832
|
Oldest = "OLDEST"
|
|
2797
2833
|
}
|
|
2798
2834
|
export type CrashesFilters = {
|
|
2835
|
+
crashKind?: InputMaybe<Array<WorkerDeploymentCrashKind>>;
|
|
2799
2836
|
name?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
2800
2837
|
};
|
|
2801
2838
|
export type CreateAccessTokenInput = {
|
|
@@ -4616,6 +4653,7 @@ export type PublicArtifacts = {
|
|
|
4616
4653
|
export type PublishUpdateGroupInput = {
|
|
4617
4654
|
awaitingCodeSigningInfo?: InputMaybe<Scalars['Boolean']['input']>;
|
|
4618
4655
|
branchId: Scalars['String']['input'];
|
|
4656
|
+
environment?: InputMaybe<EnvironmentVariableEnvironment>;
|
|
4619
4657
|
excludedAssets?: InputMaybe<Array<PartialManifestAsset>>;
|
|
4620
4658
|
fingerprintInfoGroup?: InputMaybe<FingerprintInfoGroup>;
|
|
4621
4659
|
gitCommitHash?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -4643,6 +4681,7 @@ export type RequestsFilters = {
|
|
|
4643
4681
|
hasCustomDomainOrigin?: InputMaybe<Scalars['Boolean']['input']>;
|
|
4644
4682
|
isAsset?: InputMaybe<Scalars['Boolean']['input']>;
|
|
4645
4683
|
isCrash?: InputMaybe<Scalars['Boolean']['input']>;
|
|
4684
|
+
isLimitExceeded?: InputMaybe<Scalars['Boolean']['input']>;
|
|
4646
4685
|
isVerifiedBot?: InputMaybe<Scalars['Boolean']['input']>;
|
|
4647
4686
|
method?: InputMaybe<Array<RequestMethod>>;
|
|
4648
4687
|
os?: InputMaybe<Array<UserAgentOs>>;
|
|
@@ -4710,8 +4749,11 @@ export type Robot = Actor & {
|
|
|
4710
4749
|
*/
|
|
4711
4750
|
featureGates: Scalars['JSONObject']['output'];
|
|
4712
4751
|
firstName?: Maybe<Scalars['String']['output']>;
|
|
4752
|
+
/** GitHub App Installations that manage this actor */
|
|
4753
|
+
githubAppInstallations: Array<GitHubAppInstallation>;
|
|
4713
4754
|
id: Scalars['ID']['output'];
|
|
4714
4755
|
isExpoAdmin: Scalars['Boolean']['output'];
|
|
4756
|
+
isManagedByGitHubApp: Scalars['Boolean']['output'];
|
|
4715
4757
|
lastDeletionAttemptTime?: Maybe<Scalars['DateTime']['output']>;
|
|
4716
4758
|
};
|
|
4717
4759
|
/** Represents a robot (not human) actor. */
|
|
@@ -5388,7 +5430,7 @@ export declare enum SubmissionAndroidTrack {
|
|
|
5388
5430
|
Production = "PRODUCTION"
|
|
5389
5431
|
}
|
|
5390
5432
|
export type SubmissionArchiveSourceInput = {
|
|
5391
|
-
/** Required if the archive source type is GCS_BUILD_APPLICATION_ARCHIVE or GCS_SUBMIT_ARCHIVE */
|
|
5433
|
+
/** Required if the archive source type is GCS_BUILD_APPLICATION_ARCHIVE, GCS_BUILD_APPLICATION_ARCHIVE_ORCHESTRATOR or GCS_SUBMIT_ARCHIVE */
|
|
5392
5434
|
bucketKey?: InputMaybe<Scalars['String']['input']>;
|
|
5393
5435
|
type: SubmissionArchiveSourceType;
|
|
5394
5436
|
/** Required if the archive source type is URL */
|
|
@@ -5396,6 +5438,7 @@ export type SubmissionArchiveSourceInput = {
|
|
|
5396
5438
|
};
|
|
5397
5439
|
export declare enum SubmissionArchiveSourceType {
|
|
5398
5440
|
GcsBuildApplicationArchive = "GCS_BUILD_APPLICATION_ARCHIVE",
|
|
5441
|
+
GcsBuildApplicationArchiveOrchestrator = "GCS_BUILD_APPLICATION_ARCHIVE_ORCHESTRATOR",
|
|
5399
5442
|
GcsSubmitArchive = "GCS_SUBMIT_ARCHIVE",
|
|
5400
5443
|
Url = "URL"
|
|
5401
5444
|
}
|
|
@@ -5525,6 +5568,7 @@ export type Update = ActivityTimelineProjectActivity & {
|
|
|
5525
5568
|
codeSigningInfo?: Maybe<CodeSigningInfo>;
|
|
5526
5569
|
createdAt: Scalars['DateTime']['output'];
|
|
5527
5570
|
deployments: DeploymentResult;
|
|
5571
|
+
environment?: Maybe<EnvironmentVariableEnvironment>;
|
|
5528
5572
|
expoGoSDKVersion?: Maybe<Scalars['String']['output']>;
|
|
5529
5573
|
fingerprint?: Maybe<Fingerprint>;
|
|
5530
5574
|
gitCommitHash?: Maybe<Scalars['String']['output']>;
|
|
@@ -6435,6 +6479,7 @@ export type WorkerDeployment = ActivityTimelineProjectActivity & {
|
|
|
6435
6479
|
activityTimestamp: Scalars['DateTime']['output'];
|
|
6436
6480
|
actor?: Maybe<Actor>;
|
|
6437
6481
|
aliases?: Maybe<Array<WorkerDeploymentAlias>>;
|
|
6482
|
+
app: App;
|
|
6438
6483
|
crashes?: Maybe<WorkerDeploymentCrashes>;
|
|
6439
6484
|
createdAt: Scalars['DateTime']['output'];
|
|
6440
6485
|
deploymentDomain: Scalars['String']['output'];
|
|
@@ -6445,7 +6490,6 @@ export type WorkerDeployment = ActivityTimelineProjectActivity & {
|
|
|
6445
6490
|
logs?: Maybe<WorkerDeploymentLogs>;
|
|
6446
6491
|
requests?: Maybe<WorkerDeploymentRequests>;
|
|
6447
6492
|
subdomain: Scalars['String']['output'];
|
|
6448
|
-
tier?: Maybe<WorkerDeploymentTier>;
|
|
6449
6493
|
url: Scalars['String']['output'];
|
|
6450
6494
|
};
|
|
6451
6495
|
export type WorkerDeploymentCrashesArgs = {
|
|
@@ -6488,9 +6532,18 @@ export type WorkerDeploymentCrashEdge = {
|
|
|
6488
6532
|
node: WorkerDeploymentCrashNode;
|
|
6489
6533
|
request?: Maybe<WorkerDeploymentRequestNode>;
|
|
6490
6534
|
};
|
|
6535
|
+
export declare enum WorkerDeploymentCrashKind {
|
|
6536
|
+
ExceededCpu = "EXCEEDED_CPU",
|
|
6537
|
+
ExceededMemory = "EXCEEDED_MEMORY",
|
|
6538
|
+
ExceededSubrequests = "EXCEEDED_SUBREQUESTS",
|
|
6539
|
+
Generic = "GENERIC",
|
|
6540
|
+
Internal = "INTERNAL",
|
|
6541
|
+
ResponseStreamDisconnected = "RESPONSE_STREAM_DISCONNECTED"
|
|
6542
|
+
}
|
|
6491
6543
|
export type WorkerDeploymentCrashNode = {
|
|
6492
6544
|
__typename?: 'WorkerDeploymentCrashNode';
|
|
6493
6545
|
crashHash: Scalars['ID']['output'];
|
|
6546
|
+
crashKind: WorkerDeploymentCrashKind;
|
|
6494
6547
|
crashTimestamp: Scalars['DateTime']['output'];
|
|
6495
6548
|
deploymentIdentifier: Scalars['String']['output'];
|
|
6496
6549
|
firstStackLine?: Maybe<Scalars['String']['output']>;
|
|
@@ -6588,6 +6641,7 @@ export type WorkerDeploymentRequestNode = {
|
|
|
6588
6641
|
hasCustomDomainOrigin: Scalars['Boolean']['output'];
|
|
6589
6642
|
isAsset: Scalars['Boolean']['output'];
|
|
6590
6643
|
isCrash: Scalars['Boolean']['output'];
|
|
6644
|
+
isLimitExceeded: Scalars['Boolean']['output'];
|
|
6591
6645
|
isRejected: Scalars['Boolean']['output'];
|
|
6592
6646
|
isStaleIfError: Scalars['Boolean']['output'];
|
|
6593
6647
|
isStaleWhileRevalidate: Scalars['Boolean']['output'];
|
|
@@ -6680,6 +6734,8 @@ export type WorkerDeploymentRequestsAggregationNode = {
|
|
|
6680
6734
|
durationP50: Scalars['Float']['output'];
|
|
6681
6735
|
durationP90: Scalars['Float']['output'];
|
|
6682
6736
|
durationP99: Scalars['Float']['output'];
|
|
6737
|
+
limitExceededPerMs?: Maybe<Scalars['Float']['output']>;
|
|
6738
|
+
limitExceededSum: Scalars['Int']['output'];
|
|
6683
6739
|
requestsPerMs?: Maybe<Scalars['Float']['output']>;
|
|
6684
6740
|
requestsSum: Scalars['Int']['output'];
|
|
6685
6741
|
sampleRate?: Maybe<Scalars['Float']['output']>;
|
|
@@ -6745,10 +6801,6 @@ export type WorkerDeploymentRequestsTimeseriesEdge = {
|
|
|
6745
6801
|
node?: Maybe<WorkerDeploymentRequestsAggregationNode>;
|
|
6746
6802
|
timestamp: Scalars['DateTime']['output'];
|
|
6747
6803
|
};
|
|
6748
|
-
export declare enum WorkerDeploymentTier {
|
|
6749
|
-
Free = "FREE",
|
|
6750
|
-
Paid = "PAID"
|
|
6751
|
-
}
|
|
6752
6804
|
export type WorkerDeploymentsConnection = {
|
|
6753
6805
|
__typename?: 'WorkerDeploymentsConnection';
|
|
6754
6806
|
edges: Array<WorkerDeploymentEdge>;
|
|
@@ -6836,6 +6888,7 @@ export declare enum WorkflowJobType {
|
|
|
6836
6888
|
AppleDeviceRegistrationRequest = "APPLE_DEVICE_REGISTRATION_REQUEST",
|
|
6837
6889
|
Build = "BUILD",
|
|
6838
6890
|
Custom = "CUSTOM",
|
|
6891
|
+
Deploy = "DEPLOY",
|
|
6839
6892
|
GetBuild = "GET_BUILD",
|
|
6840
6893
|
MaestroTest = "MAESTRO_TEST",
|
|
6841
6894
|
RequireApproval = "REQUIRE_APPROVAL",
|
|
@@ -6844,6 +6897,7 @@ export declare enum WorkflowJobType {
|
|
|
6844
6897
|
}
|
|
6845
6898
|
export type WorkflowProjectSourceInput = {
|
|
6846
6899
|
easJsonBucketKey: Scalars['String']['input'];
|
|
6900
|
+
packageJsonBucketKey?: InputMaybe<Scalars['String']['input']>;
|
|
6847
6901
|
projectArchiveBucketKey: Scalars['String']['input'];
|
|
6848
6902
|
type: WorkflowProjectSourceType;
|
|
6849
6903
|
};
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.Feature = exports.Experiment = exports.EnvironmentVariableVisibility = exports.EnvironmentVariableScope = exports.EnvironmentVariableEnvironment = exports.EnvironmentSecretType = exports.EntityTypeName = exports.EasTotalPlanEnablementUnit = exports.EasServiceMetric = exports.EasService = exports.EasBuildWaiverType = exports.EasBuildDeprecationInfoType = exports.EasBuildBillingResourceClass = exports.DistributionType = exports.CustomDomainStatus = exports.CustomDomainDnsRecordType = exports.CrashSampleFor = exports.ContinentCode = 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.AuditLogsExportFormat = exports.AssetMetadataStatus = exports.AppsFilter = exports.AppleTeamType = exports.AppleDeviceClass = exports.AppUploadSessionType = exports.AppStoreConnectUserRole = exports.AppSort = exports.AppPrivacy = exports.AppPlatform = exports.AppInternalDistributionBuildPrivacy = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.AndroidBuildType = exports.ActivityTimelineProjectActivityType = exports.AccountUploadSessionType = exports.AccountAppsSortByField = void 0;
|
|
10
10
|
exports.UsageMetricType = exports.UploadSessionType = exports.TargetEntityMutationType = exports.SubmissionStatus = exports.SubmissionPriority = exports.SubmissionArchiveSourceType = exports.SubmissionAndroidTrack = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StatuspageServiceStatus = exports.StatuspageServiceName = exports.StatuspageIncidentStatus = exports.StatuspageIncidentImpact = exports.StandardOffer = exports.SecondFactorMethod = exports.Role = exports.ResponseType = exports.ResponseStatusType = exports.ResponseCacheStatus = exports.ResourceClassExperiment = exports.RequestsOrderByField = exports.RequestsOrderByDirection = exports.RequestMethod = 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 = exports.IosManagedBuildType = exports.IosDistributionType = exports.IosBuildType = exports.InvoiceDiscountType = exports.InsightsFilterType = exports.GitHubJobRunTriggerType = exports.GitHubJobRunTriggerRunStatus = exports.GitHubJobRunJobType = exports.GitHubBuildTriggerType = exports.GitHubBuildTriggerRunStatus = exports.GitHubBuildTriggerExecutionBehavior = exports.GitHubAppInstallationStatus = exports.GitHubAppEnvironment = exports.FingerprintSourceType = void 0;
|
|
11
|
-
exports.WorkflowRunStatus = exports.WorkflowProjectSourceType = exports.WorkflowJobType = exports.WorkflowJobStatus = exports.WorkerLoggerLevel = exports.
|
|
11
|
+
exports.WorkflowRunStatus = exports.WorkflowProjectSourceType = exports.WorkflowJobType = exports.WorkflowJobStatus = exports.WorkerLoggerLevel = exports.WorkerDeploymentLogLevel = exports.WorkerDeploymentCrashKind = exports.WebhookType = exports.UserEntityTypeName = exports.UserAgentOs = exports.UserAgentBrowser = exports.UsageMetricsGranularity = void 0;
|
|
12
12
|
var AccountAppsSortByField;
|
|
13
13
|
(function (AccountAppsSortByField) {
|
|
14
14
|
AccountAppsSortByField["LatestActivityTime"] = "LATEST_ACTIVITY_TIME";
|
|
@@ -710,6 +710,7 @@ var SubmissionAndroidTrack;
|
|
|
710
710
|
var SubmissionArchiveSourceType;
|
|
711
711
|
(function (SubmissionArchiveSourceType) {
|
|
712
712
|
SubmissionArchiveSourceType["GcsBuildApplicationArchive"] = "GCS_BUILD_APPLICATION_ARCHIVE";
|
|
713
|
+
SubmissionArchiveSourceType["GcsBuildApplicationArchiveOrchestrator"] = "GCS_BUILD_APPLICATION_ARCHIVE_ORCHESTRATOR";
|
|
713
714
|
SubmissionArchiveSourceType["GcsSubmitArchive"] = "GCS_SUBMIT_ARCHIVE";
|
|
714
715
|
SubmissionArchiveSourceType["Url"] = "URL";
|
|
715
716
|
})(SubmissionArchiveSourceType || (exports.SubmissionArchiveSourceType = SubmissionArchiveSourceType = {}));
|
|
@@ -805,6 +806,15 @@ var WebhookType;
|
|
|
805
806
|
WebhookType["Build"] = "BUILD";
|
|
806
807
|
WebhookType["Submit"] = "SUBMIT";
|
|
807
808
|
})(WebhookType || (exports.WebhookType = WebhookType = {}));
|
|
809
|
+
var WorkerDeploymentCrashKind;
|
|
810
|
+
(function (WorkerDeploymentCrashKind) {
|
|
811
|
+
WorkerDeploymentCrashKind["ExceededCpu"] = "EXCEEDED_CPU";
|
|
812
|
+
WorkerDeploymentCrashKind["ExceededMemory"] = "EXCEEDED_MEMORY";
|
|
813
|
+
WorkerDeploymentCrashKind["ExceededSubrequests"] = "EXCEEDED_SUBREQUESTS";
|
|
814
|
+
WorkerDeploymentCrashKind["Generic"] = "GENERIC";
|
|
815
|
+
WorkerDeploymentCrashKind["Internal"] = "INTERNAL";
|
|
816
|
+
WorkerDeploymentCrashKind["ResponseStreamDisconnected"] = "RESPONSE_STREAM_DISCONNECTED";
|
|
817
|
+
})(WorkerDeploymentCrashKind || (exports.WorkerDeploymentCrashKind = WorkerDeploymentCrashKind = {}));
|
|
808
818
|
var WorkerDeploymentLogLevel;
|
|
809
819
|
(function (WorkerDeploymentLogLevel) {
|
|
810
820
|
WorkerDeploymentLogLevel["Debug"] = "DEBUG";
|
|
@@ -814,11 +824,6 @@ var WorkerDeploymentLogLevel;
|
|
|
814
824
|
WorkerDeploymentLogLevel["Log"] = "LOG";
|
|
815
825
|
WorkerDeploymentLogLevel["Warn"] = "WARN";
|
|
816
826
|
})(WorkerDeploymentLogLevel || (exports.WorkerDeploymentLogLevel = WorkerDeploymentLogLevel = {}));
|
|
817
|
-
var WorkerDeploymentTier;
|
|
818
|
-
(function (WorkerDeploymentTier) {
|
|
819
|
-
WorkerDeploymentTier["Free"] = "FREE";
|
|
820
|
-
WorkerDeploymentTier["Paid"] = "PAID";
|
|
821
|
-
})(WorkerDeploymentTier || (exports.WorkerDeploymentTier = WorkerDeploymentTier = {}));
|
|
822
827
|
var WorkerLoggerLevel;
|
|
823
828
|
(function (WorkerLoggerLevel) {
|
|
824
829
|
WorkerLoggerLevel["Debug"] = "DEBUG";
|
|
@@ -844,6 +849,7 @@ var WorkflowJobType;
|
|
|
844
849
|
WorkflowJobType["AppleDeviceRegistrationRequest"] = "APPLE_DEVICE_REGISTRATION_REQUEST";
|
|
845
850
|
WorkflowJobType["Build"] = "BUILD";
|
|
846
851
|
WorkflowJobType["Custom"] = "CUSTOM";
|
|
852
|
+
WorkflowJobType["Deploy"] = "DEPLOY";
|
|
847
853
|
WorkflowJobType["GetBuild"] = "GET_BUILD";
|
|
848
854
|
WorkflowJobType["MaestroTest"] = "MAESTRO_TEST";
|
|
849
855
|
WorkflowJobType["RequireApproval"] = "REQUIRE_APPROVAL";
|
|
@@ -14,17 +14,17 @@ export declare namespace WorkflowRevisionMutation {
|
|
|
14
14
|
fieldErrors: Record<string, string[]>;
|
|
15
15
|
}>;
|
|
16
16
|
}, "strip", z.ZodTypeAny, {
|
|
17
|
-
errorCode: "VALIDATION_ERROR";
|
|
18
17
|
metadata: {
|
|
19
18
|
formErrors: string[];
|
|
20
19
|
fieldErrors: Record<string, string[]>;
|
|
21
20
|
};
|
|
22
|
-
}, {
|
|
23
21
|
errorCode: "VALIDATION_ERROR";
|
|
22
|
+
}, {
|
|
24
23
|
metadata: {
|
|
25
24
|
formErrors: string[];
|
|
26
25
|
fieldErrors: Record<string, string[]>;
|
|
27
26
|
};
|
|
27
|
+
errorCode: "VALIDATION_ERROR";
|
|
28
28
|
}>;
|
|
29
29
|
function validateWorkflowYamlConfigAsync(graphqlClient: ExpoGraphqlClient, { appId, yamlConfig, }: {
|
|
30
30
|
appId: string;
|
|
@@ -51,13 +51,13 @@ async function fetchOrCreateProjectIDForWriteToConfigWithConfirmationAsync(graph
|
|
|
51
51
|
}
|
|
52
52
|
const projectDashboardUrl = (0, url_1.getProjectDashboardUrl)(accountName, projectName);
|
|
53
53
|
const projectLink = (0, log_1.link)(projectDashboardUrl, { text: projectFullName });
|
|
54
|
-
const spinner = (0, ora_1.ora)(`Creating ${chalk_1.default.bold(projectFullName)} on
|
|
54
|
+
const spinner = (0, ora_1.ora)(`Creating ${chalk_1.default.bold(projectFullName)} on EAS`).start();
|
|
55
55
|
try {
|
|
56
56
|
const id = await AppMutation_1.AppMutation.createAppAsync(graphqlClient, {
|
|
57
57
|
accountId: account.id,
|
|
58
58
|
projectName,
|
|
59
59
|
});
|
|
60
|
-
spinner.succeed(`Created ${chalk_1.default.bold(projectLink)} on
|
|
60
|
+
spinner.succeed(`Created ${chalk_1.default.bold(projectLink)} on EAS`);
|
|
61
61
|
return id;
|
|
62
62
|
}
|
|
63
63
|
catch (err) {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ExpoGraphqlClient } from '../commandUtils/context/contextUtils/createGraphqlClient';
|
|
2
|
+
/**
|
|
3
|
+
* Uploads a file to GCS as account-scoped object.
|
|
4
|
+
* Used in workflows. Takes care of logging progress.
|
|
5
|
+
* (Uses file name when mentioning file in logs.)
|
|
6
|
+
*/
|
|
7
|
+
export declare function uploadAccountScopedFileAsync({ graphqlClient, accountId, filePath, maxSizeBytes, }: {
|
|
8
|
+
graphqlClient: ExpoGraphqlClient;
|
|
9
|
+
accountId: string;
|
|
10
|
+
filePath: string;
|
|
11
|
+
maxSizeBytes: number;
|
|
12
|
+
}): Promise<{
|
|
13
|
+
fileBucketKey: string;
|
|
14
|
+
}>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.uploadAccountScopedFileAsync = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
6
|
+
const node_fs_1 = tslib_1.__importDefault(require("node:fs"));
|
|
7
|
+
const node_path_1 = tslib_1.__importDefault(require("node:path"));
|
|
8
|
+
const generated_1 = require("../graphql/generated");
|
|
9
|
+
const uploads_1 = require("../uploads");
|
|
10
|
+
const files_1 = require("../utils/files");
|
|
11
|
+
const progress_1 = require("../utils/progress");
|
|
12
|
+
/**
|
|
13
|
+
* Uploads a file to GCS as account-scoped object.
|
|
14
|
+
* Used in workflows. Takes care of logging progress.
|
|
15
|
+
* (Uses file name when mentioning file in logs.)
|
|
16
|
+
*/
|
|
17
|
+
async function uploadAccountScopedFileAsync({ graphqlClient, accountId, filePath, maxSizeBytes, }) {
|
|
18
|
+
const fileName = node_path_1.default.basename(filePath);
|
|
19
|
+
const fileStat = await node_fs_1.default.promises.stat(filePath);
|
|
20
|
+
if (fileStat.size > maxSizeBytes) {
|
|
21
|
+
throw new Error(`File is too big. Maximum allowed size is ${(0, files_1.formatBytes)(maxSizeBytes)}.`);
|
|
22
|
+
}
|
|
23
|
+
const fileBucketKey = await (0, uploads_1.uploadAccountScopedFileAtPathToGCSAsync)(graphqlClient, {
|
|
24
|
+
accountId,
|
|
25
|
+
type: generated_1.AccountUploadSessionType.WorkflowsProjectSources,
|
|
26
|
+
path: filePath,
|
|
27
|
+
handleProgressEvent: (0, progress_1.createProgressTracker)({
|
|
28
|
+
total: fileStat.size,
|
|
29
|
+
message: ratio => `Uploading ${fileName} to EAS (${(0, files_1.formatBytes)(fileStat.size * ratio)} / ${(0, files_1.formatBytes)(fileStat.size)})`,
|
|
30
|
+
completedMessage: (duration) => `Uploaded ${fileName} to EAS ${chalk_1.default.dim(duration)}`,
|
|
31
|
+
}),
|
|
32
|
+
});
|
|
33
|
+
return { fileBucketKey };
|
|
34
|
+
}
|
|
35
|
+
exports.uploadAccountScopedFileAsync = uploadAccountScopedFileAsync;
|
|
@@ -29,9 +29,9 @@ function warnAboutServiceOutage(service) {
|
|
|
29
29
|
log_1.default.warn(chalk_1.default.bold(`${humanReadableServiceName[service.name]} is experiencing a ${outageType} outage.`));
|
|
30
30
|
if (service.incidents.length > 0) {
|
|
31
31
|
const [currentIncident] = service.incidents;
|
|
32
|
-
log_1.default.warn(`Reason: ${currentIncident.name}
|
|
32
|
+
log_1.default.warn(`Reason: ${currentIncident.name}.`);
|
|
33
33
|
}
|
|
34
|
-
log_1.default.warn(`All information on service status and incidents available at ${(0, log_1.link)('https://status.expo.dev/')}
|
|
34
|
+
log_1.default.warn(`All information on service status and incidents available at ${(0, log_1.link)('https://status.expo.dev/')}`);
|
|
35
35
|
log_1.default.newLine();
|
|
36
36
|
}
|
|
37
37
|
async function getStatuspageServiceAsync(graphqlClient, serviceNames) {
|
package/build/worker/upload.d.ts
CHANGED
package/build/worker/upload.js
CHANGED
|
@@ -85,20 +85,22 @@ async function uploadAsync(params) {
|
|
|
85
85
|
catch (error) {
|
|
86
86
|
return retry(error);
|
|
87
87
|
}
|
|
88
|
+
const getErrorMessageAsync = async () => {
|
|
89
|
+
const body = await response.json().catch(() => null);
|
|
90
|
+
return body?.error ?? `Upload of "${filePath}" failed: ${response.statusText}`;
|
|
91
|
+
};
|
|
88
92
|
if (response.status === 408 ||
|
|
89
93
|
response.status === 409 ||
|
|
90
94
|
response.status === 429 ||
|
|
91
95
|
(response.status >= 500 && response.status <= 599)) {
|
|
92
|
-
|
|
93
|
-
const text = await response.text().catch(() => null);
|
|
94
|
-
return retry(new Error(text ? `${message}\n${text}` : message));
|
|
96
|
+
return retry(new Error(await getErrorMessageAsync()));
|
|
95
97
|
}
|
|
96
98
|
else if (response.status === 413) {
|
|
97
99
|
const message = `Upload of "${filePath}" failed: File size exceeded the upload limit`;
|
|
98
100
|
throw new Error(message);
|
|
99
101
|
}
|
|
100
102
|
else if (!response.ok) {
|
|
101
|
-
throw new Error(
|
|
103
|
+
throw new Error(await getErrorMessageAsync());
|
|
102
104
|
}
|
|
103
105
|
return {
|
|
104
106
|
params,
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eas-cli",
|
|
3
3
|
"description": "EAS command line tool",
|
|
4
|
-
"version": "14.
|
|
4
|
+
"version": "14.3.0",
|
|
5
5
|
"author": "Expo <support@expo.dev>",
|
|
6
6
|
"bin": {
|
|
7
7
|
"eas": "./bin/run"
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"@expo/code-signing-certificates": "0.0.5",
|
|
13
13
|
"@expo/config": "10.0.6",
|
|
14
14
|
"@expo/config-plugins": "9.0.12",
|
|
15
|
-
"@expo/eas-build-job": "1.0.
|
|
16
|
-
"@expo/eas-json": "14.
|
|
15
|
+
"@expo/eas-build-job": "1.0.156",
|
|
16
|
+
"@expo/eas-json": "14.3.0",
|
|
17
17
|
"@expo/env": "^0.4.0",
|
|
18
18
|
"@expo/json-file": "8.3.3",
|
|
19
19
|
"@expo/logger": "1.0.117",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"@expo/results": "1.0.0",
|
|
29
29
|
"@expo/rudder-sdk-node": "1.1.1",
|
|
30
30
|
"@expo/spawn-async": "1.7.2",
|
|
31
|
-
"@expo/steps": "1.0.
|
|
31
|
+
"@expo/steps": "1.0.156",
|
|
32
32
|
"@expo/timeago.js": "1.0.0",
|
|
33
33
|
"@oclif/core": "^1.26.2",
|
|
34
34
|
"@oclif/plugin-autocomplete": "^2.3.10",
|
|
@@ -95,6 +95,7 @@
|
|
|
95
95
|
"@graphql-codegen/introspection": "4.0.0",
|
|
96
96
|
"@graphql-codegen/typescript": "4.0.1",
|
|
97
97
|
"@graphql-codegen/typescript-operations": "4.0.1",
|
|
98
|
+
"@tsconfig/node18": "18.2.4",
|
|
98
99
|
"@types/cli-progress": "3.11.5",
|
|
99
100
|
"@types/dateformat": "3.0.1",
|
|
100
101
|
"@types/diff": "6.0.0",
|
|
@@ -236,5 +237,5 @@
|
|
|
236
237
|
"node": "20.11.0",
|
|
237
238
|
"yarn": "1.22.21"
|
|
238
239
|
},
|
|
239
|
-
"gitHead": "
|
|
240
|
+
"gitHead": "9d4fdc3c75750e3eda7c31f9e1ed7f860f3d4aa6"
|
|
240
241
|
}
|