| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | "use strict";Object.defineProperty(exports, "__esModule", {  value: true});exports.getBrowserScope = exports.setBrowserScope = exports.getLatestStableBrowsers = exports.find = exports.isSupported = exports.getSupport = exports.features = undefined;var _lodash = require("lodash.memoize");var _lodash2 = _interopRequireDefault(_lodash);var _browserslist = require("browserslist");var _browserslist2 = _interopRequireDefault(_browserslist);var _caniuseLite = require("caniuse-lite");var _utils = require("./utils");function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var featuresList = Object.keys(_caniuseLite.features);var browsers = void 0;function setBrowserScope(browserList) {  browsers = (0, _utils.cleanBrowsersList)(browserList);}function getBrowserScope() {  return browsers;}var parse = (0, _lodash2.default)(_utils.parseCaniuseData, function (feat, browsers) {  return feat.title + browsers;});function getSupport(query) {  var feature = void 0;  try {    feature = (0, _caniuseLite.feature)(_caniuseLite.features[query]);  } catch (e) {    var res = find(query);    if (res.length === 1) return getSupport(res[0]);    throw new ReferenceError("Please provide a proper feature name. Cannot find " + query);  }  return parse(feature, browsers);}function isSupported(feature, browsers) {  var data = void 0;  try {    data = (0, _caniuseLite.feature)(_caniuseLite.features[feature]);  } catch (e) {    var res = find(feature);    if (res.length === 1) {      data = _caniuseLite.features[res[0]];    } else {      throw new ReferenceError("Please provide a proper feature name. Cannot find " + feature);    }  }  return (0, _browserslist2.default)(browsers, { ignoreUnknownVersions: true }).map(function (browser) {    return browser.split(" ");  }).every(function (browser) {    return data.stats[browser[0]] && data.stats[browser[0]][browser[1]] === "y";  });}function find(query) {  if (typeof query !== "string") {    throw new TypeError("The `query` parameter should be a string.");  }  if (~featuresList.indexOf(query)) {    // exact match    return query;  }  return featuresList.filter(function (file) {    return (0, _utils.contains)(file, query);  });}function getLatestStableBrowsers() {  return (0, _browserslist2.default)("last 1 version");}setBrowserScope();exports.features = featuresList;exports.getSupport = getSupport;exports.isSupported = isSupported;exports.find = find;exports.getLatestStableBrowsers = getLatestStableBrowsers;exports.setBrowserScope = setBrowserScope;exports.getBrowserScope = getBrowserScope;
 |