"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const request_pipeline_1 = __importDefault(require("./request-pipeline")); const add_custom_debug_formatters_1 = __importDefault(require("./add-custom-debug-formatters")); const debug_loggers_1 = require("../utils/debug-loggers"); const session_storage_1 = __importDefault(require("./session-storage")); const ALL_REQUEST_RESPONSES = { requestStage: 'Request' }; const ALL_REQUEST_REQUESTS = { requestStage: 'Response' }; const ALL_REQUESTS_DATA = [ALL_REQUEST_REQUESTS, ALL_REQUEST_RESPONSES]; class Proxyless { constructor(browserId, client) { this._client = client; this.requestPipeline = new request_pipeline_1.default(browserId, client); this.sessionStorage = new session_storage_1.default(browserId, client); this.sessionStorage.on('contextStorageSync', ({ sessionStorage, testRunId, frameDriverId }) => { if (sessionStorage) { this.requestPipeline.contextStorage = this.requestPipeline.contextStorage || {}; this.requestPipeline.contextStorage[testRunId] = this.requestPipeline.contextStorage[testRunId] || {}; this.requestPipeline.contextStorage[testRunId][frameDriverId] = sessionStorage; } }); this.sessionStorage.on('contextStorageTestRunDone', ({ testRunId }) => { if (this.requestPipeline.contextStorage) delete this.requestPipeline.contextStorage[testRunId]; }); (0, add_custom_debug_formatters_1.default)(); } async init(options) { // NOTE: We are forced to handle all requests and responses at once // because CDP API does not allow specifying request filtering behavior for different handlers. await this._client.Fetch.enable({ patterns: ALL_REQUESTS_DATA, }); const proxylessSystems = [ this.requestPipeline, this.sessionStorage, ]; for (const api of proxylessSystems) await api.init(options); (0, debug_loggers_1.proxylessLogger)('proxyless initialized'); } async dispose() { this.requestPipeline.stop(); await this._client.Fetch.disable(); (0, debug_loggers_1.proxylessLogger)('proxyless disposed'); } } exports.default = Proxyless; module.exports = exports.default; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJveHlsZXNzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EsMEVBQTBEO0FBQzFELGdHQUFxRTtBQUVyRSwwREFBeUQ7QUFDekQsd0VBQStDO0FBRS9DLE1BQU0scUJBQXFCLEdBQUcsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFvQixDQUFDO0FBQzVFLE1BQU0sb0JBQW9CLEdBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFvQixDQUFDO0FBRTdFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0FBRXhFLE1BQXFCLFNBQVM7SUFLMUIsWUFBb0IsU0FBaUIsRUFBRSxNQUFtQjtRQUN0RCxJQUFJLENBQUMsT0FBTyxHQUFXLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksMEJBQXdCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSx5QkFBYyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU1RCxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFO1lBQzFGLElBQUksY0FBYyxFQUFFO2dCQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7Z0JBQ2hGLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdEcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsY0FBYyxDQUFDO2FBQ2xGO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtZQUNsRSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYztnQkFDbkMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUEscUNBQXdCLEdBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUksQ0FBRSxPQUE4QjtRQUM3QyxtRUFBbUU7UUFDbkUsK0ZBQStGO1FBQy9GLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzVCLFFBQVEsRUFBRSxpQkFBaUI7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxnQkFBZ0IsR0FBRztZQUNyQixJQUFJLENBQUMsZUFBZTtZQUNwQixJQUFJLENBQUMsY0FBYztTQUN0QixDQUFDO1FBRUYsS0FBSyxNQUFNLEdBQUcsSUFBSSxnQkFBZ0I7WUFDOUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTVCLElBQUEsK0JBQWUsRUFBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTVCLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFbkMsSUFBQSwrQkFBZSxFQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNKO0FBbkRELDRCQW1EQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3RvY29sQXBpIH0gZnJvbSAnY2hyb21lLXJlbW90ZS1pbnRlcmZhY2UnO1xuaW1wb3J0IFByb3RvY29sIGZyb20gJ2RldnRvb2xzLXByb3RvY29sJztcbmltcG9ydCBSZXF1ZXN0UGF0dGVybiA9IFByb3RvY29sLk5ldHdvcmsuUmVxdWVzdFBhdHRlcm47XG5pbXBvcnQgUHJveHlsZXNzUmVxdWVzdFBpcGVsaW5lIGZyb20gJy4vcmVxdWVzdC1waXBlbGluZSc7XG5pbXBvcnQgYWRkQ3VzdG9tRGVidWdGb3JtYXR0ZXJzIGZyb20gJy4vYWRkLWN1c3RvbS1kZWJ1Zy1mb3JtYXR0ZXJzJztcbmltcG9ydCB7IFByb3h5bGVzc1NldHVwT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC90eXBlcyc7XG5pbXBvcnQgeyBwcm94eWxlc3NMb2dnZXIgfSBmcm9tICcuLi91dGlscy9kZWJ1Zy1sb2dnZXJzJztcbmltcG9ydCBTZXNzaW9uU3RvcmFnZSBmcm9tICcuL3Nlc3Npb24tc3RvcmFnZSc7XG5cbmNvbnN0IEFMTF9SRVFVRVNUX1JFU1BPTlNFUyA9IHsgcmVxdWVzdFN0YWdlOiAnUmVxdWVzdCcgfSBhcyBSZXF1ZXN0UGF0dGVybjtcbmNvbnN0IEFMTF9SRVFVRVNUX1JFUVVFU1RTICA9IHsgcmVxdWVzdFN0YWdlOiAnUmVzcG9uc2UnIH0gYXMgUmVxdWVzdFBhdHRlcm47XG5cbmNvbnN0IEFMTF9SRVFVRVNUU19EQVRBID0gW0FMTF9SRVFVRVNUX1JFUVVFU1RTLCBBTExfUkVRVUVTVF9SRVNQT05TRVNdO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcm94eWxlc3Mge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NsaWVudDogUHJvdG9jb2xBcGk7XG4gICAgcHVibGljIHJlYWRvbmx5IHJlcXVlc3RQaXBlbGluZTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2U6IFNlc3Npb25TdG9yYWdlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yIChicm93c2VySWQ6IHN0cmluZywgY2xpZW50OiBQcm90b2NvbEFwaSkge1xuICAgICAgICB0aGlzLl9jbGllbnQgICAgICAgICA9IGNsaWVudDtcbiAgICAgICAgdGhpcy5yZXF1ZXN0UGlwZWxpbmUgPSBuZXcgUHJveHlsZXNzUmVxdWVzdFBpcGVsaW5lKGJyb3dzZXJJZCwgY2xpZW50KTtcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZSA9IG5ldyBTZXNzaW9uU3RvcmFnZShicm93c2VySWQsIGNsaWVudCk7XG5cbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5vbignY29udGV4dFN0b3JhZ2VTeW5jJywgKHsgc2Vzc2lvblN0b3JhZ2UsIHRlc3RSdW5JZCwgZnJhbWVEcml2ZXJJZCB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoc2Vzc2lvblN0b3JhZ2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlcXVlc3RQaXBlbGluZS5jb250ZXh0U3RvcmFnZSA9IHRoaXMucmVxdWVzdFBpcGVsaW5lLmNvbnRleHRTdG9yYWdlIHx8IHt9O1xuICAgICAgICAgICAgICAgIHRoaXMucmVxdWVzdFBpcGVsaW5lLmNvbnRleHRTdG9yYWdlW3Rlc3RSdW5JZF0gPSB0aGlzLnJlcXVlc3RQaXBlbGluZS5jb250ZXh0U3RvcmFnZVt0ZXN0UnVuSWRdIHx8IHt9O1xuICAgICAgICAgICAgICAgIHRoaXMucmVxdWVzdFBpcGVsaW5lLmNvbnRleHRTdG9yYWdlW3Rlc3RSdW5JZF1bZnJhbWVEcml2ZXJJZF0gPSBzZXNzaW9uU3RvcmFnZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5vbignY29udGV4dFN0b3JhZ2VUZXN0UnVuRG9uZScsICh7IHRlc3RSdW5JZCB9KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5yZXF1ZXN0UGlwZWxpbmUuY29udGV4dFN0b3JhZ2UpXG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucmVxdWVzdFBpcGVsaW5lLmNvbnRleHRTdG9yYWdlW3Rlc3RSdW5JZF07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFkZEN1c3RvbURlYnVnRm9ybWF0dGVycygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBpbml0IChvcHRpb25zOiBQcm94eWxlc3NTZXR1cE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgLy8gTk9URTogV2UgYXJlIGZvcmNlZCB0byBoYW5kbGUgYWxsIHJlcXVlc3RzIGFuZCByZXNwb25zZXMgYXQgb25jZVxuICAgICAgICAvLyBiZWNhdXNlIENEUCBBUEkgZG9lcyBub3QgYWxsb3cgc3BlY2lmeWluZyByZXF1ZXN0IGZpbHRlcmluZyBiZWhhdmlvciBmb3IgZGlmZmVyZW50IGhhbmRsZXJzLlxuICAgICAgICBhd2FpdCB0aGlzLl9jbGllbnQuRmV0Y2guZW5hYmxlKHtcbiAgICAgICAgICAgIHBhdHRlcm5zOiBBTExfUkVRVUVTVFNfREFUQSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgcHJveHlsZXNzU3lzdGVtcyA9IFtcbiAgICAgICAgICAgIHRoaXMucmVxdWVzdFBpcGVsaW5lLFxuICAgICAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZSxcbiAgICAgICAgXTtcblxuICAgICAgICBmb3IgKGNvbnN0IGFwaSBvZiBwcm94eWxlc3NTeXN0ZW1zKVxuICAgICAgICAgICAgYXdhaXQgYXBpLmluaXQob3B0aW9ucyk7XG5cbiAgICAgICAgcHJveHlsZXNzTG9nZ2VyKCdwcm94eWxlc3MgaW5pdGlhbGl6ZWQnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZGlzcG9zZSAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMucmVxdWVzdFBpcGVsaW5lLnN0b3AoKTtcblxuICAgICAgICBhd2FpdCB0aGlzLl9jbGllbnQuRmV0Y2guZGlzYWJsZSgpO1xuXG4gICAgICAgIHByb3h5bGVzc0xvZ2dlcigncHJveHlsZXNzIGRpc3Bvc2VkJyk7XG4gICAgfVxufVxuIl19