UNPKG

@mytmpvpn/mytmpvpn-client

Version:

MyTmpVpn Client Library

84 lines (83 loc) 3.58 kB
"use strict"; 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;