@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
JavaScript
"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==