UNPKG

@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
"use strict"; 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==