VYPR
High severityNVD Advisory· Published May 29, 2019· Updated Jan 23, 2026

Duplicate Advisory: Command Injection in fs-git

CVE-2017-16087

Description

Duplicate

Advisory This advisory has been withdrawn because it is a duplicate of GHSA-wp3j-gv53-4pg8. This link is maintained to preserve external references.

Original

Description Affected versions of fs-git do not sanitize strings passed into the buildCommand method, resulting in arbitrary code execution.

Recommendation

Update to version 1.0.2 or later.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
fs-gitnpm
< 1.0.21.0.2

Patches

1
eb5f70efa5cf

fix(fs-git): fix command injection

https://github.com/vvakame/fs-gitvvakameJun 1, 2017via ghsa
5 files changed · +3045 2575
  • lib/index.ts+15 18 modified
    @@ -1,12 +1,6 @@
    -"use strict";
    -
    -// if you use Node.js 0.10, you need exec `require("es6-promise").polyfill();`
    -
     import * as child_process from "child_process";
     
     export function open(path: string, ref?: string): Promise<FSGit> {
    -    "use strict";
    -
         return Promise.resolve(new FSGit(path, ref));
     }
     
    @@ -35,17 +29,17 @@ export class FSGit {
         showRef(): Promise<RefInfo[]> {
             let command = this._buildCommand("show-ref");
             return new Promise((resolve: (value: RefInfo[]) => void, reject: (error: any) => void) => {
    -            child_process.exec(command, { maxBuffer: maxBuffer }, (error, stdout, stderr) => {
    +            child_process.execFile(command.base, command.args, { encoding: "buffer", maxBuffer: maxBuffer }, (error, stdout, stderr) => {
                     if (error) {
                         reject(error);
                     } else {
                         let list = stdout.toString("utf8").split("\n").filter(line => !!line);
    -                    let resultList: RefInfo[] = list.map(str=> {
    +                    let resultList: RefInfo[] = list.map(str => {
                             let columns = str.split(" ", 2);
                             return {
                                 gitDir: this.path,
                                 ref: columns[0],
    -                            name: columns[1]
    +                            name: columns[1],
                             };
                         });
                         resolve(resultList);
    @@ -61,7 +55,7 @@ export class FSGit {
         readFile(path: string, opts?: { encoding: string; }): Promise<any> {
             let command = this._buildCommand("show", this.ref + ":" + path);
             return new Promise((resolve: (value: any) => void, reject: (error: any) => void) => {
    -            child_process.exec(command, { maxBuffer: maxBuffer }, (error, stdout, stderr) => {
    +            child_process.execFile(command.base, command.args, { encoding: "buffer", maxBuffer: maxBuffer }, (error, stdout, stderr) => {
                     if (error) {
                         reject(error);
                     } else {
    @@ -76,14 +70,14 @@ export class FSGit {
         }
     
         exists(path: string): Promise<boolean> {
    -        return this.fileList().then(list=> list.some(data => data.path === path));
    +        return this.fileList().then(list => list.some(data => data.path === path));
         }
     
         revParse(ref: string): Promise<string> {
             let command = this._buildCommand("rev-parse", ref);
     
             return new Promise((resolve: (value?: any) => void, reject: (error: any) => void) => {
    -            child_process.exec(command, { maxBuffer: maxBuffer }, (error, stdout, stderr) => {
    +            child_process.execFile(command.base, command.args, { encoding: "buffer", maxBuffer: maxBuffer }, (error, stdout, stderr) => {
                     if (error) {
                         console.log(command);
                         reject(error);
    @@ -96,23 +90,23 @@ export class FSGit {
         }
     
         _lsTree(ref = this.ref, path = "."): Promise<FileInfo[]> {
    -        return this.revParse(ref).then(ref=> {
    +        return this.revParse(ref).then(ref => {
                 let command = this._buildCommand("ls-tree", "-r", "-z", "--full-name", ref, path);
                 return new Promise((resolve: (value: FileInfo[]) => void, reject: (error: any) => void) => {
    -                child_process.exec(command, { maxBuffer: maxBuffer }, (error, stdout, stderr) => {
    +                child_process.execFile(command.base, command.args, { encoding: "buffer", maxBuffer: maxBuffer }, (error, stdout, stderr) => {
                         if (error) {
                             reject(error);
                         } else {
                             let list = stdout.toString("utf8").split("\0").filter(str => str.length !== 0);
    -                        let resultList: FileInfo[] = list.map(str=> {
    +                        let resultList: FileInfo[] = list.map(str => {
                                 let matches = str.match(/^([0-9]+)\s([^\s]+)\s([0-9a-f]+)\t(.+)$/);
                                 return {
                                     gitDir: this.path,
                                     ref: ref,
                                     permission: matches[1],
                                     type: matches[2],
                                     hash: matches[3],
    -                                path: matches[4]
    +                                path: matches[4],
                                 };
                             });
                             resolve(resultList);
    @@ -122,8 +116,11 @@ export class FSGit {
             });
         }
     
    -    _buildCommand(...args: string[]): string {
    -        return `git --git-dir=${this.path} ${args.join(" ") }`;
    +    _buildCommand(...args: string[]): { base: string; args: string[]; } {
    +        return {
    +            base: "git",
    +            args: [`--git-dir=${this.path}`, ...args],
    +        };
         }
     }
     
    
  • npm-shrinkwrap.json+0 2555 removed
    @@ -1,2555 +0,0 @@
    -{
    -  "name": "fs-git",
    -  "version": "0.5.1",
    -  "dependencies": {
    -    "abbrev": {
    -      "version": "1.0.7",
    -      "from": "abbrev@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz"
    -    },
    -    "acorn": {
    -      "version": "2.7.0",
    -      "from": "acorn@>=2.5.2 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz"
    -    },
    -    "acorn-es7-plugin": {
    -      "version": "1.0.11",
    -      "from": "acorn-es7-plugin@>=1.0.10 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/acorn-es7-plugin/-/acorn-es7-plugin-1.0.11.tgz"
    -    },
    -    "align-text": {
    -      "version": "0.1.4",
    -      "from": "align-text@>=0.1.3 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz"
    -    },
    -    "amdefine": {
    -      "version": "1.0.0",
    -      "from": "amdefine@>=0.0.4",
    -      "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz"
    -    },
    -    "ansi-regex": {
    -      "version": "2.0.0",
    -      "from": "ansi-regex@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz"
    -    },
    -    "ansi-styles": {
    -      "version": "2.1.0",
    -      "from": "ansi-styles@>=2.1.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz"
    -    },
    -    "anymatch": {
    -      "version": "1.3.0",
    -      "from": "anymatch@>=1.1.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz"
    -    },
    -    "archy": {
    -      "version": "1.0.0",
    -      "from": "archy@1.0.0",
    -      "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz"
    -    },
    -    "argparse": {
    -      "version": "0.1.16",
    -      "from": "argparse@>=0.1.11 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
    -      "dependencies": {
    -        "underscore.string": {
    -          "version": "2.4.0",
    -          "from": "underscore.string@>=2.4.0 <2.5.0",
    -          "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz"
    -        }
    -      }
    -    },
    -    "arr-diff": {
    -      "version": "2.0.0",
    -      "from": "arr-diff@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz"
    -    },
    -    "arr-flatten": {
    -      "version": "1.0.1",
    -      "from": "arr-flatten@>=1.0.1 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz"
    -    },
    -    "array-differ": {
    -      "version": "1.0.0",
    -      "from": "array-differ@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz"
    -    },
    -    "array-filter": {
    -      "version": "1.0.0",
    -      "from": "array-filter@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz"
    -    },
    -    "array-find-index": {
    -      "version": "1.0.1",
    -      "from": "array-find-index@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.1.tgz"
    -    },
    -    "array-foreach": {
    -      "version": "1.0.1",
    -      "from": "array-foreach@>=1.0.1 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/array-foreach/-/array-foreach-1.0.1.tgz"
    -    },
    -    "array-ify": {
    -      "version": "1.0.0",
    -      "from": "array-ify@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz"
    -    },
    -    "array-map": {
    -      "version": "0.0.0",
    -      "from": "array-map@0.0.0",
    -      "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz"
    -    },
    -    "array-reduce": {
    -      "version": "0.0.0",
    -      "from": "array-reduce@0.0.0",
    -      "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz"
    -    },
    -    "array-reduce-right": {
    -      "version": "1.0.0",
    -      "from": "array-reduce-right@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/array-reduce-right/-/array-reduce-right-1.0.0.tgz"
    -    },
    -    "array-some": {
    -      "version": "1.0.0",
    -      "from": "array-some@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/array-some/-/array-some-1.0.0.tgz"
    -    },
    -    "array-union": {
    -      "version": "1.0.1",
    -      "from": "array-union@>=1.0.1 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.1.tgz"
    -    },
    -    "array-uniq": {
    -      "version": "1.0.2",
    -      "from": "array-uniq@>=1.0.1 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.2.tgz"
    -    },
    -    "array-unique": {
    -      "version": "0.2.1",
    -      "from": "array-unique@>=0.2.1 <0.3.0",
    -      "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz"
    -    },
    -    "arrify": {
    -      "version": "1.0.1",
    -      "from": "arrify@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz"
    -    },
    -    "asn1": {
    -      "version": "0.2.3",
    -      "from": "asn1@>=0.2.3 <0.3.0",
    -      "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz"
    -    },
    -    "assert-plus": {
    -      "version": "0.2.0",
    -      "from": "assert-plus@>=0.2.0 <0.3.0",
    -      "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz"
    -    },
    -    "async": {
    -      "version": "0.1.22",
    -      "from": "async@>=0.1.22 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz"
    -    },
    -    "async-each": {
    -      "version": "0.1.6",
    -      "from": "async-each@>=0.1.5 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz"
    -    },
    -    "aws-sign2": {
    -      "version": "0.6.0",
    -      "from": "aws-sign2@>=0.6.0 <0.7.0",
    -      "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz"
    -    },
    -    "aws4": {
    -      "version": "1.2.1",
    -      "from": "aws4@>=1.2.1 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.2.1.tgz"
    -    },
    -    "balanced-match": {
    -      "version": "0.3.0",
    -      "from": "balanced-match@>=0.3.0 <0.4.0",
    -      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz"
    -    },
    -    "binary-extensions": {
    -      "version": "1.4.0",
    -      "from": "binary-extensions@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.4.0.tgz"
    -    },
    -    "bl": {
    -      "version": "1.0.3",
    -      "from": "bl@>=1.0.0 <1.1.0",
    -      "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz"
    -    },
    -    "boom": {
    -      "version": "2.10.1",
    -      "from": "boom@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz"
    -    },
    -    "brace-expansion": {
    -      "version": "1.1.3",
    -      "from": "brace-expansion@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz"
    -    },
    -    "braces": {
    -      "version": "1.8.3",
    -      "from": "braces@>=1.8.2 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.3.tgz"
    -    },
    -    "builtin-modules": {
    -      "version": "1.1.1",
    -      "from": "builtin-modules@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz"
    -    },
    -    "camelcase": {
    -      "version": "2.1.0",
    -      "from": "camelcase@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.0.tgz"
    -    },
    -    "camelcase-keys": {
    -      "version": "2.0.0",
    -      "from": "camelcase-keys@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.0.0.tgz"
    -    },
    -    "caseless": {
    -      "version": "0.11.0",
    -      "from": "caseless@>=0.11.0 <0.12.0",
    -      "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz"
    -    },
    -    "center-align": {
    -      "version": "0.1.3",
    -      "from": "center-align@>=0.1.1 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz"
    -    },
    -    "chalk": {
    -      "version": "1.1.1",
    -      "from": "chalk@>=1.1.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz"
    -    },
    -    "chokidar": {
    -      "version": "1.0.6",
    -      "from": "chokidar@>=1.0.0 <1.1.0",
    -      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.0.6.tgz"
    -    },
    -    "cli-width": {
    -      "version": "1.1.1",
    -      "from": "cli-width@>=1.0.1 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz"
    -    },
    -    "cliui": {
    -      "version": "2.1.0",
    -      "from": "cliui@>=2.1.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
    -      "dependencies": {
    -        "wordwrap": {
    -          "version": "0.0.2",
    -          "from": "wordwrap@0.0.2",
    -          "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz"
    -        }
    -      }
    -    },
    -    "coffee-script": {
    -      "version": "1.3.3",
    -      "from": "coffee-script@>=1.3.3 <1.4.0",
    -      "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz"
    -    },
    -    "colors": {
    -      "version": "0.6.2",
    -      "from": "colors@>=0.6.2 <0.7.0",
    -      "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz"
    -    },
    -    "combined-stream": {
    -      "version": "1.0.5",
    -      "from": "combined-stream@>=1.0.5 <1.1.0",
    -      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz"
    -    },
    -    "commander": {
    -      "version": "2.9.0",
    -      "from": "commander@>=2.9.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz"
    -    },
    -    "commandpost": {
    -      "version": "0.1.1",
    -      "from": "commandpost@0.1.1",
    -      "resolved": "https://registry.npmjs.org/commandpost/-/commandpost-0.1.1.tgz",
    -      "dependencies": {
    -        "es6-promise": {
    -          "version": "2.0.1",
    -          "from": "es6-promise@2.0.1",
    -          "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.0.1.tgz"
    -        }
    -      }
    -    },
    -    "compare-func": {
    -      "version": "1.3.1",
    -      "from": "compare-func@>=1.3.1 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.1.tgz"
    -    },
    -    "concat-map": {
    -      "version": "0.0.1",
    -      "from": "concat-map@0.0.1",
    -      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
    -    },
    -    "concat-stream": {
    -      "version": "1.5.1",
    -      "from": "concat-stream@>=1.5.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz"
    -    },
    -    "configstore": {
    -      "version": "1.4.0",
    -      "from": "configstore@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz",
    -      "dependencies": {
    -        "graceful-fs": {
    -          "version": "4.1.3",
    -          "from": "graceful-fs@>=4.1.2 <5.0.0",
    -          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz"
    -        }
    -      }
    -    },
    -    "conventional-changelog": {
    -      "version": "1.1.0",
    -      "from": "conventional-changelog@>=1.1.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-1.1.0.tgz"
    -    },
    -    "conventional-changelog-angular": {
    -      "version": "1.0.0",
    -      "from": "conventional-changelog-angular@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.0.0.tgz"
    -    },
    -    "conventional-changelog-atom": {
    -      "version": "0.1.0",
    -      "from": "conventional-changelog-atom@>=0.1.0 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-0.1.0.tgz"
    -    },
    -    "conventional-changelog-codemirror": {
    -      "version": "0.1.0",
    -      "from": "conventional-changelog-codemirror@>=0.1.0 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.1.0.tgz"
    -    },
    -    "conventional-changelog-core": {
    -      "version": "1.3.0",
    -      "from": "conventional-changelog-core@>=1.3.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-1.3.0.tgz",
    -      "dependencies": {
    -        "dateformat": {
    -          "version": "1.0.12",
    -          "from": "dateformat@>=1.0.12 <2.0.0",
    -          "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz"
    -        },
    -        "lodash": {
    -          "version": "4.5.0",
    -          "from": "lodash@>=4.0.0 <5.0.0",
    -          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.5.0.tgz"
    -        }
    -      }
    -    },
    -    "conventional-changelog-ember": {
    -      "version": "0.2.2",
    -      "from": "conventional-changelog-ember@>=0.2.0 <0.3.0",
    -      "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-0.2.2.tgz"
    -    },
    -    "conventional-changelog-eslint": {
    -      "version": "0.1.0",
    -      "from": "conventional-changelog-eslint@>=0.1.0 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-0.1.0.tgz"
    -    },
    -    "conventional-changelog-express": {
    -      "version": "0.1.0",
    -      "from": "conventional-changelog-express@>=0.1.0 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-0.1.0.tgz"
    -    },
    -    "conventional-changelog-jquery": {
    -      "version": "0.1.0",
    -      "from": "conventional-changelog-jquery@>=0.1.0 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz"
    -    },
    -    "conventional-changelog-jscs": {
    -      "version": "0.1.0",
    -      "from": "conventional-changelog-jscs@>=0.1.0 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz"
    -    },
    -    "conventional-changelog-jshint": {
    -      "version": "0.1.0",
    -      "from": "conventional-changelog-jshint@>=0.1.0 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-0.1.0.tgz"
    -    },
    -    "conventional-changelog-writer": {
    -      "version": "1.1.0",
    -      "from": "conventional-changelog-writer@>=1.1.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-1.1.0.tgz",
    -      "dependencies": {
    -        "dateformat": {
    -          "version": "1.0.12",
    -          "from": "dateformat@>=1.0.11 <2.0.0",
    -          "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz"
    -        },
    -        "lodash": {
    -          "version": "4.5.0",
    -          "from": "lodash@>=4.0.0 <5.0.0",
    -          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.5.0.tgz"
    -        }
    -      }
    -    },
    -    "conventional-commits-filter": {
    -      "version": "0.1.1",
    -      "from": "conventional-commits-filter@>=0.1.0 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-0.1.1.tgz"
    -    },
    -    "conventional-commits-parser": {
    -      "version": "1.0.1",
    -      "from": "conventional-commits-parser@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-1.0.1.tgz",
    -      "dependencies": {
    -        "lodash": {
    -          "version": "4.5.0",
    -          "from": "lodash@>=4.2.1 <5.0.0",
    -          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.5.0.tgz"
    -        }
    -      }
    -    },
    -    "convert-source-map": {
    -      "version": "1.1.3",
    -      "from": "convert-source-map@>=1.1.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz"
    -    },
    -    "core-util-is": {
    -      "version": "1.0.2",
    -      "from": "core-util-is@>=1.0.0 <1.1.0",
    -      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
    -    },
    -    "cryptiles": {
    -      "version": "2.0.5",
    -      "from": "cryptiles@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz"
    -    },
    -    "csproj2ts": {
    -      "version": "0.0.6",
    -      "from": "csproj2ts@0.0.6",
    -      "resolved": "https://registry.npmjs.org/csproj2ts/-/csproj2ts-0.0.6.tgz",
    -      "dependencies": {
    -        "lodash": {
    -          "version": "3.10.1",
    -          "from": "lodash@>=3.3.1 <4.0.0",
    -          "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz"
    -        }
    -      }
    -    },
    -    "dargs": {
    -      "version": "4.1.0",
    -      "from": "dargs@>=4.0.1 <5.0.0",
    -      "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz"
    -    },
    -    "dashdash": {
    -      "version": "1.13.0",
    -      "from": "dashdash@>=1.10.1 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.0.tgz",
    -      "dependencies": {
    -        "assert-plus": {
    -          "version": "1.0.0",
    -          "from": "assert-plus@>=1.0.0 <2.0.0",
    -          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
    -        }
    -      }
    -    },
    -    "date-time": {
    -      "version": "1.0.0",
    -      "from": "date-time@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/date-time/-/date-time-1.0.0.tgz"
    -    },
    -    "dateformat": {
    -      "version": "1.0.2-1.2.3",
    -      "from": "dateformat@1.0.2-1.2.3",
    -      "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz"
    -    },
    -    "debug": {
    -      "version": "2.2.0",
    -      "from": "debug@2.2.0",
    -      "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz"
    -    },
    -    "decamelize": {
    -      "version": "1.1.2",
    -      "from": "decamelize@>=1.1.2 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.1.2.tgz"
    -    },
    -    "deep-equal": {
    -      "version": "1.0.1",
    -      "from": "deep-equal@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz"
    -    },
    -    "deep-extend": {
    -      "version": "0.4.1",
    -      "from": "deep-extend@>=0.4.0 <0.5.0",
    -      "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz"
    -    },
    -    "deep-is": {
    -      "version": "0.1.3",
    -      "from": "deep-is@>=0.1.3 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz"
    -    },
    -    "define-properties": {
    -      "version": "1.1.2",
    -      "from": "define-properties@>=1.1.2 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz"
    -    },
    -    "delayed-stream": {
    -      "version": "1.0.0",
    -      "from": "delayed-stream@>=1.0.0 <1.1.0",
    -      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
    -    },
    -    "diff": {
    -      "version": "1.4.0",
    -      "from": "diff@1.4.0",
    -      "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz"
    -    },
    -    "dot-prop": {
    -      "version": "2.2.0",
    -      "from": "dot-prop@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-2.2.0.tgz"
    -    },
    -    "dtsm": {
    -      "version": "0.10.3",
    -      "from": "dtsm@>=0.10.0 <0.11.0",
    -      "resolved": "https://registry.npmjs.org/dtsm/-/dtsm-0.10.3.tgz",
    -      "dependencies": {
    -        "es6-promise": {
    -          "version": "2.1.1",
    -          "from": "es6-promise@2.1.1",
    -          "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.1.1.tgz"
    -        },
    -        "glob": {
    -          "version": "4.5.3",
    -          "from": "glob@>=4.4.2 <5.0.0",
    -          "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz"
    -        },
    -        "rimraf": {
    -          "version": "2.3.4",
    -          "from": "rimraf@2.3.4",
    -          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.3.4.tgz"
    -        },
    -        "which": {
    -          "version": "1.1.1",
    -          "from": "which@1.1.1",
    -          "resolved": "https://registry.npmjs.org/which/-/which-1.1.1.tgz"
    -        }
    -      }
    -    },
    -    "duplexify": {
    -      "version": "3.4.2",
    -      "from": "duplexify@>=3.2.0 <4.0.0",
    -      "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.4.2.tgz"
    -    },
    -    "eastasianwidth": {
    -      "version": "0.1.1",
    -      "from": "eastasianwidth@>=0.1.0 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.1.1.tgz"
    -    },
    -    "ecc-jsbn": {
    -      "version": "0.1.1",
    -      "from": "ecc-jsbn@>=0.0.1 <1.0.0",
    -      "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz"
    -    },
    -    "empower": {
    -      "version": "1.1.0",
    -      "from": "empower@>=1.1.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/empower/-/empower-1.1.0.tgz"
    -    },
    -    "end-of-stream": {
    -      "version": "1.0.0",
    -      "from": "end-of-stream@1.0.0",
    -      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz"
    -    },
    -    "error-ex": {
    -      "version": "1.3.0",
    -      "from": "error-ex@>=1.2.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz"
    -    },
    -    "es6-promise": {
    -      "version": "2.3.0",
    -      "from": "es6-promise@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz"
    -    },
    -    "escallmatch": {
    -      "version": "1.4.2",
    -      "from": "escallmatch@>=1.4.2 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/escallmatch/-/escallmatch-1.4.2.tgz",
    -      "dependencies": {
    -        "estraverse": {
    -          "version": "4.1.1",
    -          "from": "estraverse@>=4.0.0 <5.0.0",
    -          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz"
    -        }
    -      }
    -    },
    -    "escape-string-regexp": {
    -      "version": "1.0.4",
    -      "from": "escape-string-regexp@>=1.0.2 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.4.tgz"
    -    },
    -    "escodegen": {
    -      "version": "1.8.0",
    -      "from": "escodegen@>=1.6.1 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.0.tgz"
    -    },
    -    "espower": {
    -      "version": "1.2.1",
    -      "from": "espower@>=1.0.6 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/espower/-/espower-1.2.1.tgz",
    -      "dependencies": {
    -        "estraverse": {
    -          "version": "4.1.1",
    -          "from": "estraverse@>=4.1.0 <5.0.0",
    -          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz"
    -        },
    -        "source-map": {
    -          "version": "0.5.3",
    -          "from": "source-map@>=0.5.0 <0.6.0",
    -          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.3.tgz"
    -        }
    -      }
    -    },
    -    "espower-loader": {
    -      "version": "1.0.0",
    -      "from": "espower-loader@1.0.0",
    -      "resolved": "https://registry.npmjs.org/espower-loader/-/espower-loader-1.0.0.tgz",
    -      "dependencies": {
    -        "source-map": {
    -          "version": "0.1.32",
    -          "from": "source-map@0.1.32",
    -          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz"
    -        },
    -        "source-map-support": {
    -          "version": "0.3.3",
    -          "from": "source-map-support@>=0.3.0 <0.4.0",
    -          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.3.3.tgz"
    -        }
    -      }
    -    },
    -    "espower-source": {
    -      "version": "1.1.0",
    -      "from": "espower-source@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/espower-source/-/espower-source-1.1.0.tgz"
    -    },
    -    "esprima": {
    -      "version": "2.7.2",
    -      "from": "esprima@>=2.7.1 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.2.tgz"
    -    },
    -    "espurify": {
    -      "version": "1.5.0",
    -      "from": "espurify@>=1.3.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.5.0.tgz",
    -      "dependencies": {
    -        "isarray": {
    -          "version": "1.0.0",
    -          "from": "isarray@>=1.0.0 <2.0.0",
    -          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
    -        }
    -      }
    -    },
    -    "estraverse": {
    -      "version": "1.9.3",
    -      "from": "estraverse@>=1.9.1 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz"
    -    },
    -    "esutils": {
    -      "version": "2.0.2",
    -      "from": "esutils@>=2.0.2 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"
    -    },
    -    "eventemitter2": {
    -      "version": "0.4.14",
    -      "from": "eventemitter2@>=0.4.13 <0.5.0",
    -      "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz"
    -    },
    -    "exit": {
    -      "version": "0.1.2",
    -      "from": "exit@>=0.1.1 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz"
    -    },
    -    "expand-brackets": {
    -      "version": "0.1.4",
    -      "from": "expand-brackets@>=0.1.4 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.4.tgz"
    -    },
    -    "expand-range": {
    -      "version": "1.8.1",
    -      "from": "expand-range@>=1.8.1 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.1.tgz"
    -    },
    -    "extend": {
    -      "version": "3.0.0",
    -      "from": "extend@>=3.0.0 <3.1.0",
    -      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz"
    -    },
    -    "extglob": {
    -      "version": "0.3.2",
    -      "from": "extglob@>=0.3.1 <0.4.0",
    -      "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz"
    -    },
    -    "extsprintf": {
    -      "version": "1.0.2",
    -      "from": "extsprintf@1.0.2",
    -      "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz"
    -    },
    -    "fast-levenshtein": {
    -      "version": "1.1.3",
    -      "from": "fast-levenshtein@>=1.1.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.3.tgz"
    -    },
    -    "figures": {
    -      "version": "1.4.0",
    -      "from": "figures@>=1.3.5 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/figures/-/figures-1.4.0.tgz"
    -    },
    -    "filename-regex": {
    -      "version": "2.0.0",
    -      "from": "filename-regex@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz"
    -    },
    -    "fill-range": {
    -      "version": "2.2.3",
    -      "from": "fill-range@>=2.1.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz"
    -    },
    -    "find-up": {
    -      "version": "1.1.0",
    -      "from": "find-up@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.0.tgz"
    -    },
    -    "findup-sync": {
    -      "version": "0.1.3",
    -      "from": "findup-sync@>=0.1.2 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
    -      "dependencies": {
    -        "glob": {
    -          "version": "3.2.11",
    -          "from": "glob@>=3.2.9 <3.3.0",
    -          "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz"
    -        },
    -        "lodash": {
    -          "version": "2.4.2",
    -          "from": "lodash@>=2.4.1 <2.5.0",
    -          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
    -        },
    -        "minimatch": {
    -          "version": "0.3.0",
    -          "from": "minimatch@>=0.3.0 <0.4.0",
    -          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz"
    -        }
    -      }
    -    },
    -    "for-in": {
    -      "version": "0.1.4",
    -      "from": "for-in@>=0.1.4 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.4.tgz"
    -    },
    -    "for-own": {
    -      "version": "0.1.3",
    -      "from": "for-own@>=0.1.3 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.3.tgz"
    -    },
    -    "foreach": {
    -      "version": "2.0.5",
    -      "from": "foreach@>=2.0.5 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz"
    -    },
    -    "forever-agent": {
    -      "version": "0.6.1",
    -      "from": "forever-agent@>=0.6.1 <0.7.0",
    -      "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
    -    },
    -    "form-data": {
    -      "version": "1.0.0-rc3",
    -      "from": "form-data@>=1.0.0-rc3 <1.1.0",
    -      "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz",
    -      "dependencies": {
    -        "async": {
    -          "version": "1.5.2",
    -          "from": "async@>=1.4.0 <2.0.0",
    -          "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz"
    -        }
    -      }
    -    },
    -    "fs-extra": {
    -      "version": "0.22.1",
    -      "from": "fs-extra@>=0.22.1 <0.23.0",
    -      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.22.1.tgz",
    -      "dependencies": {
    -        "graceful-fs": {
    -          "version": "4.1.3",
    -          "from": "graceful-fs@>=4.1.2 <5.0.0",
    -          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz"
    -        }
    -      }
    -    },
    -    "fs-git": {
    -      "version": "0.4.1",
    -      "from": "fs-git@0.4.1",
    -      "resolved": "https://registry.npmjs.org/fs-git/-/fs-git-0.4.1.tgz"
    -    },
    -    "fsevents": {
    -      "version": "0.3.8",
    -      "from": "fsevents@>=0.3.8 <0.4.0",
    -      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-0.3.8.tgz"
    -    },
    -    "function-bind": {
    -      "version": "0.1.0",
    -      "from": "function-bind@>=0.1.0 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-0.1.0.tgz"
    -    },
    -    "generate-function": {
    -      "version": "2.0.0",
    -      "from": "generate-function@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz"
    -    },
    -    "generate-object-property": {
    -      "version": "1.2.0",
    -      "from": "generate-object-property@>=1.1.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz"
    -    },
    -    "get-pkg-repo": {
    -      "version": "1.0.0",
    -      "from": "get-pkg-repo@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.0.0.tgz"
    -    },
    -    "get-stdin": {
    -      "version": "4.0.1",
    -      "from": "get-stdin@>=4.0.1 <5.0.0",
    -      "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz"
    -    },
    -    "getobject": {
    -      "version": "0.1.0",
    -      "from": "getobject@>=0.1.0 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz"
    -    },
    -    "git-raw-commits": {
    -      "version": "1.1.0",
    -      "from": "git-raw-commits@>=1.1.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.1.0.tgz"
    -    },
    -    "git-remote-origin-url": {
    -      "version": "2.0.0",
    -      "from": "git-remote-origin-url@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz"
    -    },
    -    "git-semver-tags": {
    -      "version": "1.1.2",
    -      "from": "git-semver-tags@>=1.1.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.1.2.tgz"
    -    },
    -    "gitconfiglocal": {
    -      "version": "1.0.0",
    -      "from": "gitconfiglocal@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz"
    -    },
    -    "glob": {
    -      "version": "3.1.21",
    -      "from": "glob@>=3.1.21 <3.2.0",
    -      "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
    -      "dependencies": {
    -        "inherits": {
    -          "version": "1.0.2",
    -          "from": "inherits@>=1.0.0 <2.0.0",
    -          "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz"
    -        },
    -        "minimatch": {
    -          "version": "0.2.14",
    -          "from": "minimatch@>=0.2.11 <0.3.0",
    -          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz"
    -        }
    -      }
    -    },
    -    "glob-base": {
    -      "version": "0.3.0",
    -      "from": "glob-base@>=0.3.0 <0.4.0",
    -      "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
    -      "dependencies": {
    -        "glob-parent": {
    -          "version": "2.0.0",
    -          "from": "glob-parent@>=2.0.0 <3.0.0",
    -          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz"
    -        },
    -        "is-glob": {
    -          "version": "2.0.1",
    -          "from": "is-glob@>=2.0.0 <3.0.0",
    -          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz"
    -        }
    -      }
    -    },
    -    "glob-expand": {
    -      "version": "0.1.0",
    -      "from": "glob-expand@>=0.1.0 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/glob-expand/-/glob-expand-0.1.0.tgz",
    -      "dependencies": {
    -        "glob": {
    -          "version": "4.4.2",
    -          "from": "glob@>=4.4.2 <4.5.0",
    -          "resolved": "https://registry.npmjs.org/glob/-/glob-4.4.2.tgz"
    -        },
    -        "lodash": {
    -          "version": "1.2.1",
    -          "from": "lodash@>=1.2.0 <1.3.0",
    -          "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.2.1.tgz"
    -        }
    -      }
    -    },
    -    "glob-parent": {
    -      "version": "1.3.0",
    -      "from": "glob-parent@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-1.3.0.tgz",
    -      "dependencies": {
    -        "is-glob": {
    -          "version": "2.0.1",
    -          "from": "is-glob@>=2.0.0 <3.0.0",
    -          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz"
    -        }
    -      }
    -    },
    -    "googlediff": {
    -      "version": "0.1.0",
    -      "from": "googlediff@>=0.1.0 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/googlediff/-/googlediff-0.1.0.tgz"
    -    },
    -    "got": {
    -      "version": "3.3.1",
    -      "from": "got@>=3.2.0 <4.0.0",
    -      "resolved": "https://registry.npmjs.org/got/-/got-3.3.1.tgz",
    -      "dependencies": {
    -        "object-assign": {
    -          "version": "3.0.0",
    -          "from": "object-assign@>=3.0.0 <4.0.0",
    -          "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz"
    -        }
    -      }
    -    },
    -    "graceful-fs": {
    -      "version": "1.2.3",
    -      "from": "graceful-fs@>=1.2.0 <1.3.0",
    -      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz"
    -    },
    -    "graceful-readlink": {
    -      "version": "1.0.1",
    -      "from": "graceful-readlink@>=1.0.0",
    -      "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"
    -    },
    -    "growl": {
    -      "version": "1.8.1",
    -      "from": "growl@1.8.1",
    -      "resolved": "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz"
    -    },
    -    "grunt": {
    -      "version": "0.4.5",
    -      "from": "grunt@0.4.5",
    -      "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
    -      "dependencies": {
    -        "minimatch": {
    -          "version": "0.2.14",
    -          "from": "minimatch@>=0.2.12 <0.3.0",
    -          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz"
    -        }
    -      }
    -    },
    -    "grunt-contrib-clean": {
    -      "version": "1.0.0",
    -      "from": "grunt-contrib-clean@1.0.0",
    -      "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.0.0.tgz",
    -      "dependencies": {
    -        "async": {
    -          "version": "1.5.2",
    -          "from": "async@>=1.5.2 <2.0.0",
    -          "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz"
    -        },
    -        "glob": {
    -          "version": "7.0.0",
    -          "from": "glob@>=7.0.0 <8.0.0",
    -          "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.0.tgz"
    -        },
    -        "rimraf": {
    -          "version": "2.5.2",
    -          "from": "rimraf@>=2.5.1 <3.0.0",
    -          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz"
    -        }
    -      }
    -    },
    -    "grunt-conventional-changelog": {
    -      "version": "6.1.0",
    -      "from": "grunt-conventional-changelog@6.1.0",
    -      "resolved": "https://registry.npmjs.org/grunt-conventional-changelog/-/grunt-conventional-changelog-6.1.0.tgz"
    -    },
    -    "grunt-dtsm": {
    -      "version": "0.2.9",
    -      "from": "grunt-dtsm@0.2.9",
    -      "resolved": "https://registry.npmjs.org/grunt-dtsm/-/grunt-dtsm-0.2.9.tgz"
    -    },
    -    "grunt-legacy-log": {
    -      "version": "0.1.3",
    -      "from": "grunt-legacy-log@>=0.1.0 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
    -      "dependencies": {
    -        "lodash": {
    -          "version": "2.4.2",
    -          "from": "lodash@>=2.4.1 <2.5.0",
    -          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
    -        },
    -        "underscore.string": {
    -          "version": "2.3.3",
    -          "from": "underscore.string@>=2.3.3 <2.4.0",
    -          "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz"
    -        }
    -      }
    -    },
    -    "grunt-legacy-log-utils": {
    -      "version": "0.1.1",
    -      "from": "grunt-legacy-log-utils@>=0.1.1 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz",
    -      "dependencies": {
    -        "lodash": {
    -          "version": "2.4.2",
    -          "from": "lodash@>=2.4.1 <2.5.0",
    -          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
    -        },
    -        "underscore.string": {
    -          "version": "2.3.3",
    -          "from": "underscore.string@>=2.3.3 <2.4.0",
    -          "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz"
    -        }
    -      }
    -    },
    -    "grunt-legacy-util": {
    -      "version": "0.2.0",
    -      "from": "grunt-legacy-util@>=0.2.0 <0.3.0",
    -      "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz"
    -    },
    -    "grunt-mocha-test": {
    -      "version": "0.12.7",
    -      "from": "grunt-mocha-test@0.12.7",
    -      "resolved": "https://registry.npmjs.org/grunt-mocha-test/-/grunt-mocha-test-0.12.7.tgz"
    -    },
    -    "grunt-text-replace": {
    -      "version": "0.4.0",
    -      "from": "grunt-text-replace@0.4.0",
    -      "resolved": "https://registry.npmjs.org/grunt-text-replace/-/grunt-text-replace-0.4.0.tgz"
    -    },
    -    "grunt-ts": {
    -      "version": "5.3.2",
    -      "from": "grunt-ts@5.3.2",
    -      "resolved": "https://registry.npmjs.org/grunt-ts/-/grunt-ts-5.3.2.tgz",
    -      "dependencies": {
    -        "es6-promise": {
    -          "version": "0.1.2",
    -          "from": "es6-promise@>=0.1.1 <0.2.0",
    -          "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-0.1.2.tgz"
    -        },
    -        "lodash": {
    -          "version": "2.4.1",
    -          "from": "lodash@2.4.1",
    -          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.1.tgz"
    -        },
    -        "rimraf": {
    -          "version": "2.2.6",
    -          "from": "rimraf@2.2.6",
    -          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.6.tgz"
    -        },
    -        "typescript": {
    -          "version": "1.7.3",
    -          "from": "typescript@1.7.3",
    -          "resolved": "https://registry.npmjs.org/typescript/-/typescript-1.7.3.tgz"
    -        },
    -        "underscore": {
    -          "version": "1.5.1",
    -          "from": "underscore@1.5.1",
    -          "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.5.1.tgz"
    -        },
    -        "underscore.string": {
    -          "version": "2.3.3",
    -          "from": "underscore.string@2.3.3",
    -          "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz"
    -        }
    -      }
    -    },
    -    "grunt-tsconfig-update": {
    -      "version": "0.0.1",
    -      "from": "grunt-tsconfig-update@0.0.1",
    -      "resolved": "https://registry.npmjs.org/grunt-tsconfig-update/-/grunt-tsconfig-update-0.0.1.tgz"
    -    },
    -    "grunt-tslint": {
    -      "version": "3.0.2",
    -      "from": "grunt-tslint@3.0.2",
    -      "resolved": "https://registry.npmjs.org/grunt-tslint/-/grunt-tslint-3.0.2.tgz"
    -    },
    -    "grunt-typedoc": {
    -      "version": "0.2.3",
    -      "from": "grunt-typedoc@0.2.3",
    -      "resolved": "https://registry.npmjs.org/grunt-typedoc/-/grunt-typedoc-0.2.3.tgz"
    -    },
    -    "handlebars": {
    -      "version": "4.0.5",
    -      "from": "handlebars@>=4.0.2 <5.0.0",
    -      "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.5.tgz",
    -      "dependencies": {
    -        "async": {
    -          "version": "1.5.2",
    -          "from": "async@>=1.4.0 <2.0.0",
    -          "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz"
    -        },
    -        "source-map": {
    -          "version": "0.4.4",
    -          "from": "source-map@>=0.4.4 <0.5.0",
    -          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz"
    -        }
    -      }
    -    },
    -    "har-validator": {
    -      "version": "2.0.6",
    -      "from": "har-validator@>=2.0.6 <2.1.0",
    -      "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz"
    -    },
    -    "has": {
    -      "version": "0.0.1",
    -      "from": "has@0.0.1",
    -      "resolved": "https://registry.npmjs.org/has/-/has-0.0.1.tgz"
    -    },
    -    "has-ansi": {
    -      "version": "2.0.0",
    -      "from": "has-ansi@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"
    -    },
    -    "hawk": {
    -      "version": "3.1.3",
    -      "from": "hawk@>=3.1.0 <3.2.0",
    -      "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz"
    -    },
    -    "highlight.js": {
    -      "version": "8.9.1",
    -      "from": "highlight.js@>=8.6.0 <9.0.0",
    -      "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-8.9.1.tgz"
    -    },
    -    "hoek": {
    -      "version": "2.16.3",
    -      "from": "hoek@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
    -    },
    -    "hooker": {
    -      "version": "0.2.3",
    -      "from": "hooker@>=0.2.3 <0.3.0",
    -      "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz"
    -    },
    -    "hosted-git-info": {
    -      "version": "2.1.4",
    -      "from": "hosted-git-info@>=2.1.4 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.4.tgz"
    -    },
    -    "http-signature": {
    -      "version": "1.1.1",
    -      "from": "http-signature@>=1.1.0 <1.2.0",
    -      "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz"
    -    },
    -    "iconv-lite": {
    -      "version": "0.2.11",
    -      "from": "iconv-lite@>=0.2.11 <0.3.0",
    -      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz"
    -    },
    -    "imurmurhash": {
    -      "version": "0.1.4",
    -      "from": "imurmurhash@>=0.1.4 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
    -    },
    -    "indent-string": {
    -      "version": "2.1.0",
    -      "from": "indent-string@>=2.1.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz"
    -    },
    -    "indexof": {
    -      "version": "0.0.1",
    -      "from": "indexof@0.0.1",
    -      "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz"
    -    },
    -    "infinity-agent": {
    -      "version": "2.0.3",
    -      "from": "infinity-agent@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz"
    -    },
    -    "inflight": {
    -      "version": "1.0.4",
    -      "from": "inflight@>=1.0.4 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz"
    -    },
    -    "inherits": {
    -      "version": "2.0.1",
    -      "from": "inherits@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
    -    },
    -    "ini": {
    -      "version": "1.3.4",
    -      "from": "ini@>=1.3.2 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz"
    -    },
    -    "inquirer": {
    -      "version": "0.8.5",
    -      "from": "inquirer@>=0.8.0 <0.9.0",
    -      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.8.5.tgz",
    -      "dependencies": {
    -        "ansi-regex": {
    -          "version": "1.1.1",
    -          "from": "ansi-regex@>=1.1.1 <2.0.0",
    -          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz"
    -        },
    -        "lodash": {
    -          "version": "3.10.1",
    -          "from": "lodash@>=3.3.1 <4.0.0",
    -          "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz"
    -        }
    -      }
    -    },
    -    "insight": {
    -      "version": "0.6.0",
    -      "from": "insight@0.6.0",
    -      "resolved": "https://registry.npmjs.org/insight/-/insight-0.6.0.tgz",
    -      "dependencies": {
    -        "async": {
    -          "version": "0.9.2",
    -          "from": "async@>=0.9.0 <0.10.0",
    -          "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz"
    -        },
    -        "object-assign": {
    -          "version": "2.1.1",
    -          "from": "object-assign@>=2.0.0 <3.0.0",
    -          "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz"
    -        }
    -      }
    -    },
    -    "irregular-plurals": {
    -      "version": "1.1.0",
    -      "from": "irregular-plurals@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.1.0.tgz"
    -    },
    -    "is-absolute": {
    -      "version": "0.1.7",
    -      "from": "is-absolute@>=0.1.7 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz"
    -    },
    -    "is-arrayish": {
    -      "version": "0.2.1",
    -      "from": "is-arrayish@>=0.2.1 <0.3.0",
    -      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
    -    },
    -    "is-binary-path": {
    -      "version": "1.0.1",
    -      "from": "is-binary-path@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz"
    -    },
    -    "is-buffer": {
    -      "version": "1.1.2",
    -      "from": "is-buffer@>=1.0.2 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.2.tgz"
    -    },
    -    "is-builtin-module": {
    -      "version": "1.0.0",
    -      "from": "is-builtin-module@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz"
    -    },
    -    "is-dotfile": {
    -      "version": "1.0.2",
    -      "from": "is-dotfile@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz"
    -    },
    -    "is-equal-shallow": {
    -      "version": "0.1.3",
    -      "from": "is-equal-shallow@>=0.1.1 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz"
    -    },
    -    "is-extendable": {
    -      "version": "0.1.1",
    -      "from": "is-extendable@>=0.1.1 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
    -    },
    -    "is-extglob": {
    -      "version": "1.0.0",
    -      "from": "is-extglob@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz"
    -    },
    -    "is-finite": {
    -      "version": "1.0.1",
    -      "from": "is-finite@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz"
    -    },
    -    "is-glob": {
    -      "version": "1.1.3",
    -      "from": "is-glob@>=1.1.3 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-1.1.3.tgz"
    -    },
    -    "is-my-json-valid": {
    -      "version": "2.13.0",
    -      "from": "is-my-json-valid@>=2.12.4 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.0.tgz"
    -    },
    -    "is-npm": {
    -      "version": "1.0.0",
    -      "from": "is-npm@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz"
    -    },
    -    "is-number": {
    -      "version": "2.1.0",
    -      "from": "is-number@>=2.1.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz"
    -    },
    -    "is-primitive": {
    -      "version": "2.0.0",
    -      "from": "is-primitive@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz"
    -    },
    -    "is-property": {
    -      "version": "1.0.2",
    -      "from": "is-property@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz"
    -    },
    -    "is-redirect": {
    -      "version": "1.0.0",
    -      "from": "is-redirect@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz"
    -    },
    -    "is-relative": {
    -      "version": "0.1.3",
    -      "from": "is-relative@>=0.1.0 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz"
    -    },
    -    "is-stream": {
    -      "version": "1.0.1",
    -      "from": "is-stream@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.0.1.tgz"
    -    },
    -    "is-subset": {
    -      "version": "0.1.1",
    -      "from": "is-subset@>=0.1.1 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz"
    -    },
    -    "is-text-path": {
    -      "version": "1.0.1",
    -      "from": "is-text-path@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz"
    -    },
    -    "is-typedarray": {
    -      "version": "1.0.0",
    -      "from": "is-typedarray@>=1.0.0 <1.1.0",
    -      "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
    -    },
    -    "is-url": {
    -      "version": "1.2.1",
    -      "from": "is-url@>=1.2.1 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.1.tgz"
    -    },
    -    "is-utf8": {
    -      "version": "0.2.1",
    -      "from": "is-utf8@>=0.2.0 <0.3.0",
    -      "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz"
    -    },
    -    "isarray": {
    -      "version": "0.0.1",
    -      "from": "isarray@>=0.0.1 <0.0.2",
    -      "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
    -    },
    -    "isobject": {
    -      "version": "2.0.0",
    -      "from": "isobject@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.0.0.tgz"
    -    },
    -    "isstream": {
    -      "version": "0.1.2",
    -      "from": "isstream@>=0.1.2 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
    -    },
    -    "jade": {
    -      "version": "0.26.3",
    -      "from": "jade@0.26.3",
    -      "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz",
    -      "dependencies": {
    -        "commander": {
    -          "version": "0.6.1",
    -          "from": "commander@0.6.1",
    -          "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz"
    -        },
    -        "mkdirp": {
    -          "version": "0.3.0",
    -          "from": "mkdirp@0.3.0",
    -          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz"
    -        }
    -      }
    -    },
    -    "jodid25519": {
    -      "version": "1.0.2",
    -      "from": "jodid25519@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz"
    -    },
    -    "js-yaml": {
    -      "version": "2.0.5",
    -      "from": "js-yaml@>=2.0.5 <2.1.0",
    -      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
    -      "dependencies": {
    -        "esprima": {
    -          "version": "1.0.4",
    -          "from": "esprima@>=1.0.2 <1.1.0",
    -          "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz"
    -        }
    -      }
    -    },
    -    "jsbn": {
    -      "version": "0.1.0",
    -      "from": "jsbn@>=0.1.0 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz"
    -    },
    -    "json-schema": {
    -      "version": "0.2.2",
    -      "from": "json-schema@0.2.2",
    -      "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz"
    -    },
    -    "json-stringify-safe": {
    -      "version": "5.0.1",
    -      "from": "json-stringify-safe@>=5.0.1 <5.1.0",
    -      "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
    -    },
    -    "jsonfile": {
    -      "version": "2.2.3",
    -      "from": "jsonfile@>=2.1.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.2.3.tgz"
    -    },
    -    "jsonparse": {
    -      "version": "1.2.0",
    -      "from": "jsonparse@>=1.1.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.2.0.tgz"
    -    },
    -    "jsonpointer": {
    -      "version": "2.0.0",
    -      "from": "jsonpointer@2.0.0",
    -      "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz"
    -    },
    -    "JSONStream": {
    -      "version": "1.0.7",
    -      "from": "JSONStream@>=1.0.4 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.0.7.tgz"
    -    },
    -    "jsprim": {
    -      "version": "1.2.2",
    -      "from": "jsprim@>=1.2.2 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz"
    -    },
    -    "kind-of": {
    -      "version": "3.0.2",
    -      "from": "kind-of@>=3.0.2 <4.0.0",
    -      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.0.2.tgz"
    -    },
    -    "latest-version": {
    -      "version": "1.0.1",
    -      "from": "latest-version@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz"
    -    },
    -    "lazy-cache": {
    -      "version": "1.0.3",
    -      "from": "lazy-cache@>=1.0.3 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.3.tgz"
    -    },
    -    "levn": {
    -      "version": "0.3.0",
    -      "from": "levn@>=0.3.0 <0.4.0",
    -      "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz"
    -    },
    -    "load-grunt-tasks": {
    -      "version": "3.4.0",
    -      "from": "load-grunt-tasks@3.4.0",
    -      "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-3.4.0.tgz"
    -    },
    -    "load-json-file": {
    -      "version": "1.1.0",
    -      "from": "load-json-file@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
    -      "dependencies": {
    -        "graceful-fs": {
    -          "version": "4.1.3",
    -          "from": "graceful-fs@>=4.1.2 <5.0.0",
    -          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz"
    -        }
    -      }
    -    },
    -    "lodash": {
    -      "version": "0.9.2",
    -      "from": "lodash@>=0.9.2 <0.10.0",
    -      "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz"
    -    },
    -    "lodash._getnative": {
    -      "version": "3.9.1",
    -      "from": "lodash._getnative@>=3.0.0 <4.0.0",
    -      "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz"
    -    },
    -    "lodash._reinterpolate": {
    -      "version": "3.0.0",
    -      "from": "lodash._reinterpolate@>=3.0.0 <4.0.0",
    -      "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz"
    -    },
    -    "lodash._root": {
    -      "version": "3.0.1",
    -      "from": "lodash._root@>=3.0.0 <4.0.0",
    -      "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz"
    -    },
    -    "lodash.assigninwith": {
    -      "version": "4.0.3",
    -      "from": "lodash.assigninwith@>=4.0.0 <5.0.0",
    -      "resolved": "https://registry.npmjs.org/lodash.assigninwith/-/lodash.assigninwith-4.0.3.tgz"
    -    },
    -    "lodash.debounce": {
    -      "version": "3.1.1",
    -      "from": "lodash.debounce@>=3.0.1 <4.0.0",
    -      "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz"
    -    },
    -    "lodash.escape": {
    -      "version": "4.0.0",
    -      "from": "lodash.escape@>=4.0.0 <5.0.0",
    -      "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.0.tgz"
    -    },
    -    "lodash.keys": {
    -      "version": "4.0.3",
    -      "from": "lodash.keys@>=4.0.0 <5.0.0",
    -      "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-4.0.3.tgz"
    -    },
    -    "lodash.keysin": {
    -      "version": "4.1.1",
    -      "from": "lodash.keysin@>=4.0.0 <5.0.0",
    -      "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-4.1.1.tgz"
    -    },
    -    "lodash.rest": {
    -      "version": "4.0.1",
    -      "from": "lodash.rest@>=4.0.0 <5.0.0",
    -      "resolved": "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.1.tgz"
    -    },
    -    "lodash.template": {
    -      "version": "4.2.0",
    -      "from": "lodash.template@>=4.0.2 <5.0.0",
    -      "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.2.0.tgz"
    -    },
    -    "lodash.templatesettings": {
    -      "version": "4.0.0",
    -      "from": "lodash.templatesettings@>=4.0.0 <5.0.0",
    -      "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.0.0.tgz"
    -    },
    -    "lodash.tostring": {
    -      "version": "4.1.1",
    -      "from": "lodash.tostring@>=4.0.0 <5.0.0",
    -      "resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.1.tgz"
    -    },
    -    "longest": {
    -      "version": "1.0.1",
    -      "from": "longest@>=1.0.1 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz"
    -    },
    -    "loud-rejection": {
    -      "version": "1.3.0",
    -      "from": "loud-rejection@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.3.0.tgz"
    -    },
    -    "lowercase-keys": {
    -      "version": "1.0.0",
    -      "from": "lowercase-keys@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz"
    -    },
    -    "lru-cache": {
    -      "version": "2.7.3",
    -      "from": "lru-cache@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz"
    -    },
    -    "map-obj": {
    -      "version": "1.0.1",
    -      "from": "map-obj@>=1.0.1 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz"
    -    },
    -    "marked": {
    -      "version": "0.3.5",
    -      "from": "marked@>=0.3.3 <0.4.0",
    -      "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.5.tgz"
    -    },
    -    "meow": {
    -      "version": "3.7.0",
    -      "from": "meow@>=3.3.0 <4.0.0",
    -      "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz"
    -    },
    -    "micromatch": {
    -      "version": "2.3.7",
    -      "from": "micromatch@>=2.1.5 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.7.tgz",
    -      "dependencies": {
    -        "is-glob": {
    -          "version": "2.0.1",
    -          "from": "is-glob@>=2.0.1 <3.0.0",
    -          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz"
    -        }
    -      }
    -    },
    -    "mime-db": {
    -      "version": "1.22.0",
    -      "from": "mime-db@>=1.22.0 <1.23.0",
    -      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz"
    -    },
    -    "mime-types": {
    -      "version": "2.1.10",
    -      "from": "mime-types@>=2.1.7 <2.2.0",
    -      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz"
    -    },
    -    "minimatch": {
    -      "version": "2.0.10",
    -      "from": "minimatch@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz"
    -    },
    -    "minimist": {
    -      "version": "1.2.0",
    -      "from": "minimist@>=1.1.3 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
    -    },
    -    "mkdirp": {
    -      "version": "0.5.1",
    -      "from": "mkdirp@0.5.1",
    -      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
    -      "dependencies": {
    -        "minimist": {
    -          "version": "0.0.8",
    -          "from": "minimist@0.0.8",
    -          "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
    -        }
    -      }
    -    },
    -    "mocha": {
    -      "version": "2.4.5",
    -      "from": "mocha@2.4.5",
    -      "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.4.5.tgz",
    -      "dependencies": {
    -        "commander": {
    -          "version": "2.3.0",
    -          "from": "commander@2.3.0",
    -          "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz"
    -        },
    -        "escape-string-regexp": {
    -          "version": "1.0.2",
    -          "from": "escape-string-regexp@1.0.2",
    -          "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz"
    -        },
    -        "glob": {
    -          "version": "3.2.3",
    -          "from": "glob@3.2.3",
    -          "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz"
    -        },
    -        "graceful-fs": {
    -          "version": "2.0.3",
    -          "from": "graceful-fs@>=2.0.0 <2.1.0",
    -          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz"
    -        },
    -        "minimatch": {
    -          "version": "0.2.14",
    -          "from": "minimatch@>=0.2.11 <0.3.0",
    -          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz"
    -        },
    -        "supports-color": {
    -          "version": "1.2.0",
    -          "from": "supports-color@1.2.0",
    -          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz"
    -        }
    -      }
    -    },
    -    "modify-values": {
    -      "version": "1.0.0",
    -      "from": "modify-values@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.0.tgz"
    -    },
    -    "ms": {
    -      "version": "0.7.1",
    -      "from": "ms@0.7.1",
    -      "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
    -    },
    -    "multi-stage-sourcemap": {
    -      "version": "0.2.1",
    -      "from": "multi-stage-sourcemap@>=0.2.1 <0.3.0",
    -      "resolved": "https://registry.npmjs.org/multi-stage-sourcemap/-/multi-stage-sourcemap-0.2.1.tgz",
    -      "dependencies": {
    -        "source-map": {
    -          "version": "0.1.43",
    -          "from": "source-map@>=0.1.34 <0.2.0",
    -          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz"
    -        }
    -      }
    -    },
    -    "multimatch": {
    -      "version": "2.1.0",
    -      "from": "multimatch@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz",
    -      "dependencies": {
    -        "minimatch": {
    -          "version": "3.0.0",
    -          "from": "minimatch@>=3.0.0 <4.0.0",
    -          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz"
    -        }
    -      }
    -    },
    -    "mute-stream": {
    -      "version": "0.0.4",
    -      "from": "mute-stream@0.0.4",
    -      "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.4.tgz"
    -    },
    -    "nan": {
    -      "version": "2.2.0",
    -      "from": "nan@>=2.0.2 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/nan/-/nan-2.2.0.tgz"
    -    },
    -    "ncp": {
    -      "version": "0.5.1",
    -      "from": "ncp@0.5.1",
    -      "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.5.1.tgz"
    -    },
    -    "nested-error-stacks": {
    -      "version": "1.0.2",
    -      "from": "nested-error-stacks@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz"
    -    },
    -    "node-uuid": {
    -      "version": "1.4.7",
    -      "from": "node-uuid@>=1.4.7 <1.5.0",
    -      "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz"
    -    },
    -    "nopt": {
    -      "version": "1.0.10",
    -      "from": "nopt@>=1.0.10 <1.1.0",
    -      "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz"
    -    },
    -    "normalize-package-data": {
    -      "version": "2.3.5",
    -      "from": "normalize-package-data@>=2.3.5 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz"
    -    },
    -    "normalize-path": {
    -      "version": "2.0.1",
    -      "from": "normalize-path@>=2.0.1 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz"
    -    },
    -    "number-is-nan": {
    -      "version": "1.0.0",
    -      "from": "number-is-nan@>=1.0.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz"
    -    },
    -    "oauth-sign": {
    -      "version": "0.8.1",
    -      "from": "oauth-sign@>=0.8.0 <0.9.0",
    -      "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz"
    -    },
    -    "object-assign": {
    -      "version": "4.0.1",
    -      "from": "object-assign@>=4.0.1 <5.0.0",
    -      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz"
    -    },
    -    "object-create": {
    -      "version": "0.1.0",
    -      "from": "object-create@>=0.1.0 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/object-create/-/object-create-0.1.0.tgz"
    -    },
    -    "object-define-property": {
    -      "version": "0.1.0",
    -      "from": "object-define-property@>=0.1.0 <0.2.0",
    -      "resolved": "https://registry.npmjs.org/object-define-property/-/object-define-property-0.1.0.tgz"
    -    },
    -    "object-keys": {
    -      "version": "1.0.9",
    -      "from": "object-keys@>=1.0.4 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.9.tgz"
    -    },
    -    "object.omit": {
    -      "version": "2.0.0",
    -      "from": "object.omit@>=2.0.0 <3.0.0",
    -      "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.0.tgz"
    -    },
    -    "once": {
    -      "version": "1.3.3",
    -      "from": "once@>=1.3.0 <2.0.0",
    -      "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz"
    -    },
    -    "optimist": {
    -      "version": "0.6.1",
    -      "from": "optimist@>=0.6.1 <0.7.0",
    -      "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
    -      "dependencies": {
    -        "minimist": {
    -          "version": "0.0.10",
    -          "from": "minimist@>=0.0.1 <0.1.0",
    -          "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz"
    -        },
    -        "wordwrap": {
    -          "version": "0.0.3",
    -          "from": "wordwrap@>=0.0.2 <0.1.0",
    -          "resolved": "https://registry.npmjs.org/word
    ... [truncated]
    
  • package.json+1 1 modified
    @@ -26,7 +26,7 @@
       "dependencies": {},
       "devDependencies": {
         "espower-loader": "1.0.0",
    -    "grunt": "0.4.5",
    +    "grunt": "^1.0.0",
         "grunt-contrib-clean": "1.0.0",
         "grunt-conventional-changelog": "6.1.0",
         "grunt-dtsm": "0.2.9",
    
  • package-lock.json+3028 0 added
  • tsconfig.json+1 1 modified
    @@ -38,4 +38,4 @@
         "atom": {
             "rewriteTsconfig": true
         }
    -}
    +}
    \ No newline at end of file
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

5

News mentions

0

No linked articles in our index yet.