DESKTOP-SYIYI\Dell 7 years ago
parent
commit
3976461224
100 changed files with 6538 additions and 0 deletions
  1. 7 0
      node_modules/.bin/_mocha-nightwatch.cmd
  2. 7 0
      node_modules/.bin/_mocha.cmd
  3. 7 0
      node_modules/.bin/acorn.cmd
  4. 7 0
      node_modules/.bin/ansi-html.cmd
  5. 7 0
      node_modules/.bin/babylon.cmd
  6. 7 0
      node_modules/.bin/browserslist.cmd
  7. 7 0
      node_modules/.bin/chromedriver.cmd
  8. 7 0
      node_modules/.bin/commonize.cmd
  9. 7 0
      node_modules/.bin/cross-env.cmd
  10. 7 0
      node_modules/.bin/css-beautify.cmd
  11. 7 0
      node_modules/.bin/cssesc.cmd
  12. 7 0
      node_modules/.bin/csso.cmd
  13. 7 0
      node_modules/.bin/dateformat.cmd
  14. 7 0
      node_modules/.bin/defs.cmd
  15. 7 0
      node_modules/.bin/editorconfig.cmd
  16. 7 0
      node_modules/.bin/errno.cmd
  17. 7 0
      node_modules/.bin/escodegen.cmd
  18. 7 0
      node_modules/.bin/esgenerate.cmd
  19. 7 0
      node_modules/.bin/esparse.cmd
  20. 7 0
      node_modules/.bin/esvalidate.cmd
  21. 7 0
      node_modules/.bin/extract-zip.cmd
  22. 7 0
      node_modules/.bin/handlebars.cmd
  23. 7 0
      node_modules/.bin/he.cmd
  24. 7 0
      node_modules/.bin/html-beautify.cmd
  25. 7 0
      node_modules/.bin/html-minifier.cmd
  26. 7 0
      node_modules/.bin/image-size.cmd
  27. 7 0
      node_modules/.bin/istanbul.cmd
  28. 7 0
      node_modules/.bin/js-beautify.cmd
  29. 7 0
      node_modules/.bin/js-yaml.cmd
  30. 7 0
      node_modules/.bin/jsesc.cmd
  31. 7 0
      node_modules/.bin/json5.cmd
  32. 7 0
      node_modules/.bin/karma.cmd
  33. 7 0
      node_modules/.bin/lessc.cmd
  34. 7 0
      node_modules/.bin/loose-envify.cmd
  35. 7 0
      node_modules/.bin/miller-rabin.cmd
  36. 7 0
      node_modules/.bin/mime.cmd
  37. 7 0
      node_modules/.bin/mkdirp.cmd
  38. 7 0
      node_modules/.bin/mocha-nightwatch.cmd
  39. 7 0
      node_modules/.bin/mocha.cmd
  40. 7 0
      node_modules/.bin/nightwatch.cmd
  41. 7 0
      node_modules/.bin/node-pre-gyp.cmd
  42. 7 0
      node_modules/.bin/nopt.cmd
  43. 7 0
      node_modules/.bin/opener.cmd
  44. 7 0
      node_modules/.bin/phantomjs.cmd
  45. 7 0
      node_modules/.bin/random.cmd
  46. 7 0
      node_modules/.bin/rc.cmd
  47. 7 0
      node_modules/.bin/regenerator.cmd
  48. 7 0
      node_modules/.bin/regjsparser.cmd
  49. 7 0
      node_modules/.bin/rimraf.cmd
  50. 7 0
      node_modules/.bin/selenium.cmd
  51. 7 0
      node_modules/.bin/semver.cmd
  52. 7 0
      node_modules/.bin/sha.js.cmd
  53. 7 0
      node_modules/.bin/sshpk-conv.cmd
  54. 7 0
      node_modules/.bin/sshpk-sign.cmd
  55. 7 0
      node_modules/.bin/sshpk-verify.cmd
  56. 7 0
      node_modules/.bin/strip-indent.cmd
  57. 7 0
      node_modules/.bin/svgo.cmd
  58. 7 0
      node_modules/.bin/touch.cmd
  59. 7 0
      node_modules/.bin/uglifyjs.cmd
  60. 7 0
      node_modules/.bin/uuid.cmd
  61. 7 0
      node_modules/.bin/webpack-bundle-analyzer.cmd
  62. 7 0
      node_modules/.bin/webpack.cmd
  63. 7 0
      node_modules/.bin/which.cmd
  64. 7 0
      node_modules/.bin/zopfli.cmd
  65. 7 0
      node_modules/.bin/zopflipng.cmd
  66. 7 0
      node_modules/agent-base/node_modules/.bin/semver.cmd
  67. 27 0
      node_modules/are-we-there-yet/CHANGES.md~
  68. 21 0
      node_modules/autosize/LICENSE.md
  69. 91 0
      node_modules/autosize/changelog.md
  70. 292 0
      node_modules/autosize/dist/autosize.js
  71. 6 0
      node_modules/autosize/dist/autosize.min.js
  72. 113 0
      node_modules/autosize/package.json
  73. 35 0
      node_modules/autosize/readme.md
  74. 261 0
      node_modules/autosize/src/autosize.js
  75. 145 0
      node_modules/babel-preset-env/lib/targets-parser.js
  76. 74 0
      node_modules/babel-preset-env/lib/utils.js
  77. 15 0
      node_modules/babel-preset-env/node_modules/.bin/browserslist
  78. 7 0
      node_modules/babel-preset-env/node_modules/.bin/browserslist.cmd
  79. 158 0
      node_modules/babel-preset-env/node_modules/browserslist/CHANGELOG.md
  80. 20 0
      node_modules/babel-preset-env/node_modules/browserslist/LICENSE
  81. 357 0
      node_modules/babel-preset-env/node_modules/browserslist/README.md
  82. 97 0
      node_modules/babel-preset-env/node_modules/browserslist/cli.js
  83. 706 0
      node_modules/babel-preset-env/node_modules/browserslist/index.js
  84. 132 0
      node_modules/babel-preset-env/node_modules/browserslist/package.json
  85. 307 0
      node_modules/caniuse-db/features-json/css-display-contents.json
  86. 295 0
      node_modules/caniuse-db/features-json/css-hyphenate.json
  87. 295 0
      node_modules/caniuse-db/features-json/css-text-orientation.json
  88. 297 0
      node_modules/caniuse-db/features-json/css-unicode-bidi.json
  89. 304 0
      node_modules/caniuse-db/features-json/eme.json
  90. 304 0
      node_modules/caniuse-db/features-json/hevc.json
  91. 300 0
      node_modules/caniuse-db/features-json/indexeddb2.json
  92. 297 0
      node_modules/caniuse-db/features-json/rel-noreferrer.json
  93. 296 0
      node_modules/caniuse-db/features-json/token-binding.json
  94. 305 0
      node_modules/caniuse-db/features-json/web-share.json
  95. 45 0
      node_modules/caniuse-lite/CHANGELOG.md
  96. 395 0
      node_modules/caniuse-lite/LICENSE
  97. 77 0
      node_modules/caniuse-lite/README.md
  98. 1 0
      node_modules/caniuse-lite/data/agents.js
  99. 1 0
      node_modules/caniuse-lite/data/browserVersions.js
  100. 0 0
      node_modules/caniuse-lite/data/browsers.js

+ 7 - 0
node_modules/.bin/_mocha-nightwatch.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\mocha-nightwatch\bin\_mocha" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\mocha-nightwatch\bin\_mocha" %*
+)

+ 7 - 0
node_modules/.bin/_mocha.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\mocha\bin\_mocha" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\mocha\bin\_mocha" %*
+)

+ 7 - 0
node_modules/.bin/acorn.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\acorn\bin\acorn" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\acorn\bin\acorn" %*
+)

+ 7 - 0
node_modules/.bin/ansi-html.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\ansi-html\bin\ansi-html" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\ansi-html\bin\ansi-html" %*
+)

+ 7 - 0
node_modules/.bin/babylon.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\babylon\bin\babylon.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\babylon\bin\babylon.js" %*
+)

+ 7 - 0
node_modules/.bin/browserslist.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\browserslist\cli.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\browserslist\cli.js" %*
+)

+ 7 - 0
node_modules/.bin/chromedriver.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\chromedriver\bin\chromedriver" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\chromedriver\bin\chromedriver" %*
+)

+ 7 - 0
node_modules/.bin/commonize.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\commoner\bin\commonize" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\commoner\bin\commonize" %*
+)

+ 7 - 0
node_modules/.bin/cross-env.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\cross-env\dist\bin\cross-env.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\cross-env\dist\bin\cross-env.js" %*
+)

+ 7 - 0
node_modules/.bin/css-beautify.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\js-beautify\js\bin\css-beautify.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\js-beautify\js\bin\css-beautify.js" %*
+)

+ 7 - 0
node_modules/.bin/cssesc.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\cssesc\bin\cssesc" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\cssesc\bin\cssesc" %*
+)

+ 7 - 0
node_modules/.bin/csso.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\csso\bin\csso" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\csso\bin\csso" %*
+)

+ 7 - 0
node_modules/.bin/dateformat.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\dateformat\bin\cli.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\dateformat\bin\cli.js" %*
+)

+ 7 - 0
node_modules/.bin/defs.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\defs\build\es5\defs" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\defs\build\es5\defs" %*
+)

+ 7 - 0
node_modules/.bin/editorconfig.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\editorconfig\bin\editorconfig" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\editorconfig\bin\editorconfig" %*
+)

+ 7 - 0
node_modules/.bin/errno.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\errno\cli.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\errno\cli.js" %*
+)

+ 7 - 0
node_modules/.bin/escodegen.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\escodegen\bin\escodegen.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\escodegen\bin\escodegen.js" %*
+)

+ 7 - 0
node_modules/.bin/esgenerate.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\escodegen\bin\esgenerate.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\escodegen\bin\esgenerate.js" %*
+)

+ 7 - 0
node_modules/.bin/esparse.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\esprima\bin\esparse.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\esprima\bin\esparse.js" %*
+)

+ 7 - 0
node_modules/.bin/esvalidate.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\esprima\bin\esvalidate.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\esprima\bin\esvalidate.js" %*
+)

+ 7 - 0
node_modules/.bin/extract-zip.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\extract-zip\cli.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\extract-zip\cli.js" %*
+)

+ 7 - 0
node_modules/.bin/handlebars.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\handlebars\bin\handlebars" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\handlebars\bin\handlebars" %*
+)

+ 7 - 0
node_modules/.bin/he.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\he\bin\he" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\he\bin\he" %*
+)

+ 7 - 0
node_modules/.bin/html-beautify.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\js-beautify\js\bin\html-beautify.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\js-beautify\js\bin\html-beautify.js" %*
+)

+ 7 - 0
node_modules/.bin/html-minifier.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\html-minifier\cli.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\html-minifier\cli.js" %*
+)

+ 7 - 0
node_modules/.bin/image-size.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\image-size\bin\image-size.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\image-size\bin\image-size.js" %*
+)

+ 7 - 0
node_modules/.bin/istanbul.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\istanbul\lib\cli.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\istanbul\lib\cli.js" %*
+)

+ 7 - 0
node_modules/.bin/js-beautify.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\js-beautify\js\bin\js-beautify.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\js-beautify\js\bin\js-beautify.js" %*
+)

+ 7 - 0
node_modules/.bin/js-yaml.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\js-yaml\bin\js-yaml.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\js-yaml\bin\js-yaml.js" %*
+)

+ 7 - 0
node_modules/.bin/jsesc.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\jsesc\bin\jsesc" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\jsesc\bin\jsesc" %*
+)

+ 7 - 0
node_modules/.bin/json5.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\json5\lib\cli.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\json5\lib\cli.js" %*
+)

+ 7 - 0
node_modules/.bin/karma.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\karma\bin\karma" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\karma\bin\karma" %*
+)

+ 7 - 0
node_modules/.bin/lessc.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\less\bin\lessc" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\less\bin\lessc" %*
+)

+ 7 - 0
node_modules/.bin/loose-envify.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\loose-envify\cli.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\loose-envify\cli.js" %*
+)

+ 7 - 0
node_modules/.bin/miller-rabin.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\miller-rabin\bin\miller-rabin" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\miller-rabin\bin\miller-rabin" %*
+)

+ 7 - 0
node_modules/.bin/mime.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\mime\cli.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\mime\cli.js" %*
+)

+ 7 - 0
node_modules/.bin/mkdirp.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\mkdirp\bin\cmd.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\mkdirp\bin\cmd.js" %*
+)

+ 7 - 0
node_modules/.bin/mocha-nightwatch.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\mocha-nightwatch\bin\mocha" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\mocha-nightwatch\bin\mocha" %*
+)

+ 7 - 0
node_modules/.bin/mocha.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\mocha\bin\mocha" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\mocha\bin\mocha" %*
+)

+ 7 - 0
node_modules/.bin/nightwatch.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\nightwatch\bin\nightwatch" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\nightwatch\bin\nightwatch" %*
+)

+ 7 - 0
node_modules/.bin/node-pre-gyp.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\node-pre-gyp\bin\node-pre-gyp" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\node-pre-gyp\bin\node-pre-gyp" %*
+)

+ 7 - 0
node_modules/.bin/nopt.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\nopt\bin\nopt.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\nopt\bin\nopt.js" %*
+)

+ 7 - 0
node_modules/.bin/opener.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\opener\opener.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\opener\opener.js" %*
+)

+ 7 - 0
node_modules/.bin/phantomjs.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\phantomjs-prebuilt\bin\phantomjs" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\phantomjs-prebuilt\bin\phantomjs" %*
+)

+ 7 - 0
node_modules/.bin/random.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\mockjs\bin\random" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\mockjs\bin\random" %*
+)

+ 7 - 0
node_modules/.bin/rc.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\rc\index.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\rc\index.js" %*
+)

+ 7 - 0
node_modules/.bin/regenerator.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\regenerator\bin\regenerator" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\regenerator\bin\regenerator" %*
+)

+ 7 - 0
node_modules/.bin/regjsparser.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\regjsparser\bin\parser" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\regjsparser\bin\parser" %*
+)

+ 7 - 0
node_modules/.bin/rimraf.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\rimraf\bin.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\rimraf\bin.js" %*
+)

+ 7 - 0
node_modules/.bin/selenium.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\selenium-server\bin\selenium" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\selenium-server\bin\selenium" %*
+)

+ 7 - 0
node_modules/.bin/semver.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\semver\bin\semver" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\semver\bin\semver" %*
+)

+ 7 - 0
node_modules/.bin/sha.js.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\sha.js\bin.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\sha.js\bin.js" %*
+)

+ 7 - 0
node_modules/.bin/sshpk-conv.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\sshpk\bin\sshpk-conv" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\sshpk\bin\sshpk-conv" %*
+)

+ 7 - 0
node_modules/.bin/sshpk-sign.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\sshpk\bin\sshpk-sign" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\sshpk\bin\sshpk-sign" %*
+)

+ 7 - 0
node_modules/.bin/sshpk-verify.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\sshpk\bin\sshpk-verify" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\sshpk\bin\sshpk-verify" %*
+)

+ 7 - 0
node_modules/.bin/strip-indent.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\strip-indent\cli.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\strip-indent\cli.js" %*
+)

+ 7 - 0
node_modules/.bin/svgo.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\svgo\bin\svgo" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\svgo\bin\svgo" %*
+)

+ 7 - 0
node_modules/.bin/touch.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\touch\bin\touch.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\touch\bin\touch.js" %*
+)

+ 7 - 0
node_modules/.bin/uglifyjs.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\uglify-js\bin\uglifyjs" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\uglify-js\bin\uglifyjs" %*
+)

+ 7 - 0
node_modules/.bin/uuid.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\uuid\bin\uuid" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\uuid\bin\uuid" %*
+)

+ 7 - 0
node_modules/.bin/webpack-bundle-analyzer.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\webpack-bundle-analyzer\lib\bin\analyzer.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\webpack-bundle-analyzer\lib\bin\analyzer.js" %*
+)

+ 7 - 0
node_modules/.bin/webpack.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\webpack\bin\webpack.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\webpack\bin\webpack.js" %*
+)

+ 7 - 0
node_modules/.bin/which.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\which\bin\which" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\which\bin\which" %*
+)

+ 7 - 0
node_modules/.bin/zopfli.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\node-zopfli\bin\zopfli" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\node-zopfli\bin\zopfli" %*
+)

+ 7 - 0
node_modules/.bin/zopflipng.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\node-zopfli\bin\zopflipng" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\node-zopfli\bin\zopflipng" %*
+)

+ 7 - 0
node_modules/agent-base/node_modules/.bin/semver.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\semver\bin\semver" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\semver\bin\semver" %*
+)

+ 27 - 0
node_modules/are-we-there-yet/CHANGES.md~

@@ -0,0 +1,27 @@
+Hi, figured we could actually use a changelog now:
+
+## 1.1.3 2017-04-21
+
+* Improve documentation and limit files included in the distribution.
+
+## 1.1.2 2016-03-15
+
+* Add tracker group cycle detection and tests for it
+
+## 1.1.1 2016-01-29
+
+* Fix a typo in stream completion tracker
+
+## 1.1.0 2016-01-29
+
+* Rewrote completion percent computation to be low impact– no more walking a
+  tree of completion groups every time we need this info.  Previously, with
+  medium sized tree of completion groups, even a relatively modest number of
+  calls to the top level `completed()` method would result in absurd numbers
+  of calls overall as it walked down the tree. We now, instead, keep track as
+  we bubble up changes, so the computation is limited to when data changes and
+  to the depth of that one branch, instead of _every_ node. (Plus, we were already
+  incurring _this_ cost, since we already bubbled out changes.)
+* Moved different tracker types out to their own files.
+* Made tests test for TOO MANY events too.
+* Standarized the source code formatting

+ 21 - 0
node_modules/autosize/LICENSE.md

@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Jack Moore
+
+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.

+ 91 - 0
node_modules/autosize/changelog.md

@@ -0,0 +1,91 @@
+## Changelog
+
+##### v.3.0.21 - 2016-05-19
+* Fixed bug with overflow detection which degraded performance of textareas that exceed their max-width. Fixes #333.
+
+##### v.3.0.20 - 2016-12-04
+* Fixed minor bug where the `resized` event would not fire under specific conditions when changing the overflow.
+
+##### v.3.0.19 - 2016-11-23
+* Bubble dispatched events. Merged #319.
+
+##### v.3.0.18 - 2016-10-26
+* Fixed Firefox issue where calling dispatchEvent on a detached element throws an error.  Fixes #317.
+
+##### v.3.0.17 - 2016-7-25
+* Fixed Chromium issue where getComputedStyle pixel value did not exactly match the style pixel value.  Fixes #306.
+* Removed undocumented argument, minor refactoring, more comments.
+
+##### v.3.0.16 - 2016-7-13
+* Fixed issue with overflowing parent elements. Fixes #298.
+
+##### v.3.0.15 - 2016-1-26
+* Used newer Event constructor, when available. Fixes #280.
+
+##### v.3.0.14 - 2015-11-11
+* Fixed memory leak on destroy. Merged #271, fixes #270.
+* Fixed bug in old versions of Firefox (1-5), fixes #246.
+
+##### v.3.0.13 - 2015-09-26
+* Fixed scroll-bar jumpiness in iOS. Merged #261, fixes #207.
+* Fixed reflowing of initial text in Chrome and Safari.
+
+##### v.3.0.12 - 2015-09-14
+* Merged changes were discarded when building new dist files.  Merged #255, Fixes #257 for real this time.
+
+##### v.3.0.11 - 2015-09-14
+* Fixed regression from 3.0.10 that caused an error with ES5 browsers.  Merged #255, Fixes #257.
+
+##### v.3.0.10 - 2015-09-10
+* Removed data attribute as a way of tracking which elements autosize has been assigned to. fixes #254, fixes #200.
+
+##### v.3.0.9 - 2015-09-02
+* Fixed issue with assigning autosize to detached nodes. Merged #253, Fixes #234.
+
+##### v.3.0.8 - 2015-06-29
+* Fixed the `autosize:resized` event not being triggered when the overflow changes. Fixes #244.
+
+##### v.3.0.7 - 2015-06-29
+* Fixed jumpy behavior in Windows 8.1 mobile. Fixes #239.
+
+##### v.3.0.6 - 2015-05-19
+* Renamed 'dest' folder to 'dist' to follow common conventions.
+
+##### v.3.0.5 - 2015-05-18
+* Do nothing in Node.js environment.
+
+##### v.3.0.4 - 2015-05-05
+* Added options object for indicating if the script should set the overflowX and overflowY.  The default behavior lets the script control the overflows, which will normalize the appearance between browsers.  Fixes #220.
+
+##### v.3.0.3 - 2015-04-23
+* Avoided adjusting the height for hidden textarea elements.  Fixes #155.
+
+##### v.3.0.2 - 2015-04-23
+* Reworked to respect max-height of any unit-type.  Fixes #191.
+
+##### v.3.0.1 - 2015-04-23
+* Fixed the destroy event so that it removes its own event handler. Fixes #218.
+
+##### v.3.0.0 - 2015-04-15
+* Added new methods for updating and destroying:
+
+	* autosize.update(elements)
+	* autosize.destroy(elements)
+
+* Renamed custom events as to not use jQuery's custom events namespace:
+
+	* autosize.resized renamed to autosize:resized
+	* autosize.update renamed to autosize:update
+	* autosize.destroy renamed to autosize:destroy
+
+##### v.2.0.1 - 2015-04-15
+* Version bump for NPM publishing purposes
+
+##### v.2.0.0 - 2015-02-25
+
+* Smaller, simplier code-base
+* New API.  Example usage: `autosize(document.querySelectorAll(textarea));`
+* Dropped jQuery dependency
+* Dropped IE7-IE8 support
+* Dropped optional parameters
+* Closes #98, closes #106, closes #123, fixes #129, fixes #132, fixes #139, closes #140, closes #166, closes #168, closes #192, closes #193, closes #197

+ 292 - 0
node_modules/autosize/dist/autosize.js

@@ -0,0 +1,292 @@
+/*!
+	Autosize 3.0.21
+	license: MIT
+	http://www.jacklmoore.com/autosize
+*/
+(function (global, factory) {
+	if (typeof define === 'function' && define.amd) {
+		define(['exports', 'module'], factory);
+	} else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {
+		factory(exports, module);
+	} else {
+		var mod = {
+			exports: {}
+		};
+		factory(mod.exports, mod);
+		global.autosize = mod.exports;
+	}
+})(this, function (exports, module) {
+	'use strict';
+
+	var map = typeof Map === "function" ? new Map() : (function () {
+		var keys = [];
+		var values = [];
+
+		return {
+			has: function has(key) {
+				return keys.indexOf(key) > -1;
+			},
+			get: function get(key) {
+				return values[keys.indexOf(key)];
+			},
+			set: function set(key, value) {
+				if (keys.indexOf(key) === -1) {
+					keys.push(key);
+					values.push(value);
+				}
+			},
+			'delete': function _delete(key) {
+				var index = keys.indexOf(key);
+				if (index > -1) {
+					keys.splice(index, 1);
+					values.splice(index, 1);
+				}
+			}
+		};
+	})();
+
+	var createEvent = function createEvent(name) {
+		return new Event(name, { bubbles: true });
+	};
+	try {
+		new Event('test');
+	} catch (e) {
+		// IE does not support `new Event()`
+		createEvent = function (name) {
+			var evt = document.createEvent('Event');
+			evt.initEvent(name, true, false);
+			return evt;
+		};
+	}
+
+	function assign(ta) {
+		if (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return;
+
+		var heightOffset = null;
+		var clientWidth = ta.clientWidth;
+		var cachedHeight = null;
+
+		function init() {
+			var style = window.getComputedStyle(ta, null);
+
+			if (style.resize === 'vertical') {
+				ta.style.resize = 'none';
+			} else if (style.resize === 'both') {
+				ta.style.resize = 'horizontal';
+			}
+
+			if (style.boxSizing === 'content-box') {
+				heightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));
+			} else {
+				heightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);
+			}
+			// Fix when a textarea is not on document body and heightOffset is Not a Number
+			if (isNaN(heightOffset)) {
+				heightOffset = 0;
+			}
+
+			update();
+		}
+
+		function changeOverflow(value) {
+			{
+				// Chrome/Safari-specific fix:
+				// When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space
+				// made available by removing the scrollbar. The following forces the necessary text reflow.
+				var width = ta.style.width;
+				ta.style.width = '0px';
+				// Force reflow:
+				/* jshint ignore:start */
+				ta.offsetWidth;
+				/* jshint ignore:end */
+				ta.style.width = width;
+			}
+
+			ta.style.overflowY = value;
+		}
+
+		function getParentOverflows(el) {
+			var arr = [];
+
+			while (el && el.parentNode && el.parentNode instanceof Element) {
+				if (el.parentNode.scrollTop) {
+					arr.push({
+						node: el.parentNode,
+						scrollTop: el.parentNode.scrollTop
+					});
+				}
+				el = el.parentNode;
+			}
+
+			return arr;
+		}
+
+		function resize() {
+			var originalHeight = ta.style.height;
+			var overflows = getParentOverflows(ta);
+			var docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)
+
+			ta.style.height = 'auto';
+
+			var endHeight = ta.scrollHeight + heightOffset;
+
+			if (ta.scrollHeight === 0) {
+				// If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.
+				ta.style.height = originalHeight;
+				return;
+			}
+
+			ta.style.height = endHeight + 'px';
+
+			// used to check if an update is actually necessary on window.resize
+			clientWidth = ta.clientWidth;
+
+			// prevents scroll-position jumping
+			overflows.forEach(function (el) {
+				el.node.scrollTop = el.scrollTop;
+			});
+
+			if (docTop) {
+				document.documentElement.scrollTop = docTop;
+			}
+		}
+
+		function update() {
+			resize();
+
+			var styleHeight = Math.round(parseFloat(ta.style.height));
+			var computed = window.getComputedStyle(ta, null);
+
+			// Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box
+			var actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight;
+
+			// The actual height not matching the style height (set via the resize method) indicates that
+			// the max-height has been exceeded, in which case the overflow should be allowed.
+			if (actualHeight !== styleHeight) {
+				if (computed.overflowY === 'hidden') {
+					changeOverflow('scroll');
+					resize();
+					actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;
+				}
+			} else {
+				// Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.
+				if (computed.overflowY !== 'hidden') {
+					changeOverflow('hidden');
+					resize();
+					actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;
+				}
+			}
+
+			if (cachedHeight !== actualHeight) {
+				cachedHeight = actualHeight;
+				var evt = createEvent('autosize:resized');
+				try {
+					ta.dispatchEvent(evt);
+				} catch (err) {
+					// Firefox will throw an error on dispatchEvent for a detached element
+					// https://bugzilla.mozilla.org/show_bug.cgi?id=889376
+				}
+			}
+		}
+
+		var pageResize = function pageResize() {
+			if (ta.clientWidth !== clientWidth) {
+				update();
+			}
+		};
+
+		var destroy = (function (style) {
+			window.removeEventListener('resize', pageResize, false);
+			ta.removeEventListener('input', update, false);
+			ta.removeEventListener('keyup', update, false);
+			ta.removeEventListener('autosize:destroy', destroy, false);
+			ta.removeEventListener('autosize:update', update, false);
+
+			Object.keys(style).forEach(function (key) {
+				ta.style[key] = style[key];
+			});
+
+			map['delete'](ta);
+		}).bind(ta, {
+			height: ta.style.height,
+			resize: ta.style.resize,
+			overflowY: ta.style.overflowY,
+			overflowX: ta.style.overflowX,
+			wordWrap: ta.style.wordWrap
+		});
+
+		ta.addEventListener('autosize:destroy', destroy, false);
+
+		// IE9 does not fire onpropertychange or oninput for deletions,
+		// so binding to onkeyup to catch most of those events.
+		// There is no way that I know of to detect something like 'cut' in IE9.
+		if ('onpropertychange' in ta && 'oninput' in ta) {
+			ta.addEventListener('keyup', update, false);
+		}
+
+		window.addEventListener('resize', pageResize, false);
+		ta.addEventListener('input', update, false);
+		ta.addEventListener('autosize:update', update, false);
+		ta.style.overflowX = 'hidden';
+		ta.style.wordWrap = 'break-word';
+
+		map.set(ta, {
+			destroy: destroy,
+			update: update
+		});
+
+		init();
+	}
+
+	function destroy(ta) {
+		var methods = map.get(ta);
+		if (methods) {
+			methods.destroy();
+		}
+	}
+
+	function update(ta) {
+		var methods = map.get(ta);
+		if (methods) {
+			methods.update();
+		}
+	}
+
+	var autosize = null;
+
+	// Do nothing in Node.js environment and IE8 (or lower)
+	if (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {
+		autosize = function (el) {
+			return el;
+		};
+		autosize.destroy = function (el) {
+			return el;
+		};
+		autosize.update = function (el) {
+			return el;
+		};
+	} else {
+		autosize = function (el, options) {
+			if (el) {
+				Array.prototype.forEach.call(el.length ? el : [el], function (x) {
+					return assign(x, options);
+				});
+			}
+			return el;
+		};
+		autosize.destroy = function (el) {
+			if (el) {
+				Array.prototype.forEach.call(el.length ? el : [el], destroy);
+			}
+			return el;
+		};
+		autosize.update = function (el) {
+			if (el) {
+				Array.prototype.forEach.call(el.length ? el : [el], update);
+			}
+			return el;
+		};
+	}
+
+	module.exports = autosize;
+});

File diff suppressed because it is too large
+ 6 - 0
node_modules/autosize/dist/autosize.min.js


File diff suppressed because it is too large
+ 113 - 0
node_modules/autosize/package.json


+ 35 - 0
node_modules/autosize/readme.md

@@ -0,0 +1,35 @@
+## Summary
+
+Autosize is a small, stand-alone script to automatically adjust textarea height to fit text.
+
+#### Demo
+
+Full documentation and a demo can be found at [jacklmoore.com/autosize](http://jacklmoore.com/autosize)
+
+#### Install via NPM
+```bash
+npm install autosize
+```
+
+#### Browser compatibility
+
+Chrome | Firefox | IE | Safari | iOS Safari | Android | Opera Mini | Windows Phone IE
+------ | --------|----|--------|------------|---------|------------|------------------
+yes    | yes     | 9  | yes    | yes        | 4       | ?          | 8.1
+
+#### Usage
+
+The autosize function accepts a single textarea element, or an array or array-like object (such as a NodeList or jQuery collection) of textarea elements.
+
+```javascript
+// from a NodeList
+autosize(document.querySelectorAll('textarea'));
+
+// from a single Node
+autosize(document.querySelector('textarea'));
+
+// from a jQuery collection
+autosize($('textarea'));
+```
+
+Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php)

+ 261 - 0
node_modules/autosize/src/autosize.js

@@ -0,0 +1,261 @@
+const map = (typeof Map === "function") ? new Map() : (function () {
+	const keys = [];
+	const values = [];
+
+	return {
+		has(key) {
+			return keys.indexOf(key) > -1;
+		},
+		get(key) {
+			return values[keys.indexOf(key)];
+		},
+		set(key, value) {
+			if (keys.indexOf(key) === -1) {
+				keys.push(key);
+				values.push(value);
+			}
+		},
+		delete(key) {
+			const index = keys.indexOf(key);
+			if (index > -1) {
+				keys.splice(index, 1);
+				values.splice(index, 1);
+			}
+		},
+	}
+})();
+
+let createEvent = (name)=> new Event(name, {bubbles: true});
+try {
+	new Event('test');
+} catch(e) {
+	// IE does not support `new Event()`
+	createEvent = (name)=> {
+		const evt = document.createEvent('Event');
+		evt.initEvent(name, true, false);
+		return evt;
+	};
+}
+
+function assign(ta) {
+	if (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return;
+
+	let heightOffset = null;
+	let clientWidth = ta.clientWidth;
+	let cachedHeight = null;
+
+	function init() {
+		const style = window.getComputedStyle(ta, null);
+
+		if (style.resize === 'vertical') {
+			ta.style.resize = 'none';
+		} else if (style.resize === 'both') {
+			ta.style.resize = 'horizontal';
+		}
+
+		if (style.boxSizing === 'content-box') {
+			heightOffset = -(parseFloat(style.paddingTop)+parseFloat(style.paddingBottom));
+		} else {
+			heightOffset = parseFloat(style.borderTopWidth)+parseFloat(style.borderBottomWidth);
+		}
+		// Fix when a textarea is not on document body and heightOffset is Not a Number
+		if (isNaN(heightOffset)) {
+			heightOffset = 0;
+		}
+
+		update();
+	}
+
+	function changeOverflow(value) {
+		{
+			// Chrome/Safari-specific fix:
+			// When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space
+			// made available by removing the scrollbar. The following forces the necessary text reflow.
+			const width = ta.style.width;
+			ta.style.width = '0px';
+			// Force reflow:
+			/* jshint ignore:start */
+			ta.offsetWidth;
+			/* jshint ignore:end */
+			ta.style.width = width;
+		}
+
+		ta.style.overflowY = value;
+	}
+
+	function getParentOverflows(el) {
+		const arr = [];
+
+		while (el && el.parentNode && el.parentNode instanceof Element) {
+			if (el.parentNode.scrollTop) {
+				arr.push({
+					node: el.parentNode,
+					scrollTop: el.parentNode.scrollTop,
+				})
+			}
+			el = el.parentNode;
+		}
+
+		return arr;
+	}
+
+	function resize() {
+		const originalHeight = ta.style.height;
+		const overflows = getParentOverflows(ta);
+		const docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)
+
+		ta.style.height = 'auto';
+
+		let endHeight = ta.scrollHeight+heightOffset;
+
+		if (ta.scrollHeight === 0) {
+			// If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.
+			ta.style.height = originalHeight;
+			return;
+		}
+
+		ta.style.height = endHeight+'px';
+
+		// used to check if an update is actually necessary on window.resize
+		clientWidth = ta.clientWidth;
+
+		// prevents scroll-position jumping
+		overflows.forEach(el => {
+			el.node.scrollTop = el.scrollTop
+		});
+
+		if (docTop) {
+			document.documentElement.scrollTop = docTop;
+		}
+	}
+
+	function update() {
+		resize();
+
+		const styleHeight = Math.round(parseFloat(ta.style.height));
+		const computed = window.getComputedStyle(ta, null);
+
+		// Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box
+		var actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight;
+
+		// The actual height not matching the style height (set via the resize method) indicates that 
+		// the max-height has been exceeded, in which case the overflow should be allowed.
+		if (actualHeight !== styleHeight) {
+			if (computed.overflowY === 'hidden') {
+				changeOverflow('scroll');
+				resize();
+				actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;
+			}
+		} else {
+			// Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.
+			if (computed.overflowY !== 'hidden') {
+				changeOverflow('hidden');
+				resize();
+				actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;
+			}
+		}
+
+		if (cachedHeight !== actualHeight) {
+			cachedHeight = actualHeight;
+			const evt = createEvent('autosize:resized');
+			try {
+				ta.dispatchEvent(evt);
+			} catch (err) {
+				// Firefox will throw an error on dispatchEvent for a detached element
+				// https://bugzilla.mozilla.org/show_bug.cgi?id=889376
+			}
+		}
+	}
+
+	const pageResize = () => {
+		if (ta.clientWidth !== clientWidth) {
+			update();
+		}
+	};
+
+	const destroy = style => {
+		window.removeEventListener('resize', pageResize, false);
+		ta.removeEventListener('input', update, false);
+		ta.removeEventListener('keyup', update, false);
+		ta.removeEventListener('autosize:destroy', destroy, false);
+		ta.removeEventListener('autosize:update', update, false);
+
+		Object.keys(style).forEach(key => {
+			ta.style[key] = style[key];
+		});
+
+		map.delete(ta);
+	}.bind(ta, {
+		height: ta.style.height,
+		resize: ta.style.resize,
+		overflowY: ta.style.overflowY,
+		overflowX: ta.style.overflowX,
+		wordWrap: ta.style.wordWrap,
+	});
+
+	ta.addEventListener('autosize:destroy', destroy, false);
+
+	// IE9 does not fire onpropertychange or oninput for deletions,
+	// so binding to onkeyup to catch most of those events.
+	// There is no way that I know of to detect something like 'cut' in IE9.
+	if ('onpropertychange' in ta && 'oninput' in ta) {
+		ta.addEventListener('keyup', update, false);
+	}
+
+	window.addEventListener('resize', pageResize, false);
+	ta.addEventListener('input', update, false);
+	ta.addEventListener('autosize:update', update, false);
+	ta.style.overflowX = 'hidden';
+	ta.style.wordWrap = 'break-word';
+
+	map.set(ta, {
+		destroy,
+		update,
+	});
+
+	init();
+}
+
+function destroy(ta) {
+	const methods = map.get(ta);
+	if (methods) {
+		methods.destroy();
+	}
+}
+
+function update(ta) {
+	const methods = map.get(ta);
+	if (methods) {
+		methods.update();
+	}
+}
+
+let autosize = null;
+
+// Do nothing in Node.js environment and IE8 (or lower)
+if (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {
+	autosize = el => el;
+	autosize.destroy = el => el;
+	autosize.update = el => el;
+} else {
+	autosize = (el, options) => {
+		if (el) {
+			Array.prototype.forEach.call(el.length ? el : [el], x => assign(x, options));
+		}
+		return el;
+	};
+	autosize.destroy = el => {
+		if (el) {
+			Array.prototype.forEach.call(el.length ? el : [el], destroy);
+		}
+		return el;
+	};
+	autosize.update = el => {
+		if (el) {
+			Array.prototype.forEach.call(el.length ? el : [el], update);
+		}
+		return el;
+	};
+}
+
+export default autosize;

+ 145 - 0
node_modules/babel-preset-env/lib/targets-parser.js

@@ -0,0 +1,145 @@
+"use strict";
+
+exports.__esModule = true;
+
+var _browserslist = require("browserslist");
+
+var _browserslist2 = _interopRequireDefault(_browserslist);
+
+var _semver = require("semver");
+
+var _semver2 = _interopRequireDefault(_semver);
+
+var _utils = require("./utils");
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var browserNameMap = {
+  android: "android",
+  chrome: "chrome",
+  edge: "edge",
+  firefox: "firefox",
+  ie: "ie",
+  ios_saf: "ios",
+  safari: "safari"
+};
+
+var isBrowsersQueryValid = function isBrowsersQueryValid(browsers) {
+  return typeof browsers === "string" || Array.isArray(browsers);
+};
+
+var semverMin = function semverMin(first, second) {
+  return first && _semver2.default.lt(first, second) ? first : second;
+};
+
+var getLowestVersions = function getLowestVersions(browsers) {
+  return browsers.reduce(function (all, browser) {
+    var _browser$split = browser.split(" "),
+        browserName = _browser$split[0],
+        browserVersion = _browser$split[1];
+
+    var normalizedBrowserName = browserNameMap[browserName];
+
+    if (!normalizedBrowserName) {
+      return all;
+    }
+
+    try {
+      // Browser version can return as "10.0-10.2"
+      var splitVersion = browserVersion.split("-")[0];
+      var parsedBrowserVersion = (0, _utils.semverify)(splitVersion);
+
+      all[normalizedBrowserName] = semverMin(all[normalizedBrowserName], parsedBrowserVersion);
+    } catch (e) {}
+
+    return all;
+  }, {});
+};
+
+var outputDecimalWarning = function outputDecimalWarning(decimalTargets) {
+  if (!decimalTargets || !decimalTargets.length) {
+    return;
+  }
+
+  console.log("Warning, the following targets are using a decimal version:");
+  console.log("");
+  decimalTargets.forEach(function (_ref) {
+    var target = _ref.target,
+        value = _ref.value;
+    return console.log("  " + target + ": " + value);
+  });
+  console.log("");
+  console.log("We recommend using a string for minor/patch versions to avoid numbers like 6.10");
+  console.log("getting parsed as 6.1, which can lead to unexpected behavior.");
+  console.log("");
+};
+
+var targetParserMap = {
+  __default: function __default(target, value) {
+    return [target, (0, _utils.semverify)(value)];
+  },
+
+  // Parse `node: true` and `node: "current"` to version
+  node: function node(target, value) {
+    var parsed = value === true || value === "current" ? process.versions.node : (0, _utils.semverify)(value);
+
+    return [target, parsed];
+  },
+
+  // Only valid value for Uglify is `true`
+  uglify: function uglify(target, value) {
+    return [target, value === true];
+  }
+};
+
+var getTargets = function getTargets() {
+  var targets = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+  var targetOpts = {};
+
+  // Parse browsers target via browserslist
+  if (isBrowsersQueryValid(targets.browsers)) {
+    targetOpts = getLowestVersions((0, _browserslist2.default)(targets.browsers));
+  }
+
+  // Parse remaining targets
+  var parsed = Object.keys(targets).reduce(function (results, target) {
+    if (target !== "browsers") {
+      var value = targets[target];
+
+      // Warn when specifying minor/patch as a decimal
+      if (typeof value === "number" && value % 1 !== 0) {
+        results.decimalWarnings.push({ target: target, value: value });
+      }
+
+      // Check if we have a target parser?
+      var parser = targetParserMap[target] || targetParserMap.__default;
+
+      var _parser = parser(target, value),
+          parsedTarget = _parser[0],
+          parsedValue = _parser[1];
+
+      if (parsedValue) {
+        // Merge (lowest wins)
+        if (typeof parsedValue === "string") {
+          results.targets[parsedTarget] = semverMin(results.targets[parsedTarget], parsedValue);
+        } else {
+          // We can remove this block if/when we replace Uglify target
+          // with top level option
+          results.targets[parsedTarget] = parsedValue;
+        }
+      }
+    }
+
+    return results;
+  }, {
+    targets: targetOpts,
+    decimalWarnings: []
+  });
+
+  outputDecimalWarning(parsed.decimalWarnings);
+
+  return parsed.targets;
+};
+
+exports.default = getTargets;

+ 74 - 0
node_modules/babel-preset-env/lib/utils.js

@@ -0,0 +1,74 @@
+"use strict";
+
+exports.__esModule = true;
+exports.prettifyTargets = exports.prettifyVersion = exports.semverify = exports._extends = undefined;
+
+var _semver = require("semver");
+
+var _semver2 = _interopRequireDefault(_semver);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var _extends = exports._extends = Object.assign || function (target) {
+  for (var i = 1; i < arguments.length; i++) {
+    var source = arguments[i];
+    for (var key in source) {
+      if (Object.prototype.hasOwnProperty.call(source, key)) {
+        target[key] = source[key];
+      }
+    }
+  }
+  return target;
+};
+
+// Convert version to a semver value.
+// 2.5 -> 2.5.0; 1 -> 1.0.0;
+// @flow
+var semverify = exports.semverify = function semverify(version) {
+  if (typeof version === "string" && _semver2.default.valid(version)) {
+    return version;
+  }
+
+  var split = version.toString().split(".");
+
+  while (split.length < 3) {
+    split.push(0);
+  }
+
+  return split.join(".");
+};
+
+var prettifyVersion = exports.prettifyVersion = function prettifyVersion(version) {
+  if (typeof version !== "string") {
+    return version;
+  }
+
+  var parts = [_semver2.default.major(version)];
+  var minor = _semver2.default.minor(version);
+  var patch = _semver2.default.patch(version);
+
+  if (minor || patch) {
+    parts.push(minor);
+  }
+
+  if (patch) {
+    parts.push(patch);
+  }
+
+  return parts.join(".");
+};
+
+var prettifyTargets = exports.prettifyTargets = function prettifyTargets() {
+  var targets = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+  return Object.keys(targets).reduce(function (results, target) {
+    var value = targets[target];
+
+    if (typeof value === "string") {
+      value = prettifyVersion(value);
+    }
+
+    results[target] = value;
+    return results;
+  }, {});
+};

+ 15 - 0
node_modules/babel-preset-env/node_modules/.bin/browserslist

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../browserslist/cli.js" "$@"
+  ret=$?
+else 
+  node  "$basedir/../browserslist/cli.js" "$@"
+  ret=$?
+fi
+exit $ret

+ 7 - 0
node_modules/babel-preset-env/node_modules/.bin/browserslist.cmd

@@ -0,0 +1,7 @@
+@IF EXIST "%~dp0\node.exe" (
+  "%~dp0\node.exe"  "%~dp0\..\browserslist\cli.js" %*
+) ELSE (
+  @SETLOCAL
+  @SET PATHEXT=%PATHEXT:;.JS;=;%
+  node  "%~dp0\..\browserslist\cli.js" %*
+)

+ 158 - 0
node_modules/babel-preset-env/node_modules/browserslist/CHANGELOG.md

@@ -0,0 +1,158 @@
+# Change Log
+This project adheres to [Semantic Versioning](http://semver.org/).
+
+## 2.1.4
+* Use both ESR versions when they actual.
+
+## 2.1.3
+* Add warning on first exclude query.
+
+## 2.1.2
+* Fix non-Node.js environments support.
+
+## 2.1.1
+* Fix CLI arguments parsing.
+
+## 2.1
+* Add `>= 5%`, `>= 5% in US` and `>= 5% in my stats` queries.
+
+## 2.0
+* `last n versions` returns versions for all browsers, not only main browsers.
+* Cache file system operations (by Aarni Koskela).
+* Use `caniuse-lite` 1 MB instead of `caniuse-db` 7 MB (by Ben Briggs).
+* Add `.browserslistrc` config support.
+* Add QQ Browser for Android support.
+* Add tests for CLI (by Zhulduz Zhankenova).
+
+## 1.7.7
+* Update Firefox ESR.
+
+## 1.7.6
+* Fix Android Chrome selection.
+
+## 1.7.5
+* Fix combining `not` query with country based statistics.
+* Fix `--env` argument in CLI (by Tuure Savuoja).
+
+## 1.7.4
+* Speed up browser sorting (by Aarni Koskela).
+
+## 1.7.3
+* Fix config finding when directory was passed to `path` (by Aarni Koskela).
+
+## 1.7.2
+* Fix config finding algorithm (by Aarni Koskela).
+
+## 1.7.1
+* Fix unreleased browsers version detection.
+
+## 1.7
+* Add `--config` and `--env` arguments to CLI (by Jarek Rencz).
+
+## 1.6
+* Convert Electron version to Chrome (by Kilian Valkhof).
+* Fix `0` version mistake in Can I Use data.
+
+## 1.5.2
+* Fix browser versions ordering (by Marco Massarotto).
+
+## 1.5.1
+* Fix error on `package.json` and `browserslist` in same directory.
+
+## 1.5
+* Add `package.json` support (by Stepan Kuzmin).
+* Add environments support (by Maksim Semenov and openlibser).
+* Add `browserslist-stats.json` file support (by Oleh Aloshkin).
+* Add `config` option to CLI (by Evilebot Tnawi).
+* Add JSDoc.
+* Fix tests on Windows (by Anna Stoliar).
+* Don’t set custom usage statistics globally.
+
+## 1.4
+* Add `defaults` keyword.
+
+## 1.3.6
+* Add `UCAndroid` alias to `and_uc` (by Evilebot Tnawi).
+
+## 1.3.5
+* Fix Opera Mini support. Use `op_mini all`.
+
+## 1.3.4
+* Add space-less `>1%` and `>.5%` syntax support (by Andreas Lind).
+
+## 1.3.3
+* Clean `0` versions in some country-based requests.
+
+## 1.3.2
+* Update Firefox ESR.
+
+## 1.3.1
+* Add Safari TP support.
+
+## 1.3
+* Add coverage for specific country (by Joshua Wise).
+
+## 1.2
+* Add `browserslist.coverage()` method.
+* Add `--coverage` and `-c` argument to CLI.
+* Add `-v` argument support to CLI.
+* Better error handling in CLI.
+
+## 1.1.3
+* Fix jspm support (by Sean Anderson).
+
+## 1.1.2
+* Fix jspm support (by Sean Anderson).
+
+## 1.1.1
+* Fix space-less `>10%` and `>10% in my stats` queries.
+* Normalize error messages.
+* Remove development files from npm package.
+
+## 1.1
+* Added query against custom browser usage data (by Daniel Rey).
+
+## 1.0.1
+* Update Firefox ESR (by Rouven Weßling).
+
+## 1.0
+* Remove Opera 12.1 from default query.
+* Add `not` keyword and exclude browsers by query.
+* Add Microsoft Edge support (by Andrey Polischuk).
+* Add CLI for debug and non-JS usage (by Luke Horvat).
+* Use own class in Browserslist errors.
+
+## 0.5
+* Add version ranges `IE 6-9` (by Ben Briggs).
+
+## 0.4
+* Add `config` option and `BROWSERSLIST_CONFIG` environment variable support.
+* Add symlink config support.
+
+## 0.3.3
+* Fix DynJS compatibility (by Nick Howes).
+
+## 0.3.2
+* Fix joined versions on versions query (by Vincent De Oliveira).
+
+## 0.3.1
+* Fix global variable leak (by Peter Müller).
+
+## 0.3
+* Takes queries from `BROWSERSLIST` environment variable.
+
+## 0.2
+* Return Can I Use joined versions as `ios_saf 7.0-7.1`.
+
+## 0.1.3
+* Better work with Can I Use joined versions like `ios_saf 7.0-7.1`.
+* Browserslist now understands `ios_saf 7.0` or `ios_saf 7`.
+
+## 0.1.2
+* Do not create global `browserslist` var (by Maxime Thirouin).
+
+## 0.1.1
+* Sort browsers by name and version.
+
+## 0.1
+* Initial release.

+ 20 - 0
node_modules/babel-preset-env/node_modules/browserslist/LICENSE

@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright 2014 Andrey Sitnik <andrey@sitnik.ru>
+
+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.

+ 357 - 0
node_modules/babel-preset-env/node_modules/browserslist/README.md

@@ -0,0 +1,357 @@
+# Browserslist
+
+<img align="right" width="100" height="100"
+     src="http://ai.github.io/browserslist/logo.svg"
+     title="Browserslist logo by Anton Lovchikov">
+
+Library to share supported browsers list between different front-end tools.
+It is used in:
+
+* [Autoprefixer]
+* [babel-env-preset] (no config support, only tool option)
+* [eslint-plugin-compat]
+* [stylelint-no-unsupported-browser-features]
+* [postcss-normalize]
+
+All tools that rely on Browserslist will find its config automatically,
+when you add the following to `package.json`:
+
+```json
+{
+  "browserslist": [
+    "> 1%",
+    "last 2 versions"
+  ]
+}
+```
+
+Or in `.browserslistrc` config:
+
+```yaml
+# Browsers that we support
+
+> 1%
+Last 2 versions
+IE 10 # sorry
+```
+
+Developers set browsers list in queries like `last 2 version`
+to be free from updating browser versions manually.
+Browserslist will use [Can i Use] data for this queries.
+
+Browserslist will take browsers queries from tool option,
+`browserslist` config, `.browserslistrc` config,
+`browserslist` section in `package.json` or environment variables.
+
+You can test Browserslist queries in [online demo].
+
+<a href="https://evilmartians.com/?utm_source=browserslist">
+  <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg"
+    alt="Sponsored by Evil Martians"
+    width="236"
+    height="54"
+  \>
+</a>
+
+[stylelint-no-unsupported-browser-features]: https://github.com/ismay/stylelint-no-unsupported-browser-features
+[eslint-plugin-compat]:                      https://github.com/amilajack/eslint-plugin-compat
+[babel-env-preset]:                          https://github.com/babel/babel-preset-env
+[postcss-normalize]:                         https://github.com/jonathantneal/postcss-normalize
+[Autoprefixer]:                              https://github.com/postcss/autoprefixer
+[online demo]:                               http://browserl.ist/
+[Can I Use]:                                 http://caniuse.com/
+
+## Queries
+
+Browserslist will use browsers query from one of this sources:
+
+1. Tool options. For example `browsers` option in Autoprefixer.
+2. `BROWSERSLIST` environment variable.
+3. `browserslist` config file in current or parent directories.
+3. `.browserslistrc` config file in current or parent directories.
+4. `browserslist` key in `package.json` file in current or parent directories.
+5. If the above methods did not produce a valid result
+   Browserslist will use defaults: `> 1%, last 2 versions, Firefox ESR`.
+
+We recommend to write queries in `package.json`.
+
+You can specify the versions by queries (case insensitive):
+
+* `last 2 versions`: the last 2 versions for each browser.
+* `last 2 Chrome versions`: the last 2 versions of Chrome browser.
+* `> 5%` or `>= 5%`: versions selected by global usage statistics.
+* `> 5% in US`: uses USA usage statistics. It accepts [two-letter country code].
+* `> 5% in my stats`: uses [custom usage data].
+* `ie 6-8`: selects an inclusive range of versions.
+* `Firefox > 20`: versions of Firefox newer than 20.
+* `Firefox >= 20`: versions of Firefox newer than or equal to 20.
+* `Firefox < 20`: versions of Firefox less than 20.
+* `Firefox <= 20`: versions of Firefox less than or equal to 20.
+* `Firefox ESR`: the latest [Firefox ESR] version.
+* `iOS 7`: the iOS browser version 7 directly.
+* `not ie <= 8`: exclude browsers selected before by previous queries.
+  You can add `not ` to any query.
+
+Browserslist works with separated versions of browsers.
+You should avoid queries like `Firefox > 0`.
+
+Multiple criteria are combined as a boolean `OR`. A browser version must match
+at least one of the criteria to be selected.
+
+All queries are based on the [Can I Use] support table,
+e.g. `last 3 iOS versions` might select `8.4, 9.2, 9.3` (mixed major and minor),
+whereas `last 3 Chrome versions` might select `50, 49, 48` (major only).
+
+[two-letter country code]: http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements
+[custom usage data]:        #custom-usage-data
+[Can I Use]:                http://caniuse.com/
+
+## Browsers
+
+Names are case insensitive:
+
+* `Android` for Android WebView.
+* `BlackBerry` or `bb` for Blackberry browser.
+* `Chrome` for Google Chrome.
+* `ChromeAndroid` or `and_chr` for Chrome for Android
+* `Edge` for Microsoft Edge.
+* `Electron` for Electron framework. It will be converted to Chrome version.
+* `Explorer` or `ie` for Internet Explorer.
+* `ExplorerMobile` or `ie_mob` for Internet Explorer Mobile.
+* `Firefox` or `ff` for Mozilla Firefox.
+* `FirefoxAndroid` or `and_ff` for Firefox for Android.
+* `iOS` or `ios_saf` for iOS Safari.
+* `Opera` for Opera.
+* `OperaMini` or `op_mini` for Opera Mini.
+* `OperaMobile` or `op_mob` for Opera Mobile.
+* `QQAndroid` or `and_qq` for QQ Browser for Android.
+* `Safari` for desktop Safari.
+* `Samsung` for Samsung Internet.
+* `UCAndroid` or `and_uc` for UC Browser for Android.
+
+### Electron
+
+[`electron-to-chromium`](https://www.npmjs.com/package/electron-to-chromium)
+could return a compatible Browserslist query for your (major) Electron version:
+
+```js
+const e2c = require('electron-to-chromium')
+autoprefixer({
+    browsers: e2c.electronToBrowserList('1.4') //=> "Chrome >= 53"
+})
+```
+
+## `package.json`
+
+If you want to reduce config files in project root, you can specify
+browsers in `package.json` with `browserslist` key:
+
+```js
+{
+  "private": true,
+  "dependencies": {
+    "autoprefixer": "^6.5.4"
+  },
+  "browserslist": [
+    "> 1%",
+    "last 2 versions"
+  ]
+}
+```
+
+## Config File
+
+Browserslist config should be named `.browserslistrc` or `browserslist`
+and have browsers queries split by a new line. Comments starts with `#` symbol:
+
+```yaml
+# Browsers that we support
+
+> 1%
+Last 2 versions
+IE 8 # sorry
+```
+
+Browserslist will check config in every directory in `path`.
+So, if tool process `app/styles/main.css`, you can put config to root,
+`app/` or `app/styles`.
+
+You can specify direct path in `BROWSERSLIST_CONFIG` environment variables.
+
+## Environments
+
+You can also specify different browser queries for various environments.
+Browserslist will choose query according to `BROWSERSLIST_ENV` or `NODE_ENV`
+variables. If none of them is declared, Browserslist will firstly look
+for `development` queries and then use defaults.
+
+In `package.json`:
+
+```js
+{
+  …
+  "browserslist": {
+    "production": [
+      "last 2 version",
+      "ie 9"
+    ],
+    "development": [
+      "last 1 version"
+    ]
+  }
+}
+```
+
+In `.browserslistrc` config:
+
+```ini
+[production]
+last 2 version
+ie 9
+
+[development]
+last 1 version
+```
+
+## Environment Variables
+
+If some tool use Browserslist inside, you can change browsers settings
+by [environment variables]:
+
+* `BROWSERSLIST` with browsers queries.
+
+   ```sh
+  BROWSERSLIST="> 5%" gulp css
+   ```
+
+* `BROWSERSLIST_CONFIG` with path to config file.
+
+   ```sh
+  BROWSERSLIST_CONFIG=./config/browserslist gulp css
+   ```
+
+* `BROWSERSLIST_ENV` with environments string.
+
+   ```sh
+  BROWSERSLIST_ENV="development" gulp css
+   ```
+
+* `BROWSERSLIST_STATS` with path to the custom usage data
+  for `> 1% in my stats` query.
+
+   ```sh
+  BROWSERSLIST_STATS=./config/usage_data.json gulp css
+   ```
+
+* `BROWSERSLIST_DISABLE_CACHE` if you want to disable config reading cache.
+
+   ```sh
+  BROWSERSLIST_DISABLE_CACHE=1 gulp css
+   ```
+
+[environment variables]: https://en.wikipedia.org/wiki/Environment_variable
+
+## Custom Usage Data
+
+If you have a website, you can query against the usage statistics of your site:
+
+1. Import your Google Analytics data into [Can I Use].
+   Press `Import…` button in Settings page.
+2. Open browser DevTools on [Can I Use] and paste this snippet
+   into the browser console:
+
+    ```js
+   var e=document.createElement('a');e.setAttribute('href', 'data:text/plain;charset=utf-8,'+encodeURIComponent(JSON.stringify(JSON.parse(localStorage['usage-data-by-id'])[localStorage['config-primary_usage']])));e.setAttribute('download','stats.json');document.body.appendChild(e);e.click();document.body.removeChild(e);
+    ```
+3. Save the data to a `browserslist-stats.json` file in your project.
+
+Of course, you can generate usage statistics file by any other method.
+File format should be like:
+
+```js
+{
+  "ie": {
+    "6": 0.01,
+    "7": 0.4,
+    "8": 1.5
+  },
+  "chrome": {
+    …
+  },
+  …
+}
+```
+
+Note that you can query against your custom usage data
+while also querying against global or regional data.
+For example, the query `> 1% in my stats, > 5% in US, 10%` is permitted.
+
+[Can I Use]: http://caniuse.com/
+
+## JS API
+
+```js
+var browserslist = require('browserslist');
+
+// Your CSS/JS build tool code
+var process = function (source, opts) {
+    var browsers = browserslist(opts.browsers, {
+        stats: opts.stats,
+        path:  opts.file,
+        env:   opts.env
+    });
+    // Your code to add features for selected browsers
+}
+```
+
+Queries can be a string `"> 5%, last 1 version"`
+or an array `['> 5%', 'last 1 version']`.
+
+If a query is missing, Browserslist will look for a config file.
+You can provide a `path` option (that can be a file) to find the config file
+relatively to it.
+
+For non-JS environment and debug purpose you can use CLI tool:
+
+```sh
+browserslist "> 1%, last 2 versions"
+```
+
+## Coverage
+
+You can get total users coverage for selected browsers by JS API:
+
+```js
+browserslist.coverage(browserslist('> 1%')) //=> 81.4
+```
+
+```js
+browserslist.coverage(browserslist('> 1% in US'), 'US') //=> 83.1
+```
+
+Or by CLI:
+
+```sh
+$ browserslist --coverage "> 1%"
+These browsers account for 81.4% of all users globally
+```
+
+```sh
+$ browserslist --coverage=US "> 1% in US"
+These browsers account for 83.1% of all users in the US
+```
+
+## Internal caches
+
+Browserslist caches the configuration it reads from `package.json` and
+`browserslist` files, as well as knowledge about the existence of files,
+for the duration of the hosting process.
+
+To clear these caches, use:
+
+```js
+browserslist.clearCaches();
+```
+
+To disable the caching altogether, set the `BROWSERSLIST_DISABLE_CACHE`
+environment variable.

+ 97 - 0
node_modules/babel-preset-env/node_modules/browserslist/cli.js

@@ -0,0 +1,97 @@
+#!/usr/bin/env node
+
+var browserslist = require('./');
+var pkg          = require('./package.json');
+var args         = process.argv.slice(2);
+
+var USAGE = 'Usage:\n' +
+            '  ' + pkg.name + ' "QUERIES"\n' +
+            '  ' + pkg.name + ' --coverage "QUERIES"\n' +
+            '  ' + pkg.name + ' --coverage=US "QUERIES"\n' +
+            '  ' + pkg.name + ' --config="path/to/browserlist/file"\n' +
+            '  ' + pkg.name + ' --env="environment name defined in config"\n' +
+            '  ' + pkg.name + ' --stats="path/to/browserlist/stats/file"';
+
+function isArg(arg) {
+    return args.some(function (str) {
+        return str === arg || str.indexOf(arg + '=') === 0;
+    });
+}
+
+function error(msg) {
+    process.stderr.write(pkg.name + ': ' + msg + '\n');
+    process.exit(1);
+}
+
+if ( isArg('--help') || isArg('-h') ) {
+    process.stdout.write(pkg.description + '.\n\n' + USAGE + '\n');
+
+} else if ( isArg('--version') || isArg('-v') ) {
+    process.stdout.write(pkg.name + ' ' + pkg.version + '\n');
+
+} else {
+    var mode = 'browsers';
+    var opts = { };
+    var queries;
+    var country;
+
+    for ( var i = 0; i < args.length; i++ ) {
+        if ( args[i][0] !== '-' ) {
+            queries = args[i].replace(/^['"]|['"]$/g, '');
+            continue;
+        }
+
+        var arg = args[i].split('=');
+        var name = arg[0];
+        var value = arg[1];
+
+        if ( value ) value = value.replace(/^['"]|['"]$/g, '');
+
+        if ( name === '--config' || name === '-b' ) {
+            opts.config = value;
+        } else if ( name === '--env' || name === '-e' ) {
+            opts.env = value;
+        } else if ( name === '--stats' || name === '-s' ) {
+            opts.stats = value;
+        } else if ( name === '--coverage' || name === '-c' ) {
+            mode = 'coverage';
+            if ( value ) country = value;
+        } else {
+            error('Unknown arguments ' + args[i] + '.\n\n' + USAGE);
+        }
+    }
+
+    if ( !queries && !opts.config ) {
+        error('Define queries or browserslist config path.\n\n' + USAGE);
+    }
+
+    var browsers;
+    try {
+        browsers = browserslist(queries, opts);
+    } catch (e) {
+        if ( e.name === 'BrowserslistError' ) {
+            error(e.message);
+        } else {
+            throw e;
+        }
+    }
+
+
+    if ( mode === 'browsers' ) {
+        browsers.forEach(function (browser) {
+            process.stdout.write(browser + '\n');
+        });
+    } else {
+        var result  = browserslist.coverage(browsers, country);
+        var round   = Math.round(result * 100) / 100.0;
+
+        var end = 'globally';
+        if (country && country !== 'global') {
+            end = 'in the ' + country.toUpperCase();
+        }
+
+        process.stdout.write(
+            'These browsers account for ' + round + '% of all users ' +
+            end + '\n');
+    }
+}

+ 706 - 0
node_modules/babel-preset-env/node_modules/browserslist/index.js

@@ -0,0 +1,706 @@
+var path = require('path');
+var e2c  = require('electron-to-chromium/versions');
+var fs   = require('fs');
+
+var caniuse = require('caniuse-lite').agents;
+var region  = require('caniuse-lite').region;
+
+function normalize(versions) {
+    return versions.filter(function (version) {
+        return typeof version === 'string';
+    });
+}
+
+var FLOAT_RANGE = /^\d+(\.\d+)?(-\d+(\.\d+)?)*$/;
+var IS_SECTION = /^\s*\[(.+)\]\s*$/;
+
+function uniq(array) {
+    var filtered = [];
+    for ( var i = 0; i < array.length; i++ ) {
+        if ( filtered.indexOf(array[i]) === -1 ) filtered.push(array[i]);
+    }
+    return filtered;
+}
+
+function BrowserslistError(message) {
+    this.name = 'BrowserslistError';
+    this.message = message || '';
+    this.browserslist = true;
+    if ( Error.captureStackTrace ) {
+        Error.captureStackTrace(this, BrowserslistError);
+    }
+}
+BrowserslistError.prototype = Error.prototype;
+
+// Helpers
+
+function error(name) {
+    throw new BrowserslistError(name);
+}
+
+function fillUsage(result, name, data) {
+    for ( var i in data ) {
+        result[name + ' ' + i] = data[i];
+    }
+}
+
+var cacheEnabled = !(
+    process && process.env && process.env.BROWSERSLIST_DISABLE_CACHE
+);
+var filenessCache = {};
+var configCache = {};
+
+function isFile(file) {
+    if ( !fs.existsSync ) {
+        return false;
+    }
+    if ( file in filenessCache ) {
+        return filenessCache[file];
+    }
+    var result = fs.existsSync(file) && fs.statSync(file).isFile();
+    if ( cacheEnabled ) {
+        filenessCache[file] = result;
+    }
+    return result;
+}
+
+function eachParent(file, callback) {
+    var loc = path.resolve(file);
+    do {
+        var result = callback(loc);
+        if ( typeof result !== 'undefined' ) return result;
+    } while (loc !== (loc = path.dirname(loc)));
+    return undefined;
+}
+
+function getStat(opts) {
+    if ( opts.stats ) {
+        return opts.stats;
+    } else if ( process.env.BROWSERSLIST_STATS ) {
+        return process.env.BROWSERSLIST_STATS;
+    } else if ( opts.path ) {
+        return eachParent(opts.path, function (dir) {
+            var file = path.join(dir, 'browserslist-stats.json');
+            if ( isFile(file) ) {
+                return file;
+            }
+        });
+    }
+}
+
+function parsePackage(file) {
+    var config = JSON.parse(fs.readFileSync(file)).browserslist;
+    if ( typeof config === 'object' && config.length ) {
+        config = { defaults: config };
+    }
+    return config;
+}
+
+function pickEnv(config, opts) {
+    if ( typeof config !== 'object' ) return config;
+
+    var env;
+    if ( typeof opts.env === 'string' ) {
+        env = opts.env;
+    } else if ( typeof process.env.BROWSERSLIST_ENV === 'string' ) {
+        env = process.env.BROWSERSLIST_ENV;
+    } else if ( typeof process.env.NODE_ENV === 'string' ) {
+        env = process.env.NODE_ENV;
+    } else {
+        env = 'development';
+    }
+
+    return config[env] || config.defaults;
+}
+
+function generateFilter(sign, version) {
+    version = parseFloat(version);
+    if ( sign === '>' ) {
+        return function (v) {
+            return parseFloat(v) > version;
+        };
+    } else if ( sign === '>=' ) {
+        return function (v) {
+            return parseFloat(v) >= version;
+        };
+    } else if ( sign === '<' ) {
+        return function (v) {
+            return parseFloat(v) < version;
+        };
+    } else if ( sign === '<=' ) {
+        return function (v) {
+            return parseFloat(v) <= version;
+        };
+    }
+}
+
+function compareStrings(a, b) {
+    if ( a < b ) return -1;
+    if ( a > b ) return +1;
+    return 0;
+}
+
+/**
+ * Return array of browsers by selection queries.
+ *
+ * @param {string[]} queries Browser queries.
+ * @param {object} opts Options.
+ * @param {string} [opts.path="."] Path to processed file.
+ *                                 It will be used to find config files.
+ * @param {string} [opts.env="development"] Processing environment.
+ *                                          It will be used to take right
+ *                                          queries from config file.
+ * @param {string} [opts.config] Path to config file with queries.
+ * @param {object} [opts.stats] Custom browser usage statistics
+ *                              for "> 1% in my stats" query.
+ * @return {string[]} Array with browser names in Can I Use.
+ *
+ * @example
+ * browserslist('IE >= 10, IE 8') //=> ['ie 11', 'ie 10', 'ie 8']
+ */
+var browserslist = function (queries, opts) {
+    if ( typeof opts === 'undefined' ) opts = { };
+
+    if ( !opts.hasOwnProperty('path') ) {
+        opts.path = path.resolve('.');
+    }
+
+    if ( typeof queries === 'undefined' || queries === null ) {
+        if ( process.env.BROWSERSLIST ) {
+            queries = process.env.BROWSERSLIST;
+        } else if ( opts.config || process.env.BROWSERSLIST_CONFIG ) {
+            var file = opts.config || process.env.BROWSERSLIST_CONFIG;
+            if ( path.basename(file) === 'package.json' ) {
+                queries = pickEnv(parsePackage(file), opts);
+            } else {
+                queries = pickEnv(browserslist.readConfig(file), opts);
+            }
+        } else if ( opts.path ) {
+            queries = pickEnv(browserslist.findConfig(opts.path), opts);
+        }
+    }
+
+    if ( typeof queries === 'undefined' || queries === null ) {
+        queries = browserslist.defaults;
+    }
+
+    if ( typeof queries === 'string' ) {
+        queries = queries.split(/,\s*/);
+    }
+
+    var context = { };
+
+    var stats = getStat(opts);
+    if ( stats ) {
+        if ( typeof stats === 'string' ) {
+            try {
+                stats = JSON.parse(fs.readFileSync(stats));
+            } catch (e) {
+                error('Can\'t read ' + stats);
+            }
+        }
+        if ( 'dataByBrowser' in stats ) {
+            stats = stats.dataByBrowser;
+        }
+
+        context.customUsage = { };
+        for ( var browser in stats ) {
+            fillUsage(context.customUsage, browser, stats[browser]);
+        }
+    }
+
+    var result = [];
+
+    queries.forEach(function (selection, index) {
+        if ( selection.trim() === '' ) return;
+
+        var exclude = selection.indexOf('not ') === 0;
+        if ( exclude ) {
+            if ( index === 0 ) {
+                error('Write any browsers query (for instance, `defaults`) ' +
+                      'before `' + selection + '`');
+            }
+            selection = selection.slice(4);
+        }
+
+        for ( var i in browserslist.queries ) {
+            var type  = browserslist.queries[i];
+            var match = selection.match(type.regexp);
+            if ( match ) {
+                var args = [context].concat(match.slice(1));
+                var array = type.select.apply(browserslist, args);
+                if ( exclude ) {
+                    array = array.concat(array.map(function (j) {
+                        return j.replace(/\s\d+/, ' 0');
+                    }));
+                    result = result.filter(function (j) {
+                        return array.indexOf(j) === -1;
+                    });
+                } else {
+                    result = result.concat(array);
+                }
+                return;
+            }
+        }
+
+        error('Unknown browser query `' + selection + '`');
+    });
+    result = result.map(function (i) {
+        var parts = i.split(' ');
+        var name = parts[0];
+        var version = parts[1];
+        if ( version === '0' ) {
+            return name + ' ' + browserslist.byName(name).versions[0];
+        } else {
+            return i;
+        }
+    }).sort(function (name1, name2) {
+        name1 = name1.split(' ');
+        name2 = name2.split(' ');
+        if ( name1[0] === name2[0] ) {
+            if ( FLOAT_RANGE.test(name1[1]) && FLOAT_RANGE.test(name2[1]) ) {
+                return parseFloat(name2[1]) - parseFloat(name1[1]);
+            } else {
+                return compareStrings(name2[1], name1[1]);
+            }
+        } else {
+            return compareStrings(name1[0], name2[0]);
+        }
+    });
+
+    return uniq(result);
+};
+
+var normalizeVersion = function (data, version) {
+    if ( data.versions.indexOf(version) !== -1 ) {
+        return version;
+    } else if ( browserslist.versionAliases[data.name][version] ) {
+        return browserslist.versionAliases[data.name][version];
+    } else if ( data.versions.length === 1 ) {
+        return data.versions[0];
+    }
+};
+
+var loadCountryStatistics = function (country) {
+    if ( !browserslist.usage[country] ) {
+        var usage = { };
+        var data = region(
+            require('caniuse-lite/data/regions/' + country + '.js'));
+        for ( var i in data ) {
+            fillUsage(usage, i, data[i]);
+        }
+        browserslist.usage[country] = usage;
+    }
+};
+
+// Will be filled by Can I Use data below
+browserslist.data  = { };
+browserslist.usage = {
+    global: { },
+    custom: null
+};
+
+// Default browsers query
+browserslist.defaults = [
+    '> 1%',
+    'last 2 versions',
+    'Firefox ESR'
+];
+
+// Browser names aliases
+browserslist.aliases = {
+    fx:             'firefox',
+    ff:             'firefox',
+    ios:            'ios_saf',
+    explorer:       'ie',
+    blackberry:     'bb',
+    explorermobile: 'ie_mob',
+    operamini:      'op_mini',
+    operamobile:    'op_mob',
+    chromeandroid:  'and_chr',
+    firefoxandroid: 'and_ff',
+    ucandroid:      'and_uc',
+    qqandroid:      'and_qq'
+};
+
+// Aliases to work with joined versions like `ios_saf 7.0-7.1`
+browserslist.versionAliases = { };
+
+// Get browser data by alias or case insensitive name
+browserslist.byName = function (name) {
+    name = name.toLowerCase();
+    name = browserslist.aliases[name] || name;
+    return browserslist.data[name];
+};
+
+// Get browser data by alias or case insensitive name and throw error
+// on unknown browser
+browserslist.checkName = function (name) {
+    var data = browserslist.byName(name);
+    if ( !data ) error('Unknown browser ' + name);
+    return data;
+};
+
+// Read and parse config
+browserslist.readConfig = function (file) {
+    if ( !isFile(file) ) {
+        error('Can\'t read ' + file + ' config');
+    }
+    return browserslist.parseConfig(fs.readFileSync(file));
+};
+
+// Find config, read file and parse it
+browserslist.findConfig = function (from) {
+    from = path.resolve(from);
+
+    var cacheKey = isFile(from) ? path.dirname(from) : from;
+    if ( cacheKey in configCache ) {
+        return configCache[cacheKey];
+    }
+
+    var resolved = eachParent(from, function (dir) {
+        var config = path.join(dir, 'browserslist');
+        var pkg = path.join(dir, 'package.json');
+        var rc = path.join(dir, '.browserslistrc');
+
+        var pkgBrowserslist;
+        if ( isFile(pkg) ) {
+            try {
+                pkgBrowserslist = parsePackage(pkg);
+            } catch (e) {
+                console.warn(
+                    '[Browserslist] Could not parse ' + pkg + '. ' +
+                    'Ignoring it.');
+            }
+        }
+
+        if ( isFile(config) && pkgBrowserslist ) {
+            error(
+                dir + ' contains both browserslist ' +
+                'and package.json with browsers');
+        } else if ( isFile(rc) && pkgBrowserslist ) {
+            error(
+                dir + ' contains both .browserslistrc ' +
+                'and package.json with browsers');
+        } else if ( isFile(config) && isFile(rc) ) {
+            error(dir + ' contains both .browserslistrc and browserslist');
+        } else if ( isFile(config) ) {
+            return browserslist.readConfig(config);
+        } else if ( isFile(rc) ) {
+            return browserslist.readConfig(rc);
+        } else if ( pkgBrowserslist ) {
+            return pkgBrowserslist;
+        }
+    });
+    if ( cacheEnabled ) {
+        configCache[cacheKey] = resolved;
+    }
+    return resolved;
+};
+
+/**
+ * Return browsers market coverage.
+ *
+ * @param {string[]} browsers Browsers names in Can I Use.
+ * @param {string} [country="global"] Which country statistics should be used.
+ *
+ * @return {number} Total market coverage for all selected browsers.
+ *
+ * @example
+ * browserslist.coverage(browserslist('> 1% in US'), 'US') //=> 83.1
+ */
+browserslist.coverage = function (browsers, country) {
+    if ( country && country !== 'global' ) {
+        country = country.toUpperCase();
+        loadCountryStatistics(country);
+    } else {
+        country = 'global';
+    }
+
+    return browsers.reduce(function (all, i) {
+        var usage = browserslist.usage[country][i];
+        if ( usage === undefined ) {
+            usage = browserslist.usage[country][i.replace(/ [\d.]+$/, ' 0')];
+        }
+        return all + (usage || 0);
+    }, 0);
+};
+
+// Return array of queries from config content
+browserslist.parseConfig = function (string) {
+    var result = { defaults: [] };
+    var section = 'defaults';
+
+    string.toString()
+        .replace(/#[^\n]*/g, '')
+        .split(/\n/)
+        .map(function (line) {
+            return line.trim();
+        })
+        .filter(function (line) {
+            return line !== '';
+        })
+        .forEach(function (line) {
+            if ( IS_SECTION.test(line) ) {
+                section = line.match(IS_SECTION)[1].trim();
+                result[section] = result[section] || [];
+            } else {
+                result[section].push(line);
+            }
+        });
+
+    return result;
+};
+
+// Clear internal caches
+browserslist.clearCaches = function () {
+    filenessCache = {};
+    configCache = {};
+};
+
+browserslist.queries = {
+
+    lastVersions: {
+        regexp: /^last\s+(\d+)\s+versions?$/i,
+        select: function (context, versions) {
+            var selected = [];
+            Object.keys(caniuse).forEach(function (name) {
+                var data  = browserslist.byName(name);
+                if ( !data ) return;
+                var array = data.released.slice(-versions);
+
+                array = array.map(function (v) {
+                    return data.name + ' ' + v;
+                });
+                selected = selected.concat(array);
+            });
+            return selected;
+        }
+    },
+
+    lastByBrowser: {
+        regexp: /^last\s+(\d+)\s+(\w+)\s+versions?$/i,
+        select: function (context, versions, name) {
+            var data = browserslist.checkName(name);
+            return data.released.slice(-versions).map(function (v) {
+                return data.name + ' ' + v;
+            });
+        }
+    },
+
+    globalStatistics: {
+        regexp: /^(>=?)\s*(\d*\.?\d+)%$/,
+        select: function (context, sign, popularity) {
+            popularity = parseFloat(popularity);
+            var result = [];
+
+            for ( var version in browserslist.usage.global ) {
+                if ( sign === '>' ) {
+                    if ( browserslist.usage.global[version] > popularity ) {
+                        result.push(version);
+                    }
+                } else if ( browserslist.usage.global[version] >= popularity ) {
+                    result.push(version);
+                }
+            }
+
+            return result;
+        }
+    },
+
+    customStatistics: {
+        regexp: /^(>=?)\s*(\d*\.?\d+)%\s+in\s+my\s+stats$/,
+        select: function (context, sign, popularity) {
+            popularity = parseFloat(popularity);
+            var result = [];
+
+            if ( !context.customUsage ) {
+                error('Custom usage statistics was not provided');
+            }
+
+            for ( var version in context.customUsage ) {
+                if ( sign === '>' ) {
+                    if ( context.customUsage[version] > popularity ) {
+                        result.push(version);
+                    }
+                } else if ( context.customUsage[version] >= popularity ) {
+                    result.push(version);
+                }
+            }
+
+            return result;
+        }
+    },
+
+    countryStatistics: {
+        regexp: /^(>=?)\s*(\d*\.?\d+)%\s+in\s+(\w\w)$/,
+        select: function (context, sign, popularity, country) {
+            popularity = parseFloat(popularity);
+            country    = country.toUpperCase();
+            var result = [];
+
+            loadCountryStatistics(country);
+            var usage = browserslist.usage[country];
+
+            for ( var version in usage ) {
+                if ( sign === '>' ) {
+                    if ( usage[version] > popularity ) {
+                        result.push(version);
+                    }
+                } else if ( usage[version] >= popularity ) {
+                    result.push(version);
+                }
+            }
+
+            return result;
+        }
+    },
+
+    electronRange: {
+        regexp: /^electron\s+([\d\.]+)\s*-\s*([\d\.]+)$/i,
+        select: function (context, from, to) {
+            if ( !e2c[from] ) error('Unknown version ' + from + ' of electron');
+            if ( !e2c[to] ) error('Unknown version ' + to   + ' of electron');
+
+            from = parseFloat(from);
+            to = parseFloat(to);
+
+            return Object.keys(e2c).filter(function (i) {
+                var parsed = parseFloat(i);
+                return parsed >= from && parsed <= to;
+            }).map(function (i) {
+                return 'chrome ' + e2c[i];
+            });
+        }
+    },
+
+    range: {
+        regexp: /^(\w+)\s+([\d\.]+)\s*-\s*([\d\.]+)$/i,
+        select: function (context, name, from, to) {
+            var data = browserslist.checkName(name);
+            from = parseFloat(normalizeVersion(data, from) || from);
+            to = parseFloat(normalizeVersion(data, to) || to);
+
+            var filter = function (v) {
+                var parsed = parseFloat(v);
+                return parsed >= from && parsed <= to;
+            };
+
+            return data.released.filter(filter).map(function (v) {
+                return data.name + ' ' + v;
+            });
+        }
+    },
+
+    electronVersions: {
+        regexp: /^electron\s*(>=?|<=?)\s*([\d\.]+)$/i,
+        select: function (context, sign, version) {
+            return Object.keys(e2c)
+                .filter(generateFilter(sign, version))
+                .map(function (i) {
+                    return 'chrome ' + e2c[i];
+                });
+        }
+    },
+
+    versions: {
+        regexp: /^(\w+)\s*(>=?|<=?)\s*([\d\.]+)$/,
+        select: function (context, name, sign, version) {
+            var data = browserslist.checkName(name);
+            var alias = normalizeVersion(data, version);
+            if ( alias ) {
+                version = alias;
+            }
+            return data.released
+                .filter(generateFilter(sign, version))
+                .map(function (v) {
+                    return data.name + ' ' + v;
+                });
+        }
+    },
+
+    esr: {
+        regexp: /^(firefox|ff|fx)\s+esr$/i,
+        select: function () {
+            return ['firefox 52', 'firefox 45'];
+        }
+    },
+
+    opMini: {
+        regexp: /(operamini|op_mini)\s+all/i,
+        select: function () {
+            return ['op_mini all'];
+        }
+    },
+
+    electron: {
+        regexp: /^electron\s+([\d\.]+)$/i,
+        select: function (context, version) {
+            var chrome = e2c[version];
+            if ( !chrome ) error('Unknown version ' + version + ' of electron');
+            return ['chrome ' + chrome];
+        }
+    },
+
+    direct: {
+        regexp: /^(\w+)\s+(tp|[\d\.]+)$/i,
+        select: function (context, name, version) {
+            if ( /tp/i.test(version) ) version = 'TP';
+            var data  = browserslist.checkName(name);
+            var alias = normalizeVersion(data, version);
+            if ( alias ) {
+                version = alias;
+            } else {
+                if ( version.indexOf('.') === -1 ) {
+                    alias = version + '.0';
+                } else if ( /\.0$/.test(version) ) {
+                    alias = version.replace(/\.0$/, '');
+                }
+                alias = normalizeVersion(data, alias);
+                if ( alias ) {
+                    version = alias;
+                } else {
+                    error('Unknown version ' + version + ' of ' + name);
+                }
+            }
+            return [data.name + ' ' + version];
+        }
+    },
+
+    defaults: {
+        regexp: /^defaults$/i,
+        select: function () {
+            return browserslist(browserslist.defaults);
+        }
+    }
+
+};
+
+// Get and convert Can I Use data
+
+(function () {
+    for ( var name in caniuse ) {
+        var browser = caniuse[name];
+        browserslist.data[name] = {
+            name:     name,
+            versions: normalize(caniuse[name].versions),
+            released: normalize(caniuse[name].versions.slice(0, -3))
+        };
+        fillUsage(browserslist.usage.global, name, browser.usage_global);
+
+        browserslist.versionAliases[name] = { };
+        for ( var i = 0; i < browser.versions.length; i++ ) {
+            var full = browser.versions[i];
+            if (!full) continue;
+
+            if ( full.indexOf('-') !== -1 ) {
+                var interval = full.split('-');
+                for ( var j = 0; j < interval.length; j++ ) {
+                    browserslist.versionAliases[name][interval[j]] = full;
+                }
+            }
+        }
+    }
+}());
+
+module.exports = browserslist;

File diff suppressed because it is too large
+ 132 - 0
node_modules/babel-preset-env/node_modules/browserslist/package.json


+ 307 - 0
node_modules/caniuse-db/features-json/css-display-contents.json

@@ -0,0 +1,307 @@
+{
+  "title":"CSS display: contents",
+  "description":"`display: contents` causes an element's children to appear as if they were direct children of the element's parent, ignoring the element itself. This can be useful when a wrapper element should be ignored when using CSS grid or similar layout techniques.",
+  "spec":"https://drafts.csswg.org/css-display/",
+  "status":"wd",
+  "links":[
+    {
+      "url":"https://rachelandrew.co.uk/archives/2016/01/29/vanishing-boxes-with-display-contents/",
+      "title":"Vanishing boxes with display contents"
+    },
+    {
+      "url":"https://crbug.com/657748",
+      "title":"Chrome support bug"
+    },
+    {
+      "url":"https://bugs.webkit.org/show_bug.cgi?id=157477",
+      "title":"WebKit support bug"
+    },
+    {
+      "url":"https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer/suggestions/10938981-implement-the-box-generation-keywords-from-css-dis",
+      "title":"Edge UserVoice support request"
+    }
+  ],
+  "bugs":[
+    
+  ],
+  "categories":[
+    "CSS"
+  ],
+  "stats":{
+    "ie":{
+      "5.5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n"
+    },
+    "edge":{
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n"
+    },
+    "firefox":{
+      "2":"n",
+      "3":"n",
+      "3.5":"n",
+      "3.6":"n",
+      "4":"n",
+      "5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n",
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"n",
+      "36":"n",
+      "37":"y",
+      "38":"y",
+      "39":"y",
+      "40":"y",
+      "41":"y",
+      "42":"y",
+      "43":"y",
+      "44":"y",
+      "45":"y",
+      "46":"y",
+      "47":"y",
+      "48":"y",
+      "49":"y",
+      "50":"y",
+      "51":"y",
+      "52":"y",
+      "53":"y",
+      "54":"y",
+      "55":"y",
+      "56":"y"
+    },
+    "chrome":{
+      "4":"n",
+      "5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n",
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"n",
+      "36":"n",
+      "37":"n",
+      "38":"n",
+      "39":"n",
+      "40":"n",
+      "41":"n",
+      "42":"n",
+      "43":"n",
+      "44":"n",
+      "45":"n",
+      "46":"n",
+      "47":"n",
+      "48":"n",
+      "49":"n",
+      "50":"n",
+      "51":"n",
+      "52":"n",
+      "53":"n",
+      "54":"n",
+      "55":"n",
+      "56":"n",
+      "57":"n",
+      "58":"n",
+      "59":"n",
+      "60":"n",
+      "61":"n"
+    },
+    "safari":{
+      "3.1":"n",
+      "3.2":"n",
+      "4":"n",
+      "5":"n",
+      "5.1":"n",
+      "6":"n",
+      "6.1":"n",
+      "7":"n",
+      "7.1":"n",
+      "8":"n",
+      "9":"n",
+      "9.1":"n",
+      "10":"n",
+      "10.1":"n",
+      "TP":"n"
+    },
+    "opera":{
+      "9":"n",
+      "9.5-9.6":"n",
+      "10.0-10.1":"n",
+      "10.5":"n",
+      "10.6":"n",
+      "11":"n",
+      "11.1":"n",
+      "11.5":"n",
+      "11.6":"n",
+      "12":"n",
+      "12.1":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"n",
+      "36":"n",
+      "37":"n",
+      "38":"n",
+      "39":"n",
+      "40":"n",
+      "41":"n",
+      "42":"n",
+      "43":"n",
+      "44":"n",
+      "45":"n",
+      "46":"n"
+    },
+    "ios_saf":{
+      "3.2":"n",
+      "4.0-4.1":"n",
+      "4.2-4.3":"n",
+      "5.0-5.1":"n",
+      "6.0-6.1":"n",
+      "7.0-7.1":"n",
+      "8":"n",
+      "8.1-8.4":"n",
+      "9.0-9.2":"n",
+      "9.3":"n",
+      "10.0-10.2":"n",
+      "10.3":"n"
+    },
+    "op_mini":{
+      "all":"n"
+    },
+    "android":{
+      "2.1":"n",
+      "2.2":"n",
+      "2.3":"n",
+      "3":"n",
+      "4":"n",
+      "4.1":"n",
+      "4.2-4.3":"n",
+      "4.4":"n",
+      "4.4.3-4.4.4":"n",
+      "56":"n"
+    },
+    "bb":{
+      "7":"n",
+      "10":"n"
+    },
+    "op_mob":{
+      "10":"n",
+      "11":"n",
+      "11.1":"n",
+      "11.5":"n",
+      "12":"n",
+      "12.1":"n",
+      "37":"n"
+    },
+    "and_chr":{
+      "57":"n"
+    },
+    "and_ff":{
+      "52":"y"
+    },
+    "ie_mob":{
+      "10":"n",
+      "11":"n"
+    },
+    "and_uc":{
+      "11.4":"n"
+    },
+    "samsung":{
+      "4":"n",
+      "5":"n"
+    },
+    "and_qq":{
+      "1.2":"n"
+    },
+    "baidu":{
+      "7.12":"n"
+    }
+  },
+  "notes":"",
+  "notes_by_num":{
+    
+  },
+  "usage_perc_y":5.82,
+  "usage_perc_a":0,
+  "ucprefix":false,
+  "parent":"",
+  "keywords":"",
+  "ie_id":"",
+  "chrome_id":"5663606012116992",
+  "firefox_id":"",
+  "webkit_id":"",
+  "shown":true
+}

+ 295 - 0
node_modules/caniuse-db/features-json/css-hyphenate.json

@@ -0,0 +1,295 @@
+{
+  "title":"CSS4 Hyphenation",
+  "description":"Control the spacing and characters used when hyphenating",
+  "spec":"https://www.w3.org/TR/css-text-4/#hyphenation",
+  "status":"wd",
+  "links":[
+    {
+      "url":"http://webdesign.about.com/od/fonts/a/hyphenation-in-css3.htm",
+      "title":"Hyphenation in CSS3"
+    }
+  ],
+  "bugs":[
+    
+  ],
+  "categories":[
+    "CSS"
+  ],
+  "stats":{
+    "ie":{
+      "5.5":"u",
+      "6":"u",
+      "7":"u",
+      "8":"u",
+      "9":"u",
+      "10":"u",
+      "11":"u"
+    },
+    "edge":{
+      "12":"u",
+      "13":"u",
+      "14":"u",
+      "15":"u"
+    },
+    "firefox":{
+      "2":"u",
+      "3":"u",
+      "3.5":"u",
+      "3.6":"u",
+      "4":"u",
+      "5":"u",
+      "6":"u",
+      "7":"u",
+      "8":"u",
+      "9":"u",
+      "10":"u",
+      "11":"u",
+      "12":"u",
+      "13":"u",
+      "14":"u",
+      "15":"u",
+      "16":"u",
+      "17":"u",
+      "18":"u",
+      "19":"u",
+      "20":"u",
+      "21":"u",
+      "22":"u",
+      "23":"u",
+      "24":"u",
+      "25":"u",
+      "26":"u",
+      "27":"u",
+      "28":"u",
+      "29":"u",
+      "30":"u",
+      "31":"u",
+      "32":"u",
+      "33":"u",
+      "34":"u",
+      "35":"u",
+      "36":"u",
+      "37":"u",
+      "38":"u",
+      "39":"u",
+      "40":"u",
+      "41":"u",
+      "42":"u",
+      "43":"u",
+      "44":"u",
+      "45":"u",
+      "46":"u",
+      "47":"u",
+      "48":"u",
+      "49":"u",
+      "50":"u",
+      "51":"u",
+      "52":"u",
+      "53":"u",
+      "54":"u",
+      "55":"u",
+      "56":"u"
+    },
+    "chrome":{
+      "4":"u",
+      "5":"u",
+      "6":"u",
+      "7":"u",
+      "8":"u",
+      "9":"u",
+      "10":"u",
+      "11":"u",
+      "12":"u",
+      "13":"u",
+      "14":"u",
+      "15":"u",
+      "16":"u",
+      "17":"u",
+      "18":"u",
+      "19":"u",
+      "20":"u",
+      "21":"u",
+      "22":"u",
+      "23":"u",
+      "24":"u",
+      "25":"u",
+      "26":"u",
+      "27":"u",
+      "28":"u",
+      "29":"u",
+      "30":"u",
+      "31":"u",
+      "32":"u",
+      "33":"u",
+      "34":"u",
+      "35":"u",
+      "36":"u",
+      "37":"u",
+      "38":"u",
+      "39":"u",
+      "40":"u",
+      "41":"u",
+      "42":"u",
+      "43":"u",
+      "44":"u",
+      "45":"u",
+      "46":"u",
+      "47":"u",
+      "48":"u",
+      "49":"u",
+      "50":"u",
+      "51":"u",
+      "52":"u",
+      "53":"u",
+      "54":"u",
+      "55":"y",
+      "56":"y",
+      "57":"y",
+      "58":"y",
+      "59":"y",
+      "60":"y",
+      "61":"y"
+    },
+    "safari":{
+      "3.1":"u",
+      "3.2":"u",
+      "4":"u",
+      "5":"u",
+      "5.1":"u",
+      "6":"u",
+      "6.1":"u",
+      "7":"u",
+      "7.1":"u",
+      "8":"u",
+      "9":"u",
+      "9.1":"u",
+      "10":"u",
+      "10.1":"u",
+      "TP":"u"
+    },
+    "opera":{
+      "9":"u",
+      "9.5-9.6":"u",
+      "10.0-10.1":"u",
+      "10.5":"u",
+      "10.6":"u",
+      "11":"u",
+      "11.1":"u",
+      "11.5":"u",
+      "11.6":"u",
+      "12":"u",
+      "12.1":"u",
+      "15":"u",
+      "16":"u",
+      "17":"u",
+      "18":"u",
+      "19":"u",
+      "20":"u",
+      "21":"u",
+      "22":"u",
+      "23":"u",
+      "24":"u",
+      "25":"u",
+      "26":"u",
+      "27":"u",
+      "28":"u",
+      "29":"u",
+      "30":"u",
+      "31":"u",
+      "32":"u",
+      "33":"u",
+      "34":"u",
+      "35":"u",
+      "36":"u",
+      "37":"u",
+      "38":"u",
+      "39":"u",
+      "40":"u",
+      "41":"u",
+      "42":"u",
+      "43":"u",
+      "44":"u",
+      "45":"u",
+      "46":"u"
+    },
+    "ios_saf":{
+      "3.2":"u",
+      "4.0-4.1":"u",
+      "4.2-4.3":"u",
+      "5.0-5.1":"u",
+      "6.0-6.1":"u",
+      "7.0-7.1":"u",
+      "8":"u",
+      "8.1-8.4":"u",
+      "9.0-9.2":"u",
+      "9.3":"u",
+      "10.0-10.2":"u",
+      "10.3":"u"
+    },
+    "op_mini":{
+      "all":"u"
+    },
+    "android":{
+      "2.1":"u",
+      "2.2":"u",
+      "2.3":"u",
+      "3":"u",
+      "4":"u",
+      "4.1":"u",
+      "4.2-4.3":"u",
+      "4.4":"u",
+      "4.4.3-4.4.4":"u",
+      "56":"u"
+    },
+    "bb":{
+      "7":"u",
+      "10":"u"
+    },
+    "op_mob":{
+      "10":"u",
+      "11":"u",
+      "11.1":"u",
+      "11.5":"u",
+      "12":"u",
+      "12.1":"u",
+      "37":"u"
+    },
+    "and_chr":{
+      "57":"u"
+    },
+    "and_ff":{
+      "52":"u"
+    },
+    "ie_mob":{
+      "10":"u",
+      "11":"u"
+    },
+    "and_uc":{
+      "11.4":"u"
+    },
+    "samsung":{
+      "4":"u",
+      "5":"u"
+    },
+    "and_qq":{
+      "1.2":"u"
+    },
+    "baidu":{
+      "7.12":"u"
+    }
+  },
+  "notes":"",
+  "notes_by_num":{
+    "1":""
+  },
+  "usage_perc_y":23.69,
+  "usage_perc_a":0,
+  "ucprefix":false,
+  "parent":"",
+  "keywords":"hyphenate-character,hyphenate-limit-zone,hyphenate-limit-chars,hyphenate-limit-lines,hyphenate-limit-last",
+  "ie_id":"",
+  "chrome_id":"",
+  "firefox_id":"",
+  "webkit_id":"",
+  "shown":false
+}

+ 295 - 0
node_modules/caniuse-db/features-json/css-text-orientation.json

@@ -0,0 +1,295 @@
+{
+  "title":"CSS text-orientation",
+  "description":"The CSS `text-orientation` property specifies the orientation of text within a line. Current values only have an effect in vertical typographic modes (defined with the `writing-mode` property)",
+  "spec":"https://drafts.csswg.org/css-writing-modes-3/#text-orientation",
+  "status":"cr",
+  "links":[
+    {
+      "url":"https://developer.mozilla.org/en-US/docs/Web/CSS/text-orientation",
+      "title":"CSS text-orientation on MDN"
+    }
+  ],
+  "bugs":[
+    
+  ],
+  "categories":[
+    "CSS"
+  ],
+  "stats":{
+    "ie":{
+      "5.5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n"
+    },
+    "edge":{
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n"
+    },
+    "firefox":{
+      "2":"n",
+      "3":"n",
+      "3.5":"n",
+      "3.6":"n",
+      "4":"n",
+      "5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n",
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"n",
+      "36":"n",
+      "37":"n",
+      "38":"n",
+      "39":"n",
+      "40":"n",
+      "41":"n",
+      "42":"n",
+      "43":"n",
+      "44":"n",
+      "45":"n",
+      "46":"n",
+      "47":"n",
+      "48":"n",
+      "49":"n",
+      "50":"n",
+      "51":"y",
+      "52":"y",
+      "53":"y",
+      "54":"y",
+      "55":"y",
+      "56":"y"
+    },
+    "chrome":{
+      "4":"n",
+      "5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n",
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"n",
+      "36":"n",
+      "37":"n",
+      "38":"n",
+      "39":"n",
+      "40":"n",
+      "41":"n",
+      "42":"n",
+      "43":"n",
+      "44":"n",
+      "45":"n",
+      "46":"n",
+      "47":"n",
+      "48":"y",
+      "49":"y",
+      "50":"y",
+      "51":"y",
+      "52":"y",
+      "53":"y",
+      "54":"y",
+      "55":"y",
+      "56":"y",
+      "57":"y",
+      "58":"y",
+      "59":"y",
+      "60":"y",
+      "61":"y"
+    },
+    "safari":{
+      "3.1":"n",
+      "3.2":"n",
+      "4":"n",
+      "5":"n",
+      "5.1":"n",
+      "6":"n",
+      "6.1":"n",
+      "7":"n",
+      "7.1":"n",
+      "8":"n",
+      "9":"n",
+      "9.1":"n",
+      "10":"u",
+      "10.1":"y x",
+      "TP":"y x"
+    },
+    "opera":{
+      "9":"n",
+      "9.5-9.6":"n",
+      "10.0-10.1":"n",
+      "10.5":"n",
+      "10.6":"n",
+      "11":"n",
+      "11.1":"n",
+      "11.5":"n",
+      "11.6":"n",
+      "12":"n",
+      "12.1":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"y",
+      "36":"y",
+      "37":"y",
+      "38":"y",
+      "39":"y",
+      "40":"y",
+      "41":"y",
+      "42":"y",
+      "43":"y",
+      "44":"y",
+      "45":"y",
+      "46":"y"
+    },
+    "ios_saf":{
+      "3.2":"n",
+      "4.0-4.1":"n",
+      "4.2-4.3":"n",
+      "5.0-5.1":"n",
+      "6.0-6.1":"n",
+      "7.0-7.1":"n",
+      "8":"n",
+      "8.1-8.4":"n",
+      "9.0-9.2":"n",
+      "9.3":"n",
+      "10.0-10.2":"y",
+      "10.3":"y"
+    },
+    "op_mini":{
+      "all":"n"
+    },
+    "android":{
+      "2.1":"n",
+      "2.2":"n",
+      "2.3":"n",
+      "3":"n",
+      "4":"n",
+      "4.1":"n",
+      "4.2-4.3":"n",
+      "4.4":"n",
+      "4.4.3-4.4.4":"n",
+      "56":"y"
+    },
+    "bb":{
+      "7":"n",
+      "10":"n"
+    },
+    "op_mob":{
+      "10":"n",
+      "11":"n",
+      "11.1":"n",
+      "11.5":"n",
+      "12":"n",
+      "12.1":"n",
+      "37":"y"
+    },
+    "and_chr":{
+      "57":"y"
+    },
+    "and_ff":{
+      "52":"y"
+    },
+    "ie_mob":{
+      "10":"n",
+      "11":"n"
+    },
+    "and_uc":{
+      "11.4":"n"
+    },
+    "samsung":{
+      "4":"n",
+      "5":"y"
+    },
+    "and_qq":{
+      "1.2":"n"
+    },
+    "baidu":{
+      "7.12":"y"
+    }
+  },
+  "notes":"",
+  "notes_by_num":{
+    
+  },
+  "usage_perc_y":69.41,
+  "usage_perc_a":0,
+  "ucprefix":false,
+  "parent":"",
+  "keywords":"",
+  "ie_id":"",
+  "chrome_id":"",
+  "firefox_id":"",
+  "webkit_id":"",
+  "shown":true
+}

+ 297 - 0
node_modules/caniuse-db/features-json/css-unicode-bidi.json

@@ -0,0 +1,297 @@
+{
+  "title":"CSS unicode-bidi property",
+  "description":"The unicode-bidi CSS property together with the direction property relates to the handling of bidirectional text in a document.",
+  "spec":"https://drafts.csswg.org/css-writing-modes-3/#unicode-bidi",
+  "status":"cr",
+  "links":[
+    {
+      "url":"https://developer.mozilla.org/en-US/docs/Web/CSS/unicode-bidi",
+      "title":"Mozilla Developer Network (MDN) documentation - CSS unicode-bidi"
+    }
+  ],
+  "bugs":[
+    
+  ],
+  "categories":[
+    "CSS"
+  ],
+  "stats":{
+    "ie":{
+      "5.5":"a #1",
+      "6":"a #1",
+      "7":"a #1",
+      "8":"a #1",
+      "9":"a #1",
+      "10":"a #1",
+      "11":"a #1"
+    },
+    "edge":{
+      "12":"a #1",
+      "13":"a #1",
+      "14":"a #1",
+      "15":"a #1"
+    },
+    "firefox":{
+      "2":"a #1",
+      "3":"a #1",
+      "3.5":"a #1",
+      "3.6":"a #1",
+      "4":"a #1",
+      "5":"a #1",
+      "6":"a #1",
+      "7":"a #1",
+      "8":"a #1",
+      "9":"a #1",
+      "10":"a x #2",
+      "11":"a x #2",
+      "12":"a x #2",
+      "13":"a x #2",
+      "14":"a x #2",
+      "15":"a x #2",
+      "16":"a x #2",
+      "17":"y x",
+      "18":"y x",
+      "19":"y x",
+      "20":"y x",
+      "21":"y x",
+      "22":"y x",
+      "23":"y x",
+      "24":"y x",
+      "25":"y x",
+      "26":"y x",
+      "27":"y x",
+      "28":"y x",
+      "29":"y x",
+      "30":"y x",
+      "31":"y x",
+      "32":"y x",
+      "33":"y x",
+      "34":"y x",
+      "35":"y x",
+      "36":"y x",
+      "37":"y x",
+      "38":"y x",
+      "39":"y x",
+      "40":"y x",
+      "41":"y x",
+      "42":"y x",
+      "43":"y x",
+      "44":"y x",
+      "45":"y x",
+      "46":"y x",
+      "47":"y x",
+      "48":"y x",
+      "49":"y x",
+      "50":"y",
+      "51":"y",
+      "52":"y",
+      "53":"y",
+      "54":"y",
+      "55":"y",
+      "56":"y"
+    },
+    "chrome":{
+      "4":"a #1",
+      "5":"a #1",
+      "6":"a #1",
+      "7":"a #1",
+      "8":"a #1",
+      "9":"a #1",
+      "10":"a #1",
+      "11":"a #1",
+      "12":"a #1",
+      "13":"a #1",
+      "14":"a #1",
+      "15":"a #1",
+      "16":"a #1",
+      "17":"a x #3",
+      "18":"a x #3",
+      "19":"a x #3",
+      "20":"a x #3",
+      "21":"a x #3",
+      "22":"a x #3",
+      "23":"a x #3",
+      "24":"a x #3",
+      "25":"a x #3",
+      "26":"a x #3",
+      "27":"a x #3",
+      "28":"a x #3",
+      "29":"a x #3",
+      "30":"a x #3",
+      "31":"a x #3",
+      "32":"a x #3",
+      "33":"a x #3",
+      "34":"a x #3",
+      "35":"a x #3",
+      "36":"a x #3",
+      "37":"a x #3",
+      "38":"a x #3",
+      "39":"a x #3",
+      "40":"a x #3",
+      "41":"a x #3",
+      "42":"a x #3",
+      "43":"a x #3",
+      "44":"a x #3",
+      "45":"a x #3",
+      "46":"a x #3",
+      "47":"a x #3",
+      "48":"y",
+      "49":"y",
+      "50":"y",
+      "51":"y",
+      "52":"y",
+      "53":"y",
+      "54":"y",
+      "55":"y",
+      "56":"y",
+      "57":"y",
+      "58":"y",
+      "59":"y",
+      "60":"y",
+      "61":"y"
+    },
+    "safari":{
+      "3.1":"a #1",
+      "3.2":"a #1",
+      "4":"a #1",
+      "5":"a #1",
+      "5.1":"a #1",
+      "6":"a #1",
+      "6.1":"a #1",
+      "7":"a #1",
+      "7.1":"a #1",
+      "8":"a #1",
+      "9":"a x #3",
+      "9.1":"a x #3",
+      "10":"a x #3",
+      "10.1":"a x #3",
+      "TP":"a x #3"
+    },
+    "opera":{
+      "9":"a #1",
+      "9.5-9.6":"a #1",
+      "10.0-10.1":"a #1",
+      "10.5":"a #1",
+      "10.6":"a #1",
+      "11":"a #1",
+      "11.1":"a #1",
+      "11.5":"a #1",
+      "11.6":"a #1",
+      "12":"a #1",
+      "12.1":"a #1",
+      "15":"a #1",
+      "16":"a #1",
+      "17":"a #1",
+      "18":"a #1",
+      "19":"a #1",
+      "20":"a #1",
+      "21":"a #1",
+      "22":"a #1",
+      "23":"a #1",
+      "24":"a #1",
+      "25":"a #1",
+      "26":"a #1",
+      "27":"a #1",
+      "28":"a #1",
+      "29":"a #1",
+      "30":"a #1",
+      "31":"a #1",
+      "32":"a #1",
+      "33":"a #1",
+      "34":"a #1",
+      "35":"a #1",
+      "36":"a #1",
+      "37":"a #1",
+      "38":"a #1",
+      "39":"a #1",
+      "40":"a #1",
+      "41":"a #1",
+      "42":"a #1",
+      "43":"a #1",
+      "44":"a #1",
+      "45":"a #1",
+      "46":"a #1"
+    },
+    "ios_saf":{
+      "3.2":"a #1",
+      "4.0-4.1":"a #1",
+      "4.2-4.3":"a #1",
+      "5.0-5.1":"a #1",
+      "6.0-6.1":"a #1",
+      "7.0-7.1":"a #1",
+      "8":"a #1",
+      "8.1-8.4":"a #1",
+      "9.0-9.2":"a x #3",
+      "9.3":"a x #3",
+      "10.0-10.2":"a x #3",
+      "10.3":"a x #3"
+    },
+    "op_mini":{
+      "all":"u"
+    },
+    "android":{
+      "2.1":"u",
+      "2.2":"u",
+      "2.3":"u",
+      "3":"u",
+      "4":"u",
+      "4.1":"u",
+      "4.2-4.3":"u",
+      "4.4":"u",
+      "4.4.3-4.4.4":"u",
+      "56":"y"
+    },
+    "bb":{
+      "7":"u",
+      "10":"u"
+    },
+    "op_mob":{
+      "10":"u",
+      "11":"u",
+      "11.1":"u",
+      "11.5":"u",
+      "12":"u",
+      "12.1":"u",
+      "37":"u"
+    },
+    "and_chr":{
+      "57":"y"
+    },
+    "and_ff":{
+      "52":"y"
+    },
+    "ie_mob":{
+      "10":"a #1",
+      "11":"a #1"
+    },
+    "and_uc":{
+      "11.4":"u"
+    },
+    "samsung":{
+      "4":"u",
+      "5":"y"
+    },
+    "and_qq":{
+      "1.2":"u"
+    },
+    "baidu":{
+      "7.12":"u"
+    }
+  },
+  "notes":"",
+  "notes_by_num":{
+    "1":"Only normal, embed and bidi-override values support",
+    "2":"isolate keyword could be used together with bidi-override instead of isolate-override value support",
+    "3":"Only normal, embed, bidi-override and isolate values support"
+  },
+  "usage_perc_y":59.79,
+  "usage_perc_a":20.83,
+  "ucprefix":false,
+  "parent":"",
+  "keywords":"css,writing,direction,i18n,vertical,ltr,rtl",
+  "ie_id":"",
+  "chrome_id":"",
+  "firefox_id":"",
+  "webkit_id":"",
+  "shown":false
+}

+ 304 - 0
node_modules/caniuse-db/features-json/eme.json

@@ -0,0 +1,304 @@
+{
+  "title":"Encrypted Media Extensions",
+  "description":"The EncryptedMediaExtenstions API provides interfaces for controlling the playback of content which is subject to a DRM scheme.",
+  "spec":"https://w3c.github.io/encrypted-media/",
+  "status":"pr",
+  "links":[
+    {
+      "url":"https://www.html5rocks.com/en/tutorials/eme/basics/",
+      "title":"HTML5rocks article"
+    },
+    {
+      "url":"https://en.wikipedia.org/wiki/Encrypted_Media_Extensions",
+      "title":"Wikipedia article"
+    },
+    {
+      "url":"https://developer.mozilla.org/en-US/docs/Web/API/Encrypted_Media_Extensions_API",
+      "title":"Encrypted Media Extensions API on MDN"
+    }
+  ],
+  "bugs":[
+    
+  ],
+  "categories":[
+    "JS API",
+    "Security"
+  ],
+  "stats":{
+    "ie":{
+      "5.5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"a x #1"
+    },
+    "edge":{
+      "12":"y",
+      "13":"y",
+      "14":"y",
+      "15":"y"
+    },
+    "firefox":{
+      "2":"n",
+      "3":"n",
+      "3.5":"n",
+      "3.6":"n",
+      "4":"n",
+      "5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n",
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"n",
+      "36":"n",
+      "37":"n",
+      "38":"y",
+      "39":"y",
+      "40":"y",
+      "41":"y",
+      "42":"y",
+      "43":"y",
+      "44":"y",
+      "45":"y",
+      "46":"y",
+      "47":"y",
+      "48":"y",
+      "49":"y",
+      "50":"y",
+      "51":"y",
+      "52":"y",
+      "53":"y",
+      "54":"y",
+      "55":"y",
+      "56":"y"
+    },
+    "chrome":{
+      "4":"n",
+      "5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n",
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"a #1",
+      "36":"a #1",
+      "37":"a #1",
+      "38":"a #1",
+      "39":"a #1",
+      "40":"a #1",
+      "41":"a #1",
+      "42":"y",
+      "43":"y",
+      "44":"y",
+      "45":"y",
+      "46":"y",
+      "47":"y",
+      "48":"y",
+      "49":"y",
+      "50":"y",
+      "51":"y",
+      "52":"y",
+      "53":"y",
+      "54":"y",
+      "55":"y",
+      "56":"y",
+      "57":"y",
+      "58":"y",
+      "59":"y",
+      "60":"y",
+      "61":"y"
+    },
+    "safari":{
+      "3.1":"n",
+      "3.2":"n",
+      "4":"n",
+      "5":"n",
+      "5.1":"n",
+      "6":"n",
+      "6.1":"n",
+      "7":"a x #1",
+      "7.1":"a x #1",
+      "8":"a x #1",
+      "9":"a x #1",
+      "9.1":"a x #1",
+      "10":"a x #1",
+      "10.1":"a x #1",
+      "TP":"a x #1"
+    },
+    "opera":{
+      "9":"n",
+      "9.5-9.6":"n",
+      "10.0-10.1":"n",
+      "10.5":"n",
+      "10.6":"n",
+      "11":"n",
+      "11.1":"n",
+      "11.5":"n",
+      "11.6":"n",
+      "12":"n",
+      "12.1":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"a #1",
+      "23":"a #1",
+      "24":"a #1",
+      "25":"a #1",
+      "26":"a #1",
+      "27":"a #1",
+      "28":"a #1",
+      "29":"y",
+      "30":"y",
+      "31":"y",
+      "32":"y",
+      "33":"y",
+      "34":"y",
+      "35":"y",
+      "36":"y",
+      "37":"y",
+      "38":"y",
+      "39":"y",
+      "40":"y",
+      "41":"y",
+      "42":"y",
+      "43":"y",
+      "44":"y",
+      "45":"y",
+      "46":"y"
+    },
+    "ios_saf":{
+      "3.2":"n",
+      "4.0-4.1":"n",
+      "4.2-4.3":"n",
+      "5.0-5.1":"n",
+      "6.0-6.1":"n",
+      "7.0-7.1":"n",
+      "8":"n",
+      "8.1-8.4":"n",
+      "9.0-9.2":"n",
+      "9.3":"n",
+      "10.0-10.2":"n",
+      "10.3":"n"
+    },
+    "op_mini":{
+      "all":"n"
+    },
+    "android":{
+      "2.1":"n",
+      "2.2":"n",
+      "2.3":"n",
+      "3":"n",
+      "4":"n",
+      "4.1":"n",
+      "4.2-4.3":"n",
+      "4.4":"n",
+      "4.4.3-4.4.4":"n",
+      "56":"y"
+    },
+    "bb":{
+      "7":"n",
+      "10":"n"
+    },
+    "op_mob":{
+      "10":"n",
+      "11":"n",
+      "11.1":"n",
+      "11.5":"n",
+      "12":"n",
+      "12.1":"n",
+      "37":"y"
+    },
+    "and_chr":{
+      "57":"y"
+    },
+    "and_ff":{
+      "52":"n"
+    },
+    "ie_mob":{
+      "10":"n",
+      "11":"n"
+    },
+    "and_uc":{
+      "11.4":"n"
+    },
+    "samsung":{
+      "4":"n",
+      "5":"y"
+    },
+    "and_qq":{
+      "1.2":"n"
+    },
+    "baidu":{
+      "7.12":"n"
+    }
+  },
+  "notes":"",
+  "notes_by_num":{
+    "1":"Only supports the older event-based specification"
+  },
+  "usage_perc_y":62.48,
+  "usage_perc_a":5.79,
+  "ucprefix":false,
+  "parent":"",
+  "keywords":"requestMediaKeySystemAccess,createMediaKeys",
+  "ie_id":"encryptedmediaextensions",
+  "chrome_id":"6578378068983808",
+  "firefox_id":"",
+  "webkit_id":"",
+  "shown":true
+}

+ 304 - 0
node_modules/caniuse-db/features-json/hevc.json

@@ -0,0 +1,304 @@
+{
+  "title":"HEVC/H.265 video format",
+  "description":"The High Efficiency Video Coding (HEVC) compression standard is a video compression format intended to succeed H.264",
+  "spec":"https://www.itu.int/rec/T-REC-H.265",
+  "status":"other",
+  "links":[
+    {
+      "url":"https://bugzilla.mozilla.org/show_bug.cgi?format=default&id=1332136",
+      "title":"Firefox support bug (WONTFIX)"
+    },
+    {
+      "url":"https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding",
+      "title":"Wikipedia article"
+    },
+    {
+      "url":"https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer/suggestions/10311075-hevc-support",
+      "title":"UserVoice support request for Edge"
+    }
+  ],
+  "bugs":[
+    
+  ],
+  "categories":[
+    "Other"
+  ],
+  "stats":{
+    "ie":{
+      "5.5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"a #1"
+    },
+    "edge":{
+      "12":"a #1",
+      "13":"a #1",
+      "14":"a #1",
+      "15":"a #1"
+    },
+    "firefox":{
+      "2":"n",
+      "3":"n",
+      "3.5":"n",
+      "3.6":"n",
+      "4":"n",
+      "5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n",
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"n",
+      "36":"n",
+      "37":"n",
+      "38":"n",
+      "39":"n",
+      "40":"n",
+      "41":"n",
+      "42":"n",
+      "43":"n",
+      "44":"n",
+      "45":"n",
+      "46":"n",
+      "47":"n",
+      "48":"n",
+      "49":"n",
+      "50":"n",
+      "51":"n",
+      "52":"n",
+      "53":"n",
+      "54":"n",
+      "55":"n",
+      "56":"n"
+    },
+    "chrome":{
+      "4":"n",
+      "5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n",
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"n",
+      "36":"n",
+      "37":"n",
+      "38":"n",
+      "39":"n",
+      "40":"n",
+      "41":"n",
+      "42":"n",
+      "43":"n",
+      "44":"n",
+      "45":"n",
+      "46":"n",
+      "47":"n",
+      "48":"n",
+      "49":"n",
+      "50":"n",
+      "51":"n",
+      "52":"n",
+      "53":"n",
+      "54":"n",
+      "55":"n",
+      "56":"n",
+      "57":"n",
+      "58":"n",
+      "59":"n",
+      "60":"n",
+      "61":"n"
+    },
+    "safari":{
+      "3.1":"n",
+      "3.2":"n",
+      "4":"n",
+      "5":"n",
+      "5.1":"n",
+      "6":"n",
+      "6.1":"n",
+      "7":"n",
+      "7.1":"n",
+      "8":"n",
+      "9":"n",
+      "9.1":"n",
+      "10":"n",
+      "10.1":"n",
+      "TP":"n"
+    },
+    "opera":{
+      "9":"n",
+      "9.5-9.6":"n",
+      "10.0-10.1":"n",
+      "10.5":"n",
+      "10.6":"n",
+      "11":"n",
+      "11.1":"n",
+      "11.5":"n",
+      "11.6":"n",
+      "12":"n",
+      "12.1":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"n",
+      "36":"n",
+      "37":"n",
+      "38":"n",
+      "39":"n",
+      "40":"n",
+      "41":"n",
+      "42":"n",
+      "43":"n",
+      "44":"n",
+      "45":"n",
+      "46":"n"
+    },
+    "ios_saf":{
+      "3.2":"n",
+      "4.0-4.1":"n",
+      "4.2-4.3":"n",
+      "5.0-5.1":"n",
+      "6.0-6.1":"n",
+      "7.0-7.1":"n",
+      "8":"n",
+      "8.1-8.4":"n",
+      "9.0-9.2":"n",
+      "9.3":"n",
+      "10.0-10.2":"n",
+      "10.3":"n"
+    },
+    "op_mini":{
+      "all":"n"
+    },
+    "android":{
+      "2.1":"n",
+      "2.2":"n",
+      "2.3":"n",
+      "3":"n",
+      "4":"n",
+      "4.1":"n",
+      "4.2-4.3":"n",
+      "4.4":"n",
+      "4.4.3-4.4.4":"n",
+      "56":"n #2"
+    },
+    "bb":{
+      "7":"n",
+      "10":"n"
+    },
+    "op_mob":{
+      "10":"n",
+      "11":"n",
+      "11.1":"n",
+      "11.5":"n",
+      "12":"n",
+      "12.1":"n",
+      "37":"n"
+    },
+    "and_chr":{
+      "57":"n #2"
+    },
+    "and_ff":{
+      "52":"n"
+    },
+    "ie_mob":{
+      "10":"n",
+      "11":"n"
+    },
+    "and_uc":{
+      "11.4":"n"
+    },
+    "samsung":{
+      "4":"n",
+      "5":"n #2"
+    },
+    "and_qq":{
+      "1.2":"n"
+    },
+    "baidu":{
+      "7.12":"n"
+    }
+  },
+  "notes":"",
+  "notes_by_num":{
+    "1":"Supported only for devices with [hardware support](https://answers.microsoft.com/en-us/insider/forum/insider_apps-insider_wmp/windows-10-hevc-playback-yes-or-no/3c1ab780-a6b2-4b77-ac0f-9faeefd4680d)",
+    "2":"Reported to work in certain Android devices with hardware support"
+  },
+  "usage_perc_y":0,
+  "usage_perc_a":4.81,
+  "ucprefix":false,
+  "parent":"video",
+  "keywords":"",
+  "ie_id":"",
+  "chrome_id":"",
+  "firefox_id":"",
+  "webkit_id":"",
+  "shown":true
+}

+ 300 - 0
node_modules/caniuse-db/features-json/indexeddb2.json

@@ -0,0 +1,300 @@
+{
+  "title":"IndexedDB 2.0",
+  "description":"Improvements to Indexed DB, including getAll(), renaming stores and indexes, and binary keys.",
+  "spec":"https://www.w3.org/TR/IndexedDB-2/",
+  "status":"wd",
+  "links":[
+    {
+      "url":"https://hacks.mozilla.org/2016/10/whats-new-in-indexeddb-2-0/",
+      "title":"Mozilla Hacks: What's new in IndexedDB 2.0?"
+    },
+    {
+      "url":"https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API",
+      "title":"MDN Docs"
+    }
+  ],
+  "bugs":[
+    
+  ],
+  "categories":[
+    "JS API"
+  ],
+  "stats":{
+    "ie":{
+      "5.5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n"
+    },
+    "edge":{
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n"
+    },
+    "firefox":{
+      "2":"n",
+      "3":"n",
+      "3.5":"n",
+      "3.6":"n",
+      "4":"n",
+      "5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n",
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"n",
+      "36":"n",
+      "37":"n",
+      "38":"n",
+      "39":"n",
+      "40":"n",
+      "41":"n",
+      "42":"n",
+      "43":"n",
+      "44":"a #1",
+      "45":"a #1",
+      "46":"a #1",
+      "47":"a #2",
+      "48":"a #2",
+      "49":"a #2",
+      "50":"a #2",
+      "51":"y",
+      "52":"y",
+      "53":"y",
+      "54":"y",
+      "55":"y",
+      "56":"y"
+    },
+    "chrome":{
+      "4":"n",
+      "5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n",
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"n",
+      "36":"n",
+      "37":"n",
+      "38":"n",
+      "39":"n",
+      "40":"n",
+      "41":"n",
+      "42":"n",
+      "43":"n",
+      "44":"n",
+      "45":"n",
+      "46":"n",
+      "47":"n",
+      "48":"a #1",
+      "49":"a #1",
+      "50":"a #1",
+      "51":"a #1",
+      "52":"a #2",
+      "53":"a #2",
+      "54":"a #2",
+      "55":"a #2",
+      "56":"a #2",
+      "57":"a #2",
+      "58":"y",
+      "59":"y",
+      "60":"y",
+      "61":"y"
+    },
+    "safari":{
+      "3.1":"n",
+      "3.2":"n",
+      "4":"n",
+      "5":"n",
+      "5.1":"n",
+      "6":"n",
+      "6.1":"n",
+      "7":"n",
+      "7.1":"n",
+      "8":"n",
+      "9":"n",
+      "9.1":"n",
+      "10":"n",
+      "10.1":"y",
+      "TP":"y"
+    },
+    "opera":{
+      "9":"n",
+      "9.5-9.6":"n",
+      "10.0-10.1":"n",
+      "10.5":"n",
+      "10.6":"n",
+      "11":"n",
+      "11.1":"n",
+      "11.5":"n",
+      "11.6":"n",
+      "12":"n",
+      "12.1":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"a #1",
+      "36":"a #1",
+      "37":"a #1",
+      "38":"a #1",
+      "39":"a #2",
+      "40":"a #2",
+      "41":"a #2",
+      "42":"a #2",
+      "43":"a #2",
+      "44":"a #2",
+      "45":"y",
+      "46":"y"
+    },
+    "ios_saf":{
+      "3.2":"n",
+      "4.0-4.1":"n",
+      "4.2-4.3":"n",
+      "5.0-5.1":"n",
+      "6.0-6.1":"n",
+      "7.0-7.1":"n",
+      "8":"n",
+      "8.1-8.4":"n",
+      "9.0-9.2":"n",
+      "9.3":"n",
+      "10.0-10.2":"u",
+      "10.3":"y"
+    },
+    "op_mini":{
+      "all":"n"
+    },
+    "android":{
+      "2.1":"n",
+      "2.2":"n",
+      "2.3":"n",
+      "3":"n",
+      "4":"n",
+      "4.1":"n",
+      "4.2-4.3":"n",
+      "4.4":"n",
+      "4.4.3-4.4.4":"n",
+      "56":"a #2"
+    },
+    "bb":{
+      "7":"n",
+      "10":"u"
+    },
+    "op_mob":{
+      "10":"n",
+      "11":"n",
+      "11.1":"n",
+      "11.5":"n",
+      "12":"n",
+      "12.1":"n",
+      "37":"a #1"
+    },
+    "and_chr":{
+      "57":"a #2"
+    },
+    "and_ff":{
+      "52":"u"
+    },
+    "ie_mob":{
+      "10":"n",
+      "11":"n"
+    },
+    "and_uc":{
+      "11.4":"u"
+    },
+    "samsung":{
+      "4":"u",
+      "5":"a #2"
+    },
+    "and_qq":{
+      "1.2":"u"
+    },
+    "baidu":{
+      "7.12":"u"
+    }
+  },
+  "notes":"",
+  "notes_by_num":{
+    "1":"Missing: IDBKeyRange includes(), renaming stores/indexes, binary keys, IDBObjectStore getKey(), IDBCursor continuePrimaryKey()",
+    "2":"Missing: Renaming stores/indexes, binary keys, IDBObjectStore getKey(), IDBCursor continuePrimaryKey()"
+  },
+  "usage_perc_y":29.84,
+  "usage_perc_a":37.91,
+  "ucprefix":false,
+  "parent":"",
+  "keywords":"indexdb,indexeddb,idb",
+  "ie_id":"indexeddb",
+  "chrome_id":"5812621622116352,6571252802125824,6537756637396992",
+  "firefox_id":"indexeddb",
+  "webkit_id":"specification-indexed-database-2.0",
+  "shown":false
+}

+ 297 - 0
node_modules/caniuse-db/features-json/rel-noreferrer.json

@@ -0,0 +1,297 @@
+{
+  "title":"Link type \"noreferrer\"",
+  "description":"Links with `rel=\"noreferrer\"` set do not send the request's \"referrer\" header. This prevents the destination site from seeing what URL the user came from.",
+  "spec":"https://html.spec.whatwg.org/multipage/semantics.html#link-type-noreferrer",
+  "status":"ls",
+  "links":[
+    {
+      "url":"https://www.thoughtco.com/rel-noreferrer-3468002",
+      "title":"Blog post on rel=\"noreferrer\""
+    }
+  ],
+  "bugs":[
+    
+  ],
+  "categories":[
+    "DOM",
+    "HTML5",
+    "Security"
+  ],
+  "stats":{
+    "ie":{
+      "5.5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"a #1"
+    },
+    "edge":{
+      "12":"u",
+      "13":"y",
+      "14":"y",
+      "15":"y"
+    },
+    "firefox":{
+      "2":"n",
+      "3":"n",
+      "3.5":"n",
+      "3.6":"n",
+      "4":"n",
+      "5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n",
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"y",
+      "34":"y",
+      "35":"y",
+      "36":"y",
+      "37":"y",
+      "38":"y",
+      "39":"y",
+      "40":"y",
+      "41":"y",
+      "42":"y",
+      "43":"y",
+      "44":"y",
+      "45":"y",
+      "46":"y",
+      "47":"y",
+      "48":"y",
+      "49":"y",
+      "50":"y",
+      "51":"y",
+      "52":"y",
+      "53":"y",
+      "54":"y",
+      "55":"y",
+      "56":"y"
+    },
+    "chrome":{
+      "4":"u",
+      "5":"u",
+      "6":"u",
+      "7":"u",
+      "8":"u",
+      "9":"u",
+      "10":"u",
+      "11":"u",
+      "12":"u",
+      "13":"u",
+      "14":"u",
+      "15":"u",
+      "16":"y",
+      "17":"y",
+      "18":"y",
+      "19":"y",
+      "20":"y",
+      "21":"y",
+      "22":"y",
+      "23":"y",
+      "24":"y",
+      "25":"y",
+      "26":"y",
+      "27":"y",
+      "28":"y",
+      "29":"y",
+      "30":"y",
+      "31":"y",
+      "32":"y",
+      "33":"y",
+      "34":"y",
+      "35":"y",
+      "36":"y",
+      "37":"y",
+      "38":"y",
+      "39":"y",
+      "40":"y",
+      "41":"y",
+      "42":"y",
+      "43":"y",
+      "44":"y",
+      "45":"y",
+      "46":"y",
+      "47":"y",
+      "48":"y",
+      "49":"y",
+      "50":"y",
+      "51":"y",
+      "52":"y",
+      "53":"y",
+      "54":"y",
+      "55":"y",
+      "56":"y",
+      "57":"y",
+      "58":"y",
+      "59":"y",
+      "60":"y",
+      "61":"y"
+    },
+    "safari":{
+      "3.1":"n",
+      "3.2":"n",
+      "4":"n",
+      "5":"y",
+      "5.1":"y",
+      "6":"y",
+      "6.1":"y",
+      "7":"y",
+      "7.1":"y",
+      "8":"y",
+      "9":"y",
+      "9.1":"y",
+      "10":"y",
+      "10.1":"y",
+      "TP":"y"
+    },
+    "opera":{
+      "9":"n",
+      "9.5-9.6":"n",
+      "10.0-10.1":"n",
+      "10.5":"n",
+      "10.6":"n",
+      "11":"n",
+      "11.1":"n",
+      "11.5":"n",
+      "11.6":"n",
+      "12":"n",
+      "12.1":"n",
+      "15":"y",
+      "16":"y",
+      "17":"y",
+      "18":"y",
+      "19":"y",
+      "20":"y",
+      "21":"y",
+      "22":"y",
+      "23":"y",
+      "24":"y",
+      "25":"y",
+      "26":"y",
+      "27":"y",
+      "28":"y",
+      "29":"y",
+      "30":"y",
+      "31":"y",
+      "32":"y",
+      "33":"y",
+      "34":"y",
+      "35":"y",
+      "36":"y",
+      "37":"y",
+      "38":"y",
+      "39":"y",
+      "40":"y",
+      "41":"y",
+      "42":"y",
+      "43":"y",
+      "44":"y",
+      "45":"y",
+      "46":"y"
+    },
+    "ios_saf":{
+      "3.2":"n",
+      "4.0-4.1":"y",
+      "4.2-4.3":"y",
+      "5.0-5.1":"y",
+      "6.0-6.1":"y",
+      "7.0-7.1":"y",
+      "8":"y",
+      "8.1-8.4":"y",
+      "9.0-9.2":"y",
+      "9.3":"y",
+      "10.0-10.2":"y",
+      "10.3":"y"
+    },
+    "op_mini":{
+      "all":"n"
+    },
+    "android":{
+      "2.1":"u",
+      "2.2":"u",
+      "2.3":"y",
+      "3":"y",
+      "4":"y",
+      "4.1":"y",
+      "4.2-4.3":"y",
+      "4.4":"y",
+      "4.4.3-4.4.4":"y",
+      "56":"y"
+    },
+    "bb":{
+      "7":"y",
+      "10":"y"
+    },
+    "op_mob":{
+      "10":"n",
+      "11":"n",
+      "11.1":"n",
+      "11.5":"n",
+      "12":"n",
+      "12.1":"n",
+      "37":"y"
+    },
+    "and_chr":{
+      "57":"y"
+    },
+    "and_ff":{
+      "52":"y"
+    },
+    "ie_mob":{
+      "10":"n",
+      "11":"n"
+    },
+    "and_uc":{
+      "11.4":"y"
+    },
+    "samsung":{
+      "4":"y",
+      "5":"y"
+    },
+    "and_qq":{
+      "1.2":"y"
+    },
+    "baidu":{
+      "7.12":"y"
+    }
+  },
+  "notes":"",
+  "notes_by_num":{
+    "1":"Only supported in IE11 in later versions of Windows 10 (creators update)."
+  },
+  "usage_perc_y":90.3,
+  "usage_perc_a":3.34,
+  "ucprefix":false,
+  "parent":"",
+  "keywords":"",
+  "ie_id":"",
+  "chrome_id":"",
+  "firefox_id":"",
+  "webkit_id":"",
+  "shown":true
+}

+ 296 - 0
node_modules/caniuse-db/features-json/token-binding.json

@@ -0,0 +1,296 @@
+{
+  "title":"Token Binding",
+  "description":"Bind cookies and tokens to a keypair owned by the client, in order to prevent session hijacking.",
+  "spec":"https://datatracker.ietf.org/doc/draft-ietf-tokbind-https/",
+  "status":"other",
+  "links":[
+    {
+      "url":"https://docs.microsoft.com/en-us/windows-server/security/token-binding/introducing-token-binding",
+      "title":"Introducing Token Binding in Windows"
+    }
+  ],
+  "bugs":[
+    
+  ],
+  "categories":[
+    "Security"
+  ],
+  "stats":{
+    "ie":{
+      "5.5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n"
+    },
+    "edge":{
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"y #2"
+    },
+    "firefox":{
+      "2":"n",
+      "3":"n",
+      "3.5":"n",
+      "3.6":"n",
+      "4":"n",
+      "5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n",
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"n",
+      "36":"n",
+      "37":"n",
+      "38":"n",
+      "39":"n",
+      "40":"n",
+      "41":"n",
+      "42":"n",
+      "43":"n",
+      "44":"n",
+      "45":"n",
+      "46":"n",
+      "47":"n",
+      "48":"n",
+      "49":"n",
+      "50":"n",
+      "51":"n",
+      "52":"n",
+      "53":"n",
+      "54":"u",
+      "55":"u",
+      "56":"u"
+    },
+    "chrome":{
+      "4":"n",
+      "5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n",
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"n",
+      "36":"n",
+      "37":"n",
+      "38":"n",
+      "39":"u",
+      "40":"u",
+      "41":"u",
+      "42":"u",
+      "43":"u",
+      "44":"u",
+      "45":"u",
+      "46":"u",
+      "47":"u",
+      "48":"u",
+      "49":"u",
+      "50":"u",
+      "51":"u",
+      "52":"u",
+      "53":"u",
+      "54":"u",
+      "55":"u",
+      "56":"u",
+      "57":"u",
+      "58":"n d #1",
+      "59":"n d #1",
+      "60":"n d #1",
+      "61":"n d #1"
+    },
+    "safari":{
+      "3.1":"n",
+      "3.2":"n",
+      "4":"n",
+      "5":"n",
+      "5.1":"n",
+      "6":"n",
+      "6.1":"n",
+      "7":"n",
+      "7.1":"n",
+      "8":"n",
+      "9":"u",
+      "9.1":"u",
+      "10":"u",
+      "10.1":"u",
+      "TP":"u"
+    },
+    "opera":{
+      "9":"n",
+      "9.5-9.6":"n",
+      "10.0-10.1":"n",
+      "10.5":"n",
+      "10.6":"n",
+      "11":"n",
+      "11.1":"n",
+      "11.5":"n",
+      "11.6":"n",
+      "12":"n",
+      "12.1":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"u",
+      "31":"u",
+      "32":"u",
+      "33":"u",
+      "34":"u",
+      "35":"u",
+      "36":"u",
+      "37":"u",
+      "38":"u",
+      "39":"u",
+      "40":"u",
+      "41":"u",
+      "42":"u",
+      "43":"u",
+      "44":"u",
+      "45":"u",
+      "46":"u"
+    },
+    "ios_saf":{
+      "3.2":"n",
+      "4.0-4.1":"n",
+      "4.2-4.3":"n",
+      "5.0-5.1":"n",
+      "6.0-6.1":"n",
+      "7.0-7.1":"n",
+      "8":"n",
+      "8.1-8.4":"n",
+      "9.0-9.2":"u",
+      "9.3":"u",
+      "10.0-10.2":"u",
+      "10.3":"u"
+    },
+    "op_mini":{
+      "all":"u"
+    },
+    "android":{
+      "2.1":"n",
+      "2.2":"n",
+      "2.3":"n",
+      "3":"n",
+      "4":"n",
+      "4.1":"n",
+      "4.2-4.3":"n",
+      "4.4":"n",
+      "4.4.3-4.4.4":"n",
+      "56":"u"
+    },
+    "bb":{
+      "7":"n",
+      "10":"n"
+    },
+    "op_mob":{
+      "10":"n",
+      "11":"n",
+      "11.1":"n",
+      "11.5":"n",
+      "12":"n",
+      "12.1":"n",
+      "37":"u"
+    },
+    "and_chr":{
+      "57":"u"
+    },
+    "and_ff":{
+      "52":"u"
+    },
+    "ie_mob":{
+      "10":"n",
+      "11":"u"
+    },
+    "and_uc":{
+      "11.4":"u"
+    },
+    "samsung":{
+      "4":"u",
+      "5":"u"
+    },
+    "and_qq":{
+      "1.2":"u"
+    },
+    "baidu":{
+      "7.12":"u"
+    }
+  },
+  "notes":"",
+  "notes_by_num":{
+    "1":"Enabled in Chrome through the \"Token Binding\" flag in chrome://flags",
+    "2":"Token binding in Edge is enabled on Windows 10, version 1703 and newer"
+  },
+  "usage_perc_y":0,
+  "usage_perc_a":0,
+  "ucprefix":false,
+  "parent":"",
+  "keywords":"ssl, tls",
+  "ie_id":"",
+  "chrome_id":"5097603234529280",
+  "firefox_id":"",
+  "webkit_id":"",
+  "shown":false
+}

+ 305 - 0
node_modules/caniuse-db/features-json/web-share.json

@@ -0,0 +1,305 @@
+{
+  "title":"Web Share Api",
+  "description":"An way to allow websites to invoke the native sharing capabilities of the host platform",
+  "spec":"https://github.com/WICG/web-share/blob/master/docs/explainer.md",
+  "status":"wd",
+  "links":[
+    {
+      "url":"https://developers.google.com/web/updates/2016/10/navigator-share",
+      "title":"Chrome post"
+    },
+    {
+      "url":"https://blog.hospodarets.com/web-share-api",
+      "title":"Web Share API brings the native sharing capabilities to the browser"
+    },
+    {
+      "url":"https://philna.sh/blog/2017/03/14/the-web-share-api/",
+      "title":"Web Share API"
+    }
+  ],
+  "bugs":[
+    
+  ],
+  "categories":[
+    "JS"
+  ],
+  "stats":{
+    "ie":{
+      "5.5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n"
+    },
+    "edge":{
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n"
+    },
+    "firefox":{
+      "2":"n",
+      "3":"n",
+      "3.5":"n",
+      "3.6":"n",
+      "4":"n",
+      "5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n",
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"n",
+      "36":"n",
+      "37":"n",
+      "38":"n",
+      "39":"n",
+      "40":"n",
+      "41":"n",
+      "42":"n",
+      "43":"n",
+      "44":"n",
+      "45":"n",
+      "46":"n",
+      "47":"n",
+      "48":"n",
+      "49":"n",
+      "50":"n",
+      "51":"n",
+      "52":"n",
+      "53":"n",
+      "54":"n",
+      "55":"n",
+      "56":"n"
+    },
+    "chrome":{
+      "4":"n",
+      "5":"n",
+      "6":"n",
+      "7":"n",
+      "8":"n",
+      "9":"n",
+      "10":"n",
+      "11":"n",
+      "12":"n",
+      "13":"n",
+      "14":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n #2",
+      "19":"n #2",
+      "20":"n #2",
+      "21":"n #2",
+      "22":"n #2",
+      "23":"n #2",
+      "24":"n #2",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"n",
+      "36":"n",
+      "37":"n",
+      "38":"n",
+      "39":"n",
+      "40":"n",
+      "41":"n",
+      "42":"n",
+      "43":"n",
+      "44":"n",
+      "45":"n",
+      "46":"n",
+      "47":"n",
+      "48":"n",
+      "49":"n",
+      "50":"n",
+      "51":"n",
+      "52":"n",
+      "53":"n",
+      "54":"n",
+      "55":"y #1",
+      "56":"y #1",
+      "57":"y #1",
+      "58":"y #1",
+      "59":"y #1",
+      "60":"y #1",
+      "61":"y #1"
+    },
+    "safari":{
+      "3.1":"n",
+      "3.2":"n",
+      "4":"n",
+      "5":"n",
+      "5.1":"n",
+      "6":"n",
+      "6.1":"u",
+      "7":"n",
+      "7.1":"n",
+      "8":"n",
+      "9":"n",
+      "9.1":"n",
+      "10":"n",
+      "10.1":"n",
+      "TP":"n"
+    },
+    "opera":{
+      "9":"n",
+      "9.5-9.6":"n",
+      "10.0-10.1":"n",
+      "10.5":"n",
+      "10.6":"n",
+      "11":"n",
+      "11.1":"n",
+      "11.5":"n",
+      "11.6":"n",
+      "12":"n",
+      "12.1":"n",
+      "15":"n",
+      "16":"n",
+      "17":"n",
+      "18":"n",
+      "19":"n",
+      "20":"n",
+      "21":"n",
+      "22":"n",
+      "23":"n",
+      "24":"n",
+      "25":"n",
+      "26":"n",
+      "27":"n",
+      "28":"n",
+      "29":"n",
+      "30":"n",
+      "31":"n",
+      "32":"n",
+      "33":"n",
+      "34":"n",
+      "35":"n",
+      "36":"n",
+      "37":"n",
+      "38":"n",
+      "39":"n",
+      "40":"n",
+      "41":"n",
+      "42":"n",
+      "43":"n",
+      "44":"n",
+      "45":"n",
+      "46":"n"
+    },
+    "ios_saf":{
+      "3.2":"n",
+      "4.0-4.1":"n",
+      "4.2-4.3":"n",
+      "5.0-5.1":"n",
+      "6.0-6.1":"n",
+      "7.0-7.1":"n",
+      "8":"n",
+      "8.1-8.4":"n",
+      "9.0-9.2":"n",
+      "9.3":"n",
+      "10.0-10.2":"n",
+      "10.3":"n"
+    },
+    "op_mini":{
+      "all":"n"
+    },
+    "android":{
+      "2.1":"n",
+      "2.2":"n",
+      "2.3":"n",
+      "3":"n",
+      "4":"n",
+      "4.1":"n",
+      "4.2-4.3":"n",
+      "4.4":"n",
+      "4.4.3-4.4.4":"n #3",
+      "56":"y #1"
+    },
+    "bb":{
+      "7":"n",
+      "10":"n"
+    },
+    "op_mob":{
+      "10":"n",
+      "11":"n",
+      "11.1":"n",
+      "11.5":"n",
+      "12":"n",
+      "12.1":"n",
+      "37":"n"
+    },
+    "and_chr":{
+      "57":"n #1 #3"
+    },
+    "and_ff":{
+      "52":"n #3"
+    },
+    "ie_mob":{
+      "10":"n",
+      "11":"n"
+    },
+    "and_uc":{
+      "11.4":"n"
+    },
+    "samsung":{
+      "4":"n",
+      "5":"n #1 #3"
+    },
+    "and_qq":{
+      "1.2":"n"
+    },
+    "baidu":{
+      "7.12":"u"
+    }
+  },
+  "notes":"",
+  "notes_by_num":{
+    "1":"Behind origin trail",
+    "2":"Implemented old [Web Intents](https://dvcs.w3.org/hg/web-intents/raw-file/tip/spec/Overview-respec.html)",
+    "3":"Android [intent://](https://developer.chrome.com/multidevice/android/intents) URL's could be used"
+  },
+  "usage_perc_y":23.69,
+  "usage_perc_a":0,
+  "ucprefix":false,
+  "parent":"",
+  "keywords":"web share,share, share api,intents api",
+  "ie_id":"",
+  "chrome_id":"",
+  "firefox_id":"",
+  "webkit_id":"",
+  "shown":false
+}

+ 45 - 0
node_modules/caniuse-lite/CHANGELOG.md

@@ -0,0 +1,45 @@
+# 1.x releases
+
+The contents of this section have been generated automatically; each version
+tracks the `caniuse-db` package at the same version.
+
+-   **1.0.30000677** was released on June 5th, 2017 at 00:01.
+-   **1.0.30000676** was released on May 30th, 2017 at 06:01.
+-   **1.0.30000674** was released on May 28th, 2017 at 06:01.
+-   **1.0.30000673** was released on May 27th, 2017 at 06:01.
+-   **1.0.30000672** was released on May 26th, 2017 at 06:01.
+-   **1.0.30000671** was released on May 25th, 2017 at 07:01.
+-   **1.0.30000670** was released on May 15th, 2017 at 07:01.
+-   **1.0.30000669** was released on May 14th, 2017 at 06:01.
+-   **1.0.30000668** was released on May 14th, 2017 at 05:01.
+-   **1.0.30000667** was released on May 12th, 2017 at 07:01.
+-   **1.0.30000666** was released on May 8th, 2017 at 06:01.
+-   **1.0.30000665** was released on May 3rd, 2017 at 08:01.
+-   **1.0.30000664** was released on April 28th, 2017 at 06:01.
+-   **1.0.30000663** was released on April 28th, 2017 at 05:01.
+-   **1.0.30000662** was released on April 26th, 2017 at 07:01.
+-   **1.0.30000661** was released on April 26th, 2017 at 06:01.
+-   **1.0.30000660** was released on April 24th, 2017 at 17:01.
+-   **1.0.30000659** was released on April 24th, 2017 at 00:01.
+-   **1.0.30000657** was released on April 21st, 2017 at 06:01.
+-   **1.0.30000656** was released on April 20th, 2017 at 12:16.
+-   **1.0.30000655** was released on April 17th, 2017 at 17:06.
+
+# 0.3.0
+
+-   Add the `title` key to each feature.
+-   Update `caniuse-db` to `1.0.30000653`.
+-   Test automated publish script.
+
+# 0.2.0
+
+-   Rewrite of the module. Now tries to be less clever with version merging,
+    instead opting for base62 identifiers for versions, and it is now tested
+    for accuracy against the original data.
+-   `null` versions are now preserved to be consistent with caniuse-db.
+-   All data is now stored as JS objects rather than JSON.
+-   The browser map is now automatically generated.
+
+# 0.1.0
+
+-   Initial release.

+ 395 - 0
node_modules/caniuse-lite/LICENSE

@@ -0,0 +1,395 @@
+Attribution 4.0 International
+
+=======================================================================
+
+Creative Commons Corporation ("Creative Commons") is not a law firm and
+does not provide legal services or legal advice. Distribution of
+Creative Commons public licenses does not create a lawyer-client or
+other relationship. Creative Commons makes its licenses and related
+information available on an "as-is" basis. Creative Commons gives no
+warranties regarding its licenses, any material licensed under their
+terms and conditions, or any related information. Creative Commons
+disclaims all liability for damages resulting from their use to the
+fullest extent possible.
+
+Using Creative Commons Public Licenses
+
+Creative Commons public licenses provide a standard set of terms and
+conditions that creators and other rights holders may use to share
+original works of authorship and other material subject to copyright
+and certain other rights specified in the public license below. The
+following considerations are for informational purposes only, are not
+exhaustive, and do not form part of our licenses.
+
+     Considerations for licensors: Our public licenses are
+     intended for use by those authorized to give the public
+     permission to use material in ways otherwise restricted by
+     copyright and certain other rights. Our licenses are
+     irrevocable. Licensors should read and understand the terms
+     and conditions of the license they choose before applying it.
+     Licensors should also secure all rights necessary before
+     applying our licenses so that the public can reuse the
+     material as expected. Licensors should clearly mark any
+     material not subject to the license. This includes other CC-
+     licensed material, or material used under an exception or
+     limitation to copyright. More considerations for licensors:
+	wiki.creativecommons.org/Considerations_for_licensors
+
+     Considerations for the public: By using one of our public
+     licenses, a licensor grants the public permission to use the
+     licensed material under specified terms and conditions. If
+     the licensor's permission is not necessary for any reason--for
+     example, because of any applicable exception or limitation to
+     copyright--then that use is not regulated by the license. Our
+     licenses grant only permissions under copyright and certain
+     other rights that a licensor has authority to grant. Use of
+     the licensed material may still be restricted for other
+     reasons, including because others have copyright or other
+     rights in the material. A licensor may make special requests,
+     such as asking that all changes be marked or described.
+     Although not required by our licenses, you are encouraged to
+     respect those requests where reasonable. More_considerations
+     for the public: 
+	wiki.creativecommons.org/Considerations_for_licensees
+
+=======================================================================
+
+Creative Commons Attribution 4.0 International Public License
+
+By exercising the Licensed Rights (defined below), You accept and agree
+to be bound by the terms and conditions of this Creative Commons
+Attribution 4.0 International Public License ("Public License"). To the
+extent this Public License may be interpreted as a contract, You are
+granted the Licensed Rights in consideration of Your acceptance of
+these terms and conditions, and the Licensor grants You such rights in
+consideration of benefits the Licensor receives from making the
+Licensed Material available under these terms and conditions.
+
+
+Section 1 -- Definitions.
+
+  a. Adapted Material means material subject to Copyright and Similar
+     Rights that is derived from or based upon the Licensed Material
+     and in which the Licensed Material is translated, altered,
+     arranged, transformed, or otherwise modified in a manner requiring
+     permission under the Copyright and Similar Rights held by the
+     Licensor. For purposes of this Public License, where the Licensed
+     Material is a musical work, performance, or sound recording,
+     Adapted Material is always produced where the Licensed Material is
+     synched in timed relation with a moving image.
+
+  b. Adapter's License means the license You apply to Your Copyright
+     and Similar Rights in Your contributions to Adapted Material in
+     accordance with the terms and conditions of this Public License.
+
+  c. Copyright and Similar Rights means copyright and/or similar rights
+     closely related to copyright including, without limitation,
+     performance, broadcast, sound recording, and Sui Generis Database
+     Rights, without regard to how the rights are labeled or
+     categorized. For purposes of this Public License, the rights
+     specified in Section 2(b)(1)-(2) are not Copyright and Similar
+     Rights.
+
+  d. Effective Technological Measures means those measures that, in the
+     absence of proper authority, may not be circumvented under laws
+     fulfilling obligations under Article 11 of the WIPO Copyright
+     Treaty adopted on December 20, 1996, and/or similar international
+     agreements.
+
+  e. Exceptions and Limitations means fair use, fair dealing, and/or
+     any other exception or limitation to Copyright and Similar Rights
+     that applies to Your use of the Licensed Material.
+
+  f. Licensed Material means the artistic or literary work, database,
+     or other material to which the Licensor applied this Public
+     License.
+
+  g. Licensed Rights means the rights granted to You subject to the
+     terms and conditions of this Public License, which are limited to
+     all Copyright and Similar Rights that apply to Your use of the
+     Licensed Material and that the Licensor has authority to license.
+
+  h. Licensor means the individual(s) or entity(ies) granting rights
+     under this Public License.
+
+  i. Share means to provide material to the public by any means or
+     process that requires permission under the Licensed Rights, such
+     as reproduction, public display, public performance, distribution,
+     dissemination, communication, or importation, and to make material
+     available to the public including in ways that members of the
+     public may access the material from a place and at a time
+     individually chosen by them.
+
+  j. Sui Generis Database Rights means rights other than copyright
+     resulting from Directive 96/9/EC of the European Parliament and of
+     the Council of 11 March 1996 on the legal protection of databases,
+     as amended and/or succeeded, as well as other essentially
+     equivalent rights anywhere in the world.
+
+  k. You means the individual or entity exercising the Licensed Rights
+     under this Public License. Your has a corresponding meaning.
+
+
+Section 2 -- Scope.
+
+  a. License grant.
+
+       1. Subject to the terms and conditions of this Public License,
+          the Licensor hereby grants You a worldwide, royalty-free,
+          non-sublicensable, non-exclusive, irrevocable license to
+          exercise the Licensed Rights in the Licensed Material to:
+
+            a. reproduce and Share the Licensed Material, in whole or
+               in part; and
+
+            b. produce, reproduce, and Share Adapted Material.
+
+       2. Exceptions and Limitations. For the avoidance of doubt, where
+          Exceptions and Limitations apply to Your use, this Public
+          License does not apply, and You do not need to comply with
+          its terms and conditions.
+
+       3. Term. The term of this Public License is specified in Section
+          6(a).
+
+       4. Media and formats; technical modifications allowed. The
+          Licensor authorizes You to exercise the Licensed Rights in
+          all media and formats whether now known or hereafter created,
+          and to make technical modifications necessary to do so. The
+          Licensor waives and/or agrees not to assert any right or
+          authority to forbid You from making technical modifications
+          necessary to exercise the Licensed Rights, including
+          technical modifications necessary to circumvent Effective
+          Technological Measures. For purposes of this Public License,
+          simply making modifications authorized by this Section 2(a)
+          (4) never produces Adapted Material.
+
+       5. Downstream recipients.
+
+            a. Offer from the Licensor -- Licensed Material. Every
+               recipient of the Licensed Material automatically
+               receives an offer from the Licensor to exercise the
+               Licensed Rights under the terms and conditions of this
+               Public License.
+
+            b. No downstream restrictions. You may not offer or impose
+               any additional or different terms or conditions on, or
+               apply any Effective Technological Measures to, the
+               Licensed Material if doing so restricts exercise of the
+               Licensed Rights by any recipient of the Licensed
+               Material.
+
+       6. No endorsement. Nothing in this Public License constitutes or
+          may be construed as permission to assert or imply that You
+          are, or that Your use of the Licensed Material is, connected
+          with, or sponsored, endorsed, or granted official status by,
+          the Licensor or others designated to receive attribution as
+          provided in Section 3(a)(1)(A)(i).
+
+  b. Other rights.
+
+       1. Moral rights, such as the right of integrity, are not
+          licensed under this Public License, nor are publicity,
+          privacy, and/or other similar personality rights; however, to
+          the extent possible, the Licensor waives and/or agrees not to
+          assert any such rights held by the Licensor to the limited
+          extent necessary to allow You to exercise the Licensed
+          Rights, but not otherwise.
+
+       2. Patent and trademark rights are not licensed under this
+          Public License.
+
+       3. To the extent possible, the Licensor waives any right to
+          collect royalties from You for the exercise of the Licensed
+          Rights, whether directly or through a collecting society
+          under any voluntary or waivable statutory or compulsory
+          licensing scheme. In all other cases the Licensor expressly
+          reserves any right to collect such royalties.
+
+
+Section 3 -- License Conditions.
+
+Your exercise of the Licensed Rights is expressly made subject to the
+following conditions.
+
+  a. Attribution.
+
+       1. If You Share the Licensed Material (including in modified
+          form), You must:
+
+            a. retain the following if it is supplied by the Licensor
+               with the Licensed Material:
+
+                 i. identification of the creator(s) of the Licensed
+                    Material and any others designated to receive
+                    attribution, in any reasonable manner requested by
+                    the Licensor (including by pseudonym if
+                    designated);
+
+                ii. a copyright notice;
+
+               iii. a notice that refers to this Public License;
+
+                iv. a notice that refers to the disclaimer of
+                    warranties;
+
+                 v. a URI or hyperlink to the Licensed Material to the
+                    extent reasonably practicable;
+
+            b. indicate if You modified the Licensed Material and
+               retain an indication of any previous modifications; and
+
+            c. indicate the Licensed Material is licensed under this
+               Public License, and include the text of, or the URI or
+               hyperlink to, this Public License.
+
+       2. You may satisfy the conditions in Section 3(a)(1) in any
+          reasonable manner based on the medium, means, and context in
+          which You Share the Licensed Material. For example, it may be
+          reasonable to satisfy the conditions by providing a URI or
+          hyperlink to a resource that includes the required
+          information.
+
+       3. If requested by the Licensor, You must remove any of the
+          information required by Section 3(a)(1)(A) to the extent
+          reasonably practicable.
+
+       4. If You Share Adapted Material You produce, the Adapter's
+          License You apply must not prevent recipients of the Adapted
+          Material from complying with this Public License.
+
+
+Section 4 -- Sui Generis Database Rights.
+
+Where the Licensed Rights include Sui Generis Database Rights that
+apply to Your use of the Licensed Material:
+
+  a. for the avoidance of doubt, Section 2(a)(1) grants You the right
+     to extract, reuse, reproduce, and Share all or a substantial
+     portion of the contents of the database;
+
+  b. if You include all or a substantial portion of the database
+     contents in a database in which You have Sui Generis Database
+     Rights, then the database in which You have Sui Generis Database
+     Rights (but not its individual contents) is Adapted Material; and
+
+  c. You must comply with the conditions in Section 3(a) if You Share
+     all or a substantial portion of the contents of the database.
+
+For the avoidance of doubt, this Section 4 supplements and does not
+replace Your obligations under this Public License where the Licensed
+Rights include other Copyright and Similar Rights.
+
+
+Section 5 -- Disclaimer of Warranties and Limitation of Liability.
+
+  a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
+     EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
+     AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
+     ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
+     IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
+     WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
+     PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
+     ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
+     KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
+     ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
+
+  b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
+     TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
+     NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
+     INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
+     COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
+     USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
+     ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
+     DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
+     IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
+
+  c. The disclaimer of warranties and limitation of liability provided
+     above shall be interpreted in a manner that, to the extent
+     possible, most closely approximates an absolute disclaimer and
+     waiver of all liability.
+
+
+Section 6 -- Term and Termination.
+
+  a. This Public License applies for the term of the Copyright and
+     Similar Rights licensed here. However, if You fail to comply with
+     this Public License, then Your rights under this Public License
+     terminate automatically.
+
+  b. Where Your right to use the Licensed Material has terminated under
+     Section 6(a), it reinstates:
+
+       1. automatically as of the date the violation is cured, provided
+          it is cured within 30 days of Your discovery of the
+          violation; or
+
+       2. upon express reinstatement by the Licensor.
+
+     For the avoidance of doubt, this Section 6(b) does not affect any
+     right the Licensor may have to seek remedies for Your violations
+     of this Public License.
+
+  c. For the avoidance of doubt, the Licensor may also offer the
+     Licensed Material under separate terms or conditions or stop
+     distributing the Licensed Material at any time; however, doing so
+     will not terminate this Public License.
+
+  d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
+     License.
+
+
+Section 7 -- Other Terms and Conditions.
+
+  a. The Licensor shall not be bound by any additional or different
+     terms or conditions communicated by You unless expressly agreed.
+
+  b. Any arrangements, understandings, or agreements regarding the
+     Licensed Material not stated herein are separate from and
+     independent of the terms and conditions of this Public License.
+
+
+Section 8 -- Interpretation.
+
+  a. For the avoidance of doubt, this Public License does not, and
+     shall not be interpreted to, reduce, limit, restrict, or impose
+     conditions on any use of the Licensed Material that could lawfully
+     be made without permission under this Public License.
+
+  b. To the extent possible, if any provision of this Public License is
+     deemed unenforceable, it shall be automatically reformed to the
+     minimum extent necessary to make it enforceable. If the provision
+     cannot be reformed, it shall be severed from this Public License
+     without affecting the enforceability of the remaining terms and
+     conditions.
+
+  c. No term or condition of this Public License will be waived and no
+     failure to comply consented to unless expressly agreed to by the
+     Licensor.
+
+  d. Nothing in this Public License constitutes or may be interpreted
+     as a limitation upon, or waiver of, any privileges and immunities
+     that apply to the Licensor or You, including from the legal
+     processes of any jurisdiction or authority.
+
+
+=======================================================================
+
+Creative Commons is not a party to its public
+licenses. Notwithstanding, Creative Commons may elect to apply one of
+its public licenses to material it publishes and in those instances
+will be considered the “Licensor.” The text of the Creative Commons
+public licenses is dedicated to the public domain under the CC0 Public
+Domain Dedication. Except for the limited purpose of indicating that
+material is shared under a Creative Commons public license or as
+otherwise permitted by the Creative Commons policies published at
+creativecommons.org/policies, Creative Commons does not authorize the
+use of the trademark "Creative Commons" or any other trademark or logo
+of Creative Commons without its prior written consent including,
+without limitation, in connection with any unauthorized modifications
+to any of its public licenses or any other arrangements,
+understandings, or agreements concerning use of licensed material. For
+the avoidance of doubt, this paragraph does not form part of the
+public licenses.
+
+Creative Commons may be contacted at creativecommons.org.

File diff suppressed because it is too large
+ 77 - 0
node_modules/caniuse-lite/README.md


File diff suppressed because it is too large
+ 1 - 0
node_modules/caniuse-lite/data/agents.js


File diff suppressed because it is too large
+ 1 - 0
node_modules/caniuse-lite/data/browserVersions.js


+ 0 - 0
node_modules/caniuse-lite/data/browsers.js


Some files were not shown because too many files changed in this diff