UNPKG

@salesforce/core

Version:

Core libraries to interact with SFDX projects, orgs, and APIs.

62 lines 2.4 kB
"use strict"; /* * Copyright (c) 2020, salesforce.com, inc. * All rights reserved. * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ Object.defineProperty(exports, "__esModule", { value: true }); exports.retrieveKeychain = void 0; const kit_1 = require("@salesforce/kit"); const logger_1 = require("../logger"); const messages_1 = require("../messages"); const keyChainImpl_1 = require("./keyChainImpl"); messages_1.Messages.importMessagesDirectory(__dirname); const messages = messages_1.Messages.load('@salesforce/core', 'encryption', ['unsupportedOperatingSystemError']); /** * Gets the os level keychain impl. * * @param platform The os platform. * @ignore */ const retrieveKeychain = async (platform) => { const logger = await logger_1.Logger.child('keyChain'); logger.debug(`platform: ${platform}`); const useGenericUnixKeychainVar = kit_1.env.getBoolean('SFDX_USE_GENERIC_UNIX_KEYCHAIN'); const shouldUseGenericUnixKeychain = useGenericUnixKeychainVar && useGenericUnixKeychainVar; if (platform.startsWith('win')) { return keyChainImpl_1.keyChainImpl.generic_windows; } else if (platform.includes('darwin')) { // OSX can use the generic keychain. This is useful when running under an // automation user. if (shouldUseGenericUnixKeychain) { return keyChainImpl_1.keyChainImpl.generic_unix; } else { return keyChainImpl_1.keyChainImpl.darwin; } } else if (platform.includes('linux')) { // Use the generic keychain if specified if (shouldUseGenericUnixKeychain) { return keyChainImpl_1.keyChainImpl.generic_unix; } else { // otherwise try and use the builtin keychain try { await keyChainImpl_1.keyChainImpl.linux.validateProgram(); return keyChainImpl_1.keyChainImpl.linux; } catch (e) { // If the builtin keychain is not available use generic return keyChainImpl_1.keyChainImpl.generic_unix; } } } else { throw messages.createError('unsupportedOperatingSystemError', [platform]); } }; exports.retrieveKeychain = retrieveKeychain; //# sourceMappingURL=keyChain.js.map