chore(doc-gen): refactor versionInfo logic to new `git` dgeni-package

Closes #2444
This commit is contained in:
Jacob Eggers 2015-06-09 12:07:09 -07:00 committed by Peter Bacon Darwin
parent d7b9345b6d
commit dee0e008f5
4 changed files with 123 additions and 299 deletions

View File

@ -1,10 +1,10 @@
require('../../tools/transpiler/index.js').init();
var versionInfo = require('./versionInfo');
var Package = require('dgeni').Package;
var jsdocPackage = require('dgeni-packages/jsdoc');
var nunjucksPackage = require('dgeni-packages/nunjucks');
var linksPackage = require('../links-package');
var gitPackage = require('dgeni-packages/git');
var path = require('canonical-path');
var PARTIAL_PATH = 'partials';
@ -12,7 +12,7 @@ var MODULES_DOCS_PATH = PARTIAL_PATH + '/modules';
var GUIDES_PATH = PARTIAL_PATH + '/guides';
// Define the dgeni package for generating the docs
module.exports = new Package('angular', [jsdocPackage, nunjucksPackage, linksPackage])
module.exports = new Package('angular', [jsdocPackage, nunjucksPackage, linksPackage, gitPackage])
// Register the services and file readers
.factory(require('./services/modules'))
@ -49,7 +49,7 @@ module.exports = new Package('angular', [jsdocPackage, nunjucksPackage, linksPac
})
.config(function(renderDocsProcessor) {
.config(function(renderDocsProcessor, versionInfo) {
renderDocsProcessor.extraData.versionInfo = versionInfo;
})

View File

@ -1,196 +0,0 @@
'use strict';
var fs = require('fs');
var path = require('path');
var shell = require('shelljs');
var semver = require('semver');
var _ = require('lodash');
var currentPackage, previousVersions, gitRepoInfo;
/**
* Load information about this project from the package.json
* @return {Object} The package information
*/
var getPackage = function() {
// Search up the folder hierarchy for the first package.json
var packageFolder = path.resolve('.');
while (!fs.existsSync(path.join(packageFolder, 'package.json'))) {
var parent = path.dirname(packageFolder);
if (parent === packageFolder) { break; }
packageFolder = parent;
}
return JSON.parse(fs.readFileSync(path.join(packageFolder,'package.json'), 'UTF-8'));
};
/**
* Parse the github URL for useful information
* @return {Object} An object containing the github owner and repository name
*/
var getGitRepoInfo = function() {
var GITURL_REGEX = /^https:\/\/github.com\/([^\/]+)\/(.+).git$/;
var match = GITURL_REGEX.exec(currentPackage.repository.url);
var git = {
owner: match[1],
repo: match[2]
};
return git;
};
/**
* Extract the code name from the tagged commit's message - it should contain the text of the form:
* "codename(some-code-name)"
* @param {String} tagName Name of the tag to look in for the codename
* @return {String} The codename if found, otherwise null/undefined
*/
var getCodeName = function(tagName) {
var gitCatOutput = shell.exec('git cat-file -p ' + tagName, {silent:true}).output;
var tagMatch = gitCatOutput.match(/^.*codename.*$/mg);
// The angular repo doesn't have annotated tags.
if (!tagMatch) {
return '';
}
var tagMessage = tagMatch[0];
var codeName = tagMessage && tagMessage.match(/codename\((.*)\)/)[1];
if (!codeName) {
throw new Error("Could not extract release code name. The message of tag " + tagName +
" must match '*codename(some release name)*'");
}
return codeName;
};
/**
* Grab the commitSHA for the current commit.
* @return {String} The commit HASH
*/
function getCommitSHA() {
var hash = shell.exec('git rev-parse --short HEAD', {silent: true}).output.replace('\n', '');
return hash;
}
/**
* Compute a build segment for the version, from the Jenkins build number and current commit SHA
* @return {String} The build segment of the version
*/
function getBuild() {
return 'sha.' + getCommitSHA();
}
/**
* If the current commit is tagged as a version get that version
* @return {SemVer} The version or null
*/
var getTaggedVersion = function() {
// The angular repo doesn't have annotated tags.
var gitTagResult = shell.exec('git describe --tags --exact-match', {silent:true});
if (gitTagResult.code === 0) {
var tag = gitTagResult.output.trim();
var version = semver.parse(tag);
if (version && semver.satisfies(version, currentPackage.version)) {
version.codeName = getCodeName(tag);
version.full = version.version;
version.branch = 'v' + currentPackage.branchPattern.replace('*', 'x');
version.SHA = getCommitSHA();
return version;
}
}
return null;
};
/**
* Get a collection of all the previous versions sorted by semantic version
* @return {Array.<SemVer>} The collection of previous versions
*/
var getPreviousVersions = function() {
// always use the remote tags as the local clone might
// not contain all commits when cloned with git clone --depth=...
// Needed e.g. for Travis
var repo_url = currentPackage.repository.url;
var tagResults = shell.exec('git ls-remote --tags ' + repo_url,
{silent: true});
if (tagResults.code === 0) {
return _(tagResults.output.match(/[0-9].*[0-9]$/mg))
.map(function(tag) {
var version = semver.parse(tag);
return version;
})
.filter()
.map(function(version) {
// angular.js didn't follow semantic version until 1.20rc1
if ((version.major === 1 && version.minor === 0 && version.prerelease.length > 0) || (version.major === 1 && version.minor === 2 && version.prerelease[0] === 'rc1')) {
version.version = [version.major, version.minor, version.patch].join('.') + version.prerelease.join('');
version.raw = 'v' + version.version;
}
version.docsUrl = 'http://code.angularjs.org/' + version.version + '/docs';
// Versions before 1.0.2 had a different docs folder name
if (version.major < 1 || (version.major === 1 && version.minor === 0 && version.patch < 2)) {
version.docsUrl += '-' + version.version;
version.isOldDocsUrl = true;
}
return version;
})
.sort(semver.compare)
.value();
} else {
return [];
}
};
/**
* Get the unstable snapshot version
* @return {SemVer} The snapshot version
*/
var getSnapshotVersion = function() {
var version = _(previousVersions)
.filter(function(tag) {
return semver.satisfies(tag, currentPackage.version);
})
.last();
if (!version) {
// a snapshot version before the first tag on the branch
version = semver(currentPackage.branchPattern.replace('*','0-alpha.1'));
}
// We need to clone to ensure that we are not modifying another version
version = semver(version.raw);
var jenkinsBuild = process.env.TRAVIS_BUILD_NUMBER || process.env.BUILD_NUMBER;
if (!version.prerelease || !version.prerelease.length) {
// last release was a non beta release. Increment the patch level to
// indicate the next release that we will be doing.
// E.g. last release was 1.3.0, then the snapshot will be
// 1.3.1-build.1, which is lesser than 1.3.1 accorind the semver!
// If the last release was a beta release we don't update the
// beta number by purpose, as otherwise the semver comparison
// does not work any more when the next beta is released.
// E.g. don't generate 1.3.0-beta.2.build.1
// as this is bigger than 1.3.0-beta.2 according to semver
version.patch++;
}
version.prerelease = jenkinsBuild ? ['build', jenkinsBuild] : ['local'];
version.build = getBuild();
version.SHA = getCommitSHA();
version.codeName = 'snapshot';
version.isSnapshot = true;
version.format();
version.full = version.version + '+' + version.build;
version.branch = 'master';
return version;
};
exports.currentPackage = currentPackage = getPackage();
exports.gitRepoInfo = gitRepoInfo = getGitRepoInfo();
exports.previousVersions = previousVersions = getPreviousVersions();
exports.currentVersion = getTaggedVersion() || getSnapshotVersion();

View File

@ -1917,7 +1917,7 @@
}
},
"dgeni-packages": {
"version": "0.10.14",
"version": "0.10.15",
"dependencies": {
"catharsis": {
"version": "0.8.7",
@ -2112,6 +2112,14 @@
},
"async-each": {
"version": "0.1.6"
},
"fsevents": {
"version": "0.3.6",
"dependencies": {
"nan": {
"version": "1.8.4"
}
}
}
}
}

210
npm-shrinkwrap.json generated
View File

@ -2957,23 +2957,22 @@
}
},
"dgeni-packages": {
"version": "0.10.14",
"from": "https://registry.npmjs.org/dgeni-packages/-/dgeni-packages-0.10.14.tgz",
"resolved": "https://registry.npmjs.org/dgeni-packages/-/dgeni-packages-0.10.14.tgz",
"version": "0.10.15",
"from": "dgeni-packages@0.10.15",
"dependencies": {
"catharsis": {
"version": "0.8.7",
"from": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.7.tgz",
"from": "catharsis@>=0.8.1 <0.9.0",
"resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.7.tgz",
"dependencies": {
"underscore-contrib": {
"version": "0.3.0",
"from": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz",
"from": "underscore-contrib@>=0.3.0 <0.4.0",
"resolved": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz",
"dependencies": {
"underscore": {
"version": "1.6.0",
"from": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz",
"from": "underscore@1.6.0",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz"
}
}
@ -2982,141 +2981,141 @@
},
"change-case": {
"version": "2.3.0",
"from": "https://registry.npmjs.org/change-case/-/change-case-2.3.0.tgz",
"from": "change-case@>=2.1.0 <3.0.0",
"resolved": "https://registry.npmjs.org/change-case/-/change-case-2.3.0.tgz",
"dependencies": {
"camel-case": {
"version": "1.1.2",
"from": "https://registry.npmjs.org/camel-case/-/camel-case-1.1.2.tgz",
"from": "camel-case@>=1.1.1 <2.0.0",
"resolved": "https://registry.npmjs.org/camel-case/-/camel-case-1.1.2.tgz"
},
"constant-case": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/constant-case/-/constant-case-1.1.1.tgz",
"from": "constant-case@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/constant-case/-/constant-case-1.1.1.tgz"
},
"dot-case": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/dot-case/-/dot-case-1.1.1.tgz",
"from": "dot-case@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/dot-case/-/dot-case-1.1.1.tgz"
},
"is-lower-case": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.1.tgz",
"from": "is-lower-case@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.1.tgz"
},
"is-upper-case": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.1.tgz",
"from": "is-upper-case@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.1.tgz"
},
"lower-case": {
"version": "1.1.2",
"from": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.2.tgz",
"from": "lower-case@>=1.1.1 <2.0.0",
"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.2.tgz"
},
"lower-case-first": {
"version": "1.0.0",
"from": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.0.tgz",
"from": "lower-case-first@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.0.tgz"
},
"param-case": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/param-case/-/param-case-1.1.1.tgz",
"from": "param-case@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/param-case/-/param-case-1.1.1.tgz"
},
"pascal-case": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/pascal-case/-/pascal-case-1.1.1.tgz",
"from": "pascal-case@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-1.1.1.tgz"
},
"path-case": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/path-case/-/path-case-1.1.1.tgz",
"from": "path-case@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/path-case/-/path-case-1.1.1.tgz"
},
"sentence-case": {
"version": "1.1.2",
"from": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.2.tgz",
"from": "sentence-case@>=1.1.1 <2.0.0",
"resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.2.tgz"
},
"snake-case": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/snake-case/-/snake-case-1.1.1.tgz",
"from": "snake-case@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/snake-case/-/snake-case-1.1.1.tgz"
},
"swap-case": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.1.tgz",
"from": "swap-case@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.1.tgz"
},
"title-case": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/title-case/-/title-case-1.1.1.tgz",
"from": "title-case@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/title-case/-/title-case-1.1.1.tgz"
},
"upper-case": {
"version": "1.1.2",
"from": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.2.tgz",
"from": "upper-case@>=1.1.1 <2.0.0",
"resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.2.tgz"
},
"upper-case-first": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.1.tgz",
"from": "upper-case-first@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.1.tgz"
}
}
},
"esprima": {
"version": "1.2.5",
"from": "https://registry.npmjs.org/esprima/-/esprima-1.2.5.tgz",
"from": "esprima@>=1.0.4 <2.0.0",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.5.tgz"
},
"estraverse": {
"version": "1.9.3",
"from": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
"from": "estraverse@>=1.5.1 <2.0.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz"
},
"glob": {
"version": "3.2.11",
"from": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
"from": "glob@>=3.2.8 <3.3.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
"dependencies": {
"inherits": {
"version": "2.0.1",
"from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
"from": "inherits@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
}
}
},
"htmlparser2": {
"version": "3.8.3",
"from": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
"from": "htmlparser2@>=3.7.3 <4.0.0",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
"dependencies": {
"domhandler": {
"version": "2.3.0",
"from": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
"from": "domhandler@>=2.3.0 <2.4.0",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz"
},
"domutils": {
"version": "1.5.1",
"from": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
"from": "domutils@>=1.5.0 <1.6.0",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
"dependencies": {
"dom-serializer": {
"version": "0.1.0",
"from": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
"from": "dom-serializer@>=0.0.0 <1.0.0",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
"dependencies": {
"domelementtype": {
"version": "1.1.3",
"from": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
"from": "domelementtype@>=1.1.1 <1.2.0",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz"
},
"entities": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
"from": "entities@>=1.1.1 <1.2.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz"
}
}
@ -3125,137 +3124,137 @@
},
"domelementtype": {
"version": "1.3.0",
"from": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
"from": "domelementtype@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz"
},
"readable-stream": {
"version": "1.1.13",
"from": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz",
"from": "readable-stream@>=1.1.0 <1.2.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz",
"dependencies": {
"core-util-is": {
"version": "1.0.1",
"from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz",
"from": "core-util-is@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz"
},
"isarray": {
"version": "0.0.1",
"from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"from": "isarray@0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
},
"string_decoder": {
"version": "0.10.31",
"from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
"from": "string_decoder@>=0.10.0 <0.11.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
},
"inherits": {
"version": "2.0.1",
"from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
"from": "inherits@>=2.0.1 <2.1.0",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
}
}
},
"entities": {
"version": "1.0.0",
"from": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
"from": "entities@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz"
}
}
},
"minimatch": {
"version": "0.3.0",
"from": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
"from": "minimatch@>=0.3.0 <0.4.0",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
"dependencies": {
"lru-cache": {
"version": "2.6.4",
"from": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.4.tgz",
"from": "lru-cache@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.4.tgz"
},
"sigmund": {
"version": "1.0.1",
"from": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
"from": "sigmund@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz"
}
}
},
"nunjucks": {
"version": "1.3.4",
"from": "https://registry.npmjs.org/nunjucks/-/nunjucks-1.3.4.tgz",
"from": "nunjucks@>=1.2.0 <2.0.0",
"resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-1.3.4.tgz",
"dependencies": {
"optimist": {
"version": "0.6.1",
"from": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
"from": "optimist@*",
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
"dependencies": {
"wordwrap": {
"version": "0.0.3",
"from": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
"from": "wordwrap@>=0.0.2 <0.1.0",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz"
},
"minimist": {
"version": "0.0.10",
"from": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
"from": "minimist@>=0.0.1 <0.1.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz"
}
}
},
"chokidar": {
"version": "0.12.6",
"from": "https://registry.npmjs.org/chokidar/-/chokidar-0.12.6.tgz",
"from": "chokidar@>=0.12.5 <0.13.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-0.12.6.tgz",
"dependencies": {
"readdirp": {
"version": "1.3.0",
"from": "https://registry.npmjs.org/readdirp/-/readdirp-1.3.0.tgz",
"from": "readdirp@>=1.3.0 <1.4.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-1.3.0.tgz",
"dependencies": {
"graceful-fs": {
"version": "2.0.3",
"from": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz",
"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": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
"from": "minimatch@>=0.2.12 <0.3.0",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
"dependencies": {
"lru-cache": {
"version": "2.6.4",
"from": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.4.tgz",
"from": "lru-cache@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.4.tgz"
},
"sigmund": {
"version": "1.0.1",
"from": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
"from": "sigmund@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz"
}
}
},
"readable-stream": {
"version": "1.0.33",
"from": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz",
"from": "readable-stream@>=1.0.26-2 <1.1.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz",
"dependencies": {
"core-util-is": {
"version": "1.0.1",
"from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz",
"from": "core-util-is@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz"
},
"isarray": {
"version": "0.0.1",
"from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"from": "isarray@0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
},
"string_decoder": {
"version": "0.10.31",
"from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
"from": "string_decoder@>=0.10.0 <0.11.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
},
"inherits": {
"version": "2.0.1",
"from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
"from": "inherits@>=2.0.1 <2.1.0",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
}
}
@ -3264,8 +3263,20 @@
},
"async-each": {
"version": "0.1.6",
"from": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz",
"from": "async-each@>=0.1.5 <0.2.0",
"resolved": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz"
},
"fsevents": {
"version": "0.3.6",
"from": "fsevents@>=0.3.1 <0.4.0",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-0.3.6.tgz",
"dependencies": {
"nan": {
"version": "1.8.4",
"from": "nan@>=1.8.0 <2.0.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz"
}
}
}
}
}
@ -3273,47 +3284,47 @@
},
"q": {
"version": "1.0.1",
"from": "https://registry.npmjs.org/q/-/q-1.0.1.tgz",
"from": "q@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/q/-/q-1.0.1.tgz"
},
"q-io": {
"version": "1.10.9",
"from": "https://registry.npmjs.org/q-io/-/q-io-1.10.9.tgz",
"from": "q-io@>=1.10.9 <1.11.0",
"resolved": "https://registry.npmjs.org/q-io/-/q-io-1.10.9.tgz",
"dependencies": {
"q": {
"version": "0.9.7",
"from": "https://registry.npmjs.org/q/-/q-0.9.7.tgz",
"from": "q@>=0.9.7 <0.10.0",
"resolved": "https://registry.npmjs.org/q/-/q-0.9.7.tgz"
},
"qs": {
"version": "0.1.0",
"from": "https://registry.npmjs.org/qs/-/qs-0.1.0.tgz",
"from": "qs@>=0.1.0 <0.2.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-0.1.0.tgz"
},
"url2": {
"version": "0.0.0",
"from": "https://registry.npmjs.org/url2/-/url2-0.0.0.tgz",
"from": "url2@>=0.0.0 <0.1.0",
"resolved": "https://registry.npmjs.org/url2/-/url2-0.0.0.tgz"
},
"mime": {
"version": "1.2.11",
"from": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
"from": "mime@>=1.2.11 <1.3.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz"
},
"mimeparse": {
"version": "0.1.4",
"from": "https://registry.npmjs.org/mimeparse/-/mimeparse-0.1.4.tgz",
"from": "mimeparse@>=0.1.4 <0.2.0",
"resolved": "https://registry.npmjs.org/mimeparse/-/mimeparse-0.1.4.tgz"
},
"collections": {
"version": "0.2.2",
"from": "https://registry.npmjs.org/collections/-/collections-0.2.2.tgz",
"from": "collections@>=0.2.0 <0.3.0",
"resolved": "https://registry.npmjs.org/collections/-/collections-0.2.2.tgz",
"dependencies": {
"weak-map": {
"version": "1.0.0",
"from": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.0.tgz",
"from": "weak-map@1.0.0",
"resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.0.tgz"
}
}
@ -3322,57 +3333,57 @@
},
"stringmap": {
"version": "0.2.2",
"from": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz",
"from": "stringmap@>=0.2.2 <0.3.0",
"resolved": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz"
},
"winston": {
"version": "0.7.3",
"from": "https://registry.npmjs.org/winston/-/winston-0.7.3.tgz",
"from": "winston@>=0.7.2 <0.8.0",
"resolved": "https://registry.npmjs.org/winston/-/winston-0.7.3.tgz",
"dependencies": {
"async": {
"version": "0.2.10",
"from": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
"from": "async@>=0.2.0 <0.3.0",
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
},
"colors": {
"version": "0.6.2",
"from": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
"from": "colors@>=0.6.0 <0.7.0",
"resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz"
},
"cycle": {
"version": "1.0.3",
"from": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
"from": "cycle@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz"
},
"eyes": {
"version": "0.1.8",
"from": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
"from": "eyes@>=0.1.0 <0.2.0",
"resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz"
},
"pkginfo": {
"version": "0.3.0",
"from": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.0.tgz",
"from": "pkginfo@>=0.3.0 <0.4.0",
"resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.0.tgz"
},
"request": {
"version": "2.16.6",
"from": "https://registry.npmjs.org/request/-/request-2.16.6.tgz",
"from": "request@>=2.16.0 <2.17.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.16.6.tgz",
"dependencies": {
"form-data": {
"version": "0.0.10",
"from": "https://registry.npmjs.org/form-data/-/form-data-0.0.10.tgz",
"from": "form-data@>=0.0.3 <0.1.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-0.0.10.tgz",
"dependencies": {
"combined-stream": {
"version": "0.0.7",
"from": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz",
"from": "combined-stream@>=0.0.4 <0.1.0",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz",
"dependencies": {
"delayed-stream": {
"version": "0.0.5",
"from": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz",
"from": "delayed-stream@0.0.5",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz"
}
}
@ -3381,76 +3392,76 @@
},
"mime": {
"version": "1.2.11",
"from": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
"from": "mime@>=1.2.7 <1.3.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz"
},
"hawk": {
"version": "0.10.2",
"from": "https://registry.npmjs.org/hawk/-/hawk-0.10.2.tgz",
"from": "hawk@>=0.10.2 <0.11.0",
"resolved": "https://registry.npmjs.org/hawk/-/hawk-0.10.2.tgz",
"dependencies": {
"hoek": {
"version": "0.7.6",
"from": "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz",
"from": "hoek@>=0.7.0 <0.8.0",
"resolved": "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz"
},
"boom": {
"version": "0.3.8",
"from": "https://registry.npmjs.org/boom/-/boom-0.3.8.tgz",
"from": "boom@>=0.3.0 <0.4.0",
"resolved": "https://registry.npmjs.org/boom/-/boom-0.3.8.tgz"
},
"cryptiles": {
"version": "0.1.3",
"from": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.1.3.tgz",
"from": "cryptiles@>=0.1.0 <0.2.0",
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.1.3.tgz"
},
"sntp": {
"version": "0.1.4",
"from": "https://registry.npmjs.org/sntp/-/sntp-0.1.4.tgz",
"from": "sntp@>=0.1.0 <0.2.0",
"resolved": "https://registry.npmjs.org/sntp/-/sntp-0.1.4.tgz"
}
}
},
"cookie-jar": {
"version": "0.2.0",
"from": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.2.0.tgz",
"from": "cookie-jar@>=0.2.0 <0.3.0",
"resolved": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.2.0.tgz"
},
"aws-sign": {
"version": "0.2.0",
"from": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.2.0.tgz",
"from": "aws-sign@>=0.2.0 <0.3.0",
"resolved": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.2.0.tgz"
},
"oauth-sign": {
"version": "0.2.0",
"from": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.2.0.tgz",
"from": "oauth-sign@>=0.2.0 <0.3.0",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.2.0.tgz"
},
"forever-agent": {
"version": "0.2.0",
"from": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.2.0.tgz",
"from": "forever-agent@>=0.2.0 <0.3.0",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.2.0.tgz"
},
"tunnel-agent": {
"version": "0.2.0",
"from": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.2.0.tgz",
"from": "tunnel-agent@>=0.2.0 <0.3.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.2.0.tgz"
},
"json-stringify-safe": {
"version": "3.0.0",
"from": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-3.0.0.tgz",
"from": "json-stringify-safe@>=3.0.0 <3.1.0",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-3.0.0.tgz"
},
"qs": {
"version": "0.5.6",
"from": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz",
"from": "qs@>=0.5.4 <0.6.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz"
}
}
},
"stack-trace": {
"version": "0.0.9",
"from": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz",
"from": "stack-trace@>=0.0.0 <0.1.0",
"resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz"
}
}
@ -14131,32 +14142,33 @@
"ts2dart": {
"version": "0.6.4",
"from": "ts2dart@0.6.4",
"resolved": "https://registry.npmjs.org/ts2dart/-/ts2dart-0.6.4.tgz",
"dependencies": {
"source-map": {
"version": "0.4.2",
"from": "source-map@>=0.4.2 <0.5.0",
"from": "https://registry.npmjs.org/source-map/-/source-map-0.4.2.tgz",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.2.tgz",
"dependencies": {
"amdefine": {
"version": "0.1.1",
"from": "amdefine@>=0.0.4",
"from": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.1.tgz",
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.1.tgz"
}
}
},
"source-map-support": {
"version": "0.3.1",
"from": "source-map-support@>=0.3.1 <0.4.0",
"from": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.3.1.tgz",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.3.1.tgz",
"dependencies": {
"source-map": {
"version": "0.1.32",
"from": "source-map@0.1.32",
"from": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz",
"dependencies": {
"amdefine": {
"version": "0.1.1",
"from": "amdefine@>=0.0.4",
"from": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.1.tgz",
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.1.tgz"
}
}
@ -14165,7 +14177,7 @@
},
"typescript": {
"version": "1.5.0",
"from": "alexeagle/TypeScript#error_is_class",
"from": "git://github.com/alexeagle/TypeScript.git#be9a7edff73ac2592e508732c771c85357041385",
"resolved": "git://github.com/alexeagle/TypeScript.git#be9a7edff73ac2592e508732c771c85357041385"
}
}