UNPKG

9.61 kBJavaScriptView Raw
1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3 return (mod && mod.__esModule) ? mod : { "default": mod };
4}
5Object.defineProperty(exports, "__esModule", { value: true });
6const path_1 = __importDefault(require("path"));
7const fs_1 = require("fs");
8const mkdirp_1 = require("mkdirp");
9const lodash_1 = require("lodash");
10const applicationConfigPath = require("application-config-path");
11const eol_1 = __importDefault(require("eol"));
12const utils_1 = require("./utils");
13// Platform shortcuts
14exports.isMac = process.platform === 'darwin';
15exports.isLinux = process.platform === 'linux';
16exports.isWindows = process.platform === 'win32';
17// Common paths
18exports.configDir = applicationConfigPath('devcert');
19exports.configPath = path_1.default.join.bind(path_1.default, exports.configDir);
20exports.domainsDir = exports.configPath('domains');
21exports.pathForDomain = path_1.default.join.bind(path_1.default, exports.domainsDir);
22exports.caVersionFile = exports.configPath('devcert-ca-version');
23exports.opensslSerialFilePath = exports.configPath('certificate-authority', 'serial');
24exports.opensslDatabaseFilePath = exports.configPath('certificate-authority', 'index.txt');
25exports.caSelfSignConfig = path_1.default.join(__dirname, '../openssl-configurations/certificate-authority-self-signing.conf');
26function withDomainSigningRequestConfig(domain, cb) {
27 let tmpFile = utils_1.mktmp();
28 let source = fs_1.readFileSync(path_1.default.join(__dirname, '../openssl-configurations/domain-certificate-signing-requests.conf'), 'utf-8');
29 let template = lodash_1.template(source);
30 let result = template({ domain });
31 fs_1.writeFileSync(tmpFile, eol_1.default.auto(result));
32 cb(tmpFile);
33 fs_1.unlinkSync(tmpFile);
34}
35exports.withDomainSigningRequestConfig = withDomainSigningRequestConfig;
36function withDomainCertificateConfig(domain, cb) {
37 let tmpFile = utils_1.mktmp();
38 let source = fs_1.readFileSync(path_1.default.join(__dirname, '../openssl-configurations/domain-certificates.conf'), 'utf-8');
39 let template = lodash_1.template(source);
40 let result = template({
41 domain,
42 serialFile: exports.opensslSerialFilePath,
43 databaseFile: exports.opensslDatabaseFilePath,
44 domainDir: exports.pathForDomain(domain)
45 });
46 fs_1.writeFileSync(tmpFile, eol_1.default.auto(result));
47 cb(tmpFile);
48 fs_1.unlinkSync(tmpFile);
49}
50exports.withDomainCertificateConfig = withDomainCertificateConfig;
51// confTemplate = confTemplate.replace(/DATABASE_PATH/, configPath('index.txt').replace(/\\/g, '\\\\'));
52// confTemplate = confTemplate.replace(/SERIAL_PATH/, configPath('serial').replace(/\\/g, '\\\\'));
53// confTemplate = eol.auto(confTemplate);
54exports.rootCADir = exports.configPath('certificate-authority');
55exports.rootCAKeyPath = exports.configPath('certificate-authority', 'private-key.key');
56exports.rootCACertPath = exports.configPath('certificate-authority', 'certificate.cert');
57mkdirp_1.sync(exports.configDir);
58mkdirp_1.sync(exports.domainsDir);
59mkdirp_1.sync(exports.rootCADir);
60//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9kYXcvb3NzL2RldmNlcnQvIiwic291cmNlcyI6WyJjb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsMkJBQTRGO0FBQzVGLG1DQUF3QztBQUN4QyxtQ0FBa0Q7QUFDbEQsaUVBQWtFO0FBQ2xFLDhDQUFzQjtBQUN0QixtQ0FBZ0M7QUFFaEMscUJBQXFCO0FBQ1IsUUFBQSxLQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUM7QUFDdEMsUUFBQSxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUM7QUFDdkMsUUFBQSxTQUFTLEdBQUcsT0FBTyxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUM7QUFFdEQsZUFBZTtBQUNGLFFBQUEsU0FBUyxHQUFHLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdDLFFBQUEsVUFBVSxHQUEwQyxjQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFJLEVBQUUsaUJBQVMsQ0FBQyxDQUFDO0FBRXBGLFFBQUEsVUFBVSxHQUFHLGtCQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbkMsUUFBQSxhQUFhLEdBQTBELGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQUksRUFBRSxrQkFBVSxDQUFDLENBQUE7QUFFdkcsUUFBQSxhQUFhLEdBQUcsa0JBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBQ2pELFFBQUEscUJBQXFCLEdBQUcsa0JBQVUsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN0RSxRQUFBLHVCQUF1QixHQUFHLGtCQUFVLENBQUMsdUJBQXVCLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDM0UsUUFBQSxnQkFBZ0IsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxtRUFBbUUsQ0FBQyxDQUFDO0FBRTFILHdDQUErQyxNQUFjLEVBQUUsRUFBOEI7SUFDM0YsSUFBSSxPQUFPLEdBQUcsYUFBSyxFQUFFLENBQUM7SUFDdEIsSUFBSSxNQUFNLEdBQUcsaUJBQVEsQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxvRUFBb0UsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNILElBQUksUUFBUSxHQUFHLGlCQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNsQyxrQkFBUyxDQUFDLE9BQU8sRUFBRSxhQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDckMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ1osZUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2QsQ0FBQztBQVJELHdFQVFDO0FBRUQscUNBQTRDLE1BQWMsRUFBRSxFQUE4QjtJQUN4RixJQUFJLE9BQU8sR0FBRyxhQUFLLEVBQUUsQ0FBQztJQUN0QixJQUFJLE1BQU0sR0FBRyxpQkFBUSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLG9EQUFvRCxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0csSUFBSSxRQUFRLEdBQUcsaUJBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDcEIsTUFBTTtRQUNOLFVBQVUsRUFBRSw2QkFBcUI7UUFDakMsWUFBWSxFQUFFLCtCQUF1QjtRQUNyQyxTQUFTLEVBQUUscUJBQWEsQ0FBQyxNQUFNLENBQUM7S0FDakMsQ0FBQyxDQUFDO0lBQ0gsa0JBQVMsQ0FBQyxPQUFPLEVBQUUsYUFBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNaLGVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNkLENBQUM7QUFiRCxrRUFhQztBQUVDLHdHQUF3RztBQUN4RyxtR0FBbUc7QUFDbkcseUNBQXlDO0FBRTlCLFFBQUEsU0FBUyxHQUFHLGtCQUFVLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUNoRCxRQUFBLGFBQWEsR0FBRyxrQkFBVSxDQUFDLHVCQUF1QixFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFDdkUsUUFBQSxjQUFjLEdBQUcsa0JBQVUsQ0FBQyx1QkFBdUIsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0FBRXRGLGFBQU0sQ0FBQyxpQkFBUyxDQUFDLENBQUM7QUFDbEIsYUFBTSxDQUFDLGtCQUFVLENBQUMsQ0FBQztBQUNuQixhQUFNLENBQUMsaUJBQVMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyB1bmxpbmtTeW5jIGFzIHJtLCB3cml0ZUZpbGVTeW5jIGFzIHdyaXRlRmlsZSwgcmVhZEZpbGVTeW5jIGFzIHJlYWRGaWxlIH0gZnJvbSAnZnMnO1xuaW1wb3J0IHsgc3luYyBhcyBta2RpcnAgfSBmcm9tICdta2RpcnAnO1xuaW1wb3J0IHsgdGVtcGxhdGUgYXMgbWFrZVRlbXBsYXRlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBhcHBsaWNhdGlvbkNvbmZpZ1BhdGggPSByZXF1aXJlKCdhcHBsaWNhdGlvbi1jb25maWctcGF0aCcpO1xuaW1wb3J0IGVvbCBmcm9tICdlb2wnO1xuaW1wb3J0IHsgbWt0bXAgfSBmcm9tICcuL3V0aWxzJztcblxuLy8gUGxhdGZvcm0gc2hvcnRjdXRzXG5leHBvcnQgY29uc3QgaXNNYWMgPSBwcm9jZXNzLnBsYXRmb3JtID09PSAnZGFyd2luJztcbmV4cG9ydCBjb25zdCBpc0xpbnV4ID0gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ2xpbnV4JztcbmV4cG9ydCBjb25zdCBpc1dpbmRvd3MgPSBwcm9jZXNzLnBsYXRmb3JtID09PSAnd2luMzInO1xuXG4vLyBDb21tb24gcGF0aHNcbmV4cG9ydCBjb25zdCBjb25maWdEaXIgPSBhcHBsaWNhdGlvbkNvbmZpZ1BhdGgoJ2RldmNlcnQnKTtcbmV4cG9ydCBjb25zdCBjb25maWdQYXRoOiAoLi4ucGF0aFNlZ21lbnRzOiBzdHJpbmdbXSkgPT4gc3RyaW5nID0gcGF0aC5qb2luLmJpbmQocGF0aCwgY29uZmlnRGlyKTtcblxuZXhwb3J0IGNvbnN0IGRvbWFpbnNEaXIgPSBjb25maWdQYXRoKCdkb21haW5zJyk7XG5leHBvcnQgY29uc3QgcGF0aEZvckRvbWFpbjogKGRvbWFpbjogc3RyaW5nLCAuLi5wYXRoU2VnbWVudHM6IHN0cmluZ1tdKSA9PiBzdHJpbmcgPSBwYXRoLmpvaW4uYmluZChwYXRoLCBkb21haW5zRGlyKVxuXG5leHBvcnQgY29uc3QgY2FWZXJzaW9uRmlsZSA9IGNvbmZpZ1BhdGgoJ2RldmNlcnQtY2EtdmVyc2lvbicpO1xuZXhwb3J0IGNvbnN0IG9wZW5zc2xTZXJpYWxGaWxlUGF0aCA9IGNvbmZpZ1BhdGgoJ2NlcnRpZmljYXRlLWF1dGhvcml0eScsICdzZXJpYWwnKTtcbmV4cG9ydCBjb25zdCBvcGVuc3NsRGF0YWJhc2VGaWxlUGF0aCA9IGNvbmZpZ1BhdGgoJ2NlcnRpZmljYXRlLWF1dGhvcml0eScsICdpbmRleC50eHQnKTtcbmV4cG9ydCBjb25zdCBjYVNlbGZTaWduQ29uZmlnID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL29wZW5zc2wtY29uZmlndXJhdGlvbnMvY2VydGlmaWNhdGUtYXV0aG9yaXR5LXNlbGYtc2lnbmluZy5jb25mJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoRG9tYWluU2lnbmluZ1JlcXVlc3RDb25maWcoZG9tYWluOiBzdHJpbmcsIGNiOiAoZmlsZXBhdGg6IHN0cmluZykgPT4gdm9pZCkge1xuICBsZXQgdG1wRmlsZSA9IG1rdG1wKCk7XG4gIGxldCBzb3VyY2UgPSByZWFkRmlsZShwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vb3BlbnNzbC1jb25maWd1cmF0aW9ucy9kb21haW4tY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0cy5jb25mJyksICd1dGYtOCcpO1xuICBsZXQgdGVtcGxhdGUgPSBtYWtlVGVtcGxhdGUoc291cmNlKTtcbiAgbGV0IHJlc3VsdCA9IHRlbXBsYXRlKHsgZG9tYWluIH0pO1xuICB3cml0ZUZpbGUodG1wRmlsZSwgZW9sLmF1dG8ocmVzdWx0KSk7XG4gIGNiKHRtcEZpbGUpO1xuICBybSh0bXBGaWxlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhEb21haW5DZXJ0aWZpY2F0ZUNvbmZpZyhkb21haW46IHN0cmluZywgY2I6IChmaWxlcGF0aDogc3RyaW5nKSA9PiB2b2lkKSB7XG4gIGxldCB0bXBGaWxlID0gbWt0bXAoKTtcbiAgbGV0IHNvdXJjZSA9IHJlYWRGaWxlKHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9vcGVuc3NsLWNvbmZpZ3VyYXRpb25zL2RvbWFpbi1jZXJ0aWZpY2F0ZXMuY29uZicpLCAndXRmLTgnKTtcbiAgbGV0IHRlbXBsYXRlID0gbWFrZVRlbXBsYXRlKHNvdXJjZSk7XG4gIGxldCByZXN1bHQgPSB0ZW1wbGF0ZSh7XG4gICAgZG9tYWluLFxuICAgIHNlcmlhbEZpbGU6IG9wZW5zc2xTZXJpYWxGaWxlUGF0aCxcbiAgICBkYXRhYmFzZUZpbGU6IG9wZW5zc2xEYXRhYmFzZUZpbGVQYXRoLFxuICAgIGRvbWFpbkRpcjogcGF0aEZvckRvbWFpbihkb21haW4pXG4gIH0pO1xuICB3cml0ZUZpbGUodG1wRmlsZSwgZW9sLmF1dG8ocmVzdWx0KSk7XG4gIGNiKHRtcEZpbGUpO1xuICBybSh0bXBGaWxlKTtcbn1cblxuICAvLyBjb25mVGVtcGxhdGUgPSBjb25mVGVtcGxhdGUucmVwbGFjZSgvREFUQUJBU0VfUEFUSC8sIGNvbmZpZ1BhdGgoJ2luZGV4LnR4dCcpLnJlcGxhY2UoL1xcXFwvZywgJ1xcXFxcXFxcJykpO1xuICAvLyBjb25mVGVtcGxhdGUgPSBjb25mVGVtcGxhdGUucmVwbGFjZSgvU0VSSUFMX1BBVEgvLCBjb25maWdQYXRoKCdzZXJpYWwnKS5yZXBsYWNlKC9cXFxcL2csICdcXFxcXFxcXCcpKTtcbiAgLy8gY29uZlRlbXBsYXRlID0gZW9sLmF1dG8oY29uZlRlbXBsYXRlKTtcblxuZXhwb3J0IGNvbnN0IHJvb3RDQURpciA9IGNvbmZpZ1BhdGgoJ2NlcnRpZmljYXRlLWF1dGhvcml0eScpO1xuZXhwb3J0IGNvbnN0IHJvb3RDQUtleVBhdGggPSBjb25maWdQYXRoKCdjZXJ0aWZpY2F0ZS1hdXRob3JpdHknLCAncHJpdmF0ZS1rZXkua2V5Jyk7XG5leHBvcnQgY29uc3Qgcm9vdENBQ2VydFBhdGggPSBjb25maWdQYXRoKCdjZXJ0aWZpY2F0ZS1hdXRob3JpdHknLCAnY2VydGlmaWNhdGUuY2VydCcpO1xuXG5ta2RpcnAoY29uZmlnRGlyKTtcbm1rZGlycChkb21haW5zRGlyKTtcbm1rZGlycChyb290Q0FEaXIpO1xuIl19
\No newline at end of file