UNPKG

@mytmpvpn/mytmpvpn-client

Version:

MyTmpVpn Client Library

128 lines (127 loc) 7.04 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; 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.MyTmpVpnClientImpl = exports.MyTmpVpnClient = exports.parseUserProfiles = exports.loadUserProfiles = exports.getDefaultUserProfilesDir = exports.getDefaultUsername = exports.getDefaultUserProfilesFile = exports.loadUserProfile = exports.AuthImpl = exports.getDefaultAppConfigFile = exports.loadAppConfig = exports.setVerbose = exports.client = exports.userprofiles = exports.auth = exports.appconfig = void 0; const logging_1 = require("./logging"); const appconfig_1 = require("./appconfig"); const client = __importStar(require("./client")); const userprofiles_1 = require("./userprofiles"); const auth_1 = require("./auth"); // Re-export all modules exports.appconfig = __importStar(require("./appconfig")); exports.auth = __importStar(require("./auth")); exports.userprofiles = __importStar(require("./userprofiles")); exports.client = __importStar(require("./client")); // Export verbosity control for external consumers (e.g. CLI) var logging_2 = require("./logging"); Object.defineProperty(exports, "setVerbose", { enumerable: true, get: function () { return logging_2.setVerbose; } }); // Re-export specific types and classes for direct import var appconfig_2 = require("./appconfig"); Object.defineProperty(exports, "loadAppConfig", { enumerable: true, get: function () { return appconfig_2.loadAppConfig; } }); Object.defineProperty(exports, "getDefaultAppConfigFile", { enumerable: true, get: function () { return appconfig_2.getDefaultAppConfigFile; } }); var auth_2 = require("./auth"); Object.defineProperty(exports, "AuthImpl", { enumerable: true, get: function () { return auth_2.AuthImpl; } }); var userprofiles_2 = require("./userprofiles"); Object.defineProperty(exports, "loadUserProfile", { enumerable: true, get: function () { return userprofiles_2.loadUserProfile; } }); Object.defineProperty(exports, "getDefaultUserProfilesFile", { enumerable: true, get: function () { return userprofiles_2.getDefaultUserProfilesFile; } }); Object.defineProperty(exports, "getDefaultUsername", { enumerable: true, get: function () { return userprofiles_2.getDefaultUsername; } }); Object.defineProperty(exports, "getDefaultUserProfilesDir", { enumerable: true, get: function () { return userprofiles_2.getDefaultUserProfilesDir; } }); Object.defineProperty(exports, "loadUserProfiles", { enumerable: true, get: function () { return userprofiles_2.loadUserProfiles; } }); Object.defineProperty(exports, "parseUserProfiles", { enumerable: true, get: function () { return userprofiles_2.parseUserProfiles; } }); var client_1 = require("./client"); Object.defineProperty(exports, "MyTmpVpnClient", { enumerable: true, get: function () { return client_1.MyTmpVpnClient; } }); Object.defineProperty(exports, "MyTmpVpnClientImpl", { enumerable: true, get: function () { return client_1.MyTmpVpnClientImpl; } }); let AUTH; function getClientModule(apiurl) { const useMocks = process.env['MYTMPVPN_USEMOCKS']; let result; if (useMocks === 'true') { logging_1.logger.info(`Using mocks according to defined environment variable MYTMPVPN_USEMOCKS=${useMocks}`); // Dynamic require to avoid bundling mock code in production const { MyTmpVpnClientMock } = require('./__mocks__/client'); result = new MyTmpVpnClientMock(); } else { result = new client.MyTmpVpnClientImpl(apiurl); } return result; } exports.getClientModule = getClientModule; function init(appConfig, userProfile) { const useMocks = process.env['MYTMPVPN_USEMOCKS']; if (useMocks === 'true') { logging_1.logger.info(`Using mocks according to defined environment variable MYTMPVPN_USEMOCKS=${useMocks}`); const { AuthMock } = require('./__mocks__/auth'); AUTH = new AuthMock(userProfile.username); } else { AUTH = new auth_1.AuthImpl(appConfig, userProfile); } } 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) { const auth = getAuthModule(appConfig, userProfile); return await auth.authenticate(); } exports.getLoggedInClient = getLoggedInClient; async function registerUser(appConfig, userProfile) { const auth = getAuthModule(appConfig, userProfile); return await auth.register(); } exports.registerUser = registerUser; async function confirmUser(appConfig, username, code) { const 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, userprofiles_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, userprofiles_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;