eas-cli 1.1.1 → 1.2.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 +68 -76
- package/build/build/createContext.js +1 -0
- package/build/build/ios/graphql.js +0 -1
- package/build/commandUtils/EasCommand.d.ts +2 -0
- package/build/commandUtils/EasCommand.js +44 -3
- package/build/commands/build/index.d.ts +2 -1
- package/build/commands/build/index.js +36 -18
- package/build/commands/submit.d.ts +2 -1
- package/build/commands/submit.js +28 -14
- package/build/commands/update/index.js +3 -0
- package/build/credentials/android/api/GraphqlClient.js +1 -1
- package/build/credentials/context.d.ts +3 -0
- package/build/credentials/context.js +1 -0
- package/build/credentials/ios/IosCredentialsProvider.d.ts +1 -0
- package/build/credentials/ios/IosCredentialsProvider.js +33 -5
- package/build/credentials/ios/api/GraphqlClient.js +1 -1
- package/build/credentials/ios/appstore/bundleIdCapabilities.js +176 -15
- package/build/credentials/manager/ManageAndroid.js +2 -8
- package/build/credentials/manager/ManageIos.js +2 -4
- package/build/graphql/generated.d.ts +191 -39
- package/build/graphql/generated.js +39 -1
- package/build/{credentials/ios/api/graphql → graphql}/queries/AppQuery.d.ts +1 -1
- package/build/{credentials/ios/api/graphql → graphql}/queries/AppQuery.js +2 -2
- package/build/graphql/queries/EnvironmentSecretsQuery.d.ts +1 -1
- package/build/graphql/queries/EnvironmentSecretsQuery.js +2 -2
- package/build/graphql/queries/StatuspageServiceQuery.d.ts +4 -0
- package/build/graphql/queries/StatuspageServiceQuery.js +28 -0
- package/build/graphql/types/StatuspageService.d.ts +1 -0
- package/build/graphql/types/StatuspageService.js +19 -0
- package/build/project/ensureProjectExists.d.ts +0 -7
- package/build/project/ensureProjectExists.js +4 -14
- package/build/project/projectUtils.d.ts +0 -1
- package/build/project/projectUtils.js +9 -29
- package/build/submit/android/AndroidSubmitter.js +1 -1
- package/build/submit/submit.js +2 -2
- package/build/submit/utils/errors.js +2 -0
- package/build/utils/statuspageService.d.ts +2 -0
- package/build/utils/statuspageService.js +41 -0
- package/oclif.manifest.json +1 -1
- package/package.json +4 -4
- package/build/graphql/queries/ProjectQuery.d.ts +0 -6
- package/build/graphql/queries/ProjectQuery.js +0 -24
|
@@ -251,8 +251,8 @@ export declare type AccountMutation = {
|
|
|
251
251
|
grantActorPermissions: Account;
|
|
252
252
|
/** Rename this account and the primary user's username if this account is a personal account */
|
|
253
253
|
rename: Account;
|
|
254
|
-
/** Requests a refund for the specified charge
|
|
255
|
-
requestRefund
|
|
254
|
+
/** Requests a refund for the specified charge by requesting a manual refund from support */
|
|
255
|
+
requestRefund?: Maybe<Scalars['Boolean']>;
|
|
256
256
|
/** Revoke specified Permissions for Actor. Actor must already have at least one permission on the account. */
|
|
257
257
|
revokeActorPermissions: Account;
|
|
258
258
|
/**
|
|
@@ -676,9 +676,22 @@ export declare type AndroidJobKeystoreInput = {
|
|
|
676
676
|
keyPassword?: InputMaybe<Scalars['String']>;
|
|
677
677
|
keystorePassword: Scalars['String'];
|
|
678
678
|
};
|
|
679
|
+
export declare type AndroidJobOverridesInput = {
|
|
680
|
+
artifactPath?: InputMaybe<Scalars['String']>;
|
|
681
|
+
buildType?: InputMaybe<AndroidBuildType>;
|
|
682
|
+
builderEnvironment?: InputMaybe<AndroidBuilderEnvironmentInput>;
|
|
683
|
+
cache?: InputMaybe<BuildCacheInput>;
|
|
684
|
+
developmentClient?: InputMaybe<Scalars['Boolean']>;
|
|
685
|
+
experimental?: InputMaybe<Scalars['JSONObject']>;
|
|
686
|
+
gradleCommand?: InputMaybe<Scalars['String']>;
|
|
687
|
+
releaseChannel?: InputMaybe<Scalars['String']>;
|
|
688
|
+
secrets?: InputMaybe<AndroidJobSecretsInput>;
|
|
689
|
+
updates?: InputMaybe<BuildUpdatesInput>;
|
|
690
|
+
username?: InputMaybe<Scalars['String']>;
|
|
691
|
+
version?: InputMaybe<AndroidJobVersionInput>;
|
|
692
|
+
};
|
|
679
693
|
export declare type AndroidJobSecretsInput = {
|
|
680
694
|
buildCredentials?: InputMaybe<AndroidJobBuildCredentialsInput>;
|
|
681
|
-
environmentSecrets?: InputMaybe<Scalars['JSONObject']>;
|
|
682
695
|
};
|
|
683
696
|
export declare type AndroidJobVersionInput = {
|
|
684
697
|
versionCode: Scalars['String'];
|
|
@@ -1627,8 +1640,15 @@ export declare type BuildMutation = {
|
|
|
1627
1640
|
createIosBuild: CreateBuildResult;
|
|
1628
1641
|
/** Delete an EAS Build build */
|
|
1629
1642
|
deleteBuild: Build;
|
|
1630
|
-
/** Retry an EAS Build
|
|
1643
|
+
/** Retry an Android EAS Build */
|
|
1644
|
+
retryAndroidBuild: Build;
|
|
1645
|
+
/**
|
|
1646
|
+
* Retry an EAS Build build
|
|
1647
|
+
* @deprecated Use retryAndroidBuild and retryIosBuild instead
|
|
1648
|
+
*/
|
|
1631
1649
|
retryBuild: Build;
|
|
1650
|
+
/** Retry an iOS EAS Build */
|
|
1651
|
+
retryIosBuild: Build;
|
|
1632
1652
|
};
|
|
1633
1653
|
export declare type BuildMutationCancelBuildArgs = {
|
|
1634
1654
|
buildId: Scalars['ID'];
|
|
@@ -1648,9 +1668,17 @@ export declare type BuildMutationCreateIosBuildArgs = {
|
|
|
1648
1668
|
export declare type BuildMutationDeleteBuildArgs = {
|
|
1649
1669
|
buildId: Scalars['ID'];
|
|
1650
1670
|
};
|
|
1671
|
+
export declare type BuildMutationRetryAndroidBuildArgs = {
|
|
1672
|
+
buildId: Scalars['ID'];
|
|
1673
|
+
jobOverrides?: InputMaybe<AndroidJobOverridesInput>;
|
|
1674
|
+
};
|
|
1651
1675
|
export declare type BuildMutationRetryBuildArgs = {
|
|
1652
1676
|
buildId: Scalars['ID'];
|
|
1653
1677
|
};
|
|
1678
|
+
export declare type BuildMutationRetryIosBuildArgs = {
|
|
1679
|
+
buildId: Scalars['ID'];
|
|
1680
|
+
jobOverrides?: InputMaybe<IosJobOverridesInput>;
|
|
1681
|
+
};
|
|
1654
1682
|
export declare type BuildOrBuildJob = {
|
|
1655
1683
|
id: Scalars['ID'];
|
|
1656
1684
|
};
|
|
@@ -2267,9 +2295,27 @@ export declare type IosJobInput = {
|
|
|
2267
2295
|
username?: InputMaybe<Scalars['String']>;
|
|
2268
2296
|
version?: InputMaybe<IosJobVersionInput>;
|
|
2269
2297
|
};
|
|
2298
|
+
export declare type IosJobOverridesInput = {
|
|
2299
|
+
artifactPath?: InputMaybe<Scalars['String']>;
|
|
2300
|
+
buildConfiguration?: InputMaybe<Scalars['String']>;
|
|
2301
|
+
/** @deprecated */
|
|
2302
|
+
buildType?: InputMaybe<IosBuildType>;
|
|
2303
|
+
builderEnvironment?: InputMaybe<IosBuilderEnvironmentInput>;
|
|
2304
|
+
cache?: InputMaybe<BuildCacheInput>;
|
|
2305
|
+
developmentClient?: InputMaybe<Scalars['Boolean']>;
|
|
2306
|
+
/** @deprecated */
|
|
2307
|
+
distribution?: InputMaybe<DistributionType>;
|
|
2308
|
+
experimental?: InputMaybe<Scalars['JSONObject']>;
|
|
2309
|
+
releaseChannel?: InputMaybe<Scalars['String']>;
|
|
2310
|
+
scheme?: InputMaybe<Scalars['String']>;
|
|
2311
|
+
secrets?: InputMaybe<IosJobSecretsInput>;
|
|
2312
|
+
simulator?: InputMaybe<Scalars['Boolean']>;
|
|
2313
|
+
updates?: InputMaybe<BuildUpdatesInput>;
|
|
2314
|
+
username?: InputMaybe<Scalars['String']>;
|
|
2315
|
+
version?: InputMaybe<IosJobVersionInput>;
|
|
2316
|
+
};
|
|
2270
2317
|
export declare type IosJobSecretsInput = {
|
|
2271
2318
|
buildCredentials?: InputMaybe<Array<InputMaybe<IosJobTargetCredentialsInput>>>;
|
|
2272
|
-
environmentSecrets?: InputMaybe<Scalars['JSONObject']>;
|
|
2273
2319
|
};
|
|
2274
2320
|
export declare type IosJobTargetCredentialsInput = {
|
|
2275
2321
|
distributionCertificate: IosJobDistributionCertificateInput;
|
|
@@ -2681,8 +2727,6 @@ export declare type RootMutationBuildJobArgs = {
|
|
|
2681
2727
|
};
|
|
2682
2728
|
export declare type RootQuery = {
|
|
2683
2729
|
__typename?: 'RootQuery';
|
|
2684
|
-
/** Top-level query object for querying GitHub App information and resources it has access to. */
|
|
2685
|
-
GitHubApp: GitHubAppQuery;
|
|
2686
2730
|
/**
|
|
2687
2731
|
* This is a placeholder field
|
|
2688
2732
|
* @deprecated Not used.
|
|
@@ -2717,6 +2761,8 @@ export declare type RootQuery = {
|
|
|
2717
2761
|
clientBuilds: ClientBuildQuery;
|
|
2718
2762
|
/** Top-level query object for querying Experimentation configuration. */
|
|
2719
2763
|
experimentation: ExperimentationQuery;
|
|
2764
|
+
/** Top-level query object for querying GitHub App information and resources it has access to. */
|
|
2765
|
+
githubApp: GitHubAppQuery;
|
|
2720
2766
|
/** Top-level query object for querying Stripe Invoices. */
|
|
2721
2767
|
invoice: InvoiceQuery;
|
|
2722
2768
|
/**
|
|
@@ -2731,6 +2777,8 @@ export declare type RootQuery = {
|
|
|
2731
2777
|
meActor?: Maybe<Actor>;
|
|
2732
2778
|
project: ProjectQuery;
|
|
2733
2779
|
snack: SnackQuery;
|
|
2780
|
+
/** Top-level query object for querying Expo status page services. */
|
|
2781
|
+
statuspageService: StatuspageServiceQuery;
|
|
2734
2782
|
submissions: SubmissionQuery;
|
|
2735
2783
|
/** fetch all updates in a group */
|
|
2736
2784
|
updatesByGroup: Array<Update>;
|
|
@@ -2862,6 +2910,90 @@ export declare enum StandardOffer {
|
|
|
2862
2910
|
/** $348 USD per year, 30 day trial */
|
|
2863
2911
|
YearlySub = "YEARLY_SUB"
|
|
2864
2912
|
}
|
|
2913
|
+
/** Incident for a given component from Expo status page API. */
|
|
2914
|
+
export declare type StatuspageIncident = {
|
|
2915
|
+
__typename?: 'StatuspageIncident';
|
|
2916
|
+
createdAt: Scalars['DateTime'];
|
|
2917
|
+
id: Scalars['ID'];
|
|
2918
|
+
/** Impact of an incident from Expo status page. */
|
|
2919
|
+
impact: StatuspageIncidentImpact;
|
|
2920
|
+
name: Scalars['String'];
|
|
2921
|
+
resolvedAt?: Maybe<Scalars['DateTime']>;
|
|
2922
|
+
/** Shortlink to the incident from Expo status page. */
|
|
2923
|
+
shortlink: Scalars['String'];
|
|
2924
|
+
/** Current status of an incident from Expo status page. */
|
|
2925
|
+
status: StatuspageIncidentStatus;
|
|
2926
|
+
updatedAt: Scalars['DateTime'];
|
|
2927
|
+
/** List of all updates for an incident from Expo status page. */
|
|
2928
|
+
updates: Array<StatuspageIncidentUpdate>;
|
|
2929
|
+
};
|
|
2930
|
+
/** Possible Incident impact values from Expo status page API. */
|
|
2931
|
+
export declare enum StatuspageIncidentImpact {
|
|
2932
|
+
Critical = "CRITICAL",
|
|
2933
|
+
Maintenance = "MAINTENANCE",
|
|
2934
|
+
Major = "MAJOR",
|
|
2935
|
+
Minor = "MINOR",
|
|
2936
|
+
None = "NONE"
|
|
2937
|
+
}
|
|
2938
|
+
/** Possible Incident statuses from Expo status page API. */
|
|
2939
|
+
export declare enum StatuspageIncidentStatus {
|
|
2940
|
+
Completed = "COMPLETED",
|
|
2941
|
+
Identified = "IDENTIFIED",
|
|
2942
|
+
Investigating = "INVESTIGATING",
|
|
2943
|
+
InProgress = "IN_PROGRESS",
|
|
2944
|
+
Monitoring = "MONITORING",
|
|
2945
|
+
Resolved = "RESOLVED",
|
|
2946
|
+
Scheduled = "SCHEDULED",
|
|
2947
|
+
Verifying = "VERIFYING"
|
|
2948
|
+
}
|
|
2949
|
+
/** Update for an Incident from Expo status page API. */
|
|
2950
|
+
export declare type StatuspageIncidentUpdate = {
|
|
2951
|
+
__typename?: 'StatuspageIncidentUpdate';
|
|
2952
|
+
/** Text of an update from Expo status page. */
|
|
2953
|
+
body: Scalars['String'];
|
|
2954
|
+
createdAt: Scalars['DateTime'];
|
|
2955
|
+
id: Scalars['ID'];
|
|
2956
|
+
/** Status set at the moment of update. */
|
|
2957
|
+
status: StatuspageIncidentStatus;
|
|
2958
|
+
};
|
|
2959
|
+
/** Service monitored by Expo status page. */
|
|
2960
|
+
export declare type StatuspageService = {
|
|
2961
|
+
__typename?: 'StatuspageService';
|
|
2962
|
+
/** Description of a service from Expo status page. */
|
|
2963
|
+
description?: Maybe<Scalars['String']>;
|
|
2964
|
+
id: Scalars['ID'];
|
|
2965
|
+
/**
|
|
2966
|
+
* List of last inicdents for a service from Expo status page (we always query for 50 latest incidents for all services)
|
|
2967
|
+
* sorted by createdAt field in descending order.
|
|
2968
|
+
*/
|
|
2969
|
+
incidents: Array<StatuspageIncident>;
|
|
2970
|
+
/** Name of a service monitored by Expo status page. */
|
|
2971
|
+
name: StatuspageServiceName;
|
|
2972
|
+
/** Current status of a service from Expo status page. */
|
|
2973
|
+
status: StatuspageServiceStatus;
|
|
2974
|
+
};
|
|
2975
|
+
/** Name of a service monitored by Expo status page. */
|
|
2976
|
+
export declare enum StatuspageServiceName {
|
|
2977
|
+
EasBuild = "EAS_BUILD",
|
|
2978
|
+
EasSubmit = "EAS_SUBMIT",
|
|
2979
|
+
EasUpdate = "EAS_UPDATE"
|
|
2980
|
+
}
|
|
2981
|
+
export declare type StatuspageServiceQuery = {
|
|
2982
|
+
__typename?: 'StatuspageServiceQuery';
|
|
2983
|
+
/** Query services from Expo status page by names. */
|
|
2984
|
+
byServiceNames: Array<StatuspageService>;
|
|
2985
|
+
};
|
|
2986
|
+
export declare type StatuspageServiceQueryByServiceNamesArgs = {
|
|
2987
|
+
serviceNames: Array<StatuspageServiceName>;
|
|
2988
|
+
};
|
|
2989
|
+
/** Possible statuses for a service. */
|
|
2990
|
+
export declare enum StatuspageServiceStatus {
|
|
2991
|
+
DegradedPerformance = "DEGRADED_PERFORMANCE",
|
|
2992
|
+
MajorOutage = "MAJOR_OUTAGE",
|
|
2993
|
+
Operational = "OPERATIONAL",
|
|
2994
|
+
PartialOutage = "PARTIAL_OUTAGE",
|
|
2995
|
+
UnderMaintenance = "UNDER_MAINTENANCE"
|
|
2996
|
+
}
|
|
2865
2997
|
export declare type StripeCoupon = {
|
|
2866
2998
|
__typename?: 'StripeCoupon';
|
|
2867
2999
|
amountOff?: Maybe<Scalars['String']>;
|
|
@@ -5168,21 +5300,6 @@ export declare type SetAppStoreConnectApiKeyForSubmissionsMutation = {
|
|
|
5168
5300
|
};
|
|
5169
5301
|
};
|
|
5170
5302
|
};
|
|
5171
|
-
export declare type AppByFullNameQueryVariables = Exact<{
|
|
5172
|
-
fullName: Scalars['String'];
|
|
5173
|
-
}>;
|
|
5174
|
-
export declare type AppByFullNameQuery = {
|
|
5175
|
-
__typename?: 'RootQuery';
|
|
5176
|
-
app: {
|
|
5177
|
-
__typename?: 'AppQuery';
|
|
5178
|
-
byFullName: {
|
|
5179
|
-
__typename?: 'App';
|
|
5180
|
-
id: string;
|
|
5181
|
-
fullName: string;
|
|
5182
|
-
slug: string;
|
|
5183
|
-
};
|
|
5184
|
-
};
|
|
5185
|
-
};
|
|
5186
5303
|
export declare type AppStoreConnectApiKeyByAccountQueryVariables = Exact<{
|
|
5187
5304
|
accountName: Scalars['String'];
|
|
5188
5305
|
}>;
|
|
@@ -6392,6 +6509,21 @@ export declare type DeleteWebhookMutation = {
|
|
|
6392
6509
|
};
|
|
6393
6510
|
};
|
|
6394
6511
|
};
|
|
6512
|
+
export declare type AppByFullNameQueryVariables = Exact<{
|
|
6513
|
+
fullName: Scalars['String'];
|
|
6514
|
+
}>;
|
|
6515
|
+
export declare type AppByFullNameQuery = {
|
|
6516
|
+
__typename?: 'RootQuery';
|
|
6517
|
+
app: {
|
|
6518
|
+
__typename?: 'AppQuery';
|
|
6519
|
+
byFullName: {
|
|
6520
|
+
__typename?: 'App';
|
|
6521
|
+
id: string;
|
|
6522
|
+
fullName: string;
|
|
6523
|
+
slug: string;
|
|
6524
|
+
};
|
|
6525
|
+
};
|
|
6526
|
+
};
|
|
6395
6527
|
export declare type LatestAppVersionQueryVariables = Exact<{
|
|
6396
6528
|
appId: Scalars['String'];
|
|
6397
6529
|
platform: AppPlatform;
|
|
@@ -6794,23 +6926,6 @@ export declare type EnvironmentSecretsByAppIdQuery = {
|
|
|
6794
6926
|
};
|
|
6795
6927
|
};
|
|
6796
6928
|
};
|
|
6797
|
-
export declare type ProjectByUsernameAndSlugQueryVariables = Exact<{
|
|
6798
|
-
username: Scalars['String'];
|
|
6799
|
-
slug: Scalars['String'];
|
|
6800
|
-
}>;
|
|
6801
|
-
export declare type ProjectByUsernameAndSlugQuery = {
|
|
6802
|
-
__typename?: 'RootQuery';
|
|
6803
|
-
project: {
|
|
6804
|
-
__typename?: 'ProjectQuery';
|
|
6805
|
-
byUsernameAndSlug: {
|
|
6806
|
-
__typename?: 'App';
|
|
6807
|
-
id: string;
|
|
6808
|
-
} | {
|
|
6809
|
-
__typename?: 'Snack';
|
|
6810
|
-
id: string;
|
|
6811
|
-
};
|
|
6812
|
-
};
|
|
6813
|
-
};
|
|
6814
6929
|
export declare type GetAssetMetadataQueryVariables = Exact<{
|
|
6815
6930
|
storageKeys: Array<Scalars['String']> | Scalars['String'];
|
|
6816
6931
|
}>;
|
|
@@ -6839,6 +6954,29 @@ export declare type GetAssetLimitPerUpdateGroupForAppQuery = {
|
|
|
6839
6954
|
};
|
|
6840
6955
|
};
|
|
6841
6956
|
};
|
|
6957
|
+
export declare type StatuspageServiceByServiceNamesQueryVariables = Exact<{
|
|
6958
|
+
serviceNames: Array<StatuspageServiceName> | StatuspageServiceName;
|
|
6959
|
+
}>;
|
|
6960
|
+
export declare type StatuspageServiceByServiceNamesQuery = {
|
|
6961
|
+
__typename?: 'RootQuery';
|
|
6962
|
+
statuspageService: {
|
|
6963
|
+
__typename?: 'StatuspageServiceQuery';
|
|
6964
|
+
byServiceNames: Array<{
|
|
6965
|
+
__typename?: 'StatuspageService';
|
|
6966
|
+
id: string;
|
|
6967
|
+
name: StatuspageServiceName;
|
|
6968
|
+
status: StatuspageServiceStatus;
|
|
6969
|
+
incidents: Array<{
|
|
6970
|
+
__typename?: 'StatuspageIncident';
|
|
6971
|
+
id: string;
|
|
6972
|
+
status: StatuspageIncidentStatus;
|
|
6973
|
+
name: string;
|
|
6974
|
+
impact: StatuspageIncidentImpact;
|
|
6975
|
+
shortlink: string;
|
|
6976
|
+
}>;
|
|
6977
|
+
}>;
|
|
6978
|
+
};
|
|
6979
|
+
};
|
|
6842
6980
|
export declare type SubmissionsByIdQueryVariables = Exact<{
|
|
6843
6981
|
submissionId: Scalars['ID'];
|
|
6844
6982
|
}>;
|
|
@@ -7244,6 +7382,20 @@ export declare type EnvironmentSecretFragment = {
|
|
|
7244
7382
|
name: string;
|
|
7245
7383
|
createdAt: any;
|
|
7246
7384
|
};
|
|
7385
|
+
export declare type StatuspageServiceFragment = {
|
|
7386
|
+
__typename?: 'StatuspageService';
|
|
7387
|
+
id: string;
|
|
7388
|
+
name: StatuspageServiceName;
|
|
7389
|
+
status: StatuspageServiceStatus;
|
|
7390
|
+
incidents: Array<{
|
|
7391
|
+
__typename?: 'StatuspageIncident';
|
|
7392
|
+
id: string;
|
|
7393
|
+
status: StatuspageIncidentStatus;
|
|
7394
|
+
name: string;
|
|
7395
|
+
impact: StatuspageIncidentImpact;
|
|
7396
|
+
shortlink: string;
|
|
7397
|
+
}>;
|
|
7398
|
+
};
|
|
7247
7399
|
export declare type SubmissionFragment = {
|
|
7248
7400
|
__typename?: 'Submission';
|
|
7249
7401
|
id: string;
|
|
@@ -6,7 +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.
|
|
9
|
+
exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.SubmissionStatus = 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.MailchimpTag = exports.MailchimpAudience = exports.IosSchemeBuildConfiguration = exports.IosManagedBuildType = exports.IosDistributionType = exports.IosBuildType = exports.InvoiceDiscountType = exports.Feature = exports.EasServiceMetric = exports.EasBuildDeprecationInfoType = exports.DistributionType = exports.CacheControlScope = exports.BuildWorkflow = exports.BuildStatus = exports.BuildResourceClass = exports.BuildPriority = exports.BuildJobStatus = exports.BuildJobLogsFormat = exports.BuildIosEnterpriseProvisioning = exports.BuildCredentialsSource = exports.AuthProtocolType = exports.AssetMetadataStatus = exports.AppsFilter = exports.AppleDeviceClass = exports.AppStoreConnectUserRole = exports.AppSort = exports.AppPrivacy = exports.AppPlatform = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.AndroidBuildType = exports.ActivityTimelineProjectActivityType = void 0;
|
|
10
|
+
exports.WebhookType = void 0;
|
|
10
11
|
var ActivityTimelineProjectActivityType;
|
|
11
12
|
(function (ActivityTimelineProjectActivityType) {
|
|
12
13
|
ActivityTimelineProjectActivityType["Build"] = "BUILD";
|
|
@@ -270,6 +271,43 @@ var StandardOffer;
|
|
|
270
271
|
/** $348 USD per year, 30 day trial */
|
|
271
272
|
StandardOffer["YearlySub"] = "YEARLY_SUB";
|
|
272
273
|
})(StandardOffer = exports.StandardOffer || (exports.StandardOffer = {}));
|
|
274
|
+
/** Possible Incident impact values from Expo status page API. */
|
|
275
|
+
var StatuspageIncidentImpact;
|
|
276
|
+
(function (StatuspageIncidentImpact) {
|
|
277
|
+
StatuspageIncidentImpact["Critical"] = "CRITICAL";
|
|
278
|
+
StatuspageIncidentImpact["Maintenance"] = "MAINTENANCE";
|
|
279
|
+
StatuspageIncidentImpact["Major"] = "MAJOR";
|
|
280
|
+
StatuspageIncidentImpact["Minor"] = "MINOR";
|
|
281
|
+
StatuspageIncidentImpact["None"] = "NONE";
|
|
282
|
+
})(StatuspageIncidentImpact = exports.StatuspageIncidentImpact || (exports.StatuspageIncidentImpact = {}));
|
|
283
|
+
/** Possible Incident statuses from Expo status page API. */
|
|
284
|
+
var StatuspageIncidentStatus;
|
|
285
|
+
(function (StatuspageIncidentStatus) {
|
|
286
|
+
StatuspageIncidentStatus["Completed"] = "COMPLETED";
|
|
287
|
+
StatuspageIncidentStatus["Identified"] = "IDENTIFIED";
|
|
288
|
+
StatuspageIncidentStatus["Investigating"] = "INVESTIGATING";
|
|
289
|
+
StatuspageIncidentStatus["InProgress"] = "IN_PROGRESS";
|
|
290
|
+
StatuspageIncidentStatus["Monitoring"] = "MONITORING";
|
|
291
|
+
StatuspageIncidentStatus["Resolved"] = "RESOLVED";
|
|
292
|
+
StatuspageIncidentStatus["Scheduled"] = "SCHEDULED";
|
|
293
|
+
StatuspageIncidentStatus["Verifying"] = "VERIFYING";
|
|
294
|
+
})(StatuspageIncidentStatus = exports.StatuspageIncidentStatus || (exports.StatuspageIncidentStatus = {}));
|
|
295
|
+
/** Name of a service monitored by Expo status page. */
|
|
296
|
+
var StatuspageServiceName;
|
|
297
|
+
(function (StatuspageServiceName) {
|
|
298
|
+
StatuspageServiceName["EasBuild"] = "EAS_BUILD";
|
|
299
|
+
StatuspageServiceName["EasSubmit"] = "EAS_SUBMIT";
|
|
300
|
+
StatuspageServiceName["EasUpdate"] = "EAS_UPDATE";
|
|
301
|
+
})(StatuspageServiceName = exports.StatuspageServiceName || (exports.StatuspageServiceName = {}));
|
|
302
|
+
/** Possible statuses for a service. */
|
|
303
|
+
var StatuspageServiceStatus;
|
|
304
|
+
(function (StatuspageServiceStatus) {
|
|
305
|
+
StatuspageServiceStatus["DegradedPerformance"] = "DEGRADED_PERFORMANCE";
|
|
306
|
+
StatuspageServiceStatus["MajorOutage"] = "MAJOR_OUTAGE";
|
|
307
|
+
StatuspageServiceStatus["Operational"] = "OPERATIONAL";
|
|
308
|
+
StatuspageServiceStatus["PartialOutage"] = "PARTIAL_OUTAGE";
|
|
309
|
+
StatuspageServiceStatus["UnderMaintenance"] = "UNDER_MAINTENANCE";
|
|
310
|
+
})(StatuspageServiceStatus = exports.StatuspageServiceStatus || (exports.StatuspageServiceStatus = {}));
|
|
273
311
|
var SubmissionAndroidArchiveType;
|
|
274
312
|
(function (SubmissionAndroidArchiveType) {
|
|
275
313
|
SubmissionAndroidArchiveType["Aab"] = "AAB";
|
|
@@ -5,8 +5,8 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
6
6
|
const graphql_1 = require("graphql");
|
|
7
7
|
const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
|
|
8
|
-
const client_1 = require("
|
|
9
|
-
const App_1 = require("
|
|
8
|
+
const client_1 = require("../client");
|
|
9
|
+
const App_1 = require("../types/App");
|
|
10
10
|
exports.AppQuery = {
|
|
11
11
|
async byFullNameAsync(fullName) {
|
|
12
12
|
const data = await (0, client_1.withErrorHandlingAsync)(client_1.graphqlClient
|
|
@@ -9,5 +9,5 @@ export declare type EnvironmentSecretWithScope = EnvironmentSecretFragment & {
|
|
|
9
9
|
export declare const EnvironmentSecretsQuery: {
|
|
10
10
|
byAccountNameAsync(accountName: string): Promise<EnvironmentSecretFragment[]>;
|
|
11
11
|
byAppIdAsync(appId: string): Promise<EnvironmentSecretFragment[]>;
|
|
12
|
-
allAsync(projectAccountName: string,
|
|
12
|
+
allAsync(projectAccountName: string, projectId: string): Promise<EnvironmentSecretWithScope[]>;
|
|
13
13
|
};
|
|
@@ -53,10 +53,10 @@ exports.EnvironmentSecretsQuery = {
|
|
|
53
53
|
.toPromise());
|
|
54
54
|
return (_b = (_a = data.app) === null || _a === void 0 ? void 0 : _a.byId.environmentSecrets) !== null && _b !== void 0 ? _b : [];
|
|
55
55
|
},
|
|
56
|
-
async allAsync(projectAccountName,
|
|
56
|
+
async allAsync(projectAccountName, projectId) {
|
|
57
57
|
const [accountSecrets, appSecrets] = await Promise.all([
|
|
58
58
|
this.byAccountNameAsync(projectAccountName),
|
|
59
|
-
this.byAppIdAsync(
|
|
59
|
+
this.byAppIdAsync(projectId),
|
|
60
60
|
]);
|
|
61
61
|
return [
|
|
62
62
|
...appSecrets.map(s => ({ ...s, scope: EnvironmentSecretScope.PROJECT })),
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StatuspageServiceQuery = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const graphql_1 = require("graphql");
|
|
6
|
+
const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
|
|
7
|
+
const client_1 = require("../client");
|
|
8
|
+
const StatuspageService_1 = require("../types/StatuspageService");
|
|
9
|
+
exports.StatuspageServiceQuery = {
|
|
10
|
+
async statuspageServicesAsync(serviceNames) {
|
|
11
|
+
const data = await (0, client_1.withErrorHandlingAsync)(client_1.graphqlClient
|
|
12
|
+
.query((0, graphql_tag_1.default) `
|
|
13
|
+
query StatuspageServiceByServiceNamesQuery($serviceNames: [StatuspageServiceName!]!) {
|
|
14
|
+
statuspageService {
|
|
15
|
+
byServiceNames(serviceNames: $serviceNames) {
|
|
16
|
+
id
|
|
17
|
+
...StatuspageServiceFragment
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
${(0, graphql_1.print)(StatuspageService_1.StatuspageServiceFragmentNode)}
|
|
22
|
+
`, { serviceNames }, {
|
|
23
|
+
additionalTypenames: ['StatuspageService', 'StatuspageIncident'],
|
|
24
|
+
})
|
|
25
|
+
.toPromise());
|
|
26
|
+
return data.statuspageService.byServiceNames;
|
|
27
|
+
},
|
|
28
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const StatuspageServiceFragmentNode: import("graphql").DocumentNode;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StatuspageServiceFragmentNode = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
|
|
6
|
+
exports.StatuspageServiceFragmentNode = (0, graphql_tag_1.default) `
|
|
7
|
+
fragment StatuspageServiceFragment on StatuspageService {
|
|
8
|
+
id
|
|
9
|
+
name
|
|
10
|
+
status
|
|
11
|
+
incidents {
|
|
12
|
+
id
|
|
13
|
+
status
|
|
14
|
+
name
|
|
15
|
+
impact
|
|
16
|
+
shortlink
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
`;
|
|
@@ -9,13 +9,6 @@ interface ProjectInfo {
|
|
|
9
9
|
* @returns The project ID
|
|
10
10
|
*/
|
|
11
11
|
export declare function ensureProjectExistsAsync(projectInfo: ProjectInfo): Promise<string>;
|
|
12
|
-
/**
|
|
13
|
-
* Finds project by `@accountName/slug` and returns its ID, return null if the project does not exist
|
|
14
|
-
* @param accountName account name
|
|
15
|
-
* @param slug project slug
|
|
16
|
-
* @returns A promise resolving to Project ID, null if it doesn't exist
|
|
17
|
-
*/
|
|
18
|
-
export declare function findProjectIdByAccountNameAndSlugNullableAsync(accountName: string, slug: string): Promise<string | null>;
|
|
19
12
|
/**
|
|
20
13
|
* Registers new project on EAS servers
|
|
21
14
|
* @returns Created project's ID
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.registerNewProjectAsync = exports.
|
|
3
|
+
exports.registerNewProjectAsync = exports.ensureProjectExistsAsync = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
6
6
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
@@ -8,7 +8,7 @@ const terminal_link_1 = tslib_1.__importDefault(require("terminal-link"));
|
|
|
8
8
|
const url_1 = require("../build/utils/url");
|
|
9
9
|
const generated_1 = require("../graphql/generated");
|
|
10
10
|
const AppMutation_1 = require("../graphql/mutations/AppMutation");
|
|
11
|
-
const
|
|
11
|
+
const AppQuery_1 = require("../graphql/queries/AppQuery");
|
|
12
12
|
const ora_1 = require("../ora");
|
|
13
13
|
const Account_1 = require("../user/Account");
|
|
14
14
|
const actions_1 = require("../user/actions");
|
|
@@ -64,7 +64,8 @@ exports.ensureProjectExistsAsync = ensureProjectExistsAsync;
|
|
|
64
64
|
async function findProjectIdByAccountNameAndSlugNullableAsync(accountName, slug) {
|
|
65
65
|
var _a;
|
|
66
66
|
try {
|
|
67
|
-
|
|
67
|
+
const { id } = await AppQuery_1.AppQuery.byFullNameAsync(`@${accountName}/${slug}`);
|
|
68
|
+
return id;
|
|
68
69
|
}
|
|
69
70
|
catch (err) {
|
|
70
71
|
if ((_a = err.graphQLErrors) === null || _a === void 0 ? void 0 : _a.some((it) => { var _a; return ((_a = it.extensions) === null || _a === void 0 ? void 0 : _a.errorCode) !== 'EXPERIENCE_NOT_FOUND'; })) {
|
|
@@ -73,17 +74,6 @@ async function findProjectIdByAccountNameAndSlugNullableAsync(accountName, slug)
|
|
|
73
74
|
return null;
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
|
-
exports.findProjectIdByAccountNameAndSlugNullableAsync = findProjectIdByAccountNameAndSlugNullableAsync;
|
|
77
|
-
/**
|
|
78
|
-
* Finds project by `@accountName/slug` and returns its ID
|
|
79
|
-
* @param accountName account name
|
|
80
|
-
* @param slug project slug
|
|
81
|
-
* @returns A promise resolving to Project ID
|
|
82
|
-
*/
|
|
83
|
-
async function findProjectIdByAccountNameAndSlugAsync(accountName, slug) {
|
|
84
|
-
const { id } = await ProjectQuery_1.ProjectQuery.byUsernameAndSlugAsync(accountName, slug);
|
|
85
|
-
return id;
|
|
86
|
-
}
|
|
87
77
|
/**
|
|
88
78
|
* Registers new project on EAS servers
|
|
89
79
|
* @returns Created project's ID
|
|
@@ -40,7 +40,6 @@ export declare function getProjectFullNameAsync(exp: ExpoConfig): Promise<string
|
|
|
40
40
|
* - both: app.config.js or app.json
|
|
41
41
|
*/
|
|
42
42
|
export declare function getProjectConfigDescription(projectDir: string): string;
|
|
43
|
-
export declare function promptToCreateProjectIfNotExistsAsync(exp: ExpoConfig): Promise<string | null>;
|
|
44
43
|
export declare function isExpoUpdatesInstalled(projectDir: string): boolean;
|
|
45
44
|
export declare function isExpoUpdatesInstalledOrAvailable(projectDir: string, sdkVersion?: string): boolean;
|
|
46
45
|
export declare function validateAppVersionRuntimePolicySupportAsync(projectDir: string, exp: ExpoConfig): Promise<void>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.installExpoUpdatesAsync = exports.validateAppVersionRuntimePolicySupportAsync = exports.isExpoUpdatesInstalledOrAvailable = exports.isExpoUpdatesInstalled = exports.
|
|
3
|
+
exports.installExpoUpdatesAsync = exports.validateAppVersionRuntimePolicySupportAsync = exports.isExpoUpdatesInstalledOrAvailable = exports.isExpoUpdatesInstalled = exports.getProjectConfigDescription = exports.getProjectFullNameAsync = exports.getProjectIdAsync = exports.fetchProjectIdFromServerAsync = exports.saveProjectIdToAppConfigAsync = exports.findProjectRootAsync = exports.getProjectAccountNameAsync = exports.getUsername = exports.getProjectAccountName = 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"));
|
|
@@ -11,7 +11,6 @@ const resolve_from_1 = tslib_1.__importDefault(require("resolve-from"));
|
|
|
11
11
|
const semver_1 = tslib_1.__importDefault(require("semver"));
|
|
12
12
|
const generated_1 = require("../graphql/generated");
|
|
13
13
|
const log_1 = tslib_1.__importDefault(require("../log"));
|
|
14
|
-
const prompts_1 = require("../prompts");
|
|
15
14
|
const actions_1 = require("../user/actions");
|
|
16
15
|
const expoCli_1 = require("../utils/expoCli");
|
|
17
16
|
const vcs_1 = require("../vcs");
|
|
@@ -84,11 +83,14 @@ async function saveProjectIdToAppConfigAsync(projectDir, projectId, options = {}
|
|
|
84
83
|
case 'success':
|
|
85
84
|
break;
|
|
86
85
|
case 'warn': {
|
|
87
|
-
log_1.default.
|
|
88
|
-
log_1.default.warn(
|
|
89
|
-
log_1.default.
|
|
90
|
-
log_1.default.warn(
|
|
91
|
-
log_1.default.
|
|
86
|
+
log_1.default.warn();
|
|
87
|
+
log_1.default.warn(`Warning: Your project uses dynamic app configuration, and the EAS project ID can't automatically be added to it.`);
|
|
88
|
+
log_1.default.warn(chalk_1.default.dim('https://docs.expo.dev/workflow/configuration/#dynamic-configuration-with-appconfigjs'));
|
|
89
|
+
log_1.default.warn();
|
|
90
|
+
log_1.default.warn(`To complete the setup process, set the ${chalk_1.default.bold('extra.eas.projectId')} in your ${chalk_1.default.bold(getProjectConfigDescription(projectDir))}:`);
|
|
91
|
+
log_1.default.warn();
|
|
92
|
+
log_1.default.warn(chalk_1.default.bold(JSON.stringify({ expo: { extra: { eas: { projectId } } } }, null, 2)));
|
|
93
|
+
log_1.default.warn();
|
|
92
94
|
throw new Error(result.message);
|
|
93
95
|
}
|
|
94
96
|
case 'fail':
|
|
@@ -178,28 +180,6 @@ function getProjectConfigDescription(projectDir) {
|
|
|
178
180
|
return 'app.config.js/app.json';
|
|
179
181
|
}
|
|
180
182
|
exports.getProjectConfigDescription = getProjectConfigDescription;
|
|
181
|
-
// return project id of existing/newly created project, or null if user declines
|
|
182
|
-
async function promptToCreateProjectIfNotExistsAsync(exp) {
|
|
183
|
-
const accountName = getProjectAccountName(exp, await (0, actions_1.ensureLoggedInAsync)());
|
|
184
|
-
const maybeProjectId = await (0, ensureProjectExists_1.findProjectIdByAccountNameAndSlugNullableAsync)(accountName, exp.slug);
|
|
185
|
-
if (maybeProjectId) {
|
|
186
|
-
return maybeProjectId;
|
|
187
|
-
}
|
|
188
|
-
const fullName = await getProjectFullNameAsync(exp);
|
|
189
|
-
const shouldCreateProject = await (0, prompts_1.confirmAsync)({
|
|
190
|
-
message: `Looks like ${fullName} is new. Register it with EAS?`,
|
|
191
|
-
});
|
|
192
|
-
if (!shouldCreateProject) {
|
|
193
|
-
return null;
|
|
194
|
-
}
|
|
195
|
-
const privacy = toAppPrivacy(exp.privacy);
|
|
196
|
-
return await (0, ensureProjectExists_1.ensureProjectExistsAsync)({
|
|
197
|
-
accountName,
|
|
198
|
-
projectName: exp.slug,
|
|
199
|
-
privacy,
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
exports.promptToCreateProjectIfNotExistsAsync = promptToCreateProjectIfNotExistsAsync;
|
|
203
183
|
function isExpoUpdatesInstalled(projectDir) {
|
|
204
184
|
const packageJson = (0, config_1.getPackageJson)(projectDir);
|
|
205
185
|
return !!(packageJson.dependencies && 'expo-updates' in packageJson.dependencies);
|
package/build/submit/submit.js
CHANGED
|
@@ -63,11 +63,11 @@ function printInstructionsForIosSubmission(submission) {
|
|
|
63
63
|
if (submission.status === generated_1.SubmissionStatus.Finished) {
|
|
64
64
|
const logMsg = [
|
|
65
65
|
chalk_1.default.bold('Your binary has been successfully uploaded to App Store Connect!'),
|
|
66
|
-
'- It is now being processed by Apple - you will receive an
|
|
66
|
+
'- It is now being processed by Apple - you will receive an email when the processing finishes.',
|
|
67
67
|
'- It usually takes about 5-10 minutes depending on how busy Apple servers are.',
|
|
68
68
|
// ascAppIdentifier should be always available for ios submissions but check it anyway
|
|
69
69
|
((_a = submission.iosConfig) === null || _a === void 0 ? void 0 : _a.ascAppIdentifier) &&
|
|
70
|
-
`- When it's done, you can see your build here: ${(0, log_1.link)(`https://appstoreconnect.apple.com/apps/${(_b = submission.iosConfig) === null || _b === void 0 ? void 0 : _b.ascAppIdentifier}/
|
|
70
|
+
`- When it's done, you can see your build here: ${(0, log_1.link)(`https://appstoreconnect.apple.com/apps/${(_b = submission.iosConfig) === null || _b === void 0 ? void 0 : _b.ascAppIdentifier}/testflight/ios`)}`,
|
|
71
71
|
].join('\n');
|
|
72
72
|
log_1.default.addNewLineIfNone();
|
|
73
73
|
log_1.default.log(logMsg);
|