UNPKG

@benmalka/foxdriver

Version:

Foxdriver is a Node library which provides a high-level API to control Firefox over the Remote Debugging Protocol

126 lines (95 loc) 10.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _actor = require("../actor"); var _actor2 = _interopRequireDefault(_actor); var _longString = require("./longString"); var _longString2 = _interopRequireDefault(_longString); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class Request extends _actor2.default { constructor(client, event) { super(client, event.actor); this.startedDateTime = event.startedDateTime; this.timeStamp = event.timeStamp; this.url = event.url; this.method = event.method; this.isXHR = event.isXHR; this.fromCache = event.fromCache; this.cause = event.cause; this.private = event.private; this.on('networkEventUpdate', this.onUpdate.bind(this)); } /** * Retrieve the request headers from the given NetworkEventActor. */ getRequestHeaders() { return this.request('getRequestHeaders'); } /** * Retrieve the request cookies from the given NetworkEventActor. */ getRequestCookies() { return this.request('getRequestCookies'); } /** * Retrieve the request post data from the given NetworkEventActor. * if this type is a LongString, call LongString to retrive the rest of the data * @returns {Promise.<String>} */ async getRequestPostData() { const { postData } = await this.request('getRequestPostData'); if (postData.text.type && postData.text.type === 'longString') { const longPost = new _longString2.default(this.client, postData.text.actor); return longPost.substring(0, postData.text.length); } return postData.text; } /** * Retrieve the response headers from the given NetworkEventActor. */ getResponseHeaders() { return this.request('getResponseHeaders'); } /** * Retrieve the response cookies from the given NetworkEventActor. */ getResponseCookies() { return this.request('getResponseCookies'); } /** * Retrieve the response content from the given NetworkEventActor. */ async getResponseContent() { const data = await this.request('getResponseContent'); if (data.content && data.content.text.type && data.content.text.type === 'longString') { const longPost = new _longString2.default(this.client, data.content.text.actor); return longPost.substring(0, data.content.text.length); } return data; } /** * Retrieve the timing information for the given NetworkEventActor. */ getEventTimings() { return this.request('getEventTimings'); } getResponseStart() { return this.request('getResponseStart'); } onUpdate(e) { const type = `on${e.updateType[0].toUpperCase()}${e.updateType.slice(1)}`; this.emit(type, e); } /** * Retrieve the security information for the given NetworkEventActor. */ getSecurityInfo() { return this.request('getSecurityInfo'); } } exports.default = Request; module.exports = exports["default"]; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9tb2RlbHMvcmVxdWVzdC5qcyJdLCJuYW1lcyI6WyJSZXF1ZXN0IiwiQWN0b3IiLCJjb25zdHJ1Y3RvciIsImNsaWVudCIsImV2ZW50IiwiYWN0b3IiLCJzdGFydGVkRGF0ZVRpbWUiLCJ0aW1lU3RhbXAiLCJ1cmwiLCJtZXRob2QiLCJpc1hIUiIsImZyb21DYWNoZSIsImNhdXNlIiwicHJpdmF0ZSIsIm9uIiwib25VcGRhdGUiLCJnZXRSZXF1ZXN0SGVhZGVycyIsInJlcXVlc3QiLCJnZXRSZXF1ZXN0Q29va2llcyIsImdldFJlcXVlc3RQb3N0RGF0YSIsInBvc3REYXRhIiwidGV4dCIsInR5cGUiLCJsb25nUG9zdCIsIkxvbmdTdHJpbmciLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJnZXRSZXNwb25zZUhlYWRlcnMiLCJnZXRSZXNwb25zZUNvb2tpZXMiLCJnZXRSZXNwb25zZUNvbnRlbnQiLCJkYXRhIiwiY29udGVudCIsImdldEV2ZW50VGltaW5ncyIsImdldFJlc3BvbnNlU3RhcnQiLCJlIiwidXBkYXRlVHlwZSIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJlbWl0IiwiZ2V0U2VjdXJpdHlJbmZvIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztBQUNBOzs7Ozs7QUFFZSxNQUFNQSxPQUFOLFNBQXNCQyxlQUF0QixDQUE0QjtBQUN2Q0MsRUFBQUEsV0FBVyxDQUFFQyxNQUFGLEVBQVVDLEtBQVYsRUFBaUI7QUFDeEIsVUFBTUQsTUFBTixFQUFjQyxLQUFLLENBQUNDLEtBQXBCO0FBRUEsU0FBS0MsZUFBTCxHQUF1QkYsS0FBSyxDQUFDRSxlQUE3QjtBQUNBLFNBQUtDLFNBQUwsR0FBaUJILEtBQUssQ0FBQ0csU0FBdkI7QUFDQSxTQUFLQyxHQUFMLEdBQVdKLEtBQUssQ0FBQ0ksR0FBakI7QUFDQSxTQUFLQyxNQUFMLEdBQWNMLEtBQUssQ0FBQ0ssTUFBcEI7QUFDQSxTQUFLQyxLQUFMLEdBQWFOLEtBQUssQ0FBQ00sS0FBbkI7QUFD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bnQiOlsiaW1wb3J0IEFjdG9yIGZyb20gJy4uL2FjdG9yJ1xyXG5pbXBvcnQgTG9uZ1N0cmluZyBmcm9tICcuL2xvbmdTdHJpbmcnXHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZXF1ZXN0IGV4dGVuZHMgQWN0b3Ige1xyXG4gICAgY29uc3RydWN0b3IgKGNsaWVudCwgZXZlbnQpIHtcclxuICAgICAgICBzdXBlcihjbGllbnQsIGV2ZW50LmFjdG9yKVxyXG5cclxuICAgICAgICB0aGlzLnN0YXJ0ZWREYXRlVGltZSA9IGV2ZW50LnN0YXJ0ZWREYXRlVGltZVxyXG4gICAgICAgIHRoaXMudGltZVN0YW1wID0gZXZlbnQudGltZVN0YW1wXHJcbiAgICAgICAgdGhpcy51cmwgPSBldmVudC51cmxcclxuICAgICAgICB0aGlzLm1ldGhvZCA9IGV2ZW50Lm1ldGhvZFxyXG4gICAgICAgIHRoaXMuaXNYSFIgPSBldmVudC5pc1hIUlxyXG4gICAgICAgIHRoaXMuZnJvbUNhY2hlID0gZXZlbnQuZnJvbUNhY2hlXHJcbiAgICAgICAgdGhpcy5jYXVzZSA9IGV2ZW50LmNhdXNlXHJcbiAgICAgICAgdGhpcy5wcml2YXRlID0gZXZlbnQucHJpdmF0ZVxyXG5cclxuICAgICAgICB0aGlzLm9uKCduZXR3b3JrRXZlbnRVcGRhdGUnLCA6OnRoaXMub25VcGRhdGUpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZSB0aGUgcmVxdWVzdCBoZWFkZXJzIGZyb20gdGhlIGdpdmVuIE5ldHdvcmtFdmVudEFjdG9yLlxyXG4gICAgICovXHJcbiAgICBnZXRSZXF1ZXN0SGVhZGVycyAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdCgnZ2V0UmVxdWVzdEhlYWRlcnMnKVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmUgdGhlIHJlcXVlc3QgY29va2llcyBmcm9tIHRoZSBnaXZlbiBOZXR3b3JrRXZlbnRBY3Rvci5cclxuICAgICAqL1xyXG4gICAgZ2V0UmVxdWVzdENvb2tpZXMgKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3QoJ2dldFJlcXVlc3RDb29raWVzJylcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlIHRoZSByZXF1ZXN0IHBvc3QgZGF0YSBmcm9tIHRoZSBnaXZlbiBOZXR3b3JrRXZlbnRBY3Rvci5cclxuICAgICAqIGlmIHRoaXMgdHlwZSBpcyBhIExvbmdTdHJpbmcsIGNhbGwgTG9uZ1N0cmluZyB0byByZXRyaXZlIHRoZSByZXN0IG9mIHRoZSBkYXRhXHJcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZS48U3RyaW5nPn1cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZ2V0UmVxdWVzdFBvc3REYXRhICgpIHtcclxuICAgICAgICBjb25zdCB7IHBvc3REYXRhIH0gPSBhd2FpdCB0aGlzLnJlcXVlc3QoJ2dldFJlcXVlc3RQb3N0RGF0YScpXHJcbiAgICAgICAgaWYgKHBvc3REYXRhLnRleHQudHlwZSAmJiBwb3N0RGF0YS50ZXh0LnR5cGUgPT09ICdsb25nU3RyaW5nJykge1xyXG4gICAgICAgICAgICBjb25zdCBsb25nUG9zdCA9IG5ldyBMb25nU3RyaW5nKHRoaXMuY2xpZW50LCBwb3N0RGF0YS50ZXh0LmFjdG9yKVxyXG4gICAgICAgICAgICByZXR1cm4gbG9uZ1Bvc3Quc3Vic3RyaW5nKDAsIHBvc3REYXRhLnRleHQubGVuZ3RoKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zdERhdGEudGV4dFxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmUgdGhlIHJlc3BvbnNlIGhlYWRlcnMgZnJvbSB0aGUgZ2l2ZW4gTmV0d29ya0V2ZW50QWN0b3IuXHJcbiAgICAgKi9cclxuICAgIGdldFJlc3BvbnNlSGVhZGVycyAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdCgnZ2V0UmVzcG9uc2VIZWFkZXJzJylcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlIHRoZSByZXNwb25zZSBjb29raWVzIGZyb20gdGhlIGdpdmVuIE5ldHdvcmtFdmVudEFjdG9yLlxyXG4gICAgICovXHJcbiAgICBnZXRSZXNwb25zZUNvb2tpZXMgKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3QoJ2dldFJlc3BvbnNlQ29va2llcycpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZSB0aGUgcmVzcG9uc2UgY29udGVudCBmcm9tIHRoZSBnaXZlbiBOZXR3b3JrRXZlbnRBY3Rvci5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZ2V0UmVzcG9uc2VDb250ZW50ICgpIHtcclxuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5yZXF1ZXN0KCdnZXRSZXNwb25zZUNvbnRlbnQnKVxyXG4gICAgICAgIGlmIChkYXRhLmNvbnRlbnQgJiYgZGF0YS5jb250ZW50LnRleHQudHlwZSAmJiBkYXRhLmNvbnRlbnQudGV4dC50eXBlID09PSAnbG9uZ1N0cmluZycpIHtcclxuICAgICAgICAgICAgY29uc3QgbG9uZ1Bvc3QgPSBuZXcgTG9uZ1N0cmluZyh0aGlzLmNsaWVudCwgZGF0YS5jb250ZW50LnRleHQuYWN0b3IpXHJcbiAgICAgICAgICAgIHJldHVybiBsb25nUG9zdC5zdWJzdHJpbmcoMCwgZGF0YS5jb250ZW50LnRleHQubGVuZ3RoKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZGF0YVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmUgdGhlIHRpbWluZyBpbmZvcm1hdGlvbiBmb3IgdGhlIGdpdmVuIE5ldHdvcmtFdmVudEFjdG9yLlxyXG4gICAgICovXHJcbiAgICBnZXRFdmVudFRpbWluZ3MgKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3QoJ2dldEV2ZW50VGltaW5ncycpXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UmVzcG9uc2VTdGFydCAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdCgnZ2V0UmVzcG9uc2VTdGFydCcpXHJcbiAgICB9XHJcblxyXG4gICAgb25VcGRhdGUgKGUpIHtcclxuICAgICAgICBjb25zdCB0eXBlID0gYG9uJHtlLnVwZGF0ZVR5cGVbMF0udG9VcHBlckNhc2UoKX0ke2UudXBkYXRlVHlwZS5zbGljZSgxKX1gXHJcbiAgICAgICAgdGhpcy5lbWl0KHR5cGUsIGUpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZSB0aGUgc2VjdXJpdHkgaW5mb3JtYXRpb24gZm9yIHRoZSBnaXZlbiBOZXR3b3JrRXZlbnRBY3Rvci5cclxuICAgICAqL1xyXG4gICAgZ2V0U2VjdXJpdHlJbmZvICgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KCdnZXRTZWN1cml0eUluZm8nKVxyXG4gICAgfVxyXG59XHJcbiJdfQ==