aboutsummaryrefslogtreecommitdiff
path: root/node_modules/resolve
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-08-14 05:01:11 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-08-14 05:02:09 +0200
commit363723fc84f7b8477592e0105aeb331ec9a017af (patch)
tree29f92724f34131bac64d6a318dd7e30612e631c7 /node_modules/resolve
parent5634e77ad96bfe1818f6b6ee70b7379652e5487f (diff)
node_modules
Diffstat (limited to 'node_modules/resolve')
-rw-r--r--node_modules/resolve/.editorconfig20
-rw-r--r--node_modules/resolve/.eslintrc3
-rw-r--r--node_modules/resolve/.npmignore6
-rw-r--r--node_modules/resolve/.travis.yml17
-rw-r--r--node_modules/resolve/lib/node-modules-paths.js14
-rw-r--r--node_modules/resolve/lib/sync.js6
-rw-r--r--node_modules/resolve/package.json8
-rw-r--r--node_modules/resolve/readme.markdown16
-rw-r--r--node_modules/resolve/test/resolver.js22
-rw-r--r--node_modules/resolve/test/resolver/dot_main/index.js1
-rw-r--r--node_modules/resolve/test/resolver/dot_main/package.json3
-rw-r--r--node_modules/resolve/test/resolver/dot_slash_main/index.js1
-rw-r--r--node_modules/resolve/test/resolver/dot_slash_main/package.json3
-rw-r--r--node_modules/resolve/test/resolver/symlinked/.npmignore1
-rw-r--r--node_modules/resolve/test/resolver/symlinked/_/.npmignore1
-rw-r--r--node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js0
-rw-r--r--node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep0
-rw-r--r--node_modules/resolve/test/resolver_sync.js14
-rw-r--r--node_modules/resolve/test/symlinks.js54
19 files changed, 177 insertions, 13 deletions
diff --git a/node_modules/resolve/.editorconfig b/node_modules/resolve/.editorconfig
new file mode 100644
index 000000000..ac29adef0
--- /dev/null
+++ b/node_modules/resolve/.editorconfig
@@ -0,0 +1,20 @@
+root = true
+
+[*]
+indent_style = tab
+indent_size = 4
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+max_line_length = 120
+
+[CHANGELOG.md]
+indent_style = space
+indent_size = 2
+
+[*.json]
+max_line_length = off
+
+[Makefile]
+max_line_length = off
diff --git a/node_modules/resolve/.eslintrc b/node_modules/resolve/.eslintrc
index ae352e2e2..9db19a4f8 100644
--- a/node_modules/resolve/.eslintrc
+++ b/node_modules/resolve/.eslintrc
@@ -2,11 +2,14 @@
"extends": "@ljharb",
"root": true,
"rules": {
+ "array-bracket-newline": 0,
+ "array-element-newline": 0,
"indent": [2, 4],
"strict": 0,
"complexity": 0,
"consistent-return": 0,
"curly": 0,
+ "dot-notation": [2, { "allowKeywords": true }],
"func-name-matching": 0,
"func-style": 0,
"global-require": 0,
diff --git a/node_modules/resolve/.npmignore b/node_modules/resolve/.npmignore
index 3c3629e64..f83345172 100644
--- a/node_modules/resolve/.npmignore
+++ b/node_modules/resolve/.npmignore
@@ -1 +1,7 @@
+# gitignore
node_modules
+
+# Only apps should have lockfiles
+npm-shrinkwrap.json
+package-lock.json
+yarn.lock
diff --git a/node_modules/resolve/.travis.yml b/node_modules/resolve/.travis.yml
index f5450af3f..25709b3d6 100644
--- a/node_modules/resolve/.travis.yml
+++ b/node_modules/resolve/.travis.yml
@@ -2,8 +2,9 @@ language: node_js
os:
- linux
node_js:
- - "7.9"
- - "6.10"
+ - "8.2"
+ - "7.10"
+ - "6.11"
- "5.12"
- "4.8"
- "iojs-v3.3"
@@ -15,9 +16,9 @@ node_js:
- "0.6"
before_install:
- 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then npm install -g npm@1.3 ; elif [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then case "$(npm --version)" in 1.*) npm install -g npm@1.4.28 ;; 2.*) npm install -g npm@2 ;; esac ; fi'
- - 'if [ "${TRAVIS_NODE_VERSION}" != "0.6" ] && [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then npm install -g npm; fi'
+ - 'if [ "${TRAVIS_NODE_VERSION}" != "0.6" ] && [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then if [ "${TRAVIS_NODE_VERSION%${TRAVIS_NODE_VERSION#[0-9]}}" = "0" ] || [ "${TRAVIS_NODE_VERSION:0:4}" = "iojs" ]; then npm install -g npm@4.5 ; else npm install -g npm; fi; fi'
install:
- - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then nvm install 0.8 && npm install -g npm@1.3 && npm install -g npm@1.4.28 && npm install -g npm@2 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;'
+ - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then (nvm install 0.8 && npm install -g npm@1.3 && npm install -g npm@1.4.28 && npm install -g npm@2 && npm install); else npm install; fi;'
script:
- 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi'
- 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi'
@@ -31,6 +32,12 @@ matrix:
include:
- node_js: "node"
env: PRETEST=true
+ - node_js: "8.1"
+ env: TEST=true ALLOW_FAILURE=true
+ - node_js: "8.0"
+ env: TEST=true ALLOW_FAILURE=true
+ - node_js: "7.9"
+ env: TEST=true ALLOW_FAILURE=true
- node_js: "7.8"
env: TEST=true ALLOW_FAILURE=true
- node_js: "7.7"
@@ -49,6 +56,8 @@ matrix:
env: TEST=true ALLOW_FAILURE=true
- node_js: "7.0"
env: TEST=true ALLOW_FAILURE=true
+ - node_js: "6.10"
+ env: TEST=true ALLOW_FAILURE=true
- node_js: "6.9"
env: TEST=true ALLOW_FAILURE=true
- node_js: "6.8"
diff --git a/node_modules/resolve/lib/node-modules-paths.js b/node_modules/resolve/lib/node-modules-paths.js
index dc06199db..a4bde6a96 100644
--- a/node_modules/resolve/lib/node-modules-paths.js
+++ b/node_modules/resolve/lib/node-modules-paths.js
@@ -1,16 +1,26 @@
var path = require('path');
+var fs = require('fs');
var parse = path.parse || require('path-parse');
module.exports = function nodeModulesPaths(start, opts) {
var modules = opts && opts.moduleDirectory
? [].concat(opts.moduleDirectory)
- : ['node_modules']
- ;
+ : ['node_modules'];
// ensure that `start` is an absolute path at this point,
// resolving against the process' current working directory
var absoluteStart = path.resolve(start);
+ if (opts && opts.preserveSymlinks === false) {
+ try {
+ absoluteStart = fs.realpathSync(absoluteStart);
+ } catch (err) {
+ if (err.code !== 'ENOENT') {
+ throw err;
+ }
+ }
+ }
+
var prefix = '/';
if (/^([A-Za-z]:)/.test(absoluteStart)) {
prefix = '';
diff --git a/node_modules/resolve/lib/sync.js b/node_modules/resolve/lib/sync.js
index 510ca256c..bc9e287a1 100644
--- a/node_modules/resolve/lib/sync.js
+++ b/node_modules/resolve/lib/sync.js
@@ -57,14 +57,18 @@ module.exports = function (x, options) {
function loadAsDirectorySync(x) {
var pkgfile = path.join(x, '/package.json');
if (isFile(pkgfile)) {
- var body = readFileSync(pkgfile, 'utf8');
try {
+ var body = readFileSync(pkgfile, 'UTF8');
var pkg = JSON.parse(body);
+
if (opts.packageFilter) {
pkg = opts.packageFilter(pkg, x);
}
if (pkg.main) {
+ if (pkg.main === '.' || pkg.main === './') {
+ pkg.main = 'index';
+ }
var m = loadAsFileSync(path.resolve(x, pkg.main));
if (m) return m;
var n = loadAsDirectorySync(path.resolve(x, pkg.main));
diff --git a/node_modules/resolve/package.json b/node_modules/resolve/package.json
index 9a93a3dc5..1f8d59786 100644
--- a/node_modules/resolve/package.json
+++ b/node_modules/resolve/package.json
@@ -1,7 +1,7 @@
{
"name": "resolve",
"description": "resolve like require.resolve() on behalf of files asynchronously and synchronously",
- "version": "1.3.3",
+ "version": "1.4.0",
"repository": {
"type": "git",
"url": "git://github.com/substack/node-resolve.git"
@@ -21,12 +21,12 @@
"test": "npm run --silent tests-only"
},
"devDependencies": {
- "@ljharb/eslint-config": "^11.0.0",
- "eslint": "^3.19.0",
+ "@ljharb/eslint-config": "^12.2.0",
+ "eslint": "^4.3.0",
"object-keys": "^1.0.11",
"safe-publish-latest": "^1.1.1",
"tap": "0.4.13",
- "tape": "^4.6.3"
+ "tape": "^4.7.0"
},
"license": "MIT",
"author": {
diff --git a/node_modules/resolve/readme.markdown b/node_modules/resolve/readme.markdown
index db0d69f87..1bb67d434 100644
--- a/node_modules/resolve/readme.markdown
+++ b/node_modules/resolve/readme.markdown
@@ -73,6 +73,11 @@ node_modules recursive walk (probably don't use this)
* opts.moduleDirectory - directory (or directories) in which to recursively look for modules. default: `"node_modules"`
+* opts.preserveSymlinks - if true, doesn't resolve `basedir` to real path before resolving.
+This is the way Node resolves dependencies when executed with the [--preserve-symlinks](https://nodejs.org/api/all.html#cli_preserve_symlinks) flag.
+**Note:** this property is currently `true` by default but it will be changed to
+`false` in the next major version because *Node's resolution algorithm does not preserve symlinks by default*.
+
default `opts` values:
``` javascript
@@ -88,7 +93,8 @@ default `opts` values:
else cb(null, stat.isFile())
});
},
- moduleDirectory: 'node_modules'
+ moduleDirectory: 'node_modules',
+ preserveSymlinks: true
}
```
@@ -115,6 +121,11 @@ node_modules recursive walk (probably don't use this)
* opts.moduleDirectory - directory (or directories) in which to recursively look for modules. default: `"node_modules"`
+* opts.preserveSymlinks - if true, doesn't resolve `basedir` to real path before resolving.
+This is the way Node resolves dependencies when executed with the [--preserve-symlinks](https://nodejs.org/api/all.html#cli_preserve_symlinks) flag.
+**Note:** this property is currently `true` by default but it will be changed to
+`false` in the next major version because *Node's resolution algorithm does not preserve symlinks by default*.
+
default `opts` values:
``` javascript
@@ -127,7 +138,8 @@ default `opts` values:
try { return fs.statSync(file).isFile() }
catch (e) { return false }
},
- moduleDirectory: 'node_modules'
+ moduleDirectory: 'node_modules',
+ preserveSymlinks: true
}
````
diff --git a/node_modules/resolve/test/resolver.js b/node_modules/resolve/test/resolver.js
index adde54441..56641dfde 100644
--- a/node_modules/resolve/test/resolver.js
+++ b/node_modules/resolve/test/resolver.js
@@ -325,3 +325,25 @@ test('async: #121 - treating an existing file as a dir when no basedir', functio
t.end();
});
+
+test('async dot main', function (t) {
+ var start = new Date();
+ t.plan(3);
+ resolve('./resolver/dot_main', function (err, ret) {
+ t.notOk(err);
+ t.equal(ret, path.join(__dirname, 'resolver/dot_main/index.js'));
+ t.ok(new Date() - start < 50, 'resolve.sync timedout');
+ t.end();
+ });
+});
+
+test('async dot slash main', function (t) {
+ var start = new Date();
+ t.plan(3);
+ resolve('./resolver/dot_slash_main', function (err, ret) {
+ t.notOk(err);
+ t.equal(ret, path.join(__dirname, 'resolver/dot_slash_main/index.js'));
+ t.ok(new Date() - start < 50, 'resolve.sync timedout');
+ t.end();
+ });
+});
diff --git a/node_modules/resolve/test/resolver/dot_main/index.js b/node_modules/resolve/test/resolver/dot_main/index.js
new file mode 100644
index 000000000..bd816eaba
--- /dev/null
+++ b/node_modules/resolve/test/resolver/dot_main/index.js
@@ -0,0 +1 @@
+module.exports = 1;
diff --git a/node_modules/resolve/test/resolver/dot_main/package.json b/node_modules/resolve/test/resolver/dot_main/package.json
new file mode 100644
index 000000000..d7f4fc807
--- /dev/null
+++ b/node_modules/resolve/test/resolver/dot_main/package.json
@@ -0,0 +1,3 @@
+{
+ "main": "."
+}
diff --git a/node_modules/resolve/test/resolver/dot_slash_main/index.js b/node_modules/resolve/test/resolver/dot_slash_main/index.js
new file mode 100644
index 000000000..bd816eaba
--- /dev/null
+++ b/node_modules/resolve/test/resolver/dot_slash_main/index.js
@@ -0,0 +1 @@
+module.exports = 1;
diff --git a/node_modules/resolve/test/resolver/dot_slash_main/package.json b/node_modules/resolve/test/resolver/dot_slash_main/package.json
new file mode 100644
index 000000000..f51287b9d
--- /dev/null
+++ b/node_modules/resolve/test/resolver/dot_slash_main/package.json
@@ -0,0 +1,3 @@
+{
+ "main": "./"
+}
diff --git a/node_modules/resolve/test/resolver/symlinked/.npmignore b/node_modules/resolve/test/resolver/symlinked/.npmignore
new file mode 100644
index 000000000..f23f89258
--- /dev/null
+++ b/node_modules/resolve/test/resolver/symlinked/.npmignore
@@ -0,0 +1 @@
+symlink
diff --git a/node_modules/resolve/test/resolver/symlinked/_/.npmignore b/node_modules/resolve/test/resolver/symlinked/_/.npmignore
new file mode 100644
index 000000000..cf4bab9dd
--- /dev/null
+++ b/node_modules/resolve/test/resolver/symlinked/_/.npmignore
@@ -0,0 +1 @@
+!node_modules
diff --git a/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js b/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js
diff --git a/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep b/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep
diff --git a/node_modules/resolve/test/resolver_sync.js b/node_modules/resolve/test/resolver_sync.js
index 2bc361020..8e33dca69 100644
--- a/node_modules/resolve/test/resolver_sync.js
+++ b/node_modules/resolve/test/resolver_sync.js
@@ -251,3 +251,17 @@ test('sync: #121 - treating an existing file as a dir when no basedir', function
t.end();
});
+
+test('sync dot main', function (t) {
+ var start = new Date();
+ t.equal(resolve.sync('./resolver/dot_main'), path.join(__dirname, 'resolver/dot_main/index.js'));
+ t.ok(new Date() - start < 50, 'resolve.sync timedout');
+ t.end();
+});
+
+test('sync dot slash main', function (t) {
+ var start = new Date();
+ t.equal(resolve.sync('./resolver/dot_slash_main'), path.join(__dirname, 'resolver/dot_slash_main/index.js'));
+ t.ok(new Date() - start < 50, 'resolve.sync timedout');
+ t.end();
+});
diff --git a/node_modules/resolve/test/symlinks.js b/node_modules/resolve/test/symlinks.js
new file mode 100644
index 000000000..544a02371
--- /dev/null
+++ b/node_modules/resolve/test/symlinks.js
@@ -0,0 +1,54 @@
+var path = require('path');
+var fs = require('fs');
+var test = require('tape');
+var resolve = require('../');
+
+var symlinkDir = path.join(__dirname, 'resolver', 'symlinked', 'symlink');
+try {
+ fs.unlinkSync(symlinkDir);
+} catch (err) {}
+try {
+ fs.symlinkSync('./_/symlink_target', symlinkDir, 'dir');
+} catch (err) {
+ // if fails then it is probably on Windows and lets try to create a junction
+ fs.symlinkSync(path.join(__dirname, 'resolver', 'symlinked', '_', 'symlink_target') + '\\', symlinkDir, 'junction');
+}
+
+test('symlink', function (t) {
+ t.plan(1);
+
+ resolve('foo', { basedir: symlinkDir, preserveSymlinks: false }, function (err, res, pkg) {
+ if (err) t.fail(err);
+ t.equal(res, path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'foo.js'));
+ });
+});
+
+test('sync symlink when preserveSymlinks = true', function (t) {
+ t.plan(4);
+
+ resolve('foo', { basedir: symlinkDir }, function (err, res, pkg) {
+ t.ok(err, 'there is an error');
+ t.notOk(res, 'no result');
+
+ t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error code matches require.resolve');
+ t.equal(
+ err && err.message,
+ 'Cannot find module \'foo\' from \'' + symlinkDir + '\'',
+ 'can not find nonexistent module'
+ );
+ });
+});
+
+test('sync symlink', function (t) {
+ var start = new Date();
+ t.equal(resolve.sync('foo', { basedir: symlinkDir, preserveSymlinks: false }), path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'foo.js'));
+ t.ok(new Date() - start < 50, 'resolve.sync timedout');
+ t.end();
+});
+
+test('sync symlink when preserveSymlinks = true', function (t) {
+ t.throws(function () {
+ resolve.sync('foo', { basedir: symlinkDir });
+ }, /Cannot find module 'foo'/);
+ t.end();
+});