diff --git a/lib/app.js b/lib/app.js index 2668231..c61c351 100644 --- a/lib/app.js +++ b/lib/app.js @@ -17,19 +17,18 @@ var MongoDBSource = require('./sources/mongodb'); module.exports = function App(resolvers) { var app = express(); - var env = process.env; var resolvers = resolvers || { - node: new Resolver(new NodeSource(), env.MIN_STABLE_NODE, env.MAX_STABLE_NODE), - iojs: new Resolver(new IoJsSource(), env.MIN_STABLE_IOJS, env.MAX_STABLE_IOJS), - npm: new Resolver(new NpmSource(), env.MIN_STABLE_NPM, env.MAX_STABLE_NPM), - nginx: new Resolver(new NginxSource(), env.MIN_STABLE_NGINX, env.MAX_STABLE_NGINX), - mongodb: new Resolver(new MongoDBSource(), env.MIN_STABLE_MONGODB, env.MAX_STABLE_MONGODB), - yarn: new Resolver(new YarnSource(), env.MIN_STABLE_YARN, env.MAX_STABLE_YARN) + node: new Resolver(new NodeSource()), + iojs: new Resolver(new IoJsSource()), + npm: new Resolver(new NpmSource()), + nginx: new Resolver(new NginxSource()), + mongodb: new Resolver(new MongoDBSource()), + yarn: new Resolver(new YarnSource()) }; app.resolvers = resolvers; - if (env.NODE_ENV !== 'test') { + if (process.env.NODE_ENV !== 'test') { app.use(logfmt.requestLogger()); } diff --git a/lib/resolver.js b/lib/resolver.js index 4494b53..1f51833 100644 --- a/lib/resolver.js +++ b/lib/resolver.js @@ -4,14 +4,11 @@ var log = require('./logger'); module.exports = Resolver; -function Resolver(source, minStable, maxStable) { +function Resolver(source) { this._poll = this._poll.bind(this); this.frequency = 0; - this.inStableRange = this.inStableRange.bind(this); this.source = source; - this.minStable = minStable; - this.maxStable = maxStable; } Resolver.prototype.update = function(done) { @@ -54,7 +51,7 @@ Resolver.prototype.getAllVersions = function() { }; Resolver.prototype.getStableVersions = function() { - return this.source.stable.filter(this.inStableRange); + return this.source.stable; }; Resolver.prototype.getUpdatedTime = function() { @@ -68,9 +65,3 @@ Resolver.prototype.satisfy = function(range) { semver.maxSatisfying(this.getAllVersions(), range) || this.getLatestStable(); }; - -Resolver.prototype.inStableRange = function(version) { - if (this.maxStable && semver.gt(version, this.maxStable)) return false; - if (this.minStable && semver.lt(version, this.minStable)) return false; - return true; -} diff --git a/lib/sources/yarn.js b/lib/sources/yarn.js index b69bd7d..3ce0ba4 100644 --- a/lib/sources/yarn.js +++ b/lib/sources/yarn.js @@ -5,9 +5,9 @@ var NpmStats = require('npm-stats'); var TIMEOUT = 5000; var NOOP = function() {}; -module.exports = NpmSource; +module.exports = YarnSource; -function NpmSource(options) { +function YarnSource(options) { _.extend(this, { name: 'yarn', registry: 'https://skimdb.npmjs.com/', @@ -17,7 +17,7 @@ function NpmSource(options) { }, options); } -NpmSource.prototype.update = function(done) { +YarnSource.prototype.update = function(done) { done = done || NOOP; NpmStats(this.registry) @@ -33,7 +33,7 @@ NpmSource.prototype.update = function(done) { } }; -NpmSource.prototype._parse = function(info) { +YarnSource.prototype._parse = function(info) { var versions = _.unique(Object.keys(info.versions)); var tags = _.unique(Object.keys(info['dist-tags'])); // omitting as this breaks semver, needs a 'tags' concept var latestStable = info['dist-tags'].latest; diff --git a/package.json b/package.json index 8349395..32978b7 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "superagent": "1.3.0" }, "engines": { - "node": "5.1.1" + "node": "6.9.4" }, "repository": { "type": "git", diff --git a/test/resolver.test.coffee b/test/resolver.test.coffee index 60afddd..ff47f2e 100644 --- a/test/resolver.test.coffee +++ b/test/resolver.test.coffee @@ -36,28 +36,6 @@ describe "Resolver", -> assert.equal this.r.satisfy(""), this.r.getLatestStable() assert.equal this.r.satisfy("boogers"), this.r.getLatestStable() - describe "with environment override", -> - - it "obeys maximum stable limit", -> - r = new Resolver(new Source(), null, '0.10.15') - assert.equal r.getLatestStable(), '0.10.15' - - it "obeys minimum stable limit", -> - r = new Resolver(new Source(), '0.2.6') - assert.equal r.getStableVersions()[0], '0.2.6' - - it "satisfies stable-seeking ranges", -> - r = new Resolver(new Source(), null, '0.10.3') - assert.equal r.satisfy('>0.8'), '0.10.3' - - it "still resolves unstable ranges", -> - r = new Resolver(new Source(), null, '0.8.20') - assert.equal semver.parse(r.satisfy('0.11.x')).minor, 11 - - it "still resolves versions at a higher patchlevel than the override", -> - r = new Resolver(new Source(), null, '0.10.18') - assert.equal r.satisfy('0.10.19'), '0.10.19' - describe "start(200)", -> it "polls about 5 times in 1000ms", (done) -> diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..e0ae551 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,909 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +JSONStream@~0.6.2: + version "0.6.4" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-0.6.4.tgz#4b2c8063f8f512787b2375f7ee9db69208fa2dcb" + dependencies: + jsonparse "0.0.5" + through "~2.2.7" + +accepts@~1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.1.4.tgz#d71c96f7d41d0feda2c38cd14e8a27c04158df4a" + dependencies: + mime-types "~2.0.4" + negotiator "0.4.9" + +array-sugar@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-sugar/-/array-sugar-1.0.0.tgz#97728a6ee7732791912d22558d84a67a8afba6f5" + +asn1@0.1.11: + version "0.1.11" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7" + +assert-plus@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160" + +async-listener@^0.6.0: + version "0.6.3" + resolved "https://registry.yarnpkg.com/async-listener/-/async-listener-0.6.3.tgz#1f6521501b9d1c4e6c7a13d404f756b0900371b8" + dependencies: + shimmer "1.0.0" + +async@~0.2.7: + version "0.2.10" + resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + +async@~0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + +aws-sign2@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.5.0.tgz#c57103f7a17fc037f02d7c2e64b602ea223f7d63" + +aws-sign@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/aws-sign/-/aws-sign-0.2.0.tgz#c55013856c8194ec854a0cbec90aab5a04ce3ac5" + +bl@~0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/bl/-/bl-0.4.2.tgz#5db31d72f038c54e68adc39578125fe3b0addc96" + dependencies: + readable-stream "~1.0.2" + +bl@~0.9.0: + version "0.9.5" + resolved "https://registry.yarnpkg.com/bl/-/bl-0.9.5.tgz#c06b797af085ea00bc527afc8efcf11de2232054" + dependencies: + readable-stream "~1.0.26" + +body-parser@1.9.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.9.2.tgz#07f52cf104939118bedcba689002017271ef3c0e" + dependencies: + bytes "1.0.0" + depd "~1.0.0" + iconv-lite "0.4.4" + media-typer "0.3.0" + on-finished "~2.1.1" + qs "2.3.2" + raw-body "1.3.0" + type-is "~1.5.2" + +boom@0.3.x: + version "0.3.8" + resolved "https://registry.yarnpkg.com/boom/-/boom-0.3.8.tgz#c8cdb041435912741628c044ecc732d1d17c09ea" + dependencies: + hoek "0.7.x" + +boom@0.4.x: + version "0.4.2" + resolved "https://registry.yarnpkg.com/boom/-/boom-0.4.2.tgz#7a636e9ded4efcefb19cef4947a3c67dfaee911b" + dependencies: + hoek "0.9.x" + +bytes@1, bytes@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" + +caseless@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.6.0.tgz#8167c1ab8397fb5bb95f96d28e5a81c50f247ac4" + +coffee-script@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.8.0.tgz#9c9f1d2b4a52a000ded15b659791703648263c1d" + dependencies: + mkdirp "~0.3.5" + +combined-stream@~0.0.4: + version "0.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" + dependencies: + delayed-stream "0.0.5" + +commander@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-0.6.1.tgz#fa68a14f6a945d54dbbe50d8cdb3320e9e3b1a06" + +commander@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.3.0.tgz#fd430e889832ec353b9acd1de217c11cb3eef873" + +component-emitter@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" + +content-disposition@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.0.tgz#4284fe6ae0630874639e44e80a418c2934135e9e" + +continuation-local-storage@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/continuation-local-storage/-/continuation-local-storage-3.2.0.tgz#e19fc36b597090a5d4e4a3b2ea3ebc5e29694a24" + dependencies: + async-listener "^0.6.0" + emitter-listener "^1.0.1" + +cookie-jar@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/cookie-jar/-/cookie-jar-0.2.0.tgz#64ecc06ac978db795e4b5290cbe48ba3781400fa" + +cookie-signature@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.5.tgz#a122e3f1503eca0f5355795b0711bb2368d450f9" + +cookie@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.1.2.tgz#72fec3d24e48a3432073d90c12642005061004b1" + +cookiejar@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.0.1.tgz#3d12752f6adf68a892f332433492bd5812bb668f" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cors@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.5.2.tgz#00d5c0d1ced95001c998fa66b52c4ef931e6f8b7" + dependencies: + vary "^1" + +crc@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/crc/-/crc-3.2.1.tgz#5d9c8fb77a245cd5eca291e5d2d005334bab0082" + +cryptiles@0.1.x: + version "0.1.3" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-0.1.3.tgz#1a556734f06d24ba34862ae9cb9e709a3afbff1c" + dependencies: + boom "0.3.x" + +cryptiles@0.2.x: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c" + dependencies: + boom "0.4.x" + +ctype@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f" + +debug@2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b" + dependencies: + ms "0.7.2" + +debug@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.0.0.tgz#89bd9df6732b51256bc6705342bba02ed12131ef" + dependencies: + ms "0.6.2" + +debug@~2.1.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.1.3.tgz#ce8ab1b5ee8fbee2bfa3b633cab93d366b63418e" + dependencies: + ms "0.7.0" + +delayed-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f" + +depd@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.0.1.tgz#80aec64c9d6d97e65cc2a9caa93c0aa6abf73aaa" + +destroy@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.3.tgz#b433b4724e71fd8551d9885174851c5fc377e2c9" + +diff@1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/diff/-/diff-1.0.8.tgz#343276308ec991b7bc82267ed55bc1411f971666" + +duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + +ee-first@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.0.tgz#6a0d7c6221e490feefd92ec3f441c9ce8cd097f4" + +emitter-listener@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/emitter-listener/-/emitter-listener-1.0.1.tgz#b2499ea6e58230a52c268d5df261eecd9f10fe97" + dependencies: + shimmer "1.0.0" + +errs@0.2.x: + version "0.2.4" + resolved "https://registry.yarnpkg.com/errs/-/errs-0.2.4.tgz#48ccefec94fd3e613d6469840dd1c038937983f6" + +escape-html@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.1.tgz#181a286ead397a39a92857cfb1d43052e356bff0" + +escape-string-regexp@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz#4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1" + +etag@~1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.5.1.tgz#54c50de04ee42695562925ac566588291be7e9ea" + dependencies: + crc "3.2.1" + +event-stream@~3.0.12: + version "3.0.20" + resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.0.20.tgz#038bbb2ea9ea90385b26fbc1854d0b539f2abea3" + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.0.3" + pause-stream "0.0.11" + split "0.2" + stream-combiner "~0.0.3" + through "~2.3.1" + +express@4.10.1: + version "4.10.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.10.1.tgz#a291c812bc8b0ed6ab877366fe0e68a2368fde7e" + dependencies: + accepts "~1.1.2" + content-disposition "0.5.0" + cookie "0.1.2" + cookie-signature "1.0.5" + debug "~2.1.0" + depd "~1.0.0" + escape-html "1.0.1" + etag "~1.5.0" + finalhandler "0.3.2" + fresh "0.2.4" + media-typer "0.3.0" + merge-descriptors "0.0.2" + methods "1.1.0" + on-finished "~2.1.1" + parseurl "~1.3.0" + path-to-regexp "0.1.3" + proxy-addr "~1.0.3" + qs "2.3.2" + range-parser "~1.0.2" + send "0.10.1" + serve-static "~1.7.1" + type-is "~1.5.2" + utils-merge "1.0.0" + vary "~1.0.0" + +extend@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-1.2.1.tgz#a0f5fd6cfc83a5fe49ef698d60ec8a624dd4576c" + +finalhandler@0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.3.2.tgz#7b389b0fd3647a6f90bd564e22624bf8a4a77fb5" + dependencies: + debug "~2.1.0" + escape-html "1.0.1" + on-finished "~2.1.1" + +follow@0.8.x: + version "0.8.0" + resolved "https://registry.yarnpkg.com/follow/-/follow-0.8.0.tgz#560f68ea0b040f4916721e290561b5fa4425b004" + dependencies: + request "~2.2.5" + +forever-agent@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.2.0.tgz#e1c25c7ad44e09c38f233876c76fcc24ff843b1f" + +forever-agent@~0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.5.2.tgz#6d0e09c4921f94a27f63d3b49c5feff1ea4c5130" + +form-data@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.2.0.tgz#26f8bc26da6440e299cbdcfb69035c4f77a6e466" + dependencies: + async "~0.9.0" + combined-stream "~0.0.4" + mime-types "~2.0.3" + +form-data@~0.0.3: + version "0.0.10" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.0.10.tgz#db345a5378d86aeeb1ed5d553b869ac192d2f5ed" + dependencies: + async "~0.2.7" + combined-stream "~0.0.4" + mime "~1.2.2" + +form-data@~0.1.0: + version "0.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.1.4.tgz#91abd788aba9702b1aabfa8bc01031a2ac9e3b12" + dependencies: + async "~0.9.0" + combined-stream "~0.0.4" + mime "~1.2.11" + +formidable@1.0.14: + version "1.0.14" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.0.14.tgz#2b3f4c411cbb5fdd695c44843e2a23514a43231a" + +forwarded@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" + +fresh@0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.2.4.tgz#3582499206c9723714190edd74b4604feb4a614c" + +from@~0: + version "0.1.3" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.3.tgz#ef63ac2062ac32acf7862e0d40b44b896f22f3bc" + +glob@3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.3.tgz#e313eeb249c7affaa5c475286b0e115b59839467" + dependencies: + graceful-fs "~2.0.0" + inherits "2" + minimatch "~0.2.11" + +graceful-fs@~2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-2.0.3.tgz#7cd2cdb228a4a3f36e95efa6cc142de7d1a136d0" + +growl@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.8.1.tgz#4b2dec8d907e93db336624dcec0183502f8c9428" + +hawk@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-1.1.1.tgz#87cd491f9b46e4e2aeaca335416766885d2d1ed9" + dependencies: + boom "0.4.x" + cryptiles "0.2.x" + hoek "0.9.x" + sntp "0.2.x" + +hawk@~0.10.2: + version "0.10.2" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-0.10.2.tgz#9b361dee95a931640e6d504e05609a8fc3ac45d2" + dependencies: + boom "0.3.x" + cryptiles "0.1.x" + hoek "0.7.x" + sntp "0.1.x" + +hoek@0.7.x: + version "0.7.6" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-0.7.6.tgz#60fbd904557541cd2b8795abf308a1b3770e155a" + +hoek@0.9.x: + version "0.9.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-0.9.1.tgz#3d322462badf07716ea7eb85baf88079cddce505" + +http-signature@~0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66" + dependencies: + asn1 "0.1.11" + assert-plus "^0.1.5" + ctype "0.5.3" + +iconv-lite@0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.4.tgz#e95f2e41db0735fc21652f7827a5ee32e63c83a8" + +inherits@2, inherits@~2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +ipaddr.js@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.0.5.tgz#5fa78cf301b825c78abc3042d812723049ea23c7" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +jade@0.26.3: + version "0.26.3" + resolved "https://registry.yarnpkg.com/jade/-/jade-0.26.3.tgz#8f10d7977d8d79f2f6ff862a81b0513ccb25686c" + dependencies: + commander "0.6.1" + mkdirp "0.3.0" + +json-stringify-safe@^5.0.0, json-stringify-safe@~5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json-stringify-safe@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-3.0.0.tgz#9db7b0e530c7f289c5e8c8432af191c2ff75a5b3" + +jsonparse@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-0.0.5.tgz#330542ad3f0a654665b778f3eb2d9a9fa507ac64" + +"lodash.merge@>= 2.4.1": + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" + +lodash@3.10.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + +lodash@~2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-2.4.2.tgz#fadd834b9683073da179b3eae6d9c0d15053f73e" + +logfmt@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/logfmt/-/logfmt-1.2.0.tgz#1ccc067c1cfe65f3ecf5856c09d2654f69203572" + dependencies: + lodash "~2.4.1" + split "0.2.x" + through "2.3.x" + +lru-cache@2: + version "2.7.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" + +map-stream@~0.0.3: + version "0.0.6" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.0.6.tgz#d2ef4eb811a28644c7a8989985c69c2fdd496827" + +marked@0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.2.tgz#015db158864438f24a64bdd61a0428b418706d09" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +merge-descriptors@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-0.0.2.tgz#c36a52a781437513c57275f39dd9d317514ac8c7" + +methods@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.0.1.tgz#75bc91943dffd7da037cf3eeb0ed73a0037cd14b" + +methods@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.0.tgz#5dca4ee12df52ff3b056145986a8f01cbc86436f" + +methods@1.x: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +mime-db@~1.12.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.12.0.tgz#3d0c63180f458eb10d325aaa37d7c58ae312e9d7" + +mime-types@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-1.0.2.tgz#995ae1392ab8affcbfcb2641dd054e943c0d5dce" + +mime-types@~2.0.3, mime-types@~2.0.4, mime-types@~2.0.9: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.0.14.tgz#310e159db23e077f8bb22b748dabfa4957140aa6" + dependencies: + mime-db "~1.12.0" + +mime@1.2.11, mime@~1.2.11, mime@~1.2.2, mime@~1.2.7: + version "1.2.11" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" + +mime@1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" + +minimatch@~0.2.11: + version "0.2.14" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +mkdirp@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" + +mkdirp@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" + dependencies: + minimist "0.0.8" + +mkdirp@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" + +mocha@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-2.0.1.tgz#5a16e88b856d0c4145d8c6888c27ebd4fab13e90" + dependencies: + commander "2.3.0" + debug "2.0.0" + diff "1.0.8" + escape-string-regexp "1.0.2" + glob "3.2.3" + growl "1.8.1" + jade "0.26.3" + mkdirp "0.5.0" + +ms@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.6.2.tgz#d89c2124c6fdc1353d65a8b77bf1aac4b193708c" + +ms@0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.0.tgz#865be94c2e7397ad8a57da6a633a6e2f30798b83" + +ms@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + +nano@~3.3.8: + version "3.3.8" + resolved "https://registry.yarnpkg.com/nano/-/nano-3.3.8.tgz#2c5476748adec74081e5fea6d1695449c8c66a95" + dependencies: + errs "0.2.x" + follow "0.8.x" + request "2.16.x" + underscore "1.4.x" + +negotiator@0.4.9: + version "0.4.9" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.4.9.tgz#92e46b6db53c7e421ed64a2bc94f08be7630df3f" + +newrelic@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/newrelic/-/newrelic-1.14.1.tgz#5d5dae320fae9b0d856d92269df255f8d226b5d3" + dependencies: + continuation-local-storage "^3.1.0" + json-stringify-safe "^5.0.0" + proxying-agent "^0.1.6" + yakaa "^1.0.0" + +node-uuid@~1.4.0: + version "1.4.7" + resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" + +npm-stats@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/npm-stats/-/npm-stats-1.1.0.tgz#735bb11825d91d867c404baa59dc800da8dfb112" + dependencies: + JSONStream "~0.6.2" + event-stream "~3.0.12" + lodash.merge ">= 2.4.1" + nano "~3.3.8" + request "~2.45.0" + stream-reduce "~1.0.3" + through "~2.3.6" + +oauth-sign@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.2.0.tgz#a0e6a1715daed062f322b622b7fe5afd1035b6e2" + +oauth-sign@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.4.0.tgz#f22956f31ea7151a821e5f2fb32c113cad8b9f69" + +object-keys@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" + +on-finished@~2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.1.1.tgz#f82ca1c9e3a4f3286b1b9938610e5b8636bd3cb2" + dependencies: + ee-first "1.1.0" + +parseurl@~1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" + +path-to-regexp@0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.3.tgz#21b9ab82274279de25b156ea08fd12ca51b8aecb" + +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + dependencies: + through "~2.3" + +proxy-addr@~1.0.3: + version "1.0.10" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.0.10.tgz#0d40a82f801fc355567d2ecb65efe3f077f121c5" + dependencies: + forwarded "~0.1.0" + ipaddr.js "1.0.5" + +proxying-agent@^0.1.6: + version "0.1.8" + resolved "https://registry.yarnpkg.com/proxying-agent/-/proxying-agent-0.1.8.tgz#3063405dc1d6edb7f8b82c8a6932750b15c6c5d6" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +pygmentize-bundled@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pygmentize-bundled/-/pygmentize-bundled-2.3.0.tgz#d425deda8d136975b933ede363135f623350814a" + dependencies: + bl "~0.4.1" + through2 "~0.2.1" + +qs@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-2.3.2.tgz#d45ec249e4b9b029af008829a101d5ff7e972790" + +qs@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-2.3.3.tgz#e9e85adbe75da0bbe4c8e0476a086290f863b404" + +qs@~0.5.4: + version "0.5.6" + resolved "https://registry.yarnpkg.com/qs/-/qs-0.5.6.tgz#31b1ad058567651c526921506b9a8793911a0384" + +qs@~1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-1.2.2.tgz#19b57ff24dc2a99ce1f8bdf6afcda59f8ef61f88" + +range-parser@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.0.3.tgz#6872823535c692e2c2a0103826afd82c2e0ff175" + +raw-body@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.3.0.tgz#978230a156a5548f42eef14de22d0f4f610083d1" + dependencies: + bytes "1" + iconv-lite "0.4.4" + +readable-stream@1.0.27-1: + version "1.0.27-1" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.27-1.tgz#6b67983c20357cefd07f0165001a16d710d91078" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@~1.0.2, readable-stream@~1.0.26: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +reduce-component@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/reduce-component/-/reduce-component-1.0.1.tgz#e0c93542c574521bea13df0f9488ed82ab77c5da" + +request@2.16.x: + version "2.16.6" + resolved "https://registry.yarnpkg.com/request/-/request-2.16.6.tgz#872fe445ae72de266b37879d6ad7dc948fa01cad" + dependencies: + aws-sign "~0.2.0" + cookie-jar "~0.2.0" + forever-agent "~0.2.0" + form-data "~0.0.3" + hawk "~0.10.2" + json-stringify-safe "~3.0.0" + mime "~1.2.7" + node-uuid "~1.4.0" + oauth-sign "~0.2.0" + qs "~0.5.4" + tunnel-agent "~0.2.0" + +request@~2.2.5: + version "2.2.9" + resolved "https://registry.yarnpkg.com/request/-/request-2.2.9.tgz#efbf8afbfe7f1e200d483b99752b6c42b404a0f1" + +request@~2.45.0: + version "2.45.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.45.0.tgz#29d713a0a07f17fb2e7b61815d2010681718e93c" + dependencies: + bl "~0.9.0" + caseless "~0.6.0" + forever-agent "~0.5.0" + form-data "~0.1.0" + json-stringify-safe "~5.0.0" + mime-types "~1.0.1" + node-uuid "~1.4.0" + qs "~1.2.0" + tunnel-agent "~0.4.0" + optionalDependencies: + aws-sign2 "~0.5.0" + hawk "1.1.1" + http-signature "~0.10.0" + oauth-sign "~0.4.0" + stringstream "~0.0.4" + tough-cookie ">=0.12.0" + +semver@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.1.tgz#9fb3f4004f900d83c47968fe42f7583e05832cc9" + +send@0.10.1: + version "0.10.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.10.1.tgz#7745c50ec72f115115980e8fb179aec01900e08a" + dependencies: + debug "~2.1.0" + depd "~1.0.0" + destroy "1.0.3" + escape-html "1.0.1" + etag "~1.5.0" + fresh "0.2.4" + mime "1.2.11" + ms "0.6.2" + on-finished "~2.1.1" + range-parser "~1.0.2" + +serve-static@~1.7.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.7.2.tgz#3164ce06d4e6c3459bdcc9d6018fb4fb35e84b39" + dependencies: + escape-html "1.0.1" + parseurl "~1.3.0" + send "0.10.1" + utils-merge "1.0.0" + +shimmer@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.0.0.tgz#49c2d71c678360b802be18b278382d1cbb805c39" + +sigmund@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + +sntp@0.1.x: + version "0.1.4" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-0.1.4.tgz#5ef481b951a7b29affdf4afd7f26838fc1120f84" + dependencies: + hoek "0.7.x" + +sntp@0.2.x: + version "0.2.4" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-0.2.4.tgz#fb885f18b0f3aad189f824862536bceeec750900" + dependencies: + hoek "0.9.x" + +split@0.2, split@0.2.x: + version "0.2.10" + resolved "https://registry.yarnpkg.com/split/-/split-0.2.10.tgz#67097c601d697ce1368f418f06cd201cf0521a57" + dependencies: + through "2" + +stream-combiner@~0.0.3: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + dependencies: + duplexer "~0.1.1" + +stream-reduce@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/stream-reduce/-/stream-reduce-1.0.3.tgz#56d3621fa84370619ae402ffc0468528991b36a9" + dependencies: + through "~2.3.4" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +superagent@1.3.0, superagent@~1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-1.3.0.tgz#2c014667f39f57ca755aff94e7f4290f7d6aebf2" + dependencies: + component-emitter "1.1.2" + cookiejar "2.0.1" + debug "2" + extend "1.2.1" + form-data "0.2.0" + formidable "1.0.14" + methods "1.0.1" + mime "1.3.4" + qs "2.3.3" + readable-stream "1.0.27-1" + reduce-component "1.0.1" + +supertest@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/supertest/-/supertest-1.1.0.tgz#3c441b2d9ec0ed42524eb31495611ca3d434ab1c" + dependencies: + methods "1.x" + superagent "~1.3.0" + +through2@~0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f" + dependencies: + readable-stream "~1.1.9" + xtend "~2.1.1" + +through@2, through@2.3.x, through@~2.3, through@~2.3.1, through@~2.3.4, through@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +through@~2.2.7: + version "2.2.7" + resolved "https://registry.yarnpkg.com/through/-/through-2.2.7.tgz#6e8e21200191d4eb6a99f6f010df46aa1c6eb2bd" + +tough-cookie@>=0.12.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + dependencies: + punycode "^1.4.1" + +tunnel-agent@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.2.0.tgz#6853c2afb1b2109e45629e492bde35f459ea69e8" + +tunnel-agent@~0.4.0: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + +type-is@~1.5.2: + version "1.5.7" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.5.7.tgz#b9368a593cc6ef7d0645e78b2f4c64cbecd05e90" + dependencies: + media-typer "0.3.0" + mime-types "~2.0.9" + +underscore@1.4.x: + version "1.4.4" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604" + +utils-merge@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" + +vary@^1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.0.tgz#e1e5affbbd16ae768dd2674394b9ad3022653140" + +vary@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.0.1.tgz#99e4981566a286118dfb2b817357df7993376d10" + +xtend@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" + dependencies: + object-keys "~0.4.0" + +yakaa@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/yakaa/-/yakaa-1.0.1.tgz#3ecaae72f3d089da58089403126204cec772e60a"