eas-cli 16.31.0 → 18.0.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 +116 -91
- package/build/branch/queries.js +6 -1
- package/build/build/createContext.js +5 -3
- package/build/build/queries.js +13 -1
- package/build/build/runBuildAndSubmit.js +2 -0
- package/build/build/utils/devClient.d.ts +1 -0
- package/build/build/utils/devClient.js +3 -2
- package/build/build/utils/repository.js +3 -3
- package/build/build/utils/resourceClass.d.ts +1 -1
- package/build/build/utils/resourceClass.js +2 -2
- package/build/channel/queries.js +10 -1
- package/build/commandUtils/context/contextUtils/createGraphqlClient.d.ts +1 -5
- package/build/commandUtils/new/templates/AGENTS.md +0 -1
- package/build/commandUtils/usageUtils.d.ts +58 -0
- package/build/commandUtils/usageUtils.js +204 -0
- package/build/commands/account/login.d.ts +1 -0
- package/build/commands/account/login.js +7 -2
- package/build/commands/account/usage.d.ts +16 -0
- package/build/commands/account/usage.js +326 -0
- package/build/commands/env/create.js +5 -2
- package/build/commands/env/list.js +1 -5
- package/build/commands/update/index.js +2 -2
- package/build/commands/upload.js +3 -3
- package/build/credentials/ios/api/graphql/mutations/AppleDistributionCertificateMutation.js +1 -3
- package/build/devices/queries.js +23 -2
- package/build/graphql/generated.d.ts +1063 -39
- package/build/graphql/generated.js +78 -11
- package/build/graphql/mutations/EnvironmentVariableMutation.js +1 -4
- package/build/graphql/mutations/PublishMutation.js +1 -4
- package/build/graphql/mutations/UserPreferencesMutation.js +1 -3
- package/build/graphql/mutations/WorkflowRevisionMutation.js +2 -10
- package/build/graphql/queries/AccountQuery.d.ts +15 -0
- package/build/graphql/queries/AccountQuery.js +197 -0
- package/build/graphql/queries/AppVersionQuery.js +1 -5
- package/build/graphql/types/Account.d.ts +11 -0
- package/build/graphql/types/Account.js +142 -1
- package/build/log.js +1 -1
- package/build/ora.js +1 -1
- package/build/project/discourageExpoGoForProdAsync.d.ts +4 -0
- package/build/project/discourageExpoGoForProdAsync.js +46 -0
- package/build/rollout/actions/ManageRollout.js +5 -1
- package/build/rollout/actions/SelectRuntime.js +10 -1
- package/build/update/queries.js +28 -2
- package/build/user/SessionManager.d.ts +3 -2
- package/build/user/SessionManager.js +6 -6
- package/build/user/expoBrowserAuthFlowLauncher.d.ts +3 -0
- package/build/user/{expoSsoLauncher.js → expoBrowserAuthFlowLauncher.js} +21 -47
- package/build/user/fetchSessionSecretAndUserFromBrowserAuthFlow.d.ts +7 -0
- package/build/user/fetchSessionSecretAndUserFromBrowserAuthFlow.js +14 -0
- package/build/utils/prompts.js +3 -3
- package/build/utils/usage/checkForOverages.js +6 -4
- package/build/worker/mutations.js +2 -8
- package/oclif.manifest.json +40 -1
- package/package.json +60 -63
- package/build/graphql/queries/AccountUsageQuery.d.ts +0 -5
- package/build/graphql/queries/AccountUsageQuery.js +0 -40
- package/build/user/expoSsoLauncher.d.ts +0 -3
- package/build/user/fetchSessionSecretAndSsoUser.d.ts +0 -5
- package/build/user/fetchSessionSecretAndSsoUser.js +0 -17
|
@@ -6,9 +6,9 @@
|
|
|
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.EasServiceMetric = exports.EasService = exports.EasBuildWaiverType = exports.EasBuildDeprecationInfoType = exports.EasBuildBillingResourceClass = exports.DistributionType = exports.DashboardViewPin = 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.BuildAnnotationType = exports.BackgroundJobState = exports.BackgroundJobResultType = exports.AuthProviderIdentifier = exports.AuthProtocolType = exports.AuditLogsExportFormat = exports.AssetMetadataStatus = exports.AssetMapSourceType = exports.AppsFilter = exports.AppleTeamType = exports.AppleDeviceClass = exports.AppUploadSessionType = exports.AppStoreConnectUserRole = exports.AppSort = exports.AppProfileImageWidth = exports.AppPrivacy = exports.AppPlatform = exports.AppObservePlatform = exports.AppObserveEventsOrderByField = exports.AppObserveEventsOrderByDirection = exports.
|
|
10
|
-
exports.
|
|
11
|
-
exports.WorkflowsInsightsRunsOverTimeGranularity = exports.WorkflowsInsightsExportFormat = exports.WorkflowRunTriggerEventType = exports.WorkflowRunStatus = exports.WorkflowProjectSourceType = exports.WorkflowJobType = exports.WorkflowJobStatus = exports.WorkflowJobReviewDecision = exports.WorkflowArtifactStorageType = exports.WorkerLoggerLevel = exports.WorkerDeploymentLogLevel = exports.WorkerDeploymentCrashKind = exports.WebhookType = exports.UserSpecifiedAccountUsage = exports.UserEntityTypeName = exports.UserAgentPlatform = exports.UserAgentOs = exports.UserAgentBrowser = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.TargetEntityMutationType = exports.SubmissionStatus = exports.SubmissionPriority = exports.SubmissionArchiveSourceType = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = void 0;
|
|
9
|
+
exports.EasServiceMetric = exports.EasService = exports.EasBuildWaiverType = exports.EasBuildDeprecationInfoType = exports.EasBuildBillingResourceClass = exports.DistributionType = exports.DashboardViewPin = 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.BuildAnnotationType = exports.BackgroundJobState = exports.BackgroundJobResultType = exports.AuthProviderIdentifier = exports.AuthProtocolType = exports.AuditLogsExportFormat = exports.AssetMetadataStatus = exports.AssetMapSourceType = exports.AppsFilter = exports.AppleTeamType = exports.AppleDeviceClass = exports.AppUploadSessionType = exports.AppStoreConnectUserRole = exports.AppSort = exports.AppProfileImageWidth = exports.AppPrivacy = exports.AppPlatform = exports.AppObservePlatform = exports.AppObserveEventsOrderByField = exports.AppObserveEventsOrderByDirection = exports.AppInternalDistributionBuildPrivacy = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.AndroidBuildType = exports.ActivityTimelineProjectActivityType = exports.AccountUploadSessionType = exports.AccountMemberType = exports.AccountAppsSortByField = void 0;
|
|
10
|
+
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 = exports.Feature = exports.Experiment = exports.EnvironmentVariableVisibility = exports.EnvironmentVariableScope = exports.EnvironmentSecretType = exports.EntityTypeName = exports.EchoVersionSource = exports.EchoProjectVisibility = exports.EchoMessageRole = exports.EchoMessagePartType = exports.EchoChatState = exports.EchoChangeType = exports.EchoBuildStatus = exports.EchoAgentType = exports.EasTotalPlanEnablementUnit = void 0;
|
|
11
|
+
exports.WorkflowsInsightsRunsOverTimeGranularity = exports.WorkflowsInsightsExportFormat = exports.WorkflowRunTriggerEventType = exports.WorkflowRunStatus = exports.WorkflowProjectSourceType = exports.WorkflowJobType = exports.WorkflowJobStatus = exports.WorkflowJobReviewDecision = exports.WorkflowArtifactStorageType = exports.WorkerLoggerLevel = exports.WorkerDeploymentLogLevel = exports.WorkerDeploymentCrashKind = exports.WebhookType = exports.UserSpecifiedAccountUsage = exports.UserEntityTypeName = exports.UserAgentPlatform = exports.UserAgentOs = exports.UserAgentBrowser = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.TargetEntityMutationType = exports.SubmissionStatus = exports.SubmissionPriority = exports.SubmissionArchiveSourceType = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StatuspageServiceStatus = exports.StatuspageServiceName = exports.StatuspageIncidentStatus = exports.StatuspageIncidentImpact = exports.StandardOffer = exports.SecondFactorMethod = exports.Role = exports.ResponseType = void 0;
|
|
12
12
|
var AccountAppsSortByField;
|
|
13
13
|
(function (AccountAppsSortByField) {
|
|
14
14
|
AccountAppsSortByField["LatestActivityTime"] = "LATEST_ACTIVITY_TIME";
|
|
@@ -18,6 +18,18 @@ var AccountAppsSortByField;
|
|
|
18
18
|
*/
|
|
19
19
|
AccountAppsSortByField["Name"] = "NAME";
|
|
20
20
|
})(AccountAppsSortByField || (exports.AccountAppsSortByField = AccountAppsSortByField = {}));
|
|
21
|
+
/** Filter for account member types in membersPaginated query */
|
|
22
|
+
var AccountMemberType;
|
|
23
|
+
(function (AccountMemberType) {
|
|
24
|
+
/** All members (default) */
|
|
25
|
+
AccountMemberType["All"] = "ALL";
|
|
26
|
+
/** Human members (Users + SSOUsers) */
|
|
27
|
+
AccountMemberType["Human"] = "HUMAN";
|
|
28
|
+
/** Robot members only */
|
|
29
|
+
AccountMemberType["Robot"] = "ROBOT";
|
|
30
|
+
/** SSO users only */
|
|
31
|
+
AccountMemberType["SsoUser"] = "SSO_USER";
|
|
32
|
+
})(AccountMemberType || (exports.AccountMemberType = AccountMemberType = {}));
|
|
21
33
|
var AccountUploadSessionType;
|
|
22
34
|
(function (AccountUploadSessionType) {
|
|
23
35
|
AccountUploadSessionType["ProfileImageUpload"] = "PROFILE_IMAGE_UPLOAD";
|
|
@@ -54,14 +66,6 @@ var AppInternalDistributionBuildPrivacy;
|
|
|
54
66
|
AppInternalDistributionBuildPrivacy["Private"] = "PRIVATE";
|
|
55
67
|
AppInternalDistributionBuildPrivacy["Public"] = "PUBLIC";
|
|
56
68
|
})(AppInternalDistributionBuildPrivacy || (exports.AppInternalDistributionBuildPrivacy = AppInternalDistributionBuildPrivacy = {}));
|
|
57
|
-
var AppObserveEventName;
|
|
58
|
-
(function (AppObserveEventName) {
|
|
59
|
-
AppObserveEventName["BundleLoadTime"] = "BUNDLE_LOAD_TIME";
|
|
60
|
-
AppObserveEventName["LaunchTime"] = "LAUNCH_TIME";
|
|
61
|
-
AppObserveEventName["LoadTime"] = "LOAD_TIME";
|
|
62
|
-
AppObserveEventName["TimeToFirstRender"] = "TIME_TO_FIRST_RENDER";
|
|
63
|
-
AppObserveEventName["TimeToInteractive"] = "TIME_TO_INTERACTIVE";
|
|
64
|
-
})(AppObserveEventName || (exports.AppObserveEventName = AppObserveEventName = {}));
|
|
65
69
|
var AppObserveEventsOrderByDirection;
|
|
66
70
|
(function (AppObserveEventsOrderByDirection) {
|
|
67
71
|
AppObserveEventsOrderByDirection["Asc"] = "ASC";
|
|
@@ -400,6 +404,61 @@ var EasTotalPlanEnablementUnit;
|
|
|
400
404
|
EasTotalPlanEnablementUnit["Updater"] = "UPDATER";
|
|
401
405
|
EasTotalPlanEnablementUnit["User"] = "USER";
|
|
402
406
|
})(EasTotalPlanEnablementUnit || (exports.EasTotalPlanEnablementUnit = EasTotalPlanEnablementUnit = {}));
|
|
407
|
+
var EchoAgentType;
|
|
408
|
+
(function (EchoAgentType) {
|
|
409
|
+
EchoAgentType["ClaudeCode"] = "CLAUDE_CODE";
|
|
410
|
+
EchoAgentType["Codex"] = "CODEX";
|
|
411
|
+
EchoAgentType["Gemini"] = "GEMINI";
|
|
412
|
+
})(EchoAgentType || (exports.EchoAgentType = EchoAgentType = {}));
|
|
413
|
+
var EchoBuildStatus;
|
|
414
|
+
(function (EchoBuildStatus) {
|
|
415
|
+
EchoBuildStatus["Building"] = "BUILDING";
|
|
416
|
+
EchoBuildStatus["Failed"] = "FAILED";
|
|
417
|
+
EchoBuildStatus["Pending"] = "PENDING";
|
|
418
|
+
EchoBuildStatus["Success"] = "SUCCESS";
|
|
419
|
+
})(EchoBuildStatus || (exports.EchoBuildStatus = EchoBuildStatus = {}));
|
|
420
|
+
var EchoChangeType;
|
|
421
|
+
(function (EchoChangeType) {
|
|
422
|
+
EchoChangeType["Added"] = "ADDED";
|
|
423
|
+
EchoChangeType["Deleted"] = "DELETED";
|
|
424
|
+
EchoChangeType["Modified"] = "MODIFIED";
|
|
425
|
+
EchoChangeType["Renamed"] = "RENAMED";
|
|
426
|
+
})(EchoChangeType || (exports.EchoChangeType = EchoChangeType = {}));
|
|
427
|
+
var EchoChatState;
|
|
428
|
+
(function (EchoChatState) {
|
|
429
|
+
EchoChatState["Active"] = "ACTIVE";
|
|
430
|
+
EchoChatState["Archived"] = "ARCHIVED";
|
|
431
|
+
})(EchoChatState || (exports.EchoChatState = EchoChatState = {}));
|
|
432
|
+
var EchoMessagePartType;
|
|
433
|
+
(function (EchoMessagePartType) {
|
|
434
|
+
EchoMessagePartType["Compaction"] = "COMPACTION";
|
|
435
|
+
EchoMessagePartType["Data"] = "DATA";
|
|
436
|
+
EchoMessagePartType["File"] = "FILE";
|
|
437
|
+
EchoMessagePartType["Reasoning"] = "REASONING";
|
|
438
|
+
EchoMessagePartType["Source"] = "SOURCE";
|
|
439
|
+
EchoMessagePartType["Step"] = "STEP";
|
|
440
|
+
EchoMessagePartType["Subtask"] = "SUBTASK";
|
|
441
|
+
EchoMessagePartType["Text"] = "TEXT";
|
|
442
|
+
EchoMessagePartType["Tool"] = "TOOL";
|
|
443
|
+
})(EchoMessagePartType || (exports.EchoMessagePartType = EchoMessagePartType = {}));
|
|
444
|
+
/** Echo message role */
|
|
445
|
+
var EchoMessageRole;
|
|
446
|
+
(function (EchoMessageRole) {
|
|
447
|
+
EchoMessageRole["Assistant"] = "ASSISTANT";
|
|
448
|
+
EchoMessageRole["User"] = "USER";
|
|
449
|
+
})(EchoMessageRole || (exports.EchoMessageRole = EchoMessageRole = {}));
|
|
450
|
+
var EchoProjectVisibility;
|
|
451
|
+
(function (EchoProjectVisibility) {
|
|
452
|
+
EchoProjectVisibility["Private"] = "PRIVATE";
|
|
453
|
+
EchoProjectVisibility["Public"] = "PUBLIC";
|
|
454
|
+
})(EchoProjectVisibility || (exports.EchoProjectVisibility = EchoProjectVisibility = {}));
|
|
455
|
+
var EchoVersionSource;
|
|
456
|
+
(function (EchoVersionSource) {
|
|
457
|
+
EchoVersionSource["Agent"] = "AGENT";
|
|
458
|
+
EchoVersionSource["Github"] = "GITHUB";
|
|
459
|
+
EchoVersionSource["Manual"] = "MANUAL";
|
|
460
|
+
EchoVersionSource["Revert"] = "REVERT";
|
|
461
|
+
})(EchoVersionSource || (exports.EchoVersionSource = EchoVersionSource = {}));
|
|
403
462
|
var EntityTypeName;
|
|
404
463
|
(function (EntityTypeName) {
|
|
405
464
|
EntityTypeName["AccountEntity"] = "AccountEntity";
|
|
@@ -415,17 +474,25 @@ var EntityTypeName;
|
|
|
415
474
|
EntityTypeName["BranchEntity"] = "BranchEntity";
|
|
416
475
|
EntityTypeName["ChannelEntity"] = "ChannelEntity";
|
|
417
476
|
EntityTypeName["CustomerEntity"] = "CustomerEntity";
|
|
477
|
+
EntityTypeName["EchoChatEntity"] = "EchoChatEntity";
|
|
478
|
+
EntityTypeName["EchoMessageEntity"] = "EchoMessageEntity";
|
|
479
|
+
EntityTypeName["EchoMessagePartEntity"] = "EchoMessagePartEntity";
|
|
480
|
+
EntityTypeName["EchoProjectEntity"] = "EchoProjectEntity";
|
|
481
|
+
EntityTypeName["EchoVersionEntity"] = "EchoVersionEntity";
|
|
418
482
|
EntityTypeName["GoogleServiceAccountKeyEntity"] = "GoogleServiceAccountKeyEntity";
|
|
419
483
|
EntityTypeName["IosAppCredentialsEntity"] = "IosAppCredentialsEntity";
|
|
420
484
|
EntityTypeName["LogRocketOrganizationEntity"] = "LogRocketOrganizationEntity";
|
|
421
485
|
EntityTypeName["LogRocketProjectEntity"] = "LogRocketProjectEntity";
|
|
422
486
|
EntityTypeName["UserInvitationEntity"] = "UserInvitationEntity";
|
|
423
487
|
EntityTypeName["UserPermissionEntity"] = "UserPermissionEntity";
|
|
488
|
+
EntityTypeName["VexoAccountConnectionEntity"] = "VexoAccountConnectionEntity";
|
|
489
|
+
EntityTypeName["VexoAppEntity"] = "VexoAppEntity";
|
|
424
490
|
EntityTypeName["WorkerCustomDomainEntity"] = "WorkerCustomDomainEntity";
|
|
425
491
|
EntityTypeName["WorkerDeploymentAliasEntity"] = "WorkerDeploymentAliasEntity";
|
|
426
492
|
EntityTypeName["WorkerEntity"] = "WorkerEntity";
|
|
427
493
|
EntityTypeName["WorkflowEntity"] = "WorkflowEntity";
|
|
428
494
|
EntityTypeName["WorkflowRevisionEntity"] = "WorkflowRevisionEntity";
|
|
495
|
+
EntityTypeName["WorkflowScheduleEntity"] = "WorkflowScheduleEntity";
|
|
429
496
|
})(EntityTypeName || (exports.EntityTypeName = EntityTypeName = {}));
|
|
430
497
|
var EnvironmentSecretType;
|
|
431
498
|
(function (EnvironmentSecretType) {
|
|
@@ -86,10 +86,7 @@ exports.EnvironmentVariableMutation = {
|
|
|
86
86
|
$appId: ID!
|
|
87
87
|
) {
|
|
88
88
|
environmentVariable {
|
|
89
|
-
createBulkEnvironmentVariablesForApp(
|
|
90
|
-
environmentVariablesData: $input
|
|
91
|
-
appId: $appId
|
|
92
|
-
) {
|
|
89
|
+
createBulkEnvironmentVariablesForApp(environmentVariablesData: $input, appId: $appId) {
|
|
93
90
|
id
|
|
94
91
|
}
|
|
95
92
|
}
|
|
@@ -48,10 +48,7 @@ exports.PublishMutation = {
|
|
|
48
48
|
async setCodeSigningInfoAsync(graphqlClient, updateId, codeSigningInfo) {
|
|
49
49
|
const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
50
50
|
.mutation((0, graphql_tag_1.default) `
|
|
51
|
-
mutation SetCodeSigningInfoMutation(
|
|
52
|
-
$updateId: ID!
|
|
53
|
-
$codeSigningInfo: CodeSigningInfoInput!
|
|
54
|
-
) {
|
|
51
|
+
mutation SetCodeSigningInfoMutation($updateId: ID!, $codeSigningInfo: CodeSigningInfoInput!) {
|
|
55
52
|
update {
|
|
56
53
|
setCodeSigningInfo(updateId: $updateId, codeSigningInfo: $codeSigningInfo) {
|
|
57
54
|
id
|
|
@@ -9,9 +9,7 @@ exports.UserPreferencesMutation = {
|
|
|
9
9
|
async markCliDoneInOnboardingUserPreferencesAsync(graphqlClient, userPreferencesData) {
|
|
10
10
|
const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
11
11
|
.mutation((0, graphql_tag_1.default) `
|
|
12
|
-
mutation MarkCliDoneInOnboardingUserPreferencesMutation(
|
|
13
|
-
$preferences: UserPreferencesInput!
|
|
14
|
-
) {
|
|
12
|
+
mutation MarkCliDoneInOnboardingUserPreferencesMutation($preferences: UserPreferencesInput!) {
|
|
15
13
|
me {
|
|
16
14
|
setPreferences(preferences: $preferences) {
|
|
17
15
|
onboarding {
|
|
@@ -17,17 +17,9 @@ var WorkflowRevisionMutation;
|
|
|
17
17
|
async function getOrCreateWorkflowRevisionFromGitRefAsync(graphqlClient, { appId, fileName, gitRef, }) {
|
|
18
18
|
const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
19
19
|
.mutation((0, graphql_tag_1.default) `
|
|
20
|
-
mutation GetOrCreateWorkflowRevisionFromGitRef(
|
|
21
|
-
$appId: ID!
|
|
22
|
-
$fileName: String!
|
|
23
|
-
$gitRef: String!
|
|
24
|
-
) {
|
|
20
|
+
mutation GetOrCreateWorkflowRevisionFromGitRef($appId: ID!, $fileName: String!, $gitRef: String!) {
|
|
25
21
|
workflowRevision {
|
|
26
|
-
getOrCreateWorkflowRevisionFromGitRef(
|
|
27
|
-
appId: $appId
|
|
28
|
-
fileName: $fileName
|
|
29
|
-
gitRef: $gitRef
|
|
30
|
-
) {
|
|
22
|
+
getOrCreateWorkflowRevisionFromGitRef(appId: $appId, fileName: $fileName, gitRef: $gitRef) {
|
|
31
23
|
id
|
|
32
24
|
yamlConfig
|
|
33
25
|
blobSha
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient';
|
|
2
|
+
import { AccountFullUsageQuery as AccountFullUsageQueryType, AccountUsageForOverageWarningQuery } from '../generated';
|
|
3
|
+
export type AccountFullUsageData = NonNullable<AccountFullUsageQueryType['account']['byId']>;
|
|
4
|
+
export declare const AccountQuery: {
|
|
5
|
+
getByNameAsync(graphqlClient: ExpoGraphqlClient, accountName: string): Promise<{
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
} | null>;
|
|
9
|
+
getFullUsageAsync(graphqlClient: ExpoGraphqlClient, accountId: string, currentDate: Date, startDate: Date, endDate: Date): Promise<AccountFullUsageData>;
|
|
10
|
+
getUsageForOverageWarningAsync(graphqlClient: ExpoGraphqlClient, accountId: string, currentDate: Date): Promise<AccountUsageForOverageWarningQuery["account"]["byId"]>;
|
|
11
|
+
getBillingPeriodAsync(graphqlClient: ExpoGraphqlClient, accountId: string, currentDate: Date): Promise<{
|
|
12
|
+
start: Date;
|
|
13
|
+
end: Date;
|
|
14
|
+
}>;
|
|
15
|
+
};
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AccountQuery = 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 Account_1 = require("../types/Account");
|
|
9
|
+
exports.AccountQuery = {
|
|
10
|
+
async getByNameAsync(graphqlClient, accountName) {
|
|
11
|
+
const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
12
|
+
.query((0, graphql_tag_1.default) `
|
|
13
|
+
query AccountByName($accountName: String!) {
|
|
14
|
+
account {
|
|
15
|
+
byName(accountName: $accountName) {
|
|
16
|
+
id
|
|
17
|
+
name
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
`, { accountName }, { additionalTypenames: ['Account'] })
|
|
22
|
+
.toPromise());
|
|
23
|
+
return data.account.byName;
|
|
24
|
+
},
|
|
25
|
+
async getFullUsageAsync(graphqlClient, accountId, currentDate, startDate, endDate) {
|
|
26
|
+
const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
27
|
+
.query((0, graphql_tag_1.default) `
|
|
28
|
+
query AccountFullUsage(
|
|
29
|
+
$accountId: String!
|
|
30
|
+
$currentDate: DateTime!
|
|
31
|
+
$startDate: DateTime!
|
|
32
|
+
$endDate: DateTime!
|
|
33
|
+
) {
|
|
34
|
+
account {
|
|
35
|
+
byId(accountId: $accountId) {
|
|
36
|
+
id
|
|
37
|
+
name
|
|
38
|
+
subscription {
|
|
39
|
+
id
|
|
40
|
+
...SubscriptionDetailsFragment
|
|
41
|
+
}
|
|
42
|
+
billingPeriod(date: $currentDate) {
|
|
43
|
+
id
|
|
44
|
+
...BillingPeriodFragment
|
|
45
|
+
}
|
|
46
|
+
usageMetrics {
|
|
47
|
+
MEDIUM_ANDROID_BUILDS: metricsForServiceMetric(
|
|
48
|
+
serviceMetric: BUILDS
|
|
49
|
+
granularity: TOTAL
|
|
50
|
+
timespan: { start: $startDate, end: $endDate }
|
|
51
|
+
filterParams: {
|
|
52
|
+
platform: "android"
|
|
53
|
+
billingResourceClass: ["medium"]
|
|
54
|
+
status: ["finished", "errored"]
|
|
55
|
+
}
|
|
56
|
+
) {
|
|
57
|
+
id
|
|
58
|
+
...AccountUsageMetricFragment
|
|
59
|
+
}
|
|
60
|
+
LARGE_ANDROID_BUILDS: metricsForServiceMetric(
|
|
61
|
+
serviceMetric: BUILDS
|
|
62
|
+
granularity: TOTAL
|
|
63
|
+
timespan: { start: $startDate, end: $endDate }
|
|
64
|
+
filterParams: {
|
|
65
|
+
platform: "android"
|
|
66
|
+
billingResourceClass: ["large"]
|
|
67
|
+
status: ["finished", "errored"]
|
|
68
|
+
}
|
|
69
|
+
) {
|
|
70
|
+
id
|
|
71
|
+
...AccountUsageMetricFragment
|
|
72
|
+
}
|
|
73
|
+
MEDIUM_IOS_BUILDS: metricsForServiceMetric(
|
|
74
|
+
serviceMetric: BUILDS
|
|
75
|
+
granularity: TOTAL
|
|
76
|
+
timespan: { start: $startDate, end: $endDate }
|
|
77
|
+
filterParams: {
|
|
78
|
+
platform: "ios"
|
|
79
|
+
billingResourceClass: ["medium"]
|
|
80
|
+
status: ["finished", "errored"]
|
|
81
|
+
}
|
|
82
|
+
) {
|
|
83
|
+
id
|
|
84
|
+
...AccountUsageMetricFragment
|
|
85
|
+
}
|
|
86
|
+
LARGE_IOS_BUILDS: metricsForServiceMetric(
|
|
87
|
+
serviceMetric: BUILDS
|
|
88
|
+
granularity: TOTAL
|
|
89
|
+
timespan: { start: $startDate, end: $endDate }
|
|
90
|
+
filterParams: {
|
|
91
|
+
platform: "ios"
|
|
92
|
+
billingResourceClass: ["large"]
|
|
93
|
+
status: ["finished", "errored"]
|
|
94
|
+
}
|
|
95
|
+
) {
|
|
96
|
+
id
|
|
97
|
+
...AccountUsageMetricFragment
|
|
98
|
+
}
|
|
99
|
+
EAS_BUILD: byBillingPeriod(date: $currentDate, service: BUILDS) {
|
|
100
|
+
id
|
|
101
|
+
...UsageMetricTotalFragment
|
|
102
|
+
}
|
|
103
|
+
EAS_UPDATE: byBillingPeriod(date: $currentDate, service: UPDATES) {
|
|
104
|
+
id
|
|
105
|
+
...UsageMetricTotalFragment
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
${(0, graphql_1.print)(Account_1.SubscriptionDetailsFragmentNode)}
|
|
112
|
+
${(0, graphql_1.print)(Account_1.BillingPeriodFragmentNode)}
|
|
113
|
+
${(0, graphql_1.print)(Account_1.AccountUsageMetricFragmentNode)}
|
|
114
|
+
${(0, graphql_1.print)(Account_1.UsageMetricTotalFragmentNode)}
|
|
115
|
+
`, {
|
|
116
|
+
accountId,
|
|
117
|
+
currentDate: currentDate.toISOString(),
|
|
118
|
+
startDate: startDate.toISOString(),
|
|
119
|
+
endDate: endDate.toISOString(),
|
|
120
|
+
}, {
|
|
121
|
+
additionalTypenames: [
|
|
122
|
+
'Account',
|
|
123
|
+
'AccountUsageMetrics',
|
|
124
|
+
'UsageMetricTotal',
|
|
125
|
+
'BillingPeriod',
|
|
126
|
+
'EstimatedUsage',
|
|
127
|
+
'EstimatedOverageAndCost',
|
|
128
|
+
],
|
|
129
|
+
})
|
|
130
|
+
.toPromise());
|
|
131
|
+
if (!data.account.byId) {
|
|
132
|
+
throw new Error(`Account with ID ${accountId} not found`);
|
|
133
|
+
}
|
|
134
|
+
return data.account.byId;
|
|
135
|
+
},
|
|
136
|
+
async getUsageForOverageWarningAsync(graphqlClient, accountId, currentDate) {
|
|
137
|
+
const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
138
|
+
.query((0, graphql_tag_1.default) `
|
|
139
|
+
query AccountUsageForOverageWarning($accountId: String!, $currentDate: DateTime!) {
|
|
140
|
+
account {
|
|
141
|
+
byId(accountId: $accountId) {
|
|
142
|
+
id
|
|
143
|
+
name
|
|
144
|
+
subscription {
|
|
145
|
+
id
|
|
146
|
+
name
|
|
147
|
+
}
|
|
148
|
+
usageMetrics {
|
|
149
|
+
EAS_BUILD: byBillingPeriod(date: $currentDate, service: BUILDS) {
|
|
150
|
+
id
|
|
151
|
+
planMetrics {
|
|
152
|
+
id
|
|
153
|
+
serviceMetric
|
|
154
|
+
value
|
|
155
|
+
limit
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
`, { accountId, currentDate: currentDate.toISOString() }, {
|
|
163
|
+
additionalTypenames: ['Account', 'AccountUsageMetrics', 'UsageMetricTotal'],
|
|
164
|
+
})
|
|
165
|
+
.toPromise());
|
|
166
|
+
return data.account.byId;
|
|
167
|
+
},
|
|
168
|
+
async getBillingPeriodAsync(graphqlClient, accountId, currentDate) {
|
|
169
|
+
const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
170
|
+
.query((0, graphql_tag_1.default) `
|
|
171
|
+
query AccountBillingPeriod($accountId: String!, $currentDate: DateTime!) {
|
|
172
|
+
account {
|
|
173
|
+
byId(accountId: $accountId) {
|
|
174
|
+
id
|
|
175
|
+
name
|
|
176
|
+
billingPeriod(date: $currentDate) {
|
|
177
|
+
id
|
|
178
|
+
...BillingPeriodFragment
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
${(0, graphql_1.print)(Account_1.BillingPeriodFragmentNode)}
|
|
184
|
+
`, { accountId, currentDate: currentDate.toISOString() }, {
|
|
185
|
+
additionalTypenames: ['Account', 'BillingPeriod'],
|
|
186
|
+
})
|
|
187
|
+
.toPromise());
|
|
188
|
+
const { start, end } = data.account.byId?.billingPeriod ?? {};
|
|
189
|
+
if (!start || !end) {
|
|
190
|
+
throw new Error('Billing period data not found');
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
start: new Date(start),
|
|
194
|
+
end: new Date(end),
|
|
195
|
+
};
|
|
196
|
+
},
|
|
197
|
+
};
|
|
@@ -8,11 +8,7 @@ exports.AppVersionQuery = {
|
|
|
8
8
|
async latestVersionAsync(graphqlClient, appId, platform, applicationIdentifier) {
|
|
9
9
|
const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
10
10
|
.query((0, graphql_tag_1.default) `
|
|
11
|
-
query LatestAppVersion(
|
|
12
|
-
$appId: String!
|
|
13
|
-
$platform: AppPlatform!
|
|
14
|
-
$applicationIdentifier: String!
|
|
15
|
-
) {
|
|
11
|
+
query LatestAppVersion($appId: String!, $platform: AppPlatform!, $applicationIdentifier: String!) {
|
|
16
12
|
app {
|
|
17
13
|
byId(appId: $appId) {
|
|
18
14
|
id
|
|
@@ -1 +1,12 @@
|
|
|
1
1
|
export declare const AccountFragmentNode: import("graphql").DocumentNode;
|
|
2
|
+
export declare const InvoiceLineItemFragmentNode: import("graphql").DocumentNode;
|
|
3
|
+
export declare const InvoiceFragmentNode: import("graphql").DocumentNode;
|
|
4
|
+
export declare const ConcurrenciesFragmentNode: import("graphql").DocumentNode;
|
|
5
|
+
export declare const AddonDetailsFragmentNode: import("graphql").DocumentNode;
|
|
6
|
+
export declare const SubscriptionDetailsFragmentNode: import("graphql").DocumentNode;
|
|
7
|
+
export declare const BillingPeriodFragmentNode: import("graphql").DocumentNode;
|
|
8
|
+
export declare const EstimatedUsagePlatformBreakdownFragmentNode: import("graphql").DocumentNode;
|
|
9
|
+
export declare const EstimatedUsageFragmentNode: import("graphql").DocumentNode;
|
|
10
|
+
export declare const EstimatedOverageAndCostFragmentNode: import("graphql").DocumentNode;
|
|
11
|
+
export declare const UsageMetricTotalFragmentNode: import("graphql").DocumentNode;
|
|
12
|
+
export declare const AccountUsageMetricFragmentNode: import("graphql").DocumentNode;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AccountFragmentNode = void 0;
|
|
3
|
+
exports.AccountUsageMetricFragmentNode = exports.UsageMetricTotalFragmentNode = exports.EstimatedOverageAndCostFragmentNode = exports.EstimatedUsageFragmentNode = exports.EstimatedUsagePlatformBreakdownFragmentNode = exports.BillingPeriodFragmentNode = exports.SubscriptionDetailsFragmentNode = exports.AddonDetailsFragmentNode = exports.ConcurrenciesFragmentNode = exports.InvoiceFragmentNode = exports.InvoiceLineItemFragmentNode = exports.AccountFragmentNode = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
/* eslint-disable graphql/required-fields */
|
|
6
|
+
const graphql_1 = require("graphql");
|
|
5
7
|
const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
|
|
6
8
|
exports.AccountFragmentNode = (0, graphql_tag_1.default) `
|
|
7
9
|
fragment AccountFragment on Account {
|
|
@@ -19,3 +21,142 @@ exports.AccountFragmentNode = (0, graphql_tag_1.default) `
|
|
|
19
21
|
}
|
|
20
22
|
}
|
|
21
23
|
`;
|
|
24
|
+
exports.InvoiceLineItemFragmentNode = (0, graphql_tag_1.default) `
|
|
25
|
+
fragment InvoiceLineItemFragment on InvoiceLineItem {
|
|
26
|
+
id
|
|
27
|
+
description
|
|
28
|
+
amount
|
|
29
|
+
period {
|
|
30
|
+
start
|
|
31
|
+
end
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
`;
|
|
35
|
+
exports.InvoiceFragmentNode = (0, graphql_tag_1.default) `
|
|
36
|
+
${(0, graphql_1.print)(exports.InvoiceLineItemFragmentNode)}
|
|
37
|
+
|
|
38
|
+
fragment InvoiceFragment on Invoice {
|
|
39
|
+
id
|
|
40
|
+
total
|
|
41
|
+
lineItems {
|
|
42
|
+
...InvoiceLineItemFragment
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
`;
|
|
46
|
+
exports.ConcurrenciesFragmentNode = (0, graphql_tag_1.default) `
|
|
47
|
+
fragment ConcurrenciesFragment on Concurrencies {
|
|
48
|
+
total
|
|
49
|
+
android
|
|
50
|
+
ios
|
|
51
|
+
}
|
|
52
|
+
`;
|
|
53
|
+
exports.AddonDetailsFragmentNode = (0, graphql_tag_1.default) `
|
|
54
|
+
fragment AddonDetailsFragment on AddonDetails {
|
|
55
|
+
id
|
|
56
|
+
name
|
|
57
|
+
quantity
|
|
58
|
+
}
|
|
59
|
+
`;
|
|
60
|
+
exports.SubscriptionDetailsFragmentNode = (0, graphql_tag_1.default) `
|
|
61
|
+
${(0, graphql_1.print)(exports.ConcurrenciesFragmentNode)}
|
|
62
|
+
${(0, graphql_1.print)(exports.AddonDetailsFragmentNode)}
|
|
63
|
+
${(0, graphql_1.print)(exports.InvoiceFragmentNode)}
|
|
64
|
+
|
|
65
|
+
fragment SubscriptionDetailsFragment on SubscriptionDetails {
|
|
66
|
+
id
|
|
67
|
+
name
|
|
68
|
+
status
|
|
69
|
+
nextInvoice
|
|
70
|
+
nextInvoiceAmountDueCents
|
|
71
|
+
recurringCents
|
|
72
|
+
price
|
|
73
|
+
concurrencies {
|
|
74
|
+
...ConcurrenciesFragment
|
|
75
|
+
}
|
|
76
|
+
addons {
|
|
77
|
+
...AddonDetailsFragment
|
|
78
|
+
}
|
|
79
|
+
upcomingInvoice {
|
|
80
|
+
...InvoiceFragment
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
`;
|
|
84
|
+
exports.BillingPeriodFragmentNode = (0, graphql_tag_1.default) `
|
|
85
|
+
fragment BillingPeriodFragment on BillingPeriod {
|
|
86
|
+
id
|
|
87
|
+
start
|
|
88
|
+
end
|
|
89
|
+
anchor
|
|
90
|
+
}
|
|
91
|
+
`;
|
|
92
|
+
exports.EstimatedUsagePlatformBreakdownFragmentNode = (0, graphql_tag_1.default) `
|
|
93
|
+
fragment EstimatedUsagePlatformBreakdownFragment on EstimatedUsagePlatformBreakdown {
|
|
94
|
+
ios {
|
|
95
|
+
value
|
|
96
|
+
limit
|
|
97
|
+
}
|
|
98
|
+
android {
|
|
99
|
+
value
|
|
100
|
+
limit
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
`;
|
|
104
|
+
exports.EstimatedUsageFragmentNode = (0, graphql_tag_1.default) `
|
|
105
|
+
${(0, graphql_1.print)(exports.EstimatedUsagePlatformBreakdownFragmentNode)}
|
|
106
|
+
|
|
107
|
+
fragment EstimatedUsageFragment on EstimatedUsage {
|
|
108
|
+
id
|
|
109
|
+
service
|
|
110
|
+
serviceMetric
|
|
111
|
+
metricType
|
|
112
|
+
value
|
|
113
|
+
limit
|
|
114
|
+
platformBreakdown {
|
|
115
|
+
...EstimatedUsagePlatformBreakdownFragment
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
`;
|
|
119
|
+
exports.EstimatedOverageAndCostFragmentNode = (0, graphql_tag_1.default) `
|
|
120
|
+
fragment EstimatedOverageAndCostFragment on EstimatedOverageAndCost {
|
|
121
|
+
id
|
|
122
|
+
service
|
|
123
|
+
serviceMetric
|
|
124
|
+
metricType
|
|
125
|
+
value
|
|
126
|
+
limit
|
|
127
|
+
totalCost
|
|
128
|
+
metadata {
|
|
129
|
+
... on AccountUsageEASBuildMetadata {
|
|
130
|
+
billingResourceClass
|
|
131
|
+
platform
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
`;
|
|
136
|
+
exports.UsageMetricTotalFragmentNode = (0, graphql_tag_1.default) `
|
|
137
|
+
${(0, graphql_1.print)(exports.BillingPeriodFragmentNode)}
|
|
138
|
+
${(0, graphql_1.print)(exports.EstimatedUsageFragmentNode)}
|
|
139
|
+
${(0, graphql_1.print)(exports.EstimatedOverageAndCostFragmentNode)}
|
|
140
|
+
|
|
141
|
+
fragment UsageMetricTotalFragment on UsageMetricTotal {
|
|
142
|
+
id
|
|
143
|
+
billingPeriod {
|
|
144
|
+
...BillingPeriodFragment
|
|
145
|
+
}
|
|
146
|
+
planMetrics {
|
|
147
|
+
...EstimatedUsageFragment
|
|
148
|
+
}
|
|
149
|
+
overageMetrics {
|
|
150
|
+
...EstimatedOverageAndCostFragment
|
|
151
|
+
}
|
|
152
|
+
totalCost
|
|
153
|
+
}
|
|
154
|
+
`;
|
|
155
|
+
exports.AccountUsageMetricFragmentNode = (0, graphql_tag_1.default) `
|
|
156
|
+
fragment AccountUsageMetricFragment on AccountUsageMetric {
|
|
157
|
+
id
|
|
158
|
+
serviceMetric
|
|
159
|
+
metricType
|
|
160
|
+
value
|
|
161
|
+
}
|
|
162
|
+
`;
|
package/build/log.js
CHANGED
|
@@ -8,7 +8,7 @@ const figures_1 = tslib_1.__importDefault(require("figures"));
|
|
|
8
8
|
const getenv_1 = require("getenv");
|
|
9
9
|
const log_symbols_1 = tslib_1.__importDefault(require("log-symbols"));
|
|
10
10
|
const terminal_link_1 = tslib_1.__importDefault(require("terminal-link"));
|
|
11
|
-
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
11
|
+
// eslint-disable-next-line eslint-import/no-extraneous-dependencies
|
|
12
12
|
const nodeDebug = require('debug')('eas:log:debug');
|
|
13
13
|
class Log {
|
|
14
14
|
static isDebug = (0, getenv_1.boolish)('EXPO_DEBUG', false);
|
package/build/ora.js
CHANGED
|
@@ -22,7 +22,7 @@ const isCi = (0, getenv_1.boolish)('CI', false);
|
|
|
22
22
|
* @returns
|
|
23
23
|
*/
|
|
24
24
|
function ora(options) {
|
|
25
|
-
const inputOptions = typeof options === 'string' ? { text: options } : options ?? {};
|
|
25
|
+
const inputOptions = typeof options === 'string' ? { text: options } : (options ?? {});
|
|
26
26
|
const disabled = log_1.default.isDebug || !process.stdin.isTTY || isCi;
|
|
27
27
|
const spinner = (0, ora_1.default)({
|
|
28
28
|
// Ensure our non-interactive mode emulates CI mode.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ProfileData } from '../utils/profiles';
|
|
2
|
+
import type { Client } from '../vcs/vcs';
|
|
3
|
+
export declare function discourageExpoGoForProdAsync(buildProfiles: ProfileData<'build'>[] | undefined, projectDir: string, vcsClient: Client): Promise<void>;
|
|
4
|
+
export declare function detectExpoGoProdBuildAsync(buildProfiles: ProfileData<'build'>[] | undefined, projectDir: string, vcsClient: Client): Promise<boolean>;
|