@oaklean/profiler-core
Version:
Part of the @oaklean suite. It provides all basic functions to work with the `.oak` file format. It allows parsing the `.oak` file format as well as tools for analyzing the measurement values. It also provides all necessary capabilities required for prec
44 lines • 4.1 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AuthenticationHelper = exports.STATIC_GLOBAL_CONFIG_DIR = void 0;
const os_1 = __importDefault(require("os"));
const fs_1 = __importDefault(require("fs"));
const PermissionHelper_1 = require("./PermissionHelper");
const UnifiedPath_1 = require("../system/UnifiedPath");
const Crypto_1 = require("../system/Crypto");
// Types
const types_1 = require("../types");
exports.STATIC_GLOBAL_CONFIG_DIR = '.oaklean';
class AuthenticationHelper {
static getAuthentication() {
if (process.env.OAKLEAN_AUTH_KEY !== undefined) {
if (!Crypto_1.Crypto.validateUniqueID(process.env.OAKLEAN_AUTH_KEY)) {
throw new Error('AuthenticationHelper.getAuthentication: Env Variable OAKLEAN_AUTH_KEY is no uuid4');
}
return process.env.OAKLEAN_AUTH_KEY;
}
const configDir = new UnifiedPath_1.UnifiedPath(os_1.default.homedir()).join(exports.STATIC_GLOBAL_CONFIG_DIR);
const authFile = configDir.join('auth');
if (!fs_1.default.existsSync(configDir.toPlatformString())) {
PermissionHelper_1.PermissionHelper.mkdirRecursivelyWithUserPermission(configDir);
}
if (!fs_1.default.existsSync(authFile.toPlatformString())) {
const auth = Crypto_1.Crypto.uniqueID();
PermissionHelper_1.PermissionHelper.writeFileWithUserPermission(authFile.toPlatformString(), auth);
PermissionHelper_1.PermissionHelper.changeFilePermission(authFile.toPlatformString(), types_1.PermissionTypes.ReadWriteOnlyOwner);
return auth;
}
else {
const auth = fs_1.default.readFileSync(authFile.toPlatformString()).toString();
if (!Crypto_1.Crypto.validateUniqueID(auth)) {
throw new Error('AuthenticationHelper.getAuthentication: authentication string is no uuid4');
}
return auth;
}
}
}
exports.AuthenticationHelper = AuthenticationHelper;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aGVudGljYXRpb25IZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGVscGVyL0F1dGhlbnRpY2F0aW9uSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDRDQUFtQjtBQUNuQiw0Q0FBbUI7QUFFbkIseURBQXFEO0FBRXJELHVEQUFtRDtBQUNuRCw2Q0FBeUM7QUFDekMsUUFBUTtBQUNSLG9DQUdpQjtBQUVKLFFBQUEsd0JBQXdCLEdBQUcsVUFBVSxDQUFBO0FBRWxELE1BQWEsb0JBQW9CO0lBQ2hDLE1BQU0sQ0FBQyxpQkFBaUI7UUFDdkIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxlQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBK0IsQ0FBQyxFQUFFLENBQUM7Z0JBQzNFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUZBQW1GLENBQUMsQ0FBQTtZQUNyRyxDQUFDO1lBQ0QsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUErQixDQUFBO1FBQ25ELENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLHlCQUFXLENBQUMsWUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGdDQUF3QixDQUFDLENBQUE7UUFDOUUsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUV2QyxJQUFJLENBQUMsWUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDbEQsbUNBQWdCLENBQUMsa0NBQWtDLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDL0QsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNqRCxNQUFNLElBQUksR0FBRyxlQUFNLENBQUMsUUFBUSxFQUFFLENBQUE7WUFDOUIsbUNBQWdCLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDL0UsbUNBQWdCLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsdUJBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1lBQ3RHLE9BQU8sSUFBOEIsQ0FBQTtRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNQLE1BQU0sSUFBSSxHQUFHLFlBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQWlCLENBQUE7WUFDbkYsSUFBSSxDQUFDLGVBQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLDJFQUEyRSxDQUFDLENBQUE7WUFDN0YsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFBO1FBQ1osQ0FBQztJQUNGLENBQUM7Q0FDRDtBQTdCRCxvREE2QkMifQ==