@forge/cli-shared 9.4.0-next.5 → 9.4.0-next.6-experimental-ccd5143
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/out/graphql/graphql-types.d.ts +1020 -44
- package/out/graphql/graphql-types.d.ts.map +1 -1
- package/out/graphql/graphql-types.js +137 -55
- package/out/service/statsig-service.d.ts +7 -0
- package/out/service/statsig-service.d.ts.map +1 -1
- package/out/service/statsig-service.js +26 -0
- package/out/ui/command-line-ui.d.ts +11 -2
- package/out/ui/command-line-ui.d.ts.map +1 -1
- package/out/ui/command-line-ui.js +62 -1
- package/out/ui/hint-rotation.d.ts +5 -0
- package/out/ui/hint-rotation.d.ts.map +1 -0
- package/out/ui/hint-rotation.js +27 -0
- package/out/ui/text.d.ts +8 -0
- package/out/ui/text.d.ts.map +1 -1
- package/out/ui/text.js +10 -2
- package/out/ui/ui.d.ts +2 -1
- package/out/ui/ui.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import { AppEnvironmentType } from '../graphql/graphql-types';
|
|
2
2
|
import { CLIDetails, ConfigSectionReader, CredentialGetter, getEnvironmentConfig, Logger } from '../index';
|
|
3
3
|
export type FeatureGate = 'forge-cli-test-gate' | 'is-logs-v-2-api-enabled' | 'forge-cli-bundle-runtime-loader' | 'forge-cli-enable-teamwork-graph-product-support' | 'forge-cli-enable-developer-space-enforcement-flow' | 'forge-cli-enable-typescript-bundler' | 'forge-cli-enable-self-managed-tunnel' | 'fg-forge-cli-enable-combined-artifact-upload';
|
|
4
|
+
export interface CliHint {
|
|
5
|
+
weight: number;
|
|
6
|
+
categories: string[];
|
|
7
|
+
text: string;
|
|
8
|
+
}
|
|
4
9
|
export type DynamicConfig = {
|
|
5
10
|
'forge-cli-test-dynamic-configs': string[];
|
|
6
11
|
'xls-forge-cli-deprecated-runtimes': string[];
|
|
7
12
|
'forge-cli-enable-custom-spinner': string[];
|
|
13
|
+
'forge-cli-hints': string[];
|
|
8
14
|
};
|
|
9
15
|
export type DynamicConfigKey = keyof DynamicConfig;
|
|
10
16
|
export declare abstract class StatsigReader {
|
|
@@ -22,6 +28,7 @@ export declare abstract class StatsigReader {
|
|
|
22
28
|
isSelfManagedTunnelEnabled(): Promise<boolean>;
|
|
23
29
|
isCombinedArtifactUploadEnabled(environmentType: AppEnvironmentType): Promise<boolean>;
|
|
24
30
|
getCustomSpinnerConfig(): Promise<string[] | null>;
|
|
31
|
+
getHints(): Promise<CliHint[] | null>;
|
|
25
32
|
}
|
|
26
33
|
export declare function cacheStatsigResult<C, T>(getter: (this: C, ...args: any[]) => Promise<T>): (this: C, ...args: any[]) => Promise<T>;
|
|
27
34
|
export declare class StatsigService extends StatsigReader {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statsig-service.d.ts","sourceRoot":"","sources":["../../src/service/statsig-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EAEpB,MAAM,EAEP,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,WAAW,GACnB,qBAAqB,GACrB,yBAAyB,GACzB,iCAAiC,GACjC,iDAAiD,GACjD,mDAAmD,GACnD,qCAAqC,GACrC,sCAAsC,GACtC,8CAA8C,CAAC;AAEnD,MAAM,MAAM,aAAa,GAAG;IAC1B,gCAAgC,EAAE,MAAM,EAAE,CAAC;IAC3C,mCAAmC,EAAE,MAAM,EAAE,CAAC;IAC9C,iCAAiC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"statsig-service.d.ts","sourceRoot":"","sources":["../../src/service/statsig-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.StatsigService = exports.StatsigReader = void 0;
|
|
4
4
|
exports.cacheStatsigResult = cacheStatsigResult;
|
|
5
5
|
const index_1 = require("../index");
|
|
6
|
+
const HINT_SEPARATOR = '::';
|
|
7
|
+
const HINT_CATEGORY_SEPARATOR = ',';
|
|
8
|
+
function parseHint(configured) {
|
|
9
|
+
const weightEnd = configured.indexOf(HINT_SEPARATOR);
|
|
10
|
+
if (weightEnd <= 0) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
const categoriesEnd = configured.indexOf(HINT_SEPARATOR, weightEnd + HINT_SEPARATOR.length);
|
|
14
|
+
if (categoriesEnd < 0) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
const weight = Number(configured.slice(0, weightEnd));
|
|
18
|
+
const categories = configured
|
|
19
|
+
.slice(weightEnd + HINT_SEPARATOR.length, categoriesEnd)
|
|
20
|
+
.split(HINT_CATEGORY_SEPARATOR)
|
|
21
|
+
.map((category) => category.trim().toLowerCase())
|
|
22
|
+
.filter((category) => category.length > 0);
|
|
23
|
+
const text = configured.slice(categoriesEnd + HINT_SEPARATOR.length);
|
|
24
|
+
return text && categories.length > 0 && Number.isFinite(weight) && weight > 0
|
|
25
|
+
? { weight, categories, text }
|
|
26
|
+
: undefined;
|
|
27
|
+
}
|
|
6
28
|
class StatsigReader {
|
|
7
29
|
async testForgeCliTestGate() {
|
|
8
30
|
return (await this.checkGate('forge-cli-test-gate')) ?? false;
|
|
@@ -52,6 +74,10 @@ class StatsigReader {
|
|
|
52
74
|
async getCustomSpinnerConfig() {
|
|
53
75
|
return (await this.getDynamicConfig('forge-cli-enable-custom-spinner')) ?? null;
|
|
54
76
|
}
|
|
77
|
+
async getHints() {
|
|
78
|
+
const configured = await this.getDynamicConfig('forge-cli-hints');
|
|
79
|
+
return configured?.map(parseHint).filter((hint) => hint !== undefined) ?? null;
|
|
80
|
+
}
|
|
55
81
|
}
|
|
56
82
|
exports.StatsigReader = StatsigReader;
|
|
57
83
|
var STATSIG_API_KEYS;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Ora } from 'ora';
|
|
2
|
-
import { TableCell, TableOptions, UI } from './ui';
|
|
2
|
+
import { HintCategory, TableCell, TableOptions, UI } from './ui';
|
|
3
3
|
import { StatsigService } from '../service/statsig-service';
|
|
4
4
|
export interface ProgressResult {
|
|
5
5
|
successful: boolean;
|
|
@@ -15,6 +15,10 @@ export declare class CommandLineUI implements UI {
|
|
|
15
15
|
private insideProgress;
|
|
16
16
|
private statsigService;
|
|
17
17
|
private cachedSpinnerConfig;
|
|
18
|
+
private static HINT_ROTATION_INTERVAL_MS;
|
|
19
|
+
private hintLine;
|
|
20
|
+
private hintTimer;
|
|
21
|
+
private hintGeneration;
|
|
18
22
|
private addedProgressPadding;
|
|
19
23
|
private static ANSI_MOVE_CURSOR_UP_ONE;
|
|
20
24
|
private static ANSI_CLEAR_CURSOR_LINE;
|
|
@@ -27,7 +31,12 @@ export declare class CommandLineUI implements UI {
|
|
|
27
31
|
private prompt;
|
|
28
32
|
get traceEnabled(): boolean;
|
|
29
33
|
get debugEnabled(): boolean;
|
|
30
|
-
displayProgress<Result>(progress: () => Promise<Result>, startText: string, successText: string | ((result: Result) => string | ProgressResult)): Promise<Result>;
|
|
34
|
+
displayProgress<Result>(progress: () => Promise<Result>, startText: string, successText: string | ((result: Result) => string | ProgressResult), hintCategory?: HintCategory): Promise<Result>;
|
|
35
|
+
private startHintRotation;
|
|
36
|
+
private rotateHints;
|
|
37
|
+
private stripHintLine;
|
|
38
|
+
private clearHintTimer;
|
|
39
|
+
private stopHintRotation;
|
|
31
40
|
displayTemporaryMessage<Result>(progress: () => Promise<Result>, waitText: string): Promise<Result>;
|
|
32
41
|
trace(message: string): void;
|
|
33
42
|
debug(message: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-line-ui.d.ts","sourceRoot":"","sources":["../../src/ui/command-line-ui.ts"],"names":[],"mappings":"AAGA,OAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAQ/B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"command-line-ui.d.ts","sourceRoot":"","sources":["../../src/ui/command-line-ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ const text_1 = require("./text");
|
|
|
15
15
|
const multiple_table_prompt_1 = require("./multiple-table-prompt");
|
|
16
16
|
const single_table_prompt_1 = require("./single-table-prompt");
|
|
17
17
|
const shared_1 = require("../shared");
|
|
18
|
+
const hint_rotation_1 = require("./hint-rotation");
|
|
18
19
|
var ProgressLogType;
|
|
19
20
|
(function (ProgressLogType) {
|
|
20
21
|
ProgressLogType[ProgressLogType["startText"] = 0] = "startText";
|
|
@@ -33,6 +34,10 @@ class CommandLineUI {
|
|
|
33
34
|
insideProgress = false;
|
|
34
35
|
statsigService;
|
|
35
36
|
cachedSpinnerConfig = 'dots';
|
|
37
|
+
static HINT_ROTATION_INTERVAL_MS = 7000;
|
|
38
|
+
hintLine;
|
|
39
|
+
hintTimer;
|
|
40
|
+
hintGeneration = 0;
|
|
36
41
|
addedProgressPadding = false;
|
|
37
42
|
static ANSI_MOVE_CURSOR_UP_ONE = '\x1B[1A';
|
|
38
43
|
static ANSI_CLEAR_CURSOR_LINE = '\x1B[2K';
|
|
@@ -89,7 +94,7 @@ class CommandLineUI {
|
|
|
89
94
|
get debugEnabled() {
|
|
90
95
|
return this.verbose();
|
|
91
96
|
}
|
|
92
|
-
async displayProgress(progress, startText, successText) {
|
|
97
|
+
async displayProgress(progress, startText, successText, hintCategory) {
|
|
93
98
|
try {
|
|
94
99
|
this.insideProgress = true;
|
|
95
100
|
this.addedProgressPadding = false;
|
|
@@ -98,6 +103,9 @@ class CommandLineUI {
|
|
|
98
103
|
this.spinner.start();
|
|
99
104
|
}
|
|
100
105
|
this.log(startText, ProgressLogType.startText);
|
|
106
|
+
if (hintCategory) {
|
|
107
|
+
this.startHintRotation(hintCategory);
|
|
108
|
+
}
|
|
101
109
|
const result = await progress();
|
|
102
110
|
const progressResult = typeof successText === 'function' ? successText(result) : successText;
|
|
103
111
|
const isSuccessful = typeof progressResult === 'string' || progressResult.successful;
|
|
@@ -118,6 +126,54 @@ class CommandLineUI {
|
|
|
118
126
|
this.insideProgress = false;
|
|
119
127
|
}
|
|
120
128
|
}
|
|
129
|
+
startHintRotation(category) {
|
|
130
|
+
if (!this.spinner.isSpinning) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
const generation = ++this.hintGeneration;
|
|
134
|
+
this.statsigService
|
|
135
|
+
?.getHints()
|
|
136
|
+
.then((hints) => this.rotateHints(hints ?? [], generation, category))
|
|
137
|
+
.catch(() => this.debug(text_1.Text.hints.loadError));
|
|
138
|
+
}
|
|
139
|
+
rotateHints(hints, generation, category) {
|
|
140
|
+
if (generation !== this.hintGeneration) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const nextHint = (0, hint_rotation_1.createHintRotation)((0, hint_rotation_1.selectHintsForCategory)(hints, category));
|
|
144
|
+
let renderedHint = false;
|
|
145
|
+
const showNextHint = () => {
|
|
146
|
+
const text = nextHint();
|
|
147
|
+
if (text === undefined) {
|
|
148
|
+
this.clearHintTimer();
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
this.stripHintLine();
|
|
152
|
+
this.hintLine = '\n ' + chalk_1.default.dim('💡 ' + text);
|
|
153
|
+
this.spinner.text += this.hintLine;
|
|
154
|
+
renderedHint = true;
|
|
155
|
+
};
|
|
156
|
+
showNextHint();
|
|
157
|
+
if (renderedHint) {
|
|
158
|
+
this.clearHintTimer();
|
|
159
|
+
this.hintTimer = setInterval(showNextHint, CommandLineUI.HINT_ROTATION_INTERVAL_MS);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
stripHintLine() {
|
|
163
|
+
if (this.hintLine && this.spinner.text.endsWith(this.hintLine)) {
|
|
164
|
+
this.spinner.text = this.spinner.text.slice(0, -this.hintLine.length);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
clearHintTimer() {
|
|
168
|
+
clearInterval(this.hintTimer);
|
|
169
|
+
this.hintTimer = undefined;
|
|
170
|
+
}
|
|
171
|
+
stopHintRotation() {
|
|
172
|
+
this.hintGeneration++;
|
|
173
|
+
this.clearHintTimer();
|
|
174
|
+
this.stripHintLine();
|
|
175
|
+
this.hintLine = undefined;
|
|
176
|
+
}
|
|
121
177
|
async displayTemporaryMessage(progress, waitText) {
|
|
122
178
|
try {
|
|
123
179
|
this.insideProgress = true;
|
|
@@ -385,7 +441,11 @@ class CommandLineUI {
|
|
|
385
441
|
}
|
|
386
442
|
}
|
|
387
443
|
if (this.spinner.isSpinning) {
|
|
444
|
+
this.stripHintLine();
|
|
388
445
|
this.spinner.text += msg + '\n';
|
|
446
|
+
if (this.hintLine) {
|
|
447
|
+
this.spinner.text += this.hintLine;
|
|
448
|
+
}
|
|
389
449
|
}
|
|
390
450
|
else {
|
|
391
451
|
this.logger.log(msg);
|
|
@@ -408,6 +468,7 @@ class CommandLineUI {
|
|
|
408
468
|
}
|
|
409
469
|
}
|
|
410
470
|
stopProgressSpinner(success) {
|
|
471
|
+
this.stopHintRotation();
|
|
411
472
|
if (!this.spinner.isSpinning) {
|
|
412
473
|
return;
|
|
413
474
|
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { CliHint } from '../service/statsig-service';
|
|
2
|
+
import { HintCategory } from './ui';
|
|
3
|
+
export declare function selectHintsForCategory(hints: CliHint[], category: HintCategory): CliHint[];
|
|
4
|
+
export declare function createHintRotation(hints: CliHint[], random?: () => number): () => string | undefined;
|
|
5
|
+
//# sourceMappingURL=hint-rotation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hint-rotation.d.ts","sourceRoot":"","sources":["../../src/ui/hint-rotation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAOpC,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,EAAE,CAK1F;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,GAAE,MAAM,MAAoB,GAAG,MAAM,MAAM,GAAG,SAAS,CAsBjH"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.selectHintsForCategory = selectHintsForCategory;
|
|
4
|
+
exports.createHintRotation = createHintRotation;
|
|
5
|
+
const HINT_CATEGORY_ALL = 'all';
|
|
6
|
+
function selectHintsForCategory(hints, category) {
|
|
7
|
+
return hints.filter(({ categories }) => category === HINT_CATEGORY_ALL || categories.includes(category) || categories.includes(HINT_CATEGORY_ALL));
|
|
8
|
+
}
|
|
9
|
+
function createHintRotation(hints, random = Math.random) {
|
|
10
|
+
const remaining = [...hints];
|
|
11
|
+
return () => {
|
|
12
|
+
const total = remaining.reduce((sum, { weight }) => sum + weight, 0);
|
|
13
|
+
if (total <= 0) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
const target = random() * total;
|
|
17
|
+
let cumulative = 0;
|
|
18
|
+
for (const [index, hint] of remaining.entries()) {
|
|
19
|
+
cumulative += hint.weight;
|
|
20
|
+
if (target < cumulative) {
|
|
21
|
+
remaining.splice(index, 1);
|
|
22
|
+
return hint.text;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return remaining.pop().text;
|
|
26
|
+
};
|
|
27
|
+
}
|
package/out/ui/text.d.ts
CHANGED
|
@@ -82,6 +82,7 @@ export declare const Text: {
|
|
|
82
82
|
overviewWorkspace: string;
|
|
83
83
|
promptSite: string;
|
|
84
84
|
promptWorkspace: string;
|
|
85
|
+
noSiteHint: string;
|
|
85
86
|
};
|
|
86
87
|
upgradeContext: {
|
|
87
88
|
overview: (isCodeUpgrade: boolean, version?: string, isLatest?: boolean) => string;
|
|
@@ -293,6 +294,10 @@ export declare const Text: {
|
|
|
293
294
|
cmd: {
|
|
294
295
|
desc: string;
|
|
295
296
|
};
|
|
297
|
+
debug: {
|
|
298
|
+
demoSiteLookup: (siteUrl?: string | null, status?: string | null, expiresAt?: string | null) => string;
|
|
299
|
+
demoSiteLookupFailed: (message: string) => string;
|
|
300
|
+
};
|
|
296
301
|
provision: {
|
|
297
302
|
cmd: {
|
|
298
303
|
desc: string;
|
|
@@ -1345,6 +1350,9 @@ export declare const Text: {
|
|
|
1345
1350
|
dynamicTable: {
|
|
1346
1351
|
exiting: string;
|
|
1347
1352
|
};
|
|
1353
|
+
hints: {
|
|
1354
|
+
loadError: string;
|
|
1355
|
+
};
|
|
1348
1356
|
manifest: {
|
|
1349
1357
|
cmd: {
|
|
1350
1358
|
description: string;
|
package/out/ui/text.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/ui/text.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAO9D,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,GAAI,MAAM,MAAM,KAAG,MAAsD,CAAC;AAsDjG,eAAO,MAAM,IAAI;8BA/EgB,MAAM;eAKrB,MAAM;;;;;6BAyFD,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
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/ui/text.ts"],"names":[],"mappings":"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"}
|
package/out/ui/text.js
CHANGED
|
@@ -131,7 +131,8 @@ exports.Text = {
|
|
|
131
131
|
overviewSite: '\nEnter your site. For example, your-domain.atlassian.net\n',
|
|
132
132
|
overviewWorkspace: '\nEnter your workspace. For example, bitbucket.org/your-workspace\n',
|
|
133
133
|
promptSite: 'Enter the site URL:',
|
|
134
|
-
promptWorkspace: 'Enter the workspace URL:'
|
|
134
|
+
promptWorkspace: 'Enter the workspace URL:',
|
|
135
|
+
noSiteHint: `${chalk_1.default.green(`You don't have an active demo site. Run`)} ${forge('site', 'provision')} ${chalk_1.default.green(`to create a free demo site for development and testing, then install to it with`)} ${forge('install', '--demo-site')}${chalk_1.default.green('.')}\n`
|
|
135
136
|
},
|
|
136
137
|
upgradeContext: {
|
|
137
138
|
overview: (isCodeUpgrade, version, isLatest) => {
|
|
@@ -258,7 +259,7 @@ What do you like or don't like about Forge? Share your feedback below or press C
|
|
|
258
259
|
success: (appName) => `Created ${appName}`,
|
|
259
260
|
successDetails: (directory, validEnvironmentOptions) => `\nYour app is ready to work on, deploy, and install. We created ${validEnvironmentOptions.length} environments you can deploy to: ${validEnvironmentOptions
|
|
260
261
|
.map(environment_1.environmentToOption)
|
|
261
|
-
.join(', ')}.\n\nChange to directory ${chalk_1.default.bold(directory)} to see your app files.\n
|
|
262
|
+
.join(', ')}.\n\nChange to directory ${chalk_1.default.bold(directory)} to see your app files.\n`
|
|
262
263
|
},
|
|
263
264
|
intro: (givenDirectory) => `Creating an app in directory ${chalk_1.default.bold(givenDirectory)}.\n`,
|
|
264
265
|
introWithCurrentDirectory: (currentDirectory) => `Creating an app in your current directory:\n\n ${chalk_1.default.bold(currentDirectory)}\n`,
|
|
@@ -371,6 +372,10 @@ What do you like or don't like about Forge? Share your feedback below or press C
|
|
|
371
372
|
cmd: {
|
|
372
373
|
desc: 'manage demo sites'
|
|
373
374
|
},
|
|
375
|
+
debug: {
|
|
376
|
+
demoSiteLookup: (siteUrl, status, expiresAt) => `Demo site lookup: siteUrl=${siteUrl ?? 'none'}, status=${status ?? 'none'}, expiresAt=${expiresAt ?? 'none'}`,
|
|
377
|
+
demoSiteLookupFailed: (message) => `Demo site lookup failed, assuming the user has one so no hint is shown. ${message}`
|
|
378
|
+
},
|
|
374
379
|
provision: {
|
|
375
380
|
cmd: {
|
|
376
381
|
desc: 'provision a demo site for development and testing'
|
|
@@ -1632,6 +1637,9 @@ When errors occur during Forge command execution, error details will be sent to
|
|
|
1632
1637
|
dynamicTable: {
|
|
1633
1638
|
exiting: 'Exiting...'
|
|
1634
1639
|
},
|
|
1640
|
+
hints: {
|
|
1641
|
+
loadError: 'Failed to load CLI hints.'
|
|
1642
|
+
},
|
|
1635
1643
|
manifest: {
|
|
1636
1644
|
cmd: {
|
|
1637
1645
|
description: 'manage app manifest'
|
package/out/ui/ui.d.ts
CHANGED
|
@@ -26,9 +26,10 @@ export type TableOptions<Key extends string> = {
|
|
|
26
26
|
[K in Key]?: boolean;
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
|
+
export type HintCategory = 'create' | 'deploy' | 'all';
|
|
29
30
|
export interface UI extends Logger, Prompt {
|
|
30
31
|
emptyLine(): void;
|
|
31
|
-
displayProgress<Result>(progress: () => Promise<Result>, startText: string, successText: string | ((result: Result) => string | ProgressResult)): Promise<Result>;
|
|
32
|
+
displayProgress<Result>(progress: () => Promise<Result>, startText: string, successText: string | ((result: Result) => string | ProgressResult), hintCategory?: HintCategory): Promise<Result>;
|
|
32
33
|
displayTemporaryMessage<Result>(progress: () => Promise<Result>, waitText: string): Promise<Result>;
|
|
33
34
|
clearSpinner(): void;
|
|
34
35
|
table<Key extends string>(head: [Key, string][], data: Record<Key, TableCell>[] | undefined | null, options?: TableOptions<Key>): void;
|
package/out/ui/ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/ui/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,MAAM;IACrB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,aAAa,CAAC,CAAC,SAAS,MAAM,EAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,EAAE,EACZ,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,CAAA;KAAE,EAC3C,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,CAAC,CAAC,CAAC;IACd,uBAAuB,CAAC,CAAC,SAAS,MAAM,EACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,EAAE,EACZ,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,CAAA;KAAE,EAC3C,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,CAAC,CAAC,CAAC;IACd,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EAAE,EACjB,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrB,0BAA0B,CACxB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAE5D,MAAM,MAAM,YAAY,CAAC,GAAG,SAAS,MAAM,IAAI;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE;SAAG,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM;KAAE,CAAC;IACvD,SAAS,CAAC,EAAE;SAAG,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO;KAAE,CAAC;CACtC,CAAC;
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/ui/ui.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forge/cli-shared",
|
|
3
|
-
"version": "9.4.0-next.
|
|
3
|
+
"version": "9.4.0-next.6-experimental-ccd5143",
|
|
4
4
|
"description": "Common functionality for Forge CLI",
|
|
5
5
|
"author": "Atlassian",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"generate-graphql-types": "graphql-codegen --config src/graphql/codegen.yml"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@forge/manifest": "13.3.1-next.0",
|
|
15
|
+
"@forge/manifest": "13.3.1-next.0-experimental-ccd5143",
|
|
16
16
|
"@forge/util": "3.0.0",
|
|
17
17
|
"@forge/i18n": "1.0.0",
|
|
18
18
|
"@sentry/node": "7.106.0",
|