@forge/cli 6.5.0-next.9 → 6.6.0-next.3

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.
Files changed (48) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/npm-shrinkwrap.json +83 -83
  3. package/out/autocomplete/autocomplete-config.json +3 -0
  4. package/out/command-line/command.d.ts.map +1 -1
  5. package/out/command-line/command.js +1 -1
  6. package/out/command-line/controller/deploy-controller.d.ts +3 -2
  7. package/out/command-line/controller/deploy-controller.d.ts.map +1 -1
  8. package/out/command-line/controller/deploy-controller.js +4 -2
  9. package/out/command-line/controller/install-controller.d.ts.map +1 -1
  10. package/out/command-line/controller/install-controller.js +8 -7
  11. package/out/command-line/controller/tunnel-controller.d.ts.map +1 -1
  12. package/out/command-line/controller/tunnel-controller.js +1 -1
  13. package/out/command-line/dependency-injection.d.ts +2 -0
  14. package/out/command-line/dependency-injection.d.ts.map +1 -1
  15. package/out/command-line/dependency-injection.js +4 -1
  16. package/out/command-line/environment.d.ts +1 -0
  17. package/out/command-line/environment.d.ts.map +1 -1
  18. package/out/command-line/environment.js +8 -8
  19. package/out/command-line/register-app-commands.d.ts.map +1 -1
  20. package/out/command-line/register-app-commands.js +23 -23
  21. package/out/command-line/register-environment-commands.d.ts +4 -2
  22. package/out/command-line/register-environment-commands.d.ts.map +1 -1
  23. package/out/command-line/register-environment-commands.js +39 -4
  24. package/out/command-line/register-tunnel-commands.d.ts.map +1 -1
  25. package/out/command-line/register-tunnel-commands.js +1 -0
  26. package/out/command-line/view/deploy-view.d.ts +2 -2
  27. package/out/command-line/view/deploy-view.d.ts.map +1 -1
  28. package/out/command-line/view/deploy-view.js +5 -5
  29. package/out/command-line/view/tunnel-view.d.ts +1 -1
  30. package/out/command-line/view/tunnel-view.d.ts.map +1 -1
  31. package/out/command-line/view/tunnel-view.js +6 -1
  32. package/out/environment/graphql-client.d.ts +10 -2
  33. package/out/environment/graphql-client.d.ts.map +1 -1
  34. package/out/environment/graphql-client.js +36 -1
  35. package/out/environment/list-environment.d.ts +17 -0
  36. package/out/environment/list-environment.d.ts.map +1 -0
  37. package/out/environment/list-environment.js +16 -0
  38. package/out/installations/graphql-client.d.ts +5 -4
  39. package/out/installations/graphql-client.d.ts.map +1 -1
  40. package/out/installations/graphql-client.js +15 -4
  41. package/out/migration-keys/graphql-client.js +1 -1
  42. package/out/service/installation-service.d.ts +8 -2
  43. package/out/service/installation-service.d.ts.map +1 -1
  44. package/out/service/installation-service.js +8 -2
  45. package/out/service/tunnel-service.d.ts +1 -0
  46. package/out/service/tunnel-service.d.ts.map +1 -1
  47. package/out/service/tunnel-service.js +2 -5
  48. package/package.json +8 -8
@@ -22,6 +22,7 @@ const list_contributors_1 = require("../contributors/list-contributors");
22
22
  const remove_contributors_1 = require("../contributors/remove-contributors");
23
23
  const graphql_client_4 = require("../contributors/graphql-client");
24
24
  const create_environment_1 = require("../environment/create-environment");
25
+ const list_environment_1 = require("../environment/list-environment");
25
26
  const graphql_client_5 = require("../environment/graphql-client");
26
27
  const graphql_client_6 = require("../installations/graphql-client");
27
28
  const site_translation_1 = require("../installations/site-translation");
@@ -122,6 +123,7 @@ const getDependencies = async (cliDetails) => {
122
123
  const removeContributorsCommand = new remove_contributors_1.RemoveContributorsCommand(contributorClient, assertiveAppConfigReader);
123
124
  const environmentClient = new graphql_client_5.GraphqlClient(graphQLClient);
124
125
  const createEnvironmentCommand = new create_environment_1.CreateEnvironmentCommand(environmentClient, assertiveAppConfigReader);
126
+ const listEnvironmentCommand = new list_environment_1.ListEnvironmentCommand(environmentClient, assertiveAppConfigReader);
125
127
  const migrationKeysClient = new graphql_client_2.GraphqlClient(graphQLClient);
126
128
  const migrationKeysService = new migration_keys_service_1.MigrationKeysService(migrationKeysClient, assertiveAppConfigReader);
127
129
  const appEnvironmentClient = new cli_shared_1.AppEnvironmentsGraphqlClient(graphQLClient);
@@ -159,7 +161,7 @@ const getDependencies = async (cliDetails) => {
159
161
  const iframeResizerScriptService = new cli_shared_1.IframeResizerScriptService();
160
162
  const resourcePackagingService = new resource_packaging_service_1.ResourcePackagingService(archiverFactory, fileReader, process.cwd(), bridgeScriptService, iframeResizerScriptService);
161
163
  const packageUploadDeployCommand = new deploy_1.PackageUploadDeployCommand(appPackager, archiveUploader, deployer, resourcePackagingService);
162
- const deployController = new deploy_controller_1.DeployController(assertiveAppConfigReader, configFile, lintService, installationsService, migrationKeysService, deployView, packageUploadDeployCommand);
164
+ const deployController = new deploy_controller_1.DeployController(assertiveAppConfigReader, configFile, lintService, installationsService, migrationKeysService, appEnvironmentClient, deployView, packageUploadDeployCommand);
163
165
  const createSandbox = async (cfg) => new runtime_1.NodeSandbox(cfg);
164
166
  const functionHost = new tunnel_1.LocalFunctionHost(configFile, ui, null, createSandbox, fs_1.promises, featureFlagService);
165
167
  const localInvocationService = new tunnel_1.LocalInvocationService(configFile, ui, runtime_1.notImplementedInspector);
@@ -199,6 +201,7 @@ const getDependencies = async (cliDetails) => {
199
201
  listContributorCommand,
200
202
  removeContributorsCommand,
201
203
  createEnvironmentCommand,
204
+ listEnvironmentCommand,
202
205
  viewAppLogsCommand,
203
206
  getWebTriggerURLCommand
204
207
  },
@@ -1,2 +1,3 @@
1
+ export declare const validateEnvironmentOption: (userValue: string) => string;
1
2
  export declare const checkEnvironmentOption: (userValue: string) => string;
2
3
  //# sourceMappingURL=environment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/command-line/environment.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,sBAAsB,cAAe,MAAM,KAAG,MAE1D,CAAC"}
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/command-line/environment.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,yBAAyB,cAAe,MAAM,KAAG,MAK7D,CAAC;AAEF,eAAO,MAAM,sBAAsB,cAAe,MAAM,KAAG,MAE1D,CAAC"}
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkEnvironmentOption = void 0;
3
+ exports.checkEnvironmentOption = exports.validateEnvironmentOption = void 0;
4
4
  const cli_shared_1 = require("@forge/cli-shared");
5
- const cli_shared_2 = require("@forge/cli-shared");
6
- const cli_shared_3 = require("@forge/cli-shared");
7
- function validateEnvironmentOption(userValue) {
8
- if (!cli_shared_1.VALID_ENVIRONMENT_OPTIONS.includes(userValue)) {
9
- throw new cli_shared_3.ValidationError(cli_shared_2.Text.env.invalid(cli_shared_1.VALID_ENVIRONMENT_OPTIONS));
5
+ const ENVIRONMENT_KEY_PATTERN = /^[a-zA-Z0-9-_]+$/;
6
+ const validateEnvironmentOption = (userValue) => {
7
+ if (!ENVIRONMENT_KEY_PATTERN.test(userValue)) {
8
+ throw new cli_shared_1.ValidationError(cli_shared_1.Text.env.invalid);
10
9
  }
11
10
  return userValue;
12
- }
11
+ };
12
+ exports.validateEnvironmentOption = validateEnvironmentOption;
13
13
  const checkEnvironmentOption = (userValue) => {
14
- return (0, cli_shared_1.optionToEnvironment)(validateEnvironmentOption(userValue));
14
+ return (0, cli_shared_1.optionToEnvironment)((0, exports.validateEnvironmentOption)(userValue));
15
15
  };
16
16
  exports.checkEnvironmentOption = checkEnvironmentOption;
@@ -1 +1 @@
1
- {"version":3,"file":"register-app-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-app-commands.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAqB,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG/G,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAsBtD,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAY7E;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,aAAa,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,MAAM,EACZ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,2BAA2B,GACnD,OAAO,CAAC,sBAAsB,CAAC,CAwFjC;AA0CD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,QAGlD"}
1
+ {"version":3,"file":"register-app-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-app-commands.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EAEtB,aAAa,EACb,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAqBtD,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAY7E;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,aAAa,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,MAAM,EACZ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,2BAA2B,GACnD,OAAO,CAAC,sBAAsB,CAAC,CAwFjC;AA0CD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,QAGlD"}
@@ -15,12 +15,12 @@ var TemplateCategory;
15
15
  })(TemplateCategory || (TemplateCategory = {}));
16
16
  function ensureDirectoryDoesntExist(directory) {
17
17
  if (fs_1.default.existsSync(directory)) {
18
- throw new cli_shared_1.ValidationError(cli_shared_1.Text.create.error.directory.exists(directory));
18
+ throw new cli_shared_2.ValidationError(cli_shared_2.Text.create.error.directory.exists(directory));
19
19
  }
20
20
  }
21
21
  function ensureValidNameLength(name) {
22
22
  if (name.length <= 0 || name.length > 50) {
23
- throw new cli_shared_1.ValidationError(cli_shared_1.Text.create.error.name.tooLong());
23
+ throw new cli_shared_2.ValidationError(cli_shared_2.Text.create.error.name.tooLong());
24
24
  }
25
25
  }
26
26
  function directoryNameFromAppName(appName) {
@@ -36,7 +36,7 @@ exports.directoryNameFromAppName = directoryNameFromAppName;
36
36
  async function createCommandHandler(ui, createAppCommand, name, { template, directory }) {
37
37
  if (directory) {
38
38
  ensureDirectoryDoesntExist(directory);
39
- ui.info(cli_shared_1.Text.create.intro(directory));
39
+ ui.info(cli_shared_2.Text.create.intro(directory));
40
40
  }
41
41
  else {
42
42
  directory = directoryNameFromAppName(name) || template;
@@ -44,12 +44,12 @@ async function createCommandHandler(ui, createAppCommand, name, { template, dire
44
44
  ensureDirectoryDoesntExist(directory);
45
45
  }
46
46
  const currentDirectory = process.cwd();
47
- ui.info(cli_shared_1.Text.create.introWithCurrentDirectory(currentDirectory));
47
+ ui.info(cli_shared_2.Text.create.introWithCurrentDirectory(currentDirectory));
48
48
  }
49
- ui.info(cli_shared_1.Text.ctrlC);
49
+ ui.info(cli_shared_2.Text.ctrlC);
50
50
  if (!name) {
51
- ui.info(cli_shared_1.Text.create.overviewAppName);
52
- name = await ui.promptForText(cli_shared_1.Text.create.promptName);
51
+ ui.info(cli_shared_2.Text.create.overviewAppName);
52
+ name = await ui.promptForText(cli_shared_2.Text.create.promptName);
53
53
  if (!directory) {
54
54
  directory = directoryNameFromAppName(name) || template;
55
55
  if (directory) {
@@ -59,9 +59,9 @@ async function createCommandHandler(ui, createAppCommand, name, { template, dire
59
59
  }
60
60
  ensureValidNameLength(name);
61
61
  if (!template) {
62
- ui.info(cli_shared_1.Text.create.overviewTemplates);
63
- const templates = await ui.displayTemporaryMessage(() => createAppCommand.getAvailableTemplates(), cli_shared_1.Text.create.waitTemplates);
64
- const type = await ui.promptForList(cli_shared_1.Text.create.promptCategory, Object.values(TemplateCategory));
62
+ ui.info(cli_shared_2.Text.create.overviewTemplates);
63
+ const templates = await ui.displayTemporaryMessage(() => createAppCommand.getAvailableTemplates(), cli_shared_2.Text.create.waitTemplates);
64
+ const type = await ui.promptForList(cli_shared_2.Text.create.promptCategory, Object.values(TemplateCategory));
65
65
  const filteredTemplates = type === TemplateCategory.SHOW_ALL
66
66
  ? templates
67
67
  : templates
@@ -76,7 +76,7 @@ async function createCommandHandler(ui, createAppCommand, name, { template, dire
76
76
  }
77
77
  })
78
78
  .map((name) => name.replace('-ui-kit', '').replace('-custom-ui', ''));
79
- template = await ui.promptForList(cli_shared_1.Text.create.promptTemplate, filteredTemplates);
79
+ template = await ui.promptForList(cli_shared_2.Text.create.promptTemplate, filteredTemplates);
80
80
  if (type === TemplateCategory.UI_KIT) {
81
81
  template = `${template}-ui-kit`;
82
82
  }
@@ -91,35 +91,35 @@ async function createCommandHandler(ui, createAppCommand, name, { template, dire
91
91
  ui.emptyLine();
92
92
  directory = directory;
93
93
  const args = { name, template, directory };
94
- const result = await ui.displayProgress(() => createAppCommand.execute(args), cli_shared_1.Text.create.cmd.start, cli_shared_1.Text.create.cmd.success(name));
95
- ui.info(cli_shared_1.Text.create.cmd.successDetails(directory, cli_shared_2.VALID_ENVIRONMENT_OPTIONS));
94
+ const result = await ui.displayProgress(() => createAppCommand.execute(args), cli_shared_2.Text.create.cmd.start, cli_shared_2.Text.create.cmd.success(name));
95
+ ui.info(cli_shared_2.Text.create.cmd.successDetails(directory, result.environments, cli_shared_1.environmentToOption));
96
96
  return result;
97
97
  }
98
98
  exports.createCommandHandler = createCommandHandler;
99
99
  function registerCreateCommands({ cmd, ui, commands: { createAppCommand } }) {
100
100
  cmd
101
101
  .command('create [name]')
102
- .description(cli_shared_1.Text.create.cmd.desc)
103
- .option('-t, --template <template name>', cli_shared_1.Text.create.optionTemplate)
104
- .option('-d, --directory <directory name>', cli_shared_1.Text.create.optionDirectory)
102
+ .description(cli_shared_2.Text.create.cmd.desc)
103
+ .option('-t, --template <template name>', cli_shared_2.Text.create.optionTemplate)
104
+ .option('-d, --directory <directory name>', cli_shared_2.Text.create.optionDirectory)
105
105
  .action((name, options) => createCommandHandler(ui, createAppCommand, name, options));
106
106
  }
107
107
  function registerRegisterCommand({ cmd, ui, commands: { registerAppCommand } }) {
108
108
  cmd
109
109
  .command('register [name]')
110
- .description(cli_shared_1.Text.register.cmd.desc)
110
+ .description(cli_shared_2.Text.register.cmd.desc)
111
111
  .requireManifestFile()
112
112
  .action(async (name) => {
113
- ui.info(cli_shared_1.Text.register.intro);
114
- ui.info(cli_shared_1.Text.ctrlC);
113
+ ui.info(cli_shared_2.Text.register.intro);
114
+ ui.info(cli_shared_2.Text.ctrlC);
115
115
  ui.emptyLine();
116
116
  if (!name) {
117
- ui.info(cli_shared_1.Text.create.overviewAppName);
118
- name = await ui.promptForText(cli_shared_1.Text.create.promptName);
117
+ ui.info(cli_shared_2.Text.create.overviewAppName);
118
+ name = await ui.promptForText(cli_shared_2.Text.create.promptName);
119
119
  ui.emptyLine();
120
120
  }
121
- const result = await ui.displayProgress(() => registerAppCommand.execute({ name }), cli_shared_1.Text.register.cmd.start, cli_shared_1.Text.register.cmd.success(name));
122
- ui.info(cli_shared_1.Text.register.cmd.successDetails(cli_shared_2.VALID_ENVIRONMENT_OPTIONS));
121
+ const result = await ui.displayProgress(() => registerAppCommand.execute({ name }), cli_shared_2.Text.register.cmd.start, cli_shared_2.Text.register.cmd.success(name));
122
+ ui.info(cli_shared_2.Text.register.cmd.successDetails(result.environments, cli_shared_1.environmentToOption));
123
123
  return result;
124
124
  });
125
125
  }
@@ -1,6 +1,8 @@
1
- import { CommandLineUI } from '@forge/cli-shared';
1
+ import { UI } from '@forge/cli-shared';
2
2
  import { Dependencies } from './dependency-injection';
3
3
  import { CreateEnvironmentCommand } from '../environment/create-environment';
4
- export declare const createEnvironmentHandler: (ui: CommandLineUI, createEnvironmentCommand: CreateEnvironmentCommand, environmentKey?: string) => Promise<void>;
4
+ import { ListEnvironmentCommand } from '../environment/list-environment';
5
+ export declare const createEnvironmentHandler: (ui: UI, createEnvironmentCommand: CreateEnvironmentCommand, listEnvironmentCommand: ListEnvironmentCommand, environmentKey?: string) => Promise<void>;
6
+ export declare const listEnvironmentHandler: (ui: UI, listEnvironmentCommand: ListEnvironmentCommand) => Promise<void>;
5
7
  export declare const registerCommands: (deps: Dependencies) => void;
6
8
  //# 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,EAAE,aAAa,EAAQ,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAI7E,eAAO,MAAM,wBAAwB,OAC/B,aAAa,4BACS,wBAAwB,mBACjC,MAAM,kBAmBxB,CAAC;AAiBF,eAAO,MAAM,gBAAgB,SAAU,YAAY,KAAG,IAKrD,CAAC"}
1
+ {"version":3,"file":"register-environment-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-environment-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAQ,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAIzE,eAAO,MAAM,wBAAwB,OAC/B,EAAE,4BACoB,wBAAwB,0BAC1B,sBAAsB,mBAC7B,MAAM,kBAmBxB,CAAC;AAEF,eAAO,MAAM,sBAAsB,OAAc,EAAE,0BAA0B,sBAAsB,kBA8BlG,CAAC;AA8BF,eAAO,MAAM,gBAAgB,SAAU,YAAY,KAAG,IAMrD,CAAC"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerCommands = exports.createEnvironmentHandler = void 0;
3
+ exports.registerCommands = exports.listEnvironmentHandler = exports.createEnvironmentHandler = void 0;
4
4
  const cli_shared_1 = require("@forge/cli-shared");
5
5
  const COMMAND_NAME = 'environment';
6
- const createEnvironmentHandler = async (ui, createEnvironmentCommand, environmentKey) => {
6
+ const createEnvironmentHandler = async (ui, createEnvironmentCommand, listEnvironmentCommand, environmentKey) => {
7
7
  ui.info(cli_shared_1.Text.createEnvironment.overview);
8
8
  ui.emptyLine();
9
9
  if (!environmentKey) {
@@ -16,7 +16,32 @@ const createEnvironmentHandler = async (ui, createEnvironmentCommand, environmen
16
16
  ui.info(cli_shared_1.Text.createEnvironment.successMessage);
17
17
  };
18
18
  exports.createEnvironmentHandler = createEnvironmentHandler;
19
- const registerCreateEnvironmentCommand = (parent, { ui, commands: { createEnvironmentCommand } }) => {
19
+ const listEnvironmentHandler = async (ui, listEnvironmentCommand) => {
20
+ const envOrder = {
21
+ PRODUCTION: 1,
22
+ STAGING: 2,
23
+ DEVELOPMENT: 3
24
+ };
25
+ const environments = (await listEnvironmentCommand.execute()).sort((a, b) => a.type === b.type ? Number(a.lastDeployedAt) - Number(b.lastDeployedAt) : envOrder[a.type] - envOrder[b.type]);
26
+ ui.table([
27
+ ['type', 'Type'],
28
+ ['name', 'Name'],
29
+ ['lastDeployedAt', 'Last deployed at']
30
+ ], environments.map(({ type, key: name, lastDeployedAt }) => {
31
+ return {
32
+ type,
33
+ name,
34
+ lastDeployedAt
35
+ };
36
+ }), {
37
+ preMessage: cli_shared_1.Text.listEnvironment.overview,
38
+ format: {
39
+ lastDeployedAt: (value) => new Date(Number(value)).toISOString()
40
+ }
41
+ });
42
+ };
43
+ exports.listEnvironmentHandler = listEnvironmentHandler;
44
+ const registerCreateEnvironmentCommand = (parent, { ui, commands: { createEnvironmentCommand, listEnvironmentCommand } }) => {
20
45
  parent
21
46
  .command('create')
22
47
  .requireAppId()
@@ -24,12 +49,22 @@ const registerCreateEnvironmentCommand = (parent, { ui, commands: { createEnviro
24
49
  .option('-e, --environment [environment]', cli_shared_1.Text.createEnvironment.optionEnvironmentKey)
25
50
  .nonInteractiveOption('--environment')
26
51
  .action(async ({ environment }) => {
27
- await (0, exports.createEnvironmentHandler)(ui, createEnvironmentCommand, environment);
52
+ await (0, exports.createEnvironmentHandler)(ui, createEnvironmentCommand, listEnvironmentCommand, environment);
53
+ });
54
+ };
55
+ const registerListEnvironmentCommand = (parent, { ui, commands: { listEnvironmentCommand } }) => {
56
+ parent
57
+ .command('list')
58
+ .requireAppId()
59
+ .description(cli_shared_1.Text.listEnvironment.cmd.desc)
60
+ .action(async () => {
61
+ await (0, exports.listEnvironmentHandler)(ui, listEnvironmentCommand);
28
62
  });
29
63
  };
30
64
  const registerCommands = (deps) => {
31
65
  const { cmd } = deps;
32
66
  const environment = cmd.command(COMMAND_NAME).description(cli_shared_1.Text.environment.desc);
33
67
  registerCreateEnvironmentCommand(environment, deps);
68
+ registerListEnvironmentCommand(environment, deps);
34
69
  };
35
70
  exports.registerCommands = registerCommands;
@@ -1 +1 @@
1
- {"version":3,"file":"register-tunnel-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-tunnel-commands.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,eAAO,MAAM,gBAAgB,mDAAoD,YAAY,KAAG,IAS/F,CAAC"}
1
+ {"version":3,"file":"register-tunnel-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-tunnel-commands.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,eAAO,MAAM,gBAAgB,mDAAoD,YAAY,KAAG,IAU/F,CAAC"}
@@ -7,6 +7,7 @@ const registerCommands = ({ cmd, ui, controllers: { tunnelController } }) => {
7
7
  .command('tunnel')
8
8
  .requireAppId()
9
9
  .description(cli_shared_1.Text.tunnel.cmd)
10
+ .environmentOption()
10
11
  .option('-d, --debug', cli_shared_1.Text.tunnel.optionDebugger)
11
12
  .action(async (options) => {
12
13
  await tunnelController.run(options, ui);
@@ -1,4 +1,4 @@
1
- import { UI } from '@forge/cli-shared';
1
+ import { AppEnvironmentDetails, UI } from '@forge/cli-shared';
2
2
  import { LintResult } from '@forge/lint';
3
3
  import { DeploymentResult } from '../register-deployment-commands';
4
4
  export declare class DeployView {
@@ -16,6 +16,6 @@ export declare class DeployView {
16
16
  displayMPACAppConnectKeyChangeError(mpacAppKey: string, connectKey: string): void;
17
17
  promptToContinueDeletingConnectKey(): Promise<boolean>;
18
18
  promptToContinueChangingConnectKey(): Promise<boolean>;
19
- reportDeploymentProgress(id: string, environment: string, showDistributionPageLink: boolean, deployCallback: () => Promise<DeploymentResult>): Promise<DeploymentResult>;
19
+ reportDeploymentProgress({ appAri, name, environmentKey, environmentType }: AppEnvironmentDetails, showDistributionPageLink: boolean, deployCallback: () => Promise<DeploymentResult>): Promise<DeploymentResult>;
20
20
  }
21
21
  //# sourceMappingURL=deploy-view.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-view.d.ts","sourceRoot":"","sources":["../../../src/command-line/view/deploy-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAuC,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAqB,UAAU,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAE5B,SAAS,IAAI,EAAE;IAIf,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAIvC,kBAAkB,IAAI,IAAI;IAI1B,mCAAmC,IAAI,IAAI;IAK3C,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI;IAKlD,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI3C,qBAAqB,IAAI,IAAI;IAI7B,8BAA8B,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAInG,8BAA8B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAIzD,mCAAmC,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAI3E,kCAAkC,IAAI,OAAO,CAAC,OAAO,CAAC;IAItD,kCAAkC,IAAI,OAAO,CAAC,OAAO,CAAC;IAItD,wBAAwB,CACnC,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,EACnB,wBAAwB,EAAE,OAAO,EACjC,cAAc,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAC9C,OAAO,CAAC,gBAAgB,CAAC;CAY7B"}
1
+ {"version":3,"file":"deploy-view.d.ts","sourceRoot":"","sources":["../../../src/command-line/view/deploy-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAA2D,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvH,OAAO,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAE5B,SAAS,IAAI,EAAE;IAIf,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAIvC,kBAAkB,IAAI,IAAI;IAI1B,mCAAmC,IAAI,IAAI;IAK3C,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI;IAKlD,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI3C,qBAAqB,IAAI,IAAI;IAI7B,8BAA8B,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAInG,8BAA8B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAIzD,mCAAmC,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAI3E,kCAAkC,IAAI,OAAO,CAAC,OAAO,CAAC;IAItD,kCAAkC,IAAI,OAAO,CAAC,OAAO,CAAC;IAItD,wBAAwB,CACnC,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,qBAAqB,EACxE,wBAAwB,EAAE,OAAO,EACjC,cAAc,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAC9C,OAAO,CAAC,gBAAgB,CAAC;CAY7B"}
@@ -46,11 +46,11 @@ class DeployView {
46
46
  async promptToContinueChangingConnectKey() {
47
47
  return await this.ui.confirm(cli_shared_1.Text.deploy.connectKeyChange.continueChange);
48
48
  }
49
- async reportDeploymentProgress(id, environment, showDistributionPageLink, deployCallback) {
50
- const result = await this.ui.displayProgress(() => deployCallback(), cli_shared_1.Text.deploy.cmd.start2(environment, cli_shared_1.environmentToOption), cli_shared_1.Text.deploy.cmd.success);
51
- this.ui.info(cli_shared_1.Text.deploy.cmd.successDetails(environment, cli_shared_1.environmentToOption));
52
- if (environment === 'production' && showDistributionPageLink) {
53
- this.ui.info(cli_shared_1.Text.deploy.cmd.distributePageLink((0, cs_ari_1.parseAppAri)((0, cs_ari_1.parse)(id)).appId));
49
+ async reportDeploymentProgress({ appAri, name, environmentKey, environmentType }, showDistributionPageLink, deployCallback) {
50
+ const result = await this.ui.displayProgress(() => deployCallback(), cli_shared_1.Text.deploy.cmd.start2(name, environmentKey, environmentType, cli_shared_1.environmentToOption), cli_shared_1.Text.deploy.cmd.success);
51
+ this.ui.info(cli_shared_1.Text.deploy.cmd.successDetails(name, environmentKey, environmentType, cli_shared_1.environmentToOption));
52
+ if (environmentType === cli_shared_1.AppEnvironmentType.Production && showDistributionPageLink) {
53
+ this.ui.info(cli_shared_1.Text.deploy.cmd.distributePageLink((0, cs_ari_1.parseAppAri)((0, cs_ari_1.parse)(appAri)).appId));
54
54
  }
55
55
  return result;
56
56
  }
@@ -11,7 +11,7 @@ export declare class TunnelViewError extends UserError {
11
11
  export declare class TunnelView {
12
12
  private readonly ui;
13
13
  constructor(ui: CommandLineUI);
14
- dockerPreamble(): void;
14
+ dockerPreamble(environmentKey?: string): void;
15
15
  getTunnelErrorHandler(exitFn: typeof exitOnError): (err: Error) => Promise<void>;
16
16
  updatePullPercent(dataBuffer: Buffer, dockerPullPercent: number): number;
17
17
  calculateProgress(progress: string, regex: RegExp, dockerPullPercent: number, clamp: number): number;
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel-view.d.ts","sourceRoot":"","sources":["../../../src/command-line/view/tunnel-view.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAkB,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1F,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,IAAI,IAAI;IAMtB,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"}
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,EAGX,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;IAW7C,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"}
@@ -11,8 +11,13 @@ class TunnelView {
11
11
  constructor(ui) {
12
12
  this.ui = ui;
13
13
  }
14
- dockerPreamble() {
14
+ dockerPreamble(environmentKey) {
15
15
  this.ui.info(cli_shared_1.Text.tunnel.preamble);
16
+ if (environmentKey && environmentKey !== cli_shared_1.DEFAULT_ENVIRONMENT_KEY) {
17
+ this.ui.emptyLine();
18
+ this.ui.info(cli_shared_1.Text.tunnel.startingTunnel(environmentKey, cli_shared_1.environmentToOption));
19
+ this.ui.emptyLine();
20
+ }
16
21
  this.ui.info(cli_shared_1.Text.ctrlC);
17
22
  this.ui.emptyLine();
18
23
  }
@@ -1,8 +1,16 @@
1
- import { GraphQLClient } from '@forge/cli-shared';
1
+ import { AppEnvironmentType, GraphQLClient, UserError } from '@forge/cli-shared';
2
2
  import { AppEnvironmentDetails, CreateEnvironmentClient } from './create-environment';
3
- export declare class GraphqlClient implements CreateEnvironmentClient {
3
+ import { ListEnvironmentClient, ListEnvironmentDetails } from './list-environment';
4
+ export declare class MissingAppError extends UserError {
5
+ }
6
+ export declare class GraphqlClient implements CreateEnvironmentClient, ListEnvironmentClient {
4
7
  private readonly graphqlClient;
5
8
  constructor(graphqlClient: GraphQLClient);
6
9
  createEnvironment(details: AppEnvironmentDetails): Promise<void>;
10
+ listEnvironment(details: ListEnvironmentDetails): Promise<{
11
+ type: AppEnvironmentType;
12
+ key: string;
13
+ lastDeployedAt: string;
14
+ }[]>;
7
15
  }
8
16
  //# 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,EAIL,aAAa,EAEd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEtF,qBAAa,aAAc,YAAW,uBAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,iBAAiB,CAAC,OAAO,EAAE,qBAAqB;CA+C9D"}
1
+ {"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/environment/graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAGlB,aAAa,EAGb,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;AAEnF,qBAAa,eAAgB,SAAQ,SAAS;CAAG;AAEjD,qBAAa,aAAc,YAAW,uBAAuB,EAAE,qBAAqB;IACtE,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,iBAAiB,CAAC,OAAO,EAAE,qBAAqB;IAgDhD,eAAe,CAAC,OAAO,EAAE,sBAAsB;;;;;CAkC7D"}
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GraphqlClient = void 0;
3
+ exports.GraphqlClient = exports.MissingAppError = void 0;
4
4
  const cli_shared_1 = require("@forge/cli-shared");
5
+ class MissingAppError extends cli_shared_1.UserError {
6
+ }
7
+ exports.MissingAppError = MissingAppError;
5
8
  class GraphqlClient {
6
9
  constructor(graphqlClient) {
7
10
  this.graphqlClient = graphqlClient;
@@ -43,5 +46,37 @@ class GraphqlClient {
43
46
  });
44
47
  }
45
48
  }
49
+ async listEnvironment(details) {
50
+ const query = `
51
+ query forge_cli_listEnvironment($id: ID!) {
52
+ app(id: $id) {
53
+ environments {
54
+ key
55
+ type
56
+ createdAt
57
+ versions(first: 1) {
58
+ nodes {
59
+ updatedAt
60
+ }
61
+ }
62
+ }
63
+ }
64
+ }
65
+ `;
66
+ const { app } = await this.graphqlClient.query(query, {
67
+ id: details.appId
68
+ });
69
+ if (!app) {
70
+ throw new MissingAppError();
71
+ }
72
+ return app.environments.map((environment) => {
73
+ var _a, _b, _c;
74
+ return {
75
+ type: environment.type,
76
+ key: environment.key,
77
+ lastDeployedAt: ((_c = (_b = (_a = environment.versions) === null || _a === void 0 ? void 0 : _a.nodes) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.updatedAt) || environment.createdAt
78
+ };
79
+ });
80
+ }
46
81
  }
47
82
  exports.GraphqlClient = GraphqlClient;
@@ -0,0 +1,17 @@
1
+ import { AppConfigProvider, AppEnvironment } from '@forge/cli-shared';
2
+ export interface ListEnvironmentDetails {
3
+ appId: string;
4
+ }
5
+ export interface ListEnvironmentOutput extends Pick<AppEnvironment, 'key' | 'type'> {
6
+ lastDeployedAt: string;
7
+ }
8
+ export interface ListEnvironmentClient {
9
+ listEnvironment(details: ListEnvironmentDetails): Promise<ListEnvironmentOutput[]>;
10
+ }
11
+ export declare class ListEnvironmentCommand {
12
+ private readonly client;
13
+ private readonly getAppConfig;
14
+ constructor(client: ListEnvironmentClient, getAppConfig: AppConfigProvider);
15
+ execute(): Promise<ListEnvironmentOutput[]>;
16
+ }
17
+ //# sourceMappingURL=list-environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-environment.d.ts","sourceRoot":"","sources":["../../src/environment/list-environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtE,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,MAAM,CAAC;IACjF,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;CACpF;AAED,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAyB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAA5D,MAAM,EAAE,qBAAqB,EAAmB,YAAY,EAAE,iBAAiB;IAE/F,OAAO;CAMrB"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ListEnvironmentCommand = void 0;
4
+ class ListEnvironmentCommand {
5
+ constructor(client, getAppConfig) {
6
+ this.client = client;
7
+ this.getAppConfig = getAppConfig;
8
+ }
9
+ async execute() {
10
+ const { id: appId } = await this.getAppConfig();
11
+ return this.client.listEnvironment({
12
+ appId
13
+ });
14
+ }
15
+ }
16
+ exports.ListEnvironmentCommand = ListEnvironmentCommand;
@@ -1,6 +1,6 @@
1
- import { AppEnvironment, AppUninstallationInput, GraphQLClient, GraphQlMutationError, Pause, BaseError, UserError } from '@forge/cli-shared';
1
+ import { AppUninstallationInput, GraphQLClient, GraphQlMutationError, Pause, BaseError, UserError } from '@forge/cli-shared';
2
2
  import { AppInstallSiteDetails, InstallAppClient } from './install-app-site';
3
- import { Installation, ListAppInstallationsClient, UpgradeAppInstallationsClient } from '../service/installation-service';
3
+ import { AppEnvironmentVersionData, Installation, ListAppInstallationsClient, UpgradeAppInstallationsClient } from '../service/installation-service';
4
4
  import { UninstallAppClient, UninstallAppOutput } from './uninstall-app';
5
5
  import { SiteTranslator } from './site-translation';
6
6
  export declare const UNINSTALLATION_EVENT_POLL_INTERVAL = 500;
@@ -25,7 +25,8 @@ export declare class UpgradeError extends GraphQlMutationError {
25
25
  statusCode: number | undefined;
26
26
  });
27
27
  }
28
- export declare class EnvironmentNotFoundError extends Error {
28
+ export declare class EnvironmentNotFoundError extends UserError {
29
+ constructor(environmentKey: string);
29
30
  }
30
31
  export declare class MissingTaskIdError extends Error {
31
32
  }
@@ -70,6 +71,6 @@ export declare class InstallationsGraphqlClient implements InstallAppClient, Lis
70
71
  private getCombinedHostnameMap;
71
72
  private resolveInstallationsHostnames;
72
73
  private getAllInstallations;
73
- getVersions(appId: string, environmentKey: string, firstN?: number): Promise<AppEnvironment['versions']>;
74
+ getVersions(appId: string, environmentKey: string, firstN?: number): Promise<AppEnvironmentVersionData>;
74
75
  }
75
76
  //# sourceMappingURL=graphql-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/installations/graphql-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/installations/graphql-client.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,10 @@ class UpgradeError extends cli_shared_1.GraphQlMutationError {
35
35
  }
36
36
  }
37
37
  exports.UpgradeError = UpgradeError;
38
- class EnvironmentNotFoundError extends Error {
38
+ class EnvironmentNotFoundError extends cli_shared_1.UserError {
39
+ constructor(environmentKey) {
40
+ super(cli_shared_1.Text.env.error.envNotExist(environmentKey, cli_shared_1.environmentToOption));
41
+ }
39
42
  }
40
43
  exports.EnvironmentNotFoundError = EnvironmentNotFoundError;
41
44
  class MissingTaskIdError extends Error {
@@ -314,12 +317,13 @@ class InstallationsGraphqlClient {
314
317
  });
315
318
  const combinedAriToHostname = await this.getCombinedHostnameMap(installationContexts);
316
319
  return installationContexts.map((context, i) => {
317
- const { environment, installation } = installations[i];
320
+ const { environment, environmentType, installation } = installations[i];
318
321
  const site = combinedAriToHostname[context.toString()];
319
322
  return {
320
323
  id: installation.id,
321
324
  product: context.resourceOwner,
322
325
  environmentKey: environment,
326
+ environmentType,
323
327
  context: installation.installationContext,
324
328
  site,
325
329
  version: installation.version || {
@@ -342,6 +346,7 @@ class InstallationsGraphqlClient {
342
346
  }
343
347
  appEnvironment {
344
348
  key
349
+ type
345
350
  }
346
351
  }
347
352
  pageInfo {
@@ -376,6 +381,7 @@ class InstallationsGraphqlClient {
376
381
  }
377
382
  output.push({
378
383
  environment: node.appEnvironment.key,
384
+ environmentType: node.appEnvironment.type,
379
385
  installation: node
380
386
  });
381
387
  }
@@ -386,10 +392,12 @@ class InstallationsGraphqlClient {
386
392
  return output;
387
393
  }
388
394
  async getVersions(appId, environmentKey, firstN = 1) {
395
+ var _a;
389
396
  const query = `
390
397
  query forge_cli_getApplicationEnvironmentLatestVersions($appId: ID!, $environmentKey: String!, $firstN: Int!) {
391
398
  app(id: $appId) {
392
399
  environmentByKey(key: $environmentKey) {
400
+ type
393
401
  versions(first: $firstN) {
394
402
  nodes {
395
403
  permissions {
@@ -415,9 +423,12 @@ class InstallationsGraphqlClient {
415
423
  throw new MissingAppError();
416
424
  }
417
425
  if (!result.app.environmentByKey) {
418
- throw new EnvironmentNotFoundError();
426
+ throw new EnvironmentNotFoundError(environmentKey);
419
427
  }
420
- return result.app.environmentByKey.versions;
428
+ return {
429
+ nodes: (_a = result.app.environmentByKey.versions) === null || _a === void 0 ? void 0 : _a.nodes,
430
+ environmentType: result.app.environmentByKey.type
431
+ };
421
432
  }
422
433
  }
423
434
  exports.InstallationsGraphqlClient = InstallationsGraphqlClient;
@@ -39,7 +39,7 @@ class GraphqlClient {
39
39
  throw new cli_shared_1.MissingAppError();
40
40
  }
41
41
  if (!result.app.environmentByKey) {
42
- throw new cli_shared_1.MissingAppEnvironmentError();
42
+ throw new cli_shared_1.MissingAppEnvironmentError(environmentKey);
43
43
  }
44
44
  const mpacAppKey = (_a = result.app.marketplaceApp) === null || _a === void 0 ? void 0 : _a.appKey;
45
45
  const versions = result.app.environmentByKey.versions;