Changelog

All notable changes to this project will be documented in this file. Dates are displayed in UTC.

Unreleased

v1.11.0 - 15 May 2019

  • [New] Add isDirectory; use to speed up node_modules lookups (#192, #191, #190)
  • [Tests] up to node v12.2, v11.15, v6.17

v1.10.1 - 23 April 2019

  • [Fix] core: 6 v8/ core modules and 3 node-inspect/ core modules no longer exist in node 12 (b54d33a)
  • [Dev Deps] update eslint, object-keys, tape (16e3897)

v1.10.0 - 21 January 2019

  • [Fix] sync/async: when package.json main is not a string, throw an error ([#178][])
  • [Fix] TypeError: Path must be a string. Received undefined (ce163e3)
  • [Tests] up to v11.6, v10.15, v8.15, v6.16 (083e78c)
  • [Dev Deps] update eslint, @ljharb/eslint-config, tape (29a4994)
  • v1.10.0 ((d098e92)
  • [New] core: add worker_threads in v11.7+ (3296106)
  • [Tests] add an additional test (2c67936)

v1.9.0 - 17 December 2018

  • [Fix] sync/async: fix preserveSymlinks option ([#177][])
  • [Fix] sync/async: when package.json main is not a string, throw an error ([#178][])
  • [Refactor] node-modules-paths: Change paths function option to receive a thunk for node modules resolution paths ((d652f01)
  • [Tests] up to node v11.4, v10.14, v8.14, v6.15 ((2b4f3a8)
  • [New] async/sync/node-modules-paths: Adds support for “paths” being a function ((7112873)
  • [Dev Deps] update eslint, @ljharb/eslint-config, object-keys, safe-publish-latest, tape ((5542700)
  • [New] Implements a “normalize-options” pseudo-hook ((f3961df)
  • [Tests] better failure messages ((f839d20)
  • v1.9.0 ((254bb40)
  • [Deps] update path-parse ((1018c0e)

v1.8.1 - 17 June 2018

  • [Docs] clean up readme code ((f5394d8)
  • [Fix] resolution when filename option is passed ((9c370c9)
  • [Tests] up to node v10.4 ((3a64219)
  • [Tests] improve output of symlink tests that fail on Mac ((6f771b2)
  • v1.8.1 ((b5fc91b)

v1.8.0 - 15 June 2018

  • [New] include filename in error message (#162)
  • [Tests] up to node v10.1, v9.11, v8.11, v6.14, 4.9 ((ad16af2)
  • Fix eslint problems and update count of tests ((def5931)
  • [New] add fs/promises to the list of core modules ((756419a)
  • v1.8.0 ((dcba6d0)
  • [New] core: add trace_events, v8/tools/arguments ((bae0338)
  • [Fix] core: _tls_legacy is removed in node 10 ((4225ac5)

v1.7.1 - 12 April 2018

  • [Fix] revert proper but unintended breaking change in sync packageFilter ([#157][])
  • v1.7.1 ((579e2b1)

v1.7.0 - 7 April 2018

  • [Fix] Make loadAsFileSync() work the same as async loadAsFile() (#146)
  • [Tests] add more pathfilter tests ((c3621a3)
  • [Tests] add some tests for browser field ((13fb572)
  • [Refactor] cache default isFile functions at module level ((fa6e6f5)
  • [Docs] fix default “isFile” implementations ((0f29c93)
  • [Tests] add some tests for a non-directory basedir ((0c18e40)
  • [Refactor] use “basedir” instead of “y”, because meaningful variable names ((876b0b0)
  • [Docs] fix options formatting ((23df5f5)
  • Minor cleanup ((c449d48)
  • [Fix] support opts.package in non-relative lookups ((c8a2052)
  • v1.7.0 ((bdf1210)
  • [Tests] work around npm SSL issue ((04cb0bb)
  • [Tests] add node 8 and 9 to appveyor ((7cbd17a)
  • [Tests] work around npm SSL issue ((4b10996)

v1.6.0 - 20 March 2018

  • [New] add async_hooks core module, added in node 8 ([#144][])
  • [New] add many missing core modules. ((88c0778)
  • Made loadAsFileSync() work the same as async loadAsFile(). ((dc23387)
  • [Tests] up to v9.8, v8.10, v6.13 ((315d729)
  • [Tests] up to node v9.3, v8.8, v6.12; pin included builds to LTS ((5091aa2)
  • [Tests] add a failing test ((90b1192)
  • [Dev Deps] update eslint, tape ((2acf953)
  • [Tests] restore node 0.6 ((2764758)
  • v1.6.0 ((1de53b2)
  • [Dev Deps] update eslint ((699a54e)
  • [Dev Deps] update eslint ((2674fad)

v1.5.0 - 24 October 2017

  • [New] node v8.8+ supports http2 ([#139][])
  • [Fix] fix broken core tests; change core.json to be an object instead of an array; fix results ((b826f30)
  • [Tests] up to v8.4; node 0.6 is failing due to travis-ci changes; allow it to fail for now. ((e9d3a24)
  • [Tests] up to node 8.7; use nvm install-latest-npm so new npm doesn’t break old node ((d0de222)
  • [Dev Deps] update eslint, @ljharb/eslint-config, tape ((76f28a3)
  • [Tests] on node v8.8 ((e0c5d51)
  • [Docs] update repo URL ((3412f98)
  • [New] add perf_hooks, added in node v8.5 ((e66117d)
  • v1.5.0 ((19cbd5e)
  • [Dev Deps] update eslint ((5bfb072)

v1.4.0 - 26 July 2017

  • [New]: add preserveSymlinks option ([#130][])
  • [Fix] sync: fix when package.json main = ‘.’ or main = ‘./‘ ([#125][])
  • [Tests] up to node v8.2, v7.10, v6.11; npm 4.6+ breaks on node < 4 ((41a3604)
  • [Tests] fix 0.6 and linting ((703517b)
  • Only apps should have lockfiles ((11fb3d8)
  • [Dev Deps] update eslint, @ljharb/eslint-config, tape ((bc2f7bf)
  • v1.4.0 ((744f816)

v1.3.3 - 20 April 2017

  • [Fix] error code MODULE_NOT_FOUND instead of ENOTDIR ([#121][])
  • [Tests] [eslint] add npm run lint ((3677928)
  • [Tests] up to node v7.7, v6.10, v4.8; comment out OSX builds since they block linux builds. ((1d3883c)
  • [Fix] correctly resolve dir paths when file with the same name exists ((a983d38)
  • [Tests] up to node v7.9 ((0da055c)
  • [Tests] improve failure scenarios. ((1de578f)
  • [Fix] sync: ensure that the path is a string, explicitly. ((b7ba83d)
  • v1.3.3 ((f009822)
  • [Dev Deps] update eslint ((452fdf9)
  • [Tests] node 0.6 can’t support an npm that understands scoped packages ((26369cf)

v1.3.2 - 26 February 2017

v1.3.1 - 24 February 2017

  • Revert “[New] add searched extensions to error messages” ((68a081d)
  • v1.3.1 ((05a5ab9)

v1.3.0 - 24 February 2017

v1.2.1 - 26 February 2017

  • [Fix] for browserify compat, do not assume process.versions.node exists. ([#120][])
  • [Fix] for browserify compat, do not assume process.versions.node exists. ([#120][])
  • v1.2.1 ((a73e111)

v1.2.0 - 13 December 2016

  • [Fix] resolve.sync should re-throw non ENOENT errors. ([#79`][])
  • [New] add missing core modules, and determine them dynamically by node version. ([#100][][#110][][#111][][#112][])
  • [Tests] test on every minor version of node. ([#109][][#75][][#74][][#70][])
  • code style: tabs → spaces ((0ab33b2)
  • [Dev Deps] add safe-publish-latest ((83c25dd)
  • [Fix] Create error outside process.nextTick ((3fa5f02)
  • v1.2.0 ((8e4a465)
  • readme: update API docs link for require.resolve() ((7e98547)
  • [Dev Deps] update tape ((764f3a2)
  • gitignore node_modules ((3e8a8da)

v1.1.7 - 24 January 2016

  • (typo) Change againt to against (#83)
  • Fix node_modules paths on Windows ((35b2b64)
  • 1.1.7 ((bb37f0d)
  • (typo) Change againt to against ((7b6843c)

v1.1.6 - 15 March 2015

  • Use path.dirname to walk up looking for a package.json ([#76][])
  • add back pkg assertions to pick up the root package ((4c25e45)
  • 1.1.6 ((38d451c)

v1.1.5 - 21 February 2015

v1.1.4 - 20 February 2015

  • finally seems to fully handle browser field from outside foo/bar resolution ((5b737d5)
  • flatter nodeModules function ((5ebb39a)
  • 1.1.4 ((7496374)

v1.1.3 - 17 February 2015

  • re-implemented pathfilter feature nearly passes the test ((60ff554)
  • another precedence test ((98d22e0)
  • move pathfilter test to its own file ((90826f5)
  • path logic fix that seems to handle all the cases across this package and browserify ((70146a5)
  • tape everywhere ((47bbfcd)
  • move pathfilter files into their own dir ((7f0a3f1)
  • failing precedence test ((73e958e)
  • nearly nearly working ((e7bffbf)
  • packageFilter should have been giving the pkgfile as an argument, fixed ((70b71e7)
  • this fixes the directory precedence problem ((caca9f9)
  • disable faulty basedir test except on windows for now ((3be4b79)
  • passes pathfilter test ((644f814)
  • fix node_path test, was clearly wrong for some reason ((9aa36e7)

v1.1.2 - 16 February 2015

v1.1.0 - 27 January 2015

  • Update docs re: input and cb args. (#65)
  • Update main README--change word order for clarity (#55)
  • attempts to find package.json data for deep references https://github.com/substack/node-resolve/issues/62 ((caff2ba)
  • formatting ((b8d09e3)
  • Add failing test for parent filename in error msg. ((96d38c6)
  • split before computing the pivot to prevent abcnode_modulesxyz from matching ((10380e1)
  • Utilize opts.filename when available to ID parent. ((f6edcd9)
  • Update docs re: input and cb args. ((38b5c41)
  • Update main README--change word order for clarity ((55fd2dc)
  • 1.1.0 ((65e1789)

v1.0.0 - 11 August 2014

v0.7.4 - 25 July 2014

v0.7.3 - 25 July 2014

v0.7.2 - 25 July 2014

v0.7.1 - 9 June 2014

  • [Fix] node-modules-paths: opts should be optional, and opts.paths should not be concatenated when omitted. ([#96][])
  • [Refactor] consistent spacing and quotes; run some basic linting manually. ((f63faaf)
  • [Tests] use path.join more often to normalize paths across OS’s. ((8280c53)
  • [Tests] use path methods to make tests pass on both linux and Windows. ((af9a885)
  • [Tests] make matrix more efficient ((7f0ce87)
  • [Tests] fix indentation, manual linting. ((6984dcb)
  • [Tests] [Refactor] refactor node-modules-paths and add tests. ((58b99a3)
  • [Tests] add appveyor ((caffe35)
  • [new] Add err.code = ‘MODULE_NOT_FOUND’ ((c622aef)
  • [New] add searched extensions to error messages ((1260d9d)
  • node-modules-paths: absolutize the start path ((9d6b7af)
  • [Refactor] async: remove unnecessary slashes, since path.join adds them. ((dd50615)
  • [Tests] ensure node_path test is independent of the tap module’s “main” ((ddca9ed)
  • 0.7.1 ((ae0beb7)

v0.7.0 - 17 May 2014

  • array opts.moduleDirectory tests ((0f6d088)
  • opts.moduleDirectory string tests ((a15ffd6)
  • Support more than one directory in opts.moduleDirectory. ((4183463)
  • formatting ((b89f089)
  • 0.7.0 ((c686141)
  • Remove variable leftover from 325584a685 ((12fa78c)

v0.6.3 - 16 April 2014

v0.6.2 - 21 March 2014

  • passing tests for paths ((4f56bb6)
  • faulty basedir does not always produce error properly in windows, because when the dirs are sliced down the final path has improper prefix, causing it to load relative to cwd ((110168a)
  • 0.6.2 ((2c74b4e)

v0.6.1 - 27 November 2013

v0.6.0 - 26 November 2013

  • fixes #25: resolve modules with the same name as node stdlib modules ([#25][])
  • 0.6.0 ((0d09991)

v0.5.1 - 22 September 2013

  • Separate duplicated nodeModulesPaths function ((325584a)
  • Fix prefix for windows azure ((b5ba043)
  • 0.5.1 ((281b336)

v0.5.0 - 2 September 2013

  • opts.modules => opts.moduleDirectory, documented ((c46593d)
  • modules folder name is configurable ((d65a422)
  • 0.5.0 ((b1e04d7)

v0.4.3 - 7 August 2013

  • Fix default basedir calculation ((cd7169b)
  • use getCaller() in both async and sync versions ((20f8945)
  • 0.4.3 ((ee5423e)

v0.4.2 - 3 August 2013

  • Failing test case for pkg.main pointing to a directory. ((b57a75a)
  • 0.4.2 ((6173c36)
  • Fix for failing test case where pkg.main points to directory. ((8c4078c)

v0.4.1 - 30 July 2013

  • adding tests to reproduce the problem ((ad3a477)
  • 0.4.1 ((2dcc3cb)
  • async resolve now falls back to ‘index.js’ if main field in package.json is incorrect ((62a5726)

v0.4.0 - 9 June 2013

  • Implement async support for returning package a module was resolved from. ((b7b2806)
  • 0.4.0 ((eed74a4)
  • Document package option. ((7f84028)

v0.3.1 - 29 March 2013

  • use isFIFO() instead to more narrowly target <() usage ((790cdf5)
  • check !isDirectory() instead of isFile() so that <(echo “beep”) inline bash fds work ((c396065)

v0.3.0 - 19 February 2013

  • failing translated async test with parameterized readFile on account of 3-arg form ((7033bbb)
  • factor out .sync into lib/sync.js ((ba7038a)
  • updated the docs for async ((34a958e)
  • first async test passes ((e427ca8)
  • sync parity with async tests ((d1191a9)
  • stub out async ((f4b02e3)
  • factor out core into lib/ ((a800954)
  • synchronous example ((3534992)
  • adapted async test ((c9111d2)
  • 0.3.0 ((71d6159)
  • async example ((e1a9809)
  • fix for async parameterized readFile ((2d4e80e)
  • drop 0.4, add 0.8 in travis ((8a1ba59)

v0.2.8 - 18 February 2013

  • add the domain module to .core ((2979cde)

v0.2.7 - 18 February 2013

v0.2.6 - 18 February 2013

v0.2.5 - 18 February 2013

v0.2.4 - 18 February 2013

v0.2.3 - 12 August 2012

v0.2.2 - 30 April 2012

  • fix indentation ((98fc4a5)
  • Updated to work with windows, tested on Windows 7 64-bit and OS X 10.6 ((a6646cc)
  • bump for windows fixes ((d67d595)

v0.2.1 - 12 April 2012

  • now using tap ((b625169)
  • using travis ((30cc7b3)
  • split on multiple slashes ((ebeafab)
  • fix splitting of paths to support windows as well ((5e7e24b)

v0.2.0 - 25 February 2012

  • updated the core list for 0.6.11 ((12d4c16)

v0.1.3 - 14 December 2011

v0.1.2 - 31 October 2011

  • Add opts.paths to list of node_modules directories ((7bb6ef4)
  • bump ((5e3fcc6)

v0.1.1 - 18 October 2011

  • bump for windows paths ((3fb86d0)
  • Added support for Windows-style paths. ((638951e)

v0.1.0 - 3 October 2011

  • passing mock test ((030f0d3)
  • passing mock test with package.json ((d2b19c8)
  • isFile and readFileSync as parameters ((d30c22d)
  • doc updates and a minor bump for custom isFile and readFileSync params ((b0af4c3)

v0.0.4 - 21 June 2011

  • bump for packageFilter and a note in the docs ((9fbb632)
  • new packageFilter option ((c92c883)

v0.0.3 - 20 June 2011

  • custom extensions now work ((502b6e9)
  • failing test for extensions ((ce56f56)
  • bump and a note in the docs for extensions ((2ad8287)
  • passing normalize test ((055c7ce)

v0.0.2 - 19 June 2011

  • failing biz test for going up and down the path directory ((cf4f5a5)
  • don‘t stop on the first node_modules since that’s going away in node anyhow, all tests pass again ((9049abf)

v0.0.1

  • implementation seems to work but no tests yet ((5218f01)
  • a package.json all up in this ((4084043)
  • new resolve.{core,isCore} with tests and documentation, bump to 0.0.1 ((a9ef081)
  • failing foo test ((463b108)
  • readme before any code ((7885443)
  • opts.path => opts.basedir, more descriptive I think ((78010b1)
  • failing bar test ((c40c5c1)
  • passing baz test to check package.json resolution ((410635e)
  • a path.resolve() fixed the relative loads ((dfef4b6)
  • passing the bar test after taking out the dirname() around y ((eda2247)
  • trailing comma in the package.json ((2032753)