@salesforce/core 3.31.4 → 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 -222
- 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 -553
- package/lib/testSetup.js +871 -871
- 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
package/lib/crypto/keyChain.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { KeyChain } from './keyChainImpl';
|
|
2
|
-
/**
|
|
3
|
-
* Gets the os level keychain impl.
|
|
4
|
-
*
|
|
5
|
-
* @param platform The os platform.
|
|
6
|
-
* @ignore
|
|
7
|
-
*/
|
|
8
|
-
export declare const retrieveKeychain: (platform: string) => Promise<KeyChain>;
|
|
1
|
+
import { KeyChain } from './keyChainImpl';
|
|
2
|
+
/**
|
|
3
|
+
* Gets the os level keychain impl.
|
|
4
|
+
*
|
|
5
|
+
* @param platform The os platform.
|
|
6
|
+
* @ignore
|
|
7
|
+
*/
|
|
8
|
+
export declare const retrieveKeychain: (platform: string) => Promise<KeyChain>;
|
package/lib/crypto/keyChain.js
CHANGED
|
@@ -1,62 +1,62 @@
|
|
|
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.retrieveKeychain = void 0;
|
|
10
|
-
const kit_1 = require("@salesforce/kit");
|
|
11
|
-
const logger_1 = require("../logger");
|
|
12
|
-
const messages_1 = require("../messages");
|
|
13
|
-
const keyChainImpl_1 = require("./keyChainImpl");
|
|
14
|
-
messages_1.Messages.importMessagesDirectory(__dirname);
|
|
15
|
-
const messages = messages_1.Messages.load('@salesforce/core', 'encryption', ['unsupportedOperatingSystemError']);
|
|
16
|
-
/**
|
|
17
|
-
* Gets the os level keychain impl.
|
|
18
|
-
*
|
|
19
|
-
* @param platform The os platform.
|
|
20
|
-
* @ignore
|
|
21
|
-
*/
|
|
22
|
-
const retrieveKeychain = async (platform) => {
|
|
23
|
-
const logger = await logger_1.Logger.child('keyChain');
|
|
24
|
-
logger.debug(`platform: ${platform}`);
|
|
25
|
-
const useGenericUnixKeychainVar = kit_1.env.getBoolean('SFDX_USE_GENERIC_UNIX_KEYCHAIN');
|
|
26
|
-
const shouldUseGenericUnixKeychain = useGenericUnixKeychainVar && useGenericUnixKeychainVar;
|
|
27
|
-
if (platform.startsWith('win')) {
|
|
28
|
-
return keyChainImpl_1.keyChainImpl.generic_windows;
|
|
29
|
-
}
|
|
30
|
-
else if (platform.includes('darwin')) {
|
|
31
|
-
// OSX can use the generic keychain. This is useful when running under an
|
|
32
|
-
// automation user.
|
|
33
|
-
if (shouldUseGenericUnixKeychain) {
|
|
34
|
-
return keyChainImpl_1.keyChainImpl.generic_unix;
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
return keyChainImpl_1.keyChainImpl.darwin;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
else if (platform.includes('linux')) {
|
|
41
|
-
// Use the generic keychain if specified
|
|
42
|
-
if (shouldUseGenericUnixKeychain) {
|
|
43
|
-
return keyChainImpl_1.keyChainImpl.generic_unix;
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
// otherwise try and use the builtin keychain
|
|
47
|
-
try {
|
|
48
|
-
await keyChainImpl_1.keyChainImpl.linux.validateProgram();
|
|
49
|
-
return keyChainImpl_1.keyChainImpl.linux;
|
|
50
|
-
}
|
|
51
|
-
catch (e) {
|
|
52
|
-
// If the builtin keychain is not available use generic
|
|
53
|
-
return keyChainImpl_1.keyChainImpl.generic_unix;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
throw messages.createError('unsupportedOperatingSystemError', [platform]);
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
exports.retrieveKeychain = retrieveKeychain;
|
|
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.retrieveKeychain = void 0;
|
|
10
|
+
const kit_1 = require("@salesforce/kit");
|
|
11
|
+
const logger_1 = require("../logger");
|
|
12
|
+
const messages_1 = require("../messages");
|
|
13
|
+
const keyChainImpl_1 = require("./keyChainImpl");
|
|
14
|
+
messages_1.Messages.importMessagesDirectory(__dirname);
|
|
15
|
+
const messages = messages_1.Messages.load('@salesforce/core', 'encryption', ['unsupportedOperatingSystemError']);
|
|
16
|
+
/**
|
|
17
|
+
* Gets the os level keychain impl.
|
|
18
|
+
*
|
|
19
|
+
* @param platform The os platform.
|
|
20
|
+
* @ignore
|
|
21
|
+
*/
|
|
22
|
+
const retrieveKeychain = async (platform) => {
|
|
23
|
+
const logger = await logger_1.Logger.child('keyChain');
|
|
24
|
+
logger.debug(`platform: ${platform}`);
|
|
25
|
+
const useGenericUnixKeychainVar = kit_1.env.getBoolean('SFDX_USE_GENERIC_UNIX_KEYCHAIN');
|
|
26
|
+
const shouldUseGenericUnixKeychain = useGenericUnixKeychainVar && useGenericUnixKeychainVar;
|
|
27
|
+
if (platform.startsWith('win')) {
|
|
28
|
+
return keyChainImpl_1.keyChainImpl.generic_windows;
|
|
29
|
+
}
|
|
30
|
+
else if (platform.includes('darwin')) {
|
|
31
|
+
// OSX can use the generic keychain. This is useful when running under an
|
|
32
|
+
// automation user.
|
|
33
|
+
if (shouldUseGenericUnixKeychain) {
|
|
34
|
+
return keyChainImpl_1.keyChainImpl.generic_unix;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
return keyChainImpl_1.keyChainImpl.darwin;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else if (platform.includes('linux')) {
|
|
41
|
+
// Use the generic keychain if specified
|
|
42
|
+
if (shouldUseGenericUnixKeychain) {
|
|
43
|
+
return keyChainImpl_1.keyChainImpl.generic_unix;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
// otherwise try and use the builtin keychain
|
|
47
|
+
try {
|
|
48
|
+
await keyChainImpl_1.keyChainImpl.linux.validateProgram();
|
|
49
|
+
return keyChainImpl_1.keyChainImpl.linux;
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
// If the builtin keychain is not available use generic
|
|
53
|
+
return keyChainImpl_1.keyChainImpl.generic_unix;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
throw messages.createError('unsupportedOperatingSystemError', [platform]);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
exports.retrieveKeychain = retrieveKeychain;
|
|
62
62
|
//# sourceMappingURL=keyChain.js.map
|
|
@@ -1,116 +1,116 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
/// <reference types="node" />
|
|
4
|
-
import * as childProcess from 'child_process';
|
|
5
|
-
import * as nodeFs from 'fs';
|
|
6
|
-
import { Nullable } from '@salesforce/ts-types';
|
|
7
|
-
export declare type FsIfc = Pick<typeof nodeFs, 'statSync'>;
|
|
8
|
-
/**
|
|
9
|
-
* Basic keychain interface.
|
|
10
|
-
*/
|
|
11
|
-
export interface PasswordStore {
|
|
12
|
-
/**
|
|
13
|
-
* Gets a password
|
|
14
|
-
*
|
|
15
|
-
* @param opts cli level password options.
|
|
16
|
-
* @param fn function callback for password.
|
|
17
|
-
* @param retryCount number of reties to get the password.
|
|
18
|
-
*/
|
|
19
|
-
getPassword(opts: ProgramOpts, fn: (error: Nullable<Error>, password?: string) => void, retryCount?: number): Promise<void>;
|
|
20
|
-
/**
|
|
21
|
-
* Sets a password.
|
|
22
|
-
*
|
|
23
|
-
* @param opts cli level password options.
|
|
24
|
-
* @param fn function callback for password.
|
|
25
|
-
*/
|
|
26
|
-
setPassword(opts: ProgramOpts, fn: (error: Nullable<Error>, contents?: SecretContents) => void): Promise<void>;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* @private
|
|
30
|
-
*/
|
|
31
|
-
export declare class KeychainAccess implements PasswordStore {
|
|
32
|
-
private osImpl;
|
|
33
|
-
private fsIfc;
|
|
34
|
-
/**
|
|
35
|
-
* Abstract prototype for general cross platform keychain interaction.
|
|
36
|
-
*
|
|
37
|
-
* @param osImpl The platform impl for (linux, darwin, windows).
|
|
38
|
-
* @param fsIfc The file system interface.
|
|
39
|
-
*/
|
|
40
|
-
constructor(osImpl: OsImpl, fsIfc: FsIfc);
|
|
41
|
-
/**
|
|
42
|
-
* Validates the os level program is executable.
|
|
43
|
-
*/
|
|
44
|
-
validateProgram(): Promise<void>;
|
|
45
|
-
/**
|
|
46
|
-
* Returns a password using the native program for credential management.
|
|
47
|
-
*
|
|
48
|
-
* @param opts Options for the credential lookup.
|
|
49
|
-
* @param fn Callback function (err, password).
|
|
50
|
-
* @param retryCount Used internally to track the number of retries for getting a password out of the keychain.
|
|
51
|
-
*/
|
|
52
|
-
getPassword(opts: ProgramOpts, fn: (error: Nullable<Error>, password?: string) => void, retryCount?: number): Promise<void>;
|
|
53
|
-
/**
|
|
54
|
-
* Sets a password using the native program for credential management.
|
|
55
|
-
*
|
|
56
|
-
* @param opts Options for the credential lookup.
|
|
57
|
-
* @param fn Callback function (err, ConfigContents).
|
|
58
|
-
*/
|
|
59
|
-
setPassword(opts: ProgramOpts, fn: (error: Nullable<Error>, contents?: SecretContents) => void): Promise<void>;
|
|
60
|
-
}
|
|
61
|
-
interface ProgramOpts {
|
|
62
|
-
account: string;
|
|
63
|
-
service: string;
|
|
64
|
-
password?: string;
|
|
65
|
-
}
|
|
66
|
-
interface OsImpl {
|
|
67
|
-
getProgram(): string;
|
|
68
|
-
getProgramOptions(opts: ProgramOpts): string[];
|
|
69
|
-
getCommandFunc(opts: ProgramOpts, fn: (program: string, opts: string[]) => childProcess.ChildProcess): childProcess.ChildProcess;
|
|
70
|
-
onGetCommandClose(code: number, stdout: string, stderr: string, opts: ProgramOpts, fn: (err: Nullable<Error>, result?: string) => void): Promise<void>;
|
|
71
|
-
setProgramOptions(opts: ProgramOpts): string[];
|
|
72
|
-
setCommandFunc(opts: ProgramOpts, fn: (program: string, opts: string[]) => childProcess.ChildProcess): childProcess.ChildProcess;
|
|
73
|
-
onSetCommandClose(code: number, stdout: string, stderr: string, opts: ProgramOpts, fn: (err: Nullable<Error>) => void): Promise<void>;
|
|
74
|
-
}
|
|
75
|
-
declare enum SecretField {
|
|
76
|
-
SERVICE = "service",
|
|
77
|
-
ACCOUNT = "account",
|
|
78
|
-
KEY = "key"
|
|
79
|
-
}
|
|
80
|
-
declare type SecretContents = {
|
|
81
|
-
[SecretField.ACCOUNT]: string;
|
|
82
|
-
[SecretField.KEY]?: string;
|
|
83
|
-
[SecretField.SERVICE]: string;
|
|
84
|
-
};
|
|
85
|
-
/**
|
|
86
|
-
* @@ignore
|
|
87
|
-
*/
|
|
88
|
-
export declare class GenericKeychainAccess implements PasswordStore {
|
|
89
|
-
getPassword(opts: ProgramOpts, fn: (error: Nullable<Error>, password?: string) => void): Promise<void>;
|
|
90
|
-
setPassword(opts: ProgramOpts, fn: (error: Nullable<Error>, contents?: SecretContents) => void): Promise<void>;
|
|
91
|
-
protected isValidFileAccess(cb: (error: Nullable<NodeJS.ErrnoException>) => Promise<void>): Promise<void>;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* @ignore
|
|
95
|
-
*/
|
|
96
|
-
export declare class GenericUnixKeychainAccess extends GenericKeychainAccess {
|
|
97
|
-
protected isValidFileAccess(cb: (error: Nullable<Error>) => Promise<void>): Promise<void>;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* @ignore
|
|
101
|
-
*/
|
|
102
|
-
export declare class GenericWindowsKeychainAccess extends GenericKeychainAccess {
|
|
103
|
-
protected isValidFileAccess(cb: (error: Nullable<Error>) => Promise<void>): Promise<void>;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* @ignore
|
|
107
|
-
*/
|
|
108
|
-
export declare const keyChainImpl: {
|
|
109
|
-
generic_unix: GenericUnixKeychainAccess;
|
|
110
|
-
generic_windows: GenericWindowsKeychainAccess;
|
|
111
|
-
darwin: KeychainAccess;
|
|
112
|
-
linux: KeychainAccess;
|
|
113
|
-
validateProgram: (programPath: string, fsIfc: FsIfc, isExeIfc: (mode: number, gid: number, uid: number) => boolean) => Promise<void>;
|
|
114
|
-
};
|
|
115
|
-
export declare type KeyChain = GenericUnixKeychainAccess | GenericWindowsKeychainAccess | KeychainAccess;
|
|
116
|
-
export {};
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
import * as childProcess from 'child_process';
|
|
5
|
+
import * as nodeFs from 'fs';
|
|
6
|
+
import { Nullable } from '@salesforce/ts-types';
|
|
7
|
+
export declare type FsIfc = Pick<typeof nodeFs, 'statSync'>;
|
|
8
|
+
/**
|
|
9
|
+
* Basic keychain interface.
|
|
10
|
+
*/
|
|
11
|
+
export interface PasswordStore {
|
|
12
|
+
/**
|
|
13
|
+
* Gets a password
|
|
14
|
+
*
|
|
15
|
+
* @param opts cli level password options.
|
|
16
|
+
* @param fn function callback for password.
|
|
17
|
+
* @param retryCount number of reties to get the password.
|
|
18
|
+
*/
|
|
19
|
+
getPassword(opts: ProgramOpts, fn: (error: Nullable<Error>, password?: string) => void, retryCount?: number): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Sets a password.
|
|
22
|
+
*
|
|
23
|
+
* @param opts cli level password options.
|
|
24
|
+
* @param fn function callback for password.
|
|
25
|
+
*/
|
|
26
|
+
setPassword(opts: ProgramOpts, fn: (error: Nullable<Error>, contents?: SecretContents) => void): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @private
|
|
30
|
+
*/
|
|
31
|
+
export declare class KeychainAccess implements PasswordStore {
|
|
32
|
+
private osImpl;
|
|
33
|
+
private fsIfc;
|
|
34
|
+
/**
|
|
35
|
+
* Abstract prototype for general cross platform keychain interaction.
|
|
36
|
+
*
|
|
37
|
+
* @param osImpl The platform impl for (linux, darwin, windows).
|
|
38
|
+
* @param fsIfc The file system interface.
|
|
39
|
+
*/
|
|
40
|
+
constructor(osImpl: OsImpl, fsIfc: FsIfc);
|
|
41
|
+
/**
|
|
42
|
+
* Validates the os level program is executable.
|
|
43
|
+
*/
|
|
44
|
+
validateProgram(): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Returns a password using the native program for credential management.
|
|
47
|
+
*
|
|
48
|
+
* @param opts Options for the credential lookup.
|
|
49
|
+
* @param fn Callback function (err, password).
|
|
50
|
+
* @param retryCount Used internally to track the number of retries for getting a password out of the keychain.
|
|
51
|
+
*/
|
|
52
|
+
getPassword(opts: ProgramOpts, fn: (error: Nullable<Error>, password?: string) => void, retryCount?: number): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Sets a password using the native program for credential management.
|
|
55
|
+
*
|
|
56
|
+
* @param opts Options for the credential lookup.
|
|
57
|
+
* @param fn Callback function (err, ConfigContents).
|
|
58
|
+
*/
|
|
59
|
+
setPassword(opts: ProgramOpts, fn: (error: Nullable<Error>, contents?: SecretContents) => void): Promise<void>;
|
|
60
|
+
}
|
|
61
|
+
interface ProgramOpts {
|
|
62
|
+
account: string;
|
|
63
|
+
service: string;
|
|
64
|
+
password?: string;
|
|
65
|
+
}
|
|
66
|
+
interface OsImpl {
|
|
67
|
+
getProgram(): string;
|
|
68
|
+
getProgramOptions(opts: ProgramOpts): string[];
|
|
69
|
+
getCommandFunc(opts: ProgramOpts, fn: (program: string, opts: string[]) => childProcess.ChildProcess): childProcess.ChildProcess;
|
|
70
|
+
onGetCommandClose(code: number, stdout: string, stderr: string, opts: ProgramOpts, fn: (err: Nullable<Error>, result?: string) => void): Promise<void>;
|
|
71
|
+
setProgramOptions(opts: ProgramOpts): string[];
|
|
72
|
+
setCommandFunc(opts: ProgramOpts, fn: (program: string, opts: string[]) => childProcess.ChildProcess): childProcess.ChildProcess;
|
|
73
|
+
onSetCommandClose(code: number, stdout: string, stderr: string, opts: ProgramOpts, fn: (err: Nullable<Error>) => void): Promise<void>;
|
|
74
|
+
}
|
|
75
|
+
declare enum SecretField {
|
|
76
|
+
SERVICE = "service",
|
|
77
|
+
ACCOUNT = "account",
|
|
78
|
+
KEY = "key"
|
|
79
|
+
}
|
|
80
|
+
declare type SecretContents = {
|
|
81
|
+
[SecretField.ACCOUNT]: string;
|
|
82
|
+
[SecretField.KEY]?: string;
|
|
83
|
+
[SecretField.SERVICE]: string;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* @@ignore
|
|
87
|
+
*/
|
|
88
|
+
export declare class GenericKeychainAccess implements PasswordStore {
|
|
89
|
+
getPassword(opts: ProgramOpts, fn: (error: Nullable<Error>, password?: string) => void): Promise<void>;
|
|
90
|
+
setPassword(opts: ProgramOpts, fn: (error: Nullable<Error>, contents?: SecretContents) => void): Promise<void>;
|
|
91
|
+
protected isValidFileAccess(cb: (error: Nullable<NodeJS.ErrnoException>) => Promise<void>): Promise<void>;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* @ignore
|
|
95
|
+
*/
|
|
96
|
+
export declare class GenericUnixKeychainAccess extends GenericKeychainAccess {
|
|
97
|
+
protected isValidFileAccess(cb: (error: Nullable<Error>) => Promise<void>): Promise<void>;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* @ignore
|
|
101
|
+
*/
|
|
102
|
+
export declare class GenericWindowsKeychainAccess extends GenericKeychainAccess {
|
|
103
|
+
protected isValidFileAccess(cb: (error: Nullable<Error>) => Promise<void>): Promise<void>;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* @ignore
|
|
107
|
+
*/
|
|
108
|
+
export declare const keyChainImpl: {
|
|
109
|
+
generic_unix: GenericUnixKeychainAccess;
|
|
110
|
+
generic_windows: GenericWindowsKeychainAccess;
|
|
111
|
+
darwin: KeychainAccess;
|
|
112
|
+
linux: KeychainAccess;
|
|
113
|
+
validateProgram: (programPath: string, fsIfc: FsIfc, isExeIfc: (mode: number, gid: number, uid: number) => boolean) => Promise<void>;
|
|
114
|
+
};
|
|
115
|
+
export declare type KeyChain = GenericUnixKeychainAccess | GenericWindowsKeychainAccess | KeychainAccess;
|
|
116
|
+
export {};
|