diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..b842047
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,14 @@
+root = true
+
+[*]
+end_of_line = lf
+insert_final_newline = true
+indent_style = space
+indent_size = 4
+
+[*.md]
+trim_trailing_whitespace = false
+
+[{.travis.yml}]
+indent_style = space
+indent_size = 2
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000..f166136
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,3 @@
+/node_modules
+/libs
+/demoassets
diff --git a/.eslintrc b/.eslintrc
new file mode 100644
index 0000000..d238482
--- /dev/null
+++ b/.eslintrc
@@ -0,0 +1,27 @@
+{
+ "extends": [
+ "eslint-config-es5",
+ "plugin:prettier/recommended"
+ ],
+ "parserOptions": {
+ "ecmaVersion": 2017,
+ "sourceType": "module"
+ },
+ "rules": {
+ "prettier/prettier": [
+ "error",
+ {
+ "singleQuote": true,
+ "tabWidth": "4"
+ }
+ ],
+ "no-console": "off",
+ "no-use-before-define": ["warn", { "functions": false, "classes": false, "variables": true }],
+ "func-names": ["warn", "as-needed"]
+
+ },
+ "env": {
+ "amd": true,
+ "es6": true
+ }
+}
diff --git a/chai-tests/main_spec.js b/chai-tests/main_spec.js
index d5eeb64..8241e89 100644
--- a/chai-tests/main_spec.js
+++ b/chai-tests/main_spec.js
@@ -1,103 +1,108 @@
-var expect = chai.expect;
+/* eslint-env es6, chai*/
+/* global chai, resemble */
-var people_src =
- 'data:image/jpeg;base64,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';
-var people2_src =
- 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/4TIraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MCA2MS4xMzQ3NzcsIDIwMTAvMDIvMTItMTc6MzI6MDAgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgRmlyZXdvcmtzIENTNSAxMS4wLjAuNDg0IFdpbmRvd3M8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTItMDktMjVUMDk6MTY6MDdaPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDMtMjVUMTY6NDE6MTBaPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvanBlZzwvZGM6Zm9ybWF0PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg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';
+const expect = chai.expect;
-function request_success() {
- return new Promise(function(resolve, reject) {
- resemble('../demoassets/People.jpg')
- .compareTo('../demoassets/People2.jpg')
- .onComplete(function(data) {
- console.info('Reached oncomplete for request_success');
- expect(data.diffBounds).to.have.all.keys(
- 'bottom',
- 'left',
- 'top',
- 'right'
- );
- expect(data.diffBounds.bottom).to.equal(431);
- expect(data.diffBounds.left).to.equal(22);
- expect(data.diffBounds.right).to.equal(450);
- expect(data.diffBounds.top).to.equal(58);
- expect(data.dimensionDifference.height).to.equal(0);
- expect(data.dimensionDifference.width).to.equal(0);
- expect(data.isSameDimensions).to.be.true;
- expect(data.misMatchPercentage).to.include('8.6');
- resolve();
- });
- });
-}
+const peopleSrc =
+ "data:image/jpeg;base64,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";
+const people2Src =
+ "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/4TIraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MCA2MS4xMzQ3NzcsIDIwMTAvMDIvMTItMTc6MzI6MDAgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgRmlyZXdvcmtzIENTNSAxMS4wLjAuNDg0IFdpbmRvd3M8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTItMDktMjVUMDk6MTY6MDdaPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDMtMjVUMTY6NDE6MTBaPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvanBlZzwvZGM6Zm9ybWF0PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg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";
-function base64_string() {
- return new Promise(function(resolve, reject) {
- resemble(people_src).compareTo(people2_src).onComplete(function(data) {
- console.info('Reached oncomplete for base64_string');
- expect(data.diffBounds.bottom).to.equal(431);
- expect(data.diffBounds.left).to.equal(22);
- expect(data.diffBounds.right).to.equal(450);
- expect(data.diffBounds.top).to.equal(58);
- expect(data.dimensionDifference.height).to.equal(0);
- expect(data.dimensionDifference.width).to.equal(0);
- expect(data.isSameDimensions).to.be.true;
- expect(data.misMatchPercentage).to.include('8.6');
- resolve();
+function requestSuccess() {
+ return new Promise(resolve => {
+ resemble("../demoassets/People.jpg")
+ .compareTo("../demoassets/People2.jpg")
+ .onComplete(data => {
+ console.info("Reached oncomplete for requestSuccess");
+ expect(data.diffBounds).to.have.all.keys(
+ "bottom",
+ "left",
+ "top",
+ "right"
+ );
+ expect(data.diffBounds.bottom).to.equal(431);
+ expect(data.diffBounds.left).to.equal(22);
+ expect(data.diffBounds.right).to.equal(450);
+ expect(data.diffBounds.top).to.equal(58);
+ expect(data.dimensionDifference.height).to.equal(0);
+ expect(data.dimensionDifference.width).to.equal(0);
+ expect(data.isSameDimensions).to.be.true;
+ expect(data.misMatchPercentage).to.include("8.6");
+ resolve();
+ });
});
- });
}
-function request_404() {
- return new Promise(function(resolve, reject) {
- resemble('../demoassets/People.jpg')
- .compareTo('../demoassets/404-image.jpg')
- .onComplete(function(data) {
- console.info('Reached oncomplete for request_404');
- expect(data).to.deep.equal({ error: '[object Event]' });
- resolve();
- });
- });
+function base64String() {
+ return new Promise(resolve => {
+ resemble(peopleSrc)
+ .compareTo(people2Src)
+ .onComplete(data => {
+ console.info("Reached oncomplete for base64String");
+ expect(data.diffBounds.bottom).to.equal(431);
+ expect(data.diffBounds.left).to.equal(22);
+ expect(data.diffBounds.right).to.equal(450);
+ expect(data.diffBounds.top).to.equal(58);
+ expect(data.dimensionDifference.height).to.equal(0);
+ expect(data.dimensionDifference.width).to.equal(0);
+ expect(data.isSameDimensions).to.be.true;
+ expect(data.misMatchPercentage).to.include("8.6");
+ resolve();
+ });
+ });
}
-function request_cors() {
- return new Promise(function(resolve, reject) {
- resemble('../demoassets/People.jpg')
- .compareTo(
- 'https://www.google.ca/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png'
- )
- .onComplete(function(data) {
- console.info('Reached oncomplete for request_cors');
- expect(data).to.deep.equal({ error: 'Image load error.' });
- resolve();
- });
- });
+function request404() {
+ return new Promise(resolve => {
+ resemble("../demoassets/People.jpg")
+ .compareTo("../demoassets/404-image.jpg")
+ .onComplete(data => {
+ console.info("Reached oncomplete for request404");
+ expect(data).to.deep.equal({ error: "[object Event]" });
+ resolve();
+ });
+ });
}
-request_success()
- .then(function() {
- console.info('Test 1 complete.');
- })
- .then(request_404)
- .then(function() {
- console.info('Test 2 complete.');
- })
- .then(request_success)
- .then(function() {
- console.info('Test 3 complete.');
- })
- .then(request_404)
- .then(function() {
- console.info('Test 4 complete.');
- })
- .then(base64_string)
- .then(function() {
- console.info('Test 5 complete.');
- })
- // Not going to bother fixing this test
- // .then(request_cors)
- // .then(function() {
- // console.info('Test 6 complete.');
- // })
- .then(function() {
- console.info('All tests completed.');
- });
+// function requestCors() {
+// return new Promise(resolve => {
+// resemble('../demoassets/People.jpg')
+// .compareTo(
+// 'https://www.google.ca/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png'
+// )
+// .onComplete(data => {
+// console.info('Reached oncomplete for requestCors');
+// expect(data).to.deep.equal({ error: 'Image load error.' });
+// resolve();
+// });
+// });
+// }
+
+requestSuccess()
+ .then(() => {
+ console.info("Test 1 complete.");
+ })
+ .then(request404)
+ .then(() => {
+ console.info("Test 2 complete.");
+ })
+ .then(requestSuccess)
+ .then(() => {
+ console.info("Test 3 complete.");
+ })
+ .then(request404)
+ .then(() => {
+ console.info("Test 4 complete.");
+ })
+ .then(base64String)
+ .then(() => {
+ console.info("Test 5 complete.");
+ })
+ // Not going to bother fixing this test
+ // .then(requestCors)
+ // .then(function() {
+ // console.info('Test 6 complete.');
+ // })
+ .then(() => {
+ console.info("All tests completed.");
+ });
diff --git a/compareImages.js b/compareImages.js
index 508fc36..28408b9 100644
--- a/compareImages.js
+++ b/compareImages.js
@@ -1,13 +1,13 @@
-var resemble = require('./resemble');
+const resemble = require("./resemble");
-module.exports = function(image1, image2, options) {
- return new Promise(function(resolve, reject) {
- resemble.compare(image1, image2, options, function(err, data) {
- if (err) {
- reject(err);
- } else {
- resolve(data);
- }
+module.exports = function compareImages(image1, image2, options) {
+ return new Promise((resolve, reject) => {
+ resemble.compare(image1, image2, options, (err, data) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(data);
+ }
+ });
});
- });
};
diff --git a/demoassets/main.js b/demoassets/main.js
index 0458c94..c95ed81 100644
--- a/demoassets/main.js
+++ b/demoassets/main.js
@@ -1,301 +1,303 @@
-$(function(){
- var $target = $('#drop-zone');
-
- function dropZone($target, onDrop){
- $target.
- bind('dragover', function(){
- $target.addClass( 'drag-over' );
- return false;
- }).
- bind("dragend", function () {
- $target.removeClass( 'drag-over' );
- return false;
- }).
- bind("dragleave", function () {
- $target.removeClass( 'drag-over' );
- return false;
- }).
- bind("drop", function(event) {
- var file = event.originalEvent.dataTransfer.files[0];
-
- event.stopPropagation();
- event.preventDefault();
-
- $target.removeClass( 'drag-over' );
-
- var droppedImage = new Image();
- var fileReader = new FileReader();
-
- fileReader.onload = function (event) {
- droppedImage.src = event.target.result;
- $target.html(droppedImage);
- };
-
- fileReader.readAsDataURL(file);
-
- onDrop(file);
- });
- }
-
- dropZone($target, function(file){
-
- resemble(file).onComplete(function(data){
- $('#image-data').show();
- $('#red').css('width',data.red+'%');
- $('#green').css('width',data.green+'%');
- $('#blue').css('width',data.blue+'%');
- $('#alpha').css('width',data.alpha+'%');
- $('#brightness').css('width',data.brightness+'%');
- $('#white').css('width',data.white+'%');
- $('#black').css('width',data.black+'%');
- });
-
- });
-
- function onComplete(data){
- var time = Date.now();
- var diffImage = new Image();
- diffImage.src = data.getImageDataUrl();
-
- $('#image-diff').html(diffImage);
-
- $(diffImage).click(function(){
- var w = window.open("about:blank", "_blank");
- var html = w.document.documentElement;
- var body = w.document.body;
-
- html.style.margin = 0;
- html.style.padding = 0;
- body.style.margin = 0;
- body.style.padding = 0;
-
- var img = w.document.createElement("img");
- img.src = diffImage.src;
- img.alt = "image diff";
- img.style.maxWidth = "100%";
- img.addEventListener("click", function() {
- this.style.maxWidth = this.style.maxWidth === "100%" ? "" : "100%";
- });
- body.appendChild(img);
- });
-
- $('.buttons').show();
-
- if(data.misMatchPercentage == 0){
- $('#thesame').show();
- $('#diff-results').hide();
- } else {
- $('#mismatch').text(data.misMatchPercentage);
- if(!data.isSameDimensions){
- $('#differentdimensions').show();
- } else {
- $('#differentdimensions').hide();
- }
- $('#diff-results').show();
- $('#thesame').hide();
- }
- }
-
- var file1;
- var file2;
- var resembleControl;
-
- dropZone($('#dropzone1'), function(file){
- file1 = file;
- if(file2){
- resembleControl = resemble(file).compareTo(file2).onComplete(onComplete);
- }
- });
-
- dropZone($('#dropzone2'), function(file){
- file2 = file;
- if(file1){
- resembleControl = resemble(file).compareTo(file1).onComplete(onComplete);
- }
- });
-
- var buttons = $('.buttons button');
-
- buttons.click(function(){
- var $this = $(this);
-
- $this.parent('.buttons').find('button').removeClass('active');
- $this.addClass('active');
-
- if($this.is('#raw')){
- resembleControl.ignoreNothing();
- }
- else
- if($this.is('#less')){
- resembleControl.ignoreLess();
- }
- if($this.is('#colors')){
- resembleControl.ignoreColors();
- }
- else
- if($this.is('#antialising')){
- resembleControl.ignoreAntialiasing();
- }
- else
- if($this.is('#alpha')){
- resembleControl.ignoreAlpha();
- }
- else
- if($this.is('#same-size')){
- resembleControl.scaleToSameSize();
- }
- else
- if($this.is('#original-size')){
- resembleControl.useOriginalSize();
- }
- else
- if($this.is('#pink')){
- resembleControl.outputSettings({
- errorColor: {
- red: 255,
- green: 0,
- blue: 255
- }
- }).repaint();
- }
- else
- if($this.is('#yellow')){
- resembleControl.outputSettings({
- errorColor: {
- red: 255,
- green: 255,
- blue: 0
- }
- }).repaint();
- }
- else
- if($this.is('#flat')){
- resembleControl.outputSettings({
- errorType: 'flat'
- }).repaint();
- }
- else
- if($this.is('#movement')){
- resembleControl.outputSettings({
- errorType: 'movement'
- }).repaint();
- }
- else
- if($this.is('#flatDifferenceIntensity')){
- resembleControl.outputSettings({
- errorType: 'flatDifferenceIntensity'
- }).repaint();
- }
- else
- if($this.is('#movementDifferenceIntensity')){
- resembleControl.outputSettings({
- errorType: 'movementDifferenceIntensity'
- }).repaint();
- }
- else
- if($this.is('#diffOnly')){
- resembleControl.outputSettings({
- errorType: 'diffOnly'
- }).repaint();
- }
- else
- if($this.is('#opaque')){
- resembleControl.outputSettings({
- transparency: 1
- }).repaint();
- }
- else
- if($this.is('#transparent')){
- resembleControl.outputSettings({
- transparency: 0.3
- }).repaint();
- }
- else
- if($this.is('#boundingBox')){
- resembleControl.outputSettings({
- boundingBox: {
- left: $("#bounding-box-x1").val(),
- top: $("#bounding-box-y1").val(),
- right: $("#bounding-box-x2").val(),
- bottom: $("#bounding-box-y2").val()
- }
- }).repaint();
- $this.removeClass('active');
- }
- if($this.is('#ignoredBox')){
- resembleControl.outputSettings({
- ignoredBox: {
- left: $("#ignored-box-x1").val(),
- top: $("#ignored-box-y1").val(),
- right: $("#ignored-box-x2").val(),
- bottom: $("#ignored-box-y2").val()
- }
- }).repaint();
- $this.removeClass('active');
- }
- });
-
- (function(){
- var xhr = new XMLHttpRequest();
- var xhr2 = new XMLHttpRequest();
- var xhr3 = new XMLHttpRequest();
- var done = $.Deferred();
- var dtwo = $.Deferred();
- var dthree = $.Deferred();
-
- xhr.open('GET', 'demoassets/People.jpg', true);
- xhr.responseType = 'blob';
- xhr.onload = function(e) {
- done.resolve(this.response);
- };
- xhr.send();
-
- xhr2.open('GET', 'demoassets/People2.jpg', true);
- xhr2.responseType = 'blob';
- xhr2.onload = function(e) {
- dtwo.resolve(this.response);
- };
- xhr2.send();
-
- xhr3.open('GET', 'demoassets/PeopleAlpha.png', true);
- xhr3.responseType = 'blob';
- xhr3.onload = function(e) {
- dthree.resolve(this.response);
- };
- xhr3.send();
-
- $('#example-images').click(function(){
-
- $('#dropzone1').html('');
- $('#dropzone2').html('');
-
- $.when(done, dtwo).done(function(file, file1){
- if (typeof FileReader === 'undefined') {
- resembleControl = resemble('demoassets/People.jpg').compareTo('demoassets/People2.jpg').onComplete(onComplete);
- } else {
- resembleControl = resemble(file).compareTo(file1).onComplete(onComplete);
- }
- });
-
- return false;
- });
-
- $('#example-images-alpha').click(function(){
-
- $('#dropzone1').html('');
- $('#dropzone2').html('');
-
- $.when(done, dthree).done(function(file, file1){
- if (typeof FileReader === 'undefined') {
- resembleControl = resemble('demoassets/People.jpg').compareTo('demoassets/PeopleAlpha.png').onComplete(onComplete);
- } else {
- resembleControl = resemble(file).compareTo(file1).onComplete(onComplete);
- }
- });
-
- return false;
- });
-
- }());
-
+$(function() {
+ var $target = $("#drop-zone");
+
+ function dropZone($target, onDrop) {
+ $target
+ .bind("dragover", function() {
+ $target.addClass("drag-over");
+ return false;
+ })
+ .bind("dragend", function() {
+ $target.removeClass("drag-over");
+ return false;
+ })
+ .bind("dragleave", function() {
+ $target.removeClass("drag-over");
+ return false;
+ })
+ .bind("drop", function(event) {
+ var file = event.originalEvent.dataTransfer.files[0];
+
+ event.stopPropagation();
+ event.preventDefault();
+
+ $target.removeClass("drag-over");
+
+ var droppedImage = new Image();
+ var fileReader = new FileReader();
+
+ fileReader.onload = function(event) {
+ droppedImage.src = event.target.result;
+ $target.html(droppedImage);
+ };
+
+ fileReader.readAsDataURL(file);
+
+ onDrop(file);
+ });
+ }
+
+ dropZone($target, function(file) {
+ resemble(file).onComplete(function(data) {
+ $("#image-data").show();
+ $("#red").css("width", data.red + "%");
+ $("#green").css("width", data.green + "%");
+ $("#blue").css("width", data.blue + "%");
+ $("#alpha").css("width", data.alpha + "%");
+ $("#brightness").css("width", data.brightness + "%");
+ $("#white").css("width", data.white + "%");
+ $("#black").css("width", data.black + "%");
+ });
+ });
+
+ function onComplete(data) {
+ var time = Date.now();
+ var diffImage = new Image();
+ diffImage.src = data.getImageDataUrl();
+
+ $("#image-diff").html(diffImage);
+
+ $(diffImage).click(function() {
+ var w = window.open("about:blank", "_blank");
+ var html = w.document.documentElement;
+ var body = w.document.body;
+
+ html.style.margin = 0;
+ html.style.padding = 0;
+ body.style.margin = 0;
+ body.style.padding = 0;
+
+ var img = w.document.createElement("img");
+ img.src = diffImage.src;
+ img.alt = "image diff";
+ img.style.maxWidth = "100%";
+ img.addEventListener("click", function() {
+ this.style.maxWidth =
+ this.style.maxWidth === "100%" ? "" : "100%";
+ });
+ body.appendChild(img);
+ });
+
+ $(".buttons").show();
+
+ if (data.misMatchPercentage == 0) {
+ $("#thesame").show();
+ $("#diff-results").hide();
+ } else {
+ $("#mismatch").text(data.misMatchPercentage);
+ if (!data.isSameDimensions) {
+ $("#differentdimensions").show();
+ } else {
+ $("#differentdimensions").hide();
+ }
+ $("#diff-results").show();
+ $("#thesame").hide();
+ }
+ }
+
+ var file1;
+ var file2;
+ var resembleControl;
+
+ dropZone($("#dropzone1"), function(file) {
+ file1 = file;
+ if (file2) {
+ resembleControl = resemble(file)
+ .compareTo(file2)
+ .onComplete(onComplete);
+ }
+ });
+
+ dropZone($("#dropzone2"), function(file) {
+ file2 = file;
+ if (file1) {
+ resembleControl = resemble(file)
+ .compareTo(file1)
+ .onComplete(onComplete);
+ }
+ });
+
+ var buttons = $(".buttons button");
+
+ buttons.click(function() {
+ var $this = $(this);
+
+ $this
+ .parent(".buttons")
+ .find("button")
+ .removeClass("active");
+ $this.addClass("active");
+
+ if ($this.is("#raw")) {
+ resembleControl.ignoreNothing();
+ } else if ($this.is("#less")) {
+ resembleControl.ignoreLess();
+ }
+ if ($this.is("#colors")) {
+ resembleControl.ignoreColors();
+ } else if ($this.is("#antialising")) {
+ resembleControl.ignoreAntialiasing();
+ } else if ($this.is("#alpha")) {
+ resembleControl.ignoreAlpha();
+ } else if ($this.is("#same-size")) {
+ resembleControl.scaleToSameSize();
+ } else if ($this.is("#original-size")) {
+ resembleControl.useOriginalSize();
+ } else if ($this.is("#pink")) {
+ resembleControl
+ .outputSettings({
+ errorColor: {
+ red: 255,
+ green: 0,
+ blue: 255
+ }
+ })
+ .repaint();
+ } else if ($this.is("#yellow")) {
+ resembleControl
+ .outputSettings({
+ errorColor: {
+ red: 255,
+ green: 255,
+ blue: 0
+ }
+ })
+ .repaint();
+ } else if ($this.is("#flat")) {
+ resembleControl
+ .outputSettings({
+ errorType: "flat"
+ })
+ .repaint();
+ } else if ($this.is("#movement")) {
+ resembleControl
+ .outputSettings({
+ errorType: "movement"
+ })
+ .repaint();
+ } else if ($this.is("#flatDifferenceIntensity")) {
+ resembleControl
+ .outputSettings({
+ errorType: "flatDifferenceIntensity"
+ })
+ .repaint();
+ } else if ($this.is("#movementDifferenceIntensity")) {
+ resembleControl
+ .outputSettings({
+ errorType: "movementDifferenceIntensity"
+ })
+ .repaint();
+ } else if ($this.is("#diffOnly")) {
+ resembleControl
+ .outputSettings({
+ errorType: "diffOnly"
+ })
+ .repaint();
+ } else if ($this.is("#opaque")) {
+ resembleControl
+ .outputSettings({
+ transparency: 1
+ })
+ .repaint();
+ } else if ($this.is("#transparent")) {
+ resembleControl
+ .outputSettings({
+ transparency: 0.3
+ })
+ .repaint();
+ } else if ($this.is("#boundingBox")) {
+ resembleControl
+ .outputSettings({
+ boundingBox: {
+ left: $("#bounding-box-x1").val(),
+ top: $("#bounding-box-y1").val(),
+ right: $("#bounding-box-x2").val(),
+ bottom: $("#bounding-box-y2").val()
+ }
+ })
+ .repaint();
+ $this.removeClass("active");
+ }
+ if ($this.is("#ignoredBox")) {
+ resembleControl
+ .outputSettings({
+ ignoredBox: {
+ left: $("#ignored-box-x1").val(),
+ top: $("#ignored-box-y1").val(),
+ right: $("#ignored-box-x2").val(),
+ bottom: $("#ignored-box-y2").val()
+ }
+ })
+ .repaint();
+ $this.removeClass("active");
+ }
+ });
+
+ (function() {
+ var xhr = new XMLHttpRequest();
+ var xhr2 = new XMLHttpRequest();
+ var xhr3 = new XMLHttpRequest();
+ var done = $.Deferred();
+ var dtwo = $.Deferred();
+ var dthree = $.Deferred();
+
+ xhr.open("GET", "demoassets/People.jpg", true);
+ xhr.responseType = "blob";
+ xhr.onload = function(e) {
+ done.resolve(this.response);
+ };
+ xhr.send();
+
+ xhr2.open("GET", "demoassets/People2.jpg", true);
+ xhr2.responseType = "blob";
+ xhr2.onload = function(e) {
+ dtwo.resolve(this.response);
+ };
+ xhr2.send();
+
+ xhr3.open("GET", "demoassets/PeopleAlpha.png", true);
+ xhr3.responseType = "blob";
+ xhr3.onload = function(e) {
+ dthree.resolve(this.response);
+ };
+ xhr3.send();
+
+ $("#example-images").click(function() {
+ $("#dropzone1").html('');
+ $("#dropzone2").html('');
+
+ $.when(done, dtwo).done(function(file, file1) {
+ if (typeof FileReader === "undefined") {
+ resembleControl = resemble("demoassets/People.jpg")
+ .compareTo("demoassets/People2.jpg")
+ .onComplete(onComplete);
+ } else {
+ resembleControl = resemble(file)
+ .compareTo(file1)
+ .onComplete(onComplete);
+ }
+ });
+
+ return false;
+ });
+
+ $("#example-images-alpha").click(function() {
+ $("#dropzone1").html('');
+ $("#dropzone2").html('');
+
+ $.when(done, dthree).done(function(file, file1) {
+ if (typeof FileReader === "undefined") {
+ resembleControl = resemble("demoassets/People.jpg")
+ .compareTo("demoassets/PeopleAlpha.png")
+ .onComplete(onComplete);
+ } else {
+ resembleControl = resemble(file)
+ .compareTo(file1)
+ .onComplete(onComplete);
+ }
+ });
+
+ return false;
+ });
+ })();
});
diff --git a/memory-leak-test.js b/memory-leak-test.js
index 207a3a8..21b60e1 100644
--- a/memory-leak-test.js
+++ b/memory-leak-test.js
@@ -1,32 +1,37 @@
+/* eslint no-process-exit: "warn"*/
+
// node --expose-gc memory-leak-test.js
-const fs = require('fs');
-const resemble = require('./resemble');
+const fs = require("fs");
+const resemble = require("./resemble");
+
let max = 2000;
const timerLabel = "2000 compare";
console.time(timerLabel);
compare();
-function compare(){
- const people = fs.readFileSync('./demoassets/ghost1.png');
- const people2 = fs.readFileSync('./demoassets/ghost2.png');
+function compare() {
+ const people = fs.readFileSync("./demoassets/ghost1.png");
+ const people2 = fs.readFileSync("./demoassets/ghost2.png");
- resemble(people).compareTo(people2).onComplete(function() {
- if (--max >= 0) {
- process.nextTick(compare);
- } else {
- process.nextTick(log);
- }
- global.gc();
- if (max % 100 === 0) {
- var mem = process.memoryUsage();
- console.log(max, mem.rss, mem.heapUsed, mem.external);
- }
- });
+ resemble(people)
+ .compareTo(people2)
+ .onComplete(() => {
+ if (--max >= 0) {
+ process.nextTick(compare);
+ } else {
+ process.nextTick(log);
+ }
+ global.gc();
+ if (max % 100 === 0) {
+ const mem = process.memoryUsage();
+ console.log(max, mem.rss, mem.heapUsed, mem.external);
+ }
+ });
}
-function log(){
+function log() {
console.timeEnd(timerLabel);
process.exit(0);
-}
\ No newline at end of file
+}
diff --git a/nodejs-tests/compareImages.test.js b/nodejs-tests/compareImages.test.js
index 263330d..e42b80e 100644
--- a/nodejs-tests/compareImages.test.js
+++ b/nodejs-tests/compareImages.test.js
@@ -1,39 +1,43 @@
-const compareImages = require('../compareImages');
-const fs = require('fs');
-
-describe('compareImages', () => {
- test('works with buffers', async () => {
- const data = await compareImages(
- fs.readFileSync('./demoassets/People.jpg'),
- fs.readFileSync('./demoassets/People2.jpg')
- );
-
- expect(data.isSameDimensions).toBe(true);
- expect(data.misMatchPercentage).toEqual('8.66');
-
- const buffer = data.getBuffer();
-
- expect(buffer).toBeInstanceOf(Buffer);
- expect(buffer.length).toBe(91876);
-
- const comparison = fs.readFileSync(
- './nodejs-tests/PeopleComparedToPeople2.png'
- );
-
- expect(buffer.equals(comparison)).toBe(true);
-
- const buffer2 = data.getBuffer(true);
- const comparison2 = fs.readFileSync(
- './nodejs-tests/PeopleComparedToPeople2WithOriginal.png'
- );
- expect(buffer2.equals(comparison2)).toBe(true);
- });
-
- test('throws when failed', async () => {
- const promise = compareImages(
- fs.readFileSync('./demoassets/People.jpg'),
- 'bogus data'
- );
- await expect(promise).rejects.toMatch('Error: error while reading from input stream');
- });
+/* eslint-env jest*/
+
+const compareImages = require("../compareImages");
+const fs = require("fs");
+
+describe("compareImages", () => {
+ test("works with buffers", async () => {
+ const data = await compareImages(
+ fs.readFileSync("./demoassets/People.jpg"),
+ fs.readFileSync("./demoassets/People2.jpg")
+ );
+
+ expect(data.isSameDimensions).toBe(true);
+ expect(data.misMatchPercentage).toEqual("8.66");
+
+ const buffer = data.getBuffer();
+
+ expect(buffer).toBeInstanceOf(Buffer);
+ expect(buffer.length).toBe(91876);
+
+ const comparison = fs.readFileSync(
+ "./nodejs-tests/PeopleComparedToPeople2.png"
+ );
+
+ expect(buffer.equals(comparison)).toBe(true);
+
+ const buffer2 = data.getBuffer(true);
+ const comparison2 = fs.readFileSync(
+ "./nodejs-tests/PeopleComparedToPeople2WithOriginal.png"
+ );
+ expect(buffer2.equals(comparison2)).toBe(true);
+ });
+
+ test("throws when failed", async () => {
+ const promise = compareImages(
+ fs.readFileSync("./demoassets/People.jpg"),
+ "bogus data"
+ );
+ await expect(promise).rejects.toMatch(
+ "Error: error while reading from input stream"
+ );
+ });
});
diff --git a/nodejs-tests/resemble.test.js b/nodejs-tests/resemble.test.js
index 3ea4b17..fd802ac 100644
--- a/nodejs-tests/resemble.test.js
+++ b/nodejs-tests/resemble.test.js
@@ -1,123 +1,131 @@
-const resemble = require('../resemble');
-const fs = require('fs');
-
-describe('resemble', () => {
- test('base64', () => {
- const people_src =
- 'data:image/jpeg;base64,' +
- fs.readFileSync('./demoassets/People.jpg', 'base64');
- const people2_src =
- 'data:image/jpeg;base64,' +
- fs.readFileSync('./demoassets/People2.jpg', 'base64');
-
- return new Promise(function(resolve, reject) {
- resemble(people_src).compareTo(people2_src).onComplete(function(data) {
- // console.info('Reached oncomplete for base64_string');
- expect(data.diffBounds.bottom).toEqual(431);
- expect(data.diffBounds.left).toEqual(22);
- expect(data.diffBounds.right).toEqual(450);
- expect(data.diffBounds.top).toEqual(58);
- expect(data.dimensionDifference.height).toEqual(0);
- expect(data.dimensionDifference.width).toEqual(0);
- expect(data.isSameDimensions).toBe(true);
- expect(data.misMatchPercentage).toEqual('8.66');
- resolve();
- });
- });
- });
-
- // this doesn't work on windows
-
- // test('files', () => {
- // return new Promise(function(resolve, reject) {
- // console.log('hello there how are you');
- // resemble('demoassets/People.jpg')
- // .compareTo('demoassets/People2.jpg')
- // .onComplete(function(data) {
- // // console.info('Reached oncomplete for request_success');
- // expect(data.diffBounds).toEqual(
- // expect.objectContaining({
- // bottom: expect.any(Number),
- // left: expect.any(Number),
- // top: expect.any(Number),
- // right: expect.any(Number)
- // })
- // );
- //
- // expect(data.diffBounds.bottom).toEqual(431);
- // expect(data.diffBounds.left).toEqual(22);
- // expect(data.diffBounds.right).toEqual(450);
- // expect(data.diffBounds.top).toEqual(58);
- // expect(data.dimensionDifference.height).toEqual(0);
- // expect(data.dimensionDifference.width).toEqual(0);
- // expect(data.isSameDimensions).toBe(true);
- // expect(data.misMatchPercentage).toEqual('8.66');
- // resolve();
- // });
- // });
- // });
-
- test('file not found', () => {
- return new Promise(function(resolve, reject) {
- resemble('../demoassets/People.jpg')
- .compareTo('../demoassets/404-image.jpg')
- .onComplete(function(data) {
- // console.info('Reached oncomplete for request_404');
- // console.log(data);
- expect(data.error).toEqual('Error: error while reading from input stream');
- resolve();
+/* eslint-env jest*/
+
+const resemble = require("../resemble");
+const fs = require("fs");
+
+describe("resemble", () => {
+ test("base64", () => {
+ const peopleSrc = `data:image/jpeg;base64,${fs.readFileSync(
+ "./demoassets/People.jpg",
+ "base64"
+ )}`;
+ const people2Src = `data:image/jpeg;base64,${fs.readFileSync(
+ "./demoassets/People2.jpg",
+ "base64"
+ )}`;
+
+ return new Promise(resolve => {
+ resemble(peopleSrc)
+ .compareTo(people2Src)
+ .onComplete(data => {
+ // console.info('Reached oncomplete for base64String');
+ expect(data.diffBounds.bottom).toEqual(431);
+ expect(data.diffBounds.left).toEqual(22);
+ expect(data.diffBounds.right).toEqual(450);
+ expect(data.diffBounds.top).toEqual(58);
+ expect(data.dimensionDifference.height).toEqual(0);
+ expect(data.dimensionDifference.width).toEqual(0);
+ expect(data.isSameDimensions).toBe(true);
+ expect(data.misMatchPercentage).toEqual("8.66");
+ resolve();
+ });
});
});
- });
-
- test('node buffers jpg', () => {
- const people = fs.readFileSync('./demoassets/People.jpg');
- const people2 = fs.readFileSync('./demoassets/People2.jpg');
- return new Promise(function(resolve, reject) {
- resemble(people).compareTo(people2).onComplete(function(data) {
- // console.info('Reached oncomplete for base64_string');
- expect(data.diffBounds.bottom).toEqual(431);
- expect(data.diffBounds.left).toEqual(22);
- expect(data.diffBounds.right).toEqual(450);
- expect(data.diffBounds.top).toEqual(58);
- expect(data.dimensionDifference.height).toEqual(0);
- expect(data.dimensionDifference.width).toEqual(0);
- expect(data.isSameDimensions).toBe(true);
- expect(data.misMatchPercentage).toEqual('8.66');
- resolve();
- });
+ // this doesn't work on windows
+
+ // test('files', () => {
+ // return new Promise(function(resolve) {
+ // console.log('hello there how are you');
+ // resemble('demoassets/People.jpg')
+ // .compareTo('demoassets/People2.jpg')
+ // .onComplete(function(data) {
+ // // console.info('Reached oncomplete for request_success');
+ // expect(data.diffBounds).toEqual(
+ // expect.objectContaining({
+ // bottom: expect.any(Number),
+ // left: expect.any(Number),
+ // top: expect.any(Number),
+ // right: expect.any(Number)
+ // })
+ // );
+ //
+ // expect(data.diffBounds.bottom).toEqual(431);
+ // expect(data.diffBounds.left).toEqual(22);
+ // expect(data.diffBounds.right).toEqual(450);
+ // expect(data.diffBounds.top).toEqual(58);
+ // expect(data.dimensionDifference.height).toEqual(0);
+ // expect(data.dimensionDifference.width).toEqual(0);
+ // expect(data.isSameDimensions).toBe(true);
+ // expect(data.misMatchPercentage).toEqual('8.66');
+ // resolve();
+ // });
+ // });
+ // });
+
+ test("file not found", () =>
+ new Promise(resolve => {
+ resemble("../demoassets/People.jpg")
+ .compareTo("../demoassets/404-image.jpg")
+ .onComplete(data => {
+ // console.info('Reached oncomplete for request404');
+ // console.log(data);
+ expect(data.error).toEqual(
+ "Error: error while reading from input stream"
+ );
+ resolve();
+ });
+ }));
+
+ test("node buffers jpg", () => {
+ const people = fs.readFileSync("./demoassets/People.jpg");
+ const people2 = fs.readFileSync("./demoassets/People2.jpg");
+
+ return new Promise(resolve => {
+ resemble(people)
+ .compareTo(people2)
+ .onComplete(data => {
+ // console.info('Reached oncomplete for base64String');
+ expect(data.diffBounds.bottom).toEqual(431);
+ expect(data.diffBounds.left).toEqual(22);
+ expect(data.diffBounds.right).toEqual(450);
+ expect(data.diffBounds.top).toEqual(58);
+ expect(data.dimensionDifference.height).toEqual(0);
+ expect(data.dimensionDifference.width).toEqual(0);
+ expect(data.isSameDimensions).toBe(true);
+ expect(data.misMatchPercentage).toEqual("8.66");
+ resolve();
+ });
+ });
});
- });
-
- test('node buffers png', () => {
- const people = fs.readFileSync('./demoassets/ghost1.png');
- const people2 = fs.readFileSync('./demoassets/ghost2.png');
-
- return new Promise(function(resolve, reject) {
- resemble(people).compareTo(people2).onComplete(function(data) {
- // console.info('Reached oncomplete for base64_string');
- expect(data.diffBounds.bottom).toEqual(138);
- expect(data.diffBounds.left).toEqual(90);
- expect(data.diffBounds.right).toEqual(157);
- expect(data.diffBounds.top).toEqual(107);
- expect(data.dimensionDifference.height).toEqual(0);
- expect(data.dimensionDifference.width).toEqual(0);
- expect(data.isSameDimensions).toBe(true);
- expect(data.misMatchPercentage).toEqual('0.27');
- resolve();
- });
- });
+ test("node buffers png", () => {
+ const people = fs.readFileSync("./demoassets/ghost1.png");
+ const people2 = fs.readFileSync("./demoassets/ghost2.png");
+
+ return new Promise(resolve => {
+ resemble(people)
+ .compareTo(people2)
+ .onComplete(data => {
+ // console.info('Reached oncomplete for base64String');
+ expect(data.diffBounds.bottom).toEqual(138);
+ expect(data.diffBounds.left).toEqual(90);
+ expect(data.diffBounds.right).toEqual(157);
+ expect(data.diffBounds.top).toEqual(107);
+ expect(data.dimensionDifference.height).toEqual(0);
+ expect(data.dimensionDifference.width).toEqual(0);
+ expect(data.isSameDimensions).toBe(true);
+ expect(data.misMatchPercentage).toEqual("0.27");
+ resolve();
+ });
+ });
});
+ test("test partial diff with bounding box", () => {
+ const people = fs.readFileSync("./demoassets/ghost1.png");
+ const people2 = fs.readFileSync("./demoassets/ghost2.png");
- test('test partial diff with bounding box', () => {
- const people = fs.readFileSync('./demoassets/ghost1.png');
- const people2 = fs.readFileSync('./demoassets/ghost2.png');
-
- return new Promise(function(resolve, reject) {
-
+ return new Promise(resolve => {
resemble.outputSettings({
boundingBox: {
left: 80,
@@ -127,13 +135,12 @@ describe('resemble', () => {
}
});
- resemble(people).compareTo(people2).onComplete(function(data) {
- expect(data.misMatchPercentage).toEqual('0.04');
- resolve();
- });
+ resemble(people)
+ .compareTo(people2)
+ .onComplete(data => {
+ expect(data.misMatchPercentage).toEqual("0.04");
+ resolve();
+ });
});
});
-
-
-
});
diff --git a/package-lock.json b/package-lock.json
index 790853c..0de02ad 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,2367 +1,5666 @@
{
- "name": "resemblejs",
- "version": "2.10.0",
- "lockfileVersion": 1,
- "dependencies": {
- "abab": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
- "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=",
- "dev": true
- },
- "abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
- "dev": true
- },
- "acorn": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
- "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
- "dev": true
- },
- "acorn-globals": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
- "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
- "dev": true
- },
- "ajv": {
- "version": "4.11.8",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
- "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
- "dev": true
- },
- "align-text": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
- "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
- "dev": true
- },
- "amdefine": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
- "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
- "dev": true
- },
- "ansi-escapes": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
- "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
- "dev": true
- },
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "dev": true
- },
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
- "dev": true
- },
- "anymatch": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
- "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
- "dev": true
- },
- "append-transform": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz",
- "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=",
- "dev": true
- },
- "aproba": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
- "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
- "dev": true
- },
- "are-we-there-yet": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz",
- "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=",
- "dev": true
- },
- "argparse": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
- "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
- "dev": true
- },
- "arr-diff": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
- "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
- "dev": true
- },
- "arr-flatten": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
- "dev": true
- },
- "array-equal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
- "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=",
- "dev": true
- },
- "array-unique": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
- "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
- "dev": true
- },
- "arrify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
- "dev": true
- },
- "asn1": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
- "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
- "dev": true
- },
- "assert-plus": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
- "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
- "dev": true
- },
- "assertion-error": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz",
- "integrity": "sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=",
- "dev": true
- },
- "async": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
- "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
- "dev": true
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
- "dev": true
- },
- "aws-sign2": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
- "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
- "dev": true
- },
- "aws4": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
- "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
- "dev": true
- },
- "babel-code-frame": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
- "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
- "dev": true
- },
- "babel-core": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz",
- "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=",
- "dev": true
- },
- "babel-generator": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz",
- "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=",
- "dev": true
- },
- "babel-helpers": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
- "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
- "dev": true
- },
- "babel-jest": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-20.0.3.tgz",
- "integrity": "sha1-5KA7E9wQOJ4UD8ZF0J/8TO0wFnE=",
- "dev": true
- },
- "babel-messages": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
- "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
- "dev": true
- },
- "babel-plugin-istanbul": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz",
- "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=",
- "dev": true
- },
- "babel-plugin-jest-hoist": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz",
- "integrity": "sha1-r+3IU70/jcNUjqZx++adA8wsF2c=",
- "dev": true
- },
- "babel-preset-jest": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz",
- "integrity": "sha1-y6yq3stdaJyh4d4TYOv8ZoYsF4o=",
- "dev": true
- },
- "babel-register": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
- "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
- "dev": true
- },
- "babel-runtime": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
- "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
- "dev": true
- },
- "babel-template": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
- "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
- "dev": true
- },
- "babel-traverse": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
- "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
- "dev": true
- },
- "babel-types": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
- "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
- "dev": true
- },
- "babylon": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
- "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
- "dev": true
- },
- "balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
- "dev": true
- },
- "bcrypt-pbkdf": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
- "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
- "dev": true,
- "optional": true
- },
- "block-stream": {
- "version": "0.0.9",
- "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
- "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
- "dev": true
- },
- "boom": {
- "version": "2.10.1",
- "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
- "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
- "dev": true
- },
- "brace-expansion": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
- "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
- "dev": true
- },
- "braces": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
- "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
- "dev": true
- },
- "browser-resolve": {
- "version": "1.11.2",
- "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz",
- "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=",
- "dev": true,
- "dependencies": {
+ "name": "resemblejs",
+ "version": "2.10.0",
+ "lockfileVersion": 1,
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.0.0-beta.42",
+ "resolved":
+ "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.42.tgz",
+ "integrity":
+ "sha512-L8i94FLSyaLQpRfDo/qqSm8Ndb44zMtXParXo0MebJICG1zoCCL4+GkzUOlB4BNTRSXXQdb3feam/qw7bKPipQ==",
+ "dev": true
+ },
+ "@babel/highlight": {
+ "version": "7.0.0-beta.42",
+ "resolved":
+ "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.42.tgz",
+ "integrity":
+ "sha512-X3Ur/A/lIbbP8W0pmwgqtDXIxhQmxPaiwY9SKP7kF9wvZfjZRwMvbJE92ozUhF3UDK3DCKaV7oGqmI1rP/zqWA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved":
+ "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity":
+ "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.3.2",
+ "resolved":
+ "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
+ "integrity":
+ "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.3.0",
+ "resolved":
+ "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
+ "integrity":
+ "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
+ "dev": true
+ }
+ }
+ },
+ "abab": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
+ "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=",
+ "dev": true
+ },
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity":
+ "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
+ },
+ "acorn": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
+ "dev": true
+ },
+ "acorn-globals": {
+ "version": "3.1.0",
+ "resolved":
+ "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
+ "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
+ "dev": true
+ },
+ "acorn-jsx": {
+ "version": "3.0.1",
+ "resolved":
+ "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
+ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
+ "dev": true,
+ "dependencies": {
+ "acorn": {
+ "version": "3.3.0",
+ "resolved":
+ "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
+ "dev": true
+ }
+ }
+ },
+ "ajv": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
+ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY="
+ },
+ "ajv-keywords": {
+ "version": "2.1.1",
+ "resolved":
+ "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
+ "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
+ "dev": true
+ },
+ "align-text": {
+ "version": "0.1.4",
+ "resolved":
+ "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "dev": true
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+ "dev": true
+ },
+ "ansi-escapes": {
+ "version": "1.4.0",
+ "resolved":
+ "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved":
+ "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved":
+ "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "any-observable": {
+ "version": "0.2.0",
+ "resolved":
+ "https://registry.npmjs.org/any-observable/-/any-observable-0.2.0.tgz",
+ "integrity": "sha1-xnhwBYADV5AJCD9UrAq6+1wz0kI=",
+ "dev": true
+ },
+ "anymatch": {
+ "version": "1.3.2",
+ "resolved":
+ "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
+ "integrity":
+ "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
+ "dev": true
+ },
+ "app-root-path": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/app-root-path/-/app-root-path-2.0.1.tgz",
+ "integrity": "sha1-zWLc+OT9WkF+/GZNLlsQZTxlG0Y=",
+ "dev": true
+ },
+ "append-transform": {
+ "version": "0.4.0",
+ "resolved":
+ "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz",
+ "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=",
+ "dev": true
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity":
+ "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+ },
+ "are-we-there-yet": {
+ "version": "1.1.4",
+ "resolved":
+ "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz",
+ "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0="
+ },
+ "argparse": {
+ "version": "1.0.9",
+ "resolved":
+ "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "dev": true
+ },
+ "arr-diff": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "dev": true
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved":
+ "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity":
+ "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "dev": true
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved":
+ "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+ "dev": true
+ },
+ "array-equal": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
+ "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=",
+ "dev": true
+ },
+ "array-union": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved":
+ "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.2.1",
+ "resolved":
+ "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+ "dev": true
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
+ },
+ "assert-plus": {
+ "version": "0.2.0",
+ "resolved":
+ "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ="
+ },
+ "assertion-error": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz",
+ "integrity": "sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=",
+ "dev": true
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "dev": true
+ },
+ "async": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
+ "integrity":
+ "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
+ "dev": true
+ },
+ "async-limiter": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
+ "integrity":
+ "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==",
+ "dev": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved":
+ "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "atob": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz",
+ "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=",
+ "dev": true
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "resolved":
+ "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8="
+ },
+ "aws4": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
+ "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4="
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "resolved":
+ "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true
+ },
+ "babel-core": {
+ "version": "6.26.0",
+ "resolved":
+ "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz",
+ "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=",
+ "dev": true
+ },
+ "babel-generator": {
+ "version": "6.26.0",
+ "resolved":
+ "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz",
+ "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=",
+ "dev": true
+ },
+ "babel-helpers": {
+ "version": "6.24.1",
+ "resolved":
+ "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
+ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
+ "dev": true
+ },
+ "babel-jest": {
+ "version": "20.0.3",
+ "resolved":
+ "https://registry.npmjs.org/babel-jest/-/babel-jest-20.0.3.tgz",
+ "integrity": "sha1-5KA7E9wQOJ4UD8ZF0J/8TO0wFnE=",
+ "dev": true
+ },
+ "babel-messages": {
+ "version": "6.23.0",
+ "resolved":
+ "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "dev": true
+ },
+ "babel-plugin-istanbul": {
+ "version": "4.1.5",
+ "resolved":
+ "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz",
+ "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=",
+ "dev": true
+ },
+ "babel-plugin-jest-hoist": {
+ "version": "20.0.3",
+ "resolved":
+ "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz",
+ "integrity": "sha1-r+3IU70/jcNUjqZx++adA8wsF2c=",
+ "dev": true
+ },
+ "babel-preset-jest": {
+ "version": "20.0.3",
+ "resolved":
+ "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz",
+ "integrity": "sha1-y6yq3stdaJyh4d4TYOv8ZoYsF4o=",
+ "dev": true
+ },
+ "babel-register": {
+ "version": "6.26.0",
+ "resolved":
+ "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
+ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
+ "dev": true
+ },
+ "babel-runtime": {
+ "version": "6.26.0",
+ "resolved":
+ "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "dev": true
+ },
+ "babel-template": {
+ "version": "6.26.0",
+ "resolved":
+ "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
+ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+ "dev": true
+ },
+ "babel-traverse": {
+ "version": "6.26.0",
+ "resolved":
+ "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+ "dev": true
+ },
+ "babel-types": {
+ "version": "6.26.0",
+ "resolved":
+ "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+ "dev": true
+ },
+ "babylon": {
+ "version": "6.18.0",
+ "resolved":
+ "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity":
+ "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity":
+ "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "dev": true,
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved":
+ "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
+ "optional": true
+ },
+ "block-stream": {
+ "version": "0.0.9",
+ "resolved":
+ "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo="
+ },
+ "boom": {
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8="
+ },
+ "brace-expansion": {
+ "version": "1.1.8",
+ "resolved":
+ "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI="
+ },
+ "braces": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "dev": true
+ },
+ "browser-process-hrtime": {
+ "version": "0.1.2",
+ "resolved":
+ "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz",
+ "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=",
+ "dev": true
+ },
+ "browser-resolve": {
+ "version": "1.11.2",
+ "resolved":
+ "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz",
+ "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=",
+ "dev": true,
+ "dependencies": {
+ "resolve": {
+ "version": "1.1.7",
+ "resolved":
+ "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
+ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
+ "dev": true
+ }
+ }
+ },
+ "bser": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz",
+ "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=",
+ "dev": true
+ },
+ "buffer-from": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz",
+ "integrity":
+ "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==",
+ "dev": true
+ },
+ "builtin-modules": {
+ "version": "1.1.1",
+ "resolved":
+ "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "dev": true
+ },
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity":
+ "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "dev": true,
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved":
+ "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "caller-path": {
+ "version": "0.1.0",
+ "resolved":
+ "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
+ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
+ "dev": true,
+ "dependencies": {
+ "callsites": {
+ "version": "0.2.0",
+ "resolved":
+ "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
+ "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
+ "dev": true
+ }
+ }
+ },
+ "callsites": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved":
+ "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "dev": true,
+ "optional": true
+ },
+ "canvas-prebuilt": {
+ "version": "1.6.5-prerelease.1",
+ "resolved":
+ "https://registry.npmjs.org/canvas-prebuilt/-/canvas-prebuilt-1.6.5-prerelease.1.tgz",
+ "integrity": "sha1-aBSyC5yAg13MJL/WGZFHKIYwUhw="
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved":
+ "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "resolved":
+ "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "dev": true,
+ "optional": true
+ },
+ "chai": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz",
+ "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true
+ },
+ "chardet": {
+ "version": "0.4.2",
+ "resolved":
+ "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
+ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
+ "dev": true
+ },
+ "ci-info": {
+ "version": "1.1.2",
+ "resolved":
+ "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz",
+ "integrity":
+ "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==",
+ "dev": true
+ },
+ "circular-json": {
+ "version": "0.3.3",
+ "resolved":
+ "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
+ "integrity":
+ "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
+ "dev": true
+ },
+ "class-utils": {
+ "version": "0.3.6",
+ "resolved":
+ "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity":
+ "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "dev": true,
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved":
+ "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved":
+ "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved":
+ "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved":
+ "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity":
+ "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved":
+ "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity":
+ "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "resolved":
+ "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+ "dev": true
+ },
+ "cli-spinners": {
+ "version": "0.1.2",
+ "resolved":
+ "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz",
+ "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=",
+ "dev": true
+ },
+ "cli-truncate": {
+ "version": "0.2.1",
+ "resolved":
+ "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz",
+ "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=",
+ "dev": true,
+ "dependencies": {
+ "slice-ansi": {
+ "version": "0.0.4",
+ "resolved":
+ "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
+ "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
+ "dev": true
+ }
+ }
+ },
+ "cli-width": {
+ "version": "2.2.0",
+ "resolved":
+ "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "dev": true,
+ "optional": true,
+ "dependencies": {
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved":
+ "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved":
+ "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "dev": true
+ },
+ "color-convert": {
+ "version": "1.9.1",
+ "resolved":
+ "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
+ "integrity":
+ "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
+ "dev": true
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved":
+ "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "resolved":
+ "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk="
+ },
+ "commander": {
+ "version": "2.15.1",
+ "resolved":
+ "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
+ "integrity":
+ "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
+ "dev": true
+ },
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved":
+ "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved":
+ "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved":
+ "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity":
+ "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved":
+ "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
+ },
+ "contains-path": {
+ "version": "0.1.0",
+ "resolved":
+ "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
+ "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
+ "dev": true
+ },
+ "content-type-parser": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz",
+ "integrity":
+ "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==",
+ "dev": true
+ },
+ "convert-source-map": {
+ "version": "1.5.0",
+ "resolved":
+ "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz",
+ "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=",
+ "dev": true
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved":
+ "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "dev": true
+ },
+ "core-js": {
+ "version": "2.5.1",
+ "resolved":
+ "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",
+ "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "cosmiconfig": {
+ "version": "4.0.0",
+ "resolved":
+ "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz",
+ "integrity":
+ "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==",
+ "dev": true,
+ "dependencies": {
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved":
+ "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true
+ }
+ }
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved":
+ "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "resolved":
+ "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g="
+ },
+ "css-font-size-keywords": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz",
+ "integrity": "sha1-hUh1rOmspqjS7g00WkSq6btttss="
+ },
+ "css-font-stretch-keywords": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz",
+ "integrity": "sha1-UM7puboDH7XJUtRyMTnx4Qe1SxA="
+ },
+ "css-font-style-keywords": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz",
+ "integrity": "sha1-XDUygT9jtKHelU0TzqhqtDM0CeQ="
+ },
+ "css-font-weight-keywords": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz",
+ "integrity": "sha1-m8BGcayFvHJLV07106yWsNYE/Zc="
+ },
+ "css-global-keywords": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz",
+ "integrity": "sha1-cqmupyeW0Bmx0qMlLeTlqqN+Smk="
+ },
+ "css-list-helpers": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/css-list-helpers/-/css-list-helpers-1.0.1.tgz",
+ "integrity": "sha1-//VxkiAtuDJAxBaG+RnkSacCT30="
+ },
+ "css-system-font-keywords": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz",
+ "integrity": "sha1-hcbwhquk6zLFcaMIav/ENLhII+0="
+ },
+ "cssom": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz",
+ "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=",
+ "dev": true
+ },
+ "cssstyle": {
+ "version": "0.2.37",
+ "resolved":
+ "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
+ "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
+ "dev": true
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved":
+ "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ }
+ }
+ },
+ "date-fns": {
+ "version": "1.29.0",
+ "resolved":
+ "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz",
+ "integrity":
+ "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity":
+ "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved":
+ "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "resolved":
+ "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "dev": true
+ },
+ "dedent": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=",
+ "dev": true
+ },
+ "deep-eql": {
+ "version": "0.1.3",
+ "resolved":
+ "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz",
+ "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=",
+ "dev": true,
+ "dependencies": {
+ "type-detect": {
+ "version": "0.1.1",
+ "resolved":
+ "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz",
+ "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=",
+ "dev": true
+ }
+ }
+ },
+ "deep-extend": {
+ "version": "0.4.2",
+ "resolved":
+ "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
+ "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8="
+ },
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved":
+ "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+ "dev": true
+ },
+ "default-require-extensions": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz",
+ "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=",
+ "dev": true
+ },
+ "define-property": {
+ "version": "2.0.2",
+ "resolved":
+ "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity":
+ "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dev": true,
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved":
+ "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "del": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
+ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
+ "dev": true
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
+ },
+ "detect-indent": {
+ "version": "4.0.0",
+ "resolved":
+ "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
+ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+ "dev": true
+ },
+ "detect-libc": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz",
+ "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE="
+ },
+ "diff": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz",
+ "integrity":
+ "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==",
+ "dev": true
+ },
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved":
+ "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity":
+ "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true
+ },
+ "domexception": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
+ "integrity":
+ "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==",
+ "dev": true
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "resolved":
+ "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "optional": true
+ },
+ "elegant-spinner": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz",
+ "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=",
+ "dev": true
+ },
+ "errno": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
+ "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=",
+ "dev": true
+ },
+ "error-ex": {
+ "version": "1.3.1",
+ "resolved":
+ "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
+ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved":
+ "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "escodegen": {
+ "version": "1.9.0",
+ "resolved":
+ "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz",
+ "integrity":
+ "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==",
+ "dev": true,
+ "dependencies": {
+ "esprima": {
+ "version": "3.1.3",
+ "resolved":
+ "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+ "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
+ "dev": true
+ }
+ }
+ },
+ "eslint": {
+ "version": "4.19.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz",
+ "integrity":
+ "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==",
+ "dev": true,
+ "dependencies": {
+ "ajv": {
+ "version": "5.5.2",
+ "resolved":
+ "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved":
+ "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity":
+ "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.3.2",
+ "resolved":
+ "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
+ "integrity":
+ "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
+ "dev": true
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved":
+ "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity":
+ "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true
+ },
+ "globals": {
+ "version": "11.4.0",
+ "resolved":
+ "https://registry.npmjs.org/globals/-/globals-11.4.0.tgz",
+ "integrity":
+ "sha512-Dyzmifil8n/TmSqYDEXbm+C8yitzJQqQIlJQLNRMwa+BOUJpRC19pyVeN12JAjt61xonvXjtff+hJruTRXn5HA==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved":
+ "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.3.0",
+ "resolved":
+ "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
+ "integrity":
+ "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-config-es5": {
+ "version": "0.5.0",
+ "resolved":
+ "https://registry.npmjs.org/eslint-config-es5/-/eslint-config-es5-0.5.0.tgz",
+ "integrity": "sha1-rDAPX3XEVpk62ry1zLTSjM8A4XU=",
+ "dev": true
+ },
+ "eslint-config-prettier": {
+ "version": "2.9.0",
+ "resolved":
+ "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-2.9.0.tgz",
+ "integrity":
+ "sha512-ag8YEyBXsm3nmOv1Hz991VtNNDMRa+MNy8cY47Pl4bw6iuzqKbJajXdqUpiw13STdLLrznxgm1hj9NhxeOYq0A==",
+ "dev": true
+ },
+ "eslint-import-resolver-node": {
+ "version": "0.3.2",
+ "resolved":
+ "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz",
+ "integrity":
+ "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==",
+ "dev": true
+ },
+ "eslint-module-utils": {
+ "version": "2.1.1",
+ "resolved":
+ "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz",
+ "integrity":
+ "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==",
+ "dev": true
+ },
+ "eslint-plugin-import": {
+ "version": "2.9.0",
+ "resolved":
+ "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz",
+ "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=",
+ "dev": true,
+ "dependencies": {
+ "doctrine": {
+ "version": "1.5.0",
+ "resolved":
+ "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
+ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
+ "dev": true
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "dev": true
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
+ }
+ },
+ "eslint-plugin-prettier": {
+ "version": "2.6.0",
+ "resolved":
+ "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.0.tgz",
+ "integrity":
+ "sha512-floiaI4F7hRkTrFe8V2ItOK97QYrX75DjmdzmVITZoAP6Cn06oEDPQRsO6MlHEP/u2SxI3xQ52Kpjw6j5WGfeQ==",
+ "dev": true,
+ "dependencies": {
+ "jest-docblock": {
+ "version": "21.2.0",
+ "resolved":
+ "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz",
+ "integrity":
+ "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-scope": {
+ "version": "3.7.1",
+ "resolved":
+ "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
+ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
+ "dev": true
+ },
+ "eslint-visitor-keys": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
+ "integrity":
+ "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==",
+ "dev": true
+ },
+ "espree": {
+ "version": "3.5.4",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
+ "integrity":
+ "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
+ "dev": true,
+ "dependencies": {
+ "acorn": {
+ "version": "5.5.3",
+ "resolved":
+ "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz",
+ "integrity":
+ "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==",
+ "dev": true
+ }
+ }
+ },
+ "esprima": {
+ "version": "4.0.0",
+ "resolved":
+ "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
+ "integrity":
+ "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
+ "dev": true
+ },
+ "esquery": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz",
+ "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=",
+ "dev": true
+ },
+ "esrecurse": {
+ "version": "4.2.1",
+ "resolved":
+ "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+ "integrity":
+ "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+ "dev": true
+ },
+ "estraverse": {
+ "version": "4.2.0",
+ "resolved":
+ "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "resolved":
+ "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "dev": true
+ },
+ "exec-sh": {
+ "version": "0.2.1",
+ "resolved":
+ "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz",
+ "integrity":
+ "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==",
+ "dev": true
+ },
+ "execa": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.9.0.tgz",
+ "integrity":
+ "sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==",
+ "dev": true
+ },
+ "exit-hook": {
+ "version": "1.1.1",
+ "resolved":
+ "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
+ "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
+ "dev": true
+ },
+ "expand-brackets": {
+ "version": "0.1.5",
+ "resolved":
+ "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "dev": true
+ },
+ "expand-range": {
+ "version": "1.8.2",
+ "resolved":
+ "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+ "dev": true
+ },
+ "expect": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-22.4.3.tgz",
+ "integrity":
+ "sha512-XcNXEPehqn8b/jm8FYotdX0YrXn36qp4HWlrVT4ktwQas1l1LPxiVWncYnnL2eyMtKAmVIaG0XAp0QlrqJaxaA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved":
+ "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity":
+ "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.3.2",
+ "resolved":
+ "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
+ "integrity":
+ "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "jest-diff": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.3.tgz",
+ "integrity":
+ "sha512-/QqGvCDP5oZOF6PebDuLwrB2BMD8ffJv6TAGAdEVuDx1+uEgrHpSFrfrOiMRx2eJ1hgNjlQrOQEHetVwij90KA==",
+ "dev": true
+ },
+ "jest-matcher-utils": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz",
+ "integrity":
+ "sha512-lsEHVaTnKzdAPR5t4B6OcxXo9Vy4K+kRRbG5gtddY8lBEC+Mlpvm1CJcsMESRjzUhzkz568exMV1hTB76nAKbA==",
+ "dev": true
+ },
+ "jest-message-util": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-message-util/-/jest-message-util-22.4.3.tgz",
+ "integrity":
+ "sha512-iAMeKxhB3Se5xkSjU0NndLLCHtP4n+GtCqV0bISKA5dmOXQfEbdEmYiu2qpnWBDCQdEafNDDU6Q+l6oBMd/+BA==",
+ "dev": true
+ },
+ "jest-regex-util": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-22.4.3.tgz",
+ "integrity":
+ "sha512-LFg1gWr3QinIjb8j833bq7jtQopiwdAs67OGfkPrvy7uNUbVMfTXXcOKXJaeY5GgjobELkKvKENqq1xrUectWg==",
+ "dev": true
+ },
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity":
+ "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.3.0",
+ "resolved":
+ "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
+ "integrity":
+ "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
+ "dev": true
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+ "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved":
+ "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "dev": true,
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity":
+ "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true
+ }
+ }
+ },
+ "external-editor": {
+ "version": "2.1.0",
+ "resolved":
+ "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz",
+ "integrity":
+ "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==",
+ "dev": true
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "resolved":
+ "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "dev": true
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved":
+ "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
+ },
+ "fast-deep-equal": {
+ "version": "1.1.0",
+ "resolved":
+ "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
+ "dev": true
+ },
+ "fast-diff": {
+ "version": "1.1.2",
+ "resolved":
+ "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz",
+ "integrity":
+ "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==",
+ "dev": true
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved":
+ "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
+ "fb-watchman": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz",
+ "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=",
+ "dev": true
+ },
+ "figures": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "dev": true
+ },
+ "file-entry-cache": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
+ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
+ "dev": true
+ },
+ "filename-regex": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
+ "dev": true
+ },
+ "fileset": {
+ "version": "2.0.3",
+ "resolved":
+ "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz",
+ "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "2.2.3",
+ "resolved":
+ "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
+ "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
+ "dev": true
+ },
+ "find-parent-dir": {
+ "version": "0.3.0",
+ "resolved":
+ "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.0.tgz",
+ "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=",
+ "dev": true
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved":
+ "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true
+ },
+ "flat-cache": {
+ "version": "1.3.0",
+ "resolved":
+ "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
+ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
+ "dev": true
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "resolved":
+ "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "dev": true
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved":
+ "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ },
+ "form-data": {
+ "version": "2.1.4",
+ "resolved":
+ "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
+ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE="
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved":
+ "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "dev": true
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "fstream": {
+ "version": "1.0.11",
+ "resolved":
+ "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
+ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE="
+ },
+ "fstream-ignore": {
+ "version": "1.0.5",
+ "resolved":
+ "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz",
+ "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU="
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved":
+ "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity":
+ "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c="
+ },
+ "get-caller-file": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
+ "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
+ "dev": true
+ },
+ "get-own-enumerable-property-symbols": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz",
+ "integrity":
+ "sha512-TtY/sbOemiMKPRUDDanGCSgBYe7Mf0vbRsWnBZ+9yghpZ1MvcpSpuZFjHdEeY/LZjZy0vdLjS77L6HosisFiug==",
+ "dev": true
+ },
+ "get-stdin": {
+ "version": "5.0.1",
+ "resolved":
+ "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz",
+ "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "dev": true
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved":
+ "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+ "dev": true
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved":
+ "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ }
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity":
+ "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ=="
+ },
+ "glob-base": {
+ "version": "0.3.0",
+ "resolved":
+ "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "dev": true
+ },
+ "glob-parent": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "dev": true
+ },
+ "globals": {
+ "version": "9.18.0",
+ "resolved":
+ "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "integrity":
+ "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "dev": true
+ },
+ "globby": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
+ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
+ "dev": true
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved":
+ "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
+ },
+ "growly": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
+ "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=",
+ "dev": true
+ },
+ "handlebars": {
+ "version": "4.0.11",
+ "resolved":
+ "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz",
+ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=",
+ "dev": true,
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved":
+ "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.4.4",
+ "resolved":
+ "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "dev": true
+ }
+ }
+ },
+ "har-schema": {
+ "version": "1.0.5",
+ "resolved":
+ "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
+ "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4="
+ },
+ "har-validator": {
+ "version": "4.2.1",
+ "resolved":
+ "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
+ "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio="
+ },
+ "has": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
+ "dev": true
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "dev": true,
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved":
+ "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "has-values": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "dev": true,
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true
+ }
+ }
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true
+ }
+ }
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ="
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
+ },
+ "home-or-tmp": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
+ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.5.0",
+ "resolved":
+ "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
+ "integrity":
+ "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
+ "dev": true
+ },
+ "html-encoding-sniffer": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
+ "integrity":
+ "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
+ "dev": true
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "resolved":
+ "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8="
+ },
+ "husky": {
+ "version": "0.14.3",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-0.14.3.tgz",
+ "integrity":
+ "sha512-e21wivqHpstpoiWA/Yi8eFti8E+sQDSS53cpJsPptPs295QTOQR0ZwnHo2TXy1XOpZFD9rPOd3NpmqTK6uMLJA==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz",
+ "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=",
+ "dev": true
+ }
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.19",
+ "resolved":
+ "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
+ "integrity":
+ "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
+ "dev": true
+ },
+ "ignore": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz",
+ "integrity":
+ "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==",
+ "dev": true
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved":
+ "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved":
+ "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved":
+ "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk="
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved":
+ "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "ini": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity":
+ "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
+ },
+ "inquirer": {
+ "version": "3.3.0",
+ "resolved":
+ "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
+ "integrity":
+ "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-escapes": {
+ "version": "3.1.0",
+ "resolved":
+ "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
+ "integrity":
+ "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved":
+ "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity":
+ "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.3.2",
+ "resolved":
+ "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
+ "integrity":
+ "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved":
+ "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity":
+ "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved":
+ "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.3.0",
+ "resolved":
+ "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
+ "integrity":
+ "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
+ "dev": true
+ }
+ }
+ },
+ "invariant": {
+ "version": "2.2.2",
+ "resolved":
+ "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
+ "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
+ "dev": true
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "dev": true
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity":
+ "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity":
+ "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ }
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved":
+ "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved":
+ "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity":
+ "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-builtin-module": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "dev": true
+ },
+ "is-ci": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz",
+ "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=",
+ "dev": true
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity":
+ "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity":
+ "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity":
+ "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity":
+ "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ }
+ }
+ },
+ "is-directory": {
+ "version": "0.3.1",
+ "resolved":
+ "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+ "dev": true
+ },
+ "is-dotfile": {
+ "version": "1.0.3",
+ "resolved":
+ "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
+ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
+ "dev": true
+ },
+ "is-equal-shallow": {
+ "version": "0.1.3",
+ "resolved":
+ "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "dev": true
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved":
+ "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs="
+ },
+ "is-generator-fn": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz",
+ "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "dev": true
+ },
+ "is-number": {
+ "version": "2.1.0",
+ "resolved":
+ "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "dev": true
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "dev": true
+ },
+ "is-observable": {
+ "version": "0.2.0",
+ "resolved":
+ "https://registry.npmjs.org/is-observable/-/is-observable-0.2.0.tgz",
+ "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=",
+ "dev": true
+ },
+ "is-odd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz",
+ "integrity":
+ "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==",
+ "dev": true,
+ "dependencies": {
+ "is-number": {
+ "version": "4.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
+ "integrity":
+ "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
+ "dev": true
+ }
+ }
+ },
+ "is-path-cwd": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
+ "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
+ "dev": true
+ },
+ "is-path-in-cwd": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
+ "integrity":
+ "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
+ "dev": true
+ },
+ "is-path-inside": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
+ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+ "dev": true
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved":
+ "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity":
+ "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved":
+ "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "is-posix-bracket": {
+ "version": "0.1.1",
+ "resolved":
+ "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
+ "dev": true
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
+ "dev": true
+ },
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved":
+ "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+ "dev": true
+ },
+ "is-regexp": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
+ "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=",
+ "dev": true
+ },
+ "is-resolvable": {
+ "version": "1.1.0",
+ "resolved":
+ "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
+ "integrity":
+ "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved":
+ "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved":
+ "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity":
+ "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "isnumeric": {
+ "version": "0.2.0",
+ "resolved":
+ "https://registry.npmjs.org/isnumeric/-/isnumeric-0.2.0.tgz",
+ "integrity": "sha1-ojR7o2DeGeM9D/1ZD933dVy/LmQ="
+ },
+ "isobject": {
+ "version": "2.1.0",
+ "resolved":
+ "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved":
+ "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+ },
+ "istanbul-api": {
+ "version": "1.2.1",
+ "resolved":
+ "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.2.1.tgz",
+ "integrity":
+ "sha512-oFCwXvd65amgaPCzqrR+a2XjanS1MvpXN6l/MlMUTv6uiA1NOgGX+I0uyq8Lg3GDxsxPsaP1049krz3hIJ5+KA==",
+ "dev": true
+ },
+ "istanbul-lib-coverage": {
+ "version": "1.1.1",
+ "resolved":
+ "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz",
+ "integrity":
+ "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==",
+ "dev": true
+ },
+ "istanbul-lib-hook": {
+ "version": "1.1.0",
+ "resolved":
+ "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz",
+ "integrity":
+ "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==",
+ "dev": true
+ },
+ "istanbul-lib-instrument": {
+ "version": "1.9.1",
+ "resolved":
+ "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz",
+ "integrity":
+ "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==",
+ "dev": true
+ },
+ "istanbul-lib-report": {
+ "version": "1.1.2",
+ "resolved":
+ "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz",
+ "integrity":
+ "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==",
+ "dev": true,
+ "dependencies": {
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved":
+ "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true
+ }
+ }
+ },
+ "istanbul-lib-source-maps": {
+ "version": "1.2.2",
+ "resolved":
+ "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz",
+ "integrity":
+ "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==",
+ "dev": true,
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved":
+ "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity":
+ "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true
+ }
+ }
+ },
+ "istanbul-reports": {
+ "version": "1.1.3",
+ "resolved":
+ "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz",
+ "integrity":
+ "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==",
+ "dev": true
+ },
+ "jest": {
+ "version": "20.0.4",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-20.0.4.tgz",
+ "integrity": "sha1-PdJgwpidba1nix6cxNkZRPbWAqw=",
+ "dev": true
+ },
+ "jest-changed-files": {
+ "version": "20.0.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-20.0.3.tgz",
+ "integrity": "sha1-k5TVzGXEOEBhSb7xv01Sto4D4/g=",
+ "dev": true
+ },
+ "jest-cli": {
+ "version": "20.0.4",
+ "resolved":
+ "https://registry.npmjs.org/jest-cli/-/jest-cli-20.0.4.tgz",
+ "integrity": "sha1-5TKxnYiuW8bEF+iwWTpv6VSx3JM=",
+ "dev": true
+ },
+ "jest-config": {
+ "version": "20.0.4",
+ "resolved":
+ "https://registry.npmjs.org/jest-config/-/jest-config-20.0.4.tgz",
+ "integrity": "sha1-43kwqyIXyRNgXv8T5712PsSPruo=",
+ "dev": true
+ },
+ "jest-diff": {
+ "version": "20.0.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-diff/-/jest-diff-20.0.3.tgz",
+ "integrity": "sha1-gfKI/Z5nXw+yPHXxwrGURf5YZhc=",
+ "dev": true
+ },
+ "jest-docblock": {
+ "version": "20.0.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.0.3.tgz",
+ "integrity": "sha1-F76phDQswz2DxQ++FUXqDvqkRxI=",
+ "dev": true
+ },
+ "jest-environment-jsdom": {
+ "version": "20.0.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz",
+ "integrity": "sha1-BIqKwS7iJfcZBBdxODS7mZeH3pk=",
+ "dev": true
+ },
+ "jest-environment-node": {
+ "version": "20.0.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-20.0.3.tgz",
+ "integrity": "sha1-1Ii8RhKvLCRumG6K52caCZFj1AM=",
+ "dev": true
+ },
+ "jest-get-type": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz",
+ "integrity":
+ "sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==",
+ "dev": true
+ },
+ "jest-haste-map": {
+ "version": "20.0.5",
+ "resolved":
+ "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.0.5.tgz",
+ "integrity":
+ "sha512-0IKAQjUvuZjMCNi/0VNQQF74/H9KB67hsHJqGiwTWQC6XO5Azs7kLWm+6Q/dwuhvDUvABDOBMFK2/FwZ3sZ07Q==",
+ "dev": true
+ },
+ "jest-jasmine2": {
+ "version": "20.0.4",
+ "resolved":
+ "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz",
+ "integrity": "sha1-/MWxQReA2RHQQpAu8YWehS5g1eE=",
+ "dev": true
+ },
+ "jest-matcher-utils": {
+ "version": "20.0.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz",
+ "integrity": "sha1-s6a443yld4A7CDKpixZPRLeBVhI=",
+ "dev": true
+ },
+ "jest-matchers": {
+ "version": "20.0.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-matchers/-/jest-matchers-20.0.3.tgz",
+ "integrity": "sha1-ymnbHDLbWm9wf6XgQBq7VXAN/WA=",
+ "dev": true
+ },
+ "jest-message-util": {
+ "version": "20.0.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-message-util/-/jest-message-util-20.0.3.tgz",
+ "integrity": "sha1-auwoRDBvyw5udNV5bBAG2W/dgxw=",
+ "dev": true
+ },
+ "jest-mock": {
+ "version": "20.0.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-mock/-/jest-mock-20.0.3.tgz",
+ "integrity": "sha1-i8Bw6QQUqhVcEajWTIaaDVxx2lk=",
+ "dev": true
+ },
+ "jest-regex-util": {
+ "version": "20.0.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-20.0.3.tgz",
+ "integrity": "sha1-hburXRM+RGJbGfr4xqpRItCF12I=",
+ "dev": true
+ },
+ "jest-resolve": {
+ "version": "20.0.4",
+ "resolved":
+ "https://registry.npmjs.org/jest-resolve/-/jest-resolve-20.0.4.tgz",
+ "integrity": "sha1-lEiz6La6/BVHlETGSZBFt//ll6U=",
+ "dev": true
+ },
+ "jest-resolve-dependencies": {
+ "version": "20.0.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz",
+ "integrity": "sha1-bhSntxevDyyzZnxUneQK8Bexcjo=",
+ "dev": true
+ },
+ "jest-runtime": {
+ "version": "20.0.4",
+ "resolved":
+ "https://registry.npmjs.org/jest-runtime/-/jest-runtime-20.0.4.tgz",
+ "integrity": "sha1-osgCIZxCA/dU3xQE5JAYYWnRJNg=",
+ "dev": true,
+ "dependencies": {
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
+ }
+ },
+ "jest-snapshot": {
+ "version": "20.0.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-20.0.3.tgz",
+ "integrity": "sha1-W4R+GtsaTZCFKn+fElCG4YfHZWY=",
+ "dev": true
+ },
+ "jest-util": {
+ "version": "20.0.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-util/-/jest-util-20.0.3.tgz",
+ "integrity": "sha1-DAf32A2C9OWmfG+LnD/n9lz9Mq0=",
+ "dev": true
+ },
+ "jest-validate": {
+ "version": "20.0.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-validate/-/jest-validate-20.0.3.tgz",
+ "integrity": "sha1-0M/R3k9XnymEhJJcKA+PHZTsPKs=",
+ "dev": true
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved":
+ "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.10.0",
+ "resolved":
+ "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
+ "integrity":
+ "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
+ "dev": true
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "optional": true
+ },
+ "jsdom": {
+ "version": "9.12.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz",
+ "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=",
+ "dev": true
+ },
+ "jsesc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+ "dev": true
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz",
+ "integrity":
+ "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==",
+ "dev": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved":
+ "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved":
+ "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+ "dev": true
+ },
+ "json-stable-stringify": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8="
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "dev": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved":
+ "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
+ },
+ "json5": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+ "dev": true
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "resolved":
+ "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ }
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "resolved":
+ "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+ "dev": true,
+ "optional": true
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "dev": true
+ },
+ "left-pad": {
+ "version": "1.2.0",
+ "resolved":
+ "https://registry.npmjs.org/left-pad/-/left-pad-1.2.0.tgz",
+ "integrity": "sha1-0wpzxrggHY99jnlWupYWCHpo4O4=",
+ "dev": true
+ },
+ "leven": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
+ "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=",
+ "dev": true
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dev": true
+ },
+ "lint-staged": {
+ "version": "7.0.0",
+ "resolved":
+ "https://registry.npmjs.org/lint-staged/-/lint-staged-7.0.0.tgz",
+ "integrity":
+ "sha512-6Z89we28Qy1Ez7ZxO8yYfPKqzdxkSjnURq1d3RS2gKkZrA135xN+ptF3EWHrcHyBMmgA20vA7dGCQGj+OMS22g==",
+ "dev": true,
+ "dependencies": {
+ "acorn": {
+ "version": "5.5.3",
+ "resolved":
+ "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz",
+ "integrity":
+ "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==",
+ "dev": true
+ },
+ "acorn-globals": {
+ "version": "4.1.0",
+ "resolved":
+ "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz",
+ "integrity":
+ "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==",
+ "dev": true
+ },
+ "ajv": {
+ "version": "5.5.2",
+ "resolved":
+ "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved":
+ "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity":
+ "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved":
+ "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "dev": true
+ },
+ "boom": {
+ "version": "4.3.1",
+ "resolved":
+ "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
+ "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.3.2",
+ "resolved":
+ "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
+ "integrity":
+ "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
+ "dev": true
+ },
+ "cryptiles": {
+ "version": "3.1.2",
+ "resolved":
+ "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
+ "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
+ "dev": true,
+ "dependencies": {
+ "boom": {
+ "version": "5.2.0",
+ "resolved":
+ "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz",
+ "integrity":
+ "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
+ "dev": true
+ }
+ }
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved":
+ "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity":
+ "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved":
+ "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true
+ }
+ }
+ },
+ "form-data": {
+ "version": "2.3.2",
+ "resolved":
+ "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
+ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
+ "dev": true,
+ "dependencies": {
+ "combined-stream": {
+ "version": "1.0.6",
+ "resolved":
+ "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
+ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
+ "dev": true
+ }
+ }
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "dev": true
+ },
+ "har-validator": {
+ "version": "5.0.3",
+ "resolved":
+ "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
+ "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "hawk": {
+ "version": "6.0.2",
+ "resolved":
+ "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
+ "integrity":
+ "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
+ "dev": true
+ },
+ "hoek": {
+ "version": "4.2.1",
+ "resolved":
+ "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
+ "integrity":
+ "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==",
+ "dev": true
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved":
+ "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "dev": true
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved":
+ "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved":
+ "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved":
+ "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
+ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+ "dev": true
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved":
+ "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "jest-config": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-config/-/jest-config-22.4.3.tgz",
+ "integrity":
+ "sha512-KSg3EOToCgkX+lIvenKY7J8s426h6ahXxaUFJxvGoEk0562Z6inWj1TnKoGycTASwiLD+6kSYFALcjdosq9KIQ==",
+ "dev": true
+ },
+ "jest-diff": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.3.tgz",
+ "integrity":
+ "sha512-/QqGvCDP5oZOF6PebDuLwrB2BMD8ffJv6TAGAdEVuDx1+uEgrHpSFrfrOiMRx2eJ1hgNjlQrOQEHetVwij90KA==",
+ "dev": true
+ },
+ "jest-environment-jsdom": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-22.4.3.tgz",
+ "integrity":
+ "sha512-FviwfR+VyT3Datf13+ULjIMO5CSeajlayhhYQwpzgunswoaLIPutdbrnfUHEMyJCwvqQFaVtTmn9+Y8WCt6n1w==",
+ "dev": true
+ },
+ "jest-environment-node": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-22.4.3.tgz",
+ "integrity":
+ "sha512-reZl8XF6t/lMEuPWwo9OLfttyC26A5AMgDyEQ6DBgZuyfyeNUzYT8BFo6uxCCP/Av/b7eb9fTi3sIHFPBzmlRA==",
+ "dev": true
+ },
+ "jest-jasmine2": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-22.4.3.tgz",
+ "integrity":
+ "sha512-yZCPCJUcEY6R5KJB/VReo1AYI2b+5Ky+C+JA1v34jndJsRcLpU4IZX4rFJn7yDTtdNbO/nNqg+3SDIPNH2ecnw==",
+ "dev": true
+ },
+ "jest-matcher-utils": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz",
+ "integrity":
+ "sha512-lsEHVaTnKzdAPR5t4B6OcxXo9Vy4K+kRRbG5gtddY8lBEC+Mlpvm1CJcsMESRjzUhzkz568exMV1hTB76nAKbA==",
+ "dev": true
+ },
+ "jest-message-util": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-message-util/-/jest-message-util-22.4.3.tgz",
+ "integrity":
+ "sha512-iAMeKxhB3Se5xkSjU0NndLLCHtP4n+GtCqV0bISKA5dmOXQfEbdEmYiu2qpnWBDCQdEafNDDU6Q+l6oBMd/+BA==",
+ "dev": true,
+ "dependencies": {
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "resolved":
+ "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+ "dev": true
+ }
+ }
+ },
+ "jest-mock": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-mock/-/jest-mock-22.4.3.tgz",
+ "integrity":
+ "sha512-+4R6mH5M1G4NK16CKg9N1DtCaFmuxhcIqF4lQK/Q1CIotqMs/XBemfpDPeVZBFow6iyUNu6EBT9ugdNOTT5o5Q==",
+ "dev": true
+ },
+ "jest-regex-util": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-22.4.3.tgz",
+ "integrity":
+ "sha512-LFg1gWr3QinIjb8j833bq7jtQopiwdAs67OGfkPrvy7uNUbVMfTXXcOKXJaeY5GgjobELkKvKENqq1xrUectWg==",
+ "dev": true
+ },
+ "jest-resolve": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-resolve/-/jest-resolve-22.4.3.tgz",
+ "integrity":
+ "sha512-u3BkD/MQBmwrOJDzDIaxpyqTxYH+XqAXzVJP51gt29H8jpj3QgKof5GGO2uPGKGeA1yTMlpbMs1gIQ6U4vcRhw==",
+ "dev": true
+ },
+ "jest-snapshot": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-22.4.3.tgz",
+ "integrity":
+ "sha512-JXA0gVs5YL0HtLDCGa9YxcmmV2LZbwJ+0MfyXBBc5qpgkEYITQFJP7XNhcHFbUvRiniRpRbGVfJrOoYhhGE0RQ==",
+ "dev": true
+ },
+ "jest-util": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-util/-/jest-util-22.4.3.tgz",
+ "integrity":
+ "sha512-rfDfG8wyC5pDPNdcnAlZgwKnzHvZDu8Td2NJI/jAGKEGxJPYiE4F0ss/gSAkG4778Y23Hvbz+0GMrDJTeo7RjQ==",
+ "dev": true
+ },
+ "jest-validate": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/jest-validate/-/jest-validate-22.4.3.tgz",
+ "integrity":
+ "sha512-CfFM18W3GSP/xgmA4UouIx0ljdtfD2mjeBC6c89Gg17E44D4tQhAcTrZmf9djvipwU30kSTnk6CzcxdCCeSXfA==",
+ "dev": true
+ },
+ "jsdom": {
+ "version": "11.6.2",
+ "resolved":
+ "https://registry.npmjs.org/jsdom/-/jsdom-11.6.2.tgz",
+ "integrity":
+ "sha512-pAeZhpbSlUp5yQcS6cBQJwkbzmv4tWFaYxHbFVSxzXefqjvtRA851Z5N2P+TguVG9YeUDcgb8pdeVQRJh0XR3Q==",
+ "dev": true
+ },
+ "lodash": {
+ "version": "4.17.5",
+ "resolved":
+ "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
+ "integrity":
+ "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved":
+ "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity":
+ "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved":
+ "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved":
+ "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "braces": {
+ "version": "2.3.1",
+ "resolved":
+ "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz",
+ "integrity":
+ "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==",
+ "dev": true,
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity":
+ "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity":
+ "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true
+ }
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved":
+ "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity":
+ "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved":
+ "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved":
+ "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity":
+ "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity":
+ "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved":
+ "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity":
+ "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity":
+ "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved":
+ "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity":
+ "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity":
+ "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity":
+ "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true
+ }
+ }
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity":
+ "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ }
+ }
+ },
+ "parse5": {
+ "version": "4.0.0",
+ "resolved":
+ "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
+ "integrity":
+ "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==",
+ "dev": true
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved":
+ "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+ "dev": true
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved":
+ "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity":
+ "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true
+ },
+ "punycode": {
+ "version": "2.1.0",
+ "resolved":
+ "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
+ "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
+ "integrity":
+ "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
+ "dev": true
+ },
+ "request": {
+ "version": "2.85.0",
+ "resolved":
+ "https://registry.npmjs.org/request/-/request-2.85.0.tgz",
+ "integrity":
+ "sha512-8H7Ehijd4js+s6wuVPLjwORxD4zeuyjYugprdOXlPSqaApmL/QOy+EB/beICHVCHkGMKNh5rvihb5ov+IDw4mg==",
+ "dev": true
+ },
+ "sntp": {
+ "version": "2.1.0",
+ "resolved":
+ "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz",
+ "integrity":
+ "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved":
+ "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity":
+ "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "source-map-support": {
+ "version": "0.5.4",
+ "resolved":
+ "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.4.tgz",
+ "integrity":
+ "sha512-PETSPG6BjY1AHs2t64vS2aqAgu6dMIMXJULWFBGbh2Gr8nVLbCFDo6i/RMMvviIQ2h1Z8+5gQhVKSn2je9nmdg==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.3.0",
+ "resolved":
+ "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
+ "integrity":
+ "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
+ "dev": true
+ },
+ "tr46": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
+ "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
+ "dev": true
+ },
+ "whatwg-url": {
+ "version": "6.4.0",
+ "resolved":
+ "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz",
+ "integrity":
+ "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==",
+ "dev": true
+ },
+ "xml-name-validator": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
+ "integrity":
+ "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
+ "dev": true
+ }
+ }
+ },
+ "listr": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/listr/-/listr-0.13.0.tgz",
+ "integrity": "sha1-ILsLowuuZg7oTMBQPfS+PVYjiH0=",
+ "dev": true,
+ "dependencies": {
+ "figures": {
+ "version": "1.7.0",
+ "resolved":
+ "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
+ "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
+ "dev": true
+ }
+ }
+ },
+ "listr-silent-renderer": {
+ "version": "1.1.1",
+ "resolved":
+ "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz",
+ "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=",
+ "dev": true
+ },
+ "listr-update-renderer": {
+ "version": "0.4.0",
+ "resolved":
+ "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz",
+ "integrity": "sha1-NE2YDaLKLosUW6MFkI8yrj9MyKc=",
+ "dev": true,
+ "dependencies": {
+ "figures": {
+ "version": "1.7.0",
+ "resolved":
+ "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "dev": true
+ },
+ "indent-string": {
+ "version": "3.2.0",
+ "resolved":
+ "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+ "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
+ "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
+ "dev": true
+ }
+ }
+ },
+ "listr-verbose-renderer": {
+ "version": "0.4.1",
+ "resolved":
+ "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz",
+ "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=",
+ "dev": true,
+ "dependencies": {
+ "cli-cursor": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+ "dev": true
+ },
+ "figures": {
+ "version": "1.7.0",
+ "resolved":
+ "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "dev": true
+ },
+ "onetime": {
+ "version": "1.1.0",
+ "resolved":
+ "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "dev": true
+ }
+ }
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved":
+ "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+ "dev": true
+ },
+ "lodash.sortby": {
+ "version": "4.7.0",
+ "resolved":
+ "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
+ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "2.2.0",
+ "resolved":
+ "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity":
+ "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved":
+ "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity":
+ "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.3.2",
+ "resolved":
+ "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
+ "integrity":
+ "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.3.0",
+ "resolved":
+ "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
+ "integrity":
+ "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
+ "dev": true
+ }
+ }
+ },
+ "log-update": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz",
+ "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=",
+ "dev": true,
+ "dependencies": {
+ "cli-cursor": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+ "dev": true
+ },
+ "onetime": {
+ "version": "1.1.0",
+ "resolved":
+ "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "dev": true
+ }
+ }
+ },
+ "longest": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
+ "dev": true
+ },
+ "loose-envify": {
+ "version": "1.3.1",
+ "resolved":
+ "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
+ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "4.1.2",
+ "resolved":
+ "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz",
+ "integrity":
+ "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==",
+ "dev": true
+ },
+ "makeerror": {
+ "version": "1.0.11",
+ "resolved":
+ "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz",
+ "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=",
+ "dev": true
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved":
+ "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+ "dev": true
+ },
+ "map-visit": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "dev": true
+ },
+ "merge": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz",
+ "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "resolved":
+ "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.30.0",
+ "resolved":
+ "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
+ "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE="
+ },
+ "mime-types": {
+ "version": "2.1.17",
+ "resolved":
+ "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
+ "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo="
+ },
+ "mimic-fn": {
+ "version": "1.2.0",
+ "resolved":
+ "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity":
+ "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved":
+ "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity":
+ "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA=="
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved":
+ "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ },
+ "mixin-deep": {
+ "version": "1.3.1",
+ "resolved":
+ "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
+ "integrity":
+ "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
+ "dev": true,
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity":
+ "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM="
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "mute-stream": {
+ "version": "0.0.7",
+ "resolved":
+ "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "dev": true
+ },
+ "nanomatch": {
+ "version": "1.2.9",
+ "resolved":
+ "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz",
+ "integrity":
+ "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==",
+ "dev": true,
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved":
+ "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved":
+ "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity":
+ "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ }
+ }
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved":
+ "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
+ "node-int64": {
+ "version": "0.4.0",
+ "resolved":
+ "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=",
+ "dev": true
+ },
+ "node-notifier": {
+ "version": "5.1.2",
+ "resolved":
+ "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz",
+ "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=",
+ "dev": true
+ },
+ "node-pre-gyp": {
+ "version": "0.6.39",
+ "resolved":
+ "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz",
+ "integrity":
+ "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ=="
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00="
+ },
+ "normalize-package-data": {
+ "version": "2.4.0",
+ "resolved":
+ "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+ "integrity":
+ "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
+ "dev": true
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved":
+ "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true
+ },
+ "npm-path": {
+ "version": "2.0.4",
+ "resolved":
+ "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz",
+ "integrity":
+ "sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==",
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved":
+ "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true
+ },
+ "npm-which": {
+ "version": "3.0.1",
+ "resolved":
+ "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz",
+ "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=",
+ "dev": true
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity":
+ "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg=="
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
+ },
+ "nwmatcher": {
+ "version": "1.4.3",
+ "resolved":
+ "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz",
+ "integrity":
+ "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==",
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "resolved":
+ "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved":
+ "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "object-copy": {
+ "version": "0.1.0",
+ "resolved":
+ "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "dev": true,
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved":
+ "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved":
+ "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved":
+ "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved":
+ "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity":
+ "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity":
+ "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ }
+ }
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "dev": true,
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved":
+ "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "object.omit": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "dev": true
+ },
+ "object.pick": {
+ "version": "1.3.0",
+ "resolved":
+ "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "dev": true,
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved":
+ "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E="
+ },
+ "onetime": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "dev": true
+ },
+ "optimist": {
+ "version": "0.6.1",
+ "resolved":
+ "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+ "dev": true
+ },
+ "optionator": {
+ "version": "0.8.2",
+ "resolved":
+ "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+ "dev": true,
+ "dependencies": {
+ "wordwrap": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
+ "dev": true
+ }
+ }
+ },
+ "ora": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz",
+ "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=",
+ "dev": true,
+ "dependencies": {
+ "cli-cursor": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+ "dev": true
+ },
+ "onetime": {
+ "version": "1.1.0",
+ "resolved":
+ "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "dev": true
+ }
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
+ },
+ "os-locale": {
+ "version": "1.4.0",
+ "resolved":
+ "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+ "dev": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+ },
+ "osenv": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
+ "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ="
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "1.1.0",
+ "resolved":
+ "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz",
+ "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=",
+ "dev": true
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true
+ },
+ "p-map": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
+ "integrity":
+ "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
+ "dev": true
+ },
+ "parse-css-font": {
+ "version": "2.0.2",
+ "resolved":
+ "https://registry.npmjs.org/parse-css-font/-/parse-css-font-2.0.2.tgz",
+ "integrity": "sha1-e2CwYHBaJam5C38O1JPlgjJIplI="
+ },
+ "parse-glob": {
+ "version": "3.0.4",
+ "resolved":
+ "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "dev": true
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved":
+ "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true
+ },
+ "parse5": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
+ "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=",
+ "dev": true
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "resolved":
+ "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "path-is-inside": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.5",
+ "resolved":
+ "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
+ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved":
+ "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true
+ },
+ "performance-now": {
+ "version": "0.2.0",
+ "resolved":
+ "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
+ "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU="
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true
+ },
+ "pkg-dir": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
+ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
+ "dev": true,
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "resolved":
+ "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved":
+ "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true
+ }
+ }
+ },
+ "please-upgrade-node": {
+ "version": "3.0.1",
+ "resolved":
+ "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.0.1.tgz",
+ "integrity": "sha1-CmgfLBiRXlQzpcos2U4Lggangts=",
+ "dev": true
+ },
+ "pluralize": {
+ "version": "7.0.0",
+ "resolved":
+ "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
+ "integrity":
+ "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
+ "dev": true
+ },
+ "pn": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
+ "integrity":
+ "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==",
+ "dev": true
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "resolved":
+ "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "dev": true
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved":
+ "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "dev": true
+ },
+ "preserve": {
+ "version": "0.2.0",
+ "resolved":
+ "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
+ "dev": true
+ },
+ "prettier": {
+ "version": "1.11.1",
+ "resolved":
+ "https://registry.npmjs.org/prettier/-/prettier-1.11.1.tgz",
+ "integrity":
+ "sha512-T/KD65Ot0PB97xTrG8afQ46x3oiVhnfGjGESSI9NWYcG92+OUPZKkwHqGWXH2t9jK1crnQjubECW0FuOth+hxw==",
+ "dev": true
+ },
+ "pretty-format": {
+ "version": "20.0.3",
+ "resolved":
+ "https://registry.npmjs.org/pretty-format/-/pretty-format-20.0.3.tgz",
+ "integrity": "sha1-Ag41ClYKH+GpjcO+tsz/s4beixQ=",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved":
+ "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity":
+ "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true
+ }
+ }
+ },
+ "private": {
+ "version": "0.1.8",
+ "resolved":
+ "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
+ "integrity":
+ "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "resolved":
+ "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
+ },
+ "progress": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz",
+ "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=",
+ "dev": true
+ },
+ "prr": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz",
+ "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=",
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved":
+ "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ },
+ "qs": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
+ "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM="
+ },
+ "randomatic": {
+ "version": "1.1.7",
+ "resolved":
+ "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
+ "integrity":
+ "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==",
+ "dev": true,
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true
+ }
+ }
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true
+ }
+ }
+ },
+ "rc": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz",
+ "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=",
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved":
+ "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ }
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved":
+ "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "resolved":
+ "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved":
+ "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.3",
+ "resolved":
+ "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+ "integrity":
+ "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ=="
+ },
+ "regenerator-runtime": {
+ "version": "0.11.0",
+ "resolved":
+ "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz",
+ "integrity":
+ "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==",
+ "dev": true
+ },
+ "regex-cache": {
+ "version": "0.4.4",
+ "resolved":
+ "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
+ "integrity":
+ "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
+ "dev": true
+ },
+ "regex-not": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity":
+ "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "dev": true
+ },
+ "regexpp": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/regexpp/-/regexpp-1.0.1.tgz",
+ "integrity":
+ "sha512-8Ph721maXiOYSLtaDGKVmDn5wdsNaF6Px85qFNeMPQq0r8K5Y10tgP6YuR65Ws35n4DvzFcCxEnRNBIXQunzLw==",
+ "dev": true
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved":
+ "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
+ },
+ "repeat-element": {
+ "version": "1.1.2",
+ "resolved":
+ "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
+ "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved":
+ "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true
+ },
+ "request": {
+ "version": "2.81.0",
+ "resolved":
+ "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
+ "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA="
+ },
+ "request-promise-core": {
+ "version": "1.1.1",
+ "resolved":
+ "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz",
+ "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=",
+ "dev": true
+ },
+ "request-promise-native": {
+ "version": "1.0.5",
+ "resolved":
+ "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz",
+ "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=",
+ "dev": true
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved":
+ "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true
+ },
+ "require-from-string": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.1.tgz",
+ "integrity": "sha1-xUUjPp19pmFunVmt+zn8n1iGdv8=",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "dev": true
+ },
+ "require-uncached": {
+ "version": "1.0.3",
+ "resolved":
+ "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
+ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
+ "dev": true
+ },
"resolve": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
- "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
- "dev": true
- }
- }
- },
- "bser": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz",
- "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=",
- "dev": true
- },
- "builtin-modules": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
- "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
- "dev": true
- },
- "callsites": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
- "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
- "dev": true
- },
- "camelcase": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
- "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
- "dev": true,
- "optional": true
- },
- "canvas-prebuilt": {
- "version": "1.6.5-prerelease.1",
- "resolved": "https://registry.npmjs.org/canvas-prebuilt/-/canvas-prebuilt-1.6.5-prerelease.1.tgz",
- "integrity": "sha1-aBSyC5yAg13MJL/WGZFHKIYwUhw=",
- "dev": true
- },
- "caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
- "dev": true
- },
- "center-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
- "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
- "dev": true,
- "optional": true
- },
- "chai": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz",
- "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=",
- "dev": true
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
- "dev": true
- },
- "ci-info": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz",
- "integrity": "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==",
- "dev": true
- },
- "cliui": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
- "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
- "dev": true,
- "optional": true,
- "dependencies": {
- "wordwrap": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
- "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
- "dev": true,
- "optional": true
- }
- }
- },
- "co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
- "dev": true
- },
- "code-point-at": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
- "dev": true
- },
- "color-convert": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
- "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
- "dev": true
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
- "dev": true
- },
- "combined-stream": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
- "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
- "dev": true
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
- "dev": true
- },
- "console-control-strings": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
- "dev": true
- },
- "content-type-parser": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz",
- "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==",
- "dev": true
- },
- "convert-source-map": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz",
- "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=",
- "dev": true
- },
- "core-js": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",
- "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=",
- "dev": true
- },
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
- "dev": true
- },
- "cryptiles": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
- "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
- "dev": true
- },
- "css-font-size-keywords": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz",
- "integrity": "sha1-hUh1rOmspqjS7g00WkSq6btttss=",
- "dev": true
- },
- "css-font-stretch-keywords": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz",
- "integrity": "sha1-UM7puboDH7XJUtRyMTnx4Qe1SxA=",
- "dev": true
- },
- "css-font-style-keywords": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz",
- "integrity": "sha1-XDUygT9jtKHelU0TzqhqtDM0CeQ=",
- "dev": true
- },
- "css-font-weight-keywords": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz",
- "integrity": "sha1-m8BGcayFvHJLV07106yWsNYE/Zc=",
- "dev": true
- },
- "css-global-keywords": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz",
- "integrity": "sha1-cqmupyeW0Bmx0qMlLeTlqqN+Smk=",
- "dev": true
- },
- "css-list-helpers": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/css-list-helpers/-/css-list-helpers-1.0.1.tgz",
- "integrity": "sha1-//VxkiAtuDJAxBaG+RnkSacCT30=",
- "dev": true
- },
- "css-system-font-keywords": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz",
- "integrity": "sha1-hcbwhquk6zLFcaMIav/ENLhII+0=",
- "dev": true
- },
- "cssom": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz",
- "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=",
- "dev": true
- },
- "cssstyle": {
- "version": "0.2.37",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
- "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
- "dev": true
- },
- "dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
- "dev": true,
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
- }
- },
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
- "dev": true
- },
- "deep-eql": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz",
- "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=",
- "dev": true,
- "dependencies": {
- "type-detect": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz",
- "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=",
- "dev": true
- }
- }
- },
- "deep-extend": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
- "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=",
- "dev": true
- },
- "deep-is": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
- "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
- "dev": true
- },
- "default-require-extensions": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz",
- "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=",
- "dev": true
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
- "dev": true
- },
- "delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
- "dev": true
- },
- "detect-indent": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
- "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
- "dev": true
- },
- "detect-libc": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz",
- "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=",
- "dev": true
- },
- "diff": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz",
- "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==",
- "dev": true
- },
- "ecc-jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
- "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
- "dev": true,
- "optional": true
- },
- "errno": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
- "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=",
- "dev": true
- },
- "error-ex": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
- "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true
- },
- "escodegen": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz",
- "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==",
- "dev": true,
- "dependencies": {
- "esprima": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
- "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
- "dev": true
- }
- }
- },
- "esprima": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
- "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
- "dev": true
- },
- "estraverse": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
- "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
- "dev": true
- },
- "esutils": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
- "dev": true
- },
- "exec-sh": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz",
- "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==",
- "dev": true
- },
- "expand-brackets": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
- "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
- "dev": true
- },
- "expand-range": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
- "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
- "dev": true
- },
- "extend": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
- "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
- "dev": true
- },
- "extglob": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
- "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
- "dev": true
- },
- "extsprintf": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
- "dev": true
- },
- "fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
- "dev": true
- },
- "fb-watchman": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz",
- "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=",
- "dev": true
- },
- "filename-regex": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
- "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
- "dev": true
- },
- "fileset": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz",
- "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=",
- "dev": true
- },
- "fill-range": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
- "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
- "dev": true
- },
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dev": true
- },
- "for-in": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
- "dev": true
- },
- "for-own": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
- "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
- "dev": true
- },
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
- "dev": true
- },
- "form-data": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
- "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
- "dev": true
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
- "dev": true
- },
- "fstream": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
- "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
- "dev": true
- },
- "fstream-ignore": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz",
- "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=",
- "dev": true
- },
- "gauge": {
- "version": "2.7.4",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
- "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
- "dev": true
- },
- "get-caller-file": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
- "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
- "dev": true
- },
- "getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
- "dev": true,
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
- }
- },
- "glob": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
- "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
- "dev": true
- },
- "glob-base": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
- "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
- "dev": true
- },
- "glob-parent": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
- "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
- "dev": true
- },
- "globals": {
- "version": "9.18.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
- "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
- "dev": true
- },
- "graceful-fs": {
- "version": "4.1.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
- "dev": true
- },
- "growly": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
- "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=",
- "dev": true
- },
- "handlebars": {
- "version": "4.0.11",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz",
- "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=",
- "dev": true,
- "dependencies": {
- "async": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
- "dev": true
+ "version": "1.5.0",
+ "resolved":
+ "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz",
+ "integrity":
+ "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==",
+ "dev": true
+ },
+ "resolve-from": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
+ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
+ "dev": true
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "resolved":
+ "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "dev": true
+ },
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity":
+ "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "dev": true
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "resolved":
+ "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "dev": true,
+ "optional": true
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
+ "integrity":
+ "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w=="
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved":
+ "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "dev": true
+ },
+ "rx-lite": {
+ "version": "4.0.8",
+ "resolved":
+ "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
+ "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
+ "dev": true
+ },
+ "rx-lite-aggregates": {
+ "version": "4.0.8",
+ "resolved":
+ "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
+ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
+ "dev": true
+ },
+ "rxjs": {
+ "version": "5.5.8",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.8.tgz",
+ "integrity":
+ "sha512-Bz7qou7VAIoGiglJZbzbXa4vpX5BmTTN2Dj/se6+SwADtw4SihqBIiEa7VmTXJ8pynvq0iFr5Gx9VLyye1rIxQ==",
+ "dev": true,
+ "dependencies": {
+ "symbol-observable": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
+ "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=",
+ "dev": true
+ }
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "resolved":
+ "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "integrity":
+ "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
+ },
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved":
+ "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "dev": true
+ },
+ "sane": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/sane/-/sane-1.6.0.tgz",
+ "integrity": "sha1-lhDEUjB6E10pwf3+JUcDQYDEZ3U=",
+ "dev": true,
+ "dependencies": {
+ "bser": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/bser/-/bser-1.0.2.tgz",
+ "integrity": "sha1-OBEWlwsqbe6lZG3RXdcnhES1YWk=",
+ "dev": true
+ },
+ "fb-watchman": {
+ "version": "1.9.2",
+ "resolved":
+ "https://registry.npmjs.org/fb-watchman/-/fb-watchman-1.9.2.tgz",
+ "integrity": "sha1-okz0eCf4LTj7Waaa1wt247auc4M=",
+ "dev": true
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved":
+ "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity":
+ "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
+ "integrity":
+ "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg=="
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+ },
+ "set-value": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
+ "integrity":
+ "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
+ "dev": true,
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true
+ }
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved":
+ "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "shellwords": {
+ "version": "0.1.1",
+ "resolved":
+ "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
+ "integrity":
+ "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved":
+ "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
+ "integrity":
+ "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
+ "dev": true,
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ }
+ }
+ },
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved":
+ "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity":
+ "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "dev": true,
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved":
+ "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved":
+ "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved":
+ "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved":
+ "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity":
+ "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity":
+ "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "resolved":
+ "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity":
+ "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "dev": true,
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved":
+ "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved":
+ "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity":
+ "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "dev": true
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg="
},
"source-map": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
- "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
- "dev": true
- }
- }
- },
- "har-schema": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
- "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=",
- "dev": true
- },
- "har-validator": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
- "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
- "dev": true
- },
- "has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
- "dev": true
- },
- "has-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
- "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
- "dev": true
- },
- "has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
- "dev": true
- },
- "hawk": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
- "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
- "dev": true
- },
- "hoek": {
- "version": "2.16.3",
- "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
- "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
- "dev": true
- },
- "home-or-tmp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
- "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
- "dev": true
- },
- "hosted-git-info": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
- "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
- "dev": true
- },
- "html-encoding-sniffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
- "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
- "dev": true
- },
- "http-signature": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
- "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
- "dev": true
- },
- "iconv-lite": {
- "version": "0.4.19",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
- "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
- "dev": true
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "dev": true
- },
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
- "dev": true
- },
- "ini": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
- "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
- "dev": true
- },
- "invariant": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
- "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
- "dev": true
- },
- "invert-kv": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
- "dev": true
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
- "dev": true
- },
- "is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
- "dev": true
- },
- "is-builtin-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
- "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
- "dev": true
- },
- "is-ci": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz",
- "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=",
- "dev": true
- },
- "is-dotfile": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
- "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
- "dev": true
- },
- "is-equal-shallow": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
- "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
- "dev": true
- },
- "is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
- "dev": true
- },
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
- "dev": true
- },
- "is-finite": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
- "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "dev": true
- },
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
- "dev": true
- },
- "is-number": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
- "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
- "dev": true
- },
- "is-posix-bracket": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
- "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
- "dev": true
- },
- "is-primitive": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
- "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
- "dev": true
- },
- "is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
- "dev": true
- },
- "is-utf8": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
- "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
- "dev": true
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
- "dev": true
- },
- "isnumeric": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/isnumeric/-/isnumeric-0.2.0.tgz",
- "integrity": "sha1-ojR7o2DeGeM9D/1ZD933dVy/LmQ=",
- "dev": true
- },
- "isobject": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
- "dev": true
- },
- "isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
- "dev": true
- },
- "istanbul-api": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.2.1.tgz",
- "integrity": "sha512-oFCwXvd65amgaPCzqrR+a2XjanS1MvpXN6l/MlMUTv6uiA1NOgGX+I0uyq8Lg3GDxsxPsaP1049krz3hIJ5+KA==",
- "dev": true
- },
- "istanbul-lib-coverage": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz",
- "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==",
- "dev": true
- },
- "istanbul-lib-hook": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz",
- "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==",
- "dev": true
- },
- "istanbul-lib-instrument": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz",
- "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==",
- "dev": true
- },
- "istanbul-lib-report": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz",
- "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==",
- "dev": true,
- "dependencies": {
- "supports-color": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
- "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
- "dev": true
- }
- }
- },
- "istanbul-lib-source-maps": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz",
- "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==",
- "dev": true,
- "dependencies": {
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "dev": true
- }
- }
- },
- "istanbul-reports": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz",
- "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==",
- "dev": true
- },
- "jest": {
- "version": "20.0.4",
- "resolved": "https://registry.npmjs.org/jest/-/jest-20.0.4.tgz",
- "integrity": "sha1-PdJgwpidba1nix6cxNkZRPbWAqw=",
- "dev": true
- },
- "jest-changed-files": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-20.0.3.tgz",
- "integrity": "sha1-k5TVzGXEOEBhSb7xv01Sto4D4/g=",
- "dev": true
- },
- "jest-cli": {
- "version": "20.0.4",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-20.0.4.tgz",
- "integrity": "sha1-5TKxnYiuW8bEF+iwWTpv6VSx3JM=",
- "dev": true
- },
- "jest-config": {
- "version": "20.0.4",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-20.0.4.tgz",
- "integrity": "sha1-43kwqyIXyRNgXv8T5712PsSPruo=",
- "dev": true
- },
- "jest-diff": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-20.0.3.tgz",
- "integrity": "sha1-gfKI/Z5nXw+yPHXxwrGURf5YZhc=",
- "dev": true
- },
- "jest-docblock": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.0.3.tgz",
- "integrity": "sha1-F76phDQswz2DxQ++FUXqDvqkRxI=",
- "dev": true
- },
- "jest-environment-jsdom": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz",
- "integrity": "sha1-BIqKwS7iJfcZBBdxODS7mZeH3pk=",
- "dev": true
- },
- "jest-environment-node": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-20.0.3.tgz",
- "integrity": "sha1-1Ii8RhKvLCRumG6K52caCZFj1AM=",
- "dev": true
- },
- "jest-haste-map": {
- "version": "20.0.5",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.0.5.tgz",
- "integrity": "sha512-0IKAQjUvuZjMCNi/0VNQQF74/H9KB67hsHJqGiwTWQC6XO5Azs7kLWm+6Q/dwuhvDUvABDOBMFK2/FwZ3sZ07Q==",
- "dev": true
- },
- "jest-jasmine2": {
- "version": "20.0.4",
- "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz",
- "integrity": "sha1-/MWxQReA2RHQQpAu8YWehS5g1eE=",
- "dev": true
- },
- "jest-matcher-utils": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz",
- "integrity": "sha1-s6a443yld4A7CDKpixZPRLeBVhI=",
- "dev": true
- },
- "jest-matchers": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jest-matchers/-/jest-matchers-20.0.3.tgz",
- "integrity": "sha1-ymnbHDLbWm9wf6XgQBq7VXAN/WA=",
- "dev": true
- },
- "jest-message-util": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-20.0.3.tgz",
- "integrity": "sha1-auwoRDBvyw5udNV5bBAG2W/dgxw=",
- "dev": true
- },
- "jest-mock": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-20.0.3.tgz",
- "integrity": "sha1-i8Bw6QQUqhVcEajWTIaaDVxx2lk=",
- "dev": true
- },
- "jest-regex-util": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-20.0.3.tgz",
- "integrity": "sha1-hburXRM+RGJbGfr4xqpRItCF12I=",
- "dev": true
- },
- "jest-resolve": {
- "version": "20.0.4",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-20.0.4.tgz",
- "integrity": "sha1-lEiz6La6/BVHlETGSZBFt//ll6U=",
- "dev": true
- },
- "jest-resolve-dependencies": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz",
- "integrity": "sha1-bhSntxevDyyzZnxUneQK8Bexcjo=",
- "dev": true
- },
- "jest-runtime": {
- "version": "20.0.4",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-20.0.4.tgz",
- "integrity": "sha1-osgCIZxCA/dU3xQE5JAYYWnRJNg=",
- "dev": true,
- "dependencies": {
+ "version": "0.5.7",
+ "resolved":
+ "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "source-map-resolve": {
+ "version": "0.5.1",
+ "resolved":
+ "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz",
+ "integrity":
+ "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==",
+ "dev": true
+ },
+ "source-map-support": {
+ "version": "0.4.18",
+ "resolved":
+ "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
+ "integrity":
+ "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
+ "dev": true
+ },
+ "source-map-url": {
+ "version": "0.4.0",
+ "resolved":
+ "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+ "dev": true
+ },
+ "spdx-correct": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
+ "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "1.0.4",
+ "resolved":
+ "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
+ "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
+ "dev": true
+ },
+ "spdx-license-ids": {
+ "version": "1.2.2",
+ "resolved":
+ "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
+ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
+ "dev": true
+ },
+ "split-string": {
+ "version": "3.1.0",
+ "resolved":
+ "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity":
+ "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dev": true
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved":
+ "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "sshpk": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
+ "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ }
+ }
+ },
+ "stack-utils": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz",
+ "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=",
+ "dev": true
+ },
+ "staged-git-files": {
+ "version": "1.1.0",
+ "resolved":
+ "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.0.tgz",
+ "integrity": "sha1-GpuxMcGIVgECPHqt3T1UwiFCxSY=",
+ "dev": true
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "resolved":
+ "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "dev": true,
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved":
+ "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved":
+ "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved":
+ "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved":
+ "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity":
+ "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity":
+ "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "stealthy-require": {
+ "version": "1.1.1",
+ "resolved":
+ "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
+ "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
+ "dev": true
+ },
+ "stream-to-observable": {
+ "version": "0.2.0",
+ "resolved":
+ "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.2.0.tgz",
+ "integrity": "sha1-WdbqOT2HwsDdrBCqDVYbxrpvDhA=",
+ "dev": true
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved":
+ "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity":
+ "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ=="
+ },
+ "string-length": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
+ "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M="
+ },
+ "stringify-object": {
+ "version": "3.2.2",
+ "resolved":
+ "https://registry.npmjs.org/stringify-object/-/stringify-object-3.2.2.tgz",
+ "integrity":
+ "sha512-O696NF21oLiDy8PhpWu8AEqoZHw++QW6mUv0UvKZe8gWSdSvMXkiLufK7OmnP27Dro4GU5kb9U7JIO0mBuCRQg==",
+ "dev": true
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "resolved":
+ "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved":
+ "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8="
+ },
"strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "dev": true
- }
- }
- },
- "jest-snapshot": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-20.0.3.tgz",
- "integrity": "sha1-W4R+GtsaTZCFKn+fElCG4YfHZWY=",
- "dev": true
- },
- "jest-util": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-20.0.3.tgz",
- "integrity": "sha1-DAf32A2C9OWmfG+LnD/n9lz9Mq0=",
- "dev": true
- },
- "jest-validate": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-20.0.3.tgz",
- "integrity": "sha1-0M/R3k9XnymEhJJcKA+PHZTsPKs=",
- "dev": true
- },
- "js-tokens": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
- "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
- "dev": true
- },
- "js-yaml": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
- "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
- "dev": true
- },
- "jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
- "dev": true,
- "optional": true
- },
- "jsdom": {
- "version": "9.12.0",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz",
- "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=",
- "dev": true
- },
- "jsesc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
- "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
- "dev": true
- },
- "json-schema": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
- "dev": true
- },
- "json-stable-stringify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
- "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
- "dev": true
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
- "dev": true
- },
- "json5": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
- "dev": true
- },
- "jsonify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
- "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
- "dev": true
- },
- "jsprim": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
- "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
- "dev": true,
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
- }
- },
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true
- },
- "lazy-cache": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
- "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
- "dev": true,
- "optional": true
- },
- "lcid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
- "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
- "dev": true
- },
- "leven": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
- "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=",
- "dev": true
- },
- "levn": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
- "dev": true
- },
- "load-json-file": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
- "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
- "dev": true
- },
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "dev": true
- },
- "lodash": {
- "version": "4.17.4",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
- "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
- "dev": true
- },
- "longest": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
- "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
- "dev": true
- },
- "loose-envify": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
- "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
- "dev": true
- },
- "makeerror": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz",
- "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=",
- "dev": true
- },
- "merge": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz",
- "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=",
- "dev": true
- },
- "micromatch": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
- "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
- "dev": true
- },
- "mime-db": {
- "version": "1.30.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
- "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=",
- "dev": true
- },
- "mime-types": {
- "version": "2.1.17",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
- "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
- "dev": true
- },
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "dev": true
- },
- "minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
- "dev": true
- },
- "mkdirp": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
- "dev": true
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
- },
- "natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
- "dev": true
- },
- "node-int64": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
- "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=",
- "dev": true
- },
- "node-notifier": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz",
- "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=",
- "dev": true
- },
- "node-pre-gyp": {
- "version": "0.6.39",
- "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz",
- "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==",
- "dev": true
- },
- "nopt": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
- "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
- "dev": true
- },
- "normalize-package-data": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
- "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
- "dev": true
- },
- "normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
- "dev": true
- },
- "npmlog": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
- "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
- "dev": true
- },
- "number-is-nan": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
- "dev": true
- },
- "nwmatcher": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz",
- "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==",
- "dev": true
- },
- "oauth-sign": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
- "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
- "dev": true
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
- },
- "object.omit": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
- "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
- "dev": true
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dev": true
- },
- "optimist": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
- "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
- "dev": true
- },
- "optionator": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
- "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
- "dev": true,
- "dependencies": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true
+ },
+ "strip-indent": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
+ "dev": true
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
+ "symbol-observable": {
+ "version": "0.2.4",
+ "resolved":
+ "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz",
+ "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=",
+ "dev": true
+ },
+ "symbol-tree": {
+ "version": "3.2.2",
+ "resolved":
+ "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz",
+ "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=",
+ "dev": true
+ },
+ "table": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
+ "integrity":
+ "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
+ "dev": true,
+ "dependencies": {
+ "ajv": {
+ "version": "5.5.2",
+ "resolved":
+ "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved":
+ "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity":
+ "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.3.2",
+ "resolved":
+ "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
+ "integrity":
+ "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved":
+ "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity":
+ "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved":
+ "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.3.0",
+ "resolved":
+ "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
+ "integrity":
+ "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
+ "dev": true
+ }
+ }
+ },
+ "tar": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
+ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE="
+ },
+ "tar-pack": {
+ "version": "3.4.1",
+ "resolved":
+ "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.1.tgz",
+ "integrity":
+ "sha512-PPRybI9+jM5tjtCbN2cxmmRU7YmqT3Zv/UDy48tAh2XRkLa9bAORtSWLkVc13+GJF+cdTh1yEnHEk3cpTaL5Kg=="
+ },
+ "tcomb": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/tcomb/-/tcomb-2.7.0.tgz",
+ "integrity": "sha1-ENYpWAQWaaXVNWe5pO6M3iKxwrA="
+ },
+ "test-exclude": {
+ "version": "4.1.1",
+ "resolved":
+ "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz",
+ "integrity":
+ "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==",
+ "dev": true
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved":
+ "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "throat": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz",
+ "integrity":
+ "sha512-/EY8VpvlqJ+sFtLPeOgc8Pl7kQVOWv0woD87KTXVHPIAE842FGT+rokxIhe8xIUP1cfgrkt0as0vDLjDiMtr8w==",
+ "dev": true
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved":
+ "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity":
+ "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true
+ },
+ "tmpl": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz",
+ "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=",
+ "dev": true
+ },
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "resolved":
+ "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "dev": true
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "resolved":
+ "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "dev": true
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "resolved":
+ "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity":
+ "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "dev": true
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved":
+ "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "dev": true,
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true
+ }
+ }
+ },
+ "tough-cookie": {
+ "version": "2.3.3",
+ "resolved":
+ "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
+ "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE="
+ },
+ "tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
+ "dev": true
+ },
+ "trim-right": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
+ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved":
+ "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0="
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved":
+ "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "optional": true
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved":
+ "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dev": true
+ },
+ "type-detect": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz",
+ "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=",
+ "dev": true
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved":
+ "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "resolved":
+ "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "dev": true,
+ "optional": true,
+ "dependencies": {
+ "yargs": {
+ "version": "3.10.0",
+ "resolved":
+ "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "dev": true,
+ "optional": true
+ },
+ "uid-number": {
+ "version": "0.0.6",
+ "resolved":
+ "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz",
+ "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE="
+ },
+ "union-value": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
+ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
+ "dev": true,
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true
+ },
+ "set-value": {
+ "version": "0.4.3",
+ "resolved":
+ "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
+ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
+ "dev": true
+ }
+ }
+ },
+ "units-css": {
+ "version": "0.4.0",
+ "resolved":
+ "https://registry.npmjs.org/units-css/-/units-css-0.4.0.tgz",
+ "integrity": "sha1-1iKGU6UZg9fBb/KPi53Dsf/tOgc="
+ },
+ "unquote": {
+ "version": "1.1.0",
+ "resolved":
+ "https://registry.npmjs.org/unquote/-/unquote-1.1.0.tgz",
+ "integrity": "sha1-mOH8YItrhUx1r7G5WvwJm6adlC8="
+ },
+ "unset-value": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "dev": true,
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "resolved":
+ "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "dev": true,
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved":
+ "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "resolved":
+ "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "dev": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved":
+ "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "dev": true
+ },
+ "use": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz",
+ "integrity":
+ "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved":
+ "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity":
+ "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ }
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved":
+ "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "uuid": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
+ "integrity":
+ "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g=="
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.1",
+ "resolved":
+ "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
+ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
+ "dev": true
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ }
+ }
+ },
+ "viewport-dimensions": {
+ "version": "0.2.0",
+ "resolved":
+ "https://registry.npmjs.org/viewport-dimensions/-/viewport-dimensions-0.2.0.tgz",
+ "integrity": "sha1-3nQHR9tTh/0XJfUXXpG6x2r982w="
+ },
+ "w3c-hr-time": {
+ "version": "1.0.1",
+ "resolved":
+ "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz",
+ "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=",
+ "dev": true
+ },
+ "walker": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz",
+ "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=",
+ "dev": true
+ },
+ "watch": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz",
+ "integrity": "sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw=",
+ "dev": true
+ },
+ "webidl-conversions": {
+ "version": "4.0.2",
+ "resolved":
+ "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
+ "integrity":
+ "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
+ "dev": true
+ },
+ "whatwg-encoding": {
+ "version": "1.0.3",
+ "resolved":
+ "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz",
+ "integrity":
+ "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==",
+ "dev": true
+ },
+ "whatwg-url": {
+ "version": "4.8.0",
+ "resolved":
+ "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz",
+ "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=",
+ "dev": true,
+ "dependencies": {
+ "webidl-conversions": {
+ "version": "3.0.1",
+ "resolved":
+ "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=",
+ "dev": true
+ }
+ }
+ },
+ "which": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
+ "integrity":
+ "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
+ "dev": true
+ },
+ "which-module": {
+ "version": "1.0.0",
+ "resolved":
+ "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
+ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
+ "dev": true
+ },
+ "wide-align": {
+ "version": "1.1.2",
+ "resolved":
+ "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz",
+ "integrity":
+ "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w=="
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved":
+ "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "dev": true,
+ "optional": true
+ },
"wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
- "dev": true
- }
- }
- },
- "os-homedir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
- "dev": true
- },
- "os-locale": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
- "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
- "dev": true
- },
- "os-tmpdir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
- "dev": true
- },
- "osenv": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
- "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=",
- "dev": true
- },
- "p-limit": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz",
- "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=",
- "dev": true
- },
- "p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "dev": true
- },
- "p-map": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
- "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
- "dev": true
- },
- "parse-css-font": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/parse-css-font/-/parse-css-font-2.0.2.tgz",
- "integrity": "sha1-e2CwYHBaJam5C38O1JPlgjJIplI=",
- "dev": true
- },
- "parse-glob": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
- "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
- "dev": true
- },
- "parse-json": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
- "dev": true
- },
- "parse5": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
- "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=",
- "dev": true
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
- "dev": true
- },
- "path-parse": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
- "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
- "dev": true
- },
- "path-type": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
- "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
- "dev": true
- },
- "performance-now": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
- "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=",
- "dev": true
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true
- },
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
- "dev": true
- },
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
- "dev": true
- },
- "prelude-ls": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
- "dev": true
- },
- "preserve": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
- "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
- "dev": true
- },
- "pretty-format": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-20.0.3.tgz",
- "integrity": "sha1-Ag41ClYKH+GpjcO+tsz/s4beixQ=",
- "dev": true,
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
- "dev": true
- }
- }
- },
- "private": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
- "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
- "dev": true
- },
- "process-nextick-args": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
- "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
- "dev": true
- },
- "prr": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz",
- "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=",
- "dev": true
- },
- "punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
- "dev": true
- },
- "qs": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
- "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
- "dev": true
- },
- "randomatic": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
- "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==",
- "dev": true,
- "dependencies": {
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "dev": true,
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true
- }
- }
+ "version": "0.0.3",
+ "resolved":
+ "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
+ "dev": true
},
- "kind-of": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
- "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
- "dev": true
- }
- }
- },
- "rc": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz",
- "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=",
- "dev": true,
- "dependencies": {
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
- "dev": true
- }
- }
- },
- "read-pkg": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
- "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
- "dev": true
- },
- "read-pkg-up": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
- "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
- "dev": true,
- "dependencies": {
- "find-up": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
- "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
- "dev": true
+ "worker-farm": {
+ "version": "1.5.2",
+ "resolved":
+ "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.2.tgz",
+ "integrity":
+ "sha512-XxiQ9kZN5n6mmnW+mFJ+wXjNNI/Nx4DIdaAKLX1Bn6LYBWlN/zaBhu34DQYPZ1AJobQuu67S2OfDdNSVULvXkQ==",
+ "dev": true
},
- "path-exists": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
- "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
- "dev": true
- }
- }
- },
- "readable-stream": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
- "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
- "dev": true
- },
- "regenerator-runtime": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz",
- "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==",
- "dev": true
- },
- "regex-cache": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
- "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
- "dev": true
- },
- "remove-trailing-separator": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
- "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
- "dev": true
- },
- "repeat-element": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
- "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
- "dev": true
- },
- "repeat-string": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
- "dev": true
- },
- "repeating": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
- "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
- "dev": true
- },
- "request": {
- "version": "2.81.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
- "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
- "dev": true
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "dev": true
- },
- "require-main-filename": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
- "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
- "dev": true
- },
- "resolve": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz",
- "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==",
- "dev": true
- },
- "right-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
- "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
- "dev": true,
- "optional": true
- },
- "rimraf": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
- "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
- "dev": true
- },
- "safe-buffer": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
- "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
- "dev": true
- },
- "sane": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/sane/-/sane-1.6.0.tgz",
- "integrity": "sha1-lhDEUjB6E10pwf3+JUcDQYDEZ3U=",
- "dev": true,
- "dependencies": {
- "bser": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bser/-/bser-1.0.2.tgz",
- "integrity": "sha1-OBEWlwsqbe6lZG3RXdcnhES1YWk=",
- "dev": true
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved":
+ "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true
},
- "fb-watchman": {
- "version": "1.9.2",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-1.9.2.tgz",
- "integrity": "sha1-okz0eCf4LTj7Waaa1wt247auc4M=",
- "dev": true
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "write": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
+ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
+ "dev": true
+ },
+ "ws": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz",
+ "integrity":
+ "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==",
+ "dev": true
+ },
+ "xml-name-validator": {
+ "version": "2.0.1",
+ "resolved":
+ "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
+ "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=",
+ "dev": true
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "dev": true
+ },
+ "y18n": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved":
+ "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
},
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
- "dev": true
- }
- }
- },
- "sax": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
- "dev": true
- },
- "semver": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
- "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
- "dev": true
- },
- "set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
- "dev": true
- },
- "shellwords": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
- "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==",
- "dev": true
- },
- "signal-exit": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
- "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
- "dev": true
- },
- "slash": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
- "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
- "dev": true
- },
- "sntp": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
- "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
- "dev": true
- },
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "dev": true
- },
- "source-map-support": {
- "version": "0.4.18",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
- "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
- "dev": true
- },
- "spdx-correct": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
- "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
- "dev": true
- },
- "spdx-expression-parse": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
- "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
- "dev": true
- },
- "spdx-license-ids": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
- "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
- "dev": true
- },
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
- "dev": true
- },
- "sshpk": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
- "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
- "dev": true,
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
- }
- },
- "string_decoder": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
- "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
- "dev": true
- },
- "string-length": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
- "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=",
- "dev": true
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "dev": true
- },
- "stringstream": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
- "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
- "dev": true
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dev": true
- },
- "strip-bom": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
- "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
- "dev": true
- },
- "strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
- "dev": true
- },
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
- "dev": true
- },
- "symbol-tree": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz",
- "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=",
- "dev": true
- },
- "tar": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
- "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
- "dev": true
- },
- "tar-pack": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.1.tgz",
- "integrity": "sha512-PPRybI9+jM5tjtCbN2cxmmRU7YmqT3Zv/UDy48tAh2XRkLa9bAORtSWLkVc13+GJF+cdTh1yEnHEk3cpTaL5Kg==",
- "dev": true
- },
- "tcomb": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/tcomb/-/tcomb-2.7.0.tgz",
- "integrity": "sha1-ENYpWAQWaaXVNWe5pO6M3iKxwrA=",
- "dev": true
- },
- "test-exclude": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz",
- "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==",
- "dev": true
- },
- "throat": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz",
- "integrity": "sha512-/EY8VpvlqJ+sFtLPeOgc8Pl7kQVOWv0woD87KTXVHPIAE842FGT+rokxIhe8xIUP1cfgrkt0as0vDLjDiMtr8w==",
- "dev": true
- },
- "tmpl": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz",
- "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=",
- "dev": true
- },
- "to-fast-properties": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
- "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
- "dev": true
- },
- "tough-cookie": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
- "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
- "dev": true
- },
- "tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
- "dev": true
- },
- "trim-right": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
- "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
- "dev": true
- },
- "tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
- "dev": true
- },
- "tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
- "dev": true,
- "optional": true
- },
- "type-check": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
- "dev": true
- },
- "type-detect": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz",
- "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=",
- "dev": true
- },
- "uglify-js": {
- "version": "2.8.29",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
- "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
- "dev": true,
- "optional": true,
- "dependencies": {
"yargs": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
- "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
- "dev": true,
- "optional": true
- }
- }
- },
- "uglify-to-browserify": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
- "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
- "dev": true,
- "optional": true
- },
- "uid-number": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz",
- "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=",
- "dev": true
- },
- "units-css": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/units-css/-/units-css-0.4.0.tgz",
- "integrity": "sha1-1iKGU6UZg9fBb/KPi53Dsf/tOgc=",
- "dev": true
- },
- "unquote": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.0.tgz",
- "integrity": "sha1-mOH8YItrhUx1r7G5WvwJm6adlC8=",
- "dev": true
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
- "dev": true
- },
- "uuid": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
- "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==",
- "dev": true
- },
- "validate-npm-package-license": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
- "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
- "dev": true
- },
- "verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
- "dev": true,
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
- }
- },
- "viewport-dimensions": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/viewport-dimensions/-/viewport-dimensions-0.2.0.tgz",
- "integrity": "sha1-3nQHR9tTh/0XJfUXXpG6x2r982w=",
- "dev": true
- },
- "walker": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz",
- "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=",
- "dev": true
- },
- "watch": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz",
- "integrity": "sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw=",
- "dev": true
- },
- "webidl-conversions": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
- "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
- "dev": true
- },
- "whatwg-encoding": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz",
- "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==",
- "dev": true
- },
- "whatwg-url": {
- "version": "4.8.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz",
- "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=",
- "dev": true,
- "dependencies": {
- "webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=",
- "dev": true
- }
- }
- },
- "which": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
- "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
- "dev": true
- },
- "which-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
- "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
- "dev": true
- },
- "wide-align": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz",
- "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==",
- "dev": true
- },
- "window-size": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
- "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
- "dev": true,
- "optional": true
- },
- "wordwrap": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
- "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
- "dev": true
- },
- "worker-farm": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.2.tgz",
- "integrity": "sha512-XxiQ9kZN5n6mmnW+mFJ+wXjNNI/Nx4DIdaAKLX1Bn6LYBWlN/zaBhu34DQYPZ1AJobQuu67S2OfDdNSVULvXkQ==",
- "dev": true
- },
- "wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
- "dev": true
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
- "dev": true
- },
- "xml-name-validator": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
- "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=",
- "dev": true
- },
- "xtend": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
- "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
- "dev": true
- },
- "y18n": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
- "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
- "dev": true
- },
- "yargs": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
- "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
- "dev": true,
- "dependencies": {
- "camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
- "dev": true
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
+ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
+ "dev": true,
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "resolved":
+ "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "dev": true
+ }
+ }
},
- "cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "dev": true
- }
- }
- },
- "yargs-parser": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
- "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
- "dev": true,
- "dependencies": {
- "camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
- "dev": true
+ "yargs-parser": {
+ "version": "5.0.0",
+ "resolved":
+ "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
+ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
+ "dev": true,
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved":
+ "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "dev": true
+ }
+ }
}
- }
}
- }
}
diff --git a/package.json b/package.json
index 0bec9d0..a84b1b0 100644
--- a/package.json
+++ b/package.json
@@ -1,40 +1,46 @@
{
- "name": "resemblejs",
- "version": "2.10.0",
- "description": "Image analysis and comparison with HTML5",
- "main": "resemble.js",
- "repository": {
- "type": "git",
- "url": "https://github.com/Huddle/Resemble.js.git"
- },
- "keywords": [
- "comparison",
- "visual",
- "image",
- "diff",
- "compare",
- "html5"
- ],
- "author": "James Cryer",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/Huddle/Resemble.js/issues"
- },
- "homepage": "https://github.com/Huddle/Resemble.js",
- "scripts": {
- "test": "jest nodejs-tests",
- "test-watch": "jest --watch nodejs-tests"
- },
- "dependencies": {
- "canvas-prebuilt": "^1.6.5-prerelease.1"
- },
- "devDependencies": {
- "chai": "^3.4.1",
- "jest": "^20.0.4",
- "jest-cli": "^20.0.4",
- "color-convert": "^1.9.0"
- },
- "jest": {
- "testEnvironment": "node"
- }
+ "name": "resemblejs",
+ "version": "2.10.0",
+ "description": "Image analysis and comparison with HTML5",
+ "main": "resemble.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/Huddle/Resemble.js.git"
+ },
+ "keywords": ["comparison", "visual", "image", "diff", "compare", "html5"],
+ "author": "James Cryer",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/Huddle/Resemble.js/issues"
+ },
+ "homepage": "https://github.com/Huddle/Resemble.js",
+ "scripts": {
+ "test": "jest nodejs-tests",
+ "test-watch": "jest --watch nodejs-tests",
+ "precommit": "lint-staged",
+ "lint": "eslint **/*.js --fix"
+ },
+ "lint-staged": {
+ "*.{js,json,css,md}": ["prettier --write", "git add"]
+ },
+ "dependencies": {
+ "canvas-prebuilt": "^1.6.5-prerelease.1"
+ },
+ "devDependencies": {
+ "chai": "^3.4.1",
+ "color-convert": "^1.9.0",
+ "eslint": "^4.19.1",
+ "eslint-config-es5": "^0.5.0",
+ "eslint-config-prettier": "^2.9.0",
+ "eslint-plugin-import": "^2.9.0",
+ "eslint-plugin-prettier": "^2.6.0",
+ "husky": "^0.14.3",
+ "jest": "^20.0.4",
+ "jest-cli": "^20.0.4",
+ "lint-staged": "^7.0.0",
+ "prettier": "^1.11.1"
+ },
+ "jest": {
+ "testEnvironment": "node"
+ }
}
diff --git a/resemble.js b/resemble.js
index e27e790..80fbf3b 100644
--- a/resemble.js
+++ b/resemble.js
@@ -3,890 +3,1030 @@ James Cryer / Huddle
URL: https://github.com/Huddle/Resemble.js
*/
-(function (root, factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
- define([], factory);
- } else if (typeof module === 'object' && module.exports) {
- module.exports = factory();
- } else {
- root.resemble = factory();
- }
-}(this, function () {
- 'use strict';
-
- var Img;
- var Canvas;
-
- if (typeof Image !== 'undefined') {
+(function(root, factory) {
+ "use strict";
+ if (typeof define === "function" && define.amd) {
+ define([], factory);
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory();
+ } else {
+ root.resemble = factory();
+ }
+})(this, function() {
+ "use strict";
+
+ var Img;
+ var Canvas;
+
+ if (typeof Image !== "undefined") {
Img = Image;
} else {
- Canvas = require('canvas-prebuilt');
+ Canvas = require("canvas-prebuilt"); // eslint-disable-line global-require
Img = Canvas.Image;
}
- var document = typeof window !== "undefined" ? window.document : {
- createElement: function() {
- // This will work as long as only createElement is used on window.document
- return new Canvas();
- }
- };
+ var document =
+ typeof window !== "undefined"
+ ? window.document
+ : {
+ createElement: function() {
+ // This will work as long as only createElement is used on window.document
+ return new Canvas();
+ }
+ };
var oldGlobalSettings = {};
var globalOutputSettings = oldGlobalSettings;
- function setGlobalOutputSettings(settings) {
- var msg = 'warning resemble.outputSettings mutates global state, and ' +
- 'will be removed in 3.0.0';
- console.warn(msg);
- globalOutputSettings = settings;
- return this
- }
-
- var resemble = function( fileData ){
- var pixelTransparency = 1;
-
- var errorPixelColor = { // Color for Error Pixels. Between 0 and 255.
- red: 255,
- green: 0,
- blue: 255,
- alpha: 255
- };
-
- var targetPix = {r: 0, g: 0, b: 0, a: 0}; // isAntialiased
-
- function colorsDistance(c1, c2){
- return (Math.abs(c1.r - c2.r) + Math.abs(c1.g - c2.g) + Math.abs(c1.b - c2.b))/3;
- }
-
- function withinBoundingBox(x, y, width, height, box) {
- return x > (box.left || 0) &&
- x < (box.right || width) &&
- y > (box.top || 0) &&
- y < (box.bottom || height);
- }
-
- function withinComparedArea(x, y, width, height) {
- var isIncluded = true;
-
- if (boundingBox !== undefined && !withinBoundingBox(x, y, width, height, boundingBox)) {
- isIncluded = false;
- }
-
- if (ignoredBox !== undefined && withinBoundingBox(x, y, width, height, ignoredBox)) {
- isIncluded = false;
- }
-
- return isIncluded;
- }
-
- var errorPixelTransform = {
- flat: function (px, offset) {
- px[offset] = errorPixelColor.red;
- px[offset + 1] = errorPixelColor.green;
- px[offset + 2] = errorPixelColor.blue;
- px[offset + 3] = errorPixelColor.alpha;
- },
- movement: function (px, offset, d1, d2) {
- px[offset] = ((d2.r * (errorPixelColor.red / 255)) + errorPixelColor.red) / 2;
- px[offset + 1] = ((d2.g * (errorPixelColor.green / 255)) + errorPixelColor.green) / 2;
- px[offset + 2] = ((d2.b * (errorPixelColor.blue / 255)) + errorPixelColor.blue) / 2;
- px[offset + 3] = d2.a;
- },
- flatDifferenceIntensity: function (px, offset, d1, d2) {
- px[offset] = errorPixelColor.red;
- px[offset + 1] = errorPixelColor.green;
- px[offset + 2] = errorPixelColor.blue;
- px[offset + 3] = colorsDistance(d1, d2);
- },
- movementDifferenceIntensity: function (px, offset, d1, d2) {
- var ratio = colorsDistance(d1, d2) / 255 * 0.8;
-
- px[offset] = ((1 - ratio) * (d2.r * (errorPixelColor.red / 255)) + ratio * errorPixelColor.red);
- px[offset + 1] = ((1 - ratio) * (d2.g * (errorPixelColor.green / 255)) + ratio * errorPixelColor.green);
- px[offset + 2] = ((1 - ratio) * (d2.b * (errorPixelColor.blue / 255)) + ratio * errorPixelColor.blue);
- px[offset + 3] = d2.a;
- },
- diffOnly: function (px, offset, d1, d2) {
- px[offset] = d2.r;
- px[offset + 1] = d2.g;
- px[offset + 2] = d2.b;
- px[offset + 3] = d2.a;
- }
- };
-
- var errorPixel = errorPixelTransform.flat;
- var errorType;
- var boundingBox;
- var ignoredBox;
- var largeImageThreshold = 1200;
- var useCrossOrigin = true;
- var data = {};
- var images = [];
- var updateCallbackArray = [];
-
- var tolerance = { // between 0 and 255
- red: 16,
- green: 16,
- blue: 16,
- alpha: 16,
- minBrightness: 16,
- maxBrightness: 240
- };
-
- var ignoreAntialiasing = false;
- var ignoreColors = false;
- var scaleToSameSize = false;
-
- function triggerDataUpdate(){
- var len = updateCallbackArray.length;
- var i;
- for(i=0;i (box.left || 0) &&
+ x < (box.right || width) &&
+ y > (box.top || 0) &&
+ y < (box.bottom || height)
+ );
+ }
+
+ function withinComparedArea(x, y, width, height) {
+ var isIncluded = true;
+
+ if (
+ boundingBox !== undefined &&
+ !withinBoundingBox(x, y, width, height, boundingBox)
+ ) {
+ isIncluded = false;
+ }
+
+ if (
+ ignoredBox !== undefined &&
+ withinBoundingBox(x, y, width, height, ignoredBox)
+ ) {
+ isIncluded = false;
+ }
+
+ return isIncluded;
+ }
+
+ var errorPixelTransform = {
+ flat: function(px, offset) {
+ px[offset] = errorPixelColor.red;
+ px[offset + 1] = errorPixelColor.green;
+ px[offset + 2] = errorPixelColor.blue;
+ px[offset + 3] = errorPixelColor.alpha;
+ },
+ movement: function(px, offset, d1, d2) {
+ px[offset] =
+ (d2.r * (errorPixelColor.red / 255) + errorPixelColor.red) /
+ 2;
+ px[offset + 1] =
+ (d2.g * (errorPixelColor.green / 255) +
+ errorPixelColor.green) /
+ 2;
+ px[offset + 2] =
+ (d2.b * (errorPixelColor.blue / 255) +
+ errorPixelColor.blue) /
+ 2;
+ px[offset + 3] = d2.a;
+ },
+ flatDifferenceIntensity: function(px, offset, d1, d2) {
+ px[offset] = errorPixelColor.red;
+ px[offset + 1] = errorPixelColor.green;
+ px[offset + 2] = errorPixelColor.blue;
+ px[offset + 3] = colorsDistance(d1, d2);
+ },
+ movementDifferenceIntensity: function(px, offset, d1, d2) {
+ var ratio = colorsDistance(d1, d2) / 255 * 0.8;
+
+ px[offset] =
+ (1 - ratio) * (d2.r * (errorPixelColor.red / 255)) +
+ ratio * errorPixelColor.red;
+ px[offset + 1] =
+ (1 - ratio) * (d2.g * (errorPixelColor.green / 255)) +
+ ratio * errorPixelColor.green;
+ px[offset + 2] =
+ (1 - ratio) * (d2.b * (errorPixelColor.blue / 255)) +
+ ratio * errorPixelColor.blue;
+ px[offset + 3] = d2.a;
+ },
+ diffOnly: function(px, offset, d1, d2) {
+ px[offset] = d2.r;
+ px[offset + 1] = d2.g;
+ px[offset + 2] = d2.b;
+ px[offset + 3] = d2.a;
+ }
+ };
+
+ var errorPixel = errorPixelTransform.flat;
+ var errorType;
+ var boundingBox;
+ var ignoredBox;
+ var largeImageThreshold = 1200;
+ var useCrossOrigin = true;
+ var data = {};
+ var images = [];
+ var updateCallbackArray = [];
+
+ var tolerance = {
+ // between 0 and 255
+ red: 16,
+ green: 16,
+ blue: 16,
+ alpha: 16,
+ minBrightness: 16,
+ maxBrightness: 240
+ };
+
+ var ignoreAntialiasing = false;
+ var ignoreColors = false;
+ var scaleToSameSize = false;
+
+ function triggerDataUpdate() {
+ var len = updateCallbackArray.length;
+ var i;
+ for (i = 0; i < len; i++) {
+ if (typeof updateCallbackArray[i] === "function") {
+ updateCallbackArray[i](data);
+ }
+ }
+ }
+
+ function loop(w, h, callback) {
+ var x;
+ var y;
+
+ for (x = 0; x < w; x++) {
+ for (y = 0; y < h; y++) {
+ callback(x, y);
+ }
+ }
+ }
+
+ function parseImage(sourceImageData, width, height) {
+ var pixelCount = 0;
+ var redTotal = 0;
+ var greenTotal = 0;
+ var blueTotal = 0;
+ var alphaTotal = 0;
+ var brightnessTotal = 0;
+ var whiteTotal = 0;
+ var blackTotal = 0;
+
+ loop(width, height, function(horizontalPos, verticalPos) {
+ var offset = (verticalPos * width + horizontalPos) * 4;
+ var red = sourceImageData[offset];
+ var green = sourceImageData[offset + 1];
+ var blue = sourceImageData[offset + 2];
+ var alpha = sourceImageData[offset + 3];
+ var brightness = getBrightness(red, green, blue);
+
+ if (red === green && red === blue && alpha) {
+ if (red === 0) {
+ blackTotal++;
+ } else if (red === 255) {
+ whiteTotal++;
+ }
+ }
+
+ pixelCount++;
+
+ redTotal += red / 255 * 100;
+ greenTotal += green / 255 * 100;
+ blueTotal += blue / 255 * 100;
+ alphaTotal += (255 - alpha) / 255 * 100;
+ brightnessTotal += brightness / 255 * 100;
+ });
+
+ data.red = Math.floor(redTotal / pixelCount);
+ data.green = Math.floor(greenTotal / pixelCount);
+ data.blue = Math.floor(blueTotal / pixelCount);
+ data.alpha = Math.floor(alphaTotal / pixelCount);
+ data.brightness = Math.floor(brightnessTotal / pixelCount);
+ data.white = Math.floor(whiteTotal / pixelCount * 100);
+ data.black = Math.floor(blackTotal / pixelCount * 100);
+
+ triggerDataUpdate();
+ }
+
+ function loadImageData(fileDataForImage, callback) {
+ var fileReader;
+ var hiddenImage = new Img();
+
+ if (!hiddenImage.setAttribute) {
+ hiddenImage.setAttribute = function setAttribute() {};
+ }
+
+ if (useCrossOrigin) {
+ hiddenImage.setAttribute("crossorigin", "anonymous");
+ }
+
+ hiddenImage.onerror = function(err) {
hiddenImage.onload = null;
- hiddenImage.onerror = null; //fixes pollution between calls
- images.push({ error : err ? err + "" : "Image load error." });
- callback();
- };
+ hiddenImage.onerror = null; // fixes pollution between calls
+ images.push({ error: err ? err + "" : "Image load error." });
+ callback();
+ };
- hiddenImage.onload = function() {
- hiddenImage.onload = null; //fixes pollution between calls
+ hiddenImage.onload = function() {
+ hiddenImage.onload = null; // fixes pollution between calls
hiddenImage.onerror = null;
- var hiddenCanvas = document.createElement('canvas');
- var imageData;
-
- // don't assign to hiddenImage, see https://github.com/Huddle/Resemble.js/pull/87/commits/300d43352a2845aad289b254bfbdc7cd6a37e2d7
- var width = hiddenImage.width;
- var height = hiddenImage.height;
-
- if( scaleToSameSize && images.length == 1 ){
- width = images[0].width;
- height = images[0].height;
- }
-
- hiddenCanvas.width = width;
- hiddenCanvas.height = height;
-
- hiddenCanvas.getContext('2d').drawImage(hiddenImage, 0, 0, width, height);
- imageData = hiddenCanvas.getContext('2d').getImageData(0, 0, width, height);
-
- images.push(imageData);
-
- callback(imageData, width, height);
- };
-
- if (typeof fileData === 'string') {
- hiddenImage.src = fileData;
- if (hiddenImage.complete && hiddenImage.naturalWidth > 0) {
- hiddenImage.onload();
- }
- } else if (typeof fileData.data !== 'undefined'
- && typeof fileData.width === 'number'
- && typeof fileData.height === 'number') {
-
- images.push(fileData);
-
- callback(fileData, fileData.width, fileData.height);
- } else if (typeof Buffer !== 'undefined' && fileData instanceof Buffer){
- // If we have Buffer, assume we're on Node+Canvas and its supported
- hiddenImage.src = fileData;
- } else {
- fileReader = new FileReader();
- fileReader.onload = function (event) {
- hiddenImage.src = event.target.result;
- };
- fileReader.readAsDataURL(fileData);
- }
- }
-
- function isColorSimilar(a, b, color){
-
- var absDiff = Math.abs(a - b);
-
- if(typeof a === 'undefined'){
- return false;
- }
- if(typeof b === 'undefined'){
- return false;
- }
-
- if(a === b){
- return true;
- } else if ( absDiff < tolerance[color] ) {
- return true;
- } else {
- return false;
- }
- }
-
- function isPixelBrightnessSimilar(d1, d2){
- var alpha = isColorSimilar(d1.a, d2.a, 'alpha');
- var brightness = isColorSimilar(d1.brightness, d2.brightness, 'minBrightness');
- return brightness && alpha;
- }
-
- function getBrightness(r,g,b){
- return 0.3*r + 0.59*g + 0.11*b;
- }
-
- function isRGBSame(d1,d2){
- var red = d1.r === d2.r;
- var green = d1.g === d2.g;
- var blue = d1.b === d2.b;
- return red && green && blue;
- }
-
- function isRGBSimilar(d1, d2){
- var red = isColorSimilar(d1.r,d2.r,'red');
- var green = isColorSimilar(d1.g,d2.g,'green');
- var blue = isColorSimilar(d1.b,d2.b,'blue');
- var alpha = isColorSimilar(d1.a, d2.a, 'alpha');
-
- return red && green && blue && alpha;
- }
-
- function isContrasting(d1, d2){
- return Math.abs(d1.brightness - d2.brightness) > tolerance.maxBrightness;
- }
-
- function getHue(r,g,b){
-
- r = r / 255;
- g = g / 255;
- b = b / 255;
- var max = Math.max(r, g, b), min = Math.min(r, g, b);
- var h;
- var d;
-
- if (max == min){
- h = 0; // achromatic
- } else{
- d = max - min;
- switch(max){
- case r: h = (g - b) / d + (g < b ? 6 : 0); break;
- case g: h = (b - r) / d + 2; break;
- case b: h = (r - g) / d + 4; break;
- }
- h /= 6;
- }
-
- return h;
- }
-
- function isAntialiased(sourcePix, data, cacheSet, verticalPos, horizontalPos, width){
- var offset;
- var distance = 1;
- var i;
- var j;
- var hasHighContrastSibling = 0;
- var hasSiblingWithDifferentHue = 0;
- var hasEquivalentSibling = 0;
-
- addHueInfo(sourcePix);
-
- for (i = distance*-1; i <= distance; i++){
- for (j = distance*-1; j <= distance; j++){
-
- if(i===0 && j===0){
- // ignore source pixel
- } else {
-
- offset = ((verticalPos+j)*width + (horizontalPos+i)) * 4;
-
- if(!getPixelInfo(targetPix , data, offset, cacheSet)){
- continue;
- }
-
- addBrightnessInfo(targetPix);
- addHueInfo(targetPix);
-
- if( isContrasting(sourcePix, targetPix) ){
- hasHighContrastSibling++;
- }
-
- if( isRGBSame(sourcePix,targetPix) ){
- hasEquivalentSibling++;
- }
-
- if( Math.abs(targetPix.h - sourcePix.h) > 0.3 ){
- hasSiblingWithDifferentHue++;
- }
-
- if( hasSiblingWithDifferentHue > 1 || hasHighContrastSibling > 1){
- return true;
- }
- }
- }
- }
-
- if(hasEquivalentSibling < 2){
- return true;
- }
-
- return false;
- }
-
- function copyPixel(px, offset, data){
- if (errorType === 'diffOnly') {
- return;
- }
-
- px[offset] = data.r; //r
- px[offset + 1] = data.g; //g
- px[offset + 2] = data.b; //b
- px[offset + 3] = data.a * pixelTransparency; //a
- }
-
- function copyGrayScalePixel(px, offset, data){
- if (errorType === 'diffOnly') {
- return;
- }
-
- px[offset] = data.brightness; //r
- px[offset + 1] = data.brightness; //g
- px[offset + 2] = data.brightness; //b
- px[offset + 3] = data.a * pixelTransparency; //a
- }
-
- function getPixelInfo(dst, data, offset) {
- if (data.length > offset) {
- dst.r = data[offset];
- dst.g = data[offset + 1];
- dst.b = data[offset + 2];
- dst.a = data[offset + 3];
-
- return true;
- }
-
- return false;
- }
-
- function addBrightnessInfo(data){
- data.brightness = getBrightness(data.r,data.g,data.b); // 'corrected' lightness
- }
-
- function addHueInfo(data){
- data.h = getHue(data.r,data.g,data.b);
- }
-
- function analyseImages(img1, img2, width, height){
-
- var hiddenCanvas = document.createElement('canvas');
-
- var data1 = img1.data;
- var data2 = img2.data;
-
- hiddenCanvas.width = width;
- hiddenCanvas.height = height;
-
- var context = hiddenCanvas.getContext('2d');
- var imgd = context.createImageData(width,height);
- var targetPix = imgd.data;
-
- var mismatchCount = 0;
- var diffBounds = {
- top: height,
- left: width,
- bottom: 0,
- right: 0
- };
- var updateBounds = function(x, y) {
- diffBounds.left = Math.min(x, diffBounds.left);
- diffBounds.right = Math.max(x, diffBounds.right);
- diffBounds.top = Math.min(y, diffBounds.top);
- diffBounds.bottom = Math.max(y, diffBounds.bottom);
- };
-
- var time = Date.now();
-
- var skip;
-
- if(!!largeImageThreshold && ignoreAntialiasing && (width > largeImageThreshold || height > largeImageThreshold)){
- skip = 6;
- }
-
- var pixel1 = {r: 0, g: 0, b: 0, a: 0};
- var pixel2 = { r: 0, g: 0, b: 0, a: 0 };
-
- loop(width, height, function(horizontalPos, verticalPos){
-
- if(skip){ // only skip if the image isn't small
- if(verticalPos % skip === 0 || horizontalPos % skip === 0){
- return;
- }
- }
-
- var offset = (verticalPos*width + horizontalPos) * 4;
- var isWithinComparedArea = withinComparedArea(horizontalPos, verticalPos, width, height);
-
- if (!getPixelInfo(pixel1, data1, offset, 1) || !getPixelInfo(pixel2, data2, offset, 2)) {
- return;
- }
-
- if (ignoreColors){
-
- addBrightnessInfo(pixel1);
- addBrightnessInfo(pixel2);
-
- if( isPixelBrightnessSimilar(pixel1, pixel2) || !isWithinComparedArea ){
- copyGrayScalePixel(targetPix, offset, pixel2);
- } else {
- errorPixel(targetPix, offset, pixel1, pixel2);
- mismatchCount++;
- updateBounds(horizontalPos, verticalPos);
- }
- return;
- }
-
- if( isRGBSimilar(pixel1, pixel2) || !isWithinComparedArea ){
- copyPixel(targetPix, offset, pixel1);
-
- } else if( ignoreAntialiasing && (
- addBrightnessInfo(pixel1), // jit pixel info augmentation looks a little weird, sorry.
- addBrightnessInfo(pixel2),
- isAntialiased(pixel1, data1, 1, verticalPos, horizontalPos, width) ||
- isAntialiased(pixel2, data2, 2, verticalPos, horizontalPos, width)
- )){
-
- if( isPixelBrightnessSimilar(pixel1, pixel2) || !isWithinComparedArea ){
- copyGrayScalePixel(targetPix, offset, pixel2);
- } else {
- errorPixel(targetPix, offset, pixel1, pixel2);
- mismatchCount++;
- updateBounds(horizontalPos, verticalPos);
- }
- } else {
- errorPixel(targetPix, offset, pixel1, pixel2);
- mismatchCount++;
- updateBounds(horizontalPos, verticalPos);
- }
-
- });
-
- data.rawMisMatchPercentage = (mismatchCount / (height*width) * 100);
- data.misMatchPercentage = data.rawMisMatchPercentage.toFixed(2);
- data.diffBounds = diffBounds;
- data.analysisTime = Date.now() - time;
-
- data.getImageDataUrl = function(text){
- var barHeight = 0;
-
- if(text){
- barHeight = addLabel(text,context,hiddenCanvas);
- }
-
- context.putImageData(imgd, 0, barHeight);
-
- return hiddenCanvas.toDataURL("image/png");
- };
-
- if (hiddenCanvas.toBuffer) {
- data.getBuffer = function(includeOriginal) {
- if (includeOriginal) {
- var imageWidth = hiddenCanvas.width + 2;
- hiddenCanvas.width = imageWidth * 3;
- context.putImageData(img1, 0, 0);
- context.putImageData(img2, imageWidth, 0);
- context.putImageData(imgd, imageWidth * 2, 0);
- } else {
- context.putImageData(imgd, 0, 0);
- }
- return hiddenCanvas.toBuffer();
- }
- }
- }
-
- function addLabel(text, context, hiddenCanvas){
- var textPadding = 2;
-
- context.font = '12px sans-serif';
-
- var textWidth = context.measureText(text).width + textPadding*2;
- var barHeight = 22;
-
- if(textWidth > hiddenCanvas.width){
- hiddenCanvas.width = textWidth;
- }
-
- hiddenCanvas.height += barHeight;
-
- context.fillStyle = "#666";
- context.fillRect(0,0,hiddenCanvas.width,barHeight -4);
- context.fillStyle = "#fff";
- context.fillRect(0,barHeight -4,hiddenCanvas.width, 4);
-
- context.fillStyle = "#fff";
- context.textBaseline = "top";
- context.font = '12px sans-serif';
- context.fillText(text, textPadding, 1);
-
- return barHeight;
- }
-
- function normalise(img, w, h){
- var c;
- var context;
-
- if(img.height < h || img.width < w){
- c = document.createElement('canvas');
- c.width = w;
- c.height = h;
- context = c.getContext('2d');
- context.putImageData(img, 0, 0);
- return context.getImageData(0, 0, w, h);
- }
-
- return img;
- }
-
- function outputSettings(options){
- var key;
- var undefined;
-
- if(options.errorColor){
- for (key in options.errorColor) {
- errorPixelColor[key] = options.errorColor[key] === undefined ? errorPixelColor[key] : options.errorColor[key];
- }
- }
-
- if(options.errorType && errorPixelTransform[options.errorType] ){
- errorPixel = errorPixelTransform[options.errorType];
- errorType = options.errorType;
- }
-
- if(options.errorPixel && typeof options.errorPixel === "function") {
- errorPixel = options.errorPixel;
- }
-
- pixelTransparency = isNaN(Number(options.transparency)) ? pixelTransparency : options.transparency;
-
- if (options.largeImageThreshold !== undefined) {
- largeImageThreshold = options.largeImageThreshold;
- }
-
- if (options.useCrossOrigin !== undefined) {
- useCrossOrigin = options.useCrossOrigin;
- }
-
- if (options.boundingBox !== undefined) {
- boundingBox = options.boundingBox;
- }
-
- if (options.ignoredBox !== undefined) {
- ignoredBox = options.ignoredBox;
- }
-
- }
-
- function compare(one, two){
- if (globalOutputSettings !== oldGlobalSettings) {
- outputSettings(globalOutputSettings);
- }
-
- function onceWeHaveBoth(){
- var width;
- var height;
- if(images.length === 2){
- if( images[0].error || images[1].error ){
- data = {};
- data.error = images[0].error ? images[0].error : images[1].error;
- triggerDataUpdate();
- return;
- }
- width = images[0].width > images[1].width ? images[0].width : images[1].width;
- height = images[0].height > images[1].height ? images[0].height : images[1].height;
-
- if( (images[0].width === images[1].width) && (images[0].height === images[1].height) ){
- data.isSameDimensions = true;
- } else {
- data.isSameDimensions = false;
- }
-
- data.dimensionDifference = { width: images[0].width - images[1].width, height: images[0].height - images[1].height };
-
- analyseImages( normalise(images[0],width, height), normalise(images[1],width, height), width, height);
-
- triggerDataUpdate();
- }
- }
-
- images = [];
- loadImageData(one, onceWeHaveBoth);
- loadImageData(two, onceWeHaveBoth);
- }
-
- function getCompareApi(param){
-
- var secondFileData,
- hasMethod = typeof param === 'function';
-
- if( !hasMethod ){
- // assume it's file data
- secondFileData = param;
- }
-
- var self = {
- scaleToSameSize: function(){
- scaleToSameSize = true;
-
- if(hasMethod) { param(); }
- return self;
- },
- useOriginalSize: function(){
- scaleToSameSize = false;
-
- if(hasMethod) { param(); }
- return self;
- },
- ignoreNothing: function(){
-
- tolerance.red = 0;
- tolerance.green = 0;
- tolerance.blue = 0;
- tolerance.alpha = 0;
- tolerance.minBrightness = 0;
- tolerance.maxBrightness = 255;
-
- ignoreAntialiasing = false;
- ignoreColors = false;
-
- if(hasMethod) { param(); }
- return self;
- },
- ignoreLess: function(){
-
- tolerance.red = 16;
- tolerance.green = 16;
- tolerance.blue = 16;
- tolerance.alpha = 16;
- tolerance.minBrightness = 16;
- tolerance.maxBrightness = 240;
-
- ignoreAntialiasing = false;
- ignoreColors = false;
-
- if(hasMethod) { param(); }
- return self;
- },
- ignoreAntialiasing: function(){
-
- tolerance.red = 32;
- tolerance.green = 32;
- tolerance.blue = 32;
- tolerance.alpha = 32;
- tolerance.minBrightness = 64;
- tolerance.maxBrightness = 96;
-
- ignoreAntialiasing = true;
- ignoreColors = false;
-
- if(hasMethod) { param(); }
- return self;
- },
- ignoreColors: function(){
-
- tolerance.alpha = 16;
- tolerance.minBrightness = 16;
- tolerance.maxBrightness = 240;
-
- ignoreAntialiasing = false;
- ignoreColors = true;
-
- if(hasMethod) { param(); }
- return self;
- },
- ignoreAlpha: function() {
-
- tolerance.red = 16;
- tolerance.green = 16;
- tolerance.blue = 16;
- tolerance.alpha = 255;
- tolerance.minBrightness = 16;
- tolerance.maxBrightness = 240;
-
- ignoreAntialiasing = false;
- ignoreColors = false;
-
- if(hasMethod) { param(); }
- return self;
- },
- repaint: function(){
- if(hasMethod) { param(); }
- return self;
- },
- outputSettings: function(options) {
- outputSettings(options);
- return self;
- },
- onComplete: function( callback ){
-
- updateCallbackArray.push(callback);
-
- var wrapper = function(){
- compare(fileData, secondFileData);
- };
-
- wrapper();
-
- return getCompareApi(wrapper);
- }
- };
-
- return self;
- }
-
- var rootSelf = {
- onComplete: function( callback ){
- updateCallbackArray.push(callback);
- loadImageData(fileData, function(imageData, width, height){
- parseImage(imageData.data, width, height);
- });
- },
- compareTo: function(secondFileData){
- return getCompareApi(secondFileData);
- },
- outputSettings: function(options) {
- outputSettings(options);
- return rootSelf;
- }
- };
- return rootSelf;
- };
-
- function applyIgnore(api, ignore) {
- switch (ignore) {
- case 'nothing':
- api.ignoreNothing();
- break;
- case 'less':
- api.ignoreLess();
- break;
- case 'antialiasing':
- api.ignoreAntialiasing();
- break;
- case 'colors':
- api.ignoreColors();
- break;
- case 'alpha':
- api.ignoreAlpha();
- break;
- default:
- throw new Error('Invalid ignore: ' + ignore);
- break;
- }
- }
-
- resemble.compare = function (image1, image2, options, callback) {
- if (typeof options === 'function') {
- callback = options;
- options = undefined;
- }
-
- var res = resemble(image1), opt = options || {}, compare;
-
- if (opt.output) {
- res.outputSettings(opt.output);
- }
-
- compare = res.compareTo(image2);
-
- if (opt.scaleToSameSize) {
- compare.scaleToSameSize();
- }
-
- if (typeof opt.ignore === 'string') {
- applyIgnore(compare, opt.ignore);
- } else if (opt.ignore && opt.ignore.forEach) {
- opt.ignore.forEach(function (v) {
- applyIgnore(compare, v);
- });
- }
-
- compare.onComplete(function(data) {
- if (data.error) {
- callback(data.error);
- } else {
- callback(null, data);
- }
- });
- };
-
- resemble.outputSettings = setGlobalOutputSettings;
- return resemble;
-}));
+ var hiddenCanvas = document.createElement("canvas");
+ var imageData;
+
+ // don't assign to hiddenImage, see https://github.com/Huddle/Resemble.js/pull/87/commits/300d43352a2845aad289b254bfbdc7cd6a37e2d7
+ var width = hiddenImage.width;
+ var height = hiddenImage.height;
+
+ if (scaleToSameSize && images.length === 1) {
+ width = images[0].width;
+ height = images[0].height;
+ }
+
+ hiddenCanvas.width = width;
+ hiddenCanvas.height = height;
+
+ hiddenCanvas
+ .getContext("2d")
+ .drawImage(hiddenImage, 0, 0, width, height);
+ imageData = hiddenCanvas
+ .getContext("2d")
+ .getImageData(0, 0, width, height);
+
+ images.push(imageData);
+
+ callback(imageData, width, height);
+ };
+
+ if (typeof fileDataForImage === "string") {
+ hiddenImage.src = fileDataForImage;
+ if (hiddenImage.complete && hiddenImage.naturalWidth > 0) {
+ hiddenImage.onload();
+ }
+ } else if (
+ typeof fileDataForImage.data !== "undefined" &&
+ typeof fileDataForImage.width === "number" &&
+ typeof fileDataForImage.height === "number"
+ ) {
+ images.push(fileDataForImage);
+
+ callback(
+ fileDataForImage,
+ fileDataForImage.width,
+ fileDataForImage.height
+ );
+ } else if (
+ typeof Buffer !== "undefined" &&
+ fileDataForImage instanceof Buffer
+ ) {
+ // If we have Buffer, assume we're on Node+Canvas and its supported
+ hiddenImage.src = fileDataForImage;
+ } else {
+ fileReader = new FileReader();
+ fileReader.onload = function(event) {
+ hiddenImage.src = event.target.result;
+ };
+ fileReader.readAsDataURL(fileDataForImage);
+ }
+ }
+
+ function isColorSimilar(a, b, color) {
+ var absDiff = Math.abs(a - b);
+
+ if (typeof a === "undefined") {
+ return false;
+ }
+ if (typeof b === "undefined") {
+ return false;
+ }
+
+ if (a === b) {
+ return true;
+ } else if (absDiff < tolerance[color]) {
+ return true;
+ }
+ return false;
+ }
+
+ function isPixelBrightnessSimilar(d1, d2) {
+ var alpha = isColorSimilar(d1.a, d2.a, "alpha");
+ var brightness = isColorSimilar(
+ d1.brightness,
+ d2.brightness,
+ "minBrightness"
+ );
+ return brightness && alpha;
+ }
+
+ function getBrightness(r, g, b) {
+ return 0.3 * r + 0.59 * g + 0.11 * b;
+ }
+
+ function isRGBSame(d1, d2) {
+ var red = d1.r === d2.r;
+ var green = d1.g === d2.g;
+ var blue = d1.b === d2.b;
+ return red && green && blue;
+ }
+
+ function isRGBSimilar(d1, d2) {
+ var red = isColorSimilar(d1.r, d2.r, "red");
+ var green = isColorSimilar(d1.g, d2.g, "green");
+ var blue = isColorSimilar(d1.b, d2.b, "blue");
+ var alpha = isColorSimilar(d1.a, d2.a, "alpha");
+
+ return red && green && blue && alpha;
+ }
+
+ function isContrasting(d1, d2) {
+ return (
+ Math.abs(d1.brightness - d2.brightness) >
+ tolerance.maxBrightness
+ );
+ }
+
+ function getHue(red, green, blue) {
+ var r = red / 255;
+ var g = green / 255;
+ var b = blue / 255;
+ var max = Math.max(r, g, b);
+ var min = Math.min(r, g, b);
+ var h;
+ var d;
+
+ if (max === min) {
+ h = 0; // achromatic
+ } else {
+ d = max - min;
+ switch (max) {
+ case r:
+ h = (g - b) / d + (g < b ? 6 : 0);
+ break;
+ case g:
+ h = (b - r) / d + 2;
+ break;
+ case b:
+ h = (r - g) / d + 4;
+ break;
+ default:
+ h /= 6;
+ }
+ }
+
+ return h;
+ }
+
+ function isAntialiased(
+ sourcePix,
+ pix,
+ cacheSet,
+ verticalPos,
+ horizontalPos,
+ width
+ ) {
+ var offset;
+ var distance = 1;
+ var i;
+ var j;
+ var hasHighContrastSibling = 0;
+ var hasSiblingWithDifferentHue = 0;
+ var hasEquivalentSibling = 0;
+
+ addHueInfo(sourcePix);
+
+ for (i = distance * -1; i <= distance; i++) {
+ for (j = distance * -1; j <= distance; j++) {
+ if (i === 0 && j === 0) {
+ // ignore source pixel
+ } else {
+ offset =
+ ((verticalPos + j) * width + (horizontalPos + i)) *
+ 4;
+
+ if (!getPixelInfo(targetPix, pix, offset, cacheSet)) {
+ continue;
+ }
+
+ addBrightnessInfo(targetPix);
+ addHueInfo(targetPix);
+
+ if (isContrasting(sourcePix, targetPix)) {
+ hasHighContrastSibling++;
+ }
+
+ if (isRGBSame(sourcePix, targetPix)) {
+ hasEquivalentSibling++;
+ }
+
+ if (Math.abs(targetPix.h - sourcePix.h) > 0.3) {
+ hasSiblingWithDifferentHue++;
+ }
+
+ if (
+ hasSiblingWithDifferentHue > 1 ||
+ hasHighContrastSibling > 1
+ ) {
+ return true;
+ }
+ }
+ }
+ }
+
+ if (hasEquivalentSibling < 2) {
+ return true;
+ }
+
+ return false;
+ }
+
+ function copyPixel(px, offset, pix) {
+ if (errorType === "diffOnly") {
+ return;
+ }
+
+ px[offset] = pix.r; // r
+ px[offset + 1] = pix.g; // g
+ px[offset + 2] = pix.b; // b
+ px[offset + 3] = pix.a * pixelTransparency; // a
+ }
+
+ function copyGrayScalePixel(px, offset, pix) {
+ if (errorType === "diffOnly") {
+ return;
+ }
+
+ px[offset] = pix.brightness; // r
+ px[offset + 1] = pix.brightness; // g
+ px[offset + 2] = pix.brightness; // b
+ px[offset + 3] = pix.a * pixelTransparency; // a
+ }
+
+ function getPixelInfo(dst, pix, offset) {
+ if (pix.length > offset) {
+ dst.r = pix[offset];
+ dst.g = pix[offset + 1];
+ dst.b = pix[offset + 2];
+ dst.a = pix[offset + 3];
+
+ return true;
+ }
+
+ return false;
+ }
+
+ function addBrightnessInfo(pix) {
+ pix.brightness = getBrightness(pix.r, pix.g, pix.b); // 'corrected' lightness
+ }
+
+ function addHueInfo(pix) {
+ pix.h = getHue(pix.r, pix.g, pix.b);
+ }
+
+ function analyseImages(img1, img2, width, height) {
+ var hiddenCanvas = document.createElement("canvas");
+
+ var data1 = img1.data;
+ var data2 = img2.data;
+
+ hiddenCanvas.width = width;
+ hiddenCanvas.height = height;
+
+ var context = hiddenCanvas.getContext("2d");
+ var imgd = context.createImageData(width, height);
+ var pix = imgd.data;
+
+ var mismatchCount = 0;
+ var diffBounds = {
+ top: height,
+ left: width,
+ bottom: 0,
+ right: 0
+ };
+ var updateBounds = function(x, y) {
+ diffBounds.left = Math.min(x, diffBounds.left);
+ diffBounds.right = Math.max(x, diffBounds.right);
+ diffBounds.top = Math.min(y, diffBounds.top);
+ diffBounds.bottom = Math.max(y, diffBounds.bottom);
+ };
+
+ var time = Date.now();
+
+ var skip;
+
+ if (
+ !!largeImageThreshold &&
+ ignoreAntialiasing &&
+ (width > largeImageThreshold || height > largeImageThreshold)
+ ) {
+ skip = 6;
+ }
+
+ var pixel1 = { r: 0, g: 0, b: 0, a: 0 };
+ var pixel2 = { r: 0, g: 0, b: 0, a: 0 };
+
+ loop(width, height, function(horizontalPos, verticalPos) {
+ if (skip) {
+ // only skip if the image isn't small
+ if (
+ verticalPos % skip === 0 ||
+ horizontalPos % skip === 0
+ ) {
+ return;
+ }
+ }
+
+ var offset = (verticalPos * width + horizontalPos) * 4;
+ var isWithinComparedArea = withinComparedArea(
+ horizontalPos,
+ verticalPos,
+ width,
+ height
+ );
+
+ if (
+ !getPixelInfo(pixel1, data1, offset, 1) ||
+ !getPixelInfo(pixel2, data2, offset, 2)
+ ) {
+ return;
+ }
+
+ if (ignoreColors) {
+ addBrightnessInfo(pixel1);
+ addBrightnessInfo(pixel2);
+
+ if (
+ isPixelBrightnessSimilar(pixel1, pixel2) ||
+ !isWithinComparedArea
+ ) {
+ copyGrayScalePixel(pix, offset, pixel2);
+ } else {
+ errorPixel(pix, offset, pixel1, pixel2);
+ mismatchCount++;
+ updateBounds(horizontalPos, verticalPos);
+ }
+ return;
+ }
+
+ if (isRGBSimilar(pixel1, pixel2) || !isWithinComparedArea) {
+ copyPixel(pix, offset, pixel1);
+ } else if (
+ ignoreAntialiasing &&
+ (addBrightnessInfo(pixel1), // jit pixel info augmentation looks a little weird, sorry.
+ addBrightnessInfo(pixel2),
+ isAntialiased(
+ pixel1,
+ data1,
+ 1,
+ verticalPos,
+ horizontalPos,
+ width
+ ) ||
+ isAntialiased(
+ pixel2,
+ data2,
+ 2,
+ verticalPos,
+ horizontalPos,
+ width
+ ))
+ ) {
+ if (
+ isPixelBrightnessSimilar(pixel1, pixel2) ||
+ !isWithinComparedArea
+ ) {
+ copyGrayScalePixel(pix, offset, pixel2);
+ } else {
+ errorPixel(pix, offset, pixel1, pixel2);
+ mismatchCount++;
+ updateBounds(horizontalPos, verticalPos);
+ }
+ } else {
+ errorPixel(pix, offset, pixel1, pixel2);
+ mismatchCount++;
+ updateBounds(horizontalPos, verticalPos);
+ }
+ });
+
+ data.rawMisMatchPercentage = mismatchCount / (height * width) * 100;
+ data.misMatchPercentage = data.rawMisMatchPercentage.toFixed(2);
+ data.diffBounds = diffBounds;
+ data.analysisTime = Date.now() - time;
+
+ data.getImageDataUrl = function(text) {
+ var barHeight = 0;
+
+ if (text) {
+ barHeight = addLabel(text, context, hiddenCanvas);
+ }
+
+ context.putImageData(imgd, 0, barHeight);
+
+ return hiddenCanvas.toDataURL("image/png");
+ };
+
+ if (hiddenCanvas.toBuffer) {
+ data.getBuffer = function(includeOriginal) {
+ if (includeOriginal) {
+ var imageWidth = hiddenCanvas.width + 2;
+ hiddenCanvas.width = imageWidth * 3;
+ context.putImageData(img1, 0, 0);
+ context.putImageData(img2, imageWidth, 0);
+ context.putImageData(imgd, imageWidth * 2, 0);
+ } else {
+ context.putImageData(imgd, 0, 0);
+ }
+ return hiddenCanvas.toBuffer();
+ };
+ }
+ }
+
+ function addLabel(text, context, hiddenCanvas) {
+ var textPadding = 2;
+
+ context.font = "12px sans-serif";
+
+ var textWidth = context.measureText(text).width + textPadding * 2;
+ var barHeight = 22;
+
+ if (textWidth > hiddenCanvas.width) {
+ hiddenCanvas.width = textWidth;
+ }
+
+ hiddenCanvas.height += barHeight;
+
+ context.fillStyle = "#666";
+ context.fillRect(0, 0, hiddenCanvas.width, barHeight - 4);
+ context.fillStyle = "#fff";
+ context.fillRect(0, barHeight - 4, hiddenCanvas.width, 4);
+
+ context.fillStyle = "#fff";
+ context.textBaseline = "top";
+ context.font = "12px sans-serif";
+ context.fillText(text, textPadding, 1);
+
+ return barHeight;
+ }
+
+ function normalise(img, w, h) {
+ var c;
+ var context;
+
+ if (img.height < h || img.width < w) {
+ c = document.createElement("canvas");
+ c.width = w;
+ c.height = h;
+ context = c.getContext("2d");
+ context.putImageData(img, 0, 0);
+ return context.getImageData(0, 0, w, h);
+ }
+
+ return img;
+ }
+
+ function outputSettings(options) {
+ var key;
+
+ if (options.errorColor) {
+ for (key in options.errorColor) {
+ if (options.hasOwnProperty(key)) {
+ errorPixelColor[key] =
+ options.errorColor[key] === void 0
+ ? errorPixelColor[key]
+ : options.errorColor[key];
+ }
+ }
+ }
+
+ if (options.errorType && errorPixelTransform[options.errorType]) {
+ errorPixel = errorPixelTransform[options.errorType];
+ errorType = options.errorType;
+ }
+
+ if (
+ options.errorPixel &&
+ typeof options.errorPixel === "function"
+ ) {
+ errorPixel = options.errorPixel;
+ }
+
+ pixelTransparency = isNaN(Number(options.transparency))
+ ? pixelTransparency
+ : options.transparency;
+
+ if (options.largeImageThreshold !== undefined) {
+ largeImageThreshold = options.largeImageThreshold;
+ }
+
+ if (options.useCrossOrigin !== undefined) {
+ useCrossOrigin = options.useCrossOrigin;
+ }
+
+ if (options.boundingBox !== undefined) {
+ boundingBox = options.boundingBox;
+ }
+
+ if (options.ignoredBox !== undefined) {
+ ignoredBox = options.ignoredBox;
+ }
+ }
+
+ function compare(one, two) {
+ if (globalOutputSettings !== oldGlobalSettings) {
+ outputSettings(globalOutputSettings);
+ }
+
+ function onceWeHaveBoth() {
+ var width;
+ var height;
+ if (images.length === 2) {
+ if (images[0].error || images[1].error) {
+ data = {};
+ data.error = images[0].error
+ ? images[0].error
+ : images[1].error;
+ triggerDataUpdate();
+ return;
+ }
+ width =
+ images[0].width > images[1].width
+ ? images[0].width
+ : images[1].width;
+ height =
+ images[0].height > images[1].height
+ ? images[0].height
+ : images[1].height;
+
+ if (
+ images[0].width === images[1].width &&
+ images[0].height === images[1].height
+ ) {
+ data.isSameDimensions = true;
+ } else {
+ data.isSameDimensions = false;
+ }
+
+ data.dimensionDifference = {
+ width: images[0].width - images[1].width,
+ height: images[0].height - images[1].height
+ };
+
+ analyseImages(
+ normalise(images[0], width, height),
+ normalise(images[1], width, height),
+ width,
+ height
+ );
+
+ triggerDataUpdate();
+ }
+ }
+
+ images = [];
+ loadImageData(one, onceWeHaveBoth);
+ loadImageData(two, onceWeHaveBoth);
+ }
+
+ function getCompareApi(param) {
+ var secondFileData;
+ var hasMethod = typeof param === "function";
+
+ if (!hasMethod) {
+ // assume it's file data
+ secondFileData = param;
+ }
+
+ var self = {
+ scaleToSameSize: function() {
+ scaleToSameSize = true;
+
+ if (hasMethod) {
+ param();
+ }
+ return self;
+ },
+ useOriginalSize: function() {
+ scaleToSameSize = false;
+
+ if (hasMethod) {
+ param();
+ }
+ return self;
+ },
+ ignoreNothing: function() {
+ tolerance.red = 0;
+ tolerance.green = 0;
+ tolerance.blue = 0;
+ tolerance.alpha = 0;
+ tolerance.minBrightness = 0;
+ tolerance.maxBrightness = 255;
+
+ ignoreAntialiasing = false;
+ ignoreColors = false;
+
+ if (hasMethod) {
+ param();
+ }
+ return self;
+ },
+ ignoreLess: function() {
+ tolerance.red = 16;
+ tolerance.green = 16;
+ tolerance.blue = 16;
+ tolerance.alpha = 16;
+ tolerance.minBrightness = 16;
+ tolerance.maxBrightness = 240;
+
+ ignoreAntialiasing = false;
+ ignoreColors = false;
+
+ if (hasMethod) {
+ param();
+ }
+ return self;
+ },
+ ignoreAntialiasing: function() {
+ tolerance.red = 32;
+ tolerance.green = 32;
+ tolerance.blue = 32;
+ tolerance.alpha = 32;
+ tolerance.minBrightness = 64;
+ tolerance.maxBrightness = 96;
+
+ ignoreAntialiasing = true;
+ ignoreColors = false;
+
+ if (hasMethod) {
+ param();
+ }
+ return self;
+ },
+ ignoreColors: function() {
+ tolerance.alpha = 16;
+ tolerance.minBrightness = 16;
+ tolerance.maxBrightness = 240;
+
+ ignoreAntialiasing = false;
+ ignoreColors = true;
+
+ if (hasMethod) {
+ param();
+ }
+ return self;
+ },
+ ignoreAlpha: function() {
+ tolerance.red = 16;
+ tolerance.green = 16;
+ tolerance.blue = 16;
+ tolerance.alpha = 255;
+ tolerance.minBrightness = 16;
+ tolerance.maxBrightness = 240;
+
+ ignoreAntialiasing = false;
+ ignoreColors = false;
+
+ if (hasMethod) {
+ param();
+ }
+ return self;
+ },
+ repaint: function() {
+ if (hasMethod) {
+ param();
+ }
+ return self;
+ },
+ outputSettings: function(options) {
+ outputSettings(options);
+ return self;
+ },
+ onComplete: function(callback) {
+ updateCallbackArray.push(callback);
+
+ var wrapper = function() {
+ compare(fileData, secondFileData);
+ };
+
+ wrapper();
+
+ return getCompareApi(wrapper);
+ }
+ };
+
+ return self;
+ }
+
+ var rootSelf = {
+ onComplete: function(callback) {
+ updateCallbackArray.push(callback);
+ loadImageData(fileData, function(imageData, width, height) {
+ parseImage(imageData.data, width, height);
+ });
+ },
+ compareTo: function(secondFileData) {
+ return getCompareApi(secondFileData);
+ },
+ outputSettings: function(options) {
+ outputSettings(options);
+ return rootSelf;
+ }
+ };
+ return rootSelf;
+ };
+
+ function applyIgnore(api, ignore) {
+ switch (ignore) {
+ case "nothing":
+ api.ignoreNothing();
+ break;
+ case "less":
+ api.ignoreLess();
+ break;
+ case "antialiasing":
+ api.ignoreAntialiasing();
+ break;
+ case "colors":
+ api.ignoreColors();
+ break;
+ case "alpha":
+ api.ignoreAlpha();
+ break;
+ default:
+ throw new Error("Invalid ignore: " + ignore);
+ }
+ }
+
+ resemble.compare = function(image1, image2, options, cb) {
+ let callback;
+ let opt;
+
+ if (typeof options === "function") {
+ callback = options;
+ opt = {};
+ } else {
+ callback = cb;
+ opt = options || {};
+ }
+
+ var res = resemble(image1);
+ var compare;
+
+ if (opt.output) {
+ res.outputSettings(opt.output);
+ }
+
+ compare = res.compareTo(image2);
+
+ if (opt.scaleToSameSize) {
+ compare.scaleToSameSize();
+ }
+
+ if (typeof opt.ignore === "string") {
+ applyIgnore(compare, opt.ignore);
+ } else if (opt.ignore && opt.ignore.forEach) {
+ opt.ignore.forEach(function(v) {
+ applyIgnore(compare, v);
+ });
+ }
+
+ compare.onComplete(function(data) {
+ if (data.error) {
+ callback(data.error);
+ } else {
+ callback(null, data);
+ }
+ });
+ };
+
+ resemble.outputSettings = setGlobalOutputSettings;
+ return resemble;
+});