@mytmpvpn/mytmpvpn-client
Version:
MyTmpVpn Client Library
84 lines (83 loc) • 3.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.confirmUserFromFiles = exports.registerUserFromFiles = exports.getLoggedInClientFromFiles = exports.confirmUser = exports.registerUser = exports.getLoggedInClient = exports.getAuthModule = exports.clear = exports.init = exports.getClientModule = exports.client = exports.userconfig = exports.auth = exports.appconfig = void 0;
const log = require("loglevel");
const client_1 = require("./__mocks__/client");
const appconfig_1 = require("./appconfig");
const client = require("./client");
const userconfig_1 = require("./userconfig");
const auth_1 = require("./auth");
const auth_2 = require("./__mocks__/auth");
exports.appconfig = require("./appconfig");
exports.auth = require("./auth");
exports.userconfig = require("./userconfig");
exports.client = require("./client");
let AUTH;
function getClientModule(apiurl) {
const useMocks = process.env['MYTMPVPN_USEMOCKS'];
let result;
if (useMocks === null || useMocks === undefined || useMocks.trim() === '') {
result = new client.MyTmpVpnClientImpl(apiurl);
}
else {
log.info(`Using mocks according to defined environment variable MYTMPVPN_USEMOCKS`);
result = new client_1.MyTmpVpnClientMock();
}
return result;
}
exports.getClientModule = getClientModule;
function init(appConfig, userProfile) {
const useMocks = process.env['MYTMPVPN_USEMOCKS'];
if (useMocks === null || useMocks === undefined || useMocks.trim() === '') {
AUTH = new auth_1.AuthImpl(appConfig, userProfile);
}
else {
log.info(`Using mocks according to defined environment variable MYTMPVPN_USEMOCKS`);
AUTH = new auth_2.AuthMock(userProfile.username);
}
}
exports.init = init;
function clear() {
AUTH = undefined;
}
exports.clear = clear;
// Factory functions using the interface
function getAuthModule(appConfig, userProfile) {
if (!AUTH)
init(appConfig, userProfile);
return AUTH;
}
exports.getAuthModule = getAuthModule;
async function getLoggedInClient(appConfig, userProfile) {
let auth = getAuthModule(appConfig, userProfile);
return await auth.authenticate();
}
exports.getLoggedInClient = getLoggedInClient;
async function registerUser(appConfig, userProfile) {
let auth = getAuthModule(appConfig, userProfile);
return await auth.register();
}
exports.registerUser = registerUser;
async function confirmUser(appConfig, username, code) {
let auth = getAuthModule(appConfig, { username });
return await auth.confirmRegistration(code);
}
exports.confirmUser = confirmUser;
// File-based helper functions
async function getLoggedInClientFromFiles(params) {
const appConfig = (0, appconfig_1.loadAppConfig)(params.appConfigFile);
const userProfile = (0, userconfig_1.loadUserProfile)(params.userConfigFile, params.profileName);
return getLoggedInClient(appConfig, userProfile);
}
exports.getLoggedInClientFromFiles = getLoggedInClientFromFiles;
async function registerUserFromFiles(params) {
const appConfig = (0, appconfig_1.loadAppConfig)(params.appConfigFile);
const userProfile = (0, userconfig_1.loadUserProfile)(params.userConfigFile, params.profileName);
return registerUser(appConfig, userProfile);
}
exports.registerUserFromFiles = registerUserFromFiles;
async function confirmUserFromFiles(params) {
const appConfig = (0, appconfig_1.loadAppConfig)(params.appConfigFile);
return confirmUser(appConfig, params.username, params.code);
}
exports.confirmUserFromFiles = confirmUserFromFiles;