@salesforce/core 3.30.14 → 3.31.7
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/LICENSE.txt +11 -11
- package/README.md +222 -227
- package/lib/config/aliasesConfig.d.ts +12 -12
- package/lib/config/aliasesConfig.js +27 -27
- package/lib/config/authInfoConfig.d.ts +19 -19
- package/lib/config/authInfoConfig.js +34 -34
- package/lib/config/config.d.ts +311 -311
- package/lib/config/config.js +574 -574
- package/lib/config/configAggregator.d.ts +232 -232
- package/lib/config/configAggregator.js +379 -379
- package/lib/config/configFile.d.ts +199 -199
- package/lib/config/configFile.js +340 -340
- package/lib/config/configGroup.d.ts +141 -141
- package/lib/config/configGroup.js +224 -224
- package/lib/config/configStore.d.ts +241 -241
- package/lib/config/configStore.js +352 -352
- package/lib/config/envVars.d.ts +101 -101
- package/lib/config/envVars.js +456 -456
- package/lib/config/orgUsersConfig.d.ts +31 -31
- package/lib/config/orgUsersConfig.js +41 -41
- package/lib/config/sandboxOrgConfig.d.ts +37 -37
- package/lib/config/sandboxOrgConfig.js +50 -50
- package/lib/config/sandboxProcessCache.d.ts +16 -16
- package/lib/config/sandboxProcessCache.js +37 -37
- package/lib/config/tokensConfig.d.ts +10 -10
- package/lib/config/tokensConfig.js +28 -28
- package/lib/config/ttlConfig.d.ts +34 -34
- package/lib/config/ttlConfig.js +54 -54
- package/lib/crypto/crypto.d.ts +54 -54
- package/lib/crypto/crypto.js +220 -220
- package/lib/crypto/keyChain.d.ts +8 -8
- package/lib/crypto/keyChain.js +61 -61
- package/lib/crypto/keyChainImpl.d.ts +116 -116
- package/lib/crypto/keyChainImpl.js +486 -486
- package/lib/crypto/secureBuffer.d.ts +46 -46
- package/lib/crypto/secureBuffer.js +82 -82
- package/lib/deviceOauthService.d.ts +71 -71
- package/lib/deviceOauthService.js +191 -191
- package/lib/exported.d.ts +38 -38
- package/lib/exported.js +118 -118
- package/lib/global.d.ts +70 -70
- package/lib/global.js +109 -109
- package/lib/lifecycleEvents.d.ts +93 -93
- package/lib/lifecycleEvents.js +188 -188
- package/lib/logger.d.ts +381 -381
- package/lib/logger.js +734 -734
- package/lib/messages.d.ts +291 -291
- package/lib/messages.js +543 -543
- package/lib/org/authInfo.d.ts +344 -344
- package/lib/org/authInfo.js +892 -892
- package/lib/org/authRemover.d.ts +88 -88
- package/lib/org/authRemover.js +182 -182
- package/lib/org/connection.d.ts +197 -197
- package/lib/org/connection.js +395 -395
- package/lib/org/index.d.ts +6 -6
- package/lib/org/index.js +28 -28
- package/lib/org/org.d.ts +558 -558
- package/lib/org/org.js +1267 -1267
- package/lib/org/orgConfigProperties.d.ts +69 -69
- package/lib/org/orgConfigProperties.js +136 -136
- package/lib/org/permissionSetAssignment.d.ts +35 -35
- package/lib/org/permissionSetAssignment.js +125 -125
- package/lib/org/scratchOrgCache.d.ts +20 -20
- package/lib/org/scratchOrgCache.js +32 -32
- package/lib/org/scratchOrgCreate.d.ts +54 -54
- package/lib/org/scratchOrgCreate.js +216 -216
- package/lib/org/scratchOrgErrorCodes.d.ts +10 -10
- package/lib/org/scratchOrgErrorCodes.js +88 -88
- package/lib/org/scratchOrgFeatureDeprecation.d.ts +26 -26
- package/lib/org/scratchOrgFeatureDeprecation.js +109 -109
- package/lib/org/scratchOrgInfoApi.d.ts +68 -68
- package/lib/org/scratchOrgInfoApi.js +413 -413
- package/lib/org/scratchOrgInfoGenerator.d.ts +64 -64
- package/lib/org/scratchOrgInfoGenerator.js +241 -241
- package/lib/org/scratchOrgLifecycleEvents.d.ts +10 -10
- package/lib/org/scratchOrgLifecycleEvents.js +40 -40
- package/lib/org/scratchOrgSettingsGenerator.d.ts +78 -78
- package/lib/org/scratchOrgSettingsGenerator.js +276 -276
- package/lib/org/scratchOrgTypes.d.ts +43 -43
- package/lib/org/scratchOrgTypes.js +8 -8
- package/lib/org/user.d.ts +187 -187
- package/lib/org/user.js +448 -448
- package/lib/schema/printer.d.ts +79 -79
- package/lib/schema/printer.js +260 -260
- package/lib/schema/validator.d.ts +70 -70
- package/lib/schema/validator.js +169 -169
- package/lib/sfError.d.ts +73 -73
- package/lib/sfError.js +136 -136
- package/lib/sfProject.d.ts +357 -357
- package/lib/sfProject.js +671 -671
- package/lib/stateAggregator/accessors/aliasAccessor.d.ts +98 -98
- package/lib/stateAggregator/accessors/aliasAccessor.js +145 -145
- package/lib/stateAggregator/accessors/orgAccessor.d.ts +101 -101
- package/lib/stateAggregator/accessors/orgAccessor.js +240 -240
- package/lib/stateAggregator/accessors/sandboxAccessor.d.ts +8 -8
- package/lib/stateAggregator/accessors/sandboxAccessor.js +27 -27
- package/lib/stateAggregator/accessors/tokenAccessor.d.ts +63 -63
- package/lib/stateAggregator/accessors/tokenAccessor.js +79 -79
- package/lib/stateAggregator/index.d.ts +4 -4
- package/lib/stateAggregator/index.js +26 -26
- package/lib/stateAggregator/stateAggregator.d.ts +25 -25
- package/lib/stateAggregator/stateAggregator.js +45 -45
- package/lib/status/myDomainResolver.d.ts +66 -66
- package/lib/status/myDomainResolver.js +124 -124
- package/lib/status/pollingClient.d.ts +85 -85
- package/lib/status/pollingClient.js +115 -115
- package/lib/status/streamingClient.d.ts +244 -244
- package/lib/status/streamingClient.js +436 -436
- package/lib/status/types.d.ts +89 -89
- package/lib/status/types.js +17 -17
- package/lib/testSetup.d.ts +553 -530
- package/lib/testSetup.js +871 -727
- package/lib/util/cache.d.ts +11 -11
- package/lib/util/cache.js +69 -69
- package/lib/util/checkLightningDomain.d.ts +1 -1
- package/lib/util/checkLightningDomain.js +28 -28
- package/lib/util/directoryWriter.d.ts +12 -12
- package/lib/util/directoryWriter.js +53 -53
- package/lib/util/getJwtAudienceUrl.d.ts +4 -4
- package/lib/util/getJwtAudienceUrl.js +18 -18
- package/lib/util/internal.d.ts +58 -58
- package/lib/util/internal.js +118 -118
- package/lib/util/jsonXmlTools.d.ts +14 -14
- package/lib/util/jsonXmlTools.js +38 -38
- package/lib/util/mapKeys.d.ts +14 -14
- package/lib/util/mapKeys.js +51 -51
- package/lib/util/sfdc.d.ts +52 -52
- package/lib/util/sfdc.js +85 -85
- package/lib/util/sfdcUrl.d.ts +72 -72
- package/lib/util/sfdcUrl.js +215 -215
- package/lib/util/structuredWriter.d.ts +9 -9
- package/lib/util/structuredWriter.js +2 -2
- package/lib/util/zipWriter.d.ts +16 -16
- package/lib/util/zipWriter.js +67 -67
- package/lib/webOAuthServer.d.ts +156 -156
- package/lib/webOAuthServer.js +388 -388
- package/messages/auth.md +37 -37
- package/messages/config.md +156 -156
- package/messages/connection.md +30 -30
- package/messages/core.json +20 -20
- package/messages/core.md +67 -67
- package/messages/encryption.md +85 -85
- package/messages/envVars.md +303 -303
- package/messages/org.md +63 -63
- package/messages/permissionSetAssignment.md +31 -31
- package/messages/scratchOrgCreate.md +23 -23
- package/messages/scratchOrgErrorCodes.md +115 -115
- package/messages/scratchOrgFeatureDeprecation.md +11 -11
- package/messages/scratchOrgInfoApi.md +15 -15
- package/messages/scratchOrgInfoGenerator.md +23 -23
- package/messages/streaming.md +23 -23
- package/messages/user.md +35 -35
- package/package.json +97 -97
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { Optional } from '@salesforce/ts-types';
|
|
3
|
-
/**
|
|
4
|
-
* Returns the intended type of the object to return. This is implementation specific.
|
|
5
|
-
*
|
|
6
|
-
* @param buffer A buffer containing the decrypted secret.
|
|
7
|
-
*/
|
|
8
|
-
export declare type DecipherCallback<T> = (buffer: Buffer) => T;
|
|
9
|
-
/**
|
|
10
|
-
* Used to store and retrieve a sensitive information in memory. This is not meant for at rest encryption.
|
|
11
|
-
*
|
|
12
|
-
* ```
|
|
13
|
-
* const sString: SecureBuffer<string> = new SecureBuffer();
|
|
14
|
-
* sString.consume(secretTextBuffer);
|
|
15
|
-
* const value: string = sString.value((buffer: Buffer): string => {
|
|
16
|
-
* const password: string = buffer.toString('utf8');
|
|
17
|
-
* // doSomething with the password
|
|
18
|
-
* // returns something of type <T>
|
|
19
|
-
* return testReturnValue;
|
|
20
|
-
* });
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
export declare class SecureBuffer<T> {
|
|
24
|
-
private key;
|
|
25
|
-
private iv;
|
|
26
|
-
private secret?;
|
|
27
|
-
/**
|
|
28
|
-
* Invokes a callback with a decrypted version of the buffer.
|
|
29
|
-
*
|
|
30
|
-
* @param cb The callback containing the decrypted buffer parameter that returns a desired.
|
|
31
|
-
* typed object. It's important to understand that once the callback goes out of scope the buffer parameters is
|
|
32
|
-
* overwritten with random data. Do not make a copy of this buffer and persist it!
|
|
33
|
-
*/
|
|
34
|
-
value(cb: DecipherCallback<T>): Optional<T>;
|
|
35
|
-
/**
|
|
36
|
-
* Overwrites the value of the encrypted secret with random data.
|
|
37
|
-
*/
|
|
38
|
-
clear(): void;
|
|
39
|
-
/**
|
|
40
|
-
* Consumes a buffer of data that's intended to be secret.
|
|
41
|
-
*
|
|
42
|
-
* @param buffer Data to encrypt. The input buffer is overwritten with random data after it's encrypted
|
|
43
|
-
* and assigned internally.
|
|
44
|
-
*/
|
|
45
|
-
consume(buffer: Buffer): void;
|
|
46
|
-
}
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Optional } from '@salesforce/ts-types';
|
|
3
|
+
/**
|
|
4
|
+
* Returns the intended type of the object to return. This is implementation specific.
|
|
5
|
+
*
|
|
6
|
+
* @param buffer A buffer containing the decrypted secret.
|
|
7
|
+
*/
|
|
8
|
+
export declare type DecipherCallback<T> = (buffer: Buffer) => T;
|
|
9
|
+
/**
|
|
10
|
+
* Used to store and retrieve a sensitive information in memory. This is not meant for at rest encryption.
|
|
11
|
+
*
|
|
12
|
+
* ```
|
|
13
|
+
* const sString: SecureBuffer<string> = new SecureBuffer();
|
|
14
|
+
* sString.consume(secretTextBuffer);
|
|
15
|
+
* const value: string = sString.value((buffer: Buffer): string => {
|
|
16
|
+
* const password: string = buffer.toString('utf8');
|
|
17
|
+
* // doSomething with the password
|
|
18
|
+
* // returns something of type <T>
|
|
19
|
+
* return testReturnValue;
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare class SecureBuffer<T> {
|
|
24
|
+
private key;
|
|
25
|
+
private iv;
|
|
26
|
+
private secret?;
|
|
27
|
+
/**
|
|
28
|
+
* Invokes a callback with a decrypted version of the buffer.
|
|
29
|
+
*
|
|
30
|
+
* @param cb The callback containing the decrypted buffer parameter that returns a desired.
|
|
31
|
+
* typed object. It's important to understand that once the callback goes out of scope the buffer parameters is
|
|
32
|
+
* overwritten with random data. Do not make a copy of this buffer and persist it!
|
|
33
|
+
*/
|
|
34
|
+
value(cb: DecipherCallback<T>): Optional<T>;
|
|
35
|
+
/**
|
|
36
|
+
* Overwrites the value of the encrypted secret with random data.
|
|
37
|
+
*/
|
|
38
|
+
clear(): void;
|
|
39
|
+
/**
|
|
40
|
+
* Consumes a buffer of data that's intended to be secret.
|
|
41
|
+
*
|
|
42
|
+
* @param buffer Data to encrypt. The input buffer is overwritten with random data after it's encrypted
|
|
43
|
+
* and assigned internally.
|
|
44
|
+
*/
|
|
45
|
+
consume(buffer: Buffer): void;
|
|
46
|
+
}
|
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2020, salesforce.com, inc.
|
|
4
|
-
* All rights reserved.
|
|
5
|
-
* Licensed under the BSD 3-Clause license.
|
|
6
|
-
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.SecureBuffer = void 0;
|
|
10
|
-
const crypto = require("crypto");
|
|
11
|
-
const ts_types_1 = require("@salesforce/ts-types");
|
|
12
|
-
const cipherName = 'aes-256-cbc';
|
|
13
|
-
const cipherSize = 32;
|
|
14
|
-
/**
|
|
15
|
-
* Used to store and retrieve a sensitive information in memory. This is not meant for at rest encryption.
|
|
16
|
-
*
|
|
17
|
-
* ```
|
|
18
|
-
* const sString: SecureBuffer<string> = new SecureBuffer();
|
|
19
|
-
* sString.consume(secretTextBuffer);
|
|
20
|
-
* const value: string = sString.value((buffer: Buffer): string => {
|
|
21
|
-
* const password: string = buffer.toString('utf8');
|
|
22
|
-
* // doSomething with the password
|
|
23
|
-
* // returns something of type <T>
|
|
24
|
-
* return testReturnValue;
|
|
25
|
-
* });
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
class SecureBuffer {
|
|
29
|
-
constructor() {
|
|
30
|
-
this.key = crypto.randomBytes(cipherSize);
|
|
31
|
-
this.iv = crypto.randomBytes(16);
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Invokes a callback with a decrypted version of the buffer.
|
|
35
|
-
*
|
|
36
|
-
* @param cb The callback containing the decrypted buffer parameter that returns a desired.
|
|
37
|
-
* typed object. It's important to understand that once the callback goes out of scope the buffer parameters is
|
|
38
|
-
* overwritten with random data. Do not make a copy of this buffer and persist it!
|
|
39
|
-
*/
|
|
40
|
-
value(cb) {
|
|
41
|
-
if (cb) {
|
|
42
|
-
const cipher = crypto.createDecipheriv(cipherName, this.key, this.iv);
|
|
43
|
-
const a = cipher.update((0, ts_types_1.ensure)(this.secret));
|
|
44
|
-
const b = cipher.final();
|
|
45
|
-
const c = Buffer.concat([a, b]);
|
|
46
|
-
try {
|
|
47
|
-
return cb(c);
|
|
48
|
-
}
|
|
49
|
-
finally {
|
|
50
|
-
crypto.randomFillSync(a);
|
|
51
|
-
crypto.randomFillSync(b);
|
|
52
|
-
crypto.randomFillSync(c);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Overwrites the value of the encrypted secret with random data.
|
|
58
|
-
*/
|
|
59
|
-
clear() {
|
|
60
|
-
if (this.secret) {
|
|
61
|
-
crypto.randomFillSync(this.secret);
|
|
62
|
-
}
|
|
63
|
-
const cipher = crypto.createCipheriv(cipherName, this.key, this.iv);
|
|
64
|
-
this.secret = Buffer.concat([cipher.update(Buffer.from('')), cipher.final()]);
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Consumes a buffer of data that's intended to be secret.
|
|
68
|
-
*
|
|
69
|
-
* @param buffer Data to encrypt. The input buffer is overwritten with random data after it's encrypted
|
|
70
|
-
* and assigned internally.
|
|
71
|
-
*/
|
|
72
|
-
consume(buffer) {
|
|
73
|
-
let targetBuffer = buffer;
|
|
74
|
-
if (!targetBuffer) {
|
|
75
|
-
targetBuffer = Buffer.from('');
|
|
76
|
-
}
|
|
77
|
-
const cipher = crypto.createCipheriv(cipherName, this.key, this.iv);
|
|
78
|
-
this.secret = Buffer.concat([cipher.update(targetBuffer), cipher.final()]);
|
|
79
|
-
crypto.randomFillSync(targetBuffer);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
exports.SecureBuffer = SecureBuffer;
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2020, salesforce.com, inc.
|
|
4
|
+
* All rights reserved.
|
|
5
|
+
* Licensed under the BSD 3-Clause license.
|
|
6
|
+
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.SecureBuffer = void 0;
|
|
10
|
+
const crypto = require("crypto");
|
|
11
|
+
const ts_types_1 = require("@salesforce/ts-types");
|
|
12
|
+
const cipherName = 'aes-256-cbc';
|
|
13
|
+
const cipherSize = 32;
|
|
14
|
+
/**
|
|
15
|
+
* Used to store and retrieve a sensitive information in memory. This is not meant for at rest encryption.
|
|
16
|
+
*
|
|
17
|
+
* ```
|
|
18
|
+
* const sString: SecureBuffer<string> = new SecureBuffer();
|
|
19
|
+
* sString.consume(secretTextBuffer);
|
|
20
|
+
* const value: string = sString.value((buffer: Buffer): string => {
|
|
21
|
+
* const password: string = buffer.toString('utf8');
|
|
22
|
+
* // doSomething with the password
|
|
23
|
+
* // returns something of type <T>
|
|
24
|
+
* return testReturnValue;
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
class SecureBuffer {
|
|
29
|
+
constructor() {
|
|
30
|
+
this.key = crypto.randomBytes(cipherSize);
|
|
31
|
+
this.iv = crypto.randomBytes(16);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Invokes a callback with a decrypted version of the buffer.
|
|
35
|
+
*
|
|
36
|
+
* @param cb The callback containing the decrypted buffer parameter that returns a desired.
|
|
37
|
+
* typed object. It's important to understand that once the callback goes out of scope the buffer parameters is
|
|
38
|
+
* overwritten with random data. Do not make a copy of this buffer and persist it!
|
|
39
|
+
*/
|
|
40
|
+
value(cb) {
|
|
41
|
+
if (cb) {
|
|
42
|
+
const cipher = crypto.createDecipheriv(cipherName, this.key, this.iv);
|
|
43
|
+
const a = cipher.update((0, ts_types_1.ensure)(this.secret));
|
|
44
|
+
const b = cipher.final();
|
|
45
|
+
const c = Buffer.concat([a, b]);
|
|
46
|
+
try {
|
|
47
|
+
return cb(c);
|
|
48
|
+
}
|
|
49
|
+
finally {
|
|
50
|
+
crypto.randomFillSync(a);
|
|
51
|
+
crypto.randomFillSync(b);
|
|
52
|
+
crypto.randomFillSync(c);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Overwrites the value of the encrypted secret with random data.
|
|
58
|
+
*/
|
|
59
|
+
clear() {
|
|
60
|
+
if (this.secret) {
|
|
61
|
+
crypto.randomFillSync(this.secret);
|
|
62
|
+
}
|
|
63
|
+
const cipher = crypto.createCipheriv(cipherName, this.key, this.iv);
|
|
64
|
+
this.secret = Buffer.concat([cipher.update(Buffer.from('')), cipher.final()]);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Consumes a buffer of data that's intended to be secret.
|
|
68
|
+
*
|
|
69
|
+
* @param buffer Data to encrypt. The input buffer is overwritten with random data after it's encrypted
|
|
70
|
+
* and assigned internally.
|
|
71
|
+
*/
|
|
72
|
+
consume(buffer) {
|
|
73
|
+
let targetBuffer = buffer;
|
|
74
|
+
if (!targetBuffer) {
|
|
75
|
+
targetBuffer = Buffer.from('');
|
|
76
|
+
}
|
|
77
|
+
const cipher = crypto.createCipheriv(cipherName, this.key, this.iv);
|
|
78
|
+
this.secret = Buffer.concat([cipher.update(targetBuffer), cipher.final()]);
|
|
79
|
+
crypto.randomFillSync(targetBuffer);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.SecureBuffer = SecureBuffer;
|
|
83
83
|
//# sourceMappingURL=secureBuffer.js.map
|
|
@@ -1,71 +1,71 @@
|
|
|
1
|
-
import { AsyncCreatable } from '@salesforce/kit';
|
|
2
|
-
import { OAuth2Config } from 'jsforce';
|
|
3
|
-
import { JsonMap, Nullable } from '@salesforce/ts-types';
|
|
4
|
-
import { AuthInfo } from './org';
|
|
5
|
-
export interface DeviceCodeResponse extends JsonMap {
|
|
6
|
-
device_code: string;
|
|
7
|
-
interval: number;
|
|
8
|
-
user_code: string;
|
|
9
|
-
verification_uri: string;
|
|
10
|
-
}
|
|
11
|
-
export interface DeviceCodePollingResponse extends JsonMap {
|
|
12
|
-
access_token: string;
|
|
13
|
-
refresh_token: string;
|
|
14
|
-
signature: string;
|
|
15
|
-
scope: string;
|
|
16
|
-
instance_url: string;
|
|
17
|
-
id: string;
|
|
18
|
-
token_type: string;
|
|
19
|
-
issued_at: string;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Handles device based login flows
|
|
23
|
-
*
|
|
24
|
-
* Usage:
|
|
25
|
-
* ```
|
|
26
|
-
* const oauthConfig = {
|
|
27
|
-
* loginUrl: this.flags.instanceurl,
|
|
28
|
-
* clientId: this.flags.clientid,
|
|
29
|
-
* };
|
|
30
|
-
* const deviceOauthService = await DeviceOauthService.create(oauthConfig);
|
|
31
|
-
* const loginData = await deviceOauthService.requestDeviceLogin();
|
|
32
|
-
* console.log(loginData);
|
|
33
|
-
* const approval = await deviceOauthService.awaitDeviceApproval(loginData);
|
|
34
|
-
* const authInfo = await deviceOauthService.authorizeAndSave(approval);
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
export declare class DeviceOauthService extends AsyncCreatable<OAuth2Config> {
|
|
38
|
-
static RESPONSE_TYPE: string;
|
|
39
|
-
static GRANT_TYPE: string;
|
|
40
|
-
static SCOPE: string;
|
|
41
|
-
private static POLLING_COUNT_MAX;
|
|
42
|
-
private logger;
|
|
43
|
-
private options;
|
|
44
|
-
private pollingCount;
|
|
45
|
-
constructor(options: OAuth2Config);
|
|
46
|
-
/**
|
|
47
|
-
* Begin the authorization flow by requesting the login
|
|
48
|
-
*
|
|
49
|
-
* @returns {Promise<DeviceCodeResponse>}
|
|
50
|
-
*/
|
|
51
|
-
requestDeviceLogin(): Promise<DeviceCodeResponse>;
|
|
52
|
-
/**
|
|
53
|
-
* Polls the server until successful response OR max attempts have been made
|
|
54
|
-
*
|
|
55
|
-
* @returns {Promise<Nullable<DeviceCodePollingResponse>>}
|
|
56
|
-
*/
|
|
57
|
-
awaitDeviceApproval(loginData: DeviceCodeResponse): Promise<Nullable<DeviceCodePollingResponse>>;
|
|
58
|
-
/**
|
|
59
|
-
* Creates and saves new AuthInfo
|
|
60
|
-
*
|
|
61
|
-
* @returns {Promise<AuthInfo>}
|
|
62
|
-
*/
|
|
63
|
-
authorizeAndSave(approval: DeviceCodePollingResponse): Promise<AuthInfo>;
|
|
64
|
-
protected init(): Promise<void>;
|
|
65
|
-
private getLoginOptions;
|
|
66
|
-
private getPollingOptions;
|
|
67
|
-
private getDeviceFlowRequestUrl;
|
|
68
|
-
private poll;
|
|
69
|
-
private shouldContinuePolling;
|
|
70
|
-
private pollForDeviceApproval;
|
|
71
|
-
}
|
|
1
|
+
import { AsyncCreatable } from '@salesforce/kit';
|
|
2
|
+
import { OAuth2Config } from 'jsforce';
|
|
3
|
+
import { JsonMap, Nullable } from '@salesforce/ts-types';
|
|
4
|
+
import { AuthInfo } from './org';
|
|
5
|
+
export interface DeviceCodeResponse extends JsonMap {
|
|
6
|
+
device_code: string;
|
|
7
|
+
interval: number;
|
|
8
|
+
user_code: string;
|
|
9
|
+
verification_uri: string;
|
|
10
|
+
}
|
|
11
|
+
export interface DeviceCodePollingResponse extends JsonMap {
|
|
12
|
+
access_token: string;
|
|
13
|
+
refresh_token: string;
|
|
14
|
+
signature: string;
|
|
15
|
+
scope: string;
|
|
16
|
+
instance_url: string;
|
|
17
|
+
id: string;
|
|
18
|
+
token_type: string;
|
|
19
|
+
issued_at: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Handles device based login flows
|
|
23
|
+
*
|
|
24
|
+
* Usage:
|
|
25
|
+
* ```
|
|
26
|
+
* const oauthConfig = {
|
|
27
|
+
* loginUrl: this.flags.instanceurl,
|
|
28
|
+
* clientId: this.flags.clientid,
|
|
29
|
+
* };
|
|
30
|
+
* const deviceOauthService = await DeviceOauthService.create(oauthConfig);
|
|
31
|
+
* const loginData = await deviceOauthService.requestDeviceLogin();
|
|
32
|
+
* console.log(loginData);
|
|
33
|
+
* const approval = await deviceOauthService.awaitDeviceApproval(loginData);
|
|
34
|
+
* const authInfo = await deviceOauthService.authorizeAndSave(approval);
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare class DeviceOauthService extends AsyncCreatable<OAuth2Config> {
|
|
38
|
+
static RESPONSE_TYPE: string;
|
|
39
|
+
static GRANT_TYPE: string;
|
|
40
|
+
static SCOPE: string;
|
|
41
|
+
private static POLLING_COUNT_MAX;
|
|
42
|
+
private logger;
|
|
43
|
+
private options;
|
|
44
|
+
private pollingCount;
|
|
45
|
+
constructor(options: OAuth2Config);
|
|
46
|
+
/**
|
|
47
|
+
* Begin the authorization flow by requesting the login
|
|
48
|
+
*
|
|
49
|
+
* @returns {Promise<DeviceCodeResponse>}
|
|
50
|
+
*/
|
|
51
|
+
requestDeviceLogin(): Promise<DeviceCodeResponse>;
|
|
52
|
+
/**
|
|
53
|
+
* Polls the server until successful response OR max attempts have been made
|
|
54
|
+
*
|
|
55
|
+
* @returns {Promise<Nullable<DeviceCodePollingResponse>>}
|
|
56
|
+
*/
|
|
57
|
+
awaitDeviceApproval(loginData: DeviceCodeResponse): Promise<Nullable<DeviceCodePollingResponse>>;
|
|
58
|
+
/**
|
|
59
|
+
* Creates and saves new AuthInfo
|
|
60
|
+
*
|
|
61
|
+
* @returns {Promise<AuthInfo>}
|
|
62
|
+
*/
|
|
63
|
+
authorizeAndSave(approval: DeviceCodePollingResponse): Promise<AuthInfo>;
|
|
64
|
+
protected init(): Promise<void>;
|
|
65
|
+
private getLoginOptions;
|
|
66
|
+
private getPollingOptions;
|
|
67
|
+
private getDeviceFlowRequestUrl;
|
|
68
|
+
private poll;
|
|
69
|
+
private shouldContinuePolling;
|
|
70
|
+
private pollForDeviceApproval;
|
|
71
|
+
}
|