Index: frontend/node_modules/caniuse-api/CHANGELOG.md
===================================================================
--- frontend/node_modules/caniuse-api/CHANGELOG.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/caniuse-api/CHANGELOG.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,92 @@
+# 3.0.0 - 2018-07-10
+
+- Upgraded: browserslist
+
+# 2.1.0 - 2018-06-06 (never released to npm)
+
+- Upgraded: browserslist, caniuse-lite
+
+# 2.0.0 - 2017-05-03
+
+- Changed: we now use caniuse-lite instead if caniuse-db
+  ([#59](https://github.com/Nyalab/caniuse-api/pull/59))
+
+# 1.6.1 - 2017-04-07
+
+- Added: export the feature list
+  ([#48](https://github.com/Nyalab/caniuse-api/pull/48))
+
+# 1.5.3 - 2017-02-01
+
+- Removed unused dependency
+  ([#54](https://github.com/Nyalab/caniuse-api/pull/54) - @wtgtybhertgeghgtwtg)
+
+# 1.5.2 - 2016-09-05
+
+- Fixed: no more generation `postinstall` hook ``\o/``.
+  ([#47](https://github.com/Nyalab/caniuse-api/pull/47) - @alexisvincent)
+
+# 1.5.1 - 2016-08-06
+
+- Fixed: Do not fail when browserslist gives a browser that caniuse-api doesn't
+  know about
+  ([#45](https://github.com/Nyalab/caniuse-api/pull/45) - @onigoetz)
+
+# 1.5.0 - 2016-06-01
+
+- Added: JSPM support with explicit file extensions ([#40](https://github.com/Nyalab/caniuse-api/issues/40))
+- Upgraded: dependecies (lodash.memoize, lodash.uniq, shelljs, babel-tape-runner, tape, tap-spec)
+- Upgraded: ask travis to only test node stable
+- Upgraded: some tests fixed, some tests added
+
+# 1.4.1 - 2015-10-18
+
+- Fixed: `generator.js` was missing
+
+# 1.4.0 - 2015-10-18
+
+- Upgraded: browserslist 1.x
+- Upgraded: shelljs 0.5.x
+- Added: output to notify if generation has been made or not
+(related to [#25](https://github.com/Nyalab/caniuse-api/issues/25))
+
+# 1.3.2 - 2015-06-23
+
+- Fixed: lodash.uniq dep
+([#31](https://github.com/Nyalab/caniuse-api/issues/31))
+
+# 1.3.1 - 2015-03-31
+
+- Fixed: Windows support
+
+# 1.3.0 - 2015-03-30
+
+- Added: better exception messages
+- Added: full browserify compatibility (by avoiding dynamic require)
+
+# 1.2.2 - 2015-02-06
+
+- Fixed: postinstall hook for Windows
+
+# 1.2.1 - 2015-02-04
+
+- Changed: Allow in browser usage by avoiding `require.resolve` and using a generated json instead or reading a directory ([#20](https://github.com/Nyalab/caniuse-api/pull/20)]
+
+# 1.2.0 [YANKED]
+
+# 1.1.0 - 2015-02-03
+
+- Fixed: usage of caniuse-db outside the package itself
+- Changed: upgrade to browserslist 0.2.x
+
+# 1.0.0 - 2014-12-16
+
+- Added: package is now automatically tested by [Travis-CI](https://travis-ci.org/Nyalab/caniuse-api)
+
+# 0.1.0 - 2014-12-15
+
+- Changed: complete API changes, released as `caniuse-api` package
+
+# 0.0.1 - 2014-12-09
+
+✨Initial release
Index: frontend/node_modules/caniuse-api/LICENSE
===================================================================
--- frontend/node_modules/caniuse-api/LICENSE	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/caniuse-api/LICENSE	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Sébastien Balayn
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
Index: frontend/node_modules/caniuse-api/README.md
===================================================================
--- frontend/node_modules/caniuse-api/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/caniuse-api/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,157 @@
+# caniuse-api [![Build Status](https://travis-ci.org/Nyalab/caniuse-api.svg?branch=master)](https://travis-ci.org/Nyalab/caniuse-api) [![Build status](https://ci.appveyor.com/api/projects/status/6j3na522bv3bxfa5/branch/master?svg=true)](https://ci.appveyor.com/project/MoOx/caniuse-api/branch/master)
+
+request the caniuse data to check browsers compatibilities
+
+## Installation
+
+```console
+$ yarn add caniuse-api
+```
+
+## Usage
+
+```js
+const caniuse = require('caniuse-api')
+
+caniuse.getSupport('border-radius')
+caniuse.isSupported('border-radius', 'ie 8, ie 9')
+caniuse.setBrowserScope('> 5%, last 1 version')
+caniuse.getSupport('border-radius')
+// ...
+```
+
+## API
+
+#### `caniuse.getSupport(feature)`
+
+_ask since which browsers versions a feature is available_
+
+* `y`: Since which browser version the feature is available
+* `n`: Up to which browser version the feature is unavailable
+* `a`: Up to which browser version the feature is partially supported
+* `x`: Up to which browser version the feature is prefixed
+
+```js
+caniuse.getSupport('border-radius', true)
+/*
+{ and_chr: { y: 67 },
+  and_ff: { y: 60 },
+  and_qq: { y: 1.2 },
+  and_uc: { y: 11.8 },
+  android: { y: 2.1, x: 2.1 },
+  baidu: { y: 7.12 },
+  chrome: { y: 4, x: 4 },
+  edge: { y: 12 },
+  firefox: { a: 2, x: 3.6, y: 3 },
+  ie: { n: 8, y: 9 },
+  ie_mob: { y: 10 },
+  ios_saf: { y: 3.2, x: 3.2 },
+  op_mini: {},
+  op_mob: { n: 10, y: 11 },
+  opera: { n: 10, y: 10.5 },
+  safari: { y: 3.1, x: 4 },
+  samsung: { y: 4 } }
+*/
+```
+
+#### `caniuse.isSupported(feature, browsers)`
+
+_ask if a feature is supported by some browsers_
+
+```js
+caniuse.isSupported('border-radius', 'ie 8, ie 9') // false
+caniuse.isSupported('border-radius', 'ie 9') // true
+```
+
+#### `caniuse.find(query)`
+
+_search for a caniuse feature name_
+
+Ex:
+
+```js
+caniuse.find('radius') // ['border-radius']
+caniuse.find('nothingness') // []
+caniuse.find('css3')
+/*
+[ 'css3-attr',
+  'css3-boxsizing',
+  'css3-colors',
+  'css3-cursors-grab',
+  'css3-cursors-newer',
+  'css3-cursors',
+  'css3-tabsize' ]
+*/
+```
+
+#### `caniuse.getLatestStableBrowsers()`
+
+_get the current version for each browser_
+
+```js
+caniuse.getLatestStableBrowsers()
+/*
+[ 'and_chr 67',
+  'and_ff 60',
+  'and_qq 1.2',
+  'and_uc 11.8',
+  'android 67',
+  'baidu 7.12',
+  'bb 10',
+  'chrome 67',
+  'edge 17',
+  'firefox 61',
+  'ie 11',
+  'ie_mob 11',
+  'ios_saf 11.3-11.4',
+  'op_mini all',
+  'op_mob 46',
+  'opera 53',
+  'safari 11.1',
+  'samsung 7.2' ]
+*/
+```
+
+#### `caniuse.getBrowserScope()`
+
+_returns a list of browsers currently used for the scope of operations_
+
+```js
+caniuse.getBrowserScope()
+/*
+[ 'and_chr',
+  'and_ff',
+  'and_qq',
+  'and_uc',
+  'android',
+  'baidu',
+  'chrome',
+  'edge',
+  'firefox',
+  'ie',
+  'ie_mob',
+  'ios_saf',
+  'op_mini',
+  'op_mob',
+  'opera',
+  'safari',
+  'samsung' ]
+*/
+```
+
+#### `caniuse.setBrowserScope(browserscope)`
+
+_if you do not like the default browser scope, you can set it globally by using this method_
+
+* browserscope should be a 'autoprefixer' formatted string
+
+```js
+caniuse.setBrowserScope('> 5%, last 2 versions, Firefox ESR, Opera 12.1')
+```
+
+
+---
+
+## [Changelog](CHANGELOG.md)
+
+## [License](LICENSE)
Index: frontend/node_modules/caniuse-api/dist/index.js
===================================================================
--- frontend/node_modules/caniuse-api/dist/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/caniuse-api/dist/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,96 @@
+"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;
Index: frontend/node_modules/caniuse-api/dist/utils.js
===================================================================
--- frontend/node_modules/caniuse-api/dist/utils.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/caniuse-api/dist/utils.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,62 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.contains = contains;
+exports.parseCaniuseData = parseCaniuseData;
+exports.cleanBrowsersList = cleanBrowsersList;
+
+var _lodash = require("lodash.uniq");
+
+var _lodash2 = _interopRequireDefault(_lodash);
+
+var _browserslist = require("browserslist");
+
+var _browserslist2 = _interopRequireDefault(_browserslist);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function contains(str, substr) {
+  return !!~str.indexOf(substr);
+}
+
+function parseCaniuseData(feature, browsers) {
+  var support = {};
+  var letters;
+  var letter;
+
+  browsers.forEach(function (browser) {
+    support[browser] = {};
+    for (var info in feature.stats[browser]) {
+      letters = feature.stats[browser][info].replace(/#\d+/, "").trim().split(" ");
+      info = parseFloat(info.split("-")[0]); //if info is a range, take the left
+      if (isNaN(info)) continue;
+      for (var i = 0; i < letters.length; i++) {
+        letter = letters[i];
+        if (letter === "d") {
+          // skip this letter, we don't support it yet
+          continue;
+        } else if (letter === "y") {
+          // min support asked, need to find the min value
+          if (typeof support[browser][letter] === "undefined" || info < support[browser][letter]) {
+            support[browser][letter] = info;
+          }
+        } else {
+          // any other support, need to find the max value
+          if (typeof support[browser][letter] === "undefined" || info > support[browser][letter]) {
+            support[browser][letter] = info;
+          }
+        }
+      }
+    }
+  });
+
+  return support;
+}
+
+function cleanBrowsersList(browserList) {
+  return (0, _lodash2.default)((0, _browserslist2.default)(browserList).map(function (browser) {
+    return browser.split(" ")[0];
+  }));
+}
Index: frontend/node_modules/caniuse-api/package.json
===================================================================
--- frontend/node_modules/caniuse-api/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/caniuse-api/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,47 @@
+{
+  "name": "caniuse-api",
+  "version": "3.0.0",
+  "description": "request the caniuse data to check browsers compatibilities",
+  "repository": "https://github.com/nyalab/caniuse-api.git",
+  "keywords": [
+    "caniuse",
+    "browserslist"
+  ],
+  "authors": [
+    "nyalab",
+    "MoOx"
+  ],
+  "license": "MIT",
+  "main": "dist/index.js",
+  "files": [
+    "dist"
+  ],
+  "dependencies": {
+    "browserslist": "^4.0.0",
+    "caniuse-lite": "^1.0.0",
+    "lodash.memoize": "^4.1.2",
+    "lodash.uniq": "^4.5.0"
+  },
+  "devDependencies": {
+    "babel-cli": "^6.22.2",
+    "babel-eslint": "^5.0.0",
+    "babel-preset-latest": "^6.22.0",
+    "babel-tape-runner": "^2.0.1",
+    "jshint": "^2.5.10",
+    "npmpub": "^3.1.0",
+    "tap-spec": "^4.1.1",
+    "tape": "^4.6.0"
+  },
+  "scripts": {
+    "build": "babel src --out-dir dist",
+    "lint": "jshint src",
+    "prepublish": "npm run build",
+    "test": "npm run lint && babel-tape-runner test/*.js | tap-spec",
+    "release": "npmpub"
+  },
+  "babel": {
+    "presets": [
+      "babel-preset-latest"
+    ]
+  }
+}
