eas-cli 3.17.0 → 3.18.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 +55 -55
- package/build/build/android/build.js +1 -2
- package/build/build/local.js +1 -1
- package/build/build/runBuildAndSubmit.js +2 -0
- package/build/channel/actions/SelectChannel.d.ts +17 -0
- package/build/channel/actions/SelectChannel.js +49 -0
- package/build/channel/branch-mapping.d.ts +4 -0
- package/build/channel/branch-mapping.js +30 -1
- package/build/channel/queries.d.ts +6 -1
- package/build/channel/queries.js +29 -3
- package/build/channel/utils.d.ts +2 -1
- package/build/channel/utils.js +14 -1
- package/build/commands/build/version/get.js +1 -0
- package/build/commands/build/version/sync.js +1 -0
- package/build/commands/channel/edit.d.ts +2 -2
- package/build/commands/channel/edit.js +4 -2
- package/build/commands/metadata/lint.js +1 -0
- package/build/commands/metadata/pull.js +1 -0
- package/build/commands/metadata/push.js +1 -0
- package/build/commands/submit.js +1 -0
- package/build/eas-update/utils.d.ts +15 -0
- package/build/eas-update/utils.js +6 -0
- package/build/graphql/generated.d.ts +89 -15
- package/build/graphql/generated.js +9 -2
- package/build/graphql/queries/ChannelQuery.d.ts +8 -4
- package/build/graphql/queries/ChannelQuery.js +43 -4
- package/build/graphql/types/UpdateChannelBasicInfo.d.ts +1 -0
- package/build/graphql/types/UpdateChannelBasicInfo.js +12 -0
- package/build/project/ios/target.d.ts +1 -1
- package/build/project/ios/target.js +4 -4
- package/build/rollout/actions/SelectRollout.d.ts +8 -0
- package/build/rollout/actions/SelectRollout.js +23 -0
- package/build/rollout/branch-mapping.d.ts +80 -0
- package/build/rollout/branch-mapping.js +211 -0
- package/build/rollout/utils.d.ts +3 -53
- package/build/rollout/utils.js +39 -100
- package/build/utils/profiles.d.ts +2 -1
- package/build/utils/profiles.js +35 -3
- package/build/utils/relay.d.ts +33 -0
- package/build/utils/relay.js +43 -0
- package/oclif.manifest.json +1 -1
- package/package.json +5 -5
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ExpoGraphqlClient } from '../commandUtils/context/contextUtils/createGraphqlClient';
|
|
2
2
|
import { PaginatedQueryOptions } from '../commandUtils/pagination';
|
|
3
|
-
import { CreateUpdateChannelOnAppMutation } from '../graphql/generated';
|
|
3
|
+
import { CreateUpdateChannelOnAppMutation, UpdateChannelBasicInfoFragment } from '../graphql/generated';
|
|
4
4
|
import { UpdateChannelObject } from '../graphql/queries/ChannelQuery';
|
|
5
5
|
export declare const CHANNELS_LIMIT = 25;
|
|
6
6
|
export declare function selectChannelOnAppAsync(graphqlClient: ExpoGraphqlClient, { projectId, selectionPromptTitle, paginatedQueryOptions, }: {
|
|
@@ -27,3 +27,8 @@ export declare function ensureChannelExistsAsync(graphqlClient: ExpoGraphqlClien
|
|
|
27
27
|
branchId: string;
|
|
28
28
|
channelName: string;
|
|
29
29
|
}): Promise<void>;
|
|
30
|
+
export declare function getChannelsDatasetAsync(graphqlClient: ExpoGraphqlClient, { appId, filterPredicate, batchSize, }: {
|
|
31
|
+
appId: string;
|
|
32
|
+
filterPredicate?: (channelInfo: UpdateChannelBasicInfoFragment) => boolean;
|
|
33
|
+
batchSize?: number;
|
|
34
|
+
}): Promise<UpdateChannelBasicInfoFragment[]>;
|
package/build/channel/queries.js
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ensureChannelExistsAsync = exports.createChannelOnAppAsync = exports.listAndRenderBranchesAndUpdatesOnChannelAsync = exports.listAndRenderChannelsOnAppAsync = exports.selectChannelOnAppAsync = exports.CHANNELS_LIMIT = void 0;
|
|
3
|
+
exports.getChannelsDatasetAsync = exports.ensureChannelExistsAsync = exports.createChannelOnAppAsync = exports.listAndRenderBranchesAndUpdatesOnChannelAsync = exports.listAndRenderChannelsOnAppAsync = exports.selectChannelOnAppAsync = exports.CHANNELS_LIMIT = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
6
|
+
const graphql_1 = require("graphql");
|
|
6
7
|
const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
|
|
7
8
|
const client_1 = require("../graphql/client");
|
|
8
9
|
const BranchQuery_1 = require("../graphql/queries/BranchQuery");
|
|
9
10
|
const ChannelQuery_1 = require("../graphql/queries/ChannelQuery");
|
|
11
|
+
const UpdateChannelBasicInfo_1 = require("../graphql/types/UpdateChannelBasicInfo");
|
|
10
12
|
const log_1 = tslib_1.__importDefault(require("../log"));
|
|
13
|
+
const ora_1 = require("../ora");
|
|
11
14
|
const formatFields_1 = tslib_1.__importDefault(require("../utils/formatFields"));
|
|
12
15
|
const json_1 = require("../utils/json");
|
|
13
16
|
const queries_1 = require("../utils/queries");
|
|
17
|
+
const relay_1 = require("../utils/relay");
|
|
14
18
|
const utils_1 = require("./utils");
|
|
15
19
|
exports.CHANNELS_LIMIT = 25;
|
|
16
20
|
async function selectChannelOnAppAsync(graphqlClient, { projectId, selectionPromptTitle, paginatedQueryOptions, }) {
|
|
@@ -146,11 +150,11 @@ async function createChannelOnAppAsync(graphqlClient, { appId, branchId, channel
|
|
|
146
150
|
updateChannel {
|
|
147
151
|
createUpdateChannelForApp(appId: $appId, name: $name, branchMapping: $branchMapping) {
|
|
148
152
|
id
|
|
149
|
-
|
|
150
|
-
branchMapping
|
|
153
|
+
...UpdateChannelBasicInfoFragment
|
|
151
154
|
}
|
|
152
155
|
}
|
|
153
156
|
}
|
|
157
|
+
${(0, graphql_1.print)(UpdateChannelBasicInfo_1.UpdateChannelBasicInfoFragmentNode)}
|
|
154
158
|
`, {
|
|
155
159
|
appId,
|
|
156
160
|
name: channelName,
|
|
@@ -177,3 +181,25 @@ async function ensureChannelExistsAsync(graphqlClient, { appId, branchId, channe
|
|
|
177
181
|
}
|
|
178
182
|
}
|
|
179
183
|
exports.ensureChannelExistsAsync = ensureChannelExistsAsync;
|
|
184
|
+
async function getChannelsDatasetAsync(graphqlClient, { appId, filterPredicate, batchSize = 100, }) {
|
|
185
|
+
const queryAsync = async ({ first, after, }) => await ChannelQuery_1.ChannelQuery.viewUpdateChannelsBasicInfoPaginatedOnAppAsync(graphqlClient, {
|
|
186
|
+
appId,
|
|
187
|
+
first,
|
|
188
|
+
after,
|
|
189
|
+
});
|
|
190
|
+
const assetSpinner = (0, ora_1.ora)().start('Fetching channels...');
|
|
191
|
+
const afterEachQuery = (totalNodesFetched, _dataset, _batch, pageInfo) => {
|
|
192
|
+
if (pageInfo.hasNextPage) {
|
|
193
|
+
assetSpinner.text = `Fetched ${totalNodesFetched} channels`;
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
const dataset = await (0, relay_1.getPaginatedDatasetAsync)({
|
|
197
|
+
queryAsync,
|
|
198
|
+
afterEachQuery,
|
|
199
|
+
filterPredicate,
|
|
200
|
+
batchSize,
|
|
201
|
+
});
|
|
202
|
+
assetSpinner.succeed(`Fetched all channels`);
|
|
203
|
+
return dataset;
|
|
204
|
+
}
|
|
205
|
+
exports.getChannelsDatasetAsync = getChannelsDatasetAsync;
|
package/build/channel/utils.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UpdateChannelObject } from '../graphql/queries/ChannelQuery';
|
|
1
|
+
import { UpdateBranchObject, UpdateChannelObject } from '../graphql/queries/ChannelQuery';
|
|
2
2
|
import { BranchMapping } from './branch-mapping';
|
|
3
3
|
/**
|
|
4
4
|
* Get the branch mapping and determine whether it is a rollout.
|
|
@@ -10,3 +10,4 @@ export declare function getBranchMapping(branchMappingString?: string): {
|
|
|
10
10
|
rolloutPercent?: number;
|
|
11
11
|
};
|
|
12
12
|
export declare function logChannelDetails(channel: UpdateChannelObject): void;
|
|
13
|
+
export declare function getUpdateBranch(channel: UpdateChannelObject, branchId: string): UpdateBranchObject;
|
package/build/channel/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.logChannelDetails = exports.getBranchMapping = void 0;
|
|
3
|
+
exports.getUpdateBranch = exports.logChannelDetails = exports.getBranchMapping = 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"));
|
|
@@ -93,3 +93,16 @@ function logChannelDetails(channel) {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
exports.logChannelDetails = logChannelDetails;
|
|
96
|
+
function getUpdateBranchNullable(channel, branchId) {
|
|
97
|
+
const updateBranches = channel.updateBranches;
|
|
98
|
+
const updateBranch = updateBranches.find(branch => branch.id === branchId);
|
|
99
|
+
return updateBranch !== null && updateBranch !== void 0 ? updateBranch : null;
|
|
100
|
+
}
|
|
101
|
+
function getUpdateBranch(channel, branchId) {
|
|
102
|
+
const updateBranch = getUpdateBranchNullable(channel, branchId);
|
|
103
|
+
if (!updateBranch) {
|
|
104
|
+
throw new Error(`Could not find branch with id "${branchId}" in branch-mapping of channel "${channel.name}"`);
|
|
105
|
+
}
|
|
106
|
+
return updateBranch;
|
|
107
|
+
}
|
|
108
|
+
exports.getUpdateBranch = getUpdateBranch;
|
|
@@ -39,6 +39,7 @@ class BuildVersionGetView extends EasCommand_1.default {
|
|
|
39
39
|
easJsonAccessor,
|
|
40
40
|
platforms,
|
|
41
41
|
profileName: (_b = flags.profile) !== null && _b !== void 0 ? _b : undefined,
|
|
42
|
+
projectDir,
|
|
42
43
|
});
|
|
43
44
|
const results = {};
|
|
44
45
|
for (const { profile, platform } of buildProfiles) {
|
|
@@ -38,6 +38,7 @@ class BuildVersionSyncView extends EasCommand_1.default {
|
|
|
38
38
|
easJsonAccessor,
|
|
39
39
|
platforms,
|
|
40
40
|
profileName: (_b = flags.profile) !== null && _b !== void 0 ? _b : undefined,
|
|
41
|
+
projectDir,
|
|
41
42
|
});
|
|
42
43
|
for (const profileInfo of buildProfiles) {
|
|
43
44
|
const { exp, projectId } = await getDynamicPrivateProjectConfigAsync({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import EasCommand from '../../commandUtils/EasCommand';
|
|
2
2
|
import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient';
|
|
3
|
-
import {
|
|
4
|
-
export declare function updateChannelBranchMappingAsync(graphqlClient: ExpoGraphqlClient, { channelId, branchMapping }: UpdateChannelBranchMappingMutationVariables): Promise<
|
|
3
|
+
import { UpdateChannelBasicInfoFragment, UpdateChannelBranchMappingMutationVariables } from '../../graphql/generated';
|
|
4
|
+
export declare function updateChannelBranchMappingAsync(graphqlClient: ExpoGraphqlClient, { channelId, branchMapping }: UpdateChannelBranchMappingMutationVariables): Promise<UpdateChannelBasicInfoFragment>;
|
|
5
5
|
export default class ChannelEdit extends EasCommand {
|
|
6
6
|
static description: string;
|
|
7
7
|
static args: {
|
|
@@ -5,6 +5,7 @@ exports.updateChannelBranchMappingAsync = void 0;
|
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const core_1 = require("@oclif/core");
|
|
7
7
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
8
|
+
const graphql_1 = require("graphql");
|
|
8
9
|
const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
|
|
9
10
|
const queries_1 = require("../../branch/queries");
|
|
10
11
|
const queries_2 = require("../../channel/queries");
|
|
@@ -13,6 +14,7 @@ const flags_1 = require("../../commandUtils/flags");
|
|
|
13
14
|
const client_1 = require("../../graphql/client");
|
|
14
15
|
const BranchQuery_1 = require("../../graphql/queries/BranchQuery");
|
|
15
16
|
const ChannelQuery_1 = require("../../graphql/queries/ChannelQuery");
|
|
17
|
+
const UpdateChannelBasicInfo_1 = require("../../graphql/types/UpdateChannelBasicInfo");
|
|
16
18
|
const log_1 = tslib_1.__importDefault(require("../../log"));
|
|
17
19
|
const json_1 = require("../../utils/json");
|
|
18
20
|
async function updateChannelBranchMappingAsync(graphqlClient, { channelId, branchMapping }) {
|
|
@@ -22,11 +24,11 @@ async function updateChannelBranchMappingAsync(graphqlClient, { channelId, branc
|
|
|
22
24
|
updateChannel {
|
|
23
25
|
editUpdateChannel(channelId: $channelId, branchMapping: $branchMapping) {
|
|
24
26
|
id
|
|
25
|
-
|
|
26
|
-
branchMapping
|
|
27
|
+
...UpdateChannelBasicInfoFragment
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
}
|
|
31
|
+
${(0, graphql_1.print)(UpdateChannelBasicInfo_1.UpdateChannelBasicInfoFragmentNode)}
|
|
30
32
|
`, { channelId, branchMapping })
|
|
31
33
|
.toPromise());
|
|
32
34
|
const channel = data.updateChannel.editUpdateChannel;
|
|
@@ -28,6 +28,7 @@ class MetadataLint extends EasCommand_1.default {
|
|
|
28
28
|
easJsonAccessor: eas_json_1.EasJsonAccessor.fromProjectPath(projectDir),
|
|
29
29
|
platforms: [eas_build_job_1.Platform.IOS],
|
|
30
30
|
profileName: flags.profile,
|
|
31
|
+
projectDir,
|
|
31
32
|
});
|
|
32
33
|
if (submitProfiles.length !== 1) {
|
|
33
34
|
throw new Error('Metadata only supports iOS and a single submit profile.');
|
|
@@ -28,6 +28,7 @@ class MetadataPull extends EasCommand_1.default {
|
|
|
28
28
|
easJsonAccessor: eas_json_1.EasJsonAccessor.fromProjectPath(projectDir),
|
|
29
29
|
platforms: [eas_build_job_1.Platform.IOS],
|
|
30
30
|
profileName: flags.profile,
|
|
31
|
+
projectDir,
|
|
31
32
|
});
|
|
32
33
|
if (submitProfiles.length !== 1) {
|
|
33
34
|
throw new Error('Metadata only supports iOS and a single submit profile.');
|
|
@@ -26,6 +26,7 @@ class MetadataPush extends EasCommand_1.default {
|
|
|
26
26
|
easJsonAccessor: eas_json_1.EasJsonAccessor.fromProjectPath(projectDir),
|
|
27
27
|
platforms: [eas_build_job_1.Platform.IOS],
|
|
28
28
|
profileName: flags.profile,
|
|
29
|
+
projectDir,
|
|
29
30
|
});
|
|
30
31
|
if (submitProfiles.length !== 1) {
|
|
31
32
|
throw new Error('Metadata only supports iOS and a single submit profile.');
|
package/build/commands/submit.js
CHANGED
|
@@ -30,6 +30,7 @@ class Submit extends EasCommand_1.default {
|
|
|
30
30
|
easJsonAccessor: eas_json_1.EasJsonAccessor.fromProjectPath(projectDir),
|
|
31
31
|
platforms,
|
|
32
32
|
profileName: flagsWithPlatform.profile,
|
|
33
|
+
projectDir,
|
|
33
34
|
});
|
|
34
35
|
const submissions = [];
|
|
35
36
|
for (const submissionProfile of submissionProfiles) {
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ExpoConfig } from '@expo/config-types';
|
|
2
|
+
import { ExpoGraphqlClient } from '../commandUtils/context/contextUtils/createGraphqlClient';
|
|
3
|
+
export type EASUpdateContext = {
|
|
4
|
+
graphqlClient: ExpoGraphqlClient;
|
|
5
|
+
nonInteractive: boolean;
|
|
6
|
+
app: {
|
|
7
|
+
exp: ExpoConfig;
|
|
8
|
+
projectId: string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export interface EASUpdateAction<T = any> {
|
|
12
|
+
runAsync(ctx: EASUpdateContext): Promise<T>;
|
|
13
|
+
}
|
|
14
|
+
export declare class NonInteractiveError extends Error {
|
|
15
|
+
}
|
|
@@ -400,20 +400,14 @@ export type AccountQueryByNameArgs = {
|
|
|
400
400
|
/** Auth configuration data for an SSO account. */
|
|
401
401
|
export type AccountSsoConfiguration = {
|
|
402
402
|
__typename?: 'AccountSSOConfiguration';
|
|
403
|
-
authEndpoint?: Maybe<Scalars['String']>;
|
|
404
403
|
authProtocol: AuthProtocolType;
|
|
405
404
|
authProviderIdentifier: Scalars['String'];
|
|
406
405
|
clientIdentifier: Scalars['String'];
|
|
407
406
|
clientSecret: Scalars['String'];
|
|
408
407
|
createdAt: Scalars['DateTime'];
|
|
409
|
-
endSessionEndpoint?: Maybe<Scalars['String']>;
|
|
410
408
|
id: Scalars['ID'];
|
|
411
409
|
issuer: Scalars['String'];
|
|
412
|
-
jwksEndpoint?: Maybe<Scalars['String']>;
|
|
413
|
-
revokeEndpoint?: Maybe<Scalars['String']>;
|
|
414
|
-
tokenEndpoint?: Maybe<Scalars['String']>;
|
|
415
410
|
updatedAt: Scalars['DateTime'];
|
|
416
|
-
userInfoEndpoint?: Maybe<Scalars['String']>;
|
|
417
411
|
};
|
|
418
412
|
export type AccountSsoConfigurationData = {
|
|
419
413
|
authEndpoint?: InputMaybe<Scalars['String']>;
|
|
@@ -451,17 +445,11 @@ export type AccountSsoConfigurationMutationUpdateAccountSsoConfigurationArgs = {
|
|
|
451
445
|
/** Public auth configuration data for an SSO account. */
|
|
452
446
|
export type AccountSsoConfigurationPublicData = {
|
|
453
447
|
__typename?: 'AccountSSOConfigurationPublicData';
|
|
454
|
-
authEndpoint?: Maybe<Scalars['String']>;
|
|
455
448
|
authProtocol: AuthProtocolType;
|
|
456
449
|
authProviderIdentifier: Scalars['String'];
|
|
457
|
-
|
|
458
|
-
endSessionEndpoint?: Maybe<Scalars['String']>;
|
|
450
|
+
authorizationUrl: Scalars['String'];
|
|
459
451
|
id: Scalars['ID'];
|
|
460
452
|
issuer: Scalars['String'];
|
|
461
|
-
jwksEndpoint?: Maybe<Scalars['String']>;
|
|
462
|
-
revokeEndpoint?: Maybe<Scalars['String']>;
|
|
463
|
-
tokenEndpoint?: Maybe<Scalars['String']>;
|
|
464
|
-
userInfoEndpoint?: Maybe<Scalars['String']>;
|
|
465
453
|
};
|
|
466
454
|
export type AccountSsoConfigurationPublicDataQuery = {
|
|
467
455
|
__typename?: 'AccountSSOConfigurationPublicDataQuery';
|
|
@@ -1885,6 +1873,15 @@ export declare enum BuildJobStatus {
|
|
|
1885
1873
|
SentToQueue = "SENT_TO_QUEUE",
|
|
1886
1874
|
Started = "STARTED"
|
|
1887
1875
|
}
|
|
1876
|
+
export type BuildLimitThresholdExceededMetadata = {
|
|
1877
|
+
__typename?: 'BuildLimitThresholdExceededMetadata';
|
|
1878
|
+
account: Account;
|
|
1879
|
+
thresholdsExceeded: Array<NotificationThresholdExceeded>;
|
|
1880
|
+
};
|
|
1881
|
+
export declare enum BuildLimitThresholdExceededMetadataType {
|
|
1882
|
+
Ios = "IOS",
|
|
1883
|
+
Total = "TOTAL"
|
|
1884
|
+
}
|
|
1888
1885
|
export type BuildLogs = {
|
|
1889
1886
|
__typename?: 'BuildLogs';
|
|
1890
1887
|
format?: Maybe<BuildJobLogsFormat>;
|
|
@@ -2004,6 +2001,13 @@ export type BuildParamsInput = {
|
|
|
2004
2001
|
resourceClass: BuildResourceClass;
|
|
2005
2002
|
sdkVersion?: InputMaybe<Scalars['String']>;
|
|
2006
2003
|
};
|
|
2004
|
+
export type BuildPlanCreditThresholdExceededMetadata = {
|
|
2005
|
+
__typename?: 'BuildPlanCreditThresholdExceededMetadata';
|
|
2006
|
+
account: Account;
|
|
2007
|
+
buildCreditUsage: Scalars['Int'];
|
|
2008
|
+
planLimit: Scalars['Int'];
|
|
2009
|
+
threshold: Scalars['Int'];
|
|
2010
|
+
};
|
|
2007
2011
|
export declare enum BuildPriority {
|
|
2008
2012
|
High = "HIGH",
|
|
2009
2013
|
Normal = "NORMAL",
|
|
@@ -3133,12 +3137,23 @@ export type MeteredBillingStatus = {
|
|
|
3133
3137
|
EAS_BUILD: Scalars['Boolean'];
|
|
3134
3138
|
EAS_UPDATE: Scalars['Boolean'];
|
|
3135
3139
|
};
|
|
3140
|
+
export type Notification = {
|
|
3141
|
+
__typename?: 'Notification';
|
|
3142
|
+
createdAt: Scalars['DateTime'];
|
|
3143
|
+
event: NotificationEvent;
|
|
3144
|
+
id: Scalars['ID'];
|
|
3145
|
+
metadata?: Maybe<NotificationMetadata>;
|
|
3146
|
+
type: NotificationType;
|
|
3147
|
+
updatedAt: Scalars['DateTime'];
|
|
3148
|
+
};
|
|
3136
3149
|
export declare enum NotificationEvent {
|
|
3137
3150
|
BuildComplete = "BUILD_COMPLETE",
|
|
3138
3151
|
BuildLimitThresholdExceeded = "BUILD_LIMIT_THRESHOLD_EXCEEDED",
|
|
3139
3152
|
BuildPlanCreditThresholdExceeded = "BUILD_PLAN_CREDIT_THRESHOLD_EXCEEDED",
|
|
3140
|
-
SubmissionComplete = "SUBMISSION_COMPLETE"
|
|
3153
|
+
SubmissionComplete = "SUBMISSION_COMPLETE",
|
|
3154
|
+
Test = "TEST"
|
|
3141
3155
|
}
|
|
3156
|
+
export type NotificationMetadata = BuildLimitThresholdExceededMetadata | BuildPlanCreditThresholdExceededMetadata | TestNotificationMetadata;
|
|
3142
3157
|
export type NotificationSubscription = {
|
|
3143
3158
|
__typename?: 'NotificationSubscription';
|
|
3144
3159
|
account?: Maybe<Account>;
|
|
@@ -3170,8 +3185,16 @@ export type NotificationSubscriptionMutationSubscribeToEventForAppArgs = {
|
|
|
3170
3185
|
export type NotificationSubscriptionMutationUnsubscribeArgs = {
|
|
3171
3186
|
id: Scalars['ID'];
|
|
3172
3187
|
};
|
|
3188
|
+
export type NotificationThresholdExceeded = {
|
|
3189
|
+
__typename?: 'NotificationThresholdExceeded';
|
|
3190
|
+
count: Scalars['Int'];
|
|
3191
|
+
limit: Scalars['Int'];
|
|
3192
|
+
threshold: Scalars['Int'];
|
|
3193
|
+
type: BuildLimitThresholdExceededMetadataType;
|
|
3194
|
+
};
|
|
3173
3195
|
export declare enum NotificationType {
|
|
3174
|
-
Email = "EMAIL"
|
|
3196
|
+
Email = "EMAIL",
|
|
3197
|
+
Web = "WEB"
|
|
3175
3198
|
}
|
|
3176
3199
|
export type Offer = {
|
|
3177
3200
|
__typename?: 'Offer';
|
|
@@ -3616,6 +3639,8 @@ export type SsoUser = Actor & UserActor & {
|
|
|
3616
3639
|
/** @deprecated No longer supported */
|
|
3617
3640
|
twitterUsername?: Maybe<Scalars['String']>;
|
|
3618
3641
|
username: Scalars['String'];
|
|
3642
|
+
/** Web notifications linked to a user */
|
|
3643
|
+
webNotifications: Array<Notification>;
|
|
3619
3644
|
};
|
|
3620
3645
|
/** Represents a human SSO (not robot) actor. */
|
|
3621
3646
|
export type SsoUserActivityTimelineProjectActivitiesArgs = {
|
|
@@ -3980,6 +4005,10 @@ export type SubscriptionDetails = {
|
|
|
3980
4005
|
export type SubscriptionDetailsPlanEnablementArgs = {
|
|
3981
4006
|
serviceMetric: EasServiceMetric;
|
|
3982
4007
|
};
|
|
4008
|
+
export type TestNotificationMetadata = {
|
|
4009
|
+
__typename?: 'TestNotificationMetadata';
|
|
4010
|
+
message: Scalars['String'];
|
|
4011
|
+
};
|
|
3983
4012
|
export type TimelineActivityConnection = {
|
|
3984
4013
|
__typename?: 'TimelineActivityConnection';
|
|
3985
4014
|
edges: Array<TimelineActivityEdge>;
|
|
@@ -4250,6 +4279,7 @@ export type User = Actor & UserActor & {
|
|
|
4250
4279
|
/** @deprecated No longer supported */
|
|
4251
4280
|
twitterUsername?: Maybe<Scalars['String']>;
|
|
4252
4281
|
username: Scalars['String'];
|
|
4282
|
+
webNotifications: Array<Notification>;
|
|
4253
4283
|
};
|
|
4254
4284
|
/** Represents a human (not robot) actor. */
|
|
4255
4285
|
export type UserActivityTimelineProjectActivitiesArgs = {
|
|
@@ -4327,6 +4357,8 @@ export type UserActor = {
|
|
|
4327
4357
|
/** @deprecated No longer supported */
|
|
4328
4358
|
twitterUsername?: Maybe<Scalars['String']>;
|
|
4329
4359
|
username: Scalars['String'];
|
|
4360
|
+
/** Web notifications linked to a user */
|
|
4361
|
+
webNotifications: Array<Notification>;
|
|
4330
4362
|
};
|
|
4331
4363
|
/** A human user (type User or SSOUser) that can login to the Expo website, use Expo services, and be a member of accounts. */
|
|
4332
4364
|
export type UserActorActivityTimelineProjectActivitiesArgs = {
|
|
@@ -8733,6 +8765,7 @@ export type ViewBuildsOnAppQuery = {
|
|
|
8733
8765
|
export type ViewUpdateChannelOnAppQueryVariables = Exact<{
|
|
8734
8766
|
appId: Scalars['String'];
|
|
8735
8767
|
channelName: Scalars['String'];
|
|
8768
|
+
filter?: InputMaybe<UpdatesFilter>;
|
|
8736
8769
|
}>;
|
|
8737
8770
|
export type ViewUpdateChannelOnAppQuery = {
|
|
8738
8771
|
__typename?: 'RootQuery';
|
|
@@ -8809,6 +8842,7 @@ export type ViewUpdateChannelsOnAppQuery = {
|
|
|
8809
8842
|
__typename?: 'UpdateChannel';
|
|
8810
8843
|
id: string;
|
|
8811
8844
|
name: string;
|
|
8845
|
+
createdAt: any;
|
|
8812
8846
|
branchMapping: string;
|
|
8813
8847
|
updateBranches: Array<{
|
|
8814
8848
|
__typename?: 'UpdateBranch';
|
|
@@ -8856,6 +8890,40 @@ export type ViewUpdateChannelsOnAppQuery = {
|
|
|
8856
8890
|
};
|
|
8857
8891
|
};
|
|
8858
8892
|
};
|
|
8893
|
+
export type ViewUpdateChannelsPaginatedOnAppQueryVariables = Exact<{
|
|
8894
|
+
appId: Scalars['String'];
|
|
8895
|
+
first?: InputMaybe<Scalars['Int']>;
|
|
8896
|
+
after?: InputMaybe<Scalars['String']>;
|
|
8897
|
+
}>;
|
|
8898
|
+
export type ViewUpdateChannelsPaginatedOnAppQuery = {
|
|
8899
|
+
__typename?: 'RootQuery';
|
|
8900
|
+
app: {
|
|
8901
|
+
__typename?: 'AppQuery';
|
|
8902
|
+
byId: {
|
|
8903
|
+
__typename?: 'App';
|
|
8904
|
+
id: string;
|
|
8905
|
+
channelsPaginated: {
|
|
8906
|
+
__typename?: 'AppChannelsConnection';
|
|
8907
|
+
edges: Array<{
|
|
8908
|
+
__typename?: 'AppChannelEdge';
|
|
8909
|
+
node: {
|
|
8910
|
+
__typename?: 'UpdateChannel';
|
|
8911
|
+
id: string;
|
|
8912
|
+
name: string;
|
|
8913
|
+
branchMapping: string;
|
|
8914
|
+
};
|
|
8915
|
+
}>;
|
|
8916
|
+
pageInfo: {
|
|
8917
|
+
__typename?: 'PageInfo';
|
|
8918
|
+
hasNextPage: boolean;
|
|
8919
|
+
hasPreviousPage: boolean;
|
|
8920
|
+
startCursor?: string | null;
|
|
8921
|
+
endCursor?: string | null;
|
|
8922
|
+
};
|
|
8923
|
+
};
|
|
8924
|
+
};
|
|
8925
|
+
};
|
|
8926
|
+
};
|
|
8859
8927
|
export type EnvironmentSecretsByAppIdQueryVariables = Exact<{
|
|
8860
8928
|
appId: Scalars['String'];
|
|
8861
8929
|
}>;
|
|
@@ -9697,6 +9765,12 @@ export type UpdateBranchFragment = {
|
|
|
9697
9765
|
} | null;
|
|
9698
9766
|
}>;
|
|
9699
9767
|
};
|
|
9768
|
+
export type UpdateChannelBasicInfoFragment = {
|
|
9769
|
+
__typename?: 'UpdateChannel';
|
|
9770
|
+
id: string;
|
|
9771
|
+
name: string;
|
|
9772
|
+
branchMapping: string;
|
|
9773
|
+
};
|
|
9700
9774
|
export type WebhookFragment = {
|
|
9701
9775
|
__typename?: 'Webhook';
|
|
9702
9776
|
id: string;
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* For more info and docs, visit https://graphql-code-generator.com/
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
10
|
-
exports.WebhookType = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.SubmissionStatus = exports.SubmissionArchiveSourceType = exports.SubmissionAndroidTrack = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StatuspageServiceStatus = exports.StatuspageServiceName = exports.StatuspageIncidentStatus = exports.StatuspageIncidentImpact = exports.StandardOffer = exports.SecondFactorMethod = void 0;
|
|
9
|
+
exports.ProjectArchiveSourceType = exports.Permission = exports.Order = exports.OfferType = exports.NotificationType = exports.NotificationEvent = exports.MailchimpTag = exports.MailchimpAudience = exports.IosSchemeBuildConfiguration = exports.IosManagedBuildType = exports.IosDistributionType = exports.IosBuildType = exports.InvoiceDiscountType = exports.GitHubAppInstallationStatus = exports.GitHubAppEnvironment = exports.Feature = exports.EnvironmentSecretType = exports.EasTotalPlanEnablementUnit = exports.EasServiceMetric = exports.EasService = exports.EasBuildDeprecationInfoType = exports.EasBuildBillingResourceClass = exports.DistributionType = exports.BuildWorkflow = exports.BuildTrigger = exports.BuildStatus = exports.BuildRetryDisabledReason = exports.BuildResourceClass = exports.BuildPriority = exports.BuildMode = exports.BuildLimitThresholdExceededMetadataType = exports.BuildJobStatus = exports.BuildJobLogsFormat = exports.BuildIosEnterpriseProvisioning = exports.BuildCredentialsSource = exports.BackgroundJobState = exports.BackgroundJobResultType = exports.AuthProtocolType = exports.AssetMetadataStatus = exports.AppsFilter = exports.AppleDeviceClass = exports.AppStoreConnectUserRole = exports.AppSort = exports.AppPrivacy = exports.AppPlatform = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.AndroidBuildType = exports.ActivityTimelineProjectActivityType = exports.AccountAppsSortByField = void 0;
|
|
10
|
+
exports.WebhookType = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.SubmissionStatus = exports.SubmissionArchiveSourceType = exports.SubmissionAndroidTrack = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StatuspageServiceStatus = exports.StatuspageServiceName = exports.StatuspageIncidentStatus = exports.StatuspageIncidentImpact = exports.StandardOffer = exports.SecondFactorMethod = exports.Role = void 0;
|
|
11
11
|
var AccountAppsSortByField;
|
|
12
12
|
(function (AccountAppsSortByField) {
|
|
13
13
|
AccountAppsSortByField["LatestActivityTime"] = "LATEST_ACTIVITY_TIME";
|
|
@@ -136,6 +136,11 @@ var BuildJobStatus;
|
|
|
136
136
|
BuildJobStatus["SentToQueue"] = "SENT_TO_QUEUE";
|
|
137
137
|
BuildJobStatus["Started"] = "STARTED";
|
|
138
138
|
})(BuildJobStatus = exports.BuildJobStatus || (exports.BuildJobStatus = {}));
|
|
139
|
+
var BuildLimitThresholdExceededMetadataType;
|
|
140
|
+
(function (BuildLimitThresholdExceededMetadataType) {
|
|
141
|
+
BuildLimitThresholdExceededMetadataType["Ios"] = "IOS";
|
|
142
|
+
BuildLimitThresholdExceededMetadataType["Total"] = "TOTAL";
|
|
143
|
+
})(BuildLimitThresholdExceededMetadataType = exports.BuildLimitThresholdExceededMetadataType || (exports.BuildLimitThresholdExceededMetadataType = {}));
|
|
139
144
|
var BuildMode;
|
|
140
145
|
(function (BuildMode) {
|
|
141
146
|
BuildMode["Build"] = "BUILD";
|
|
@@ -306,10 +311,12 @@ var NotificationEvent;
|
|
|
306
311
|
NotificationEvent["BuildLimitThresholdExceeded"] = "BUILD_LIMIT_THRESHOLD_EXCEEDED";
|
|
307
312
|
NotificationEvent["BuildPlanCreditThresholdExceeded"] = "BUILD_PLAN_CREDIT_THRESHOLD_EXCEEDED";
|
|
308
313
|
NotificationEvent["SubmissionComplete"] = "SUBMISSION_COMPLETE";
|
|
314
|
+
NotificationEvent["Test"] = "TEST";
|
|
309
315
|
})(NotificationEvent = exports.NotificationEvent || (exports.NotificationEvent = {}));
|
|
310
316
|
var NotificationType;
|
|
311
317
|
(function (NotificationType) {
|
|
312
318
|
NotificationType["Email"] = "EMAIL";
|
|
319
|
+
NotificationType["Web"] = "WEB";
|
|
313
320
|
})(NotificationType = exports.NotificationType || (exports.NotificationType = {}));
|
|
314
321
|
var OfferType;
|
|
315
322
|
(function (OfferType) {
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient';
|
|
2
|
-
import { ViewUpdateChannelOnAppQuery, ViewUpdateChannelOnAppQueryVariables, ViewUpdateChannelsOnAppQuery, ViewUpdateChannelsOnAppQueryVariables } from '../generated';
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import { ViewUpdateChannelOnAppQuery, ViewUpdateChannelOnAppQueryVariables, ViewUpdateChannelsOnAppQuery, ViewUpdateChannelsOnAppQueryVariables, ViewUpdateChannelsPaginatedOnAppQuery, ViewUpdateChannelsPaginatedOnAppQueryVariables } from '../generated';
|
|
3
|
+
type ViewUpdateChannelsOnAppObject = NonNullable<ViewUpdateChannelsOnAppQuery['app']['byId']['updateChannels']>[number];
|
|
4
|
+
type UpdateChannelByNameObject = NonNullable<ViewUpdateChannelOnAppQuery['app']['byId']['updateChannelByName']>;
|
|
5
|
+
export type UpdateChannelObject = ViewUpdateChannelsOnAppObject & UpdateChannelByNameObject;
|
|
6
|
+
export type UpdateBranchObject = UpdateChannelObject['updateBranches'][number];
|
|
5
7
|
export declare const ChannelQuery: {
|
|
6
|
-
viewUpdateChannelAsync(graphqlClient: ExpoGraphqlClient, { appId, channelName }: ViewUpdateChannelOnAppQueryVariables): Promise<UpdateChannelByNameObject>;
|
|
8
|
+
viewUpdateChannelAsync(graphqlClient: ExpoGraphqlClient, { appId, channelName, filter }: ViewUpdateChannelOnAppQueryVariables): Promise<UpdateChannelByNameObject>;
|
|
7
9
|
viewUpdateChannelsOnAppAsync(graphqlClient: ExpoGraphqlClient, { appId, limit, offset }: ViewUpdateChannelsOnAppQueryVariables): Promise<UpdateChannelObject[]>;
|
|
10
|
+
viewUpdateChannelsBasicInfoPaginatedOnAppAsync(graphqlClient: ExpoGraphqlClient, { appId, first, after }: ViewUpdateChannelsPaginatedOnAppQueryVariables): Promise<ViewUpdateChannelsPaginatedOnAppQuery['app']['byId']['channelsPaginated']>;
|
|
8
11
|
};
|
|
12
|
+
export {};
|
|
@@ -7,11 +7,16 @@ const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
|
|
|
7
7
|
const errors_1 = require("../../channel/errors");
|
|
8
8
|
const client_1 = require("../client");
|
|
9
9
|
const Update_1 = require("../types/Update");
|
|
10
|
+
const UpdateChannelBasicInfo_1 = require("../types/UpdateChannelBasicInfo");
|
|
10
11
|
exports.ChannelQuery = {
|
|
11
|
-
async viewUpdateChannelAsync(graphqlClient, { appId, channelName }) {
|
|
12
|
+
async viewUpdateChannelAsync(graphqlClient, { appId, channelName, filter }) {
|
|
12
13
|
const response = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
13
14
|
.query((0, graphql_tag_1.default) `
|
|
14
|
-
query ViewUpdateChannelOnApp(
|
|
15
|
+
query ViewUpdateChannelOnApp(
|
|
16
|
+
$appId: String!
|
|
17
|
+
$channelName: String!
|
|
18
|
+
$filter: UpdatesFilter
|
|
19
|
+
) {
|
|
15
20
|
app {
|
|
16
21
|
byId(appId: $appId) {
|
|
17
22
|
id
|
|
@@ -23,7 +28,7 @@ exports.ChannelQuery = {
|
|
|
23
28
|
updateBranches(offset: 0, limit: 5) {
|
|
24
29
|
id
|
|
25
30
|
name
|
|
26
|
-
updateGroups(offset: 0, limit: 1) {
|
|
31
|
+
updateGroups(offset: 0, limit: 1, filter: $filter) {
|
|
27
32
|
id
|
|
28
33
|
...UpdateFragment
|
|
29
34
|
}
|
|
@@ -33,7 +38,7 @@ exports.ChannelQuery = {
|
|
|
33
38
|
}
|
|
34
39
|
}
|
|
35
40
|
${(0, graphql_1.print)(Update_1.UpdateFragmentNode)}
|
|
36
|
-
`, { appId, channelName }, { additionalTypenames: ['UpdateChannel', 'UpdateBranch', 'Update'] })
|
|
41
|
+
`, { appId, channelName, filter }, { additionalTypenames: ['UpdateChannel', 'UpdateBranch', 'Update'] })
|
|
37
42
|
.toPromise());
|
|
38
43
|
const { updateChannelByName } = response.app.byId;
|
|
39
44
|
if (!updateChannelByName) {
|
|
@@ -51,6 +56,7 @@ exports.ChannelQuery = {
|
|
|
51
56
|
updateChannels(offset: $offset, limit: $limit) {
|
|
52
57
|
id
|
|
53
58
|
name
|
|
59
|
+
createdAt
|
|
54
60
|
branchMapping
|
|
55
61
|
updateBranches(offset: 0, limit: 5) {
|
|
56
62
|
id
|
|
@@ -73,4 +79,37 @@ exports.ChannelQuery = {
|
|
|
73
79
|
}
|
|
74
80
|
return updateChannels;
|
|
75
81
|
},
|
|
82
|
+
async viewUpdateChannelsBasicInfoPaginatedOnAppAsync(graphqlClient, { appId, first, after }) {
|
|
83
|
+
const response = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
84
|
+
.query((0, graphql_tag_1.default) `
|
|
85
|
+
query ViewUpdateChannelsPaginatedOnApp($appId: String!, $first: Int, $after: String) {
|
|
86
|
+
app {
|
|
87
|
+
byId(appId: $appId) {
|
|
88
|
+
id
|
|
89
|
+
channelsPaginated(first: $first, after: $after) {
|
|
90
|
+
edges {
|
|
91
|
+
node {
|
|
92
|
+
id
|
|
93
|
+
...UpdateChannelBasicInfoFragment
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
pageInfo {
|
|
97
|
+
hasNextPage
|
|
98
|
+
hasPreviousPage
|
|
99
|
+
startCursor
|
|
100
|
+
endCursor
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
${(0, graphql_1.print)(UpdateChannelBasicInfo_1.UpdateChannelBasicInfoFragmentNode)}
|
|
107
|
+
`, { appId, first, after }, { additionalTypenames: ['UpdateChannel', 'UpdateBranch', 'Update'] })
|
|
108
|
+
.toPromise());
|
|
109
|
+
const { channelsPaginated } = response.app.byId;
|
|
110
|
+
if (!channelsPaginated) {
|
|
111
|
+
throw new Error(`Could not find channels on project with id ${appId}`);
|
|
112
|
+
}
|
|
113
|
+
return channelsPaginated;
|
|
114
|
+
},
|
|
76
115
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const UpdateChannelBasicInfoFragmentNode: import("graphql").DocumentNode;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateChannelBasicInfoFragmentNode = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
|
|
6
|
+
exports.UpdateChannelBasicInfoFragmentNode = (0, graphql_tag_1.default) `
|
|
7
|
+
fragment UpdateChannelBasicInfoFragment on UpdateChannel {
|
|
8
|
+
id
|
|
9
|
+
name
|
|
10
|
+
branchMapping
|
|
11
|
+
}
|
|
12
|
+
`;
|
|
@@ -9,7 +9,7 @@ interface ResolveTargetOptions {
|
|
|
9
9
|
env?: Record<string, string>;
|
|
10
10
|
xcodeBuildContext: XcodeBuildContext;
|
|
11
11
|
}
|
|
12
|
-
export declare function
|
|
12
|
+
export declare function resolveManagedProjectTargetsAsync({ exp, projectDir, xcodeBuildContext, env, }: ResolveTargetOptions): Promise<Target[]>;
|
|
13
13
|
export declare function resolveBareProjectTargetsAsync({ exp, projectDir, xcodeBuildContext, }: ResolveTargetOptions): Promise<Target[]>;
|
|
14
14
|
export declare function resolveTargetsAsync(opts: ResolveTargetOptions): Promise<Target[]>;
|
|
15
15
|
export declare function findApplicationTarget(targets: Target[]): Target;
|