UNPKG

@benmalka/foxdriver

Version:

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

117 lines (98 loc) 8.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _actor = require("../actor"); var _actor2 = _interopRequireDefault(_actor); var _originalsource = require("./originalsource"); var _originalsource2 = _interopRequireDefault(_originalsource); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * A StyleSheetActor represents a stylesheet on the server. */ class StyleSheet extends _actor2.default { /** * Toggle the disabled property of the style sheet * * @return {Promise.Object} 'disabled' - the disabled state after toggling. */ async toggleDisabled() { const { disabled } = await this.request('toggleDisabled'); return disabled; } /** * Protocol method to get the text of this stylesheet. * * @return {Promise.String} text of stylesheet */ async getText() { const { text } = await this.request('getText'); return text; } /** * Protocol method to get the original source (actors) for this * stylesheet if it has uses source maps. * * @return {Promise.OriginalSource[]} list of original sources of this stylesheet */ async getOriginalSources() { const { originalSources } = await this.request('getOriginalSources'); return originalSources.map(originalsource => new _originalsource2.default(this.client, originalsource)); } /** * Protocol method that gets the location in the original source of a * line, column pair in this stylesheet, if its source mapped, otherwise * a promise of the same location. * * @return {Promise.Object} object with "source", "line" and "column" property */ async getOriginalLocation(_line, _column) { const { source, line, column } = await this.request('getOriginalLocation', { line: _line, column: _column }); return { source, line, column }; } /** * Protocol method to get the media rules for the stylesheet. * * @return {Promise.MediaRuleActors[]} list of media rules actors */ async getMediaRules() { const { mediaRules } = await this.request('getMediaRules'); return mediaRules; } /** * Update the style sheet in place with new text. * * @param {object} request * 'text' - new text * 'transition' - whether to do CSS transition for change. * @return {Promise.Object} request response */ update(text, transition) { return this.request('update', { text, transition }); } } exports.default = StyleSheet; module.exports = exports["default"]; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9tb2RlbHMvc3R5bGVzaGVldC5qcyJdLCJuYW1lcyI6WyJTdHlsZVNoZWV0IiwiQWN0b3IiLCJ0b2dnbGVEaXNhYmxlZCIsImRpc2FibGVkIiwicmVxdWVzdCIsImdldFRleHQiLCJ0ZXh0IiwiZ2V0T3JpZ2luYWxTb3VyY2VzIiwib3JpZ2luYWxTb3VyY2VzIiwibWFwIiwib3JpZ2luYWxzb3VyY2UiLCJPcmlnaW5hbFNvdXJjZSIsImNsaWVudCIsImdldE9yaWdpbmFsTG9jYXRpb24iLCJfbGluZSIsIl9jb2x1bW4iLCJzb3VyY2UiLCJsaW5lIiwiY29sdW1uIiwiZ2V0TWVkaWFSdWxlcyIsIm1lZGlhUnVsZXMiLCJ1cGRhdGUiLCJ0cmFuc2l0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztBQUNBOzs7Ozs7QUFFQTs7O0FBR2UsTUFBTUEsVUFBTixTQUF5QkMsZUFBekIsQ0FBK0I7QUFDMUM7Ozs7O0FBS0EsUUFBTUMsY0FBTixHQUF3QjtBQUNwQixVQUFNO0FBQUVDLE1BQUFBO0FBQUYsUUFBZSxNQUFNLEtBQUtDLE9BQUwsQ0FBYSxnQkFBYixDQUEzQjtBQUNBLFdBQU9ELFFBQVA7QUFDSDtBQUVEOzs7Ozs7O0FBS0EsUUFBTUUsT0FBTixHQUFpQjtBQUNiLFVBQU07QUFBRUMsTUFBQUE7QUFBRixRQUFXLE1BQU0sS0FBS0YsT0FBTCxDQUFhLFNBQWIsQ0FBdkI7QUFDQSxXQUFPRSxJQUFQO0FBQ0g7QUFFRDs7Ozs7Ozs7QUFNQSxRQUFNQyxrQkFBTixHQUE0QjtBQUN4QixVQUFNO0FBQUVDLE1BQUFBO0FBQUYsUUFBc0IsTUFBTSxLQUFLSixPQUFMLENBQWEsb0JBQWIsQ0FBbEM7QUFDQSxXQUFPSSxlQUFlLENBQUNDLEdBQWhCLENBQXFCQyxjQUFELElBQW9CLElBQUlDLHdCQUFKLENBQW1CLEtBQUtDLE1BQXhCLEVBQWdDRixjQUFoQyxDQUF4QyxDQUFQO0FBQ0g7QUFFRDs7Ozs7Ozs7O0FBT0EsUUFBTUcsbUJBQU4sQ0FBMkJDLEtBQTNCLEVBQWtDQyxPQUFsQyxFQUEyQztBQUN2QyxVQUFNO0FBQUVDLE1BQUFBLE1BQUY7QUFBVUMsTUFBQUEsSUFBVjtBQUFnQkMsTUFBQUE7QUFBaEIsUUFBMkIsTUFBTSxLQUFLZCxPQUFMLENBQWEscUJBQWIsRUFBb0M7QUFDdkVhLE1BQUFBLElBQUksRUFBRUgsS0FEaUU7QUFFdkVJLE1BQUFBLE1BQU0sRUFBRUg7QUFGK0QsS0FBcEMsQ0FBdkM7QUFJQSxXQUFPO0FBQUVDLE1BQUFBLE1BQUY7QUFBVUMsTUFBQUEsSUFBVjtBQUFnQkMsTUFBQUE7QUFBaEIsS0FBUDtBQUNIO0FBRUQ7Ozs7Ozs7QUFLQSxRQUFNQyxhQUFOLEdBQXVCO0FBQ25CLFVBQU07QUFBRUMsTUFBQUE7QUFBRixRQUFpQixNQUFNLEtBQUtoQixPQUFMLENBQWEsZUFBYixDQUE3QjtBQUNBLFdBQU9nQixVQUFQO0FBQ0g7QUFFRDs7Ozs7Ozs7OztBQVFBQyxFQUFBQSxNQUFNLENBQUVmLElBQUYsRUFBUWdCLFVBQVIsRUFBb0I7QUFDdEIsV0FBTyxLQUFLbEIsT0FBTCxDQUFhLFFBQWIsRUFBdUI7QUFBRUUsTUFBQUEsSUFBRjtBQUFRZ0IsTUFBQUE7QUFBUixLQUF2QixDQUFQO0FBQ0g7O0FBbkV5Qzs7a0JBQXpCdEIsVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBY3RvciBmcm9tICcuLi9hY3RvcidcclxuaW1wb3J0IE9yaWdpbmFsU291cmNlIGZyb20gJy4vb3JpZ2luYWxzb3VyY2UnXHJcblxyXG4vKipcclxuICogQSBTdHlsZVNoZWV0QWN0b3IgcmVwcmVzZW50cyBhIHN0eWxlc2hlZXQgb24gdGhlIHNlcnZlci5cclxuICovXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN0eWxlU2hlZXQgZXh0ZW5kcyBBY3RvciB7XHJcbiAgICAvKipcclxuICAgICAqIFRvZ2dsZSB0aGUgZGlzYWJsZWQgcHJvcGVydHkgb2YgdGhlIHN0eWxlIHNoZWV0XHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UHJvbWlzZS5PYmplY3R9ICAnZGlzYWJsZWQnIC0gdGhlIGRpc2FibGVkIHN0YXRlIGFmdGVyIHRvZ2dsaW5nLlxyXG4gICAgICovXHJcbiAgICBhc3luYyB0b2dnbGVEaXNhYmxlZCAoKSB7XHJcbiAgICAgICAgY29uc3QgeyBkaXNhYmxlZCB9ID0gYXdhaXQgdGhpcy5yZXF1ZXN0KCd0b2dnbGVEaXNhYmxlZCcpXHJcbiAgICAgICAgcmV0dXJuIGRpc2FibGVkXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm90b2NvbCBtZXRob2QgdG8gZ2V0IHRoZSB0ZXh0IG9mIHRoaXMgc3R5bGVzaGVldC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlLlN0cmluZ30gIHRleHQgb2Ygc3R5bGVzaGVldFxyXG4gICAgICovXHJcbiAgICBhc3luYyBnZXRUZXh0ICgpIHtcclxuICAgICAgICBjb25zdCB7IHRleHQgfSA9IGF3YWl0IHRoaXMucmVxdWVzdCgnZ2V0VGV4dCcpXHJcbiAgICAgICAgcmV0dXJuIHRleHRcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3RvY29sIG1ldGhvZCB0byBnZXQgdGhlIG9yaWdpbmFsIHNvdXJjZSAoYWN0b3JzKSBmb3IgdGhpc1xyXG4gICAgICogc3R5bGVzaGVldCBpZiBpdCBoYXMgdXNlcyBzb3VyY2UgbWFwcy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlLk9yaWdpbmFsU291cmNlW119ICBsaXN0IG9mIG9yaWdpbmFsIHNvdXJjZXMgb2YgdGhpcyBzdHlsZXNoZWV0XHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGdldE9yaWdpbmFsU291cmNlcyAoKSB7XHJcbiAgICAgICAgY29uc3QgeyBvcmlnaW5hbFNvdXJjZXMgfSA9IGF3YWl0IHRoaXMucmVxdWVzdCgnZ2V0T3JpZ2luYWxTb3VyY2VzJylcclxuICAgICAgICByZXR1cm4gb3JpZ2luYWxTb3VyY2VzLm1hcCgob3JpZ2luYWxzb3VyY2UpID0+IG5ldyBPcmlnaW5hbFNvdXJjZSh0aGlzLmNsaWVudCwgb3JpZ2luYWxzb3VyY2UpKVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvdG9jb2wgbWV0aG9kIHRoYXQgZ2V0cyB0aGUgbG9jYXRpb24gaW4gdGhlIG9yaWdpbmFsIHNvdXJjZSBvZiBhXHJcbiAgICAgKiBsaW5lLCBjb2x1bW4gcGFpciBpbiB0aGlzIHN0eWxlc2hlZXQsIGlmIGl0cyBzb3VyY2UgbWFwcGVkLCBvdGhlcndpc2VcclxuICAgICAqIGEgcHJvbWlzZSBvZiB0aGUgc2FtZSBsb2NhdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlLk9iamVjdH0gb2JqZWN0IHdpdGggXCJzb3VyY2VcIiwgXCJsaW5lXCIgYW5kIFwiY29sdW1uXCIgcHJvcGVydHlcclxuICAgICAqL1xyXG4gICAgYXN5bmMgZ2V0T3JpZ2luYWxMb2NhdGlvbiAoX2xpbmUsIF9jb2x1bW4pIHtcclxuICAgICAgICBjb25zdCB7IHNvdXJjZSwgbGluZSwgY29sdW1uIH0gPSBhd2FpdCB0aGlzLnJlcXVlc3QoJ2dldE9yaWdpbmFsTG9jYXRpb24nLCB7XHJcbiAgICAgICAgICAgIGxpbmU6IF9saW5lLFxyXG4gICAgICAgICAgICBjb2x1bW46IF9jb2x1bW5cclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiB7IHNvdXJjZSwgbGluZSwgY29sdW1uIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3RvY29sIG1ldGhvZCB0byBnZXQgdGhlIG1lZGlhIHJ1bGVzIGZvciB0aGUgc3R5bGVzaGVldC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlLk1lZGlhUnVsZUFjdG9yc1tdfSAgbGlzdCBvZiBtZWRpYSBydWxlcyBhY3RvcnNcclxuICAgICAqL1xyXG4gICAgYXN5bmMgZ2V0TWVkaWFSdWxlcyAoKSB7XHJcbiAgICAgICAgY29uc3QgeyBtZWRpYVJ1bGVzIH0gPSBhd2FpdCB0aGlzLnJlcXVlc3QoJ2dldE1lZGlhUnVsZXMnKVxyXG4gICAgICAgIHJldHVybiBtZWRpYVJ1bGVzXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGUgdGhlIHN0eWxlIHNoZWV0IGluIHBsYWNlIHdpdGggbmV3IHRleHQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtICB7b2JqZWN0fSByZXF1ZXN0XHJcbiAgICAgKiAgICAgICAgICd0ZXh0JyAtIG5ldyB0ZXh0XHJcbiAgICAgKiAgICAgICAgICd0cmFuc2l0aW9uJyAtIHdoZXRoZXIgdG8gZG8gQ1NTIHRyYW5zaXRpb24gZm9yIGNoYW5nZS5cclxuICAgICAqIEByZXR1cm4ge1Byb21pc2UuT2JqZWN0fSAgcmVxdWVzdCByZXNwb25zZVxyXG4gICAgICovXHJcbiAgICB1cGRhdGUgKHRleHQsIHRyYW5zaXRpb24pIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KCd1cGRhdGUnLCB7IHRleHQsIHRyYW5zaXRpb24gfSlcclxuICAgIH1cclxufVxyXG4iXX0=