eas-cli 12.5.4 → 12.6.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 +131 -60
- package/build/channel/queries.js +12 -3
- package/build/commands/channel/pause.d.ts +22 -0
- package/build/commands/channel/pause.js +90 -0
- package/build/commands/channel/resume.d.ts +22 -0
- package/build/commands/channel/resume.js +90 -0
- package/build/commands/env/push.d.ts +0 -1
- package/build/commands/env/push.js +8 -8
- package/build/commands/update/edit.d.ts +2 -2
- package/build/commands/update/edit.js +41 -4
- package/build/graphql/generated.d.ts +147 -19
- package/build/graphql/generated.js +19 -2
- package/build/graphql/queries/ChannelQuery.js +2 -0
- package/oclif.manifest.json +96 -5
- package/package.json +2 -2
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import EasCommand from '../../commandUtils/EasCommand';
|
|
2
|
+
import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient';
|
|
3
|
+
import { PauseUpdateChannelMutationVariables, UpdateChannelBasicInfoFragment } from '../../graphql/generated';
|
|
4
|
+
export declare function pauseUpdateChannelAsync(graphqlClient: ExpoGraphqlClient, { channelId }: PauseUpdateChannelMutationVariables): Promise<UpdateChannelBasicInfoFragment>;
|
|
5
|
+
export default class ChannelPause extends EasCommand {
|
|
6
|
+
static description: string;
|
|
7
|
+
static args: {
|
|
8
|
+
name: string;
|
|
9
|
+
required: boolean;
|
|
10
|
+
description: string;
|
|
11
|
+
}[];
|
|
12
|
+
static flags: {
|
|
13
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
'non-interactive': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
branch: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
|
|
16
|
+
};
|
|
17
|
+
static contextDefinition: {
|
|
18
|
+
loggedIn: import("../../commandUtils/context/LoggedInContextField").default;
|
|
19
|
+
privateProjectConfig: import("../../commandUtils/context/PrivateProjectConfigContextField").PrivateProjectConfigContextField;
|
|
20
|
+
};
|
|
21
|
+
runAsync(): Promise<void>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.pauseUpdateChannelAsync = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const core_1 = require("@oclif/core");
|
|
7
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
8
|
+
const graphql_1 = require("graphql");
|
|
9
|
+
const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
|
|
10
|
+
const queries_1 = require("../../channel/queries");
|
|
11
|
+
const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
|
|
12
|
+
const flags_1 = require("../../commandUtils/flags");
|
|
13
|
+
const client_1 = require("../../graphql/client");
|
|
14
|
+
const ChannelQuery_1 = require("../../graphql/queries/ChannelQuery");
|
|
15
|
+
const UpdateChannelBasicInfo_1 = require("../../graphql/types/UpdateChannelBasicInfo");
|
|
16
|
+
const log_1 = tslib_1.__importDefault(require("../../log"));
|
|
17
|
+
const json_1 = require("../../utils/json");
|
|
18
|
+
async function pauseUpdateChannelAsync(graphqlClient, { channelId }) {
|
|
19
|
+
const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
20
|
+
.mutation((0, graphql_tag_1.default) `
|
|
21
|
+
mutation PauseUpdateChannel($channelId: ID!) {
|
|
22
|
+
updateChannel {
|
|
23
|
+
pauseUpdateChannel(channelId: $channelId) {
|
|
24
|
+
id
|
|
25
|
+
...UpdateChannelBasicInfoFragment
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
${(0, graphql_1.print)(UpdateChannelBasicInfo_1.UpdateChannelBasicInfoFragmentNode)}
|
|
30
|
+
`, { channelId })
|
|
31
|
+
.toPromise());
|
|
32
|
+
const channel = data.updateChannel.pauseUpdateChannel;
|
|
33
|
+
if (!channel) {
|
|
34
|
+
throw new Error(`Could not find a channel with id: ${channelId}`);
|
|
35
|
+
}
|
|
36
|
+
return channel;
|
|
37
|
+
}
|
|
38
|
+
exports.pauseUpdateChannelAsync = pauseUpdateChannelAsync;
|
|
39
|
+
class ChannelPause extends EasCommand_1.default {
|
|
40
|
+
async runAsync() {
|
|
41
|
+
const { args, flags: { json, 'non-interactive': nonInteractive }, } = await this.parse(_a);
|
|
42
|
+
const { privateProjectConfig: { projectId }, loggedIn: { graphqlClient }, } = await this.getContextAsync(_a, {
|
|
43
|
+
nonInteractive,
|
|
44
|
+
});
|
|
45
|
+
if (json) {
|
|
46
|
+
(0, json_1.enableJsonOutput)();
|
|
47
|
+
}
|
|
48
|
+
const existingChannel = args.name
|
|
49
|
+
? await ChannelQuery_1.ChannelQuery.viewUpdateChannelAsync(graphqlClient, {
|
|
50
|
+
appId: projectId,
|
|
51
|
+
channelName: args.name,
|
|
52
|
+
})
|
|
53
|
+
: await (0, queries_1.selectChannelOnAppAsync)(graphqlClient, {
|
|
54
|
+
projectId,
|
|
55
|
+
selectionPromptTitle: 'Select a channel to edit',
|
|
56
|
+
paginatedQueryOptions: { json, nonInteractive, offset: 0 },
|
|
57
|
+
});
|
|
58
|
+
const channel = await pauseUpdateChannelAsync(graphqlClient, {
|
|
59
|
+
channelId: existingChannel.id,
|
|
60
|
+
});
|
|
61
|
+
if (json) {
|
|
62
|
+
(0, json_1.printJsonOnlyOutput)(channel);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
log_1.default.withTick((0, chalk_1.default) `Channel {bold ${channel.name}} is now paused.\n`);
|
|
66
|
+
log_1.default.addNewLineIfNone();
|
|
67
|
+
log_1.default.log((0, chalk_1.default) `Users with builds on channel {bold ${channel.name}} will no longer receive updates.`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
_a = ChannelPause;
|
|
72
|
+
ChannelPause.description = 'pause a channel to stop it from sending updates';
|
|
73
|
+
ChannelPause.args = [
|
|
74
|
+
{
|
|
75
|
+
name: 'name',
|
|
76
|
+
required: false,
|
|
77
|
+
description: 'Name of the channel to edit',
|
|
78
|
+
},
|
|
79
|
+
];
|
|
80
|
+
ChannelPause.flags = {
|
|
81
|
+
branch: core_1.Flags.string({
|
|
82
|
+
description: 'Name of the branch to point to',
|
|
83
|
+
}),
|
|
84
|
+
...flags_1.EasNonInteractiveAndJsonFlags,
|
|
85
|
+
};
|
|
86
|
+
ChannelPause.contextDefinition = {
|
|
87
|
+
..._a.ContextOptions.ProjectConfig,
|
|
88
|
+
..._a.ContextOptions.LoggedIn,
|
|
89
|
+
};
|
|
90
|
+
exports.default = ChannelPause;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import EasCommand from '../../commandUtils/EasCommand';
|
|
2
|
+
import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient';
|
|
3
|
+
import { ResumeUpdateChannelMutationVariables, UpdateChannelBasicInfoFragment } from '../../graphql/generated';
|
|
4
|
+
export declare function resumeUpdateChannelAsync(graphqlClient: ExpoGraphqlClient, { channelId }: ResumeUpdateChannelMutationVariables): Promise<UpdateChannelBasicInfoFragment>;
|
|
5
|
+
export default class ChannelResume extends EasCommand {
|
|
6
|
+
static description: string;
|
|
7
|
+
static args: {
|
|
8
|
+
name: string;
|
|
9
|
+
required: boolean;
|
|
10
|
+
description: string;
|
|
11
|
+
}[];
|
|
12
|
+
static flags: {
|
|
13
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
'non-interactive': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
branch: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
|
|
16
|
+
};
|
|
17
|
+
static contextDefinition: {
|
|
18
|
+
loggedIn: import("../../commandUtils/context/LoggedInContextField").default;
|
|
19
|
+
privateProjectConfig: import("../../commandUtils/context/PrivateProjectConfigContextField").PrivateProjectConfigContextField;
|
|
20
|
+
};
|
|
21
|
+
runAsync(): Promise<void>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.resumeUpdateChannelAsync = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const core_1 = require("@oclif/core");
|
|
7
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
8
|
+
const graphql_1 = require("graphql");
|
|
9
|
+
const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
|
|
10
|
+
const queries_1 = require("../../channel/queries");
|
|
11
|
+
const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
|
|
12
|
+
const flags_1 = require("../../commandUtils/flags");
|
|
13
|
+
const client_1 = require("../../graphql/client");
|
|
14
|
+
const ChannelQuery_1 = require("../../graphql/queries/ChannelQuery");
|
|
15
|
+
const UpdateChannelBasicInfo_1 = require("../../graphql/types/UpdateChannelBasicInfo");
|
|
16
|
+
const log_1 = tslib_1.__importDefault(require("../../log"));
|
|
17
|
+
const json_1 = require("../../utils/json");
|
|
18
|
+
async function resumeUpdateChannelAsync(graphqlClient, { channelId }) {
|
|
19
|
+
const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
20
|
+
.mutation((0, graphql_tag_1.default) `
|
|
21
|
+
mutation ResumeUpdateChannel($channelId: ID!) {
|
|
22
|
+
updateChannel {
|
|
23
|
+
resumeUpdateChannel(channelId: $channelId) {
|
|
24
|
+
id
|
|
25
|
+
...UpdateChannelBasicInfoFragment
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
${(0, graphql_1.print)(UpdateChannelBasicInfo_1.UpdateChannelBasicInfoFragmentNode)}
|
|
30
|
+
`, { channelId })
|
|
31
|
+
.toPromise());
|
|
32
|
+
const channel = data.updateChannel.resumeUpdateChannel;
|
|
33
|
+
if (!channel) {
|
|
34
|
+
throw new Error(`Could not find a channel with id: ${channelId}`);
|
|
35
|
+
}
|
|
36
|
+
return channel;
|
|
37
|
+
}
|
|
38
|
+
exports.resumeUpdateChannelAsync = resumeUpdateChannelAsync;
|
|
39
|
+
class ChannelResume extends EasCommand_1.default {
|
|
40
|
+
async runAsync() {
|
|
41
|
+
const { args, flags: { json, 'non-interactive': nonInteractive }, } = await this.parse(_a);
|
|
42
|
+
const { privateProjectConfig: { projectId }, loggedIn: { graphqlClient }, } = await this.getContextAsync(_a, {
|
|
43
|
+
nonInteractive,
|
|
44
|
+
});
|
|
45
|
+
if (json) {
|
|
46
|
+
(0, json_1.enableJsonOutput)();
|
|
47
|
+
}
|
|
48
|
+
const existingChannel = args.name
|
|
49
|
+
? await ChannelQuery_1.ChannelQuery.viewUpdateChannelAsync(graphqlClient, {
|
|
50
|
+
appId: projectId,
|
|
51
|
+
channelName: args.name,
|
|
52
|
+
})
|
|
53
|
+
: await (0, queries_1.selectChannelOnAppAsync)(graphqlClient, {
|
|
54
|
+
projectId,
|
|
55
|
+
selectionPromptTitle: 'Select a channel to edit',
|
|
56
|
+
paginatedQueryOptions: { json, nonInteractive, offset: 0 },
|
|
57
|
+
});
|
|
58
|
+
const channel = await resumeUpdateChannelAsync(graphqlClient, {
|
|
59
|
+
channelId: existingChannel.id,
|
|
60
|
+
});
|
|
61
|
+
if (json) {
|
|
62
|
+
(0, json_1.printJsonOnlyOutput)(channel);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
log_1.default.withTick((0, chalk_1.default) `Channel {bold ${channel.name}} is now active.\n`);
|
|
66
|
+
log_1.default.addNewLineIfNone();
|
|
67
|
+
log_1.default.log((0, chalk_1.default) `Users with builds on channel {bold ${channel.name}} will now receive updates.`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
_a = ChannelResume;
|
|
72
|
+
ChannelResume.description = 'resume a channel to start sending updates';
|
|
73
|
+
ChannelResume.args = [
|
|
74
|
+
{
|
|
75
|
+
name: 'name',
|
|
76
|
+
required: false,
|
|
77
|
+
description: 'Name of the channel to edit',
|
|
78
|
+
},
|
|
79
|
+
];
|
|
80
|
+
ChannelResume.flags = {
|
|
81
|
+
branch: core_1.Flags.string({
|
|
82
|
+
description: 'Name of the branch to point to',
|
|
83
|
+
}),
|
|
84
|
+
...flags_1.EasNonInteractiveAndJsonFlags,
|
|
85
|
+
};
|
|
86
|
+
ChannelResume.contextDefinition = {
|
|
87
|
+
..._a.ContextOptions.ProjectConfig,
|
|
88
|
+
..._a.ContextOptions.LoggedIn,
|
|
89
|
+
};
|
|
90
|
+
exports.default = ChannelResume;
|
|
@@ -12,13 +12,19 @@ const EnvironmentVariableMutation_1 = require("../../graphql/mutations/Environme
|
|
|
12
12
|
const EnvironmentVariablesQuery_1 = require("../../graphql/queries/EnvironmentVariablesQuery");
|
|
13
13
|
const log_1 = tslib_1.__importDefault(require("../../log"));
|
|
14
14
|
const prompts_1 = require("../../prompts");
|
|
15
|
+
const prompts_2 = require("../../utils/prompts");
|
|
15
16
|
class EnvironmentVariablePush extends EasCommand_1.default {
|
|
16
17
|
async runAsync() {
|
|
17
|
-
|
|
18
|
-
const { environment: environments, path: envPath } = this.validateFlags(flags);
|
|
18
|
+
let { flags: { environment: environments, path: envPath }, } = await this.parse(_a);
|
|
19
19
|
const { privateProjectConfig: { projectId }, loggedIn: { graphqlClient }, } = await this.getContextAsync(_a, {
|
|
20
20
|
nonInteractive: false,
|
|
21
21
|
});
|
|
22
|
+
if (!environments) {
|
|
23
|
+
environments = await (0, prompts_2.promptVariableEnvironmentAsync)({
|
|
24
|
+
nonInteractive: false,
|
|
25
|
+
multiple: true,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
22
28
|
const updateVariables = await this.parseEnvFileAsync(envPath, environments);
|
|
23
29
|
const variableNames = Object.keys(updateVariables);
|
|
24
30
|
for (const environment of environments) {
|
|
@@ -130,12 +136,6 @@ class EnvironmentVariablePush extends EasCommand_1.default {
|
|
|
130
136
|
}
|
|
131
137
|
return pushInput;
|
|
132
138
|
}
|
|
133
|
-
validateFlags(flags) {
|
|
134
|
-
if (!flags.environment || flags.environment.length === 0) {
|
|
135
|
-
throw new Error('Please provide an environment to push the env file to.');
|
|
136
|
-
}
|
|
137
|
-
return { ...flags, environment: flags.environment };
|
|
138
|
-
}
|
|
139
139
|
}
|
|
140
140
|
_a = EnvironmentVariablePush;
|
|
141
141
|
EnvironmentVariablePush.description = 'push env file';
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import EasCommand from '../../commandUtils/EasCommand';
|
|
2
2
|
export default class UpdateEdit extends EasCommand {
|
|
3
3
|
static description: string;
|
|
4
|
-
static hidden: boolean;
|
|
5
4
|
static args: {
|
|
6
5
|
name: string;
|
|
7
|
-
required: boolean;
|
|
8
6
|
description: string;
|
|
9
7
|
}[];
|
|
10
8
|
static flags: {
|
|
11
9
|
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
12
10
|
'non-interactive': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
11
|
'rollout-percentage': import("@oclif/core/lib/interfaces").OptionFlag<number | undefined>;
|
|
12
|
+
branch: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
|
|
14
13
|
};
|
|
15
14
|
static contextDefinition: {
|
|
16
15
|
loggedIn: import("../../commandUtils/context/LoggedInContextField").default;
|
|
16
|
+
privateProjectConfig: import("../../commandUtils/context/PrivateProjectConfigContextField").PrivateProjectConfigContextField;
|
|
17
17
|
};
|
|
18
18
|
runAsync(): Promise<void>;
|
|
19
19
|
}
|
|
@@ -5,21 +5,56 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const core_1 = require("@oclif/core");
|
|
6
6
|
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
7
7
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
8
|
+
const queries_1 = require("../../branch/queries");
|
|
8
9
|
const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
|
|
9
10
|
const flags_1 = require("../../commandUtils/flags");
|
|
10
11
|
const PublishMutation_1 = require("../../graphql/mutations/PublishMutation");
|
|
11
12
|
const UpdateQuery_1 = require("../../graphql/queries/UpdateQuery");
|
|
12
13
|
const log_1 = tslib_1.__importDefault(require("../../log"));
|
|
13
14
|
const prompts_1 = require("../../prompts");
|
|
15
|
+
const queries_2 = require("../../update/queries");
|
|
14
16
|
const utils_1 = require("../../update/utils");
|
|
15
17
|
const json_1 = require("../../utils/json");
|
|
16
18
|
class UpdateEdit extends EasCommand_1.default {
|
|
17
19
|
async runAsync() {
|
|
18
|
-
const { args: { groupId }, flags: { 'rollout-percentage': rolloutPercentage, json: jsonFlag, 'non-interactive': nonInteractive, }, } = await this.parse(_a);
|
|
19
|
-
const { loggedIn: { graphqlClient }, } = await this.getContextAsync(_a, { nonInteractive });
|
|
20
|
+
const { args: { groupId: maybeGroupId }, flags: { 'rollout-percentage': rolloutPercentage, json: jsonFlag, 'non-interactive': nonInteractive, branch: branchFlag, }, } = await this.parse(_a);
|
|
21
|
+
const { privateProjectConfig: { projectId }, loggedIn: { graphqlClient }, } = await this.getContextAsync(_a, { nonInteractive });
|
|
20
22
|
if (jsonFlag) {
|
|
21
23
|
(0, json_1.enableJsonOutput)();
|
|
22
24
|
}
|
|
25
|
+
let groupId = maybeGroupId;
|
|
26
|
+
if (!groupId) {
|
|
27
|
+
let branch = branchFlag;
|
|
28
|
+
if (!branch) {
|
|
29
|
+
const validationMessage = 'Branch name may not be empty.';
|
|
30
|
+
if (nonInteractive) {
|
|
31
|
+
throw new Error(validationMessage);
|
|
32
|
+
}
|
|
33
|
+
const selectedBranch = await (0, queries_1.selectBranchOnAppAsync)(graphqlClient, {
|
|
34
|
+
projectId,
|
|
35
|
+
promptTitle: 'On which branch would you like search for an update to edit?',
|
|
36
|
+
displayTextForListItem: updateBranch => ({
|
|
37
|
+
title: updateBranch.name,
|
|
38
|
+
}),
|
|
39
|
+
paginatedQueryOptions: {
|
|
40
|
+
json: jsonFlag,
|
|
41
|
+
nonInteractive,
|
|
42
|
+
offset: 0,
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
branch = selectedBranch.name;
|
|
46
|
+
}
|
|
47
|
+
const selectedUpdateGroup = await (0, queries_2.selectUpdateGroupOnBranchAsync)(graphqlClient, {
|
|
48
|
+
projectId,
|
|
49
|
+
branchName: branch,
|
|
50
|
+
paginatedQueryOptions: {
|
|
51
|
+
json: jsonFlag,
|
|
52
|
+
nonInteractive,
|
|
53
|
+
offset: 0,
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
groupId = selectedUpdateGroup[0].group;
|
|
57
|
+
}
|
|
23
58
|
const proposedUpdatesToEdit = (await UpdateQuery_1.UpdateQuery.viewUpdateGroupAsync(graphqlClient, { groupId })).map(u => ({ updateId: u.id, rolloutPercentage: u.rolloutPercentage }));
|
|
24
59
|
const updatesToEdit = proposedUpdatesToEdit.filter((u) => u.rolloutPercentage !== null && u.rolloutPercentage !== undefined);
|
|
25
60
|
if (updatesToEdit.length === 0) {
|
|
@@ -79,11 +114,9 @@ class UpdateEdit extends EasCommand_1.default {
|
|
|
79
114
|
}
|
|
80
115
|
_a = UpdateEdit;
|
|
81
116
|
UpdateEdit.description = 'edit all the updates in an update group';
|
|
82
|
-
UpdateEdit.hidden = true;
|
|
83
117
|
UpdateEdit.args = [
|
|
84
118
|
{
|
|
85
119
|
name: 'groupId',
|
|
86
|
-
required: true,
|
|
87
120
|
description: 'The ID of an update group to edit.',
|
|
88
121
|
},
|
|
89
122
|
];
|
|
@@ -94,9 +127,13 @@ UpdateEdit.flags = {
|
|
|
94
127
|
min: 0,
|
|
95
128
|
max: 100,
|
|
96
129
|
}),
|
|
130
|
+
branch: core_1.Flags.string({
|
|
131
|
+
description: 'Branch for which to list updates to select from',
|
|
132
|
+
}),
|
|
97
133
|
...flags_1.EasNonInteractiveAndJsonFlags,
|
|
98
134
|
};
|
|
99
135
|
UpdateEdit.contextDefinition = {
|
|
136
|
+
..._a.ContextOptions.ProjectConfig,
|
|
100
137
|
..._a.ContextOptions.LoggedIn,
|
|
101
138
|
};
|
|
102
139
|
exports.default = UpdateEdit;
|
|
@@ -683,7 +683,8 @@ export type ActivityTimelineProjectActivity = {
|
|
|
683
683
|
export declare enum ActivityTimelineProjectActivityType {
|
|
684
684
|
Build = "BUILD",
|
|
685
685
|
Submission = "SUBMISSION",
|
|
686
|
-
Update = "UPDATE"
|
|
686
|
+
Update = "UPDATE",
|
|
687
|
+
Worker = "WORKER"
|
|
687
688
|
}
|
|
688
689
|
/** A regular user, SSO user, or robot that can authenticate with Expo services and be a member of accounts. */
|
|
689
690
|
export type Actor = {
|
|
@@ -1224,6 +1225,7 @@ export type App = Project & {
|
|
|
1224
1225
|
workerDeploymentsCrashes?: Maybe<WorkerDeploymentCrashes>;
|
|
1225
1226
|
workerDeploymentsRequest: WorkerDeploymentRequestEdge;
|
|
1226
1227
|
workerDeploymentsRequests?: Maybe<WorkerDeploymentRequests>;
|
|
1228
|
+
workflows: Array<Workflow>;
|
|
1227
1229
|
};
|
|
1228
1230
|
/** Represents an Exponent App (or Experience in legacy terms) */
|
|
1229
1231
|
export type AppActivityTimelineProjectActivitiesArgs = {
|
|
@@ -2140,15 +2142,11 @@ export type AuditLogMutationExportAuditLogsArgs = {
|
|
|
2140
2142
|
};
|
|
2141
2143
|
export type AuditLogQuery = {
|
|
2142
2144
|
__typename?: 'AuditLogQuery';
|
|
2143
|
-
/**
|
|
2144
|
-
|
|
2145
|
+
/** Audit logs for account */
|
|
2146
|
+
byId: AuditLog;
|
|
2145
2147
|
};
|
|
2146
|
-
export type
|
|
2147
|
-
|
|
2148
|
-
limit: Scalars['Int']['input'];
|
|
2149
|
-
offset: Scalars['Int']['input'];
|
|
2150
|
-
targetEntityMutationType?: InputMaybe<Array<TargetEntityMutationType>>;
|
|
2151
|
-
targetEntityTypeName?: InputMaybe<Array<EntityTypeName>>;
|
|
2148
|
+
export type AuditLogQueryByIdArgs = {
|
|
2149
|
+
auditLogId: Scalars['ID']['input'];
|
|
2152
2150
|
};
|
|
2153
2151
|
export declare enum AuditLogsExportFormat {
|
|
2154
2152
|
Csv = "CSV",
|
|
@@ -3274,7 +3272,9 @@ export declare enum EntityTypeName {
|
|
|
3274
3272
|
GoogleServiceAccountKey = "GoogleServiceAccountKey",
|
|
3275
3273
|
IosAppCredentials = "IosAppCredentials",
|
|
3276
3274
|
UserInvitation = "UserInvitation",
|
|
3277
|
-
UserPermission = "UserPermission"
|
|
3275
|
+
UserPermission = "UserPermission",
|
|
3276
|
+
Workflow = "Workflow",
|
|
3277
|
+
WorkflowRevision = "WorkflowRevision"
|
|
3278
3278
|
}
|
|
3279
3279
|
export type EnvironmentSecret = {
|
|
3280
3280
|
__typename?: 'EnvironmentSecret';
|
|
@@ -4575,6 +4575,22 @@ export type RequestsFilters = {
|
|
|
4575
4575
|
status?: InputMaybe<Array<Scalars['Int']['input']>>;
|
|
4576
4576
|
statusType?: InputMaybe<Array<ResponseStatusType>>;
|
|
4577
4577
|
};
|
|
4578
|
+
export type RequestsOrderBy = {
|
|
4579
|
+
direction?: InputMaybe<RequestsOrderByDirection>;
|
|
4580
|
+
field: RequestsOrderByField;
|
|
4581
|
+
};
|
|
4582
|
+
export declare enum RequestsOrderByDirection {
|
|
4583
|
+
Asc = "ASC",
|
|
4584
|
+
Desc = "DESC"
|
|
4585
|
+
}
|
|
4586
|
+
export declare enum RequestsOrderByField {
|
|
4587
|
+
AssetsSum = "ASSETS_SUM",
|
|
4588
|
+
CacheHitRatio = "CACHE_HIT_RATIO",
|
|
4589
|
+
CachePassRatio = "CACHE_PASS_RATIO",
|
|
4590
|
+
CrashesSum = "CRASHES_SUM",
|
|
4591
|
+
Duration = "DURATION",
|
|
4592
|
+
RequestsSum = "REQUESTS_SUM"
|
|
4593
|
+
}
|
|
4578
4594
|
export type RescindUserInvitationResult = {
|
|
4579
4595
|
__typename?: 'RescindUserInvitationResult';
|
|
4580
4596
|
id: Scalars['ID']['output'];
|
|
@@ -4887,6 +4903,8 @@ export type RootQuery = {
|
|
|
4887
4903
|
/** Top-level query object for querying Webhooks. */
|
|
4888
4904
|
webhook: WebhookQuery;
|
|
4889
4905
|
workerDeployment: WorkerDeploymentQuery;
|
|
4906
|
+
workflowRevisions: WorkflowRevisionQuery;
|
|
4907
|
+
workflows: WorkflowQuery;
|
|
4890
4908
|
};
|
|
4891
4909
|
export type RootQueryAllPublicAppsArgs = {
|
|
4892
4910
|
filter: AppsFilter;
|
|
@@ -6040,17 +6058,12 @@ export type UserAuditLogMutationExportUserAuditLogsArgs = {
|
|
|
6040
6058
|
};
|
|
6041
6059
|
export type UserAuditLogQuery = {
|
|
6042
6060
|
__typename?: 'UserAuditLogQuery';
|
|
6043
|
-
/** Query User Audit Logs by user ID */
|
|
6044
|
-
byUserId: Array<UserAuditLog>;
|
|
6045
6061
|
/** Audit logs for user */
|
|
6062
|
+
byId: UserAuditLog;
|
|
6046
6063
|
byUserIdPaginated: UserAuditLogConnection;
|
|
6047
6064
|
};
|
|
6048
|
-
export type
|
|
6049
|
-
|
|
6050
|
-
offset: Scalars['Int']['input'];
|
|
6051
|
-
targetEntityMutationType?: InputMaybe<Array<TargetEntityMutationType>>;
|
|
6052
|
-
targetEntityTypeName?: InputMaybe<Array<UserEntityTypeName>>;
|
|
6053
|
-
userId: Scalars['ID']['input'];
|
|
6065
|
+
export type UserAuditLogQueryByIdArgs = {
|
|
6066
|
+
auditLogId: Scalars['ID']['input'];
|
|
6054
6067
|
};
|
|
6055
6068
|
export type UserAuditLogQueryByUserIdPaginatedArgs = {
|
|
6056
6069
|
after?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -6325,8 +6338,10 @@ export type WorkerCustomDomain = {
|
|
|
6325
6338
|
updatedAt: Scalars['DateTime']['output'];
|
|
6326
6339
|
verificationRecord?: Maybe<CustomDomainDnsRecord>;
|
|
6327
6340
|
};
|
|
6328
|
-
export type WorkerDeployment = {
|
|
6341
|
+
export type WorkerDeployment = ActivityTimelineProjectActivity & {
|
|
6329
6342
|
__typename?: 'WorkerDeployment';
|
|
6343
|
+
activityTimestamp: Scalars['DateTime']['output'];
|
|
6344
|
+
actor?: Maybe<Actor>;
|
|
6330
6345
|
aliases?: Maybe<Array<WorkerDeploymentAlias>>;
|
|
6331
6346
|
crashes?: Maybe<WorkerDeploymentCrashes>;
|
|
6332
6347
|
createdAt: Scalars['DateTime']['output'];
|
|
@@ -6501,8 +6516,10 @@ export type WorkerDeploymentRequests = {
|
|
|
6501
6516
|
byBrowser: Array<WorkerDeploymentRequestsBrowserEdge>;
|
|
6502
6517
|
byCacheStatus: Array<WorkerDeploymentRequestsCacheStatusEdge>;
|
|
6503
6518
|
byContinent: Array<WorkerDeploymentRequestsContinentEdge>;
|
|
6519
|
+
byCountry: Array<WorkerDeploymentRequestsCountryEdge>;
|
|
6504
6520
|
byMethod: Array<WorkerDeploymentRequestsMethodEdge>;
|
|
6505
6521
|
byOS: Array<WorkerDeploymentRequestsOperatingSystemEdge>;
|
|
6522
|
+
byResponseType: Array<WorkerDeploymentRequestsResponseTypeEdge>;
|
|
6506
6523
|
byStatusType: Array<WorkerDeploymentRequestsStatusTypeEdge>;
|
|
6507
6524
|
interval: Scalars['Int']['output'];
|
|
6508
6525
|
minRowsWithoutLimit: Scalars['Int']['output'];
|
|
@@ -6510,6 +6527,38 @@ export type WorkerDeploymentRequests = {
|
|
|
6510
6527
|
summary: WorkerDeploymentRequestsAggregationNode;
|
|
6511
6528
|
timeseries: Array<WorkerDeploymentRequestsTimeseriesEdge>;
|
|
6512
6529
|
};
|
|
6530
|
+
export type WorkerDeploymentRequestsByBrowserArgs = {
|
|
6531
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
6532
|
+
orderBy?: InputMaybe<RequestsOrderBy>;
|
|
6533
|
+
};
|
|
6534
|
+
export type WorkerDeploymentRequestsByCacheStatusArgs = {
|
|
6535
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
6536
|
+
orderBy?: InputMaybe<RequestsOrderBy>;
|
|
6537
|
+
};
|
|
6538
|
+
export type WorkerDeploymentRequestsByContinentArgs = {
|
|
6539
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
6540
|
+
orderBy?: InputMaybe<RequestsOrderBy>;
|
|
6541
|
+
};
|
|
6542
|
+
export type WorkerDeploymentRequestsByCountryArgs = {
|
|
6543
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
6544
|
+
orderBy?: InputMaybe<RequestsOrderBy>;
|
|
6545
|
+
};
|
|
6546
|
+
export type WorkerDeploymentRequestsByMethodArgs = {
|
|
6547
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
6548
|
+
orderBy?: InputMaybe<RequestsOrderBy>;
|
|
6549
|
+
};
|
|
6550
|
+
export type WorkerDeploymentRequestsByOsArgs = {
|
|
6551
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
6552
|
+
orderBy?: InputMaybe<RequestsOrderBy>;
|
|
6553
|
+
};
|
|
6554
|
+
export type WorkerDeploymentRequestsByResponseTypeArgs = {
|
|
6555
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
6556
|
+
orderBy?: InputMaybe<RequestsOrderBy>;
|
|
6557
|
+
};
|
|
6558
|
+
export type WorkerDeploymentRequestsByStatusTypeArgs = {
|
|
6559
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
6560
|
+
orderBy?: InputMaybe<RequestsOrderBy>;
|
|
6561
|
+
};
|
|
6513
6562
|
export type WorkerDeploymentRequestsAggregationNode = {
|
|
6514
6563
|
__typename?: 'WorkerDeploymentRequestsAggregationNode';
|
|
6515
6564
|
assetsPerMs?: Maybe<Scalars['Float']['output']>;
|
|
@@ -6565,6 +6614,11 @@ export type WorkerDeploymentRequestsContinentEdge = {
|
|
|
6565
6614
|
continent: ContinentCode;
|
|
6566
6615
|
node: WorkerDeploymentRequestsAggregationNode;
|
|
6567
6616
|
};
|
|
6617
|
+
export type WorkerDeploymentRequestsCountryEdge = {
|
|
6618
|
+
__typename?: 'WorkerDeploymentRequestsCountryEdge';
|
|
6619
|
+
country?: Maybe<Scalars['String']['output']>;
|
|
6620
|
+
node: WorkerDeploymentRequestsAggregationNode;
|
|
6621
|
+
};
|
|
6568
6622
|
export type WorkerDeploymentRequestsMethodEdge = {
|
|
6569
6623
|
__typename?: 'WorkerDeploymentRequestsMethodEdge';
|
|
6570
6624
|
method: Scalars['String']['output'];
|
|
@@ -6575,6 +6629,11 @@ export type WorkerDeploymentRequestsOperatingSystemEdge = {
|
|
|
6575
6629
|
node: WorkerDeploymentRequestsAggregationNode;
|
|
6576
6630
|
os?: Maybe<UserAgentOs>;
|
|
6577
6631
|
};
|
|
6632
|
+
export type WorkerDeploymentRequestsResponseTypeEdge = {
|
|
6633
|
+
__typename?: 'WorkerDeploymentRequestsResponseTypeEdge';
|
|
6634
|
+
node: WorkerDeploymentRequestsAggregationNode;
|
|
6635
|
+
responseType: ResponseType;
|
|
6636
|
+
};
|
|
6578
6637
|
export type WorkerDeploymentRequestsStatusTypeEdge = {
|
|
6579
6638
|
__typename?: 'WorkerDeploymentRequestsStatusTypeEdge';
|
|
6580
6639
|
node: WorkerDeploymentRequestsAggregationNode;
|
|
@@ -6585,8 +6644,10 @@ export type WorkerDeploymentRequestsTimeseriesEdge = {
|
|
|
6585
6644
|
byBrowser: Array<WorkerDeploymentRequestsBrowserEdge>;
|
|
6586
6645
|
byCacheStatus: Array<WorkerDeploymentRequestsCacheStatusEdge>;
|
|
6587
6646
|
byContinent: Array<WorkerDeploymentRequestsContinentEdge>;
|
|
6647
|
+
byCountry: Array<WorkerDeploymentRequestsCountryEdge>;
|
|
6588
6648
|
byMethod: Array<WorkerDeploymentRequestsMethodEdge>;
|
|
6589
6649
|
byOS: Array<WorkerDeploymentRequestsOperatingSystemEdge>;
|
|
6650
|
+
byResponseType: Array<WorkerDeploymentRequestsResponseTypeEdge>;
|
|
6590
6651
|
byStatusType: Array<WorkerDeploymentRequestsStatusTypeEdge>;
|
|
6591
6652
|
node?: Maybe<WorkerDeploymentRequestsAggregationNode>;
|
|
6592
6653
|
timestamp: Scalars['DateTime']['output'];
|
|
@@ -6604,6 +6665,16 @@ export declare enum WorkerLoggerLevel {
|
|
|
6604
6665
|
Trace = "TRACE",
|
|
6605
6666
|
Warn = "WARN"
|
|
6606
6667
|
}
|
|
6668
|
+
export type Workflow = {
|
|
6669
|
+
__typename?: 'Workflow';
|
|
6670
|
+
app: App;
|
|
6671
|
+
createdAt: Scalars['DateTime']['output'];
|
|
6672
|
+
fileName: Scalars['String']['output'];
|
|
6673
|
+
id: Scalars['ID']['output'];
|
|
6674
|
+
name?: Maybe<Scalars['String']['output']>;
|
|
6675
|
+
revisions: Array<WorkflowRevision>;
|
|
6676
|
+
updatedAt: Scalars['DateTime']['output'];
|
|
6677
|
+
};
|
|
6607
6678
|
export type WorkflowJobMutation = {
|
|
6608
6679
|
__typename?: 'WorkflowJobMutation';
|
|
6609
6680
|
approveWorkflowJob: Scalars['ID']['output'];
|
|
@@ -6611,6 +6682,31 @@ export type WorkflowJobMutation = {
|
|
|
6611
6682
|
export type WorkflowJobMutationApproveWorkflowJobArgs = {
|
|
6612
6683
|
workflowJobId: Scalars['ID']['input'];
|
|
6613
6684
|
};
|
|
6685
|
+
/** Look up Workflow by ID */
|
|
6686
|
+
export type WorkflowQuery = {
|
|
6687
|
+
__typename?: 'WorkflowQuery';
|
|
6688
|
+
byId: Workflow;
|
|
6689
|
+
};
|
|
6690
|
+
/** Look up Workflow by ID */
|
|
6691
|
+
export type WorkflowQueryByIdArgs = {
|
|
6692
|
+
workflowId: Scalars['ID']['input'];
|
|
6693
|
+
};
|
|
6694
|
+
export type WorkflowRevision = {
|
|
6695
|
+
__typename?: 'WorkflowRevision';
|
|
6696
|
+
blobSha: Scalars['String']['output'];
|
|
6697
|
+
commitSha: Scalars['String']['output'];
|
|
6698
|
+
createdAt: Scalars['DateTime']['output'];
|
|
6699
|
+
id: Scalars['ID']['output'];
|
|
6700
|
+
workflow: Workflow;
|
|
6701
|
+
yamlConfig: Scalars['String']['output'];
|
|
6702
|
+
};
|
|
6703
|
+
export type WorkflowRevisionQuery = {
|
|
6704
|
+
__typename?: 'WorkflowRevisionQuery';
|
|
6705
|
+
byId: WorkflowRevision;
|
|
6706
|
+
};
|
|
6707
|
+
export type WorkflowRevisionQueryByIdArgs = {
|
|
6708
|
+
workflowRevisionId: Scalars['ID']['input'];
|
|
6709
|
+
};
|
|
6614
6710
|
export type DeleteAndroidAppBuildCredentialsResult = {
|
|
6615
6711
|
__typename?: 'deleteAndroidAppBuildCredentialsResult';
|
|
6616
6712
|
id: Scalars['ID']['output'];
|
|
@@ -6761,6 +6857,36 @@ export type UpdateChannelBranchMappingMutation = {
|
|
|
6761
6857
|
};
|
|
6762
6858
|
};
|
|
6763
6859
|
};
|
|
6860
|
+
export type PauseUpdateChannelMutationVariables = Exact<{
|
|
6861
|
+
channelId: Scalars['ID']['input'];
|
|
6862
|
+
}>;
|
|
6863
|
+
export type PauseUpdateChannelMutation = {
|
|
6864
|
+
__typename?: 'RootMutation';
|
|
6865
|
+
updateChannel: {
|
|
6866
|
+
__typename?: 'UpdateChannelMutation';
|
|
6867
|
+
pauseUpdateChannel: {
|
|
6868
|
+
__typename?: 'UpdateChannel';
|
|
6869
|
+
id: string;
|
|
6870
|
+
name: string;
|
|
6871
|
+
branchMapping: string;
|
|
6872
|
+
};
|
|
6873
|
+
};
|
|
6874
|
+
};
|
|
6875
|
+
export type ResumeUpdateChannelMutationVariables = Exact<{
|
|
6876
|
+
channelId: Scalars['ID']['input'];
|
|
6877
|
+
}>;
|
|
6878
|
+
export type ResumeUpdateChannelMutation = {
|
|
6879
|
+
__typename?: 'RootMutation';
|
|
6880
|
+
updateChannel: {
|
|
6881
|
+
__typename?: 'UpdateChannelMutation';
|
|
6882
|
+
resumeUpdateChannel: {
|
|
6883
|
+
__typename?: 'UpdateChannel';
|
|
6884
|
+
id: string;
|
|
6885
|
+
name: string;
|
|
6886
|
+
branchMapping: string;
|
|
6887
|
+
};
|
|
6888
|
+
};
|
|
6889
|
+
};
|
|
6764
6890
|
export type AppInfoQueryVariables = Exact<{
|
|
6765
6891
|
appId: Scalars['String']['input'];
|
|
6766
6892
|
}>;
|
|
@@ -11908,6 +12034,7 @@ export type ViewUpdateChannelOnAppQuery = {
|
|
|
11908
12034
|
updateChannelByName?: {
|
|
11909
12035
|
__typename?: 'UpdateChannel';
|
|
11910
12036
|
id: string;
|
|
12037
|
+
isPaused: boolean;
|
|
11911
12038
|
name: string;
|
|
11912
12039
|
updatedAt: any;
|
|
11913
12040
|
createdAt: any;
|
|
@@ -11978,6 +12105,7 @@ export type ViewUpdateChannelsOnAppQuery = {
|
|
|
11978
12105
|
updateChannels: Array<{
|
|
11979
12106
|
__typename?: 'UpdateChannel';
|
|
11980
12107
|
id: string;
|
|
12108
|
+
isPaused: boolean;
|
|
11981
12109
|
name: string;
|
|
11982
12110
|
updatedAt: any;
|
|
11983
12111
|
createdAt: any;
|