@forge/cli 6.10.0 → 6.11.0-next.14

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 (35) hide show
  1. package/CHANGELOG.md +151 -0
  2. package/npm-shrinkwrap.json +114 -111
  3. package/out/command-line/controller/deploy-controller.d.ts.map +1 -1
  4. package/out/command-line/controller/deploy-controller.js +1 -0
  5. package/out/command-line/controller/prerequisites-controller.d.ts +2 -2
  6. package/out/command-line/controller/prerequisites-controller.d.ts.map +1 -1
  7. package/out/command-line/controller/prerequisites-controller.js +12 -7
  8. package/out/command-line/controller/settings-controller.d.ts +12 -11
  9. package/out/command-line/controller/settings-controller.d.ts.map +1 -1
  10. package/out/command-line/controller/settings-controller.js +80 -24
  11. package/out/command-line/dependency-injection.d.ts.map +1 -1
  12. package/out/command-line/dependency-injection.js +3 -3
  13. package/out/command-line/environment.d.ts +1 -0
  14. package/out/command-line/environment.d.ts.map +1 -1
  15. package/out/command-line/environment.js +8 -1
  16. package/out/command-line/index.d.ts +1 -1
  17. package/out/command-line/index.d.ts.map +1 -1
  18. package/out/command-line/index.js +8 -6
  19. package/out/command-line/register-app-commands.d.ts +2 -2
  20. package/out/command-line/register-app-commands.d.ts.map +1 -1
  21. package/out/command-line/register-app-commands.js +16 -6
  22. package/out/command-line/register-settings-commands.d.ts +1 -1
  23. package/out/command-line/register-settings-commands.d.ts.map +1 -1
  24. package/out/command-line/register-settings-commands.js +8 -8
  25. package/out/command-line/view/deploy-view.d.ts +1 -0
  26. package/out/command-line/view/deploy-view.d.ts.map +1 -1
  27. package/out/command-line/view/deploy-view.js +3 -0
  28. package/out/command-line/view/settings-view.d.ts +1 -1
  29. package/out/command-line/view/settings-view.d.ts.map +1 -1
  30. package/out/service/cached-config-service.d.ts +3 -0
  31. package/out/service/cached-config-service.d.ts.map +1 -1
  32. package/out/service/cached-config-service.js +13 -0
  33. package/out/service/tunnel-service.d.ts.map +1 -1
  34. package/out/service/tunnel-service.js +3 -1
  35. package/package.json +7 -7
@@ -1,19 +1,20 @@
1
1
  import { CachedConfigService } from '../../service/cached-config-service';
2
2
  import { SettingsView } from '../view/settings-view';
3
- export declare const ALLOWED_SETTINGS: readonly ["usage-analytics"];
4
- declare type AllowedSettingType = typeof ALLOWED_SETTINGS[number];
5
- declare type SettingGetter = () => boolean | undefined;
6
- declare type SettingSetter = (val: boolean) => void;
3
+ import { AppConfigProvider, FeatureFlagService } from '@forge/cli-shared';
7
4
  export declare class SettingsController {
8
5
  private readonly settingsView;
9
6
  private readonly cachedConfigService;
10
- constructor(settingsView: SettingsView, cachedConfigService: CachedConfigService);
11
- SETTINGS_MAP: {
12
- [key in AllowedSettingType]: [string, SettingGetter, SettingSetter];
13
- };
14
- showSettings(json?: boolean): void;
7
+ private readonly getAppConfig;
8
+ private readonly featureFlagService;
9
+ constructor(settingsView: SettingsView, cachedConfigService: CachedConfigService, getAppConfig: AppConfigProvider, featureFlagService: FeatureFlagService);
10
+ private SETTINGS_MAP;
11
+ private getAppId;
12
+ private validateAppManifest;
15
13
  private parseBoolean;
16
- setSettings(preference: unknown, value: string): void;
14
+ private isAllowedSetting;
15
+ private getSetting;
16
+ getPublicSettings(): Promise<string[]>;
17
+ showSettings(json?: boolean): Promise<void>;
18
+ setSetting(preference: string, value: string): Promise<void>;
17
19
  }
18
- export {};
19
20
  //# sourceMappingURL=settings-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/settings-controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,eAAO,MAAM,gBAAgB,8BAA+B,CAAC;AAE7D,aAAK,kBAAkB,GAAG,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAM1D,aAAK,aAAa,GAAG,MAAM,OAAO,GAAG,SAAS,CAAC;AAC/C,aAAK,aAAa,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;AAE5C,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAAgB,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBAAhE,YAAY,EAAE,YAAY,EAAmB,mBAAmB,EAAE,mBAAmB;IAElH,YAAY,EAAE;SAAG,GAAG,IAAI,kBAAkB,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC;KAAE,CAMnF;IAEK,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO;IAQlC,OAAO,CAAC,YAAY;IAWb,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;CAYtD"}
1
+ {"version":3,"file":"settings-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/settings-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,iBAAiB,EAEjB,kBAAkB,EAInB,MAAM,mBAAmB,CAAC;AAiB3B,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAHlB,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,iBAAiB,EAC/B,kBAAkB,EAAE,kBAAkB;IAGzD,OAAO,CAAC,YAAY,CA6BlB;YAEY,QAAQ;YAKR,mBAAmB;IAKjC,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,gBAAgB;YAIV,UAAU;IAWX,iBAAiB;IAWjB,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO;IAY3B,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAY1D"}
@@ -1,29 +1,52 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SettingsController = exports.ALLOWED_SETTINGS = void 0;
3
+ exports.SettingsController = void 0;
4
4
  const cli_shared_1 = require("@forge/cli-shared");
5
- exports.ALLOWED_SETTINGS = ['usage-analytics'];
6
- const isAllowedSetting = (arg) => {
7
- return exports.ALLOWED_SETTINGS.includes(arg);
8
- };
5
+ const manifest_1 = require("@forge/manifest");
6
+ const environment_1 = require("../environment");
7
+ const ALLOWED_SETTINGS = ['usage-analytics', 'default-environment'];
9
8
  class SettingsController {
10
- constructor(settingsView, cachedConfigService) {
9
+ constructor(settingsView, cachedConfigService, getAppConfig, featureFlagService) {
11
10
  this.settingsView = settingsView;
12
11
  this.cachedConfigService = cachedConfigService;
12
+ this.getAppConfig = getAppConfig;
13
+ this.featureFlagService = featureFlagService;
13
14
  this.SETTINGS_MAP = {
14
- 'usage-analytics': [
15
- cli_shared_1.Text.settings.usageAnalytics.description,
16
- () => this.cachedConfigService.getAnalyticsPreferences(),
17
- (value) => this.cachedConfigService.setAnalyticsPreferences(value)
18
- ]
15
+ 'usage-analytics': {
16
+ description: cli_shared_1.Text.settings.usageAnalytics.description,
17
+ get: () => this.cachedConfigService.getAnalyticsPreferences(),
18
+ set: (value) => {
19
+ const parsedValue = this.parseBoolean(value);
20
+ this.cachedConfigService.setAnalyticsPreferences(parsedValue);
21
+ },
22
+ display: (value) => value,
23
+ isAvailable: () => true
24
+ },
25
+ 'default-environment': {
26
+ description: cli_shared_1.Text.settings.defaultEnvironment.description,
27
+ get: async () => {
28
+ const appId = await this.getAppId();
29
+ const environment = this.cachedConfigService.getDefaultEnvironment(appId);
30
+ return environment ? (0, cli_shared_1.environmentToOption)(environment) : environment;
31
+ },
32
+ set: async (value) => {
33
+ (0, environment_1.validateDevEnvironment)(value);
34
+ const environment = (0, environment_1.checkEnvironmentOption)(value);
35
+ const appId = await this.getAppId();
36
+ this.cachedConfigService.setDefaultEnvironment(appId, environment);
37
+ },
38
+ display: (value) => cli_shared_1.Text.env.displayEnvironment(value, cli_shared_1.AppEnvironmentType.Development, cli_shared_1.environmentToOption),
39
+ isAvailable: async () => (await this.validateAppManifest()).success && (await this.featureFlagService.isConcurrentDevEnabled())
40
+ }
19
41
  };
20
42
  }
21
- showSettings(json) {
22
- const settings = exports.ALLOWED_SETTINGS.map((setting) => {
23
- const [desc, getSetting] = this.SETTINGS_MAP[setting];
24
- return [setting, desc, getSetting()];
25
- });
26
- this.settingsView.showSettings(settings, json);
43
+ async getAppId() {
44
+ const { id } = await this.getAppConfig();
45
+ return id;
46
+ }
47
+ async validateAppManifest() {
48
+ const fileValidator = new manifest_1.FileValidator();
49
+ return fileValidator.validate(manifest_1.MANIFEST_FILE);
27
50
  }
28
51
  parseBoolean(value) {
29
52
  switch (value) {
@@ -35,14 +58,47 @@ class SettingsController {
35
58
  throw new cli_shared_1.ValidationError(cli_shared_1.Text.settings.set.invalidValue);
36
59
  }
37
60
  }
38
- setSettings(preference, value) {
39
- if (!isAllowedSetting(preference)) {
40
- throw new cli_shared_1.ValidationError(cli_shared_1.Text.settings.set.invalidSetting(exports.ALLOWED_SETTINGS));
61
+ isAllowedSetting(preference) {
62
+ return ALLOWED_SETTINGS.includes(preference);
63
+ }
64
+ async getSetting(preference) {
65
+ if (!this.isAllowedSetting(preference)) {
66
+ return null;
67
+ }
68
+ const publicSettings = await this.getPublicSettings();
69
+ if (publicSettings.includes(preference)) {
70
+ return this.SETTINGS_MAP[preference];
71
+ }
72
+ return null;
73
+ }
74
+ async getPublicSettings() {
75
+ const settings = [];
76
+ for (const setting of ALLOWED_SETTINGS) {
77
+ if (await this.SETTINGS_MAP[setting].isAvailable()) {
78
+ settings.push(setting);
79
+ }
80
+ }
81
+ return settings;
82
+ }
83
+ async showSettings(json) {
84
+ const settings = [];
85
+ for (const settingName of ALLOWED_SETTINGS) {
86
+ const setting = await this.getSetting(settingName);
87
+ if (setting !== null) {
88
+ settings.push([settingName, setting.description, await setting.get()]);
89
+ }
90
+ }
91
+ this.settingsView.showSettings(settings, json);
92
+ }
93
+ async setSetting(preference, value) {
94
+ const setting = await this.getSetting(preference);
95
+ if (setting === null) {
96
+ const publicSettings = await this.getPublicSettings();
97
+ throw new cli_shared_1.ValidationError(cli_shared_1.Text.settings.set.invalidSetting(publicSettings));
41
98
  }
42
- const parsedValue = this.parseBoolean(value);
43
- const [, , setSetting] = this.SETTINGS_MAP[preference];
44
- setSetting(parsedValue);
45
- this.settingsView.setSuccess(preference, value);
99
+ await setting.set(value);
100
+ const displayValue = setting.display(value);
101
+ this.settingsView.setSuccess(preference, displayValue);
46
102
  }
47
103
  }
48
104
  exports.SettingsController = SettingsController;
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-injection.d.ts","sourceRoot":"","sources":["../../src/command-line/dependency-injection.ts"],"names":[],"mappings":"AAIA,OAAO,EASL,UAAU,EACV,aAAa,EAEb,UAAU,EAGV,gBAAgB,EAGhB,kBAAkB,EAUlB,YAAY,EACZ,aAAa,EAOb,kBAAkB,EAIlB,kBAAkB,EAEnB,MAAM,mBAAmB,CAAC;AAc3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EAML,0BAA0B,EAG3B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,gCAAgC,EAAE,MAAM,sDAAsD,CAAC;AAExG,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AACtG,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAIlG,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAGhF,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAM7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAQtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAIzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAWlE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAIhF,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,eAAO,MAAM,eAAe,eAAsB,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqTvE,CAAC;AAGF,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAC3D,oBAAY,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"dependency-injection.d.ts","sourceRoot":"","sources":["../../src/command-line/dependency-injection.ts"],"names":[],"mappings":"AAIA,OAAO,EASL,UAAU,EACV,aAAa,EAEb,UAAU,EAGV,gBAAgB,EAGhB,kBAAkB,EAUlB,YAAY,EACZ,aAAa,EAOb,kBAAkB,EAIlB,kBAAkB,EAEnB,MAAM,mBAAmB,CAAC;AAc3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EAML,0BAA0B,EAG3B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,gCAAgC,EAAE,MAAM,sDAAsD,CAAC;AAExG,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AACtG,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAIlG,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAGhF,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAM7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAQtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAIzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAWlE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAIhF,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,eAAO,MAAM,eAAe,eAAsB,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4TvE,CAAC;AAGF,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAC3D,oBAAY,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC"}
@@ -82,17 +82,17 @@ const getDependencies = async (cliDetails) => {
82
82
  const appConfigReader = (0, cli_shared_1.configFileReaderForSection)(cli_shared_1.appConfigKey, cli_shared_1.appConfigShape, configFile);
83
83
  const assertiveAppConfigReader = (0, cli_shared_1.assertiveAppConfigProvider)(appConfigReader);
84
84
  const appConfigWriter = (0, cli_shared_1.configFileWriterForSection)(cli_shared_1.appConfigKey, cli_shared_1.appConfigShape, configFile);
85
+ const credentialStore = (0, cli_shared_1.getCredentialStore)(ui);
86
+ const featureFlagService = new cli_shared_1.FeatureFlagService(ui, cliDetails, credentialStore, appConfigReader);
85
87
  const settingsView = new settings_view_1.SettingsView(ui);
86
- const settingsController = new settings_controller_1.SettingsController(settingsView, cachedConfigService);
88
+ const settingsController = new settings_controller_1.SettingsController(settingsView, cachedConfigService, assertiveAppConfigReader, featureFlagService);
87
89
  const liteLintView = new lite_lint_view_1.LiteLintView(ui);
88
90
  const liteLintService = new lite_lint_service_1.LiteLintService();
89
91
  const analyticsSettingsView = new analytics_settings_view_1.AnalyticsSettingsView(ui);
90
92
  const preCommandController = new pre_command_controller_1.PreCommandController(liteLintService, liteLintView, configFile, cachedConfigService, analyticsSettingsView, settingsView);
91
93
  const graphqlGateway = (0, cli_shared_1.getGraphqlGateway)();
92
- const credentialStore = (0, cli_shared_1.getCredentialStore)(ui);
93
94
  const authenticator = new cli_shared_1.PersonalTokenAuthenticator(credentialStore);
94
95
  cmd = command_1.Command.program(ui, analyticsClientReporter, preCommandController, cliDetails, credentialStore);
95
- const featureFlagService = new cli_shared_1.FeatureFlagService(ui, cliDetails, credentialStore, appConfigReader);
96
96
  await (0, sentry_1.initialiseSentry)(cachedConfigService);
97
97
  const createGraphQLClient = (auth) => {
98
98
  const minimalGraphQLRunner = new cli_shared_1.MinimalGraphQLRunner(auth, graphqlGateway, cliDetails);
@@ -1,3 +1,4 @@
1
1
  export declare const validateEnvironmentOption: (userValue: string) => string;
2
+ export declare const validateDevEnvironment: (userValue: string) => string;
2
3
  export declare const checkEnvironmentOption: (userValue: string) => string;
3
4
  //# sourceMappingURL=environment.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/command-line/environment.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,yBAAyB,cAAe,MAAM,KAAG,MAK7D,CAAC;AAEF,eAAO,MAAM,sBAAsB,cAAe,MAAM,KAAG,MAK1D,CAAC;AAEF,eAAO,MAAM,sBAAsB,cAAe,MAAM,KAAG,MAE1D,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkEnvironmentOption = exports.validateEnvironmentOption = void 0;
3
+ exports.checkEnvironmentOption = exports.validateDevEnvironment = exports.validateEnvironmentOption = void 0;
4
4
  const cli_shared_1 = require("@forge/cli-shared");
5
5
  const ENVIRONMENT_KEY_PATTERN = /^[a-zA-Z0-9-_]+$/;
6
6
  const validateEnvironmentOption = (userValue) => {
@@ -10,6 +10,13 @@ const validateEnvironmentOption = (userValue) => {
10
10
  return userValue;
11
11
  };
12
12
  exports.validateEnvironmentOption = validateEnvironmentOption;
13
+ const validateDevEnvironment = (userValue) => {
14
+ if ([cli_shared_1.STAGING_ENVIRONMENT_KEY, cli_shared_1.PRODUCTION_ENVIRONMENT_KEY].includes(userValue)) {
15
+ throw new cli_shared_1.ValidationError(cli_shared_1.Text.env.developmentOnly(userValue, cli_shared_1.environmentToOption));
16
+ }
17
+ return userValue;
18
+ };
19
+ exports.validateDevEnvironment = validateDevEnvironment;
13
20
  const checkEnvironmentOption = (userValue) => {
14
21
  return (0, cli_shared_1.optionToEnvironment)((0, exports.validateEnvironmentOption)(userValue));
15
22
  };
@@ -1,4 +1,4 @@
1
1
  import { Dependencies } from './dependency-injection';
2
- export declare function registerCommands(deps: Dependencies): void;
2
+ export declare function registerCommands(deps: Dependencies): Promise<void>;
3
3
  export declare const main: () => Promise<void>;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/command-line/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAoBvE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,QAelD;AAQD,eAAO,MAAM,IAAI,QAAa,QAAQ,IAAI,CAiBzC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/command-line/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAoBvE,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,YAAY,iBAexD;AAQD,eAAO,MAAM,IAAI,QAAa,QAAQ,IAAI,CAmBzC,CAAC"}
@@ -20,7 +20,7 @@ const register_providers_commands_1 = require("./register-providers-commands");
20
20
  const register_contributors_commands_1 = require("./register-contributors-commands");
21
21
  const register_environment_commands_1 = require("./register-environment-commands");
22
22
  const register_storage_commands_1 = require("./register-storage-commands");
23
- function registerCommands(deps) {
23
+ async function registerCommands(deps) {
24
24
  (0, register_autocomplete_commands_1.registerCommands)(deps);
25
25
  (0, register_authentication_command_1.registerCommands)(deps);
26
26
  (0, register_app_commands_1.registerCommands)(deps);
@@ -32,7 +32,7 @@ function registerCommands(deps) {
32
32
  (0, register_tunnel_commands_1.registerCommands)(deps);
33
33
  (0, register_webtrigger_commands_1.registerCommands)(deps);
34
34
  (0, register_feedback_commands_1.registerCommands)(deps);
35
- (0, register_settings_commands_1.registerCommands)(deps);
35
+ await (0, register_settings_commands_1.registerCommands)(deps);
36
36
  (0, register_providers_commands_1.registerCommands)(deps);
37
37
  (0, register_storage_commands_1.registerCommands)(deps);
38
38
  }
@@ -45,13 +45,15 @@ const registerEvents = ({ ui }) => {
45
45
  const main = async () => {
46
46
  const cliDetails = (0, version_info_1.getCLIDetails)();
47
47
  const deps = await (0, dependency_injection_1.getDependencies)(cliDetails);
48
- registerCommands(deps);
49
48
  registerEvents(deps);
50
- const { muaoEnabled, concurrentDevEnabled } = await deps.controllers.prerequisitesController.check();
51
- if (muaoEnabled) {
49
+ const [, featureFlags] = await Promise.all([
50
+ registerCommands(deps),
51
+ deps.controllers.prerequisitesController.check()
52
+ ]);
53
+ if (featureFlags.muaoEnabled) {
52
54
  (0, register_contributors_commands_1.registerCommands)(deps);
53
55
  }
54
- if (concurrentDevEnabled) {
56
+ if (featureFlags.concurrentDevEnabled) {
55
57
  (0, register_environment_commands_1.registerCommands)(deps);
56
58
  }
57
59
  await deps.cmd.parse(process.argv);
@@ -1,10 +1,10 @@
1
- import { CreateAppCommandResult, CommandLineUI, CreateAppCommand } from '@forge/cli-shared';
1
+ import { CreateAppCommandResult, CommandLineUI, CreateAppCommand, FeatureFlagService } from '@forge/cli-shared';
2
2
  import { Dependencies } from './dependency-injection';
3
3
  export declare function directoryNameFromAppName(appName?: string): string | undefined;
4
4
  export interface CreateCommandHandlerOptions {
5
5
  template?: string;
6
6
  directory?: string;
7
7
  }
8
- export declare function createCommandHandler(ui: CommandLineUI, createAppCommand: CreateAppCommand, name: string, { template, directory }: CreateCommandHandlerOptions): Promise<CreateAppCommandResult>;
8
+ export declare function createCommandHandler(ui: CommandLineUI, createAppCommand: CreateAppCommand, featureFlagService: FeatureFlagService, name: string, { template, directory }: CreateCommandHandlerOptions): Promise<CreateAppCommandResult>;
9
9
  export declare function registerCommands(deps: Dependencies): void;
10
10
  //# sourceMappingURL=register-app-commands.d.ts.map
@@ -1 +1 @@
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"}
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,EAEhB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAG3B,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,kBAAkB,EAAE,kBAAkB,EACtC,IAAI,EAAE,MAAM,EACZ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,2BAA2B,GACnD,OAAO,CAAC,sBAAsB,CAAC,CAwGjC;AA+CD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,QAGlD"}
@@ -12,6 +12,7 @@ var TemplateCategory;
12
12
  TemplateCategory["CUSTOM_UI"] = "Custom UI";
13
13
  TemplateCategory["BACKEND"] = "Triggers and Validators";
14
14
  TemplateCategory["UI_KIT"] = "UI kit";
15
+ TemplateCategory["UI_KIT_2"] = "UI kit 2 (Preview)";
15
16
  })(TemplateCategory || (TemplateCategory = {}));
16
17
  function ensureDirectoryDoesntExist(directory) {
17
18
  if (fs_1.default.existsSync(directory)) {
@@ -33,7 +34,7 @@ function directoryNameFromAppName(appName) {
33
34
  return allDashes ? undefined : normalized;
34
35
  }
35
36
  exports.directoryNameFromAppName = directoryNameFromAppName;
36
- async function createCommandHandler(ui, createAppCommand, name, { template, directory }) {
37
+ async function createCommandHandler(ui, createAppCommand, featureFlagService, name, { template, directory }) {
37
38
  if (directory) {
38
39
  ensureDirectoryDoesntExist(directory);
39
40
  ui.info(cli_shared_2.Text.create.intro(directory));
@@ -61,25 +62,34 @@ async function createCommandHandler(ui, createAppCommand, name, { template, dire
61
62
  if (!template) {
62
63
  ui.info(cli_shared_2.Text.create.overviewTemplates);
63
64
  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
+ const enableCSUIK = await featureFlagService.readFlag('forge-cli-enable-csuik');
66
+ const type = await ui.promptForList(cli_shared_2.Text.create.promptCategory, Object.values(TemplateCategory).filter((category) => enableCSUIK || category !== TemplateCategory.UI_KIT_2));
65
67
  const filteredTemplates = type === TemplateCategory.SHOW_ALL
66
68
  ? templates
67
69
  : templates
68
70
  .filter((name) => {
69
71
  switch (type) {
70
72
  case TemplateCategory.BACKEND:
71
- return !name.includes('ui-kit') && !name.includes('custom-ui') && name !== 'blank';
73
+ return (!name.includes('ui-kit') &&
74
+ !name.includes('csuik') &&
75
+ !name.includes('custom-ui') &&
76
+ name !== 'blank');
72
77
  case TemplateCategory.CUSTOM_UI:
73
78
  return name.includes('custom-ui');
74
79
  case TemplateCategory.UI_KIT:
75
80
  return name.includes('ui-kit');
81
+ case TemplateCategory.UI_KIT_2:
82
+ return name.includes('csuik');
76
83
  }
77
84
  })
78
- .map((name) => name.replace('-ui-kit', '').replace('-custom-ui', ''));
85
+ .map((name) => name.replace('-ui-kit', '').replace('-custom-ui', '').replace('-csuik', ''));
79
86
  template = await ui.promptForList(cli_shared_2.Text.create.promptTemplate, filteredTemplates);
80
87
  if (type === TemplateCategory.UI_KIT) {
81
88
  template = `${template}-ui-kit`;
82
89
  }
90
+ if (type === TemplateCategory.UI_KIT_2) {
91
+ template = `${template}-csuik`;
92
+ }
83
93
  if (type === TemplateCategory.CUSTOM_UI) {
84
94
  template = `${template}-custom-ui`;
85
95
  }
@@ -96,13 +106,13 @@ async function createCommandHandler(ui, createAppCommand, name, { template, dire
96
106
  return result;
97
107
  }
98
108
  exports.createCommandHandler = createCommandHandler;
99
- function registerCreateCommands({ cmd, ui, commands: { createAppCommand } }) {
109
+ function registerCreateCommands({ cmd, ui, commands: { createAppCommand }, services: { featureFlagService } }) {
100
110
  cmd
101
111
  .command('create [name]')
102
112
  .description(cli_shared_2.Text.create.cmd.desc)
103
113
  .option('-t, --template <template name>', cli_shared_2.Text.create.optionTemplate)
104
114
  .option('-d, --directory <directory name>', cli_shared_2.Text.create.optionDirectory)
105
- .action((name, options) => createCommandHandler(ui, createAppCommand, name, options));
115
+ .action((name, options) => createCommandHandler(ui, createAppCommand, featureFlagService, name, options));
106
116
  }
107
117
  function registerRegisterCommand({ cmd, ui, commands: { registerAppCommand } }) {
108
118
  cmd
@@ -1,3 +1,3 @@
1
1
  import { Dependencies } from './dependency-injection';
2
- export declare const registerCommands: ({ cmd, ...deps }: Dependencies) => void;
2
+ export declare const registerCommands: ({ cmd, ...deps }: Dependencies) => Promise<void>;
3
3
  //# sourceMappingURL=register-settings-commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"register-settings-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-settings-commands.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAgCtD,eAAO,MAAM,gBAAgB,qBAAsB,YAAY,SAK9D,CAAC"}
1
+ {"version":3,"file":"register-settings-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-settings-commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAiCtD,eAAO,MAAM,gBAAgB,qBAA4B,YAAY,kBAKpE,CAAC"}
@@ -3,10 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerCommands = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const cli_shared_1 = require("@forge/cli-shared");
6
- const settings_controller_1 = require("./controller/settings-controller");
7
6
  const COMMAND_NAME = 'settings';
8
7
  const SHOW_COMMAND_NAME = 'list';
9
- const SET_COMMAND_NAME = 'set <setting> <boolean>';
8
+ const SET_COMMAND_NAME = 'set <setting> <boolean|string>';
10
9
  const registerSettingsList = ({ cmd, controllers: { settingsController } }) => {
11
10
  cmd
12
11
  .command(SHOW_COMMAND_NAME)
@@ -15,25 +14,26 @@ const registerSettingsList = ({ cmd, controllers: { settingsController } }) => {
15
14
  .requireNoAnalyticsConsent()
16
15
  .jsonOption()
17
16
  .action(async ({ json }) => {
18
- settingsController.showSettings(json);
17
+ await settingsController.showSettings(json);
19
18
  return { analytics: {} };
20
19
  });
21
20
  };
22
- const registerSettingsSet = ({ cmd, controllers: { settingsController } }) => {
21
+ const registerSettingsSet = async ({ cmd, controllers: { settingsController } }) => {
22
+ const allowedSettings = await settingsController.getPublicSettings();
23
23
  cmd
24
24
  .command(SET_COMMAND_NAME)
25
- .description(cli_shared_1.Text.settings.set.description(settings_controller_1.ALLOWED_SETTINGS))
25
+ .description(cli_shared_1.Text.settings.set.description(allowedSettings))
26
26
  .requireNoAuthentication()
27
27
  .requireNoAnalyticsConsent()
28
28
  .action(async (preference, value) => {
29
- settingsController.setSettings(preference, value);
29
+ await settingsController.setSetting(preference, value);
30
30
  return { analytics: {} };
31
31
  });
32
32
  };
33
- const registerCommands = (_a) => {
33
+ const registerCommands = async (_a) => {
34
34
  var { cmd } = _a, deps = tslib_1.__rest(_a, ["cmd"]);
35
35
  const preferences = cmd.command(COMMAND_NAME).requireNoAuthentication().description(cli_shared_1.Text.settings.description);
36
36
  registerSettingsList(Object.assign({ cmd: preferences }, deps));
37
- registerSettingsSet(Object.assign({ cmd: preferences }, deps));
37
+ await registerSettingsSet(Object.assign({ cmd: preferences }, deps));
38
38
  };
39
39
  exports.registerCommands = registerCommands;
@@ -6,6 +6,7 @@ export declare class DeployView {
6
6
  constructor(ui: UI);
7
7
  getLogger(): UI;
8
8
  displayStart(environment: string): void;
9
+ displayListAppInstallationsError(): void;
9
10
  displayLintRunning(): void;
10
11
  displayOutdatedInstallationsMessage(): void;
11
12
  displayIndexingCommand(environment: string): void;
@@ -1 +1 @@
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,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKjD,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"}
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,gCAAgC,IAAI,IAAI;IAIxC,kBAAkB,IAAI,IAAI;IAI1B,mCAAmC,IAAI,IAAI;IAK3C,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKjD,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"}
@@ -14,6 +14,9 @@ class DeployView {
14
14
  displayStart(environment) {
15
15
  this.ui.info(cli_shared_1.Text.deploy.cmd.start1(environment, cli_shared_1.environmentToOption));
16
16
  }
17
+ displayListAppInstallationsError() {
18
+ this.ui.info(cli_shared_1.Text.deploy.taskListInstallation.listInstallationError);
19
+ }
17
20
  displayLintRunning() {
18
21
  this.ui.info(cli_shared_1.Text.lint.running);
19
22
  }
@@ -1,5 +1,5 @@
1
1
  import { UI } from '@forge/cli-shared';
2
- declare type PreferenceValue = boolean | undefined;
2
+ declare type PreferenceValue = string | boolean | undefined;
3
3
  export declare class SettingsView {
4
4
  private readonly ui;
5
5
  constructor(ui: UI);
@@ -1 +1 @@
1
- {"version":3,"file":"settings-view.d.ts","sourceRoot":"","sources":["../../../src/command-line/view/settings-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAE7C,aAAK,eAAe,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3C,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAE5B,YAAY,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,OAAO;IAiB7E,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAIjD"}
1
+ {"version":3,"file":"settings-view.d.ts","sourceRoot":"","sources":["../../../src/command-line/view/settings-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAE7C,aAAK,eAAe,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEpD,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAE5B,YAAY,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,OAAO;IAiB7E,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAIjD"}
@@ -4,5 +4,8 @@ export declare class CachedConfigService {
4
4
  constructor(cachedConf: CachedConf);
5
5
  getAnalyticsPreferences(): boolean | undefined;
6
6
  setAnalyticsPreferences(preference: boolean): void;
7
+ private getDefaultEnvironments;
8
+ getDefaultEnvironment(appId: string): string | undefined;
9
+ setDefaultEnvironment(appId: string, preference: string): void;
7
10
  }
8
11
  //# sourceMappingURL=cached-config-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cached-config-service.d.ts","sourceRoot":"","sources":["../../src/service/cached-config-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI/C,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAE5C,uBAAuB,IAAI,OAAO,GAAG,SAAS;IAO9C,uBAAuB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;CAG1D"}
1
+ {"version":3,"file":"cached-config-service.d.ts","sourceRoot":"","sources":["../../src/service/cached-config-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAO/C,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAE5C,uBAAuB,IAAI,OAAO,GAAG,SAAS;IAO9C,uBAAuB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAIzD,OAAO,CAAC,sBAAsB;IAIvB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAMxD,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;CAKtE"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CachedConfigService = void 0;
4
4
  const ANALYTICS_PREFERENCES_KEY = 'analytics-preferences';
5
+ const DEFAULT_ENVIRONMENT_KEY = 'default-environment';
5
6
  class CachedConfigService {
6
7
  constructor(cachedConf) {
7
8
  this.cachedConf = cachedConf;
@@ -15,5 +16,17 @@ class CachedConfigService {
15
16
  setAnalyticsPreferences(preference) {
16
17
  this.cachedConf.set(ANALYTICS_PREFERENCES_KEY, preference);
17
18
  }
19
+ getDefaultEnvironments() {
20
+ return this.cachedConf.get(DEFAULT_ENVIRONMENT_KEY) || {};
21
+ }
22
+ getDefaultEnvironment(appId) {
23
+ const defaultEnvironments = this.getDefaultEnvironments();
24
+ return defaultEnvironments[appId];
25
+ }
26
+ setDefaultEnvironment(appId, preference) {
27
+ const defaultEnvironments = this.getDefaultEnvironments();
28
+ defaultEnvironments[appId] = preference;
29
+ this.cachedConf.set(DEFAULT_ENVIRONMENT_KEY, defaultEnvironments);
30
+ }
18
31
  }
19
32
  exports.CachedConfigService = CachedConfigService;
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel-service.d.ts","sourceRoot":"","sources":["../../src/service/tunnel-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tunnel-service.d.ts","sourceRoot":"","sources":["../../src/service/tunnel-service.ts"],"names":[],"mappings":"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"}
@@ -159,7 +159,9 @@ class TunnelServiceBase {
159
159
  getVolumeOptions() {
160
160
  const options = [`-v=${CUR_WORK_APP_DIR || process.cwd()}:/app:cached`];
161
161
  if (process.env.FORGE_DEV_DOCKER_TUNNEL) {
162
- options.push(`-v=${(0, path_1.join)(__dirname, '../../../..')}:/monorepo:cached`);
162
+ const monorepoRoot = (0, path_1.join)(__dirname, '../../../..');
163
+ options.push(`-v=${monorepoRoot}:/monorepo:cached`);
164
+ options.push(`-v=${monorepoRoot}/node_modules/ngrok/docker-bin:/monorepo/node_modules/ngrok/bin`);
163
165
  }
164
166
  if (process.env.FORGE_TUNNEL_MOUNT_DIRECTORIES) {
165
167
  const mounts = process.env.FORGE_TUNNEL_MOUNT_DIRECTORIES.split(',');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/cli",
3
- "version": "6.10.0",
3
+ "version": "6.11.0-next.14",
4
4
  "description": "A command line interface for managing Atlassian-hosted apps",
5
5
  "author": "Atlassian",
6
6
  "license": "UNLICENSED",
@@ -18,13 +18,13 @@
18
18
  "postinstall": "node -e \"process.exitCode = fs.existsSync('./out/bin/postinstall.js')\" || node ./out/bin/postinstall.js"
19
19
  },
20
20
  "dependencies": {
21
- "@forge/bundler": "4.7.0",
22
- "@forge/cli-shared": "3.11.2",
21
+ "@forge/bundler": "4.8.0-next.12",
22
+ "@forge/cli-shared": "3.12.0-next.7",
23
23
  "@forge/egress": "1.2.1",
24
- "@forge/lint": "3.4.0",
25
- "@forge/manifest": "4.12.0",
26
- "@forge/runtime": "4.3.4",
27
- "@forge/tunnel": "3.4.0",
24
+ "@forge/lint": "3.5.0-next.8",
25
+ "@forge/manifest": "4.13.0-next.4",
26
+ "@forge/runtime": "4.4.0-next.2",
27
+ "@forge/tunnel": "3.5.0-next.13",
28
28
  "@forge/util": "1.2.3",
29
29
  "@sentry/node": "^7.29.0",
30
30
  "ajv": "^6.12.6",