botbook/node_modules/devcert/dist/constants.js

107 lines
17 KiB
JavaScript
Raw Normal View History

2024-09-04 13:13:15 -03:00
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ensureConfigDirs = exports.getLegacyConfigDir = exports.rootCACertPath = exports.rootCAKeyPath = exports.rootCADir = exports.withDomainCertificateConfig = exports.withDomainSigningRequestConfig = exports.caSelfSignConfig = exports.opensslDatabaseFilePath = exports.opensslSerialFilePath = exports.caVersionFile = exports.pathForDomain = exports.domainsDir = exports.getStableDomainPath = exports.configPath = exports.configDir = exports.isWindows = exports.isLinux = exports.isMac = void 0;
const tslib_1 = require("tslib");
const path_1 = tslib_1.__importDefault(require("path"));
const fs_1 = require("fs");
const mkdirp_1 = require("mkdirp");
const lodash_1 = require("lodash");
const applicationConfigPath = require("application-config-path");
const eol_1 = tslib_1.__importDefault(require("eol"));
const utils_1 = require("./utils");
// Platform shortcuts
exports.isMac = process.platform === 'darwin';
exports.isLinux = process.platform === 'linux';
exports.isWindows = process.platform === 'win32';
// Common paths
exports.configDir = applicationConfigPath('devcert');
exports.configPath = path_1.default.join.bind(path_1.default, exports.configDir);
const getFilteredDomains = (domains) => Array.from(domains
.sort((a, b) => b.length - a.length)
.reduce((filteredList, domain) => Array.from(filteredList)
.reduce((matches, item) => {
if (item.indexOf(domain) > -1) {
matches.add(domain);
}
else if (domain.indexOf(item) === -1 && item.indexOf(domain) === -1) {
matches.add(item);
matches.add(domain);
}
else {
matches.add(item);
}
return matches;
}, new Set()), new Set([domains[0]]))).sort();
const getStableDomainPath = (domains) => domains.length === 1 ?
domains[0] :
'san-' + utils_1.numericHash(getFilteredDomains(domains).join(''));
exports.getStableDomainPath = getStableDomainPath;
exports.domainsDir = exports.configPath('domains');
exports.pathForDomain = path_1.default.join.bind(path_1.default, exports.domainsDir);
exports.caVersionFile = exports.configPath('devcert-ca-version');
exports.opensslSerialFilePath = exports.configPath('certificate-authority', 'serial');
exports.opensslDatabaseFilePath = exports.configPath('certificate-authority', 'index.txt');
exports.caSelfSignConfig = path_1.default.join(__dirname, '../openssl-configurations/certificate-authority-self-signing.conf');
function generateSubjectAltNames(domains) {
return domains
.reduce((dnsEntries, domain) => dnsEntries.concat([
`DNS.${dnsEntries.length + 1} = ${domain}`,
`DNS.${dnsEntries.length + 2} = *.${domain}`,
]), [])
.join("\r\n");
}
function withDomainSigningRequestConfig(domains, cb) {
const domain = domains[0];
const subjectAltNames = generateSubjectAltNames(domains);
let tmpFile = utils_1.mktmp();
let source = fs_1.readFileSync(path_1.default.join(__dirname, '../openssl-configurations/domain-certificate-signing-requests.conf'), 'utf-8');
let template = lodash_1.template(source);
let result = template({ domain, subjectAltNames });
fs_1.writeFileSync(tmpFile, eol_1.default.auto(result));
cb(tmpFile);
fs_1.unlinkSync(tmpFile);
}
exports.withDomainSigningRequestConfig = withDomainSigningRequestConfig;
function withDomainCertificateConfig(domains, cb) {
const domainPath = exports.getStableDomainPath(domains);
const subjectAltNames = generateSubjectAltNames(domains);
let tmpFile = utils_1.mktmp();
let source = fs_1.readFileSync(path_1.default.join(__dirname, '../openssl-configurations/domain-certificates.conf'), 'utf-8');
let template = lodash_1.template(source);
let result = template({
subjectAltNames,
serialFile: exports.opensslSerialFilePath,
databaseFile: exports.opensslDatabaseFilePath,
domainDir: exports.pathForDomain(domainPath)
});
fs_1.writeFileSync(tmpFile, eol_1.default.auto(result));
cb(tmpFile);
fs_1.unlinkSync(tmpFile);
}
exports.withDomainCertificateConfig = withDomainCertificateConfig;
// confTemplate = confTemplate.replace(/DATABASE_PATH/, configPath('index.txt').replace(/\\/g, '\\\\'));
// confTemplate = confTemplate.replace(/SERIAL_PATH/, configPath('serial').replace(/\\/g, '\\\\'));
// confTemplate = eol.auto(confTemplate);
exports.rootCADir = exports.configPath('certificate-authority');
exports.rootCAKeyPath = exports.configPath('certificate-authority', 'private-key.key');
exports.rootCACertPath = exports.configPath('certificate-authority', 'certificate.cert');
// Exposed for uninstallation purposes.
function getLegacyConfigDir() {
if (exports.isWindows && process.env.LOCALAPPDATA) {
return path_1.default.join(process.env.LOCALAPPDATA, 'devcert', 'config');
}
else {
let uid = process.getuid && process.getuid();
let userHome = (exports.isLinux && uid === 0) ? path_1.default.resolve('/usr/local/share') : require('os').homedir();
return path_1.default.join(userHome, '.config', 'devcert');
}
}
exports.getLegacyConfigDir = getLegacyConfigDir;
function ensureConfigDirs() {
mkdirp_1.sync(exports.configDir);
mkdirp_1.sync(exports.domainsDir);
mkdirp_1.sync(exports.rootCADir);
}
exports.ensureConfigDirs = ensureConfigDirs;
ensureConfigDirs();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJjb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHdEQUF3QjtBQUN4QiwyQkFBNEY7QUFDNUYsbUNBQXdDO0FBQ3hDLG1DQUFrRDtBQUNsRCxpRUFBa0U7QUFDbEUsc0RBQXNCO0FBQ3RCLG1DQUEyQztBQUUzQyxxQkFBcUI7QUFDUixRQUFBLEtBQUssR0FBRyxPQUFPLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQztBQUN0QyxRQUFBLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQztBQUN2QyxRQUFBLFNBQVMsR0FBRyxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQztBQUV0RCxlQUFlO0FBQ0YsUUFBQSxTQUFTLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0MsUUFBQSxVQUFVLEdBQTBDLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQUksRUFBRSxpQkFBUyxDQUFDLENBQUM7QUFFakcsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE9BQWlCLEVBQUUsRUFBRSxDQUMvQyxLQUFLLENBQUMsSUFBSSxDQUNSLE9BQU87S0FDSixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7S0FDbkMsTUFBTSxDQUFDLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQy9CLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO0tBQ3JCLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUN4QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7UUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNyQjtTQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1FBQ3JFLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNyQjtTQUFNO1FBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNuQjtJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUNYLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUMzQixDQUNKLENBQUMsSUFBSSxFQUFFLENBQUM7QUFFSixNQUFNLG1CQUFtQixHQUFHLENBQUMsT0FBaUIsRUFBRSxFQUFFLENBQ3ZELE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDcEIsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDWixNQUFNLEdBQUcsbUJBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUhsRCxRQUFBLG1CQUFtQix1QkFHK0I7QUFDbEQsUUFBQSxVQUFVLEdBQUcsa0JBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNuQyxRQUFBLGFBQWEsR0FBMEQsY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBSSxFQUFFLGtCQUFVLENBQUMsQ0FBQTtBQUV2RyxRQUFBLGFBQWEsR0FBRyxrQkFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFDakQsUUFBQSxxQkFBcUIsR0FBRyxrQkFBVSxDQUFDLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3RFLFFBQUEsdUJBQXVCLEdBQUcsa0JBQVUsQ0FBQyx1QkFBdUIsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUMzRSxRQUFBLGdCQUFnQixHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLG1FQUFtRSxDQUFDLENBQUM7QUFFMUgsU0FBUyx1QkFBdUIsQ0FBQyxPQUFpQjtJQUNoRCxPQUFPLE9BQU87U0FDWCxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FDN0IsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNoQixPQUFPLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLE1BQU0sRUFBRTtRQUMxQyxPQUFPLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxRQUFRLE1BQU0sRUFBRTtLQUM3QyxDQUFDLEVBQUUsRUFBYyxDQUFDO1NBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNsQixDQUFDO0FBRUQsU0FBZ0IsOEJBQThCLENBQUMsT0FBaUIsRUFBRSxFQUE4QjtJQUM5RixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUIsTUFBTSxlQUFlLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsSUFBSSxPQUFPLEdBQUcsYUFBSyxFQUFFLENBQUM7SUFDdEIsSUFBSSxNQUFNLEdBQUcsaUJBQVEsQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxvRUFBb0UsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNILElBQUksUUFBUSxHQUFHLGlCQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFFLGVBQWUsRUFBQyxDQUFDLENBQUM7SUFDakQsa0JBQVMsQ0FBQyxPQUFPLEVBQUUsYUFBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNaLGVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNkLENBQUM7QUFWRCx3RUFVQztBQUVELFNBQWdCLDJCQUEyQixDQUFDLE9BQWlCLEVBQUUsRUFBOEI7SUFDM0YsTUFBTSxVQUFVLEdBQUcsMkJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEQsTUFBTSxlQUFlLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsSUFBSSxPQUFPLEdBQUcsYUFBSyxFQUFFLENBQUM7SUFDdEIsSUFBSSxNQUFNLEdBQUcsaUJBQVEsQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxvREFBb0QsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNHLElBQUksUUFBUSxHQUFHLGlCQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsSUFBSSxNQUFNLEdBQUcsUUFBU