@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
55 lines • 4.56 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AuthenticationHelper = void 0;
const os_1 = __importDefault(require("os"));
const fs_1 = __importDefault(require("fs"));
const PermissionHelper_1 = require("./PermissionHelper");
const env_1 = require("../constants/env");
const config_1 = require("../constants/config");
const UnifiedPath_1 = require("../system/UnifiedPath");
const Crypto_1 = require("../system/Crypto");
// Types
const types_1 = require("../types");
class AuthenticationHelper {
static getAuthentication() {
return __awaiter(this, void 0, void 0, function* () {
if (env_1.OAKLEAN_AUTH_KEY !== undefined) {
if (!Crypto_1.Crypto.validateUniqueID(env_1.OAKLEAN_AUTH_KEY)) {
throw new Error('AuthenticationHelper.getAuthentication: Env Variable OAKLEAN_AUTH_KEY is no uuid4');
}
return env_1.OAKLEAN_AUTH_KEY;
}
const configDir = new UnifiedPath_1.UnifiedPath(os_1.default.homedir()).join(config_1.STATIC_GLOBAL_CONFIG_DIR);
const authFile = configDir.join('auth');
if (!fs_1.default.existsSync(authFile.toPlatformString())) {
const auth = yield Crypto_1.Crypto.uniqueID();
PermissionHelper_1.PermissionHelper.writeFileWithUserPermission(authFile, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aGVudGljYXRpb25IZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGVscGVyL0F1dGhlbnRpY2F0aW9uSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRDQUFtQjtBQUNuQiw0Q0FBbUI7QUFFbkIseURBQXFEO0FBRXJELDBDQUFtRDtBQUNuRCxnREFBOEQ7QUFDOUQsdURBQW1EO0FBQ25ELDZDQUF5QztBQUN6QyxRQUFRO0FBQ1Isb0NBQXVEO0FBRXZELE1BQWEsb0JBQW9CO0lBQ2hDLE1BQU0sQ0FBTyxpQkFBaUI7O1lBQzdCLElBQUksc0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxlQUFNLENBQUMsZ0JBQWdCLENBQUMsc0JBQStCLENBQUMsRUFBRSxDQUFDO29CQUMvRCxNQUFNLElBQUksS0FBSyxDQUNkLG1GQUFtRixDQUNuRixDQUFBO2dCQUNGLENBQUM7Z0JBQ0QsT0FBTyxzQkFBK0IsQ0FBQTtZQUN2QyxDQUFDO1lBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFlBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDbkQsaUNBQXdCLENBQ3hCLENBQUE7WUFDRCxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBRXZDLElBQUksQ0FBQyxZQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDakQsTUFBTSxJQUFJLEdBQUcsTUFBTSxlQUFNLENBQUMsUUFBUSxFQUFFLENBQUE7Z0JBQ3BDLG1DQUFnQixDQUFDLDJCQUEyQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQTtnQkFDNUQsbUNBQWdCLENBQUMsb0JBQW9CLENBQ3BDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxFQUMzQix1QkFBZSxDQUFDLGtCQUFrQixDQUNsQyxDQUFBO2dCQUNELE9BQU8sSUFBOEIsQ0FBQTtZQUN0QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsTUFBTSxJQUFJLEdBQUcsWUFBRTtxQkFDYixZQUFZLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUM7cUJBQ3pDLFFBQVEsRUFBaUIsQ0FBQTtnQkFDM0IsSUFBSSxDQUFDLGVBQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUNwQyxNQUFNLElBQUksS0FBSyxDQUNkLDJFQUEyRSxDQUMzRSxDQUFBO2dCQUNGLENBQUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUE7WUFDWixDQUFDO1FBQ0YsQ0FBQztLQUFBO0NBQ0Q7QUFwQ0Qsb0RBb0NDIn0=