@salesforce/plugin-auth 2.4.1 → 2.5.0
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/lib/authBaseCommand.d.ts +11 -0
- package/lib/authBaseCommand.js +64 -0
- package/lib/authBaseCommand.js.map +1 -0
- package/lib/commands/auth/accesstoken/store.d.ts +15 -3
- package/lib/commands/auth/accesstoken/store.js +39 -31
- package/lib/commands/auth/accesstoken/store.js.map +1 -1
- package/lib/commands/auth/device/login.d.ts +16 -4
- package/lib/commands/auth/device/login.js +48 -33
- package/lib/commands/auth/device/login.js.map +1 -1
- package/lib/commands/auth/jwt/grant.d.ts +18 -3
- package/lib/commands/auth/jwt/grant.js +54 -31
- package/lib/commands/auth/jwt/grant.js.map +1 -1
- package/lib/commands/auth/list.d.ts +14 -4
- package/lib/commands/auth/list.js +17 -14
- package/lib/commands/auth/list.js.map +1 -1
- package/lib/commands/auth/logout.d.ts +15 -6
- package/lib/commands/auth/logout.js +47 -26
- package/lib/commands/auth/logout.js.map +1 -1
- package/lib/commands/auth/sfdxurl/store.d.ts +11 -3
- package/lib/commands/auth/sfdxurl/store.js +37 -24
- package/lib/commands/auth/sfdxurl/store.js.map +1 -1
- package/lib/commands/auth/web/login.d.ts +18 -3
- package/lib/commands/auth/web/login.js +49 -31
- package/lib/commands/auth/web/login.js.map +1 -1
- package/messages/accesstoken.store.md +22 -0
- package/messages/device.login.md +28 -0
- package/messages/jwt.grant.md +29 -0
- package/messages/list.md +15 -0
- package/messages/logout.md +45 -0
- package/messages/messages.md +58 -0
- package/messages/sfdxurl.store.md +27 -0
- package/messages/web.login.md +31 -0
- package/oclif.manifest.json +371 -626
- package/package.json +18 -16
- package/lib/prompts.d.ts +0 -11
- package/lib/prompts.js +0 -65
- package/lib/prompts.js.map +0 -1
- package/messages/accesstoken.store.json +0 -9
- package/messages/device.login.json +0 -11
- package/messages/jwt.grant.json +0 -11
- package/messages/list.json +0 -4
- package/messages/logout.json +0 -9
- package/messages/messages.json +0 -37
- package/messages/sfdxurl.store.json +0 -8
- package/messages/web.login.json +0 -12
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SfCommand } from '@salesforce/sf-plugins-core';
|
|
2
|
+
import { Config } from '@oclif/core';
|
|
3
|
+
export declare abstract class AuthBaseCommand<T> extends SfCommand<T> {
|
|
4
|
+
constructor(argv: string[], config: Config);
|
|
5
|
+
protected askForHiddenResponse(messageKey: string, disableMasking?: boolean): Promise<string>;
|
|
6
|
+
protected shouldExitCommand(noPrompt?: boolean, message?: string): Promise<boolean>;
|
|
7
|
+
protected shouldRunCommand(noPrompt?: boolean, message?: string, defaultAnswer?: boolean): Promise<boolean>;
|
|
8
|
+
protected askForClientSecret(disableMasking?: boolean): Promise<string>;
|
|
9
|
+
protected askForAccessToken(disableMasking?: boolean): Promise<string>;
|
|
10
|
+
protected askOverwriteAuthFile(username: string): Promise<boolean>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuthBaseCommand = void 0;
|
|
4
|
+
/*
|
|
5
|
+
* Copyright (c) 2020, salesforce.com, inc.
|
|
6
|
+
* All rights reserved.
|
|
7
|
+
* Licensed under the BSD 3-Clause license.
|
|
8
|
+
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
9
|
+
*/
|
|
10
|
+
const core_1 = require("@salesforce/core");
|
|
11
|
+
const chalk = require("chalk");
|
|
12
|
+
const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
|
|
13
|
+
core_1.Messages.importMessagesDirectory(__dirname);
|
|
14
|
+
const messages = core_1.Messages.loadMessages('@salesforce/plugin-auth', 'messages');
|
|
15
|
+
function dimMessage(message) {
|
|
16
|
+
return chalk.dim(message);
|
|
17
|
+
}
|
|
18
|
+
class AuthBaseCommand extends sf_plugins_core_1.SfCommand {
|
|
19
|
+
constructor(argv, config) {
|
|
20
|
+
super(argv, config);
|
|
21
|
+
}
|
|
22
|
+
async askForHiddenResponse(messageKey, disableMasking = false) {
|
|
23
|
+
const msg = dimMessage(messages.getMessage(messageKey));
|
|
24
|
+
const hidden = await this.prompt({
|
|
25
|
+
message: msg,
|
|
26
|
+
type: 'input',
|
|
27
|
+
name: 'response',
|
|
28
|
+
transformer: (input) => (disableMasking ? input : '*'.repeat(input.length)),
|
|
29
|
+
});
|
|
30
|
+
return hidden.response;
|
|
31
|
+
}
|
|
32
|
+
async shouldExitCommand(noPrompt, message) {
|
|
33
|
+
if (noPrompt || core_1.Global.getEnvironmentMode() !== core_1.Mode.DEMO) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
const msg = dimMessage(message ?? messages.getMessage('warnAuth', [this.config.bin]));
|
|
38
|
+
const answer = await this.confirm(msg);
|
|
39
|
+
return !answer;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
async shouldRunCommand(noPrompt, message, defaultAnswer = true) {
|
|
43
|
+
if (noPrompt || core_1.Global.getEnvironmentMode() === core_1.Mode.DEMO) {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
const msg = dimMessage(message ?? messages.getMessage('warnAuth', [this.config.bin]));
|
|
48
|
+
const answer = await this.confirm(msg, 10000, defaultAnswer);
|
|
49
|
+
return answer;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async askForClientSecret(disableMasking = false) {
|
|
53
|
+
return this.askForHiddenResponse('clientSecretStdin', disableMasking);
|
|
54
|
+
}
|
|
55
|
+
async askForAccessToken(disableMasking = false) {
|
|
56
|
+
return this.askForHiddenResponse('accessTokenStdin', disableMasking);
|
|
57
|
+
}
|
|
58
|
+
async askOverwriteAuthFile(username) {
|
|
59
|
+
const yN = await this.confirm(messages.getMessage('overwriteAccessTokenAuthUserFile', [username]));
|
|
60
|
+
return yN;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.AuthBaseCommand = AuthBaseCommand;
|
|
64
|
+
//# sourceMappingURL=authBaseCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authBaseCommand.js","sourceRoot":"","sources":["../src/authBaseCommand.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,2CAA0D;AAC1D,+BAA+B;AAC/B,iEAAwD;AAGxD,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAC;AAE9E,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC;AAED,MAAsB,eAAmB,SAAQ,2BAAY;IAC3D,YAAmB,IAAc,EAAE,MAAc;QAC/C,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtB,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,UAAkB,EAAE,cAAc,GAAG,KAAK;QAC7E,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;QACxD,MAAM,MAAM,GAAyB,MAAM,IAAI,CAAC,MAAM,CAAC;YACrD,OAAO,EAAE,GAAG;YACZ,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SACpF,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,QAAkB,EAAE,OAAgB;QACpE,IAAI,QAAQ,IAAI,aAAM,CAAC,kBAAkB,EAAE,KAAK,WAAI,CAAC,IAAI,EAAE;YACzD,OAAO,KAAK,CAAC;SACd;aAAM;YACL,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACvC,OAAO,CAAC,MAAM,CAAC;SAChB;IACH,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,QAAkB,EAAE,OAAgB,EAAE,aAAa,GAAG,IAAI;QACzF,IAAI,QAAQ,IAAI,aAAM,CAAC,kBAAkB,EAAE,KAAK,WAAI,CAAC,IAAI,EAAE;YACzD,OAAO,IAAI,CAAC;SACb;aAAM;YACL,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC;SACf;IACH,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAC,cAAc,GAAG,KAAK;QACvD,OAAO,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IACxE,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,cAAc,GAAG,KAAK;QACtD,OAAO,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;IACvE,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,QAAgB;QACnD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,kCAAkC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnG,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAhDD,0CAgDC"}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
2
|
import { AuthFields } from '@salesforce/core';
|
|
3
|
-
|
|
3
|
+
import { Interfaces } from '@oclif/core';
|
|
4
|
+
import { AuthBaseCommand } from '../../../authBaseCommand';
|
|
5
|
+
export default class Store extends AuthBaseCommand<AuthFields> {
|
|
6
|
+
static readonly summary: string;
|
|
4
7
|
static readonly description: string;
|
|
5
8
|
static readonly examples: string[];
|
|
9
|
+
static readonly deprecateAliases = true;
|
|
6
10
|
static aliases: string[];
|
|
7
|
-
static readonly
|
|
11
|
+
static readonly flags: {
|
|
12
|
+
'instance-url': Interfaces.OptionFlag<import("url").URL, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
13
|
+
'set-default-dev-hub': Interfaces.BooleanFlag<boolean>;
|
|
14
|
+
'set-default': Interfaces.BooleanFlag<boolean>;
|
|
15
|
+
alias: Interfaces.OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
16
|
+
'no-prompt': Interfaces.BooleanFlag<boolean>;
|
|
17
|
+
loglevel: Interfaces.OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
18
|
+
};
|
|
19
|
+
private flags;
|
|
8
20
|
run(): Promise<AuthFields>;
|
|
9
21
|
private getUserInfo;
|
|
10
22
|
private storeAuthFromAccessToken;
|
|
@@ -6,19 +6,20 @@
|
|
|
6
6
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
const
|
|
10
|
-
const command_1 = require("@salesforce/command");
|
|
9
|
+
const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
|
|
11
10
|
const core_1 = require("@salesforce/core");
|
|
12
11
|
const ts_types_1 = require("@salesforce/ts-types");
|
|
13
12
|
const kit_1 = require("@salesforce/kit");
|
|
14
|
-
const
|
|
13
|
+
const authBaseCommand_1 = require("../../../authBaseCommand");
|
|
15
14
|
core_1.Messages.importMessagesDirectory(__dirname);
|
|
16
15
|
const messages = core_1.Messages.loadMessages('@salesforce/plugin-auth', 'accesstoken.store');
|
|
17
16
|
const commonMessages = core_1.Messages.loadMessages('@salesforce/plugin-auth', 'messages');
|
|
18
17
|
const ACCESS_TOKEN_FORMAT = '"<org id>!<accesstoken>"';
|
|
19
|
-
class Store extends
|
|
18
|
+
class Store extends authBaseCommand_1.AuthBaseCommand {
|
|
20
19
|
async run() {
|
|
21
|
-
const
|
|
20
|
+
const { flags } = await this.parse(Store);
|
|
21
|
+
this.flags = flags;
|
|
22
|
+
const instanceUrl = (0, ts_types_1.ensureString)((0, ts_types_1.getString)(flags, 'instance-url.href'));
|
|
22
23
|
const accessToken = await this.getAccessToken();
|
|
23
24
|
const authInfo = await this.getUserInfo(accessToken, instanceUrl);
|
|
24
25
|
return this.storeAuthFromAccessToken(authInfo);
|
|
@@ -35,36 +36,30 @@ class Store extends command_1.SfdxCommand {
|
|
|
35
36
|
authInfo.getUsername(),
|
|
36
37
|
authInfo.getFields(true).orgId,
|
|
37
38
|
]);
|
|
38
|
-
this.
|
|
39
|
+
this.logSuccess(successMsg);
|
|
39
40
|
}
|
|
40
41
|
return authInfo.getFields(true);
|
|
41
42
|
}
|
|
42
43
|
async saveAuthInfo(authInfo) {
|
|
43
44
|
await authInfo.save();
|
|
44
45
|
await authInfo.handleAliasAndDefaultSettings({
|
|
45
|
-
alias: this.flags.
|
|
46
|
-
setDefault: this.flags
|
|
47
|
-
setDefaultDevHub: this.flags
|
|
46
|
+
alias: this.flags.alias,
|
|
47
|
+
setDefault: this.flags['set-default'],
|
|
48
|
+
setDefaultDevHub: this.flags['set-default-dev-hub'],
|
|
48
49
|
});
|
|
49
50
|
await core_1.AuthInfo.identifyPossibleScratchOrgs(authInfo.getFields(true), authInfo);
|
|
50
51
|
}
|
|
51
52
|
async overwriteAuthInfo(username) {
|
|
52
|
-
if (!this.flags
|
|
53
|
+
if (!this.flags['no-prompt']) {
|
|
53
54
|
const stateAggregator = await core_1.StateAggregator.getInstance();
|
|
54
55
|
if (await stateAggregator.orgs.exists(username)) {
|
|
55
|
-
return
|
|
56
|
+
return this.askOverwriteAuthFile(username);
|
|
56
57
|
}
|
|
57
58
|
}
|
|
58
59
|
return true;
|
|
59
60
|
}
|
|
60
61
|
async getAccessToken() {
|
|
61
|
-
|
|
62
|
-
if (kit_1.env.getString('SFDX_ACCESS_TOKEN')) {
|
|
63
|
-
accessToken = kit_1.env.getString('SFDX_ACCESS_TOKEN');
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
accessToken = await prompts_1.Prompts.askForAccessToken(this.ux);
|
|
67
|
-
}
|
|
62
|
+
const accessToken = kit_1.env.getString('SFDX_ACCESS_TOKEN') ?? (await this.askForAccessToken());
|
|
68
63
|
if (!core_1.sfdc.matchesAccessToken(accessToken)) {
|
|
69
64
|
throw new core_1.SfError(messages.getMessage('invalidAccessTokenFormat', [ACCESS_TOKEN_FORMAT]));
|
|
70
65
|
}
|
|
@@ -72,34 +67,47 @@ class Store extends command_1.SfdxCommand {
|
|
|
72
67
|
}
|
|
73
68
|
}
|
|
74
69
|
exports.default = Store;
|
|
75
|
-
Store.
|
|
76
|
-
Store.
|
|
70
|
+
Store.summary = messages.getMessage('summary');
|
|
71
|
+
Store.description = messages.getMessage('description');
|
|
72
|
+
Store.examples = messages.getMessages('examples');
|
|
73
|
+
Store.deprecateAliases = true;
|
|
77
74
|
Store.aliases = ['force:auth:accesstoken:store'];
|
|
78
|
-
Store.
|
|
79
|
-
|
|
75
|
+
Store.flags = {
|
|
76
|
+
'instance-url': sf_plugins_core_1.Flags.url({
|
|
80
77
|
char: 'r',
|
|
81
|
-
|
|
78
|
+
summary: commonMessages.getMessage('instanceUrl'),
|
|
82
79
|
required: true,
|
|
80
|
+
deprecateAliases: true,
|
|
81
|
+
aliases: ['instanceurl'],
|
|
83
82
|
}),
|
|
84
|
-
|
|
83
|
+
'set-default-dev-hub': sf_plugins_core_1.Flags.boolean({
|
|
85
84
|
char: 'd',
|
|
86
|
-
|
|
85
|
+
summary: commonMessages.getMessage('setDefaultDevHub'),
|
|
87
86
|
default: false,
|
|
87
|
+
deprecateAliases: true,
|
|
88
|
+
aliases: ['setdefaultdevhub'],
|
|
88
89
|
}),
|
|
89
|
-
|
|
90
|
+
'set-default': sf_plugins_core_1.Flags.boolean({
|
|
90
91
|
char: 's',
|
|
91
|
-
|
|
92
|
+
summary: commonMessages.getMessage('setDefaultUsername'),
|
|
92
93
|
default: false,
|
|
94
|
+
deprecateAliases: true,
|
|
95
|
+
aliases: ['setdefaultusername'],
|
|
93
96
|
}),
|
|
94
|
-
|
|
97
|
+
alias: sf_plugins_core_1.Flags.string({
|
|
95
98
|
char: 'a',
|
|
96
|
-
|
|
99
|
+
summary: commonMessages.getMessage('setAlias'),
|
|
100
|
+
deprecateAliases: true,
|
|
101
|
+
aliases: ['setalias'],
|
|
97
102
|
}),
|
|
98
|
-
|
|
103
|
+
'no-prompt': sf_plugins_core_1.Flags.boolean({
|
|
99
104
|
char: 'p',
|
|
100
|
-
|
|
105
|
+
summary: commonMessages.getMessage('noPrompt'),
|
|
101
106
|
required: false,
|
|
102
107
|
default: false,
|
|
108
|
+
deprecateAliases: true,
|
|
109
|
+
aliases: ['noprompt'],
|
|
103
110
|
}),
|
|
111
|
+
loglevel: sf_plugins_core_1.loglevel,
|
|
104
112
|
};
|
|
105
113
|
//# sourceMappingURL=store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/commands/auth/accesstoken/store.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/commands/auth/accesstoken/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
2
|
import { AuthFields } from '@salesforce/core';
|
|
3
|
-
|
|
3
|
+
import { DeviceCodeResponse } from '@salesforce/core/lib/deviceOauthService';
|
|
4
|
+
import { AuthBaseCommand } from '../../../authBaseCommand';
|
|
5
|
+
export type DeviceLoginResult = (AuthFields & DeviceCodeResponse) | Record<string, never>;
|
|
6
|
+
export default class Login extends AuthBaseCommand<DeviceLoginResult> {
|
|
7
|
+
static readonly summary: string;
|
|
4
8
|
static readonly description: string;
|
|
5
9
|
static readonly examples: string[];
|
|
6
10
|
static aliases: string[];
|
|
7
|
-
static readonly
|
|
8
|
-
|
|
11
|
+
static readonly flags: {
|
|
12
|
+
'client-id': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
13
|
+
'instance-url': import("@oclif/core/lib/interfaces").OptionFlag<import("url").URL | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
14
|
+
'set-default-dev-hub': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
'set-default': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
16
|
+
alias: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
17
|
+
'disable-masking': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
18
|
+
loglevel: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
19
|
+
};
|
|
20
|
+
run(): Promise<DeviceLoginResult>;
|
|
9
21
|
}
|
|
@@ -6,49 +6,50 @@
|
|
|
6
6
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
const os = require("os");
|
|
10
|
-
const command_1 = require("@salesforce/command");
|
|
11
9
|
const core_1 = require("@salesforce/core");
|
|
12
10
|
const ts_types_1 = require("@salesforce/ts-types");
|
|
13
|
-
const
|
|
11
|
+
const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
|
|
12
|
+
const core_2 = require("@oclif/core");
|
|
13
|
+
const authBaseCommand_1 = require("../../../authBaseCommand");
|
|
14
14
|
const common_1 = require("../../../common");
|
|
15
15
|
core_1.Messages.importMessagesDirectory(__dirname);
|
|
16
16
|
const messages = core_1.Messages.loadMessages('@salesforce/plugin-auth', 'device.login');
|
|
17
17
|
const commonMessages = core_1.Messages.loadMessages('@salesforce/plugin-auth', 'messages');
|
|
18
|
-
class Login extends
|
|
18
|
+
class Login extends authBaseCommand_1.AuthBaseCommand {
|
|
19
19
|
async run() {
|
|
20
|
-
|
|
20
|
+
const { flags } = await this.parse(Login);
|
|
21
|
+
if (await this.shouldExitCommand(false))
|
|
21
22
|
return {};
|
|
22
23
|
const oauthConfig = {
|
|
23
|
-
loginUrl: await common_1.Common.resolveLoginUrl((0, ts_types_1.get)(
|
|
24
|
-
clientId:
|
|
24
|
+
loginUrl: await common_1.Common.resolveLoginUrl((0, ts_types_1.get)(flags.instanceurl, 'href', null)),
|
|
25
|
+
clientId: flags.clientid,
|
|
25
26
|
};
|
|
26
|
-
if (
|
|
27
|
-
oauthConfig.clientSecret = await
|
|
27
|
+
if (flags.clientid) {
|
|
28
|
+
oauthConfig.clientSecret = await this.askForClientSecret(flags['disable-masking']);
|
|
28
29
|
}
|
|
29
30
|
const deviceOauthService = await core_1.DeviceOauthService.create(oauthConfig);
|
|
30
31
|
const loginData = await deviceOauthService.requestDeviceLogin();
|
|
31
|
-
if (this.
|
|
32
|
-
|
|
32
|
+
if (this.jsonEnabled()) {
|
|
33
|
+
core_2.ux.log(JSON.stringify(loginData, null, 2));
|
|
33
34
|
}
|
|
34
35
|
else {
|
|
35
|
-
this.
|
|
36
|
-
this.
|
|
37
|
-
this.
|
|
36
|
+
this.styledHeader(messages.getMessage('actionRequired'));
|
|
37
|
+
this.log(messages.getMessage('enterCode', [loginData.user_code, loginData.verification_uri]));
|
|
38
|
+
this.log();
|
|
38
39
|
}
|
|
39
40
|
const approval = await deviceOauthService.awaitDeviceApproval(loginData);
|
|
40
41
|
if (approval) {
|
|
41
42
|
const authInfo = await deviceOauthService.authorizeAndSave(approval);
|
|
42
43
|
await authInfo.handleAliasAndDefaultSettings({
|
|
43
|
-
alias:
|
|
44
|
-
setDefault:
|
|
45
|
-
setDefaultDevHub:
|
|
44
|
+
alias: flags.alias,
|
|
45
|
+
setDefault: flags['set-default'],
|
|
46
|
+
setDefaultDevHub: flags['set-default-dev-hub'],
|
|
46
47
|
});
|
|
47
48
|
const fields = authInfo.getFields(true);
|
|
48
49
|
await core_1.AuthInfo.identifyPossibleScratchOrgs(fields, authInfo);
|
|
49
50
|
const successMsg = messages.getMessage('success', [fields.username]);
|
|
50
|
-
this.
|
|
51
|
-
return fields;
|
|
51
|
+
this.logSuccess(successMsg);
|
|
52
|
+
return { ...fields, ...loginData };
|
|
52
53
|
}
|
|
53
54
|
else {
|
|
54
55
|
return {};
|
|
@@ -56,33 +57,47 @@ class Login extends command_1.SfdxCommand {
|
|
|
56
57
|
}
|
|
57
58
|
}
|
|
58
59
|
exports.default = Login;
|
|
60
|
+
Login.summary = messages.getMessage('summary');
|
|
59
61
|
Login.description = messages.getMessage('description');
|
|
60
|
-
Login.examples = messages.
|
|
62
|
+
Login.examples = messages.getMessages('examples');
|
|
61
63
|
Login.aliases = ['force:auth:device:login'];
|
|
62
|
-
Login.
|
|
63
|
-
|
|
64
|
+
Login.flags = {
|
|
65
|
+
'client-id': sf_plugins_core_1.Flags.string({
|
|
64
66
|
char: 'i',
|
|
65
|
-
|
|
67
|
+
summary: commonMessages.getMessage('clientId'),
|
|
68
|
+
deprecateAliases: true,
|
|
69
|
+
aliases: ['clientid'],
|
|
66
70
|
}),
|
|
67
|
-
|
|
71
|
+
'instance-url': sf_plugins_core_1.Flags.url({
|
|
68
72
|
char: 'r',
|
|
69
|
-
|
|
73
|
+
summary: commonMessages.getMessage('instanceUrl'),
|
|
74
|
+
deprecateAliases: true,
|
|
75
|
+
aliases: ['instanceurl'],
|
|
70
76
|
}),
|
|
71
|
-
|
|
77
|
+
'set-default-dev-hub': sf_plugins_core_1.Flags.boolean({
|
|
72
78
|
char: 'd',
|
|
73
|
-
|
|
79
|
+
summary: commonMessages.getMessage('setDefaultDevHub'),
|
|
80
|
+
deprecateAliases: true,
|
|
81
|
+
aliases: ['setdefaultdevhub'],
|
|
74
82
|
}),
|
|
75
|
-
|
|
83
|
+
'set-default': sf_plugins_core_1.Flags.boolean({
|
|
76
84
|
char: 's',
|
|
77
|
-
|
|
85
|
+
summary: commonMessages.getMessage('setDefaultUsername'),
|
|
86
|
+
deprecateAliases: true,
|
|
87
|
+
aliases: ['setdefaultusername'],
|
|
78
88
|
}),
|
|
79
|
-
|
|
89
|
+
alias: sf_plugins_core_1.Flags.string({
|
|
80
90
|
char: 'a',
|
|
81
|
-
|
|
91
|
+
summary: commonMessages.getMessage('setAlias'),
|
|
92
|
+
deprecateAliases: true,
|
|
93
|
+
aliases: ['setalias'],
|
|
82
94
|
}),
|
|
83
|
-
|
|
84
|
-
|
|
95
|
+
'disable-masking': sf_plugins_core_1.Flags.boolean({
|
|
96
|
+
summary: commonMessages.getMessage('disableMasking'),
|
|
85
97
|
hidden: true,
|
|
98
|
+
deprecateAliases: true,
|
|
99
|
+
aliases: ['disablemasking'],
|
|
86
100
|
}),
|
|
101
|
+
loglevel: sf_plugins_core_1.loglevel,
|
|
87
102
|
};
|
|
88
103
|
//# sourceMappingURL=login.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../../src/commands/auth/device/login.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../../src/commands/auth/device/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
2
|
import { AuthFields } from '@salesforce/core';
|
|
3
|
-
|
|
3
|
+
import { Interfaces } from '@oclif/core';
|
|
4
|
+
import { AuthBaseCommand } from '../../../authBaseCommand';
|
|
5
|
+
export default class Grant extends AuthBaseCommand<AuthFields> {
|
|
6
|
+
static readonly summary: string;
|
|
4
7
|
static readonly description: string;
|
|
5
8
|
static readonly examples: string[];
|
|
6
9
|
static aliases: string[];
|
|
7
|
-
static readonly
|
|
10
|
+
static readonly flags: {
|
|
11
|
+
username: Interfaces.OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
12
|
+
'jwt-key-file': Interfaces.OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
13
|
+
'client-id': Interfaces.OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
14
|
+
'instance-url': Interfaces.OptionFlag<import("url").URL | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
15
|
+
'set-default-dev-hub': Interfaces.BooleanFlag<boolean>;
|
|
16
|
+
'set-default': Interfaces.BooleanFlag<boolean>;
|
|
17
|
+
alias: Interfaces.OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
18
|
+
'no-prompt': Interfaces.BooleanFlag<boolean>;
|
|
19
|
+
loglevel: Interfaces.OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
20
|
+
};
|
|
21
|
+
private flags;
|
|
22
|
+
private logger;
|
|
8
23
|
run(): Promise<AuthFields>;
|
|
9
24
|
private initAuthInfo;
|
|
10
25
|
}
|
|
@@ -6,26 +6,31 @@
|
|
|
6
6
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
const
|
|
10
|
-
const command_1 = require("@salesforce/command");
|
|
9
|
+
const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
|
|
11
10
|
const core_1 = require("@salesforce/core");
|
|
12
11
|
const ts_types_1 = require("@salesforce/ts-types");
|
|
13
|
-
const
|
|
12
|
+
const authBaseCommand_1 = require("../../../authBaseCommand");
|
|
14
13
|
const common_1 = require("../../../common");
|
|
15
14
|
core_1.Messages.importMessagesDirectory(__dirname);
|
|
16
15
|
const messages = core_1.Messages.loadMessages('@salesforce/plugin-auth', 'jwt.grant');
|
|
17
16
|
const commonMessages = core_1.Messages.loadMessages('@salesforce/plugin-auth', 'messages');
|
|
18
|
-
class Grant extends
|
|
17
|
+
class Grant extends authBaseCommand_1.AuthBaseCommand {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
this.logger = core_1.Logger.childFromRoot(this.constructor.name);
|
|
21
|
+
}
|
|
19
22
|
async run() {
|
|
23
|
+
const { flags } = await this.parse(Grant);
|
|
24
|
+
this.flags = flags;
|
|
20
25
|
let result = {};
|
|
21
|
-
if (await
|
|
26
|
+
if (await this.shouldExitCommand(flags['no-prompt']))
|
|
22
27
|
return {};
|
|
23
28
|
try {
|
|
24
29
|
const authInfo = await this.initAuthInfo();
|
|
25
30
|
await authInfo.handleAliasAndDefaultSettings({
|
|
26
|
-
alias:
|
|
27
|
-
setDefault:
|
|
28
|
-
setDefaultDevHub:
|
|
31
|
+
alias: flags.alias,
|
|
32
|
+
setDefault: flags['set-default'],
|
|
33
|
+
setDefaultDevHub: flags['set-default-dev-hub'],
|
|
29
34
|
});
|
|
30
35
|
result = authInfo.getFields(true);
|
|
31
36
|
await core_1.AuthInfo.identifyPossibleScratchOrgs(result, authInfo);
|
|
@@ -35,15 +40,15 @@ class Grant extends command_1.SfdxCommand {
|
|
|
35
40
|
throw messages.createError('JwtGrantError', [msg]);
|
|
36
41
|
}
|
|
37
42
|
const successMsg = commonMessages.getMessage('authorizeCommandSuccess', [result.username, result.orgId]);
|
|
38
|
-
this.
|
|
43
|
+
this.logSuccess(successMsg);
|
|
39
44
|
return result;
|
|
40
45
|
}
|
|
41
46
|
async initAuthInfo() {
|
|
42
47
|
const oauth2OptionsBase = {
|
|
43
|
-
clientId: this.flags
|
|
44
|
-
privateKeyFile: this.flags
|
|
48
|
+
clientId: this.flags['client-id'],
|
|
49
|
+
privateKeyFile: this.flags['jwt-key-file'],
|
|
45
50
|
};
|
|
46
|
-
const loginUrl = await common_1.Common.resolveLoginUrl(
|
|
51
|
+
const loginUrl = await common_1.Common.resolveLoginUrl(this.flags['instance-url']?.href);
|
|
47
52
|
const oauth2Options = loginUrl ? Object.assign(oauth2OptionsBase, { loginUrl }) : oauth2OptionsBase;
|
|
48
53
|
let authInfo;
|
|
49
54
|
try {
|
|
@@ -72,46 +77,64 @@ class Grant extends command_1.SfdxCommand {
|
|
|
72
77
|
}
|
|
73
78
|
}
|
|
74
79
|
exports.default = Grant;
|
|
80
|
+
Grant.summary = messages.getMessage('summary');
|
|
75
81
|
Grant.description = messages.getMessage('description');
|
|
76
|
-
Grant.examples = messages.
|
|
82
|
+
Grant.examples = messages.getMessages('examples');
|
|
77
83
|
Grant.aliases = ['force:auth:jwt:grant'];
|
|
78
|
-
Grant.
|
|
79
|
-
username:
|
|
80
|
-
char: '
|
|
81
|
-
|
|
84
|
+
Grant.flags = {
|
|
85
|
+
username: sf_plugins_core_1.Flags.string({
|
|
86
|
+
char: 'o',
|
|
87
|
+
summary: messages.getMessage('username'),
|
|
82
88
|
required: true,
|
|
89
|
+
deprecateAliases: true,
|
|
90
|
+
aliases: ['u'],
|
|
83
91
|
}),
|
|
84
|
-
|
|
92
|
+
'jwt-key-file': sf_plugins_core_1.Flags.file({
|
|
85
93
|
char: 'f',
|
|
86
|
-
|
|
94
|
+
summary: messages.getMessage('key'),
|
|
87
95
|
required: true,
|
|
96
|
+
deprecateAliases: true,
|
|
97
|
+
aliases: ['jwtkeyfile'],
|
|
88
98
|
}),
|
|
89
|
-
|
|
99
|
+
'client-id': sf_plugins_core_1.Flags.string({
|
|
90
100
|
char: 'i',
|
|
91
|
-
|
|
101
|
+
summary: commonMessages.getMessage('clientId'),
|
|
92
102
|
required: true,
|
|
103
|
+
deprecateAliases: true,
|
|
104
|
+
aliases: ['clientid'],
|
|
93
105
|
}),
|
|
94
|
-
|
|
106
|
+
'instance-url': sf_plugins_core_1.Flags.url({
|
|
95
107
|
char: 'r',
|
|
96
|
-
|
|
108
|
+
summary: commonMessages.getMessage('instanceUrl'),
|
|
109
|
+
deprecateAliases: true,
|
|
110
|
+
aliases: ['instanceurl'],
|
|
97
111
|
}),
|
|
98
|
-
|
|
112
|
+
'set-default-dev-hub': sf_plugins_core_1.Flags.boolean({
|
|
99
113
|
char: 'd',
|
|
100
|
-
|
|
114
|
+
summary: commonMessages.getMessage('setDefaultDevHub'),
|
|
115
|
+
deprecateAliases: true,
|
|
116
|
+
aliases: ['setdefaultdevhub'],
|
|
101
117
|
}),
|
|
102
|
-
|
|
118
|
+
'set-default': sf_plugins_core_1.Flags.boolean({
|
|
103
119
|
char: 's',
|
|
104
|
-
|
|
120
|
+
summary: commonMessages.getMessage('setDefaultUsername'),
|
|
121
|
+
deprecateAliases: true,
|
|
122
|
+
aliases: ['setdefaultusername'],
|
|
105
123
|
}),
|
|
106
|
-
|
|
124
|
+
alias: sf_plugins_core_1.Flags.string({
|
|
107
125
|
char: 'a',
|
|
108
|
-
|
|
126
|
+
summary: commonMessages.getMessage('setAlias'),
|
|
127
|
+
deprecateAliases: true,
|
|
128
|
+
aliases: ['setalias'],
|
|
109
129
|
}),
|
|
110
|
-
|
|
130
|
+
'no-prompt': sf_plugins_core_1.Flags.boolean({
|
|
111
131
|
char: 'p',
|
|
112
|
-
|
|
132
|
+
summary: commonMessages.getMessage('noPromptAuth'),
|
|
113
133
|
required: false,
|
|
114
134
|
hidden: true,
|
|
135
|
+
deprecateAliases: true,
|
|
136
|
+
aliases: ['noprompt'],
|
|
115
137
|
}),
|
|
138
|
+
loglevel: sf_plugins_core_1.loglevel,
|
|
116
139
|
};
|
|
117
140
|
//# sourceMappingURL=grant.js.map
|