From a358fc9dc1b71c4177735c4ca27c9da350d655af Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Mon, 20 Jun 2016 16:18:21 -0700 Subject: [PATCH] Replace grunt-postcss with postcss-cli (#20140) Refs #19990 Continues the degruntification process. Also removes mq4-hover-shim for now, since it doesn't yet implement the standard PostCSS plugin interface. --- Gruntfile.js | 46 +- docs/getting-started/build-tools.md | 2 +- grunt/autoprefixer-settings.js | 31 - grunt/npm-shrinkwrap.json | 1179 ++++++++++++++++++++++++--- grunt/postcss.js | 42 + package.json | 9 +- scss/mixins/_hover.scss | 19 +- 7 files changed, 1117 insertions(+), 211 deletions(-) delete mode 100644 grunt/autoprefixer-settings.js create mode 100644 grunt/postcss.js diff --git a/Gruntfile.js b/Gruntfile.js index 1c6415329a..9ba8c7b512 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -19,9 +19,6 @@ module.exports = function (grunt) { var fs = require('fs'); var path = require('path'); var isTravis = require('is-travis'); - var mq4HoverShim = require('mq4-hover-shim'); - var autoprefixerSettings = require('./grunt/autoprefixer-settings.js'); - var autoprefixer = require('autoprefixer')(autoprefixerSettings); var configBridge = grunt.file.readJSON('./grunt/configBridge.json', { encoding: 'utf8' }); @@ -166,39 +163,6 @@ module.exports = function (grunt) { } }, - postcss: { - core: { - options: { - map: true, - processors: [ - mq4HoverShim.postprocessorFor({ hoverSelectorPrefix: '.bs-true-hover ' }), - require('postcss-flexbugs-fixes')(), - autoprefixer - ] - }, - src: 'dist/css/*.css' - }, - docs: { - options: { - processors: [ - autoprefixer - ] - }, - src: 'docs/assets/css/docs.min.css' - }, - examples: { - options: { - processors: [ - autoprefixer - ] - }, - expand: true, - cwd: 'docs/examples/', - src: ['**/*.css'], - dest: 'docs/examples/' - } - }, - cssmin: { options: { // TODO: disable `zeroUnits` optimization once clean-css 3.2 is released @@ -308,6 +272,12 @@ module.exports = function (grunt) { }, exec: { + postcss: { + command: 'npm run postcss' + }, + 'postcss-docs': { + command: 'npm run postcss-docs' + } }, buildcontrol: { @@ -403,7 +373,7 @@ module.exports = function (grunt) { // grunt.registerTask('sass-compile', ['sass:core', 'sass:extras', 'sass:docs']); grunt.registerTask('sass-compile', ['sass:core', 'sass:docs']); - grunt.registerTask('dist-css', ['sass-compile', 'postcss:core', 'cssmin:core', 'cssmin:docs']); + grunt.registerTask('dist-css', ['sass-compile', 'exec:postcss', 'cssmin:core', 'cssmin:docs']); // Full distribution task. grunt.registerTask('dist', ['clean:dist', 'dist-css', 'dist-js']); @@ -412,7 +382,7 @@ module.exports = function (grunt) { grunt.registerTask('default', ['clean:dist', 'test']); // Docs task. - grunt.registerTask('docs-css', ['postcss:docs', 'postcss:examples', 'cssmin:docs']); + grunt.registerTask('docs-css', ['cssmin:docs', 'exec:postcss-docs']); grunt.registerTask('lint-docs-css', ['scsslint:docs']); grunt.registerTask('docs-js', ['uglify:docsJs']); grunt.registerTask('docs', ['lint-docs-css', 'docs-css', 'docs-js', 'clean:docs', 'copy:docs']); diff --git a/docs/getting-started/build-tools.md b/docs/getting-started/build-tools.md index c086c036bf..2fe10088b8 100644 --- a/docs/getting-started/build-tools.md +++ b/docs/getting-started/build-tools.md @@ -46,7 +46,7 @@ For example, run `TWBS_SASS=sass grunt` to test and build Bootstrap with Ruby Sa Bootstrap uses [Autoprefixer][autoprefixer] (included in our Gruntfile and build process) to automatically add vendor prefixes to some CSS properties at build time. Doing so saves us time and code by allowing us to write key parts of our CSS a single time while eliminating the need for vendor mixins like those found in v3. -We maintain the list of browsers supported through Autoprefixer in a separate file within our GitHub repository. See [`/grunt/autoprefixer-settings.json`](https://github.com/twbs/bootstrap/blob/master/grunt/autoprefixer-settings.js) for details. +We maintain the list of browsers supported through Autoprefixer in a separate file within our GitHub repository. See [`/grunt/postcss.js`](https://github.com/twbs/bootstrap/blob/master/grunt/postcss.js) for details. ## Local documentation diff --git a/grunt/autoprefixer-settings.js b/grunt/autoprefixer-settings.js deleted file mode 100644 index 6a21726b87..0000000000 --- a/grunt/autoprefixer-settings.js +++ /dev/null @@ -1,31 +0,0 @@ -module.exports = { - browsers: [ - // - // Official browser support policy: - // http://v4-alpha.getbootstrap.com/getting-started/browsers-devices/#supported-browsers - // - 'Chrome >= 35', // Exact version number here is kinda arbitrary - // Rather than using Autoprefixer's native "Firefox ESR" version specifier string, - // we deliberately hardcode the number. This is to avoid unwittingly severely breaking the previous ESR in the event that: - // (a) we happen to ship a new Bootstrap release soon after the release of a new ESR, - // such that folks haven't yet had a reasonable amount of time to upgrade; and - // (b) the new ESR has unprefixed CSS properties/values whose absence would severely break webpages - // (e.g. `box-sizing`, as opposed to `background: linear-gradient(...)`). - // Since they've been unprefixed, Autoprefixer will stop prefixing them, - // thus causing them to not work in the previous ESR (where the prefixes were required). - 'Firefox >= 38', // Current Firefox Extended Support Release (ESR); https://www.mozilla.org/en-US/firefox/organizations/faq/ - // Note: Edge versions in Autoprefixer & Can I Use refer to the EdgeHTML rendering engine version, - // NOT the Edge app version shown in Edge's "About" screen. - // For example, at the time of writing, Edge 20 on an up-to-date system uses EdgeHTML 12. - // See also https://github.com/Fyrd/caniuse/issues/1928 - 'Edge >= 12', - 'Explorer >= 9', - // Out of leniency, we prefix these 1 version further back than the official policy. - 'iOS >= 8', - 'Safari >= 8', - // The following remain NOT officially supported, but we're lenient and include their prefixes to avoid severely breaking in them. - 'Android 2.3', - 'Android >= 4', - 'Opera >= 12' - ] -} diff --git a/grunt/npm-shrinkwrap.json b/grunt/npm-shrinkwrap.json index 268960b483..243b9ecf27 100644 --- a/grunt/npm-shrinkwrap.json +++ b/grunt/npm-shrinkwrap.json @@ -3,19 +3,19 @@ "version": "4.0.0-alpha.2", "dependencies": { "abbrev": { - "version": "1.0.7", + "version": "1.0.9", "from": "abbrev@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz" }, "accepts": { - "version": "1.2.13", - "from": "accepts@>=1.2.13 <1.3.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz" + "version": "1.3.3", + "from": "accepts@>=1.3.3 <1.4.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz" }, "acorn": { - "version": "3.1.0", - "from": "acorn@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.1.0.tgz" + "version": "3.2.0", + "from": "acorn@>=3.2.0 <4.0.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.2.0.tgz" }, "acorn-jsx": { "version": "3.0.1", @@ -57,6 +57,11 @@ "from": "ansi-styles@>=2.2.1 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" }, + "anymatch": { + "version": "1.3.0", + "from": "anymatch@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz" + }, "archiver": { "version": "1.0.0", "from": "archiver@>=1.0.0 <2.0.0", @@ -84,6 +89,16 @@ "from": "argparse@>=1.0.7 <2.0.0", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.7.tgz" }, + "arr-diff": { + "version": "2.0.0", + "from": "arr-diff@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz" + }, + "arr-flatten": { + "version": "1.0.1", + "from": "arr-flatten@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz" + }, "array-differ": { "version": "1.0.0", "from": "array-differ@>=1.0.0 <2.0.0", @@ -100,14 +115,19 @@ "resolved": "https://registry.npmjs.org/array-index/-/array-index-1.0.0.tgz" }, "array-union": { - "version": "1.0.1", + "version": "1.0.2", "from": "array-union@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz" }, "array-uniq": { - "version": "1.0.2", + "version": "1.0.3", "from": "array-uniq@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.2.tgz" + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" + }, + "array-unique": { + "version": "0.2.1", + "from": "array-unique@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz" }, "arrify": { "version": "1.0.1", @@ -139,6 +159,11 @@ "from": "async@>=0.1.22 <0.2.0", "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz" }, + "async-each": { + "version": "1.0.0", + "from": "async-each@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.0.tgz" + }, "async-foreach": { "version": "0.1.3", "from": "async-foreach@>=0.1.3 <0.2.0", @@ -309,14 +334,14 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.9.0.tgz" }, "babel-types": { - "version": "6.9.1", + "version": "6.10.2", "from": "babel-types@>=6.0.19 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.9.1.tgz" + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.10.2.tgz" }, "babylon": { - "version": "6.8.0", + "version": "6.8.1", "from": "babylon@>=6.0.18 <7.0.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.8.0.tgz" + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.8.1.tgz" }, "balanced-match": { "version": "0.4.1", @@ -333,6 +358,11 @@ "from": "batch@0.5.3", "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz" }, + "binary-extensions": { + "version": "1.4.1", + "from": "binary-extensions@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.4.1.tgz" + }, "bl": { "version": "1.1.2", "from": "bl@>=1.0.0 <2.0.0", @@ -344,15 +374,20 @@ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz" }, "bluebird": { - "version": "3.4.0", + "version": "3.4.1", "from": "bluebird@>=3.1.1 <4.0.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.0.tgz" + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.1.tgz" }, "body-parser": { "version": "1.14.2", "from": "body-parser@>=1.14.0 <1.15.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", "dependencies": { + "http-errors": { + "version": "1.3.1", + "from": "http-errors@>=1.3.1 <1.4.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz" + }, "iconv-lite": { "version": "0.4.13", "from": "iconv-lite@0.4.13", @@ -366,9 +401,14 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" }, "brace-expansion": { - "version": "1.1.4", + "version": "1.1.5", "from": "brace-expansion@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.4.tgz" + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.5.tgz" + }, + "braces": { + "version": "1.8.5", + "from": "braces@>=1.8.2 <2.0.0", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz" }, "breakable": { "version": "1.0.0", @@ -428,9 +468,9 @@ } }, "caniuse-db": { - "version": "1.0.30000472", + "version": "1.0.30000484", "from": "caniuse-db@>=1.0.30000444 <2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000472.tgz" + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000484.tgz" }, "caseless": { "version": "0.11.0", @@ -454,10 +494,15 @@ } } }, + "chokidar": { + "version": "1.5.2", + "from": "chokidar@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.5.2.tgz" + }, "clean-css": { - "version": "3.4.17", + "version": "3.4.18", "from": "clean-css@>=3.4.2 <3.5.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.17.tgz", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.18.tgz", "dependencies": { "commander": { "version": "2.8.1", @@ -612,33 +657,11 @@ "from": "cross-spawn@>=0.2.3 <0.3.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-0.2.9.tgz" }, - "cross-spawn-async": { - "version": "2.2.4", - "from": "cross-spawn-async@>=2.1.9 <3.0.0", - "resolved": "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.2.4.tgz", - "dependencies": { - "lru-cache": { - "version": "4.0.1", - "from": "lru-cache@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz" - }, - "which": { - "version": "1.2.9", - "from": "which@>=1.2.8 <2.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.9.tgz" - } - } - }, "cryptiles": { "version": "2.0.5", "from": "cryptiles@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" }, - "css-mq-parser": { - "version": "0.0.3", - "from": "css-mq-parser@>=0.0.3 <0.0.4", - "resolved": "https://registry.npmjs.org/css-mq-parser/-/css-mq-parser-0.0.3.tgz" - }, "cst": { "version": "0.3.0", "from": "cst@>=0.3.0 <0.4.0", @@ -853,6 +876,11 @@ "from": "ee-first@1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" }, + "encodeurl": { + "version": "1.0.1", + "from": "encodeurl@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz" + }, "end-of-stream": { "version": "1.1.0", "from": "end-of-stream@>=1.0.0 <2.0.0", @@ -921,14 +949,14 @@ "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz" }, "eslint": { - "version": "2.11.1", + "version": "2.13.0", "from": "eslint@>=2.11.1 <3.0.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-2.11.1.tgz", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-2.13.0.tgz", "dependencies": { "globals": { - "version": "9.7.0", + "version": "9.8.0", "from": "globals@>=9.2.0 <10.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.7.0.tgz" + "resolved": "https://registry.npmjs.org/globals/-/globals-9.8.0.tgz" }, "shelljs": { "version": "0.6.0", @@ -938,9 +966,9 @@ } }, "espree": { - "version": "3.1.4", - "from": "espree@3.1.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.1.4.tgz" + "version": "3.1.6", + "from": "espree@>=3.1.6 <4.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.1.6.tgz" }, "esprima": { "version": "2.7.2", @@ -994,11 +1022,26 @@ "from": "exit-hook@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz" }, + "expand-brackets": { + "version": "0.1.5", + "from": "expand-brackets@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz" + }, + "expand-range": { + "version": "1.8.2", + "from": "expand-range@>=1.8.1 <2.0.0", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz" + }, "extend": { "version": "3.0.0", "from": "extend@>=3.0.0 <3.1.0", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" }, + "extglob": { + "version": "0.3.2", + "from": "extglob@>=0.3.1 <0.4.0", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz" + }, "extract-zip": { "version": "1.5.0", "from": "extract-zip@>=1.5.0 <1.6.0", @@ -1078,6 +1121,16 @@ "from": "file-sync-cmp@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz" }, + "filename-regex": { + "version": "2.0.0", + "from": "filename-regex@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz" + }, + "fill-range": { + "version": "2.2.3", + "from": "fill-range@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz" + }, "finalhandler": { "version": "0.4.1", "from": "finalhandler@0.4.1", @@ -1122,6 +1175,16 @@ "from": "flat-cache@>=1.0.9 <2.0.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.0.10.tgz" }, + "for-in": { + "version": "0.1.5", + "from": "for-in@>=0.1.5 <0.2.0", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.5.tgz" + }, + "for-own": { + "version": "0.1.4", + "from": "for-own@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.4.tgz" + }, "forever-agent": { "version": "0.6.1", "from": "forever-agent@>=0.6.1 <0.7.0", @@ -1154,10 +1217,647 @@ "from": "fs-readdir-recursive@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz" }, + "fs.realpath": { + "version": "1.0.0", + "from": "fs.realpath@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + }, + "fsevents": { + "version": "1.0.12", + "from": "fsevents@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.0.12.tgz", + "dependencies": { + "ansi": { + "version": "0.3.1", + "from": "ansi@~0.3.1", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz" + }, + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@^2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + }, + "ansi-styles": { + "version": "2.2.1", + "from": "ansi-styles@^2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" + }, + "are-we-there-yet": { + "version": "1.1.2", + "from": "are-we-there-yet@~1.1.2", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz" + }, + "asn1": { + "version": "0.2.3", + "from": "asn1@>=0.2.3 <0.3.0", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" + }, + "assert-plus": { + "version": "0.2.0", + "from": "assert-plus@^0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" + }, + "async": { + "version": "1.5.2", + "from": "async@^1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" + }, + "aws-sign2": { + "version": "0.6.0", + "from": "aws-sign2@~0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" + }, + "aws4": { + "version": "1.3.2", + "from": "aws4@^1.2.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.3.2.tgz", + "dependencies": { + "lru-cache": { + "version": "4.0.1", + "from": "lru-cache@^4.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz", + "dependencies": { + "pseudomap": { + "version": "1.0.2", + "from": "pseudomap@^1.0.1", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" + }, + "yallist": { + "version": "2.0.0", + "from": "yallist@^2.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz" + } + } + } + } + }, + "bl": { + "version": "1.0.3", + "from": "bl@~1.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz" + }, + "block-stream": { + "version": "0.0.8", + "from": "block-stream@*", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" + }, + "boom": { + "version": "2.10.1", + "from": "boom@2.x.x", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" + }, + "caseless": { + "version": "0.11.0", + "from": "caseless@~0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" + }, + "chalk": { + "version": "1.1.3", + "from": "chalk@^1.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" + }, + "combined-stream": { + "version": "1.0.5", + "from": "combined-stream@~1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz" + }, + "commander": { + "version": "2.9.0", + "from": "commander@^2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" + }, + "core-util-is": { + "version": "1.0.2", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + }, + "cryptiles": { + "version": "2.0.5", + "from": "cryptiles@2.x.x", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" + }, + "dashdash": { + "version": "1.13.0", + "from": "dashdash@>=1.10.1 <2.0.0", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.0.tgz", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "from": "assert-plus@^1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + } + } + }, + "debug": { + "version": "2.2.0", + "from": "debug@~2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" + }, + "deep-extend": { + "version": "0.4.1", + "from": "deep-extend@~0.4.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz" + }, + "delayed-stream": { + "version": "1.0.0", + "from": "delayed-stream@~1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + }, + "delegates": { + "version": "1.0.0", + "from": "delegates@^1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" + }, + "ecc-jsbn": { + "version": "0.1.1", + "from": "ecc-jsbn@>=0.0.1 <1.0.0", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" + }, + "escape-string-regexp": { + "version": "1.0.5", + "from": "escape-string-regexp@^1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + }, + "extend": { + "version": "3.0.0", + "from": "extend@~3.0.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" + }, + "extsprintf": { + "version": "1.0.2", + "from": "extsprintf@1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" + }, + "forever-agent": { + "version": "0.6.1", + "from": "forever-agent@~0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + }, + "form-data": { + "version": "1.0.0-rc4", + "from": "form-data@~1.0.0-rc3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz" + }, + "fstream": { + "version": "1.0.8", + "from": "fstream@^1.0.2", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz" + }, + "fstream-ignore": { + "version": "1.0.3", + "from": "fstream-ignore@~1.0.3", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.3.tgz", + "dependencies": { + "minimatch": { + "version": "3.0.0", + "from": "minimatch@^3.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", + "dependencies": { + "brace-expansion": { + "version": "1.1.3", + "from": "brace-expansion@^1.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz", + "dependencies": { + "balanced-match": { + "version": "0.3.0", + "from": "balanced-match@^0.3.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } + } + } + } + } + }, + "gauge": { + "version": "1.2.7", + "from": "gauge@~1.2.5", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz" + }, + "generate-function": { + "version": "2.0.0", + "from": "generate-function@^2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" + }, + "generate-object-property": { + "version": "1.2.0", + "from": "generate-object-property@^1.1.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz" + }, + "graceful-fs": { + "version": "4.1.3", + "from": "graceful-fs@^4.1.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" + }, + "graceful-readlink": { + "version": "1.0.1", + "from": "graceful-readlink@>= 1.0.0", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + }, + "har-validator": { + "version": "2.0.6", + "from": "har-validator@~2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz" + }, + "has-ansi": { + "version": "2.0.0", + "from": "has-ansi@^2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" + }, + "has-unicode": { + "version": "2.0.0", + "from": "has-unicode@^2.0.0", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.0.tgz" + }, + "hawk": { + "version": "3.1.3", + "from": "hawk@~3.1.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz" + }, + "hoek": { + "version": "2.16.3", + "from": "hoek@2.x.x", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + }, + "http-signature": { + "version": "1.1.1", + "from": "http-signature@~1.1.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@*", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "ini": { + "version": "1.3.4", + "from": "ini@~1.3.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" + }, + "is-my-json-valid": { + "version": "2.13.1", + "from": "is-my-json-valid@^2.12.4", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz" + }, + "is-property": { + "version": "1.0.2", + "from": "is-property@^1.0.0", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + }, + "is-typedarray": { + "version": "1.0.0", + "from": "is-typedarray@~1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + }, + "isarray": { + "version": "1.0.0", + "from": "isarray@~1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + }, + "isstream": { + "version": "0.1.2", + "from": "isstream@~0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + }, + "jodid25519": { + "version": "1.0.2", + "from": "jodid25519@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" + }, + "jsbn": { + "version": "0.1.0", + "from": "jsbn@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" + }, + "json-schema": { + "version": "0.2.2", + "from": "json-schema@0.2.2", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz" + }, + "json-stringify-safe": { + "version": "5.0.1", + "from": "json-stringify-safe@~5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + }, + "jsonpointer": { + "version": "2.0.0", + "from": "jsonpointer@2.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" + }, + "jsprim": { + "version": "1.2.2", + "from": "jsprim@^1.2.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz" + }, + "lodash.pad": { + "version": "4.1.0", + "from": "lodash.pad@^4.1.0", + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.1.0.tgz" + }, + "lodash.padend": { + "version": "4.2.0", + "from": "lodash.padend@^4.1.0", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.2.0.tgz" + }, + "lodash.padstart": { + "version": "4.2.0", + "from": "lodash.padstart@^4.1.0", + "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.2.0.tgz" + }, + "lodash.repeat": { + "version": "4.0.0", + "from": "lodash.repeat@^4.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.0.tgz" + }, + "lodash.tostring": { + "version": "4.1.2", + "from": "lodash.tostring@^4.0.0", + "resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz" + }, + "mime-db": { + "version": "1.22.0", + "from": "mime-db@~1.22.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz" + }, + "mime-types": { + "version": "2.1.10", + "from": "mime-types@~2.1.7", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz" + }, + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + }, + "mkdirp": { + "version": "0.5.1", + "from": "mkdirp@>=0.3.0 <0.4.0||>=0.4.0 <0.5.0||>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" + }, + "ms": { + "version": "0.7.1", + "from": "ms@0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + }, + "node-pre-gyp": { + "version": "0.6.25", + "from": "node-pre-gyp@0.6.25", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.25.tgz", + "dependencies": { + "nopt": { + "version": "3.0.6", + "from": "nopt@~3.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "dependencies": { + "abbrev": { + "version": "1.0.7", + "from": "abbrev@1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" + } + } + } + } + }, + "node-uuid": { + "version": "1.4.7", + "from": "node-uuid@~1.4.7", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" + }, + "npmlog": { + "version": "2.0.3", + "from": "npmlog@~2.0.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.3.tgz" + }, + "oauth-sign": { + "version": "0.8.1", + "from": "oauth-sign@~0.8.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz" + }, + "once": { + "version": "1.3.3", + "from": "once@~1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz" + }, + "pinkie": { + "version": "2.0.4", + "from": "pinkie@^2.0.0", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + }, + "pinkie-promise": { + "version": "2.0.0", + "from": "pinkie-promise@^2.0.0", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz" + }, + "process-nextick-args": { + "version": "1.0.6", + "from": "process-nextick-args@~1.0.6", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" + }, + "qs": { + "version": "6.0.2", + "from": "qs@~6.0.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.0.2.tgz" + }, + "rc": { + "version": "1.1.6", + "from": "rc@~1.1.0", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.6.tgz", + "dependencies": { + "minimist": { + "version": "1.2.0", + "from": "minimist@^1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + } + } + }, + "readable-stream": { + "version": "2.0.6", + "from": "readable-stream@^2.0.0 || ^1.1.13", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" + }, + "request": { + "version": "2.69.0", + "from": "request@2.x", + "resolved": "https://registry.npmjs.org/request/-/request-2.69.0.tgz" + }, + "rimraf": { + "version": "2.5.2", + "from": "rimraf@~2.5.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz", + "dependencies": { + "glob": { + "version": "7.0.3", + "from": "glob@^7.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz", + "dependencies": { + "inflight": { + "version": "1.0.4", + "from": "inflight@^1.0.4", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "minimatch": { + "version": "3.0.0", + "from": "minimatch@2 || 3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", + "dependencies": { + "brace-expansion": { + "version": "1.1.3", + "from": "brace-expansion@^1.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz", + "dependencies": { + "balanced-match": { + "version": "0.3.0", + "from": "balanced-match@^0.3.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } + } + } + }, + "once": { + "version": "1.3.3", + "from": "once@^1.3.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "path-is-absolute": { + "version": "1.0.0", + "from": "path-is-absolute@^1.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + } + } + } + } + }, + "semver": { + "version": "5.1.0", + "from": "semver@~5.1.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz" + }, + "sntp": { + "version": "1.0.9", + "from": "sntp@1.x.x", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" + }, + "sshpk": { + "version": "1.7.4", + "from": "sshpk@^1.7.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.4.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "stringstream": { + "version": "0.0.5", + "from": "stringstream@~0.0.4", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" + }, + "strip-ansi": { + "version": "3.0.1", + "from": "strip-ansi@^3.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + }, + "strip-json-comments": { + "version": "1.0.4", + "from": "strip-json-comments@~1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz" + }, + "supports-color": { + "version": "2.0.0", + "from": "supports-color@^2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + }, + "tar": { + "version": "2.2.1", + "from": "tar@~2.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz" + }, + "tar-pack": { + "version": "3.1.3", + "from": "tar-pack@~3.1.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.1.3.tgz" + }, + "tough-cookie": { + "version": "2.2.2", + "from": "tough-cookie@~2.2.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz" + }, + "tunnel-agent": { + "version": "0.4.2", + "from": "tunnel-agent@~0.4.1", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" + }, + "tweetnacl": { + "version": "0.14.3", + "from": "tweetnacl@>=0.13.0 <1.0.0", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.3.tgz" + }, + "uid-number": { + "version": "0.0.6", + "from": "uid-number@~0.0.6", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz" + }, + "util-deprecate": { + "version": "1.0.2", + "from": "util-deprecate@~1.0.1", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + }, + "verror": { + "version": "1.3.6", + "from": "verror@1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" + }, + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + }, + "xtend": { + "version": "4.0.1", + "from": "xtend@^4.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + } + } + }, "fstream": { - "version": "1.0.9", + "version": "1.0.10", "from": "fstream@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.9.tgz" + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz" + }, + "gather-stream": { + "version": "1.0.0", + "from": "gather-stream@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/gather-stream/-/gather-stream-1.0.0.tgz" }, "gauge": { "version": "1.2.7", @@ -1202,9 +1902,19 @@ } }, "glob": { - "version": "7.0.3", + "version": "7.0.4", "from": "glob@>=7.0.3 <8.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz" + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.4.tgz" + }, + "glob-base": { + "version": "0.3.0", + "from": "glob-base@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz" + }, + "glob-parent": { + "version": "2.0.0", + "from": "glob-parent@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz" }, "globals": { "version": "8.18.0", @@ -1427,24 +2137,14 @@ "resolved": "https://registry.npmjs.org/grunt-exec/-/grunt-exec-0.4.7.tgz" }, "grunt-html": { - "version": "7.0.0", + "version": "7.1.0", "from": "grunt-html@>=7.0.0 <8.0.0", - "resolved": "https://registry.npmjs.org/grunt-html/-/grunt-html-7.0.0.tgz", + "resolved": "https://registry.npmjs.org/grunt-html/-/grunt-html-7.1.0.tgz", "dependencies": { "async": { "version": "1.5.2", "from": "async@1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" - }, - "chalk": { - "version": "1.1.1", - "from": "chalk@1.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz" - }, - "supports-color": { - "version": "2.0.0", - "from": "supports-color@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" } } }, @@ -1554,9 +2254,9 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" }, "which": { - "version": "1.2.9", + "version": "1.2.10", "from": "which@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.9.tgz" + "resolved": "https://registry.npmjs.org/which/-/which-1.2.10.tgz" } } }, @@ -1650,9 +2350,9 @@ } }, "http-errors": { - "version": "1.3.1", - "from": "http-errors@>=1.3.1 <1.4.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz" + "version": "1.5.0", + "from": "http-errors@>=1.5.0 <1.6.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.0.tgz" }, "http-signature": { "version": "1.1.1", @@ -1741,6 +2441,11 @@ "from": "is-arrayish@>=0.2.1 <0.3.0", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" }, + "is-binary-path": { + "version": "1.0.1", + "from": "is-binary-path@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz" + }, "is-buffer": { "version": "1.1.3", "from": "is-buffer@>=1.0.2 <2.0.0", @@ -1751,6 +2456,26 @@ "from": "is-builtin-module@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz" }, + "is-dotfile": { + "version": "1.0.2", + "from": "is-dotfile@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz" + }, + "is-equal-shallow": { + "version": "0.1.3", + "from": "is-equal-shallow@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz" + }, + "is-extendable": { + "version": "0.1.1", + "from": "is-extendable@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + }, + "is-extglob": { + "version": "1.0.0", + "from": "is-extglob@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + }, "is-finite": { "version": "1.0.1", "from": "is-finite@>=1.0.0 <2.0.0", @@ -1761,6 +2486,11 @@ "from": "is-fullwidth-code-point@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" }, + "is-glob": { + "version": "2.0.1", + "from": "is-glob@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" + }, "is-integer": { "version": "1.0.6", "from": "is-integer@>=1.0.4 <2.0.0", @@ -1771,6 +2501,11 @@ "from": "is-my-json-valid@>=2.10.0 <3.0.0", "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz" }, + "is-number": { + "version": "2.1.0", + "from": "is-number@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz" + }, "is-path-cwd": { "version": "1.0.0", "from": "is-path-cwd@>=1.0.0 <2.0.0", @@ -1786,6 +2521,16 @@ "from": "is-path-inside@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz" }, + "is-posix-bracket": { + "version": "0.1.1", + "from": "is-posix-bracket@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz" + }, + "is-primitive": { + "version": "2.0.0", + "from": "is-primitive@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz" + }, "is-property": { "version": "1.0.2", "from": "is-property@>=1.0.0 <2.0.0", @@ -1826,6 +2571,11 @@ "from": "isexe@>=1.1.1 <2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz" }, + "isobject": { + "version": "2.1.0", + "from": "isobject@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" + }, "isstream": { "version": "0.1.2", "from": "isstream@>=0.1.2 <0.2.0", @@ -1976,9 +2726,9 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.0.3.tgz" }, "klaw": { - "version": "1.2.0", + "version": "1.3.0", "from": "klaw@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.2.0.tgz" + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.0.tgz" }, "lazy-cache": { "version": "1.0.4", @@ -2025,6 +2775,11 @@ "from": "lodash@>=4.2.0 <5.0.0", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.13.1.tgz" }, + "lodash._baseclone": { + "version": "4.5.7", + "from": "lodash._baseclone@>=4.5.0 <4.6.0", + "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz" + }, "lodash._baseiteratee": { "version": "4.7.0", "from": "lodash._baseiteratee@>=4.7.0 <4.8.0", @@ -2050,6 +2805,11 @@ "from": "lodash.assign@>=4.0.0 <5.0.0", "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.0.9.tgz" }, + "lodash.clonedeep": { + "version": "4.3.2", + "from": "lodash.clonedeep@>=4.3.2 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.3.2.tgz" + }, "lodash.keys": { "version": "4.0.7", "from": "lodash.keys@>=4.0.0 <5.0.0", @@ -2101,9 +2861,9 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.2.0.tgz" }, "loud-rejection": { - "version": "1.4.1", + "version": "1.5.0", "from": "loud-rejection@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.4.1.tgz" + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.5.0.tgz" }, "lru-cache": { "version": "2.7.3", @@ -2144,6 +2904,11 @@ } } }, + "micromatch": { + "version": "2.3.8", + "from": "micromatch@>=2.1.5 <3.0.0", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.8.tgz" + }, "mime": { "version": "1.3.4", "from": "mime@1.3.4", @@ -2156,13 +2921,13 @@ }, "mime-types": { "version": "2.1.11", - "from": "mime-types@>=2.1.9 <2.2.0", + "from": "mime-types@>=2.1.11 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz" }, "minimatch": { - "version": "3.0.0", + "version": "3.0.2", "from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz" + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.2.tgz" }, "minimist": { "version": "0.0.8", @@ -2179,11 +2944,6 @@ "from": "morgan@>=1.6.1 <2.0.0", "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.7.0.tgz" }, - "mq4-hover-shim": { - "version": "0.3.0", - "from": "mq4-hover-shim@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/mq4-hover-shim/-/mq4-hover-shim-0.3.0.tgz" - }, "ms": { "version": "0.7.1", "from": "ms@0.7.1", @@ -2215,9 +2975,14 @@ "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz" }, "negotiator": { - "version": "0.5.3", - "from": "negotiator@0.5.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz" + "version": "0.6.1", + "from": "negotiator@0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz" + }, + "neo-async": { + "version": "1.8.2", + "from": "neo-async@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-1.8.2.tgz" }, "node-gyp": { "version": "3.3.1", @@ -2254,9 +3019,26 @@ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" }, "node-sass": { - "version": "3.7.0", + "version": "3.8.0", "from": "node-sass@>=3.7.0 <4.0.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-3.7.0.tgz" + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-3.8.0.tgz", + "dependencies": { + "cross-spawn": { + "version": "3.0.1", + "from": "cross-spawn@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz" + }, + "lru-cache": { + "version": "4.0.1", + "from": "lru-cache@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz" + }, + "which": { + "version": "1.2.10", + "from": "which@>=1.2.9 <2.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.10.tgz" + } + } }, "node-uuid": { "version": "1.4.7", @@ -2335,6 +3117,11 @@ "from": "object-assign@>=4.0.1 <5.0.0", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz" }, + "object.omit": { + "version": "2.0.0", + "from": "object.omit@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.0.tgz" + }, "on-finished": { "version": "2.3.0", "from": "on-finished@>=2.3.0 <2.4.0", @@ -2386,9 +3173,9 @@ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.3.tgz" }, "output-file-sync": { - "version": "1.1.1", + "version": "1.1.2", "from": "output-file-sync@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.1.tgz" + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz" }, "package": { "version": "1.0.1", @@ -2400,6 +3187,11 @@ "from": "pako@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz" }, + "parse-glob": { + "version": "3.0.4", + "from": "parse-glob@>=3.0.4 <4.0.0", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz" + }, "parse-json": { "version": "2.2.0", "from": "parse-json@>=2.2.0 <3.0.0", @@ -2456,9 +3248,9 @@ "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.7.tgz", "dependencies": { "which": { - "version": "1.2.9", + "version": "1.2.10", "from": "which@>=1.2.2 <1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.9.tgz" + "resolved": "https://registry.npmjs.org/which/-/which-1.2.10.tgz" } } }, @@ -2477,6 +3269,11 @@ "from": "pinkie-promise@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" }, + "pkg-conf": { + "version": "1.1.3", + "from": "pkg-conf@>=1.1.2 <2.0.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-1.1.3.tgz" + }, "pkg-up": { "version": "1.0.0", "from": "pkg-up@>=1.0.0 <2.0.0", @@ -2514,6 +3311,48 @@ "from": "postcss@>=5.0.19 <6.0.0", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.0.21.tgz" }, + "postcss-cli": { + "version": "2.5.2", + "from": "postcss-cli@latest", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-2.5.2.tgz", + "dependencies": { + "camelcase": { + "version": "2.1.1", + "from": "camelcase@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" + }, + "cliui": { + "version": "3.2.0", + "from": "cliui@>=3.0.3 <4.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz" + }, + "glob": { + "version": "5.0.15", + "from": "glob@>=5.0.3 <6.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" + }, + "globby": { + "version": "3.0.1", + "from": "globby@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-3.0.1.tgz" + }, + "pinkie": { + "version": "1.0.0", + "from": "pinkie@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz" + }, + "pinkie-promise": { + "version": "1.0.0", + "from": "pinkie-promise@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz" + }, + "yargs": { + "version": "3.32.0", + "from": "yargs@>=3.32.0 <4.0.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz" + } + } + }, "postcss-flexbugs-fixes": { "version": "2.0.0", "from": "postcss-flexbugs-fixes@>=2.0.0 <3.0.0", @@ -2529,6 +3368,11 @@ "from": "prelude-ls@>=1.1.2 <1.2.0", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" }, + "preserve": { + "version": "0.2.0", + "from": "preserve@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz" + }, "pretty-bytes": { "version": "3.0.1", "from": "pretty-bytes@>=3.0.1 <4.0.0", @@ -2574,20 +3418,25 @@ "from": "qs@>=5.2.0 <5.3.0", "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" }, + "randomatic": { + "version": "1.1.5", + "from": "randomatic@>=1.1.3 <2.0.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.5.tgz" + }, "range-parser": { - "version": "1.0.3", - "from": "range-parser@>=1.0.3 <1.1.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz" + "version": "1.2.0", + "from": "range-parser@>=1.2.0 <1.3.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz" }, "raw-body": { - "version": "2.1.6", + "version": "2.1.7", "from": "raw-body@>=2.1.5 <2.2.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.6.tgz", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", "dependencies": { "bytes": { - "version": "2.3.0", - "from": "bytes@2.3.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz" + "version": "2.4.0", + "from": "bytes@2.4.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz" }, "iconv-lite": { "version": "0.4.13", @@ -2601,6 +3450,11 @@ "from": "read@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz" }, + "read-file-stdin": { + "version": "0.2.1", + "from": "read-file-stdin@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/read-file-stdin/-/read-file-stdin-0.2.1.tgz" + }, "read-json-sync": { "version": "1.1.1", "from": "read-json-sync@>=1.1.0 <2.0.0", @@ -2621,6 +3475,18 @@ "from": "readable-stream@>=2.0.0 <2.1.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" }, + "readdirp": { + "version": "2.0.0", + "from": "readdirp@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.0.0.tgz", + "dependencies": { + "minimatch": { + "version": "2.0.10", + "from": "minimatch@>=2.0.10 <3.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz" + } + } + }, "readline2": { "version": "1.0.1", "from": "readline2@>=1.0.1 <2.0.0", @@ -2670,6 +3536,11 @@ "from": "regenerator-runtime@>=0.9.5 <0.10.0", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.5.tgz" }, + "regex-cache": { + "version": "0.4.3", + "from": "regex-cache@>=0.4.2 <0.5.0", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz" + }, "regexpu": { "version": "1.3.0", "from": "regexpu@>=1.3.0 <2.0.0", @@ -2685,6 +3556,11 @@ "from": "regjsparser@>=0.1.4 <0.2.0", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz" }, + "repeat-element": { + "version": "1.1.2", + "from": "repeat-element@>=1.1.2 <2.0.0", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz" + }, "repeat-string": { "version": "1.5.4", "from": "repeat-string@>=1.5.2 <2.0.0", @@ -2841,6 +3717,11 @@ } } }, + "require-main-filename": { + "version": "1.0.1", + "from": "require-main-filename@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz" + }, "require-uncached": { "version": "1.0.2", "from": "require-uncached@>=1.0.2 <2.0.0", @@ -2904,14 +3785,29 @@ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz" }, "sass-graph": { - "version": "2.1.1", + "version": "2.1.2", "from": "sass-graph@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.1.2.tgz", "dependencies": { - "glob": { - "version": "6.0.4", - "from": "glob@>=6.0.4 <7.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz" + "camelcase": { + "version": "3.0.0", + "from": "camelcase@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz" + }, + "cliui": { + "version": "3.2.0", + "from": "cliui@>=3.2.0 <4.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz" + }, + "window-size": { + "version": "0.2.0", + "from": "window-size@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz" + }, + "yargs": { + "version": "4.7.1", + "from": "yargs@>=4.7.1 <5.0.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.7.1.tgz" } } }, @@ -3072,32 +3968,35 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz" }, "send": { - "version": "0.13.2", - "from": "send@0.13.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.13.2.tgz", - "dependencies": { - "statuses": { - "version": "1.2.1", - "from": "statuses@>=1.2.1 <1.3.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" - } - } + "version": "0.14.1", + "from": "send@0.14.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.14.1.tgz" }, "serve-index": { - "version": "1.7.3", + "version": "1.8.0", "from": "serve-index@>=1.7.1 <2.0.0", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.7.3.tgz" + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.8.0.tgz" }, "serve-static": { - "version": "1.10.3", + "version": "1.11.1", "from": "serve-static@>=1.10.0 <2.0.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.3.tgz" + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.11.1.tgz" + }, + "set-blocking": { + "version": "1.0.0", + "from": "set-blocking@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-1.0.0.tgz" }, "set-immediate-shim": { "version": "1.0.1", "from": "set-immediate-shim@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" }, + "setprototypeof": { + "version": "1.0.1", + "from": "setprototypeof@1.0.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.1.tgz" + }, "shebang-regex": { "version": "1.0.0", "from": "shebang-regex@>=1.0.0 <2.0.0", @@ -3114,9 +4013,9 @@ "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" }, "signal-exit": { - "version": "2.1.2", - "from": "signal-exit@>=2.1.2 <3.0.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-2.1.2.tgz" + "version": "3.0.0", + "from": "signal-exit@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.0.tgz" }, "simple-fmt": { "version": "0.1.0", @@ -3214,7 +4113,7 @@ }, "statuses": { "version": "1.3.0", - "from": "statuses@>=1.0.0 <2.0.0", + "from": "statuses@>=1.3.0 <2.0.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.0.tgz" }, "stream-buffers": { @@ -3272,6 +4171,11 @@ "from": "supports-color@>=3.1.2 <4.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz" }, + "symbol": { + "version": "0.2.3", + "from": "symbol@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/symbol/-/symbol-0.2.3.tgz" + }, "table": { "version": "3.7.8", "from": "table@>=3.7.8 <4.0.0", @@ -3410,9 +4314,9 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" }, "uglify-js": { - "version": "2.6.2", + "version": "2.6.3", "from": "uglify-js@>=2.6.2 <2.7.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.2.tgz", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.3.tgz", "dependencies": { "async": { "version": "0.2.10", @@ -3567,6 +4471,11 @@ "from": "wordwrap@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" }, + "wrap-ansi": { + "version": "2.0.0", + "from": "wrap-ansi@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.0.0.tgz" + }, "wrappy": { "version": "1.0.2", "from": "wrappy@>=1.0.0 <2.0.0", @@ -3614,6 +4523,18 @@ "from": "yargs@>=3.27.0 <3.28.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.27.0.tgz" }, + "yargs-parser": { + "version": "2.4.0", + "from": "yargs-parser@>=2.4.0 <3.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.0.tgz", + "dependencies": { + "camelcase": { + "version": "2.1.1", + "from": "camelcase@>=2.1.1 <3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" + } + } + }, "yauzl": { "version": "2.4.1", "from": "yauzl@2.4.1", diff --git a/grunt/postcss.js b/grunt/postcss.js new file mode 100644 index 0000000000..a6fc411ff1 --- /dev/null +++ b/grunt/postcss.js @@ -0,0 +1,42 @@ +module.exports = { + use: [ + 'postcss-flexbugs-fixes', + 'autoprefixer' + ], + map: { + inline: false, + annotation: true, + sourcesContent: true + }, + autoprefixer: { + browsers: [ + // + // Official browser support policy: + // http://v4-alpha.getbootstrap.com/getting-started/browsers-devices/#supported-browsers + // + 'Chrome >= 35', // Exact version number here is kinda arbitrary + // Rather than using Autoprefixer's native "Firefox ESR" version specifier string, + // we deliberately hardcode the number. This is to avoid unwittingly severely breaking the previous ESR in the event that: + // (a) we happen to ship a new Bootstrap release soon after the release of a new ESR, + // such that folks haven't yet had a reasonable amount of time to upgrade; and + // (b) the new ESR has unprefixed CSS properties/values whose absence would severely break webpages + // (e.g. `box-sizing`, as opposed to `background: linear-gradient(...)`). + // Since they've been unprefixed, Autoprefixer will stop prefixing them, + // thus causing them to not work in the previous ESR (where the prefixes were required). + 'Firefox >= 38', // Current Firefox Extended Support Release (ESR); https://www.mozilla.org/en-US/firefox/organizations/faq/ + // Note: Edge versions in Autoprefixer & Can I Use refer to the EdgeHTML rendering engine version, + // NOT the Edge app version shown in Edge's "About" screen. + // For example, at the time of writing, Edge 20 on an up-to-date system uses EdgeHTML 12. + // See also https://github.com/Fyrd/caniuse/issues/1928 + 'Edge >= 12', + 'Explorer >= 9', + // Out of leniency, we prefix these 1 version further back than the official policy. + 'iOS >= 8', + 'Safari >= 8', + // The following remain NOT officially supported, but we're lenient and include their prefixes to avoid severely breaking in them. + 'Android 2.3', + 'Android >= 4', + 'Opera >= 12' + ] + } +} diff --git a/package.json b/package.json index 87d5615dce..eebbb2eee5 100644 --- a/package.json +++ b/package.json @@ -13,12 +13,16 @@ ], "homepage": "http://getbootstrap.com", "author": "The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)", - "contributors": ["Twitter, Inc."], + "contributors": [ + "Twitter, Inc." + ], "scripts": { "change-version": "node grunt/change-version.js", "shrinkwrap": "npm shrinkwrap --dev && mv ./npm-shrinkwrap.json ./grunt/npm-shrinkwrap.json", "eslint": "eslint --config js/.eslintrc.json js/src", "jscs": "jscs --config=js/.jscsrc js/src js/tests/unit docs/assets/js/src docs/assets/js/ie*.js grunt Gruntfile.js", + "postcss": "postcss --config grunt/postcss.js --replace dist/css/*.css", + "postcss-docs": "postcss --config grunt/postcss.js --no-map --replace docs/assets/css/docs.min.css && postcss --config grunt/postcss.js --no-map --replace docs/examples/**/*.css", "test": "npm run eslint && npm run jscs && grunt test" }, "style": "dist/css/bootstrap.css", @@ -56,7 +60,6 @@ "grunt-exec": "^0.4.6", "grunt-html": "^7.0.0", "grunt-jekyll": "^0.4.2", - "grunt-postcss": "^0.8.0", "grunt-sass": "^1.0.0", "grunt-saucelabs": "^8.6.1", "grunt-scss-lint": "^0.3.8", @@ -64,7 +67,7 @@ "is-travis": "^1.0.0", "jscs": "^3.0.4", "load-grunt-tasks": "^3.4.0", - "mq4-hover-shim": "^0.3.0", + "postcss-cli": "^2.5.2", "postcss-flexbugs-fixes": "^2.0.0", "shelljs": "^0.7.0", "time-grunt": "^1.2.1" diff --git a/scss/mixins/_hover.scss b/scss/mixins/_hover.scss index 3a11254e84..4a648a54d3 100644 --- a/scss/mixins/_hover.scss +++ b/scss/mixins/_hover.scss @@ -1,14 +1,15 @@ @mixin hover { - @if $enable-hover-media-query { - // See Media Queries Level 4: http://drafts.csswg.org/mediaqueries/#hover - // Currently shimmed by https://github.com/twbs/mq4-hover-shim - @media (hover: hover) { - &:hover { @content } - } - } - @else { + // TODO: re-enable along with mq4-hover-shim +// @if $enable-hover-media-query { +// // See Media Queries Level 4: http://drafts.csswg.org/mediaqueries/#hover +// // Currently shimmed by https://github.com/twbs/mq4-hover-shim +// @media (hover: hover) { +// &:hover { @content } +// } +// } +// @else { &:hover { @content } - } +// } } @mixin hover-focus {