| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | 
							- 'use strict';
 
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
- var browserslist = require('browserslist');
 
- var utils = require('./utils');
 
- var Browsers = function () {
 
-     /**
 
-      * Return all prefixes for default browser data
 
-      */
 
-     Browsers.prefixes = function prefixes() {
 
-         if (this.prefixesCache) {
 
-             return this.prefixesCache;
 
-         }
 
-         var data = require('caniuse-lite').agents;
 
-         this.prefixesCache = [];
 
-         for (var name in data) {
 
-             this.prefixesCache.push('-' + data[name].prefix + '-');
 
-         }
 
-         this.prefixesCache = utils.uniq(this.prefixesCache).sort(function (a, b) {
 
-             return b.length - a.length;
 
-         });
 
-         return this.prefixesCache;
 
-     };
 
-     /**
 
-      * Check is value contain any possibe prefix
 
-      */
 
-     Browsers.withPrefix = function withPrefix(value) {
 
-         if (!this.prefixesRegexp) {
 
-             this.prefixesRegexp = new RegExp(this.prefixes().join('|'));
 
-         }
 
-         return this.prefixesRegexp.test(value);
 
-     };
 
-     function Browsers(data, requirements, options, stats) {
 
-         _classCallCheck(this, Browsers);
 
-         this.data = data;
 
-         this.options = options || {};
 
-         this.stats = stats;
 
-         this.selected = this.parse(requirements);
 
-     }
 
-     /**
 
-      * Return browsers selected by requirements
 
-      */
 
-     Browsers.prototype.parse = function parse(requirements) {
 
-         return browserslist(requirements, {
 
-             stats: this.stats,
 
-             path: this.options.from,
 
-             env: this.options.env
 
-         });
 
-     };
 
-     /**
 
-      * Return prefix for selected browser
 
-      */
 
-     Browsers.prototype.prefix = function prefix(browser) {
 
-         var _browser$split = browser.split(' '),
 
-             name = _browser$split[0],
 
-             version = _browser$split[1];
 
-         var data = this.data[name];
 
-         var prefix = data.prefix_exceptions && data.prefix_exceptions[version];
 
-         if (!prefix) {
 
-             prefix = data.prefix;
 
-         }
 
-         return '-' + prefix + '-';
 
-     };
 
-     /**
 
-      * Is browser is selected by requirements
 
-      */
 
-     Browsers.prototype.isSelected = function isSelected(browser) {
 
-         return this.selected.indexOf(browser) !== -1;
 
-     };
 
-     return Browsers;
 
- }();
 
- module.exports = Browsers;
 
 
  |