import HostnameAssignedMessage from '../messages/hostname-assigned-message.js'; import HostipWebSocket from '../websocket/host-ip-websocket.js'; import { Options } from '../options.js'; import { eventHandler, URL_ASSIGNED } from '../events/event-handler.js'; import chalk from 'chalk'; export default async function hostnameAssigned(message: HostnameAssignedMessage, websocket: HostipWebSocket, options: Options) { const port = options.port; if (typeof port === 'undefined') { console.error('Please specify a port e.g. run "tmole 80"'); process.exit(1); } const httpsUrl = `https://${message.hostname}`; const httpUrl = `http://${message.hostname}`; const destinationUrl = `http://localhost:${port}`; const encodedHttpsUrl = Buffer.from(httpsUrl).toString('base64'); if (process.env.TUNNELMOLE_QUIET_MODE !== '1') { console.info('='.repeat(process.stdout.columns)); console.info(chalk.blueBright(` _ __ _ _____ | |/ / | | | __ \\ | ' / __ _| |_ __ _ _ __ _ _ __ _ | | | | _____ __ | < / _\` | __/ _\` | '_ \\| | | |/ _\` | | | | |/ _ \\ \\ / / | . \\ (_| | || (_| | | | | |_| | (_| | | |__| | __/\\ V / |_|\\_\\__,_|\\__\\__,_|_| |_|\\__, |\\__,_| |_____/ \\___| \\_/ __/ | |___/ `)); console.info(''); console.info(chalk.white.bold('Your KatanyaTunnel URLs are below and accessible internet-wide.')); console.info(''); console.info(`${chalk.blueBright.bold(httpsUrl)} ⟶ ${chalk.bold(destinationUrl)}`); console.info(`${chalk.blueBright.bold(httpUrl)} ⟶ ${chalk.bold(destinationUrl)}`); console.info(''); console.info('='.repeat(process.stdout.columns)); } console.info("\n\n"); eventHandler.emit(URL_ASSIGNED, httpsUrl); }