UNPKG

allproxy

Version:

AllProxy: MITM HTTP Debugging Tool.

119 lines (114 loc) 5.16 kB
"use strict"; 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()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MessageServer = void 0; const mockttp_1 = require("mockttp"); const constants_1 = require("./constants"); const promise_1 = require("./util/promise"); class MessageServer { constructor(config, message) { this.config = config; this.message = message; this.messageSeen = (0, promise_1.getDeferred)(); } start() { return __awaiter(this, void 0, void 0, function* () { this.server = (0, mockttp_1.getLocal)({ https: this.config.https, cors: true }); yield this.server.start(constants_1.EPHEMERAL_PORT_RANGE); yield this.server.forGet('/') .thenCallback(() => { console.log('Request to message server received'); this.messageSeen.resolve(); return { statusCode: 200, body: ` <html> <title>HTTP Toolkit</title> <meta charset="UTF-8" /> <link href="http://fonts.googleapis.com/css?family=Lato" rel="stylesheet" /> <style> body { margin: 0; padding: 20px; background-color: #d8e2e6; font-family: Lato, Arial; position: absolute; top: 50%; transform: translateY(-50%); width: 100%; box-sizing: border-box; text-align: center; } p { font-size: 16pt; } iframe { display: none; } </style> <body> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="400px" height="400px" viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" > <path fill="#b6c2ca" d="M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z"> <animateTransform attributeType="xml" attributeName="transform" type="rotate" from="0 25 25" to="360 25 25" dur="6s" repeatCount="indefinite" /> </path> </svg> <p> ${this.message} </p> </div> </body> </html> ` }; }); }); } get host() { return this.server.url .replace('https://', ''); } get url() { return this.server.url.replace('https://', 'http://'); } waitForSuccess() { return __awaiter(this, void 0, void 0, function* () { yield this.messageSeen.promise; }); } stop() { return __awaiter(this, void 0, void 0, function* () { if (this.server) { yield this.server.stop(); this.server = undefined; } }); } } exports.MessageServer = MessageServer; //# sourceMappingURL=message-server.js.map