@forge/cli 6.8.3-next.9 → 6.9.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/CHANGELOG.md +196 -0
- package/npm-shrinkwrap.json +163 -165
- package/out/command-line/dependency-injection.d.ts +2 -0
- package/out/command-line/dependency-injection.d.ts.map +1 -1
- package/out/command-line/dependency-injection.js +3 -0
- package/out/command-line/register-environment-commands.d.ts +7 -0
- package/out/command-line/register-environment-commands.d.ts.map +1 -1
- package/out/command-line/register-environment-commands.js +105 -4
- package/out/command-line/register-environment-variables-commands.d.ts +3 -0
- package/out/command-line/register-environment-variables-commands.d.ts.map +1 -1
- package/out/command-line/register-environment-variables-commands.js +25 -22
- package/out/command-line/view/tunnel-view.d.ts.map +1 -1
- package/out/command-line/view/tunnel-view.js +1 -1
- package/out/deploy/deployer/deployer.d.ts +4 -6
- package/out/deploy/deployer/deployer.d.ts.map +1 -1
- package/out/deploy/deployer/deployer.js +12 -16
- package/out/environment/delete-environment.d.ts +27 -0
- package/out/environment/delete-environment.d.ts.map +1 -0
- package/out/environment/delete-environment.js +14 -0
- package/out/environment/graphql-client.d.ts +5 -1
- package/out/environment/graphql-client.d.ts.map +1 -1
- package/out/environment/graphql-client.js +58 -1
- package/out/installations/graphql-client.d.ts +1 -1
- package/out/installations/graphql-client.d.ts.map +1 -1
- package/out/installations/graphql-client.js +11 -10
- package/out/service/resources-uploader-service.js +3 -3
- package/package.json +9 -9
|
@@ -23,6 +23,7 @@ const graphql_client_4 = require("../contributors/graphql-client");
|
|
|
23
23
|
const graphql_client_5 = require("../entities/graphql-client");
|
|
24
24
|
const create_environment_1 = require("../environment/create-environment");
|
|
25
25
|
const list_environment_1 = require("../environment/list-environment");
|
|
26
|
+
const delete_environment_1 = require("../environment/delete-environment");
|
|
26
27
|
const graphql_client_6 = require("../environment/graphql-client");
|
|
27
28
|
const graphql_client_7 = require("../installations/graphql-client");
|
|
28
29
|
const site_translation_1 = require("../installations/site-translation");
|
|
@@ -125,6 +126,7 @@ const getDependencies = async (cliDetails) => {
|
|
|
125
126
|
const environmentClient = new graphql_client_6.GraphqlClient(graphQLClient);
|
|
126
127
|
const createEnvironmentCommand = new create_environment_1.CreateEnvironmentCommand(environmentClient, assertiveAppConfigReader);
|
|
127
128
|
const listEnvironmentCommand = new list_environment_1.ListEnvironmentCommand(environmentClient, assertiveAppConfigReader);
|
|
129
|
+
const deleteEnvironmentCommand = new delete_environment_1.DeleteEnvironmentCommand(environmentClient, assertiveAppConfigReader);
|
|
128
130
|
const migrationKeysClient = new graphql_client_2.GraphqlClient(graphQLClient);
|
|
129
131
|
const migrationKeysService = new migration_keys_service_1.MigrationKeysService(migrationKeysClient, assertiveAppConfigReader);
|
|
130
132
|
const appEnvironmentClient = new cli_shared_1.AppEnvironmentsGraphqlClient(graphQLClient);
|
|
@@ -206,6 +208,7 @@ const getDependencies = async (cliDetails) => {
|
|
|
206
208
|
removeContributorsCommand,
|
|
207
209
|
createEnvironmentCommand,
|
|
208
210
|
listEnvironmentCommand,
|
|
211
|
+
deleteEnvironmentCommand,
|
|
209
212
|
viewAppLogsCommand,
|
|
210
213
|
getWebTriggerURLCommand,
|
|
211
214
|
listEntitiesIndexesCommand
|
|
@@ -2,7 +2,14 @@ import { UI } from '@forge/cli-shared';
|
|
|
2
2
|
import { Dependencies } from './dependency-injection';
|
|
3
3
|
import { CreateEnvironmentCommand } from '../environment/create-environment';
|
|
4
4
|
import { ListEnvironmentCommand } from '../environment/list-environment';
|
|
5
|
+
import { DeleteEnvironmentCommand } from '../environment/delete-environment';
|
|
6
|
+
interface RemoveEnvironmentArgs {
|
|
7
|
+
environment?: string[];
|
|
8
|
+
nonInteractive?: boolean;
|
|
9
|
+
}
|
|
5
10
|
export declare const createEnvironmentHandler: (ui: UI, createEnvironmentCommand: CreateEnvironmentCommand, environmentKey?: string) => Promise<void>;
|
|
6
11
|
export declare const listEnvironmentHandler: (ui: UI, listEnvironmentCommand: ListEnvironmentCommand) => Promise<void>;
|
|
12
|
+
export declare const deleteEnvironmentHandler: (ui: UI, options: RemoveEnvironmentArgs, listEnvironmentCommand: ListEnvironmentCommand, deleteEnvironmentCommand: DeleteEnvironmentCommand) => Promise<void>;
|
|
7
13
|
export declare const registerCommands: (deps: Dependencies) => void;
|
|
14
|
+
export {};
|
|
8
15
|
//# sourceMappingURL=register-environment-commands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-environment-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-environment-commands.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"register-environment-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-environment-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,EAAE,EAMH,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAA2B,MAAM,mCAAmC,CAAC;AAMtG,UAAU,qBAAqB;IAC7B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,wBAAwB,OAC/B,EAAE,4BACoB,wBAAwB,mBACjC,MAAM,kBAoBxB,CAAC;AAEF,eAAO,MAAM,sBAAsB,OAAc,EAAE,0BAA0B,sBAAsB,kBAiClG,CAAC;AAEF,eAAO,MAAM,wBAAwB,OAC/B,EAAE,WACG,qBAAqB,0BACN,sBAAsB,4BACpB,wBAAwB,kBAmCnD,CAAC;AA+IF,eAAO,MAAM,gBAAgB,SAAU,YAAY,KAAG,IAOrD,CAAC"}
|
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.registerCommands = exports.listEnvironmentHandler = exports.createEnvironmentHandler = void 0;
|
|
3
|
+
exports.registerCommands = exports.deleteEnvironmentHandler = exports.listEnvironmentHandler = exports.createEnvironmentHandler = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
4
5
|
const cli_shared_1 = require("@forge/cli-shared");
|
|
6
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
7
|
+
const errors_1 = require("./errors");
|
|
5
8
|
const COMMAND_NAME = 'environment';
|
|
6
9
|
const createEnvironmentHandler = async (ui, createEnvironmentCommand, environmentKey) => {
|
|
7
|
-
ui.info(cli_shared_1.Text.createEnvironment.overview);
|
|
8
|
-
ui.emptyLine();
|
|
9
10
|
if (!environmentKey) {
|
|
11
|
+
ui.info(cli_shared_1.Text.createEnvironment.overview);
|
|
12
|
+
ui.emptyLine();
|
|
10
13
|
environmentKey = await ui.promptForText(cli_shared_1.Text.createEnvironment.promptEnvironmentKey);
|
|
11
14
|
ui.emptyLine();
|
|
12
15
|
}
|
|
13
16
|
const args = {
|
|
14
17
|
environmentKey: (0, cli_shared_1.optionToEnvironment)(environmentKey)
|
|
15
18
|
};
|
|
16
|
-
await ui.displayProgress(() => createEnvironmentCommand.execute(args), cli_shared_1.Text.createEnvironment.cmd.start, cli_shared_1.Text.createEnvironment.cmd.success(environmentKey));
|
|
19
|
+
await ui.displayProgress(() => createEnvironmentCommand.execute(args), cli_shared_1.Text.createEnvironment.cmd.start, cli_shared_1.Text.createEnvironment.cmd.success(environmentKey, cli_shared_1.AppEnvironmentType.Development, cli_shared_1.environmentToOption));
|
|
17
20
|
ui.emptyLine();
|
|
18
21
|
ui.info(cli_shared_1.Text.createEnvironment.successMessage);
|
|
19
22
|
};
|
|
@@ -46,6 +49,92 @@ const listEnvironmentHandler = async (ui, listEnvironmentCommand) => {
|
|
|
46
49
|
});
|
|
47
50
|
};
|
|
48
51
|
exports.listEnvironmentHandler = listEnvironmentHandler;
|
|
52
|
+
const deleteEnvironmentHandler = async (ui, options, listEnvironmentCommand, deleteEnvironmentCommand) => {
|
|
53
|
+
let confirmDeleteEnvironments = false;
|
|
54
|
+
let environmentKeys = options.environment;
|
|
55
|
+
const nonInteractive = options.nonInteractive;
|
|
56
|
+
if (!environmentKeys) {
|
|
57
|
+
environmentKeys = await getEnvironmentKeysToDelete(ui, listEnvironmentCommand);
|
|
58
|
+
}
|
|
59
|
+
if (!environmentKeys) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
environmentKeys = environmentKeys.map(cli_shared_1.optionToEnvironment);
|
|
63
|
+
if (nonInteractive) {
|
|
64
|
+
confirmDeleteEnvironments = true;
|
|
65
|
+
}
|
|
66
|
+
if (!confirmDeleteEnvironments) {
|
|
67
|
+
confirmDeleteEnvironments = await getDeleteConfirmation(ui, environmentKeys);
|
|
68
|
+
}
|
|
69
|
+
if (!confirmDeleteEnvironments) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
ui.emptyLine();
|
|
73
|
+
const { deletedEnvironments, successful } = await deleteEnvironments(ui, deleteEnvironmentCommand, environmentKeys);
|
|
74
|
+
ui.emptyLine();
|
|
75
|
+
displayDeleteResult(ui, deletedEnvironments, successful);
|
|
76
|
+
};
|
|
77
|
+
exports.deleteEnvironmentHandler = deleteEnvironmentHandler;
|
|
78
|
+
const getEnvironmentKeysToDelete = async (ui, listEnvironmentCommand) => {
|
|
79
|
+
const environments = (await listEnvironmentCommand.execute())
|
|
80
|
+
.filter((env) => env.type === cli_shared_1.AppEnvironmentType.Development && env.key !== cli_shared_1.DEFAULT_ENVIRONMENT_KEY)
|
|
81
|
+
.sort((a, b) => Number(a.lastDeployedAt) - Number(b.lastDeployedAt));
|
|
82
|
+
if (environments.length === 0) {
|
|
83
|
+
ui.info(cli_shared_1.Text.deleteEnvironment.noEnvironmentMessage);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
ui.info(cli_shared_1.Text.deleteEnvironment.overview);
|
|
87
|
+
ui.emptyLine();
|
|
88
|
+
const selectedEnvironmentIndexes = await ui.promptForTable(cli_shared_1.Text.deleteEnvironment.prompt, cli_shared_1.Text.deleteEnvironment.info, ['Name', 'Last deployed at'], environments.map(({ key, lastDeployedAt }) => ({
|
|
89
|
+
names: [(0, cli_shared_1.environmentToOption)(key), new Date(Number(lastDeployedAt)).toISOString()]
|
|
90
|
+
})));
|
|
91
|
+
return selectedEnvironmentIndexes.map((index) => environments[index].key);
|
|
92
|
+
};
|
|
93
|
+
const getDeleteConfirmation = async (ui, environmentKeys) => {
|
|
94
|
+
ui.info(cli_shared_1.Text.deleteEnvironment.confirmationInfo);
|
|
95
|
+
ui.emptyLine();
|
|
96
|
+
environmentKeys.forEach((envKey) => {
|
|
97
|
+
ui.info(chalk_1.default.grey((0, cli_shared_1.environmentToOption)(envKey)));
|
|
98
|
+
});
|
|
99
|
+
ui.emptyLine();
|
|
100
|
+
ui.warn(cli_shared_1.Text.deleteEnvironment.warningMessage);
|
|
101
|
+
ui.emptyLine();
|
|
102
|
+
return ui.confirm(cli_shared_1.Text.deleteEnvironment.promptConfirmation);
|
|
103
|
+
};
|
|
104
|
+
const deleteEnvironments = async (ui, deleteEnvironmentCommand, environmentKeys) => {
|
|
105
|
+
let successful = false;
|
|
106
|
+
const args = { environmentKeys };
|
|
107
|
+
const deletedEnvironments = await ui.displayProgress(() => deleteEnvironmentCommand.batchExecute(args), cli_shared_1.Text.deleteEnvironment.cmd.start, (result) => {
|
|
108
|
+
successful = result.every(({ successful }) => successful);
|
|
109
|
+
return {
|
|
110
|
+
successful,
|
|
111
|
+
message: cli_shared_1.Text.deleteEnvironment.cmd.start
|
|
112
|
+
};
|
|
113
|
+
});
|
|
114
|
+
return {
|
|
115
|
+
deletedEnvironments,
|
|
116
|
+
successful
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
const displayDeleteResult = (ui, deletedEnvironments, deleteSuccessful) => {
|
|
120
|
+
const deferredErrors = [];
|
|
121
|
+
const successfulDelete = deletedEnvironments.filter((env) => env.successful);
|
|
122
|
+
const failedDelete = deletedEnvironments.filter((env) => !env.successful);
|
|
123
|
+
successfulDelete.forEach(({ environmentKey }) => {
|
|
124
|
+
ui.info(cli_shared_1.Text.deleteEnvironment.individualSuccessMessage(environmentKey, cli_shared_1.AppEnvironmentType.Development, cli_shared_1.environmentToOption));
|
|
125
|
+
});
|
|
126
|
+
failedDelete.forEach(({ error }) => {
|
|
127
|
+
if (error !== undefined) {
|
|
128
|
+
ui.error(error);
|
|
129
|
+
deferredErrors.push(error);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
if (!deleteSuccessful) {
|
|
133
|
+
throw new errors_1.DeferredErrors(deferredErrors);
|
|
134
|
+
}
|
|
135
|
+
ui.emptyLine();
|
|
136
|
+
ui.info(cli_shared_1.Text.deleteEnvironment.successMessage);
|
|
137
|
+
};
|
|
49
138
|
const registerCreateEnvironmentCommand = (parent, { ui, commands: { createEnvironmentCommand } }) => {
|
|
50
139
|
parent
|
|
51
140
|
.command('create')
|
|
@@ -66,10 +155,22 @@ const registerListEnvironmentCommand = (parent, { ui, commands: { listEnvironmen
|
|
|
66
155
|
await (0, exports.listEnvironmentHandler)(ui, listEnvironmentCommand);
|
|
67
156
|
});
|
|
68
157
|
};
|
|
158
|
+
const registerDeleteEnvironmentCommand = (parent, { ui, commands: { listEnvironmentCommand, deleteEnvironmentCommand } }) => {
|
|
159
|
+
parent
|
|
160
|
+
.command('delete')
|
|
161
|
+
.requireAppId()
|
|
162
|
+
.description(cli_shared_1.Text.deleteEnvironment.cmd.desc)
|
|
163
|
+
.option('-e, --environment [environments...]', cli_shared_1.Text.deleteEnvironment.optionEnvironmentKey)
|
|
164
|
+
.nonInteractiveOption('--environment')
|
|
165
|
+
.action(async (options) => {
|
|
166
|
+
await (0, exports.deleteEnvironmentHandler)(ui, options, listEnvironmentCommand, deleteEnvironmentCommand);
|
|
167
|
+
});
|
|
168
|
+
};
|
|
69
169
|
const registerCommands = (deps) => {
|
|
70
170
|
const { cmd } = deps;
|
|
71
171
|
const environment = cmd.command(COMMAND_NAME).description(cli_shared_1.Text.environment.desc);
|
|
72
172
|
registerCreateEnvironmentCommand(environment, deps);
|
|
73
173
|
registerListEnvironmentCommand(environment, deps);
|
|
174
|
+
registerDeleteEnvironmentCommand(environment, deps);
|
|
74
175
|
};
|
|
75
176
|
exports.registerCommands = registerCommands;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { UI } from '@forge/cli-shared';
|
|
1
2
|
import { Dependencies } from './dependency-injection';
|
|
3
|
+
import { ListEnvironmentVariablesCommand } from '../environment-variables/list-environment-variables';
|
|
4
|
+
export declare function listEnvironmentVariableCommandHandler(ui: UI, listEnvironmentVariablesCommand: ListEnvironmentVariablesCommand, environment: string, json: boolean): Promise<void>;
|
|
2
5
|
export declare const registerCommands: ({ cmd, ...deps }: Dependencies) => void;
|
|
3
6
|
//# sourceMappingURL=register-environment-variables-commands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-environment-variables-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-environment-variables-commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"register-environment-variables-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-environment-variables-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAmD,MAAM,mBAAmB,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AA2EtG,wBAAsB,qCAAqC,CACzD,EAAE,EAAE,EAAE,EACN,+BAA+B,EAAE,+BAA+B,EAChE,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,OAAO,iBAwBd;AA4BD,eAAO,MAAM,gBAAgB,qBAAsB,YAAY,KAAG,IAOjE,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.registerCommands = void 0;
|
|
3
|
+
exports.registerCommands = exports.listEnvironmentVariableCommandHandler = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const cli_shared_1 = require("@forge/cli-shared");
|
|
6
|
-
const cli_shared_2 = require("@forge/cli-shared");
|
|
7
6
|
const COMMAND_NAME = 'variables';
|
|
8
7
|
const SET_COMMAND_NAME = 'set';
|
|
9
8
|
const registerSetEnvironmentVariableCommand = ({ cmd, ui, commands: { setEnvironmentVariableCommand } }) => {
|
|
@@ -14,7 +13,7 @@ const registerSetEnvironmentVariableCommand = ({ cmd, ui, commands: { setEnviron
|
|
|
14
13
|
.option('--encrypt', cli_shared_1.Text.varsSet.optionSecret, false)
|
|
15
14
|
.environmentOption()
|
|
16
15
|
.action(async (key, value, { environment, encrypt }) => {
|
|
17
|
-
ui.info(cli_shared_1.Text.varsSet.overview(environment,
|
|
16
|
+
ui.info(cli_shared_1.Text.varsSet.overview(environment, (0, cli_shared_1.guessEnvironmentType)(environment), cli_shared_1.environmentToOption));
|
|
18
17
|
ui.info(cli_shared_1.Text.ctrlC);
|
|
19
18
|
ui.emptyLine();
|
|
20
19
|
if (!value && !encrypt) {
|
|
@@ -48,7 +47,7 @@ const registerDeleteEnvironmentVariableCommand = ({ cmd, ui, commands: { deleteE
|
|
|
48
47
|
.description(cli_shared_1.Text.varsUnset.cmd.desc)
|
|
49
48
|
.environmentOption()
|
|
50
49
|
.action(async (key, { environment }) => {
|
|
51
|
-
ui.info(cli_shared_1.Text.varsUnset.cmd.start(environment,
|
|
50
|
+
ui.info(cli_shared_1.Text.varsUnset.cmd.start(environment, (0, cli_shared_1.guessEnvironmentType)(environment), cli_shared_1.environmentToOption));
|
|
52
51
|
ui.info(cli_shared_1.Text.ctrlC);
|
|
53
52
|
await deleteEnvironmentVariableCommand.execute({ environment, key });
|
|
54
53
|
ui.info(cli_shared_1.Text.varsUnset.cmd.success(key));
|
|
@@ -56,6 +55,27 @@ const registerDeleteEnvironmentVariableCommand = ({ cmd, ui, commands: { deleteE
|
|
|
56
55
|
});
|
|
57
56
|
};
|
|
58
57
|
const LIST_COMMAND_NAME = 'list';
|
|
58
|
+
async function listEnvironmentVariableCommandHandler(ui, listEnvironmentVariablesCommand, environment, json) {
|
|
59
|
+
const variables = await listEnvironmentVariablesCommand.execute({ environment });
|
|
60
|
+
ui.table([
|
|
61
|
+
['encrypted', 'Encrypted?'],
|
|
62
|
+
['key', 'Key'],
|
|
63
|
+
['value', 'Value']
|
|
64
|
+
], variables === null || variables === void 0 ? void 0 : variables.map(({ encrypt: encrypted, key, value }) => ({
|
|
65
|
+
encrypted,
|
|
66
|
+
key,
|
|
67
|
+
value: encrypted ? cli_shared_1.Text.varsList.encryptedValue : value
|
|
68
|
+
})), {
|
|
69
|
+
json,
|
|
70
|
+
emptyMessage: cli_shared_1.Text.varsList.empty(environment, (0, cli_shared_1.guessEnvironmentType)(environment), cli_shared_1.environmentToOption),
|
|
71
|
+
preMessage: cli_shared_1.Text.varsList.overview(environment, (0, cli_shared_1.guessEnvironmentType)(environment), cli_shared_1.environmentToOption),
|
|
72
|
+
postMessage: cli_shared_1.Text.varsList.postfix,
|
|
73
|
+
format: {
|
|
74
|
+
encrypted: (value) => (value ? '✔' : '')
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
exports.listEnvironmentVariableCommandHandler = listEnvironmentVariableCommandHandler;
|
|
59
79
|
const registerListEnvironmentVariableCommand = ({ cmd, ui, commands: { listEnvironmentVariablesCommand } }) => {
|
|
60
80
|
cmd
|
|
61
81
|
.command(LIST_COMMAND_NAME)
|
|
@@ -64,24 +84,7 @@ const registerListEnvironmentVariableCommand = ({ cmd, ui, commands: { listEnvir
|
|
|
64
84
|
.environmentOption()
|
|
65
85
|
.jsonOption()
|
|
66
86
|
.action(async ({ environment, json }) => {
|
|
67
|
-
|
|
68
|
-
ui.table([
|
|
69
|
-
['encrypted', 'Encrypted?'],
|
|
70
|
-
['key', 'Key'],
|
|
71
|
-
['value', 'Value']
|
|
72
|
-
], variables === null || variables === void 0 ? void 0 : variables.map(({ encrypt: encrypted, key, value }) => ({
|
|
73
|
-
encrypted,
|
|
74
|
-
key,
|
|
75
|
-
value: encrypted ? cli_shared_1.Text.varsList.encryptedValue : value
|
|
76
|
-
})), {
|
|
77
|
-
json,
|
|
78
|
-
emptyMessage: cli_shared_1.Text.varsList.empty(environment, cli_shared_2.environmentToOption),
|
|
79
|
-
preMessage: cli_shared_1.Text.varsList.overview(environment, cli_shared_2.environmentToOption),
|
|
80
|
-
postMessage: cli_shared_1.Text.varsList.postfix,
|
|
81
|
-
format: {
|
|
82
|
-
encrypted: (value) => (value ? '✔' : '')
|
|
83
|
-
}
|
|
84
|
-
});
|
|
87
|
+
await listEnvironmentVariableCommandHandler(ui, listEnvironmentVariablesCommand, environment, json);
|
|
85
88
|
});
|
|
86
89
|
};
|
|
87
90
|
const DEPRECATED_SET_COMMAND = 'variables:set';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel-view.d.ts","sourceRoot":"","sources":["../../../src/command-line/view/tunnel-view.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EAGb,WAAW,
|
|
1
|
+
{"version":3,"file":"tunnel-view.d.ts","sourceRoot":"","sources":["../../../src/command-line/view/tunnel-view.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EAGb,WAAW,EAIX,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,qBAAa,eAAgB,SAAQ,SAAS;CAAG;AAEjD,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,aAAa;IAEvC,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI;IAa7C,qBAAqB,CAAC,MAAM,EAAE,OAAO,WAAW,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC;IAQhF,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM;IA+BxE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAQpG,sBAAsB,CAC3B,yBAAyB,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,EACnD,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,yBAAyB,GAC3D,OAAO,CAAC,IAAI,CAAC;CAyCjB"}
|
|
@@ -15,7 +15,7 @@ class TunnelView {
|
|
|
15
15
|
this.ui.info(cli_shared_1.Text.tunnel.preamble);
|
|
16
16
|
if (environmentKey && environmentKey !== cli_shared_1.DEFAULT_ENVIRONMENT_KEY) {
|
|
17
17
|
this.ui.emptyLine();
|
|
18
|
-
this.ui.info(cli_shared_1.Text.tunnel.startingTunnel(environmentKey, cli_shared_1.environmentToOption));
|
|
18
|
+
this.ui.info(cli_shared_1.Text.tunnel.startingTunnel(environmentKey, (0, cli_shared_1.guessEnvironmentType)(environmentKey), cli_shared_1.environmentToOption));
|
|
19
19
|
this.ui.emptyLine();
|
|
20
20
|
}
|
|
21
21
|
this.ui.info(cli_shared_1.Text.ctrlC);
|
|
@@ -3,19 +3,17 @@ import { DeployMonitorClient } from './deploy-monitor-graphql-client';
|
|
|
3
3
|
import { TriggerDeployClient } from './trigger-deploy-graphql-client';
|
|
4
4
|
export declare class AppDeploymentFailedError extends BaseError {
|
|
5
5
|
private readonly userError;
|
|
6
|
-
private readonly requestId?;
|
|
7
6
|
constructor(userError?: boolean, requestId?: string | undefined, message?: string);
|
|
8
7
|
isUserError(): boolean;
|
|
9
|
-
getAttributes(): Record<string, any>;
|
|
10
8
|
}
|
|
11
9
|
export declare class AppSnapshotFailedError extends BaseError {
|
|
12
|
-
private readonly userError
|
|
13
|
-
constructor(userError?: boolean | undefined, message?: string);
|
|
10
|
+
private readonly userError;
|
|
11
|
+
constructor(userError?: boolean, requestId?: string | undefined, message?: string);
|
|
14
12
|
isUserError(): boolean;
|
|
15
13
|
}
|
|
16
14
|
export declare class HostedResourceDeploymentFailedError extends BaseError {
|
|
17
|
-
private readonly userError
|
|
18
|
-
constructor(userError?: boolean | undefined, message?: string);
|
|
15
|
+
private readonly userError;
|
|
16
|
+
constructor(userError?: boolean, requestId?: string | undefined, message?: string);
|
|
19
17
|
isUserError(): boolean;
|
|
20
18
|
}
|
|
21
19
|
export interface Deployer {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployer.d.ts","sourceRoot":"","sources":["../../../src/deploy/deployer/deployer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAKjB,mBAAmB,EAGnB,KAAK,EAEL,EAAE,EAEF,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAsB,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAItE,qBAAa,wBAAyB,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"deployer.d.ts","sourceRoot":"","sources":["../../../src/deploy/deployer/deployer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAKjB,mBAAmB,EAGnB,KAAK,EAEL,EAAE,EAEF,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAsB,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAItE,qBAAa,wBAAyB,SAAQ,SAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM;IAGlG,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,sBAAuB,SAAQ,SAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM;IAGlG,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,mCAAoC,SAAQ,SAAS;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM;IAGlG,WAAW,IAAI,OAAO;CAG9B;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,sBAAsB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrG;AAyBD,qBAAa,gBAAiB,YAAW,QAAQ;IAE7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAJF,gBAAgB,EAAE,iBAAiB,EACnC,YAAY,EAAE,mBAAmB,EACjC,mBAAmB,EAAE,mBAAmB,EACxC,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE;IAGZ,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,sBAAsB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAMlG,QAAQ;IAcT,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;;;;YA2BpG,iBAAiB;IAa/B,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,0BAA0B;IA6BlC,OAAO,CAAC,gBAAgB;CAsDzB"}
|
|
@@ -5,35 +5,31 @@ const cli_shared_1 = require("@forge/cli-shared");
|
|
|
5
5
|
const DEPLOYMENT_EVENT_POLL_INTERVAL = 500;
|
|
6
6
|
class AppDeploymentFailedError extends cli_shared_1.BaseError {
|
|
7
7
|
constructor(userError = false, requestId, message) {
|
|
8
|
-
super(`${message} (requestId: ${requestId || 'unknown'})`);
|
|
8
|
+
super(requestId, `${message} (requestId: ${requestId || 'unknown'})`);
|
|
9
9
|
this.userError = userError;
|
|
10
|
-
this.requestId = requestId;
|
|
11
10
|
}
|
|
12
11
|
isUserError() {
|
|
13
12
|
return this.userError;
|
|
14
13
|
}
|
|
15
|
-
getAttributes() {
|
|
16
|
-
return Object.assign(Object.assign({}, super.getAttributes()), { requestId: this.requestId });
|
|
17
|
-
}
|
|
18
14
|
}
|
|
19
15
|
exports.AppDeploymentFailedError = AppDeploymentFailedError;
|
|
20
16
|
class AppSnapshotFailedError extends cli_shared_1.BaseError {
|
|
21
|
-
constructor(userError, message) {
|
|
22
|
-
super(message);
|
|
17
|
+
constructor(userError = false, requestId, message) {
|
|
18
|
+
super(requestId, message);
|
|
23
19
|
this.userError = userError;
|
|
24
20
|
}
|
|
25
21
|
isUserError() {
|
|
26
|
-
return
|
|
22
|
+
return this.userError;
|
|
27
23
|
}
|
|
28
24
|
}
|
|
29
25
|
exports.AppSnapshotFailedError = AppSnapshotFailedError;
|
|
30
26
|
class HostedResourceDeploymentFailedError extends cli_shared_1.BaseError {
|
|
31
|
-
constructor(userError, message) {
|
|
32
|
-
super(message);
|
|
27
|
+
constructor(userError = false, requestId, message) {
|
|
28
|
+
super(requestId, message);
|
|
33
29
|
this.userError = userError;
|
|
34
30
|
}
|
|
35
31
|
isUserError() {
|
|
36
|
-
return
|
|
32
|
+
return this.userError;
|
|
37
33
|
}
|
|
38
34
|
}
|
|
39
35
|
exports.HostedResourceDeploymentFailedError = HostedResourceDeploymentFailedError;
|
|
@@ -148,10 +144,10 @@ class ArtifactDeployer {
|
|
|
148
144
|
if (errorDetails) {
|
|
149
145
|
const { code, message } = errorDetails;
|
|
150
146
|
if (code === 'APP_CODE_SNAPSHOT_FAILED') {
|
|
151
|
-
throw new AppSnapshotFailedError(true, cli_shared_1.Text.snapshot.error('App code snapshot error', message));
|
|
147
|
+
throw new AppSnapshotFailedError(true, requestId, cli_shared_1.Text.snapshot.error('App code snapshot error', message));
|
|
152
148
|
}
|
|
153
149
|
if (code === 'APP_CODE_SNAPSHOT_TIMEOUT') {
|
|
154
|
-
throw new AppSnapshotFailedError(false, cli_shared_1.Text.snapshot.timeout);
|
|
150
|
+
throw new AppSnapshotFailedError(false, requestId, cli_shared_1.Text.snapshot.timeout);
|
|
155
151
|
}
|
|
156
152
|
if (code === 'ENVIRONMENT_UPDATE_VALIDATION_FAILED') {
|
|
157
153
|
const causeMessage = (_a = errorDetails === null || errorDetails === void 0 ? void 0 : errorDetails.fields) === null || _a === void 0 ? void 0 : _a.validationResult.message.replace(/Upsert.*Details /, '');
|
|
@@ -171,17 +167,17 @@ class ArtifactDeployer {
|
|
|
171
167
|
'HOSTED_RESOURCE_FILE_PATH_REFERS_TO_PARENT',
|
|
172
168
|
'HOSTED_RESOURCE_INVALID_EGRESS_PERMISSIONS'
|
|
173
169
|
].includes(code)) {
|
|
174
|
-
throw new HostedResourceDeploymentFailedError(true, cli_shared_1.Text.hostedResources.error(message));
|
|
170
|
+
throw new HostedResourceDeploymentFailedError(true, requestId, cli_shared_1.Text.hostedResources.error(message));
|
|
175
171
|
}
|
|
176
172
|
if ([
|
|
177
173
|
'HOSTED_RESOURCE_FAILED_TO_FETCH',
|
|
178
174
|
'HOSTED_RESOURCE_FAILED_TO_COPY',
|
|
179
175
|
'HOSTED_RESOURCE_UPLOAD_ID_MISSING'
|
|
180
176
|
].includes(code)) {
|
|
181
|
-
throw new HostedResourceDeploymentFailedError(false, cli_shared_1.Text.hostedResources.error(message));
|
|
177
|
+
throw new HostedResourceDeploymentFailedError(false, requestId, cli_shared_1.Text.hostedResources.error(message));
|
|
182
178
|
}
|
|
183
179
|
if (code === 'HOSTED_RESOURCES_LAMBDA_TIMEOUT') {
|
|
184
|
-
throw new HostedResourceDeploymentFailedError(false, cli_shared_1.Text.hostedResources.error(cli_shared_1.Text.hostedResources.lambdaTimeout));
|
|
180
|
+
throw new HostedResourceDeploymentFailedError(false, requestId, cli_shared_1.Text.hostedResources.error(cli_shared_1.Text.hostedResources.lambdaTimeout));
|
|
185
181
|
}
|
|
186
182
|
}
|
|
187
183
|
throw new AppDeploymentFailedError(false, requestId, cli_shared_1.Text.deploy.taskDeploy.serverStepFailed);
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { AppConfigProvider } from '@forge/cli-shared';
|
|
2
|
+
export interface DeleteEnvironmentOutput {
|
|
3
|
+
environmentKey: string;
|
|
4
|
+
successful: boolean;
|
|
5
|
+
error?: Error;
|
|
6
|
+
}
|
|
7
|
+
export interface DeleteEnvironmentDetails {
|
|
8
|
+
appId: string;
|
|
9
|
+
environmentKey: string;
|
|
10
|
+
}
|
|
11
|
+
export interface BatchEnvironmentDetails {
|
|
12
|
+
environmentKeys: string[];
|
|
13
|
+
}
|
|
14
|
+
export interface BatchDeleteEnvironmentDetails extends BatchEnvironmentDetails {
|
|
15
|
+
appId: string;
|
|
16
|
+
}
|
|
17
|
+
export interface DeleteEnvironmentClient {
|
|
18
|
+
deleteEnvironment(details: DeleteEnvironmentDetails): Promise<boolean>;
|
|
19
|
+
deleteEnvironments(details: BatchDeleteEnvironmentDetails): Promise<DeleteEnvironmentOutput[]>;
|
|
20
|
+
}
|
|
21
|
+
export declare class DeleteEnvironmentCommand {
|
|
22
|
+
private readonly client;
|
|
23
|
+
private readonly getAppConfig;
|
|
24
|
+
constructor(client: DeleteEnvironmentClient, getAppConfig: AppConfigProvider);
|
|
25
|
+
batchExecute(details: BatchEnvironmentDetails): Promise<DeleteEnvironmentOutput[]>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=delete-environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-environment.d.ts","sourceRoot":"","sources":["../../src/environment/delete-environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,6BAA8B,SAAQ,uBAAuB;IAC5E,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvE,kBAAkB,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;CAChG;AAED,qBAAa,wBAAwB;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAA2B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAA9D,MAAM,EAAE,uBAAuB,EAAmB,YAAY,EAAE,iBAAiB;IAEjG,YAAY,CAAC,OAAO,EAAE,uBAAuB;CAO3D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeleteEnvironmentCommand = void 0;
|
|
4
|
+
class DeleteEnvironmentCommand {
|
|
5
|
+
constructor(client, getAppConfig) {
|
|
6
|
+
this.client = client;
|
|
7
|
+
this.getAppConfig = getAppConfig;
|
|
8
|
+
}
|
|
9
|
+
async batchExecute(details) {
|
|
10
|
+
const { id: appId } = await this.getAppConfig();
|
|
11
|
+
return this.client.deleteEnvironments(Object.assign(Object.assign({}, details), { appId }));
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.DeleteEnvironmentCommand = DeleteEnvironmentCommand;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { AppEnvironmentType, GraphQLClient, UserError } from '@forge/cli-shared';
|
|
2
2
|
import { AppEnvironmentDetails, CreateEnvironmentClient } from './create-environment';
|
|
3
3
|
import { ListEnvironmentClient, ListEnvironmentDetails } from './list-environment';
|
|
4
|
+
import { BatchDeleteEnvironmentDetails, DeleteEnvironmentClient, DeleteEnvironmentDetails, DeleteEnvironmentOutput } from './delete-environment';
|
|
5
|
+
export declare const APP_HAS_INSTALLATIONS_CODE = "APP_HAS_INSTALLATIONS";
|
|
4
6
|
export declare class MissingAppError extends UserError {
|
|
5
7
|
}
|
|
6
|
-
export declare class GraphqlClient implements CreateEnvironmentClient, ListEnvironmentClient {
|
|
8
|
+
export declare class GraphqlClient implements CreateEnvironmentClient, ListEnvironmentClient, DeleteEnvironmentClient {
|
|
7
9
|
private readonly graphqlClient;
|
|
8
10
|
constructor(graphqlClient: GraphQLClient);
|
|
9
11
|
createEnvironment(details: AppEnvironmentDetails): Promise<void>;
|
|
@@ -12,5 +14,7 @@ export declare class GraphqlClient implements CreateEnvironmentClient, ListEnvir
|
|
|
12
14
|
key: string;
|
|
13
15
|
lastDeployedAt: string;
|
|
14
16
|
}[]>;
|
|
17
|
+
deleteEnvironments(details: BatchDeleteEnvironmentDetails): Promise<DeleteEnvironmentOutput[]>;
|
|
18
|
+
deleteEnvironment(details: DeleteEnvironmentDetails): Promise<true>;
|
|
15
19
|
}
|
|
16
20
|
//# sourceMappingURL=graphql-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/environment/graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,
|
|
1
|
+
{"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/environment/graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAKlB,aAAa,EAIb,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAElE,qBAAa,eAAgB,SAAQ,SAAS;CAAG;AAEjD,qBAAa,aAAc,YAAW,uBAAuB,EAAE,qBAAqB,EAAE,uBAAuB;IAC/F,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,iBAAiB,CAAC,OAAO,EAAE,qBAAqB;IAgDhD,eAAe,CAAC,OAAO,EAAE,sBAAsB;;;;;IAmC/C,kBAAkB,CAAC,OAAO,EAAE,6BAA6B;IAkBzD,iBAAiB,CAAC,OAAO,EAAE,wBAAwB;CAuDjE"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GraphqlClient = exports.MissingAppError = void 0;
|
|
3
|
+
exports.GraphqlClient = exports.MissingAppError = exports.APP_HAS_INSTALLATIONS_CODE = void 0;
|
|
4
4
|
const cli_shared_1 = require("@forge/cli-shared");
|
|
5
|
+
exports.APP_HAS_INSTALLATIONS_CODE = 'APP_HAS_INSTALLATIONS';
|
|
5
6
|
class MissingAppError extends cli_shared_1.UserError {
|
|
6
7
|
}
|
|
7
8
|
exports.MissingAppError = MissingAppError;
|
|
@@ -78,5 +79,61 @@ class GraphqlClient {
|
|
|
78
79
|
};
|
|
79
80
|
});
|
|
80
81
|
}
|
|
82
|
+
async deleteEnvironments(details) {
|
|
83
|
+
const results = [];
|
|
84
|
+
for (const environmentKey of details.environmentKeys) {
|
|
85
|
+
try {
|
|
86
|
+
const success = await this.deleteEnvironment(Object.assign(Object.assign({}, details), { environmentKey }));
|
|
87
|
+
results.push({ environmentKey, successful: success });
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
results.push({ environmentKey, successful: false, error: err });
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return results;
|
|
94
|
+
}
|
|
95
|
+
async deleteEnvironment(details) {
|
|
96
|
+
const mutation = `
|
|
97
|
+
mutation forge_cli_deleteEnvironment($input: DeleteAppEnvironmentInput!) {
|
|
98
|
+
ecosystem {
|
|
99
|
+
deleteAppEnvironment(input: $input) {
|
|
100
|
+
success
|
|
101
|
+
errors {
|
|
102
|
+
message
|
|
103
|
+
extensions {
|
|
104
|
+
errorType
|
|
105
|
+
statusCode
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
`;
|
|
112
|
+
const { response: { ecosystem: { deleteAppEnvironment } }, requestId } = await this.graphqlClient.mutate(mutation, {
|
|
113
|
+
input: {
|
|
114
|
+
appAri: details.appId,
|
|
115
|
+
environmentKey: details.environmentKey
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
if (!deleteAppEnvironment) {
|
|
119
|
+
throw new cli_shared_1.GraphQlMutationError(`Unable to get a response (requestId: ${requestId || 'unknown'})`, {
|
|
120
|
+
requestId
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
const { success, errors } = deleteAppEnvironment;
|
|
124
|
+
const error = (0, cli_shared_1.getError)(errors);
|
|
125
|
+
let errorMessage = error.message;
|
|
126
|
+
if (error.code === exports.APP_HAS_INSTALLATIONS_CODE) {
|
|
127
|
+
errorMessage = cli_shared_1.Text.deleteEnvironment.hasInstallationError(details.environmentKey, cli_shared_1.environmentToOption);
|
|
128
|
+
}
|
|
129
|
+
if (!success) {
|
|
130
|
+
throw new cli_shared_1.GraphQlMutationError(`${errorMessage} (requestId: ${requestId || 'unknown'})`, {
|
|
131
|
+
requestId,
|
|
132
|
+
code: error.code,
|
|
133
|
+
statusCode: error.statusCode
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
return success;
|
|
137
|
+
}
|
|
81
138
|
}
|
|
82
139
|
exports.GraphqlClient = GraphqlClient;
|
|
@@ -33,7 +33,7 @@ export declare class MissingTaskIdError extends Error {
|
|
|
33
33
|
export declare class InstallationRequestFailedError extends BaseError {
|
|
34
34
|
private readonly userError;
|
|
35
35
|
readonly code?: string | undefined;
|
|
36
|
-
constructor(userError: boolean, code?: string | undefined, message?: string);
|
|
36
|
+
constructor(userError: boolean, code?: string | undefined, message?: string, requestId?: string | undefined);
|
|
37
37
|
isUserError(): boolean;
|
|
38
38
|
}
|
|
39
39
|
export declare class MissingAppError extends UserError {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/installations/graphql-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,sBAAsB,EAItB,aAAa,EACb,oBAAoB,EAMpB,KAAK,EAGL,SAAS,EACT,SAAS,EAEV,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EACL,yBAAyB,EACzB,YAAY,EACZ,0BAA0B,EAC1B,6BAA6B,EAC9B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,eAAO,MAAM,kCAAkC,MAAM,CAAC;AAkBtD,eAAO,MAAM,qBAAqB,kCAAkC,CAAC;AAMrE,qBAAa,qBAAsB,SAAQ,oBAAoB;gBACjD,SAAS,oBAAY,EAAE,KAAK,oBAAY,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS;CAOrF;AAED,qBAAa,qBAAsB,SAAQ,oBAAoB;gBACjD,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS;CAG1E;AAED,qBAAa,iBAAkB,SAAQ,oBAAoB;gBAEvD,OAAO,EAAE,MAAM,EACf,EACE,SAAS,EACT,IAAI,EACJ,UAAU,EACX,EAAE;QACD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;KAChC;CAIJ;AAED,qBAAa,YAAa,SAAQ,oBAAoB;gBAElD,OAAO,EAAE,MAAM,EACf,EACE,SAAS,EACT,IAAI,EACJ,UAAU,EACX,EAAE;QACD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;KAChC;CAIJ;AAED,qBAAa,wBAAyB,SAAQ,SAAS;gBACzC,cAAc,EAAE,MAAM;CAGnC;AAED,qBAAa,kBAAmB,SAAQ,KAAK;CAAG;AAEhD,qBAAa,8BAA+B,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/installations/graphql-client.ts"],"names":[],"mappings":"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"}
|