eas-cli 16.1.0 → 16.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +117 -81
- package/build/build/utils/url.d.ts +1 -0
- package/build/build/utils/url.js +5 -1
- package/build/commandUtils/EasCommand.js +6 -1
- package/build/commandUtils/builds.d.ts +1 -0
- package/build/commandUtils/builds.js +3 -0
- package/build/commandUtils/context/ServerSideEnvironmentVariablesContextField.d.ts +1 -2
- package/build/commands/deploy/index.js +20 -2
- package/build/commands/fingerprint/compare.d.ts +3 -0
- package/build/commands/fingerprint/compare.js +50 -13
- package/build/commands/fingerprint/generate.d.ts +5 -2
- package/build/commands/fingerprint/generate.js +44 -7
- package/build/commands/update/delete.js +13 -6
- package/build/commands/update/index.d.ts +1 -0
- package/build/commands/update/index.js +90 -59
- package/build/commands/upload.d.ts +18 -0
- package/build/commands/upload.js +253 -0
- package/build/credentials/ios/appstore/ensureTestFlightGroup.js +4 -3
- package/build/graphql/generated.d.ts +170 -5
- package/build/graphql/generated.js +6 -2
- package/build/graphql/mutations/LocalBuildMutation.d.ts +5 -0
- package/build/graphql/mutations/LocalBuildMutation.js +38 -0
- package/build/graphql/mutations/UploadSessionMutation.d.ts +1 -1
- package/build/graphql/mutations/UploadSessionMutation.js +4 -3
- package/build/graphql/queries/BackgroundJobReceiptQuery.d.ts +5 -0
- package/build/graphql/queries/BackgroundJobReceiptQuery.js +27 -0
- package/build/graphql/types/BackgroundJobReceipt.d.ts +1 -0
- package/build/graphql/types/BackgroundJobReceipt.js +20 -0
- package/build/metadata/download.js +1 -1
- package/build/metadata/upload.js +1 -1
- package/build/metadata/utils/telemetry.d.ts +3 -3
- package/build/metadata/utils/telemetry.js +9 -9
- package/build/project/publish.d.ts +17 -1
- package/build/project/publish.js +22 -1
- package/build/run/ios/xcode.d.ts +15 -0
- package/build/run/ios/xcode.js +24 -1
- package/build/uploads.js +2 -1
- package/build/utils/pollForBackgroundJobReceiptAsync.d.ts +29 -0
- package/build/utils/pollForBackgroundJobReceiptAsync.js +92 -0
- package/oclif.manifest.json +80 -5
- package/package.json +5 -3
|
@@ -167,6 +167,7 @@ export type Account = {
|
|
|
167
167
|
googleServiceAccountKeys: Array<GoogleServiceAccountKey>;
|
|
168
168
|
/** Android credentials for account */
|
|
169
169
|
googleServiceAccountKeysPaginated: AccountGoogleServiceAccountKeysConnection;
|
|
170
|
+
hasBuilds: Scalars['Boolean']['output'];
|
|
170
171
|
id: Scalars['ID']['output'];
|
|
171
172
|
isCurrent: Scalars['Boolean']['output'];
|
|
172
173
|
isDisabled: Scalars['Boolean']['output'];
|
|
@@ -2595,6 +2596,8 @@ export type BuildMutation = {
|
|
|
2595
2596
|
createAndroidBuild: CreateBuildResult;
|
|
2596
2597
|
/** Create an iOS build */
|
|
2597
2598
|
createIosBuild: CreateBuildResult;
|
|
2599
|
+
/** Create a local build */
|
|
2600
|
+
createLocalBuild: CreateBuildResult;
|
|
2598
2601
|
/** Delete an EAS Build build */
|
|
2599
2602
|
deleteBuild: Build;
|
|
2600
2603
|
/** Retry an Android EAS Build */
|
|
@@ -2624,6 +2627,12 @@ export type BuildMutationCreateIosBuildArgs = {
|
|
|
2624
2627
|
job: IosJobInput;
|
|
2625
2628
|
metadata?: InputMaybe<BuildMetadataInput>;
|
|
2626
2629
|
};
|
|
2630
|
+
export type BuildMutationCreateLocalBuildArgs = {
|
|
2631
|
+
appId: Scalars['ID']['input'];
|
|
2632
|
+
artifactSource: LocalBuildArchiveSourceInput;
|
|
2633
|
+
job: LocalBuildJobInput;
|
|
2634
|
+
metadata?: InputMaybe<BuildMetadataInput>;
|
|
2635
|
+
};
|
|
2627
2636
|
export type BuildMutationDeleteBuildArgs = {
|
|
2628
2637
|
buildId: Scalars['ID']['input'];
|
|
2629
2638
|
};
|
|
@@ -2709,6 +2718,7 @@ export declare enum BuildPriority {
|
|
|
2709
2718
|
export type BuildPublicData = {
|
|
2710
2719
|
__typename?: 'BuildPublicData';
|
|
2711
2720
|
artifacts: PublicArtifacts;
|
|
2721
|
+
buildMode?: Maybe<BuildMode>;
|
|
2712
2722
|
distribution?: Maybe<DistributionType>;
|
|
2713
2723
|
id: Scalars['ID']['output'];
|
|
2714
2724
|
isForIosSimulator: Scalars['Boolean']['output'];
|
|
@@ -4373,6 +4383,7 @@ export type IosSubmissionConfigInput = {
|
|
|
4373
4383
|
ascApiKey?: InputMaybe<AscApiKeyInput>;
|
|
4374
4384
|
ascApiKeyId?: InputMaybe<Scalars['String']['input']>;
|
|
4375
4385
|
ascAppIdentifier: Scalars['String']['input'];
|
|
4386
|
+
groups?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
4376
4387
|
isVerboseFastlaneEnabled?: InputMaybe<Scalars['Boolean']['input']>;
|
|
4377
4388
|
};
|
|
4378
4389
|
/** Represents a Turtle Job Run */
|
|
@@ -4491,6 +4502,18 @@ export type LinkSharedEnvironmentVariableInput = {
|
|
|
4491
4502
|
environment?: InputMaybe<EnvironmentVariableEnvironment>;
|
|
4492
4503
|
environmentVariableId: Scalars['ID']['input'];
|
|
4493
4504
|
};
|
|
4505
|
+
export type LocalBuildArchiveSourceInput = {
|
|
4506
|
+
bucketKey: Scalars['String']['input'];
|
|
4507
|
+
type: LocalBuildArchiveSourceType;
|
|
4508
|
+
};
|
|
4509
|
+
export declare enum LocalBuildArchiveSourceType {
|
|
4510
|
+
Gcs = "GCS"
|
|
4511
|
+
}
|
|
4512
|
+
export type LocalBuildJobInput = {
|
|
4513
|
+
developmentClient?: InputMaybe<Scalars['Boolean']['input']>;
|
|
4514
|
+
platform: AppPlatform;
|
|
4515
|
+
simulator?: InputMaybe<Scalars['Boolean']['input']>;
|
|
4516
|
+
};
|
|
4494
4517
|
export type LogNameTypeMapping = {
|
|
4495
4518
|
__typename?: 'LogNameTypeMapping';
|
|
4496
4519
|
publicName: Scalars['String']['output'];
|
|
@@ -6061,6 +6084,8 @@ export type UpdateMutation = {
|
|
|
6061
6084
|
__typename?: 'UpdateMutation';
|
|
6062
6085
|
/** Delete an EAS update group */
|
|
6063
6086
|
deleteUpdateGroup: DeleteUpdateGroupResult;
|
|
6087
|
+
/** Delete an EAS update group in the background */
|
|
6088
|
+
scheduleUpdateGroupDeletion: BackgroundJobReceipt;
|
|
6064
6089
|
/** Set code signing info for an update */
|
|
6065
6090
|
setCodeSigningInfo: Update;
|
|
6066
6091
|
/** Set rollout percentage for an update */
|
|
@@ -6069,6 +6094,9 @@ export type UpdateMutation = {
|
|
|
6069
6094
|
export type UpdateMutationDeleteUpdateGroupArgs = {
|
|
6070
6095
|
group: Scalars['ID']['input'];
|
|
6071
6096
|
};
|
|
6097
|
+
export type UpdateMutationScheduleUpdateGroupDeletionArgs = {
|
|
6098
|
+
group: Scalars['ID']['input'];
|
|
6099
|
+
};
|
|
6072
6100
|
export type UpdateMutationSetCodeSigningInfoArgs = {
|
|
6073
6101
|
codeSigningInfo: CodeSigningInfoInput;
|
|
6074
6102
|
updateId: Scalars['ID']['input'];
|
|
@@ -7571,16 +7599,26 @@ export type AppInfoQuery = {
|
|
|
7571
7599
|
};
|
|
7572
7600
|
};
|
|
7573
7601
|
};
|
|
7574
|
-
export type
|
|
7602
|
+
export type ScheduleUpdateGroupDeletionMutationVariables = Exact<{
|
|
7575
7603
|
group: Scalars['ID']['input'];
|
|
7576
7604
|
}>;
|
|
7577
|
-
export type
|
|
7605
|
+
export type ScheduleUpdateGroupDeletionMutation = {
|
|
7578
7606
|
__typename?: 'RootMutation';
|
|
7579
7607
|
update: {
|
|
7580
7608
|
__typename?: 'UpdateMutation';
|
|
7581
|
-
|
|
7582
|
-
__typename?: '
|
|
7583
|
-
|
|
7609
|
+
scheduleUpdateGroupDeletion: {
|
|
7610
|
+
__typename?: 'BackgroundJobReceipt';
|
|
7611
|
+
id: string;
|
|
7612
|
+
state: BackgroundJobState;
|
|
7613
|
+
tries: number;
|
|
7614
|
+
willRetry: boolean;
|
|
7615
|
+
resultId?: string | null;
|
|
7616
|
+
resultType: BackgroundJobResultType;
|
|
7617
|
+
resultData?: any | null;
|
|
7618
|
+
errorCode?: string | null;
|
|
7619
|
+
errorMessage?: string | null;
|
|
7620
|
+
createdAt: any;
|
|
7621
|
+
updatedAt: any;
|
|
7584
7622
|
};
|
|
7585
7623
|
};
|
|
7586
7624
|
};
|
|
@@ -11975,6 +12013,95 @@ export type SetRolloutPercentageMutation = {
|
|
|
11975
12013
|
};
|
|
11976
12014
|
};
|
|
11977
12015
|
};
|
|
12016
|
+
export type CreateLocalBuildMutationVariables = Exact<{
|
|
12017
|
+
appId: Scalars['ID']['input'];
|
|
12018
|
+
jobInput: LocalBuildJobInput;
|
|
12019
|
+
artifactSource: LocalBuildArchiveSourceInput;
|
|
12020
|
+
metadata?: InputMaybe<BuildMetadataInput>;
|
|
12021
|
+
}>;
|
|
12022
|
+
export type CreateLocalBuildMutation = {
|
|
12023
|
+
__typename?: 'RootMutation';
|
|
12024
|
+
build: {
|
|
12025
|
+
__typename?: 'BuildMutation';
|
|
12026
|
+
createLocalBuild: {
|
|
12027
|
+
__typename?: 'CreateBuildResult';
|
|
12028
|
+
build: {
|
|
12029
|
+
__typename?: 'Build';
|
|
12030
|
+
id: string;
|
|
12031
|
+
status: BuildStatus;
|
|
12032
|
+
platform: AppPlatform;
|
|
12033
|
+
channel?: string | null;
|
|
12034
|
+
distribution?: DistributionType | null;
|
|
12035
|
+
iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null;
|
|
12036
|
+
buildProfile?: string | null;
|
|
12037
|
+
sdkVersion?: string | null;
|
|
12038
|
+
appVersion?: string | null;
|
|
12039
|
+
appBuildVersion?: string | null;
|
|
12040
|
+
runtimeVersion?: string | null;
|
|
12041
|
+
gitCommitHash?: string | null;
|
|
12042
|
+
gitCommitMessage?: string | null;
|
|
12043
|
+
initialQueuePosition?: number | null;
|
|
12044
|
+
queuePosition?: number | null;
|
|
12045
|
+
estimatedWaitTimeLeftSeconds?: number | null;
|
|
12046
|
+
priority: BuildPriority;
|
|
12047
|
+
createdAt: any;
|
|
12048
|
+
updatedAt: any;
|
|
12049
|
+
message?: string | null;
|
|
12050
|
+
completedAt?: any | null;
|
|
12051
|
+
expirationDate?: any | null;
|
|
12052
|
+
isForIosSimulator: boolean;
|
|
12053
|
+
error?: {
|
|
12054
|
+
__typename?: 'BuildError';
|
|
12055
|
+
errorCode: string;
|
|
12056
|
+
message: string;
|
|
12057
|
+
docsUrl?: string | null;
|
|
12058
|
+
} | null;
|
|
12059
|
+
artifacts?: {
|
|
12060
|
+
__typename?: 'BuildArtifacts';
|
|
12061
|
+
buildUrl?: string | null;
|
|
12062
|
+
xcodeBuildLogsUrl?: string | null;
|
|
12063
|
+
applicationArchiveUrl?: string | null;
|
|
12064
|
+
buildArtifactsUrl?: string | null;
|
|
12065
|
+
} | null;
|
|
12066
|
+
initiatingActor?: {
|
|
12067
|
+
__typename: 'Robot';
|
|
12068
|
+
id: string;
|
|
12069
|
+
displayName: string;
|
|
12070
|
+
} | {
|
|
12071
|
+
__typename: 'SSOUser';
|
|
12072
|
+
id: string;
|
|
12073
|
+
displayName: string;
|
|
12074
|
+
} | {
|
|
12075
|
+
__typename: 'User';
|
|
12076
|
+
id: string;
|
|
12077
|
+
displayName: string;
|
|
12078
|
+
} | null;
|
|
12079
|
+
project: {
|
|
12080
|
+
__typename: 'App';
|
|
12081
|
+
id: string;
|
|
12082
|
+
name: string;
|
|
12083
|
+
slug: string;
|
|
12084
|
+
ownerAccount: {
|
|
12085
|
+
__typename?: 'Account';
|
|
12086
|
+
id: string;
|
|
12087
|
+
name: string;
|
|
12088
|
+
};
|
|
12089
|
+
} | {
|
|
12090
|
+
__typename: 'Snack';
|
|
12091
|
+
id: string;
|
|
12092
|
+
name: string;
|
|
12093
|
+
slug: string;
|
|
12094
|
+
};
|
|
12095
|
+
metrics?: {
|
|
12096
|
+
__typename?: 'BuildMetrics';
|
|
12097
|
+
buildWaitTime?: number | null;
|
|
12098
|
+
buildQueueTime?: number | null;
|
|
12099
|
+
buildDuration?: number | null;
|
|
12100
|
+
} | null;
|
|
12101
|
+
};
|
|
12102
|
+
};
|
|
12103
|
+
};
|
|
12104
|
+
};
|
|
11978
12105
|
export type CreateAndroidSubmissionMutationVariables = Exact<{
|
|
11979
12106
|
appId: Scalars['ID']['input'];
|
|
11980
12107
|
config: AndroidSubmissionConfigInput;
|
|
@@ -12077,6 +12204,7 @@ export type CreateIosSubmissionMutation = {
|
|
|
12077
12204
|
};
|
|
12078
12205
|
export type CreateUploadSessionMutationVariables = Exact<{
|
|
12079
12206
|
type: UploadSessionType;
|
|
12207
|
+
filename?: InputMaybe<Scalars['String']['input']>;
|
|
12080
12208
|
}>;
|
|
12081
12209
|
export type CreateUploadSessionMutation = {
|
|
12082
12210
|
__typename?: 'RootMutation';
|
|
@@ -12331,6 +12459,29 @@ export type LatestAppVersionQuery = {
|
|
|
12331
12459
|
};
|
|
12332
12460
|
};
|
|
12333
12461
|
};
|
|
12462
|
+
export type BackgroundJobReceiptByIdQueryVariables = Exact<{
|
|
12463
|
+
id: Scalars['ID']['input'];
|
|
12464
|
+
}>;
|
|
12465
|
+
export type BackgroundJobReceiptByIdQuery = {
|
|
12466
|
+
__typename?: 'RootQuery';
|
|
12467
|
+
backgroundJobReceipt: {
|
|
12468
|
+
__typename?: 'BackgroundJobReceiptQuery';
|
|
12469
|
+
byId: {
|
|
12470
|
+
__typename?: 'BackgroundJobReceipt';
|
|
12471
|
+
id: string;
|
|
12472
|
+
state: BackgroundJobState;
|
|
12473
|
+
tries: number;
|
|
12474
|
+
willRetry: boolean;
|
|
12475
|
+
resultId?: string | null;
|
|
12476
|
+
resultType: BackgroundJobResultType;
|
|
12477
|
+
resultData?: any | null;
|
|
12478
|
+
errorCode?: string | null;
|
|
12479
|
+
errorMessage?: string | null;
|
|
12480
|
+
createdAt: any;
|
|
12481
|
+
updatedAt: any;
|
|
12482
|
+
};
|
|
12483
|
+
};
|
|
12484
|
+
};
|
|
12334
12485
|
export type ViewBranchQueryVariables = Exact<{
|
|
12335
12486
|
appId: Scalars['String']['input'];
|
|
12336
12487
|
name: Scalars['String']['input'];
|
|
@@ -14175,6 +14326,20 @@ export type AppFragment = {
|
|
|
14175
14326
|
};
|
|
14176
14327
|
} | null;
|
|
14177
14328
|
};
|
|
14329
|
+
export type BackgroundJobReceiptDataFragment = {
|
|
14330
|
+
__typename?: 'BackgroundJobReceipt';
|
|
14331
|
+
id: string;
|
|
14332
|
+
state: BackgroundJobState;
|
|
14333
|
+
tries: number;
|
|
14334
|
+
willRetry: boolean;
|
|
14335
|
+
resultId?: string | null;
|
|
14336
|
+
resultType: BackgroundJobResultType;
|
|
14337
|
+
resultData?: any | null;
|
|
14338
|
+
errorCode?: string | null;
|
|
14339
|
+
errorMessage?: string | null;
|
|
14340
|
+
createdAt: any;
|
|
14341
|
+
updatedAt: any;
|
|
14342
|
+
};
|
|
14178
14343
|
export type BuildFragment = {
|
|
14179
14344
|
__typename?: 'Build';
|
|
14180
14345
|
id: string;
|
|
@@ -7,8 +7,8 @@
|
|
|
7
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
|
-
exports.
|
|
11
|
-
exports.WorkflowRunTriggerEventType = exports.WorkflowRunStatus = exports.WorkflowProjectSourceType = exports.WorkflowJobType = exports.WorkflowJobStatus = exports.WorkerLoggerLevel = exports.WorkerDeploymentLogLevel = exports.WorkerDeploymentCrashKind = exports.WebhookType = exports.UserEntityTypeName = exports.UserAgentPlatform = exports.UserAgentOs = exports.UserAgentBrowser = exports.UsageMetricsGranularity = exports.UsageMetricType = void 0;
|
|
10
|
+
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.LocalBuildArchiveSourceType = 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.GitHubAppInstallationAccountType = exports.GitHubAppEnvironment = exports.FingerprintSourceType = void 0;
|
|
11
|
+
exports.WorkflowRunTriggerEventType = exports.WorkflowRunStatus = exports.WorkflowProjectSourceType = exports.WorkflowJobType = exports.WorkflowJobStatus = exports.WorkerLoggerLevel = exports.WorkerDeploymentLogLevel = exports.WorkerDeploymentCrashKind = exports.WebhookType = exports.UserEntityTypeName = exports.UserAgentPlatform = exports.UserAgentOs = exports.UserAgentBrowser = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = void 0;
|
|
12
12
|
var AccountAppsSortByField;
|
|
13
13
|
(function (AccountAppsSortByField) {
|
|
14
14
|
AccountAppsSortByField["LatestActivityTime"] = "LATEST_ACTIVITY_TIME";
|
|
@@ -514,6 +514,10 @@ var JobRunStatus;
|
|
|
514
514
|
JobRunStatus["New"] = "NEW";
|
|
515
515
|
JobRunStatus["PendingCancel"] = "PENDING_CANCEL";
|
|
516
516
|
})(JobRunStatus || (exports.JobRunStatus = JobRunStatus = {}));
|
|
517
|
+
var LocalBuildArchiveSourceType;
|
|
518
|
+
(function (LocalBuildArchiveSourceType) {
|
|
519
|
+
LocalBuildArchiveSourceType["Gcs"] = "GCS";
|
|
520
|
+
})(LocalBuildArchiveSourceType || (exports.LocalBuildArchiveSourceType = LocalBuildArchiveSourceType = {}));
|
|
517
521
|
var MailchimpAudience;
|
|
518
522
|
(function (MailchimpAudience) {
|
|
519
523
|
MailchimpAudience["ExpoDevelopers"] = "EXPO_DEVELOPERS";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient';
|
|
2
|
+
import { BuildFragment, BuildMetadataInput, LocalBuildArchiveSourceInput, LocalBuildJobInput } from '../generated';
|
|
3
|
+
export declare const LocalBuildMutation: {
|
|
4
|
+
createLocalBuildAsync(graphqlClient: ExpoGraphqlClient, appId: string, job: LocalBuildJobInput, artifactSource: LocalBuildArchiveSourceInput, metadata: BuildMetadataInput): Promise<BuildFragment>;
|
|
5
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LocalBuildMutation = 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 Build_1 = require("../types/Build");
|
|
9
|
+
exports.LocalBuildMutation = {
|
|
10
|
+
async createLocalBuildAsync(graphqlClient, appId, job, artifactSource, metadata) {
|
|
11
|
+
const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
12
|
+
.mutation((0, graphql_tag_1.default) `
|
|
13
|
+
mutation createLocalBuildMutation(
|
|
14
|
+
$appId: ID!
|
|
15
|
+
$jobInput: LocalBuildJobInput!
|
|
16
|
+
$artifactSource: LocalBuildArchiveSourceInput!
|
|
17
|
+
$metadata: BuildMetadataInput
|
|
18
|
+
) {
|
|
19
|
+
build {
|
|
20
|
+
createLocalBuild(
|
|
21
|
+
appId: $appId
|
|
22
|
+
job: $jobInput
|
|
23
|
+
artifactSource: $artifactSource
|
|
24
|
+
metadata: $metadata
|
|
25
|
+
) {
|
|
26
|
+
build {
|
|
27
|
+
id
|
|
28
|
+
...BuildFragment
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
${(0, graphql_1.print)(Build_1.BuildFragmentNode)}
|
|
34
|
+
`, { appId, jobInput: job, artifactSource, metadata })
|
|
35
|
+
.toPromise());
|
|
36
|
+
return data.build.createLocalBuild.build;
|
|
37
|
+
},
|
|
38
|
+
};
|
|
@@ -6,7 +6,7 @@ export interface SignedUrl {
|
|
|
6
6
|
bucketKey: string;
|
|
7
7
|
}
|
|
8
8
|
export declare const UploadSessionMutation: {
|
|
9
|
-
createUploadSessionAsync(graphqlClient: ExpoGraphqlClient, type: UploadSessionType): Promise<SignedUrl>;
|
|
9
|
+
createUploadSessionAsync(graphqlClient: ExpoGraphqlClient, type: UploadSessionType, filename?: string): Promise<SignedUrl>;
|
|
10
10
|
createAccountScopedUploadSessionAsync(graphqlClient: ExpoGraphqlClient, { type, accountID, }: {
|
|
11
11
|
type: AccountUploadSessionType;
|
|
12
12
|
accountID: string;
|
|
@@ -5,16 +5,17 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
|
|
6
6
|
const client_1 = require("../client");
|
|
7
7
|
exports.UploadSessionMutation = {
|
|
8
|
-
async createUploadSessionAsync(graphqlClient, type) {
|
|
8
|
+
async createUploadSessionAsync(graphqlClient, type, filename) {
|
|
9
9
|
const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
10
10
|
.mutation((0, graphql_tag_1.default) `
|
|
11
|
-
mutation CreateUploadSessionMutation($type: UploadSessionType
|
|
11
|
+
mutation CreateUploadSessionMutation($type: UploadSessionType!, $filename: String) {
|
|
12
12
|
uploadSession {
|
|
13
|
-
createUploadSession(type: $type)
|
|
13
|
+
createUploadSession(type: $type, filename: $filename)
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
`, {
|
|
17
17
|
type,
|
|
18
|
+
filename,
|
|
18
19
|
})
|
|
19
20
|
.toPromise());
|
|
20
21
|
return data.uploadSession.createUploadSession;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient';
|
|
2
|
+
import { BackgroundJobReceiptByIdQuery } from '../generated';
|
|
3
|
+
export declare const BackgroundJobReceiptQuery: {
|
|
4
|
+
byIdAsync(graphqlClient: ExpoGraphqlClient, backgroundJobReceiptId: string): Promise<BackgroundJobReceiptByIdQuery['backgroundJobReceipt']['byId'] | null>;
|
|
5
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BackgroundJobReceiptQuery = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
|
|
6
|
+
const client_1 = require("../client");
|
|
7
|
+
const BackgroundJobReceipt_1 = require("../types/BackgroundJobReceipt");
|
|
8
|
+
exports.BackgroundJobReceiptQuery = {
|
|
9
|
+
async byIdAsync(graphqlClient, backgroundJobReceiptId) {
|
|
10
|
+
const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
11
|
+
.query((0, graphql_tag_1.default) `
|
|
12
|
+
query BackgroundJobReceiptById($id: ID!) {
|
|
13
|
+
backgroundJobReceipt {
|
|
14
|
+
byId(id: $id) {
|
|
15
|
+
id
|
|
16
|
+
...BackgroundJobReceiptData
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
${BackgroundJobReceipt_1.BackgroundJobReceiptNode}
|
|
21
|
+
`, { id: backgroundJobReceiptId }, {
|
|
22
|
+
additionalTypenames: ['BackgroundJobReceipt'],
|
|
23
|
+
})
|
|
24
|
+
.toPromise());
|
|
25
|
+
return data.backgroundJobReceipt.byId ?? null;
|
|
26
|
+
},
|
|
27
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const BackgroundJobReceiptNode: import("graphql").DocumentNode;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BackgroundJobReceiptNode = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
|
|
6
|
+
exports.BackgroundJobReceiptNode = (0, graphql_tag_1.default) `
|
|
7
|
+
fragment BackgroundJobReceiptData on BackgroundJobReceipt {
|
|
8
|
+
id
|
|
9
|
+
state
|
|
10
|
+
tries
|
|
11
|
+
willRetry
|
|
12
|
+
resultId
|
|
13
|
+
resultType
|
|
14
|
+
resultData
|
|
15
|
+
errorCode
|
|
16
|
+
errorMessage
|
|
17
|
+
createdAt
|
|
18
|
+
updatedAt
|
|
19
|
+
}
|
|
20
|
+
`;
|
|
@@ -34,7 +34,7 @@ async function downloadMetadataAsync({ projectDir, profile, exp, analytics, cred
|
|
|
34
34
|
projectDir,
|
|
35
35
|
profile,
|
|
36
36
|
});
|
|
37
|
-
const { unsubscribeTelemetry, executionId } = (0, telemetry_1.
|
|
37
|
+
const { unsubscribeTelemetry, executionId } = await (0, telemetry_1.subscribeTelemetryAsync)(analytics, AnalyticsManager_1.MetadataEvent.APPLE_METADATA_DOWNLOAD, { app, auth });
|
|
38
38
|
log_1.default.addNewLineIfNone();
|
|
39
39
|
log_1.default.log('Downloading App Store config...');
|
|
40
40
|
const errors = [];
|
package/build/metadata/upload.js
CHANGED
|
@@ -22,7 +22,7 @@ async function uploadMetadataAsync({ projectDir, profile, exp, analytics, creden
|
|
|
22
22
|
projectDir,
|
|
23
23
|
profile,
|
|
24
24
|
});
|
|
25
|
-
const { unsubscribeTelemetry, executionId } = (0, telemetry_1.
|
|
25
|
+
const { unsubscribeTelemetry, executionId } = await (0, telemetry_1.subscribeTelemetryAsync)(analytics, AnalyticsManager_1.MetadataEvent.APPLE_METADATA_UPLOAD, { app, auth });
|
|
26
26
|
log_1.default.addNewLineIfNone();
|
|
27
27
|
log_1.default.log('Uploading App Store configuration...');
|
|
28
28
|
const errors = [];
|
|
@@ -10,11 +10,11 @@ export type TelemetryContext = {
|
|
|
10
10
|
* When providing the app and auth info, we can scrub that data from the telemetry.
|
|
11
11
|
* Returns an execution ID to group all events of a single run together, and a unsubscribe function.
|
|
12
12
|
*/
|
|
13
|
-
export declare function
|
|
13
|
+
export declare function subscribeTelemetryAsync(analytics: Analytics, event: MetadataEvent, options: TelemetryContext): Promise<{
|
|
14
14
|
/** Unsubscribe the telemetry from all apple-utils events */
|
|
15
15
|
unsubscribeTelemetry: () => void;
|
|
16
16
|
/** The unique id added to all telemetry events from a single execution */
|
|
17
17
|
executionId: string;
|
|
18
|
-
}
|
|
18
|
+
}>;
|
|
19
19
|
/** Exposed for testing */
|
|
20
|
-
export declare function
|
|
20
|
+
export declare function makeDataScrubberAsync({ app, auth, }: TelemetryContext): Promise<(<T>(data: T) => string)>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.makeDataScrubberAsync = exports.subscribeTelemetryAsync = void 0;
|
|
4
4
|
const apple_utils_1 = require("@expo/apple-utils");
|
|
5
5
|
const uuid_1 = require("uuid");
|
|
6
6
|
/**
|
|
@@ -8,9 +8,9 @@ const uuid_1 = require("uuid");
|
|
|
8
8
|
* When providing the app and auth info, we can scrub that data from the telemetry.
|
|
9
9
|
* Returns an execution ID to group all events of a single run together, and a unsubscribe function.
|
|
10
10
|
*/
|
|
11
|
-
function
|
|
11
|
+
async function subscribeTelemetryAsync(analytics, event, options) {
|
|
12
12
|
const executionId = (0, uuid_1.v4)();
|
|
13
|
-
const scrubber =
|
|
13
|
+
const scrubber = await makeDataScrubberAsync(options);
|
|
14
14
|
const { interceptors } = (0, apple_utils_1.getRequestClient)();
|
|
15
15
|
const responseInterceptorId = interceptors.response.use(response => {
|
|
16
16
|
analytics.logEvent(event, {
|
|
@@ -43,10 +43,10 @@ function subscribeTelemetry(analytics, event, options) {
|
|
|
43
43
|
}
|
|
44
44
|
return { unsubscribeTelemetry, executionId };
|
|
45
45
|
}
|
|
46
|
-
exports.
|
|
46
|
+
exports.subscribeTelemetryAsync = subscribeTelemetryAsync;
|
|
47
47
|
/** Exposed for testing */
|
|
48
|
-
function
|
|
49
|
-
const token =
|
|
48
|
+
async function makeDataScrubberAsync({ app, auth, }) {
|
|
49
|
+
const token = await getAuthTokenStringAsync(auth);
|
|
50
50
|
const patterns = {
|
|
51
51
|
APPLE_APP_ID: new RegExp(app.id, 'gi'),
|
|
52
52
|
APPLE_USERNAME: auth.username ? new RegExp(auth.username, 'gi') : null,
|
|
@@ -71,13 +71,13 @@ function makeDataScrubber({ app, auth }) {
|
|
|
71
71
|
return value;
|
|
72
72
|
};
|
|
73
73
|
}
|
|
74
|
-
exports.
|
|
75
|
-
function
|
|
74
|
+
exports.makeDataScrubberAsync = makeDataScrubberAsync;
|
|
75
|
+
async function getAuthTokenStringAsync(auth) {
|
|
76
76
|
if (!auth.context?.token) {
|
|
77
77
|
return null;
|
|
78
78
|
}
|
|
79
79
|
if (typeof auth.context.token === 'object') {
|
|
80
|
-
return auth.context.token.getToken();
|
|
80
|
+
return await auth.context.token.getToken();
|
|
81
81
|
}
|
|
82
82
|
return auth.context.token;
|
|
83
83
|
}
|
|
@@ -4,7 +4,7 @@ import { Env, FingerprintSource, Platform, 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';
|
|
7
|
-
import { AppPlatform, PartialManifestAsset, UpdateRolloutInfoGroup } from '../graphql/generated';
|
|
7
|
+
import { AppPlatform, BuildFragment, PartialManifestAsset, UpdateRolloutInfoGroup } from '../graphql/generated';
|
|
8
8
|
import { RequestedPlatform } from '../platform';
|
|
9
9
|
import { UpdateJsonInfo } from '../update/utils';
|
|
10
10
|
import { Client } from '../vcs/vcs';
|
|
@@ -188,6 +188,22 @@ export declare function maybeCalculateFingerprintForRuntimeVersionInfoObjectsWit
|
|
|
188
188
|
expoUpdatesRuntimeFingerprintSource: FingerprintSource | null;
|
|
189
189
|
fingerprintInfoGroup: FingerprintInfoGroup;
|
|
190
190
|
})[]>;
|
|
191
|
+
export declare function findCompatibleBuildsAsync(graphqlClient: ExpoGraphqlClient, appId: string, runtimeToPlatformsAndFingerprintInfoMapping: {
|
|
192
|
+
runtimeVersion: string;
|
|
193
|
+
platforms: UpdatePublishPlatform[];
|
|
194
|
+
fingerprintInfoGroup: FingerprintInfoGroup;
|
|
195
|
+
}): Promise<{
|
|
196
|
+
runtimeVersion: string;
|
|
197
|
+
platforms: UpdatePublishPlatform[];
|
|
198
|
+
fingerprintInfoGroupWithCompatibleBuilds: {
|
|
199
|
+
android?: (FingerprintInfo & {
|
|
200
|
+
build?: BuildFragment;
|
|
201
|
+
}) | undefined;
|
|
202
|
+
ios?: (FingerprintInfo & {
|
|
203
|
+
build?: BuildFragment;
|
|
204
|
+
}) | undefined;
|
|
205
|
+
};
|
|
206
|
+
}>;
|
|
191
207
|
export declare const platformDisplayNames: Record<UpdatePublishPlatform, string>;
|
|
192
208
|
export declare const updatePublishPlatformToAppPlatform: Record<UpdatePublishPlatform, AppPlatform>;
|
|
193
209
|
export declare function getRuntimeToUpdateRolloutInfoGroupMappingAsync(graphqlClient: ExpoGraphqlClient, { appId, branchName, rolloutPercentage, runtimeToPlatformsAndFingerprintInfoMapping, }: {
|
package/build/project/publish.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRuntimeToUpdateRolloutInfoGroupMappingAsync = exports.updatePublishPlatformToAppPlatform = exports.platformDisplayNames = exports.maybeCalculateFingerprintForRuntimeVersionInfoObjectsWithoutExpoUpdatesAsync = exports.getRuntimeToPlatformsAndFingerprintInfoMappingFromRuntimeVersionInfoObjects = exports.getRuntimeVersionInfoObjectsAsync = exports.defaultPublishPlatforms = exports.getUpdateMessageForCommandAsync = exports.getBranchNameForCommandAsync = exports.isUploadedAssetCountAboveWarningThreshold = exports.uploadAssetsAsync = exports.filterOutAssetsThatAlreadyExistAsync = exports.collectAssetsAsync = exports.getOriginalPathFromAssetMap = exports.getAssetHashFromPath = exports.loadAssetMapAsync = exports.filterCollectedAssetsByRequestedPlatforms = exports.generateEasMetadataAsync = exports.loadMetadata = exports.resolveInputDirectoryAsync = exports.buildBundlesAsync = exports.buildUnsortedUpdateInfoGroupAsync = exports.convertAssetToUpdateInfoGroupFormatAsync = exports.getStorageKeyForAssetAsync = exports.getStorageKey = exports.getBase64URLEncoding = exports.guessContentTypeFromExtension = exports.MetadataJoi = void 0;
|
|
3
|
+
exports.getRuntimeToUpdateRolloutInfoGroupMappingAsync = exports.updatePublishPlatformToAppPlatform = exports.platformDisplayNames = exports.findCompatibleBuildsAsync = exports.maybeCalculateFingerprintForRuntimeVersionInfoObjectsWithoutExpoUpdatesAsync = exports.getRuntimeToPlatformsAndFingerprintInfoMappingFromRuntimeVersionInfoObjects = exports.getRuntimeVersionInfoObjectsAsync = exports.defaultPublishPlatforms = exports.getUpdateMessageForCommandAsync = exports.getBranchNameForCommandAsync = exports.isUploadedAssetCountAboveWarningThreshold = exports.uploadAssetsAsync = exports.filterOutAssetsThatAlreadyExistAsync = exports.collectAssetsAsync = exports.getOriginalPathFromAssetMap = exports.getAssetHashFromPath = exports.loadAssetMapAsync = exports.filterCollectedAssetsByRequestedPlatforms = exports.generateEasMetadataAsync = exports.loadMetadata = exports.resolveInputDirectoryAsync = exports.buildBundlesAsync = exports.buildUnsortedUpdateInfoGroupAsync = exports.convertAssetToUpdateInfoGroupFormatAsync = exports.getStorageKeyForAssetAsync = exports.getStorageKey = exports.getBase64URLEncoding = exports.guessContentTypeFromExtension = exports.MetadataJoi = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const config_plugins_1 = require("@expo/config-plugins");
|
|
6
6
|
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
@@ -19,6 +19,7 @@ const projectUtils_1 = require("./projectUtils");
|
|
|
19
19
|
const resolveRuntimeVersionAsync_1 = require("./resolveRuntimeVersionAsync");
|
|
20
20
|
const queries_1 = require("../branch/queries");
|
|
21
21
|
const utils_1 = require("../branch/utils");
|
|
22
|
+
const builds_1 = require("../commandUtils/builds");
|
|
22
23
|
const cli_1 = require("../fingerprint/cli");
|
|
23
24
|
const generated_1 = require("../graphql/generated");
|
|
24
25
|
const PublishMutation_1 = require("../graphql/mutations/PublishMutation");
|
|
@@ -601,6 +602,26 @@ async function maybeCalculateFingerprintForRuntimeVersionInfoObjectsWithoutExpoU
|
|
|
601
602
|
return [...runtimesWithComputedFingerprint, ...runtimesWithPreviouslyComputedFingerprints];
|
|
602
603
|
}
|
|
603
604
|
exports.maybeCalculateFingerprintForRuntimeVersionInfoObjectsWithoutExpoUpdatesAsync = maybeCalculateFingerprintForRuntimeVersionInfoObjectsWithoutExpoUpdatesAsync;
|
|
605
|
+
async function findCompatibleBuildsAsync(graphqlClient, appId, runtimeToPlatformsAndFingerprintInfoMapping) {
|
|
606
|
+
const { fingerprintInfoGroup } = runtimeToPlatformsAndFingerprintInfoMapping;
|
|
607
|
+
const entriesPromises = Object.entries(fingerprintInfoGroup).map(async ([platform, fingerprintInfo]) => {
|
|
608
|
+
const build = (await (0, builds_1.fetchBuildsAsync)({
|
|
609
|
+
graphqlClient,
|
|
610
|
+
projectId: appId,
|
|
611
|
+
filters: {
|
|
612
|
+
fingerprintHash: fingerprintInfo.fingerprintHash,
|
|
613
|
+
},
|
|
614
|
+
}))[0];
|
|
615
|
+
return [platform, { ...fingerprintInfo, build }];
|
|
616
|
+
});
|
|
617
|
+
const entries = await Promise.all(entriesPromises);
|
|
618
|
+
const fingerprintInfoGroupWithCompatibleBuilds = Object.fromEntries(entries);
|
|
619
|
+
return {
|
|
620
|
+
...runtimeToPlatformsAndFingerprintInfoMapping,
|
|
621
|
+
fingerprintInfoGroupWithCompatibleBuilds,
|
|
622
|
+
};
|
|
623
|
+
}
|
|
624
|
+
exports.findCompatibleBuildsAsync = findCompatibleBuildsAsync;
|
|
604
625
|
exports.platformDisplayNames = {
|
|
605
626
|
android: 'Android',
|
|
606
627
|
ios: 'iOS',
|
package/build/run/ios/xcode.d.ts
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
1
|
export declare const MIN_XCODE_VERSION = "9.4.0";
|
|
2
2
|
export declare const APP_STORE_ID = "497799835";
|
|
3
3
|
export declare function getXcodeVersionAsync(): Promise<string | undefined>;
|
|
4
|
+
type XcodeBuildSettings = {
|
|
5
|
+
action: string;
|
|
6
|
+
buildSettings: {
|
|
7
|
+
BUILD_DIR: string;
|
|
8
|
+
CONFIGURATION_BUILD_DIR: string;
|
|
9
|
+
EXECUTABLE_FOLDER_PATH: string;
|
|
10
|
+
PRODUCT_BUNDLE_IDENTIFIER: string;
|
|
11
|
+
TARGET_BUILD_DIR: string;
|
|
12
|
+
UNLOCALIZED_RESOURCES_FOLDER_PATH: string;
|
|
13
|
+
};
|
|
14
|
+
target: string;
|
|
15
|
+
};
|
|
16
|
+
export declare function getXcodeBuildSettingsAsync(xcworkspacePath: string, scheme: string): Promise<XcodeBuildSettings[]>;
|
|
17
|
+
export declare function resolveXcodeProjectAsync(projectRoot: string): Promise<string | undefined>;
|
|
4
18
|
export declare function openAppStoreAsync(appId: string): Promise<void>;
|
|
19
|
+
export {};
|