@forge/cli-shared 8.22.1-next.1 → 8.23.0-next.11

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.
@@ -41,10 +41,10 @@ export declare class MinimalGraphQLRunner implements GraphQLRunner {
41
41
  requestId: string | undefined;
42
42
  response: TResponse;
43
43
  }>;
44
- protected getAuthenticatedClient(endpoint: string, authorizationHeader: AuthorizationHeader): GraphQLClient;
45
- getHeaders(authorizationHeader: AuthorizationHeader): {
44
+ protected getAuthenticatedClient(endpoint: string, authorizationHeader: AuthorizationHeader): Promise<GraphQLClient>;
45
+ getHeaders(authorizationHeader: AuthorizationHeader): Promise<{
46
46
  [key: string]: string;
47
- };
47
+ }>;
48
48
  private getAttribution;
49
49
  private getClientName;
50
50
  private getClientVersion;
@@ -1 +1 @@
1
- {"version":3,"file":"minimal-graphql-runner.d.ts","sourceRoot":"","sources":["../../src/graphql/minimal-graphql-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAqD,MAAM,UAAU,CAAC;AAC7G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAIjD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE5D,eAAO,MAAM,YAAY,cAAc,CAAC;AACxC,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AACrD,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAE9D,eAAO,MAAM,cAAc,EAAE,kBAM5B,CAAC;AAOF,qBAAa,0BAA2B,SAAQ,SAAS;CAAG;AAM5D,qBAAa,0BAA2B,SAAQ,SAAS;;CAIxD;AAED,qBAAa,uBAAwB,SAAQ,SAAS;;CAIrD;AAED,qBAAa,2BAA4B,SAAQ,SAAS;IAMtD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAL5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;gBAGpB,SAAS,EAAE,OAAO,EACnC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,YAAY,EAAE;IASxB,OAAO,QAAO,MAAM,GAAG,SAAS,CAE9B;IAEF,aAAa,QAAO,MAAM,GAAG,SAAS,CAEpC;IAEF,YAAY,QAAO,MAAM,GAAG,SAAS,CAEnC;IAEK,WAAW,IAAI,OAAO;CAG9B;AAED,qBAAa,YAAa,SAAQ,KAAK;gBACzB,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM;CAG1C;AAED,oBAAY,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAEpD,qBAAa,oBAAqB,YAAW,aAAa;IAEtD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFV,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,GAAG,SAAS;IAGxC,GAAG,CAAC,UAAU,SAAS,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU;;;;IAS9F,SAAS,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,mBAAmB;IAMpF,UAAU,CAAC,mBAAmB,EAAE,mBAAmB,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IAYtF,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;YAIV,4BAA4B;IA0C1C,OAAO,CAAC,YAAY;CAUrB"}
1
+ {"version":3,"file":"minimal-graphql-runner.d.ts","sourceRoot":"","sources":["../../src/graphql/minimal-graphql-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAqD,MAAM,UAAU,CAAC;AAC7G,OAAO,EAAE,SAAS,EAAuB,SAAS,EAAE,MAAM,WAAW,CAAC;AAItE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE5D,eAAO,MAAM,YAAY,cAAc,CAAC;AACxC,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AACrD,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAE9D,eAAO,MAAM,cAAc,EAAE,kBAM5B,CAAC;AAOF,qBAAa,0BAA2B,SAAQ,SAAS;CAAG;AAM5D,qBAAa,0BAA2B,SAAQ,SAAS;;CAIxD;AAED,qBAAa,uBAAwB,SAAQ,SAAS;;CAIrD;AAED,qBAAa,2BAA4B,SAAQ,SAAS;IAMtD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAL5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;gBAGpB,SAAS,EAAE,OAAO,EACnC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,YAAY,EAAE;IASxB,OAAO,QAAO,MAAM,GAAG,SAAS,CAE9B;IAEF,aAAa,QAAO,MAAM,GAAG,SAAS,CAEpC;IAEF,YAAY,QAAO,MAAM,GAAG,SAAS,CAEnC;IAEK,WAAW,IAAI,OAAO;CAG9B;AAED,qBAAa,YAAa,SAAQ,KAAK;gBACzB,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM;CAG1C;AAED,oBAAY,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAEpD,qBAAa,oBAAqB,YAAW,aAAa;IAEtD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFV,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,GAAG,SAAS;IAGxC,GAAG,CAAC,UAAU,SAAS,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU;;;;cAS9E,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,mBAAmB;IAMpF,UAAU,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;YAYvF,cAAc;IAQ5B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;YAIV,4BAA4B;IA0C1C,OAAO,CAAC,YAAY;CAUrB"}
@@ -83,28 +83,27 @@ class MinimalGraphQLRunner {
83
83
  response: data
84
84
  };
85
85
  }
86
- getAuthenticatedClient(endpoint, authorizationHeader) {
86
+ async getAuthenticatedClient(endpoint, authorizationHeader) {
87
87
  return new graphql_request_1.GraphQLClient(endpoint, {
88
- headers: this.getHeaders(authorizationHeader)
88
+ headers: await this.getHeaders(authorizationHeader)
89
89
  });
90
90
  }
91
- getHeaders(authorizationHeader) {
91
+ async getHeaders(authorizationHeader) {
92
92
  return {
93
93
  ...authorizationHeader,
94
94
  ...(this.cliDetails ? { 'user-agent': `${this.getClientName()}/${this.getClientVersion()}` } : {}),
95
95
  ...{
96
96
  'atl-client-name': `${this.getClientName()}`,
97
97
  'atl-client-version': `${this.getClientVersion()}`,
98
- 'atl-attribution': this.getAttribution()
98
+ 'atl-attribution': await this.getAttribution()
99
99
  }
100
100
  };
101
101
  }
102
- getAttribution() {
102
+ async getAttribution() {
103
103
  return JSON.stringify({
104
104
  businessUnit: (0, index_1.getEnvironmentConfig)(exports.BUSINESS_UNITS),
105
105
  service: exports.SERVICE_NAME,
106
- isAgent: !process.stdin.isTTY && !process.stdout.isTTY,
107
- isCI: process.env.CI === 'true'
106
+ ...(await shared_1.ForgeCliAttribution.build())
108
107
  });
109
108
  }
110
109
  getClientName() {
@@ -115,7 +114,7 @@ class MinimalGraphQLRunner {
115
114
  }
116
115
  async rawRequestWithoutClientError(query, variables) {
117
116
  const authorizationHeader = await this.authenticator.getAuthorizationHeader();
118
- const client = this.getAuthenticatedClient(this.endpoint, authorizationHeader);
117
+ const client = await this.getAuthenticatedClient(this.endpoint, authorizationHeader);
119
118
  try {
120
119
  return await client.rawRequest(query, variables);
121
120
  }
@@ -0,0 +1,16 @@
1
+ export declare class ForgeCliAttribution {
2
+ static isAgent(): boolean;
3
+ static isCI(): boolean;
4
+ static skillName(): string;
5
+ static agentHint(): Promise<string>;
6
+ static isStudio(): boolean;
7
+ static build(): Promise<Record<string, unknown>>;
8
+ private static getWildcardAttribution;
9
+ private static getValidAttributionEnvValue;
10
+ private static isValidAttributionValue;
11
+ private static isValidWildcardKey;
12
+ private static hasEnvKeySet;
13
+ private static camelCaseEnvKey;
14
+ private static capitalize;
15
+ }
16
+ //# sourceMappingURL=forge-cli-attribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forge-cli-attribution.d.ts","sourceRoot":"","sources":["../../src/shared/forge-cli-attribution.ts"],"names":[],"mappings":"AA0CA,qBAAa,mBAAmB;WAOhB,OAAO,IAAI,OAAO;WAQlB,IAAI,IAAI,OAAO;WAIf,SAAS,IAAI,MAAM;WAIb,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;WAuBlC,QAAQ,IAAI,OAAO;WAWb,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAW7D,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAgDrC,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAK1C,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAStC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAIjC,OAAO,CAAC,MAAM,CAAC,YAAY;IAK3B,OAAO,CAAC,MAAM,CAAC,eAAe;IAS9B,OAAO,CAAC,MAAM,CAAC,UAAU;CAG1B"}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ForgeCliAttribution = void 0;
4
+ const detect_agent_1 = require("@vercel/detect-agent");
5
+ const ATL_FORGE_ATTRIBUTION_ENV_PREFIX = 'ATL_FORGE_ATTRIBUTION_';
6
+ const UNKNOWN = 'unknown';
7
+ const MAX_ATTRIBUTION_VALUE_LENGTH = 512;
8
+ const MAX_WILDCARD_PAYLOAD_BYTES = 4096;
9
+ const MAX_WILDCARD_FIELDS = 32;
10
+ const ATTRIBUTION_VALUE_PATTERN = /^[A-Za-z0-9._\-/:+]+$/;
11
+ const WILDCARD_KEY_PATTERN = /^[A-Za-z][A-Za-z0-9_]*$/;
12
+ const WELL_KNOWN_ATTRIBUTION_ENV_KEYS = new Set(['AGENT_HINT', 'IS_STUDIO', 'SKILL_NAME']);
13
+ const RESERVED_ATTRIBUTION_FIELDS = new Set([
14
+ 'agentHint',
15
+ 'businessUnit',
16
+ 'isAgent',
17
+ 'isCI',
18
+ 'isStudio',
19
+ 'service',
20
+ 'skillName'
21
+ ]);
22
+ class ForgeCliAttribution {
23
+ static isAgent() {
24
+ return !process.stdin.isTTY && !process.stdout.isTTY;
25
+ }
26
+ static isCI() {
27
+ return process.env.CI === 'true';
28
+ }
29
+ static skillName() {
30
+ return this.getValidAttributionEnvValue('SKILL_NAME') || UNKNOWN;
31
+ }
32
+ static async agentHint() {
33
+ const explicitAgentHint = this.getValidAttributionEnvValue('AGENT_HINT');
34
+ if (explicitAgentHint) {
35
+ return explicitAgentHint;
36
+ }
37
+ if (this.hasEnvKeySet('ROVODEV_CLI')) {
38
+ return 'rovo-dev';
39
+ }
40
+ if (this.hasEnvKeySet('WINDSURF_CASCADE_TERMINAL_KIND')) {
41
+ return 'windsurf';
42
+ }
43
+ try {
44
+ const result = await (0, detect_agent_1.determineAgent)();
45
+ if (result?.isAgent && typeof result.agent?.name === 'string' && result.agent.name) {
46
+ return result.agent.name;
47
+ }
48
+ }
49
+ catch {
50
+ }
51
+ return UNKNOWN;
52
+ }
53
+ static isStudio() {
54
+ return this.getValidAttributionEnvValue('IS_STUDIO') === 'true';
55
+ }
56
+ static async build() {
57
+ return {
58
+ isAgent: this.isAgent(),
59
+ isCI: this.isCI(),
60
+ skillName: this.skillName(),
61
+ agentHint: await this.agentHint(),
62
+ isStudio: this.isStudio(),
63
+ ...this.getWildcardAttribution()
64
+ };
65
+ }
66
+ static getWildcardAttribution() {
67
+ const wildcardAttribution = {};
68
+ let totalBytes = 0;
69
+ const sortedEntries = Object.entries(process.env).sort(([a], [b]) => a.localeCompare(b));
70
+ for (const [envKey, envValue] of sortedEntries) {
71
+ if (!envKey.startsWith(ATL_FORGE_ATTRIBUTION_ENV_PREFIX)) {
72
+ continue;
73
+ }
74
+ const attributionEnvKey = envKey.slice(ATL_FORGE_ATTRIBUTION_ENV_PREFIX.length);
75
+ if (WELL_KNOWN_ATTRIBUTION_ENV_KEYS.has(attributionEnvKey)) {
76
+ continue;
77
+ }
78
+ if (!this.isValidWildcardKey(attributionEnvKey) || !this.isValidAttributionValue(envValue)) {
79
+ continue;
80
+ }
81
+ const attributionKey = this.camelCaseEnvKey(attributionEnvKey);
82
+ if (!attributionKey || RESERVED_ATTRIBUTION_FIELDS.has(attributionKey)) {
83
+ continue;
84
+ }
85
+ if (attributionKey in wildcardAttribution) {
86
+ continue;
87
+ }
88
+ if (Object.keys(wildcardAttribution).length >= MAX_WILDCARD_FIELDS) {
89
+ break;
90
+ }
91
+ const fieldBytes = attributionKey.length + envValue.length + 4;
92
+ if (totalBytes + fieldBytes > MAX_WILDCARD_PAYLOAD_BYTES) {
93
+ continue;
94
+ }
95
+ wildcardAttribution[attributionKey] = envValue;
96
+ totalBytes += fieldBytes;
97
+ }
98
+ return wildcardAttribution;
99
+ }
100
+ static getValidAttributionEnvValue(key) {
101
+ const value = process.env[`${ATL_FORGE_ATTRIBUTION_ENV_PREFIX}${key}`];
102
+ return this.isValidAttributionValue(value) ? value : undefined;
103
+ }
104
+ static isValidAttributionValue(value) {
105
+ return (typeof value === 'string' &&
106
+ value.length > 0 &&
107
+ value.length <= MAX_ATTRIBUTION_VALUE_LENGTH &&
108
+ ATTRIBUTION_VALUE_PATTERN.test(value));
109
+ }
110
+ static isValidWildcardKey(key) {
111
+ return WILDCARD_KEY_PATTERN.test(key);
112
+ }
113
+ static hasEnvKeySet(key) {
114
+ const value = process.env[key];
115
+ return value !== undefined && value !== '';
116
+ }
117
+ static camelCaseEnvKey(key) {
118
+ return key
119
+ .toLowerCase()
120
+ .split('_')
121
+ .filter(Boolean)
122
+ .map((part, index) => (index === 0 ? part : this.capitalize(part)))
123
+ .join('');
124
+ }
125
+ static capitalize(value) {
126
+ return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;
127
+ }
128
+ }
129
+ exports.ForgeCliAttribution = ForgeCliAttribution;
@@ -3,6 +3,7 @@ export * from './assistant-cli';
3
3
  export * from './cli-details';
4
4
  export * from './directories';
5
5
  export * from './environment';
6
+ export * from './forge-cli-attribution';
6
7
  export * from './error-handling';
7
8
  export * from './pause';
8
9
  export * from './product';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAEA,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAEhC,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,QAAA,MAAM,IAAI,0BAAqD,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAEA,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAEhC,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,QAAA,MAAM,IAAI,0BAAqD,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -7,6 +7,7 @@ tslib_1.__exportStar(require("./assistant-cli"), exports);
7
7
  tslib_1.__exportStar(require("./cli-details"), exports);
8
8
  tslib_1.__exportStar(require("./directories"), exports);
9
9
  tslib_1.__exportStar(require("./environment"), exports);
10
+ tslib_1.__exportStar(require("./forge-cli-attribution"), exports);
10
11
  tslib_1.__exportStar(require("./error-handling"), exports);
11
12
  tslib_1.__exportStar(require("./pause"), exports);
12
13
  tslib_1.__exportStar(require("./product"), exports);
package/out/ui/text.d.ts CHANGED
@@ -562,11 +562,12 @@ export declare const Text: {
562
562
  outFile: string;
563
563
  version1: string;
564
564
  version2: string;
565
+ limit: string;
565
566
  };
566
567
  desc: string;
567
568
  overViewVersionTable: (versions: number, environment: string) => string;
568
569
  promptVersionTable: string;
569
- selectTargetVersionToUpgrade: (installations?: number) => string;
570
+ selectTargetVersionToUpgrade: (sourceVersion?: string) => string;
570
571
  error: {
571
572
  missingVersionUpgradeParameters: string;
572
573
  appVersionRolloutRunning: string;
@@ -579,8 +580,15 @@ export declare const Text: {
579
580
  tooManyRequestsGlobally: string;
580
581
  };
581
582
  appVersionRolloutSuccess(appRolloutVersionId: string | undefined): string;
582
- warningMessage: (sourceVersionId: string, targetVersionId: string, installations?: number) => string;
583
+ limitWarningUserLimit: (expectedRemaining: number, totalEligible: number, userLimit: number) => string;
584
+ limitWarningAdjustedLimit: (expectedRemaining: number, totalEligible: number, userLimit: number, appliedLimit: number) => string;
585
+ limitWarningSystemLimit: (expectedRemaining: number, totalEligible: number, systemLimit: number) => string;
586
+ limitWarningFollowUp: string;
587
+ warningMessage: (sourceVersionId: string, targetVersionId: string, installations?: number, limit?: number, enforcedSystemLimit?: number, userProvidedLimit?: number) => string;
583
588
  promptConfirmation: string;
589
+ promptLimit: (installations?: number) => string;
590
+ promptLimitWithTargetInfo: (installations?: number, upgradeLimit?: number) => string;
591
+ limitValidationError: (max?: number) => string;
584
592
  };
585
593
  list: {
586
594
  cmdName: string;
@@ -831,6 +839,7 @@ export declare const Text: {
831
839
  noResourceId: string;
832
840
  noCloudId: string;
833
841
  noResourceIdInWorkspace: string;
842
+ noResourceIdInInstallation: string;
834
843
  noInstallations: string;
835
844
  status: {
836
845
  outdatedPermissions: string;
@@ -914,6 +923,7 @@ export declare const Text: {
914
923
  };
915
924
  };
916
925
  installationId: {
926
+ option: string;
917
927
  prompt: string;
918
928
  errors: {
919
929
  invalid: string;
@@ -1251,6 +1261,15 @@ export declare const Text: {
1251
1261
  };
1252
1262
  };
1253
1263
  };
1264
+ commandHelp: {
1265
+ groups: {
1266
+ quickStart: string;
1267
+ develop: string;
1268
+ manage: string;
1269
+ account: string;
1270
+ cliExperience: string;
1271
+ };
1272
+ };
1254
1273
  dynamicTable: {
1255
1274
  exiting: string;
1256
1275
  };
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/ui/text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/ui/text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAI1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAI9D,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAGrC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAwBD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjE;AAKD,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,MAAsD,CAAC;AAoDjG,eAAO,MAAM,IAAI;8BA7EgB,MAAM;eAKrB,MAAM;;;;;6BAuFD,MAAM;2BACR,MAAM;6BAGJ,MAAM;+BAEJ,MAAM;;wCAIK,MAAM,UAAU,MAAM;qDAOT,MAAM,sBAAsB,MAAM;;wCAO/C,MAAM,EAAE;;;;;;;;6CAgBH,MAAM,YAAY,MAAM,YAAY,MAAM;;;kDAQrC,MAAM,EAAE;gDAKV,MAAM,aAAa,MAAM;8CAG3B,MAAM,aAAa,MAAM;uCAGhC,MAAM;iCAEZ,MAAM;;;;;;;;;;;;;;kDAmBS,MAAM;;;0DAKI,MAAM,EAAE;yCAEzB,MAAM;0CAEL,MAAM;;;yCAKP,MAAM;;;mDAUI,MAAM,yBAAyB,MAAM;;6BAM7D,MAAM,EAAE;;;mCAKA,MAAM;;;;;;;;;;;;;kCAeP,OAAO,YAAY,MAAM,aAAa,OAAO;;;;uCAUtC,MAAM,EAAE;;;;;;;;0BASrB,MAAM,KAAG,MAAM;;;;;uBAQpB,MAAM,SAAS,MAAM,aAAa,MAAM;2BAEpC,MAAM,cAAc,MAAM;;;8CAYP,MAAM;;;8BAKtB,MAAM;;4DAEwB,MAAM,aAAa,MAAM;;kDAGnC,MAAM;;;;;yBAO/B,MAAM,EAAE;;;6BAGJ,MAAM,EAAE;;;;;;;kCAUL,MAAM,mBAAmB,MAAM;;;;;;;;;;;;0BAkBvC,MAAM,GAAG,SAAS,KAAG,MAAM;;;;;;;;;;;oBAgB/B,MAAM;;;;wBAOF,MAAM;;;;;;;;;;yCAaS,MAAM;yCACN,MAAM,QAAQ,MAAM,aAAa,MAAM;;;+CAIjC,MAAM,eAAe,MAAM;;;;;;;;;;;;;;;;;;;;+BAgC3C,MAAM;wCACG,MAAM,2BAA2B,MAAM,EAAE;;gCAQ/C,MAAM;sDACgB,MAAM;;;;;;;;;;;;;;oCAkB1B,MAAM;;;;;;;;;;;;+BAcb,MAAM;;;+BAIN,MAAM;;;qCAIA,MAAM;qCACN,MAAM;;;;;;;;;;;;;;;iCAoBN,MAAM,qBAAqB,MAAM;;;6CAKrB,MAAM;;;gDAIH,MAAM;;;;;oCAMlB,MAAM;iCACT,MAAM;uCACA,MAAM;sCAEP,MAAM;kCAEV,MAAM;;0CAEA,MAAM;mCACb,MAAM;;;;;sDAWa,QAAQ,GAAG,SAAS,GAAG,QAAQ;kEAQnB,MAAM;;;;;;;;;;+BAezC,MAAM;;gCAGL,MAAM;;;;;;;;;;;;;;+BAeP,MAAM;sDACiB,MAAM,EAAE;;;;;;;kCAa1B,MAAM;;;;kCAKR,MAAM;;qCAKD,MAAM,WAAW,kBAAkB;;uCAWnC,MAAM;;;;;;;;;6BAed,MAAM,WAAW,kBAAkB;sCAE1B,MAAM,WAAW,kBAAkB;;;;;;;;4CAa/B,MAAM;;gCAIhB,MAAM,mBAAmB,kBAAkB;;;;;;;;;;;;;iCAkB5C,MAAM,WAAW,kBAAkB;2BAEzC,MAAM;;;;;;6BAOF,MAAM,WAAW,kBAAkB;;gCAMhC,MAAM,WAAW,kBAAkB;;;;;;;;;;;;gCAenC,MAAM;;;;;;;;;;;;;;8BAgBV,MAAM,WAAW,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;2CA6BpB,MAAM,WAAW,kBAAkB;;;;;uCAQvC,MAAM;;;;;;;;;;;;;;;;;;;;;;;gDAgCC,MAAM;qCAGjB,MAAM;;4CAIC,MAAM;;;;;6BAOrB,MAAM;0BACT,MAAM;6BACH,MAAM,gBAAgB,MAAM;;;;;;;;;;;;;;;;sCAiBrB,MAAM,WAAW,kBAAkB,WAAW,MAAM,UAAU,MAAM,EAAE;mCAEzE,MAAM,WAAW,kBAAkB,WAAW,MAAM;;;mCAIpD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;gCAsDT;oBACd,OAAO,EAAE,MAAM,CAAC;oBAChB,OAAO,CAAC,EAAE,MAAM,CAAC;oBACjB,QAAQ,EAAE,kBAAkB,CAAC;oBAC7B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;oBAC9B,QAAQ,EAAE,MAAM,CAAC;oBACjB,QAAQ,EAAE,MAAM,CAAC;iBAClB;;;;;;;;;;;iDAmBgC,MAAM;;;;;;iCAmBtB,MAAM,WAAW,kBAAkB,WAAW,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;oCA6BjD,MAAM;2CACC,OAAO;;;;;;;;;;;;;iCAyBjB,MAAM,WAAW,kBAAkB,YAAY,MAAM;;;;;;;;;;;;;;;;;;iDAuBrC,MAAM,eAAe,MAAM;;+DAGb,MAAM;;;;yDAOd,MAAM,aAAa,MAAM,kBAAkB,MAAM;0DAEhD,MAAM,aAAa,MAAM;iEAElB,MAAM,aAAa,MAAM;uEAEnB,MAAM;;;;;8DAOb,MAAM,GAAG,SAAS;2DAGrB,MAAM,iBAAiB,MAAM,aAAa,MAAM;+DAGtE,MAAM,iBACV,MAAM,aACV,MAAM,gBACH,MAAM;6DAGuB,MAAM,iBAAiB,MAAM,eAAe,MAAM;;kDAK5E,MAAM,mBACN,MAAM,kBACP,MAAM,UACd,MAAM,wBACQ,MAAM,sBACR,MAAM;;8CAeE,MAAM;4DACQ,MAAM,iBAAiB,MAAM;6CAM5C,MAAM;;;;;;;;;;;;qCAyBhB,MAAM,WAAW,kBAAkB,GAAG,SAAS,WAAW,MAAM;;;;;;;;;;;;;0DAmB3C,MAAM;uDAGT,MAAM;;;oEAKS,MAAM;sDAInC,MAAM,mBACV,MAAM,mBACN,MAAM,yBACA,MAAM,uBACR,MAAM;;;;;;;;;;gCAcX,MAAM;;;;;6CAKK,MAAM;;;;;;;uCAYV,MAAM,KAAG,MAAM;;;;;;kCASpB,MAAM;;;;;;;;;;;;;;6BAiBX,MAAM,WAAW,kBAAkB,aAAa,MAAM;8BAIrD,MAAM,UAAU,MAAM,WAAW,kBAAkB,aAAa,MAAM;;sCAK9D,MAAM,UAAU,MAAM,WAAW,kBAAkB,aAAa,MAAM;wCAIpE,MAAM;;;;uCAYP,MAAM,KAAG,MAAM;;;;;;;;;;oCAgBlB,MAAM;;;;;;;;;;;uDAca,MAAM,cAAc,MAAM,KAAG,MAAM;mDAIvC,MAAM,gBAAgB,MAAM,cAAc,MAAM,KAAG,MAAM;mDAKzD,MAAM,KAAG,MAAM;iEAID,MAAM,eAAe,MAAM,KAAG,MAAM;;;;;;oCAUjE,MAAM,YAAY,MAAM,GAAG,IAAI;0CAEzB,MAAM;;;;0CAKN,MAAM;;;;sCAKV,MAAM;;;;;;;;0DAgBgB,MAAM,UAAU,MAAM,WAAW,kBAAkB;0DAGnD,MAAM,UAAU,MAAM,WAAW,kBAAkB;mCAG1E,MAAM;;;;;;6BAgBd,MAAM;;;;;;;;;;4BAaP,MAAM,WAAW,kBAAkB,WAAW,MAAM;+BAIjD,OAAO,WAAW,MAAM;;mCAGlB,OAAO,KAAG,MAAM;qDACE,MAAM;+CAEZ,MAAM;+CAEN,MAAM;uCACd,MAAM,QAAQ,MAAM;;;;oDAKP,MAAM;;;;;;;;6BAU7B,SAAS,EAAE;+CAOO,UAAU,EAAE;2CAEhB,MAAM;wDAKpB,MAAM,EAAE,qBACR,MAAM,EAAE,QACrB,MAAM,eACC,MAAM;6EAYgD,OAAO,KAAG,MAAM;;6BAKlE,MAAM,WAAW,kBAAkB,WAAW,MAAM,QAAQ,MAAM;;;uCAOxD,MAAM,WAAW,MAAM;wCAEtB,GAAG;oCAIP,GAAG;uBAIhB,MAAM;wBACL,MAAM;;4DAK8B,MAAM,WAAW,kBAAkB;mDAE5C,MAAM;6CACZ,MAAM;uDAMI,MAAM,SAAS,MAAM;qDAKvB,MAAM,GAAG,SAAS,aAAa,MAAM;;;;;;;0BAS9D,GAAG,eAAe,MAAM;;2BAGzB,MAAM;;;6BAYN,MAAM;;;;;;;yBAaR,MAAM;;;;;;;;;;;;;;;;;4BAsBH,MAAM,WAAW,kBAAkB;+BAEhC,OAAO;;;6BAGP,SAAS,EAAE,iBAAiB,OAAO;+CAOjB,UAAU,EAAE,iBAAiB,OAAO;2CAExC,MAAM;6EAI4B,OAAO,KAAG,MAAM;;6BAMzE,MAAM,WACL,kBAAkB,WAClB,MAAM,QACT,MAAM,gCAEF,MAAM;;;;;kCAWI,MAAM,WAAW,MAAM,QAAQ,MAAM;;;;+DAOV,MAAM,kBAAkB,MAAM;yEAEpB,MAAM;;;mDAI1B,MAAM;8DACK,MAAM,WAAW,MAAM,aAAa,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;yCAsC9D,MAAM,WAAW,kBAAkB;8BAE9C,MAAM;uCACG,MAAM,QAAQ,MAAM;mCAExB,MAAM;;;qCAGJ,MAAM;;+CAEI,MAAM;;yCAGZ,MAAM;+CAEA,MAAM;8CAEP,MAAM;oDACA,MAAM;sDAEJ,MAAM;0DAEF,MAAM,cAAc,MAAM;qDAE/B,MAAM,cAAc,MAAM;mDAE5B,MAAM;0DAEC,MAAM;4BAGpC,MAAM,WAAW,MAAM;qCACd,MAAM;;mCAGV,MAAM,eAAe,MAAM;oCAC1B,MAAM,eAAe,MAAM,cAAc,MAAM;;yCAM5C,MAAM,aAAa,MAAM;;;;0BAKtC,aAAa,QAAQ,MAAM;2BAE1B,MAAM;;+BAGA,MAAM,KAAG,MAAM;;;;;;+BAOf,MAAM;;;;;8BAMT,MAAM;8BACN,MAAM;;oCAGF,MAAM;;;qDAKa,MAAM;0CAGjB,MAAM,aAAa,OAAO;iDAGnB,MAAM;;oCAInB,MAAM,GAAG,IAAI;;+CAQF,MAAM;4DACO,MAAM;iDAEjB,MAAM;yDACE,MAAM;0DAEL,MAAM;oDAEZ,MAAM;;;;;;;;;uCAUnB,MAAM;;;;;;;+BAQd,OAAO;;;;;;;;;;wBAYZ,MAAM,UAAU,MAAM,eAAe,MAAM,WAAW,OAAO;0BAM3D,MAAM,UAAU,MAAM,eAAe,MAAM;;uDASd,MAAM;;;;;oBAUzC,MAAM;;;;;;;;;;;;;;;;;kCAoBM,MAAM;;;;;;;;;;;;mCAYL,MAAM;;;;oDAIW,MAAM;;;;qCAMrB,MAAM;0CACD,MAAM;8BAClB,MAAM,WAAW,MAAM;;;;;;;;;;oCAaf,MAAM;iDACO,MAAM;;;;;;;;;;oCAYnB,MAAM,WAAW,MAAM;kCAMzB,MAAM,sBAAsB,MAAM,KAAG,MAAM;;sBAUvD,MAAM,UAAU,MAAM,WAAW,MAAM,aAAa,MAAM,KAAG,MAAM;6BAE5D,MAAM,eAAe,MAAM,oBAAoB,MAAM,sBAAsB,MAAM,KAAG,MAAM;gCAevF,MAAM,oBAAoB,MAAM,sBAAsB,MAAM,KAAG,MAAM;wBAe7E,MAAM,UAAU,MAAM,WAAW,MAAM,aAAa,MAAM,KAAG,MAAM;;;;;;;;;;;;;;;;;;;;qCAsB1D,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;wCA0BD,MAAM;;;wCAGN,MAAM;;;;;;;0CAOJ,MAAM;;;;;;;;;;;;;qCAaX,MAAM;;gCAEX,MAAM;;;;;;;;;;;;;;;;;;;;;;;0CAwBI,MAAM,eAAe,MAAM;uCAE9B,MAAM;2CAEF,MAAM;;;;;;;;;;;;;6CAaJ,MAAM;gDACH,MAAM,eAAe,MAAM;kDAEzB,MAAM,aAAa,MAAM,eAAe,MAAM;mDAE7C,MAAM,eAAe,MAAM;8CAEhC,MAAM;yDACK,MAAM,WAAW,MAAM,eAAe,MAAM;gDAErD,MAAM;;;;yBAK3B,MAAM,WAAW,MAAM;;;;qCAMb,MAAM;qCACN,MAAM,gBAAgB,OAAO;;;yCAMzB,MAAM;qCACV,MAAM;;;;;;;;;;;;;;;;+BAwBZ,MAAM,SAAS,MAAM;;;;;+BAOrB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAgCF,MAAM;;;;;;;;6CAUI,MAAM,mBAAmB,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8DAwCxB,MAAM,GAAG,IAAI,KAAG,MAAM;;;;;;;;;;;;;;;;;kDAiBlC,MAAM,SAAS,MAAM;sDACjB,MAAM;oDACR,MAAM,WAAW,MAAM;mDAExB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAmCN,MAAM;mDACE,MAAM,GAAG,SAAS,aAAa,MAAM;iDAEvC,MAAM;uDACA,MAAM;;;;;;;;;;;;;;;8CAef,MAAM,cAAc,MAAM;yDAEf,MAAM,cAAc,MAAM;wCAE3C,MAAM,aAAa,MAAM;0CAEvB,MAAM;0CAEN,MAAM;;;CAGzC,CAAC"}
package/out/ui/text.js CHANGED
@@ -699,12 +699,16 @@ What do you like or don't like about Forge? Share your feedback below or press C
699
699
  json: 'output results in JSON format',
700
700
  outFile: 'specify a file to output the results',
701
701
  version1: 'source version to upgrade in a non-interactive mode',
702
- version2: 'target version to upgrade to in a non-interactive mode'
702
+ version2: 'target version to upgrade to in a non-interactive mode',
703
+ limit: 'limit the number of installations to upgrade (optional)'
703
704
  },
704
705
  desc: `upgrades installations using one major version to another version. The version selection list displays:\n${itemList(['major version number', 'deployment date', 'number of installations'])}`,
705
706
  overViewVersionTable: (versions, environment) => `\nDetails for a total of [${versions} major versions] in [${environment}] can be seen below.\nWhere there are no upgrade paths available, use \`forge version compare\` to compare versions and see more information:\n`,
706
707
  promptVersionTable: 'Getting app version list...',
707
- selectTargetVersionToUpgrade: (installations) => `Please select version to upgrade existing ${installations} installations to:`,
708
+ selectTargetVersionToUpgrade: (sourceVersion) => {
709
+ const sourceVersionText = sourceVersion ? ` from version ${sourceVersion}` : '';
710
+ return `Please select a version to upgrade installations${sourceVersionText} to:`;
711
+ },
708
712
  error: {
709
713
  missingVersionUpgradeParameters: `Missing parameters:\nError: [version bulk-upgrade start --non-interactive] requires --from-version and --to-version`,
710
714
  appVersionRolloutRunning: `App version rollout for this app environment is already running. Use \`forge version bulk-upgrade list\` to identify the running upgrade and \`forge version bulk-upgrade cancel\` to cancel.`,
@@ -719,8 +723,29 @@ What do you like or don't like about Forge? Share your feedback below or press C
719
723
  appVersionRolloutSuccess(appRolloutVersionId) {
720
724
  return `Your upgrade has been queued with upgrade ID ${appRolloutVersionId}. To view that status of your update please use the \`forge version bulk-upgrade list\` command.`;
721
725
  },
722
- warningMessage: (sourceVersionId, targetVersionId, installations) => `${chalk_1.default.bold('Warning:')} You are planning to move ${installations} installations from version ${sourceVersionId} to version ${targetVersionId}.`,
723
- promptConfirmation: 'Do you want to continue?'
726
+ limitWarningUserLimit: (expectedRemaining, totalEligible, userLimit) => `${chalk_1.default.yellow('Warning:')} Due to the limit you specified (${userLimit}), ${expectedRemaining} out of the eligible ${totalEligible} upgrades will remain unprocessed.`,
727
+ limitWarningAdjustedLimit: (expectedRemaining, totalEligible, userLimit, appliedLimit) => `${chalk_1.default.yellow('Warning:')} The limit you supplied (${userLimit}) could not be honored and a limit of ${appliedLimit} has been applied. Due to this limit ${expectedRemaining} out of the eligible ${totalEligible} upgrades will remain unprocessed.`,
728
+ limitWarningSystemLimit: (expectedRemaining, totalEligible, systemLimit) => `${chalk_1.default.yellow('Warning:')} The number of eligible installations exceeded the per-workflow maximum (${systemLimit}). Due to this maximum ${expectedRemaining} out of the eligible ${totalEligible} upgrades will remain unprocessed.`,
729
+ limitWarningFollowUp: 'These unprocessed installations can be processed by starting a new workflow after the completion of this one.',
730
+ warningMessage: (sourceVersionId, targetVersionId, installations, limit, enforcedSystemLimit, userProvidedLimit) => {
731
+ const effectiveInstallations = limit !== undefined && limit < (installations || 0) ? limit : installations;
732
+ const installationText = effectiveInstallations === 1 ? 'installation' : 'installations';
733
+ let limitNote = '';
734
+ if (enforcedSystemLimit !== undefined && userProvidedLimit !== undefined) {
735
+ limitNote = `. Provided limit (${userProvidedLimit}) not honored due to system limit`;
736
+ }
737
+ return `${chalk_1.default.bold('Warning:')} You are planning to move ${effectiveInstallations} ${installationText} from version ${sourceVersionId} to version ${targetVersionId}${limitNote}.`;
738
+ },
739
+ promptConfirmation: 'Do you want to continue?',
740
+ promptLimit: (installations) => `How many installations to upgrade? (${installations} eligible):`,
741
+ promptLimitWithTargetInfo: (installations, upgradeLimit) => {
742
+ const eligibleText = `${installations} eligible`;
743
+ const limitText = upgradeLimit && (installations ?? 0) > upgradeLimit ? `, system limit: ${upgradeLimit}` : ``;
744
+ return `How many installations to upgrade? (${eligibleText}${limitText}):`;
745
+ },
746
+ limitValidationError: (max) => max !== undefined
747
+ ? `Please enter a valid number between 1 and ${max}, or leave empty for no limit.`
748
+ : `Please enter a valid number greater than 0, or leave empty for no limit.`
724
749
  },
725
750
  list: {
726
751
  cmdName: 'list',
@@ -1049,6 +1074,7 @@ ${buildTerminalLink(link)}\n`,
1049
1074
  noResourceId: 'Unknown site with no resource ID',
1050
1075
  noCloudId: 'Unknown workspace with no cloud ID',
1051
1076
  noResourceIdInWorkspace: 'Unknown workspace with no resource ID',
1077
+ noResourceIdInInstallation: 'Unknown installation with no resource ID',
1052
1078
  noInstallations: `The app is not installed anywhere.\nRun ${forge('install')} to install your app on an Atlassian site.\n`,
1053
1079
  status: {
1054
1080
  outdatedPermissions: 'Outdated permissions',
@@ -1138,6 +1164,7 @@ ${buildTerminalLink(link)}\n`,
1138
1164
  }
1139
1165
  },
1140
1166
  installationId: {
1167
+ option: 'specify the installation ID',
1141
1168
  prompt: "Enter the app's installation ID:",
1142
1169
  errors: {
1143
1170
  invalid: `Invalid installation ID. Run ${forge('install', 'list')} to see the installation IDs for the app.`,
@@ -1158,8 +1185,12 @@ ${buildTerminalLink(link)}\n`,
1158
1185
  confirmAllInstallations: 'This will uninstall the app from the listed contexts. Are you sure you want to continue?'
1159
1186
  },
1160
1187
  info: 'Uninstalling...',
1161
- done: (product, domain, environment, isMulti) => `${isMulti ? log_symbols_1.default.info : log_symbols_1.default.success} Uninstalled from the ${(0, environment_1.environmentToOption)(environment)} environment in ${product} on ${buildTerminalLink(domain)}.`,
1162
- failed: (product, domain, environment) => `Failed to uninstall the app from the ${(0, environment_1.environmentToOption)(environment)} environment in ${product} on ${buildTerminalLink(domain)}. Try rerunning the command, or ask for help if you continue to see this error.`,
1188
+ done: (product, domain, environment, isMulti) => product === 'Ecosystem'
1189
+ ? `${isMulti ? log_symbols_1.default.info : log_symbols_1.default.success} Uninstalled.`
1190
+ : `${isMulti ? log_symbols_1.default.info : log_symbols_1.default.success} Uninstalled from the ${(0, environment_1.environmentToOption)(environment)} environment in ${product} on ${buildTerminalLink(domain)}.`,
1191
+ failed: (product, domain, environment) => product === 'Ecosystem'
1192
+ ? `Failed to uninstall the app. Try rerunning the command, or ask for help if you continue to see this error.`
1193
+ : `Failed to uninstall the app from the ${(0, environment_1.environmentToOption)(environment)} environment in ${product} on ${buildTerminalLink(domain)}. Try rerunning the command, or ask for help if you continue to see this error.`,
1163
1194
  missingUninstallTask: `Cannot uninstall the app: something went wrong with starting the uninstall task.`,
1164
1195
  uninstallBatchBanner: (remainingInstallations) => log_color_1.LogColor.warn(`${log_symbols_1.default.info} ${chalk_1.default.bold(`Batch uninstallations are limited to ${installations_1.MAX_BATCH_UNINSTALLS} per request and there ${remainingInstallations > 1 ? `are ${remainingInstallations} installations` : 'is 1 installation'} remaining. Run the command multiple times to perform more uninstallations`)}`),
1165
1196
  uninstallBatchProductionError: `${log_symbols_1.default.error} ${chalk_1.default.bold('Batch uninstallations are not supported in production environments.')}`
@@ -1488,6 +1519,15 @@ When errors occur during Forge command execution, error details will be sent to
1488
1519
  }
1489
1520
  }
1490
1521
  },
1522
+ commandHelp: {
1523
+ groups: {
1524
+ quickStart: 'Quick Start',
1525
+ develop: 'Develop',
1526
+ manage: 'Manage',
1527
+ account: 'Account',
1528
+ cliExperience: 'CLI Experience'
1529
+ }
1530
+ },
1491
1531
  dynamicTable: {
1492
1532
  exiting: 'Exiting...'
1493
1533
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/cli-shared",
3
- "version": "8.22.1-next.1",
3
+ "version": "8.23.0-next.11",
4
4
  "description": "Common functionality for Forge CLI",
5
5
  "author": "Atlassian",
6
6
  "license": "SEE LICENSE IN LICENSE.txt",
@@ -12,10 +12,11 @@
12
12
  "generate-graphql-types": "graphql-codegen --config src/graphql/codegen.yml"
13
13
  },
14
14
  "dependencies": {
15
- "@forge/manifest": "12.8.0-next.1",
15
+ "@forge/manifest": "12.8.0-next.9",
16
16
  "@forge/util": "2.0.1",
17
17
  "@forge/i18n": "0.0.7",
18
18
  "@sentry/node": "7.106.0",
19
+ "@vercel/detect-agent": "^1.2.3",
19
20
  "adm-zip": "^0.5.10",
20
21
  "array.prototype.flatmap": "^1.3.3",
21
22
  "case": "^1.6.3",
@@ -47,6 +48,7 @@
47
48
  },
48
49
  "devDependencies": {
49
50
  "@atlassian/xen-test-util": "^4.2.0",
51
+ "@colors/colors": "1.5.0",
50
52
  "@graphql-codegen/add": "^5.0.2",
51
53
  "@graphql-codegen/cli": "^5.0.2",
52
54
  "@graphql-codegen/typescript": "^4.1.6",