"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const testcafe_hammerhead_1 = require("testcafe-hammerhead"); const string_1 = require("../utils/string"); const cdp_1 = require("../utils/cdp"); class ProxylessRequestHookEventProvider extends testcafe_hammerhead_1.RequestHookEventProvider { static _hasResponseWithBody(context) { return context.onResponseEventData.some((eventData) => eventData.opts.includeBody); } static async _setResponseBody({ pipelineContext, resourceBody, eventFactory, event, client }) { if ((resourceBody === null || resourceBody === void 0 ? void 0 : resourceBody.length) || (0, cdp_1.isPreflightRequest)(event)) { eventFactory.setResponseBody(resourceBody); return; } const hasOnResponseWithBody = ProxylessRequestHookEventProvider._hasResponseWithBody(pipelineContext); if (!hasOnResponseWithBody) return; const responseObj = await client.Fetch.getResponseBody({ requestId: event.requestId }); const responseBody = (0, string_1.getResponseAsBuffer)(responseObj); eventFactory.setResponseBody(responseBody); } async onRequest(event, contextInfo) { if (!this.hasRequestEventListeners()) return; const { pipelineContext, eventFactory } = contextInfo.getContextData(event); await pipelineContext.onRequestHookRequest(this, eventFactory); } async onResponse(event, resourceBody, contextInfo, client) { let modified = false; if (!this.hasRequestEventListeners()) return modified; const { pipelineContext, eventFactory } = contextInfo.getContextData(event); eventFactory.update(event); await pipelineContext.onRequestHookConfigureResponse(this, eventFactory); if (eventFactory.headersModified) modified = true; await ProxylessRequestHookEventProvider._setResponseBody({ pipelineContext, resourceBody, eventFactory, event, client, }); await Promise.all(pipelineContext.onResponseEventData.map(async (eventData) => { await pipelineContext.onRequestHookResponse(this, eventFactory, eventData.rule, eventData.opts); })); return modified; } } exports.default = ProxylessRequestHookEventProvider; module.exports = exports.default; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJveHlsZXNzL3JlcXVlc3QtaG9va3MvZXZlbnQtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2REFJNkI7QUFJN0IsNENBQXNEO0FBQ3RELHNDQUFrRDtBQUtsRCxNQUFxQixpQ0FBa0MsU0FBUSw4Q0FBd0I7SUFDM0UsTUFBTSxDQUFDLG9CQUFvQixDQUFFLE9BQWlDO1FBQ2xFLE9BQU8sT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLFNBQThCLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVPLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUUsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUF5SztRQUN4USxJQUFJLENBQUEsWUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFFLE1BQU0sS0FBSSxJQUFBLHdCQUFrQixFQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xELFlBQW9ELENBQUMsZUFBZSxDQUFDLFlBQXNCLENBQUMsQ0FBQztZQUU5RixPQUFPO1NBQ1Y7UUFHRCxNQUFNLHFCQUFxQixHQUFHLGlDQUFpQyxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXRHLElBQUksQ0FBQyxxQkFBcUI7WUFDdEIsT0FBTztRQUVYLE1BQU0sV0FBVyxHQUFJLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDeEYsTUFBTSxZQUFZLEdBQUcsSUFBQSw0QkFBbUIsRUFBQyxXQUFXLENBQUMsQ0FBQztRQUVyRCxZQUFvRCxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRU0sS0FBSyxDQUFDLFNBQVMsQ0FBRSxLQUF5QixFQUFFLFdBQXdDO1FBQ3ZGLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDaEMsT0FBTztRQUVYLE1BQU0sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEdBQUcsV0FBVyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1RSxNQUFNLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVNLEtBQUssQ0FBQyxVQUFVLENBQUUsS0FBeUIsRUFBRSxZQUEyQixFQUFFLFdBQXdDLEVBQUUsTUFBbUI7UUFDMUksSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBRXJCLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDaEMsT0FBTyxRQUFRLENBQUM7UUFFcEIsTUFBTSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNFLFlBQW9ELENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBFLE1BQU0sZUFBZSxDQUFDLDhCQUE4QixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztRQUV6RSxJQUFLLFlBQW9ELENBQUMsZUFBZTtZQUNyRSxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXBCLE1BQU0saUNBQWlDLENBQUMsZ0JBQWdCLENBQUM7WUFDckQsZUFBZTtZQUNmLFlBQVk7WUFDWixZQUFZO1lBQ1osS0FBSztZQUNMLE1BQU07U0FDVCxDQUFDLENBQUM7UUFFSCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEVBQUU7WUFDeEUsTUFBTSxlQUFlLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRUosT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBOURELG9EQThEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQmFzZVJlcXVlc3RIb29rRXZlbnRGYWN0b3J5LFxuICAgIE9uUmVzcG9uc2VFdmVudERhdGEsXG4gICAgUmVxdWVzdEhvb2tFdmVudFByb3ZpZGVyLFxufSBmcm9tICd0ZXN0Y2FmZS1oYW1tZXJoZWFkJztcbmltcG9ydCBQcm94eWxlc3NQaXBlbGluZUNvbnRleHQgZnJvbSAnLi9waXBlbGluZS1jb250ZXh0JztcbmltcG9ydCBSZXF1ZXN0UGF1c2VkRXZlbnRCYXNlZEV2ZW50RmFjdG9yeSBmcm9tICcuL2V2ZW50LWZhY3RvcnkvcmVxdWVzdC1wYXVzZWQtZXZlbnQtYmFzZWQnO1xuaW1wb3J0IHsgUHJvdG9jb2xBcGkgfSBmcm9tICdjaHJvbWUtcmVtb3RlLWludGVyZmFjZSc7XG5pbXBvcnQgeyBnZXRSZXNwb25zZUFzQnVmZmVyIH0gZnJvbSAnLi4vdXRpbHMvc3RyaW5nJztcbmltcG9ydCB7IGlzUHJlZmxpZ2h0UmVxdWVzdCB9IGZyb20gJy4uL3V0aWxzL2NkcCc7XG5pbXBvcnQgUHJvdG9jb2wgZnJvbSAnZGV2dG9vbHMtcHJvdG9jb2wnO1xuaW1wb3J0IFJlcXVlc3RQYXVzZWRFdmVudCA9IFByb3RvY29sLkZldGNoLlJlcXVlc3RQYXVzZWRFdmVudDtcbmltcG9ydCBQcm94eWxlc3NSZXF1ZXN0Q29udGV4dEluZm8gZnJvbSAnLi4vcmVxdWVzdC1waXBlbGluZS9jb250ZXh0LWluZm8nO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcm94eWxlc3NSZXF1ZXN0SG9va0V2ZW50UHJvdmlkZXIgZXh0ZW5kcyBSZXF1ZXN0SG9va0V2ZW50UHJvdmlkZXIge1xuICAgIHByaXZhdGUgc3RhdGljIF9oYXNSZXNwb25zZVdpdGhCb2R5IChjb250ZXh0OiBQcm94eWxlc3NQaXBlbGluZUNvbnRleHQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQub25SZXNwb25zZUV2ZW50RGF0YS5zb21lKChldmVudERhdGE6IE9uUmVzcG9uc2VFdmVudERhdGEpID0+IGV2ZW50RGF0YS5vcHRzLmluY2x1ZGVCb2R5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBhc3luYyBfc2V0UmVzcG9uc2VCb2R5ICh7IHBpcGVsaW5lQ29udGV4dCwgcmVzb3VyY2VCb2R5LCBldmVudEZhY3RvcnksIGV2ZW50LCBjbGllbnQgfTogeyBwaXBlbGluZUNvbnRleHQ6IFByb3h5bGVzc1BpcGVsaW5lQ29udGV4dCwgcmVzb3VyY2VCb2R5OiBCdWZmZXIgfCBudWxsLCBldmVudEZhY3Rvcnk6IEJhc2VSZXF1ZXN0SG9va0V2ZW50RmFjdG9yeSwgZXZlbnQ6IFJlcXVlc3RQYXVzZWRFdmVudCwgY2xpZW50OiBQcm90b2NvbEFwaSB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmIChyZXNvdXJjZUJvZHk/Lmxlbmd0aCB8fCBpc1ByZWZsaWdodFJlcXVlc3QoZXZlbnQpKSB7XG4gICAgICAgICAgICAoZXZlbnRGYWN0b3J5IGFzIFJlcXVlc3RQYXVzZWRFdmVudEJhc2VkRXZlbnRGYWN0b3J5KS5zZXRSZXNwb25zZUJvZHkocmVzb3VyY2VCb2R5IGFzIEJ1ZmZlcik7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgY29uc3QgaGFzT25SZXNwb25zZVdpdGhCb2R5ID0gUHJveHlsZXNzUmVxdWVzdEhvb2tFdmVudFByb3ZpZGVyLl9oYXNSZXNwb25zZVdpdGhCb2R5KHBpcGVsaW5lQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKCFoYXNPblJlc3BvbnNlV2l0aEJvZHkpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgY29uc3QgcmVzcG9uc2VPYmogID0gYXdhaXQgY2xpZW50LkZldGNoLmdldFJlc3BvbnNlQm9keSh7IHJlcXVlc3RJZDogZXZlbnQucmVxdWVzdElkIH0pO1xuICAgICAgICBjb25zdCByZXNwb25zZUJvZHkgPSBnZXRSZXNwb25zZUFzQnVmZmVyKHJlc3BvbnNlT2JqKTtcblxuICAgICAgICAoZXZlbnRGYWN0b3J5IGFzIFJlcXVlc3RQYXVzZWRFdmVudEJhc2VkRXZlbnRGYWN0b3J5KS5zZXRSZXNwb25zZUJvZHkocmVzcG9uc2VCb2R5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgb25SZXF1ZXN0IChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50LCBjb250ZXh0SW5mbzogUHJveHlsZXNzUmVxdWVzdENvbnRleHRJbmZvKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdGhpcy5oYXNSZXF1ZXN0RXZlbnRMaXN0ZW5lcnMoKSlcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBjb25zdCB7IHBpcGVsaW5lQ29udGV4dCwgZXZlbnRGYWN0b3J5IH0gPSBjb250ZXh0SW5mby5nZXRDb250ZXh0RGF0YShldmVudCk7XG5cbiAgICAgICAgYXdhaXQgcGlwZWxpbmVDb250ZXh0Lm9uUmVxdWVzdEhvb2tSZXF1ZXN0KHRoaXMsIGV2ZW50RmFjdG9yeSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIG9uUmVzcG9uc2UgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQsIHJlc291cmNlQm9keTogQnVmZmVyIHwgbnVsbCwgY29udGV4dEluZm86IFByb3h5bGVzc1JlcXVlc3RDb250ZXh0SW5mbywgY2xpZW50OiBQcm90b2NvbEFwaSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuICAgICAgICBpZiAoIXRoaXMuaGFzUmVxdWVzdEV2ZW50TGlzdGVuZXJzKCkpXG4gICAgICAgICAgICByZXR1cm4gbW9kaWZpZWQ7XG5cbiAgICAgICAgY29uc3QgeyBwaXBlbGluZUNvbnRleHQsIGV2ZW50RmFjdG9yeSB9ID0gY29udGV4dEluZm8uZ2V0Q29udGV4dERhdGEoZXZlbnQpO1xuXG4gICAgICAgIChldmVudEZhY3RvcnkgYXMgUmVxdWVzdFBhdXNlZEV2ZW50QmFzZWRFdmVudEZhY3RvcnkpLnVwZGF0ZShldmVudCk7XG5cbiAgICAgICAgYXdhaXQgcGlwZWxpbmVDb250ZXh0Lm9uUmVxdWVzdEhvb2tDb25maWd1cmVSZXNwb25zZSh0aGlzLCBldmVudEZhY3RvcnkpO1xuXG4gICAgICAgIGlmICgoZXZlbnRGYWN0b3J5IGFzIFJlcXVlc3RQYXVzZWRFdmVudEJhc2VkRXZlbnRGYWN0b3J5KS5oZWFkZXJzTW9kaWZpZWQpXG4gICAgICAgICAgICBtb2RpZmllZCA9IHRydWU7XG5cbiAgICAgICAgYXdhaXQgUHJveHlsZXNzUmVxdWVzdEhvb2tFdmVudFByb3ZpZGVyLl9zZXRSZXNwb25zZUJvZHkoe1xuICAgICAgICAgICAgcGlwZWxpbmVDb250ZXh0LFxuICAgICAgICAgICAgcmVzb3VyY2VCb2R5LFxuICAgICAgICAgICAgZXZlbnRGYWN0b3J5LFxuICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICBjbGllbnQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHBpcGVsaW5lQ29udGV4dC5vblJlc3BvbnNlRXZlbnREYXRhLm1hcChhc3luYyBldmVudERhdGEgPT4ge1xuICAgICAgICAgICAgYXdhaXQgcGlwZWxpbmVDb250ZXh0Lm9uUmVxdWVzdEhvb2tSZXNwb25zZSh0aGlzLCBldmVudEZhY3RvcnksIGV2ZW50RGF0YS5ydWxlLCBldmVudERhdGEub3B0cyk7XG4gICAgICAgIH0pKTtcblxuICAgICAgICByZXR1cm4gbW9kaWZpZWQ7XG4gICAgfVxufVxuIl19