summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/read-installed
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/read-installed')
-rw-r--r--deps/npm/node_modules/read-installed/README.md13
-rw-r--r--deps/npm/node_modules/read-installed/package.json26
-rw-r--r--deps/npm/node_modules/read-installed/read-installed.js28
-rw-r--r--deps/npm/node_modules/read-installed/test/basic.js29
-rw-r--r--deps/npm/node_modules/read-installed/test/dev.js22
-rw-r--r--deps/npm/node_modules/read-installed/test/fixtures/peer-at-latest/node_modules/strong-task-emitter/package.json10
-rw-r--r--deps/npm/node_modules/read-installed/test/noargs.js21
-rw-r--r--deps/npm/node_modules/read-installed/test/peer-dep-at-latest.js14
8 files changed, 132 insertions, 31 deletions
diff --git a/deps/npm/node_modules/read-installed/README.md b/deps/npm/node_modules/read-installed/README.md
index 616371ef9..535a8496f 100644
--- a/deps/npm/node_modules/read-installed/README.md
+++ b/deps/npm/node_modules/read-installed/README.md
@@ -5,12 +5,21 @@ structure with all the data.
npm uses this.
+## 1.0.0
+
+Breaking changes in `1.0.0`:
+
+The second argument is now an `Object` that contains the following keys:
+
+ * `depth` optional, defaults to Infinity
+ * `log` optional log Function
+ * `dev` optional, dev=true to mark devDeps as extraneous
+
## Usage
```javascript
var readInstalled = require("read-installed")
-// depth is optional, defaults to Infinity
-readInstalled(folder, depth, logFunction, function (er, data) {
+readInstalled(folder, { depth, log, dev }, function (er, data) {
...
})
```
diff --git a/deps/npm/node_modules/read-installed/package.json b/deps/npm/node_modules/read-installed/package.json
index 41f16e288..16836d266 100644
--- a/deps/npm/node_modules/read-installed/package.json
+++ b/deps/npm/node_modules/read-installed/package.json
@@ -1,23 +1,39 @@
{
"name": "read-installed",
"description": "Read all the installed packages in a folder, and return a tree structure with all the data.",
- "version": "0.2.5",
+ "version": "1.0.0",
"repository": {
"type": "git",
"url": "git://github.com/isaacs/read-installed"
},
"main": "read-installed.js",
"scripts": {
- "test": "node test/basic.js"
+ "test": "tap ./test/"
},
"dependencies": {
"semver": "2",
"slide": "~1.1.3",
- "read-package-json": "1"
+ "read-package-json": "1",
+ "graceful-fs": "~2"
},
"optionalDependencies": {
"graceful-fs": "~2"
},
- "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
- "license": "ISC"
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tap": "~0.4.8"
+ },
+ "readme": "# read-installed\n\nRead all the installed packages in a folder, and return a tree\nstructure with all the data.\n\nnpm uses this.\n\n## 1.0.0\n\nBreaking changes in `1.0.0`:\n\nThe second argument is now an `Object` that contains the following keys:\n\n * `depth` optional, defaults to Infinity\n * `log` optional log Function\n * `dev` optional, dev=true to mark devDeps as extraneous\n\n## Usage\n\n```javascript\nvar readInstalled = require(\"read-installed\")\nreadInstalled(folder, { depth, log, dev }, function (er, data) {\n ...\n})\n```\n",
+ "readmeFilename": "README.md",
+ "bugs": {
+ "url": "https://github.com/isaacs/read-installed/issues"
+ },
+ "homepage": "https://github.com/isaacs/read-installed",
+ "_id": "read-installed@1.0.0",
+ "_from": "read-installed@latest"
}
diff --git a/deps/npm/node_modules/read-installed/read-installed.js b/deps/npm/node_modules/read-installed/read-installed.js
index 2920d7d66..9ca482dab 100644
--- a/deps/npm/node_modules/read-installed/read-installed.js
+++ b/deps/npm/node_modules/read-installed/read-installed.js
@@ -101,17 +101,14 @@ var url = require("url")
module.exports = readInstalled
-function readInstalled (folder, depth_, log_, cb_) {
- var depth = Infinity, log = function () {}, cb
- for (var i = 1; i < arguments.length - 1; i++) {
- if (typeof arguments[i] === 'number')
- depth = arguments[i]
- else if (typeof arguments[i] === 'function')
- log = arguments[i]
+function readInstalled (folder, opts, cb) {
+ if (typeof opts === 'function') {
+ cb = opts
+ opts = {}
}
- cb = arguments[i]
+ var depth = Infinity || opts.depth, log = function () {} || opts.log, dev = false || opts.dev
- readInstalled_(folder, null, null, null, 0, depth, function (er, obj) {
+ readInstalled_(folder, null, null, null, 0, depth, dev, function (er, obj) {
if (er) return cb(er)
// now obj has all the installed things, where they're installed
// figure out the inheritance links, now that the object is built.
@@ -121,7 +118,7 @@ function readInstalled (folder, depth_, log_, cb_) {
}
var rpSeen = {}
-function readInstalled_ (folder, parent, name, reqver, depth, maxDepth, cb) {
+function readInstalled_ (folder, parent, name, reqver, depth, maxDepth, dev, cb) {
var installed
, obj
, real
@@ -177,7 +174,7 @@ function readInstalled_ (folder, parent, name, reqver, depth, maxDepth, cb) {
obj.realName = name || obj.name
obj.dependencies = obj.dependencies || {}
- // "foo":"http://blah" is always presumed valid
+ // "foo":"http://blah" and "foo":"latest" are always presumed valid
if (reqver
&& semver.validRange(reqver, true)
&& !semver.satisfies(obj.version, reqver, true)) {
@@ -186,7 +183,7 @@ function readInstalled_ (folder, parent, name, reqver, depth, maxDepth, cb) {
if (parent
&& !(name in parent.dependencies)
- && !(name in (parent.devDependencies || {}))) {
+ && (dev || !(name in (parent.devDependencies || {})))) {
obj.extraneous = true
}
obj.path = obj.path || folder
@@ -198,7 +195,7 @@ function readInstalled_ (folder, parent, name, reqver, depth, maxDepth, cb) {
//if (depth >= maxDepth) return cb(null, obj)
asyncMap(installed, function (pkg, cb) {
var rv = obj.dependencies[pkg]
- if (!rv && obj.devDependencies) rv = obj.devDependencies[pkg]
+ if (!rv && obj.devDependencies && !dev) rv = obj.devDependencies[pkg]
if (depth >= maxDepth) {
// just try to get the version number
var pkgfolder = path.resolve(folder, "node_modules", pkg)
@@ -220,6 +217,7 @@ function readInstalled_ (folder, parent, name, reqver, depth, maxDepth, cb) {
readInstalled_( path.resolve(folder, "node_modules/"+pkg)
, obj, pkg, obj.dependencies[pkg], depth + 1, maxDepth
+ , dev
, cb )
}, function (er, installedData) {
@@ -285,9 +283,9 @@ function findUnmet (obj, log) {
r = r.link ? null : r.parent
continue
}
+ // "foo":"http://blah" and "foo":"latest" are always presumed valid
if ( typeof deps[d] === "string"
- // url deps presumed innocent.
- && !url.parse(deps[d]).protocol
+ && semver.validRange(deps[d], true)
&& !semver.satisfies(found.version, deps[d], true)) {
// the bad thing will happen
log("unmet dependency", obj.path + " requires "+d+"@'"+deps[d]
diff --git a/deps/npm/node_modules/read-installed/test/basic.js b/deps/npm/node_modules/read-installed/test/basic.js
index 2b0c03983..a6c5ff546 100644
--- a/deps/npm/node_modules/read-installed/test/basic.js
+++ b/deps/npm/node_modules/read-installed/test/basic.js
@@ -1,15 +1,26 @@
var readInstalled = require("../read-installed.js")
-var util = require("util")
-console.error("testing")
+var json = require("../package.json")
+var known = [].concat(Object.keys(json.dependencies)
+ , Object.keys(json.optionalDependencies)
+ , Object.keys(json.devDependencies)).sort()
+var test = require("tap").test
+var path = require("path")
-var called = 0
-readInstalled(process.cwd(), console.error, function (er, map) {
- console.error(called ++)
- if (er) return console.error(er.stack || er.message)
- cleanup(map)
- console.error(util.inspect(map, true, 10, true))
+test("make sure that it works", function (t) {
+ readInstalled(path.join(__dirname, "../"), {
+ log: console.error
+ }, function (er, map) {
+ t.notOk(er, "er should be bull")
+ t.ok(map, "map should be data")
+ if (er) return console.error(er.stack || er.message)
+ cleanup(map)
+ var deps = Object.keys(map.dependencies).sort()
+ t.equal(known.length, deps.length, "array lengths are equal")
+ t.deepEqual(known, deps, "arrays should be equal")
+ t.notOk(map.dependencies.tap.extraneous, 'extraneous not set on devDep')
+ t.end()
+ })
})
-
var seen = []
function cleanup (map) {
if (seen.indexOf(map) !== -1) return
diff --git a/deps/npm/node_modules/read-installed/test/dev.js b/deps/npm/node_modules/read-installed/test/dev.js
new file mode 100644
index 000000000..104761745
--- /dev/null
+++ b/deps/npm/node_modules/read-installed/test/dev.js
@@ -0,0 +1,22 @@
+var readInstalled = require("../read-installed.js")
+var test = require("tap").test
+var json = require("../package.json")
+var path = require("path")
+var known = [].concat(Object.keys(json.dependencies)
+ , Object.keys(json.optionalDependencies)
+ , Object.keys(json.devDependencies)).sort()
+
+test("make sure that it works without dev deps", function (t) {
+ readInstalled(path.join(__dirname, "../"), {
+ log: console.error
+ , dev: true }, function (er, map) {
+ t.notOk(er, "er should be bull")
+ t.ok(map, "map should be data")
+ if (er) return console.error(er.stack || er.message)
+ var deps = Object.keys(map.dependencies).sort()
+ t.equal(deps.length, known.length, "array lengths are equal")
+ t.deepEqual(deps, known, "arrays should be equal")
+ t.ok(map.dependencies.tap.extraneous, 'extraneous is set on devDep')
+ t.end()
+ })
+})
diff --git a/deps/npm/node_modules/read-installed/test/fixtures/peer-at-latest/node_modules/strong-task-emitter/package.json b/deps/npm/node_modules/read-installed/test/fixtures/peer-at-latest/node_modules/strong-task-emitter/package.json
new file mode 100644
index 000000000..8824f5387
--- /dev/null
+++ b/deps/npm/node_modules/read-installed/test/fixtures/peer-at-latest/node_modules/strong-task-emitter/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "strong-task-emitter",
+ "version": "0.0.4",
+ "dependencies": {
+ "debug": "latest"
+ },
+ "_id": "strong-task-emitter@0.0.4",
+ "_from": "strong-task-emitter@0.0.4",
+ "_resolved": "https://registry.npmjs.org/strong-task-emitter/-/strong-task-emitter-0.0.4.tgz"
+}
diff --git a/deps/npm/node_modules/read-installed/test/noargs.js b/deps/npm/node_modules/read-installed/test/noargs.js
new file mode 100644
index 000000000..0de5ba430
--- /dev/null
+++ b/deps/npm/node_modules/read-installed/test/noargs.js
@@ -0,0 +1,21 @@
+var readInstalled = require("../read-installed.js")
+var test = require("tap").test
+var json = require("../package.json")
+var path = require("path")
+var known = [].concat(Object.keys(json.dependencies)
+ , Object.keys(json.optionalDependencies)
+ , Object.keys(json.devDependencies)).sort()
+
+test("make sure that it works without dev deps", function (t) {
+ readInstalled(path.join(__dirname, "../"), function (er, map) {
+ t.notOk(er, "er should be bull")
+ t.ok(map, "map should be data")
+ if (er) return console.error(er.stack || er.message)
+ var deps = Object.keys(map.dependencies).sort()
+ t.equal(deps.length, known.length, "array lengths are equal")
+ t.deepEqual(deps, known, "arrays should be equal")
+ t.notOk(map.dependencies.tap.extraneous, 'extraneous is set on devDep')
+ t.end()
+ })
+})
+
diff --git a/deps/npm/node_modules/read-installed/test/peer-dep-at-latest.js b/deps/npm/node_modules/read-installed/test/peer-dep-at-latest.js
new file mode 100644
index 000000000..8f2436fa1
--- /dev/null
+++ b/deps/npm/node_modules/read-installed/test/peer-dep-at-latest.js
@@ -0,0 +1,14 @@
+var readInstalled = require('../read-installed.js')
+var test = require('tap').test
+var path = require('path');
+
+test('"latest" version is valid', function(t) {
+ // This test verifies npm#3860
+ readInstalled(
+ path.join(__dirname, 'fixtures/peer-at-latest'),
+ { log: console.error },
+ function(err, map) {
+ t.notOk(map.dependencies.debug.invalid, 'debug@latest is satisfied by a peer')
+ t.end()
+ })
+})