@forge/cli-shared 9.5.1-next.4 → 9.6.0-next.10
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 +42 -0
- package/out/graphql/graphql-types.d.ts +1523 -56
- package/out/graphql/graphql-types.d.ts.map +1 -1
- package/out/graphql/graphql-types.js +180 -60
- package/out/shared/developer-console.d.ts +10 -0
- package/out/shared/developer-console.d.ts.map +1 -0
- package/out/shared/developer-console.js +41 -0
- package/out/shared/index.d.ts +1 -0
- package/out/shared/index.d.ts.map +1 -1
- package/out/shared/index.js +1 -0
- package/out/ui/command-line-ui.d.ts +9 -1
- package/out/ui/command-line-ui.d.ts.map +1 -1
- package/out/ui/command-line-ui.js +100 -6
- package/out/ui/text.d.ts +16 -0
- package/out/ui/text.d.ts.map +1 -1
- package/out/ui/text.js +22 -5
- package/out/ui/ui.d.ts +2 -1
- package/out/ui/ui.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const getDevConsoleBaseUrl: () => string;
|
|
2
|
+
declare const DEV_CONSOLE_PATHS: {
|
|
3
|
+
readonly appOverview: (appId: string) => string;
|
|
4
|
+
readonly appDistribution: (appId: string) => string;
|
|
5
|
+
readonly developerSpace: (spaceId: string) => string;
|
|
6
|
+
};
|
|
7
|
+
export type DevConsolePage = keyof typeof DEV_CONSOLE_PATHS;
|
|
8
|
+
export declare const getDevConsoleUrl: <P extends DevConsolePage>(page: P, ...args: Parameters<(typeof DEV_CONSOLE_PATHS)[P]>) => string;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=developer-console.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"developer-console.d.ts","sourceRoot":"","sources":["../../src/shared/developer-console.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,QAAO,MAiBvC,CAAC;AAaF,QAAA,MAAM,iBAAiB;kCACA,MAAM;sCACF,MAAM;uCACL,MAAM;CACwB,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE5D,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,cAAc,EACvD,MAAM,CAAC,EACP,GAAG,MAAM,UAAU,CAAC,CAAC,OAAO,iBAAiB,EAAE,CAAC,CAAC,CAAC,KACjD,MAKF,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDevConsoleUrl = exports.getDevConsoleBaseUrl = void 0;
|
|
4
|
+
const gateway_1 = require("../graphql/gateway");
|
|
5
|
+
const ari_1 = require("@forge/util/packages/ari");
|
|
6
|
+
const getDevConsoleBaseUrl = () => {
|
|
7
|
+
if (process.env.FORGE_DEV_CONSOLE_URL) {
|
|
8
|
+
return process.env.FORGE_DEV_CONSOLE_URL;
|
|
9
|
+
}
|
|
10
|
+
const environment = (0, gateway_1.getEnvironmentConfig)();
|
|
11
|
+
switch (environment) {
|
|
12
|
+
case gateway_1.Environments.STG:
|
|
13
|
+
return 'https://developer.stg.internal.atlassian.com';
|
|
14
|
+
case gateway_1.Environments.FEDRAMP_MODERATE_STAGING:
|
|
15
|
+
return 'https://developer.stg.atlassian-us-gov-mod.com';
|
|
16
|
+
case gateway_1.Environments.FEDRAMP_MODERATE_PROD:
|
|
17
|
+
return 'https://developer.atlassian-us-gov-mod.com';
|
|
18
|
+
default:
|
|
19
|
+
return 'https://developer.atlassian.com';
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
exports.getDevConsoleBaseUrl = getDevConsoleBaseUrl;
|
|
23
|
+
const toAppUuid = (appId) => {
|
|
24
|
+
try {
|
|
25
|
+
const parsed = ari_1.EcosystemAppAri.parse(appId);
|
|
26
|
+
return parsed.appId;
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return appId;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
const DEV_CONSOLE_PATHS = {
|
|
33
|
+
appOverview: (appId) => `myapps/${toAppUuid(appId)}/overview`,
|
|
34
|
+
appDistribution: (appId) => `myapps/${toAppUuid(appId)}/manage/distribution`,
|
|
35
|
+
developerSpace: (spaceId) => `developer-space/${spaceId}`
|
|
36
|
+
};
|
|
37
|
+
const getDevConsoleUrl = (page, ...args) => {
|
|
38
|
+
const buildPath = DEV_CONSOLE_PATHS[page];
|
|
39
|
+
return `${(0, exports.getDevConsoleBaseUrl)()}/console/${buildPath(...args)}`;
|
|
40
|
+
};
|
|
41
|
+
exports.getDevConsoleUrl = getDevConsoleUrl;
|
package/out/shared/index.d.ts
CHANGED
|
@@ -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,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,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,KAAG,CAAC,EAA8B,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,qBAAqB,CAAC;AACpC,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,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,KAAG,CAAC,EAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
package/out/shared/index.js
CHANGED
|
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
tslib_1.__exportStar(require("./assertUnreachable"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./assistant-cli"), exports);
|
|
7
7
|
tslib_1.__exportStar(require("./cli-details"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./developer-console"), exports);
|
|
8
9
|
tslib_1.__exportStar(require("./directories"), exports);
|
|
9
10
|
tslib_1.__exportStar(require("./environment"), exports);
|
|
10
11
|
tslib_1.__exportStar(require("./forge-cli-attribution"), exports);
|
|
@@ -23,6 +23,9 @@ export declare class CommandLineUI implements UI {
|
|
|
23
23
|
private static ANSI_MOVE_CURSOR_UP_ONE;
|
|
24
24
|
private static ANSI_CLEAR_CURSOR_LINE;
|
|
25
25
|
private static NON_TTY_ENV_DEFAULT_COLUMNS;
|
|
26
|
+
private static STDIN_CHUNK_BYTES;
|
|
27
|
+
private static STDIN_RETRY_MS;
|
|
28
|
+
private static STDIN_READ_TIMEOUT_MS;
|
|
26
29
|
constructor(verbose: () => boolean, statsigService?: StatsigService, spinner?: Ora, logger?: Console, customEffectsEnabled?: (() => boolean) | undefined);
|
|
27
30
|
setStatsigService(statsigService: StatsigService): void;
|
|
28
31
|
private seasonalSpinnerEffectsEnabled;
|
|
@@ -46,9 +49,11 @@ export declare class CommandLineUI implements UI {
|
|
|
46
49
|
pad?: boolean | undefined;
|
|
47
50
|
}): void;
|
|
48
51
|
emptyLine(): void;
|
|
49
|
-
confirm(message: string): Promise<boolean>;
|
|
52
|
+
confirm(message: string, defaultChoice?: boolean): Promise<boolean>;
|
|
50
53
|
promptForText(message: string, defaultValue?: string): Promise<string>;
|
|
51
54
|
promptForSecret(message: string): Promise<string>;
|
|
55
|
+
readFromStdin(): string;
|
|
56
|
+
private static sleepSync;
|
|
52
57
|
promptForList<T extends string>(message: string, choices: T[], config?: {
|
|
53
58
|
format?: (choice: T) => string;
|
|
54
59
|
}, pageSize?: number): Promise<T>;
|
|
@@ -74,6 +79,9 @@ export declare class CommandLineUI implements UI {
|
|
|
74
79
|
private stopWaitSpinner;
|
|
75
80
|
clearSpinner(): void;
|
|
76
81
|
private promptForString;
|
|
82
|
+
private createPromptModule;
|
|
83
|
+
private createTtyBackedPromptModule;
|
|
84
|
+
private openTtyPromptModule;
|
|
77
85
|
private registerCustomUIElements;
|
|
78
86
|
formatKeyValueList(items: {
|
|
79
87
|
key: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-line-ui.d.ts","sourceRoot":"","sources":["../../src/ui/command-line-ui.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command-line-ui.d.ts","sourceRoot":"","sources":["../../src/ui/command-line-ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CommandLineUI = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
const fs = tslib_1.__importStar(require("fs"));
|
|
6
|
+
const tty = tslib_1.__importStar(require("tty"));
|
|
5
7
|
const cli_table3_1 = tslib_1.__importDefault(require("cli-table3"));
|
|
6
8
|
const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
|
|
7
9
|
const inquirer_autocomplete_prompt_1 = tslib_1.__importDefault(require("inquirer-autocomplete-prompt"));
|
|
@@ -42,12 +44,15 @@ class CommandLineUI {
|
|
|
42
44
|
static ANSI_MOVE_CURSOR_UP_ONE = '\x1B[1A';
|
|
43
45
|
static ANSI_CLEAR_CURSOR_LINE = '\x1B[2K';
|
|
44
46
|
static NON_TTY_ENV_DEFAULT_COLUMNS = 100;
|
|
47
|
+
static STDIN_CHUNK_BYTES = 256;
|
|
48
|
+
static STDIN_RETRY_MS = 10;
|
|
49
|
+
static STDIN_READ_TIMEOUT_MS = 30_000;
|
|
45
50
|
constructor(verbose, statsigService, spinner, logger, customEffectsEnabled) {
|
|
46
51
|
this.verbose = verbose;
|
|
47
52
|
this.customEffectsEnabled = customEffectsEnabled;
|
|
48
53
|
this.spinner = spinner || (0, ora_1.default)({ discardStdin: false });
|
|
49
54
|
this.logger = logger || console;
|
|
50
|
-
this.promptInternal =
|
|
55
|
+
this.promptInternal = this.createPromptModule();
|
|
51
56
|
this.statsigService = statsigService || null;
|
|
52
57
|
this.registerCustomUIElements();
|
|
53
58
|
}
|
|
@@ -238,13 +243,13 @@ class CommandLineUI {
|
|
|
238
243
|
emptyLine() {
|
|
239
244
|
this.log('');
|
|
240
245
|
}
|
|
241
|
-
async confirm(message) {
|
|
246
|
+
async confirm(message, defaultChoice = false) {
|
|
242
247
|
const { choice } = await this.prompt([
|
|
243
248
|
{
|
|
244
249
|
type: 'confirm',
|
|
245
250
|
name: 'choice',
|
|
246
251
|
message,
|
|
247
|
-
default:
|
|
252
|
+
default: defaultChoice
|
|
248
253
|
}
|
|
249
254
|
]);
|
|
250
255
|
return choice;
|
|
@@ -255,6 +260,44 @@ class CommandLineUI {
|
|
|
255
260
|
promptForSecret(message) {
|
|
256
261
|
return this.promptForString(message, true);
|
|
257
262
|
}
|
|
263
|
+
readFromStdin() {
|
|
264
|
+
const chunk = Buffer.alloc(CommandLineUI.STDIN_CHUNK_BYTES);
|
|
265
|
+
const collected = [];
|
|
266
|
+
const deadline = Date.now() + CommandLineUI.STDIN_READ_TIMEOUT_MS;
|
|
267
|
+
for (;;) {
|
|
268
|
+
let bytesRead;
|
|
269
|
+
try {
|
|
270
|
+
bytesRead = fs.readSync(0, chunk, 0, chunk.length, null);
|
|
271
|
+
}
|
|
272
|
+
catch (err) {
|
|
273
|
+
if (err.code === 'EAGAIN') {
|
|
274
|
+
if (Date.now() >= deadline) {
|
|
275
|
+
throw new Error('Failed to read from stdin: timed out waiting for input');
|
|
276
|
+
}
|
|
277
|
+
CommandLineUI.sleepSync(CommandLineUI.STDIN_RETRY_MS);
|
|
278
|
+
continue;
|
|
279
|
+
}
|
|
280
|
+
if (err.code === 'EOF') {
|
|
281
|
+
break;
|
|
282
|
+
}
|
|
283
|
+
throw new Error(`Failed to read from stdin: ${err.message}`);
|
|
284
|
+
}
|
|
285
|
+
if (bytesRead === 0) {
|
|
286
|
+
break;
|
|
287
|
+
}
|
|
288
|
+
const read = chunk.subarray(0, bytesRead);
|
|
289
|
+
const newlineIndex = read.indexOf(0x0a);
|
|
290
|
+
if (newlineIndex !== -1) {
|
|
291
|
+
collected.push(Buffer.from(read.subarray(0, newlineIndex)));
|
|
292
|
+
break;
|
|
293
|
+
}
|
|
294
|
+
collected.push(Buffer.from(read));
|
|
295
|
+
}
|
|
296
|
+
return Buffer.concat(collected).toString('utf8').trim();
|
|
297
|
+
}
|
|
298
|
+
static sleepSync(milliseconds) {
|
|
299
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, milliseconds);
|
|
300
|
+
}
|
|
258
301
|
async promptForList(message, choices, config, pageSize) {
|
|
259
302
|
const formattedChoices = config?.format ? choices.map((choice) => config?.format?.(choice)) : choices;
|
|
260
303
|
const { choice } = await this.prompt([
|
|
@@ -516,9 +559,60 @@ class CommandLineUI {
|
|
|
516
559
|
]);
|
|
517
560
|
return text;
|
|
518
561
|
}
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
562
|
+
createPromptModule() {
|
|
563
|
+
if (process.stdin.isTTY) {
|
|
564
|
+
return inquirer_1.default.createPromptModule({ skipTTYChecks: false });
|
|
565
|
+
}
|
|
566
|
+
return this.createTtyBackedPromptModule();
|
|
567
|
+
}
|
|
568
|
+
createTtyBackedPromptModule() {
|
|
569
|
+
let resolvedPromptModule;
|
|
570
|
+
const getOrCreatePromptModule = () => {
|
|
571
|
+
if (resolvedPromptModule)
|
|
572
|
+
return resolvedPromptModule;
|
|
573
|
+
resolvedPromptModule = this.openTtyPromptModule();
|
|
574
|
+
this.registerCustomUIElements(resolvedPromptModule);
|
|
575
|
+
return resolvedPromptModule;
|
|
576
|
+
};
|
|
577
|
+
return Object.assign((questions, initialAnswers) => getOrCreatePromptModule()(questions, initialAnswers), inquirer_1.default.createPromptModule({ skipTTYChecks: true }));
|
|
578
|
+
}
|
|
579
|
+
openTtyPromptModule() {
|
|
580
|
+
let ttyFd;
|
|
581
|
+
try {
|
|
582
|
+
ttyFd = fs.openSync('/dev/tty', 'r+');
|
|
583
|
+
}
|
|
584
|
+
catch {
|
|
585
|
+
}
|
|
586
|
+
if (ttyFd === undefined) {
|
|
587
|
+
return inquirer_1.default.createPromptModule({ skipTTYChecks: false });
|
|
588
|
+
}
|
|
589
|
+
let ttyInput;
|
|
590
|
+
try {
|
|
591
|
+
ttyInput = new tty.ReadStream(ttyFd);
|
|
592
|
+
}
|
|
593
|
+
catch (err) {
|
|
594
|
+
try {
|
|
595
|
+
fs.closeSync(ttyFd);
|
|
596
|
+
}
|
|
597
|
+
catch {
|
|
598
|
+
}
|
|
599
|
+
throw err;
|
|
600
|
+
}
|
|
601
|
+
const ttyPromptModule = inquirer_1.default.createPromptModule({ input: ttyInput, skipTTYChecks: true });
|
|
602
|
+
return Object.assign((questions, initialAnswers) => {
|
|
603
|
+
ttyInput.ref();
|
|
604
|
+
return ttyPromptModule(questions, initialAnswers).then((answers) => {
|
|
605
|
+
ttyInput.unref();
|
|
606
|
+
return answers;
|
|
607
|
+
}, (err) => {
|
|
608
|
+
ttyInput.unref();
|
|
609
|
+
throw err;
|
|
610
|
+
});
|
|
611
|
+
}, ttyPromptModule);
|
|
612
|
+
}
|
|
613
|
+
registerCustomUIElements(target = this.promptInternal) {
|
|
614
|
+
target.registerPrompt('multiple-choice-table', multiple_table_prompt_1.MultipleChoiceTablePrompt);
|
|
615
|
+
target.registerPrompt('single-choice-table', single_table_prompt_1.SingleChoiceTablePrompt);
|
|
522
616
|
this.promptInternal.registerPrompt('autocomplete', inquirer_autocomplete_prompt_1.default);
|
|
523
617
|
}
|
|
524
618
|
formatKeyValueList(items, indent, addNewLine) {
|
package/out/ui/text.d.ts
CHANGED
|
@@ -338,6 +338,13 @@ export declare const Text: {
|
|
|
338
338
|
};
|
|
339
339
|
confirmQuestion: string;
|
|
340
340
|
};
|
|
341
|
+
console: {
|
|
342
|
+
cmd: {
|
|
343
|
+
desc: string;
|
|
344
|
+
overviewLink: (url: string) => string;
|
|
345
|
+
missingAppId: string;
|
|
346
|
+
};
|
|
347
|
+
};
|
|
341
348
|
env: {
|
|
342
349
|
option: string;
|
|
343
350
|
invalid: string;
|
|
@@ -1032,6 +1039,12 @@ export declare const Text: {
|
|
|
1032
1039
|
create: {
|
|
1033
1040
|
cmd: string;
|
|
1034
1041
|
optionFunctionKey: string;
|
|
1042
|
+
optionReadSecretKey: string;
|
|
1043
|
+
optionNoKeyExpiry: string;
|
|
1044
|
+
promptSecretKey: string;
|
|
1045
|
+
promptKeyExpiry: string;
|
|
1046
|
+
errorSecretKeyNotBase64: string;
|
|
1047
|
+
errorNoKeyExpiryWithoutSecretKey: string;
|
|
1035
1048
|
};
|
|
1036
1049
|
list: {
|
|
1037
1050
|
cmd: string;
|
|
@@ -1137,6 +1150,9 @@ export declare const Text: {
|
|
|
1137
1150
|
overview: string;
|
|
1138
1151
|
entry: string;
|
|
1139
1152
|
};
|
|
1153
|
+
error: {
|
|
1154
|
+
keyRequiredForJson: string;
|
|
1155
|
+
};
|
|
1140
1156
|
listingImages: (key: string) => string;
|
|
1141
1157
|
noImagesFound: string;
|
|
1142
1158
|
promptNextPage: 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;
|
|
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
|
@@ -10,6 +10,7 @@ const terminal_link_1 = tslib_1.__importDefault(require("terminal-link"));
|
|
|
10
10
|
const graphql_types_1 = require("../graphql/graphql-types");
|
|
11
11
|
const cli_details_1 = require("../shared/cli-details");
|
|
12
12
|
const environment_1 = require("../shared/environment");
|
|
13
|
+
const developer_console_1 = require("../shared/developer-console");
|
|
13
14
|
const installations_1 = require("../shared/installations");
|
|
14
15
|
const log_color_1 = require("./log-color");
|
|
15
16
|
const log_symbols_1 = tslib_1.__importDefault(require("./log-symbols"));
|
|
@@ -353,7 +354,7 @@ What do you like or don't like about Forge? Share your feedback below or press C
|
|
|
353
354
|
return `${chalk_1.default.bold('Warning:')} Marketplace admin action required: Complete the ${buildTerminalLabeledLink('Developer Space setup', 'https://developer.atlassian.com/platform/forge/developer-space/create-developer-space/#who-can-create-a-developer-space')} to avoid ${buildTerminalLabeledLink('functionality limits', 'https://developer.atlassian.com/platform/forge/developer-space/create-developer-space/#developer-space-setup-and-app-limits')}.\n`;
|
|
354
355
|
},
|
|
355
356
|
developerSpaceSetupIncompleteLink: (developerSpaceId) => chalk_1.default.yellow(`Share this link with a Marketplace admin so they can finish setup:\n` +
|
|
356
|
-
` - Developer Space: ${buildTerminalLink(
|
|
357
|
+
` - Developer Space: ${buildTerminalLink((0, developer_console_1.getDevConsoleUrl)('developerSpace', developerSpaceId))}`)
|
|
357
358
|
},
|
|
358
359
|
terms: {
|
|
359
360
|
agreement: 'Please review the following agreement before continuing:\n',
|
|
@@ -420,6 +421,13 @@ What do you like or don't like about Forge? Share your feedback below or press C
|
|
|
420
421
|
},
|
|
421
422
|
confirmQuestion: 'Are you sure you want to overwrite the existing app details?'
|
|
422
423
|
},
|
|
424
|
+
console: {
|
|
425
|
+
cmd: {
|
|
426
|
+
desc: 'open your app in the developer console',
|
|
427
|
+
overviewLink: (url) => `Developer Console: ${buildTerminalLink(url)}`,
|
|
428
|
+
missingAppId: `Couldn't find an app id. Run this command from your app directory, or run ${forge('register')} to register the app first.`
|
|
429
|
+
}
|
|
430
|
+
},
|
|
423
431
|
env: {
|
|
424
432
|
option: `specify the environment (see your default environment by running ${forge('settings', 'list')})`,
|
|
425
433
|
invalid: 'Invalid environment name',
|
|
@@ -916,7 +924,7 @@ What do you like or don't like about Forge? Share your feedback below or press C
|
|
|
916
924
|
},
|
|
917
925
|
distributePageLink: (appId) => `To install on a site that you're an admin of, run ${forge('install')}.\n` +
|
|
918
926
|
'To install on any other site, generate an installation link in the developer console and share it with the site admin: ' +
|
|
919
|
-
|
|
927
|
+
buildTerminalLink((0, developer_console_1.getDevConsoleUrl)('appDistribution', appId))
|
|
920
928
|
},
|
|
921
929
|
taskLint: {
|
|
922
930
|
lintError: log_color_1.LogColor.error(`Error: The deploy failed due to errors in the app code. Fix the errors before rerunning ${forge('deploy')}, or run ${forge('deploy', '--no-verify')} to skip the linter.\n`),
|
|
@@ -995,7 +1003,7 @@ What do you like or don't like about Forge? Share your feedback below or press C
|
|
|
995
1003
|
marketplaceApp: (developerSpaceId) => `Deployment blocked - This app's Developer Space setup is incomplete.\n\n` +
|
|
996
1004
|
`Your Marketplace admin must complete the Developer Space setup to unblock deployment for this app and prevent further app limitations.\n\n` +
|
|
997
1005
|
`What to do: Share this setup link with your Marketplace admin:\n` +
|
|
998
|
-
buildTerminalLink(
|
|
1006
|
+
buildTerminalLink((0, developer_console_1.getDevConsoleUrl)('developerSpace', developerSpaceId))
|
|
999
1007
|
},
|
|
1000
1008
|
outdatedInstallations: `We've detected new scopes or egress URLs in your app.\n` +
|
|
1001
1009
|
`Run ${forge('install', '--upgrade')} and restart your tunnel to put them into effect.`,
|
|
@@ -1086,7 +1094,7 @@ What do you like or don't like about Forge? Share your feedback below or press C
|
|
|
1086
1094
|
permissionsDeniedInstructions: (requestId, appId) => `Insufficient permissions to install app (requestId: ${requestId})` +
|
|
1087
1095
|
'\n\nTo install the app on this site, generate an installation link ' +
|
|
1088
1096
|
'in the developer console and share it with the site admin: ' +
|
|
1089
|
-
|
|
1097
|
+
buildTerminalLink((0, developer_console_1.getDevConsoleUrl)('appDistribution', appId)),
|
|
1090
1098
|
appendRequestIdToErrorMessage: (message, requestId) => `${message} For more help on this issue, please reach out to support (${buildTerminalLink('https://developer.atlassian.com/support')}) and provide them the following request ID: ${requestId}`,
|
|
1091
1099
|
majorVersionNotFound: 'The major version you specified does not exist. Check the version number and try again.',
|
|
1092
1100
|
installationLimitReached: 'Installation error: The target site already has the maximum number of apps installed. To install this app there, uninstall any unused apps first.',
|
|
@@ -1306,7 +1314,13 @@ ${buildTerminalLink(link)}\n`,
|
|
|
1306
1314
|
promptInstallationTable: 'Select an installation:',
|
|
1307
1315
|
create: {
|
|
1308
1316
|
cmd: 'get a web trigger URL',
|
|
1309
|
-
optionFunctionKey: 'web trigger key from the manifest.yml file'
|
|
1317
|
+
optionFunctionKey: 'web trigger key from the manifest.yml file',
|
|
1318
|
+
optionReadSecretKey: 'read the secret key for an authenticated (HMAC) web trigger from stdin',
|
|
1319
|
+
optionNoKeyExpiry: 'create the web trigger URL with a key that does not expire',
|
|
1320
|
+
promptSecretKey: 'Enter the secret key for this HMAC web trigger:',
|
|
1321
|
+
promptKeyExpiry: 'Should this secret key expire? Keys expire 12 months after they are written.',
|
|
1322
|
+
errorSecretKeyNotBase64: 'The secret key must be a valid base64-encoded string.',
|
|
1323
|
+
errorNoKeyExpiryWithoutSecretKey: '--noKeyExpiry can only be used with an authenticated (HMAC) web trigger, which requires a secret key.'
|
|
1310
1324
|
},
|
|
1311
1325
|
list: {
|
|
1312
1326
|
cmd: 'list webtrigger URLs',
|
|
@@ -1424,6 +1438,9 @@ ${buildTerminalLink(link)}\n`,
|
|
|
1424
1438
|
overview: 'List all images for a container.',
|
|
1425
1439
|
entry: 'Enter the name of the container to list images for:'
|
|
1426
1440
|
},
|
|
1441
|
+
error: {
|
|
1442
|
+
keyRequiredForJson: '--json requires --key to be specified'
|
|
1443
|
+
},
|
|
1427
1444
|
listingImages: (key) => `Listing images for container with key '${key}'.`,
|
|
1428
1445
|
noImagesFound: `No images found.`,
|
|
1429
1446
|
promptNextPage: 'Load next page?'
|
package/out/ui/ui.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Logger } from './logger';
|
|
2
2
|
import { ProgressResult } from './command-line-ui';
|
|
3
3
|
export interface Prompt {
|
|
4
|
-
confirm(message: string): Promise<boolean>;
|
|
4
|
+
confirm(message: string, defaultChoice?: boolean): Promise<boolean>;
|
|
5
5
|
promptForText(message: string, defaultValue?: string): Promise<string>;
|
|
6
6
|
promptForSecret(message: string): Promise<string>;
|
|
7
|
+
readFromStdin(): string;
|
|
7
8
|
promptForList<T extends string>(message: string, choices: T[], config?: {
|
|
8
9
|
format?: (choice: T) => string;
|
|
9
10
|
}, pageSize?: number): Promise<T>;
|
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;
|
|
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.
|
|
3
|
+
"version": "9.6.0-next.10",
|
|
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.5.0-next.
|
|
15
|
+
"@forge/manifest": "13.5.0-next.5",
|
|
16
16
|
"@forge/util": "3.0.0",
|
|
17
17
|
"@forge/i18n": "1.0.0",
|
|
18
18
|
"@sentry/node": "7.106.0",
|