ansible/ansible — pull request #4904 by joemaller (2013-11-14 17:05:16+00:00)
Title: update list_outdated module split to both old and new module delimiter.

The November 12 node.js release, [version 0.10.22][node changelog], changed the output format of `npm outdated`. This change breaks Ansible's npm module when invoked with `state=latest`.

**Expected:** Node module works.
**Actual:** `ValueError: need more than 1 value to unpack`

### Solution

The fix is very simple. Rather than sniffing versions, we can split the output of `npm outdated` on either whitespace or the `"@"` character. node.js modules can't have spaces in their names and in either case, Ansible's npm-module only uses the first item in npm's returned string.

### Node Changes

npm's output was modified in [commit 2f7fd62][2f7fd62], which removed the `"@"` from lines 64-65 of [lib/outdated.js](https://github.com/isaacs/npm/blob/master/lib/outdated.js).

That change to npm was finally integrated into node.js with [version 0.10.22][node changelog] on November 12, 2013. The code has been in npm since September 7, 2013.

[node changelog]: http://nodejs.org/changelog.html
[2f7fd62]: https://github.com/isaacs/npm/commit/2f7fd625#diff-3d20499d58f14c6f1edfe93d8ba8a8a2L63

### Test VM
I set up a simple Vagrant box to isolate the bug: [github.com/joemaller/ansible-npm-bug](https://github.com/joemaller/ansible-npm-bug)

*Thanks to @jctanner for helping point me in the right direction me on irc.*