From b66e6ef15952134ae95cad2c953c9cf74119f488 Mon Sep 17 00:00:00 2001
From: Mat Brown
Date: Mon, 15 Aug 2016 14:19:47 -0400
Subject: [PATCH 1/4] Fix broken CSS test
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Wasn’t returning the promise, so failed without reporting failure
* Also was asserting the wrong thing
Nice.
---
spec/examples/validations/css.spec.js | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/spec/examples/validations/css.spec.js b/spec/examples/validations/css.spec.js
index aab3275184..0bf40b3954 100644
--- a/spec/examples/validations/css.spec.js
+++ b/spec/examples/validations/css.spec.js
@@ -47,9 +47,9 @@ describe('css', () => {
assertFailsValidationWith(css, stylesheet, 'missing-semicolon')
);
- it('fails at the line missing the semicolon', () => {
- assertFailsValidationAtLine(css, stylesheet, 1);
- });
+ it('fails at the line missing the semicolon', () =>
+ assertFailsValidationAtLine(css, stylesheet, 2)
+ );
});
context('extra tokens after value', () => {
From a98b9fb7babf5764415da04ee422e208fdc6d473 Mon Sep 17 00:00:00 2001
From: Mat Brown
Date: Mon, 15 Aug 2016 14:44:05 -0400
Subject: [PATCH 2/4] Update htmllint and add check-dependencies
---
npm-shrinkwrap.json | 1988 +++++++++++++++++++++++++++++++++++++------
package.json | 3 +-
2 files changed, 1717 insertions(+), 274 deletions(-)
diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json
index dc25e406d2..aaf55b8482 100644
--- a/npm-shrinkwrap.json
+++ b/npm-shrinkwrap.json
@@ -192,16 +192,66 @@
}
}
},
- "babel-generator": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.8.0.tgz",
+ "babel-core": {
+ "version": "6.13.2",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.13.2.tgz",
"dependencies": {
- "lodash": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz"
+ "babel-generator": {
+ "version": "6.11.4",
+ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.11.4.tgz"
+ },
+ "babel-register": {
+ "version": "6.11.6",
+ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.11.6.tgz",
+ "dependencies": {
+ "core-js": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz"
+ }
+ }
+ },
+ "babel-runtime": {
+ "version": "6.11.6",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.11.6.tgz",
+ "dependencies": {
+ "core-js": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz"
+ },
+ "regenerator-runtime": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.5.tgz"
+ }
+ }
+ },
+ "babel-template": {
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.9.0.tgz"
+ },
+ "babel-traverse": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.13.0.tgz"
+ },
+ "babel-types": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.13.0.tgz",
+ "dependencies": {
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"
+ }
+ }
+ },
+ "minimatch": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz"
}
}
},
+ "babel-eslint": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-6.1.2.tgz"
+ },
"babel-helper-builder-react-jsx": {
"version": "6.8.0",
"resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.8.0.tgz",
@@ -296,28 +346,10 @@
"version": "6.8.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.8.0.tgz"
},
- "babel-plugin-transform-es2015-block-scoping": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.8.0.tgz",
- "dependencies": {
- "lodash": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz"
- }
- }
- },
- "babel-plugin-transform-es2015-classes": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.8.0.tgz"
- },
"babel-plugin-transform-es2015-computed-properties": {
"version": "6.8.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.8.0.tgz"
},
- "babel-plugin-transform-es2015-destructuring": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.8.0.tgz"
- },
"babel-plugin-transform-es2015-duplicate-keys": {
"version": "6.8.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.8.0.tgz"
@@ -326,10 +358,6 @@
"version": "6.8.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.8.0.tgz"
},
- "babel-plugin-transform-es2015-function-name": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.8.0.tgz"
- },
"babel-plugin-transform-es2015-literals": {
"version": "6.8.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.8.0.tgz"
@@ -342,10 +370,6 @@
"version": "6.8.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.8.0.tgz"
},
- "babel-plugin-transform-es2015-parameters": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.8.0.tgz"
- },
"babel-plugin-transform-es2015-shorthand-properties": {
"version": "6.8.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.8.0.tgz"
@@ -386,29 +410,311 @@
"version": "6.8.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.8.0.tgz"
},
- "babel-plugin-transform-regenerator": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.8.0.tgz"
- },
"babel-plugin-transform-strict-mode": {
"version": "6.8.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.8.0.tgz"
},
- "babel-regenerator-runtime": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/babel-regenerator-runtime/-/babel-regenerator-runtime-6.5.0.tgz"
- },
- "babel-register": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.8.0.tgz",
+ "babel-polyfill": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.13.0.tgz",
"dependencies": {
+ "babel-runtime": {
+ "version": "6.11.6",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.11.6.tgz"
+ },
"core-js": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz"
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz"
},
- "lodash": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz"
+ "regenerator-runtime": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.5.tgz"
+ }
+ }
+ },
+ "babel-preset-es2015": {
+ "version": "6.13.2",
+ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.13.2.tgz",
+ "dependencies": {
+ "babel-plugin-transform-es2015-block-scoping": {
+ "version": "6.10.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.10.1.tgz",
+ "dependencies": {
+ "babel-runtime": {
+ "version": "6.11.6",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.11.6.tgz",
+ "dependencies": {
+ "core-js": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz"
+ },
+ "regenerator-runtime": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.5.tgz"
+ }
+ }
+ },
+ "babel-template": {
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.9.0.tgz"
+ },
+ "babel-traverse": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.13.0.tgz"
+ },
+ "babel-types": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.13.0.tgz",
+ "dependencies": {
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"
+ }
+ }
+ }
+ }
+ },
+ "babel-plugin-transform-es2015-classes": {
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.9.0.tgz",
+ "dependencies": {
+ "babel-helper-define-map": {
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.9.0.tgz"
+ },
+ "babel-runtime": {
+ "version": "6.11.6",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.11.6.tgz",
+ "dependencies": {
+ "core-js": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz"
+ },
+ "regenerator-runtime": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.5.tgz"
+ }
+ }
+ },
+ "babel-template": {
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.9.0.tgz"
+ },
+ "babel-traverse": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.13.0.tgz"
+ },
+ "babel-types": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.13.0.tgz",
+ "dependencies": {
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"
+ }
+ }
+ }
+ }
+ },
+ "babel-plugin-transform-es2015-destructuring": {
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.9.0.tgz",
+ "dependencies": {
+ "babel-runtime": {
+ "version": "6.11.6",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.11.6.tgz",
+ "dependencies": {
+ "core-js": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz"
+ },
+ "regenerator-runtime": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.5.tgz"
+ }
+ }
+ }
+ }
+ },
+ "babel-plugin-transform-es2015-function-name": {
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.9.0.tgz",
+ "dependencies": {
+ "babel-runtime": {
+ "version": "6.11.6",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.11.6.tgz",
+ "dependencies": {
+ "core-js": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz"
+ },
+ "regenerator-runtime": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.5.tgz"
+ }
+ }
+ },
+ "babel-types": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.13.0.tgz",
+ "dependencies": {
+ "babel-traverse": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.13.0.tgz"
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"
+ }
+ }
+ }
+ }
+ },
+ "babel-plugin-transform-es2015-modules-amd": {
+ "version": "6.8.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.8.0.tgz"
+ },
+ "babel-plugin-transform-es2015-modules-systemjs": {
+ "version": "6.12.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.12.0.tgz",
+ "dependencies": {
+ "babel-runtime": {
+ "version": "6.11.6",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.11.6.tgz",
+ "dependencies": {
+ "core-js": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz"
+ },
+ "regenerator-runtime": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.5.tgz"
+ }
+ }
+ },
+ "babel-template": {
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.9.0.tgz",
+ "dependencies": {
+ "babel-traverse": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.13.0.tgz"
+ },
+ "babel-types": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.13.0.tgz",
+ "dependencies": {
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "babel-plugin-transform-es2015-modules-umd": {
+ "version": "6.12.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.12.0.tgz"
+ },
+ "babel-plugin-transform-es2015-parameters": {
+ "version": "6.11.4",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.11.4.tgz",
+ "dependencies": {
+ "babel-runtime": {
+ "version": "6.11.6",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.11.6.tgz",
+ "dependencies": {
+ "core-js": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz"
+ },
+ "regenerator-runtime": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.5.tgz"
+ }
+ }
+ },
+ "babel-template": {
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.9.0.tgz"
+ },
+ "babel-traverse": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.13.0.tgz"
+ },
+ "babel-types": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.13.0.tgz",
+ "dependencies": {
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"
+ }
+ }
+ }
+ }
+ },
+ "babel-plugin-transform-regenerator": {
+ "version": "6.11.4",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.11.4.tgz",
+ "dependencies": {
+ "babel-runtime": {
+ "version": "6.11.6",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.11.6.tgz",
+ "dependencies": {
+ "core-js": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz"
+ },
+ "regenerator-runtime": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.5.tgz"
+ }
+ }
+ },
+ "babel-traverse": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.13.0.tgz"
+ },
+ "babel-types": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.13.0.tgz",
+ "dependencies": {
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "babel-preset-react": {
+ "version": "6.11.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.11.1.tgz",
+ "dependencies": {
+ "babel-plugin-transform-react-jsx-self": {
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.11.0.tgz",
+ "dependencies": {
+ "babel-runtime": {
+ "version": "6.11.6",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.11.6.tgz",
+ "dependencies": {
+ "core-js": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz"
+ },
+ "regenerator-runtime": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.5.tgz"
+ }
+ }
+ }
+ }
}
}
},
@@ -456,6 +762,10 @@
}
}
},
+ "babelify": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz"
+ },
"babylon": {
"version": "6.8.0",
"resolved": "https://registry.npmjs.org/babylon/-/babylon-6.8.0.tgz"
@@ -530,6 +840,10 @@
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz"
},
+ "bower": {
+ "version": "1.7.9",
+ "resolved": "https://registry.npmjs.org/bower/-/bower-1.7.9.tgz"
+ },
"bowser": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/bowser/-/bowser-1.4.1.tgz"
@@ -546,6 +860,10 @@
"version": "1.8.4",
"resolved": "https://registry.npmjs.org/braces/-/braces-1.8.4.tgz"
},
+ "brfs-babel": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/brfs-babel/-/brfs-babel-1.0.0.tgz"
+ },
"brorand": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/brorand/-/brorand-1.0.5.tgz"
@@ -558,14 +876,144 @@
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.1.tgz"
},
+ "browser-sync": {
+ "version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.14.0.tgz",
+ "dependencies": {
+ "browser-sync-ui": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-0.6.0.tgz"
+ },
+ "chokidar": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.5.1.tgz"
+ },
+ "eazy-logger": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.0.2.tgz"
+ },
+ "http-proxy": {
+ "version": "1.13.3",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.13.3.tgz"
+ },
+ "micromatch": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.8.tgz"
+ },
+ "qs": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz"
+ },
+ "resp-modifier": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz",
+ "dependencies": {
+ "minimatch": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz"
+ }
+ }
+ },
+ "rx": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz"
+ },
+ "serve-static": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.3.tgz",
+ "dependencies": {
+ "send": {
+ "version": "0.13.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.13.2.tgz",
+ "dependencies": {
+ "mime": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz"
+ }
+ }
+ }
+ }
+ },
+ "server-destroy": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz"
+ },
+ "socket.io": {
+ "version": "1.4.6",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.4.6.tgz",
+ "dependencies": {
+ "engine.io": {
+ "version": "1.6.9",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.6.9.tgz",
+ "dependencies": {
+ "accepts": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.1.4.tgz",
+ "dependencies": {
+ "mime-types": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz",
+ "dependencies": {
+ "mime-db": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz"
+ }
+ }
+ },
+ "negotiator": {
+ "version": "0.4.9",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.9.tgz"
+ }
+ }
+ }
+ }
+ },
+ "socket.io-client": {
+ "version": "1.4.6",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.4.6.tgz",
+ "dependencies": {
+ "component-emitter": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.0.tgz"
+ },
+ "engine.io-client": {
+ "version": "1.6.9",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.9.tgz",
+ "dependencies": {
+ "component-emitter": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "yargs": {
+ "version": "4.7.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.7.1.tgz",
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz"
+ },
+ "set-blocking": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-1.0.0.tgz"
+ },
+ "window-size": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz"
+ }
+ }
+ }
+ }
+ },
"browser-sync-client": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.4.2.tgz"
},
- "browser-sync-ui": {
- "version": "0.5.19",
- "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-0.5.19.tgz"
- },
"browserify": {
"version": "13.0.1",
"resolved": "https://registry.npmjs.org/browserify/-/browserify-13.0.1.tgz"
@@ -586,6 +1034,20 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz"
},
+ "browserify-incremental": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/browserify-incremental/-/browserify-incremental-3.1.1.tgz",
+ "dependencies": {
+ "JSONStream": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.10.0.tgz"
+ },
+ "jsonparse": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz"
+ }
+ }
+ },
"browserify-rsa": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz"
@@ -718,10 +1180,42 @@
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz"
},
+ "chai": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz"
+ },
+ "chai-as-promised": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-5.3.0.tgz"
+ },
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
},
+ "check-dependencies": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/check-dependencies/-/check-dependencies-0.12.0.tgz",
+ "dependencies": {
+ "bower-config": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/bower-config/-/bower-config-1.4.0.tgz",
+ "dependencies": {
+ "mout": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/mout/-/mout-1.0.0.tgz"
+ },
+ "osenv": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.3.tgz"
+ },
+ "untildify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/untildify/-/untildify-2.1.0.tgz"
+ }
+ }
+ }
+ }
+ },
"chokidar": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.4.3.tgz"
@@ -1034,16 +1528,6 @@
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz"
},
- "doctrine": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.2.1.tgz",
- "dependencies": {
- "esutils": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz"
- }
- }
- },
"dom-serializer": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
@@ -1088,10 +1572,6 @@
}
}
},
- "eazy-logger": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-2.1.3.tgz"
- },
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
@@ -1112,32 +1592,6 @@
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz"
},
- "engine.io": {
- "version": "1.6.8",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.6.8.tgz",
- "dependencies": {
- "accepts": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.1.4.tgz"
- },
- "mime-db": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz"
- },
- "mime-types": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz"
- },
- "negotiator": {
- "version": "0.4.9",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.9.tgz"
- }
- }
- },
- "engine.io-client": {
- "version": "1.6.8",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.8.tgz"
- },
"engine.io-parser": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.4.tgz",
@@ -1232,13 +1686,97 @@
}
}
},
- "espree": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/espree/-/espree-3.1.4.tgz",
+ "eslint": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-2.13.1.tgz",
"dependencies": {
- "acorn": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.1.0.tgz"
+ "doctrine": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.2.2.tgz",
+ "dependencies": {
+ "esutils": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz"
+ }
+ }
+ },
+ "espree": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-3.1.7.tgz",
+ "dependencies": {
+ "acorn": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz"
+ }
+ }
+ },
+ "estraverse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz"
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"
+ },
+ "glob": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz",
+ "dependencies": {
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
+ },
+ "minimatch": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz"
+ }
+ }
+ },
+ "globals": {
+ "version": "9.9.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.9.0.tgz"
+ },
+ "json-stable-stringify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"
+ },
+ "shelljs": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.6.1.tgz"
+ },
+ "user-home": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz"
+ }
+ }
+ },
+ "eslint-plugin-react": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-5.2.2.tgz",
+ "dependencies": {
+ "doctrine": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.2.2.tgz",
+ "dependencies": {
+ "esutils": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz"
+ }
+ }
+ },
+ "jsx-ast-utils": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.3.1.tgz"
+ }
+ }
+ },
+ "eslint_d": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/eslint_d/-/eslint_d-3.1.2.tgz",
+ "dependencies": {
+ "supports-color": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz"
}
}
},
@@ -1984,6 +2522,20 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz"
},
+ "git-rev-sync": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/git-rev-sync/-/git-rev-sync-1.6.0.tgz",
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz"
+ },
+ "shelljs": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.6.0.tgz"
+ }
+ }
+ },
"github-api": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/github-api/-/github-api-1.1.0.tgz",
@@ -2096,6 +2648,98 @@
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz"
},
+ "gulp": {
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz",
+ "dependencies": {
+ "semver": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz"
+ }
+ }
+ },
+ "gulp-concat": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.0.tgz",
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz"
+ },
+ "through2": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz"
+ }
+ }
+ },
+ "gulp-cssnano": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/gulp-cssnano/-/gulp-cssnano-2.1.2.tgz"
+ },
+ "gulp-postcss": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/gulp-postcss/-/gulp-postcss-6.1.1.tgz"
+ },
+ "gulp-sourcemaps": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz",
+ "dependencies": {
+ "vinyl": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.1.1.tgz"
+ }
+ }
+ },
+ "gulp-uglify": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-1.5.4.tgz",
+ "dependencies": {
+ "uglify-js": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz",
+ "dependencies": {
+ "async": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "dependencies": {
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "dependencies": {
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz"
+ }
+ }
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "gulp-util": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.7.tgz",
+ "dependencies": {
+ "object-assign": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz"
+ }
+ }
+ },
"gulplog": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz"
@@ -2179,8 +2823,26 @@
"resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz"
},
"htmllint": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/htmllint/-/htmllint-0.3.0.tgz"
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/htmllint/-/htmllint-0.4.0.tgz",
+ "dependencies": {
+ "bulk-require": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/bulk-require/-/bulk-require-1.0.0.tgz",
+ "dependencies": {
+ "glob": {
+ "version": "3.2.11",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
+ "dependencies": {
+ "minimatch": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz"
+ }
+ }
+ }
+ }
+ }
+ }
},
"htmlparser2": {
"version": "3.9.0",
@@ -2232,6 +2894,10 @@
"version": "3.8.1",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.1.tgz"
},
+ "immutable-devtools": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/immutable-devtools/-/immutable-devtools-0.0.7.tgz"
+ },
"imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
@@ -2334,10 +3000,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz"
},
- "is-integer": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.6.tgz"
- },
"is-my-json-valid": {
"version": "2.13.1",
"resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz"
@@ -2436,85 +3098,399 @@
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz"
},
- "jshint": {
- "version": "2.9.2",
- "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.2.tgz",
+ "jshint": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.2.tgz",
+ "dependencies": {
+ "entities": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz"
+ },
+ "htmlparser2": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz"
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
+ },
+ "lodash": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz"
+ },
+ "minimatch": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz"
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz"
+ }
+ }
+ },
+ "json-diff": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-diff/-/json-diff-0.3.1.tgz"
+ },
+ "json-stable-stringify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz"
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
+ },
+ "json3": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/json3/-/json3-3.2.6.tgz"
+ },
+ "json5": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz"
+ },
+ "jsonfile": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.3.0.tgz"
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
+ },
+ "jsonparse": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.2.0.tgz"
+ },
+ "jsonpointer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz"
+ },
+ "jstransform": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz",
+ "dependencies": {
+ "esprima-fb": {
+ "version": "13001.1001.0-dev-harmony-fb",
+ "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz"
+ },
+ "source-map": {
+ "version": "0.1.31",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz"
+ }
+ }
+ },
+ "karma": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/karma/-/karma-1.2.0.tgz",
+ "dependencies": {
+ "body-parser": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.15.2.tgz",
+ "dependencies": {
+ "bytes": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz"
+ },
+ "content-type": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz"
+ },
+ "http-errors": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.0.tgz",
+ "dependencies": {
+ "setprototypeof": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.1.tgz"
+ },
+ "statuses": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.0.tgz"
+ }
+ }
+ },
+ "qs": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz"
+ },
+ "raw-body": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz"
+ },
+ "type-is": {
+ "version": "1.6.13",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.13.tgz",
+ "dependencies": {
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
+ }
+ }
+ }
+ }
+ },
+ "combine-lists": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.0.tgz",
+ "dependencies": {
+ "lodash": {
+ "version": "4.15.0",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.15.0.tgz"
+ }
+ }
+ },
+ "core-js": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz"
+ },
+ "di": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz"
+ },
+ "dom-serialize": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
+ "dependencies": {
+ "custom-event": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.0.tgz"
+ },
+ "ent": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz"
+ },
+ "void-elements": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz"
+ }
+ }
+ },
+ "expand-braces": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz",
+ "dependencies": {
+ "array-slice": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz"
+ },
+ "braces": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz",
+ "dependencies": {
+ "expand-range": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz",
+ "dependencies": {
+ "is-number": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz"
+ },
+ "repeat-string": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "glob": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz",
+ "dependencies": {
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
+ },
+ "minimatch": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz"
+ }
+ }
+ },
+ "isbinaryfile": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.1.tgz"
+ },
+ "lodash": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz"
+ },
+ "log4js": {
+ "version": "0.6.38",
+ "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz",
+ "dependencies": {
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
+ }
+ }
+ },
+ "semver": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz"
+ }
+ }
+ },
+ "mime": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz"
+ },
+ "qjobs": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.4.tgz"
+ },
+ "socket.io": {
+ "version": "1.4.7",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.4.7.tgz",
+ "dependencies": {
+ "engine.io": {
+ "version": "1.6.10",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.6.10.tgz",
+ "dependencies": {
+ "accepts": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.1.4.tgz",
+ "dependencies": {
+ "mime-types": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz",
+ "dependencies": {
+ "mime-db": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz"
+ }
+ }
+ },
+ "negotiator": {
+ "version": "0.4.9",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.9.tgz"
+ }
+ }
+ }
+ }
+ },
+ "socket.io-client": {
+ "version": "1.4.6",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.4.6.tgz",
+ "dependencies": {
+ "component-emitter": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.0.tgz"
+ },
+ "engine.io-client": {
+ "version": "1.6.9",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.9.tgz",
+ "dependencies": {
+ "component-emitter": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "tmp": {
+ "version": "0.0.28",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.28.tgz"
+ },
+ "useragent": {
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.1.9.tgz",
+ "dependencies": {
+ "lru-cache": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz"
+ }
+ }
+ }
+ }
+ },
+ "karma-browserify": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/karma-browserify/-/karma-browserify-5.1.0.tgz",
"dependencies": {
- "entities": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz"
- },
- "htmlparser2": {
- "version": "3.8.3",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz"
+ "hat": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz"
},
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
+ "js-string-escape": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz"
},
"lodash": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz"
- },
- "minimatch": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz"
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz"
},
- "readable-stream": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz"
+ "os-shim": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz"
}
}
},
- "json-diff": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/json-diff/-/json-diff-0.3.1.tgz"
- },
- "json-stable-stringify": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz"
+ "karma-chai": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/karma-chai/-/karma-chai-0.1.0.tgz"
},
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
+ "karma-chai-as-promised": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/karma-chai-as-promised/-/karma-chai-as-promised-0.1.2.tgz"
},
- "json3": {
- "version": "3.2.6",
- "resolved": "https://registry.npmjs.org/json3/-/json3-3.2.6.tgz"
+ "karma-chrome-launcher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-1.0.1.tgz",
+ "dependencies": {
+ "fs-access": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.0.tgz",
+ "dependencies": {
+ "null-check": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz"
+ }
+ }
+ },
+ "which": {
+ "version": "1.2.10",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.2.10.tgz",
+ "dependencies": {
+ "isexe": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz"
+ }
+ }
+ }
+ }
},
- "json5": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz"
+ "karma-firefox-launcher": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.0.0.tgz"
},
- "jsonfile": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.3.0.tgz"
+ "karma-mocha": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-1.1.1.tgz"
},
- "jsonify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
+ "karma-mocha-reporter": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/karma-mocha-reporter/-/karma-mocha-reporter-2.1.0.tgz"
},
- "jsonparse": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.2.0.tgz"
+ "karma-phantomjs-launcher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.1.tgz"
},
- "jsonpointer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz"
+ "karma-safari-launcher": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/karma-safari-launcher/-/karma-safari-launcher-1.0.0.tgz"
},
- "jstransform": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz",
- "dependencies": {
- "esprima-fb": {
- "version": "13001.1001.0-dev-harmony-fb",
- "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz"
- },
- "source-map": {
- "version": "0.1.31",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz"
- }
- }
+ "karma-sinon-chai": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/karma-sinon-chai/-/karma-sinon-chai-1.2.3.tgz"
},
"keymirror": {
"version": "0.1.1",
@@ -2590,10 +3566,6 @@
"version": "4.11.2",
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.11.2.tgz"
},
- "lodash._baseclone": {
- "version": "4.5.6",
- "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-4.5.6.tgz"
- },
"lodash._basecopy": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz"
@@ -2642,10 +3614,6 @@
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.0.8.tgz"
},
- "lodash.clonedeep": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.3.1.tgz"
- },
"lodash.escape": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz"
@@ -2775,6 +3743,38 @@
}
}
},
+ "mocha": {
+ "version": "2.4.5",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.4.5.tgz",
+ "dependencies": {
+ "commander": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz"
+ },
+ "escape-string-regexp": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz"
+ },
+ "glob": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz",
+ "dependencies": {
+ "graceful-fs": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz"
+ },
+ "minimatch": {
+ "version": "0.2.14",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz"
+ }
+ }
+ },
+ "supports-color": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz"
+ }
+ }
+ },
"module-deps": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.0.5.tgz"
@@ -3883,6 +4883,16 @@
}
}
},
+ "npm-shrinkwrap": {
+ "version": "200.5.1",
+ "resolved": "https://registry.npmjs.org/npm-shrinkwrap/-/npm-shrinkwrap-200.5.1.tgz",
+ "dependencies": {
+ "semver": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz"
+ }
+ }
+ },
"num2fraction": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz"
@@ -3939,16 +4949,6 @@
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/opn/-/opn-3.0.3.tgz"
},
- "opt-merger": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/opt-merger/-/opt-merger-1.1.1.tgz",
- "dependencies": {
- "lodash": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz"
- }
- }
- },
"optimist": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
@@ -4065,6 +5065,188 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.4.tgz"
},
+ "phantomjs-prebuilt": {
+ "version": "2.1.12",
+ "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.12.tgz",
+ "dependencies": {
+ "es6-promise": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz"
+ },
+ "extract-zip": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz",
+ "dependencies": {
+ "concat-stream": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz",
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz"
+ }
+ }
+ },
+ "debug": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz"
+ },
+ "mkdirp": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ }
+ }
+ },
+ "yauzl": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
+ "dependencies": {
+ "fd-slicer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
+ "dependencies": {
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "fs-extra": {
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz"
+ },
+ "hasha": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz"
+ },
+ "kew": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz"
+ },
+ "request": {
+ "version": "2.74.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.74.0.tgz",
+ "dependencies": {
+ "aws4": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.4.1.tgz"
+ },
+ "bl": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz",
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz"
+ }
+ }
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "dependencies": {
+ "assert-plus": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz"
+ },
+ "jsprim": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.0.tgz",
+ "dependencies": {
+ "extsprintf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz"
+ },
+ "json-schema": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz"
+ },
+ "verror": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz"
+ }
+ }
+ },
+ "sshpk": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.9.2.tgz",
+ "dependencies": {
+ "asn1": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz"
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+ },
+ "dashdash": {
+ "version": "1.14.0",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.0.tgz"
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz"
+ },
+ "getpass": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz"
+ },
+ "jodid25519": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz"
+ },
+ "jsbn": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz"
+ },
+ "tweetnacl": {
+ "version": "0.13.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.3.tgz"
+ }
+ }
+ }
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
+ },
+ "tough-cookie": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.1.tgz"
+ }
+ }
+ },
+ "request-progress": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
+ "dependencies": {
+ "throttleit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz"
+ }
+ }
+ },
+ "which": {
+ "version": "1.2.10",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.2.10.tgz",
+ "dependencies": {
+ "isexe": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz"
+ }
+ }
+ }
+ }
+ },
"pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
@@ -4095,6 +5277,16 @@
}
}
},
+ "postcss": {
+ "version": "5.0.21",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.0.21.tgz",
+ "dependencies": {
+ "supports-color": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz"
+ }
+ }
+ },
"postcss-calc": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.2.1.tgz"
@@ -4107,6 +5299,272 @@
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.3.4.tgz"
},
+ "postcss-cssnext": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/postcss-cssnext/-/postcss-cssnext-2.7.0.tgz",
+ "dependencies": {
+ "caniuse-api": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.5.0.tgz",
+ "dependencies": {
+ "lodash.memoize": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.0.tgz"
+ },
+ "lodash.uniq": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.3.0.tgz",
+ "dependencies": {
+ "lodash._baseuniq": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz",
+ "dependencies": {
+ "lodash._createset": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz"
+ }
+ }
+ }
+ }
+ },
+ "shelljs": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.0.tgz",
+ "dependencies": {
+ "glob": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz",
+ "dependencies": {
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
+ },
+ "minimatch": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.2.tgz"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "pixrem": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/pixrem/-/pixrem-3.0.1.tgz"
+ },
+ "pleeease-filters": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pleeease-filters/-/pleeease-filters-3.0.0.tgz",
+ "dependencies": {
+ "onecolor": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/onecolor/-/onecolor-2.4.2.tgz"
+ }
+ }
+ },
+ "postcss-apply": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/postcss-apply/-/postcss-apply-0.3.0.tgz"
+ },
+ "postcss-color-function": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-color-function/-/postcss-color-function-2.0.1.tgz",
+ "dependencies": {
+ "css-color-function": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/css-color-function/-/css-color-function-1.3.0.tgz",
+ "dependencies": {
+ "balanced-match": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz"
+ },
+ "debug": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz"
+ },
+ "rgb": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/rgb/-/rgb-0.1.0.tgz"
+ }
+ }
+ }
+ }
+ },
+ "postcss-color-gray": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-3.0.0.tgz",
+ "dependencies": {
+ "color": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-0.7.3.tgz",
+ "dependencies": {
+ "color-string": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.2.4.tgz",
+ "dependencies": {
+ "color-name": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.0.1.tgz"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "postcss-color-hex-alpha": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-2.0.0.tgz",
+ "dependencies": {
+ "color": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/color/-/color-0.10.1.tgz"
+ }
+ }
+ },
+ "postcss-color-hwb": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-color-hwb/-/postcss-color-hwb-2.0.0.tgz",
+ "dependencies": {
+ "color": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/color/-/color-0.10.1.tgz"
+ }
+ }
+ },
+ "postcss-color-rebeccapurple": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-2.0.0.tgz",
+ "dependencies": {
+ "color": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/color/-/color-0.9.0.tgz"
+ }
+ }
+ },
+ "postcss-color-rgba-fallback": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-color-rgba-fallback/-/postcss-color-rgba-fallback-2.2.0.tgz",
+ "dependencies": {
+ "rgb-hex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rgb-hex/-/rgb-hex-1.0.0.tgz"
+ }
+ }
+ },
+ "postcss-custom-media": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-5.0.1.tgz"
+ },
+ "postcss-custom-properties": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-5.0.1.tgz",
+ "dependencies": {
+ "balanced-match": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz"
+ }
+ }
+ },
+ "postcss-custom-selectors": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-3.0.0.tgz",
+ "dependencies": {
+ "balanced-match": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz"
+ }
+ }
+ },
+ "postcss-font-variant": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-2.0.0.tgz"
+ },
+ "postcss-initial": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-1.5.1.tgz",
+ "dependencies": {
+ "lodash.template": {
+ "version": "4.2.5",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.2.5.tgz",
+ "dependencies": {
+ "lodash.assigninwith": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/lodash.assigninwith/-/lodash.assigninwith-4.0.7.tgz"
+ },
+ "lodash.templatesettings": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.0.1.tgz",
+ "dependencies": {
+ "lodash.escape": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.0.tgz"
+ }
+ }
+ },
+ "lodash.tostring": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.3.tgz"
+ }
+ }
+ }
+ }
+ },
+ "postcss-media-minmax": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-2.1.2.tgz"
+ },
+ "postcss-nesting": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-2.3.1.tgz"
+ },
+ "postcss-pseudo-class-any-link": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-1.0.0.tgz",
+ "dependencies": {
+ "postcss-selector-parser": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-1.3.3.tgz",
+ "dependencies": {
+ "flatten": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz"
+ }
+ }
+ }
+ }
+ },
+ "postcss-pseudoelements": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-pseudoelements/-/postcss-pseudoelements-3.0.0.tgz"
+ },
+ "postcss-replace-overflow-wrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-1.0.0.tgz"
+ },
+ "postcss-selector-matches": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-2.0.1.tgz",
+ "dependencies": {
+ "balanced-match": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz"
+ }
+ }
+ },
+ "postcss-selector-not": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-2.0.0.tgz",
+ "dependencies": {
+ "balanced-match": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz"
+ }
+ }
+ }
+ }
+ },
"postcss-discard-comments": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz"
@@ -4260,8 +5718,8 @@
"resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz"
},
"qs": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.1.0.tgz"
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.1.tgz"
},
"query-string": {
"version": "4.1.0",
@@ -4501,16 +5959,6 @@
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz"
},
- "resp-modifier": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.0.tgz",
- "dependencies": {
- "minimatch": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz"
- }
- }
- },
"restore-cursor": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz"
@@ -4561,16 +6009,6 @@
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz"
},
- "send": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/send/-/send-0.13.1.tgz",
- "dependencies": {
- "mime": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz"
- }
- }
- },
"sequencify": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz"
@@ -4579,10 +6017,6 @@
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.7.3.tgz"
},
- "serve-static": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.2.tgz"
- },
"sha.js": {
"version": "2.4.5",
"resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.5.tgz"
@@ -4615,6 +6049,28 @@
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-2.1.2.tgz"
},
+ "sinon": {
+ "version": "1.17.5",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.5.tgz",
+ "dependencies": {
+ "formatio": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz"
+ },
+ "lolex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz"
+ },
+ "samsam": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz"
+ }
+ }
+ },
+ "sinon-chai": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-2.8.0.tgz"
+ },
"slash": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz"
@@ -4631,10 +6087,6 @@
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz"
},
- "socket.io": {
- "version": "1.4.5",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.4.5.tgz"
- },
"socket.io-adapter": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.4.0.tgz",
@@ -4655,16 +6107,6 @@
}
}
},
- "socket.io-client": {
- "version": "1.4.5",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.4.5.tgz",
- "dependencies": {
- "component-emitter": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.0.tgz"
- }
- }
- },
"socket.io-parser": {
"version": "2.2.6",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.6.tgz",
@@ -4953,10 +6395,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz"
},
- "trim-right": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz"
- },
"try-call": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/try-call/-/try-call-0.0.2.tgz"
@@ -4993,36 +6431,6 @@
"version": "0.7.10",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.10.tgz"
},
- "ucfirst": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/ucfirst/-/ucfirst-1.0.0.tgz"
- },
- "uglify-js": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.2.tgz",
- "dependencies": {
- "async": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
- },
- "cliui": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz"
- },
- "window-size": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz"
- },
- "wordwrap": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz"
- },
- "yargs": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz"
- }
- }
- },
"uglify-save-license": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/uglify-save-license/-/uglify-save-license-0.4.1.tgz"
@@ -5113,6 +6521,28 @@
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz"
},
+ "vinyl-buffer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/vinyl-buffer/-/vinyl-buffer-1.0.0.tgz",
+ "dependencies": {
+ "bl": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz"
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz"
+ },
+ "through2": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz"
+ }
+ }
+ },
"vinyl-fs": {
"version": "0.3.14",
"resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz",
@@ -5147,6 +6577,32 @@
}
}
},
+ "vinyl-source-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-1.1.0.tgz",
+ "dependencies": {
+ "clone": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz"
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz"
+ },
+ "through2": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz"
+ },
+ "vinyl": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz"
+ }
+ }
+ },
"vinyl-sourcemaps-apply": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz"
@@ -5225,20 +6681,6 @@
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz"
},
- "yargs": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.4.0.tgz",
- "dependencies": {
- "camelcase": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz"
- },
- "window-size": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz"
- }
- }
- },
"yargs-parser": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.0.tgz",
diff --git a/package.json b/package.json
index 085caa6d67..9c8a2b5b69 100644
--- a/package.json
+++ b/package.json
@@ -42,7 +42,7 @@
"esprima": "^2.7.2",
"firebase": "^2.4.1",
"github-api": "^1.1.0",
- "htmllint": "^0.3.0",
+ "htmllint": "^0.4.0",
"i18next-client": "^1.10.2",
"immutable": "^3.7.5",
"jshint": "^2.9.1",
@@ -85,6 +85,7 @@
"browserify-incremental": "^3.0.1",
"chai": "^3.5.0",
"chai-as-promised": "^5.3.0",
+ "check-dependencies": "^0.12.0",
"eslint": "^2.1.0",
"eslint-plugin-react": "^5.0.1",
"eslint_d": "^3.1.0",
From deb21de634d2a9dd5b94a5edd7ee05af830275be Mon Sep 17 00:00:00 2001
From: Mat Brown
Date: Mon, 15 Aug 2016 13:39:24 -0400
Subject: [PATCH 3/4] Improved handling of tag closing errors
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Problems with closing HTML tags can look like a variety of things to
our HTML linters and parsers. More confusingly, these things can
overlap.
This pull improves detection of unclosed tags by handling `htmllint`’s
`tag-close` error, and uses suppression to avoid confusing, overlapping
error messages.
Problem 1: Close tag is missing
```html
My Page
Page content
```
This error seems straightforward: there is an opening `
` tag that
doesn’t have a corresponding closing tag. However, it can also be
interpreted as a *mismatched* close tag: namely, you’re trying to close
the `
` with a `
Page content
`.
Intuitively, we want to report the first error, and now we do.
Problem 2: Mismatched opening and closing tags
```html