]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Add tests for rendering to offscreen canvas (#7175)
authorBen McCann <322311+benmccann@users.noreply.github.com>
Fri, 6 Mar 2020 17:17:12 +0000 (09:17 -0800)
committerGitHub <noreply@github.com>
Fri, 6 Mar 2020 17:17:12 +0000 (12:17 -0500)
Add tests for using an offscreen canvas for Chart.js. These tests are
almost identical to existing tests, but with offscreen canvas enabled.

Co-authored-by: David Winegar <david.winegar@getcruise.com>
karma.conf.js
package-lock.json
package.json
test/BasicChartWebWorker.js [new file with mode: 0644]
test/fixtures/controller.line/point-style-offscreen-canvas.json [new file with mode: 0644]
test/fixtures/controller.line/point-style-offscreen-canvas.png [new file with mode: 0644]
test/specs/platform.basic.tests.js [new file with mode: 0644]
test/specs/platform.dom.tests.js
test/utils.js

index 23777ccffdc71379b754cfc4178c520a4167b79d..a4ec3cd59eb5a73e3a73d2f702856b119f192b2f 100644 (file)
@@ -2,7 +2,9 @@
 
 const babel = require('rollup-plugin-babel');
 const commonjs = require('@rollup/plugin-commonjs');
+const json = require('@rollup/plugin-json');
 const resolve = require('@rollup/plugin-node-resolve');
+const webWorkerLoader = require('rollup-plugin-web-worker-loader');
 const builds = require('./rollup.config');
 
 module.exports = function(karma) {
@@ -67,9 +69,11 @@ module.exports = function(karma) {
 
                rollupPreprocessor: {
                        plugins: [
+                               json(),
                                resolve(),
                                babel({exclude: 'node_modules/**'}), // use babel since we have ES proposal features
-                               commonjs({exclude: ['src/**', 'test/**']})
+                               commonjs({exclude: ['src/**', 'test/**']}),
+                               webWorkerLoader()
                        ],
                        output: {
                                name: 'test',
index 68c822db885facf940cd5d9066460ec949b0270c..9f6f2963ba896d5558052185e3e8bbd54d78cbff 100644 (file)
       "integrity": "sha512-xVNN69YGDghOqCCtA6FI7avYrr02mTJjOgB0/f1VPD3pJC8QEvjTKWc4epDx8AqxxA75NI0QpVM2gPJXUbE4Tg==",
       "dev": true
     },
+    "bindings": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+      "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "file-uri-to-path": "1.0.0"
+      }
+    },
     "blob": {
       "version": "0.0.5",
       "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
         "flat-cache": "^2.0.1"
       }
     },
+    "file-uri-to-path": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+      "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+      "dev": true,
+      "optional": true
+    },
     "fill-range": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
       "dev": true
     },
     "fsevents": {
-      "version": "1.2.9",
-      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
-      "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
+      "version": "1.2.11",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz",
+      "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==",
       "dev": true,
       "optional": true,
       "requires": {
+        "bindings": "^1.5.0",
         "nan": "^2.12.1",
-        "node-pre-gyp": "^0.12.0"
+        "node-pre-gyp": "*"
       },
       "dependencies": {
         "abbrev": {
           }
         },
         "chownr": {
-          "version": "1.1.1",
+          "version": "1.1.3",
           "bundled": true,
           "dev": true,
           "optional": true
           "optional": true
         },
         "debug": {
-          "version": "4.1.1",
+          "version": "3.2.6",
           "bundled": true,
           "dev": true,
           "optional": true,
           "optional": true
         },
         "fs-minipass": {
-          "version": "1.2.5",
+          "version": "1.2.7",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
-            "minipass": "^2.2.1"
+            "minipass": "^2.6.0"
           }
         },
         "fs.realpath": {
           }
         },
         "glob": {
-          "version": "7.1.3",
+          "version": "7.1.6",
           "bundled": true,
           "dev": true,
           "optional": true,
           }
         },
         "ignore-walk": {
-          "version": "3.0.1",
+          "version": "3.0.3",
           "bundled": true,
           "dev": true,
           "optional": true,
           }
         },
         "inherits": {
-          "version": "2.0.3",
+          "version": "2.0.4",
           "bundled": true,
           "dev": true,
           "optional": true
           "optional": true
         },
         "minipass": {
-          "version": "2.3.5",
+          "version": "2.9.0",
           "bundled": true,
           "dev": true,
           "optional": true,
           }
         },
         "minizlib": {
-          "version": "1.2.1",
+          "version": "1.3.3",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
-            "minipass": "^2.2.1"
+            "minipass": "^2.9.0"
           }
         },
         "mkdirp": {
           }
         },
         "ms": {
-          "version": "2.1.1",
+          "version": "2.1.2",
           "bundled": true,
           "dev": true,
           "optional": true
         },
         "needle": {
-          "version": "2.3.0",
+          "version": "2.4.0",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
-            "debug": "^4.1.0",
+            "debug": "^3.2.6",
             "iconv-lite": "^0.4.4",
             "sax": "^1.2.4"
           }
         },
         "node-pre-gyp": {
-          "version": "0.12.0",
+          "version": "0.14.0",
           "bundled": true,
           "dev": true,
           "optional": true,
             "rc": "^1.2.7",
             "rimraf": "^2.6.1",
             "semver": "^5.3.0",
-            "tar": "^4"
+            "tar": "^4.4.2"
           }
         },
         "nopt": {
           }
         },
         "npm-bundled": {
-          "version": "1.0.6",
+          "version": "1.1.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "npm-normalize-package-bin": "^1.0.1"
+          }
+        },
+        "npm-normalize-package-bin": {
+          "version": "1.0.1",
           "bundled": true,
           "dev": true,
           "optional": true
         },
         "npm-packlist": {
-          "version": "1.4.1",
+          "version": "1.4.7",
           "bundled": true,
           "dev": true,
           "optional": true,
           "optional": true
         },
         "process-nextick-args": {
-          "version": "2.0.0",
+          "version": "2.0.1",
           "bundled": true,
           "dev": true,
           "optional": true
           }
         },
         "rimraf": {
-          "version": "2.6.3",
+          "version": "2.7.1",
           "bundled": true,
           "dev": true,
           "optional": true,
           "optional": true
         },
         "semver": {
-          "version": "5.7.0",
+          "version": "5.7.1",
           "bundled": true,
           "dev": true,
           "optional": true
           "optional": true
         },
         "tar": {
-          "version": "4.4.8",
+          "version": "4.4.13",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
             "chownr": "^1.1.1",
             "fs-minipass": "^1.2.5",
-            "minipass": "^2.3.4",
-            "minizlib": "^1.1.1",
+            "minipass": "^2.8.6",
+            "minizlib": "^1.2.1",
             "mkdirp": "^0.5.0",
             "safe-buffer": "^5.1.2",
-            "yallist": "^3.0.2"
+            "yallist": "^3.0.3"
           }
         },
         "util-deprecate": {
           "optional": true
         },
         "yallist": {
-          "version": "3.0.3",
+          "version": "3.1.1",
           "bundled": true,
           "dev": true,
           "optional": true
           }
         },
         "fsevents": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.1.tgz",
-          "integrity": "sha512-4FRPXWETxtigtJW/gxzEDsX1LVbPAM93VleB83kZB+ellqbHMkyt2aJfuzNLRvFPnGi6bcE5SvfxgbXPeKteJw==",
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz",
+          "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==",
           "dev": true,
           "optional": true
         },
       "dependencies": {
         "JSONStream": {
           "version": "1.3.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=",
           "dev": true,
           "requires": {
             "jsonparse": "^1.2.0",
           "dependencies": {
             "jsonparse": {
               "version": "1.3.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
               "dev": true
             },
             "through": {
               "version": "2.3.8",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
               "dev": true
             }
           }
         },
         "abbrev": {
           "version": "1.1.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=",
           "dev": true
         },
         "ansi-regex": {
           "version": "3.0.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
           "dev": true
         },
         "ansicolors": {
           "version": "0.3.2",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=",
           "dev": true
         },
         "ansistyles": {
           "version": "0.1.3",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=",
           "dev": true
         },
         "aproba": {
           "version": "1.1.2",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha512-ZpYajIfO0j2cOFTO955KUMIKNmj6zhX8kVztMAxFsDaMwz+9Z9SV0uou2pC9HJqcfpffOsjnbrDMvkNy+9RXPw==",
           "dev": true
         },
         "archy": {
           "version": "1.0.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
           "dev": true
         },
         "bluebird": {
           "version": "3.5.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=",
           "dev": true
         },
         "cacache": {
           "version": "9.2.9",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha512-ghg1j5OyTJ6qsrqU++dN23QiTDxb5AZCFGsF3oB+v9v/gY+F4X8L/0gdQMEjd+8Ot3D29M2etX5PKozHRn2JQw==",
           "dev": true,
           "requires": {
             "bluebird": "^3.5.0",
           "dependencies": {
             "lru-cache": {
               "version": "4.1.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
               "dev": true,
               "requires": {
                 "pseudomap": "^1.0.2",
               "dependencies": {
                 "pseudomap": {
                   "version": "1.0.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
                   "dev": true
                 },
                 "yallist": {
                   "version": "2.1.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
                   "dev": true
                 }
               }
             },
             "y18n": {
               "version": "3.2.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
               "dev": true
             }
           }
         },
         "call-limit": {
           "version": "1.1.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-b9YbA/PaQqLNDsK2DwK9DnGZH+o=",
           "dev": true
         },
         "chownr": {
           "version": "1.0.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=",
           "dev": true
         },
         "cmd-shim": {
           "version": "2.0.2",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=",
           "dev": true,
           "requires": {
             "graceful-fs": "^4.1.2",
         },
         "columnify": {
           "version": "1.5.4",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=",
           "dev": true,
           "requires": {
             "strip-ansi": "^3.0.0",
           "dependencies": {
             "strip-ansi": {
               "version": "3.0.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
               "dev": true,
               "requires": {
                 "ansi-regex": "^2.0.0"
               "dependencies": {
                 "ansi-regex": {
                   "version": "2.1.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
                   "dev": true
                 }
               }
             },
             "wcwidth": {
               "version": "1.0.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
               "dev": true,
               "requires": {
                 "defaults": "^1.0.3"
               "dependencies": {
                 "defaults": {
                   "version": "1.0.3",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
                   "dev": true,
                   "requires": {
                     "clone": "^1.0.2"
                   "dependencies": {
                     "clone": {
                       "version": "1.0.2",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
                       "dev": true
                     }
                   }
         },
         "config-chain": {
           "version": "1.1.11",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=",
           "dev": true,
           "requires": {
             "ini": "^1.3.4",
           "dependencies": {
             "proto-list": {
               "version": "1.2.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=",
               "dev": true
             }
           }
         },
         "debuglog": {
           "version": "1.0.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=",
           "dev": true
         },
         "detect-indent": {
           "version": "5.0.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=",
           "dev": true
         },
         "dezalgo": {
           "version": "1.0.3",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=",
           "dev": true,
           "requires": {
             "asap": "^2.0.0",
           "dependencies": {
             "asap": {
               "version": "2.0.5",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-UidltQw1EEkOUtfc/ghe+bqWlY8=",
               "dev": true
             }
           }
         },
         "editor": {
           "version": "1.0.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=",
           "dev": true
         },
         "fs-vacuum": {
           "version": "1.2.10",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-t2Kb7AekAxolSP35n17PHMizHjY=",
           "dev": true,
           "requires": {
             "graceful-fs": "^4.1.2",
         },
         "fs-write-stream-atomic": {
           "version": "1.0.10",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
           "dev": true,
           "requires": {
             "graceful-fs": "^4.1.2",
         },
         "fstream": {
           "version": "1.0.11",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
           "dev": true,
           "requires": {
             "graceful-fs": "^4.1.2",
         },
         "fstream-npm": {
           "version": "1.2.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha512-iBHpm/LmD1qw0TlHMAqVd9rwdU6M+EHRUnPkXpRi5G/Hf0FIFH+oZFryodAU2MFNfGRh/CzhUFlMKV3pdeOTDw==",
           "dev": true,
           "requires": {
             "fstream-ignore": "^1.0.0",
           "dependencies": {
             "fstream-ignore": {
               "version": "1.0.5",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=",
               "dev": true,
               "requires": {
                 "fstream": "^1.0.0",
               "dependencies": {
                 "minimatch": {
                   "version": "3.0.4",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
                   "dev": true,
                   "requires": {
                     "brace-expansion": "^1.1.7"
                   "dependencies": {
                     "brace-expansion": {
                       "version": "1.1.8",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
                       "dev": true,
                       "requires": {
                         "balanced-match": "^1.0.0",
                       "dependencies": {
                         "balanced-match": {
                           "version": "1.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
                           "dev": true
                         },
                         "concat-map": {
                           "version": "0.0.1",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
                           "dev": true
                         }
                       }
         },
         "glob": {
           "version": "7.1.2",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
           "dev": true,
           "requires": {
             "fs.realpath": "^1.0.0",
           "dependencies": {
             "fs.realpath": {
               "version": "1.0.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
               "dev": true
             },
             "minimatch": {
               "version": "3.0.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
               "dev": true,
               "requires": {
                 "brace-expansion": "^1.1.7"
               "dependencies": {
                 "brace-expansion": {
                   "version": "1.1.8",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
                   "dev": true,
                   "requires": {
                     "balanced-match": "^1.0.0",
                   "dependencies": {
                     "balanced-match": {
                       "version": "1.0.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
                       "dev": true
                     },
                     "concat-map": {
                       "version": "0.0.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
                       "dev": true
                     }
                   }
             },
             "path-is-absolute": {
               "version": "1.0.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
               "dev": true
             }
           }
         },
         "graceful-fs": {
           "version": "4.1.11",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
           "dev": true
         },
         "has-unicode": {
           "version": "2.0.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
           "dev": true
         },
         "hosted-git-info": {
           "version": "2.5.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
           "dev": true
         },
         "iferr": {
           "version": "0.1.5",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
           "dev": true
         },
         "imurmurhash": {
           "version": "0.1.4",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
           "dev": true
         },
         "inflight": {
           "version": "1.0.6",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
           "dev": true,
           "requires": {
             "once": "^1.3.0",
         },
         "inherits": {
           "version": "2.0.3",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
           "dev": true
         },
         "ini": {
           "version": "1.3.4",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=",
           "dev": true
         },
         "init-package-json": {
           "version": "1.10.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-zYc6FneWvvuZYSsodioLY5P9j2o=",
           "dev": true,
           "requires": {
             "glob": "^7.1.1",
           "dependencies": {
             "promzard": {
               "version": "0.3.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=",
               "dev": true,
               "requires": {
                 "read": "1"
         },
         "lazy-property": {
           "version": "1.0.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc=",
           "dev": true
         },
         "lockfile": {
           "version": "1.0.3",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-Jjj8OaAzHpysGgS3F5mTHJxQ33k=",
           "dev": true
         },
         "lodash._baseindexof": {
           "version": "3.1.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=",
           "dev": true
         },
         "lodash._baseuniq": {
           "version": "4.6.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=",
           "dev": true,
           "requires": {
             "lodash._createset": "~4.0.0",
           "dependencies": {
             "lodash._createset": {
               "version": "4.0.3",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=",
               "dev": true
             },
             "lodash._root": {
               "version": "3.0.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
               "dev": true
             }
           }
         },
         "lodash._bindcallback": {
           "version": "3.0.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=",
           "dev": true
         },
         "lodash._cacheindexof": {
           "version": "3.0.2",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=",
           "dev": true
         },
         "lodash._createcache": {
           "version": "3.1.2",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=",
           "dev": true,
           "requires": {
             "lodash._getnative": "^3.0.0"
         },
         "lodash._getnative": {
           "version": "3.9.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
           "dev": true
         },
         "lodash.clonedeep": {
           "version": "4.5.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
           "dev": true
         },
         "lodash.restparam": {
           "version": "3.6.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
           "dev": true
         },
         "lodash.union": {
           "version": "4.6.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=",
           "dev": true
         },
         "lodash.uniq": {
           "version": "4.5.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
           "dev": true
         },
         "lodash.without": {
           "version": "4.4.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=",
           "dev": true
         },
         "lru-cache": {
           "version": "4.1.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
           "dev": true,
           "requires": {
             "pseudomap": "^1.0.2",
           "dependencies": {
             "pseudomap": {
               "version": "1.0.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
               "dev": true
             },
             "yallist": {
               "version": "2.1.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
               "dev": true
             }
           }
         },
         "mississippi": {
           "version": "1.3.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-0gFYPrEjJ+PFwWQqQEqcrPlONPU=",
           "dev": true,
           "requires": {
             "concat-stream": "^1.5.0",
           "dependencies": {
             "concat-stream": {
               "version": "1.6.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
               "dev": true,
               "requires": {
                 "inherits": "^2.0.3",
               "dependencies": {
                 "typedarray": {
                   "version": "0.0.6",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
                   "dev": true
                 }
               }
             },
             "duplexify": {
               "version": "3.5.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-GqdzAC4VeEV+nZ1KULDMquvL1gQ=",
               "dev": true,
               "requires": {
                 "end-of-stream": "1.0.0",
               "dependencies": {
                 "end-of-stream": {
                   "version": "1.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-1FlucCc0qT5A6a+GQxnqvZn/Lw4=",
                   "dev": true,
                   "requires": {
                     "once": "~1.3.0"
                   "dependencies": {
                     "once": {
                       "version": "1.3.3",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
                       "dev": true,
                       "requires": {
                         "wrappy": "1"
                 },
                 "stream-shift": {
                   "version": "1.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
                   "dev": true
                 }
               }
             },
             "end-of-stream": {
               "version": "1.4.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=",
               "dev": true,
               "requires": {
                 "once": "^1.4.0"
             },
             "flush-write-stream": {
               "version": "1.0.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=",
               "dev": true,
               "requires": {
                 "inherits": "^2.0.1",
             },
             "from2": {
               "version": "2.3.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
               "dev": true,
               "requires": {
                 "inherits": "^2.0.1",
             },
             "parallel-transform": {
               "version": "1.1.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=",
               "dev": true,
               "requires": {
                 "cyclist": "~0.2.2",
               "dependencies": {
                 "cyclist": {
                   "version": "0.2.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
                   "dev": true
                 }
               }
             },
             "pump": {
               "version": "1.0.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE=",
               "dev": true,
               "requires": {
                 "end-of-stream": "^1.1.0",
             },
             "pumpify": {
               "version": "1.3.5",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-G2ccYZlAq8rqwK0OOjwWS+dgmTs=",
               "dev": true,
               "requires": {
                 "duplexify": "^3.1.2",
             },
             "stream-each": {
               "version": "1.2.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-HpXUdXP1gNgU3A/4zQ9m8c5TyZE=",
               "dev": true,
               "requires": {
                 "end-of-stream": "^1.1.0",
               "dependencies": {
                 "stream-shift": {
                   "version": "1.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
                   "dev": true
                 }
               }
             },
             "through2": {
               "version": "2.0.3",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
               "dev": true,
               "requires": {
                 "readable-stream": "^2.1.5",
               "dependencies": {
                 "xtend": {
                   "version": "4.0.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
                   "dev": true
                 }
               }
         },
         "mkdirp": {
           "version": "0.5.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
           "dev": true,
           "requires": {
             "minimist": "0.0.8"
           "dependencies": {
             "minimist": {
               "version": "0.0.8",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
               "dev": true
             }
           }
         },
         "move-concurrently": {
           "version": "1.0.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
           "dev": true,
           "requires": {
             "aproba": "^1.1.1",
           "dependencies": {
             "copy-concurrently": {
               "version": "1.0.3",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-Rft4ZiSaHKiJqlcI5svSc+dbslA=",
               "dev": true,
               "requires": {
                 "aproba": "^1.1.1",
             },
             "run-queue": {
               "version": "1.0.3",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
               "dev": true,
               "requires": {
                 "aproba": "^1.1.1"
         },
         "node-gyp": {
           "version": "3.6.2",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=",
           "dev": true,
           "requires": {
             "fstream": "^1.0.0",
           "dependencies": {
             "minimatch": {
               "version": "3.0.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
               "dev": true,
               "requires": {
                 "brace-expansion": "^1.1.7"
               "dependencies": {
                 "brace-expansion": {
                   "version": "1.1.8",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
                   "dev": true,
                   "requires": {
                     "balanced-match": "^1.0.0",
                   "dependencies": {
                     "balanced-match": {
                       "version": "1.0.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
                       "dev": true
                     },
                     "concat-map": {
                       "version": "0.0.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
                       "dev": true
                     }
                   }
             },
             "nopt": {
               "version": "3.0.6",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
               "dev": true,
               "requires": {
                 "abbrev": "1"
         },
         "nopt": {
           "version": "4.0.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
           "dev": true,
           "requires": {
             "abbrev": "1",
         },
         "normalize-package-data": {
           "version": "2.4.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
           "dev": true,
           "requires": {
             "hosted-git-info": "^2.1.4",
           "dependencies": {
             "is-builtin-module": {
               "version": "1.0.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
               "dev": true,
               "requires": {
                 "builtin-modules": "^1.0.0"
               "dependencies": {
                 "builtin-modules": {
                   "version": "1.1.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
                   "dev": true
                 }
               }
         },
         "npm-cache-filename": {
           "version": "1.0.2",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-3tMGxbC/yHCp6fr4I7xfKD4FrhE=",
           "dev": true
         },
         "npm-install-checks": {
           "version": "3.0.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-1K7N/VGlPjcjt7L5Oy7ijjB7wNc=",
           "dev": true,
           "requires": {
             "semver": "^2.3.0 || 3.x || 4 || 5"
         },
         "npm-package-arg": {
           "version": "5.1.2",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha512-wJBsrf0qpypPT7A0LART18hCdyhpCMxeTtcb0X4IZO2jsP6Om7EHN1d9KSKiqD+KVH030RVNpWS9thk+pb7wzA==",
           "dev": true,
           "requires": {
             "hosted-git-info": "^2.4.2",
         },
         "npm-registry-client": {
           "version": "8.4.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha512-PVNfqq0lyRdFnE//nDmn3CC9uqTsr8Bya9KPLIevlXMfkP0m4RpCVyFFk0W1Gfx436kKwyhLA6J+lV+rgR81gQ==",
           "dev": true,
           "requires": {
             "concat-stream": "^1.5.2",
           "dependencies": {
             "concat-stream": {
               "version": "1.6.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
               "dev": true,
               "requires": {
                 "inherits": "^2.0.3",
               "dependencies": {
                 "typedarray": {
                   "version": "0.0.6",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
                   "dev": true
                 }
               }
         },
         "npm-user-validate": {
           "version": "1.0.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE=",
           "dev": true
         },
         "npmlog": {
           "version": "4.1.2",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
           "dev": true,
           "requires": {
             "are-we-there-yet": "~1.1.2",
           "dependencies": {
             "are-we-there-yet": {
               "version": "1.1.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=",
               "dev": true,
               "requires": {
                 "delegates": "^1.0.0",
               "dependencies": {
                 "delegates": {
                   "version": "1.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
                   "dev": true
                 }
               }
             },
             "console-control-strings": {
               "version": "1.1.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
               "dev": true
             },
             "gauge": {
               "version": "2.7.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
               "dev": true,
               "requires": {
                 "aproba": "^1.0.3",
               "dependencies": {
                 "object-assign": {
                   "version": "4.1.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
                   "dev": true
                 },
                 "signal-exit": {
                   "version": "3.0.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
                   "dev": true
                 },
                 "string-width": {
                   "version": "1.0.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
                   "dev": true,
                   "requires": {
                     "code-point-at": "^1.0.0",
                   "dependencies": {
                     "code-point-at": {
                       "version": "1.1.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
                       "dev": true
                     },
                     "is-fullwidth-code-point": {
                       "version": "1.0.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
                       "dev": true,
                       "requires": {
                         "number-is-nan": "^1.0.0"
                       "dependencies": {
                         "number-is-nan": {
                           "version": "1.0.1",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
                           "dev": true
                         }
                       }
                 },
                 "strip-ansi": {
                   "version": "3.0.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
                   "dev": true,
                   "requires": {
                     "ansi-regex": "^2.0.0"
                   "dependencies": {
                     "ansi-regex": {
                       "version": "2.1.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
                       "dev": true
                     }
                   }
                 },
                 "wide-align": {
                   "version": "1.1.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==",
                   "dev": true,
                   "requires": {
                     "string-width": "^1.0.2"
             },
             "set-blocking": {
               "version": "2.0.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
               "dev": true
             }
           }
         },
         "once": {
           "version": "1.4.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
           "dev": true,
           "requires": {
             "wrappy": "1"
         },
         "opener": {
           "version": "1.4.3",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=",
           "dev": true
         },
         "osenv": {
           "version": "0.1.4",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=",
           "dev": true,
           "requires": {
             "os-homedir": "^1.0.0",
           "dependencies": {
             "os-homedir": {
               "version": "1.0.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
               "dev": true
             },
             "os-tmpdir": {
               "version": "1.0.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
               "dev": true
             }
           }
         },
         "pacote": {
           "version": "2.7.38",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha512-XxHUyHQB7QCVBxoXeVu0yKxT+2PvJucsc0+1E+6f95lMUxEAYERgSAc71ckYXrYr35Ew3xFU/LrhdIK21GQFFA==",
           "dev": true,
           "requires": {
             "bluebird": "^3.5.0",
           "dependencies": {
             "make-fetch-happen": {
               "version": "2.4.13",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha512-73CsTlMRSLdGr7VvOE8iYl/ejOSIxyfRYg7jZhepGGEqIlgdq6FLe2DEAI5bo813Jdg5fS/Ku62SRQ/UpT6NJA==",
               "dev": true,
               "requires": {
                 "agentkeepalive": "^3.3.0",
               "dependencies": {
                 "agentkeepalive": {
                   "version": "3.3.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha512-9yhcpXti2ZQE7bxuCsjjWNIZoQOd9sZ1ZBovHG0YeCRohFv73SLvcm73PC9T3olM4GyozaQb+4MGdQpcD8m7NQ==",
                   "dev": true,
                   "requires": {
                     "humanize-ms": "^1.2.1"
                   "dependencies": {
                     "humanize-ms": {
                       "version": "1.2.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=",
                       "dev": true,
                       "requires": {
                         "ms": "^2.0.0"
                       "dependencies": {
                         "ms": {
                           "version": "2.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
                           "dev": true
                         }
                       }
                 },
                 "http-cache-semantics": {
                   "version": "3.7.3",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-LzXFMuzSnx5UE7mvgztySjxvf3I=",
                   "dev": true
                 },
                 "http-proxy-agent": {
                   "version": "2.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-RkgqLwUjpNYIJVFwn0acs+SoX/Q=",
                   "dev": true,
                   "requires": {
                     "agent-base": "4",
                   "dependencies": {
                     "agent-base": {
                       "version": "4.1.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-IOF0Ac1Js8B2v1akvGxbQ2/6jVU=",
                       "dev": true,
                       "requires": {
                         "es6-promisify": "^5.0.0"
                       "dependencies": {
                         "es6-promisify": {
                           "version": "5.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
                           "dev": true,
                           "requires": {
                             "es6-promise": "^4.0.3"
                           "dependencies": {
                             "es6-promise": {
                               "version": "4.1.1",
-                              "bundled": true,
+                              "resolved": false,
+                              "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==",
                               "dev": true
                             }
                           }
                     },
                     "debug": {
                       "version": "2.6.8",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
                       "dev": true,
                       "requires": {
                         "ms": "2.0.0"
                       "dependencies": {
                         "ms": {
                           "version": "2.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
                           "dev": true
                         }
                       }
                 },
                 "https-proxy-agent": {
                   "version": "2.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-/6pLb69YasNAwYoUBDHna31/KUQ=",
                   "dev": true,
                   "requires": {
                     "agent-base": "^4.1.0",
                   "dependencies": {
                     "agent-base": {
                       "version": "4.1.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-IOF0Ac1Js8B2v1akvGxbQ2/6jVU=",
                       "dev": true,
                       "requires": {
                         "es6-promisify": "^5.0.0"
                       "dependencies": {
                         "es6-promisify": {
                           "version": "5.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
                           "dev": true,
                           "requires": {
                             "es6-promise": "^4.0.3"
                           "dependencies": {
                             "es6-promise": {
                               "version": "4.1.1",
-                              "bundled": true,
+                              "resolved": false,
+                              "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==",
                               "dev": true
                             }
                           }
                     },
                     "debug": {
                       "version": "2.6.8",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
                       "dev": true,
                       "requires": {
                         "ms": "2.0.0"
                       "dependencies": {
                         "ms": {
                           "version": "2.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
                           "dev": true
                         }
                       }
                 },
                 "node-fetch-npm": {
                   "version": "2.0.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha512-W3onhopST5tqpX0/MGSL47pDQLLKobNR83AvkiOWQKaw54h+uYUfzeLAxCiyhWlUOiuI+GIb4O9ojLaAFlhCCA==",
                   "dev": true,
                   "requires": {
                     "encoding": "^0.1.11",
                   "dependencies": {
                     "encoding": {
                       "version": "0.1.12",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
                       "dev": true,
                       "requires": {
                         "iconv-lite": "~0.4.13"
                       "dependencies": {
                         "iconv-lite": {
                           "version": "0.4.18",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==",
                           "dev": true
                         }
                       }
                     },
                     "json-parse-helpfulerror": {
                       "version": "1.0.3",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w=",
                       "dev": true,
                       "requires": {
                         "jju": "^1.1.0"
                       "dependencies": {
                         "jju": {
                           "version": "1.3.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-2t2e8BkkvHKLA/L3l5vb1i96Kqo=",
                           "dev": true
                         }
                       }
                 },
                 "socks-proxy-agent": {
                   "version": "3.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha512-YJcT+SNNBgFoK/NpO20PChz0VnBOhkjG3X10BwlrYujd0NZlSsH1jbxSQ1S0njt3sOvzwQ2PvGqqUIvP4rNk/w==",
                   "dev": true,
                   "requires": {
                     "agent-base": "^4.0.1",
                   "dependencies": {
                     "agent-base": {
                       "version": "4.1.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-IOF0Ac1Js8B2v1akvGxbQ2/6jVU=",
                       "dev": true,
                       "requires": {
                         "es6-promisify": "^5.0.0"
                       "dependencies": {
                         "es6-promisify": {
                           "version": "5.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
                           "dev": true,
                           "requires": {
                             "es6-promise": "^4.0.3"
                           "dependencies": {
                             "es6-promise": {
                               "version": "4.1.1",
-                              "bundled": true,
+                              "resolved": false,
+                              "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==",
                               "dev": true
                             }
                           }
                     },
                     "socks": {
                       "version": "1.1.10",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=",
                       "dev": true,
                       "requires": {
                         "ip": "^1.1.4",
                       "dependencies": {
                         "ip": {
                           "version": "1.1.5",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
                           "dev": true
                         },
                         "smart-buffer": {
                           "version": "1.1.15",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=",
                           "dev": true
                         }
                       }
             },
             "minimatch": {
               "version": "3.0.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
               "dev": true,
               "requires": {
                 "brace-expansion": "^1.1.7"
               "dependencies": {
                 "brace-expansion": {
                   "version": "1.1.8",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
                   "dev": true,
                   "requires": {
                     "balanced-match": "^1.0.0",
                   "dependencies": {
                     "balanced-match": {
                       "version": "1.0.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
                       "dev": true
                     },
                     "concat-map": {
                       "version": "0.0.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
                       "dev": true
                     }
                   }
             },
             "npm-pick-manifest": {
               "version": "1.0.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha512-MKxNdeyOZysPRTTbHtW0M5Fw38Jo/3ARsoGw5qjCfS+XGjvNB/Gb4qtAZUFmKPM2mVum+eX559eHvKywU856BQ==",
               "dev": true,
               "requires": {
                 "npm-package-arg": "^5.1.2",
             },
             "promise-retry": {
               "version": "1.1.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=",
               "dev": true,
               "requires": {
                 "err-code": "^1.0.0",
               "dependencies": {
                 "err-code": {
                   "version": "1.1.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=",
                   "dev": true
                 }
               }
             },
             "protoduck": {
               "version": "4.0.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-/kh02MeRM2bP2erRJFOiLNNlf44=",
               "dev": true,
               "requires": {
                 "genfun": "^4.0.1"
               "dependencies": {
                 "genfun": {
                   "version": "4.0.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=",
                   "dev": true
                 }
               }
             },
             "tar-fs": {
               "version": "1.15.3",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-7M+TXpQUk9gVECjmNuUc5MPKfyA=",
               "dev": true,
               "requires": {
                 "chownr": "^1.0.1",
               "dependencies": {
                 "pump": {
                   "version": "1.0.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE=",
                   "dev": true,
                   "requires": {
                     "end-of-stream": "^1.1.0",
                   "dependencies": {
                     "end-of-stream": {
                       "version": "1.4.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=",
                       "dev": true,
                       "requires": {
                         "once": "^1.4.0"
             },
             "tar-stream": {
               "version": "1.5.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-NlSc8E7RrumyowwBQyUiONr5QBY=",
               "dev": true,
               "requires": {
                 "bl": "^1.0.0",
               "dependencies": {
                 "bl": {
                   "version": "1.2.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=",
                   "dev": true,
                   "requires": {
                     "readable-stream": "^2.0.5"
                 },
                 "end-of-stream": {
                   "version": "1.4.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=",
                   "dev": true,
                   "requires": {
                     "once": "^1.4.0"
                 },
                 "xtend": {
                   "version": "4.0.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
                   "dev": true
                 }
               }
         },
         "path-is-inside": {
           "version": "1.0.2",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
           "dev": true
         },
         "promise-inflight": {
           "version": "1.0.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
           "dev": true
         },
         "read": {
           "version": "1.0.7",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
           "dev": true,
           "requires": {
             "mute-stream": "~0.0.4"
           "dependencies": {
             "mute-stream": {
               "version": "0.0.7",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
               "dev": true
             }
           }
         },
         "read-cmd-shim": {
           "version": "1.0.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=",
           "dev": true,
           "requires": {
             "graceful-fs": "^4.1.2"
         },
         "read-installed": {
           "version": "4.0.3",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=",
           "dev": true,
           "requires": {
             "debuglog": "^1.0.1",
           "dependencies": {
             "util-extend": {
               "version": "1.0.3",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=",
               "dev": true
             }
           }
         },
         "read-package-json": {
           "version": "2.0.9",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha512-vuV8p921IgyelL4UOKv3FsRuRZSaRn30HanLAOKargsr8TbBEq+I3MgloSRXYuKhNdYP1wlEGilMWAIayA2RFg==",
           "dev": true,
           "requires": {
             "glob": "^7.1.1",
           "dependencies": {
             "json-parse-helpfulerror": {
               "version": "1.0.3",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w=",
               "dev": true,
               "requires": {
                 "jju": "^1.1.0"
               "dependencies": {
                 "jju": {
                   "version": "1.3.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-2t2e8BkkvHKLA/L3l5vb1i96Kqo=",
                   "dev": true
                 }
               }
         },
         "read-package-tree": {
           "version": "5.1.6",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha512-FCX1aT3GWyY658wzDICef4p+n0dB+ENRct8E/Qyvppj6xVpOYerBHfUu7OP5Rt1/393Tdglguf5ju5DEX4wZNg==",
           "dev": true,
           "requires": {
             "debuglog": "^1.0.1",
         },
         "readable-stream": {
           "version": "2.3.2",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-WgTfBeT1f+Pw3Gj90R3FyXx+b00=",
           "dev": true,
           "requires": {
             "core-util-is": "~1.0.0",
           "dependencies": {
             "core-util-is": {
               "version": "1.0.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
               "dev": true
             },
             "isarray": {
               "version": "1.0.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
               "dev": true
             },
             "process-nextick-args": {
               "version": "1.0.7",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
               "dev": true
             },
             "string_decoder": {
               "version": "1.0.3",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
               "dev": true,
               "requires": {
                 "safe-buffer": "~5.1.0"
             },
             "util-deprecate": {
               "version": "1.0.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
               "dev": true
             }
           }
         },
         "readdir-scoped-modules": {
           "version": "1.0.2",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=",
           "dev": true,
           "requires": {
             "debuglog": "^1.0.1",
         },
         "request": {
           "version": "2.81.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
           "dev": true,
           "requires": {
             "aws-sign2": "~0.6.0",
           "dependencies": {
             "aws-sign2": {
               "version": "0.6.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
               "dev": true
             },
             "aws4": {
               "version": "1.6.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
               "dev": true
             },
             "caseless": {
               "version": "0.12.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
               "dev": true
             },
             "combined-stream": {
               "version": "1.0.5",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
               "dev": true,
               "requires": {
                 "delayed-stream": "~1.0.0"
               "dependencies": {
                 "delayed-stream": {
                   "version": "1.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
                   "dev": true
                 }
               }
             },
             "extend": {
               "version": "3.0.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
               "dev": true
             },
             "forever-agent": {
               "version": "0.6.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
               "dev": true
             },
             "form-data": {
               "version": "2.1.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
               "dev": true,
               "requires": {
                 "asynckit": "^0.4.0",
               "dependencies": {
                 "asynckit": {
                   "version": "0.4.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
                   "dev": true
                 }
               }
             },
             "har-validator": {
               "version": "4.2.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
               "dev": true,
               "requires": {
                 "ajv": "^4.9.1",
               "dependencies": {
                 "ajv": {
                   "version": "4.11.8",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
                   "dev": true,
                   "requires": {
                     "co": "^4.6.0",
                   "dependencies": {
                     "co": {
                       "version": "4.6.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
                       "dev": true
                     },
                     "json-stable-stringify": {
                       "version": "1.0.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
                       "dev": true,
                       "requires": {
                         "jsonify": "~0.0.0"
                       "dependencies": {
                         "jsonify": {
                           "version": "0.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
                           "dev": true
                         }
                       }
                 },
                 "har-schema": {
                   "version": "1.0.5",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=",
                   "dev": true
                 }
               }
             },
             "hawk": {
               "version": "3.1.3",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
               "dev": true,
               "requires": {
                 "boom": "2.x.x",
               "dependencies": {
                 "boom": {
                   "version": "2.10.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
                   "dev": true,
                   "requires": {
                     "hoek": "2.x.x"
                 },
                 "cryptiles": {
                   "version": "2.0.5",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
                   "dev": true,
                   "requires": {
                     "boom": "2.x.x"
                 },
                 "hoek": {
                   "version": "2.16.3",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
                   "dev": true
                 },
                 "sntp": {
                   "version": "1.0.9",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
                   "dev": true,
                   "requires": {
                     "hoek": "2.x.x"
             },
             "http-signature": {
               "version": "1.1.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
               "dev": true,
               "requires": {
                 "assert-plus": "^0.2.0",
               "dependencies": {
                 "assert-plus": {
                   "version": "0.2.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
                   "dev": true
                 },
                 "jsprim": {
                   "version": "1.4.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=",
                   "dev": true,
                   "requires": {
                     "assert-plus": "1.0.0",
                   "dependencies": {
                     "assert-plus": {
                       "version": "1.0.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
                       "dev": true
                     },
                     "extsprintf": {
                       "version": "1.0.2",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=",
                       "dev": true
                     },
                     "json-schema": {
                       "version": "0.2.3",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
                       "dev": true
                     },
                     "verror": {
                       "version": "1.3.6",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=",
                       "dev": true,
                       "requires": {
                         "extsprintf": "1.0.2"
                 },
                 "sshpk": {
                   "version": "1.13.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
                   "dev": true,
                   "requires": {
                     "asn1": "~0.2.3",
                   "dependencies": {
                     "asn1": {
                       "version": "0.2.3",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
                       "dev": true
                     },
                     "assert-plus": {
                       "version": "1.0.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
                       "dev": true
                     },
                     "bcrypt-pbkdf": {
                       "version": "1.0.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
                       "dev": true,
                       "optional": true,
                       "requires": {
                     },
                     "dashdash": {
                       "version": "1.14.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
                       "dev": true,
                       "requires": {
                         "assert-plus": "^1.0.0"
                     },
                     "ecc-jsbn": {
                       "version": "0.1.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
                       "dev": true,
                       "optional": true,
                       "requires": {
                     },
                     "getpass": {
                       "version": "0.1.7",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
                       "dev": true,
                       "requires": {
                         "assert-plus": "^1.0.0"
                     },
                     "jsbn": {
                       "version": "0.1.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
                       "dev": true,
                       "optional": true
                     },
                     "tweetnacl": {
                       "version": "0.14.5",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
                       "dev": true,
                       "optional": true
                     }
             },
             "is-typedarray": {
               "version": "1.0.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
               "dev": true
             },
             "isstream": {
               "version": "0.1.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
               "dev": true
             },
             "json-stringify-safe": {
               "version": "5.0.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
               "dev": true
             },
             "mime-types": {
               "version": "2.1.15",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=",
               "dev": true,
               "requires": {
                 "mime-db": "~1.27.0"
               "dependencies": {
                 "mime-db": {
                   "version": "1.27.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=",
                   "dev": true
                 }
               }
             },
             "oauth-sign": {
               "version": "0.8.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
               "dev": true
             },
             "performance-now": {
               "version": "0.2.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=",
               "dev": true
             },
             "qs": {
               "version": "6.4.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
               "dev": true
             },
             "stringstream": {
               "version": "0.0.5",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
               "dev": true
             },
             "tough-cookie": {
               "version": "2.3.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=",
               "dev": true,
               "requires": {
                 "punycode": "^1.4.1"
               "dependencies": {
                 "punycode": {
                   "version": "1.4.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
                   "dev": true
                 }
               }
             },
             "tunnel-agent": {
               "version": "0.6.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
               "dev": true,
               "requires": {
                 "safe-buffer": "^5.0.1"
         },
         "retry": {
           "version": "0.10.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=",
           "dev": true
         },
         "rimraf": {
           "version": "2.6.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=",
           "dev": true,
           "requires": {
             "glob": "^7.0.5"
         },
         "safe-buffer": {
           "version": "5.1.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
           "dev": true
         },
         "semver": {
           "version": "5.3.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
           "dev": true
         },
         "sha": {
           "version": "2.0.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-YDCCL70smCOUn49y7WQR7lzyWq4=",
           "dev": true,
           "requires": {
             "graceful-fs": "^4.1.2",
         },
         "slide": {
           "version": "1.1.6",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=",
           "dev": true
         },
         "sorted-object": {
           "version": "2.0.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-fWMfS9OnmKJK8d/8+/6DM3pd9fw=",
           "dev": true
         },
         "sorted-union-stream": {
           "version": "2.1.3",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-x3lMfgd4gAUv9xqNSi27Sppjisc=",
           "dev": true,
           "requires": {
             "from2": "^1.3.0",
           "dependencies": {
             "from2": {
               "version": "1.3.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-iEE7qqX5pZfP3pIh2GmGzTwGHf0=",
               "dev": true,
               "requires": {
                 "inherits": "~2.0.1",
               "dependencies": {
                 "readable-stream": {
                   "version": "1.1.14",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
                   "dev": true,
                   "requires": {
                     "core-util-is": "~1.0.0",
                   "dependencies": {
                     "core-util-is": {
                       "version": "1.0.2",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
                       "dev": true
                     },
                     "isarray": {
                       "version": "0.0.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
                       "dev": true
                     },
                     "string_decoder": {
                       "version": "0.10.31",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
                       "dev": true
                     }
                   }
             },
             "stream-iterate": {
               "version": "1.2.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE=",
               "dev": true,
               "requires": {
                 "readable-stream": "^2.1.5",
               "dependencies": {
                 "stream-shift": {
                   "version": "1.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
                   "dev": true
                 }
               }
         },
         "ssri": {
           "version": "4.1.6",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha512-WUbCdgSAMQjTFZRWvSPpauryvREEA+Krn19rx67UlJEJx/M192ZHxMmJXjZ4tkdFm+Sb0SXGlENeQVlA5wY7kA==",
           "dev": true,
           "requires": {
             "safe-buffer": "^5.1.0"
         },
         "strip-ansi": {
           "version": "4.0.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
           "dev": true,
           "requires": {
             "ansi-regex": "^3.0.0"
           "dependencies": {
             "ansi-regex": {
               "version": "3.0.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
               "dev": true
             }
           }
         },
         "tar": {
           "version": "2.2.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
           "dev": true,
           "requires": {
             "block-stream": "*",
           "dependencies": {
             "block-stream": {
               "version": "0.0.9",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
               "dev": true,
               "requires": {
                 "inherits": "~2.0.0"
         },
         "text-table": {
           "version": "0.2.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
           "dev": true
         },
         "uid-number": {
           "version": "0.0.6",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=",
           "dev": true
         },
         "umask": {
           "version": "1.1.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=",
           "dev": true
         },
         "unique-filename": {
           "version": "1.1.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=",
           "dev": true,
           "requires": {
             "unique-slug": "^2.0.0"
           "dependencies": {
             "unique-slug": {
               "version": "2.0.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=",
               "dev": true,
               "requires": {
                 "imurmurhash": "^0.1.4"
         },
         "unpipe": {
           "version": "1.0.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
           "dev": true
         },
         "update-notifier": {
           "version": "2.2.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-G1g3z5DAc22IYncytmHBOPht5y8=",
           "dev": true,
           "requires": {
             "boxen": "^1.0.0",
           "dependencies": {
             "boxen": {
               "version": "1.1.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-sbad1SIwXoB6md7ud329blFnsQI=",
               "dev": true,
               "requires": {
                 "ansi-align": "^2.0.0",
               "dependencies": {
                 "ansi-align": {
                   "version": "2.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
                   "dev": true,
                   "requires": {
                     "string-width": "^2.0.0"
                 },
                 "camelcase": {
                   "version": "4.1.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
                   "dev": true
                 },
                 "cli-boxes": {
                   "version": "1.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
                   "dev": true
                 },
                 "string-width": {
                   "version": "2.1.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-AwZkVh/BRslCPsfZeP4kV0N/5tA=",
                   "dev": true,
                   "requires": {
                     "is-fullwidth-code-point": "^2.0.0",
                   "dependencies": {
                     "is-fullwidth-code-point": {
                       "version": "2.0.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
                       "dev": true
                     },
                     "strip-ansi": {
                       "version": "4.0.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
                       "dev": true,
                       "requires": {
                         "ansi-regex": "^3.0.0"
                 },
                 "term-size": {
                   "version": "0.1.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-hzYLljlsq1dgljcUzaDQy+7K2co=",
                   "dev": true,
                   "requires": {
                     "execa": "^0.4.0"
                   "dependencies": {
                     "execa": {
                       "version": "0.4.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-TrZGejaglfq7KXD/nV4/t7zm68M=",
                       "dev": true,
                       "requires": {
                         "cross-spawn-async": "^2.1.1",
                       "dependencies": {
                         "cross-spawn-async": {
                           "version": "2.2.5",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-hF/wwINKPe2dFg2sptOQkGuyiMw=",
                           "dev": true,
                           "requires": {
                             "lru-cache": "^4.0.0",
                         },
                         "is-stream": {
                           "version": "1.1.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
                           "dev": true
                         },
                         "npm-run-path": {
                           "version": "1.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-9cMr9ZX+ga6Sfa7FLoL4sACsPI8=",
                           "dev": true,
                           "requires": {
                             "path-key": "^1.0.0"
                         },
                         "object-assign": {
                           "version": "4.1.1",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
                           "dev": true
                         },
                         "path-key": {
                           "version": "1.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-XVPVeAGWRsDWiADbThRua9wqx68=",
                           "dev": true
                         },
                         "strip-eof": {
                           "version": "1.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
                           "dev": true
                         }
                       }
                 },
                 "widest-line": {
                   "version": "1.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw=",
                   "dev": true,
                   "requires": {
                     "string-width": "^1.0.1"
                   "dependencies": {
                     "string-width": {
                       "version": "1.0.2",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
                       "dev": true,
                       "requires": {
                         "code-point-at": "^1.0.0",
                       "dependencies": {
                         "code-point-at": {
                           "version": "1.1.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
                           "dev": true
                         },
                         "is-fullwidth-code-point": {
                           "version": "1.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
                           "dev": true,
                           "requires": {
                             "number-is-nan": "^1.0.0"
                           "dependencies": {
                             "number-is-nan": {
                               "version": "1.0.1",
-                              "bundled": true,
+                              "resolved": false,
+                              "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
                               "dev": true
                             }
                           }
                         },
                         "strip-ansi": {
                           "version": "3.0.1",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
                           "dev": true,
                           "requires": {
                             "ansi-regex": "^2.0.0"
                           "dependencies": {
                             "ansi-regex": {
                               "version": "2.1.1",
-                              "bundled": true,
+                              "resolved": false,
+                              "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
                               "dev": true
                             }
                           }
             },
             "chalk": {
               "version": "1.1.3",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
               "dev": true,
               "requires": {
                 "ansi-styles": "^2.2.1",
               "dependencies": {
                 "ansi-styles": {
                   "version": "2.2.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
                   "dev": true
                 },
                 "escape-string-regexp": {
                   "version": "1.0.5",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
                   "dev": true
                 },
                 "has-ansi": {
                   "version": "2.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
                   "dev": true,
                   "requires": {
                     "ansi-regex": "^2.0.0"
                   "dependencies": {
                     "ansi-regex": {
                       "version": "2.1.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
                       "dev": true
                     }
                   }
                 },
                 "strip-ansi": {
                   "version": "3.0.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
                   "dev": true,
                   "requires": {
                     "ansi-regex": "^2.0.0"
                   "dependencies": {
                     "ansi-regex": {
                       "version": "2.1.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
                       "dev": true
                     }
                   }
                 },
                 "supports-color": {
                   "version": "2.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
                   "dev": true
                 }
               }
             },
             "configstore": {
               "version": "3.1.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-Rd+QcHPibfoc9LLVL1tgVF6qEdE=",
               "dev": true,
               "requires": {
                 "dot-prop": "^4.1.0",
               "dependencies": {
                 "dot-prop": {
                   "version": "4.1.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-qEk/C3te7sglJbXHWH+n3nyoWcE=",
                   "dev": true,
                   "requires": {
                     "is-obj": "^1.0.0"
                   "dependencies": {
                     "is-obj": {
                       "version": "1.0.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
                       "dev": true
                     }
                   }
                 },
                 "make-dir": {
                   "version": "1.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=",
                   "dev": true,
                   "requires": {
                     "pify": "^2.3.0"
                   "dependencies": {
                     "pify": {
                       "version": "2.3.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
                       "dev": true
                     }
                   }
                 },
                 "unique-string": {
                   "version": "1.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
                   "dev": true,
                   "requires": {
                     "crypto-random-string": "^1.0.0"
                   "dependencies": {
                     "crypto-random-string": {
                       "version": "1.0.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
                       "dev": true
                     }
                   }
             },
             "import-lazy": {
               "version": "2.1.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
               "dev": true
             },
             "is-npm": {
               "version": "1.0.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=",
               "dev": true
             },
             "latest-version": {
               "version": "3.1.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
               "dev": true,
               "requires": {
                 "package-json": "^4.0.0"
               "dependencies": {
                 "package-json": {
                   "version": "4.0.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
                   "dev": true,
                   "requires": {
                     "got": "^6.7.1",
                   "dependencies": {
                     "got": {
                       "version": "6.7.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
                       "dev": true,
                       "requires": {
                         "create-error-class": "^3.0.0",
                       "dependencies": {
                         "create-error-class": {
                           "version": "3.0.2",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
                           "dev": true,
                           "requires": {
                             "capture-stack-trace": "^1.0.0"
                           "dependencies": {
                             "capture-stack-trace": {
                               "version": "1.0.0",
-                              "bundled": true,
+                              "resolved": false,
+                              "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=",
                               "dev": true
                             }
                           }
                         },
                         "duplexer3": {
                           "version": "0.1.4",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
                           "dev": true
                         },
                         "get-stream": {
                           "version": "3.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
                           "dev": true
                         },
                         "is-redirect": {
                           "version": "1.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
                           "dev": true
                         },
                         "is-retry-allowed": {
                           "version": "1.1.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
                           "dev": true
                         },
                         "is-stream": {
                           "version": "1.1.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
                           "dev": true
                         },
                         "lowercase-keys": {
                           "version": "1.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=",
                           "dev": true
                         },
                         "timed-out": {
                           "version": "4.0.1",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
                           "dev": true
                         },
                         "unzip-response": {
                           "version": "2.0.1",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=",
                           "dev": true
                         },
                         "url-parse-lax": {
                           "version": "1.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
                           "dev": true,
                           "requires": {
                             "prepend-http": "^1.0.1"
                           "dependencies": {
                             "prepend-http": {
                               "version": "1.0.4",
-                              "bundled": true,
+                              "resolved": false,
+                              "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
                               "dev": true
                             }
                           }
                     },
                     "registry-auth-token": {
                       "version": "3.3.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=",
                       "dev": true,
                       "requires": {
                         "rc": "^1.1.6",
                       "dependencies": {
                         "rc": {
                           "version": "1.2.1",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=",
                           "dev": true,
                           "requires": {
                             "deep-extend": "~0.4.0",
                           "dependencies": {
                             "deep-extend": {
                               "version": "0.4.2",
-                              "bundled": true,
+                              "resolved": false,
+                              "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=",
                               "dev": true
                             },
                             "minimist": {
                               "version": "1.2.0",
-                              "bundled": true,
+                              "resolved": false,
+                              "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
                               "dev": true
                             },
                             "strip-json-comments": {
                               "version": "2.0.1",
-                              "bundled": true,
+                              "resolved": false,
+                              "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
                               "dev": true
                             }
                           }
                     },
                     "registry-url": {
                       "version": "3.1.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
                       "dev": true,
                       "requires": {
                         "rc": "^1.0.1"
                       "dependencies": {
                         "rc": {
                           "version": "1.2.1",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=",
                           "dev": true,
                           "requires": {
                             "deep-extend": "~0.4.0",
                           "dependencies": {
                             "deep-extend": {
                               "version": "0.4.2",
-                              "bundled": true,
+                              "resolved": false,
+                              "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=",
                               "dev": true
                             },
                             "minimist": {
                               "version": "1.2.0",
-                              "bundled": true,
+                              "resolved": false,
+                              "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
                               "dev": true
                             },
                             "strip-json-comments": {
                               "version": "2.0.1",
-                              "bundled": true,
+                              "resolved": false,
+                              "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
                               "dev": true
                             }
                           }
             },
             "semver-diff": {
               "version": "2.1.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
               "dev": true,
               "requires": {
                 "semver": "^5.0.3"
             },
             "xdg-basedir": {
               "version": "3.0.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
               "dev": true
             }
           }
         },
         "uuid": {
           "version": "3.1.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==",
           "dev": true
         },
         "validate-npm-package-license": {
           "version": "3.0.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
           "dev": true,
           "requires": {
             "spdx-correct": "~1.0.0",
           "dependencies": {
             "spdx-correct": {
               "version": "1.0.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
               "dev": true,
               "requires": {
                 "spdx-license-ids": "^1.0.2"
               "dependencies": {
                 "spdx-license-ids": {
                   "version": "1.2.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
                   "dev": true
                 }
               }
             },
             "spdx-expression-parse": {
               "version": "1.0.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
               "dev": true
             }
           }
         },
         "validate-npm-package-name": {
           "version": "3.0.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=",
           "dev": true,
           "requires": {
             "builtins": "^1.0.3"
           "dependencies": {
             "builtins": {
               "version": "1.0.3",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=",
               "dev": true
             }
           }
         },
         "which": {
           "version": "1.2.14",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=",
           "dev": true,
           "requires": {
             "isexe": "^2.0.0"
           "dependencies": {
             "isexe": {
               "version": "2.0.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
               "dev": true
             }
           }
         },
         "worker-farm": {
           "version": "1.3.1",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-QzMRK7SbF6oFC4eJXKayys9A5f8=",
           "dev": true,
           "requires": {
             "errno": ">=0.1.1 <0.2.0-0",
           "dependencies": {
             "errno": {
               "version": "0.1.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=",
               "dev": true,
               "requires": {
                 "prr": "~0.0.0"
               "dependencies": {
                 "prr": {
                   "version": "0.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=",
                   "dev": true
                 }
               }
             },
             "xtend": {
               "version": "4.0.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
               "dev": true
             }
           }
         },
         "wrappy": {
           "version": "1.0.2",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
           "dev": true
         },
         "write-file-atomic": {
           "version": "2.1.0",
-          "bundled": true,
+          "resolved": false,
+          "integrity": "sha512-0TZ20a+xcIl4u0+Mj5xDH2yOWdmQiXlKf9Hm+TgDXjTMsEYb+gDrmb8e8UNAzMCitX8NBqG4Z/FUQIyzv/R1JQ==",
           "dev": true,
           "requires": {
             "graceful-fs": "^4.1.11",
           "dependencies": {
             "abbrev": {
               "version": "1.0.9",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=",
               "dev": true
             },
             "ansi": {
               "version": "0.3.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=",
               "dev": true
             },
             "ansi-regex": {
               "version": "2.0.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc=",
               "dev": true
             },
             "ansicolors": {
               "version": "0.3.2",
-              "bundled": true,
+              "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz",
+              "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=",
               "dev": true
             },
             "ansistyles": {
               "version": "0.1.3",
-              "bundled": true,
+              "resolved": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz",
+              "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=",
               "dev": true
             },
             "archy": {
               "version": "1.0.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
               "dev": true
             },
             "async-some": {
               "version": "1.0.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-TYqBYg1ZWHkbW5j4AtMgd3bpVQk=",
               "dev": true,
               "requires": {
                 "dezalgo": "^1.0.2"
             },
             "block-stream": {
               "version": "0.0.9",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
               "dev": true,
               "requires": {
                 "inherits": "~2.0.0"
             },
             "char-spinner": {
               "version": "1.0.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-5upnvSR+EHESmDt6sEee02KAAIE=",
               "dev": true
             },
             "chmodr": {
               "version": "1.0.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-BGYrky0PAuxm3qorDqQoEZaOPrk=",
               "dev": true
             },
             "chownr": {
               "version": "1.0.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=",
               "dev": true
             },
             "cmd-shim": {
               "version": "2.0.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=",
               "dev": true,
               "requires": {
                 "graceful-fs": "^4.1.2",
             },
             "columnify": {
               "version": "1.5.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=",
               "dev": true,
               "requires": {
                 "strip-ansi": "^3.0.0",
               "dependencies": {
                 "wcwidth": {
                   "version": "1.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-AtBZ/3qPx0Hg9rXaHmmytA2uym8=",
                   "dev": true,
                   "requires": {
                     "defaults": "^1.0.0"
                   "dependencies": {
                     "defaults": {
                       "version": "1.0.3",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
                       "dev": true,
                       "requires": {
                         "clone": "^1.0.2"
                       "dependencies": {
                         "clone": {
                           "version": "1.0.2",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
                           "dev": true
                         }
                       }
             },
             "config-chain": {
               "version": "1.1.10",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-f8OD3g/MhNcRy0Zb0XZXnK1hI0Y=",
               "dev": true,
               "requires": {
                 "ini": "^1.3.4",
               "dependencies": {
                 "proto-list": {
                   "version": "1.2.4",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=",
                   "dev": true
                 }
               }
             },
             "dezalgo": {
               "version": "1.0.3",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=",
               "dev": true,
               "requires": {
                 "asap": "^2.0.0",
               "dependencies": {
                 "asap": {
                   "version": "2.0.3",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-H8HRVk7hFiDfym1nAphQkT+fRnk=",
                   "dev": true
                 }
               }
             },
             "editor": {
               "version": "1.0.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=",
               "dev": true
             },
             "fs-vacuum": {
               "version": "1.2.9",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-T5AZOrjqAokJlbzU6ARlml02ay0=",
               "dev": true,
               "requires": {
                 "graceful-fs": "^4.1.2",
             },
             "fs-write-stream-atomic": {
               "version": "1.0.8",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-5Jqt3yiPh9Rv+eiC8hahOrxAd4s=",
               "dev": true,
               "requires": {
                 "graceful-fs": "^4.1.2",
               "dependencies": {
                 "iferr": {
                   "version": "0.1.5",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
                   "dev": true
                 }
               }
             },
             "fstream": {
               "version": "1.0.10",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-YE6Kkv4m/9n2+uMDmdSYThqyKCI=",
               "dev": true,
               "requires": {
                 "graceful-fs": "^4.1.2",
             },
             "fstream-npm": {
               "version": "1.1.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-a5F122I5qD2CCeIyQmxJTbspaQw=",
               "dev": true,
               "requires": {
                 "fstream-ignore": "^1.0.0",
               "dependencies": {
                 "fstream-ignore": {
                   "version": "1.0.5",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=",
                   "dev": true,
                   "requires": {
                     "fstream": "^1.0.0",
             },
             "github-url-from-git": {
               "version": "1.4.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-KF5rUggZABveEoZ0cEN55P8D4N4=",
               "dev": true
             },
             "github-url-from-username-repo": {
               "version": "1.0.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-fdeTMNKr5pwQws73lxTJchV5Hfo=",
               "dev": true
             },
             "glob": {
               "version": "7.0.6",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
               "dev": true,
               "requires": {
                 "fs.realpath": "^1.0.0",
               "dependencies": {
                 "fs.realpath": {
                   "version": "1.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
                   "dev": true
                 },
                 "path-is-absolute": {
                   "version": "1.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-Jj2tpmqz8vsQv3+dJN2PPlcO+RI=",
                   "dev": true
                 }
               }
             },
             "graceful-fs": {
               "version": "4.1.6",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-UUw4dysxvuLgi+3CGgrrOr9UwZ4=",
               "dev": true
             },
             "hosted-git-info": {
               "version": "2.1.5",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-C6gdkNouJas0ozLm7HeTbhWYEYs=",
               "dev": true
             },
             "imurmurhash": {
               "version": "0.1.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
               "dev": true
             },
             "inflight": {
               "version": "1.0.5",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-2zIEzVqd4ubNiQuFxuL2a89PYgo=",
               "dev": true,
               "requires": {
                 "once": "^1.3.0",
             },
             "inherits": {
               "version": "2.0.3",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
               "dev": true
             },
             "ini": {
               "version": "1.3.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=",
               "dev": true
             },
             "init-package-json": {
               "version": "1.9.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-tAU9C0Dwz4QqQZZpN8s9wPU06FY=",
               "dev": true,
               "requires": {
                 "glob": "^6.0.0",
               "dependencies": {
                 "glob": {
                   "version": "6.0.4",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
                   "dev": true,
                   "requires": {
                     "inflight": "^1.0.4",
                   "dependencies": {
                     "path-is-absolute": {
                       "version": "1.0.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-Jj2tpmqz8vsQv3+dJN2PPlcO+RI=",
                       "dev": true
                     }
                   }
                 },
                 "promzard": {
                   "version": "0.3.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=",
                   "dev": true,
                   "requires": {
                     "read": "1"
             },
             "lockfile": {
               "version": "1.0.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-nTU+z+P1TRULtX+J1RdGk1o5xPU=",
               "dev": true
             },
             "lru-cache": {
               "version": "4.0.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-E0OVXtry432bnn7nJB4nxLn7cr4=",
               "dev": true,
               "requires": {
                 "pseudomap": "^1.0.1",
               "dependencies": {
                 "pseudomap": {
                   "version": "1.0.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
                   "dev": true
                 },
                 "yallist": {
                   "version": "2.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-MGxUODXwnuGkyyO3vOmrNByRzdQ=",
                   "dev": true
                 }
               }
             },
             "minimatch": {
               "version": "3.0.3",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
               "dev": true,
               "requires": {
                 "brace-expansion": "^1.0.0"
               "dependencies": {
                 "brace-expansion": {
                   "version": "1.1.6",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=",
                   "dev": true,
                   "requires": {
                     "balanced-match": "^0.4.1",
                   "dependencies": {
                     "balanced-match": {
                       "version": "0.4.2",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
                       "dev": true
                     },
                     "concat-map": {
                       "version": "0.0.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
                       "dev": true
                     }
                   }
             },
             "mkdirp": {
               "version": "0.5.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
               "dev": true,
               "requires": {
                 "minimist": "0.0.8"
               "dependencies": {
                 "minimist": {
                   "version": "0.0.8",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
                   "dev": true
                 }
               }
             },
             "node-gyp": {
               "version": "3.6.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-dHT2OjoFARYd2gtjQfAi8UxCP6Y=",
               "dev": true,
               "requires": {
                 "fstream": "^1.0.0",
               "dependencies": {
                 "semver": {
                   "version": "5.3.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
                   "dev": true
                 }
               }
             },
             "nopt": {
               "version": "3.0.6",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
               "dev": true,
               "requires": {
                 "abbrev": "1"
             },
             "normalize-git-url": {
               "version": "3.0.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-jl8Uvgva7bc+ByADEKpBbCc1D8Q=",
               "dev": true
             },
             "normalize-package-data": {
               "version": "2.3.5",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=",
               "dev": true,
               "requires": {
                 "hosted-git-info": "^2.1.4",
               "dependencies": {
                 "is-builtin-module": {
                   "version": "1.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
                   "dev": true,
                   "requires": {
                     "builtin-modules": "^1.0.0"
                   "dependencies": {
                     "builtin-modules": {
                       "version": "1.1.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-EFOVX9mUpXRuUl5Kxxe4HK8HSRw=",
                       "dev": true
                     }
                   }
             },
             "npm-cache-filename": {
               "version": "1.0.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-3tMGxbC/yHCp6fr4I7xfKD4FrhE=",
               "dev": true
             },
             "npm-install-checks": {
               "version": "1.0.7",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-bZGu2grJaAHx7Xqt7hFqbAoIalc=",
               "dev": true,
               "requires": {
                 "npmlog": "0.1 || 1 || 2",
             },
             "npm-package-arg": {
               "version": "4.1.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-LgFfisAHN8uX+ZfJy/BZ9Cp0Un0=",
               "dev": true,
               "requires": {
                 "hosted-git-info": "^2.1.4",
             },
             "npm-registry-client": {
               "version": "7.2.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-x5ImawiMwxP4Ul5+NSSGJscj23U=",
               "dev": true,
               "requires": {
                 "concat-stream": "^1.5.2",
               "dependencies": {
                 "concat-stream": {
                   "version": "1.5.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
                   "dev": true,
                   "requires": {
                     "inherits": "~2.0.1",
                   "dependencies": {
                     "readable-stream": {
                       "version": "2.0.6",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
                       "dev": true,
                       "requires": {
                         "core-util-is": "~1.0.0",
                       "dependencies": {
                         "core-util-is": {
                           "version": "1.0.2",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
                           "dev": true
                         },
                         "isarray": {
                           "version": "1.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
                           "dev": true
                         },
                         "process-nextick-args": {
                           "version": "1.0.7",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
                           "dev": true
                         },
                         "string_decoder": {
                           "version": "0.10.31",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
                           "dev": true
                         },
                         "util-deprecate": {
                           "version": "1.0.2",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
                           "dev": true
                         }
                       }
                     },
                     "typedarray": {
                       "version": "0.0.6",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
                       "dev": true
                     }
                   }
                 },
                 "retry": {
                   "version": "0.10.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-ZJ4VykCEItmDGBYZNef31lLUNd0=",
                   "dev": true
                 }
               }
             },
             "npm-user-validate": {
               "version": "0.1.5",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-UkZdUMLSApSlcSW5lrrtv1bFAEs=",
               "dev": true
             },
             "npmlog": {
               "version": "2.0.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-mLUlMPJRTKkNCexbIsiEZyI3VpI=",
               "dev": true,
               "requires": {
                 "ansi": "~0.3.1",
               "dependencies": {
                 "are-we-there-yet": {
                   "version": "1.1.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-gORw6VoIR5T+GJkmLFZnxuiN4bM=",
                   "dev": true,
                   "requires": {
                     "delegates": "^1.0.0",
                   "dependencies": {
                     "delegates": {
                       "version": "1.0.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
                       "dev": true
                     }
                   }
                 },
                 "gauge": {
                   "version": "1.2.7",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=",
                   "dev": true,
                   "requires": {
                     "ansi": "^0.3.0",
                   "dependencies": {
                     "has-unicode": {
                       "version": "2.0.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-o82Wwwe6QdVZxaLuQIwSoRxMLsM=",
                       "dev": true
                     },
                     "lodash._baseslice": {
                       "version": "4.0.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-9c4d+YKUjsr/Y/IjhTQVt7l2NwQ=",
                       "dev": true
                     },
                     "lodash._basetostring": {
                       "version": "4.12.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-kyfJ3FFYhmt/pLnUL0Y45XZt2d8=",
                       "dev": true
                     },
                     "lodash.pad": {
                       "version": "4.4.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-+qON8mwKaexQhqgiRslY4VDcsas=",
                       "dev": true,
                       "requires": {
                         "lodash._baseslice": "~4.0.0",
                     },
                     "lodash.padend": {
                       "version": "4.5.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-oonpN37i5t6Lp/EfOo6zJgcLdhk=",
                       "dev": true,
                       "requires": {
                         "lodash._baseslice": "~4.0.0",
                     },
                     "lodash.padstart": {
                       "version": "4.5.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-PqGQ9nNIQcM2TSedEeBWcmtgp5o=",
                       "dev": true,
                       "requires": {
                         "lodash._baseslice": "~4.0.0",
                     },
                     "lodash.tostring": {
                       "version": "4.1.4",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-Vgwn0fjq3eA8LM4Zj+9cAx2CmPs=",
                       "dev": true
                     }
                   }
             },
             "once": {
               "version": "1.4.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
               "dev": true,
               "requires": {
                 "wrappy": "1"
             },
             "opener": {
               "version": "1.4.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-iXWQrNGu0zEbcDtYvMtNQ/VvKJU=",
               "dev": true
             },
             "osenv": {
               "version": "0.1.3",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-g88FxtZFj8TVrGNi6jJdkvJ1Qhc=",
               "dev": true,
               "requires": {
                 "os-homedir": "^1.0.0",
               "dependencies": {
                 "os-homedir": {
                   "version": "1.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-43B4vGG1hpBjBTiXJX457BJhtwI=",
                   "dev": true
                 },
                 "os-tmpdir": {
                   "version": "1.0.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-6bQjoe2vR5iCVi6S7XHXdDoHG24=",
                   "dev": true
                 }
               }
             },
             "path-is-inside": {
               "version": "1.0.1",
-              "bundled": true,
+              "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.1.tgz",
+              "integrity": "sha1-mNjx0DC/BL167uShulSF1AMY/Yk=",
               "dev": true
             },
             "read": {
               "version": "1.0.7",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
               "dev": true,
               "requires": {
                 "mute-stream": "~0.0.4"
               "dependencies": {
                 "mute-stream": {
                   "version": "0.0.5",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=",
                   "dev": true
                 }
               }
             },
             "read-installed": {
               "version": "4.0.3",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=",
               "dev": true,
               "requires": {
                 "debuglog": "^1.0.1",
               "dependencies": {
                 "debuglog": {
                   "version": "1.0.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=",
                   "dev": true
                 },
                 "readdir-scoped-modules": {
                   "version": "1.0.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=",
                   "dev": true,
                   "requires": {
                     "debuglog": "^1.0.1",
                 },
                 "util-extend": {
                   "version": "1.0.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-u3A7eUgCk93Nz7PGqf6iD0g0Fbw=",
                   "dev": true
                 }
               }
             },
             "read-package-json": {
               "version": "2.0.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-Ye0bIlbqQ42ACIlQkL6EuOeZyFM=",
               "dev": true,
               "requires": {
                 "glob": "^6.0.0",
               "dependencies": {
                 "glob": {
                   "version": "6.0.4",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
                   "dev": true,
                   "requires": {
                     "inflight": "^1.0.4",
                   "dependencies": {
                     "path-is-absolute": {
                       "version": "1.0.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-Jj2tpmqz8vsQv3+dJN2PPlcO+RI=",
                       "dev": true
                     }
                   }
                 },
                 "json-parse-helpfulerror": {
                   "version": "1.0.3",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w=",
                   "dev": true,
                   "requires": {
                     "jju": "^1.1.0"
                   "dependencies": {
                     "jju": {
                       "version": "1.3.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-2t2e8BkkvHKLA/L3l5vb1i96Kqo=",
                       "dev": true
                     }
                   }
             },
             "readable-stream": {
               "version": "2.1.5",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA=",
               "dev": true,
               "requires": {
                 "buffer-shims": "^1.0.0",
               "dependencies": {
                 "buffer-shims": {
                   "version": "1.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=",
                   "dev": true
                 },
                 "core-util-is": {
                   "version": "1.0.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
                   "dev": true
                 },
                 "isarray": {
                   "version": "1.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
                   "dev": true
                 },
                 "process-nextick-args": {
                   "version": "1.0.7",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
                   "dev": true
                 },
                 "string_decoder": {
                   "version": "0.10.31",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
                   "dev": true
                 },
                 "util-deprecate": {
                   "version": "1.0.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
                   "dev": true
                 }
               }
             },
             "realize-package-specifier": {
               "version": "3.0.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-/eMukmRI44+ZM02Vt7CNUeOpjZ8=",
               "dev": true,
               "requires": {
                 "dezalgo": "^1.0.1",
             },
             "request": {
               "version": "2.74.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-dpPKdou7DqXIzgjAhKRe+gW4kqs=",
               "dev": true,
               "requires": {
                 "aws-sign2": "~0.6.0",
               "dependencies": {
                 "aws-sign2": {
                   "version": "0.6.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
                   "dev": true
                 },
                 "aws4": {
                   "version": "1.4.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-/efVKSRm0jDl7g9OA42d+qsI/GE=",
                   "dev": true
                 },
                 "bl": {
                   "version": "1.1.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-/cqHGplxOqANGeO7ukHER4emU5g=",
                   "dev": true,
                   "requires": {
                     "readable-stream": "~2.0.5"
                   "dependencies": {
                     "readable-stream": {
                       "version": "2.0.6",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
                       "dev": true,
                       "requires": {
                         "core-util-is": "~1.0.0",
                       "dependencies": {
                         "core-util-is": {
                           "version": "1.0.2",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
                           "dev": true
                         },
                         "isarray": {
                           "version": "1.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
                           "dev": true
                         },
                         "process-nextick-args": {
                           "version": "1.0.7",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
                           "dev": true
                         },
                         "string_decoder": {
                           "version": "0.10.31",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
                           "dev": true
                         },
                         "util-deprecate": {
                           "version": "1.0.2",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
                           "dev": true
                         }
                       }
                 },
                 "caseless": {
                   "version": "0.11.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
                   "dev": true
                 },
                 "combined-stream": {
                   "version": "1.0.5",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
                   "dev": true,
                   "requires": {
                     "delayed-stream": "~1.0.0"
                   "dependencies": {
                     "delayed-stream": {
                       "version": "1.0.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
                       "dev": true
                     }
                   }
                 },
                 "extend": {
                   "version": "3.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ=",
                   "dev": true
                 },
                 "forever-agent": {
                   "version": "0.6.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
                   "dev": true
                 },
                 "form-data": {
                   "version": "1.0.0-rc4",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-BaxrwiIntD5EYfSIFhVUaZ1Pi14=",
                   "dev": true,
                   "requires": {
                     "async": "^1.5.2",
                   "dependencies": {
                     "async": {
                       "version": "1.5.2",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
                       "dev": true
                     }
                   }
                 },
                 "har-validator": {
                   "version": "2.0.6",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
                   "dev": true,
                   "requires": {
                     "chalk": "^1.1.1",
                   "dependencies": {
                     "chalk": {
                       "version": "1.1.3",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
                       "dev": true,
                       "requires": {
                         "ansi-styles": "^2.2.1",
                       "dependencies": {
                         "ansi-styles": {
                           "version": "2.2.1",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
                           "dev": true
                         },
                         "escape-string-regexp": {
                           "version": "1.0.5",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
                           "dev": true
                         },
                         "has-ansi": {
                           "version": "2.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
                           "dev": true,
                           "requires": {
                             "ansi-regex": "^2.0.0"
                         },
                         "supports-color": {
                           "version": "2.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
                           "dev": true
                         }
                       }
                     },
                     "commander": {
                       "version": "2.9.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
                       "dev": true,
                       "requires": {
                         "graceful-readlink": ">= 1.0.0"
                       "dependencies": {
                         "graceful-readlink": {
                           "version": "1.0.1",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
                           "dev": true
                         }
                       }
                     },
                     "is-my-json-valid": {
                       "version": "2.13.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-1Vd4qC/rawlj/0vhEdXRaE6JBwc=",
                       "dev": true,
                       "requires": {
                         "generate-function": "^2.0.0",
                       "dependencies": {
                         "generate-function": {
                           "version": "2.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
                           "dev": true
                         },
                         "generate-object-property": {
                           "version": "1.2.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
                           "dev": true,
                           "requires": {
                             "is-property": "^1.0.0"
                           "dependencies": {
                             "is-property": {
                               "version": "1.0.2",
-                              "bundled": true,
+                              "resolved": false,
+                              "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
                               "dev": true
                             }
                           }
                         },
                         "jsonpointer": {
                           "version": "2.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-OvHdIP6FRjkQ1GmjheMwF9KgMNk=",
                           "dev": true
                         },
                         "xtend": {
                           "version": "4.0.1",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
                           "dev": true
                         }
                       }
                     },
                     "pinkie-promise": {
                       "version": "2.0.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
                       "dev": true,
                       "requires": {
                         "pinkie": "^2.0.0"
                       "dependencies": {
                         "pinkie": {
                           "version": "2.0.4",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
                           "dev": true
                         }
                       }
                 },
                 "hawk": {
                   "version": "3.1.3",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
                   "dev": true,
                   "requires": {
                     "boom": "2.x.x",
                   "dependencies": {
                     "boom": {
                       "version": "2.10.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
                       "dev": true,
                       "requires": {
                         "hoek": "2.x.x"
                     },
                     "cryptiles": {
                       "version": "2.0.5",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
                       "dev": true,
                       "requires": {
                         "boom": "2.x.x"
                     },
                     "hoek": {
                       "version": "2.16.3",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
                       "dev": true
                     },
                     "sntp": {
                       "version": "1.0.9",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
                       "dev": true,
                       "requires": {
                         "hoek": "2.x.x"
                 },
                 "http-signature": {
                   "version": "1.1.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
                   "dev": true,
                   "requires": {
                     "assert-plus": "^0.2.0",
                   "dependencies": {
                     "assert-plus": {
                       "version": "0.2.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
                       "dev": true
                     },
                     "jsprim": {
                       "version": "1.3.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-zi4b74NSBLTzCZkoxgL4tq5hVlA=",
                       "dev": true,
                       "requires": {
                         "extsprintf": "1.0.2",
                       "dependencies": {
                         "extsprintf": {
                           "version": "1.0.2",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=",
                           "dev": true
                         },
                         "json-schema": {
                           "version": "0.2.2",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-UDVPGfYDkXxpX3C4Wvp3w7DyNQY=",
                           "dev": true
                         },
                         "verror": {
                           "version": "1.3.6",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=",
                           "dev": true,
                           "requires": {
                             "extsprintf": "1.0.2"
                     },
                     "sshpk": {
                       "version": "1.9.2",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-O0E1G7rVw03fS9gRmTfv7jGkZ2U=",
                       "dev": true,
                       "requires": {
                         "asn1": "~0.2.3",
                       "dependencies": {
                         "asn1": {
                           "version": "0.2.3",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
                           "dev": true
                         },
                         "assert-plus": {
                           "version": "1.0.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
                           "dev": true
                         },
                         "dashdash": {
                           "version": "1.14.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-KeSGxUGL8PNWA0qZPVFoajPoQUE=",
                           "dev": true,
                           "requires": {
                             "assert-plus": "^1.0.0"
                         },
                         "ecc-jsbn": {
                           "version": "0.1.1",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
                           "dev": true,
                           "optional": true,
                           "requires": {
                         },
                         "getpass": {
                           "version": "0.1.6",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-KD/9n8ElaECHUxHBtg6MQBhxEOY=",
                           "dev": true,
                           "requires": {
                             "assert-plus": "^1.0.0"
                         },
                         "jodid25519": {
                           "version": "1.0.2",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=",
                           "dev": true,
                           "optional": true,
                           "requires": {
                         },
                         "jsbn": {
                           "version": "0.1.0",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-ZQmH2g3XT06/WhE3eiqi0nPpff0=",
                           "dev": true,
                           "optional": true
                         },
                         "tweetnacl": {
                           "version": "0.13.3",
-                          "bundled": true,
+                          "resolved": false,
+                          "integrity": "sha1-1ii1bzvMPVrnS6nUwacE3vWrS1Y=",
                           "dev": true,
                           "optional": true
                         }
                 },
                 "is-typedarray": {
                   "version": "1.0.0",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
                   "dev": true
                 },
                 "isstream": {
                   "version": "0.1.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
                   "dev": true
                 },
                 "json-stringify-safe": {
                   "version": "5.0.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
                   "dev": true
                 },
                 "mime-types": {
                   "version": "2.1.11",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=",
                   "dev": true,
                   "requires": {
                     "mime-db": "~1.23.0"
                   "dependencies": {
                     "mime-db": {
                       "version": "1.23.0",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-oxtAcK2uon1zLqMzdApk0OyaZlk=",
                       "dev": true
                     }
                   }
                 },
                 "node-uuid": {
                   "version": "1.4.7",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-baWhdmjEs91ZYjvaEc9/pMH2Cm8=",
                   "dev": true
                 },
                 "oauth-sign": {
                   "version": "0.8.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
                   "dev": true
                 },
                 "qs": {
                   "version": "6.2.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-zgPF/wk1vB2daanxTL0Y5WjWdiU=",
                   "dev": true
                 },
                 "stringstream": {
                   "version": "0.0.5",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
                   "dev": true
                 },
                 "tough-cookie": {
                   "version": "2.3.1",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-mcd9+7fYBCSeiimdTLD9gf7wg/0=",
                   "dev": true
                 },
                 "tunnel-agent": {
                   "version": "0.4.3",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
                   "dev": true
                 }
               }
             },
             "retry": {
               "version": "0.10.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-ZJ4VykCEItmDGBYZNef31lLUNd0=",
               "dev": true
             },
             "rimraf": {
               "version": "2.5.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=",
               "dev": true,
               "requires": {
                 "glob": "^7.0.5"
             },
             "semver": {
               "version": "5.1.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-hfLPhVBGXE3wAM99hvawVBBqueU=",
               "dev": true
             },
             "sha": {
               "version": "2.0.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-YDCCL70smCOUn49y7WQR7lzyWq4=",
               "dev": true,
               "requires": {
                 "graceful-fs": "^4.1.2",
               "dependencies": {
                 "readable-stream": {
                   "version": "2.0.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-vsgb6ujPRVFovC5bKzH1vPrtmxs=",
                   "dev": true,
                   "requires": {
                     "core-util-is": "~1.0.0",
                   "dependencies": {
                     "core-util-is": {
                       "version": "1.0.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-awcIWu+aPMrG7lO/nT3wwVIaVTg=",
                       "dev": true
                     },
                     "isarray": {
                       "version": "0.0.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
                       "dev": true
                     },
                     "process-nextick-args": {
                       "version": "1.0.3",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-4nLu2CXV6fTqdNjXOx/jEcO+tjA=",
                       "dev": true
                     },
                     "string_decoder": {
                       "version": "0.10.31",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
                       "dev": true
                     },
                     "util-deprecate": {
                       "version": "1.0.1",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-NVaj0TxMaqeYPX4kJUeBlxmbeIE=",
                       "dev": true
                     }
                   }
             },
             "slide": {
               "version": "1.1.6",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=",
               "dev": true
             },
             "sorted-object": {
               "version": "2.0.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-HP6pgWCQR9gEOAekkKnZmzF/r38=",
               "dev": true
             },
             "spdx-license-ids": {
               "version": "1.2.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
               "dev": true
             },
             "strip-ansi": {
               "version": "3.0.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
               "dev": true,
               "requires": {
                 "ansi-regex": "^2.0.0"
             },
             "tar": {
               "version": "2.2.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
               "dev": true,
               "requires": {
                 "block-stream": "*",
             },
             "text-table": {
               "version": "0.2.0",
-              "bundled": true,
+              "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+              "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
               "dev": true
             },
             "uid-number": {
               "version": "0.0.6",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=",
               "dev": true
             },
             "umask": {
               "version": "1.1.0",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=",
               "dev": true
             },
             "validate-npm-package-license": {
               "version": "3.0.1",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
               "dev": true,
               "requires": {
                 "spdx-correct": "~1.0.0",
               "dependencies": {
                 "spdx-correct": {
                   "version": "1.0.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
                   "dev": true,
                   "requires": {
                     "spdx-license-ids": "^1.0.2"
                 },
                 "spdx-expression-parse": {
                   "version": "1.0.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-1SsUtelnB3FECvIlvLVjEirEUvY=",
                   "dev": true,
                   "requires": {
                     "spdx-exceptions": "^1.0.4",
                   "dependencies": {
                     "spdx-exceptions": {
                       "version": "1.0.4",
-                      "bundled": true,
+                      "resolved": false,
+                      "integrity": "sha1-IguEI5EZrpBFqJLbgag/TOFvgP0=",
                       "dev": true
                     }
                   }
             },
             "validate-npm-package-name": {
               "version": "2.2.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-9laVsi9zJEQgGaPH+jmm5/0pkIU=",
               "dev": true,
               "requires": {
                 "builtins": "0.0.7"
               "dependencies": {
                 "builtins": {
                   "version": "0.0.7",
-                  "bundled": true,
+                  "resolved": "https://registry.npmjs.org/builtins/-/builtins-0.0.7.tgz",
+                  "integrity": "sha1-NVIZzWzxjb58Acx/0tznZc/cVJo=",
                   "dev": true
                 }
               }
             },
             "which": {
               "version": "1.2.11",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-yLLu6muMFln6fB3U/aq+lTPcXos=",
               "dev": true,
               "requires": {
                 "isexe": "^1.1.1"
               "dependencies": {
                 "isexe": {
                   "version": "1.1.2",
-                  "bundled": true,
+                  "resolved": false,
+                  "integrity": "sha1-NvPiLmB1CSD15yQaR2qMakInWtA=",
                   "dev": true
                 }
               }
             },
             "wrappy": {
               "version": "1.0.2",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
               "dev": true
             },
             "write-file-atomic": {
               "version": "1.1.4",
-              "bundled": true,
+              "resolved": false,
+              "integrity": "sha1-sfUtwujcDjywTRh6JfdYo4qQyjs=",
               "dev": true,
               "requires": {
                 "graceful-fs": "^4.1.2",
         }
       }
     },
+    "rollup-plugin-web-worker-loader": {
+      "version": "0.8.1",
+      "resolved": "https://registry.npmjs.org/rollup-plugin-web-worker-loader/-/rollup-plugin-web-worker-loader-0.8.1.tgz",
+      "integrity": "sha512-hppK5fkE/RpMw+oCv7idcdmj40WzapwN4Jw3b3/vqpaCZYJO/Djd2PjJ8difu5Uk22dnvwNrQ49CZgsnaEdR6A==",
+      "dev": true
+    },
     "rollup-pluginutils": {
       "version": "2.8.2",
       "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
index 0f4c95ed682eedf7fd8712bee914b0a84e471f6c..e0fd52b69f6f57d4e1dec07d45bb835745e3af7b 100644 (file)
@@ -76,6 +76,7 @@
     "rollup-plugin-babel": "^4.3.3",
     "rollup-plugin-cleanup": "^3.1.1",
     "rollup-plugin-terser": "^5.2.0",
+    "rollup-plugin-web-worker-loader": "^0.8.1",
     "typedoc": "^0.16.10",
     "typescript": "^3.8.2",
     "yargs": "^14.2.2"
diff --git a/test/BasicChartWebWorker.js b/test/BasicChartWebWorker.js
new file mode 100644 (file)
index 0000000..d4f7134
--- /dev/null
@@ -0,0 +1,26 @@
+// This file is a basic example of using a chart inside a web worker.
+// All it creates a new chart from a transferred OffscreenCanvas and then assert that the correct platform type was
+// used.
+
+// Receives messages with data of type: { type: 'initialize', canvas: OffscreenCanvas }
+// Sends messages with data of types: { type: 'success' } | { type: 'error', errorMessage: string }
+
+import Chart from '../src';
+
+onmessage = function(event) {
+       try {
+               const {type, canvas} = event.data;
+               if (type !== 'initialize') {
+                       throw new Error('invalid message type received by worker: ' + type);
+               }
+
+               const chart = new Chart(canvas);
+               if (!(chart.platform instanceof Chart.platforms.BasicPlatform)) {
+                       throw new Error('did not use basic platform for chart in web worker');
+               }
+
+               postMessage({type: 'success'});
+       } catch (error) {
+               postMessage({type: 'error', errorMessage: error.stack});
+       }
+};
diff --git a/test/fixtures/controller.line/point-style-offscreen-canvas.json b/test/fixtures/controller.line/point-style-offscreen-canvas.json
new file mode 100644 (file)
index 0000000..dce4f0a
--- /dev/null
@@ -0,0 +1,97 @@
+{
+       "config": {
+               "type": "line",
+               "data": {
+                       "labels": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
+                       "datasets": [{
+                               "borderColor": "transparent",
+                               "data": [3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
+                               "pointBackgroundColor": "#00ff00",
+                               "pointBorderColor": "transparent",
+                               "pointBorderWidth": 0,
+                               "pointStyle": [
+                                       "circle",
+                                       "cross",
+                                       "crossRot",
+                                       "dash",
+                                       "line",
+                                       "rect",
+                                       "rectRounded",
+                                       "rectRot",
+                                       "star",
+                                       "triangle"
+                               ]
+                       }, {
+                               "borderColor": "transparent",
+                               "data": [2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
+                               "pointBackgroundColor": "transparent",
+                               "pointBorderColor": "#0000ff",
+                               "pointBorderWidth": 1,
+                               "pointStyle": [
+                                       "circle",
+                                       "cross",
+                                       "crossRot",
+                                       "dash",
+                                       "line",
+                                       "rect",
+                                       "rectRounded",
+                                       "rectRot",
+                                       "star",
+                                       "triangle"
+                               ]
+                       }, {
+                               "borderColor": "transparent",
+                               "data": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                               "pointBackgroundColor": "#00ff00",
+                               "pointBorderColor": "#0000ff",
+                               "pointBorderWidth": 1,
+                               "pointStyle": [
+                                       "circle",
+                                       "cross",
+                                       "crossRot",
+                                       "dash",
+                                       "line",
+                                       "rect",
+                                       "rectRounded",
+                                       "rectRot",
+                                       "star",
+                                       "triangle"
+                               ]
+                       }]
+               },
+               "options": {
+                       "responsive": false,
+                       "legend": false,
+                       "title": false,
+                       "scales": {
+                               "x": {"display": false},
+                               "y": {
+                                       "display": false,
+                                       "min": 0,
+                                       "max": 4
+                               }
+                       },
+                       "elements": {
+                               "line": {
+                                       "fill": false
+                               },
+                               "point": {
+                                       "radius": 16
+                               }
+                       },
+                       "layout": {
+                               "padding": {
+                                       "left": 24,
+                                       "right": 24
+                               }
+                       }
+               }
+       },
+       "options": {
+               "canvas": {
+                       "height": 256,
+                       "width": 512
+               },
+               "useOffscreenCanvas": true
+       }
+}
diff --git a/test/fixtures/controller.line/point-style-offscreen-canvas.png b/test/fixtures/controller.line/point-style-offscreen-canvas.png
new file mode 100644 (file)
index 0000000..8faa96e
Binary files /dev/null and b/test/fixtures/controller.line/point-style-offscreen-canvas.png differ
diff --git a/test/specs/platform.basic.tests.js b/test/specs/platform.basic.tests.js
new file mode 100644 (file)
index 0000000..c47838f
--- /dev/null
@@ -0,0 +1,93 @@
+import BasicChartWebWorker from 'web-worker:../BasicChartWebWorker'; // eslint-disable-line import/no-unresolved
+
+describe('Platform.basic', function() {
+
+       it('should automatically choose the BasicPlatform for offscreen canvas', function() {
+               const chart = acquireChart({type: 'line'}, {useOffscreenCanvas: true});
+
+               expect(chart.platform).toBeInstanceOf(Chart.platforms.BasicPlatform);
+
+               chart.destroy();
+       });
+
+       it('supports choosing the BasicPlatform in a web worker', function(done) {
+               const canvas = document.createElement('canvas');
+               if (!canvas.transferControlToOffscreen) {
+                       pending();
+               }
+               const offscreenCanvas = canvas.transferControlToOffscreen();
+
+               const worker = new BasicChartWebWorker();
+               worker.onmessage = (event) => {
+                       worker.terminate();
+                       const {type, errorMessage} = event.data;
+                       if (type === 'error') {
+                               done.fail(errorMessage);
+                       } else if (type === 'success') {
+                               expect(type).toEqual('success');
+                               done();
+                       } else {
+                               done.fail('invalid message type sent by worker: ' + type);
+                       }
+               };
+
+               worker.postMessage({type: 'initialize', canvas: offscreenCanvas}, [offscreenCanvas]);
+       });
+
+       describe('with offscreenCanvas', function() {
+               it('supports laying out a simple chart', function() {
+                       const chart = acquireChart({
+                               type: 'bar',
+                               data: {
+                                       datasets: [
+                                               {data: [10, 5, 0, 25, 78, -10]}
+                                       ],
+                                       labels: ['tick1', 'tick2', 'tick3', 'tick4', 'tick5', 'tick6']
+                               }
+                       }, {
+                               canvas: {
+                                       height: 150,
+                                       width: 250
+                               },
+                               useOffscreenCanvas: true,
+                       });
+
+                       expect(chart.platform).toBeInstanceOf(Chart.platforms.BasicPlatform);
+
+                       expect(chart.chartArea.bottom).toBeCloseToPixel(120);
+                       expect(chart.chartArea.left).toBeCloseToPixel(34);
+                       expect(chart.chartArea.right).toBeCloseToPixel(247);
+                       expect(chart.chartArea.top).toBeCloseToPixel(32);
+               });
+
+               it('supports resizing a chart', function() {
+                       const chart = acquireChart({
+                               type: 'bar',
+                               data: {
+                                       datasets: [
+                                               {data: [10, 5, 0, 25, 78, -10]}
+                                       ],
+                                       labels: ['tick1', 'tick2', 'tick3', 'tick4', 'tick5', 'tick6']
+                               }
+                       }, {
+                               canvas: {
+                                       height: 150,
+                                       width: 250
+                               },
+                               useOffscreenCanvas: true,
+                       });
+
+                       expect(chart.platform).toBeInstanceOf(Chart.platforms.BasicPlatform);
+
+                       const canvasElement = chart.canvas;
+                       canvasElement.height = 200;
+                       canvasElement.width = 300;
+                       chart.resize();
+
+                       expect(chart.chartArea.bottom).toBeCloseToPixel(150);
+                       expect(chart.chartArea.left).toBeCloseToPixel(34);
+                       expect(chart.chartArea.right).toBeCloseToPixel(297);
+                       expect(chart.chartArea.top).toBeCloseToPixel(32);
+               });
+       });
+});
index 987be1b24ce634a3304ef8485c0dbdc5c6ea56bb..78846cfb9768a1f11d65f08e218b9f5041ca33d4 100644 (file)
@@ -13,6 +13,14 @@ describe('Platform.dom', function() {
                        document.getElementById(canvasId).remove();
                });
 
+               it('should use the DomPlatform by default', function() {
+                       var chart = acquireChart({type: 'line'});
+
+                       expect(chart.platform).toBeInstanceOf(Chart.platforms.DomPlatform);
+
+                       chart.destroy();
+               });
+
                // see https://github.com/chartjs/Chart.js/issues/2807
                it('should gracefully handle invalid item', function() {
                        var chart = new Chart('foobar');
index 2145cbe0d60230d826a0e446da6fe4c462a77671..4a8508de73248ad3aca18700a702ed8ceaced277 100644 (file)
@@ -29,6 +29,7 @@ function readImageData(url, callback) {
  * @param {object} options - Chart acquisition options.
  * @param {object} options.canvas - Canvas attributes.
  * @param {object} options.wrapper - Canvas wrapper attributes.
+ * @param {boolean} options.useOffscreenCanvas - use an OffscreenCanvas instead of the normal HTMLCanvasElement.
  * @param {boolean} options.persistent - If true, the chart will not be released after the spec.
  */
 function acquireChart(config, options) {
@@ -64,7 +65,21 @@ function acquireChart(config, options) {
        window.document.body.appendChild(wrapper);
 
        try {
-               var ctx = canvas.getContext('2d');
+               var ctx;
+               if (options.useOffscreenCanvas) {
+                       if (!canvas.transferControlToOffscreen) {
+                               // If this browser does not support offscreen canvas, mark the test as 'pending', which will skip the
+                               // test.
+                               // TODO: switch to skip() once it's implemented (https://github.com/jasmine/jasmine/issues/1709), or
+                               // remove if all browsers implement `transferControlToOffscreen`
+                               pending();
+                               return;
+                       }
+                       var offscreenCanvas = canvas.transferControlToOffscreen();
+                       ctx = offscreenCanvas.getContext('2d');
+               } else {
+                       ctx = canvas.getContext('2d');
+               }
                if (options.spriteText) {
                        spritingOn(ctx);
                }