npm fails to install

16,538 views
Skip to first unread message

jmi...@snap-interactive.com

unread,
Jun 7, 2013, 11:07:52 AM6/7/13
to appium-...@googlegroups.com
Getting a rather long error when trying to run sudo npm install -g appium

The log file generated is as follows:

0 info it worked if it ends with ok
1 verbose cli [ 'node', '/usr/local/bin/npm', 'install', '-g', 'appium' ]
2 info using n...@1.2.24
3 info using no...@v0.10.9
4 verbose read json /usr/local/lib/package.json
5 verbose read json /usr/local/lib/package.json
6 verbose cache add [ 'appium', null ]
7 verbose cache add name=undefined spec="appium" args=["appium",null]
8 verbose parsed url { protocol: null,
8 verbose parsed url   slashes: null,
8 verbose parsed url   auth: null,
8 verbose parsed url   host: null,
8 verbose parsed url   port: null,
8 verbose parsed url   hostname: null,
8 verbose parsed url   hash: null,
8 verbose parsed url   search: null,
8 verbose parsed url   query: null,
8 verbose parsed url   pathname: 'appium',
8 verbose parsed url   path: 'appium',
8 verbose parsed url   href: 'appium' }
9 silly lockFile d94e78b1-appium appium
10 verbose lock appium /Users/jmiele/.npm/d94e78b1-appium.lock
11 silly lockFile d94e78b1-appium appium
12 silly lockFile d94e78b1-appium appium
13 verbose addNamed [ 'appium', '' ]
14 verbose addNamed [ null, '' ]
15 silly lockFile 0e563340-appium appium@
16 verbose lock appium@ /Users/jmiele/.npm/0e563340-appium.lock
17 silly addNameRange { name: 'appium', range: '', hasData: false }
18 verbose url raw appium
19 verbose url resolving [ 'https://registry.npmjs.org/', './appium' ]
20 verbose url resolved https://registry.npmjs.org/appium
21 info trying registry request attempt 1 at 10:59:43
22 verbose etag "A0GWLMUFPDHRZMBN4IV4JU1HS"
25 silly registry.get cb [ 304,
25 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
25 silly registry.get     etag: '"A0GWLMUFPDHRZMBN4IV4JU1HS"',
25 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:44 GMT',
25 silly registry.get     'content-length': '0' } ]
26 verbose etag appium from cache
27 silly addNameRange number 2 { name: 'appium', range: '', hasData: true }
28 silly addNameRange versions [ 'appium',
28 silly addNameRange   [ '0.0.1',
28 silly addNameRange     '0.0.2',
28 silly addNameRange     '0.0.3',
28 silly addNameRange     '0.0.4',
28 silly addNameRange     '0.0.5',
28 silly addNameRange     '0.0.6',
28 silly addNameRange     '0.0.7',
28 silly addNameRange     '0.0.8',
28 silly addNameRange     '0.0.9',
28 silly addNameRange     '0.0.10',
28 silly addNameRange     '0.0.11',
28 silly addNameRange     '0.0.12',
28 silly addNameRange     '0.0.13',
28 silly addNameRange     '0.0.14',
28 silly addNameRange     '0.0.15',
28 silly addNameRange     '0.1.0',
28 silly addNameRange     '0.1.1',
28 silly addNameRange     '0.1.2',
28 silly addNameRange     '0.2.0',
28 silly addNameRange     '0.2.1',
28 silly addNameRange     '0.2.2',
28 silly addNameRange     '0.2.3',
28 silly addNameRange     '0.3.0',
28 silly addNameRange     '0.3.1',
28 silly addNameRange     '0.4.0',
28 silly addNameRange     '0.4.1',
28 silly addNameRange     '0.5.0',
28 silly addNameRange     '0.5.1',
28 silly addNameRange     '0.5.2',
28 silly addNameRange     '0.6.0',
28 silly addNameRange     '0.6.1',
28 silly addNameRange     '0.7.0',
28 silly addNameRange     '0.7.1' ] ]
29 verbose addNamed [ 'appium', '0.7.1' ]
30 verbose addNamed [ '0.7.1', '0.7.1' ]
31 silly lockFile 79747e92-appium-0-7-1 app...@0.7.1
32 verbose lock app...@0.7.1 /Users/jmiele/.npm/79747e92-appium-0-7-1.lock
33 verbose read json /Users/jmiele/.npm/appium/0.7.1/package/package.json
34 silly lockFile 79747e92-appium-0-7-1 app...@0.7.1
35 silly lockFile 79747e92-appium-0-7-1 app...@0.7.1
36 silly lockFile 0e563340-appium appium@
37 silly lockFile 0e563340-appium appium@
38 silly resolved [ { name: 'appium',
38 silly resolved     description: 'Automation for Apps.',
38 silly resolved     tags: [ 'automation', 'javascript' ],
38 silly resolved     version: '0.7.1',
38 silly resolved     author: { name: 'appium-...@googlegroups.com' },
38 silly resolved     repository: { type: 'git', url: 'https://github.com/appium/appium.git' },
38 silly resolved     bugs: { url: 'https://github.com/appium/appium/issues' },
38 silly resolved     engines: [ 'node' ],
38 silly resolved     main: './server.js',
38 silly resolved     bin:
38 silly resolved      { appium: './app/bin.js',
38 silly resolved        instruments_client: './instruments/client_bin.js' },
38 silly resolved     directories: { lib: './app', doc: './docs' },
38 silly resolved     dependencies:
38 silly resolved      { underscore: '~1.4.3',
38 silly resolved        colors: '~0.6.0-1',
38 silly resolved        express: '~3.0.6',
38 silly resolved        grunt: '~0.4.0',
38 silly resolved        'grunt-cli': '~0.1.6',
38 silly resolved        argparse: '~0.1.10',
38 silly resolved        path: '~0.4.9',
38 silly resolved        rimraf: '~2.1.1',
38 silly resolved        'uuid-js': '~0.7.4',
38 silly resolved        temp: '~0.5.0',
38 silly resolved        winston: '~0.6.2',
38 silly resolved        request: '~2.12.0',
38 silly resolved        'bplist-parser': '~0.0.4',
38 silly resolved        bufferpack: '0.0.6',
38 silly resolved        'bplist-creator': '~0.0.2',
38 silly resolved        'node-uuid': '~1.4.0',
38 silly resolved        'underscore.string': '~2.3.1',
38 silly resolved        glob: '~3.1.20',
38 silly resolved        unzip: '~0.1.1',
38 silly resolved        ncp: '~0.4.2',
38 silly resolved        swig: '~0.13.5',
38 silly resolved        async: '~0.2.6',
38 silly resolved        mkdirp: '~0.3.5',
38 silly resolved        xml2js: '~0.2.6',
38 silly resolved        difflib: '~0.2.4',
38 silly resolved        prompt: '~0.2.9',
38 silly resolved        'binary-cookies': '~0.1.1',
38 silly resolved        namp: '~0.2.25',
38 silly resolved        'node-idevice': '~0.1.2',
38 silly resolved        'win-spawn': '~1.1.1',
38 silly resolved        'adm-zip': '~0.4.3',
38 silly resolved        ws: '0.4.25',
38 silly resolved        'socket.io': '~0.9.14' },
38 silly resolved     scripts: { test: 'grunt travis', start: 'node server.js' },
38 silly resolved     devDependencies:
38 silly resolved      { mocha: '~1.8.1',
38 silly resolved        should: '~1.2.1',
38 silly resolved        'underscore-cli': '~0.2.17',
38 silly resolved        wd: '~0.0.32',
38 silly resolved        assert: '~0.4.9',
38 silly resolved        'grunt-mocha-test': '~0.2.0',
38 silly resolved        'grunt-contrib-jshint': '~0.1.1',
38 silly resolved        saucelabs: '~0.0.7',
38 silly resolved        'socket.io-client': '~0.9.11',
38 silly resolved        socks: '~0.0.1' },
38 silly resolved     contributors:
38 silly resolved      [ [Object],
38 silly resolved        [Object],
38 silly resolved        [Object],
38 silly resolved        [Object],
38 silly resolved        [Object],
38 silly resolved        [Object],
38 silly resolved        [Object],
38 silly resolved        [Object],
38 silly resolved        [Object],
38 silly resolved        [Object],
38 silly resolved        [Object],
38 silly resolved        [Object],
38 silly resolved        [Object],
38 silly resolved        [Object],
38 silly resolved        [Object],
38 silly resolved        [Object],
38 silly resolved        [Object],
38 silly resolved        [Object],
38 silly resolved        [Object] ],
38 silly resolved     readme: 'Appium\n=========\n\n[![Build Status](https://api.travis-ci.org/appium/appium.png?branch=master)](https://travis-ci.org/appium/appium)\n\nAppium is an open source, cross-platform test automation tool for native and\nhybrid mobile apps. It supports iOS, Android, and FirefoxOS platforms. Appium\ndrives Apple\'s UIAutomation library and Android\'s UiAutomator framework (for\nnewer platforms) using Selenium\'s WebDriver JSON wire protocol. Appium\'s iOS\nsupport is based on [Dan Cuellar\'s](http://github.com/penguinho) work on iOS\nAuto. Appium also comes bundled with\n[Selendroid](http://github.com/DominikDary/selendroid) for testing older\nAndroid platforms.\n\nTesting with Appium has two big benefits:\n\n1.  You don\'t have to recompile your app or modify it in any way, due\n    to use of standard automation APIs on all platforms.\n\n2.  You can write tests with your favorite dev tools using Java,\n    Objective-C, JavaScript, PHP, Python, Ruby, C#, Clojure, or Perl with the\n    Selenium WebDriver API and language-specific client libraries. You can use\n    any testing framework. If you use Apple\'s UIAutomation library without Appium\n    you can only write tests using JavaScript and you can only run tests\n    through the Instruments application. Similarly, with Google\'s UiAutomator\n    you can only write tests in Java. Appium opens up the possibility of true\n    cross-platform native mobile automation. Finally!\n\nRequirements\n------------\n\nGeneral:\n\n* Mac OS X 10.7 or higher, 10.8 recommended (Linux OK for Android-only; support for Windows is in "beta")\n* Node and npm (brew install node) (Node must be &gt;= v0.8)\n\nFor iOS automation:\n\n* XCode\n* Apple Developer Tools (iPhone simulator SDK, command line tools)\n\nFor Android automation:\n\n* Android SDK API &gt;= 17\n\nUser Quick Start\n------------\nOption 1: Use Appium.app:\n\n* Download the Appium.app [dmg](https://bitbucket.org/appium/appium.app/downloads/appium.dmg)\n* Run Appium.app then run a test using your favorite language / framework\n\nOption 2: Run Appium from the command line using Node:\n\n    mkdir appium-test && cd appium-test\n    npm install -g appium  # might have to do this with sudo\n    npm install wd\n    curl -O https://raw.github.com/appium/appium/master/sample-code/examples/node/simplest.js\n    appium &\n    node simplest.js\n\nSee the next section for links on how to make sure your system is set up to run Appium tests.\n\nExample Tests: [Node.js](https://github.com/appium/appium/tree/master/sample-code/examples/node) | [Python](https://github.com/appium/appium/tree/master/sample-code/examples/python) | [PHP](https://github.com/appium/appium/tree/master/sample-code/examples/php) | [Ruby](https://github.com/appium/appium/tree/master/sample-code/examples/ruby) | [Java](https://github.com/appium/appium/tree/master/sample-code/examples/java)\n\nTroubleshooting\n---------------\n\nWe put together a [troubleshooting guide](https://github.com/appium/appium/blob/master/docs/troubleshooting.md). Please have a look here first if you run into any problems. It contains instructions for checking a lot of common errors and how to get in touch with the community if you\'re stumped.\n\nWrite Tests for Your Apps with Appium\n-------------------\nWe support a sub-set of the [Selenium WebDriver JSON Wire Protocol](https://github.com/appium/appium/wiki/JSON-Wire-Protocol:-Supported-Methods).\n\nYou find elements by using a sub-set of WebDriver\'s element-finding strategies. See [finding elements](https://github.com/appium/appium/blob/master/docs/finding-elements.md) for detailed information.\n\nWe also have several extensions to the JSON Wire Protocol for [automating\nmobile gestures](https://github.com/appium/appium/blob/master/docs/gestures.md)\nlike tap, flick, and swipe.\n\nYou can also automate web views in hybrid apps! See the [hybrid app\nguide](https://github.com/appium/appium/blob/master/docs/hybrid.md)\n\nWe support Android and iOS platforms side-by-side:\n\n* [Set up your system for Appium iOS support](https://github.com/appium/appium/blob/master/docs/running-on-osx.md#ios)\n* [Set up your system for Appium Android support](https://github.com/appium/appium/blob/master/docs/running-on-osx.md#android)\n* [Set up your system for Android support on linux](https://github.com/appium/appium/blob/master/docs/running-on-linux.md#android)\n* [Prepare your app for an iOS test](https://github.com/appium/appium/blob/master/docs/running-tests.md#prep-ios)\n* [Prepare your app for an Android test](https://github.com/appium/appium/blob/master/docs/running-tests.md#preparing-your-app-for-test-android)\n* [Run an iOS test](https://github.com/appium/appium/blob/master/docs/running-tests.md#run-ios)\n* [Run an Android test](https://github.com/appium/appium/blob/master/docs/running-tests.md#android-ios)\n* [Getting started with Appium and Ruby on OS X](https://github.com/appium/ruby_console/blob/master/osx.md)\n\nFor the full list of Appium doc pages, visit [this directory](https://github.com/appium/appium/blob/master/docs/).\n\n- - -\n\nHacking with Appium\n------------\nInstall [node.js](http://nodejs.org/) (includes npm, the node.js package manager).\nThe recommended way to install node is `brew install node`. Node [installed by\nbrew](http://mxcl.github.io/homebrew/) will not require sudo for npm commands.\n\nFork the Appium repo ( [https://github.com/appium/appium](https://github.com/appium/appium) ), then clone your fork.\n\nFrom your local repo\'s command prompt, install these packages using the\nfollowing commands (if you didn\'t install node using homebrew, you might have\nto run npm with sudo privileges):\n\n    npm install -g mocha\n    npm install -g grunt-cli\n    ./reset.sh --dev\n\nThe first two commands install test and build tools (sudo may not be necessary\nif you installed node.js via Homebrew). The third command installs all app\ndependencies, builds supporting binaries and test apps. `reset.sh` is also the\nrecommended command to run after pulling changes from master.\n\nHacking with Appium (iOS)\n--------------\n\n(First, have a look at [setting up your system for Appium iOS support](docs/running-on-osx.md#ios).)\n\nTo avoid a security dialog that may appear when launching your iOS apps you\'ll\nhave to modify your `/etc/authorization` file in one of two ways:\n\n1.  Manually modify the element following &lt;allow-root&gt; under\n    &lt;key&gt;system.privilege.taskport&lt;/key&gt; in your\n    `/etc/authorization` file to &lt;true/&gt;.\n\n2.  Run the following grunt command which automatically modifies your\n    `/etc/authorization` file for you:\n\n        sudo grunt authorize\n\nAt this point, you can simply run:\n\n    ./reset.sh --ios --dev\n\nHacking with Appium (Android)\n----------------\n\n(First, have a look at setting up your system for Appium Android support ([linux](docs/running-on-linux.md), [osx](docs/running-on-osx.md#android) or [windows](docs/running-on-windows.md)).)\n\nNow, you can simply run:\n\n    ./reset.sh --android --dev\n\nIf you want to use [Selendroid](http://github.com/DominikDary/selendroid) for older apps:\n\n    ./reset.sh --selendroid --dev\n\nMake sure you have one and only one Android emulator or device running, e.g.\nby running this command in another process (assuming the `emulator` command is\non your path):\n\n    emulator -avd <MyAvdName>\n\nMaking sure you\'re up to date\n-----------\nSince we use dev versions of some packages, it often becomes necessary to\ninstall new NPM packages or update various things. There\'s a handy shell script\nto do all this for all platforms (the `--dev` flag gets dev npm dependencies\nand test applications used in the Appium test suite):\n\n    ./reset.sh --dev\n\nOr you can run reset for individual platforms only:\n\n    ./reset.sh --ios --dev\n    ./reset.sh --android --dev\n    ./reset.sh --selendroid --dev\n\nRunning Tests\n-----------\nOnce, your system is set up and your code is up to date, you can run various\nkinds of tests:\n\n    grunt android\n    grunt ios\n    grunt selendroid\n    grunt firefoxos\n    grunt unit\n\nOr you can run all tests:\n\n    grunt test\n\nBefore committing code, please run grunt to execute some basic tests and check\nyour changes against code quality standards:\n\n    grunt\n    > Running "lint:all" (lint) task\n    > Lint free.\n    > Done, without errors.\n\nDig in deeper to Appium dev\n-----------\n### Advanced grunt\nIf you want to run the Appium server and have it listen indefinitely, you can\nexecute one of the following commands to start an Appium server with or without a specified app:\n\n    grunt appium           // launch Appium server without app\n    grunt appium:TestApp   // launch Appium server with the TestApp\n    grunt appium:UICatalog // launch Appium server with the UICatalog app\n\nLike the power of automating dev tasks? Check out the [Appium grunt\ntasks](https://github.com/appium/appium/blob/master/docs/grunt.md) available to\nhelp with building apps, installing apps, generating docs, etc...\n\n### Running individual tests\n\nIf you have an Appium server listening, you can run individual test files using\nMocha, for example:\n\n    mocha -t 60000 -R spec test/functional/testapp/simple.js\n\n### Advanced Appium server flags\n\nDo you like getting close to the metal? Or are you trying to launch an Appium\nserver from a script with a custom app? If so you can start Appium without\ngrunt from the command line with an app or without an app, among other things:\n\n    node server.js // launch Appium server without app\n    node server.js --app /absolute/path/to/app  // launch Appium server with app\n    node server.js --launch // pre-launch the app when appium loads\n    node server.js --log /my/appium.log // log to file instead of stdout\n    node server.js --quiet // don\'t log verbose output\n\n(See\n[the server documentation](https://github.com/appium/appium/blob/master/docs/server-args.md) for\nall CLI arguments.)\n\n\nUsing with a [Bitbeambot](http://bitbeam.org) and other robots\n-----------\n\nCheck out the [Appium Robots](https://github.com/appium/robots) project\n\nContributing\n------------\nFork the project, make a change, and send a pull request!\n\nOh and please have a look at our [Style Guide](https://github.com/appium/appium/blob/master/docs/style-guide.md) before getting to work.\n\nProject Credits & Inspiration\n------------\nThe open source community has made this project possible, please add missing projects to the list.\n\n[All the OSS code contributing to Appium](https://github.com/appium/appium/blob/master/docs/credits.md)\n\nMailing List\n-----------\nAnnouncements and debates often take place on the [Discussion Group](https://groups.google.com/d/forum/appium-discuss), be sure to sign up!\n',
38 silly resolved     readmeFilename: 'README.md',
38 silly resolved     _id: 'app...@0.7.1',
38 silly resolved     _from: 'appium@' } ]
39 info install app...@0.7.1 into /usr/local/lib
40 info installOne app...@0.7.1
41 verbose from cache /Users/jmiele/.npm/appium/0.7.1/package/package.json
42 info /usr/local/lib/node_modules/appium unbuild
43 verbose read json /usr/local/lib/node_modules/appium/package.json
44 verbose tar unpack /Users/jmiele/.npm/appium/0.7.1/package.tgz
45 silly lockFile 71f07e56-sr-local-lib-node-modules-appium /usr/local/lib/node_modules/appium
46 verbose lock /usr/local/lib/node_modules/appium /Users/jmiele/.npm/71f07e56-sr-local-lib-node-modules-appium.lock
47 silly lockFile bbffd323-ele-npm-appium-0-7-1-package-tgz /Users/jmiele/.npm/appium/0.7.1/package.tgz
48 verbose lock /Users/jmiele/.npm/appium/0.7.1/package.tgz /Users/jmiele/.npm/bbffd323-ele-npm-appium-0-7-1-package-tgz.lock
49 silly gunzTarPerm modes [ '755', '644' ]
50 silly gunzTarPerm extractEntry package.json
51 silly gunzTarPerm extractEntry .npmignore
52 silly gunzTarPerm extractEntry README.md
53 silly gunzTarPerm extractEntry LICENSE
54 silly gunzTarPerm extractEntry server.js
55 silly gunzTarPerm extractEntry Gruntfile.js
56 silly gunzTarPerm extractEntry grid_register.js
57 silly gunzTarPerm extractEntry grunt-helpers.js
58 silly gunzTarPerm extractEntry logger.js
59 silly gunzTarPerm extractEntry middleware.js
60 silly gunzTarPerm extractEntry .gitmodules
61 silly gunzTarPerm extractEntry build/android_bootstrap/AppiumBootstrap.jar
62 silly gunzTarPerm extractEntry build/iwd/InstrumentsShim.dylib
63 silly gunzTarPerm extractEntry build/iwd/InstrumentsShim.dylib.dSYM/Contents/Info.plist
64 silly gunzTarPerm extractEntry build/iwd/InstrumentsShim.dylib.dSYM/Contents/Resources/DWARF/InstrumentsShim.dylib
65 silly gunzTarPerm extractEntry build/iwd/ScriptAgentShim.dylib
66 silly gunzTarPerm extractEntry build/iwd/ScriptAgentShim.dylib.dSYM/Contents/Info.plist
67 silly gunzTarPerm extractEntry build/iwd/ScriptAgentShim.dylib.dSYM/Contents/Resources/DWARF/ScriptAgentShim.dylib
68 silly gunzTarPerm extractEntry build/iwd/SimShim.dylib
69 silly gunzTarPerm extractEntry build/iwd/TestApp.app/Defaul...@2x.png
70 silly gunzTarPerm extractEntry build/iwd/TestApp.app/Default.png
71 silly gunzTarPerm extractEntry build/iwd/TestApp.app/Def...@2x.png
72 silly gunzTarPerm extractEntry build/iwd/TestApp.app/Info.plist
73 silly gunzTarPerm extractEntry build/iwd/TestApp.app/PkgInfo
74 silly gunzTarPerm extractEntry build/iwd/TestApp.app/TestApp
75 silly gunzTarPerm extractEntry build/iwd/TestApp.app/en.lproj/InfoPlist.strings
76 silly gunzTarPerm extractEntry build/iwd/TestApp.app.dSYM/Contents/Info.plist
77 silly gunzTarPerm extractEntry build/iwd/TestApp.app.dSYM/Contents/Resources/DWARF/TestApp
78 silly gunzTarPerm extractEntry build/iwd/instruments
79 silly gunzTarPerm extractEntry build/selendroid/AndroidManifest.xml
80 silly gunzTarPerm extractEntry build/selendroid/selendroid.apk
81 silly gunzTarPerm extractEntry docs/mobile_methods.md
82 silly gunzTarPerm extractEntry docs/android-hax-emulator.md
83 silly gunzTarPerm extractEntry docs/finding-elements.md
84 silly gunzTarPerm extractEntry docs/gestures.md
85 silly gunzTarPerm extractEntry docs/grid.md
86 silly gunzTarPerm extractEntry docs/grunt.md
87 silly gunzTarPerm extractEntry docs/hybrid.md
88 silly gunzTarPerm extractEntry docs/ios-deploy.md
89 silly gunzTarPerm extractEntry docs/credits.md
90 silly gunzTarPerm extractEntry docs/real-devices.md
91 silly gunzTarPerm extractEntry docs/running-on-linux.md
92 silly gunzTarPerm extractEntry docs/running-on-osx.md
93 silly gunzTarPerm extractEntry docs/running-on-windows.md
94 silly gunzTarPerm extractEntry docs/running-tests.md
95 silly gunzTarPerm extractEntry docs/server-args.md
96 silly gunzTarPerm extractEntry docs/style-guide.md
97 silly gunzTarPerm extractEntry docs/troubleshooting.md
98 silly gunzTarPerm extractEntry .appiumconfig
99 silly gunzTarPerm extractEntry AUTHORS
100 silly gunzTarPerm extractEntry instruments/client.js
101 silly gunzTarPerm extractEntry instruments/client_bin.js
102 silly gunzTarPerm extractEntry instruments/example.js
103 silly gunzTarPerm extractEntry instruments/instruments.js
104 silly gunzTarPerm extractEntry CHANGELOG.txt
105 silly gunzTarPerm extractEntry RELEASE.pdf
106 silly gunzTarPerm extractEntry android/adb.js
107 silly gunzTarPerm extractEntry android/bootstrap/README.md
108 silly gunzTarPerm extractEntry android/bootstrap/.classpath
109 silly gunzTarPerm extractEntry android/bootstrap/.idea/misc.xml
110 silly gunzTarPerm extractEntry android/bootstrap/.idea/.name
111 silly gunzTarPerm extractEntry android/bootstrap/.idea/copyright/profiles_settings.xml
112 silly gunzTarPerm extractEntry android/bootstrap/.idea/encodings.xml
113 silly gunzTarPerm extractEntry android/bootstrap/.idea/libraries/AppiumBootstrap.xml
114 silly gunzTarPerm extractEntry android/bootstrap/.idea/compiler.xml
115 silly gunzTarPerm extractEntry android/bootstrap/.idea/modules.xml
116 silly gunzTarPerm extractEntry android/bootstrap/.idea/scopes/scope_settings.xml
117 silly gunzTarPerm extractEntry android/bootstrap/.idea/uiDesigner.xml
118 silly gunzTarPerm extractEntry android/bootstrap/.idea/vcs.xml
119 silly gunzTarPerm extractEntry android/bootstrap/.idea/workspace.xml
120 silly gunzTarPerm extractEntry android/bootstrap/.project
121 silly gunzTarPerm extractEntry android/bootstrap/bootstrap.iml
122 silly gunzTarPerm extractEntry android/bootstrap/build.xml
123 silly gunzTarPerm extractEntry android/bootstrap/local.properties
124 silly gunzTarPerm extractEntry android/bootstrap/pom.xml
125 silly gunzTarPerm extractEntry android/bootstrap/project.properties
126 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/Dynamic.java
127 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/AndroidCommand.java
128 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/AndroidCommandResult.java
129 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/AndroidCommandType.java
130 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/AndroidElement.java
131 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/AndroidElementClassMap.java
132 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/AndroidElementsHash.java
133 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/Bootstrap.java
134 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/CommandHandler.java
135 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/AndroidCommandExecutor.java
136 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/Logger.java
137 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/OrientationEnum.java
138 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/SocketServer.java
139 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/WDStatus.java
140 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/exceptions/AndroidCommandException.java
141 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/exceptions/CommandTypeException.java
142 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/exceptions/ElementNotFoundException.java
143 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/exceptions/ElementNotInHashException.java
144 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/exceptions/InvalidCoordinatesException.java
145 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/exceptions/InvalidStrategyException.java
146 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/exceptions/NoAttributeFoundException.java
147 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/exceptions/SocketServerException.java
148 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/exceptions/UnallowedTagNameException.java
149 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/handler/GetSize.java
150 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/handler/Clear.java
151 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/handler/Find.java
152 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/handler/Flick.java
153 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/handler/GetAttribute.java
154 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/handler/GetDeviceSize.java
155 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/handler/GetLocation.java
156 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/handler/GetName.java
157 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/handler/Click.java
158 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/handler/GetText.java
159 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/handler/Orientation.java
160 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/handler/SetAttribute.java
161 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/handler/SetText.java
162 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/handler/Swipe.java
163 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/handler/WaitForIdle.java
164 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/handler/Wake.java
165 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/selector/Strategy.java
166 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/utils/Point.java
167 silly gunzTarPerm extractEntry android/bootstrap/src/io/appium/android/bootstrap/utils/TheWatchers.java
168 silly gunzTarPerm extractEntry reset.bat
169 silly gunzTarPerm extractEntry app/selendroid.js
170 silly gunzTarPerm extractEntry app/controller.js
171 silly gunzTarPerm extractEntry app/device.js
172 silly gunzTarPerm extractEntry app/errors.js
173 silly gunzTarPerm extractEntry app/bin.js
174 silly gunzTarPerm extractEntry app/helpers.js
175 silly gunzTarPerm extractEntry app/android.js
176 silly gunzTarPerm extractEntry app/ios.js
177 silly gunzTarPerm extractEntry app/parser.js
178 silly gunzTarPerm extractEntry app/routing.js
179 silly gunzTarPerm extractEntry app/appium.js
180 silly gunzTarPerm extractEntry app/firefoxos.js
181 silly gunzTarPerm extractEntry app/hybrid/firefoxos/firefoxos-atoms.js
182 silly gunzTarPerm extractEntry app/hybrid/firefoxos/atoms/gaia_apps.js
183 silly gunzTarPerm extractEntry app/hybrid/ios/remote-debugger.js
184 silly gunzTarPerm extractEntry app/hybrid/ios/remote-messages.js
185 silly gunzTarPerm extractEntry app/hybrid/ios/remote-test.js
186 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms.js
187 silly gunzTarPerm extractEntry app/hybrid/ios/webkit-remote-debugger.js
188 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/active_element.js
189 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_local_storage_keys.js
190 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_local_storage_size.js
191 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_location.js
192 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_location_in_view.js
193 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_local_storage_item.js
194 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_session_storage_keys.js
195 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_session_storage_size.js
196 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_size.js
197 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_text.js
198 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_top_left_coordinates.js
199 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_in_view_location.js
200 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_value_of_css_property.js
201 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_frame_window.js
202 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_window_position.js
203 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_element_from_cache.js
204 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_window_size.js
205 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_current_position.js
206 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/is_displayed.js
207 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_attribute_value.js
208 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/is_enabled.js
209 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_attribute.js
210 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/is_online.js
211 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_appcache_status.js
212 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/is_selected.js
213 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/frame_by_index.js
214 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/tap.js
215 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/frame_by_id_or_name.js
216 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/move_mouse.js
217 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/focus_on_element.js
218 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/pinch.js
219 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/find_elements.js
220 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/remove_local_storage_item.js
221 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/find_element.js
222 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/remove_session_storage_item.js
223 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/execute_sql.js
224 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/right_click.js
225 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/execute_script.js
226 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/rotate.js
227 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/execute_async_script.js
228 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/scroll_into_view.js
229 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/drag.js
230 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/scroll_mouse.js
231 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/double_click.js
232 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/set_local_storage_item.js
233 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/deps.js
234 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/set_session_storage_item.js
235 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/default_content.js
236 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/set_window_position.js
237 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/click.js
238 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/set_window_size.js
239 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/clear_session_storage.js
240 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/submit.js
241 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/clear_local_storage.js
242 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/swipe.js
243 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/clear.js
244 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/type.js
245 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/get_session_storage_item.js
246 silly gunzTarPerm extractEntry app/hybrid/ios/webdriver-atoms/lastupdate
247 silly gunzTarPerm extractEntry app/android/AndroidManifest.xml.src
248 silly gunzTarPerm extractEntry app/android/Clean.apk
249 silly gunzTarPerm extractEntry app/android/ScreenShooter.jar
250 silly gunzTarPerm extractEntry app/android/dump2json.jar
251 silly gunzTarPerm extractEntry app/android/sign.jar
252 silly gunzTarPerm extractEntry app/android/strings_from_apk.jar
253 silly gunzTarPerm extractEntry app/android/verify.jar
254 silly gunzTarPerm extractEntry app/static/favicon.ico
255 silly gunzTarPerm extractEntry app/static/js/jquery.min.js
256 silly gunzTarPerm extractEntry app/static/test/frameset.html
257 silly gunzTarPerm extractEntry app/static/test/guinea-pig2.html
258 silly gunzTarPerm extractEntry app/static/test/iframes.html
259 silly gunzTarPerm extractEntry app/static/test/subframe1.html
260 silly gunzTarPerm extractEntry app/static/test/subframe2.html
261 silly gunzTarPerm extractEntry app/static/test/subframe3.html
262 silly gunzTarPerm extractEntry app/static/test.jpeg
263 silly gunzTarPerm extractEntry app/templates/guinea-pig.html
264 silly gunzTarPerm extractEntry app/test/unit/queue.js
265 silly gunzTarPerm extractEntry app/test/unit/routing.js
266 silly gunzTarPerm extractEntry app/test/unit/xpath.js
267 silly gunzTarPerm extractEntry app/uiauto/bootstrap.js
268 silly gunzTarPerm extractEntry app/uiauto/Automation.tracetemplate
269 silly gunzTarPerm extractEntry app/uiauto/Rotate.applescript
270 silly gunzTarPerm extractEntry app/uiauto/appium/app.js
271 silly gunzTarPerm extractEntry app/uiauto/appium/base.js
272 silly gunzTarPerm extractEntry app/uiauto/appium/binding.js
273 silly gunzTarPerm extractEntry app/uiauto/appium/element.js
274 silly gunzTarPerm extractEntry app/uiauto/appium/utility.js
275 silly gunzTarPerm extractEntry app/uiauto/appium/xpath.js
276 silly gunzTarPerm extractEntry app/uiauto/lib/console.js
277 silly gunzTarPerm extractEntry app/uiauto/lib/instruments_client.js
278 silly gunzTarPerm extractEntry app/uiauto/lib/mechanic.js
279 silly gunzTarPerm extractEntry app/uiauto/lib/status.js
280 verbose read json /usr/local/lib/node_modules/appium/package.json
281 silly lockFile 71f07e56-sr-local-lib-node-modules-appium /usr/local/lib/node_modules/appium
282 silly lockFile 71f07e56-sr-local-lib-node-modules-appium /usr/local/lib/node_modules/appium
283 silly lockFile bbffd323-ele-npm-appium-0-7-1-package-tgz /Users/jmiele/.npm/appium/0.7.1/package.tgz
284 silly lockFile bbffd323-ele-npm-appium-0-7-1-package-tgz /Users/jmiele/.npm/appium/0.7.1/package.tgz
285 info preinstall app...@0.7.1
286 verbose from cache /usr/local/lib/node_modules/appium/package.json
287 verbose readDependencies using package.json deps
288 verbose from cache /usr/local/lib/node_modules/appium/package.json
289 verbose readDependencies using package.json deps
290 verbose cache add [ 'express@~3.0.6', null ]
291 verbose cache add name=undefined spec="express@~3.0.6" args=["express@~3.0.6",null]
292 verbose parsed url { protocol: null,
292 verbose parsed url   slashes: null,
292 verbose parsed url   auth: null,
292 verbose parsed url   host: null,
292 verbose parsed url   port: null,
292 verbose parsed url   hostname: null,
292 verbose parsed url   hash: null,
292 verbose parsed url   search: null,
292 verbose parsed url   query: null,
292 verbose parsed url   pathname: 'express@~3.0.6',
292 verbose parsed url   path: 'express@~3.0.6',
292 verbose parsed url   href: 'express@~3.0.6' }
293 verbose cache add name="express" spec="~3.0.6" args=["express","~3.0.6"]
294 verbose parsed url { protocol: null,
294 verbose parsed url   slashes: null,
294 verbose parsed url   auth: null,
294 verbose parsed url   host: null,
294 verbose parsed url   port: null,
294 verbose parsed url   hostname: null,
294 verbose parsed url   hash: null,
294 verbose parsed url   search: null,
294 verbose parsed url   query: null,
294 verbose parsed url   pathname: '~3.0.6',
294 verbose parsed url   path: '~3.0.6',
294 verbose parsed url   href: '~3.0.6' }
295 verbose addNamed [ 'express', '~3.0.6' ]
296 verbose addNamed [ null, '>=3.0.6- <3.1.0-' ]
297 silly lockFile b14698df-express-3-0-6 express@~3.0.6
298 verbose lock express@~3.0.6 /Users/jmiele/.npm/b14698df-express-3-0-6.lock
299 verbose cache add [ 'grunt@~0.4.0', null ]
300 verbose cache add name=undefined spec="grunt@~0.4.0" args=["grunt@~0.4.0",null]
301 verbose parsed url { protocol: null,
301 verbose parsed url   slashes: null,
301 verbose parsed url   auth: null,
301 verbose parsed url   host: null,
301 verbose parsed url   port: null,
301 verbose parsed url   hostname: null,
301 verbose parsed url   hash: null,
301 verbose parsed url   search: null,
301 verbose parsed url   query: null,
301 verbose parsed url   pathname: 'grunt@~0.4.0',
301 verbose parsed url   path: 'grunt@~0.4.0',
301 verbose parsed url   href: 'grunt@~0.4.0' }
302 verbose cache add name="grunt" spec="~0.4.0" args=["grunt","~0.4.0"]
303 verbose parsed url { protocol: null,
303 verbose parsed url   slashes: null,
303 verbose parsed url   auth: null,
303 verbose parsed url   host: null,
303 verbose parsed url   port: null,
303 verbose parsed url   hostname: null,
303 verbose parsed url   hash: null,
303 verbose parsed url   search: null,
303 verbose parsed url   query: null,
303 verbose parsed url   pathname: '~0.4.0',
303 verbose parsed url   path: '~0.4.0',
303 verbose parsed url   href: '~0.4.0' }
304 verbose addNamed [ 'grunt', '~0.4.0' ]
305 verbose addNamed [ null, '>=0.4.0- <0.5.0-' ]
306 silly lockFile cba964e3-grunt-0-4-0 grunt@~0.4.0
307 verbose lock grunt@~0.4.0 /Users/jmiele/.npm/cba964e3-grunt-0-4-0.lock
308 silly addNameRange { name: 'express', range: '>=3.0.6- <3.1.0-', hasData: false }
309 verbose cache add [ 'grunt-cli@~0.1.6', null ]
310 verbose cache add name=undefined spec="grunt-cli@~0.1.6" args=["grunt-cli@~0.1.6",null]
311 verbose parsed url { protocol: null,
311 verbose parsed url   slashes: null,
311 verbose parsed url   auth: null,
311 verbose parsed url   host: null,
311 verbose parsed url   port: null,
311 verbose parsed url   hostname: null,
311 verbose parsed url   hash: null,
311 verbose parsed url   search: null,
311 verbose parsed url   query: null,
311 verbose parsed url   pathname: 'grunt-cli@~0.1.6',
311 verbose parsed url   path: 'grunt-cli@~0.1.6',
311 verbose parsed url   href: 'grunt-cli@~0.1.6' }
312 verbose cache add name="grunt-cli" spec="~0.1.6" args=["grunt-cli","~0.1.6"]
313 verbose parsed url { protocol: null,
313 verbose parsed url   slashes: null,
313 verbose parsed url   auth: null,
313 verbose parsed url   host: null,
313 verbose parsed url   port: null,
313 verbose parsed url   hostname: null,
313 verbose parsed url   hash: null,
313 verbose parsed url   search: null,
313 verbose parsed url   query: null,
313 verbose parsed url   pathname: '~0.1.6',
313 verbose parsed url   path: '~0.1.6',
313 verbose parsed url   href: '~0.1.6' }
314 verbose addNamed [ 'grunt-cli', '~0.1.6' ]
315 verbose addNamed [ null, '>=0.1.6- <0.2.0-' ]
316 silly lockFile 20815348-grunt-cli-0-1-6 grunt-cli@~0.1.6
317 verbose lock grunt-cli@~0.1.6 /Users/jmiele/.npm/20815348-grunt-cli-0-1-6.lock
318 silly addNameRange { name: 'grunt', range: '>=0.4.0- <0.5.0-', hasData: false }
319 silly addNameRange { name: 'grunt-cli', range: '>=0.1.6- <0.2.0-', hasData: false }
320 verbose cache add [ 'argparse@~0.1.10', null ]
321 verbose cache add name=undefined spec="argparse@~0.1.10" args=["argparse@~0.1.10",null]
322 verbose parsed url { protocol: null,
322 verbose parsed url   slashes: null,
322 verbose parsed url   auth: null,
322 verbose parsed url   host: null,
322 verbose parsed url   port: null,
322 verbose parsed url   hostname: null,
322 verbose parsed url   hash: null,
322 verbose parsed url   search: null,
322 verbose parsed url   query: null,
322 verbose parsed url   pathname: 'argparse@~0.1.10',
322 verbose parsed url   path: 'argparse@~0.1.10',
322 verbose parsed url   href: 'argparse@~0.1.10' }
323 verbose cache add name="argparse" spec="~0.1.10" args=["argparse","~0.1.10"]
324 verbose parsed url { protocol: null,
324 verbose parsed url   slashes: null,
324 verbose parsed url   auth: null,
324 verbose parsed url   host: null,
324 verbose parsed url   port: null,
324 verbose parsed url   hostname: null,
324 verbose parsed url   hash: null,
324 verbose parsed url   search: null,
324 verbose parsed url   query: null,
324 verbose parsed url   pathname: '~0.1.10',
324 verbose parsed url   path: '~0.1.10',
324 verbose parsed url   href: '~0.1.10' }
325 verbose addNamed [ 'argparse', '~0.1.10' ]
326 verbose addNamed [ null, '>=0.1.10- <0.2.0-' ]
327 silly lockFile dd272505-argparse-0-1-10 argparse@~0.1.10
328 verbose lock argparse@~0.1.10 /Users/jmiele/.npm/dd272505-argparse-0-1-10.lock
329 verbose cache add [ 'path@~0.4.9', null ]
330 verbose cache add name=undefined spec="path@~0.4.9" args=["path@~0.4.9",null]
331 verbose parsed url { protocol: null,
331 verbose parsed url   slashes: null,
331 verbose parsed url   auth: null,
331 verbose parsed url   host: null,
331 verbose parsed url   port: null,
331 verbose parsed url   hostname: null,
331 verbose parsed url   hash: null,
331 verbose parsed url   search: null,
331 verbose parsed url   query: null,
331 verbose parsed url   pathname: 'path@~0.4.9',
331 verbose parsed url   path: 'path@~0.4.9',
331 verbose parsed url   href: 'path@~0.4.9' }
332 verbose cache add name="path" spec="~0.4.9" args=["path","~0.4.9"]
333 verbose parsed url { protocol: null,
333 verbose parsed url   slashes: null,
333 verbose parsed url   auth: null,
333 verbose parsed url   host: null,
333 verbose parsed url   port: null,
333 verbose parsed url   hostname: null,
333 verbose parsed url   hash: null,
333 verbose parsed url   search: null,
333 verbose parsed url   query: null,
333 verbose parsed url   pathname: '~0.4.9',
333 verbose parsed url   path: '~0.4.9',
333 verbose parsed url   href: '~0.4.9' }
334 verbose addNamed [ 'path', '~0.4.9' ]
335 verbose addNamed [ null, '>=0.4.9- <0.5.0-' ]
336 silly lockFile dcf59ca8-path-0-4-9 path@~0.4.9
337 verbose lock path@~0.4.9 /Users/jmiele/.npm/dcf59ca8-path-0-4-9.lock
338 silly addNameRange { name: 'argparse', range: '>=0.1.10- <0.2.0-', hasData: false }
339 silly addNameRange { name: 'path', range: '>=0.4.9- <0.5.0-', hasData: false }
340 verbose cache add [ 'rimraf@~2.1.1', null ]
341 verbose cache add name=undefined spec="rimraf@~2.1.1" args=["rimraf@~2.1.1",null]
342 verbose parsed url { protocol: null,
342 verbose parsed url   slashes: null,
342 verbose parsed url   auth: null,
342 verbose parsed url   host: null,
342 verbose parsed url   port: null,
342 verbose parsed url   hostname: null,
342 verbose parsed url   hash: null,
342 verbose parsed url   search: null,
342 verbose parsed url   query: null,
342 verbose parsed url   pathname: 'rimraf@~2.1.1',
342 verbose parsed url   path: 'rimraf@~2.1.1',
342 verbose parsed url   href: 'rimraf@~2.1.1' }
343 verbose cache add name="rimraf" spec="~2.1.1" args=["rimraf","~2.1.1"]
344 verbose parsed url { protocol: null,
344 verbose parsed url   slashes: null,
344 verbose parsed url   auth: null,
344 verbose parsed url   host: null,
344 verbose parsed url   port: null,
344 verbose parsed url   hostname: null,
344 verbose parsed url   hash: null,
344 verbose parsed url   search: null,
344 verbose parsed url   query: null,
344 verbose parsed url   pathname: '~2.1.1',
344 verbose parsed url   path: '~2.1.1',
344 verbose parsed url   href: '~2.1.1' }
345 verbose addNamed [ 'rimraf', '~2.1.1' ]
346 verbose addNamed [ null, '>=2.1.1- <2.2.0-' ]
347 silly lockFile 6ee9ee1e-rimraf-2-1-1 rimraf@~2.1.1
348 verbose lock rimraf@~2.1.1 /Users/jmiele/.npm/6ee9ee1e-rimraf-2-1-1.lock
349 verbose url raw express
350 verbose url resolving [ 'https://registry.npmjs.org/', './express' ]
351 verbose url resolved https://registry.npmjs.org/express
352 info trying registry request attempt 1 at 10:59:45
353 verbose etag "3KUOO137DY7RDG59SR78UTPOY"
355 verbose url raw grunt
356 verbose url resolving [ 'https://registry.npmjs.org/', './grunt' ]
357 verbose url resolved https://registry.npmjs.org/grunt
358 info trying registry request attempt 1 at 10:59:45
359 verbose etag "E2R2G6CX2GH1PC7XKMXG0KIKX"
361 verbose cache add [ 'temp@~0.5.0', null ]
362 verbose cache add name=undefined spec="temp@~0.5.0" args=["temp@~0.5.0",null]
363 verbose parsed url { protocol: null,
363 verbose parsed url   slashes: null,
363 verbose parsed url   auth: null,
363 verbose parsed url   host: null,
363 verbose parsed url   port: null,
363 verbose parsed url   hostname: null,
363 verbose parsed url   hash: null,
363 verbose parsed url   search: null,
363 verbose parsed url   query: null,
363 verbose parsed url   pathname: 'temp@~0.5.0',
363 verbose parsed url   path: 'temp@~0.5.0',
363 verbose parsed url   href: 'temp@~0.5.0' }
364 verbose cache add name="temp" spec="~0.5.0" args=["temp","~0.5.0"]
365 verbose parsed url { protocol: null,
365 verbose parsed url   slashes: null,
365 verbose parsed url   auth: null,
365 verbose parsed url   host: null,
365 verbose parsed url   port: null,
365 verbose parsed url   hostname: null,
365 verbose parsed url   hash: null,
365 verbose parsed url   search: null,
365 verbose parsed url   query: null,
365 verbose parsed url   pathname: '~0.5.0',
365 verbose parsed url   path: '~0.5.0',
365 verbose parsed url   href: '~0.5.0' }
366 verbose addNamed [ 'temp', '~0.5.0' ]
367 verbose addNamed [ null, '>=0.5.0- <0.6.0-' ]
368 silly lockFile dbc60fd3-temp-0-5-0 temp@~0.5.0
369 verbose lock temp@~0.5.0 /Users/jmiele/.npm/dbc60fd3-temp-0-5-0.lock
370 verbose cache add [ 'uuid-js@~0.7.4', null ]
371 verbose cache add name=undefined spec="uuid-js@~0.7.4" args=["uuid-js@~0.7.4",null]
372 verbose parsed url { protocol: null,
372 verbose parsed url   slashes: null,
372 verbose parsed url   auth: null,
372 verbose parsed url   host: null,
372 verbose parsed url   port: null,
372 verbose parsed url   hostname: null,
372 verbose parsed url   hash: null,
372 verbose parsed url   search: null,
372 verbose parsed url   query: null,
372 verbose parsed url   pathname: 'uuid-js@~0.7.4',
372 verbose parsed url   path: 'uuid-js@~0.7.4',
372 verbose parsed url   href: 'uuid-js@~0.7.4' }
373 verbose cache add name="uuid-js" spec="~0.7.4" args=["uuid-js","~0.7.4"]
374 verbose parsed url { protocol: null,
374 verbose parsed url   slashes: null,
374 verbose parsed url   auth: null,
374 verbose parsed url   host: null,
374 verbose parsed url   port: null,
374 verbose parsed url   hostname: null,
374 verbose parsed url   hash: null,
374 verbose parsed url   search: null,
374 verbose parsed url   query: null,
374 verbose parsed url   pathname: '~0.7.4',
374 verbose parsed url   path: '~0.7.4',
374 verbose parsed url   href: '~0.7.4' }
375 verbose addNamed [ 'uuid-js', '~0.7.4' ]
376 verbose addNamed [ null, '>=0.7.4- <0.8.0-' ]
377 silly lockFile 87b6b3ea-uuid-js-0-7-4 uuid-js@~0.7.4
378 verbose lock uuid-js@~0.7.4 /Users/jmiele/.npm/87b6b3ea-uuid-js-0-7-4.lock
379 verbose cache add [ 'winston@~0.6.2', null ]
380 verbose cache add name=undefined spec="winston@~0.6.2" args=["winston@~0.6.2",null]
381 verbose parsed url { protocol: null,
381 verbose parsed url   slashes: null,
381 verbose parsed url   auth: null,
381 verbose parsed url   host: null,
381 verbose parsed url   port: null,
381 verbose parsed url   hostname: null,
381 verbose parsed url   hash: null,
381 verbose parsed url   search: null,
381 verbose parsed url   query: null,
381 verbose parsed url   pathname: 'winston@~0.6.2',
381 verbose parsed url   path: 'winston@~0.6.2',
381 verbose parsed url   href: 'winston@~0.6.2' }
382 verbose cache add name="winston" spec="~0.6.2" args=["winston","~0.6.2"]
383 verbose parsed url { protocol: null,
383 verbose parsed url   slashes: null,
383 verbose parsed url   auth: null,
383 verbose parsed url   host: null,
383 verbose parsed url   port: null,
383 verbose parsed url   hostname: null,
383 verbose parsed url   hash: null,
383 verbose parsed url   search: null,
383 verbose parsed url   query: null,
383 verbose parsed url   pathname: '~0.6.2',
383 verbose parsed url   path: '~0.6.2',
383 verbose parsed url   href: '~0.6.2' }
384 verbose addNamed [ 'winston', '~0.6.2' ]
385 verbose addNamed [ null, '>=0.6.2- <0.7.0-' ]
386 silly lockFile 6903f670-winston-0-6-2 winston@~0.6.2
387 verbose lock winston@~0.6.2 /Users/jmiele/.npm/6903f670-winston-0-6-2.lock
388 verbose cache add [ 'request@~2.12.0', null ]
389 verbose cache add name=undefined spec="request@~2.12.0" args=["request@~2.12.0",null]
390 verbose parsed url { protocol: null,
390 verbose parsed url   slashes: null,
390 verbose parsed url   auth: null,
390 verbose parsed url   host: null,
390 verbose parsed url   port: null,
390 verbose parsed url   hostname: null,
390 verbose parsed url   hash: null,
390 verbose parsed url   search: null,
390 verbose parsed url   query: null,
390 verbose parsed url   pathname: 'request@~2.12.0',
390 verbose parsed url   path: 'request@~2.12.0',
390 verbose parsed url   href: 'request@~2.12.0' }
391 verbose cache add name="request" spec="~2.12.0" args=["request","~2.12.0"]
392 verbose parsed url { protocol: null,
392 verbose parsed url   slashes: null,
392 verbose parsed url   auth: null,
392 verbose parsed url   host: null,
392 verbose parsed url   port: null,
392 verbose parsed url   hostname: null,
392 verbose parsed url   hash: null,
392 verbose parsed url   search: null,
392 verbose parsed url   query: null,
392 verbose parsed url   pathname: '~2.12.0',
392 verbose parsed url   path: '~2.12.0',
392 verbose parsed url   href: '~2.12.0' }
393 verbose addNamed [ 'request', '~2.12.0' ]
394 verbose addNamed [ null, '>=2.12.0- <2.13.0-' ]
395 silly lockFile b6c36044-request-2-12-0 request@~2.12.0
396 verbose lock request@~2.12.0 /Users/jmiele/.npm/b6c36044-request-2-12-0.lock
397 verbose cache add [ 'bplist-parser@~0.0.4', null ]
398 verbose cache add name=undefined spec="bplist-parser@~0.0.4" args=["bplist-parser@~0.0.4",null]
399 verbose parsed url { protocol: null,
399 verbose parsed url   slashes: null,
399 verbose parsed url   auth: null,
399 verbose parsed url   host: null,
399 verbose parsed url   port: null,
399 verbose parsed url   hostname: null,
399 verbose parsed url   hash: null,
399 verbose parsed url   search: null,
399 verbose parsed url   query: null,
399 verbose parsed url   pathname: 'bplist-parser@~0.0.4',
399 verbose parsed url   path: 'bplist-parser@~0.0.4',
399 verbose parsed url   href: 'bplist-parser@~0.0.4' }
400 verbose cache add name="bplist-parser" spec="~0.0.4" args=["bplist-parser","~0.0.4"]
401 verbose parsed url { protocol: null,
401 verbose parsed url   slashes: null,
401 verbose parsed url   auth: null,
401 verbose parsed url   host: null,
401 verbose parsed url   port: null,
401 verbose parsed url   hostname: null,
401 verbose parsed url   hash: null,
401 verbose parsed url   search: null,
401 verbose parsed url   query: null,
401 verbose parsed url   pathname: '~0.0.4',
401 verbose parsed url   path: '~0.0.4',
401 verbose parsed url   href: '~0.0.4' }
402 verbose addNamed [ 'bplist-parser', '~0.0.4' ]
403 verbose addNamed [ null, '>=0.0.4- <0.1.0-' ]
404 silly lockFile 986c5092-bplist-parser-0-0-4 bplist-parser@~0.0.4
405 verbose lock bplist-parser@~0.0.4 /Users/jmiele/.npm/986c5092-bplist-parser-0-0-4.lock
406 verbose cache add [ 'buffe...@0.0.6', null ]
407 verbose cache add name=undefined spec="buffe...@0.0.6" args=["buffe...@0.0.6",null]
408 verbose parsed url { protocol: null,
408 verbose parsed url   slashes: null,
408 verbose parsed url   auth: null,
408 verbose parsed url   host: null,
408 verbose parsed url   port: null,
408 verbose parsed url   hostname: null,
408 verbose parsed url   hash: null,
408 verbose parsed url   search: null,
408 verbose parsed url   query: null,
408 verbose parsed url   pathname: 'buffe...@0.0.6',
408 verbose parsed url   path: 'buffe...@0.0.6',
408 verbose parsed url   href: 'buffe...@0.0.6' }
409 verbose cache add name="bufferpack" spec="0.0.6" args=["bufferpack","0.0.6"]
410 verbose parsed url { protocol: null,
410 verbose parsed url   slashes: null,
410 verbose parsed url   auth: null,
410 verbose parsed url   host: null,
410 verbose parsed url   port: null,
410 verbose parsed url   hostname: null,
410 verbose parsed url   hash: null,
410 verbose parsed url   search: null,
410 verbose parsed url   query: null,
410 verbose parsed url   pathname: '0.0.6',
410 verbose parsed url   path: '0.0.6',
410 verbose parsed url   href: '0.0.6' }
411 verbose addNamed [ 'bufferpack', '0.0.6' ]
412 verbose addNamed [ '0.0.6', '0.0.6' ]
413 silly lockFile 4ea549c7-bufferpack-0-0-6 buffe...@0.0.6
414 verbose lock buffe...@0.0.6 /Users/jmiele/.npm/4ea549c7-bufferpack-0-0-6.lock
415 verbose cache add [ 'bplist-creator@~0.0.2', null ]
416 verbose cache add name=undefined spec="bplist-creator@~0.0.2" args=["bplist-creator@~0.0.2",null]
417 verbose parsed url { protocol: null,
417 verbose parsed url   slashes: null,
417 verbose parsed url   auth: null,
417 verbose parsed url   host: null,
417 verbose parsed url   port: null,
417 verbose parsed url   hostname: null,
417 verbose parsed url   hash: null,
417 verbose parsed url   search: null,
417 verbose parsed url   query: null,
417 verbose parsed url   pathname: 'bplist-creator@~0.0.2',
417 verbose parsed url   path: 'bplist-creator@~0.0.2',
417 verbose parsed url   href: 'bplist-creator@~0.0.2' }
418 verbose cache add name="bplist-creator" spec="~0.0.2" args=["bplist-creator","~0.0.2"]
419 verbose parsed url { protocol: null,
419 verbose parsed url   slashes: null,
419 verbose parsed url   auth: null,
419 verbose parsed url   host: null,
419 verbose parsed url   port: null,
419 verbose parsed url   hostname: null,
419 verbose parsed url   hash: null,
419 verbose parsed url   search: null,
419 verbose parsed url   query: null,
419 verbose parsed url   pathname: '~0.0.2',
419 verbose parsed url   path: '~0.0.2',
419 verbose parsed url   href: '~0.0.2' }
420 verbose addNamed [ 'bplist-creator', '~0.0.2' ]
421 verbose addNamed [ null, '>=0.0.2- <0.1.0-' ]
422 silly lockFile 53408cb3-bplist-creator-0-0-2 bplist-creator@~0.0.2
423 verbose lock bplist-creator@~0.0.2 /Users/jmiele/.npm/53408cb3-bplist-creator-0-0-2.lock
424 verbose cache add [ 'node-uuid@~1.4.0', null ]
425 verbose cache add name=undefined spec="node-uuid@~1.4.0" args=["node-uuid@~1.4.0",null]
426 verbose parsed url { protocol: null,
426 verbose parsed url   slashes: null,
426 verbose parsed url   auth: null,
426 verbose parsed url   host: null,
426 verbose parsed url   port: null,
426 verbose parsed url   hostname: null,
426 verbose parsed url   hash: null,
426 verbose parsed url   search: null,
426 verbose parsed url   query: null,
426 verbose parsed url   pathname: 'node-uuid@~1.4.0',
426 verbose parsed url   path: 'node-uuid@~1.4.0',
426 verbose parsed url   href: 'node-uuid@~1.4.0' }
427 verbose cache add name="node-uuid" spec="~1.4.0" args=["node-uuid","~1.4.0"]
428 verbose parsed url { protocol: null,
428 verbose parsed url   slashes: null,
428 verbose parsed url   auth: null,
428 verbose parsed url   host: null,
428 verbose parsed url   port: null,
428 verbose parsed url   hostname: null,
428 verbose parsed url   hash: null,
428 verbose parsed url   search: null,
428 verbose parsed url   query: null,
428 verbose parsed url   pathname: '~1.4.0',
428 verbose parsed url   path: '~1.4.0',
428 verbose parsed url   href: '~1.4.0' }
429 verbose addNamed [ 'node-uuid', '~1.4.0' ]
430 verbose addNamed [ null, '>=1.4.0- <1.5.0-' ]
431 silly lockFile f662725f-node-uuid-1-4-0 node-uuid@~1.4.0
432 verbose lock node-uuid@~1.4.0 /Users/jmiele/.npm/f662725f-node-uuid-1-4-0.lock
433 verbose cache add [ 'underscore.string@~2.3.1', null ]
434 verbose cache add name=undefined spec="underscore.string@~2.3.1" args=["underscore.string@~2.3.1",null]
435 verbose parsed url { protocol: null,
435 verbose parsed url   slashes: null,
435 verbose parsed url   auth: null,
435 verbose parsed url   host: null,
435 verbose parsed url   port: null,
435 verbose parsed url   hostname: null,
435 verbose parsed url   hash: null,
435 verbose parsed url   search: null,
435 verbose parsed url   query: null,
435 verbose parsed url   pathname: 'underscore.string@~2.3.1',
435 verbose parsed url   path: 'underscore.string@~2.3.1',
435 verbose parsed url   href: 'underscore.string@~2.3.1' }
436 verbose cache add name="underscore.string" spec="~2.3.1" args=["underscore.string","~2.3.1"]
437 verbose parsed url { protocol: null,
437 verbose parsed url   slashes: null,
437 verbose parsed url   auth: null,
437 verbose parsed url   host: null,
437 verbose parsed url   port: null,
437 verbose parsed url   hostname: null,
437 verbose parsed url   hash: null,
437 verbose parsed url   search: null,
437 verbose parsed url   query: null,
437 verbose parsed url   pathname: '~2.3.1',
437 verbose parsed url   path: '~2.3.1',
437 verbose parsed url   href: '~2.3.1' }
438 verbose addNamed [ 'underscore.string', '~2.3.1' ]
439 verbose addNamed [ null, '>=2.3.1- <2.4.0-' ]
440 silly lockFile b2b19648-underscore-string-2-3-1 underscore.string@~2.3.1
441 verbose lock underscore.string@~2.3.1 /Users/jmiele/.npm/b2b19648-underscore-string-2-3-1.lock
442 verbose cache add [ 'glob@~3.1.20', null ]
443 verbose cache add name=undefined spec="glob@~3.1.20" args=["glob@~3.1.20",null]
444 verbose parsed url { protocol: null,
444 verbose parsed url   slashes: null,
444 verbose parsed url   auth: null,
444 verbose parsed url   host: null,
444 verbose parsed url   port: null,
444 verbose parsed url   hostname: null,
444 verbose parsed url   hash: null,
444 verbose parsed url   search: null,
444 verbose parsed url   query: null,
444 verbose parsed url   pathname: 'glob@~3.1.20',
444 verbose parsed url   path: 'glob@~3.1.20',
444 verbose parsed url   href: 'glob@~3.1.20' }
445 verbose cache add name="glob" spec="~3.1.20" args=["glob","~3.1.20"]
446 verbose parsed url { protocol: null,
446 verbose parsed url   slashes: null,
446 verbose parsed url   auth: null,
446 verbose parsed url   host: null,
446 verbose parsed url   port: null,
446 verbose parsed url   hostname: null,
446 verbose parsed url   hash: null,
446 verbose parsed url   search: null,
446 verbose parsed url   query: null,
446 verbose parsed url   pathname: '~3.1.20',
446 verbose parsed url   path: '~3.1.20',
446 verbose parsed url   href: '~3.1.20' }
447 verbose addNamed [ 'glob', '~3.1.20' ]
448 verbose addNamed [ null, '>=3.1.20- <3.2.0-' ]
449 silly lockFile 8a3aac7e-glob-3-1-20 glob@~3.1.20
450 verbose lock glob@~3.1.20 /Users/jmiele/.npm/8a3aac7e-glob-3-1-20.lock
451 verbose cache add [ 'unzip@~0.1.1', null ]
452 verbose cache add name=undefined spec="unzip@~0.1.1" args=["unzip@~0.1.1",null]
453 verbose parsed url { protocol: null,
453 verbose parsed url   slashes: null,
453 verbose parsed url   auth: null,
453 verbose parsed url   host: null,
453 verbose parsed url   port: null,
453 verbose parsed url   hostname: null,
453 verbose parsed url   hash: null,
453 verbose parsed url   search: null,
453 verbose parsed url   query: null,
453 verbose parsed url   pathname: 'unzip@~0.1.1',
453 verbose parsed url   path: 'unzip@~0.1.1',
453 verbose parsed url   href: 'unzip@~0.1.1' }
454 verbose cache add name="unzip" spec="~0.1.1" args=["unzip","~0.1.1"]
455 verbose parsed url { protocol: null,
455 verbose parsed url   slashes: null,
455 verbose parsed url   auth: null,
455 verbose parsed url   host: null,
455 verbose parsed url   port: null,
455 verbose parsed url   hostname: null,
455 verbose parsed url   hash: null,
455 verbose parsed url   search: null,
455 verbose parsed url   query: null,
455 verbose parsed url   pathname: '~0.1.1',
455 verbose parsed url   path: '~0.1.1',
455 verbose parsed url   href: '~0.1.1' }
456 verbose addNamed [ 'unzip', '~0.1.1' ]
457 verbose addNamed [ null, '>=0.1.1- <0.2.0-' ]
458 silly lockFile e060b63f-unzip-0-1-1 unzip@~0.1.1
459 verbose lock unzip@~0.1.1 /Users/jmiele/.npm/e060b63f-unzip-0-1-1.lock
460 verbose cache add [ 'ncp@~0.4.2', null ]
461 verbose cache add name=undefined spec="ncp@~0.4.2" args=["ncp@~0.4.2",null]
462 verbose parsed url { protocol: null,
462 verbose parsed url   slashes: null,
462 verbose parsed url   auth: null,
462 verbose parsed url   host: null,
462 verbose parsed url   port: null,
462 verbose parsed url   hostname: null,
462 verbose parsed url   hash: null,
462 verbose parsed url   search: null,
462 verbose parsed url   query: null,
462 verbose parsed url   pathname: 'ncp@~0.4.2',
462 verbose parsed url   path: 'ncp@~0.4.2',
462 verbose parsed url   href: 'ncp@~0.4.2' }
463 verbose cache add name="ncp" spec="~0.4.2" args=["ncp","~0.4.2"]
464 verbose parsed url { protocol: null,
464 verbose parsed url   slashes: null,
464 verbose parsed url   auth: null,
464 verbose parsed url   host: null,
464 verbose parsed url   port: null,
464 verbose parsed url   hostname: null,
464 verbose parsed url   hash: null,
464 verbose parsed url   search: null,
464 verbose parsed url   query: null,
464 verbose parsed url   pathname: '~0.4.2',
464 verbose parsed url   path: '~0.4.2',
464 verbose parsed url   href: '~0.4.2' }
465 verbose addNamed [ 'ncp', '~0.4.2' ]
466 verbose addNamed [ null, '>=0.4.2- <0.5.0-' ]
467 silly lockFile 1f31aeaa-ncp-0-4-2 ncp@~0.4.2
468 verbose lock ncp@~0.4.2 /Users/jmiele/.npm/1f31aeaa-ncp-0-4-2.lock
469 verbose cache add [ 'swig@~0.13.5', null ]
470 verbose cache add name=undefined spec="swig@~0.13.5" args=["swig@~0.13.5",null]
471 verbose parsed url { protocol: null,
471 verbose parsed url   slashes: null,
471 verbose parsed url   auth: null,
471 verbose parsed url   host: null,
471 verbose parsed url   port: null,
471 verbose parsed url   hostname: null,
471 verbose parsed url   hash: null,
471 verbose parsed url   search: null,
471 verbose parsed url   query: null,
471 verbose parsed url   pathname: 'swig@~0.13.5',
471 verbose parsed url   path: 'swig@~0.13.5',
471 verbose parsed url   href: 'swig@~0.13.5' }
472 verbose cache add name="swig" spec="~0.13.5" args=["swig","~0.13.5"]
473 verbose parsed url { protocol: null,
473 verbose parsed url   slashes: null,
473 verbose parsed url   auth: null,
473 verbose parsed url   host: null,
473 verbose parsed url   port: null,
473 verbose parsed url   hostname: null,
473 verbose parsed url   hash: null,
473 verbose parsed url   search: null,
473 verbose parsed url   query: null,
473 verbose parsed url   pathname: '~0.13.5',
473 verbose parsed url   path: '~0.13.5',
473 verbose parsed url   href: '~0.13.5' }
474 verbose addNamed [ 'swig', '~0.13.5' ]
475 verbose addNamed [ null, '>=0.13.5- <0.14.0-' ]
476 silly lockFile d65d0342-swig-0-13-5 swig@~0.13.5
477 verbose lock swig@~0.13.5 /Users/jmiele/.npm/d65d0342-swig-0-13-5.lock
478 verbose cache add [ 'async@~0.2.6', null ]
479 verbose cache add name=undefined spec="async@~0.2.6" args=["async@~0.2.6",null]
480 verbose parsed url { protocol: null,
480 verbose parsed url   slashes: null,
480 verbose parsed url   auth: null,
480 verbose parsed url   host: null,
480 verbose parsed url   port: null,
480 verbose parsed url   hostname: null,
480 verbose parsed url   hash: null,
480 verbose parsed url   search: null,
480 verbose parsed url   query: null,
480 verbose parsed url   pathname: 'async@~0.2.6',
480 verbose parsed url   path: 'async@~0.2.6',
480 verbose parsed url   href: 'async@~0.2.6' }
481 verbose cache add name="async" spec="~0.2.6" args=["async","~0.2.6"]
482 verbose parsed url { protocol: null,
482 verbose parsed url   slashes: null,
482 verbose parsed url   auth: null,
482 verbose parsed url   host: null,
482 verbose parsed url   port: null,
482 verbose parsed url   hostname: null,
482 verbose parsed url   hash: null,
482 verbose parsed url   search: null,
482 verbose parsed url   query: null,
482 verbose parsed url   pathname: '~0.2.6',
482 verbose parsed url   path: '~0.2.6',
482 verbose parsed url   href: '~0.2.6' }
483 verbose addNamed [ 'async', '~0.2.6' ]
484 verbose addNamed [ null, '>=0.2.6- <0.3.0-' ]
485 silly lockFile e00b1d77-async-0-2-6 async@~0.2.6
486 verbose lock async@~0.2.6 /Users/jmiele/.npm/e00b1d77-async-0-2-6.lock
487 verbose cache add [ 'mkdirp@~0.3.5', null ]
488 verbose cache add name=undefined spec="mkdirp@~0.3.5" args=["mkdirp@~0.3.5",null]
489 verbose parsed url { protocol: null,
489 verbose parsed url   slashes: null,
489 verbose parsed url   auth: null,
489 verbose parsed url   host: null,
489 verbose parsed url   port: null,
489 verbose parsed url   hostname: null,
489 verbose parsed url   hash: null,
489 verbose parsed url   search: null,
489 verbose parsed url   query: null,
489 verbose parsed url   pathname: 'mkdirp@~0.3.5',
489 verbose parsed url   path: 'mkdirp@~0.3.5',
489 verbose parsed url   href: 'mkdirp@~0.3.5' }
490 verbose cache add name="mkdirp" spec="~0.3.5" args=["mkdirp","~0.3.5"]
491 verbose parsed url { protocol: null,
491 verbose parsed url   slashes: null,
491 verbose parsed url   auth: null,
491 verbose parsed url   host: null,
491 verbose parsed url   port: null,
491 verbose parsed url   hostname: null,
491 verbose parsed url   hash: null,
491 verbose parsed url   search: null,
491 verbose parsed url   query: null,
491 verbose parsed url   pathname: '~0.3.5',
491 verbose parsed url   path: '~0.3.5',
491 verbose parsed url   href: '~0.3.5' }
492 verbose addNamed [ 'mkdirp', '~0.3.5' ]
493 verbose addNamed [ null, '>=0.3.5- <0.4.0-' ]
494 silly lockFile c3f0fe9b-mkdirp-0-3-5 mkdirp@~0.3.5
495 verbose lock mkdirp@~0.3.5 /Users/jmiele/.npm/c3f0fe9b-mkdirp-0-3-5.lock
496 verbose cache add [ 'xml2js@~0.2.6', null ]
497 verbose cache add name=undefined spec="xml2js@~0.2.6" args=["xml2js@~0.2.6",null]
498 verbose parsed url { protocol: null,
498 verbose parsed url   slashes: null,
498 verbose parsed url   auth: null,
498 verbose parsed url   host: null,
498 verbose parsed url   port: null,
498 verbose parsed url   hostname: null,
498 verbose parsed url   hash: null,
498 verbose parsed url   search: null,
498 verbose parsed url   query: null,
498 verbose parsed url   pathname: 'xml2js@~0.2.6',
498 verbose parsed url   path: 'xml2js@~0.2.6',
498 verbose parsed url   href: 'xml2js@~0.2.6' }
499 verbose cache add name="xml2js" spec="~0.2.6" args=["xml2js","~0.2.6"]
500 verbose parsed url { protocol: null,
500 verbose parsed url   slashes: null,
500 verbose parsed url   auth: null,
500 verbose parsed url   host: null,
500 verbose parsed url   port: null,
500 verbose parsed url   hostname: null,
500 verbose parsed url   hash: null,
500 verbose parsed url   search: null,
500 verbose parsed url   query: null,
500 verbose parsed url   pathname: '~0.2.6',
500 verbose parsed url   path: '~0.2.6',
500 verbose parsed url   href: '~0.2.6' }
501 verbose addNamed [ 'xml2js', '~0.2.6' ]
502 verbose addNamed [ null, '>=0.2.6- <0.3.0-' ]
503 silly lockFile b0aaf898-xml2js-0-2-6 xml2js@~0.2.6
504 verbose lock xml2js@~0.2.6 /Users/jmiele/.npm/b0aaf898-xml2js-0-2-6.lock
505 verbose cache add [ 'difflib@~0.2.4', null ]
506 verbose cache add name=undefined spec="difflib@~0.2.4" args=["difflib@~0.2.4",null]
507 verbose parsed url { protocol: null,
507 verbose parsed url   slashes: null,
507 verbose parsed url   auth: null,
507 verbose parsed url   host: null,
507 verbose parsed url   port: null,
507 verbose parsed url   hostname: null,
507 verbose parsed url   hash: null,
507 verbose parsed url   search: null,
507 verbose parsed url   query: null,
507 verbose parsed url   pathname: 'difflib@~0.2.4',
507 verbose parsed url   path: 'difflib@~0.2.4',
507 verbose parsed url   href: 'difflib@~0.2.4' }
508 verbose cache add name="difflib" spec="~0.2.4" args=["difflib","~0.2.4"]
509 verbose parsed url { protocol: null,
509 verbose parsed url   slashes: null,
509 verbose parsed url   auth: null,
509 verbose parsed url   host: null,
509 verbose parsed url   port: null,
509 verbose parsed url   hostname: null,
509 verbose parsed url   hash: null,
509 verbose parsed url   search: null,
509 verbose parsed url   query: null,
509 verbose parsed url   pathname: '~0.2.4',
509 verbose parsed url   path: '~0.2.4',
509 verbose parsed url   href: '~0.2.4' }
510 verbose addNamed [ 'difflib', '~0.2.4' ]
511 verbose addNamed [ null, '>=0.2.4- <0.3.0-' ]
512 silly lockFile 0129da30-difflib-0-2-4 difflib@~0.2.4
513 verbose lock difflib@~0.2.4 /Users/jmiele/.npm/0129da30-difflib-0-2-4.lock
514 verbose cache add [ 'prompt@~0.2.9', null ]
515 verbose cache add name=undefined spec="prompt@~0.2.9" args=["prompt@~0.2.9",null]
516 verbose parsed url { protocol: null,
516 verbose parsed url   slashes: null,
516 verbose parsed url   auth: null,
516 verbose parsed url   host: null,
516 verbose parsed url   port: null,
516 verbose parsed url   hostname: null,
516 verbose parsed url   hash: null,
516 verbose parsed url   search: null,
516 verbose parsed url   query: null,
516 verbose parsed url   pathname: 'prompt@~0.2.9',
516 verbose parsed url   path: 'prompt@~0.2.9',
516 verbose parsed url   href: 'prompt@~0.2.9' }
517 verbose cache add name="prompt" spec="~0.2.9" args=["prompt","~0.2.9"]
518 verbose parsed url { protocol: null,
518 verbose parsed url   slashes: null,
518 verbose parsed url   auth: null,
518 verbose parsed url   host: null,
518 verbose parsed url   port: null,
518 verbose parsed url   hostname: null,
518 verbose parsed url   hash: null,
518 verbose parsed url   search: null,
518 verbose parsed url   query: null,
518 verbose parsed url   pathname: '~0.2.9',
518 verbose parsed url   path: '~0.2.9',
518 verbose parsed url   href: '~0.2.9' }
519 verbose addNamed [ 'prompt', '~0.2.9' ]
520 verbose addNamed [ null, '>=0.2.9- <0.3.0-' ]
521 silly lockFile 482147a8-prompt-0-2-9 prompt@~0.2.9
522 verbose lock prompt@~0.2.9 /Users/jmiele/.npm/482147a8-prompt-0-2-9.lock
523 verbose cache add [ 'binary-cookies@~0.1.1', null ]
524 verbose cache add name=undefined spec="binary-cookies@~0.1.1" args=["binary-cookies@~0.1.1",null]
525 verbose parsed url { protocol: null,
525 verbose parsed url   slashes: null,
525 verbose parsed url   auth: null,
525 verbose parsed url   host: null,
525 verbose parsed url   port: null,
525 verbose parsed url   hostname: null,
525 verbose parsed url   hash: null,
525 verbose parsed url   search: null,
525 verbose parsed url   query: null,
525 verbose parsed url   pathname: 'binary-cookies@~0.1.1',
525 verbose parsed url   path: 'binary-cookies@~0.1.1',
525 verbose parsed url   href: 'binary-cookies@~0.1.1' }
526 verbose cache add name="binary-cookies" spec="~0.1.1" args=["binary-cookies","~0.1.1"]
527 verbose parsed url { protocol: null,
527 verbose parsed url   slashes: null,
527 verbose parsed url   auth: null,
527 verbose parsed url   host: null,
527 verbose parsed url   port: null,
527 verbose parsed url   hostname: null,
527 verbose parsed url   hash: null,
527 verbose parsed url   search: null,
527 verbose parsed url   query: null,
527 verbose parsed url   pathname: '~0.1.1',
527 verbose parsed url   path: '~0.1.1',
527 verbose parsed url   href: '~0.1.1' }
528 verbose addNamed [ 'binary-cookies', '~0.1.1' ]
529 verbose addNamed [ null, '>=0.1.1- <0.2.0-' ]
530 silly lockFile 3fe2e872-binary-cookies-0-1-1 binary-cookies@~0.1.1
531 verbose lock binary-cookies@~0.1.1 /Users/jmiele/.npm/3fe2e872-binary-cookies-0-1-1.lock
532 verbose cache add [ 'namp@~0.2.25', null ]
533 verbose cache add name=undefined spec="namp@~0.2.25" args=["namp@~0.2.25",null]
534 verbose parsed url { protocol: null,
534 verbose parsed url   slashes: null,
534 verbose parsed url   auth: null,
534 verbose parsed url   host: null,
534 verbose parsed url   port: null,
534 verbose parsed url   hostname: null,
534 verbose parsed url   hash: null,
534 verbose parsed url   search: null,
534 verbose parsed url   query: null,
534 verbose parsed url   pathname: 'namp@~0.2.25',
534 verbose parsed url   path: 'namp@~0.2.25',
534 verbose parsed url   href: 'namp@~0.2.25' }
535 verbose cache add name="namp" spec="~0.2.25" args=["namp","~0.2.25"]
536 verbose parsed url { protocol: null,
536 verbose parsed url   slashes: null,
536 verbose parsed url   auth: null,
536 verbose parsed url   host: null,
536 verbose parsed url   port: null,
536 verbose parsed url   hostname: null,
536 verbose parsed url   hash: null,
536 verbose parsed url   search: null,
536 verbose parsed url   query: null,
536 verbose parsed url   pathname: '~0.2.25',
536 verbose parsed url   path: '~0.2.25',
536 verbose parsed url   href: '~0.2.25' }
537 verbose addNamed [ 'namp', '~0.2.25' ]
538 verbose addNamed [ null, '>=0.2.25- <0.3.0-' ]
539 silly lockFile e24b31e4-namp-0-2-25 namp@~0.2.25
540 verbose lock namp@~0.2.25 /Users/jmiele/.npm/e24b31e4-namp-0-2-25.lock
541 verbose cache add [ 'node-idevice@~0.1.2', null ]
542 verbose cache add name=undefined spec="node-idevice@~0.1.2" args=["node-idevice@~0.1.2",null]
543 verbose parsed url { protocol: null,
543 verbose parsed url   slashes: null,
543 verbose parsed url   auth: null,
543 verbose parsed url   host: null,
543 verbose parsed url   port: null,
543 verbose parsed url   hostname: null,
543 verbose parsed url   hash: null,
543 verbose parsed url   search: null,
543 verbose parsed url   query: null,
543 verbose parsed url   pathname: 'node-idevice@~0.1.2',
543 verbose parsed url   path: 'node-idevice@~0.1.2',
543 verbose parsed url   href: 'node-idevice@~0.1.2' }
544 verbose cache add name="node-idevice" spec="~0.1.2" args=["node-idevice","~0.1.2"]
545 verbose parsed url { protocol: null,
545 verbose parsed url   slashes: null,
545 verbose parsed url   auth: null,
545 verbose parsed url   host: null,
545 verbose parsed url   port: null,
545 verbose parsed url   hostname: null,
545 verbose parsed url   hash: null,
545 verbose parsed url   search: null,
545 verbose parsed url   query: null,
545 verbose parsed url   pathname: '~0.1.2',
545 verbose parsed url   path: '~0.1.2',
545 verbose parsed url   href: '~0.1.2' }
546 verbose addNamed [ 'node-idevice', '~0.1.2' ]
547 verbose addNamed [ null, '>=0.1.2- <0.2.0-' ]
548 silly lockFile 66c9ac35-node-idevice-0-1-2 node-idevice@~0.1.2
549 verbose lock node-idevice@~0.1.2 /Users/jmiele/.npm/66c9ac35-node-idevice-0-1-2.lock
550 silly addNameRange { name: 'rimraf', range: '>=2.1.1- <2.2.0-', hasData: false }
551 verbose url raw grunt-cli
552 verbose url resolving [ 'https://registry.npmjs.org/', './grunt-cli' ]
553 verbose url resolved https://registry.npmjs.org/grunt-cli
554 info trying registry request attempt 1 at 10:59:45
555 verbose etag "B4B6OM92DIEGXYFA3ZT1MSP3"
557 silly addNameRange { name: 'temp', range: '>=0.5.0- <0.6.0-', hasData: false }
558 silly addNameRange { name: 'uuid-js', range: '>=0.7.4- <0.8.0-', hasData: false }
559 silly addNameRange { name: 'winston', range: '>=0.6.2- <0.7.0-', hasData: false }
560 silly addNameRange { name: 'request', range: '>=2.12.0- <2.13.0-', hasData: false }
561 silly addNameRange { name: 'bplist-parser',
561 silly addNameRange   range: '>=0.0.4- <0.1.0-',
561 silly addNameRange   hasData: false }
562 silly addNameRange { name: 'bplist-creator',
562 silly addNameRange   range: '>=0.0.2- <0.1.0-',
562 silly addNameRange   hasData: false }
563 silly addNameRange { name: 'node-uuid', range: '>=1.4.0- <1.5.0-', hasData: false }
564 silly addNameRange { name: 'underscore.string',
564 silly addNameRange   range: '>=2.3.1- <2.4.0-',
564 silly addNameRange   hasData: false }
565 silly addNameRange { name: 'glob', range: '>=3.1.20- <3.2.0-', hasData: false }
566 silly addNameRange { name: 'unzip', range: '>=0.1.1- <0.2.0-', hasData: false }
567 silly addNameRange { name: 'ncp', range: '>=0.4.2- <0.5.0-', hasData: false }
568 silly addNameRange { name: 'swig', range: '>=0.13.5- <0.14.0-', hasData: false }
569 silly addNameRange { name: 'async', range: '>=0.2.6- <0.3.0-', hasData: false }
570 silly addNameRange { name: 'mkdirp', range: '>=0.3.5- <0.4.0-', hasData: false }
571 silly addNameRange { name: 'xml2js', range: '>=0.2.6- <0.3.0-', hasData: false }
572 silly addNameRange { name: 'difflib', range: '>=0.2.4- <0.3.0-', hasData: false }
573 silly addNameRange { name: 'prompt', range: '>=0.2.9- <0.3.0-', hasData: false }
574 silly addNameRange { name: 'binary-cookies',
574 silly addNameRange   range: '>=0.1.1- <0.2.0-',
574 silly addNameRange   hasData: false }
575 silly addNameRange { name: 'namp', range: '>=0.2.25- <0.3.0-', hasData: false }
576 silly addNameRange { name: 'node-idevice',
576 silly addNameRange   range: '>=0.1.2- <0.2.0-',
576 silly addNameRange   hasData: false }
577 verbose cache add [ 'win-spawn@~1.1.1', null ]
578 verbose cache add name=undefined spec="win-spawn@~1.1.1" args=["win-spawn@~1.1.1",null]
579 verbose parsed url { protocol: null,
579 verbose parsed url   slashes: null,
579 verbose parsed url   auth: null,
579 verbose parsed url   host: null,
579 verbose parsed url   port: null,
579 verbose parsed url   hostname: null,
579 verbose parsed url   hash: null,
579 verbose parsed url   search: null,
579 verbose parsed url   query: null,
579 verbose parsed url   pathname: 'win-spawn@~1.1.1',
579 verbose parsed url   path: 'win-spawn@~1.1.1',
579 verbose parsed url   href: 'win-spawn@~1.1.1' }
580 verbose cache add name="win-spawn" spec="~1.1.1" args=["win-spawn","~1.1.1"]
581 verbose parsed url { protocol: null,
581 verbose parsed url   slashes: null,
581 verbose parsed url   auth: null,
581 verbose parsed url   host: null,
581 verbose parsed url   port: null,
581 verbose parsed url   hostname: null,
581 verbose parsed url   hash: null,
581 verbose parsed url   search: null,
581 verbose parsed url   query: null,
581 verbose parsed url   pathname: '~1.1.1',
581 verbose parsed url   path: '~1.1.1',
581 verbose parsed url   href: '~1.1.1' }
582 verbose addNamed [ 'win-spawn', '~1.1.1' ]
583 verbose addNamed [ null, '>=1.1.1- <1.2.0-' ]
584 silly lockFile 96a48998-win-spawn-1-1-1 win-spawn@~1.1.1
585 verbose lock win-spawn@~1.1.1 /Users/jmiele/.npm/96a48998-win-spawn-1-1-1.lock
586 verbose cache add [ 'adm-zip@~0.4.3', null ]
587 verbose cache add name=undefined spec="adm-zip@~0.4.3" args=["adm-zip@~0.4.3",null]
588 verbose parsed url { protocol: null,
588 verbose parsed url   slashes: null,
588 verbose parsed url   auth: null,
588 verbose parsed url   host: null,
588 verbose parsed url   port: null,
588 verbose parsed url   hostname: null,
588 verbose parsed url   hash: null,
588 verbose parsed url   search: null,
588 verbose parsed url   query: null,
588 verbose parsed url   pathname: 'adm-zip@~0.4.3',
588 verbose parsed url   path: 'adm-zip@~0.4.3',
588 verbose parsed url   href: 'adm-zip@~0.4.3' }
589 verbose cache add name="adm-zip" spec="~0.4.3" args=["adm-zip","~0.4.3"]
590 verbose parsed url { protocol: null,
590 verbose parsed url   slashes: null,
590 verbose parsed url   auth: null,
590 verbose parsed url   host: null,
590 verbose parsed url   port: null,
590 verbose parsed url   hostname: null,
590 verbose parsed url   hash: null,
590 verbose parsed url   search: null,
590 verbose parsed url   query: null,
590 verbose parsed url   pathname: '~0.4.3',
590 verbose parsed url   path: '~0.4.3',
590 verbose parsed url   href: '~0.4.3' }
591 verbose addNamed [ 'adm-zip', '~0.4.3' ]
592 verbose addNamed [ null, '>=0.4.3- <0.5.0-' ]
593 silly lockFile fd654770-adm-zip-0-4-3 adm-zip@~0.4.3
594 verbose lock adm-zip@~0.4.3 /Users/jmiele/.npm/fd654770-adm-zip-0-4-3.lock
595 verbose cache add [ 'w...@0.4.25', null ]
596 verbose cache add name=undefined spec="w...@0.4.25" args=["w...@0.4.25",null]
597 verbose parsed url { protocol: null,
597 verbose parsed url   slashes: null,
597 verbose parsed url   auth: null,
597 verbose parsed url   host: null,
597 verbose parsed url   port: null,
597 verbose parsed url   hostname: null,
597 verbose parsed url   hash: null,
597 verbose parsed url   search: null,
597 verbose parsed url   query: null,
597 verbose parsed url   pathname: 'w...@0.4.25',
597 verbose parsed url   path: 'w...@0.4.25',
597 verbose parsed url   href: 'w...@0.4.25' }
598 verbose cache add name="ws" spec="0.4.25" args=["ws","0.4.25"]
599 verbose parsed url { protocol: null,
599 verbose parsed url   slashes: null,
599 verbose parsed url   auth: null,
599 verbose parsed url   host: null,
599 verbose parsed url   port: null,
599 verbose parsed url   hostname: null,
599 verbose parsed url   hash: null,
599 verbose parsed url   search: null,
599 verbose parsed url   query: null,
599 verbose parsed url   pathname: '0.4.25',
599 verbose parsed url   path: '0.4.25',
599 verbose parsed url   href: '0.4.25' }
600 verbose addNamed [ 'ws', '0.4.25' ]
601 verbose addNamed [ '0.4.25', '0.4.25' ]
602 silly lockFile b0877b26-ws-0-4-25 w...@0.4.25
603 verbose lock w...@0.4.25 /Users/jmiele/.npm/b0877b26-ws-0-4-25.lock
604 verbose cache add [ 'socket.io@~0.9.14', null ]
605 verbose cache add name=undefined spec="socket.io@~0.9.14" args=["socket.io@~0.9.14",null]
606 verbose parsed url { protocol: null,
606 verbose parsed url   slashes: null,
606 verbose parsed url   auth: null,
606 verbose parsed url   host: null,
606 verbose parsed url   port: null,
606 verbose parsed url   hostname: null,
606 verbose parsed url   hash: null,
606 verbose parsed url   search: null,
606 verbose parsed url   query: null,
606 verbose parsed url   pathname: 'socket.io@~0.9.14',
606 verbose parsed url   path: 'socket.io@~0.9.14',
606 verbose parsed url   href: 'socket.io@~0.9.14' }
607 verbose cache add name="socket.io" spec="~0.9.14" args=["socket.io","~0.9.14"]
608 verbose parsed url { protocol: null,
608 verbose parsed url   slashes: null,
608 verbose parsed url   auth: null,
608 verbose parsed url   host: null,
608 verbose parsed url   port: null,
608 verbose parsed url   hostname: null,
608 verbose parsed url   hash: null,
608 verbose parsed url   search: null,
608 verbose parsed url   query: null,
608 verbose parsed url   pathname: '~0.9.14',
608 verbose parsed url   path: '~0.9.14',
608 verbose parsed url   href: '~0.9.14' }
609 verbose addNamed [ 'socket.io', '~0.9.14' ]
610 verbose addNamed [ null, '>=0.9.14- <0.10.0-' ]
611 silly lockFile f8d595fd-socket-io-0-9-14 socket.io@~0.9.14
612 verbose lock socket.io@~0.9.14 /Users/jmiele/.npm/f8d595fd-socket-io-0-9-14.lock
613 verbose cache add [ 'underscore@~1.4.3', null ]
614 verbose cache add name=undefined spec="underscore@~1.4.3" args=["underscore@~1.4.3",null]
615 verbose parsed url { protocol: null,
615 verbose parsed url   slashes: null,
615 verbose parsed url   auth: null,
615 verbose parsed url   host: null,
615 verbose parsed url   port: null,
615 verbose parsed url   hostname: null,
615 verbose parsed url   hash: null,
615 verbose parsed url   search: null,
615 verbose parsed url   query: null,
615 verbose parsed url   pathname: 'underscore@~1.4.3',
615 verbose parsed url   path: 'underscore@~1.4.3',
615 verbose parsed url   href: 'underscore@~1.4.3' }
616 verbose cache add name="underscore" spec="~1.4.3" args=["underscore","~1.4.3"]
617 verbose parsed url { protocol: null,
617 verbose parsed url   slashes: null,
617 verbose parsed url   auth: null,
617 verbose parsed url   host: null,
617 verbose parsed url   port: null,
617 verbose parsed url   hostname: null,
617 verbose parsed url   hash: null,
617 verbose parsed url   search: null,
617 verbose parsed url   query: null,
617 verbose parsed url   pathname: '~1.4.3',
617 verbose parsed url   path: '~1.4.3',
617 verbose parsed url   href: '~1.4.3' }
618 verbose addNamed [ 'underscore', '~1.4.3' ]
619 verbose addNamed [ null, '>=1.4.3- <1.5.0-' ]
620 silly lockFile 9d86996d-underscore-1-4-3 underscore@~1.4.3
621 verbose lock underscore@~1.4.3 /Users/jmiele/.npm/9d86996d-underscore-1-4-3.lock
622 verbose cache add [ 'colors@~0.6.0-1', null ]
623 verbose cache add name=undefined spec="colors@~0.6.0-1" args=["colors@~0.6.0-1",null]
624 verbose parsed url { protocol: null,
624 verbose parsed url   slashes: null,
624 verbose parsed url   auth: null,
624 verbose parsed url   host: null,
624 verbose parsed url   port: null,
624 verbose parsed url   hostname: null,
624 verbose parsed url   hash: null,
624 verbose parsed url   search: null,
624 verbose parsed url   query: null,
624 verbose parsed url   pathname: 'colors@~0.6.0-1',
624 verbose parsed url   path: 'colors@~0.6.0-1',
624 verbose parsed url   href: 'colors@~0.6.0-1' }
625 verbose cache add name="colors" spec="~0.6.0-1" args=["colors","~0.6.0-1"]
626 verbose parsed url { protocol: null,
626 verbose parsed url   slashes: null,
626 verbose parsed url   auth: null,
626 verbose parsed url   host: null,
626 verbose parsed url   port: null,
626 verbose parsed url   hostname: null,
626 verbose parsed url   hash: null,
626 verbose parsed url   search: null,
626 verbose parsed url   query: null,
626 verbose parsed url   pathname: '~0.6.0-1',
626 verbose parsed url   path: '~0.6.0-1',
626 verbose parsed url   href: '~0.6.0-1' }
627 verbose addNamed [ 'colors', '~0.6.0-1' ]
628 verbose addNamed [ null, '>=0.6.0-1 <0.7.0-' ]
629 silly lockFile f29bff6b-colors-0-6-0-1 colors@~0.6.0-1
630 verbose lock colors@~0.6.0-1 /Users/jmiele/.npm/f29bff6b-colors-0-6-0-1.lock
631 silly addNameRange { name: 'win-spawn', range: '>=1.1.1- <1.2.0-', hasData: false }
632 silly addNameRange { name: 'adm-zip', range: '>=0.4.3- <0.5.0-', hasData: false }
633 silly addNameRange { name: 'socket.io',
633 silly addNameRange   range: '>=0.9.14- <0.10.0-',
633 silly addNameRange   hasData: false }
634 silly addNameRange { name: 'underscore', range: '>=1.4.3- <1.5.0-', hasData: false }
635 silly addNameRange { name: 'colors', range: '>=0.6.0-1 <0.7.0-', hasData: false }
636 verbose url raw argparse
637 verbose url resolving [ 'https://registry.npmjs.org/', './argparse' ]
638 verbose url resolved https://registry.npmjs.org/argparse
639 info trying registry request attempt 1 at 10:59:45
640 verbose etag "B8YZ4OWIU8U0CJ546ZY5KEB5"
642 verbose url raw path
643 verbose url resolving [ 'https://registry.npmjs.org/', './path' ]
644 verbose url resolved https://registry.npmjs.org/path
645 info trying registry request attempt 1 at 10:59:45
646 verbose etag "97DDTHXY7TO96TFXYRWTZ002X"
648 verbose url raw rimraf
649 verbose url resolving [ 'https://registry.npmjs.org/', './rimraf' ]
650 verbose url resolved https://registry.npmjs.org/rimraf
651 info trying registry request attempt 1 at 10:59:45
652 verbose etag "9CP3YNL2JX9XBM7ZA6R9W8BXX"
654 verbose url raw temp
655 verbose url resolving [ 'https://registry.npmjs.org/', './temp' ]
656 verbose url resolved https://registry.npmjs.org/temp
657 info trying registry request attempt 1 at 10:59:45
658 verbose etag "8R3NOGJ6AI7XSN6GA6SBF8FBZ"
660 verbose url raw uuid-js
661 verbose url resolving [ 'https://registry.npmjs.org/', './uuid-js' ]
662 verbose url resolved https://registry.npmjs.org/uuid-js
663 info trying registry request attempt 1 at 10:59:45
664 verbose etag "8LFVQL8RAGNWXUPF7I4PU4JBT"
666 verbose url raw winston
667 verbose url resolving [ 'https://registry.npmjs.org/', './winston' ]
668 verbose url resolved https://registry.npmjs.org/winston
669 info trying registry request attempt 1 at 10:59:45
670 verbose etag "2G6WM6QBHUWKSPRZ7EFN7QL4F"
672 verbose url raw bplist-parser
673 verbose url resolving [ 'https://registry.npmjs.org/', './bplist-parser' ]
675 info trying registry request attempt 1 at 10:59:45
676 verbose etag "5VHUS9H958BXSB85WMHCSKEBS"
678 verbose url raw bufferpack/0.0.6
679 verbose url resolving [ 'https://registry.npmjs.org/', './bufferpack/0.0.6' ]
681 info trying registry request attempt 1 at 10:59:45
682 verbose etag "3XMHFOD13LBTHN1G7TH0R4XCL"
684 verbose url raw bplist-creator
685 verbose url resolving [ 'https://registry.npmjs.org/', './bplist-creator' ]
687 info trying registry request attempt 1 at 10:59:45
688 verbose etag "DFVYG58KRBDNT1W98JEYB5PPI"
690 verbose url raw request
691 verbose url resolving [ 'https://registry.npmjs.org/', './request' ]
692 verbose url resolved https://registry.npmjs.org/request
693 info trying registry request attempt 1 at 10:59:45
694 verbose etag "2V7VE3TYRZGQTWWKM0UM8YZS9"
696 verbose url raw node-uuid
697 verbose url resolving [ 'https://registry.npmjs.org/', './node-uuid' ]
698 verbose url resolved https://registry.npmjs.org/node-uuid
699 info trying registry request attempt 1 at 10:59:45
700 verbose etag "CZIHKDFX3N2GNUZTLU6UCABOW"
702 verbose url raw underscore.string
703 verbose url resolving [ 'https://registry.npmjs.org/', './underscore.string' ]
705 info trying registry request attempt 1 at 10:59:45
706 verbose etag "AEPXVRET6D1PP6QHW7ZCJKN87"
708 verbose url raw glob
709 verbose url resolving [ 'https://registry.npmjs.org/', './glob' ]
710 verbose url resolved https://registry.npmjs.org/glob
711 info trying registry request attempt 1 at 10:59:45
712 verbose etag "CP4KXBMJQ52LP2H1UVB8OH7W9"
714 verbose url raw unzip
715 verbose url resolving [ 'https://registry.npmjs.org/', './unzip' ]
716 verbose url resolved https://registry.npmjs.org/unzip
717 info trying registry request attempt 1 at 10:59:45
718 verbose etag "5ECM1C7LXDHZYZKR5BZZGAF17"
720 verbose url raw ncp
721 verbose url resolving [ 'https://registry.npmjs.org/', './ncp' ]
722 verbose url resolved https://registry.npmjs.org/ncp
723 info trying registry request attempt 1 at 10:59:45
724 verbose etag "B43Z9EPVLCOERL09QIJDNV11D"
726 verbose url raw swig
727 verbose url resolving [ 'https://registry.npmjs.org/', './swig' ]
728 verbose url resolved https://registry.npmjs.org/swig
729 info trying registry request attempt 1 at 10:59:45
730 verbose etag "790VMLKR0XOWDQSGEKR67RFAW"
732 verbose url raw mkdirp
733 verbose url resolving [ 'https://registry.npmjs.org/', './mkdirp' ]
734 verbose url resolved https://registry.npmjs.org/mkdirp
735 info trying registry request attempt 1 at 10:59:45
736 verbose etag "3ULD31ILDU86U22V4KQEZTLOL"
738 verbose url raw xml2js
739 verbose url resolving [ 'https://registry.npmjs.org/', './xml2js' ]
740 verbose url resolved https://registry.npmjs.org/xml2js
741 info trying registry request attempt 1 at 10:59:45
742 verbose etag "9VND9F6PJIJJH27CMDIZIZLKZ"
744 verbose url raw difflib
745 verbose url resolving [ 'https://registry.npmjs.org/', './difflib' ]
746 verbose url resolved https://registry.npmjs.org/difflib
747 info trying registry request attempt 1 at 10:59:45
748 verbose etag "87NPS00X91QK4T18LP4WZ5M6C"
750 verbose url raw prompt
751 verbose url resolving [ 'https://registry.npmjs.org/', './prompt' ]
752 verbose url resolved https://registry.npmjs.org/prompt
753 info trying registry request attempt 1 at 10:59:45
754 verbose etag "BBIETSLXDWCGF5LDMV3PZBHQZ"
756 verbose url raw binary-cookies
757 verbose url resolving [ 'https://registry.npmjs.org/', './binary-cookies' ]
759 info trying registry request attempt 1 at 10:59:45
760 verbose etag "EQOD5PUX61K40F6AJ4ESYQ6NY"
762 verbose url raw node-idevice
763 verbose url resolving [ 'https://registry.npmjs.org/', './node-idevice' ]
765 info trying registry request attempt 1 at 10:59:45
766 verbose etag "AUOMTTLC0ACFLQMWBRVOHVL4V"
768 verbose url raw namp
769 verbose url resolving [ 'https://registry.npmjs.org/', './namp' ]
770 verbose url resolved https://registry.npmjs.org/namp
771 info trying registry request attempt 1 at 10:59:45
772 verbose etag "D706GX649M3B00SPKUNFLK7Y7"
774 verbose url raw async
775 verbose url resolving [ 'https://registry.npmjs.org/', './async' ]
776 verbose url resolved https://registry.npmjs.org/async
777 info trying registry request attempt 1 at 10:59:45
778 verbose etag "6S0U8SDEI89TXNMSEJ8BH9LOR"
780 verbose url raw win-spawn
781 verbose url resolving [ 'https://registry.npmjs.org/', './win-spawn' ]
782 verbose url resolved https://registry.npmjs.org/win-spawn
783 info trying registry request attempt 1 at 10:59:45
784 verbose etag "EB786O3YY2LIU7978CQD9PD3G"
786 verbose url raw adm-zip
787 verbose url resolving [ 'https://registry.npmjs.org/', './adm-zip' ]
788 verbose url resolved https://registry.npmjs.org/adm-zip
789 info trying registry request attempt 1 at 10:59:45
790 verbose etag "21XJPDJR1V32RXCQ3WAHSRTMV"
792 verbose url raw ws/0.4.25
793 verbose url resolving [ 'https://registry.npmjs.org/', './ws/0.4.25' ]
794 verbose url resolved https://registry.npmjs.org/ws/0.4.25
795 info trying registry request attempt 1 at 10:59:45
796 verbose etag "3FL5N1LH6ZZWMVFJQAY8CCVZY"
798 verbose url raw underscore
799 verbose url resolving [ 'https://registry.npmjs.org/', './underscore' ]
800 verbose url resolved https://registry.npmjs.org/underscore
801 info trying registry request attempt 1 at 10:59:45
802 verbose etag "97R88T1AJ9V4XZ30205HSIA5G"
804 verbose url raw colors
805 verbose url resolving [ 'https://registry.npmjs.org/', './colors' ]
806 verbose url resolved https://registry.npmjs.org/colors
807 info trying registry request attempt 1 at 10:59:45
808 verbose etag "7MR9AS2P4VSV7OWD5Q54LLRL1"
810 verbose url raw socket.io
811 verbose url resolving [ 'https://registry.npmjs.org/', './socket.io' ]
812 verbose url resolved https://registry.npmjs.org/socket.io
813 info trying registry request attempt 1 at 10:59:45
814 verbose etag "26V3VKXIFZ5YZK5HXJXWESZIB"
817 silly registry.get cb [ 304,
817 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
817 silly registry.get     etag: '"B4B6OM92DIEGXYFA3ZT1MSP3"',
817 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:45 GMT',
817 silly registry.get     'content-length': '0' } ]
818 verbose etag grunt-cli from cache
820 silly registry.get cb [ 304,
820 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
820 silly registry.get     etag: '"3KUOO137DY7RDG59SR78UTPOY"',
820 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:45 GMT',
820 silly registry.get     'content-length': '0' } ]
821 verbose etag express from cache
823 silly registry.get cb [ 304,
823 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
823 silly registry.get     etag: '"97DDTHXY7TO96TFXYRWTZ002X"',
823 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:45 GMT',
823 silly registry.get     'content-length': '0' } ]
824 verbose etag path from cache
826 silly registry.get cb [ 304,
826 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
826 silly registry.get     etag: '"E2R2G6CX2GH1PC7XKMXG0KIKX"',
826 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
826 silly registry.get     'content-length': '0' } ]
827 verbose etag grunt from cache
828 silly addNameRange number 2 { name: 'grunt-cli', range: '>=0.1.6- <0.2.0-', hasData: true }
829 silly addNameRange versions [ 'grunt-cli',
829 silly addNameRange   [ '0.1.0',
829 silly addNameRange     '0.1.1',
829 silly addNameRange     '0.1.2',
829 silly addNameRange     '0.1.3',
829 silly addNameRange     '0.1.4',
829 silly addNameRange     '0.1.5',
829 silly addNameRange     '0.1.6',
829 silly addNameRange     '0.1.7',
829 silly addNameRange     '0.1.8',
829 silly addNameRange     '0.1.9' ] ]
830 verbose addNamed [ 'grunt-cli', '0.1.9' ]
831 verbose addNamed [ '0.1.9', '0.1.9' ]
832 silly lockFile 8faf2ed8-grunt-cli-0-1-9 grun...@0.1.9
833 verbose lock grun...@0.1.9 /Users/jmiele/.npm/8faf2ed8-grunt-cli-0-1-9.lock
835 silly registry.get cb [ 304,
835 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
835 silly registry.get     etag: '"B8YZ4OWIU8U0CJ546ZY5KEB5"',
835 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
835 silly registry.get     'content-length': '0' } ]
836 verbose etag argparse from cache
837 silly addNameRange number 2 { name: 'express', range: '>=3.0.6- <3.1.0-', hasData: true }
838 silly addNameRange versions [ 'express',
838 silly addNameRange   [ '0.14.0',
838 silly addNameRange     '0.14.1',
838 silly addNameRange     '1.0.0beta',
838 silly addNameRange     '1.0.0beta2',
838 silly addNameRange     '1.0.0rc',
838 silly addNameRange     '1.0.0rc2',
838 silly addNameRange     '1.0.0rc3',
838 silly addNameRange     '1.0.0rc4',
838 silly addNameRange     '1.0.0',
838 silly addNameRange     '1.0.1',
838 silly addNameRange     '1.0.2',
838 silly addNameRange     '1.0.3',
838 silly addNameRange     '1.0.4',
838 silly addNameRange     '1.0.5',
838 silly addNameRange     '1.0.6',
838 silly addNameRange     '1.0.7',
838 silly addNameRange     '2.0.0beta',
838 silly addNameRange     '1.0.8',
838 silly addNameRange     '2.0.0beta2',
838 silly addNameRange     '2.0.0beta3',
838 silly addNameRange     '2.0.0rc',
838 silly addNameRange     '2.0.0rc2',
838 silly addNameRange     '2.0.0rc3',
838 silly addNameRange     '2.0.0',
838 silly addNameRange     '2.1.0',
838 silly addNameRange     '2.1.1',
838 silly addNameRange     '2.2.0',
838 silly addNameRange     '2.2.1',
838 silly addNameRange     '2.2.2',
838 silly addNameRange     '2.3.0',
838 silly addNameRange     '2.3.1',
838 silly addNameRange     '2.3.2',
838 silly addNameRange     '2.3.3',
838 silly addNameRange     '2.3.4',
838 silly addNameRange     '2.3.5',
838 silly addNameRange     '2.3.6',
838 silly addNameRange     '2.3.7',
838 silly addNameRange     '2.3.8',
838 silly addNameRange     '2.3.9',
838 silly addNameRange     '2.3.10',
838 silly addNameRange     '2.3.11',
838 silly addNameRange     '2.3.12',
838 silly addNameRange     '2.4.0',
838 silly addNameRange     '2.4.1',
838 silly addNameRange     '2.4.2',
838 silly addNameRange     '2.4.3',
838 silly addNameRange     '2.4.4',
838 silly addNameRange     '2.4.5',
838 silly addNameRange     '2.4.6',
838 silly addNameRange     '2.4.7',
838 silly addNameRange     '2.5.0',
838 silly addNameRange     '2.5.1',
838 silly addNameRange     '2.5.2',
838 silly addNameRange     '2.5.3',
838 silly addNameRange     '2.5.4',
838 silly addNameRange     '2.5.5',
838 silly addNameRange     '2.5.6',
838 silly addNameRange     '2.5.7',
838 silly addNameRange     '2.5.8',
838 silly addNameRange     '2.5.9',
838 silly addNameRange     '3.0.0alpha1',
838 silly addNameRange     '3.0.0alpha2',
838 silly addNameRange     '3.0.0alpha3',
838 silly addNameRange     '3.0.0alpha4',
838 silly addNameRange     '3.0.0alpha5',
838 silly addNameRange     '3.0.0beta1',
838 silly addNameRange     '3.0.0beta2',
838 silly addNameRange     '3.0.0beta3',
838 silly addNameRange     '2.5.10',
838 silly addNameRange     '3.0.0beta4',
838 silly addNameRange     '2.5.11',
838 silly addNameRange     '3.0.0beta6',
838 silly addNameRange     '3.0.0beta7',
838 silly addNameRange     '3.0.0rc1',
838 silly addNameRange     '3.0.0rc2',
838 silly addNameRange     '3.0.0rc3',
838 silly addNameRange     '3.0.0rc4',
838 silly addNameRange     '3.0.0rc5',
838 silly addNameRange     '3.0.0',
838 silly addNameRange     '3.0.1',
838 silly addNameRange     '3.0.2',
838 silly addNameRange     '3.0.3',
838 silly addNameRange     '3.0.4',
838 silly addNameRange     '3.0.5',
838 silly addNameRange     '3.0.6',
838 silly addNameRange     '3.1.0',
838 silly addNameRange     '3.1.1',
838 silly addNameRange     '3.1.2',
838 silly addNameRange     '3.2.0',
838 silly addNameRange     '3.2.1',
838 silly addNameRange     '3.2.2',
838 silly addNameRange     '3.2.3',
838 silly addNameRange     '3.2.4',
838 silly addNameRange     '3.2.5',
838 silly addNameRange     '3.2.6' ] ]
839 verbose addNamed [ 'express', '3.0.6' ]
840 verbose addNamed [ '3.0.6', '3.0.6' ]
841 silly lockFile e902e1c0-express-3-0-6 exp...@3.0.6
842 verbose lock exp...@3.0.6 /Users/jmiele/.npm/e902e1c0-express-3-0-6.lock
843 verbose read json /Users/jmiele/.npm/grunt-cli/0.1.9/package/package.json
844 silly addNameRange number 2 { name: 'path', range: '>=0.4.9- <0.5.0-', hasData: true }
845 silly addNameRange versions [ 'path', [ '0.4.9' ] ]
846 verbose addNamed [ 'path', '0.4.9' ]
847 verbose addNamed [ '0.4.9', '0.4.9' ]
848 silly lockFile f9561765-path-0-4-9 pa...@0.4.9
849 verbose lock pa...@0.4.9 /Users/jmiele/.npm/f9561765-path-0-4-9.lock
850 verbose read json /Users/jmiele/.npm/express/3.0.6/package/package.json
851 silly addNameRange number 2 { name: 'grunt', range: '>=0.4.0- <0.5.0-', hasData: true }
852 silly addNameRange versions [ 'grunt',
852 silly addNameRange   [ '0.1.0',
852 silly addNameRange     '0.1.1',
852 silly addNameRange     '0.1.2',
852 silly addNameRange     '0.2.0',
852 silly addNameRange     '0.2.1',
852 silly addNameRange     '0.2.2',
852 silly addNameRange     '0.2.3',
852 silly addNameRange     '0.2.4',
852 silly addNameRange     '0.2.5',
852 silly addNameRange     '0.2.6',
852 silly addNameRange     '0.2.7',
852 silly addNameRange     '0.2.8',
852 silly addNameRange     '0.2.9',
852 silly addNameRange     '0.2.10',
852 silly addNameRange     '0.2.11',
852 silly addNameRange     '0.2.12',
852 silly addNameRange     '0.2.13',
852 silly addNameRange     '0.2.14',
852 silly addNameRange     '0.2.15',
852 silly addNameRange     '0.3.0',
852 silly addNameRange     '0.3.1',
852 silly addNameRange     '0.3.2',
852 silly addNameRange     '0.3.3',
852 silly addNameRange     '0.3.4',
852 silly addNameRange     '0.3.5',
852 silly addNameRange     '0.3.6',
852 silly addNameRange     '0.3.7',
852 silly addNameRange     '0.3.8',
852 silly addNameRange     '0.3.9',
852 silly addNameRange     '0.3.10',
852 silly addNameRange     '0.3.11',
852 silly addNameRange     '0.3.12',
852 silly addNameRange     '0.3.13a',
852 silly addNameRange     '0.3.13',
852 silly addNameRange     '0.3.14',
852 silly addNameRange     '0.3.15',
852 silly addNameRange     '0.3.16',
852 silly addNameRange     '0.3.17',
852 silly addNameRange     '0.4.0a',
852 silly addNameRange     '0.4.0rc1',
852 silly addNameRange     '0.4.0rc2',
852 silly addNameRange     '0.4.0rc3',
852 silly addNameRange     '0.4.0rc4',
852 silly addNameRange     '0.4.0rc5',
852 silly addNameRange     '0.4.0rc6',
852 silly addNameRange     '0.4.0rc7',
852 silly addNameRange     '0.4.0rc8',
852 silly addNameRange     '0.4.0',
852 silly addNameRange     '0.4.1' ] ]
853 verbose addNamed [ 'grunt', '0.4.1' ]
854 verbose addNamed [ '0.4.1', '0.4.1' ]
855 silly lockFile f9e87dfe-grunt-0-4-1 gr...@0.4.1
856 verbose lock gr...@0.4.1 /Users/jmiele/.npm/f9e87dfe-grunt-0-4-1.lock
857 verbose read json /Users/jmiele/.npm/path/0.4.9/package/package.json
858 verbose read json /Users/jmiele/.npm/grunt/0.4.1/package/package.json
859 silly addNameRange number 2 { name: 'argparse', range: '>=0.1.10- <0.2.0-', hasData: true }
860 silly addNameRange versions [ 'argparse',
860 silly addNameRange   [ '0.1.0',
860 silly addNameRange     '0.1.1',
860 silly addNameRange     '0.1.2',
860 silly addNameRange     '0.1.3',
860 silly addNameRange     '0.1.4',
860 silly addNameRange     '0.1.5',
860 silly addNameRange     '0.1.6',
860 silly addNameRange     '0.1.7',
860 silly addNameRange     '0.1.8',
860 silly addNameRange     '0.1.9',
860 silly addNameRange     '0.1.10',
860 silly addNameRange     '0.1.11',
860 silly addNameRange     '0.1.12',
860 silly addNameRange     '0.1.13',
860 silly addNameRange     '0.1.14',
860 silly addNameRange     '0.1.15' ] ]
861 verbose addNamed [ 'argparse', '0.1.15' ]
862 verbose addNamed [ '0.1.15', '0.1.15' ]
863 silly lockFile 83c4d43f-argparse-0-1-15 argp...@0.1.15
864 verbose lock argp...@0.1.15 /Users/jmiele/.npm/83c4d43f-argparse-0-1-15.lock
865 warn package.json pa...@0.4.9 No readme data.
866 silly lockFile f9561765-path-0-4-9 pa...@0.4.9
867 silly lockFile f9561765-path-0-4-9 pa...@0.4.9
868 verbose read json /Users/jmiele/.npm/argparse/0.1.15/package/package.json
869 silly lockFile 8faf2ed8-grunt-cli-0-1-9 grun...@0.1.9
870 silly lockFile 8faf2ed8-grunt-cli-0-1-9 grun...@0.1.9
871 silly lockFile dcf59ca8-path-0-4-9 path@~0.4.9
872 silly lockFile dcf59ca8-path-0-4-9 path@~0.4.9
873 silly lockFile e902e1c0-express-3-0-6 exp...@3.0.6
874 silly lockFile e902e1c0-express-3-0-6 exp...@3.0.6
875 silly lockFile 20815348-grunt-cli-0-1-6 grunt-cli@~0.1.6
876 silly lockFile 20815348-grunt-cli-0-1-6 grunt-cli@~0.1.6
877 silly lockFile b14698df-express-3-0-6 express@~3.0.6
878 silly lockFile b14698df-express-3-0-6 express@~3.0.6
879 silly lockFile f9e87dfe-grunt-0-4-1 gr...@0.4.1
880 silly lockFile f9e87dfe-grunt-0-4-1 gr...@0.4.1
881 silly lockFile cba964e3-grunt-0-4-0 grunt@~0.4.0
882 silly lockFile cba964e3-grunt-0-4-0 grunt@~0.4.0
883 silly lockFile 83c4d43f-argparse-0-1-15 argp...@0.1.15
884 silly lockFile 83c4d43f-argparse-0-1-15 argp...@0.1.15
885 silly lockFile dd272505-argparse-0-1-10 argparse@~0.1.10
886 silly lockFile dd272505-argparse-0-1-10 argparse@~0.1.10
888 silly registry.get cb [ 304,
888 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
888 silly registry.get     etag: '"9CP3YNL2JX9XBM7ZA6R9W8BXX"',
888 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
888 silly registry.get     'content-length': '0' } ]
889 verbose etag rimraf from cache
890 silly addNameRange number 2 { name: 'rimraf', range: '>=2.1.1- <2.2.0-', hasData: true }
891 silly addNameRange versions [ 'rimraf',
891 silly addNameRange   [ '1.0.0',
891 silly addNameRange     '1.0.1',
891 silly addNameRange     '1.0.2',
891 silly addNameRange     '1.0.4',
891 silly addNameRange     '1.0.5',
891 silly addNameRange     '1.0.6',
891 silly addNameRange     '1.0.7',
891 silly addNameRange     '1.0.8',
891 silly addNameRange     '1.0.9',
891 silly addNameRange     '2.0.0',
891 silly addNameRange     '2.0.1',
891 silly addNameRange     '2.0.2',
891 silly addNameRange     '2.0.3',
891 silly addNameRange     '2.1.0',
891 silly addNameRange     '2.1.1',
891 silly addNameRange     '2.1.2',
891 silly addNameRange     '2.1.3',
891 silly addNameRange     '2.1.4' ] ]
892 verbose addNamed [ 'rimraf', '2.1.4' ]
893 verbose addNamed [ '2.1.4', '2.1.4' ]
894 silly lockFile faaa5c02-rimraf-2-1-4 rim...@2.1.4
895 verbose lock rim...@2.1.4 /Users/jmiele/.npm/faaa5c02-rimraf-2-1-4.lock
897 silly registry.get cb [ 304,
897 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
897 silly registry.get     etag: '"8R3NOGJ6AI7XSN6GA6SBF8FBZ"',
897 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
897 silly registry.get     'content-length': '0' } ]
898 verbose etag temp from cache
900 silly registry.get cb [ 304,
900 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
900 silly registry.get     etag: '"8LFVQL8RAGNWXUPF7I4PU4JBT"',
900 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
900 silly registry.get     'content-length': '0' } ]
901 verbose etag uuid-js from cache
902 verbose read json /Users/jmiele/.npm/rimraf/2.1.4/package/package.json
903 silly addNameRange number 2 { name: 'temp', range: '>=0.5.0- <0.6.0-', hasData: true }
904 silly addNameRange versions [ 'temp', [ '0.2.0', '0.3.0', '0.4.0', '0.5.0' ] ]
905 verbose addNamed [ 'temp', '0.5.0' ]
906 verbose addNamed [ '0.5.0', '0.5.0' ]
907 silly lockFile 07d61e7d-temp-0-5-0 te...@0.5.0
908 verbose lock te...@0.5.0 /Users/jmiele/.npm/07d61e7d-temp-0-5-0.lock
909 silly addNameRange number 2 { name: 'uuid-js', range: '>=0.7.4- <0.8.0-', hasData: true }
910 silly addNameRange versions [ 'uuid-js',
910 silly addNameRange   [ '0.5.0',
910 silly addNameRange     '0.5.1',
910 silly addNameRange     '0.5.2',
910 silly addNameRange     '0.5.3',
910 silly addNameRange     '0.5.4',
910 silly addNameRange     '0.7.0',
910 silly addNameRange     '0.7.1',
910 silly addNameRange     '0.7.2',
910 silly addNameRange     '0.7.3',
910 silly addNameRange     '0.7.4' ] ]
911 verbose addNamed [ 'uuid-js', '0.7.4' ]
912 verbose addNamed [ '0.7.4', '0.7.4' ]
913 silly lockFile c3c67214-uuid-js-0-7-4 uui...@0.7.4
914 verbose lock uui...@0.7.4 /Users/jmiele/.npm/c3c67214-uuid-js-0-7-4.lock
915 verbose read json /Users/jmiele/.npm/temp/0.5.0/package/package.json
916 verbose read json /Users/jmiele/.npm/uuid-js/0.7.4/package/package.json
917 silly lockFile faaa5c02-rimraf-2-1-4 rim...@2.1.4
918 silly lockFile faaa5c02-rimraf-2-1-4 rim...@2.1.4
919 silly lockFile 6ee9ee1e-rimraf-2-1-1 rimraf@~2.1.1
920 silly lockFile 6ee9ee1e-rimraf-2-1-1 rimraf@~2.1.1
922 silly registry.get cb [ 304,
922 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
922 silly registry.get     etag: '"2G6WM6QBHUWKSPRZ7EFN7QL4F"',
922 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
922 silly registry.get     'content-length': '0' } ]
923 verbose etag winston from cache
925 silly registry.get cb [ 304,
925 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
925 silly registry.get     etag: '"5VHUS9H958BXSB85WMHCSKEBS"',
925 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
925 silly registry.get     'content-length': '0' } ]
926 verbose etag bplist-parser from cache
927 silly lockFile 07d61e7d-temp-0-5-0 te...@0.5.0
928 silly lockFile 07d61e7d-temp-0-5-0 te...@0.5.0
929 silly lockFile c3c67214-uuid-js-0-7-4 uui...@0.7.4
930 silly lockFile c3c67214-uuid-js-0-7-4 uui...@0.7.4
931 silly lockFile dbc60fd3-temp-0-5-0 temp@~0.5.0
932 silly lockFile dbc60fd3-temp-0-5-0 temp@~0.5.0
933 silly lockFile 87b6b3ea-uuid-js-0-7-4 uuid-js@~0.7.4
934 silly lockFile 87b6b3ea-uuid-js-0-7-4 uuid-js@~0.7.4
935 silly addNameRange number 2 { name: 'winston', range: '>=0.6.2- <0.7.0-', hasData: true }
936 silly addNameRange versions [ 'winston',
936 silly addNameRange   [ '0.2.11',
936 silly addNameRange     '0.3.3',
936 silly addNameRange     '0.3.4',
936 silly addNameRange     '0.3.5',
936 silly addNameRange     '0.4.0',
936 silly addNameRange     '0.4.1',
936 silly addNameRange     '0.5.0',
936 silly addNameRange     '0.5.1',
936 silly addNameRange     '0.5.2',
936 silly addNameRange     '0.5.3',
936 silly addNameRange     '0.5.4',
936 silly addNameRange     '0.5.5',
936 silly addNameRange     '0.5.6',
936 silly addNameRange     '0.5.7',
936 silly addNameRange     '0.5.8',
936 silly addNameRange     '0.5.9',
936 silly addNameRange     '0.5.10',
936 silly addNameRange     '0.5.11',
936 silly addNameRange     '0.6.1',
936 silly addNameRange     '0.6.2',
936 silly addNameRange     '0.7.0',
936 silly addNameRange     '0.7.1' ] ]
937 verbose addNamed [ 'winston', '0.6.2' ]
938 verbose addNamed [ '0.6.2', '0.6.2' ]
939 silly lockFile 6b025e09-winston-0-6-2 win...@0.6.2
940 verbose lock win...@0.6.2 /Users/jmiele/.npm/6b025e09-winston-0-6-2.lock
941 verbose read json /Users/jmiele/.npm/winston/0.6.2/package/package.json
942 silly addNameRange number 2 { name: 'bplist-parser',
942 silly addNameRange   range: '>=0.0.4- <0.1.0-',
942 silly addNameRange   hasData: true }
943 silly addNameRange versions [ 'bplist-parser', [ '0.0.1', '0.0.2', '0.0.3', '0.0.4' ] ]
944 verbose addNamed [ 'bplist-parser', '0.0.4' ]
945 verbose addNamed [ '0.0.4', '0.0.4' ]
946 silly lockFile e63cc871-bplist-parser-0-0-4 bplist...@0.0.4
947 verbose lock bplist...@0.0.4 /Users/jmiele/.npm/e63cc871-bplist-parser-0-0-4.lock
948 verbose read json /Users/jmiele/.npm/bplist-parser/0.0.4/package/package.json
949 silly lockFile 6b025e09-winston-0-6-2 win...@0.6.2
950 silly lockFile 6b025e09-winston-0-6-2 win...@0.6.2
951 silly lockFile 6903f670-winston-0-6-2 winston@~0.6.2
952 silly lockFile 6903f670-winston-0-6-2 winston@~0.6.2
953 silly lockFile e63cc871-bplist-parser-0-0-4 bplist...@0.0.4
954 silly lockFile e63cc871-bplist-parser-0-0-4 bplist...@0.0.4
955 silly lockFile 986c5092-bplist-parser-0-0-4 bplist-parser@~0.0.4
956 silly lockFile 986c5092-bplist-parser-0-0-4 bplist-parser@~0.0.4
958 silly registry.get cb [ 304,
958 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
958 silly registry.get     etag: '"3XMHFOD13LBTHN1G7TH0R4XCL"',
958 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
958 silly registry.get     'content-length': '0' } ]
959 verbose etag bufferpack/0.0.6 from cache
961 silly registry.get cb [ 304,
961 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
961 silly registry.get     etag: '"2V7VE3TYRZGQTWWKM0UM8YZS9"',
961 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
961 silly registry.get     'content-length': '0' } ]
962 verbose etag request from cache
964 silly registry.get cb [ 304,
964 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
964 silly registry.get     etag: '"DFVYG58KRBDNT1W98JEYB5PPI"',
964 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
964 silly registry.get     'content-length': '0' } ]
965 verbose etag bplist-creator from cache
967 silly registry.get cb [ 304,
967 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
967 silly registry.get     etag: '"CZIHKDFX3N2GNUZTLU6UCABOW"',
967 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
967 silly registry.get     'content-length': '0' } ]
968 verbose etag node-uuid from cache
969 verbose read json /Users/jmiele/.npm/bufferpack/0.0.6/package/package.json
970 silly addNameRange number 2 { name: 'request', range: '>=2.12.0- <2.13.0-', hasData: true }
971 silly addNameRange versions [ 'request',
971 silly addNameRange   [ '0.10.0',
971 silly addNameRange     '0.8.3',
971 silly addNameRange     '0.9.0',
971 silly addNameRange     '0.9.1',
971 silly addNameRange     '0.9.5',
971 silly addNameRange     '1.0.0',
971 silly addNameRange     '1.1.0',
971 silly addNameRange     '1.1.1',
971 silly addNameRange     '1.2.0',
971 silly addNameRange     '1.9.0',
971 silly addNameRange     '1.9.1',
971 silly addNameRange     '1.9.2',
971 silly addNameRange     '1.9.3',
971 silly addNameRange     '1.9.5',
971 silly addNameRange     '1.9.7',
971 silly addNameRange     '1.9.8',
971 silly addNameRange     '1.9.9',
971 silly addNameRange     '2.0.0',
971 silly addNameRange     '2.0.1',
971 silly addNameRange     '2.0.2',
971 silly addNameRange     '2.0.3',
971 silly addNameRange     '2.0.4',
971 silly addNameRange     '2.0.5',
971 silly addNameRange     '2.1.0',
971 silly addNameRange     '2.1.1',
971 silly addNameRange     '2.2.0',
971 silly addNameRange     '2.2.5',
971 silly addNameRange     '2.2.6',
971 silly addNameRange     '2.2.9',
971 silly addNameRange     '2.9.0',
971 silly addNameRange     '2.9.1',
971 silly addNameRange     '2.9.2',
971 silly addNameRange     '2.9.3',
971 silly addNameRange     '2.9.100',
971 silly addNameRange     '2.9.150',
971 silly addNameRange     '2.9.151',
971 silly addNameRange     '2.9.152',
971 silly addNameRange     '2.9.153',
971 silly addNameRange     '2.9.200',
971 silly addNameRange     '2.9.201',
971 silly addNameRange     '2.9.202',
971 silly addNameRange     '2.9.203',
971 silly addNameRange     '2.10.0',
971 silly addNameRange     '2.11.0',
971 silly addNameRange     '2.11.1',
971 silly addNameRange     '2.11.2',
971 silly addNameRange     '2.11.3',
971 silly addNameRange     '2.11.4',
971 silly addNameRange     '2.12.0',
971 silly addNameRange     '2.14.0',
971 silly addNameRange     '2.16.0',
971 silly addNameRange     '2.16.2',
971 silly addNameRange     '2.16.4',
971 silly addNameRange     '2.16.6',
971 silly addNameRange     '2.18.0',
971 silly addNameRange     '2.19.0',
971 silly addNameRange     '2.20.0',
971 silly addNameRange     '2.21.0' ] ]
972 verbose addNamed [ 'request', '2.12.0' ]
973 verbose addNamed [ '2.12.0', '2.12.0' ]
974 silly lockFile ba282548-request-2-12-0 req...@2.12.0
975 verbose lock req...@2.12.0 /Users/jmiele/.npm/ba282548-request-2-12-0.lock
976 silly addNameRange number 2 { name: 'bplist-creator',
976 silly addNameRange   range: '>=0.0.2- <0.1.0-',
976 silly addNameRange   hasData: true }
977 silly addNameRange versions [ 'bplist-creator', [ '0.0.2' ] ]
978 verbose addNamed [ 'bplist-creator', '0.0.2' ]
979 verbose addNamed [ '0.0.2', '0.0.2' ]
980 silly lockFile ec73a0c7-bplist-creator-0-0-2 bplist-...@0.0.2
981 verbose lock bplist-...@0.0.2 /Users/jmiele/.npm/ec73a0c7-bplist-creator-0-0-2.lock
982 verbose read json /Users/jmiele/.npm/request/2.12.0/package/package.json
983 silly addNameRange number 2 { name: 'node-uuid', range: '>=1.4.0- <1.5.0-', hasData: true }
984 silly addNameRange versions [ 'node-uuid',
984 silly addNameRange   [ '1.2.0',
984 silly addNameRange     '1.3.0',
984 silly addNameRange     '1.3.1',
984 silly addNameRange     '1.3.2',
984 silly addNameRange     '1.1.0',
984 silly addNameRange     '1.0.0',
984 silly addNameRange     '1.3.3',
984 silly addNameRange     '1.4.0' ] ]
985 verbose addNamed [ 'node-uuid', '1.4.0' ]
986 verbose addNamed [ '1.4.0', '1.4.0' ]
987 silly lockFile 788da469-node-uuid-1-4-0 node...@1.4.0
988 verbose lock node...@1.4.0 /Users/jmiele/.npm/788da469-node-uuid-1-4-0.lock
989 verbose read json /Users/jmiele/.npm/bplist-creator/0.0.2/package/package.json
990 warn package.json buffe...@0.0.6 No readme data.
991 silly lockFile 4ea549c7-bufferpack-0-0-6 buffe...@0.0.6
992 silly lockFile 4ea549c7-bufferpack-0-0-6 buffe...@0.0.6
993 verbose read json /Users/jmiele/.npm/node-uuid/1.4.0/package/package.json
994 silly lockFile ba282548-request-2-12-0 req...@2.12.0
995 silly lockFile ba282548-request-2-12-0 req...@2.12.0
997 silly registry.get cb [ 304,
997 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
997 silly registry.get     etag: '"AEPXVRET6D1PP6QHW7ZCJKN87"',
997 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
997 silly registry.get     'content-length': '0' } ]
998 verbose etag underscore.string from cache
999 silly lockFile ec73a0c7-bplist-creator-0-0-2 bplist-...@0.0.2
1000 silly lockFile ec73a0c7-bplist-creator-0-0-2 bplist-...@0.0.2
1001 silly lockFile b6c36044-request-2-12-0 request@~2.12.0
1002 silly lockFile b6c36044-request-2-12-0 request@~2.12.0
1003 silly lockFile 788da469-node-uuid-1-4-0 node...@1.4.0
1004 silly lockFile 788da469-node-uuid-1-4-0 node...@1.4.0
1005 silly lockFile 53408cb3-bplist-creator-0-0-2 bplist-creator@~0.0.2
1006 silly lockFile 53408cb3-bplist-creator-0-0-2 bplist-creator@~0.0.2
1007 silly lockFile f662725f-node-uuid-1-4-0 node-uuid@~1.4.0
1008 silly lockFile f662725f-node-uuid-1-4-0 node-uuid@~1.4.0
1009 silly addNameRange number 2 { name: 'underscore.string',
1009 silly addNameRange   range: '>=2.3.1- <2.4.0-',
1009 silly addNameRange   hasData: true }
1010 silly addNameRange versions [ 'underscore.string',
1010 silly addNameRange   [ '0.9.2',
1010 silly addNameRange     '1.0.0',
1010 silly addNameRange     '1.1.3',
1010 silly addNameRange     '1.1.4',
1010 silly addNameRange     '1.1.5',
1010 silly addNameRange     '1.1.6',
1010 silly addNameRange     '2.0.0',
1010 silly addNameRange     '2.1.0',
1010 silly addNameRange     '2.1.1',
1010 silly addNameRange     '2.2.0rc',
1010 silly addNameRange     '2.3.0',
1010 silly addNameRange     '2.3.1' ] ]
1011 verbose addNamed [ 'underscore.string', '2.3.1' ]
1012 verbose addNamed [ '2.3.1', '2.3.1' ]
1013 silly lockFile 6bb08d52-underscore-string-2-3-1 undersco...@2.3.1
1014 verbose lock undersco...@2.3.1 /Users/jmiele/.npm/6bb08d52-underscore-string-2-3-1.lock
1015 verbose read json /Users/jmiele/.npm/underscore.string/2.3.1/package/package.json
1016 silly lockFile 6bb08d52-underscore-string-2-3-1 undersco...@2.3.1
1017 silly lockFile 6bb08d52-underscore-string-2-3-1 undersco...@2.3.1
1018 silly lockFile b2b19648-underscore-string-2-3-1 underscore.string@~2.3.1
1019 silly lockFile b2b19648-underscore-string-2-3-1 underscore.string@~2.3.1
1021 silly registry.get cb [ 304,
1021 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
1021 silly registry.get     etag: '"CP4KXBMJQ52LP2H1UVB8OH7W9"',
1021 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
1021 silly registry.get     'content-length': '0' } ]
1022 verbose etag glob from cache
1023 silly addNameRange number 2 { name: 'glob', range: '>=3.1.20- <3.2.0-', hasData: true }
1024 silly addNameRange versions [ 'glob',
1024 silly addNameRange   [ '1.1.0',
1024 silly addNameRange     '2.0.9',
1024 silly addNameRange     '2.0.8',
1024 silly addNameRange     '2.0.7',
1024 silly addNameRange     '2.1.0',
1024 silly addNameRange     '3.0.0',
1024 silly addNameRange     '3.0.1',
1024 silly addNameRange     '3.1.0',
1024 silly addNameRange     '3.1.1',
1024 silly addNameRange     '3.1.2',
1024 silly addNameRange     '3.1.3',
1024 silly addNameRange     '3.1.4',
1024 silly addNameRange     '3.1.5',
1024 silly addNameRange     '3.1.6',
1024 silly addNameRange     '3.1.7',
1024 silly addNameRange     '3.1.9',
1024 silly addNameRange     '3.1.10',
1024 silly addNameRange     '3.1.11',
1024 silly addNameRange     '3.1.12',
1024 silly addNameRange     '3.1.13',
1024 silly addNameRange     '3.1.14',
1024 silly addNameRange     '3.1.15',
1024 silly addNameRange     '3.1.16',
1024 silly addNameRange     '3.1.17',
1024 silly addNameRange     '3.1.18',
1024 silly addNameRange     '3.1.19',
1024 silly addNameRange     '3.1.20',
1024 silly addNameRange     '3.1.21',
1024 silly addNameRange     '3.2.0',
1024 silly addNameRange     '3.2.1' ] ]
1025 verbose addNamed [ 'glob', '3.1.21' ]
1026 verbose addNamed [ '3.1.21', '3.1.21' ]
1027 silly lockFile ab465912-glob-3-1-21 gl...@3.1.21
1028 verbose lock gl...@3.1.21 /Users/jmiele/.npm/ab465912-glob-3-1-21.lock
1030 silly registry.get cb [ 304,
1030 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
1030 silly registry.get     etag: '"5ECM1C7LXDHZYZKR5BZZGAF17"',
1030 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
1030 silly registry.get     'content-length': '0' } ]
1031 verbose etag unzip from cache
1032 verbose read json /Users/jmiele/.npm/glob/3.1.21/package/package.json
1033 silly addNameRange number 2 { name: 'unzip', range: '>=0.1.1- <0.2.0-', hasData: true }
1034 silly addNameRange versions [ 'unzip',
1034 silly addNameRange   [ '0.0.1',
1034 silly addNameRange     '0.0.2',
1034 silly addNameRange     '0.0.3',
1034 silly addNameRange     '0.0.4',
1034 silly addNameRange     '0.1.0',
1034 silly addNameRange     '0.1.1',
1034 silly addNameRange     '0.1.2',
1034 silly addNameRange     '0.1.3',
1034 silly addNameRange     '0.1.4',
1034 silly addNameRange     '0.1.5',
1034 silly addNameRange     '0.1.6-alpha',
1034 silly addNameRange     '0.1.6',
1034 silly addNameRange     '0.1.7' ] ]
1035 verbose addNamed [ 'unzip', '0.1.7' ]
1036 verbose addNamed [ '0.1.7', '0.1.7' ]
1037 silly lockFile d9f02e72-unzip-0-1-7 un...@0.1.7
1038 verbose lock un...@0.1.7 /Users/jmiele/.npm/d9f02e72-unzip-0-1-7.lock
1039 verbose read json /Users/jmiele/.npm/unzip/0.1.7/package/package.json
1040 silly lockFile ab465912-glob-3-1-21 gl...@3.1.21
1041 silly lockFile ab465912-glob-3-1-21 gl...@3.1.21
1042 silly lockFile 8a3aac7e-glob-3-1-20 glob@~3.1.20
1043 silly lockFile 8a3aac7e-glob-3-1-20 glob@~3.1.20
1045 silly registry.get cb [ 304,
1045 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
1045 silly registry.get     etag: '"B43Z9EPVLCOERL09QIJDNV11D"',
1045 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
1045 silly registry.get     'content-length': '0' } ]
1046 verbose etag ncp from cache
1048 silly registry.get cb [ 304,
1048 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
1048 silly registry.get     etag: '"790VMLKR0XOWDQSGEKR67RFAW"',
1048 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
1048 silly registry.get     'content-length': '0' } ]
1049 verbose etag swig from cache
1050 silly lockFile d9f02e72-unzip-0-1-7 un...@0.1.7
1051 silly lockFile d9f02e72-unzip-0-1-7 un...@0.1.7
1052 silly lockFile e060b63f-unzip-0-1-1 unzip@~0.1.1
1053 silly lockFile e060b63f-unzip-0-1-1 unzip@~0.1.1
1054 silly addNameRange number 2 { name: 'ncp', range: '>=0.4.2- <0.5.0-', hasData: true }
1055 silly addNameRange versions [ 'ncp',
1055 silly addNameRange   [ '0.0.0',
1055 silly addNameRange     '0.0.1',
1055 silly addNameRange     '0.0.2',
1055 silly addNameRange     '0.1.0',
1055 silly addNameRange     '0.1.1',
1055 silly addNameRange     '0.1.2',
1055 silly addNameRange     '0.2.0',
1055 silly addNameRange     '0.2.1',
1055 silly addNameRange     '0.2.2',
1055 silly addNameRange     '0.2.3',
1055 silly addNameRange     '0.2.4',
1055 silly addNameRange     '0.2.5',
1055 silly addNameRange     '0.2.6',
1055 silly addNameRange     '0.3.0',
1055 silly addNameRange     '0.4.0',
1055 silly addNameRange     '0.2.7',
1055 silly addNameRange     '0.4.1',
1055 silly addNameRange     '0.4.2' ] ]
1056 verbose addNamed [ 'ncp', '0.4.2' ]
1057 verbose addNamed [ '0.4.2', '0.4.2' ]
1058 silly lockFile e43cb36a-ncp-0-4-2 n...@0.4.2
1059 verbose lock n...@0.4.2 /Users/jmiele/.npm/e43cb36a-ncp-0-4-2.lock
1060 silly addNameRange number 2 { name: 'swig', range: '>=0.13.5- <0.14.0-', hasData: true }
1061 silly addNameRange versions [ 'swig',
1061 silly addNameRange   [ '0.1.1',
1061 silly addNameRange     '0.1.2',
1061 silly addNameRange     '0.1.3',
1061 silly addNameRange     '0.1.5',
1061 silly addNameRange     '0.1.6',
1061 silly addNameRange     '0.1.7',
1061 silly addNameRange     '0.1.8',
1061 silly addNameRange     '0.1.9',
1061 silly addNameRange     '0.2.0',
1061 silly addNameRange     '0.2.1',
1061 silly addNameRange     '0.2.2',
1061 silly addNameRange     '0.2.3',
1061 silly addNameRange     '0.3.0',
1061 silly addNameRange     '0.4.0',
1061 silly addNameRange     '0.5.0',
1061 silly addNameRange     '0.6.0',
1061 silly addNameRange     '0.6.1',
1061 silly addNameRange     '0.7.0',
1061 silly addNameRange     '0.8.0',
1061 silly addNameRange     '0.9.0',
1061 silly addNameRange     '0.9.1',
1061 silly addNameRange     '0.9.2',
1061 silly addNameRange     '0.9.3',
1061 silly addNameRange     '0.9.4',
1061 silly addNameRange     '0.10.0',
1061 silly addNameRange     '0.11.0',
1061 silly addNameRange     '0.11.1',
1061 silly addNameRange     '0.11.2',
1061 silly addNameRange     '0.12.0',
1061 silly addNameRange     '0.12.1',
1061 silly addNameRange     '0.13.0',
1061 silly addNameRange     '0.13.1',
1061 silly addNameRange     '0.13.2',
1061 silly addNameRange     '0.13.3',
1061 silly addNameRange     '0.13.4',
1061 silly addNameRange     '0.13.5' ] ]
1062 verbose addNamed [ 'swig', '0.13.5' ]
1063 verbose addNamed [ '0.13.5', '0.13.5' ]
1064 silly lockFile 932e85b9-swig-0-13-5 sw...@0.13.5
1065 verbose lock sw...@0.13.5 /Users/jmiele/.npm/932e85b9-swig-0-13-5.lock
1066 verbose read json /Users/jmiele/.npm/ncp/0.4.2/package/package.json
1067 verbose read json /Users/jmiele/.npm/swig/0.13.5/package/package.json
1068 silly lockFile e43cb36a-ncp-0-4-2 n...@0.4.2
1069 silly lockFile e43cb36a-ncp-0-4-2 n...@0.4.2
1070 silly lockFile 932e85b9-swig-0-13-5 sw...@0.13.5
1071 silly lockFile 932e85b9-swig-0-13-5 sw...@0.13.5
1072 silly lockFile 1f31aeaa-ncp-0-4-2 ncp@~0.4.2
1073 silly lockFile 1f31aeaa-ncp-0-4-2 ncp@~0.4.2
1074 silly lockFile d65d0342-swig-0-13-5 swig@~0.13.5
1075 silly lockFile d65d0342-swig-0-13-5 swig@~0.13.5
1077 silly registry.get cb [ 304,
1077 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
1077 silly registry.get     etag: '"3ULD31ILDU86U22V4KQEZTLOL"',
1077 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
1077 silly registry.get     'content-length': '0' } ]
1078 verbose etag mkdirp from cache
1079 silly addNameRange number 2 { name: 'mkdirp', range: '>=0.3.5- <0.4.0-', hasData: true }
1080 silly addNameRange versions [ 'mkdirp',
1080 silly addNameRange   [ '0.0.1',
1080 silly addNameRange     '0.0.2',
1080 silly addNameRange     '0.0.3',
1080 silly addNameRange     '0.0.4',
1080 silly addNameRange     '0.0.5',
1080 silly addNameRange     '0.0.6',
1080 silly addNameRange     '0.0.7',
1080 silly addNameRange     '0.1.0',
1080 silly addNameRange     '0.2.0',
1080 silly addNameRange     '0.2.1',
1080 silly addNameRange     '0.2.2',
1080 silly addNameRange     '0.3.0',
1080 silly addNameRange     '0.3.1',
1080 silly addNameRange     '0.3.2',
1080 silly addNameRange     '0.3.3',
1080 silly addNameRange     '0.3.4',
1080 silly addNameRange     '0.3.5' ] ]
1081 verbose addNamed [ 'mkdirp', '0.3.5' ]
1082 verbose addNamed [ '0.3.5', '0.3.5' ]
1083 silly lockFile 67d2df2a-mkdirp-0-3-5 mkd...@0.3.5
1084 verbose lock mkd...@0.3.5 /Users/jmiele/.npm/67d2df2a-mkdirp-0-3-5.lock
1085 verbose read json /Users/jmiele/.npm/mkdirp/0.3.5/package/package.json
1086 silly lockFile 67d2df2a-mkdirp-0-3-5 mkd...@0.3.5
1087 silly lockFile 67d2df2a-mkdirp-0-3-5 mkd...@0.3.5
1088 silly lockFile c3f0fe9b-mkdirp-0-3-5 mkdirp@~0.3.5
1089 silly lockFile c3f0fe9b-mkdirp-0-3-5 mkdirp@~0.3.5
1091 silly registry.get cb [ 304,
1091 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
1091 silly registry.get     etag: '"9VND9F6PJIJJH27CMDIZIZLKZ"',
1091 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
1091 silly registry.get     'content-length': '0' } ]
1092 verbose etag xml2js from cache
1093 silly addNameRange number 2 { name: 'xml2js', range: '>=0.2.6- <0.3.0-', hasData: true }
1094 silly addNameRange versions [ 'xml2js',
1094 silly addNameRange   [ '0.1.0',
1094 silly addNameRange     '0.1.1',
1094 silly addNameRange     '0.1.2',
1094 silly addNameRange     '0.1.3',
1094 silly addNameRange     '0.1.4',
1094 silly addNameRange     '0.1.5',
1094 silly addNameRange     '0.1.6',
1094 silly addNameRange     '0.1.7',
1094 silly addNameRange     '0.1.8',
1094 silly addNameRange     '0.1.9',
1094 silly addNameRange     '0.1.10',
1094 silly addNameRange     '0.1.11',
1094 silly addNameRange     '0.1.12',
1094 silly addNameRange     '0.1.13',
1094 silly addNameRange     '0.1.14',
1094 silly addNameRange     '0.2.0',
1094 silly addNameRange     '0.2.1',
1094 silly addNameRange     '0.2.2',
1094 silly addNameRange     '0.2.3',
1094 silly addNameRange     '0.2.4',
1094 silly addNameRange     '0.2.5',
1094 silly addNameRange     '0.2.6',
1094 silly addNameRange     '0.2.7' ] ]
1095 verbose addNamed [ 'xml2js', '0.2.7' ]
1096 verbose addNamed [ '0.2.7', '0.2.7' ]
1097 silly lockFile c44e188b-xml2js-0-2-7 xml...@0.2.7
1098 verbose lock xml...@0.2.7 /Users/jmiele/.npm/c44e188b-xml2js-0-2-7.lock
1100 silly registry.get cb [ 304,
1100 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
1100 silly registry.get     etag: '"87NPS00X91QK4T18LP4WZ5M6C"',
1100 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
1100 silly registry.get     'content-length': '0' } ]
1101 verbose etag difflib from cache
1102 verbose read json /Users/jmiele/.npm/xml2js/0.2.7/package/package.json
1103 silly addNameRange number 2 { name: 'difflib', range: '>=0.2.4- <0.3.0-', hasData: true }
1104 silly addNameRange versions [ 'difflib',
1104 silly addNameRange   [ '0.1.0',
1104 silly addNameRange     '0.1.1',
1104 silly addNameRange     '0.1.2',
1104 silly addNameRange     '0.1.3',
1104 silly addNameRange     '0.2.0',
1104 silly addNameRange     '0.2.1',
1104 silly addNameRange     '0.2.3',
1104 silly addNameRange     '0.2.4' ] ]
1105 verbose addNamed [ 'difflib', '0.2.4' ]
1106 verbose addNamed [ '0.2.4', '0.2.4' ]
1107 silly lockFile 1849a84b-difflib-0-2-4 dif...@0.2.4
1108 verbose lock dif...@0.2.4 /Users/jmiele/.npm/1849a84b-difflib-0-2-4.lock
1109 verbose read json /Users/jmiele/.npm/difflib/0.2.4/package/package.json
1110 silly lockFile c44e188b-xml2js-0-2-7 xml...@0.2.7
1111 silly lockFile c44e188b-xml2js-0-2-7 xml...@0.2.7
1112 silly lockFile b0aaf898-xml2js-0-2-6 xml2js@~0.2.6
1113 silly lockFile b0aaf898-xml2js-0-2-6 xml2js@~0.2.6
1114 silly lockFile 1849a84b-difflib-0-2-4 dif...@0.2.4
1115 silly lockFile 1849a84b-difflib-0-2-4 dif...@0.2.4
1116 silly lockFile 0129da30-difflib-0-2-4 difflib@~0.2.4
1117 silly lockFile 0129da30-difflib-0-2-4 difflib@~0.2.4
1119 silly registry.get cb [ 304,
1119 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
1119 silly registry.get     etag: '"BBIETSLXDWCGF5LDMV3PZBHQZ"',
1119 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
1119 silly registry.get     'content-length': '0' } ]
1120 verbose etag prompt from cache
1122 silly registry.get cb [ 304,
1122 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
1122 silly registry.get     etag: '"EQOD5PUX61K40F6AJ4ESYQ6NY"',
1122 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
1122 silly registry.get     'content-length': '0' } ]
1123 verbose etag binary-cookies from cache
1124 silly addNameRange number 2 { name: 'prompt', range: '>=0.2.9- <0.3.0-', hasData: true }
1125 silly addNameRange versions [ 'prompt',
1125 silly addNameRange   [ '0.0.1',
1125 silly addNameRange     '0.0.2',
1125 silly addNameRange     '0.0.3',
1125 silly addNameRange     '0.0.4',
1125 silly addNameRange     '0.1.0',
1125 silly addNameRange     '0.1.1',
1125 silly addNameRange     '0.1.2',
1125 silly addNameRange     '0.1.3',
1125 silly addNameRange     '0.1.4',
1125 silly addNameRange     '0.1.5',
1125 silly addNameRange     '0.1.7',
1125 silly addNameRange     '0.1.8',
1125 silly addNameRange     '0.1.9',
1125 silly addNameRange     '0.1.10',
1125 silly addNameRange     '0.1.11',
1125 silly addNameRange     '0.1.12',
1125 silly addNameRange     '0.2.0',
1125 silly addNameRange     '0.2.1',
1125 silly addNameRange     '0.2.2',
1125 silly addNameRange     '0.2.3',
1125 silly addNameRange     '0.2.4',
1125 silly addNameRange     '0.2.5',
1125 silly addNameRange     '0.2.6',
1125 silly addNameRange     '0.2.7',
1125 silly addNameRange     '0.2.8',
1125 silly addNameRange     '0.2.9' ] ]
1126 verbose addNamed [ 'prompt', '0.2.9' ]
1127 verbose addNamed [ '0.2.9', '0.2.9' ]
1128 silly lockFile b16a8d3f-prompt-0-2-9 pro...@0.2.9
1129 verbose lock pro...@0.2.9 /Users/jmiele/.npm/b16a8d3f-prompt-0-2-9.lock
1130 verbose read json /Users/jmiele/.npm/prompt/0.2.9/package/package.json
1131 silly addNameRange number 2 { name: 'binary-cookies',
1131 silly addNameRange   range: '>=0.1.1- <0.2.0-',
1131 silly addNameRange   hasData: true }
1132 silly addNameRange versions [ 'binary-cookies', [ '0.1.0', '0.1.1' ] ]
1133 verbose addNamed [ 'binary-cookies', '0.1.1' ]
1134 verbose addNamed [ '0.1.1', '0.1.1' ]
1135 silly lockFile 58fa5424-binary-cookies-0-1-1 binary-...@0.1.1
1136 verbose lock binary-...@0.1.1 /Users/jmiele/.npm/58fa5424-binary-cookies-0-1-1.lock
1137 verbose read json /Users/jmiele/.npm/binary-cookies/0.1.1/package/package.json
1138 silly lockFile b16a8d3f-prompt-0-2-9 pro...@0.2.9
1139 silly lockFile b16a8d3f-prompt-0-2-9 pro...@0.2.9
1140 silly lockFile 482147a8-prompt-0-2-9 prompt@~0.2.9
1141 silly lockFile 482147a8-prompt-0-2-9 prompt@~0.2.9
1142 silly lockFile 58fa5424-binary-cookies-0-1-1 binary-...@0.1.1
1143 silly lockFile 58fa5424-binary-cookies-0-1-1 binary-...@0.1.1
1144 silly lockFile 3fe2e872-binary-cookies-0-1-1 binary-cookies@~0.1.1
1145 silly lockFile 3fe2e872-binary-cookies-0-1-1 binary-cookies@~0.1.1
1147 silly registry.get cb [ 304,
1147 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
1147 silly registry.get     etag: '"AUOMTTLC0ACFLQMWBRVOHVL4V"',
1147 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
1147 silly registry.get     'content-length': '0' } ]
1148 verbose etag node-idevice from cache
1149 silly addNameRange number 2 { name: 'node-idevice',
1149 silly addNameRange   range: '>=0.1.2- <0.2.0-',
1149 silly addNameRange   hasData: true }
1150 silly addNameRange versions [ 'node-idevice', [ '0.1.0', '0.1.1', '0.1.2' ] ]
1151 verbose addNamed [ 'node-idevice', '0.1.2' ]
1152 verbose addNamed [ '0.1.2', '0.1.2' ]
1153 silly lockFile 9d161607-node-idevice-0-1-2 node-i...@0.1.2
1154 verbose lock node-i...@0.1.2 /Users/jmiele/.npm/9d161607-node-idevice-0-1-2.lock
1155 verbose read json /Users/jmiele/.npm/node-idevice/0.1.2/package/package.json
1156 warn package.json node-i...@0.1.2 No repository field.
1157 silly lockFile 9d161607-node-idevice-0-1-2 node-i...@0.1.2
1158 silly lockFile 9d161607-node-idevice-0-1-2 node-i...@0.1.2
1159 silly lockFile 66c9ac35-node-idevice-0-1-2 node-idevice@~0.1.2
1160 silly lockFile 66c9ac35-node-idevice-0-1-2 node-idevice@~0.1.2
1162 silly registry.get cb [ 304,
1162 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
1162 silly registry.get     etag: '"D706GX649M3B00SPKUNFLK7Y7"',
1162 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
1162 silly registry.get     'content-length': '0' } ]
1163 verbose etag namp from cache
1164 silly addNameRange number 2 { name: 'namp', range: '>=0.2.25- <0.3.0-', hasData: true }
1165 silly addNameRange versions [ 'namp',
1165 silly addNameRange   [ '0.1.1',
1165 silly addNameRange     '0.1.2',
1165 silly addNameRange     '0.1.3',
1165 silly addNameRange     '0.1.4',
1165 silly addNameRange     '0.1.6',
1165 silly addNameRange     '0.1.7',
1165 silly addNameRange     '0.1.8',
1165 silly addNameRange     '0.2.0',
1165 silly addNameRange     '0.2.1',
1165 silly addNameRange     '0.2.2',
1165 silly addNameRange     '0.2.3',
1165 silly addNameRange     '0.2.4',
1165 silly addNameRange     '0.2.5',
1165 silly addNameRange     '0.2.6',
1165 silly addNameRange     '0.2.8',
1165 silly addNameRange     '0.2.9',
1165 silly addNameRange     '0.2.10',
1165 silly addNameRange     '0.2.11',
1165 silly addNameRange     '0.2.12',
1165 silly addNameRange     '0.2.13',
1165 silly addNameRange     '0.2.14',
1165 silly addNameRange     '0.2.15',
1165 silly addNameRange     '0.2.16',
1165 silly addNameRange     '0.2.17',
1165 silly addNameRange     '0.2.18',
1165 silly addNameRange     '0.2.19',
1165 silly addNameRange     '0.2.20',
1165 silly addNameRange     '0.2.21',
1165 silly addNameRange     '0.2.22',
1165 silly addNameRange     '0.2.23',
1165 silly addNameRange     '0.2.24',
1165 silly addNameRange     '0.2.25' ] ]
1166 verbose addNamed [ 'namp', '0.2.25' ]
1167 verbose addNamed [ '0.2.25', '0.2.25' ]
1168 silly lockFile bf328a3d-namp-0-2-25 na...@0.2.25
1169 verbose lock na...@0.2.25 /Users/jmiele/.npm/bf328a3d-namp-0-2-25.lock
1171 silly registry.get cb [ 304,
1171 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
1171 silly registry.get     etag: '"6S0U8SDEI89TXNMSEJ8BH9LOR"',
1171 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
1171 silly registry.get     'content-length': '0' } ]
1172 verbose etag async from cache
1173 verbose read json /Users/jmiele/.npm/namp/0.2.25/package/package.json
1175 silly registry.get cb [ 304,
1175 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
1175 silly registry.get     etag: '"EB786O3YY2LIU7978CQD9PD3G"',
1175 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
1175 silly registry.get     'content-length': '0' } ]
1176 verbose etag win-spawn from cache
1177 silly addNameRange number 2 { name: 'async', range: '>=0.2.6- <0.3.0-', hasData: true }
1178 silly addNameRange versions [ 'async',
1178 silly addNameRange   [ '0.1.0',
1178 silly addNameRange     '0.1.1',
1178 silly addNameRange     '0.1.2',
1178 silly addNameRange     '0.1.3',
1178 silly addNameRange     '0.1.4',
1178 silly addNameRange     '0.1.5',
1178 silly addNameRange     '0.1.6',
1178 silly addNameRange     '0.1.7',
1178 silly addNameRange     '0.1.8',
1178 silly addNameRange     '0.1.9',
1178 silly addNameRange     '0.1.10',
1178 silly addNameRange     '0.1.11',
1178 silly addNameRange     '0.1.12',
1178 silly addNameRange     '0.1.13',
1178 silly addNameRange     '0.1.14',
1178 silly addNameRange     '0.1.15',
1178 silly addNameRange     '0.1.16',
1178 silly addNameRange     '0.1.17',
1178 silly addNameRange     '0.1.18',
1178 silly addNameRange     '0.1.19',
1178 silly addNameRange     '0.1.20',
1178 silly addNameRange     '0.1.21',
1178 silly addNameRange     '0.1.22',
1178 silly addNameRange     '0.2.0',
1178 silly addNameRange     '0.2.1',
1178 silly addNameRange     '0.2.2',
1178 silly addNameRange     '0.2.3',
1178 silly addNameRange     '0.2.4',
1178 silly addNameRange     '0.2.5',
1178 silly addNameRange     '0.2.6',
1178 silly addNameRange     '0.2.7',
1178 silly addNameRange     '0.2.8',
1178 silly addNameRange     '0.2.9' ] ]
1179 verbose addNamed [ 'async', '0.2.9' ]
1180 verbose addNamed [ '0.2.9', '0.2.9' ]
1181 silly lockFile be62480b-async-0-2-9 as...@0.2.9
1182 verbose lock as...@0.2.9 /Users/jmiele/.npm/be62480b-async-0-2-9.lock
1183 silly lockFile bf328a3d-namp-0-2-25 na...@0.2.25
1184 silly lockFile bf328a3d-namp-0-2-25 na...@0.2.25
1185 verbose read json /Users/jmiele/.npm/async/0.2.9/package/package.json
1186 silly addNameRange number 2 { name: 'win-spawn', range: '>=1.1.1- <1.2.0-', hasData: true }
1187 silly addNameRange versions [ 'win-spawn',
1187 silly addNameRange   [ '0.0.0', '1.0.1', '1.0.2', '1.1.0', '1.1.1', '1.1.2' ] ]
1188 verbose addNamed [ 'win-spawn', '1.1.2' ]
1189 verbose addNamed [ '1.1.2', '1.1.2' ]
1190 silly lockFile d47d28c2-win-spawn-1-1-2 win-...@1.1.2
1191 verbose lock win-...@1.1.2 /Users/jmiele/.npm/d47d28c2-win-spawn-1-1-2.lock
1192 silly lockFile e24b31e4-namp-0-2-25 namp@~0.2.25
1193 silly lockFile e24b31e4-namp-0-2-25 namp@~0.2.25
1194 verbose read json /Users/jmiele/.npm/win-spawn/1.1.2/package/package.json
1195 silly lockFile be62480b-async-0-2-9 as...@0.2.9
1196 silly lockFile be62480b-async-0-2-9 as...@0.2.9
1197 silly lockFile d47d28c2-win-spawn-1-1-2 win-...@1.1.2
1198 silly lockFile d47d28c2-win-spawn-1-1-2 win-...@1.1.2
1199 silly lockFile e00b1d77-async-0-2-6 async@~0.2.6
1200 silly lockFile e00b1d77-async-0-2-6 async@~0.2.6
1201 silly lockFile 96a48998-win-spawn-1-1-1 win-spawn@~1.1.1
1202 silly lockFile 96a48998-win-spawn-1-1-1 win-spawn@~1.1.1
1204 silly registry.get cb [ 304,
1204 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
1204 silly registry.get     etag: '"21XJPDJR1V32RXCQ3WAHSRTMV"',
1204 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
1204 silly registry.get     'content-length': '0' } ]
1205 verbose etag adm-zip from cache
1206 silly addNameRange number 2 { name: 'adm-zip', range: '>=0.4.3- <0.5.0-', hasData: true }
1207 silly addNameRange versions [ 'adm-zip',
1207 silly addNameRange   [ '0.1.1',
1207 silly addNameRange     '0.1.2',
1207 silly addNameRange     '0.1.3',
1207 silly addNameRange     '0.1.4',
1207 silly addNameRange     '0.1.5',
1207 silly addNameRange     '0.1.6',
1207 silly addNameRange     '0.1.7',
1207 silly addNameRange     '0.1.8',
1207 silly addNameRange     '0.1.9',
1207 silly addNameRange     '0.2.0',
1207 silly addNameRange     '0.2.1',
1207 silly addNameRange     '0.4.3' ] ]
1208 verbose addNamed [ 'adm-zip', '0.4.3' ]
1209 verbose addNamed [ '0.4.3', '0.4.3' ]
1210 silly lockFile db902cdf-adm-zip-0-4-3 adm...@0.4.3
1211 verbose lock adm...@0.4.3 /Users/jmiele/.npm/db902cdf-adm-zip-0-4-3.lock
1212 verbose read json /Users/jmiele/.npm/adm-zip/0.4.3/package/package.json
1213 silly lockFile db902cdf-adm-zip-0-4-3 adm...@0.4.3
1214 silly lockFile db902cdf-adm-zip-0-4-3 adm...@0.4.3
1215 silly lockFile fd654770-adm-zip-0-4-3 adm-zip@~0.4.3
1216 silly lockFile fd654770-adm-zip-0-4-3 adm-zip@~0.4.3
1218 silly registry.get cb [ 304,
1218 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
1218 silly registry.get     etag: '"3FL5N1LH6ZZWMVFJQAY8CCVZY"',
1218 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
1218 silly registry.get     'content-length': '0' } ]
1219 verbose etag ws/0.4.25 from cache
1220 verbose read json /Users/jmiele/.npm/ws/0.4.25/package/package.json
1221 silly lockFile b0877b26-ws-0-4-25 w...@0.4.25
1222 silly lockFile b0877b26-ws-0-4-25 w...@0.4.25
1224 silly registry.get cb [ 304,
1224 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
1224 silly registry.get     etag: '"97R88T1AJ9V4XZ30205HSIA5G"',
1224 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
1224 silly registry.get     'content-length': '0' } ]
1225 verbose etag underscore from cache
1226 silly addNameRange number 2 { name: 'underscore', range: '>=1.4.3- <1.5.0-', hasData: true }
1227 silly addNameRange versions [ 'underscore',
1227 silly addNameRange   [ '1.0.3',
1227 silly addNameRange     '1.0.4',
1227 silly addNameRange     '1.1.0',
1227 silly addNameRange     '1.1.1',
1227 silly addNameRange     '1.1.2',
1227 silly addNameRange     '1.1.3',
1227 silly addNameRange     '1.1.4',
1227 silly addNameRange     '1.1.5',
1227 silly addNameRange     '1.1.6',
1227 silly addNameRange     '1.1.7',
1227 silly addNameRange     '1.2.0',
1227 silly addNameRange     '1.2.1',
1227 silly addNameRange     '1.2.2',
1227 silly addNameRange     '1.2.3',
1227 silly addNameRange     '1.2.4',
1227 silly addNameRange     '1.3.0',
1227 silly addNameRange     '1.3.1',
1227 silly addNameRange     '1.3.2',
1227 silly addNameRange     '1.3.3',
1227 silly addNameRange     '1.4.0',
1227 silly addNameRange     '1.4.1',
1227 silly addNameRange     '1.4.2',
1227 silly addNameRange     '1.4.3',
1227 silly addNameRange     '1.4.4' ] ]
1228 verbose addNamed [ 'underscore', '1.4.4' ]
1229 verbose addNamed [ '1.4.4', '1.4.4' ]
1230 silly lockFile c6b5e825-underscore-1-4-4 under...@1.4.4
1231 verbose lock under...@1.4.4 /Users/jmiele/.npm/c6b5e825-underscore-1-4-4.lock
1233 silly registry.get cb [ 304,
1233 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
1233 silly registry.get     etag: '"7MR9AS2P4VSV7OWD5Q54LLRL1"',
1233 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
1233 silly registry.get     'content-length': '0' } ]
1234 verbose etag colors from cache
1235 verbose read json /Users/jmiele/.npm/underscore/1.4.4/package/package.json
1236 silly addNameRange number 2 { name: 'colors', range: '>=0.6.0-1 <0.7.0-', hasData: true }
1237 silly addNameRange versions [ 'colors', [ '0.3.0', '0.5.0', '0.5.1', '0.6.0', '0.6.0-1' ] ]
1238 verbose addNamed [ 'colors', '0.6.0-1' ]
1239 verbose addNamed [ '0.6.0-1', '0.6.0-1' ]
1240 silly lockFile 02eba27f-colors-0-6-0-1 col...@0.6.0-1
1241 verbose lock col...@0.6.0-1 /Users/jmiele/.npm/02eba27f-colors-0-6-0-1.lock
1242 silly lockFile c6b5e825-underscore-1-4-4 under...@1.4.4
1243 silly lockFile c6b5e825-underscore-1-4-4 under...@1.4.4
1244 verbose read json /Users/jmiele/.npm/colors/0.6.0-1/package/package.json
1245 silly lockFile 9d86996d-underscore-1-4-3 underscore@~1.4.3
1246 silly lockFile 9d86996d-underscore-1-4-3 underscore@~1.4.3
1247 silly lockFile 02eba27f-colors-0-6-0-1 col...@0.6.0-1
1248 silly lockFile 02eba27f-colors-0-6-0-1 col...@0.6.0-1
1249 silly lockFile f29bff6b-colors-0-6-0-1 colors@~0.6.0-1
1250 silly lockFile f29bff6b-colors-0-6-0-1 colors@~0.6.0-1
1252 silly registry.get cb [ 304,
1252 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
1252 silly registry.get     etag: '"26V3VKXIFZ5YZK5HXJXWESZIB"',
1252 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:46 GMT',
1252 silly registry.get     'content-length': '0' } ]
1253 verbose etag socket.io from cache
1254 silly addNameRange number 2 { name: 'socket.io', range: '>=0.9.14- <0.10.0-', hasData: true }
1255 silly addNameRange versions [ 'socket.io',
1255 silly addNameRange   [ '0.3.8',
1255 silly addNameRange     '0.4.0',
1255 silly addNameRange     '0.4.1',
1255 silly addNameRange     '0.5.1',
1255 silly addNameRange     '0.5.3',
1255 silly addNameRange     '0.6.0',
1255 silly addNameRange     '0.6.1',
1255 silly addNameRange     '0.6.3',
1255 silly addNameRange     '0.6.4',
1255 silly addNameRange     '0.6.5',
1255 silly addNameRange     '0.6.6',
1255 silly addNameRange     '0.6.7',
1255 silly addNameRange     '0.6.8',
1255 silly addNameRange     '0.6.9',
1255 silly addNameRange     '0.6.10',
1255 silly addNameRange     '0.6.11',
1255 silly addNameRange     '0.6.12',
1255 silly addNameRange     '0.6.14',
1255 silly addNameRange     '0.6.15',
1255 silly addNameRange     '0.6.16',
1255 silly addNameRange     '0.6.17',
1255 silly addNameRange     '0.6.18',
1255 silly addNameRange     '0.7.0',
1255 silly addNameRange     '0.7.1',
1255 silly addNameRange     '0.7.2',
1255 silly addNameRange     '0.7.3',
1255 silly addNameRange     '0.7.4',
1255 silly addNameRange     '0.7.5',
1255 silly addNameRange     '0.7.6',
1255 silly addNameRange     '0.7.7',
1255 silly addNameRange     '0.7.8',
1255 silly addNameRange     '0.7.9',
1255 silly addNameRange     '0.7.10',
1255 silly addNameRange     '0.7.11',
1255 silly addNameRange     '0.8.0',
1255 silly addNameRange     '0.8.1',
1255 silly addNameRange     '0.8.2',
1255 silly addNameRange     '0.8.3',
1255 silly addNameRange     '0.8.4',
1255 silly addNameRange     '0.8.5',
1255 silly addNameRange     '0.8.6',
1255 silly addNameRange     '0.8.7',
1255 silly addNameRange     '0.9.0',
1255 silly addNameRange     '0.9.1',
1255 silly addNameRange     '0.9.1-1',
1255 silly addNameRange     '0.9.2',
1255 silly addNameRange     '0.9.3',
1255 silly addNameRange     '0.9.4',
1255 silly addNameRange     '0.9.5',
1255 silly addNameRange     '0.9.6',
1255 silly addNameRange     '0.9.7',
1255 silly addNameRange     '0.9.8',
1255 silly addNameRange     '0.9.9',
1255 silly addNameRange     '0.9.10',
1255 silly addNameRange     '0.9.11',
1255 silly addNameRange     '0.9.12',
1255 silly addNameRange     '0.9.13',
1255 silly addNameRange     '0.9.14',
1255 silly addNameRange     '0.9.15',
1255 silly addNameRange     '0.9.16' ] ]
1256 verbose addNamed [ 'socket.io', '0.9.16' ]
1257 verbose addNamed [ '0.9.16', '0.9.16' ]
1258 silly lockFile a7acce22-socket-io-0-9-16 sock...@0.9.16
1259 verbose lock sock...@0.9.16 /Users/jmiele/.npm/a7acce22-socket-io-0-9-16.lock
1260 verbose read json /Users/jmiele/.npm/socket.io/0.9.16/package/package.json
1261 silly lockFile a7acce22-socket-io-0-9-16 sock...@0.9.16
1262 silly lockFile a7acce22-socket-io-0-9-16 sock...@0.9.16
1263 silly lockFile f8d595fd-socket-io-0-9-14 socket.io@~0.9.14
1264 silly lockFile f8d595fd-socket-io-0-9-14 socket.io@~0.9.14
1265 silly resolved [ { author: { name: 'Joyent', url: 'http://www.joyent.com' },
1265 silly resolved     name: 'path',
1265 silly resolved     description: 'Node.JS path module',
1265 silly resolved     keywords: [ 'ender', 'path' ],
1265 silly resolved     version: '0.4.9',
1265 silly resolved     homepage: 'http://nodejs.org/docs/v0.4.9/api/path.html',
1265 silly resolved     repository:
1265 silly resolved      { type: 'git',
1265 silly resolved        url: 'git://github.com/coolaj86/nodejs-libs-4-browser.git' },
1265 silly resolved     main: './path.js',
1265 silly resolved     directories: { lib: '.' },
1265 silly resolved     engines: { node: '>= 0.2.0', ender: '>= 0.5.0' },
1265 silly resolved     dependencies: {},
1265 silly resolved     devDependencies: {},
1265 silly resolved     bugs: { url: 'https://github.com/coolaj86/nodejs-libs-4-browser/issues' },
1265 silly resolved     readme: 'ERROR: No README data found!',
1265 silly resolved     _id: 'pa...@0.4.9',
1265 silly resolved     _from: 'path@~0.4.9' },
1265 silly resolved   { name: 'grunt-cli',
1265 silly resolved     description: 'The grunt command line interface.',
1265 silly resolved     version: '0.1.9',
1265 silly resolved     author: { name: 'Grunt Team' },
1265 silly resolved     homepage: 'http://gruntjs.com/',
1265 silly resolved     repository: { type: 'git', url: 'git://github.com/gruntjs/grunt-cli.git' },
1265 silly resolved     bugs: { url: 'http://github.com/gruntjs/grunt-cli/issues' },
1265 silly resolved     licenses: [ [Object] ],
1265 silly resolved     bin: { grunt: 'bin/grunt' },
1265 silly resolved     engines: { node: '>= 0.8.0' },
1265 silly resolved     scripts: { test: 'node bin/grunt test' },
1265 silly resolved     preferGlobal: true,
1265 silly resolved     dependencies: { nopt: '~1.0.10', 'findup-sync': '~0.1.0', resolve: '~0.3.1' },
1265 silly resolved     devDependencies: { grunt: '~0.4.0', 'grunt-contrib-jshint': '~0.2.0' },
1265 silly resolved     contributors: [ [Object], [Object], [Object], [Object] ],
1265 silly resolved     readme: '# grunt-cli [![Build Status](https://secure.travis-ci.org/gruntjs/grunt-cli.png?branch=master)](http://travis-ci.org/gruntjs/grunt-cli)\n> The Grunt command line interface.\n\nInstall this globally and you\'ll have access to the `grunt` command anywhere on your system.\n\n```shell\nnpm install -g grunt-cli\n```\n\n**Note:** The job of the `grunt` command is to load and run the version of Grunt you have installed locally to your project, irrespective of its version.  Starting with Grunt v0.4, you should never install Grunt itself globally.  For more information about why, [please read this](http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation).\n\nSee the [Getting Started](http://gruntjs.com/getting-started) guide for more information.\n\n## Shell tab auto-completion\nTo enable bash tab auto-completion for Grunt, add the following line to your `~/.bashrc` file. Currently, the only supported shell is bash.\n\n```bash\neval "$(grunt --completion=bash)"\n```\n\n## Installing grunt-cli locally\nIf you don\'t have administrator rights, you may need to install grunt-cli locally to your project using `npm install grunt-cli --save-dev`.  Unfortunately, this will not put the `grunt` executable in your PATH.  You\'ll need to specify its explicit location when executing it, eg: `./node_modules/.bin/grunt`,\n\nNote: Using grunt-cli in this way is unsupported.\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     _id: 'grun...@0.1.9',
1265 silly resolved     _from: 'grunt-cli@~0.1.6' },
1265 silly resolved   { name: 'express',
1265 silly resolved     description: 'Sinatra inspired web development framework',
1265 silly resolved     version: '3.0.6',
1265 silly resolved     author: { name: 'TJ Holowaychuk', email: 't...@vision-media.ca' },
1265 silly resolved     contributors: [ [Object], [Object], [Object], [Object] ],
1265 silly resolved     dependencies:
1265 silly resolved      { connect: '2.7.2',
1265 silly resolved        commander: '0.6.1',
1265 silly resolved        'range-parser': '0.0.4',
1265 silly resolved        mkdirp: '0.3.3',
1265 silly resolved        cookie: '0.0.5',
1265 silly resolved        'buffer-crc32': '0.1.1',
1265 silly resolved        fresh: '0.1.0',
1265 silly resolved        methods: '0.0.1',
1265 silly resolved        send: '0.1.0',
1265 silly resolved        'cookie-signature': '0.0.1',
1265 silly resolved        debug: '*' },
1265 silly resolved     devDependencies:
1265 silly resolved      { ejs: '*',
1265 silly resolved        mocha: '*',
1265 silly resolved        jade: '*',
1265 silly resolved        hjs: '*',
1265 silly resolved        stylus: '*',
1265 silly resolved        should: '*',
1265 silly resolved        'connect-redis': '*',
1265 silly resolved        'github-flavored-markdown': '*',
1265 silly resolved        supertest: '0.0.1' },
1265 silly resolved     keywords:
1265 silly resolved      [ 'express',
1265 silly resolved        'framework',
1265 silly resolved        'sinatra',
1265 silly resolved        'web',
1265 silly resolved        'rest',
1265 silly resolved        'restful',
1265 silly resolved        'router',
1265 silly resolved        'app',
1265 silly resolved        'api' ],
1265 silly resolved     repository: { type: 'git', url: 'git://github.com/visionmedia/express' },
1265 silly resolved     main: 'index',
1265 silly resolved     bin: { express: './bin/express' },
1265 silly resolved     scripts: { prepublish: 'npm prune', test: 'make test' },
1265 silly resolved     engines: { node: '*' },
1265 silly resolved     readme: '![express logo](http://f.cl.ly/items/0V2S1n0K1i3y1c122g04/Screen%20Shot%202012-04-11%20at%209.59.42%20AM.png)\n\n  Fast, unopinionated, minimalist web framework for [node](http://nodejs.org). [![Build Status](https://secure.travis-ci.org/visionmedia/express.png)](http://travis-ci.org/visionmedia/express)\n\n```js\nvar express = require(\'express\');\nvar app = express();\n\napp.get(\'/\', function(req, res){\n  res.send(\'Hello World\');\n});\n\napp.listen(3000);\n```\n\n## Installation\n\n    $ npm install -g express\n\n## Quick Start\n\n The quickest way to get started with express is to utilize the executable `express(1)` to generate an application as shown below:\n\n Create the app:\n\n    $ npm install -g express\n    $ express /tmp/foo && cd /tmp/foo\n\n Install dependencies:\n\n    $ npm install\n\n Start the server:\n\n    $ node app\n\n## Features\n\n  * Built on [Connect](http://github.com/senchalabs/connect)\n  * Robust routing\n  * HTTP helpers (redirection, caching, etc)\n  * View system supporting 14+ template engines\n  * Content negotiation\n  * Focus on high performance\n  * Environment based configuration\n  * Executable for generating applications quickly\n  * High test coverage\n\n## Philosophy\n\n  The Express philosophy is to provide small, robust tooling for HTTP servers. Making\n  it a great solution for single page applications, web sites, hybrids, or public\n  HTTP APIs.\n  \n  Built on Connect you can use _only_ what you need, and nothing more, applications\n  can be as big or as small as you like, even a single file. Express does\n  not force you to use any specific ORM or template engine. With support for over\n  14 template engines via [Consolidate.js](http://github.com/visionmedia/consolidate.js)\n  you can quickly craft your perfect framework.\n\n## More Information\n\n  * Join #express on freenode\n  * [Google Group](http://groups.google.com/group/express-js) for discussion\n  * Follow [tjholowaychuk](http://twitter.com/tjholowaychuk) on twitter for updates\n  * Visit the [Wiki](http://github.com/visionmedia/express/wiki)\n  * [日本語ドキュメンテーション](http://hideyukisaito.com/doc/expressjs/) by [hideyukisaito](https://github.com/hideyukisaito)\n  * [Русскоязычная документация](http://express-js.ru/)\n\n## Viewing Examples\n\nClone the Express repo, then install the dev dependencies to install all the example / test suite deps:\n\n    $ git clone git://github.com/visionmedia/express.git --depth 1\n    $ cd express\n    $ npm install\n\nthen run whichever tests you want:\n\n    $ node examples/content-negotiation\n\n## Running Tests\n\nTo run the test suite first invoke the following command within the repo, installing the development dependencies:\n\n    $ npm install\n\nthen run the tests:\n\n    $ make test\n\n## Contributors\n\n```\nproject: express\ncommits: 3559\nactive : 468 days\nfiles  : 237\nauthors: \n 1891\tTj Holowaychuk          53.1%\n 1285\tvisionmedia             36.1%\n  182\tTJ Holowaychuk          5.1%\n   54\tAaron Heckmann          1.5%\n   34\tcsausdev                1.0%\n   26\tciaranj                 0.7%\n   21\tRobert Sköld            0.6%\n    6\tGuillermo Rauch         0.2%\n    3\tDav Glass               0.1%\n    3\tNick Poulden            0.1%\n    2\tRandy Merrill           0.1%\n    2\tBenny Wong              0.1%\n    2\tHunter Loftis           0.1%\n    2\tJake Gordon             0.1%\n    2\tBrian McKinney          0.1%\n    2\tRoman Shtylman          0.1%\n    2\tBen Weaver              0.1%\n    2\tDave Hoover             0.1%\n    2\tEivind Fjeldstad        0.1%\n    2\tDaniel Shaw             0.1%\n    1\tMatt Colyer             0.0%\n    1\tPau Ramon               0.0%\n    1\tPero Pejovic            0.0%\n    1\tPeter Rekdal Sunde      0.0%\n    1\tRaynos                  0.0%\n    1\tTeng Siong Ong          0.0%\n    1\tViktor Kelemen          0.0%\n    1\tctide                   0.0%\n    1\t8bitDesigner            0.0%\n    1\tisaacs                  0.0%\n    1\tmgutz                   0.0%\n    1\tpikeas                  0.0%\n    1\tshuwatto                0.0%\n    1\ttstrimple               0.0%\n    1\tewoudj                  0.0%\n    1\tAdam Sanderson          0.0%\n    1\tAndrii Kostenko         0.0%\n    1\tAndy Hiew               0.0%\n    1\tArpad Borsos            0.0%\n    1\tAshwin Purohit          0.0%\n    1\tBenjen                  0.0%\n    1\tDarren Torpey           0.0%\n    1\tGreg Ritter             0.0%\n    1\tGregory Ritter          0.0%\n    1\tJames Herdman           0.0%\n    1\tJim Snodgrass           0.0%\n    1\tJoe McCann              0.0%\n    1\tJonathan Dumaine        0.0%\n    1\tJonathan Palardy        0.0%\n    1\tJonathan Zacsh          0.0%\n    1\tJustin Lilly            0.0%\n    1\tKen Sato                0.0%\n    1\tMaciej Małecki          0.0%\n    1\tMasahiro Hayashi        0.0%\n```\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2009-2012 TJ Holowaychuk &lt;t...@vision-media.ca&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n',
1265 silly resolved     readmeFilename: 'Readme.md',
1265 silly resolved     bugs: { url: 'https://github.com/visionmedia/express/issues' },
1265 silly resolved     _id: 'exp...@3.0.6',
1265 silly resolved     _from: 'express@~3.0.6' },
1265 silly resolved   { name: 'grunt',
1265 silly resolved     description: 'The JavaScript Task Runner',
1265 silly resolved     version: '0.4.1',
1265 silly resolved     author: { name: '"Cowboy" Ben Alman', url: 'http://benalman.com/' },
1265 silly resolved     homepage: 'http://gruntjs.com/',
1265 silly resolved     repository: { type: 'git', url: 'git://github.com/gruntjs/grunt.git' },
1265 silly resolved     bugs: { url: 'http://github.com/gruntjs/grunt/issues' },
1265 silly resolved     licenses: [ [Object] ],
1265 silly resolved     main: 'lib/grunt',
1265 silly resolved     scripts: { test: 'grunt test' },
1265 silly resolved     engines: { node: '>= 0.8.0' },
1265 silly resolved     keywords:
1265 silly resolved      [ 'task',
1265 silly resolved        'async',
1265 silly resolved        'cli',
1265 silly resolved        'minify',
1265 silly resolved        'uglify',
1265 silly resolved        'build',
1265 silly resolved        'lodash',
1265 silly resolved        'unit',
1265 silly resolved        'test',
1265 silly resolved        'qunit',
1265 silly resolved        'nodeunit',
1265 silly resolved        'server',
1265 silly resolved        'init',
1265 silly resolved        'scaffold',
1265 silly resolved        'make',
1265 silly resolved        'jake',
1265 silly resolved        'tool' ],
1265 silly resolved     dependencies:
1265 silly resolved      { async: '~0.1.22',
1265 silly resolved        'coffee-script': '~1.3.3',
1265 silly resolved        colors: '~0.6.0-1',
1265 silly resolved        dateformat: '1.0.2-1.2.3',
1265 silly resolved        eventemitter2: '~0.4.9',
1265 silly resolved        'findup-sync': '~0.1.0',
1265 silly resolved        glob: '~3.1.21',
1265 silly resolved        hooker: '~0.2.3',
1265 silly resolved        'iconv-lite': '~0.2.5',
1265 silly resolved        minimatch: '~0.2.6',
1265 silly resolved        nopt: '~1.0.10',
1265 silly resolved        rimraf: '~2.0.2',
1265 silly resolved        lodash: '~0.9.0',
1265 silly resolved        'underscore.string': '~2.2.0rc',
1265 silly resolved        which: '~1.0.5',
1265 silly resolved        'js-yaml': '~2.0.2' },
1265 silly resolved     devDependencies:
1265 silly resolved      { temporary: '~0.0.4',
1265 silly resolved        'grunt-contrib-jshint': '~0.1.1',
1265 silly resolved        'grunt-contrib-nodeunit': '~0.1.2',
1265 silly resolved        'grunt-contrib-watch': '~0.2.0',
1265 silly resolved        difflet: '~0.2.3' },
1265 silly resolved     contributors: [ [Object], [Object], [Object], [Object] ],
1265 silly resolved     readme: '# Grunt: The JavaScript Task Runner [![Build Status](https://secure.travis-ci.org/gruntjs/grunt.png?branch=master)](http://travis-ci.org/gruntjs/grunt)\n\n### Documentation\n\nVisit the [gruntjs.com](http://gruntjs.com/) website for all the things.\n\n### Support / Contributing\nBefore you make an issue, please read our [Contributing](http://gruntjs.com/contributing) guide.\n\nYou can find the grunt team in [#grunt on irc.freenode.net](irc://irc.freenode.net/#grunt).\n\n### Release History\nSee the [CHANGELOG](CHANGELOG).\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     _id: 'gr...@0.4.1',
1265 silly resolved     _from: 'grunt@~0.4.0' },
1265 silly resolved   { name: 'argparse',
1265 silly resolved     description: 'Very powerful CLI arguments parser. Native port of argparse - python\'s options parsing library',
1265 silly resolved     version: '0.1.15',
1265 silly resolved     keywords: [ 'cli', 'parser', 'argparse', 'option', 'args' ],
1265 silly resolved     homepage: 'https://github.com/nodeca/argparse',
1265 silly resolved     contributors: [ [Object], [Object] ],
1265 silly resolved     bugs: { url: 'https://github.com/nodeca/argparse/issues' },
1265 silly resolved     license:
1265 silly resolved      { type: 'MIT',
1265 silly resolved        url: 'https://github.com/nodeca/argparse/blob/master/LICENSE' },
1265 silly resolved     repository: { type: 'git', url: 'git://github.com/nodeca/argparse.git' },
1265 silly resolved     main: './index.js',
1265 silly resolved     scripts: { test: 'make test' },
1265 silly resolved     dependencies: { underscore: '~1.4.3', 'underscore.string': '~2.3.1' },
1265 silly resolved     devDependencies: { mocha: '*' },
1265 silly resolved     engines: { node: '>= 0.6.0' },
1265 silly resolved     readme: 'argparse\n========\n\n[![Build Status](https://secure.travis-ci.org/nodeca/argparse.png?branch=master)](http://travis-ci.org/nodeca/argparse)\n\nCLI arguments parser for node.js. Javascript port of python\'s\n[argparse](http://docs.python.org/dev/library/argparse.html) module\n(original version 3.2). That\'s a full port, except some very rare options,\nrecorded in issue tracker.\n\n**NB.** Method names changed to camelCase. See [generated docs](http://nodeca.github.com/argparse/).\n\n\nExample\n=======\n\ntest.js file:\n\n```javascript\n#!/usr/bin/env node\n\'use strict\';\n\nvar ArgumentParser = require(\'../lib/argparse\').ArgumentParser;\nvar parser = new ArgumentParser({\n  version: \'0.0.1\',\n  addHelp:true,\n  description: \'Argparse example\'\n});\nparser.addArgument(\n  [ \'-f\', \'--foo\' ],\n  {\n    help: \'foo bar\'\n  }\n);\nparser.addArgument(\n  [ \'-b\', \'--bar\' ],\n  {\n    help: \'bar foo\'\n  }\n);\nvar args = parser.parseArgs();\nconsole.dir(args);\n```\n\nDisplay help:\n\n```\n$ ./test.js -h\nusage: example.js [-h] [-v] [-f FOO] [-b BAR]\n\nArgparse example\n\nOptional arguments:\n  -h, --help         Show this help message and exit.\n  -v, --version      Show program\'s version number and exit.\n  -f FOO, --foo FOO  foo bar\n  -b BAR, --bar BAR  bar foo\n```\n\nParse arguments:\n\n```\n$ ./test.js -f=3 --bar=4\n{ foo: \'3\', bar: \'4\' }\n```\n\nMore [examples](https://github.com/nodeca/argparse/tree/master/examples).\n\n\nArgumentParser objects\n======================\n\n```\nnew ArgumentParser({paramters hash});\n```\n\nCreates a new ArgumentParser object.\n\n**Supported params:**\n\n- ```description``` - Text to display before the argument help.\n- ```epilog``` - Text to display after the argument help.\n- ```addHelp``` - Add a -h/–help option to the parser. (default: True)\n- ```argumentDefault``` - Set the global default value for arguments. (default: None)\n- ```parents``` - A list of ArgumentParser objects whose arguments should also be included.\n- ```prefixChars``` - The set of characters that prefix optional arguments. (default: ‘-‘)\n- ```formatterClass``` - A class for customizing the help output.\n- ```prog``` - The name of the program (default: sys.argv[0])\n- ```usage``` - The string describing the program usage (default: generated)\n- ```conflictHandler``` - Usually unnecessary, defines strategy for resolving conflicting optionals.\n\n**Not supportied yet**\n\n- ```fromfilePrefixChars``` - The set of characters that prefix files from which additional arguments should be read.\n\n\nDetails in [original ArgumentParser guide](http://docs.python.org/dev/library/argparse.html#argumentparser-objects)\n\n\naddArgument() method\n====================\n\n```\nArgumentParser.addArgument([names or flags], {options})\n```\n\nDefines how a single command-line argument should be parsed.\n\n- ```name or flags``` - Either a name or a list of option strings, e.g. foo or -f, --foo.\n\nOptions:\n\n- ```action``` - The basic type of action to be taken when this argument is encountered at the command line.\n- ```nargs```- The number of command-line arguments that should be consumed.\n- ```constant``` - A constant value required by some action and nargs selections.\n- ```defaultValue``` - The value produced if the argument is absent from the command line.\n- ```type``` - The type to which the command-line argument should be converted.\n- ```choices``` - A container of the allowable values for the argument.\n- ```required``` - Whether or not the command-line option may be omitted (optionals only).\n- ```help``` - A brief description of what the argument does.\n- ```metavar``` - A name for the argument in usage messages.\n- ```dest``` - The name of the attribute to be added to the object returned by parseArgs().\n\nDetails in [original add_argument guide](http://docs.python.org/dev/library/argparse.html#the-add-argument-method)\n\n\nAction (some details)\n================\n\nArgumentParser objects associate command-line arguments with actions.\nThese actions can do just about anything with the command-line arguments associated\nwith them, though most actions simply add an attribute to the object returned by\nparseArgs(). The action keyword argument specifies how the command-line arguments\nshould be handled. The supported actions are:\n\n- ```store``` - Just stores the argument’s value. This is the default action.\n- ```storeConst``` - Stores value, specified by the const keyword argument.\n  (Note that the const keyword argument defaults to the rather unhelpful None.)\n  The \'storeConst\' action is most commonly used with optional arguments, that\n  specify some sort of flag.\n- ```storeTrue``` and ```storeFalse``` - Stores values True and False\n  respectively. These are special cases of \'storeConst\'.\n- ```append``` - Stores a list, and appends each argument value to the list.\n  This is useful to allow an option to be specified multiple times.\n- ```appendConst``` - Stores a list, and appends value, specified by the\n  const keyword argument to the list. (Note, that the const keyword argument defaults\n  is None.) The \'appendConst\' action is typically used when multiple arguments need\n  to store constants to the same list.\n- ```count``` - Counts the number of times a keyword argument occurs. For example,\n  used for increasing verbosity levels.\n- ```help``` - Prints a complete help message for all the options in the current\n  parser and then exits. By default a help action is automatically added to the parser.\n  See ArgumentParser for details of how the output is created.\n- ```version``` - Prints version information and exit. Expects a `version=`\n  keyword argument in the addArgument() call.\n\nDetails in [original action guide](http://docs.python.org/dev/library/argparse.html#action)\n\n\nSub-commands\n============\n\nArgumentParser.addSubparsers()\n\nMany programs split their functionality into a number of sub-commands, for\nexample, the svn program can invoke sub-commands like `svn checkout`, `svn update`,\nand `svn commit`. Splitting up functionality this way can be a particularly good\nidea when a program performs several different functions which require different\nkinds of command-line arguments. `ArgumentParser` supports creation of such\nsub-commands with `addSubparsers()` method. The `addSubparsers()` method is\nnormally called with no arguments and returns an special action object.\nThis object has a single method `addParser()`, which takes a command name and\nany `ArgumentParser` constructor arguments, and returns an `ArgumentParser` object\nthat can be modified as usual.\n\nExample:\n\nsub_commands.js\n```javascript\n#!/usr/bin/env node\n\'use strict\';\n\nvar ArgumentParser = require(\'../lib/argparse\').ArgumentParser;\nvar parser = new ArgumentParser({\n  version: \'0.0.1\',\n  addHelp:true,\n  description: \'Argparse examples: sub-commands\',\n});\n\nvar subparsers = parser.addSubparsers({\n  title:\'subcommands\',\n  dest:"subcommand_name"\n});\n\nvar bar = subparsers.addParser(\'c1\', {addHelp:true});\nbar.addArgument(\n  [ \'-f\', \'--foo\' ],\n  {\n    action: \'store\',\n    help: \'foo3 bar3\'\n  }\n);\nvar bar = subparsers.addParser(\n  \'c2\',\n  {aliases:[\'co\'], addHelp:true}\n);\nbar.addArgument(\n  [ \'-b\', \'--bar\' ],\n  {\n    action: \'store\',\n    type: \'int\',\n    help: \'foo3 bar3\'\n  }\n);\n\nvar args = parser.parseArgs();\nconsole.dir(args);\n\n```\n\nDetails in [original sub-commands guide](http://docs.python.org/dev/library/argparse.html#sub-commands)\n\n\nContributors\n============\n\n- [Eugene Shkuropat](https://github.com/shkuropat)\n- [Paul Jacobson](https://github.com/hpaulj)\n\n[others](https://github.com/nodeca/argparse/graphs/contributors)\n\nLicense\n=======\n\nCopyright (c) 2012 [Vitaly Puzrin](https://github.com/puzrin).\nReleased under the MIT license. See\n[LICENSE](https://github.com/nodeca/argparse/blob/master/LICENSE) for details.\n\n\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     _id: 'argp...@0.1.15',
1265 silly resolved     _from: 'argparse@~0.1.10' },
1265 silly resolved   { name: 'rimraf',
1265 silly resolved     version: '2.1.4',
1265 silly resolved     main: 'rimraf.js',
1265 silly resolved     description: 'A deep deletion module for node (like `rm -rf`)',
1265 silly resolved     author:
1265 silly resolved      { name: 'Isaac Z. Schlueter',
1265 silly resolved        email: 'i...@izs.me',
1265 silly resolved        url: 'http://blog.izs.me/' },
1265 silly resolved     license:
1265 silly resolved      { type: 'MIT',
1265 silly resolved        url: 'https://github.com/isaacs/rimraf/raw/master/LICENSE' },
1265 silly resolved     optionalDependencies: { 'graceful-fs': '~1' },
1265 silly resolved     repository: { type: 'git', url: 'git://github.com/isaacs/rimraf.git' },
1265 silly resolved     scripts: { test: 'cd test && bash run.sh' },
1265 silly resolved     contributors: [ [Object], [Object], [Object], [Object], [Object] ],
1265 silly resolved     readme: 'A `rm -rf` for node.\n\nInstall with `npm install rimraf`, or just drop rimraf.js somewhere.\n\n## API\n\n`rimraf(f, callback)`\n\nThe callback will be called with an error if there is one.  Certain\nerrors are handled for you:\n\n* `EBUSY` -  rimraf will back off a maximum of opts.maxBusyTries times\n  before giving up.\n* `EMFILE` - If too many file descriptors get opened, rimraf will\n  patiently wait until more become available.\n\n\n## rimraf.sync\n\nIt can remove stuff synchronously, too.  But that\'s not so good.  Use\nthe async API.  It\'s better.\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     bugs: { url: 'https://github.com/isaacs/rimraf/issues' },
1265 silly resolved     dependencies: { 'graceful-fs': '~1' },
1265 silly resolved     _id: 'rim...@2.1.4',
1265 silly resolved     _from: 'rimraf@~2.1.1' },
1265 silly resolved   { name: 'temp',
1265 silly resolved     description: 'Temporary files and directories',
1265 silly resolved     tags:
1265 silly resolved      [ 'temporary',
1265 silly resolved        'temp',
1265 silly resolved        'tempfile',
1265 silly resolved        'tempdir',
1265 silly resolved        'tmpfile',
1265 silly resolved        'tmpdir',
1265 silly resolved        'security' ],
1265 silly resolved     version: '0.5.0',
1265 silly resolved     author: { name: 'Bruce Williams', email: 'br...@codefluency.com' },
1265 silly resolved     directories: { lib: 'lib' },
1265 silly resolved     engines: [ 'node >=0.8.0' ],
1265 silly resolved     main: './lib/temp',
1265 silly resolved     dependencies: {},
1265 silly resolved     devDependencies: {},
1265 silly resolved     repository: { type: 'git', url: 'git://github.com/bruce/node-temp.git' },
1265 silly resolved     readme: 'node-temp -- temporary files and directories for node.js\n========================================================\n\nHandles generating a unique file/directory name under the appropriate\nsystem temporary directory, changing the file to an appropriate mode,\nand supports automatic removal.\n\n`temp` has a similar API to the `fs` module.\n\nSynopsis\n--------\n\nYou can create temporary files with `open` and `openSync`, temporary\ndirectories with `mkdir` and `mkdirSync`, or you can get a unique name\nin the system temporary directory with `path`.\n\nWorking copies of the following examples can be found under the\n`examples` directory.\n\n### Temporary Files\n\nTo create a temporary file use `open` or `openSync`, passing\nthem an optional prefix, suffix, or both (see below for details on\naffixes). The object passed to the callback (or returned) has\n`path` and `fd` keys:\n\n    { path: "/path/to/file",\n    , fd: theFileDescriptor\n    }\n\nIn this example we write to a temporary file and call out to `grep` and\n`wc -l` to determine the number of time `foo` occurs in the text.  The\ntemporary file is chmod\'d `0600` and cleaned up automatically when the\nprocess at exit:\n\n    var temp = require(\'temp\'),\n        fs   = require(\'fs\'),\n        util  = require(\'util\'),\n        exec = require(\'child_process\').exec;\n\n    // Fake data\n    var myData = "foo\\nbar\\nfoo\\nbaz";\n\n    // Process the data (note: error handling omitted)\n    temp.open(\'myprefix\', function(err, info) {\n      fs.write(info.fd, myData);\n      fs.close(info.fd, function(err) {\n        exec("grep foo \'" + info.path + "\' | wc -l", function(err, stdout) {\n          util.puts(stdout.trim());\n        });\n      });\n    });\n\n### Temporary Directories\n\nTo create a temporary directory, use `mkdir` or `mkdirSync`, passing\nit an optional prefix, suffix, or both (see below for details on affixes).\n\nIn this example we create a temporary directory, write to a file\nwithin it, call out to an external program to create a PDF, and read\nthe result.  While the external process creates a lot of additional\nfiles, the temporary directory is removed automatically at exit:\n\n    var temp = require(\'../lib/temp\'),\n        fs   = require(\'fs\'),\n        util = require(\'util\'),\n        path = require(\'path\'),\n        exec = require(\'child_process\').exec;\n\n    // For use with ConTeXt, http://wiki.contextgarden.net\n    var myData = "\\\\starttext\\nHello World\\n\\\\stoptext";\n\n    temp.mkdir(\'pdfcreator\', function(err, dirPath) {\n      var inputPath = path.join(dirPath, \'input.tex\')\n      fs.writeFile(inputPath, myData, function(err) {\n        if (err) throw err;\n        process.chdir(dirPath);\n        exec("texexec \'" + inputPath + "\'", function(err) {\n          if (err) throw err;\n          fs.readFile(path.join(dirPath, \'input.pdf\'), function(err, data) {\n            if (err) throw err;\n            sys.print(data);\n          });\n        });\n      });\n    });\n\n### Affixes\n\nYou can provide custom prefixes and suffixes when creating temporary\nfiles and directories. If you provide a string, it is used as the prefix\nfor the temporary name. If you provide an object with `prefix` and\n`suffix` keys, they are used for the temporary name.\n\nHere are some examples:\n\n* `"aprefix"`: A simple prefix, prepended to the filename; this is\n  shorthand for:\n* `{prefix: "aprefix"}`: A simple prefix, prepended to the filename\n* `{suffix: ".asuffix"}`: A suffix, appended to the filename\n  (especially useful when the file needs to be named with specific\n  extension for use with an external program).\n* `{prefix: "myprefix", suffix: "mysuffix"}`: Customize both affixes\n* `null`: Use the defaults for files and directories (prefixes `"f-"`\n  and `"d-"`, respectively, no suffixes).\n\nIn this simple example we read a `pdf`, write it to a temporary file with\na `.pdf` extension, and close it.\n\n    var fs   = require(\'fs\'),\n        temp = require(\'temp\');\n\n    fs.readFile(\'/path/to/source.pdf\', function(err, data) {\n      temp.open({suffix: \'.pdf\'}, function(err, info) {\n        if (err) throw err;\n        fs.write(info.fd, contents);\n        fs.close(info.fd, function(err) {\n          if (err) throw err;\n          // Do something with the file\n        });\n      });\n    });\n\n### Just a path, please\n\nIf you just want a unique name in your temporary directory, use\n`path`:\n\n    var fs = require(\'fs\');\n    var tempName = temp.path({suffix: \'.pdf\'});\n    // Do something with tempName\n    \nNote: The file isn\'t created for you, and the  mode is not changed  -- and it\nwill not be removed automatically at exit.  If you use `path`, it\'s\nall up to you.\n\nCompatibility\n-------------\n\nWorks with Node.js v0.6.0 on OS X.  Please let me know if you have\nproblems running it on a later version of Node.js or\nhave platform problems.\n\nInstallation\n------------\n\nInstall it using [npm](http://github.com/isaacs/npm):\n\n    $ npm install temp\n\nOr get it directly from:\nhttp://github.com/bruce/node-temp\n\nTesting\n-------\n\nFor now, run `test/test-temp.js`:\n\n    $ node test/test-temp.js\n\nContributing\n------------\n\nYou can find the repository at:\nhttp://github.com/bruce/node-temp\n\nIssues/Feature Requests can be submitted at:\nhttp://github.com/bruce/node-temp/issues\n\nI\'d really like to hear your feedback, and I\'d love to receive your\npull-requests!\n\nCopyright\n---------\n\nCopyright (c) 2010 Bruce Williams. See LICENSE for details.\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     bugs: { url: 'https://github.com/bruce/node-temp/issues' },
1265 silly resolved     _id: 'te...@0.5.0',
1265 silly resolved     _from: 'temp@~0.5.0' },
1265 silly resolved   { name: 'uuid-js',
1265 silly resolved     description: 'A js library to generate and parse UUIDs,TimeUUIDs and generate TimeUUID based on Date for range selections',
1265 silly resolved     version: '0.7.4',
1265 silly resolved     author: { name: 'Patrick Negri', email: 'pat...@iugu.com.br' },
1265 silly resolved     homepage: 'http://github.com/pnegri/uuid-js',
1265 silly resolved     contributors: [ [Object], [Object] ],
1265 silly resolved     main: './lib/uuid.js',
1265 silly resolved     directories: { lib: './lib' },
1265 silly resolved     dependencies: {},
1265 silly resolved     devDependencies: { sinon: '1.2.0' },
1265 silly resolved     repository: { type: 'git', url: 'git://github.com/pnegri/uuid-js.git' },
1265 silly resolved     engines: { node: '>= 0.4.0' },
1265 silly resolved     readme: '# UUID-js\n\nA js library to generate and parse UUID\'s, TimeUUID\'s and generate empty TimeUUID\'s based on TimeStamp for range selections.\n\n```javascript\nvar UUID = require(\'uuid-js\');\n\n\n// Generate a V4 UUID\nvar uuid4 = UUID.create();\nconsole.log(uuid4.toString());\n// Prints: 896b677f-fb14-11e0-b14d-d11ca798dbac\n\n\n// Generate a V1 TimeUUID\nvar uuid1 = UUID.create(1);\nconsole.log(uuid1.toString());\n\n\n// First and last possible v1 TimeUUID for a given timestamp:\nvar date = new Date().getTime();\nvar uuidFirst = UUID.fromTime(date, false);\nvar uuidLast = UUID.fromTime(date, true);\nconsole.log(uuidFirst.toString(), uuidLast.toString());\n// Prints: aa0f9af0-0e1f-11e1-0000-000000000000 aa0f9af0-0e1f-11e1-c0ff-ffffffffffff\n\n\n// Use these TimeUUID\'s to perform range queries in cassandra:\nvar today = new Date().getTime();\nvar last30days = (new Date().setDate( today.getDate() - 30 )).getTime();\n\nvar rangeStart = UUID.firstFromTime(last30days);\nvar rangeEnd = UUID.lastFromTime(today);\n\nvar query = ...("select first 50 reversed ?..? from user_twits where key=?", [ rangeStart, rangeEnd, "patricknegri" ]);\n```\n\n\n## Instalation\n\n```\n$ npm install uuid-js\n```\n\n## Functions List\n\nThese are available just with require and return an instance of the UUID object:\n\n```javascript\nUUID.create(4); // Generate V4 UUID\n\nUUID.create(1); // Generate V1 TimeUUID\n\nUUID.fromTime(time, last); // Generate a V1 empty TimeUUID from a Date object (Ex: new Date().getTime() )\n\nUUID.firstFromTime(time); // Same as fromTime but first sequence\n\nUUID.lastFromTime(time); // Same as fromTime but last sequence\n\nUUID.fromURN(strId); // Generate a UUID object from string\n\nUUID.fromBytes(ints); // Generate a UUID object from bytes\n\nUUID.fromBinary(binary); // Generate a UUID object from binary\n```\n\n## Methods List\n\nThese must be called on an instance of the UUID object:\n\n```javascript\nuuid.fromParts(timeLow, timeMid, timeHiAndVersion, clockSeqHiAndReserved, clockSeqLow, node);\n\nuuid.toString(); // hex string version of UUID\n\nuuid.toURN(); // same as hex, but with urn:uuid prefix\n\nuuid.toBytes(); // converted to an array of bytes\n```\n\n## Tests\n\n```\nmake test\n```\n\n## Contributors\n\n  * Christoph Tavan <d...@tavan.de>\n\nThis work was based RFC and by the work of these people.\n\n  * LiosK <con...@mail.liosk.net>\n  * Gary Dusbabek <gdus...@gmail.com>\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     bugs: { url: 'https://github.com/pnegri/uuid-js/issues' },
1265 silly resolved     _id: 'uui...@0.7.4',
1265 silly resolved     _from: 'uuid-js@~0.7.4' },
1265 silly resolved   { name: 'winston',
1265 silly resolved     description: 'A multi-transport async logging library for Node.js',
1265 silly resolved     version: '0.6.2',
1265 silly resolved     author: { name: 'Nodejitsu Inc.', email: 'in...@nodejitsu.com' },
1265 silly resolved     maintainers: [ [Object] ],
1265 silly resolved     repository: { type: 'git', url: 'https://github.com/flatiron/winston.git' },
1265 silly resolved     keywords: [ 'logging', 'sysadmin', 'tools' ],
1265 silly resolved     dependencies:
1265 silly resolved      { async: '0.1.x',
1265 silly resolved        colors: '0.x.x',
1265 silly resolved        cycle: '1.0.x',
1265 silly resolved        eyes: '0.1.x',
1265 silly resolved        pkginfo: '0.2.x',
1265 silly resolved        request: '2.9.x',
1265 silly resolved        'stack-trace': '0.0.x' },
1265 silly resolved     devDependencies: { vows: '0.6.x' },
1265 silly resolved     main: './lib/winston',
1265 silly resolved     scripts: { test: 'vows --spec --isolate' },
1265 silly resolved     engines: { node: '>= 0.4.0' },
1265 silly resolved     readme: '# winston [![Build Status](https://secure.travis-ci.org/flatiron/winston.png)](http://travis-ci.org/flatiron/winston)\n\nA multi-transport async logging library for node.js. <span style="font-size:28px; font-weight:bold;">&quot;CHILL WINSTON! ... I put it in the logs.&quot;</span>\n\n## Motivation\nWinston is designed to be a simple and universal logging library with support for multiple transports. A transport is essentially a storage device for your logs. Each instance of a winston logger can have multiple transports configured at different levels. For example, one may want error logs to be stored in a persistent remote location (like a database), but all logs output to the console or a local file.\n\nThere also seemed to be a lot of logging libraries out there that coupled their implementation of logging (i.e. how the logs are stored / indexed) to the API that they exposed to the programmer. This library aims to decouple those parts of the process to make it more flexible and extensible.\n\n## Usage\nThere are two different ways to use winston: directly via the default logger, or by instantiating your own Logger. The former is merely intended to be a convenient shared logger to use throughout your application if you so choose.\n\n* [Logging](#logging)\n  * [Using the Default Logger](#using-the-default-logger)\n  * [Instantiating your own Logger](#instantiating-your-own-logger)\n  * [Logging with Metadata](#logging-with-metadata)\n* [Transports](https://github.com/flatiron/winston/blob/master/docs/transports.md)\n* [Profiling](#profiling)\n* [Streaming Logs](#streaming-logs)\n* [Querying Logs](#querying-logs)  \n* [Exceptions](#exceptions)\n  * [Handling Uncaught Exceptions with winston](#handling-uncaught-exceptions-with-winston)\n  * [To Exit or Not to Exit](#to-exit-or-not-to-exit)\n* [Logging Levels](#logging-levels)\n  * [Using Logging Levels](#using-logging-levels)\n  * [Using Custom Logging Levels](#using-custom-logging-levels)\n* [Further Reading](#further-reading)\n  * [Events and Callbacks in Winston](#events-and-callbacks-in-winston)\n  * [Working with multiple Loggers in winston](#working-with-multiple-loggers-in-winston)\n  * [Using winston in a CLI tool](#using-winston-in-a-cli-tool)\n  * [Extending another object with Logging](#extending-another-object-with-logging)\n  * [Adding Custom Transports](#adding-custom-transports)\n\n## Logging\n\n### Using the Default Logger\nThe default logger is accessible through the winston module directly. Any method that you could call on an instance of a logger is available on the default logger:\n\n``` js\n  var winston = require(\'winston\');\n\n  winston.log(\'info\', \'Hello distributed log files!\');\n  winston.info(\'Hello again distributed logs\');\n```\n\nBy default, only the Console transport is set on the default logger. You can add or remove transports via the add() and remove() methods:\n\n``` js\n  winston.add(winston.transports.File, { filename: \'somefile.log\' });\n  winston.remove(winston.transports.Console);\n```\n\nFor more documenation about working with each individual transport supported by Winston see the "Working with Transports" section below.\n\n### Instantiating your own Logger\nIf you would prefer to manage the object lifetime of loggers you are free to instantiate them yourself:\n\n``` js\n  var logger = new (winston.Logger)({\n    transports: [\n      new (winston.transports.Console)(),\n      new (winston.transports.File)({ filename: \'somefile.log\' })\n    ]\n  });\n```\n\nYou can work with this logger in the same way that you work with the default logger:\n\n``` js\n  //\n  // Logging\n  //\n  logger.log(\'info\', \'Hello distributed log files!\');\n  logger.info(\'Hello again distributed logs\');\n\n  //\n  // Adding / Removing Transports\n  //   (Yes It\'s chainable)\n  //\n  logger.add(winston.transports.File)\n        .remove(winston.transports.Console);\n```\n\n### Logging with Metadata\nIn addition to logging string messages, winston will also optionally log additional JSON metadata objects. Adding metadata is simple:\n\n``` js\n  winston.log(\'info\', \'Test Log Message\', { anything: \'This is metadata\' });\n```\n\nThe way these objects is stored varies from transport to transport (to best support the storage mechanisms offered). Here\'s a quick summary of how each transports handles metadata:\n\n1. __Console:__ Logged via util.inspect(meta)\n2. __File:__ Logged via util.inspect(meta)\n\n## Profiling\nIn addition to logging messages and metadata, winston also has a simple profiling mechanism implemented for any logger:\n\n``` js\n  //\n  // Start profile of \'test\'\n  // Remark: Consider using Date.now() with async operations\n  //\n  winston.profile(\'test\');\n\n  setTimeout(function () {\n    //\n    // Stop profile of \'test\'. Logging will now take place:\n    //   "17 Jan 21:00:00 - info: test duration=1000ms"\n    //\n    winston.profile(\'test\');\n  }, 1000);\n```\n\nAll profile messages are set to the \'info\' by default and both message and metadata are optional There are no plans in the Roadmap to make this configurable, but I\'m open to suggestions / issues.\n\n\n## Querying Logs\nWinston supports querying of logs with Loggly-like options.\nSpecifically: `File`, `Couchdb`, `Redis`, `Loggly`, `Nssocket`, and `Http`.\n\n``` js\n  var options = {\n    from: new Date - 24 * 60 * 60 * 1000,\n    until: new Date\n  };\n\n  //\n  // Find items logged between today and yesterday.\n  //\n  winston.query(options, function (err, results) {\n    if (err) {\n      throw err;\n    }\n    \n    console.log(results);\n  });\n```\n\n## Streaming Logs\nStreaming allows you to stream your logs back from your chosen transport.\n\n``` js\n  //\n  // Start at the end.\n  //\n  winston.stream({ start: -1 }).on(\'log\', function(log) {\n    console.log(log);\n  });\n```\n\n## Exceptions\n\n### Handling Uncaught Exceptions with winston\n\nWith `winston`, it is possible to catch and log `uncaughtException` events from your process. There are two distinct ways of enabling this functionality either through the default winston logger or your own logger instance.\n\nIf you want to use this feature with the default logger simply call `.handleExceptions()` with a transport instance.\n\n``` js\n  //\n  // You can add a separate exception logger by passing it to `.handleExceptions`\n  //\n  winston.handleExceptions(new winston.transports.File({ filename: \'path/to/exceptions.log\' }))\n\n  //\n  // Alternatively you can set `.handleExceptions` to true when adding transports to winston\n  //\n  winston.add(winston.transports.File, {\n    filename: \'path/to/all-logs.log\',\n    handleExceptions: true\n  });\n```\n\n### To Exit or Not to Exit\n\nby default, winston will exit after logging an uncaughtException. if this is not the behavior you want,\nset `exitOnError = false`\n\n``` js\n  var logger = new (winston.Logger)({ exitOnError: false });\n\n  //\n  // or, like this:\n  //\n  logger.exitOnError = false;\n```\n\nWhen working with custom logger instances, you can pass in separate transports to the `exceptionHandlers` property or set `.handleExceptions` on any transport.\n\nExample 1\n\n``` js\n  var logger = new (winston.Logger)({\n    transports: [\n      new winston.transports.File({ filename: \'path/to/all-logs.log\' })\n    ]\n    exceptionHandlers: [\n      new winston.transports.File({ filename: \'path/to/exceptions.log\' })\n    ]\n  });\n```\n\nExample 2\n\n```\nvar logger = new winston.Logger({\n  transports: [\n    new winston.transports.Console({\n      handleExceptions: true,\n      json: true\n    })\n  ],\n  exitOnError: false\n});\n```\n\nThe `exitOnError` option can also be a function to prevent exit on only certain types of errors:\n\n``` js\n  function ignoreEpipe(err) {\n    return err.code !== \'EPIPE\';\n  }\n\n  var logger = new (winston.Logger)({ exitOnError: ignoreEpipe });\n\n  //\n  // or, like this:\n  //\n  logger.exitOnError = ignoreEpipe;\n```\n\n## Logging Levels\n\n### Using Logging Levels\nSetting the level for your logging message can be accomplished in one of two ways. You can pass a string representing the logging level to the log() method or use the level specified methods defined on every winston Logger.\n\n``` js\n  //\n  // Any logger instance\n  //\n  logger.log(\'info\', "127.0.0.1 - there\'s no place like home");\n  logger.log(\'warn\', "127.0.0.1 - there\'s no place like home");\n  logger.log(\'error\', "127.0.0.1 - there\'s no place like home");\n  logger.info("127.0.0.1 - there\'s no place like home");\n  logger.warn("127.0.0.1 - there\'s no place like home");\n  logger.error("127.0.0.1 - there\'s no place like home");\n\n  //\n  // Default logger\n  //\n  winston.log(\'info\', "127.0.0.1 - there\'s no place like home");\n  winston.info("127.0.0.1 - there\'s no place like home");\n```\n\nWinston allows you to set a `level` on each transport that specifies the level of messages this transport should log. For example, you could log only errors to the console, with the full logs in a file:\n\n``` js\n  var logger = new (winston.Logger)({\n    transports: [\n      new (winston.transports.Console)({ level: \'error\' }),\n      new (winston.transports.File)({ filename: \'somefile.log\' })\n    ]\n  });\n```\n\nAs of 0.2.0, winston supports customizable logging levels, defaulting to [npm][0] style logging levels. Changing logging levels is easy:\n\n``` js\n  //\n  // Change levels on the default winston logger\n  //\n  winston.setLevels(winston.config.syslog.levels);\n\n  //\n  // Change levels on an instance of a logger\n  //\n  logger.setLevels(winston.config.syslog.levels);\n```\n\nCalling `.setLevels` on a logger will remove all of the previous helper methods for the old levels and define helper methods for the new levels. Thus, you should be careful about the logging statements you use when changing levels. For example, if you ran this code after changing to the syslog levels:\n\n``` js\n  //\n  // Logger does not have \'silly\' defined since that level is not in the syslog levels\n  //\n  logger.silly(\'some silly message\');\n```\n\n### Using Custom Logging Levels\nIn addition to the predefined `npm` and `syslog` levels available in Winston, you can also choose to define your own:\n\n``` js\n  var myCustomLevels = {\n    levels: {\n      foo: 0,\n      bar: 1,\n      baz: 2,\n      foobar: 3\n    },\n    colors: {\n      foo: \'blue\',\n      bar: \'green\',\n      baz: \'yellow\',\n      foobar: \'red\'\n    }\n  };\n\n  var customLevelLogger = new (winston.Logger)({ levels: myCustomLevels.levels });\n  customLevelLogger.foobar(\'some foobar level-ed message\');\n```\n\nAlthough there is slight repetition in this data structure, it enables simple encapsulation if you not to have colors. If you do wish to have colors, in addition to passing the levels to the Logger itself, you must make winston aware of them:\n\n``` js\n  //\n  // Make winston aware of these colors\n  //\n  winston.addColors(myCustomLevels.colors);\n```\n\nThis enables transports with the \'colorize\' option set to appropriately color the output of custom levels.\n\n## Further Reading\n\n### Events and Callbacks in Winston\nEach instance of winston.Logger is also an instance of an [EventEmitter][1]. A log event will be raised each time a transport successfully logs a message:\n\n``` js\n  logger.on(\'logging\', function (transport, level, msg, meta) {\n    // [msg] and [meta] have now been logged at [level] to [transport]\n  });\n\n  logger.info(\'CHILL WINSTON!\', { seriously: true });\n```\n\nIt is also worth mentioning that the logger also emits an \'error\' event which you should handle or suppress if you don\'t want unhandled exceptions:\n\n``` js\n  //\n  // Handle errors\n  //\n  logger.on(\'error\', function (err) { /* Do Something */ });\n\n  //\n  // Or just suppress them.\n  //\n  logger.emitErrs = false;\n```\n\nEvery logging method described in the previous section also takes an optional callback which will be called only when all of the transports have logged the specified message.\n\n``` js\n  logger.info(\'CHILL WINSTON!\', { seriously: true }, function (err, level, msg, meta) {\n    // [msg] and [meta] have now been logged at [level] to **every** transport.\n  });\n```\n\n### Working with multiple Loggers in winston\n\nOften in larger, more complex applications it is necessary to have multiple logger instances with different settings. Each logger is responsible for a different feature area (or category). This is exposed in `winston` in two ways: through `winston.loggers` and instances of `winston.Container`. In fact, `winston.loggers` is just a predefined instance of `winston.Container`:\n\n``` js\n  var winston = require(\'winston\');\n\n  //\n  // Configure the logger for `category1`\n  //\n  winston.loggers.add(\'category1\', {\n    console: {\n      level: \'silly\',\n      colorize: \'true\'\n    },\n    file: {\n      filename: \'/path/to/some/file\'\n    }\n  });\n\n  //\n  // Configure the logger for `category2`\n  //\n  winston.loggers.add(\'category2\', {\n    couchdb: {\n      host: \'127.0.0.1\',\n      port: 5984\n    }\n  });\n```\n\nNow that your loggers are setup you can require winston _in any file in your application_ and access these pre-configured loggers:\n\n``` js\n  var winston = require(\'winston\');\n\n  //\n  // Grab your preconfigured logger\n  //\n  var category1 = winston.loggers.get(\'category1\');\n\n  category1.info(\'logging from your IoC container-based logger\');\n```\n\nIf you prefer to manage the `Container` yourself you can simply instantiate one:\n\n``` js\n  var winston = require(\'winston\'),\n      container = new winston.Container();\n\n  container.add(\'category1\', {\n    console: {\n      level: \'silly\',\n      colorize: \'true\'\n    },\n    file: {\n      filename: \'/path/to/some/file\'\n    }\n  });\n```\n\n### Sharing transports between Loggers in winston\n\n``` js\n  var winston = require(\'winston\');\n\n  //\n  // Setup transports to be shared across all loggers\n  // in three ways:\n  //\n  // 1. By setting it on the default Container\n  // 2. By passing `transports` into the constructor function of winston.Container\n  // 3. By passing `transports` into the `.get()` or `.add()` methods\n  //\n\n  //\n  // 1. By setting it on the default Container\n  //\n  winston.loggers.options.transports = [\n    // Setup your shared transports here\n  ];\n\n  //\n  // 2. By passing `transports` into the constructor function of winston.Container\n  //\n  var container = new winston.Container({\n    transports: [\n      // Setup your shared transports here\n    ]\n  });\n\n  //\n  // 3. By passing `transports` into the `.get()` or `.add()` methods\n  //\n  winston.loggers.add(\'some-category\', {\n    transports: [\n      // Setup your shared transports here\n    ]\n  });\n\n  container.add(\'some-category\', {\n    transports: [\n      // Setup your shared transports here\n    ]\n  });\n```\n\n### Using winston in a CLI tool\nA common use-case for logging is output to a CLI tool. Winston has a special helper method which will pretty print output from your CLI tool. Here\'s an example from the [require-analyzer][2] written by [Nodejitsu][3]:\n\n```\n  info:   require-analyzer starting in /Users/Charlie/Nodejitsu/require-analyzer\n  info:   Found existing dependencies\n  data:   {\n  data:     colors: \'0.x.x\',\n  data:     eyes: \'0.1.x\',\n  data:     findit: \'0.0.x\',\n  data:     npm: \'1.0.x\',\n  data:     optimist: \'0.2.x\',\n  data:     semver: \'1.0.x\',\n  data:     winston: \'0.2.x\'\n  data:   }\n  info:   Analyzing dependencies...\n  info:   Done analyzing raw dependencies\n  info:   Retrieved packages from npm\n  warn:   No additional dependencies found\n```\n\nConfiguring output for this style is easy, just use the `.cli()` method on `winston` or an instance of `winston.Logger`:\n\n``` js\n  var winston = require(\'winston\');\n\n  //\n  // Configure CLI output on the default logger\n  //\n  winston.cli();\n\n  //\n  // Configure CLI on an instance of winston.Logger\n  //\n  var logger = new winston.Logger({\n    transports: [\n      new (winston.transports.Console)()\n    ]\n  });\n\n  logger.cli();\n```\n\n### Extending another object with Logging\nOften in a given code base with lots of Loggers it is useful to add logging methods a different object so that these methods can be called with less syntax. Winston exposes this functionality via the \'extend\' method:\n\n``` js\n  var myObject = {};\n\n  logger.extend(myObject);\n\n  //\n  // You can now call logger methods on \'myObject\'\n  //\n  myObject.info(\'127.0.0.1 - there\'s no place like home\');\n```\n\n## Working with Transports\nRight now there are four transports supported by winston core. If you have a transport you would like to add either open an issue or fork and submit a pull request. Commits are welcome, but I\'ll give you extra street cred if you __add tests too :D__\n   \n1. __Console:__ Output to the terminal\n2. __Files:__ Append to a file\n3. __Loggly:__ Log to Logging-as-a-Service platform Loggly\n\n### Console Transport\n``` js\n  winston.add(winston.transports.Console, options)\n```\n\nThe Console transport takes two simple options:\n\n* __level:__ Level of messages that this transport should log (default \'info\').\n* __silent:__ Boolean flag indicating whether to suppress output (default false).\n* __colorize:__ Boolean flag indicating if we should colorize output (default false).\n* __timestamp:__ Boolean flag indicating if we should prepend output with timestamps (default false). If function is specified, its return value will be used instead of timestamps.\n\n*Metadata:* Logged via util.inspect(meta);\n\n### File Transport\n``` js\n  winston.add(winston.transports.File, options)\n```\n\nThe File transport should really be the \'Stream\' transport since it will accept any [WritableStream][14]. It is named such because it will also accept filenames via the \'filename\' option:\n\n* __level:__ Level of messages that this transport should log.\n* __silent:__ Boolean flag indicating whether to suppress output.\n* __colorize:__ Boolean flag indicating if we should colorize output.\n* __timestamp:__ Boolean flag indicating if we should prepend output with timestamps (default true). If function is specified, its return value will be used instead of timestamps.\n* __filename:__ The filename of the logfile to write output to.\n* __maxsize:__ Max size in bytes of the logfile, if the size is exceeded then a new file is created.\n* __maxFiles:__ Limit the number of files created when the size of the logfile is exceeded.\n* __stream:__ The WriteableStream to write output to.\n* __json:__ If true, messages will be logged as JSON (default true).\n\n*Metadata:* Logged via util.inspect(meta);\n\n### Loggly Transport\n``` js\n  var Loggly = require(\'winston-loggly\').Loggly\n  winston.add(Loggly, options);\n```\n\nThe Loggly transport is based on [Nodejitsu\'s][5] [node-loggly][6] implementation of the [Loggly][7] API. If you haven\'t heard of Loggly before, you should probably read their [value proposition][8]. The Loggly transport takes the following options. Either \'inputToken\' or \'inputName\' is required:\n\n* __level:__ Level of messages that this transport should log. \n* __subdomain:__ The subdomain of your Loggly account. *[required]*\n* __auth__: The authentication information for your Loggly account. *[required with inputName]*\n* __inputName:__ The name of the input this instance should log to.\n* __inputToken:__ The input token of the input this instance should log to.\n* __json:__ If true, messages will be sent to Loggly as JSON.\n\n*Metadata:* Logged in suggested [Loggly format][2]\n\n### Riak Transport\nAs of `0.3.0` the Riak transport has been broken out into a new module: [winston-riak][17]. Using it is just as easy:\n\n``` js\n  var Riak = require(\'winston-riak\').Riak;\n  winston.add(Riak, options);\n```\n\nIn addition to the options accepted by the [riak-js][3] [client][4], the Riak transport also accepts the following options. It is worth noting that the riak-js debug option is set to *false* by default:\n\n* __level:__ Level of messages that this transport should log.\n* __bucket:__ The name of the Riak bucket you wish your logs to be in or a function to generate bucket names dynamically.\n\n``` js\n  // Use a single bucket for all your logs\n  var singleBucketTransport = new (Riak)({ bucket: \'some-logs-go-here\' });\n  \n  // Generate a dynamic bucket based on the date and level\n  var dynamicBucketTransport = new (Riak)({\n    bucket: function (level, msg, meta, now) {\n      var d = new Date(now);\n      return level + [d.getDate(), d.getMonth(), d.getFullYear()].join(\'-\');\n    }\n  });\n```\n\n*Metadata:* Logged as JSON literal in Riak\n\n### MongoDB Transport\nAs of `0.3.0` the MongoDB transport has been broken out into a new module: [winston-mongodb][16]. Using it is just as easy:\n\n``` js\n  var MongoDB = require(\'winston-mongodb\').MongoDB;\n  winston.add(MongoDB, options);\n```\n\nThe MongoDB transport takes the following options. \'db\' is required:\n\n* __level:__ Level of messages that this transport should log. \n* __silent:__ Boolean flag indicating whether to suppress output.\n* __db:__ The name of the database you want to log to. *[required]*\n* __collection__: The name of the collection you want to store log messages in, defaults to \'log\'.\n* __safe:__ Boolean indicating if you want eventual consistency on your log messages, if set to true it requires an extra round trip to the server to ensure the write was committed, defaults to true.\n* __host:__ The host running MongoDB, defaults to localhost.\n* __port:__ The port on the host that MongoDB is running on, defaults to MongoDB\'s default port.\n\n*Metadata:* Logged as a native JSON object.\n\n### SimpleDB Transport\n\nThe [winston-simpledb][18] transport is just as easy:\n\n``` js\n  var SimpleDB = require(\'winston-simpledb\').SimpleDB;\n  winston.add(SimpleDB, options);\n```\n\nThe SimpleDB transport takes the following options. All items marked with an asterisk are required:\n\n* __awsAccessKey__:* your AWS Access Key\n* __secretAccessKey__:* your AWS Secret Access Key\n* __awsAccountId__:* your AWS Account Id\n* __domainName__:* a string or function that returns the domain name to log to\n* __region__:* the region your domain resides in\n* __itemName__: a string (\'uuid\', \'epoch\', \'timestamp\') or function that returns the item name to log\n\n*Metadata:* Logged as a native JSON object to the \'meta\' attribute of the item.\n\n### Mail Transport\n\nThe [winston-mail][19] is an email transport:\n\n``` js\n  var Mail = require(\'winston-mail\').Mail;\n  winston.add(Mail, options);\n```\n\nThe Mail transport uses [emailjs](https://github.com/eleith/emailjs) behind the scenes.  Options are the following:\n\n* __to:__ The address(es) you want to send to. *[required]*\n* __from:__ The address you want to send from. (default: `winston@[server-host-name]`)\n* __host:__ SMTP server hostname (default: localhost)\n* __port:__ SMTP port (default: 587 or 25)\n* __username__ User for server auth\n* __password__ Password for server auth\n* __ssl:__ Use SSL (boolean or object { key, ca, cert })\n* __tls:__ Boolean (if true, use starttls)\n* __level:__ Level of messages that this transport should log. \n* __silent:__ Boolean flag indicating whether to suppress output.\n\n*Metadata:* Stringified as JSON in email.\n\n### Amazon SNS (Simple Notification System) Transport\n\nThe [winston-sns][21] transport uses amazon SNS to send emails, texts, or a bunch of other notifications.\n\n``` js\n  require(\'winston-sns\').SNS;\n  winston.add(winston.transports.SNS, options);\n```\n\nOptions:\n\n* __aws_key:__ Your Amazon Web Services Key. *[required]*\n* __aws_secret:__ Your Amazon Web Services Secret. *[required]*\n* __subscriber:__ Subscriber number - found in your SNS AWS Console, after clicking on a topic. Same as AWS Account ID. *[required]*\n* __topic_arn:__ Also found in SNS AWS Console - listed under a topic as Topic ARN. *[required]*\n* __region:__ AWS Region to use. Can be one of: `us-east-1`,`us-west-1`,`eu-west-1`,`ap-southeast-1`,`ap-northeast-1`,`us-gov-west-1`,`sa-east-1`. (default: `us-east-1`)\n* __subject:__ Subject for notifications. (default: "Winston Error Report")\n* __message:__ Message of notifications. Uses placeholders for level (%l), error message (%e), and metadata (%m). (default: "Level \'%l\' Error:\\n%e\\n\\nMetadata:\\n%m")\n* __level:__ lowest level this transport will log. (default: `info`)\n\n### Graylog2 Transport\n\n[winston-graylog2][22] is a Graylog2 transport:\n\n``` js\n  var Graylog2 = require(\'winston-graylog2\').Graylog2;\n  winston.add(Graylog2, options);\n```\n\nThe Graylog2 transport connects to a Graylog2 server over UDP using the following options:\n\n* __level:__ Level of messages this transport should log. (default: info)\n* __silent:__ Boolean flag indicating whether to suppress output. (default: false)\n\n* __graylogHost:__ IP address or hostname of the graylog2 server. (default: localhost)\n* __graylogPort:__ Port to send messages to on the graylog2 server. (default: 12201)\n* __graylogHostname:__ The hostname associated with graylog2 messages. (default: require(\'os\').hostname())\n* __graylogFacility:__ The graylog2 facility to send log messages.. (default: nodejs)\n\n*Metadata:* Stringified as JSON in the full message GELF field.\n\n### Adding Custom Transports\nAdding a custom transport (say for one of the datastore on the Roadmap) is actually pretty easy. All you need to do is accept a couple of options, set a name, implement a log() method, and add it to the set of transports exposed by winston.\n\n``` js\n  var util = require(\'util\'),\n      winston = require(\'winston\');\n\n  var CustomLogger = winston.transports.CustomerLogger = function (options) {\n    //\n    // Name this logger\n    //\n    this.name = \'customLogger\';\n\n    //\n    // Set the level from your options\n    //\n    this.level = options.level || \'info\';\n\n    //\n    // Configure your storage backing as you see fit\n    //\n  };\n\n  //\n  // Inherit from `winston.Transport` so you can take advantage\n  // of the base functionality and `.handleExceptions()`.\n  //\n  util.inherits(CustomLogger, winston.Transport);\n\n  CustomLogger.prototype.log = function (level, msg, meta, callback) {\n    //\n    // Store this message and metadata, maybe use some custom logic\n    // then callback indicating success.\n    //\n    callback(null, true);\n  };\n```\n\n### Inspirations\n1. [npm][0]\n2. [log.js][4]\n3. [socket.io][5]\n4. [node-rlog][6]\n5. [BigBrother][7]\n6. [Loggly][8]\n\n## Installation\n\n### Installing npm (node package manager)\n```\n  curl http://npmjs.org/install.sh | sh\n```\n\n### Installing winston\n```\n  [sudo] npm install winston\n```\n\n## Run Tests\nAll of the winston tests are written in [vows][9], and designed to be run with npm. \n\n``` bash\n  $ npm test\n```\n\n#### Author: [Charlie Robbins](http://twitter.com/indexzero)\n#### Contributors: [Matthew Bergman](http://github.com/fotoverite), [Marak Squires](http://github.com/marak)\n\n[0]: https://github.com/isaacs/npm/blob/master/lib/utils/log.js\n[1]: http://nodejs.org/docs/v0.3.5/api/events.html#events.EventEmitter\n[2]: http://github.com/nodejitsu/require-analyzer\n[3]: http://nodejitsu.com\n[4]: https://github.com/visionmedia/log.js\n[5]: http://socket.io\n[6]: https://github.com/jbrisbin/node-rlog\n[7]: https://github.com/feisty/BigBrother\n[8]: http://loggly.com\n[9]: http://vowsjs.org\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     bugs: { url: 'https://github.com/flatiron/winston/issues' },
1265 silly resolved     _id: 'win...@0.6.2',
1265 silly resolved     _from: 'winston@~0.6.2' },
1265 silly resolved   { name: 'bplist-parser',
1265 silly resolved     version: '0.0.4',
1265 silly resolved     description: 'Binary plist parser.',
1265 silly resolved     main: 'bplistParser.js',
1265 silly resolved     scripts: { test: './node_modules/nodeunit/bin/nodeunit test' },
1265 silly resolved     keywords: [ 'bplist', 'plist', 'parser' ],
1265 silly resolved     author: { name: 'Joe Ferner', email: 'joe.f...@nearinfinity.com' },
1265 silly resolved     license: 'MIT',
1265 silly resolved     devDependencies: { nodeunit: '~0.7.4' },
1265 silly resolved     repository:
1265 silly resolved      { type: 'git',
1265 silly resolved        url: 'https://github.com/nearinfinity/node-bplist-parser.git' },
1265 silly resolved     readme: 'bplist-parser\n=============\n\nBinary Mac OS X Plist (property list) parser.\n\n## Installation\n\n```bash\n$ npm install bplist-parser\n```\n\n## Quick Examples\n\n```javascript\nvar bplist = require(\'bplist-parser\');\n\nbplist.parseFile(\'myPlist.bplist\', function(err, obj) {\n  if (err) throw err;\n\n  console.log(JSON.stringify(obj));\n});\n```\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2012 Near Infinity Corporation\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n"Software"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     bugs: { url: 'https://github.com/nearinfinity/node-bplist-parser/issues' },
1265 silly resolved     _id: 'bplist...@0.0.4',
1265 silly resolved     _from: 'bplist-parser@~0.0.4' },
1265 silly resolved   { name: 'bufferpack',
1265 silly resolved     description: 'Module to pack/unpack primitives and c strings into/out of a Node.js buffer',
1265 silly resolved     version: '0.0.6',
1265 silly resolved     keywords: [ 'jspack', 'buffer', 'octet', 'primitive', 'string' ],
1265 silly resolved     homepage: 'https://github.com/ryanrolds/bufferpack',
1265 silly resolved     repository:
1265 silly resolved      { type: 'git',
1265 silly resolved        url: 'git://github.com/ryanrolds/bufferpack.git' },
1265 silly resolved     main: './bufferpack.js',
1265 silly resolved     author: { name: 'Ryan Olds', email: 'ryan...@gmail.com' },
1265 silly resolved     maintainers: [ [Object], [Object], [Object] ],
1265 silly resolved     devDependencies: { mocha: '= 0.10.2', should: '= 0.5.1' },
1265 silly resolved     scripts: { test: './node_modules/.bin/mocha test/*.test.js --reporter spec' },
1265 silly resolved     bugs: { url: 'https://github.com/ryanrolds/bufferpack/issues' },
1265 silly resolved     readme: 'ERROR: No README data found!',
1265 silly resolved     _id: 'buffe...@0.0.6',
1265 silly resolved     _from: 'buffe...@0.0.6' },
1265 silly resolved   { name: 'request',
1265 silly resolved     description: 'Simplified HTTP request client.',
1265 silly resolved     tags: [ 'http', 'simple', 'util', 'utility' ],
1265 silly resolved     version: '2.12.0',
1265 silly resolved     author: { name: 'Mikeal Rogers', email: 'mikeal...@gmail.com' },
1265 silly resolved     repository: { type: 'git', url: 'http://github.com/mikeal/request.git' },
1265 silly resolved     bugs: { url: 'http://github.com/mikeal/request/issues' },
1265 silly resolved     engines: [ 'node >= 0.3.6' ],
1265 silly resolved     main: './main',
1265 silly resolved     dependencies: { 'form-data': '~0.0.3', mime: '~1.2.7' },
1265 silly resolved     bundleDependencies: [ 'form-data', 'mime' ],
1265 silly resolved     scripts: { test: 'node tests/run.js' },
1265 silly resolved     readme: '# Request -- Simplified HTTP request method\n\n## Install\n\n<pre>\n  npm install request\n</pre>\n\nOr from source:\n\n<pre>\n  git clone git://github.com/mikeal/request.git \n  cd request\n  npm link\n</pre>\n\n## Super simple to use\n\nRequest is designed to be the simplest way possible to make http calls. It supports HTTPS and follows redirects by default.\n\n```javascript\nvar request = require(\'request\');\nrequest(\'http://www.google.com\', function (error, response, body) {\n  if (!error && response.statusCode == 200) {\n    console.log(body) // Print the google web page.\n  }\n})\n```\n\n## Streaming\n\nYou can stream any response to a file stream.\n\n```javascript\nrequest(\'http://google.com/doodle.png\').pipe(fs.createWriteStream(\'doodle.png\'))\n```\n\nYou can also stream a file to a PUT or POST request. This method will also check the file extension against a mapping of file extensions to content-types, in this case `application/json`, and use the proper content-type in the PUT request if one is not already provided in the headers.\n\n```javascript\nfs.createReadStream(\'file.json\').pipe(request.put(\'http://mysite.com/obj.json\'))\n```\n\nRequest can also pipe to itself. When doing so the content-type and content-length will be preserved in the PUT headers.\n\n```javascript\nrequest.get(\'http://google.com/img.png\').pipe(request.put(\'http://mysite.com/img.png\'))\n```\n\nNow let\'s get fancy.\n\n```javascript\nhttp.createServer(function (req, resp) {\n  if (req.url === \'/doodle.png\') {\n    if (req.method === \'PUT\') {\n      req.pipe(request.put(\'http://mysite.com/doodle.png\'))\n    } else if (req.method === \'GET\' || req.method === \'HEAD\') {\n      request.get(\'http://mysite.com/doodle.png\').pipe(resp)\n    } \n  }\n})\n```\n\nYou can also pipe() from a http.ServerRequest instance and to a http.ServerResponse instance. The HTTP method and headers will be sent as well as the entity-body data. Which means that, if you don\'t really care about security, you can do:\n\n```javascript\nhttp.createServer(function (req, resp) {\n  if (req.url === \'/doodle.png\') {\n    var x = request(\'http://mysite.com/doodle.png\')\n    req.pipe(x)\n    x.pipe(resp)\n  }\n})\n```\n\nAnd since pipe() returns the destination stream in node 0.5.x you can do one line proxying :)\n\n```javascript\nreq.pipe(request(\'http://mysite.com/doodle.png\')).pipe(resp)\n```\n\nAlso, none of this new functionality conflicts with requests previous features, it just expands them.\n\n```javascript\nvar r = request.defaults({\'proxy\':\'http://localproxy.com\'})\n\nhttp.createServer(function (req, resp) {\n  if (req.url === \'/doodle.png\') {\n    r.get(\'http://google.com/doodle.png\').pipe(resp)\n  }\n})\n```\nYou can still use intermediate proxies, the requests will still follow HTTP forwards, etc.\n\n## Forms\n\n`request` supports `application/x-www-form-urlencoded` and `multipart/form-data` form uploads. For `multipart/related` refer to the `multipart` API.\n\nUrl encoded forms are simple\n\n```javascript\nrequest.post(\'http://service.com/upload\', {form:{key:\'value\'}})\n// or\nrequest.post(\'http://service.com/upload\').form({key:\'value\'})\n```\n\nFor `multipart/form-data` we use the [form-data](https://github.com/felixge/node-form-data) library by [@felixge](https://github.com/felixge). You don\'t need to worry about piping the form object or setting the headers, `request` will handle that for you.\n\n```javascript\nvar r = request.post(\'http://service.com/upload\')\nvar form = r.form()\nform.append(\'my_field\', \'my_value\')\nform.append(\'my_buffer\', new Buffer([1, 2, 3]))\nform.append(\'my_file\', fs.createReadStream(path.join(__dirname, \'doodle.png\'))\nform.append(\'remote_file\', request(\'http://google.com/doodle.png\'))\n```\n\n## OAuth Signing\n\n```javascript\n// Twitter OAuth\nvar qs = require(\'querystring\')\n  , oauth =\n    { callback: \'http://mysite.com/callback/\'\n    , consumer_key: CONSUMER_KEY\n    , consumer_secret: CONSUMER_SECRET\n    }\n  , url = \'https://api.twitter.com/oauth/request_token\'\n  ;\nrequest.post({url:url, oauth:oauth}, function (e, r, body) {\n  // Assume by some stretch of magic you aquired the verifier\n  var access_token = qs.parse(body)\n    , oauth = \n      { consumer_key: CONSUMER_KEY\n      , consumer_secret: CONSUMER_SECRET\n      , token: access_token.oauth_token\n      , verifier: VERIFIER\n      , token_secret: access_token.oauth_token_secret\n      }\n    , url = \'https://api.twitter.com/oauth/access_token\'\n    ;\n  request.post({url:url, oauth:oauth}, function (e, r, body) {\n    var perm_token = qs.parse(body)\n      , oauth = \n        { consumer_key: CONSUMER_KEY\n        , consumer_secret: CONSUMER_SECRET\n        , token: perm_token.oauth_token\n        , token_secret: perm_token.oauth_token_secret\n        }\n      , url = \'https://api.twitter.com/1/users/show.json?\'\n      , params = \n        { screen_name: perm_token.screen_name\n        , user_id: perm_token.user_id\n        }\n      ;\n    url += qs.stringify(params)\n    request.get({url:url, oauth:oauth, json:true}, function (e, r, user) {\n      console.log(user)\n    })\n  })\n})\n```\n\n\n\n### request(options, callback)\n\nThe first argument can be either a url or an options object. The only required option is uri, all others are optional.\n\n* `uri` || `url` - fully qualified uri or a parsed url object from url.parse()\n* `qs` - object containing querystring values to be appended to the uri\n* `method` - http method, defaults to GET\n* `headers` - http headers, defaults to {}\n* `body` - entity body for POST and PUT requests. Must be buffer or string.\n* `form` - when passed an object this will set `body` but to a querystring representation of value and adds `Content-type: application/x-www-form-urlencoded; charset=utf-8` header. When passed no option a FormData instance is returned that will be piped to request.\n* `json` - sets `body` but to JSON representation of value and adds `Content-type: application/json` header.  Additionally, parses the response body as json.\n* `multipart` - (experimental) array of objects which contains their own headers and `body` attribute. Sends `multipart/related` request. See example below.\n* `followRedirect` - follow HTTP 3xx responses as redirects. defaults to true.\n* `followAllRedirects` - follow non-GET HTTP 3xx responses as redirects. defaults to false.\n* `maxRedirects` - the maximum number of redirects to follow, defaults to 10.\n* `encoding` - Encoding to be used on `setEncoding` of response data. If set to `null`, the body is returned as a Buffer.\n* `pool` - A hash object containing the agents for these requests. If omitted this request will use the global pool which is set to node\'s default maxSockets.\n* `pool.maxSockets` - Integer containing the maximum amount of sockets in the pool.\n* `timeout` - Integer containing the number of milliseconds to wait for a request to respond before aborting the request\t\n* `proxy` - An HTTP proxy to be used. Support proxy Auth with Basic Auth the same way it\'s supported with the `url` parameter by embedding the auth info in the uri.\n* `oauth` - Options for OAuth HMAC-SHA1 signing, see documentation above.\n* `strictSSL` - Set to `true` to require that SSL certificates be valid. Note: to use your own certificate authority, you need to specify an agent that was created with that ca as an option.\n* `jar` - Set to `false` if you don\'t want cookies to be remembered for future use or define your custom cookie jar (see examples section)\n* `aws` - object containing aws signing information, should have the properties `key` and `secret` as well as `bucket` unless you\'re specifying your bucket as part of the path, or you are making a request that doesn\'t use a bucket (i.e. GET Services)\n\n\nThe callback argument gets 3 arguments. The first is an error when applicable (usually from the http.Client option not the http.ClientRequest object). The second in an http.ClientResponse object. The third is the response body String or Buffer.\n\n## Convenience methods\n\nThere are also shorthand methods for different HTTP METHODs and some other conveniences.\n\n### request.defaults(options)  \n  \nThis method returns a wrapper around the normal request API that defaults to whatever options you pass in to it.\n\n### request.put\n\nSame as request() but defaults to `method: "PUT"`.\n\n```javascript\nrequest.put(url)\n```\n\n### request.post\n\nSame as request() but defaults to `method: "POST"`.\n\n```javascript\nrequest.post(url)\n```\n\n### request.head\n\nSame as request() but defaults to `method: "HEAD"`.\n\n```javascript\nrequest.head(url)\n```\n\n### request.del\n\nSame as request() but defaults to `method: "DELETE"`.\n\n```javascript\nrequest.del(url)\n```\n\n### request.get\n\nAlias to normal request method for uniformity.\n\n```javascript\nrequest.get(url)\n```\n### request.cookie\n\nFunction that creates a new cookie.\n\n```javascript\nrequest.cookie(\'cookie_string_here\')\n```\n### request.jar\n\nFunction that creates a new cookie jar.\n\n```javascript\nrequest.jar()\n```\n\n\n## Examples:\n\n```javascript\n  var request = require(\'request\')\n    , rand = Math.floor(Math.random()*100000000).toString()\n    ;\n  request(\n    { method: \'PUT\'\n    , uri: \'http://mikeal.iriscouch.com/testjs/\' + rand\n    , multipart: \n      [ { \'content-type\': \'application/json\'\n        ,  body: JSON.stringify({foo: \'bar\', _attachments: {\'message.txt\': {follows: true, length: 18, \'content_type\': \'text/plain\' }}})\n        }\n      , { body: \'I am an attachment\' }\n      ] \n    }\n  , function (error, response, body) {\n      if(response.statusCode == 201){\n        console.log(\'document saved as: http://mikeal.iriscouch.com/testjs/\'+ rand)\n      } else {\n        console.log(\'error: \'+ response.statusCode)\n        console.log(body)\n      }\n    }\n  )\n```\nCookies are enabled by default (so they can be used in subsequent requests). To disable cookies set jar to false (either in defaults or in the options sent).\n\n```javascript\nvar request = request.defaults({jar: false})\nrequest(\'http://www.google.com\', function () {\n  request(\'http://images.google.com\')\n})\n```\n\nIf you to use a custom cookie jar (instead of letting request use its own global cookie jar) you do so by setting the jar default or by specifying it as an option:\n\n```javascript\nvar j = request.jar()\nvar request = request.defaults({jar:j})\nrequest(\'http://www.google.com\', function () {\n  request(\'http://images.google.com\')\n})\n```\nOR\n\n```javascript\nvar j = request.jar()\nvar cookie = request.cookie(\'your_cookie_here\')\nj.add(cookie)\nrequest({url: \'http://www.google.com\', jar: j}, function () {\n  request(\'http://images.google.com\')\n})\n```\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     _id: 'req...@2.12.0',
1265 silly resolved     _from: 'request@~2.12.0' },
1265 silly resolved   { name: 'bplist-creator',
1265 silly resolved     version: '0.0.2',
1265 silly resolved     description: 'Binary Mac OS X Plist (property list) creator.',
1265 silly resolved     main: 'bplistCreator.js',
1265 silly resolved     scripts: { test: './node_modules/nodeunit/bin/nodeunit test' },
1265 silly resolved     repository:
1265 silly resolved      { type: 'git',
1265 silly resolved        url: 'https://github.com/nearinfinity/node-bplist-creator.git' },
1265 silly resolved     keywords: [ 'bplist', 'plist', 'creator' ],
1265 silly resolved     author: { name: 'https://github.com/nearinfinity/node-bplist-parser.git' },
1265 silly resolved     license: 'MIT',
1265 silly resolved     devDependencies: { 'bplist-parser': '0.0.4', nodeunit: '0.7.4' },
1265 silly resolved     dependencies: { 'stream-buffers': '~0.2.3' },
1265 silly resolved     readme: 'bplist-parser\n=============\n\nBinary Mac OS X Plist (property list) creator.\n\n## Installation\n\n```bash\n$ npm install bplist-creator\n```\n\n## Quick Examples\n\n```javascript\nvar bplist = require(\'bplist-creator\');\n\nvar buffer = bplist({\n  key1: [1, 2, 3]\n});\n```\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2012 Near Infinity Corporation\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n"Software"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     bugs: { url: 'https://github.com/nearinfinity/node-bplist-creator/issues' },
1265 silly resolved     _id: 'bplist-...@0.0.2',
1265 silly resolved     _from: 'bplist-creator@~0.0.2' },
1265 silly resolved   { name: 'node-uuid',
1265 silly resolved     description: 'Rigorous implementation of RFC4122 (v1 and v4) UUIDs.',
1265 silly resolved     url: 'http://github.com/broofa/node-uuid',
1265 silly resolved     keywords: [ 'uuid', 'guid', 'rfc4122' ],
1265 silly resolved     author: { name: 'Robert Kieffer', email: 'rob...@broofa.com' },
1265 silly resolved     contributors: [ [Object] ],
1265 silly resolved     lib: '.',
1265 silly resolved     main: './uuid.js',
1265 silly resolved     repository: { type: 'git', url: 'https://github.com/broofa/node-uuid.git' },
1265 silly resolved     version: '1.4.0',
1265 silly resolved     readme: '# node-uuid\n\nSimple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS.\n\nFeatures:\n\n* Generate RFC4122 version 1 or version 4 UUIDs\n* Runs in node.js and all browsers.\n* Cryptographically strong random # generation on supporting platforms\n* 1.1K minified and gzip\'ed  (Want something smaller?  Check this [crazy shit](https://gist.github.com/982883) out! )\n* [Annotated source code](http://broofa.github.com/node-uuid/docs/uuid.html)\n\n## Getting Started\n\nInstall it in your browser:\n\n```html\n<script src="uuid.js"></script>\n```\n\nOr in node.js:\n\n```\nnpm install node-uuid\n```\n\n```javascript\nvar uuid = require(\'node-uuid\');\n```\n\nThen create some ids ...\n\n```javascript\n// Generate a v1 (time-based) id\nuuid.v1(); // -> \'6c84fb90-12c4-11e1-840d-7b25c5ee775a\'\n\n// Generate a v4 (random) id\nuuid.v4(); // -> \'110ec58a-a0f2-4ac4-8393-c866d813b8d1\'\n```\n\n## API\n\n### uuid.v1([`options` [, `buffer` [, `offset`]]])\n\nGenerate and return a RFC4122 v1 (timestamp-based) UUID.\n\n* `options` - (Object) Optional uuid state to apply. Properties may include:\n\n  * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID.  See note 1.\n  * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence.  Default: An internally maintained clockseq is used.\n  * `msecs` - (Number | Date) Time in milliseconds since unix Epoch.  Default: The current time is used.\n  * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2.\n\n* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.\n* `offset` - (Number) Starting index in `buffer` at which to begin writing.\n\nReturns `buffer`, if specified, otherwise the string form of the UUID\n\nNotes:\n\n1. The randomly generated node id is only guaranteed to stay constant for the lifetime of the current JS runtime. (Future versions of this module may use persistent storage mechanisms to extend this guarantee.)\n\nExample: Generate string UUID with fully-specified options\n\n```javascript\nuuid.v1({\n  node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],\n  clockseq: 0x1234,\n  msecs: new Date(\'2011-11-01\').getTime(),\n  nsecs: 5678\n});   // -> "710b962e-041c-11e1-9234-0123456789ab"\n```\n\nExample: In-place generation of two binary IDs\n\n```javascript\n// Generate two ids in an array\nvar arr = new Array(32); // -> []\nuuid.v1(null, arr, 0);   // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15]\nuuid.v1(null, arr, 16);  // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15 02 a3 1c b0 14 32 11 e1 85 58 0b 48 8e 4f c1 15]\n\n// Optionally use uuid.unparse() to get stringify the ids\nuuid.unparse(buffer);    // -> \'02a2ce90-1432-11e1-8558-0b488e4fc115\'\nuuid.unparse(buffer, 16) // -> \'02a31cb0-1432-11e1-8558-0b488e4fc115\'\n```\n\n### uuid.v4([`options` [, `buffer` [, `offset`]]])\n\nGenerate and return a RFC4122 v4 UUID.\n\n* `options` - (Object) Optional uuid state to apply. Properties may include:\n\n  * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values\n  * `rng` - (Function) Random # generator to use.  Set to one of the built-in generators - `uuid.mathRNG` (all platforms), `uuid.nodeRNG` (node.js only), `uuid.whatwgRNG` (WebKit only) - or a custom function that returns an array[16] of byte values.\n\n* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.\n* `offset` - (Number) Starting index in `buffer` at which to begin writing.\n\nReturns `buffer`, if specified, otherwise the string form of the UUID\n\nExample: Generate string UUID with fully-specified options\n\n```javascript\nuuid.v4({\n  random: [\n    0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea,\n    0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36\n  ]\n});\n// -> "109156be-c4fb-41ea-b1b4-efe1671c5836"\n```\n\nExample: Generate two IDs in a single buffer\n\n```javascript\nvar buffer = new Array(32); // (or \'new Buffer\' in node.js)\nuuid.v4(null, buffer, 0);\nuuid.v4(null, buffer, 16);\n```\n\n### uuid.parse(id[, buffer[, offset]])\n### uuid.unparse(buffer[, offset])\n\nParse and unparse UUIDs\n\n  * `id` - (String) UUID(-like) string\n  * `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. Default: A new Array or Buffer is used\n  * `offset` - (Number) Starting index in `buffer` at which to begin writing. Default: 0\n\nExample parsing and unparsing a UUID string\n\n```javascript\nvar bytes = uuid.parse(\'797ff043-11eb-11e1-80d6-510998755d10\'); // -> <Buffer 79 7f f0 43 11 eb 11 e1 80 d6 51 09 98 75 5d 10>\nvar string = uuid.unparse(bytes); // -> \'797ff043-11eb-11e1-80d6-510998755d10\'\n```\n\n### uuid.noConflict()\n\n(Browsers only) Set `uuid` property back to it\'s previous value.\n\nReturns the node-uuid object.\n\nExample:\n\n```javascript\nvar myUuid = uuid.noConflict();\nmyUuid.v1(); // -> \'6c84fb90-12c4-11e1-840d-7b25c5ee775a\'\n```\n\n## Deprecated APIs\n\nSupport for the following v1.2 APIs is available in v1.3, but is deprecated and will be removed in the next major version.\n\n### uuid([format [, buffer [, offset]]])\n\nuuid() has become uuid.v4(), and the `format` argument is now implicit in the `buffer` argument. (i.e. if you specify a buffer, the format is assumed to be binary).\n\n### uuid.BufferClass\n\nThe class of container created when generating binary uuid data if no buffer argument is specified.  This is expected to go away, with no replacement API.\n\n## Testing\n\nIn node.js\n\n```\n> cd test\n> node test.js\n```\n\nIn Browser\n\n```\nopen test/test.html\n```\n\n### Benchmarking\n\nRequires node.js\n\n```\nnpm install uuid uuid-js\nnode benchmark/benchmark.js\n```\n\nFor a more complete discussion of node-uuid performance, please see the `benchmark/README.md` file, and the [benchmark wiki](https://github.com/broofa/node-uuid/wiki/Benchmark)\n\nFor browser performance [checkout the JSPerf tests](http://jsperf.com/node-uuid-performance).\n\n## Release notes\n\nv1.4\n* Improved module context detection\n* Removed public RNG functions\n\nv1.3.2:\n* Improve tests and handling of v1() options (Issue #24)\n* Expose RNG option to allow for perf testing with different generators\n\nv1.3:\n* Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)!\n* Support for node.js crypto API\n* De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     bugs: { url: 'https://github.com/broofa/node-uuid/issues' },
1265 silly resolved     _id: 'node...@1.4.0',
1265 silly resolved     _from: 'node-uuid@~1.4.0' },
1265 silly resolved   { name: 'underscore.string',
1265 silly resolved     version: '2.3.1',
1265 silly resolved     description: 'String manipulation extensions for Underscore.js javascript library.',
1265 silly resolved     homepage: 'http://epeli.github.com/underscore.string/',
1265 silly resolved     contributors:
1265 silly resolved      [ [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object] ],
1265 silly resolved     keywords: [ 'underscore', 'string' ],
1265 silly resolved     main: './lib/underscore.string',
1265 silly resolved     directories: { lib: './lib' },
1265 silly resolved     engines: { node: '*' },
1265 silly resolved     repository:
1265 silly resolved      { type: 'git',
1265 silly resolved        url: 'https://github.com/epeli/underscore.string.git' },
1265 silly resolved     bugs: { url: 'https://github.com/epeli/underscore.string/issues' },
1265 silly resolved     licenses: [ [Object] ],
1265 silly resolved     readme: '# Underscore.string [![Build Status](https://secure.travis-ci.org/epeli/underscore.string.png?branch=master)](http://travis-ci.org/epeli/underscore.string) #\n\n\n\nJavascript lacks complete string manipulation operations.\nThis an attempt to fill that gap. List of build-in methods can be found\nfor example from [Dive Into JavaScript][d].\n\n[d]: http://www.diveintojavascript.com/core-javascript-reference/the-string-object\n\n\nAs name states this an extension for [Underscore.js][u], but it can be used\nindependently from **_s**-global variable. But with Underscore.js you can\nuse Object-Oriented style and chaining:\n\n[u]: http://documentcloud.github.com/underscore/\n\n```javascript\n_("   epeli  ").chain().trim().capitalize().value()\n=> "Epeli"\n```\n\n## Download ##\n\n  * [Development version](https://raw.github.com/epeli/underscore.string/master/lib/underscore.string.js) *Uncompressed with Comments 18kb*\n  * [Production version](https://github.com/epeli/underscore.string/raw/master/dist/underscore.string.min.js) *Minified 7kb*\n\n\n## Node.js installation ##\n\n**npm package**\n\n    npm install underscore.string\n\n**Standalone usage**:\n\n```javascript\nvar _s = require(\'underscore.string\');\n```\n\n**Integrate with Underscore.js**:\n\n```javascript\nvar _  = require(\'underscore\');\n\n// Import Underscore.string to separate object, because there are conflict functions (include, reverse, contains)\n_.str = require(\'underscore.string\');\n\n// Mix in non-conflict functions to Underscore namespace if you want\n_.mixin(_.str.exports());\n\n// All functions, include conflict, will be available through _.str object\n_.str.include(\'Underscore.string\', \'string\'); // => true\n```\n\n## String Functions ##\n\nFor availability of functions in this way you need to mix in Underscore.string functions:\n\n```javascript\n_.mixin(_.string.exports());\n```\n\notherwise functions from examples will be available through _.string or _.str objects:\n\n```javascript\n_.str.capitalize(\'epeli\')\n=> "Epeli"\n```\n\n**numberFormat** _.numberFormat(number, [ decimals=0, decimalSeparator=\'.\', orderSeparator=\',\'])\n\nFormats the numbers.\n\n```javascript\n_.numberFormat(1000, 2)\n=> "1,000.00"\n\n_.numberFormat(123456789.123, 5, \'.\', \',\')\n=> "123,456,789.12300"\n```\n\n\n**levenshtein** _.levenshtein(string1, string2)\n\nCalculates [Levenshtein distance][ld] between two strings.\n[ld]: http://en.wikipedia.org/wiki/Levenshtein_distance\n\n```javascript\n_.levenshtein(\'kitten\', \'kittah\')\n=> 2\n```\n\n**capitalize** _.capitalize(string)\n\nConverts first letter of the string to uppercase.\n\n```javascript\n_.capitalize("foo Bar")\n=> "Foo Bar"\n```\n\n**chop** _.chop(string, step)\n\n```javascript\n_.chop(\'whitespace\', 3)\n=> [\'whi\',\'tes\',\'pac\',\'e\']\n```\n\n**clean** _.clean(str)\n\nCompress some whitespaces to one.\n\n```javascript\n_.clean(" foo    bar   ")\n=> \'foo bar\'\n```\n\n**chars** _.chars(str)\n\n```javascript\n_.chars(\'Hello\')\n=> [\'H\',\'e\',\'l\',\'l\',\'o\']\n```\n\n**swapCase** _.swapCase(str)\n\nReturns a copy of the string in which all the case-based characters have had their case swapped.\n\n```javascript\n_.swapCase(\'hELLO\')\n=> \'Hello\'\n```\n\n**include** available only through _.str object, because Underscore has function with the same name.\n\n```javascript\n_.str.include("foobar", "ob")\n=> true\n```\n\n(removed) **includes** _.includes(string, substring)\n\nTests if string contains a substring.\n\n```javascript\n_.includes("foobar", "ob")\n=> true\n```\n\n**includes** function was removed\n\nBut you can create it in this way, for compatibility with previous versions:\n\n```javascript\n_.includes = _.str.include\n```\n\n**count** _.count(string, substring)\n\n```javascript\n_(\'Hello world\').count(\'l\')\n=> 3\n```\n\n**escapeHTML** _.escapeHTML(string)\n\nConverts HTML special characters to their entity equivalents.\n\n```javascript\n_(\'<div>Blah blah blah</div>\').escapeHTML();\n=> \'&lt;div&gt;Blah blah blah&lt;/div&gt;\'\n```\n\n**unescapeHTML** _.unescapeHTML(string)\n\nConverts entity characters to HTML equivalents.\n\n```javascript\n_(\'&lt;div&gt;Blah blah blah&lt;/div&gt;\').unescapeHTML();\n=> \'<div>Blah blah blah</div>\'\n```\n\n**insert** _.insert(string, index, substing)\n\n```javascript\n_(\'Hello \').insert(6, \'world\')\n=> \'Hello world\'\n```\n\n**isBlank** _.isBlank(string)\n\n```javascript\n_(\'\').isBlank(); // => true\n_(\'\\n\').isBlank(); // => true\n_(\' \').isBlank(); // => true\n_(\'a\').isBlank(); // => false\n```\n\n**join** _.join(separator, *strings)\n\nJoins strings together with given separator\n\n```javascript\n_.join(" ", "foo", "bar")\n=> "foo bar"\n```\n\n**lines** _.lines(str)\n\n```javascript\n_.lines("Hello\\nWorld")\n=> ["Hello", "World"]\n```\n\n**reverse** available only through _.str object, because Underscore has function with the same name.\n\nReturn reversed string:\n\n```javascript\n_.str.reverse("foobar")\n=> \'raboof\'\n```\n\n**splice**  _.splice(string, index, howmany, substring)\n\nLike a array splice.\n\n```javascript\n_(\'https://edt...@bitbucket.org/edtsech/underscore.strings\').splice(30, 7, \'epeli\')\n=> \'https://edt...@bitbucket.org/epeli/underscore.strings\'\n```\n\n**startsWith** _.startsWith(string, starts)\n\nThis method checks whether string starts with starts.\n\n```javascript\n_("image.gif").startsWith("image")\n=> true\n```\n\n**endsWith** _.endsWith(string, ends)\n\nThis method checks whether string ends with ends.\n\n```javascript\n_("image.gif").endsWith("gif")\n=> true\n```\n\n**succ**  _.succ(str)\n\nReturns the successor to str.\n\n```javascript\n_(\'a\').succ()\n=> \'b\'\n\n_(\'A\').succ()\n=> \'B\'\n```\n\n**supplant**\n\nSupplant function was removed, use Underscore.js [template function][p].\n\n[p]: http://documentcloud.github.com/underscore/#template\n\n**strip** alias for *trim*\n\n**lstrip** alias for *ltrim*\n\n**rstrip** alias for *rtrim*\n\n**titleize** _.titleize(string)\n\n```javascript\n_(\'my name is epeli\').titleize()\n=> \'My Name Is Epeli\'\n```\n\n**camelize** _.camelize(string)\n\nConverts underscored or dasherized string to a camelized one\n\n```javascript\n_(\'-moz-transform\').camelize()\n=> \'MozTransform\'\n```\n\n**classify** _.classify(string)\n\nConverts string to camelized class name\n\n```javascript\n_(\'some_class_name\').classify()\n=> \'SomeClassName\'\n```\n\n**underscored** _.underscored(string)\n\nConverts a camelized or dasherized string into an underscored one\n\n```javascript\n_(\'MozTransform\').underscored()\n=> \'moz_transform\'\n```\n\n**dasherize** _.dasherize(string)\n\nConverts a underscored or camelized string into an dasherized one\n\n```javascript\n_(\'MozTransform\').dasherize()\n=> \'-moz-transform\'\n```\n\n**humanize** _.humanize(string)\n\nConverts an underscored, camelized, or dasherized string into a humanized one.\nAlso removes beginning and ending whitespace, and removes the postfix \'_id\'.\n\n```javascript\n_(\'  capitalize dash-CamelCase_underscore trim  \').humanize()\n=> \'Capitalize dash camel case underscore trim\'\n```\n\n**trim** _.trim(string, [characters])\n\ntrims defined characters from begining and ending of the string.\nDefaults to whitespace characters.\n\n```javascript\n_.trim("  foobar   ")\n=> "foobar"\n\n_.trim("_-foobar-_", "_-")\n=> "foobar"\n```\n\n\n**ltrim** _.ltrim(string, [characters])\n\nLeft trim. Similar to trim, but only for left side.\n\n\n**rtrim** _.rtrim(string, [characters])\n\nRight trim. Similar to trim, but only for right side.\n\n**truncate** _.truncate(string, length, truncateString)\n\n```javascript\n_(\'Hello world\').truncate(5)\n=> \'Hello...\'\n\n_(\'Hello\').truncate(10)\n=> \'Hello\'\n```\n\n**prune** _.prune(string, length, pruneString)\n\nElegant version of truncate.\nMakes sure the pruned string does not exceed the original length.\nAvoid half-chopped words when truncating.\n\n```javascript\n_(\'Hello, world\').prune(5)\n=> \'Hello...\'\n\n_(\'Hello, world\').prune(8)\n=> \'Hello...\'\n\n_(\'Hello, world\').prune(5, \' (read a lot more)\')\n=> \'Hello, world\' (as adding "(read a lot more)" would be longer than the original string)\n\n_(\'Hello, cruel world\').prune(15)\n=> \'Hello, cruel...\'\n\n_(\'Hello\').prune(10)\n=> \'Hello\'\n```\n\n**words** _.words(str, delimiter=/\\s+/)\n\nSplit string by delimiter (String or RegExp), /\\s+/ by default.\n\n```javascript\n_.words("   I   love   you   ")\n=> ["I","love","you"]\n\n_.words("I_love_you", "_")\n=> ["I","love","you"]\n\n_.words("I-love-you", /-/)\n=> ["I","love","you"]\n\n_.words("   ")\n=> []\n```\n\n**sprintf** _.sprintf(string format, *arguments)\n\nC like string formatting.\nCredits goes to [Alexandru Marasteanu][o].\nFor more detailed documentation, see the [original page][o].\n\n[o]: http://www.diveintojavascript.com/projects/sprintf-for-javascript\n\n```javascript\n_.sprintf("%.1f", 1.17)\n"1.2"\n```\n\n**pad** _.pad(str, length, [padStr, type])\n\npads the `str` with characters until the total string length is equal to the passed `length` parameter. By default, pads on the **left** with the space char (`" "`). `padStr` is truncated to a single character if necessary.\n\n```javascript\n_.pad("1", 8)\n-> "       1";\n\n_.pad("1", 8, \'0\')\n-> "00000001";\n\n_.pad("1", 8, \'0\', \'right\')\n-> "10000000";\n\n_.pad("1", 8, \'0\', \'both\')\n-> "00001000";\n\n_.pad("1", 8, \'bleepblorp\', \'both\')\n-> "bbbb1bbb";\n```\n\n**lpad** _.lpad(str, length, [padStr])\n\nleft-pad a string. Alias for `pad(str, length, padStr, \'left\')`\n\n```javascript\n_.lpad("1", 8, \'0\')\n-> "00000001";\n```\n\n**rpad** _.rpad(str, length, [padStr])\n\nright-pad a string. Alias for `pad(str, length, padStr, \'right\')`\n\n```javascript\n_.rpad("1", 8, \'0\')\n-> "10000000";\n```\n\n**lrpad** _.lrpad(str, length, [padStr])\n\nleft/right-pad a string. Alias for `pad(str, length, padStr, \'both\')`\n\n```javascript\n_.lrpad("1", 8, \'0\')\n-> "00001000";\n```\n\n**center** alias for **lrpad**\n\n**ljust** alias for *rpad*\n\n**rjust** alias for *lpad*\n\n**toNumber**  _.toNumber(string, [decimals])\n\nParse string to number. Returns NaN if string can\'t be parsed to number.\n\n```javascript\n_(\'2.556\').toNumber()\n=> 3\n\n_(\'2.556\').toNumber(1)\n=> 2.6\n```\n\n**strRight**  _.strRight(string, pattern)\n\nSearches a string from left to right for a pattern and returns a substring consisting of the characters in the string that are to the right of the pattern or all string if no match found.\n\n```javascript\n_(\'This_is_a_test_string\').strRight(\'_\')\n=> "is_a_test_string";\n```\n\n**strRightBack**  _.strRightBack(string, pattern)\n\nSearches a string from right to left for a pattern and returns a substring consisting of the characters in the string that are to the right of the pattern or all string if no match found.\n\n```javascript\n_(\'This_is_a_test_string\').strRightBack(\'_\')\n=> "string";\n```\n\n**strLeft**  _.strLeft(string, pattern)\n\nSearches a string from left to right for a pattern and returns a substring consisting of the characters in the string that are to the left of the pattern or all string if no match found.\n\n```javascript\n_(\'This_is_a_test_string\').strLeft(\'_\')\n=> "This";\n```\n\n**strLeftBack**  _.strLeftBack(string, pattern)\n\nSearches a string from right to left for a pattern and returns a substring consisting of the characters in the string that are to the left of the pattern or all string if no match found.\n\n```javascript\n_(\'This_is_a_test_string\').strLeftBack(\'_\')\n=> "This_is_a_test";\n```\n\n**stripTags**\n\nRemoves all html tags from string.\n\n```javascript\n_(\'a <a href="#">link</a>\').stripTags()\n=> \'a link\'\n\n_(\'a <a href="#">link</a><script>alert("hello world!")</script>\').stripTags()\n=> \'a linkalert("hello world!")\'\n```\n\n**toSentence**  _.toSentence(array, [delimiter, lastDelimiter])\n\nJoin an array into a human readable sentence.\n\n```javascript\n_.toSentence([\'jQuery\', \'Mootools\', \'Prototype\'])\n=> \'jQuery, Mootools and Prototype\';\n\n_.toSentence([\'jQuery\', \'Mootools\', \'Prototype\'], \', \', \' unt \')\n=> \'jQuery, Mootools unt Prototype\';\n```\n\n**toSentenceSerial**  _.toSentenceSerial(array, [delimiter, lastDelimiter])\n\nThe same as `toSentence`, but adjusts delimeters to use [Serial comma](http://en.wikipedia.org/wiki/Serial_comma).\n\n```javascript\n_.toSentenceSerial([\'jQuery\', \'Mootools\'])\n=> \'jQuery and Mootools\';\n\n_.toSentenceSerial([\'jQuery\', \'Mootools\', \'Prototype\'])\n=> \'jQuery, Mootools, and Prototype\'\n\n_.toSentenceSerial([\'jQuery\', \'Mootools\', \'Prototype\'], \', \', \' unt \');\n=> \'jQuery, Mootools, unt Prototype\';\n```\n\n**repeat** _.repeat(string, count, [separator])\n\nRepeats a string count times.\n\n```javascript\n_.repeat("foo", 3)\n=> \'foofoofoo\';\n\n_.repeat("foo", 3, "bar")\n=> \'foobarfoobarfoo\'\n```\n\n**surround** _.surround(string, wrap)\n\nSurround a string with another string.\n\n```javascript\n_.surround("foo", "ab")\n=> \'abfooab\';\n```\n\n**quote** _.quote(string) or _.q(string)\n\nQuotes a string.\n\n```javascript\n_.quote(\'foo\')\n=> \'"foo"\';\n```\n\n\n**slugify** _.slugify(string)\n\nTransform text into a URL slug. Replaces whitespaces, accentuated, and special characters with a dash.\n\n```javascript\n_.slugify("Un éléphant à l\'orée du bois")\n=> \'un-elephant-a-loree-du-bois\';\n```\n\n***Caution: this function is charset dependent***\n\n## Roadmap ##\n\nAny suggestions or bug reports are welcome. Just email me or more preferably open an issue.\n\n#### Problems\n\nWe lose two things for `include` and `reverse` methods from `_.string`:\n\n* Calls like `_(\'foobar\').include(\'bar\')` aren\'t available;\n* Chaining isn\'t available too.\n\nBut if you need this functionality you can create aliases for conflict functions which will be convenient for you:\n\n```javascript\n_.mixin({\n    includeString: _.str.include,\n    reverseString: _.str.reverse\n})\n\n// Now wrapper calls and chaining are available.\n_(\'foobar\').chain().reverseString().includeString(\'rab\').value()\n```\n\n#### Standalone Usage\n\nIf you are using Underscore.string without Underscore. You also have `_.string` namespace for it and `_.str` alias\nBut of course you can just reassign `_` variable with `_.string`\n\n```javascript\n_ = _.string\n```\n\n## Changelog ##\n\n### 2.3.1 ###\n\n* Changed integration logic, now trying everything in order\n* Fixed classify method to chew some unexpected input\n* Fixed toNumber method failing to recognize \'0.0\' as a proper number\n\n\n### 2.3.0 ###\n\n* Added `numberformat` method\n* Added `levenshtein` method (Levenshtein distance calculation)\n* Added `swapCase` method\n* Changed default behavior of `words` method\n* Added `toSentenceSerial` method\n* Added `surround` and `quote` methods\n\n### 2.2.0 ###\n\n* Capitalize method behavior changed\n* Various perfomance tweaks\n\n### 2.1.1###\n\n* Fixed words method bug\n* Added classify method\n\n### 2.1.0 ###\n\n* AMD support\n* Added toSentence method\n* Added slugify method\n* Lots of speed optimizations\n\n### 2.0.0 ###\n\n* Added prune, humanize functions\n* Added _.string (_.str) namespace for Underscore.string library\n* Removed includes function\n\nFor upgrading to this version you need to mix in Underscore.string library to Underscore object:\n\n```javascript\n_.mixin(_.string.exports());\n```\n\nand all non-conflict Underscore.string functions will be available through Underscore object.\nAlso function `includes` has been removed, you should replace this function by `_.str.include`\nor create alias `_.includes = _.str.include` and all your code will work fine.\n\n### 1.1.6 ###\n\n* Fixed reverse and truncate\n* Added isBlank, stripTags, inlude(alias for includes)\n* Added uglifier compression\n\n### 1.1.5 ###\n\n* Added strRight, strRightBack, strLeft, strLeftBack\n\n### 1.1.4 ###\n\n* Added pad, lpad, rpad, lrpad methods and aliases center, ljust, rjust\n* Integration with Underscore 1.1.6\n\n### 1.1.3 ###\n\n* Added methods: underscored, camelize, dasherize\n* Support newer version of npm\n\n### 1.1.2 ###\n\n* Created functions: lines, chars, words functions\n\n### 1.0.2 ###\n\n* Created integration test suite with underscore.js 1.1.4 (now it\'s absolutely compatible)\n* Removed \'reverse\' function, because this function override underscore.js \'reverse\'\n\n## Contribute ##\n\n* Fork & pull request. Don\'t forget about tests.\n* If you planning add some feature please create issue before.\n\nOtherwise changes will be rejected.\n\n## Contributors list ##\n[Can be found here](https://github.com/epeli/underscore.string/graphs/contributors).\n\n\n## Licence ##\n\nThe MIT License\n\nCopyright (c) 2011 Esa-Matti Suuronen esa-...@suuronen.org\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the "Software"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n',
1265 silly resolved     readmeFilename: 'README.markdown',
1265 silly resolved     _id: 'undersco...@2.3.1',
1265 silly resolved     _from: 'underscore.string@~2.3.1' },
1265 silly resolved   { author:
1265 silly resolved      { name: 'Isaac Z. Schlueter',
1265 silly resolved        email: 'i...@izs.me',
1265 silly resolved        url: 'http://blog.izs.me/' },
1265 silly resolved     name: 'glob',
1265 silly resolved     description: 'a little globber',
1265 silly resolved     version: '3.1.21',
1265 silly resolved     repository: { type: 'git', url: 'git://github.com/isaacs/node-glob.git' },
1265 silly resolved     main: 'glob.js',
1265 silly resolved     engines: { node: '*' },
1265 silly resolved     dependencies: { minimatch: '~0.2.11', 'graceful-fs': '~1.2.0', inherits: '1' },
1265 silly resolved     devDependencies: { tap: '~0.4.0', mkdirp: '0', rimraf: '1' },
1265 silly resolved     scripts: { test: 'tap test/*.js' },
1265 silly resolved     license: 'BSD',
1265 silly resolved     readme: '# Glob\n\nThis is a glob implementation in JavaScript.  It uses the `minimatch`\nlibrary to do its matching.\n\n## Attention: node-glob users!\n\nThe API has changed dramatically between 2.x and 3.x. This library is\nnow 100% JavaScript, and the integer flags have been replaced with an\noptions object.\n\nAlso, there\'s an event emitter class, proper tests, and all the other\nthings you\'ve come to expect from node modules.\n\nAnd best of all, no compilation!\n\n## Usage\n\n```javascript\nvar glob = require("glob")\n\n// options is optional\nglob("**/*.js", options, function (er, files) {\n  // files is an array of filenames.\n  // If the `nonull` option is set, and nothing\n  // was found, then files is ["**/*.js"]\n  // er is an error object or null.\n})\n```\n\n## Features\n\nPlease see the [minimatch\ndocumentation](https://github.com/isaacs/minimatch) for more details.\n\nSupports these glob features:\n\n* Brace Expansion\n* Extended glob matching\n* "Globstar" `**` matching\n\nSee:\n\n* `man sh`\n* `man bash`\n* `man 3 fnmatch`\n* `man 5 gitignore`\n* [minimatch documentation](https://github.com/isaacs/minimatch)\n\n## glob(pattern, [options], cb)\n\n* `pattern` {String} Pattern to be matched\n* `options` {Object}\n* `cb` {Function}\n  * `err` {Error | null}\n  * `matches` {Array<String>} filenames found matching the pattern\n\nPerform an asynchronous glob search.\n\n## glob.sync(pattern, [options]\n\n* `pattern` {String} Pattern to be matched\n* `options` {Object}\n* return: {Array<String>} filenames found matching the pattern\n\nPerform a synchronous glob search.\n\n## Class: glob.Glob\n\nCreate a Glob object by instanting the `glob.Glob` class.\n\n```javascript\nvar Glob = require("glob").Glob\nvar mg = new Glob(pattern, options, cb)\n```\n\nIt\'s an EventEmitter, and starts walking the filesystem to find matches\nimmediately.\n\n### new glob.Glob(pattern, [options], [cb])\n\n* `pattern` {String} pattern to search for\n* `options` {Object}\n* `cb` {Function} Called when an error occurs, or matches are found\n  * `err` {Error | null}\n  * `matches` {Array<String>} filenames found matching the pattern\n\nNote that if the `sync` flag is set in the options, then matches will\nbe immediately available on the `g.found` member.\n\n### Properties\n\n* `minimatch` The minimatch object that the glob uses.\n* `options` The options object passed in.\n* `error` The error encountered.  When an error is encountered, the\n  glob object is in an undefined state, and should be discarded.\n* `aborted` Boolean which is set to true when calling `abort()`.  There\n  is no way at this time to continue a glob search after aborting, but\n  you can re-use the statCache to avoid having to duplicate syscalls.\n\n### Events\n\n* `end` When the matching is finished, this is emitted with all the\n  matches found.  If the `nonull` option is set, and no match was found,\n  then the `matches` list contains the original pattern.  The matches\n  are sorted, unless the `nosort` flag is set.\n* `match` Every time a match is found, this is emitted with the matched.\n* `error` Emitted when an unexpected error is encountered, or whenever\n  any fs error occurs if `options.strict` is set.\n* `abort` When `abort()` is called, this event is raised.\n\n### Methods\n\n* `abort` Stop the search.\n\n### Options\n\nAll the options that can be passed to Minimatch can also be passed to\nGlob to change pattern matching behavior.  Also, some have been added,\nor have glob-specific ramifications.\n\nAll options are false by default, unless otherwise noted.\n\nAll options are added to the glob object, as well.\n\n* `cwd` The current working directory in which to search.  Defaults\n  to `process.cwd()`.\n* `root` The place where patterns starting with `/` will be mounted\n  onto.  Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix\n  systems, and `C:\\` or some such on Windows.)\n* `nomount` By default, a pattern starting with a forward-slash will be\n  "mounted" onto the root setting, so that a valid filesystem path is\n  returned.  Set this flag to disable that behavior.\n* `mark` Add a `/` character to directory matches.  Note that this\n  requires additional stat calls.\n* `nosort` Don\'t sort the results.\n* `stat` Set to true to stat *all* results.  This reduces performance\n  somewhat, and is completely unnecessary, unless `readdir` is presumed\n  to be an untrustworthy indicator of file existence.  It will cause\n  ELOOP to be triggered one level sooner in the case of cyclical\n  symbolic links.\n* `silent` When an unusual error is encountered\n  when attempting to read a directory, a warning will be printed to\n  stderr.  Set the `silent` option to true to suppress these warnings.\n* `strict` When an unusual error is encountered\n  when attempting to read a directory, the process will just continue on\n  in search of other matches.  Set the `strict` option to raise an error\n  in these cases.\n* `statCache` A cache of results of filesystem information, to prevent\n  unnecessary stat calls.  While it should not normally be necessary to\n  set this, you may pass the statCache from one glob() call to the\n  options object of another, if you know that the filesystem will not\n  change between calls.  (See "Race Conditions" below.)\n* `sync` Perform a synchronous glob search.\n* `nounique` In some cases, brace-expanded patterns can result in the\n  same file showing up multiple times in the result set.  By default,\n  this implementation prevents duplicates in the result set.\n  Set this flag to disable that behavior.\n* `nonull` Set to never return an empty set, instead returning a set\n  containing the pattern itself.  This is the default in glob(3).\n* `nocase` Perform a case-insensitive match.  Note that case-insensitive\n  filesystems will sometimes result in glob returning results that are\n  case-insensitively matched anyway, since readdir and stat will not\n  raise an error.\n* `debug` Set to enable debug logging in minimatch and glob.\n* `globDebug` Set to enable debug logging in glob, but not minimatch.\n\n## Comparisons to other fnmatch/glob implementations\n\nWhile strict compliance with the existing standards is a worthwhile\ngoal, some discrepancies exist between node-glob and other\nimplementations, and are intentional.\n\nIf the pattern starts with a `!` character, then it is negated.  Set the\n`nonegate` flag to suppress this behavior, and treat leading `!`\ncharacters normally.  This is perhaps relevant if you wish to start the\npattern with a negative extglob pattern like `!(a|B)`.  Multiple `!`\ncharacters at the start of a pattern will negate the pattern multiple\ntimes.\n\nIf a pattern starts with `#`, then it is treated as a comment, and\nwill not match anything.  Use `\\#` to match a literal `#` at the\nstart of a line, or set the `nocomment` flag to suppress this behavior.\n\nThe double-star character `**` is supported by default, unless the\n`noglobstar` flag is set.  This is supported in the manner of bsdglob\nand bash 4.1, where `**` only has special significance if it is the only\nthing in a path part.  That is, `a/**/b` will match `a/x/y/b`, but\n`a/**b` will not.  **Note that this is different from the way that `**` is\nhandled by ruby\'s `Dir` class.**\n\nIf an escaped pattern has no matches, and the `nonull` flag is set,\nthen glob returns the pattern as-provided, rather than\ninterpreting the character escapes.  For example,\n`glob.match([], "\\\\*a\\\\?")` will return `"\\\\*a\\\\?"` rather than\n`"*a?"`.  This is akin to setting the `nullglob` option in bash, except\nthat it does not resolve escaped pattern characters.\n\nIf brace expansion is not disabled, then it is performed before any\nother interpretation of the glob pattern.  Thus, a pattern like\n`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded\n**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are\nchecked for validity.  Since those two are valid, matching proceeds.\n\n## Windows\n\n**Please only use forward-slashes in glob expressions.**\n\nThough windows uses either `/` or `\\` as its path separator, only `/`\ncharacters are used by this glob implementation.  You must use\nforward-slashes **only** in glob expressions.  Back-slashes will always\nbe interpreted as escape characters, not path separators.\n\nResults from absolute patterns such as `/foo/*` are mounted onto the\nroot setting using `path.join`.  On windows, this will by default result\nin `/foo/*` matching `C:\\foo\\bar.txt`.\n\n## Race Conditions\n\nGlob searching, by its very nature, is susceptible to race conditions,\nsince it relies on directory walking and such.\n\nAs a result, it is possible that a file that exists when glob looks for\nit may have been deleted or modified by the time it returns the result.\n\nAs part of its internal implementation, this program caches all stat\nand readdir calls that it makes, in order to cut down on system\noverhead.  However, this also makes it even more susceptible to races,\nespecially if the statCache object is reused between glob calls.\n\nUsers are thus advised not to use a glob result as a\nguarantee of filesystem state in the face of rapid changes.\nFor the vast majority of operations, this is never a problem.\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     bugs: { url: 'https://github.com/isaacs/node-glob/issues' },
1265 silly resolved     _id: 'gl...@3.1.21',
1265 silly resolved     _from: 'glob@~3.1.20' },
1265 silly resolved   { name: 'unzip',
1265 silly resolved     version: '0.1.7',
1265 silly resolved     description: 'Unzip cross-platform streaming API compatible with fstream and fs.ReadStream',
1265 silly resolved     author: { name: 'Evan Oxfeld', email: 'evan....@nearinfinity.com' },
1265 silly resolved     maintainers: [ [Object], [Object] ],
1265 silly resolved     repository:
1265 silly resolved      { type: 'git',
1265 silly resolved        url: 'https://github.com/nearinfinity/node-unzip.git' },
1265 silly resolved     license: 'MIT',
1265 silly resolved     dependencies:
1265 silly resolved      { fstream: '~0.1.21',
1265 silly resolved        pullstream: '~0.4.0',
1265 silly resolved        binary: '~0.3.0',
1265 silly resolved        'readable-stream': '~1.0.0',
1265 silly resolved        setimmediate: '~1.0.1',
1265 silly resolved        'match-stream': '0.0.1' },
1265 silly resolved     devDependencies:
1265 silly resolved      { tap: '~0.3.0',
1265 silly resolved        temp: '~0.4.0',
1265 silly resolved        dirdiff: '~0.0.1',
1265 silly resolved        'stream-buffers': '~0.2.3' },
1265 silly resolved     directories: { example: 'examples', test: 'test' },
1265 silly resolved     keywords:
1265 silly resolved      [ 'zip',
1265 silly resolved        'unzip',
1265 silly resolved        'zlib',
1265 silly resolved        'uncompress',
1265 silly resolved        'archive',
1265 silly resolved        'stream',
1265 silly resolved        'extract' ],
1265 silly resolved     main: 'unzip.js',
1265 silly resolved     scripts: { test: './node_modules/.bin/tap ./test/*.js' },
1265 silly resolved     readme: '# unzip [![Build Status](https://travis-ci.org/nearinfinity/node-unzip.png)](https://travis-ci.org/nearinfinity/node-unzip)\n\nStreaming cross-platform unzip tool written in node.js.\n\nUnzip provides simple APIs similar to [node-tar](https://github.com/isaacs/node-tar) for parsing and extracting zip files.\nThere are no added compiled dependencies - inflation is handled by node.js\'s built in zlib support.  Unzip is also an\nexample use case of [node-pullstream](https://github.com/nearinfinity/node-pullstream).\n\n## Installation\n\n```bash\n$ npm install unzip\n```\n\n## Quick Examples\n\n### Extract to a directory\n```javascript\nfs.createReadStream(\'path/to/archive.zip\').pipe(unzip.Extract({ path: \'output/path\' }));\n```\n\nExtract emits the \'close\' event once the zip\'s contents have been fully extracted to disk.\n\n### Parse zip file contents\n\nProcess each zip file entry or pipe entries to another stream.\n\n__Important__: If you do not intend to consume an entry stream\'s raw data, call autodrain() to dispose of the entry\'s\ncontents. Otherwise you risk running out of memory.\n\n```javascript\nfs.createReadStream(\'path/to/archive.zip\')\n  .pipe(unzip.Parse())\n  .on(\'entry\', function (entry) {\n    var fileName = entry.path;\n    var type = entry.type; // \'Directory\' or \'File\'\n    var size = entry.size;\n    if (fileName === "this IS the file I\'m looking for") {\n      entry.pipe(fs.createWriteStream(\'output/path\'));\n    } else {\n      entry.autodrain();\n    }\n  });\n```\n\nOr pipe the output of unzip.Parse() to fstream\n\n```javascript\nvar readStream = fs.createReadStream(\'path/to/archive.zip\');\nvar writeStream = fstream.Writer(\'output/path\');\n\nreadStream\n  .pipe(unzip.Parse())\n  .pipe(writeStream)\n```\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2012 - 2013 Near Infinity Corporation\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n"Software"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     bugs: { url: 'https://github.com/nearinfinity/node-unzip/issues' },
1265 silly resolved     _id: 'un...@0.1.7',
1265 silly resolved     _from: 'unzip@~0.1.1' },
1265 silly resolved   { name: 'ncp',
1265 silly resolved     version: '0.4.2',
1265 silly resolved     author: { name: 'AvianFlu', email: 'cha...@charlieistheman.com' },
1265 silly resolved     description: 'Asynchronous recursive file copy utility.',
1265 silly resolved     bin: { ncp: './bin/ncp' },
1265 silly resolved     devDependencies: { vows: '0.6.x', rimraf: '1.0.x', 'read-dir-files': '0.0.x' },
1265 silly resolved     main: './lib/ncp.js',
1265 silly resolved     repository: { type: 'git', url: 'https://github.com/AvianFlu/ncp.git' },
1265 silly resolved     keywords: [ 'cli', 'copy' ],
1265 silly resolved     license: 'MIT',
1265 silly resolved     engine: { node: '>=0.4' },
1265 silly resolved     scripts: { test: 'vows --isolate --spec' },
1265 silly resolved     readme: '# ncp - Asynchronous recursive file & directory copying\n\n[![Build Status](https://secure.travis-ci.org/AvianFlu/ncp.png)](http://travis-ci.org/AvianFlu/ncp)\n\nThink `cp -r`, but pure node, and asynchronous.  `ncp` can be used both as a CLI tool and programmatically.\n\n## Command Line usage\n\nUsage is simple: `ncp [source] [dest] [--limit=concurrency limit]\n[--filter=filter] --stopOnErr`\n\nThe \'filter\' is a Regular Expression - matched files will be copied.\n\nThe \'concurrency limit\' is an integer that represents how many pending file system requests `ncp` has at a time.\n\n\'stopOnErr\' is a boolean flag that will tell `ncp` to stop immediately if any\nerrors arise, rather than attempting to continue while logging errors.\n\nIf there are no errors, `ncp` will output `done.` when complete.  If there are errors, the error messages will be logged to `stdout` and to `./ncp-debug.log`, and the copy operation will attempt to continue.\n\n## Programmatic usage\n\nProgrammatic usage of `ncp` is just as simple.  The only argument to the completion callback is a possible error.  \n\n```javascript\nvar ncp = require(\'ncp\').ncp;\n\nncp.limit = 16;\n\nncp(source, destination, function (err) {\n if (err) {\n   return console.error(err);\n }\n console.log(\'done!\');\n});\n```\n\nYou can also call ncp like `ncp(source, destination, options, callback)`. \n`options` should be a dictionary. Currently, such options are available:\n\n  * `options.filter` - a `RegExp` instance, against which each file name is\n  tested to determine whether to copy it or not, or a function taking single\n  parameter: copied file name, returning `true` or `false`, determining\n  whether to copy file or not.\n\n  * `options.transform` - a function: `function (read, write) { read.pipe(write) }`\n  used to apply streaming transforms while copying.\n\n  * `options.clobber` - boolean=true. if set to false, `ncp` will not overwrite \n  destination files that already exist.\n\nPlease open an issue if any bugs arise.  As always, I accept (working) pull requests, and refunds are available at `/dev/null`.\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     bugs: { url: 'https://github.com/AvianFlu/ncp/issues' },
1265 silly resolved     _id: 'n...@0.4.2',
1265 silly resolved     _from: 'ncp@~0.4.2' },
1265 silly resolved   { name: 'swig',
1265 silly resolved     version: '0.13.5',
1265 silly resolved     description: 'A fast django-like templating engine for node.js and browsers.',
1265 silly resolved     keywords: [ 'template', 'templating', 'html', 'django', 'express', 'block' ],
1265 silly resolved     repository: { type: 'git', url: 'http://github.com/paularmstrong/swig.git' },
1265 silly resolved     author:
1265 silly resolved      { name: 'Paul Armstrong',
1265 silly resolved        email: 'pa...@paularmstrongdesigns.com' },
1265 silly resolved     contributors: [ [Object] ],
1265 silly resolved     dependencies: { underscore: '>=1.1.7' },
1265 silly resolved     devDependencies:
1265 silly resolved      { express: '~3',
1265 silly resolved        nodelint: '~0.6',
1265 silly resolved        'uglify-js': '>=1.1.0',
1265 silly resolved        mocha: '~1.6',
1265 silly resolved        'expect.js': '~0.2',
1265 silly resolved        swig: '*',
1265 silly resolved        still: '*',
1265 silly resolved        less: '~1.3.1',
1265 silly resolved        zepto: '0.0.3',
1265 silly resolved        'mocha-phantomjs': '~1.0.1' },
1265 silly resolved     main: 'index',
1265 silly resolved     engines: { node: '>=0.6.0' },
1265 silly resolved     scripts:
1265 silly resolved      { prepublish: 'npm prune && make build',
1265 silly resolved        test: 'make lint && make test reporter=spec && make test-browser' },
1265 silly resolved     bugs: { url: 'https://github.com/paularmstrong/swig/issues' },
1265 silly resolved     readme: '\nSwig [![Build Status](https://secure.travis-ci.org/paularmstrong/swig.png)](http://travis-ci.org/paularmstrong/swig)\n====\n\n[Swig](http://paularmstrong.github.com/swig/) is a fast, Django-like template engine for node.js.\n\nFeatures\n--------\n\n* Incredibly [fast][1]!\n* Available for node.js **and** major web browsers!\n* [Express](http://expressjs.com/) compatible.\n* Object-Oriented template inheritance.\n* Apply filters and transformations to output in your templates.\n* Automatically escapes all output.\n* Lots of iteration and conditionals supported.\n* Extendable and customizable.\n\nInstallation\n------------\n\n    npm install swig\n\nDocumentation\n-------------\n\nAll documentation can be viewed online on the [Swig Website](http://paularmstrong.github.com/swig/).\n\nBasic Example\n-------------\n\n### Template code\n\n    <h1>{{ pagename|title }}</h1>\n    <ul>\n    {% for author in authors %}\n        <li{% if loop.index <= 0 %} class="first"{% endif %}>{{ author }}</li>\n    {% else %}\n        <li>There are no authors.</li>\n    {% endfor %}\n    </ul>\n\n### node.js code\n\n    var template  = require(\'swig\');\n    var tmpl = template.compileFile(\'/path/to/template.html\');\n    tmpl.render({\n        pagename: \'awesome people\',\n        authors: [\'Paul\', \'Jim\', \'Jane\']\n    });\n\n### Output\n\n    <h1>Awesome People</h1>\n    <ul>\n        <li class="first">Paul</li>\n        <li>Jim</li>\n        <li>Jane</li>\n    </ul>\n\nHow it works\n------------\n\nSwig reads template files and translates them into cached javascript functions. When we later render a template we call the evaluated function, passing a context object as an argument. This makes the rendering [_very fast_][1].\n\nLicense\n-------\n\nCopyright (c) 2010-2011 Paul Armstrong, Dusko Jordanovski\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \'Software\'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n[1]: http://paularmstrong.github.com/node-templates/\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     _id: 'sw...@0.13.5',
1265 silly resolved     _from: 'swig@~0.13.5' },
1265 silly resolved   { name: 'mkdirp',
1265 silly resolved     description: 'Recursively mkdir, like `mkdir -p`',
1265 silly resolved     version: '0.3.5',
1265 silly resolved     author:
1265 silly resolved      { name: 'James Halliday',
1265 silly resolved        email: 'ma...@substack.net',
1265 silly resolved        url: 'http://substack.net' },
1265 silly resolved     main: './index',
1265 silly resolved     keywords: [ 'mkdir', 'directory' ],
1265 silly resolved     repository:
1265 silly resolved      { type: 'git',
1265 silly resolved        url: 'http://github.com/substack/node-mkdirp.git' },
1265 silly resolved     scripts: { test: 'tap test/*.js' },
1265 silly resolved     devDependencies: { tap: '~0.4.0' },
1265 silly resolved     license: 'MIT',
1265 silly resolved     readme: '# mkdirp\n\nLike `mkdir -p`, but in node.js!\n\n[![build status](https://secure.travis-ci.org/substack/node-mkdirp.png)](http://travis-ci.org/substack/node-mkdirp)\n\n# example\n\n## pow.js\n\n```js\nvar mkdirp = require(\'mkdirp\');\n    \nmkdirp(\'/tmp/foo/bar/baz\', function (err) {\n    if (err) console.error(err)\n    else console.log(\'pow!\')\n});\n```\n\nOutput\n\n```\npow!\n```\n\nAnd now /tmp/foo/bar/baz exists, huzzah!\n\n# methods\n\n```js\nvar mkdirp = require(\'mkdirp\');\n```\n\n## mkdirp(dir, mode, cb)\n\nCreate a new directory and any necessary subdirectories at `dir` with octal\npermission string `mode`.\n\nIf `mode` isn\'t specified, it defaults to `0777 & (~process.umask())`.\n\n`cb(err, made)` fires with the error or the first directory `made`\nthat had to be created, if any.\n\n## mkdirp.sync(dir, mode)\n\nSynchronously create a new directory and any necessary subdirectories at `dir`\nwith octal permission string `mode`.\n\nIf `mode` isn\'t specified, it defaults to `0777 & (~process.umask())`.\n\nReturns the first directory that had to be created, if any.\n\n# install\n\nWith [npm](http://npmjs.org) do:\n\n```\nnpm install mkdirp\n```\n\n# license\n\nMIT\n',
1265 silly resolved     readmeFilename: 'readme.markdown',
1265 silly resolved     bugs: { url: 'https://github.com/substack/node-mkdirp/issues' },
1265 silly resolved     _id: 'mkd...@0.3.5',
1265 silly resolved     _from: 'mkdirp@~0.3.5' },
1265 silly resolved   { name: 'xml2js',
1265 silly resolved     description: 'Simple XML to JavaScript object converter.',
1265 silly resolved     keywords: [ 'xml', 'json' ],
1265 silly resolved     homepage: 'https://github.com/Leonidas-from-XIV/node-xml2js',
1265 silly resolved     version: '0.2.7',
1265 silly resolved     author:
1265 silly resolved      { name: 'Marek Kubica',
1265 silly resolved        email: 'ma...@xivilization.net',
1265 silly resolved        url: 'http://xivilization.net' },
1265 silly resolved     contributors:
1265 silly resolved      [ [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object],
1265 silly resolved        [Object] ],
1265 silly resolved     main: './lib/xml2js',
1265 silly resolved     directories: { lib: './lib' },
1265 silly resolved     scripts: { test: 'zap' },
1265 silly resolved     repository:
1265 silly resolved      { type: 'git',
1265 silly resolved        url: 'https://github.com/Leonidas-from-XIV/node-xml2js.git' },
1265 silly resolved     dependencies: { sax: '0.5.2' },
1265 silly resolved     devDependencies: { 'coffee-script': '>=1.6.1', zap: '>=0.2.5', docco: '>=0.6.2' },
1265 silly resolved     readme: 'node-xml2js\n===========\n\nEver had the urge to parse XML? And wanted to access the data in some sane,\neasy way? Don\'t want to compile a C parser, for whatever reason? Then xml2js is\nwhat you\'re looking for!\n\nDescription\n===========\n\nSimple XML to JavaScript object converter. Uses\n[sax-js](https://github.com/isaacs/sax-js/).\n\nNote: If you\'re looking for a full DOM parser, you probably want\n[JSDom](https://github.com/tmpvar/jsdom).\n\nInstallation\n============\n\nSimplest way to install `xml2js` is to use [npm](http://npmjs.org), just `npm\ninstall xml2js` which will download xml2js and all dependencies.\n\nUsage\n=====\n\nNo extensive tutorials required because you are a smart developer! The task of\nparsing XML should be an easy one, so let\'s make it so! Here\'s some examples.\n\nShoot-and-forget usage\n----------------------\n\nYou want to parse XML as simple and easy as possible? It\'s dangerous to go\nalone, take this:\n\n```javascript\nvar parseString = require(\'xml2js\').parseString;\nvar xml = "<root>Hello xml2js!</root>"\nparseString(xml, function (err, result) {\n    console.dir(result);\n});\n```\n\nCan\'t get easier than this, right? This works starting with `xml2js` 0.2.3.\nWith CoffeeScript it looks like this:\n\n```coffeescript\nparseString = require(\'xml2js\').parseString\nxml = "<root>Hello xml2js!</root>"\nparseString xml, (err, result) ->\n    console.dir result\n```\n\nIf you need some special options, fear not, `xml2js` supports a number of\noptions (see below), you can specify these as second argument:\n\n```javascript\nparseString(xml, {trim: true}, function (err, result) {\n});\n```\n\nSimple as pie usage\n-------------------\n\nThat\'s right, if you have been using xml-simple or a home-grown\nwrapper, this is was added in 0.1.11 just for you:\n\n```javascript\nvar fs = require(\'fs\'),\n    xml2js = require(\'xml2js\');\n\nvar parser = new xml2js.Parser();\nfs.readFile(__dirname + \'/foo.xml\', function(err, data) {\n    parser.parseString(data, function (err, result) {\n        console.dir(result);\n        console.log(\'Done\');\n    });\n});\n```\n\nLook ma, no event listeners!\n\nYou can also use `xml2js` from\n[CoffeeScript](http://jashkenas.github.com/coffee-script/), further reducing\nthe clutter:\n\n```coffeescript\nfs = require \'fs\',\nxml2js = require \'xml2js\'\n\nparser = new xml2js.Parser()\nfs.readFile __dirname + \'/foo.xml\', (err, data) ->\n  parser.parseString data, (err, result) ->\n    console.dir result\n    console.log \'Done.\'\n```\n\n"Traditional" usage\n-------------------\n\nAlternatively you can still use the traditional `addListener` variant that was\nsupported since forever:\n\n```javascript\nvar fs = require(\'fs\'),\n    xml2js = require(\'xml2js\');\n\nvar parser = new xml2js.Parser();\nparser.addListener(\'end\', function(result) {\n    console.dir(result);\n    console.log(\'Done.\');\n});\nfs.readFile(__dirname + \'/foo.xml\', function(err, data) {\n    parser.parseString(data);\n});\n```\n\nIf you want to parse multiple files, you have multiple possibilites:\n\n  * You can create one `xml2js.Parser` per file. That\'s the recommended one\n    and is promised to always *just work*.\n  * You can call `reset()` on your parser object.\n  * You can hope everything goes well anyway. This behaviour is not\n    guaranteed work always, if ever. Use option #1 if possible. Thanks!\n\nSo you wanna some JSON?\n-----------------------\n\nJust wrap the `result` object in a call to `JSON.stringify` like this\n`JSON.stringify(result)`. You get a string containing the JSON representation\nof the parsed object that you can feed to JSON-hungry consumers.\n\nDisplaying results\n------------------\n\nYou might wonder why, using `console.dir` or `console.log` the output at some\nlevel is only `[Object]`. Don\'t worry, this is not because xml2js got lazy.\nThat\'s because Node uses `util.inspect` to convert the object into strings and\nthat function stops after `depth=2` which is a bit low for most XML.\n\nTo display the whole deal, you can use `console.log(util.inspect(result, false,\nnull))`, which displays the whole result.\n\nSo much for that, but what if you use\n[eyes](https://github.com/cloudhead/eyes.js) for nice colored output and it\ntruncates the output with `…`? Don\'t fear, there\'s also a solution for that,\nyou just need to increase the `maxLength` limit by creating a custom inspector\n`var inspect = require(\'eyes\').inspector({maxLength: false})` and then you can\neasily `inspect(result)`.\n\nOptions\n=======\n\nApart from the default settings, there is a number of options that can be\nspecified for the parser. Options are specified by ``new Parser({optionName:\nvalue})``. Possible options are:\n\n  * `attrkey` (default: `$`): Prefix that is used to access the attributes.\n    Version 0.1 default was `@`.\n  * `charkey` (default: `_`): Prefix that is used to access the character\n    content. Version 0.1 default was `#`.\n  * `explicitCharkey` (default: `false`)\n  * `trim` (default: `false`): Trim the whitespace at the beginning and end of\n    text nodes.\n  * `normalizeTags` (default: `false`): Normalize all tag names to lowercase.\n  * `normalize` (default: `false`): Trim whitespaces inside text nodes.\n  * `explicitRoot` (default: `true`): Set this if you want to get the root\n    node in the resulting object.\n  * `emptyTag` (default: `undefined`): what will the value of empty nodes be.\n    Default is `{}`.\n  * `explicitArray` (default: `true`): Always put child nodes in an array if\n    true; otherwise an array is created only if there is more than one.\n  * `ignoreAttrs` (default: `false`): Ignore all XML attributes and only create\n    text nodes.\n  * `mergeAttrs` (default: `false`): Merge attributes and child elements as\n    properties of the parent, instead of keying attributes off a child\n    attribute object. This option is ignored if `ignoreAttrs` is `false`.\n  * `validator` (default `null`): You can specify a callable that validates\n    the resulting structure somehow, however you want. See unit tests\n    for an example.\n  * `xmlns` (default `false`): Give each element a field usually called \'$ns\'\n    (the first character is the same as attrkey) that contains its local name\n    and namespace URI.\n  * `explicitChildren` (default `false`): Put child elements to separate\n    property. Doesn\'t work with `mergeAttrs = true`. If element has no children\n    then "children" won\'t be created. Added in 0.2.5.\n  * `childkey` (default `$$`): Prefix that is used to access child elements if\n    `explicitChildren` is set to `true`. Added in 0.2.5.\n  * `charsAsChildren` (default `false`): Determines whether chars should be\n    considered children if `explicitChildren` is on. Added in 0.2.5.\n  * `async` (default `false`): Should the callbacks be async? This *might* be\n    an incompatible change if your code depends on sync execution of callbacks.\n    xml2js 0.3 might change this default, so the recommendation is to not\n    depend on sync execution anyway. Added in 0.2.6.\n  * `strict` (default `true`): Set sax-js to strict or non-strict parsing mode.\n    Defaults to `true` which is *highly* recommended, since parsing HTML which\n    is not well-formed XML might yield just about anything. Added in 0.2.7.\n\nUpdating to new version\n=======================\n\nVersion 0.2 changed the default parsing settings, but version 0.1.14 introduced\nthe default settings for version 0.2, so these settings can be tried before the\nmigration.\n\n```javascript\nvar xml2js = require(\'xml2js\');\nvar parser = new xml2js.Parser(xml2js.defaults["0.2"]);\n```\n\nTo get the 0.1 defaults in version 0.2 you can just use\n`xml2js.defaults["0.1"]` in the same place. This provides you with enough time\nto migrate to the saner way of parsing in xml2js 0.2. We try to make the\nmigration as simple and gentle as possible, but some breakage cannot be\navoided.\n\nSo, what exactly did change and why? In 0.2 we changed some defaults to parse\nthe XML in a more universal and sane way. So we disabled `normalize` and `trim`\nso xml2js does not cut out any text content. You can reenable this at will of\ncourse. A more important change is that we return the root tag in the resulting\nJavaScript structure via the `explicitRoot` setting, so you need to access the\nfirst element. This is useful for anybody who wants to know what the root node\nis and preserves more information. The last major change was to enable\n`explicitArray`, so everytime it is possible that one might embed more than one\nsub-tag into a tag, xml2js >= 0.2 returns an array even if the array just\nincludes one element. This is useful when dealing with APIs that return\nvariable amounts of subtags.\n\nRunning tests, development\n==========================\n\n[![Build Status](https://secure.travis-ci.org/Leonidas-from-XIV/node-xml2js.png?branch=master)](https://travis-ci.org/Leonidas-from-XIV/node-xml2js)\n\nThe development requirements are handled by npm, you just need to install them.\nWe also have a number of unit tests, they can be run using `npm test` directly\nfrom the project root. This runs zap to discover all the tests and execute\nthem.\n\nIf you like to contribute, keep in mind that xml2js is written in CoffeeScript,\nso don\'t develop on the JavaScript files that are checked into the repository\nfor convenience reasons. Also, please write some unit test to check your\nbehaviour and if it is some user-facing thing, add some documentation to this\nREADME, so people will know it exists. Thanks in advance!\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     bugs: { url: 'https://github.com/Leonidas-from-XIV/node-xml2js/issues' },
1265 silly resolved     _id: 'xml...@0.2.7',
1265 silly resolved     _from: 'xml2js@~0.2.6' },
1265 silly resolved   { name: 'difflib',
1265 silly resolved     version: '0.2.4',
1265 silly resolved     description: 'text diff library ported from Python\'s difflib module',
1265 silly resolved     homepage: 'https://github.com/qiao/difflib.js',
1265 silly resolved     keywords: [ 'diff' ],
1265 silly resolved     author: { name: 'Xueqiao Xu', email: 'xueq...@gmail.com' },
1265 silly resolved     main: './index.js',
1265 silly resolved     dependencies: { heap: '>= 0.2.0' },
1265 silly resolved     devDependencies:
1265 silly resolved      { 'coffee-script': '>= 1.3.0',
1265 silly resolved        mocha: '>= 1.0.1',
1265 silly resolved        should: '>= 0.6.0',
1265 silly resolved        browserify: '>= 1.10.4',
1265 silly resolved        'uglify-js': '>= 1.2.5' },
1265 silly resolved     repository: { type: 'git', url: 'git://github.com/qiao/difflib.js.git' },
1265 silly resolved     licenses: [ [Object] ],
1265 silly resolved     readme: 'Difflib.js\n==========\n\nA JavaScript module which provides classes and functions for comparing sequences. It can be used for example, for comparing files, and can produce difference information in various formats, including context and unified diffs. Ported from Python\'s [difflib](http://docs.python.org/library/difflib.html) module.\n\nInstallation\n------------\n\n#### Browser\n\nTo use it in the browser, you may download the [minified js file](https://github.com/qiao/difflib.js/raw/master/dist/difflib-browser.js) and include it in your webpage.\n\n```html\n<script type="text/javascript" src="./difflib-browser.js"></script>\n```\n\n#### Node.js\n\nFor Node.js, you can install it using Node Package Manager (npm):\n\n```bash\nnpm install difflib\n```\n\nThen, in your script:\n\n```js\nvar difflib = require(\'difflib\');\n```\n\nQuick Examples\n--------------\n\n1. contextDiff\n\n    ```js\n    >>> s1 = [\'bacon\\n\', \'eggs\\n\', \'ham\\n\', \'guido\\n\']\n    >>> s2 = [\'python\\n\', \'eggy\\n\', \'hamster\\n\', \'guido\\n\']\n    >>> difflib.contextDiff(s1, s2, {fromfile:\'before.py\', tofile:\'after.py\'})\n    [ \'*** before.py\\n\',\n      \'--- after.py\\n\',\n      \'***************\\n\',\n      \'*** 1,4 ****\\n\',\n      \'! bacon\\n\',\n      \'! eggs\\n\',\n      \'! ham\\n\',\n      \'  guido\\n\',\n      \'--- 1,4 ----\\n\',\n      \'! python\\n\',\n      \'! eggy\\n\',\n      \'! hamster\\n\',\n      \'  guido\\n\' ]\n    ```\n\n2. unifiedDiff\n\n    ```js\n    >>> difflib.unifiedDiff(\'one two three four\'.split(\' \'),\n    ...                     \'zero one tree four\'.split(\' \'), {\n    ...                       fromfile: \'Original\'\n    ...                       tofile: \'Current\',\n    ...                       fromfiledate: \'2005-01-26 23:30:50\',\n    ...                       tofiledate: \'2010-04-02 10:20:52\',\n    ...                       lineterm: \'\'\n    ...                     })\n    [ \'--- Original\\t2005-01-26 23:30:50\',\n      \'+++ Current\\t2010-04-02 10:20:52\',\n      \'@@ -1,4 +1,4 @@\',\n      \'+zero\',\n      \' one\',\n      \'-two\',\n      \'-three\',\n      \'+tree\',\n      \' four\' ]\n    ```\n\n\n3. ndiff\n\n    ```js\n    >>> a = [\'one\\n\', \'two\\n\', \'three\\n\']\n    >>> b = [\'ore\\n\', \'tree\\n\', \'emu\\n\']\n    >>> difflib.ndiff(a, b)\n    [ \'- one\\n\',\n      \'?  ^\\n\',\n      \'+ ore\\n\',\n      \'?  ^\\n\',\n      \'- two\\n\',\n      \'- three\\n\',\n      \'?  -\\n\',\n      \'+ tree\\n\',\n      \'+ emu\\n\' ]\n    ```\n\n4. ratio\n\n    ```js\n    >>> s = new difflib.SequenceMatcher(null, \'abcd\', \'bcde\');\n    >>> s.ratio();\n    0.75\n    >>> s.quickRatio();\n    0.75\n    >>> s.realQuickRatio();\n    1.0\n    ```\n\n5. getOpcodes\n\n    ```js\n    >>> s = new difflib.SequenceMatcher(null, \'qabxcd\', \'abycdf\');\n    >>> s.getOpcodes();\n    [ [ \'delete\'  , 0 , 1 , 0 , 0 ] ,\n      [ \'equal\'   , 1 , 3 , 0 , 2 ] ,\n      [ \'replace\' , 3 , 4 , 2 , 3 ] ,\n      [ \'equal\'   , 4 , 6 , 3 , 5 ] ,\n      [ \'insert\'  , 6 , 6 , 5 , 6 ] ]\n    ```\n\n6. getCloseMatches\n\n    ```js\n    >>> difflib.getCloseMatches(\'appel\', [\'ape\', \'apple\', \'peach\', \'puppy\'])\n    [\'apple\', \'ape\']\n    ```\n\nDocumentation\n-------------\n\n* [SequenceMatcher](#SequenceMatcher)\n\n    * [setSeqs](#setSeqs)\n    * [setSeq1](#setSeq1)\n    * [setSeq2](#setSeq2)\n    * [findLongestMatch](#findLongestMatch)\n    * [getMatchingBlocks](#getMatchingBlocks)\n    * [getOpcodes](#getOpcodes)\n    * [getGroupedOpcodes](#getGroupedOpcodes)\n    * [ratio](#ratio)\n    * [quickRatio](#quickRatio)\n    * [realQuickRatio](#realQuickRatio)\n\n* [Differ](#Differ)\n\n    * [compare](#compare)\n\n* [contextDiff](#contextDiff)\n* [getCloseMatches](#getCloseMatches)\n* [ndiff](#ndiff)\n* [restore](#restore)\n* [unifiedDiff](#unifiedDiff)\n* [IS_LINE_JUNK](#IS_LINE_JUNK)\n* [IS_CHARACTER_JUNK](#IS_CHARACTER_JUNK)\n\n\n<a name="SequenceMatcher" />\n### *class* difflib.**SequenceMatcher**([isjunk[, a[, b[, autojunk=true]]]])\n\nThis is a flexible class for comparing pairs of sequences of any type.\n\nOptional argument *isjunk* must be **null** (the default) or a one-argument function\nthat takes a sequence element and returns true if and only if the element is\n"junk" and should be ignored. \n\nPassing **null** for *isjunk* is equivalent to passing\n\n```js\nfunction(x) { return false; }; \n```\n\nin other words, no elements are ignored. \n\nFor example, pass:\n\n```js\nfunction(x) { return x == \' \' || x == \'\\t\'; }\n```\n\nif you\'re comparing lines as sequences of characters, \nand don’t want to synch up on blanks or hard tabs.\n\nThe optional arguments *a* and *b* are sequences to be compared;\nboth default to empty strings.\n\nThe optional argument *autojunk* can be used to disable the \nautomatic junk heuristic, which automatically treats certain sequence items as junk.\n\n\n<a name="setSeqs" />\n#### setSeqs(a, b)\n\nSet the two sequences to be compared.\n\nSequenceMatcher computes and caches detailed information about the second\nsequence, so if you want to compare one sequence against many sequences,\nuse [setSeq2()](#setSeq2) to set the commonly used sequence once and call \n[setSeq1()](#setSeq1) repeatedly, once for each of the other sequences.\n\n<a name="setSeq1" />\n#### setSeq1(a)\n\nSet the first sequence to be compared. The second sequence to be compared is not changed.\n\n<a name="setSeq2" />\n#### setSeq2(a)\n\nSet the second sequence to be compared. The first sequence to be compared is not changed.\n\n<a name="findLongestMatch" />\n#### findLongestMatch(alo, ahi, blo, bhi)\n\nFind longest matching block in `a[alo:ahi]` and `b[blo:bhi]`.\n\nIf *isjunk* was omitted or null, *findLongestMatch()* returns `[i, j, k]` such that \n`a[i:i+k]` is equal to `b[j:j+k]`, where `alo <= i <= i+k <= ahi` and \n`blo <= j <= j+k <= bhi`. \nFor all `[i\', j\', k\']` meeting those conditions, the additional conditions `k >= k\'`, \n`i <= i\'`, and if `i == i\'`, `j <= j\'` are also met. \nIn other words, of all maximal matching blocks, return one that starts earliest in *a*,\nand of all those maximal matching blocks that start earliest in *a*, \nreturn the one that starts earliest in *b*.\n\n```js\n>>> s = new difflib.SequenceMatcher(null, " abcd", "abcd abcd");\n>>> s.findLongestMatch(0, 5, 0, 9);\n[0, 4, 5]\n```\n\nIf *isjunk* was provided, first the longest matching block is determined\nas above, but with the additional restriction that no junk element appears\nin the block. \nThen that block is extended as far as possible by matching (only) junk \nelements on both sides. So the resulting block never matches on junk \nexcept as identical junk happens to be adjacent to an interesting match.\n\nHere\'s the same example as before, but considering blanks to be junk. \nThat prevents `\' abcd\'` from matching the `\' abcd\'` at the tail end of \nthe second sequence directly. \nInstead only the `\'abcd\'` can match, and matches the leftmost `\'abcd\'` \nin the second sequence:\n\n```js\n>>> s = new difflib.SequenceMatcher(function(x) {return x == \' \';}, " abcd", "abcd abcd")\n>>> s.findLongestMatch(0, 5, 0, 9)\n[1, 0, 4]\n```\n\nIf no blocks match, this returns `[alo, blo, 0]`.\n\n\n<a name="getMatchingBlocks" />\n#### getMatchingBlocks()\n\nReturn list of triples describing matching subsequences. \nEach triple is of the form `[i, j, n]`, and means that `a[i:i+n] == b[j:j+n]`. \nThe triples are monotonically increasing in *i* and *j*.\n\nThe last triple is a dummy, and has the value `[a.length, b.length, 0]`.\nIt is the only triple with `n == 0`. If `[i, j, n]` and `[i\', j\', n\']` \nare adjacent triples in the list, and the second is not the last triple \nin the list, then `i+n != i\'` or `j+n != j\'`; \nin other words, adjacent triples always describe non-adjacent equal blocks.\n\n```js\n>>> s = new difflib.SequenceMatcher(null, "abxcd", "abcd")\n>>> s.getMatchingBlocks()\n[ [0, 0, 2], [3, 2, 2], [5, 4, 0] ]\n```\n\n<a name="getOpcodes" />\n#### getOpcodes()\n\nReturn list of 5-tuples describing how to turn a into b. \nEach tuple is of the form `[tag, i1, i2, j1, j2]`. \nThe first tuple has `i1 == j1 == 0`, and remaining tuples \nhave *i1* equal to the *i2* from the preceding tuple, \nand, likewise, *j1* equal to the previous *j2*.\n\nThe tag values are strings, with these meanings:\n\n    Value       Meaning\n\n    \'replace\'   a[i1:i2] should be replaced by b[j1:j2].\n    \'delete\'    a[i1:i2] should be deleted. Note that j1 == j2 in this case.\n    \'insert\'    b[j1:j2] should be inserted at a[i1:i1]. Note that i1 == i2 in this case.\n    \'equal\'     a[i1:i2] == b[j1:j2] (the sub-sequences are equal).\n\n```js\n>>> s = new difflib.SequenceMatcher(null, \'qabxcd\', \'abycdf\');\n>>> s.getOpcodes();\n[ [ \'delete\'  , 0 , 1 , 0 , 0 ] ,\n  [ \'equal\'   , 1 , 3 , 0 , 2 ] ,\n  [ \'replace\' , 3 , 4 , 2 , 3 ] ,\n  [ \'equal\'   , 4 , 6 , 3 , 5 ] ,\n  [ \'insert\'  , 6 , 6 , 5 , 6 ] ]\n```\n\n<a name="getGroupedOpcodes" />\n#### getGroupedOpcodes([n])\n\nReturn a list groups with upto n (default is 3) lines of context.\nEach group is in the same format as returned by [getOpcodes()](#getOpcodes).\n\n<a name="ratio" />\n#### ratio()\n\nReturn a measure of the sequences’ similarity as a float in the range [0, 1].\n\nWhere T is the total number of elements in both sequences, \nand M is the number of matches, this is 2.0*M / T. \nNote that this is `1.0` if the sequences are identical, \nand `0.0` if they have nothing in common.\n\nThis is expensive to compute if [getMatchingBlocks()](#getMatchingBlocks) or \n[getOpcodes()](#getOpcodes) hasn’t already been called, in which case \nyou may want to try [quickRatio()](#quickRatio) or \n[realQuickRatio()](#realQuickRatio) first to get an upper bound.\n\n<a name="quickRatio" />\n#### quickRatio()\n\nReturn an upper bound on ratio() relatively quickly.\n\n<a name="realQuickRatio" />\n#### realQuickRatio()\n\nReturn an upper bound on ratio() very quickly.\n\n```js\n>>> s = new difflib.SequenceMatcher(null, \'abcd\', \'bcde\');\n>>> s.ratio();\n0.75\n>>> s.quickRatio();\n0.75\n>>> s.realQuickRatio();\n1.0\n```\n\n<a name="Differ" />\n### *class* difflib.**Differ**([linejunk[, charjunk]])\n\nThis is a class for comparing sequences of lines of text, \nand producing human-readable differences or deltas. \nDiffer uses [SequenceMatcher](#SequenceMatcher) both to compare \nsequences of lines, and to compare sequences of characters within \nsimilar (near-matching) lines.\n\nEach line of a Differ delta begins with a two-letter code:\n\n    Code    Meaning\n    \'- \'    line unique to sequence 1\n    \'+ \'    line unique to sequence 2\n    \'  \'    line common to both sequences\n    \'? \'    line not present in either input sequence\n\nLines beginning with `?` attempt to guide the eye to intraline differences, \nand were not present in either input sequence. \nThese lines can be confusing if the sequences contain tab characters.\n\nOptional parameters *linejunk* and *charjunk* are for filter functions (or **null**):\n\n*linejunk*: A function that accepts a single string argument, \nand returns true if the string is junk. \nThe default is **null**, meaning that no line is considered junk.\n\n*charjunk*: A function that accepts a single character argument \n(a string of length 1), and returns true if the character is junk. \nThe default is *null*, meaning that no character is considered junk.\n\n<a name="compare" />\n#### compare(a, b)\n\nCompare two sequences of lines, and generate the delta (a sequence of lines).\n\nEach sequence must contain individual single-line strings ending with newlines.\n\n```js\n>>> d = new difflib.Differ()\n>>> d.compare([\'one\\n\', \'two\\n\', \'three\\n\'],\n...           [\'ore\\n\', \'tree\\n\', \'emu\\n\'])\n[ \'- one\\n\',\n  \'?  ^\\n\',\n  \'+ ore\\n\',\n  \'?  ^\\n\',\n  \'- two\\n\',\n  \'- three\\n\',\n  \'?  -\\n\',\n  \'+ tree\\n\',\n  \'+ emu\\n\' ]\n```\n\n<a name="contextDiff" />\n### difflib.**contextDiff**(a, b, options)\n\nCompare *a* and *b* (lists of strings); \nreturn the delta lines in context diff format.\n\noptions:\n\n* fromfile\n* tofile\n* fromfiledate\n* tofiledate\n* n\n* lineterm\n\nContext diffs are a compact way of showing just the lines that \nhave changed plus a few lines of context. The changes are shown in a \nbefore/after style. \nThe number of context lines is set by n which defaults to three.\n\nBy default, the diff control lines (those with `***` or `---`) are created \nwith a trailing newline. \n\nFor inputs that do not have trailing newlines, set the lineterm argument \nto `""` so that the output will be uniformly newline free.\n\nThe context diff format normally has a header for filenames and modification\ntimes. Any or all of these may be specified using strings for *fromfile*, \n*tofile*, *fromfiledate*, and *tofiledate*. \nThe modification times are normally expressed in the ISO 8601 format. \nIf not specified, the strings default to blanks.\n\n```js\n>>> var s1 = [\'bacon\\n\', \'eggs\\n\', \'ham\\n\', \'guido\\n\']\n>>> var s2 = [\'python\\n\', \'eggy\\n\', \'hamster\\n\', \'guido\\n\']\n>>> difflib.contextDiff(s1, s2, {fromfile:\'before.py\', tofile:\'after.py\'})\n[ \'*** before.py\\n\',\n  \'--- after.py\\n\',\n  \'***************\\n\',\n  \'*** 1,4 ****\\n\',\n  \'! bacon\\n\',\n  \'! eggs\\n\',\n  \'! ham\\n\',\n  \'  guido\\n\',\n  \'--- 1,4 ----\\n\',\n  \'! python\\n\',\n  \'! eggy\\n\',\n  \'! hamster\\n\',\n  \'  guido\\n\' ]\n```\n\n<a name="getCloseMatches" />\n### difflib.*getCloseMatches*(word, possibilities\\[, n\\]\\[, cutoff\\])\n\nReturn a list of the best “good enough” matches. \n*word* is a sequence for which close matches are desired \n(typically a string), and *possibilities* is a list of sequences against \nwhich to match word (typically a list of strings).\n\nOptional argument *n* (default 3) is the maximum number of close \nmatches to return; *n* must be greater than 0.\n\nOptional argument *cutoff* (default 0.6) is a float in the range \n[0, 1]. \nPossibilities that don’t score at least that similar to word are ignored.\n\nThe best (no more than n) matches among the possibilities are \nreturned in a list, sorted by similarity score, most similar first.\n\n```js\n>>> difflib.getCloseMatches(\'appel\', [\'ape\', \'apple\', \'peach\', \'puppy\'])\n[\'apple\', \'ape\']\n```\n\n<a name="ndiff" />\n### difflib.**ndiff**(a, b\\[, linejunk\\]\\[, charjunk\\])\n\nCompare *a* and b (lists of strings); \nreturn Differ-style delta lines\n\nOptional keyword parameters *linejunk* and *charjunk* are for \nfilter functions (or **null**):\n\n*linejunk*: A function that accepts a single string argument, \nand returns true if the string is junk, or false if not. \nThe default is (*null*).\n\n*charjunk*: A function that accepts a character (a string of length 1),\nand returns if the character is junk, or false if not. The default is \nmodule-level function [IS_CHARACTER_JUNK()](#IS_CHARACTER_JUNK), \nwhich filters out whitespace characters (a blank or tab; note: \nbad idea to include newline in this!).\n\n```js\n>>> a = [\'one\\n\', \'two\\n\', \'three\\n\']\n>>> b = [\'ore\\n\', \'tree\\n\', \'emu\\n\']\n>>> difflib.ndiff(a, b)\n[ \'- one\\n\',\n  \'?  ^\\n\',\n  \'+ ore\\n\',\n  \'?  ^\\n\',\n  \'- two\\n\',\n  \'- three\\n\',\n  \'?  -\\n\',\n  \'+ tree\\n\',\n  \'+ emu\\n\' ]\n```\n\n<a name="restore" />\n### difflib.**restore**(sequence, which)\n\nReturn one of the two sequences that generated a delta.\n\nGiven a sequence produced by Differ.compare() or ndiff(), \nextract lines originating from file 1 or 2 (parameter which), stripping off line prefixes.\n\n```js\n>>> a = [\'one\\n\', \'two\\n\', \'three\\n\']\n>>> b = [\'ore\\n\', \'tree\\n\', \'emu\\n\']\n>>> diff = difflib.ndiff(a, b)\n>>> difflib.restore(diff, 1)\n[ \'one\\n\',\n  \'two\\n\',\n  \'three\\n\' ]\n>>> restore(diff, 2)\n[ \'ore\\n\',\n  \'tree\\n\',\n  \'emu\\n\' ]\n```\n\n<a name="unifiedDiff" />\n### difflib.**unifiedDiff**(a, b, options)\n\nCompare a and b (lists of strings); \nreturn delta lines in unified diff format.\n\noptions:\n\n* fromfile\n* tofile\n* fromfiledate\n* tofiledate\n* n\n* lineterm\n\nUnified diffs are a compact way of showing just the lines that have \nchanged plus a few lines of context. \nThe changes are shown in a inline style (instead of separate before/after \nblocks). \nThe number of context lines is set by n which defaults to three.\n\nBy default, the diff control lines (those with `---`, `+++`, or `@@`) are \ncreated with a trailing newline. \n\nFor inputs that do not have trailing newlines, set the lineterm argument \nto `""` so that the output will be uniformly newline free.\n\nThe context diff format normally has a header for filenames and modification\ntimes. Any or all of these may be specified using strings for *fromfile*, \n*tofile*, *fromfiledate*, and *tofiledate*. \nThe modification times are normally expressed in the ISO 8601 format.\nIf not specified, the strings default to blanks.\n\n```js\n>>> difflib.unifiedDiff(\'one two three four\'.split(\' \'),\n...                     \'zero one tree four\'.split(\' \'), {\n...                       fromfile: \'Original\'\n...                       tofile: \'Current\',\n...                       fromfiledate: \'2005-01-26 23:30:50\',\n...                       tofiledate: \'2010-04-02 10:20:52\',\n...                       lineterm: \'\'\n...                     })\n[ \'--- Original\\t2005-01-26 23:30:50\',\n  \'+++ Current\\t2010-04-02 10:20:52\',\n  \'@@ -1,4 +1,4 @@\',\n  \'+zero\',\n  \' one\',\n  \'-two\',\n  \'-three\',\n  \'+tree\',\n  \' four\' ]\n```\n\n\n<a name="IS_LINE_JUNK" />\n### difflib.**IS\\_LINE\\_JUNK**(line)\n\nReturn true for ignorable lines. The line line is ignorable if *line* is \nblank or contains a single `\'#\'`, otherwise it is not ignorable.\n\n<a name="IS_CHARACTER_JUNK" />\n### difflib.**IS\\_CHARACTER\\_JUNK**(ch)\n\nReturn true for ignorable characters. The character *ch* is ignorable if ch\nis a space or tab, otherwise it is not ignorable. \nUsed as a default for parameter charjunk in [ndiff()](#ndiff).\n\n\nLicense\n-------\n\nPorted by Xueqiao Xu &lt;xueq...@gmail.com&gt;\n\nPSF LICENSE AGREEMENT FOR PYTHON 2.7.2\n\n1. This LICENSE AGREEMENT is between the Python Software Foundation (“PSF”), and the Individual or Organization (“Licensee”) accessing and otherwise using Python 2.7.2 software in source or binary form and its associated documentation.\n2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 2.7.2 alone or in any derivative version, provided, however, that PSF’s License Agreement and PSF’s notice of copyright, i.e., “Copyright © 2001-2012 Python Software Foundation; All Rights Reserved” are retained in Python 2.7.2 alone or in any derivative version prepared by Licensee.\n3. In the event Licensee prepares a derivative work that is based on or incorporates Python 2.7.2 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python 2.7.2.\n4. PSF is making Python 2.7.2 available to Licensee on an “AS IS” basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 2.7.2 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.\n5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 2.7.2 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 2.7.2, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.\n6. This License Agreement will automatically terminate upon a material breach of its terms and conditions.\n7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party.\n8. By copying, installing or otherwise using Python 2.7.2, Licensee agrees to be bound by the terms and conditions of this License Agreement.\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     bugs: { url: 'https://github.com/qiao/difflib.js/issues' },
1265 silly resolved     _id: 'dif...@0.2.4',
1265 silly resolved     _from: 'difflib@~0.2.4' },
1265 silly resolved   { name: 'prompt',
1265 silly resolved     description: 'A beautiful command-line prompt for node.js',
1265 silly resolved     version: '0.2.9',
1265 silly resolved     author: { name: 'Nodejitsu Inc.', email: 'in...@nodejitsu.com' },
1265 silly resolved     maintainers: [ [Object], [Object] ],
1265 silly resolved     repository: { type: 'git', url: 'http://github.com/flatiron/prompt.git' },
1265 silly resolved     dependencies:
1265 silly resolved      { pkginfo: '0.x.x',
1265 silly resolved        read: '1.0.x',
1265 silly resolved        revalidator: '0.1.x',
1265 silly resolved        utile: '0.1.x',
1265 silly resolved        winston: '0.6.x' },
1265 silly resolved     devDependencies: { vows: '0.7.0' },
1265 silly resolved     main: './lib/prompt',
1265 silly resolved     scripts:
1265 silly resolved      { test: 'vows test/prompt-test.js --spec',
1265 silly resolved        'test-all': 'vows --spec' },
1265 silly resolved     engines: { node: '>= 0.6.6' },
1265 silly resolved     readme: '# prompt [![Build Status](https://secure.travis-ci.org/flatiron/prompt.png)](http://travis-ci.org/flatiron/prompt)\n\nA beautiful command-line prompt for node.js\n\n## Features\n\n* prompts the user for input\n* supports validation and defaults\n* hides passwords\n\n## Usage\nUsing prompt is relatively straight forward. There are two core methods you should be aware of: `prompt.get()` and `prompt.addProperties()`. There methods take strings representing property names in addition to objects for complex property validation (and more). There are a number of [examples][0] that you should examine for detailed usage.\n\n### Getting Basic Prompt Information\nGetting started with `prompt` is easy. Lets take a look at `examples/simple-prompt.js`:\n\n``` js\n  var prompt = require(\'prompt\');\n\n  //\n  // Start the prompt\n  //\n  prompt.start();\n\n  //\n  // Get two properties from the user: username and email\n  //\n  prompt.get([\'username\', \'email\'], function (err, result) {\n    //\n    // Log the results.\n    //\n    console.log(\'Command-line input received:\');\n    console.log(\'  username: \' + result.username);\n    console.log(\'  email: \' + result.email);\n  });\n```\n\nThis will result in the following command-line output:\n\n```\n  $ node examples/simple-prompt.js \n  prompt: username: some-user\n  prompt: email: some...@some-place.org\n  Command-line input received:\n    username: some-user\n    email: some...@some-place.org\n```\n\n### Prompting with Validation, Default Values, and More (Complex Properties)\nIn addition to prompting the user with simple string prompts, there is a robust API for getting and validating complex information from a command-line prompt. Here\'s a quick sample:\n\n``` js\n  var schema = {\n    properties: {\n      name: {\n        pattern: /^[a-zA-Z\\s\\-]+$/,\n        message: \'Name must be only letters, spaces, or dashes\',\n        required: true\n      },\n      password: {\n        hidden: true\n      }\n    }\n  };\n\n  //\n  // Start the prompt\n  //\n  prompt.start();\n\n  //\n  // Get two properties from the user: email, password\n  //\n  prompt.get(schema, function (err, result) {\n    //\n    // Log the results.\n    //\n    console.log(\'Command-line input received:\');\n    console.log(\'  name: \' + result.name);\n    console.log(\'  password: \' + result.password);\n  });\n```\n\nPretty easy right? The output from the above script is: \n\n```\n  $ node examples/property-prompt.js\n  prompt: name: nodejitsu000\n  error:  Invalid input for name\n  error:  Name must be only letters, spaces, or dashes\n  prompt: name: Nodejitsu Inc\n  prompt: password: \n  Command-line input received:\n    name: Nodejitsu Inc\n    password: some-password  \n```\n\n## Valid Property Settings\n`prompt` understands JSON-schema with a few extra parameters and uses [revalidator](https://github.com/flatiron/revalidator) for validation.\n\nHere\'s an overview of the properties that may be used for validation and prompting controls:\n\n``` js\n  {\n    description: \'Enter your password\',     // Prompt displayed to the user. If not supplied name will be used.\n    type: \'string\',                 // Specify the type of input to expect.\n    pattern: /^\\w+$/,                  // Regular expression that input must be valid against.\n    message: \'Password must be letters\', // Warning message to display if validation fails.\n    hidden: true,                        // If true, characters entered will not be output to console.\n    default: \'lamepassword\',             // Default value to use if no value is entered.\n    required: true                        // If true, value entered must be non-empty.\n    before: function(value) { return \'v\' + value; } // Runs before node-prompt callbacks. It modifies user\'s input\n  }\n```\n\nAlternatives to `pattern` include `format` and `conform`, as documented in [revalidator](https://github.com/flatiron/revalidator).\n\nUsing `type: \'array\'` has some special cases.\n\n- `description` will not work in the schema if `type: \'array\'` is defined.\n- `maxItems` takes precedence over `minItems`.\n- Arrays that do not have `maxItems` defined will require users to `SIGINT` (`^C`) before the array is ended.\n- If `SIGINT` (`^C`) is triggered before `minItems` is met, a validation error will appear. This will require users to `SIGEOF` (`^D`) to end the input.\n\nFor more information on things such as `maxItems` and `minItems`, refer to the [revalidator](https://github.com/flatiron/revalidator) repository.\n\n### Alternate Validation API:\n\nPrompt, in addition to iterating over JSON-Schema properties, will also happily iterate over an array of validation objects given an extra \'name\' property:\n\n```js\n  var prompt = require(\'../lib/prompt\');\n\n  //\n  // Start the prompt\n  //\n  prompt.start();\n\n  //\n  // Get two properties from the user: username and password\n  //\n  prompt.get([{\n      name: \'username\',\n      required: true\n    }, {\n      name: \'password\',\n      hidden: true,\n      conform: function (value) {\n        return true;\n      }\n    }], function (err, result) {\n    //\n    // Log the results.\n    //\n    console.log(\'Command-line input received:\');\n    console.log(\'  username: \' + result.username);\n    console.log(\'  password: \' + result.password);\n  });\n```\n\n### Backward Compatibility\n\nNote that, while this structure is similar to that used by prompt 0.1.x, that the object properties use the same names as in JSON-Schema. prompt 0.2.x is backward compatible with prompt 0.1.x except for asynchronous validation.\n\n### Skipping Prompts\n\nSometimes power users may wish to skip promts and specify all data as command line options. \nif a value is set as a property of `prompt.override` prompt will use that instead of \nprompting the user.\n\n``` js\n  //prompt-override.js\n\n  var prompt = require(\'prompt\'),\n      optimist = require(\'optimist\')\n\n  //\n  // set the overrides\n  //\n  prompt.override = optimist.argv\n\n  //\n  // Start the prompt\n  //\n  prompt.start();\n\n  //\n  // Get two properties from the user: username and email\n  //\n  prompt.get([\'username\', \'email\'], function (err, result) {\n    //\n    // Log the results.\n    //\n    console.log(\'Command-line input received:\');\n    console.log(\'  username: \' + result.username);\n    console.log(\'  email: \' + result.email);\n  })\n\n  //: node prompt-override.js --username USER --email EMAIL\n```\n\n\n### Adding Properties to an Object \nA common use-case for prompting users for data from the command-line is to extend or create a configuration object that is passed onto the entry-point method for your CLI tool. `prompt` exposes a convenience method for doing just this: \n\n``` js\n  var obj = {\n    password: \'lamepassword\',\n    mindset: \'NY\'\n  }\n\n  //\n  // Log the initial object.\n  //\n  console.log(\'Initial object to be extended:\');\n  console.dir(obj);\n\n  //\n  // Add two properties to the empty object: username and email\n  //\n  prompt.addProperties(obj, [\'username\', \'email\'], function (err) {\n    //\n    // Log the results.\n    //\n    console.log(\'Updated object received:\');\n    console.dir(obj);\n  });\n```\n\n## Customizing your prompt\nAside from changing `property.message`, you can also change `prompt.message`\nand `prompt.delimiter` to change the appearance of your prompt.\n\nThe basic structure of a prompt is this:\n\n``` js\nprompt.message + prompt.delimiter + property.message + prompt.delimiter;\n```\n\nThe default `prompt.message` is "prompt," the default `prompt.delimiter` is\n": ", and the default `property.message` is `property.name`.\nChanging these allows you to customize the appearance of your prompts! In\naddition, prompt supports ANSI color codes via the\n[colors module](https://github.com/Marak/colors.js) for custom colors. For a\nvery colorful example:\n\n``` js\n  var prompt = require("prompt");\n\n  //\n  // Setting these properties customizes the prompt.\n  //\n  prompt.message = "Question!".rainbow;\n  prompt.delimiter = "><".green;\n\n  prompt.start();\n\n  prompt.get({\n    properties: {\n      name: {\n        description: "What is your name?".magenta\n      }\n    }\n  }, function (err, result) {\n    console.log("You said your name is: ".cyan + result.name.cyan);\n  });\n```\n\nIf you don\'t want colors, you can set\n\n```js\nvar prompt = require(\'prompt\');\n\nprompt.colors = false;\n```\n\n## Installation\n\n``` bash\n  $ [sudo] npm install prompt\n```\n\n## Running tests\n\n``` bash \n  $ npm test\n```\n\n#### License: MIT\n#### Author: [Charlie Robbins](http://github.com/indexzero)\n#### Contributors: [Josh Holbrook](http://github.com/jesusabdullah), [Pavan Kumar Sunkara](http://github.com/pksunkara)\n\n[0]: https://github.com/flatiron/prompt/tree/master/examples\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     bugs: { url: 'https://github.com/flatiron/prompt/issues' },
1265 silly resolved     _id: 'pro...@0.2.9',
1265 silly resolved     _from: 'prompt@~0.2.9' },
1265 silly resolved   { name: 'binary-cookies',
1265 silly resolved     description: 'Binary cookie file parser',
1265 silly resolved     tags: [ 'cookies', 'apple', 'safari' ],
1265 silly resolved     version: '0.1.1',
1265 silly resolved     author: { name: 'Jonathan Lipps' },
1265 silly resolved     repository:
1265 silly resolved      { type: 'git',
1265 silly resolved        url: 'https://github.com/jlipps/node-binary-cookies' },
1265 silly resolved     bugs: { url: 'https://github.com/jlipps/node-binary-cookies/issues' },
1265 silly resolved     engines: [ 'node' ],
1265 silly resolved     main: './cookies.js',
1265 silly resolved     dependencies:
1265 silly resolved      { underscore: '~1.4.3',
1265 silly resolved        colors: '~0.6.0-1',
1265 silly resolved        argparse: '~0.1.10',
1265 silly resolved        path: '~0.4.9',
1265 silly resolved        winston: '~0.6.2',
1265 silly resolved        bufferpack: '0.0.6',
1265 silly resolved        async: '~0.2.6' },
1265 silly resolved     scripts: { test: 'grunt test' },
1265 silly resolved     devDependencies:
1265 silly resolved      { mocha: '~1.8.1',
1265 silly resolved        should: '~1.2.1',
1265 silly resolved        grunt: '~0.4.0',
1265 silly resolved        'grunt-cli': '~0.1.6',
1265 silly resolved        'grunt-contrib-jshint': '~0.1.1',
1265 silly resolved        'grunt-mocha-test': '~0.2.0' },
1265 silly resolved     readme: 'node-binary-cookies\n===================\n\nBinary cookies parser for Node.\n\nSome Apple browsers like Safari and Mobile Safari store their cookies in\na `.binarycookie` format that is hard to parse. Node to the rescue! Say you\nhave a file at `/my/path/to/Cookies.binarycookies`. You can parse it like so:\n\n```js\nvar CookieParser = require(\'./cookies\')\n  , cookiePath = "/my/path/to/Cookies.binarycookies";\n\nCookieParser.parse(cookiePath, function(err, cookies) {\n  console.log(cookies[0]);\n});\n```\n\nThis will output something like this:\n\n```js\n{\n    flags: 0,\n    expiration: new Date("Thu Apr 02 2015 14:55:59 GMT-0700 (PDT)"),\n    creation: new Date("Tue Apr 02 2013 14:56:00 GMT-0700 (PDT)"),\n    url: \'.apple.com\',\n    name: \'s_pathLength\',\n    path: \'/\',\n    value: \'homepage%3D1%2C\'\n}\n```\n\nThis should all be self-explanatory except flags:\n\n|Flag|Meaning|\n|----|-------|\n|0|No flags|\n|1|Secure cookie|\n|4|HttpOnly cookie|\n|5|Secure &amp; HttpOnly|\n\nHave fun! I wrote this for [Appium](http://github.com/appium/appium), check it\nout!\n\nAcknowledgements\n--------\nI learned about the spec from [this blog entry](http://www.securitylearn.net/2012/10/27/cookies-binarycookies-reader/). Thanks Internet dude!\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     _id: 'binary-...@0.1.1',
1265 silly resolved     _from: 'binary-cookies@~0.1.1' },
1265 silly resolved   { name: 'node-idevice',
1265 silly resolved     version: '0.1.2',
1265 silly resolved     description: 'Install apps on your ios device. Node wrapper around ideviceinstaller. ',
1265 silly resolved     main: 'main.js',
1265 silly resolved     scripts: { test: 'echo "Error: no test specified" && exit 1' },
1265 silly resolved     repository: '',
1265 silly resolved     keywords: [ 'ios', 'install', 'device', 'ideviceinstaller' ],
1265 silly resolved     author: { name: 'Mathieu Sabourin' },
1265 silly resolved     license: 'BSD',
1265 silly resolved     readme: '# node-idevice\n\nInstall apps to your ios device with node.\n\nThis project depends on ideviceinstaller from the [libimobiledevice](http://www.libimobiledevice.org/) project.\nThe currently preferred way of obtaining the binary is to use brew.\n```\nbrew install ideviceinstaller\n```\nYou can then tell node-idevice to use the command:\n```javascript\n// Use executable found in your $PATH\nvar device = new IDevice();\n\n// Or you can manually set the executable\nvar device = new IDevice(false, {cmd: \'./path/to/ideviceinstaller\'});\n```\n\nIf you want to build the binary yourself you can try:\n```\n./utils/steps\n```\nThis should pull and build all the dependencies. Be warned this is pretty long.\n\nWe currently support installing, removing and listing apps on a device.\n### Installing\n```javascript\nvar app = path.resolve(__dirname, \'../path/to/your/App.ipa\');\ndevice.install(app, function (err) {\n\t// Do stuff when app is installed\n});\n```\n### Note\nideviceinstaller consumes IPA packages, please see the [docs](https://github.com/OniOni/node-idevice/blob/master/docs/building_ipa.md) on how to get an IPA from your App.\n\n### Removing\n```javascript\ndevice.remove(\'domain.organisation.App\', function (err) {\n\t// Do stuff when app is installed\n});\n```\n### Checking if an app is Installed\n```javascript\ndevice.isInstalled(appName, function (err, installed) {\n\t// Installed is true when app is found on device\n});\n```\n### Listing Installed apps\n```javascript\ndevice.listInstalled(function (err, data) {\n\t// data is a list of objects, one per app\n\t// The object contains info about the app, currently \'name\' and \'fullname\'\n});\n```\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     _id: 'node-i...@0.1.2',
1265 silly resolved     _from: 'node-idevice@~0.1.2' },
1265 silly resolved   { name: 'namp',
1265 silly resolved     version: '0.2.25',
1265 silly resolved     description: 'Markdown parser for Node, with Maruku, GFM, and PHP Extras support, plus more. Based on marked.',
1265 silly resolved     keywords: [ 'markdown', 'maruku', 'gfm', 'text processing', 'ast' ],
1265 silly resolved     maintainers: [ [Object] ],
1265 silly resolved     contributors: [ [Object] ],
1265 silly resolved     bugs: { url: 'http://github.com/gjtorikian/namp/issues' },
1265 silly resolved     licenses: [ [Object] ],
1265 silly resolved     repository: { type: 'git', url: 'git://github.com/gjtorikian/namp.git' },
1265 silly resolved     main: './lib/namp.js',
1265 silly resolved     dependencies: { 'highlight.js': '>=7.0.0' },
1265 silly resolved     readme: '# Introduction\n\nThis is **no**t **a**nother **m**arkdown **p**arser.\n\nWell, okay, yes it is. But it handles a lot more than you\'re probably used to finding in just a single package. This generator can process Markdown files written in:\n\n* [The standard Gruber syntax](http://daringfireball.net/projects/markdown/)\n* [The GitHub Flavored Markdown syntax](http://github.github.com/github-flavored-markdown/) (including language-specific codeblock fences)\n\nIt also does some "non-traditional" work, too, that I find pretty damn useful:\n\n* _Inline_ metadata support (something Maruku does not do). By this I mean you can add an ID to anything; for example, this format:  \n `Here is [a very special]{: #special .words1 .class1 lie=false} piece of text!`  \nProduces this text:  \n`<p>Here is <span id="special" class="words1 class1" lie="false">a very special</span> piece of text`  \nMaruku only allowed you to do inline IDs for stylized text, like `code`, **strong**, or _emphasis_. Now, if you wrap your text in `[ ]` brackets, you can continue to add Maruku metadata syntax and expect it to work.(**NOT YET SUPPORTED**)\n  \n* Strikethroughs, using `~~`. For example, `This is a ~~strikethrough~~` turns into `This is a <del>strikethrough</del>`\n* Tables, with support for `left`,`right`, and `center` alignment (**NOT YET SUPPORTED**)\n* Conversion of `Note: `, `Tip: `, and `Warning: ` blocks into [Twitter Bootstrap alert blocks](http://twitter.github.com/bootstrap/components.html#alerts). Awesome!\n* Build-time highlighting of `<pre>` code blocks. Enabled by default, see below for configuration instructions.\n* `[[keys: ]]` converts keyboard characters into a pretty-printed format\n* `[[menu: ]]` converts a comma-seprated list into a pretty-printed menu\n* Markdown wrapped in `<div marked="1">` is processed.\n* Width and height attributes can be added to images with `<x, y>`\n\nnamp was forked from [marked](https://github.com/chjj/marked), which is a super-fast Markdown parser that handles all the standard GFM syntax.\n\nFor a demonstration of all the additional add-ons, take a look at the _/doc_ folder.\n\n## Usage and Configuration\n\nFirst, install from npm:\n\n  npm install namp\n\nThen, add the module via a `require()` statement, feed it a file, and let it go:\n\n```javascript\nvar namp = require(\'namp\');\nvar fs = require(\'fs\');\n\nfs.readFile("SYNTAX.md", "utf8", function (err, data) {\n  if (!err) {\n    var output = namp(data, {highlight: true } );\n    fs.writeFileSync("SYNTAX.html", output.html);\n\n    console.log("Finished! By the way, I found this metadata:\\n" + console.log(output.metadata));\n  }\n});\n```\n\nThat\'s it! Notice that the converter takes two parameters:\n\n* `data`, the contents of the Markdown file\n* `options`, an object containing the following properties:  \n  - `highlight` enables build-time syntax highlighting for code blocks (this is `true` by default). This uses [the highlight.js processor](http://softwaremaniacs.org/soft/highlight/en/), so you\'ll still need to define your own CSS for colors\n\nThe result of the conversion is an object with two properties:\n\n* `html`, the transformed HTML\n* `metadata`, an object containing the document metadata values (`undefined` if there\'s none)\n\n#### Document Metadata Handling\n\nA special note must be made for the way document metadata blocks are handled. These are a list of arbitrary `Key: Value` mappings defined at the very start of a document. They are optional, but can be useful as content to be used in other locations. _doc/SYNTAX.md_ shows how you can define these properties.\n\nHere\'s the original marked README:\n\n# marked\n\nA full-featured markdown parser and compiler, written in javascript.\nBuilt for speed.\n\n## Benchmarks\n\nnode v0.4.x\n\n``` bash\n$ node test --bench\nmarked completed in 12071ms.\nshowdown (reuse converter) completed in 27387ms.\nshowdown (new converter) completed in 75617ms.\nmarkdown-js completed in 70069ms.\n```\n\nnode v0.6.x\n\n``` bash\n$ node test --bench\nmarked completed in 6448ms.\nmarked (gfm) completed in 7357ms.\nmarked (pedantic) completed in 6092ms.\ndiscount completed in 7314ms.\nshowdown (reuse converter) completed in 16018ms.\nshowdown (new converter) completed in 18234ms.\nmarkdown-js completed in 24270ms.\n```\n\n__Marked is now faster than Discount, which is written in C.__\n\nFor those feeling skeptical: These benchmarks run the entire markdown test suite\n1000 times. The test suite tests every feature. It doesn\'t cater to specific\naspects.\n\n## Install\n\n``` bash\n$ npm install marked\n```\n\n## Another Javascript Markdown Parser\n\nThe point of marked was to create a markdown compiler where it was possible to\nfrequently parse huge chunks of markdown without having to worry about\ncaching the compiled output somehow...or blocking for an unnecesarily long time.\n\nmarked is very concise and still implements all markdown features. It is also\nnow fully compatible with the client-side.\n\nmarked more or less passes the official markdown test suite in its\nentirety. This is important because a surprising number of markdown compilers\ncannot pass more than a few tests. It was very difficult to get marked as\ncompliant as it is. It could have cut corners in several areas for the sake\nof performance, but did not in order to be exactly what you expect in terms\nof a markdown rendering. In fact, this is why marked could be considered at a\ndisadvantage in the benchmarks above.\n\nAlong with implementing every markdown feature, marked also implements\n[GFM features](http://github.github.com/github-flavored-markdown/).\n\n## Options\n\nmarked has 4 different switches which change behavior.\n\n- __pedantic__: Conform to obscure parts of `markdown.pl` as much as possible.\n  Don\'t fix any of the original markdown bugs or poor behavior.\n- __gfm__: Enable github flavored markdown (enabled by default).\n- __sanitize__: Sanitize the output. Ignore any HTML that has been input.\n- __highlight__: A callback to highlight code blocks.\n\nNone of the above are mutually exclusive/inclusive.\n\n## Usage\n\n``` js\n// Set default options\nmarked.setOptions({\n  gfm: true,\n  pedantic: false,\n  sanitize: true,\n  // callback for code highlighter\n  highlight: function(code, lang) {\n    if (lang === \'js\') {\n      return javascriptHighlighter(code);\n    }\n    return code;\n  }\n});\nconsole.log(marked(\'i am using __markdown__.\'));\n```\n\nYou also have direct access to the lexer and parser if you so desire.\n\n``` js\nvar tokens = marked.lexer(text);\nconsole.log(marked.parser(tokens));\n```\n\n``` bash\n$ node\n> require(\'marked\').lexer(\'> i am using marked.\')\n[ { type: \'blockquote_start\' },\n  { type: \'paragraph\',\n    text: \'i am using marked.\' },\n  { type: \'blockquote_end\' },\n  links: {} ]\n```\n\n## CLI\n\n``` bash\n$ marked -o hello.html\nhello world\n^D\n$ cat hello.html\n<p>hello world</p>\n```\n\n## License\n\nCopyright (c) 2011-2012, Garen Torikian. (MIT License)\n\nSee LICENSE for more info.\n\nBased mostly on Christopher Jeffrey (https://github.com/chjj/)\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     _id: 'na...@0.2.25',
1265 silly resolved     _from: 'namp@~0.2.25' },
1265 silly resolved   { name: 'async',
1265 silly resolved     description: 'Higher-order functions and common patterns for asynchronous code',
1265 silly resolved     main: './lib/async',
1265 silly resolved     author: { name: 'Caolan McMahon' },
1265 silly resolved     version: '0.2.9',
1265 silly resolved     repository: { type: 'git', url: 'https://github.com/caolan/async.git' },
1265 silly resolved     bugs: { url: 'https://github.com/caolan/async/issues' },
1265 silly resolved     licenses: [ [Object] ],
1265 silly resolved     devDependencies: { nodeunit: '>0.0.0', 'uglify-js': '1.2.x', nodelint: '>0.0.0' },
1265 silly resolved     jam: { main: 'lib/async.js', include: [Object] },
1265 silly resolved     scripts: { test: 'nodeunit test/test-async.js' },
1265 silly resolved     readme: '# Async.js\n\nAsync is a utility module which provides straight-forward, powerful functions\nfor working with asynchronous JavaScript. Although originally designed for\nuse with [node.js](http://nodejs.org), it can also be used directly in the\nbrowser. Also supports [component](https://github.com/component/component).\n\nAsync provides around 20 functions that include the usual \'functional\'\nsuspects (map, reduce, filter, each…) as well as some common patterns\nfor asynchronous control flow (parallel, series, waterfall…). All these\nfunctions assume you follow the node.js convention of providing a single\ncallback as the last argument of your async function.\n\n\n## Quick Examples\n\n```javascript\nasync.map([\'file1\',\'file2\',\'file3\'], fs.stat, function(err, results){\n    // results is now an array of stats for each file\n});\n\nasync.filter([\'file1\',\'file2\',\'file3\'], fs.exists, function(results){\n    // results now equals an array of the existing files\n});\n\nasync.parallel([\n    function(){ ... },\n    function(){ ... }\n], callback);\n\nasync.series([\n    function(){ ... },\n    function(){ ... }\n]);\n```\n\nThere are many more functions available so take a look at the docs below for a\nfull list. This module aims to be comprehensive, so if you feel anything is\nmissing please create a GitHub issue for it.\n\n## Common Pitfalls\n\n### Binding a context to an iterator\n\nThis section is really about bind, not about async. If you are wondering how to\nmake async execute your iterators in a given context, or are confused as to why\na method of another library isn\'t working as an iterator, study this example:\n\n```js\n// Here is a simple object with an (unnecessarily roundabout) squaring method\nvar AsyncSquaringLibrary = {\n  squareExponent: 2,\n  square: function(number, callback){ \n    var result = Math.pow(number, this.squareExponent);\n    setTimeout(function(){\n      callback(null, result);\n    }, 200);\n  }\n};\n\nasync.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result){\n  // result is [NaN, NaN, NaN]\n  // This fails because the `this.squareExponent` expression in the square\n  // function is not evaluated in the context of AsyncSquaringLibrary, and is\n  // therefore undefined.\n});\n\nasync.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){\n  // result is [1, 4, 9]\n  // With the help of bind we can attach a context to the iterator before\n  // passing it to async. Now the square function will be executed in its \n  // \'home\' AsyncSquaringLibrary context and the value of `this.squareExponent`\n  // will be as expected.\n});\n```\n\n## Download\n\nThe source is available for download from\n[GitHub](http://github.com/caolan/async).\nAlternatively, you can install using Node Package Manager (npm):\n\n    npm install async\n\n__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 29.6kb Uncompressed\n\n## In the Browser\n\nSo far it\'s been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. Usage:\n\n```html\n<script type="text/javascript" src="async.js"></script>\n<script type="text/javascript">\n\n    async.map(data, asyncProcess, function(err, results){\n        alert(results);\n    });\n\n</script>\n```\n\n## Documentation\n\n### Collections\n\n* [each](#each)\n* [map](#map)\n* [filter](#filter)\n* [reject](#reject)\n* [reduce](#reduce)\n* [detect](#detect)\n* [sortBy](#sortBy)\n* [some](#some)\n* [every](#every)\n* [concat](#concat)\n\n### Control Flow\n\n* [series](#series)\n* [parallel](#parallel)\n* [whilst](#whilst)\n* [doWhilst](#doWhilst)\n* [until](#until)\n* [doUntil](#doUntil)\n* [forever](#forever)\n* [waterfall](#waterfall)\n* [compose](#compose)\n* [applyEach](#applyEach)\n* [queue](#queue)\n* [cargo](#cargo)\n* [auto](#auto)\n* [iterator](#iterator)\n* [apply](#apply)\n* [nextTick](#nextTick)\n* [times](#times)\n* [timesSeries](#timesSeries)\n\n### Utils\n\n* [memoize](#memoize)\n* [unmemoize](#unmemoize)\n* [log](#log)\n* [dir](#dir)\n* [noConflict](#noConflict)\n\n\n## Collections\n\n<a name="forEach" />\n<a name="each" />\n### each(arr, iterator, callback)\n\nApplies an iterator function to each item in an array, in parallel.\nThe iterator is called with an item from the list and a callback for when it\nhas finished. If the iterator passes an error to this callback, the main\ncallback for the each function is immediately called with the error.\n\nNote, that since this function applies the iterator to each item in parallel\nthere is no guarantee that the iterator functions will complete in order.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n  The iterator is passed a callback(err) which must be called once it has \n  completed. If no error has occured, the callback should be run without \n  arguments or with an explicit null argument.\n* callback(err) - A callback which is called after all the iterator functions\n  have finished, or an error has occurred.\n\n__Example__\n\n```js\n// assuming openFiles is an array of file names and saveFile is a function\n// to save the modified contents of that file:\n\nasync.each(openFiles, saveFile, function(err){\n    // if any of the saves produced an error, err would equal that error\n});\n```\n\n---------------------------------------\n\n<a name="forEachSeries" />\n<a name="eachSeries" />\n### eachSeries(arr, iterator, callback)\n\nThe same as each only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. This means the iterator functions will complete in order.\n\n\n---------------------------------------\n\n<a name="forEachLimit" />\n<a name="eachLimit" />\n### eachLimit(arr, limit, iterator, callback)\n\nThe same as each only no more than "limit" iterators will be simultaneously \nrunning at any time.\n\nNote that the items are not processed in batches, so there is no guarantee that\n the first "limit" iterator functions will complete before any others are \nstarted.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* limit - The maximum number of iterators to run at any time.\n* iterator(item, callback) - A function to apply to each item in the array.\n  The iterator is passed a callback(err) which must be called once it has \n  completed. If no error has occured, the callback should be run without \n  arguments or with an explicit null argument.\n* callback(err) - A callback which is called after all the iterator functions\n  have finished, or an error has occurred.\n\n__Example__\n\n```js\n// Assume documents is an array of JSON objects and requestApi is a\n// function that interacts with a rate-limited REST api.\n\nasync.eachLimit(documents, 20, requestApi, function(err){\n    // if any of the saves produced an error, err would equal that error\n});\n```\n\n---------------------------------------\n\n<a name="map" />\n### map(arr, iterator, callback)\n\nProduces a new array of values by mapping each value in the given array through\nthe iterator function. The iterator is called with an item from the array and a\ncallback for when it has finished processing. The callback takes 2 arguments, \nan error and the transformed item from the array. If the iterator passes an\nerror to this callback, the main callback for the map function is immediately\ncalled with the error.\n\nNote, that since this function applies the iterator to each item in parallel\nthere is no guarantee that the iterator functions will complete in order, however\nthe results array will be in the same order as the original array.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n  The iterator is passed a callback(err, transformed) which must be called once \n  it has completed with an error (which can be null) and a transformed item.\n* callback(err, results) - A callback which is called after all the iterator\n  functions have finished, or an error has occurred. Results is an array of the\n  transformed items from the original array.\n\n__Example__\n\n```js\nasync.map([\'file1\',\'file2\',\'file3\'], fs.stat, function(err, results){\n    // results is now an array of stats for each file\n});\n```\n\n---------------------------------------\n\n<a name="mapSeries" />\n### mapSeries(arr, iterator, callback)\n\nThe same as map only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. The results array will be in the same order as the original.\n\n\n---------------------------------------\n\n<a name="mapLimit" />\n### mapLimit(arr, limit, iterator, callback)\n\nThe same as map only no more than "limit" iterators will be simultaneously \nrunning at any time.\n\nNote that the items are not processed in batches, so there is no guarantee that\n the first "limit" iterator functions will complete before any others are \nstarted.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* limit - The maximum number of iterators to run at any time.\n* iterator(item, callback) - A function to apply to each item in the array.\n  The iterator is passed a callback(err, transformed) which must be called once \n  it has completed with an error (which can be null) and a transformed item.\n* callback(err, results) - A callback which is called after all the iterator\n  functions have finished, or an error has occurred. Results is an array of the\n  transformed items from the original array.\n\n__Example__\n\n```js\nasync.map([\'file1\',\'file2\',\'file3\'], 1, fs.stat, function(err, results){\n    // results is now an array of stats for each file\n});\n```\n\n---------------------------------------\n\n<a name="filter" />\n### filter(arr, iterator, callback)\n\n__Alias:__ select\n\nReturns a new array of all the values which pass an async truth test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like fs.exists. This operation is\nperformed in parallel, but the results array will be in the same order as the\noriginal.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n  The iterator is passed a callback(truthValue) which must be called with a \n  boolean argument once it has completed.\n* callback(results) - A callback which is called after all the iterator\n  functions have finished.\n\n__Example__\n\n```js\nasync.filter([\'file1\',\'file2\',\'file3\'], fs.exists, function(results){\n    // results now equals an array of the existing files\n});\n```\n\n---------------------------------------\n\n<a name="filterSeries" />\n### filterSeries(arr, iterator, callback)\n\n__alias:__ selectSeries\n\nThe same as filter only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. The results array will be in the same order as the original.\n\n---------------------------------------\n\n<a name="reject" />\n### reject(arr, iterator, callback)\n\nThe opposite of filter. Removes values that pass an async truth test.\n\n---------------------------------------\n\n<a name="rejectSeries" />\n### rejectSeries(arr, iterator, callback)\n\nThe same as reject, only the iterator is applied to each item in the array\nin series.\n\n\n---------------------------------------\n\n<a name="reduce" />\n### reduce(arr, memo, iterator, callback)\n\n__aliases:__ inject, foldl\n\nReduces a list of values into a single value using an async iterator to return\neach successive step. Memo is the initial state of the reduction. This\nfunction only operates in series. For performance reasons, it may make sense to\nsplit a call to this function into a parallel map, then use the normal\nArray.prototype.reduce on the results. This function is for situations where\neach step in the reduction needs to be async, if you can get the data before\nreducing it then it\'s probably a good idea to do so.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* memo - The initial state of the reduction.\n* iterator(memo, item, callback) - A function applied to each item in the\n  array to produce the next step in the reduction. The iterator is passed a\n  callback(err, reduction) which accepts an optional error as its first \n  argument, and the state of the reduction as the second. If an error is \n  passed to the callback, the reduction is stopped and the main callback is \n  immediately called with the error.\n* callback(err, result) - A callback which is called after all the iterator\n  functions have finished. Result is the reduced value.\n\n__Example__\n\n```js\nasync.reduce([1,2,3], 0, function(memo, item, callback){\n    // pointless async:\n    process.nextTick(function(){\n        callback(null, memo + item)\n    });\n}, function(err, result){\n    // result is now equal to the last value of memo, which is 6\n});\n```\n\n---------------------------------------\n\n<a name="reduceRight" />\n### reduceRight(arr, memo, iterator, callback)\n\n__Alias:__ foldr\n\nSame as reduce, only operates on the items in the array in reverse order.\n\n\n---------------------------------------\n\n<a name="detect" />\n### detect(arr, iterator, callback)\n\nReturns the first value in a list that passes an async truth test. The\niterator is applied in parallel, meaning the first iterator to return true will\nfire the detect callback with that result. That means the result might not be\nthe first item in the original array (in terms of order) that passes the test.\n\nIf order within the original array is important then look at detectSeries.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n  The iterator is passed a callback(truthValue) which must be called with a \n  boolean argument once it has completed.\n* callback(result) - A callback which is called as soon as any iterator returns\n  true, or after all the iterator functions have finished. Result will be\n  the first item in the array that passes the truth test (iterator) or the\n  value undefined if none passed.\n\n__Example__\n\n```js\nasync.detect([\'file1\',\'file2\',\'file3\'], fs.exists, function(result){\n    // result now equals the first file in the list that exists\n});\n```\n\n---------------------------------------\n\n<a name="detectSeries" />\n### detectSeries(arr, iterator, callback)\n\nThe same as detect, only the iterator is applied to each item in the array\nin series. This means the result is always the first in the original array (in\nterms of array order) that passes the truth test.\n\n\n---------------------------------------\n\n<a name="sortBy" />\n### sortBy(arr, iterator, callback)\n\nSorts a list by the results of running each value through an async iterator.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n  The iterator is passed a callback(err, sortValue) which must be called once it\n  has completed with an error (which can be null) and a value to use as the sort\n  criteria.\n* callback(err, results) - A callback which is called after all the iterator\n  functions have finished, or an error has occurred. Results is the items from\n  the original array sorted by the values returned by the iterator calls.\n\n__Example__\n\n```js\nasync.sortBy([\'file1\',\'file2\',\'file3\'], function(file, callback){\n    fs.stat(file, function(err, stats){\n        callback(err, stats.mtime);\n    });\n}, function(err, results){\n    // results is now the original array of files sorted by\n    // modified date\n});\n```\n\n---------------------------------------\n\n<a name="some" />\n### some(arr, iterator, callback)\n\n__Alias:__ any\n\nReturns true if at least one element in the array satisfies an async test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like fs.exists. Once any iterator\ncall returns true, the main callback is immediately called.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n  The iterator is passed a callback(truthValue) which must be called with a \n  boolean argument once it has completed.\n* callback(result) - A callback which is called as soon as any iterator returns\n  true, or after all the iterator functions have finished. Result will be\n  either true or false depending on the values of the async tests.\n\n__Example__\n\n```js\nasync.some([\'file1\',\'file2\',\'file3\'], fs.exists, function(result){\n    // if result is true then at least one of the files exists\n});\n```\n\n---------------------------------------\n\n<a name="every" />\n### every(arr, iterator, callback)\n\n__Alias:__ all\n\nReturns true if every element in the array satisfies an async test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like fs.exists.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n  The iterator is passed a callback(truthValue) which must be called with a \n  boolean argument once it has completed.\n* callback(result) - A callback which is called after all the iterator\n  functions have finished. Result will be either true or false depending on\n  the values of the async tests.\n\n__Example__\n\n```js\nasync.every([\'file1\',\'file2\',\'file3\'], fs.exists, function(result){\n    // if result is true then every file exists\n});\n```\n\n---------------------------------------\n\n<a name="concat" />\n### concat(arr, iterator, callback)\n\nApplies an iterator to each item in a list, concatenating the results. Returns the\nconcatenated list. The iterators are called in parallel, and the results are\nconcatenated as they return. There is no guarantee that the results array will\nbe returned in the original order of the arguments passed to the iterator function.\n\n__Arguments__\n\n* arr - An array to iterate over\n* iterator(item, callback) - A function to apply to each item in the array.\n  The iterator is passed a callback(err, results) which must be called once it \n  has completed with an error (which can be null) and an array of results.\n* callback(err, results) - A callback which is called after all the iterator\n  functions have finished, or an error has occurred. Results is an array containing\n  the concatenated results of the iterator function.\n\n__Example__\n\n```js\nasync.concat([\'dir1\',\'dir2\',\'dir3\'], fs.readdir, function(err, files){\n    // files is now a list of filenames that exist in the 3 directories\n});\n```\n\n---------------------------------------\n\n<a name="concatSeries" />\n### concatSeries(arr, iterator, callback)\n\nSame as async.concat, but executes in series instead of parallel.\n\n\n## Control Flow\n\n<a name="series" />\n### series(tasks, [callback])\n\nRun an array of functions in series, each one running once the previous\nfunction has completed. If any functions in the series pass an error to its\ncallback, no more functions are run and the callback for the series is\nimmediately called with the value of the error. Once the tasks have completed,\nthe results are passed to the final callback as an array.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function and the results will be passed to the final callback as an object\ninstead of an array. This can be a more readable way of handling results from\nasync.series.\n\n\n__Arguments__\n\n* tasks - An array or object containing functions to run, each function is passed\n  a callback(err, result) it must call on completion with an error (which can\n  be null) and an optional result value.\n* callback(err, results) - An optional callback to run once all the functions\n  have completed. This function gets a results array (or object) containing all \n  the result arguments passed to the task callbacks.\n\n__Example__\n\n```js\nasync.series([\n    function(callback){\n        // do some stuff ...\n        callback(null, \'one\');\n    },\n    function(callback){\n        // do some more stuff ...\n        callback(null, \'two\');\n    }\n],\n// optional callback\nfunction(err, results){\n    // results is now equal to [\'one\', \'two\']\n});\n\n\n// an example using an object instead of an array\nasync.series({\n    one: function(callback){\n        setTimeout(function(){\n            callback(null, 1);\n        }, 200);\n    },\n    two: function(callback){\n        setTimeout(function(){\n            callback(null, 2);\n        }, 100);\n    }\n},\nfunction(err, results) {\n    // results is now equal to: {one: 1, two: 2}\n});\n```\n\n---------------------------------------\n\n<a name="parallel" />\n### parallel(tasks, [callback])\n\nRun an array of functions in parallel, without waiting until the previous\nfunction has completed. If any of the functions pass an error to its\ncallback, the main callback is immediately called with the value of the error.\nOnce the tasks have completed, the results are passed to the final callback as an\narray.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function and the results will be passed to the final callback as an object\ninstead of an array. This can be a more readable way of handling results from\nasync.parallel.\n\n\n__Arguments__\n\n* tasks - An array or object containing functions to run, each function is passed \n  a callback(err, result) it must call on completion with an error (which can\n  be null) and an optional result value.\n* callback(err, results) - An optional callback to run once all the functions\n  have completed. This function gets a results array (or object) containing all \n  the result arguments passed to the task callbacks.\n\n__Example__\n\n```js\nasync.parallel([\n    function(callback){\n        setTimeout(function(){\n            callback(null, \'one\');\n        }, 200);\n    },\n    function(callback){\n        setTimeout(function(){\n            callback(null, \'two\');\n        }, 100);\n    }\n],\n// optional callback\nfunction(err, results){\n    // the results array will equal [\'one\',\'two\'] even though\n    // the second function had a shorter timeout.\n});\n\n\n// an example using an object instead of an array\nasync.parallel({\n    one: function(callback){\n        setTimeout(function(){\n            callback(null, 1);\n        }, 200);\n    },\n    two: function(callback){\n        setTimeout(function(){\n            callback(null, 2);\n        }, 100);\n    }\n},\nfunction(err, results) {\n    // results is now equals to: {one: 1, two: 2}\n});\n```\n\n---------------------------------------\n\n<a name="parallel" />\n### parallelLimit(tasks, limit, [callback])\n\nThe same as parallel only the tasks are executed in parallel with a maximum of "limit" \ntasks executing at any time.\n\nNote that the tasks are not executed in batches, so there is no guarantee that \nthe first "limit" tasks will complete before any others are started.\n\n__Arguments__\n\n* tasks - An array or object containing functions to run, each function is passed \n  a callback(err, result) it must call on completion with an error (which can\n  be null) and an optional result value.\n* limit - The maximum number of tasks to run at any time.\n* callback(err, results) - An optional callback to run once all the functions\n  have completed. This function gets a results array (or object) containing all \n  the result arguments passed to the task callbacks.\n\n---------------------------------------\n\n<a name="whilst" />\n### whilst(test, fn, callback)\n\nRepeatedly call fn, while test returns true. Calls the callback when stopped,\nor an error occurs.\n\n__Arguments__\n\n* test() - synchronous truth test to perform before each execution of fn.\n* fn(callback) - A function to call each time the test passes. The function is\n  passed a callback(err) which must be called once it has completed with an \n  optional error argument.\n* callback(err) - A callback which is called after the test fails and repeated\n  execution of fn has stopped.\n\n__Example__\n\n```js\nvar count = 0;\n\nasync.whilst(\n    function () { return count < 5; },\n    function (callback) {\n        count++;\n        setTimeout(callback, 1000);\n    },\n    function (err) {\n        // 5 seconds have passed\n    }\n);\n```\n\n---------------------------------------\n\n<a name="doWhilst" />\n### doWhilst(fn, test, callback)\n\nThe post check version of whilst. To reflect the difference in the order of operations `test` and `fn` arguments are switched. `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.\n\n---------------------------------------\n\n<a name="until" />\n### until(test, fn, callback)\n\nRepeatedly call fn, until test returns true. Calls the callback when stopped,\nor an error occurs.\n\nThe inverse of async.whilst.\n\n---------------------------------------\n\n<a name="doUntil" />\n### doUntil(fn, test, callback)\n\nLike doWhilst except the test is inverted. Note the argument ordering differs from `until`.\n\n---------------------------------------\n\n<a name="forever" />\n### forever(fn, callback)\n\nCalls the asynchronous function \'fn\' repeatedly, in series, indefinitely.\nIf an error is passed to fn\'s callback then \'callback\' is called with the\nerror, otherwise it will never be called.\n\n---------------------------------------\n\n<a name="waterfall" />\n### waterfall(tasks, [callback])\n\nRuns an array of functions in series, each passing their results to the next in\nthe array. However, if any of the functions pass an error to the callback, the\nnext function is not executed and the main callback is immediately called with\nthe error.\n\n__Arguments__\n\n* tasks - An array of functions to run, each function is passed a \n  callback(err, result1, result2, ...) it must call on completion. The first\n  argument is an error (which can be null) and any further arguments will be \n  passed as arguments in order to the next task.\n* callback(err, [results]) - An optional callback to run once all the functions\n  have completed. This will be passed the results of the last task\'s callback.\n\n\n\n__Example__\n\n```js\nasync.waterfall([\n    function(callback){\n        callback(null, \'one\', \'two\');\n    },\n    function(arg1, arg2, callback){\n        callback(null, \'three\');\n    },\n    function(arg1, callback){\n        // arg1 now equals \'three\'\n        callback(null, \'done\');\n    }\n], function (err, result) {\n   // result now equals \'done\'    \n});\n```\n\n---------------------------------------\n<a name="compose" />\n### compose(fn1, fn2...)\n\nCreates a function which is a composition of the passed asynchronous\nfunctions. Each function consumes the return value of the function that\nfollows. Composing functions f(), g() and h() would produce the result of\nf(g(h())), only this version uses callbacks to obtain the return values.\n\nEach function is executed with the `this` binding of the composed function.\n\n__Arguments__\n\n* functions... - the asynchronous functions to compose\n\n\n__Example__\n\n```js\nfunction add1(n, callback) {\n    setTimeout(function () {\n        callback(null, n + 1);\n    }, 10);\n}\n\nfunction mul3(n, callback) {\n    setTimeout(function () {\n        callback(null, n * 3);\n    }, 10);\n}\n\nvar add1mul3 = async.compose(mul3, add1);\n\nadd1mul3(4, function (err, result) {\n   // result now equals 15\n});\n```\n\n---------------------------------------\n<a name="applyEach" />\n### applyEach(fns, args..., callback)\n\nApplies the provided arguments to each function in the array, calling the\ncallback after all functions have completed. If you only provide the first\nargument then it will return a function which lets you pass in the\narguments as if it were a single function call.\n\n__Arguments__\n\n* fns - the asynchronous functions to all call with the same arguments\n* args... - any number of separate arguments to pass to the function\n* callback - the final argument should be the callback, called when all\n  functions have completed processing\n\n\n__Example__\n\n```js\nasync.applyEach([enableSearch, updateSchema], \'bucket\', callback);\n\n// partial application example:\nasync.each(\n    buckets,\n    async.applyEach([enableSearch, updateSchema]),\n    callback\n);\n```\n\n---------------------------------------\n\n<a name="applyEachSeries" />\n### applyEachSeries(arr, iterator, callback)\n\nThe same as applyEach only the functions are applied in series.\n\n---------------------------------------\n\n<a name="queue" />\n### queue(worker, concurrency)\n\nCreates a queue object with the specified concurrency. Tasks added to the\nqueue will be processed in parallel (up to the concurrency limit). If all\nworkers are in progress, the task is queued until one is available. Once\na worker has completed a task, the task\'s callback is called.\n\n__Arguments__\n\n* worker(task, callback) - An asynchronous function for processing a queued\n  task, which must call its callback(err) argument when finished, with an \n  optional error as an argument.\n* concurrency - An integer for determining how many worker functions should be\n  run in parallel.\n\n__Queue objects__\n\nThe queue object returned by this function has the following properties and\nmethods:\n\n* length() - a function returning the number of items waiting to be processed.\n* concurrency - an integer for determining how many worker functions should be\n  run in parallel. This property can be changed after a queue is created to\n  alter the concurrency on-the-fly.\n* push(task, [callback]) - add a new task to the queue, the callback is called\n  once the worker has finished processing the task.\n  instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list.\n* unshift(task, [callback]) - add a new task to the front of the queue.\n* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued\n* empty - a callback that is called when the last item from the queue is given to a worker\n* drain - a callback that is called when the last item from the queue has returned from the worker\n\n__Example__\n\n```js\n// create a queue object with concurrency 2\n\nvar q = async.queue(function (task, callback) {\n    console.log(\'hello \' + task.name);\n    callback();\n}, 2);\n\n\n// assign a callback\nq.drain = function() {\n    console.log(\'all items have been processed\');\n}\n\n// add some items to the queue\n\nq.push({name: \'foo\'}, function (err) {\n    console.log(\'finished processing foo\');\n});\nq.push({name: \'bar\'}, function (err) {\n    console.log(\'finished processing bar\');\n});\n\n// add some items to the queue (batch-wise)\n\nq.push([{name: \'baz\'},{name: \'bay\'},{name: \'bax\'}], function (err) {\n    console.log(\'finished processing bar\');\n});\n\n// add some items to the front of the queue\n\nq.unshift({name: \'bar\'}, function (err) {\n    console.log(\'finished processing bar\');\n});\n```\n\n---------------------------------------\n\n<a name="cargo" />\n### cargo(worker, [payload])\n\nCreates a cargo object with the specified payload. Tasks added to the\ncargo will be processed altogether (up to the payload limit). If the\nworker is in progress, the task is queued until it is available. Once\nthe worker has completed some tasks, each callback of those tasks is called.\n\n__Arguments__\n\n* worker(tasks, callback) - An asynchronous function for processing an array of\n  queued tasks, which must call its callback(err) argument when finished, with \n  an optional error as an argument.\n* payload - An optional integer for determining how many tasks should be\n  processed per round; if omitted, the default is unlimited.\n\n__Cargo objects__\n\nThe cargo object returned by this function has the following properties and\nmethods:\n\n* length() - a function returning the number of items waiting to be processed.\n* payload - an integer for determining how many tasks should be\n  process per round. This property can be changed after a cargo is created to\n  alter the payload on-the-fly.\n* push(task, [callback]) - add a new task to the queue, the callback is called\n  once the worker has finished processing the task.\n  instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list.\n* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued\n* empty - a callback that is called when the last item from the queue is given to a worker\n* drain - a callback that is called when the last item from the queue has returned from the worker\n\n__Example__\n\n```js\n// create a cargo object with payload 2\n\nvar cargo = async.cargo(function (tasks, callback) {\n    for(var i=0; i<tasks.length; i++){\n      console.log(\'hello \' + tasks[i].name);\n    }\n    callback();\n}, 2);\n\n\n// add some items\n\ncargo.push({name: \'foo\'}, function (err) {\n    console.log(\'finished processing foo\');\n});\ncargo.push({name: \'bar\'}, function (err) {\n    console.log(\'finished processing bar\');\n});\ncargo.push({name: \'baz\'}, function (err) {\n    console.log(\'finished processing baz\');\n});\n```\n\n---------------------------------------\n\n<a name="auto" />\n### auto(tasks, [callback])\n\nDetermines the best order for running functions based on their requirements.\nEach function can optionally depend on other functions being completed first,\nand each function is run as soon as its requirements are satisfied. If any of\nthe functions pass an error to their callback, that function will not complete\n(so any other functions depending on it will not run) and the main callback\nwill be called immediately with the error. Functions also receive an object\ncontaining the results of functions which have completed so far.\n\nNote, all functions are called with a results object as a second argument, \nso it is unsafe to pass functions in the tasks object which cannot handle the\nextra argument. For example, this snippet of code:\n\n```js\nasync.auto({\n  readData: async.apply(fs.readFile, \'data.txt\', \'utf-8\');\n}, callback);\n```\n\nwill have the effect of calling readFile with the results object as the last\nargument, which will fail:\n\n```js\nfs.readFile(\'data.txt\', \'utf-8\', cb, {});\n```\n\nInstead, wrap the call to readFile in a function which does not forward the \nresults object:\n\n```js\nasync.auto({\n  readData: function(cb, results){\n    fs.readFile(\'data.txt\', \'utf-8\', cb);\n  }\n}, callback);\n```\n\n__Arguments__\n\n* tasks - An object literal containing named functions or an array of\n  requirements, with the function itself the last item in the array. The key\n  used for each function or array is used when specifying requirements. The \n  function receives two arguments: (1) a callback(err, result) which must be \n  called when finished, passing an error (which can be null) and the result of \n  the function\'s execution, and (2) a results object, containing the results of\n  the previously executed functions.\n* callback(err, results) - An optional callback which is called when all the\n  tasks have been completed. The callback will receive an error as an argument\n  if any tasks pass an error to their callback. Results will always be passed\n\tbut if an error occurred, no other tasks will be performed, and the results\n\tobject will only contain partial results.\n  \n\n__Example__\n\n```js\nasync.auto({\n    get_data: function(callback){\n        // async code to get some data\n    },\n    make_folder: function(callback){\n        // async code to create a directory to store a file in\n        // this is run at the same time as getting the data\n    },\n    write_file: [\'get_data\', \'make_folder\', function(callback){\n        // once there is some data and the directory exists,\n        // write the data to a file in the directory\n        callback(null, filename);\n    }],\n    email_link: [\'write_file\', function(callback, results){\n        // once the file is written let\'s email a link to it...\n        // results.write_file contains the filename returned by write_file.\n    }]\n});\n```\n\nThis is a fairly trivial example, but to do this using the basic parallel and\nseries functions would look like this:\n\n```js\nasync.parallel([\n    function(callback){\n        // async code to get some data\n    },\n    function(callback){\n        // async code to create a directory to store a file in\n        // this is run at the same time as getting the data\n    }\n],\nfunction(err, results){\n    async.series([\n        function(callback){\n            // once there is some data and the directory exists,\n            // write the data to a file in the directory\n        },\n        function(callback){\n            // once the file is written let\'s email a link to it...\n        }\n    ]);\n});\n```\n\nFor a complicated series of async tasks using the auto function makes adding\nnew tasks much easier and makes the code more readable.\n\n\n---------------------------------------\n\n<a name="iterator" />\n### iterator(tasks)\n\nCreates an iterator function which calls the next function in the array,\nreturning a continuation to call the next one after that. It\'s also possible to\n\'peek\' the next iterator by doing iterator.next().\n\nThis function is used internally by the async module but can be useful when\nyou want to manually control the flow of functions in series.\n\n__Arguments__\n\n* tasks - An array of functions to run.\n\n__Example__\n\n```js\nvar iterator = async.iterator([\n    function(){ sys.p(\'one\'); },\n    function(){ sys.p(\'two\'); },\n    function(){ sys.p(\'three\'); }\n]);\n\nnode> var iterator2 = iterator();\n\'one\'\nnode> var iterator3 = iterator2();\n\'two\'\nnode> iterator3();\n\'three\'\nnode> var nextfn = iterator2.next();\nnode> nextfn();\n\'three\'\n```\n\n---------------------------------------\n\n<a name="apply" />\n### apply(function, arguments..)\n\nCreates a continuation function with some arguments already applied, a useful\nshorthand when combined with other control flow functions. Any arguments\npassed to the returned function are added to the arguments originally passed\nto apply.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to automatically apply when the\n  continuation is called.\n\n__Example__\n\n```js\n// using apply\n\nasync.parallel([\n    async.apply(fs.writeFile, \'testfile1\', \'test1\'),\n    async.apply(fs.writeFile, \'testfile2\', \'test2\'),\n]);\n\n\n// the same process without using apply\n\nasync.parallel([\n    function(callback){\n        fs.writeFile(\'testfile1\', \'test1\', callback);\n    },\n    function(callback){\n        fs.writeFile(\'testfile2\', \'test2\', callback);\n    }\n]);\n```\n\nIt\'s possible to pass any number of additional arguments when calling the\ncontinuation:\n\n```js\nnode> var fn = async.apply(sys.puts, \'one\');\nnode> fn(\'two\', \'three\');\none\ntwo\nthree\n```\n\n---------------------------------------\n\n<a name="nextTick" />\n### nextTick(callback)\n\nCalls the callback on a later loop around the event loop. In node.js this just\ncalls process.nextTick, in the browser it falls back to setImmediate(callback)\nif available, otherwise setTimeout(callback, 0), which means other higher priority\nevents may precede the execution of the callback.\n\nThis is used internally for browser-compatibility purposes.\n\n__Arguments__\n\n* callback - The function to call on a later loop around the event loop.\n\n__Example__\n\n```js\nvar call_order = [];\nasync.nextTick(function(){\n    call_order.push(\'two\');\n    // call_order now equals [\'one\',\'two\']\n});\ncall_order.push(\'one\')\n```\n\n<a name="times" />\n### times(n, callback)\n\nCalls the callback n times and accumulates results in the same manner\nyou would use with async.map.\n\n__Arguments__\n\n* n - The number of times to run the function.\n* callback - The function to call n times.\n\n__Example__\n\n```js\n// Pretend this is some complicated async factory\nvar createUser = function(id, callback) {\n  callback(null, {\n    id: \'user\' + id\n  })\n}\n// generate 5 users\nasync.times(5, function(n, next){\n    createUser(n, function(err, user) {\n      next(err, user)\n    })\n}, function(err, users) {\n  // we should now have 5 users\n});\n```\n\n<a name="timesSeries" />\n### timesSeries(n, callback)\n\nThe same as times only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. The results array will be in the same order as the original.\n\n\n## Utils\n\n<a name="memoize" />\n### memoize(fn, [hasher])\n\nCaches the results of an async function. When creating a hash to store function\nresults against, the callback is omitted from the hash and an optional hash\nfunction can be used.\n\nThe cache of results is exposed as the `memo` property of the function returned\nby `memoize`.\n\n__Arguments__\n\n* fn - the function you to proxy and cache results from.\n* hasher - an optional function for generating a custom hash for storing\n  results, it has all the arguments applied to it apart from the callback, and\n  must be synchronous.\n\n__Example__\n\n```js\nvar slow_fn = function (name, callback) {\n    // do something\n    callback(null, result);\n};\nvar fn = async.memoize(slow_fn);\n\n// fn can now be used as if it were slow_fn\nfn(\'some name\', function () {\n    // callback\n});\n```\n\n<a name="unmemoize" />\n### unmemoize(fn)\n\nUndoes a memoized function, reverting it to the original, unmemoized\nform. Comes handy in tests.\n\n__Arguments__\n\n* fn - the memoized function\n\n<a name="log" />\n### log(function, arguments)\n\nLogs the result of an async function to the console. Only works in node.js or\nin browsers that support console.log and console.error (such as FF and Chrome).\nIf multiple arguments are returned from the async function, console.log is\ncalled on each argument in order.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to apply to the function.\n\n__Example__\n\n```js\nvar hello = function(name, callback){\n    setTimeout(function(){\n        callback(null, \'hello \' + name);\n    }, 1000);\n};\n```\n```js\nnode> async.log(hello, \'world\');\n\'hello world\'\n```\n\n---------------------------------------\n\n<a name="dir" />\n### dir(function, arguments)\n\nLogs the result of an async function to the console using console.dir to\ndisplay the properties of the resulting object. Only works in node.js or\nin browsers that support console.dir and console.error (such as FF and Chrome).\nIf multiple arguments are returned from the async function, console.dir is\ncalled on each argument in order.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to apply to the function.\n\n__Example__\n\n```js\nvar hello = function(name, callback){\n    setTimeout(function(){\n        callback(null, {hello: name});\n    }, 1000);\n};\n```\n```js\nnode> async.dir(hello, \'world\');\n{hello: \'world\'}\n```\n\n---------------------------------------\n\n<a name="noConflict" />\n### noConflict()\n\nChanges the value of async back to its original value, returning a reference to the\nasync object.\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     _id: 'as...@0.2.9',
1265 silly resolved     _from: 'async@~0.2.6' },
1265 silly resolved   { name: 'win-spawn',
1265 silly resolved     version: '1.1.2',
1265 silly resolved     description: 'Spawn for node.js but in a way that works regardless of which OS you\'re using',
1265 silly resolved     main: 'index.js',
1265 silly resolved     repository:
1265 silly resolved      { type: 'git',
1265 silly resolved        url: 'https://github.com/ForbesLindesay/win-spawn.git' },
1265 silly resolved     bin:
1265 silly resolved      { 'win-spawn': './bin/win-spawn',
1265 silly resolved        'win-fork': './bin/win-spawn',
1265 silly resolved        'win-line-endings': './bin/win-line-endings' },
1265 silly resolved     devDependencies: { 'win-spawn': '*' },
1265 silly resolved     scripts: { prepublish: 'win-line-endings' },
1265 silly resolved     author: { name: 'ForbesLindesay' },
1265 silly resolved     license: 'BSD',
1265 silly resolved     readme: '# win-spawn\n\n  Spawn for node.js but in a way that works regardless of which OS you\'re using.  Use this if you want to use spawn with a JavaScript file.  It works by explicitly invoking node on windows.  It also shims support for environment variable setting by attempting to parse the command with a regex.  Since all modification is wrapped in `if (os === \'Windows_NT\')` it can be safely used on non-windows systems and will not break anything.\n\n## Installation\n\n  $ npm install win-spawn\n\n## Usage\n\n### Command Line\n\n  All the following will work exactly as if the \'win-spawn \' prefix was ommitted when on unix.\n\n    $ win-spawn foo\n    $ win-spawn ./bin/foo\n    $ win-spawn NODE_PATH=./lib foo\n    $ win-spawn NODE_PATH=./lib foo arg1 arg2\n\n  You can also transform all the line endings in a directory from `\\r\\n` to `\\n` just by running:\n\n    $ win-line-endings\n\n  You can preview the changes by running:\n\n    $ win-line-endings -p\n\n  It will ignore `node_modules` and `.git` by default, but is not clever enough to recognise binary files yet.\n\n### API\n\nThis will just pass through to `child_process.spawn` on unix systems, but will correctly parse the arguments on windows.\n\n```javascript\nspawn(\'foo\', [], {stdio: \'inherit\'});\nspawn(\'./bin/foo\', [], {stdio: \'inherit\'});\nspawn(\'NODE_PATH=./lib foo\', [], {stdio: \'inherit\'});\nspawn(\'NODE_PATH=./lib foo\', [arg1, arg2], {stdio: \'inherit\'});\n```\n\n![viewcount](https://viewcount.jepso.com/count/ForbesLindesay/win-spawn.png)\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     bugs: { url: 'https://github.com/ForbesLindesay/win-spawn/issues' },
1265 silly resolved     _id: 'win-...@1.1.2',
1265 silly resolved     _from: 'win-spawn@~1.1.1' },
1265 silly resolved   { name: 'adm-zip',
1265 silly resolved     version: '0.4.3',
1265 silly resolved     description: 'A Javascript implementation of zip for nodejs. Allows user to create or extract zip files both in memory or to/from disk',
1265 silly resolved     keywords: [ 'zip', 'methods', 'archive', 'unzip' ],
1265 silly resolved     homepage: 'http://github.com/cthackers/adm-zip',
1265 silly resolved     author:
1265 silly resolved      { name: 'Nasca Iacob',
1265 silly resolved        email: 's...@another-d-mention.ro',
1265 silly resolved        url: 'https://github.com/cthackers' },
1265 silly resolved     bugs:
1265 silly resolved      { url: 'https://github.com/cthackers/adm-zip/issues',
1265 silly resolved        email: 's...@another-d-mention.ro' },
1265 silly resolved     licenses: [ [Object] ],
1265 silly resolved     main: 'adm-zip.js',
1265 silly resolved     repository: { type: 'git', url: 'https://github.com/cthackers/adm-zip.git' },
1265 silly resolved     engines: { node: '>=0.3.0' },
1265 silly resolved     readme: '# ADM-ZIP for NodeJS\r\n\r\nADM-ZIP is a pure JavaScript implementation for zip data compression for [NodeJS](http://nodejs.org/). \r\n\r\n# Installation\r\n\r\nWith [npm](http://npmjs.org) do:\r\n\r\n    $ npm install adm-zip\r\n\t\r\n## What is it good for?\r\nThe library allows you to:\r\n\r\n* decompress zip files directly to disk or in memory buffers\r\n* compress files and store them to disk in .zip format or in compressed buffers\r\n* update content of/add new/delete files from an existing .zip\r\n\r\n# Dependencies\r\nThere are no other nodeJS libraries that ADM-ZIP is dependent of\r\n\r\n# Examples\r\n\r\n## Basic usage\r\n```javascript\r\n\r\n\tvar AdmZip = require(\'adm-zip\');\r\n\r\n\t// reading archives\r\n\tvar zip = new AdmZip("./my_file.zip");\r\n\tvar zipEntries = zip.getEntries(); // an array of ZipEntry records\r\n\r\n\tzipEntries.forEach(function(zipEntry) {\r\n\t    console.log(zipEntry.toString()); // outputs zip entries information\r\n\t\tif (zipEntry.entryName == "my_file.txt") {\r\n\t\t     console.log(zipEntry.data.toString(\'utf8\')); \r\n\t\t}\r\n\t});\r\n\t// outputs the content of some_folder/my_file.txt\r\n\tconsole.log(zip.readAsText("some_folder/my_file.txt")); \r\n\t// extracts the specified file to the specified location\r\n\tzip.extractEntryTo(/*entry name*/"some_folder/my_file.txt", /*target path*/"/home/me/tempfolder", /*overwrite*/true)\r\n\t// extracts everything\r\n\tzip.extractAllTo(/*target path*/"/home/me/zipcontent/", /*overwrite*/true);\r\n\t\r\n\t\r\n\t// creating archives\r\n\tvar zip = new AdmZip();\r\n\t\r\n\t// add file directly\r\n\tzip.addFile("test.txt", new Buffer("inner content of the file"), "entry comment goes here");\r\n\t// add local file\r\n\tzip.addLocalFile("/home/me/some_picture.png");\r\n\t// get everything as a buffer\r\n\tvar willSendthis = zip.toBuffer();\r\n\t// or write everything to disk\r\n\tzip.writeZip(/*target file name*/"/home/me/files.zip");\r\n\t\r\n\t\r\n\t// ... more examples in the wiki\r\n```\r\n\r\nFor more detailed information please check out the [wiki](https://github.com/cthackers/adm-zip/wiki).\n\n[![build status](https://secure.travis-ci.org/cthackers/adm-zip.png)](http://travis-ci.org/cthackers/adm-zip)',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     _id: 'adm...@0.4.3',
1265 silly resolved     _from: 'adm-zip@~0.4.3' },
1265 silly resolved   { author:
1265 silly resolved      { name: 'Einar Otto Stangvik',
1265 silly resolved        email: 'ein...@gmail.com',
1265 silly resolved        url: 'http://2x.io' },
1265 silly resolved     name: 'ws',
1265 silly resolved     description: 'simple to use, blazing fast and thoroughly tested websocket client, server and console for node.js, up-to-date against RFC-6455',
1265 silly resolved     version: '0.4.25',
1265 silly resolved     repository: { type: 'git', url: 'git://github.com/einaros/ws.git' },
1265 silly resolved     bin: { wscat: './bin/wscat' },
1265 silly resolved     scripts:
1265 silly resolved      { test: 'make test',
1265 silly resolved        install: '(node-gyp rebuild 2> builderror.log) || (exit 0)' },
1265 silly resolved     engines: { node: '>=0.4.0' },
1265 silly resolved     dependencies: { commander: '~0.6.1', tinycolor: '0.x', options: 'latest' },
1265 silly resolved     devDependencies:
1265 silly resolved      { mocha: '~1.2.1',
1265 silly resolved        should: '0.6.x',
1265 silly resolved        'expect.js': '0.1.x',
1265 silly resolved        benchmark: '0.3.x',
1265 silly resolved        ansi: 'latest' },
1265 silly resolved     browser: { './index.js': './lib/browser.js' },
1265 silly resolved     readme: '[![Build Status](https://secure.travis-ci.org/einaros/ws.png)](http://travis-ci.org/einaros/ws)\n\n# ws: a node.js websocket library #\n\n`ws` is a simple to use websocket implementation, up-to-date against RFC-6455, and [probably the fastest WebSocket library for node.js](http://hobbycoding.posterous.com/the-fastest-websocket-module-for-nodejs).\n\nPasses the quite extensive Autobahn test suite. See http://einaros.github.com/ws for the full reports.\n\nComes with a command line utility, `wscat`, which can either act as a server (--listen), or client (--connect); Use it to debug simple websocket services.\n\n## Protocol support ##\n\n* **Hixie draft 76** (Old and deprecated, but still in use by Safari and Opera. Added to ws version 0.4.2, but server only. Can be disabled by setting the `disableHixie` option to true.)\n* **HyBi drafts 07-12** (Use the option `protocolVersion: 8`, or argument `-p 8` for wscat)\n* **HyBi drafts 13-17** (Current default, alternatively option `protocolVersion: 13`, or argument `-p 13` for wscat)\n\n_See the echo.websocket.org example below for how to use the `protocolVersion` option._\n\n## Usage ##\n\n### Installing ###\n\n`npm install ws`\n\n### Sending and receiving text data ###\n\n```js\nvar WebSocket = require(\'ws\');\nvar ws = new WebSocket(\'ws://www.host.com/path\');\nws.on(\'open\', function() {\n    ws.send(\'something\');\n});\nws.on(\'message\', function(data, flags) {\n    // flags.binary will be set if a binary data is received\n    // flags.masked will be set if the data was masked\n});\n```\n\n### Sending binary data ###\n\n```js\nvar WebSocket = require(\'ws\');\nvar ws = new WebSocket(\'ws://www.host.com/path\');\nws.on(\'open\', function() {\n    var array = new Float32Array(5);\n    for (var i = 0; i < array.length; ++i) array[i] = i / 2;\n    ws.send(array, {binary: true, mask: true});\n});\n```\n\nSetting `mask`, as done for the send options above, will cause the data to be masked according to the websocket protocol. The same option applies for text data.\n\n### Server example ###\n\n```js\nvar WebSocketServer = require(\'ws\').Server\n  , wss = new WebSocketServer({port: 8080});\nwss.on(\'connection\', function(ws) {\n    ws.on(\'message\', function(message) {\n        console.log(\'received: %s\', message);\n    });\n    ws.send(\'something\');\n});\n```\n\n### Error handling best practices ###\n\n```js\n// If the WebSocket is closed before the following send is attempted\nws.send(\'something\');\n\n// Errors (both immediate and async write errors) can be detected in an optional callback.\n// The callback is also the only way of being notified that data has actually been sent.\nws.send(\'something\', function(error) {\n    // if error is null, the send has been completed,\n    // otherwise the error object will indicate what failed.\n});\n\n// Immediate errors can also be handled with try/catch-blocks, but **note**\n// that since sends are inherently asynchronous, socket write failures will *not*\n// be captured when this technique is used.\ntry {\n    ws.send(\'something\');\n}\ncatch (e) {\n    // handle error\n}\n```\n\n### echo.websocket.org demo ###\n\n```js\nvar WebSocket = require(\'ws\');\nvar ws = new WebSocket(\'ws://echo.websocket.org/\', {protocolVersion: 8, origin: \'http://websocket.org\'});\nws.on(\'open\', function() {\n    console.log(\'connected\');\n    ws.send(Date.now().toString(), {mask: true});\n});\nws.on(\'close\', function() {\n    console.log(\'disconnected\');\n});\nws.on(\'message\', function(data, flags) {\n    console.log(\'Roundtrip time: \' + (Date.now() - parseInt(data)) + \'ms\', flags);\n    setTimeout(function() {\n        ws.send(Date.now().toString(), {mask: true});\n    }, 500);\n});\n```\n\n### wscat against echo.websocket.org ###\n\n    $ npm install -g ws\n    $ wscat -c ws://echo.websocket.org -p 8\n    connected (press CTRL+C to quit)\n    > hi there\n    < hi there\n    > are you a happy parrot?\n    < are you a happy parrot?\n\n### Other examples ###\n\nFor a full example with a browser client communicating with a ws server, see the examples folder.\n\nNote that the usage together with Express 3.0 is quite different from Express 2.x. The difference is expressed in the two different serverstats-examples.\n\nOtherwise, see the test cases.\n\n### Running the tests ###\n\n`make test`\n\n## API Docs ##\n\nSee the doc/ directory for Node.js-like docs for the ws classes.\n\n## License ##\n\n(The MIT License)\n\nCopyright (c) 2011 Einar Otto Stangvik &lt;ein...@gmail.com&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     bugs: { url: 'https://github.com/einaros/ws/issues' },
1265 silly resolved     _id: 'w...@0.4.25',
1265 silly resolved     _from: 'w...@0.4.25' },
1265 silly resolved   { name: 'underscore',
1265 silly resolved     description: 'JavaScript\'s functional programming helper library.',
1265 silly resolved     homepage: 'http://underscorejs.org',
1265 silly resolved     keywords: [ 'util', 'functional', 'server', 'client', 'browser' ],
1265 silly resolved     author: { name: 'Jeremy Ashkenas', email: 'jer...@documentcloud.org' },
1265 silly resolved     repository:
1265 silly resolved      { type: 'git',
1265 silly resolved        url: 'git://github.com/documentcloud/underscore.git' },
1265 silly resolved     main: 'underscore.js',
1265 silly resolved     version: '1.4.4',
1265 silly resolved     devDependencies: { phantomjs: '0.2.2' },
1265 silly resolved     scripts: { test: 'phantomjs test/vendor/runner.js test/index.html?noglobals=true' },
1265 silly resolved     readme: '                       __\n                      /\\ \\                                                         __\n     __  __    ___    \\_\\ \\     __   _ __   ____    ___    ___   _ __    __       /\\_\\    ____\n    /\\ \\/\\ \\ /\' _ `\\  /\'_  \\  /\'__`\\/\\  __\\/ ,__\\  / ___\\ / __`\\/\\  __\\/\'__`\\     \\/\\ \\  /\',__\\\n    \\ \\ \\_\\ \\/\\ \\/\\ \\/\\ \\ \\ \\/\\  __/\\ \\ \\//\\__, `\\/\\ \\__//\\ \\ \\ \\ \\ \\//\\  __/  __  \\ \\ \\/\\__, `\\\n     \\ \\____/\\ \\_\\ \\_\\ \\___,_\\ \\____\\\\ \\_\\\\/\\____/\\ \\____\\ \\____/\\ \\_\\\\ \\____\\/\\_\\ _\\ \\ \\/\\____/\n      \\/___/  \\/_/\\/_/\\/__,_ /\\/____/ \\/_/ \\/___/  \\/____/\\/___/  \\/_/ \\/____/\\/_//\\ \\_\\ \\/___/\n                                                                                  \\ \\____/\n                                                                                   \\/___/\n\nUnderscore.js is a utility-belt library for JavaScript that provides\nsupport for the usual functional suspects (each, map, reduce, filter...)\nwithout extending any core JavaScript objects.\n\nFor Docs, License, Tests, and pre-packed downloads, see:\nhttp://underscorejs.org\n\nMany thanks to our contributors:\nhttps://github.com/documentcloud/underscore/contributors\n',
1265 silly resolved     readmeFilename: 'README.md',
1265 silly resolved     bugs: { url: 'https://github.com/documentcloud/underscore/issues' },
1265 silly resolved     _id: 'under...@1.4.4',
1265 silly resolved     _from: 'underscore@~1.4.3' },
1265 silly resolved   { name: 'colors',
1265 silly resolved     description: 'get colors in your node.js console like what',
1265 silly resolved     version: '0.6.0-1',
1265 silly resolved     author: { name: 'Marak Squires' },
1265 silly resolved     repository: { type: 'git', url: 'http://github.com/Marak/colors.js.git' },
1265 silly resolved     engines: { node: '>=0.1.90' },
1265 silly resolved     main: 'colors',
1265 silly resolved     readme: '# colors.js - get color and style in your node.js console ( and browser ) like what\n\n<img src="http://i.imgur.com/goJdO.png" border = "0"/>\n\n\n## Installation\n\n    npm install colors\n\n## colors and styles!\n\n- bold\n- italic\n- underline\n- inverse\n- yellow\n- cyan\n- white\n- magenta\n- green\n- red\n- grey\n- blue\n- rainbow\n- zebra\n- random\n\n## Usage\n\n``` js\nvar colors = require(\'./colors\');\n\nconsole.log(\'hello\'.green); // outputs green text\nconsole.log(\'i like cake and pies\'.underline.red) // outputs red underlined text\nconsole.log(\'inverse the color\'.inverse); // inverses the color\nconsole.log(\'OMG Rainbows!\'.rainbow); // rainbow (ignores spaces)\n```\n\n# Creating Custom themes\n\n```js\n\nvar require(\'colors\');\n\ncolors.setTheme({\n  silly: \'rainbow\',\n  input: \'grey\',\n  verbose: \'cyan\',\n  prompt: \'grey\',\n  info: \'green\',\n  data: \'grey\',\n  help: \'cyan\',\n  warn: \'yellow\',\n  debug: \'blue\',\n  error: \'red\'\n});\n\n// outputs red text\nconsole.log("this is an error".error);\n\n// outputs yellow text\nconsole.log("this is a warning".warn);\n```\n\n\n### Contributors \n\nMarak (Marak Squires)\nAlexis Sellier (cloudhead)\nmmalecki (Maciej Małecki)\nnicoreed (Nico Reed)\nmorganrallen (Morgan Allen)\nJustinCampbell (Justin Campbell)\nded (Dustin Diaz)\n\n\n####  , Marak Squires , Justin Campbell, Dustin Diaz (@ded)\n',
1265 silly resolved     readmeFilename: 'ReadMe.md',
1265 silly resolved     bugs: { url: 'https://github.com/Marak/colors.js/issues' },
1265 silly resolved     _id: 'col...@0.6.0-1',
1265 silly resolved     _from: 'colors@~0.6.0-1' },
1265 silly resolved   { name: 'socket.io',
1265 silly resolved     version: '0.9.16',
1265 silly resolved     description: 'Real-time apps made cross-browser & easy with a WebSocket-like API',
1265 silly resolved     homepage: 'http://socket.io',
1265 silly resolved     keywords: [ 'websocket', 'socket', 'realtime', 'socket.io', 'comet', 'ajax' ],
1265 silly resolved     author: { name: 'Guillermo Rauch', email: 'guil...@learnboost.com' },
1265 silly resolved     contributors: [ [Object], [Object], [Object], [Object] ],
1265 silly resolved     repository:
1265 silly resolved      { type: 'git',
1265 silly resolved        url: 'https://github.com/LearnBoost/socket.io.git' },
1265 silly resolved     dependencies:
1265 silly resolved      { 'socket.io-client': '0.9.16',
1265 silly resolved        policyfile: '0.0.4',
1265 silly resolved        base64id: '0.1.0',
1265 silly resolved        redis: '0.7.3' },
1265 silly resolved     devDependencies:
1265 silly resolved      { expresso: '0.9.2',
1265 silly resolved        should: '*',
1265 silly resolved        benchmark: '0.2.2',
1265 silly resolved        microtime: '0.1.3-1',
1265 silly resolved        colors: '0.5.1' },
1265 silly resolved     optionalDependencies: { redis: '0.7.3' },
1265 silly resolved     main: 'index',
1265 silly resolved     engines: { node: '>= 0.4.0' },
1265 silly resolved     scripts: { test: 'make test' },
1265 silly resolved     readme: '# Socket.IO\n\nSocket.IO is a Node.JS project that makes WebSockets and realtime possible in\nall browsers. It also enhances WebSockets by providing built-in multiplexing,\nhorizontal scalability, automatic JSON encoding/decoding, and more.\n\n## How to Install\n\n```bash\nnpm install socket.io\n```\n\n## How to use\n\nFirst, require `socket.io`:\n\n```js\nvar io = require(\'socket.io\');\n```\n\nNext, attach it to a HTTP/HTTPS server. If you\'re using the fantastic `express`\nweb framework:\n\n#### Express 3.x\n\n```js\nvar app = express()\n  , server = require(\'http\').createServer(app)\n  , io = io.listen(server);\n\nserver.listen(80);\n\nio.sockets.on(\'connection\', function (socket) {\n  socket.emit(\'news\', { hello: \'world\' });\n  socket.on(\'my other event\', function (data) {\n    console.log(data);\n  });\n});\n```\n\n#### Express 2.x\n\n```js\nvar app = express.createServer()\n  , io = io.listen(app);\n\napp.listen(80);\n\nio.sockets.on(\'connection\', function (socket) {\n  socket.emit(\'news\', { hello: \'world\' });\n  socket.on(\'my other event\', function (data) {\n    console.log(data);\n  });\n});\n```\n\nFinally, load it from the client side code:\n\n```html\n<script src="/socket.io/socket.io.js"></script>\n<script>\n  var socket = io.connect(\'http://localhost\');\n  socket.on(\'news\', function (data) {\n    console.log(data);\n    socket.emit(\'my other event\', { my: \'data\' });\n  });\n</script>\n```\n\nFor more thorough examples, look at the `examples/` directory.\n\n## Short recipes\n\n### Sending and receiving events.\n\nSocket.IO allows you to emit and receive custom events.\nBesides `connect`, `message` and `disconnect`, you can emit custom events:\n\n```js\n// note, io.listen(<port>) will create a http server for you\nvar io = require(\'socket.io\').listen(80);\n\nio.sockets.on(\'connection\', function (socket) {\n  io.sockets.emit(\'this\', { will: \'be received by everyone\' });\n\n  socket.on(\'private message\', function (from, msg) {\n    console.log(\'I received a private message by \', from, \' saying \', msg);\n  });\n\n  socket.on(\'disconnect\', function () {\n    io.sockets.emit(\'user disconnected\');\n  });\n});\n```\n\n### Storing data associated to a client\n\nSometimes it\'s necessary to store data associated with a client that\'s\nnecessary for the duration of the session.\n\n#### Server side\n\n```js\nvar io = require(\'socket.io\').listen(80);\n\nio.sockets.on(\'connection\', function (socket) {\n  socket.on(\'set nickname\', function (name) {\n    socket.set(\'nickname\', name, function () { socket.emit(\'ready\'); });\n  });\n\n  socket.on(\'msg\', function () {\n    socket.get(\'nickname\', function (err, name) {\n      console.log(\'Chat message by \', name);\n    });\n  });\n});\n```\n\n#### Client side\n\n```html\n<script>\n  var socket = io.connect(\'http://localhost\');\n\n  socket.on(\'connect\', function () {\n    socket.emit(\'set nickname\', prompt(\'What is your nickname?\'));\n    socket.on(\'ready\', function () {\n      console.log(\'Connected !\');\n      socket.emit(\'msg\', prompt(\'What is your message?\'));\n    });\n  });\n</script>\n```\n\n### Restricting yourself to a namespace\n\nIf you have control over all the messages and events emitted for a particular\napplication, using the default `/` namespace works.\n\nIf you want to leverage 3rd-party code, or produce code to share with others,\nsocket.io provides a way of namespacing a `socket`.\n\nThis has the benefit of `multiplexing` a single connection. Instead of\nsocket.io using two `WebSocket` connections, it\'ll use one.\n\nThe following example defines a socket that listens on \'/chat\' and one for\n\'/news\':\n\n#### Server side\n\n```js\nvar io = require(\'socket.io\').listen(80);\n\nvar chat = io\n  .of(\'/chat\')\n  .on(\'connection\', function (socket) {\n    socket.emit(\'a message\', { that: \'only\', \'/chat\': \'will get\' });\n    chat.emit(\'a message\', { everyone: \'in\', \'/chat\': \'will get\' });\n  });\n\nvar news = io\n  .of(\'/news\');\n  .on(\'connection\', function (socket) {\n    socket.emit(\'item\', { news: \'item\' });\n  });\n```\n\n#### Client side:\n\n```html\n<script>\n  var chat = io.connect(\'http://localhost/chat\')\n    , news = io.connect(\'http://localhost/news\');\n\n  chat.on(\'connect\', function () {\n    chat.emit(\'hi!\');\n  });\n\n  news.on(\'news\', function () {\n    news.emit(\'woot\');\n  });\n</script>\n```\n\n### Sending volatile messages.\n\nSometimes certain messages can be dropped. Let\'s say you have an app that\nshows realtime tweets for the keyword `bieber`. \n\nIf a certain client is not ready to receive messages (because of network slowness\nor other issues, or because he\'s connected through long polling and is in the\nmiddle of a request-response cycle), if he doesn\'t receive ALL the tweets related\nto bieber your application won\'t suffer.\n\nIn that case, you might want to send those messages as volatile messages.\n\n#### Server side\n\n```js\nvar io = require(\'socket.io\').listen(80);\n\nio.sockets.on(\'connection\', function (socket) {\n  var tweets = setInterval(function () {\n    getBieberTweet(function (tweet) {\n      socket.volatile.emit(\'bieber tweet\', tweet);\n    });\n  }, 100);\n\n  socket.on(\'disconnect\', function () {\n    clearInterval(tweets);\n  });\n});\n```\n\n#### Client side\n\nIn the client side, messages are received the same way whether they\'re volatile\nor not.\n\n### Getting acknowledgements\n\nSometimes, you might want to get a callback when the client confirmed the message\nreception.\n\nTo do this, simply pass a function as the last parameter of `.send` or `.emit`.\nWhat\'s more, when you use `.emit`, the acknowledgement is done by you, which\nmeans you can also pass data along:\n\n#### Server side\n\n```js\nvar io = require(\'socket.io\').listen(80);\n\nio.sockets.on(\'connection\', function (socket) {\n  socket.on(\'ferret\', function (name, fn) {\n    fn(\'woot\');\n  });\n});\n```\n\n#### Client side\n\n```html\n<script>\n  var socket = io.connect(); // TIP: .connect with no args does auto-discovery\n  socket.on(\'connect\', function () { // TIP: you can avoid listening on `connect` and listen on events directly too!\n    socket.emit(\'ferret\', \'tobi\', function (data) {\n      console.log(data); // data will be \'woot\'\n    });\n  });\n</script>\n```\n\n### Broadcasting messages\n\nTo broadcast, simply add a `broadcast` flag to `emit` and `send` method calls.\nBroadcasting means sending a message to everyone else except for the socket\nthat starts it.\n\n#### Server side\n\n```js\nvar io = require(\'socket.io\').listen(80);\n\nio.sockets.on(\'connection\', function (socket) {\n  socket.broadcast.emit(\'user connected\');\n  socket.broadcast.json.send({ a: \'message\' });\n});\n```\n\n### Rooms\n\nSometimes you want to put certain sockets in the same room, so that it\'s easy\nto broadcast to all of them together.\n\nThink of this as built-in channels for sockets. Sockets `join` and `leave`\nrooms in each socket.\n\n#### Server side\n\n```js\nvar io = require(\'socket.io\').listen(80);\n\nio.sockets.on(\'connection\', function (socket) {\n  socket.join(\'justin bieber fans\');\n  socket.broadcast.to(\'justin bieber fans\').emit(\'new fan\');\n  io.sockets.in(\'rammstein fans\').emit(\'new non-fan\');\n});\n```\n\n### Using it just as a cross-browser WebSocket\n\nIf you just want the WebSocket semantics, you can do that too.\nSimply leverage `send` and listen on the `message` event:\n\n#### Server side\n\n```js\nvar io = require(\'socket.io\').listen(80);\n\nio.sockets.on(\'connection\', function (socket) {\n  socket.on(\'message\', function () { });\n  socket.on(\'disconnect\', function () { });\n});\n```\n\n#### Client side\n\n```html\n<script>\n  var socket = io.connect(\'http://localhost/\');\n  socket.on(\'connect\', function () {\n    socket.send(\'hi\');\n\n    socket.on(\'message\', function (msg) {\n      // my msg\n    });\n  });\n</script>\n```\n\n### Changing configuration\n\nConfiguration in socket.io is TJ-style:\n\n#### Server side\n\n```js\nvar io = require(\'socket.io\').listen(80);\n\nio.configure(function () {\n  io.set(\'transports\', [\'websocket\', \'flashsocket\', \'xhr-polling\']);\n});\n\nio.configure(\'development\', function () {\n  io.set(\'transports\', [\'websocket\', \'xhr-polling\']);\n  io.enable(\'log\');\n});\n```\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2011 Guillermo Rauch &lt;guil...@learnboost.com&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n',
1265 silly resolved     readmeFilename: 'Readme.md',
1265 silly resolved     bugs: { url: 'https://github.com/LearnBoost/socket.io/issues' },
1265 silly resolved     _id: 'sock...@0.9.16',
1265 silly resolved     _from: 'socket.io@~0.9.14' } ]
1266 info install pa...@0.4.9 into /usr/local/lib/node_modules/appium
1267 info install grun...@0.1.9 into /usr/local/lib/node_modules/appium
1268 info install exp...@3.0.6 into /usr/local/lib/node_modules/appium
1269 info install gr...@0.4.1 into /usr/local/lib/node_modules/appium
1270 info install argp...@0.1.15 into /usr/local/lib/node_modules/appium
1271 info install rim...@2.1.4 into /usr/local/lib/node_modules/appium
1272 info install te...@0.5.0 into /usr/local/lib/node_modules/appium
1273 info install uui...@0.7.4 into /usr/local/lib/node_modules/appium
1274 info install win...@0.6.2 into /usr/local/lib/node_modules/appium
1275 info install bplist...@0.0.4 into /usr/local/lib/node_modules/appium
1276 info install buffe...@0.0.6 into /usr/local/lib/node_modules/appium
1277 info install req...@2.12.0 into /usr/local/lib/node_modules/appium
1278 info install bplist-...@0.0.2 into /usr/local/lib/node_modules/appium
1279 info install node...@1.4.0 into /usr/local/lib/node_modules/appium
1280 info install undersco...@2.3.1 into /usr/local/lib/node_modules/appium
1281 info install gl...@3.1.21 into /usr/local/lib/node_modules/appium
1282 info install un...@0.1.7 into /usr/local/lib/node_modules/appium
1283 info install n...@0.4.2 into /usr/local/lib/node_modules/appium
1284 info install sw...@0.13.5 into /usr/local/lib/node_modules/appium
1285 info install mkd...@0.3.5 into /usr/local/lib/node_modules/appium
1286 info install xml...@0.2.7 into /usr/local/lib/node_modules/appium
1287 info install dif...@0.2.4 into /usr/local/lib/node_modules/appium
1288 info install pro...@0.2.9 into /usr/local/lib/node_modules/appium
1289 info install binary-...@0.1.1 into /usr/local/lib/node_modules/appium
1290 info install node-i...@0.1.2 into /usr/local/lib/node_modules/appium
1291 info install na...@0.2.25 into /usr/local/lib/node_modules/appium
1292 info install as...@0.2.9 into /usr/local/lib/node_modules/appium
1293 info install win-...@1.1.2 into /usr/local/lib/node_modules/appium
1294 info install adm...@0.4.3 into /usr/local/lib/node_modules/appium
1295 info install w...@0.4.25 into /usr/local/lib/node_modules/appium
1296 info install under...@1.4.4 into /usr/local/lib/node_modules/appium
1297 info install col...@0.6.0-1 into /usr/local/lib/node_modules/appium
1298 info install sock...@0.9.16 into /usr/local/lib/node_modules/appium
1299 info installOne pa...@0.4.9
1300 info installOne grun...@0.1.9
1301 info installOne exp...@3.0.6
1302 info installOne gr...@0.4.1
1303 info installOne argp...@0.1.15
1304 info installOne rim...@2.1.4
1305 info installOne te...@0.5.0
1306 info installOne uui...@0.7.4
1307 info installOne win...@0.6.2
1308 info installOne bplist...@0.0.4
1309 info installOne buffe...@0.0.6
1310 info installOne req...@2.12.0
1311 info installOne bplist-...@0.0.2
1312 info installOne node...@1.4.0
1313 info installOne undersco...@2.3.1
1314 info installOne gl...@3.1.21
1315 info installOne un...@0.1.7
1316 info installOne n...@0.4.2
1317 info installOne sw...@0.13.5
1318 info installOne mkd...@0.3.5
1319 info installOne xml...@0.2.7
1320 info installOne dif...@0.2.4
1321 info installOne pro...@0.2.9
1322 info installOne binary-...@0.1.1
1323 info installOne node-i...@0.1.2
1324 info installOne na...@0.2.25
1325 info installOne as...@0.2.9
1326 info installOne win-...@1.1.2
1327 info installOne adm...@0.4.3
1328 info installOne w...@0.4.25
1329 info installOne under...@1.4.4
1330 info installOne col...@0.6.0-1
1331 info installOne sock...@0.9.16
1332 verbose from cache /Users/jmiele/.npm/path/0.4.9/package/package.json
1333 info /usr/local/lib/node_modules/appium/node_modules/path unbuild
1334 verbose read json /usr/local/lib/node_modules/appium/node_modules/path/package.json
1335 verbose from cache /Users/jmiele/.npm/grunt-cli/0.1.9/package/package.json
1336 info /usr/local/lib/node_modules/appium/node_modules/grunt-cli unbuild
1337 verbose read json /usr/local/lib/node_modules/appium/node_modules/grunt-cli/package.json
1338 verbose from cache /Users/jmiele/.npm/express/3.0.6/package/package.json
1339 info /usr/local/lib/node_modules/appium/node_modules/express unbuild
1340 verbose read json /usr/local/lib/node_modules/appium/node_modules/express/package.json
1341 verbose from cache /Users/jmiele/.npm/grunt/0.4.1/package/package.json
1342 info /usr/local/lib/node_modules/appium/node_modules/grunt unbuild
1343 verbose read json /usr/local/lib/node_modules/appium/node_modules/grunt/package.json
1344 verbose from cache /Users/jmiele/.npm/argparse/0.1.15/package/package.json
1345 info /usr/local/lib/node_modules/appium/node_modules/argparse unbuild
1346 verbose read json /usr/local/lib/node_modules/appium/node_modules/argparse/package.json
1347 verbose from cache /Users/jmiele/.npm/rimraf/2.1.4/package/package.json
1348 info /usr/local/lib/node_modules/appium/node_modules/rimraf unbuild
1349 verbose read json /usr/local/lib/node_modules/appium/node_modules/rimraf/package.json
1350 verbose from cache /Users/jmiele/.npm/temp/0.5.0/package/package.json
1351 info /usr/local/lib/node_modules/appium/node_modules/temp unbuild
1352 verbose read json /usr/local/lib/node_modules/appium/node_modules/temp/package.json
1353 verbose from cache /Users/jmiele/.npm/uuid-js/0.7.4/package/package.json
1354 info /usr/local/lib/node_modules/appium/node_modules/uuid-js unbuild
1355 verbose read json /usr/local/lib/node_modules/appium/node_modules/uuid-js/package.json
1356 verbose from cache /Users/jmiele/.npm/winston/0.6.2/package/package.json
1357 info /usr/local/lib/node_modules/appium/node_modules/winston unbuild
1358 verbose read json /usr/local/lib/node_modules/appium/node_modules/winston/package.json
1359 verbose from cache /Users/jmiele/.npm/bplist-parser/0.0.4/package/package.json
1360 info /usr/local/lib/node_modules/appium/node_modules/bplist-parser unbuild
1361 verbose read json /usr/local/lib/node_modules/appium/node_modules/bplist-parser/package.json
1362 verbose from cache /Users/jmiele/.npm/bufferpack/0.0.6/package/package.json
1363 info /usr/local/lib/node_modules/appium/node_modules/bufferpack unbuild
1364 verbose read json /usr/local/lib/node_modules/appium/node_modules/bufferpack/package.json
1365 verbose from cache /Users/jmiele/.npm/request/2.12.0/package/package.json
1366 info /usr/local/lib/node_modules/appium/node_modules/request unbuild
1367 verbose read json /usr/local/lib/node_modules/appium/node_modules/request/package.json
1368 verbose from cache /Users/jmiele/.npm/bplist-creator/0.0.2/package/package.json
1369 info /usr/local/lib/node_modules/appium/node_modules/bplist-creator unbuild
1370 verbose read json /usr/local/lib/node_modules/appium/node_modules/bplist-creator/package.json
1371 verbose from cache /Users/jmiele/.npm/node-uuid/1.4.0/package/package.json
1372 info /usr/local/lib/node_modules/appium/node_modules/node-uuid unbuild
1373 verbose read json /usr/local/lib/node_modules/appium/node_modules/node-uuid/package.json
1374 verbose from cache /Users/jmiele/.npm/underscore.string/2.3.1/package/package.json
1375 info /usr/local/lib/node_modules/appium/node_modules/underscore.string unbuild
1376 verbose read json /usr/local/lib/node_modules/appium/node_modules/underscore.string/package.json
1377 verbose from cache /Users/jmiele/.npm/glob/3.1.21/package/package.json
1378 info /usr/local/lib/node_modules/appium/node_modules/glob unbuild
1379 verbose read json /usr/local/lib/node_modules/appium/node_modules/glob/package.json
1380 verbose from cache /Users/jmiele/.npm/unzip/0.1.7/package/package.json
1381 info /usr/local/lib/node_modules/appium/node_modules/unzip unbuild
1382 verbose read json /usr/local/lib/node_modules/appium/node_modules/unzip/package.json
1383 verbose from cache /Users/jmiele/.npm/ncp/0.4.2/package/package.json
1384 info /usr/local/lib/node_modules/appium/node_modules/ncp unbuild
1385 verbose read json /usr/local/lib/node_modules/appium/node_modules/ncp/package.json
1386 verbose from cache /Users/jmiele/.npm/swig/0.13.5/package/package.json
1387 info /usr/local/lib/node_modules/appium/node_modules/swig unbuild
1388 verbose read json /usr/local/lib/node_modules/appium/node_modules/swig/package.json
1389 verbose from cache /Users/jmiele/.npm/mkdirp/0.3.5/package/package.json
1390 info /usr/local/lib/node_modules/appium/node_modules/mkdirp unbuild
1391 verbose read json /usr/local/lib/node_modules/appium/node_modules/mkdirp/package.json
1392 verbose from cache /Users/jmiele/.npm/xml2js/0.2.7/package/package.json
1393 info /usr/local/lib/node_modules/appium/node_modules/xml2js unbuild
1394 verbose read json /usr/local/lib/node_modules/appium/node_modules/xml2js/package.json
1395 verbose from cache /Users/jmiele/.npm/difflib/0.2.4/package/package.json
1396 info /usr/local/lib/node_modules/appium/node_modules/difflib unbuild
1397 verbose read json /usr/local/lib/node_modules/appium/node_modules/difflib/package.json
1398 verbose from cache /Users/jmiele/.npm/prompt/0.2.9/package/package.json
1399 info /usr/local/lib/node_modules/appium/node_modules/prompt unbuild
1400 verbose read json /usr/local/lib/node_modules/appium/node_modules/prompt/package.json
1401 verbose from cache /Users/jmiele/.npm/binary-cookies/0.1.1/package/package.json
1402 info /usr/local/lib/node_modules/appium/node_modules/binary-cookies unbuild
1403 verbose read json /usr/local/lib/node_modules/appium/node_modules/binary-cookies/package.json
1404 verbose from cache /Users/jmiele/.npm/node-idevice/0.1.2/package/package.json
1405 info /usr/local/lib/node_modules/appium/node_modules/node-idevice unbuild
1406 verbose read json /usr/local/lib/node_modules/appium/node_modules/node-idevice/package.json
1407 verbose from cache /Users/jmiele/.npm/namp/0.2.25/package/package.json
1408 info /usr/local/lib/node_modules/appium/node_modules/namp unbuild
1409 verbose read json /usr/local/lib/node_modules/appium/node_modules/namp/package.json
1410 verbose from cache /Users/jmiele/.npm/async/0.2.9/package/package.json
1411 info /usr/local/lib/node_modules/appium/node_modules/async unbuild
1412 verbose read json /usr/local/lib/node_modules/appium/node_modules/async/package.json
1413 verbose from cache /Users/jmiele/.npm/win-spawn/1.1.2/package/package.json
1414 info /usr/local/lib/node_modules/appium/node_modules/win-spawn unbuild
1415 verbose read json /usr/local/lib/node_modules/appium/node_modules/win-spawn/package.json
1416 verbose from cache /Users/jmiele/.npm/adm-zip/0.4.3/package/package.json
1417 info /usr/local/lib/node_modules/appium/node_modules/adm-zip unbuild
1418 verbose read json /usr/local/lib/node_modules/appium/node_modules/adm-zip/package.json
1419 verbose from cache /Users/jmiele/.npm/ws/0.4.25/package/package.json
1420 info /usr/local/lib/node_modules/appium/node_modules/ws unbuild
1421 verbose read json /usr/local/lib/node_modules/appium/node_modules/ws/package.json
1422 verbose from cache /Users/jmiele/.npm/underscore/1.4.4/package/package.json
1423 info /usr/local/lib/node_modules/appium/node_modules/underscore unbuild
1424 verbose read json /usr/local/lib/node_modules/appium/node_modules/underscore/package.json
1425 verbose from cache /Users/jmiele/.npm/colors/0.6.0-1/package/package.json
1426 info /usr/local/lib/node_modules/appium/node_modules/colors unbuild
1427 verbose read json /usr/local/lib/node_modules/appium/node_modules/colors/package.json
1428 verbose from cache /Users/jmiele/.npm/socket.io/0.9.16/package/package.json
1429 info /usr/local/lib/node_modules/appium/node_modules/socket.io unbuild
1430 verbose read json /usr/local/lib/node_modules/appium/node_modules/socket.io/package.json
1431 verbose tar unpack /Users/jmiele/.npm/path/0.4.9/package.tgz
1432 silly lockFile 2581f8a3-modules-appium-node-modules-path /usr/local/lib/node_modules/appium/node_modules/path
1433 verbose lock /usr/local/lib/node_modules/appium/node_modules/path /Users/jmiele/.npm/2581f8a3-modules-appium-node-modules-path.lock
1434 silly lockFile 783d987c-miele-npm-path-0-4-9-package-tgz /Users/jmiele/.npm/path/0.4.9/package.tgz
1435 verbose lock /Users/jmiele/.npm/path/0.4.9/package.tgz /Users/jmiele/.npm/783d987c-miele-npm-path-0-4-9-package-tgz.lock
1436 verbose tar unpack /Users/jmiele/.npm/grunt-cli/0.1.9/package.tgz
1437 silly lockFile 32b3326f-es-appium-node-modules-grunt-cli /usr/local/lib/node_modules/appium/node_modules/grunt-cli
1438 verbose lock /usr/local/lib/node_modules/appium/node_modules/grunt-cli /Users/jmiele/.npm/32b3326f-es-appium-node-modules-grunt-cli.lock
1439 silly lockFile 52808af7--npm-grunt-cli-0-1-9-package-tgz /Users/jmiele/.npm/grunt-cli/0.1.9/package.tgz
1440 verbose lock /Users/jmiele/.npm/grunt-cli/0.1.9/package.tgz /Users/jmiele/.npm/52808af7--npm-grunt-cli-0-1-9-package-tgz.lock
1441 verbose tar unpack /Users/jmiele/.npm/express/3.0.6/package.tgz
1442 silly lockFile 571ac575-ules-appium-node-modules-express /usr/local/lib/node_modules/appium/node_modules/express
1443 verbose lock /usr/local/lib/node_modules/appium/node_modules/express /Users/jmiele/.npm/571ac575-ules-appium-node-modules-express.lock
1444 silly lockFile 71b4fd01-le-npm-express-3-0-6-package-tgz /Users/jmiele/.npm/express/3.0.6/package.tgz
1445 verbose lock /Users/jmiele/.npm/express/3.0.6/package.tgz /Users/jmiele/.npm/71b4fd01-le-npm-express-3-0-6-package-tgz.lock
1446 verbose tar unpack /Users/jmiele/.npm/grunt/0.4.1/package.tgz
1447 silly lockFile a76a5f4a-odules-appium-node-modules-grunt /usr/local/lib/node_modules/appium/node_modules/grunt
1448 verbose lock /usr/local/lib/node_modules/appium/node_modules/grunt /Users/jmiele/.npm/a76a5f4a-odules-appium-node-modules-grunt.lock
1449 silly lockFile b661a4f4-iele-npm-grunt-0-4-1-package-tgz /Users/jmiele/.npm/grunt/0.4.1/package.tgz
1450 verbose lock /Users/jmiele/.npm/grunt/0.4.1/package.tgz /Users/jmiele/.npm/b661a4f4-iele-npm-grunt-0-4-1-package-tgz.lock
1451 verbose tar unpack /Users/jmiele/.npm/argparse/0.1.15/package.tgz
1452 silly lockFile e1fcd5d2-les-appium-node-modules-argparse /usr/local/lib/node_modules/appium/node_modules/argparse
1453 verbose lock /usr/local/lib/node_modules/appium/node_modules/argparse /Users/jmiele/.npm/e1fcd5d2-les-appium-node-modules-argparse.lock
1454 silly lockFile 48f552bc--npm-argparse-0-1-15-package-tgz /Users/jmiele/.npm/argparse/0.1.15/package.tgz
1455 verbose lock /Users/jmiele/.npm/argparse/0.1.15/package.tgz /Users/jmiele/.npm/48f552bc--npm-argparse-0-1-15-package-tgz.lock
1456 verbose tar unpack /Users/jmiele/.npm/rimraf/2.1.4/package.tgz
1457 silly lockFile ac2d9c72-dules-appium-node-modules-rimraf /usr/local/lib/node_modules/appium/node_modules/rimraf
1458 verbose lock /usr/local/lib/node_modules/appium/node_modules/rimraf /Users/jmiele/.npm/ac2d9c72-dules-appium-node-modules-rimraf.lock
1459 silly lockFile 1f949650-ele-npm-rimraf-2-1-4-package-tgz /Users/jmiele/.npm/rimraf/2.1.4/package.tgz
1460 verbose lock /Users/jmiele/.npm/rimraf/2.1.4/package.tgz /Users/jmiele/.npm/1f949650-ele-npm-rimraf-2-1-4-package-tgz.lock
1461 verbose tar unpack /Users/jmiele/.npm/temp/0.5.0/package.tgz
1462 silly lockFile dbe0faff-modules-appium-node-modules-temp /usr/local/lib/node_modules/appium/node_modules/temp
1463 verbose lock /usr/local/lib/node_modules/appium/node_modules/temp /Users/jmiele/.npm/dbe0faff-modules-appium-node-modules-temp.lock
1464 silly lockFile 57dd719c-miele-npm-temp-0-5-0-package-tgz /Users/jmiele/.npm/temp/0.5.0/package.tgz
1465 verbose lock /Users/jmiele/.npm/temp/0.5.0/package.tgz /Users/jmiele/.npm/57dd719c-miele-npm-temp-0-5-0-package-tgz.lock
1466 verbose tar unpack /Users/jmiele/.npm/uuid-js/0.7.4/package.tgz
1467 silly lockFile 9334b9f2-ules-appium-node-modules-uuid-js /usr/local/lib/node_modules/appium/node_modules/uuid-js
1468 verbose lock /usr/local/lib/node_modules/appium/node_modules/uuid-js /Users/jmiele/.npm/9334b9f2-ules-appium-node-modules-uuid-js.lock
1469 silly lockFile 4dd2941f-le-npm-uuid-js-0-7-4-package-tgz /Users/jmiele/.npm/uuid-js/0.7.4/package.tgz
1470 verbose lock /Users/jmiele/.npm/uuid-js/0.7.4/package.tgz /Users/jmiele/.npm/4dd2941f-le-npm-uuid-js-0-7-4-package-tgz.lock
1471 verbose tar unpack /Users/jmiele/.npm/winston/0.6.2/package.tgz
1472 silly lockFile cf0f754f-ules-appium-node-modules-winston /usr/local/lib/node_modules/appium/node_modules/winston
1473 verbose lock /usr/local/lib/node_modules/appium/node_modules/winston /Users/jmiele/.npm/cf0f754f-ules-appium-node-modules-winston.lock
1474 silly lockFile 254d1e34-le-npm-winston-0-6-2-package-tgz /Users/jmiele/.npm/winston/0.6.2/package.tgz
1475 verbose lock /Users/jmiele/.npm/winston/0.6.2/package.tgz /Users/jmiele/.npm/254d1e34-le-npm-winston-0-6-2-package-tgz.lock
1476 verbose tar unpack /Users/jmiele/.npm/bplist-parser/0.0.4/package.tgz
1477 silly lockFile 3173df07-ppium-node-modules-bplist-parser /usr/local/lib/node_modules/appium/node_modules/bplist-parser
1478 verbose lock /usr/local/lib/node_modules/appium/node_modules/bplist-parser /Users/jmiele/.npm/3173df07-ppium-node-modules-bplist-parser.lock
1479 silly lockFile 9c3c99b9--bplist-parser-0-0-4-package-tgz /Users/jmiele/.npm/bplist-parser/0.0.4/package.tgz
1480 verbose lock /Users/jmiele/.npm/bplist-parser/0.0.4/package.tgz /Users/jmiele/.npm/9c3c99b9--bplist-parser-0-0-4-package-tgz.lock
1481 verbose tar unpack /Users/jmiele/.npm/bufferpack/0.0.6/package.tgz
1482 silly lockFile 5be5698a-s-appium-node-modules-bufferpack /usr/local/lib/node_modules/appium/node_modules/bufferpack
1483 verbose lock /usr/local/lib/node_modules/appium/node_modules/bufferpack /Users/jmiele/.npm/5be5698a-s-appium-node-modules-bufferpack.lock
1484 silly lockFile a3b54cb6-npm-bufferpack-0-0-6-package-tgz /Users/jmiele/.npm/bufferpack/0.0.6/package.tgz
1485 verbose lock /Users/jmiele/.npm/bufferpack/0.0.6/package.tgz /Users/jmiele/.npm/a3b54cb6-npm-bufferpack-0-0-6-package-tgz.lock
1486 verbose tar unpack /Users/jmiele/.npm/request/2.12.0/package.tgz
1487 silly lockFile c0d3f803-ules-appium-node-modules-request /usr/local/lib/node_modules/appium/node_modules/request
1488 verbose lock /usr/local/lib/node_modules/appium/node_modules/request /Users/jmiele/.npm/c0d3f803-ules-appium-node-modules-request.lock
1489 silly lockFile fe8e2243-e-npm-request-2-12-0-package-tgz /Users/jmiele/.npm/request/2.12.0/package.tgz
1490 verbose lock /Users/jmiele/.npm/request/2.12.0/package.tgz /Users/jmiele/.npm/fe8e2243-e-npm-request-2-12-0-package-tgz.lock
1491 verbose tar unpack /Users/jmiele/.npm/bplist-creator/0.0.2/package.tgz
1492 silly lockFile 9a15b6a4-pium-node-modules-bplist-creator /usr/local/lib/node_modules/appium/node_modules/bplist-creator
1493 verbose lock /usr/local/lib/node_modules/appium/node_modules/bplist-creator /Users/jmiele/.npm/9a15b6a4-pium-node-modules-bplist-creator.lock
1494 silly lockFile 2b04d112-bplist-creator-0-0-2-package-tgz /Users/jmiele/.npm/bplist-creator/0.0.2/package.tgz
1495 verbose lock /Users/jmiele/.npm/bplist-creator/0.0.2/package.tgz /Users/jmiele/.npm/2b04d112-bplist-creator-0-0-2-package-tgz.lock
1496 verbose tar unpack /Users/jmiele/.npm/node-uuid/1.4.0/package.tgz
1497 silly lockFile 58a5250d-es-appium-node-modules-node-uuid /usr/local/lib/node_modules/appium/node_modules/node-uuid
1498 verbose lock /usr/local/lib/node_modules/appium/node_modules/node-uuid /Users/jmiele/.npm/58a5250d-es-appium-node-modules-node-uuid.lock
1499 silly lockFile 54113fbc--npm-node-uuid-1-4-0-package-tgz /Users/jmiele/.npm/node-uuid/1.4.0/package.tgz
1500 verbose lock /Users/jmiele/.npm/node-uuid/1.4.0/package.tgz /Users/jmiele/.npm/54113fbc--npm-node-uuid-1-4-0-package-tgz.lock
1501 verbose tar unpack /Users/jmiele/.npm/underscore.string/2.3.1/package.tgz
1502 silly lockFile f5ee9155-m-node-modules-underscore-string /usr/local/lib/node_modules/appium/node_modules/underscore.string
1503 verbose lock /usr/local/lib/node_modules/appium/node_modules/underscore.string /Users/jmiele/.npm/f5ee9155-m-node-modules-underscore-string.lock
1504 silly lockFile 5452c92c-erscore-string-2-3-1-package-tgz /Users/jmiele/.npm/underscore.string/2.3.1/package.tgz
1505 verbose lock /Users/jmiele/.npm/underscore.string/2.3.1/package.tgz /Users/jmiele/.npm/5452c92c-erscore-string-2-3-1-package-tgz.lock
1506 verbose tar unpack /Users/jmiele/.npm/glob/3.1.21/package.tgz
1507 silly lockFile 80ea4f44-modules-appium-node-modules-glob /usr/local/lib/node_modules/appium/node_modules/glob
1508 verbose lock /usr/local/lib/node_modules/appium/node_modules/glob /Users/jmiele/.npm/80ea4f44-modules-appium-node-modules-glob.lock
1509 silly lockFile 16445a1e-iele-npm-glob-3-1-21-package-tgz /Users/jmiele/.npm/glob/3.1.21/package.tgz
1510 verbose lock /Users/jmiele/.npm/glob/3.1.21/package.tgz /Users/jmiele/.npm/16445a1e-iele-npm-glob-3-1-21-package-tgz.lock
1511 verbose tar unpack /Users/jmiele/.npm/unzip/0.1.7/package.tgz
1512 silly lockFile 65361ef3-odules-appium-node-modules-unzip /usr/local/lib/node_modules/appium/node_modules/unzip
1513 verbose lock /usr/local/lib/node_modules/appium/node_modules/unzip /Users/jmiele/.npm/65361ef3-odules-appium-node-modules-unzip.lock
1514 silly lockFile 31adc58c-iele-npm-unzip-0-1-7-package-tgz /Users/jmiele/.npm/unzip/0.1.7/package.tgz
1515 verbose lock /Users/jmiele/.npm/unzip/0.1.7/package.tgz /Users/jmiele/.npm/31adc58c-iele-npm-unzip-0-1-7-package-tgz.lock
1516 verbose tar unpack /Users/jmiele/.npm/ncp/0.4.2/package.tgz
1517 silly lockFile ec35bd62--modules-appium-node-modules-ncp /usr/local/lib/node_modules/appium/node_modules/ncp
1518 verbose lock /usr/local/lib/node_modules/appium/node_modules/ncp /Users/jmiele/.npm/ec35bd62--modules-appium-node-modules-ncp.lock
1519 silly lockFile d9908190-jmiele-npm-ncp-0-4-2-package-tgz /Users/jmiele/.npm/ncp/0.4.2/package.tgz
1520 verbose lock /Users/jmiele/.npm/ncp/0.4.2/package.tgz /Users/jmiele/.npm/d9908190-jmiele-npm-ncp-0-4-2-package-tgz.lock
1521 verbose tar unpack /Users/jmiele/.npm/swig/0.13.5/package.tgz
1522 silly lockFile 99a16888-modules-appium-node-modules-swig /usr/local/lib/node_modules/appium/node_modules/swig
1523 verbose lock /usr/local/lib/node_modules/appium/node_modules/swig /Users/jmiele/.npm/99a16888-modules-appium-node-modules-swig.lock
1524 silly lockFile 2764fe3c-iele-npm-swig-0-13-5-package-tgz /Users/jmiele/.npm/swig/0.13.5/package.tgz
1525 verbose lock /Users/jmiele/.npm/swig/0.13.5/package.tgz /Users/jmiele/.npm/2764fe3c-iele-npm-swig-0-13-5-package-tgz.lock
1526 verbose tar unpack /Users/jmiele/.npm/mkdirp/0.3.5/package.tgz
1527 silly lockFile 9b6b94e8-dules-appium-node-modules-mkdirp /usr/local/lib/node_modules/appium/node_modules/mkdirp
1528 verbose lock /usr/local/lib/node_modules/appium/node_modules/mkdirp /Users/jmiele/.npm/9b6b94e8-dules-appium-node-modules-mkdirp.lock
1529 silly lockFile a7fca521-ele-npm-mkdirp-0-3-5-package-tgz /Users/jmiele/.npm/mkdirp/0.3.5/package.tgz
1530 verbose lock /Users/jmiele/.npm/mkdirp/0.3.5/package.tgz /Users/jmiele/.npm/a7fca521-ele-npm-mkdirp-0-3-5-package-tgz.lock
1531 verbose tar unpack /Users/jmiele/.npm/xml2js/0.2.7/package.tgz
1532 silly lockFile 8d25b56b-dules-appium-node-modules-xml2js /usr/local/lib/node_modules/appium/node_modules/xml2js
1533 verbose lock /usr/local/lib/node_modules/appium/node_modules/xml2js /Users/jmiele/.npm/8d25b56b-dules-appium-node-modules-xml2js.lock
1534 silly lockFile 0e64bb4c-ele-npm-xml2js-0-2-7-package-tgz /Users/jmiele/.npm/xml2js/0.2.7/package.tgz
1535 verbose lock /Users/jmiele/.npm/xml2js/0.2.7/package.tgz /Users/jmiele/.npm/0e64bb4c-ele-npm-xml2js-0-2-7-package-tgz.lock
1536 verbose tar unpack /Users/jmiele/.npm/difflib/0.2.4/package.tgz
1537 silly lockFile ee697bd8-ules-appium-node-modules-difflib /usr/local/lib/node_modules/appium/node_modules/difflib
1538 verbose lock /usr/local/lib/node_modules/appium/node_modules/difflib /Users/jmiele/.npm/ee697bd8-ules-appium-node-modules-difflib.lock
1539 silly lockFile 2ad25858-le-npm-difflib-0-2-4-package-tgz /Users/jmiele/.npm/difflib/0.2.4/package.tgz
1540 verbose lock /Users/jmiele/.npm/difflib/0.2.4/package.tgz /Users/jmiele/.npm/2ad25858-le-npm-difflib-0-2-4-package-tgz.lock
1541 verbose tar unpack /Users/jmiele/.npm/prompt/0.2.9/package.tgz
1542 silly lockFile 487b4589-dules-appium-node-modules-prompt /usr/local/lib/node_modules/appium/node_modules/prompt
1543 verbose lock /usr/local/lib/node_modules/appium/node_modules/prompt /Users/jmiele/.npm/487b4589-dules-appium-node-modules-prompt.lock
1544 silly lockFile 4f4c855b-ele-npm-prompt-0-2-9-package-tgz /Users/jmiele/.npm/prompt/0.2.9/package.tgz
1545 verbose lock /Users/jmiele/.npm/prompt/0.2.9/package.tgz /Users/jmiele/.npm/4f4c855b-ele-npm-prompt-0-2-9-package-tgz.lock
1546 verbose tar unpack /Users/jmiele/.npm/binary-cookies/0.1.1/package.tgz
1547 silly lockFile 49c1f15b-pium-node-modules-binary-cookies /usr/local/lib/node_modules/appium/node_modules/binary-cookies
1548 verbose lock /usr/local/lib/node_modules/appium/node_modules/binary-cookies /Users/jmiele/.npm/49c1f15b-pium-node-modules-binary-cookies.lock
1549 silly lockFile 7840c2ab-binary-cookies-0-1-1-package-tgz /Users/jmiele/.npm/binary-cookies/0.1.1/package.tgz
1550 verbose lock /Users/jmiele/.npm/binary-cookies/0.1.1/package.tgz /Users/jmiele/.npm/7840c2ab-binary-cookies-0-1-1-package-tgz.lock
1551 verbose tar unpack /Users/jmiele/.npm/node-idevice/0.1.2/package.tgz
1552 silly lockFile 62890a53-appium-node-modules-node-idevice /usr/local/lib/node_modules/appium/node_modules/node-idevice
1553 verbose lock /usr/local/lib/node_modules/appium/node_modules/node-idevice /Users/jmiele/.npm/62890a53-appium-node-modules-node-idevice.lock
1554 silly lockFile 9705bd52-m-node-idevice-0-1-2-package-tgz /Users/jmiele/.npm/node-idevice/0.1.2/package.tgz
1555 verbose lock /Users/jmiele/.npm/node-idevice/0.1.2/package.tgz /Users/jmiele/.npm/9705bd52-m-node-idevice-0-1-2-package-tgz.lock
1556 verbose tar unpack /Users/jmiele/.npm/namp/0.2.25/package.tgz
1557 silly lockFile adfd7301-modules-appium-node-modules-namp /usr/local/lib/node_modules/appium/node_modules/namp
1558 verbose lock /usr/local/lib/node_modules/appium/node_modules/namp /Users/jmiele/.npm/adfd7301-modules-appium-node-modules-namp.lock
1559 silly lockFile 4c762aeb-iele-npm-namp-0-2-25-package-tgz /Users/jmiele/.npm/namp/0.2.25/package.tgz
1560 verbose lock /Users/jmiele/.npm/namp/0.2.25/package.tgz /Users/jmiele/.npm/4c762aeb-iele-npm-namp-0-2-25-package-tgz.lock
1561 verbose tar unpack /Users/jmiele/.npm/async/0.2.9/package.tgz
1562 silly lockFile acf09c12-odules-appium-node-modules-async /usr/local/lib/node_modules/appium/node_modules/async
1563 verbose lock /usr/local/lib/node_modules/appium/node_modules/async /Users/jmiele/.npm/acf09c12-odules-appium-node-modules-async.lock
1564 silly lockFile 52729884-iele-npm-async-0-2-9-package-tgz /Users/jmiele/.npm/async/0.2.9/package.tgz
1565 verbose lock /Users/jmiele/.npm/async/0.2.9/package.tgz /Users/jmiele/.npm/52729884-iele-npm-async-0-2-9-package-tgz.lock
1566 verbose tar unpack /Users/jmiele/.npm/win-spawn/1.1.2/package.tgz
1567 silly lockFile 47084483-es-appium-node-modules-win-spawn /usr/local/lib/node_modules/appium/node_modules/win-spawn
1568 verbose lock /usr/local/lib/node_modules/appium/node_modules/win-spawn /Users/jmiele/.npm/47084483-es-appium-node-modules-win-spawn.lock
1569 silly lockFile 25c6dca6--npm-win-spawn-1-1-2-package-tgz /Users/jmiele/.npm/win-spawn/1.1.2/package.tgz
1570 verbose lock /Users/jmiele/.npm/win-spawn/1.1.2/package.tgz /Users/jmiele/.npm/25c6dca6--npm-win-spawn-1-1-2-package-tgz.lock
1571 verbose tar unpack /Users/jmiele/.npm/adm-zip/0.4.3/package.tgz
1572 silly lockFile 372bdc82-ules-appium-node-modules-adm-zip /usr/local/lib/node_modules/appium/node_modules/adm-zip
1573 verbose lock /usr/local/lib/node_modules/appium/node_modules/adm-zip /Users/jmiele/.npm/372bdc82-ules-appium-node-modules-adm-zip.lock
1574 silly lockFile 6c65186a-le-npm-adm-zip-0-4-3-package-tgz /Users/jmiele/.npm/adm-zip/0.4.3/package.tgz
1575 verbose lock /Users/jmiele/.npm/adm-zip/0.4.3/package.tgz /Users/jmiele/.npm/6c65186a-le-npm-adm-zip-0-4-3-package-tgz.lock
1576 verbose tar unpack /Users/jmiele/.npm/ws/0.4.25/package.tgz
1577 silly lockFile a47eeab3-e-modules-appium-node-modules-ws /usr/local/lib/node_modules/appium/node_modules/ws
1578 verbose lock /usr/local/lib/node_modules/appium/node_modules/ws /Users/jmiele/.npm/a47eeab3-e-modules-appium-node-modules-ws.lock
1579 silly lockFile 4cef06ca-jmiele-npm-ws-0-4-25-package-tgz /Users/jmiele/.npm/ws/0.4.25/package.tgz
1580 verbose lock /Users/jmiele/.npm/ws/0.4.25/package.tgz /Users/jmiele/.npm/4cef06ca-jmiele-npm-ws-0-4-25-package-tgz.lock
1581 verbose tar unpack /Users/jmiele/.npm/underscore/1.4.4/package.tgz
1582 silly lockFile 7351970b-s-appium-node-modules-underscore /usr/local/lib/node_modules/appium/node_modules/underscore
1583 verbose lock /usr/local/lib/node_modules/appium/node_modules/underscore /Users/jmiele/.npm/7351970b-s-appium-node-modules-underscore.lock
1584 silly lockFile acf96bf4-npm-underscore-1-4-4-package-tgz /Users/jmiele/.npm/underscore/1.4.4/package.tgz
1585 verbose lock /Users/jmiele/.npm/underscore/1.4.4/package.tgz /Users/jmiele/.npm/acf96bf4-npm-underscore-1-4-4-package-tgz.lock
1586 verbose tar unpack /Users/jmiele/.npm/colors/0.6.0-1/package.tgz
1587 silly lockFile 004ca610-dules-appium-node-modules-colors /usr/local/lib/node_modules/appium/node_modules/colors
1588 verbose lock /usr/local/lib/node_modules/appium/node_modules/colors /Users/jmiele/.npm/004ca610-dules-appium-node-modules-colors.lock
1589 silly lockFile 03614182-e-npm-colors-0-6-0-1-package-tgz /Users/jmiele/.npm/colors/0.6.0-1/package.tgz
1590 verbose lock /Users/jmiele/.npm/colors/0.6.0-1/package.tgz /Users/jmiele/.npm/03614182-e-npm-colors-0-6-0-1-package-tgz.lock
1591 verbose tar unpack /Users/jmiele/.npm/socket.io/0.9.16/package.tgz
1592 silly lockFile 1a22a449-es-appium-node-modules-socket-io /usr/local/lib/node_modules/appium/node_modules/socket.io
1593 verbose lock /usr/local/lib/node_modules/appium/node_modules/socket.io /Users/jmiele/.npm/1a22a449-es-appium-node-modules-socket-io.lock
1594 silly lockFile f99763f7-npm-socket-io-0-9-16-package-tgz /Users/jmiele/.npm/socket.io/0.9.16/package.tgz
1595 verbose lock /Users/jmiele/.npm/socket.io/0.9.16/package.tgz /Users/jmiele/.npm/f99763f7-npm-socket-io-0-9-16-package-tgz.lock
1596 silly gunzTarPerm modes [ '755', '644' ]
1597 silly gunzTarPerm modes [ '755', '644' ]
1598 silly gunzTarPerm modes [ '755', '644' ]
1599 silly gunzTarPerm modes [ '755', '644' ]
1600 silly gunzTarPerm modes [ '755', '644' ]
1601 silly gunzTarPerm modes [ '755', '644' ]
1602 silly gunzTarPerm modes [ '755', '644' ]
1603 silly gunzTarPerm modes [ '755', '644' ]
1604 silly gunzTarPerm modes [ '755', '644' ]
1605 silly gunzTarPerm modes [ '755', '644' ]
1606 silly gunzTarPerm modes [ '755', '644' ]
1607 silly gunzTarPerm modes [ '755', '644' ]
1608 silly gunzTarPerm modes [ '755', '644' ]
1609 silly gunzTarPerm modes [ '755', '644' ]
1610 silly gunzTarPerm modes [ '755', '644' ]
1611 silly gunzTarPerm modes [ '755', '644' ]
1612 silly gunzTarPerm modes [ '755', '644' ]
1613 silly gunzTarPerm modes [ '755', '644' ]
1614 silly gunzTarPerm modes [ '755', '644' ]
1615 silly gunzTarPerm modes [ '755', '644' ]
1616 silly gunzTarPerm modes [ '755', '644' ]
1617 silly gunzTarPerm modes [ '755', '644' ]
1618 silly gunzTarPerm modes [ '755', '644' ]
1619 silly gunzTarPerm modes [ '755', '644' ]
1620 silly gunzTarPerm modes [ '755', '644' ]
1621 silly gunzTarPerm modes [ '755', '644' ]
1622 silly gunzTarPerm modes [ '755', '644' ]
1623 silly gunzTarPerm modes [ '755', '644' ]
1624 silly gunzTarPerm modes [ '755', '644' ]
1625 silly gunzTarPerm modes [ '755', '644' ]
1626 silly gunzTarPerm modes [ '755', '644' ]
1627 silly gunzTarPerm modes [ '755', '644' ]
1628 silly gunzTarPerm modes [ '755', '644' ]
1629 silly gunzTarPerm extractEntry package.json
1630 silly gunzTarPerm extractEntry package.json
1631 silly gunzTarPerm extractEntry package.json
1632 silly gunzTarPerm extractEntry package.json
1633 silly gunzTarPerm extractEntry package.json
1634 silly gunzTarPerm extractEntry package.json
1635 silly gunzTarPerm extractEntry package.json
1636 silly gunzTarPerm extractEntry package.json
1637 silly gunzTarPerm extractEntry package.json
1638 silly gunzTarPerm extractEntry package.json
1639 silly gunzTarPerm extractEntry package.json
1640 silly gunzTarPerm extractEntry package.json
1641 silly gunzTarPerm extractEntry package.json
1642 silly gunzTarPerm extractEntry package.json
1643 silly gunzTarPerm extractEntry package.json
1644 silly gunzTarPerm extractEntry package.json
1645 silly gunzTarPerm extractEntry package.json
1646 silly gunzTarPerm extractEntry package.json
1647 silly gunzTarPerm extractEntry package.json
1648 silly gunzTarPerm extractEntry package.json
1649 silly gunzTarPerm extractEntry package.json
1650 silly gunzTarPerm extractEntry package.json
1651 silly gunzTarPerm extractEntry package.json
1652 silly gunzTarPerm extractEntry package.json
1653 silly gunzTarPerm extractEntry package.json
1654 silly gunzTarPerm extractEntry package.json
1655 silly gunzTarPerm extractEntry package.json
1656 silly gunzTarPerm extractEntry path.js
1657 silly gunzTarPerm extractEntry package.json
1658 silly gunzTarPerm extractEntry package.json
1659 silly gunzTarPerm extractEntry package.json
1660 silly gunzTarPerm extractEntry package.json
1661 silly gunzTarPerm extractEntry package.json
1662 silly gunzTarPerm extractEntry package.json
1663 silly gunzTarPerm extractEntry .npmignore
1664 silly gunzTarPerm extractEntry README.md
1665 silly gunzTarPerm extractEntry .npmignore
1666 silly gunzTarPerm extractEntry LICENSE
1667 silly gunzTarPerm extractEntry README.md
1668 silly gunzTarPerm extractEntry LICENSE
1669 silly gunzTarPerm extractEntry README.md
1670 silly gunzTarPerm extractEntry LICENSE
1671 silly gunzTarPerm extractEntry .npmignore
1672 silly gunzTarPerm extractEntry README.md
1673 silly gunzTarPerm extractEntry README.md
1674 silly gunzTarPerm extractEntry LICENSE.txt
1675 silly gunzTarPerm extractEntry .npmignore
1676 silly gunzTarPerm extractEntry README.md
1677 silly gunzTarPerm extractEntry .npmignore
1678 silly gunzTarPerm extractEntry LICENSE
1679 silly gunzTarPerm extractEntry README.md
1680 silly gunzTarPerm extractEntry LICENSE
1681 silly gunzTarPerm extractEntry .npmignore
1682 silly gunzTarPerm extractEntry README.md
1683 silly gunzTarPerm extractEntry .npmignore
1684 silly gunzTarPerm extractEntry README.md
1685 silly gunzTarPerm extractEntry .npmignore
1686 silly gunzTarPerm extractEntry README.md
1687 silly gunzTarPerm extractEntry .npmignore
1688 silly gunzTarPerm extractEntry README.md
1689 silly gunzTarPerm extractEntry .npmignore
1690 silly gunzTarPerm extractEntry README.md
1691 silly gunzTarPerm extractEntry .npmignore
1692 silly gunzTarPerm extractEntry README.md
1693 silly gunzTarPerm extractEntry .npmignore
1694 silly gunzTarPerm extractEntry LICENSE
1695 silly gunzTarPerm extractEntry .npmignore
1696 silly gunzTarPerm extractEntry README.md
1697 silly gunzTarPerm extractEntry .npmignore
1698 silly gunzTarPerm extractEntry README.md
1699 silly gunzTarPerm extractEntry .npmignore
1700 silly gunzTarPerm extractEntry README.md
1701 silly gunzTarPerm extractEntry .npmignore
1702 silly gunzTarPerm extractEntry README.md
1703 silly gunzTarPerm extractEntry .npmignore
1704 silly gunzTarPerm extractEntry README.md
1705 silly gunzTarPerm extractEntry README.md
1706 silly gunzTarPerm extractEntry LICENSE
1707 silly gunzTarPerm extractEntry component.json
1708 silly gunzTarPerm extractEntry lib/async.js
1709 silly gunzTarPerm extractEntry .npmignore
1710 silly gunzTarPerm extractEntry README.md
1711 silly gunzTarPerm extractEntry .npmignore
1712 silly gunzTarPerm extractEntry README.md
1713 silly gunzTarPerm extractEntry .npmignore
1714 silly gunzTarPerm extractEntry README.md
1715 silly gunzTarPerm extractEntry colors.js
1716 silly gunzTarPerm extractEntry example.js
1717 silly gunzTarPerm extractEntry .npmignore
1718 silly gunzTarPerm extractEntry README.md
1719 silly gunzTarPerm extractEntry .npmignore
1720 silly gunzTarPerm extractEntry README.md
1721 silly gunzTarPerm extractEntry .npmignore
1722 silly gunzTarPerm extractEntry README.md
1723 silly gunzTarPerm extractEntry README.md
1724 silly gunzTarPerm extractEntry adm-zip.js
1725 silly gunzTarPerm extractEntry .npmignore
1726 silly gunzTarPerm extractEntry LICENSE
1727 silly gunzTarPerm extractEntry .travis.yml
1728 silly gunzTarPerm extractEntry Gemfile
1729 silly gunzTarPerm extractEntry rimraf.js
1730 silly gunzTarPerm extractEntry AUTHORS
1731 silly gunzTarPerm extractEntry bplistParser.js
1732 silly gunzTarPerm extractEntry test/parseTest.js
1733 silly gunzTarPerm extractEntry main.js
1734 silly gunzTarPerm extractEntry apps/TestApp.ipa
1735 silly gunzTarPerm extractEntry test.js
1736 silly gunzTarPerm extractEntry MIT-LICENSE.txt
1737 silly gunzTarPerm extractEntry Gruntfile.js
1738 silly gunzTarPerm extractEntry .travis.yml
1739 silly gunzTarPerm extractEntry LICENSE
1740 silly gunzTarPerm extractEntry examples/grepcount.js
1741 silly gunzTarPerm extractEntry Makefile
1742 silly gunzTarPerm extractEntry bufferpack.js
1743 silly gunzTarPerm extractEntry CHANGELOG
1744 silly gunzTarPerm extractEntry aws.js
1745 silly gunzTarPerm extractEntry bplistCreator.js
1746 silly gunzTarPerm extractEntry test/creatorTest.js
1747 silly gunzTarPerm extractEntry uuid.js
1748 silly gunzTarPerm extractEntry LICENSE.md
1749 silly gunzTarPerm extractEntry benchmark/README.md
1750 silly gunzTarPerm extractEntry benchmark/benchmark.js
1751 silly gunzTarPerm extractEntry benchmark/bench.gnu
1752 silly gunzTarPerm extractEntry benchmark/bench.sh
1753 silly gunzTarPerm extractEntry benchmark/benchmark-native.c
1754 silly gunzTarPerm extractEntry test/compare_v1.js
1755 silly gunzTarPerm extractEntry test/test.js
1756 silly gunzTarPerm extractEntry test/test.html
1757 silly gunzTarPerm extractEntry LICENSE
1758 silly gunzTarPerm extractEntry glob.js
1759 silly gunzTarPerm extractEntry .travis.yml
1760 silly gunzTarPerm extractEntry LICENSE.md
1761 silly gunzTarPerm extractEntry LICENSE
1762 silly gunzTarPerm extractEntry .jshintrc
1763 silly gunzTarPerm extractEntry index.js
1764 silly gunzTarPerm extractEntry index.js
1765 silly gunzTarPerm extractEntry .travis.yml
1766 silly gunzTarPerm extractEntry LICENSE
1767 silly gunzTarPerm extractEntry index.js
1768 silly gunzTarPerm extractEntry index.js
1769 silly gunzTarPerm extractEntry bin/win-line-endings
1770 silly gunzTarPerm extractEntry index.js
1771 silly gunzTarPerm extractEntry test/BufferPool.test.js
1772 silly gunzTarPerm extractEntry LICENSE
1773 silly gunzTarPerm extractEntry underscore-min.js
1774 silly gunzTarPerm extractEntry index.js
1775 silly gunzTarPerm extractEntry client.js
1776 silly gunzTarPerm extractEntry index.js
1777 silly gunzTarPerm extractEntry HISTORY.md
1778 silly gunzTarPerm extractEntry LICENSE
1779 silly gunzTarPerm extractEntry unzip.js
1780 silly gunzTarPerm extractEntry LICENSE
1781 silly gunzTarPerm extractEntry index.js
1782 silly gunzTarPerm extractEntry LICENSE
1783 silly gunzTarPerm extractEntry .travis.yml
1784 silly gunzTarPerm extractEntry LICENSE
1785 silly gunzTarPerm extractEntry Gruntfile.js
1786 silly gunzTarPerm extractEntry cookies.js
1787 silly gunzTarPerm extractEntry zipEntry.js
1788 silly gunzTarPerm extractEntry Gruntfile.js
1789 silly gunzTarPerm extractEntry custom-gruntfile.js
1790 silly gunzTarPerm extractEntry index.js
1791 silly gunzTarPerm extractEntry .travis.yml
1792 silly gunzTarPerm extractEntry Gemfile.lock
1793 silly gunzTarPerm extractEntry README.markdown
1794 silly gunzTarPerm extractEntry test/airplay.bplist
1795 silly gunzTarPerm extractEntry docs/building_ipa.md
1796 silly gunzTarPerm extractEntry AUTHORS
1797 silly gunzTarPerm extractEntry LICENSE-MIT
1798 silly gunzTarPerm extractEntry examples/pdfcreator.js
1799 silly gunzTarPerm extractEntry lib/temp.js
1800 silly gunzTarPerm extractEntry test/test-async.js
1801 silly gunzTarPerm extractEntry test/test-sync.js
1802 silly gunzTarPerm extractEntry CHANGELOG~
1803 silly gunzTarPerm extractEntry test/airplay.bplist
1804 silly gunzTarPerm extractEntry .travis.yml
1805 silly gunzTarPerm extractEntry bin/ncp
1806 silly gunzTarPerm extractEntry lib/ncp.js
1807 silly gunzTarPerm extractEntry .travis.yml
1808 silly gunzTarPerm extractEntry docs/docco.css
1809 silly gunzTarPerm extractEntry docs/prompt.html
1810 silly gunzTarPerm extractEntry examples/add-properties.js
1811 silly gunzTarPerm extractEntry examples/history.js
1812 silly gunzTarPerm extractEntry examples/nested-properties-prompt.js
1813 silly gunzTarPerm extractEntry examples/old-schema.js
1814 silly gunzTarPerm extractEntry examples/existing-properties.js
1815 silly gunzTarPerm extractEntry examples/password.js
1816 silly gunzTarPerm extractEntry examples/prompt-override.js
1817 silly gunzTarPerm extractEntry examples/property-prompt.js
1818 silly gunzTarPerm extractEntry examples/simple-prompt.js
1819 silly gunzTarPerm extractEntry examples/yes-or-no-prompt.js
1820 silly gunzTarPerm extractEntry examples/override-validation.js
1821 silly gunzTarPerm extractEntry lib/prompt.js
1822 silly gunzTarPerm extractEntry CHANGELOG.md
1823 silly gunzTarPerm extractEntry test/helpers.js
1824 silly gunzTarPerm extractEntry test/interactive-prompt-test.js
1825 silly gunzTarPerm extractEntry test/macros.js
1826 silly gunzTarPerm extractEntry test/prompt-test.js
1827 silly gunzTarPerm extractEntry Makefile
1828 silly gunzTarPerm extractEntry dist/difflib-browser.js
1829 silly gunzTarPerm extractEntry examples/pow.js
1830 silly gunzTarPerm extractEntry readme.markdown
1831 silly gunzTarPerm extractEntry Makefile
1832 silly gunzTarPerm extractEntry doc/make.js
1833 silly gunzTarPerm extractEntry bin/win-spawn
1834 silly gunzTarPerm extractEntry test/Sender.hixie.test.js
1835 silly gunzTarPerm extractEntry test/Sender.test.js
1836 silly gunzTarPerm extractEntry test/Validation.test.js
1837 silly gunzTarPerm extractEntry test/Receiver.test.js
1838 silly gunzTarPerm extractEntry test/Receiver.hixie.test.js
1839 silly gunzTarPerm extractEntry test/WebSocketServer.test.js
1840 silly gunzTarPerm extractEntry test/autobahn-server.js
1841 silly gunzTarPerm extractEntry test/autobahn.js
1842 silly gunzTarPerm extractEntry test/hybi-common.js
1843 silly gunzTarPerm extractEntry test/WebSocket.integration.js
1844 silly gunzTarPerm extractEntry test/testserver.js
1845 silly gunzTarPerm extractEntry test/WebSocket.test.js
1846 silly gunzTarPerm extractEntry test/fixtures/certificate.pem
1847 silly gunzTarPerm extractEntry test/fixtures/key.pem
1848 silly gunzTarPerm extractEntry test/fixtures/request.pem
1849 silly gunzTarPerm extractEntry test/fixtures/textfile
1850 silly gunzTarPerm extractEntry bench/parser.benchmark.js
1851 silly gunzTarPerm extractEntry bench/sender.benchmark.js
1852 silly gunzTarPerm extractEntry bench/speed.js
1853 silly gunzTarPerm extractEntry bench/util.js
1854 silly gunzTarPerm extractEntry bin/wscat
1855 silly gunzTarPerm extractEntry .travis.yml
1856 silly gunzTarPerm extractEntry doc/ws.md
1857 silly gunzTarPerm extractEntry examples/fileapi/package.json
1858 silly gunzTarPerm extractEntry examples/fileapi/.npmignore
1859 silly gunzTarPerm extractEntry examples/fileapi/server.js
1860 silly gunzTarPerm extractEntry examples/fileapi/public/app.js
1861 silly gunzTarPerm extractEntry examples/fileapi/public/uploader.js
1862 silly gunzTarPerm extractEntry examples/fileapi/public/index.html
1863 silly gunzTarPerm extractEntry examples/serverstats/package.json
1864 silly gunzTarPerm extractEntry examples/serverstats/server.js
1865 silly gunzTarPerm extractEntry examples/serverstats/public/index.html
1866 silly gunzTarPerm extractEntry examples/serverstats-express_3/package.json
1867 silly gunzTarPerm extractEntry examples/serverstats-express_3/server.js
1868 silly gunzTarPerm extractEntry examples/serverstats-express_3/public/index.html
1869 silly gunzTarPerm extractEntry History.md
1870 silly gunzTarPerm extractEntry lib/BufferPool.js
1871 silly gunzTarPerm extractEntry lib/ErrorCodes.js
1872 silly gunzTarPerm extractEntry lib/Receiver.hixie.js
1873 silly gunzTarPerm extractEntry lib/Receiver.js
1874 silly gunzTarPerm extractEntry lib/BufferUtil.js
1875 silly gunzTarPerm extractEntry lib/Sender.js
1876 silly gunzTarPerm extractEntry lib/Validation.fallback.js
1877 silly gunzTarPerm extractEntry lib/Validation.js
1878 silly gunzTarPerm extractEntry lib/WebSocket.js
1879 silly gunzTarPerm extractEntry lib/WebSocketServer.js
1880 silly gunzTarPerm extractEntry lib/BufferUtil.fallback.js
1881 silly gunzTarPerm extractEntry lib/browser.js
1882 silly gunzTarPerm extractEntry lib/Sender.hixie.js
1883 silly gunzTarPerm extractEntry Makefile
1884 silly gunzTarPerm extractEntry src/bufferutil.cc
1885 silly gunzTarPerm extractEntry src/validation.cc
1886 silly gunzTarPerm extractEntry binding.gyp
1887 silly gunzTarPerm extractEntry index.js
1888 silly gunzTarPerm extractEntry test.js
1889 silly gunzTarPerm extractEntry .travis.yml
1890 silly gunzTarPerm extractEntry .travis.yml
1891 silly gunzTarPerm extractEntry lib/entry.js
1892 silly gunzTarPerm extractEntry .travis.yml
1893 silly gunzTarPerm extractEntry CONTRIBUTING.md
1894 silly gunzTarPerm extractEntry 83.coffee
1895 silly gunzTarPerm extractEntry .travis.yml
1896 silly gunzTarPerm extractEntry docs/transports.md
1897 silly gunzTarPerm extractEntry .package.json.un~
1898 silly gunzTarPerm extractEntry test/fixtures/a.js
1899 silly gunzTarPerm extractEntry test/fixtures/b.js
1900 silly gunzTarPerm extractEntry .Gruntfile.js.un~
1901 silly gunzTarPerm extractEntry lib/uuid.js
1902 silly gunzTarPerm extractEntry test/uuid.js
1903 silly gunzTarPerm extractEntry History.md
1904 silly gunzTarPerm extractEntry Makefile
1905 silly gunzTarPerm extractEntry Readme.md
1906 silly gunzTarPerm extractEntry benchmarks/decode.bench.js
1907 silly gunzTarPerm extractEntry benchmarks/encode.bench.js
1908 silly gunzTarPerm extractEntry benchmarks/runner.js
1909 silly gunzTarPerm extractEntry lib/logger.js
1910 silly gunzTarPerm extractEntry lib/namespace.js
1911 silly gunzTarPerm extractEntry lib/parser.js
1912 silly gunzTarPerm extractEntry lib/socket.io.js
1913 silly gunzTarPerm extractEntry lib/socket.js
1914 silly gunzTarPerm extractEntry lib/manager.js
1915 silly gunzTarPerm extractEntry lib/store.js
1916 silly gunzTarPerm extractEntry lib/transport.js
1917 silly gunzTarPerm extractEntry lib/util.js
1918 silly gunzTarPerm extractEntry lib/static.js
1919 silly gunzTarPerm extractEntry lib/stores/memory.js
1920 silly gunzTarPerm extractEntry lib/stores/redis.js
1921 silly gunzTarPerm extractEntry lib/transports/flashsocket.js
1922 silly gunzTarPerm extractEntry lib/transports/htmlfile.js
1923 silly gunzTarPerm extractEntry lib/transports/http-polling.js
1924 silly gunzTarPerm extractEntry lib/transports/http.js
1925 silly gunzTarPerm extractEntry lib/transports/index.js
1926 silly gunzTarPerm extractEntry lib/transports/jsonp-polling.js
1927 silly gunzTarPerm extractEntry lib/transports/websocket.js
1928 silly gunzTarPerm extractEntry lib/transports/xhr-polling.js
1929 silly gunzTarPerm extractEntry lib/transports/websocket/default.js
1930 silly gunzTarPerm extractEntry lib/transports/websocket/hybi-07-12.js
1931 silly gunzTarPerm extractEntry lib/transports/websocket/hybi-16.js
1932 silly gunzTarPerm extractEntry lib/transports/websocket/index.js
1933 silly gunzTarPerm extractEntry Rakefile
1934 silly gunzTarPerm extractEntry zipFile.js
1935 silly gunzTarPerm extractEntry MIT-LICENSE.txt
1936 silly gunzTarPerm extractEntry test/iTunes-small.bplist
1937 silly gunzTarPerm extractEntry test/sample1.bplist
1938 silly gunzTarPerm extractEntry bin/grunt
1939 silly gunzTarPerm extractEntry completion/bash
1940 silly gunzTarPerm extractEntry test/run.sh
1941 silly gunzTarPerm extractEntry test/setup.sh
1942 silly gunzTarPerm extractEntry test/binaryData.bplist
1943 silly gunzTarPerm extractEntry test/iTunes-small.bplist
1944 silly gunzTarPerm extractEntry test/chmod.js
1945 silly gunzTarPerm extractEntry test/perm.js
1946 silly gunzTarPerm extractEntry node-idevice-0.1.0.tgz
1947 silly gunzTarPerm extractEntry test/brew.js
1948 silly gunzTarPerm extractEntry test/test.js
1949 silly gunzTarPerm extractEntry utils/steps
1950 silly gunzTarPerm extractEntry underscore.js
1951 silly gunzTarPerm extractEntry index.html
1952 silly gunzTarPerm extractEntry Readme.md
1953 silly gunzTarPerm extractEntry Makefile
1954 silly gunzTarPerm extractEntry test/ncp-test.js
1955 silly gunzTarPerm extractEntry test/fixtures/src/a
1956 silly gunzTarPerm extractEntry test/fixtures/src/b
1957 silly gunzTarPerm extractEntry test/fixtures/src/c
1958 silly gunzTarPerm extractEntry test/fixtures/src/d
1959 silly gunzTarPerm extractEntry test/fixtures/src/e
1960 silly gunzTarPerm extractEntry test/fixtures/src/f
1961 silly gunzTarPerm extractEntry test/fixtures/src/sub/a
1962 silly gunzTarPerm extractEntry test/fixtures/src/sub/b
1963 silly gunzTarPerm extractEntry dist/underscore.string.min.js
1964 silly gunzTarPerm extractEntry lib/underscore.string.js
1965 silly gunzTarPerm extractEntry test/fixtures/banner.js
1966 silly gunzTarPerm extractEntry test/fixtures/banner2.js
1967 silly gunzTarPerm extractEntry .README.md.un~
1968 silly gunzTarPerm extractEntry .cookies.js.un~
1969 silly gunzTarPerm extractEntry lib/extract.js
1970 silly gunzTarPerm extractEntry lib/parse.js
1971 silly gunzTarPerm extractEntry HISTORY.md
1972 silly gunzTarPerm extractEntry lib/dateformat.js
1973 silly gunzTarPerm extractEntry lib/filters.js
1974 silly gunzTarPerm extractEntry lib/helpers.js
1975 silly gunzTarPerm extractEntry lib/parser.js
1976 silly gunzTarPerm extractEntry lib/swig.js
1977 silly gunzTarPerm extractEntry lib/tags.js
1978 silly gunzTarPerm extractEntry lib/tags/autoescape.js
1979 silly gunzTarPerm extractEntry lib/tags/extends.js
1980 silly gunzTarPerm extractEntry lib/tags/filter.js
1981 silly gunzTarPerm extractEntry lib/tags/for.js
1982 silly gunzTarPerm extractEntry lib/tags/else.js
1983 silly gunzTarPerm extractEntry lib/tags/import.js
1984 silly gunzTarPerm extractEntry lib/tags/include.js
1985 silly gunzTarPerm extractEntry lib/tags/macro.js
1986 silly gunzTarPerm extractEntry lib/tags/parent.js
1987 silly gunzTarPerm extractEntry lib/tags/raw.js
1988 silly gunzTarPerm extractEntry lib/tags/block.js
1989 silly gunzTarPerm extractEntry lib/tags/set.js
1990 silly gunzTarPerm extractEntry lib/tags/if.js
1991 silly gunzTarPerm extractEntry ReadMe.md
1992 verbose read json /usr/local/lib/node_modules/appium/node_modules/path/package.json
1993 silly gunzTarPerm extractEntry examples/arguments.js
1994 silly gunzTarPerm extractEntry test/temp-test.js
1995 silly gunzTarPerm extractEntry lib/cli.js
1996 silly gunzTarPerm extractEntry lib/completion.js
1997 silly gunzTarPerm extractEntry lib/application.js
1998 silly lockFile 2581f8a3-modules-appium-node-modules-path /usr/local/lib/node_modules/appium/node_modules/path
1999 silly lockFile 2581f8a3-modules-appium-node-modules-path /usr/local/lib/node_modules/appium/node_modules/path
2000 silly gunzTarPerm extractEntry forever.js
2001 silly gunzTarPerm extractEntry main.js
2002 silly gunzTarPerm extractEntry .travis.yml
2003 silly gunzTarPerm extractEntry CONTRIBUTING.md
2004 silly gunzTarPerm extractEntry test/run-qunit.js
2005 silly gunzTarPerm extractEntry test/speed.js
2006 silly gunzTarPerm extractEntry doc/.c9revisions/SYNTAX.md.c9save
2007 silly lockFile 783d987c-miele-npm-path-0-4-9-package-tgz /Users/jmiele/.npm/path/0.4.9/package.tgz
2008 silly lockFile 783d987c-miele-npm-path-0-4-9-package-tgz /Users/jmiele/.npm/path/0.4.9/package.tgz
2009 silly gunzTarPerm extractEntry test/perm_sync.js
2010 silly gunzTarPerm extractEntry test/race.js
2011 silly gunzTarPerm extractEntry test/mkdirp.js
2012 silly gunzTarPerm extractEntry test/return.js
2013 silly gunzTarPerm extractEntry test/return_sync.js
2014 silly gunzTarPerm extractEntry test/root.js
2015 silly gunzTarPerm extractEntry test/sync.js
2016 silly gunzTarPerm extractEntry test/umask.js
2017 silly gunzTarPerm extractEntry test/clobber.js
2018 silly gunzTarPerm extractEntry test/umask_sync.js
2019 silly gunzTarPerm extractEntry test/rel.js
2020 silly gunzTarPerm extractEntry doc/.c9revisions/make.js.c9save
2021 silly gunzTarPerm extractEntry _vimrc_local.vim
2022 silly gunzTarPerm extractEntry test/compressed.js
2023 silly gunzTarPerm extractEntry test/fixtures/banner3.js
2024 silly gunzTarPerm extractEntry test/fixtures/Gruntfile-print-text.js
2025 silly gunzTarPerm extractEntry examples/g.js
2026 silly gunzTarPerm extractEntry examples/usr-local.js
2027 silly gunzTarPerm extractEntry example.html
2028 silly gunzTarPerm extractEntry examples/choice.js
2029 silly gunzTarPerm extractEntry examples/constants.js
2030 info preinstall pa...@0.4.9
2031 silly gunzTarPerm extractEntry lib/info.js
2032 silly gunzTarPerm extractEntry lib/express.js
2033 silly gunzTarPerm extractEntry lib/middleware.js
2034 silly gunzTarPerm extractEntry canon.xml
2035 silly gunzTarPerm extractEntry lib/xml2js.js
2036 verbose from cache /usr/local/lib/node_modules/appium/node_modules/path/package.json
2037 verbose readDependencies using package.json deps
2038 verbose from cache /usr/local/lib/node_modules/appium/node_modules/path/package.json
2039 verbose readDependencies using package.json deps
2040 silly resolved []
2041 verbose about to build /usr/local/lib/node_modules/appium/node_modules/path
2042 info build /usr/local/lib/node_modules/appium/node_modules/path
2043 verbose from cache /usr/local/lib/node_modules/appium/node_modules/path/package.json
2044 verbose linkStuff [ true,
2044 verbose linkStuff   '/usr/local/lib/node_modules',
2044 verbose linkStuff   false,
2044 verbose linkStuff   '/usr/local/lib/node_modules/appium/node_modules' ]
2045 info linkStuff pa...@0.4.9
2046 verbose read json /Users/jmiele/appium-test/package.json
2047 silly gunzTarPerm extractEntry doc/SYNTAX.html
2048 silly gunzTarPerm extractEntry doc/SYNTAX.md
2049 silly gunzTarPerm extractEntry test/fileSizeUnknownFlag.js
2050 silly gunzTarPerm extractEntry test/pipeSingleEntry.js
2051 verbose linkBins pa...@0.4.9
2052 verbose linkMans pa...@0.4.9
2053 verbose rebuildBundles pa...@0.4.9
2054 info install pa...@0.4.9
2055 silly gunzTarPerm extractEntry examples/help.js
2056 silly gunzTarPerm extractEntry examples/nargs.js
2057 silly gunzTarPerm extractEntry test/fixtures/spawn-multibyte.js
2058 silly gunzTarPerm extractEntry test/fixtures/spawn.js
2059 silly gunzTarPerm extractEntry test/fixtures/iso-8859-1.json
2060 silly gunzTarPerm extractEntry test/fixtures/expand/README.md
2061 silly gunzTarPerm extractEntry test/fixtures/expand/css/baz.css
2062 silly gunzTarPerm extractEntry test/fixtures/expand/css/qux.css
2063 silly gunzTarPerm extractEntry test/fixtures/expand/deep/deep.txt
2064 silly gunzTarPerm extractEntry test/fixtures/expand/deep/deeper/deeper.txt
2065 silly gunzTarPerm extractEntry test/fixtures/expand/deep/deeper/deepest/deepest.txt
2066 silly gunzTarPerm extractEntry test/fixtures/expand/js/bar.js
2067 silly gunzTarPerm extractEntry test/fixtures/expand/js/foo.js
2068 silly gunzTarPerm extractEntry test/fixtures/expand-mapping-ext/dir.ectory/file-no-extension
2069 silly gunzTarPerm extractEntry test/fixtures/expand-mapping-ext/dir.ectory/sub.dir.ectory/file.ext.ension
2070 silly gunzTarPerm extractEntry test/fixtures/expand-mapping-ext/file.ext.ension
2071 silly gunzTarPerm extractEntry test/fixtures/files/dist/built-123-a.js
2072 silly gunzTarPerm extractEntry test/fixtures/files/dist/built-123-b.js
2073 silly gunzTarPerm extractEntry test/fixtures/files/dist/built-a.js
2074 silly gunzTarPerm extractEntry test/fixtures/files/dist/built-b.js
2075 silly gunzTarPerm extractEntry test/fixtures/files/dist/built.js
2076 silly gunzTarPerm extractEntry test/fixtures/files/src/file1-123.js
2077 silly gunzTarPerm extractEntry test/fixtures/files/src/file1.js
2078 silly gunzTarPerm extractEntry test/fixtures/files/src/file2-123.js
2079 silly gunzTarPerm extractEntry test/fixtures/files/src/file2.js
2080 silly gunzTarPerm extractEntry test/fixtures/BOM.txt
2081 silly gunzTarPerm extractEntry test/fixtures/iso-8859-1.txt
2082 silly gunzTarPerm extractEntry test/fixtures/iso-8859-1.yaml
2083 silly gunzTarPerm extractEntry test/fixtures/lint.txt
2084 silly gunzTarPerm extractEntry test/fixtures/no_BOM.txt
2085 silly gunzTarPerm extractEntry test/fixtures/octocat.png
2086 silly gunzTarPerm extractEntry test/fixtures/exec.cmd
2087 silly gunzTarPerm extractEntry test/fixtures/exec.sh
2088 silly gunzTarPerm extractEntry test/fixtures/template.txt
2089 silly gunzTarPerm extractEntry test/fixtures/test.json
2090 silly gunzTarPerm extractEntry test/fixtures/utf8.json
2091 silly gunzTarPerm extractEntry test/fixtures/utf8.txt
2092 silly gunzTarPerm extractEntry test/fixtures/utf8.yaml
2093 silly gunzTarPerm extractEntry test/grunt/config_test.js
2094 silly gunzTarPerm extractEntry test/grunt/event_test.js
2095 silly gunzTarPerm extractEntry test/grunt/file_test.js
2096 silly gunzTarPerm extractEntry test/grunt/log_test.js
2097 silly gunzTarPerm extractEntry test/grunt/option_test.js
2098 silly gunzTarPerm extractEntry test/grunt/task_test.js
2099 silly gunzTarPerm extractEntry test/grunt/template_test.js
2100 silly gunzTarPerm extractEntry test/grunt/util_test.js
2101 silly gunzTarPerm extractEntry test/gruntfile/multi-task-files.js
2102 silly gunzTarPerm extractEntry test/util/namespace_test.js
2103 silly gunzTarPerm extractEntry test/util/task_test.js
2104 silly gunzTarPerm extractEntry .travis.yml
2105 silly gunzTarPerm extractEntry AUTHORS
2106 silly gunzTarPerm extractEntry CHANGELOG
2107 silly gunzTarPerm extractEntry docs/README.md
2108 silly gunzTarPerm extractEntry lib/grunt.js
2109 silly gunzTarPerm extractEntry lib/grunt/cli.js
2110 silly gunzTarPerm extractEntry lib/grunt/event.js
2111 silly gunzTarPerm extractEntry lib/grunt/fail.js
2112 silly gunzTarPerm extractEntry lib/grunt/file.js
2113 silly gunzTarPerm extractEntry lib/grunt/config.js
2114 silly gunzTarPerm extractEntry lib/grunt/log.js
2115 silly gunzTarPerm extractEntry lib/grunt/option.js
2116 silly gunzTarPerm extractEntry lib/grunt/task.js
2117 silly gunzTarPerm extractEntry lib/grunt/template.js
2118 silly gunzTarPerm extractEntry lib/grunt/util.js
2119 silly gunzTarPerm extractEntry lib/grunt/help.js
2120 silly gunzTarPerm extractEntry lib/util/exit.js
2121 silly gunzTarPerm extractEntry lib/util/namespace.js
2122 silly gunzTarPerm extractEntry lib/util/task.js
2123 silly gunzTarPerm extractEntry CONTRIBUTING.md
2124 silly gunzTarPerm extractEntry LICENSE-MIT
2125 silly gunzTarPerm extractEntry lib/request.js
2126 silly gunzTarPerm extractEntry lib/response.js
2127 silly gunzTarPerm extractEntry test/sample2.bplist
2128 silly gunzTarPerm extractEntry test/uid.bplist
2129 silly gunzTarPerm extractEntry test/sample1.bplist
2130 silly gunzTarPerm extractEntry test/sample2.bplist
2131 silly gunzTarPerm extractEntry test/00-setup.js
2132 silly gunzTarPerm extractEntry test/bash-comparison.js
2133 info postinstall pa...@0.4.9
2134 verbose read json /usr/local/lib/node_modules/appium/node_modules/win-spawn/package.json
2135 silly gunzTarPerm extractEntry text.coffee
2136 silly gunzTarPerm extractEntry text.xml
2137 silly gunzTarPerm extractEntry test/uncompressed.js
2138 silly gunzTarPerm extractEntry testData/compressed-OSX-Finder/archive.zip
2139 silly gunzTarPerm extractEntry lib/namp.js
2140 silly gunzTarPerm extractEntry test/README
2141 silly gunzTarPerm extractEntry .jshintrc
2142 silly gunzTarPerm extractEntry ..gitignore.un~
2143 silly gunzTarPerm extractEntry headers/entryHeader.js
2144 silly gunzTarPerm extractEntry headers/index.js
2145 silly gunzTarPerm extractEntry lib/utils.js
2146 silly gunzTarPerm extractEntry lib/view.js
2147 silly gunzTarPerm extractEntry examples/parents.js
2148 silly gunzTarPerm extractEntry examples/prefix_chars.js
2149 silly gunzTarPerm extractEntry uuid.js
2150 silly gunzTarPerm extractEntry tunnel.js
2151 silly gunzTarPerm extractEntry lib/difflib.js
2152 silly gunzTarPerm extractEntry src/difflib.coffee
2153 silly gunzTarPerm extractEntry test/fix.js
2154 silly gunzTarPerm extractEntry test/index.js
2155 silly lockFile 47084483-es-appium-node-modules-win-spawn /usr/local/lib/node_modules/appium/node_modules/win-spawn
2156 silly lockFile 47084483-es-appium-node-modules-win-spawn /usr/local/lib/node_modules/appium/node_modules/win-spawn
2157 silly gunzTarPerm extractEntry testData/compressed-OSX-Finder/inflated/dir/fileInsideDir.txt
2158 silly gunzTarPerm extractEntry testData/compressed-OSX-Finder/inflated/file.txt
2159 silly lockFile 25c6dca6--npm-win-spawn-1-1-2-package-tgz /Users/jmiele/.npm/win-spawn/1.1.2/package.tgz
2160 silly lockFile 25c6dca6--npm-win-spawn-1-1-2-package-tgz /Users/jmiele/.npm/win-spawn/1.1.2/package.tgz
2161 verbose read json /usr/local/lib/node_modules/appium/node_modules/bufferpack/package.json
2162 silly gunzTarPerm extractEntry test/utf16.bplist
2163 silly gunzTarPerm extractEntry test/Differ.coffee
2164 silly gunzTarPerm extractEntry test/SequenceMatcher.coffee
2165 silly gunzTarPerm extractEntry CNAME
2166 silly gunzTarPerm extractEntry favicon.ico
2167 info preinstall win-...@1.1.2
2168 silly gunzTarPerm extractEntry test/uid.bplist
2169 silly gunzTarPerm extractEntry test/utf16.bplist
2170 silly gunzTarPerm extractEntry test/browser/index.js
2171 silly gunzTarPerm extractEntry test/browser/test.js
2172 silly gunzTarPerm extractEntry examples/sub_commands.js
2173 silly gunzTarPerm extractEntry examples/sum.js
2174 silly lockFile 5be5698a-s-appium-node-modules-bufferpack /usr/local/lib/node_modules/appium/node_modules/bufferpack
2175 silly lockFile 5be5698a-s-appium-node-modules-bufferpack /usr/local/lib/node_modules/appium/node_modules/bufferpack
2176 verbose from cache /usr/local/lib/node_modules/appium/node_modules/win-spawn/package.json
2177 verbose readDependencies using package.json deps
2178 verbose from cache /usr/local/lib/node_modules/appium/node_modules/win-spawn/package.json
2179 silly lockFile a3b54cb6-npm-bufferpack-0-0-6-package-tgz /Users/jmiele/.npm/bufferpack/0.0.6/package.tgz
2180 silly lockFile a3b54cb6-npm-bufferpack-0-0-6-package-tgz /Users/jmiele/.npm/bufferpack/0.0.6/package.tgz
2181 verbose readDependencies using package.json deps
2182 silly resolved []
2183 verbose about to build /usr/local/lib/node_modules/appium/node_modules/win-spawn
2184 info build /usr/local/lib/node_modules/appium/node_modules/win-spawn
2185 verbose from cache /usr/local/lib/node_modules/appium/node_modules/win-spawn/package.json
2186 verbose linkStuff [ true,
2186 verbose linkStuff   '/usr/local/lib/node_modules',
2186 verbose linkStuff   false,
2186 verbose linkStuff   '/usr/local/lib/node_modules/appium/node_modules' ]
2187 info linkStuff win-...@1.1.2
2188 verbose read json /Users/jmiele/appium-test/package.json
2189 silly gunzTarPerm extractEntry testData/compressed-flags-set/archive.zip
2190 silly gunzTarPerm extractEntry testData/compressed-flags-set/inflated/dir/fileInsideDir.txt
2191 silly gunzTarPerm extractEntry oauth.js
2192 silly gunzTarPerm extractEntry tests/test-https-strict.js
2193 silly gunzTarPerm extractEntry test/strings.js
2194 silly gunzTarPerm extractEntry test/strings_standalone.js
2195 verbose linkBins win-...@1.1.2
2196 verbose link bins [ { 'win-spawn': './bin/win-spawn',
2196 verbose link bins     'win-fork': './bin/win-spawn',
2196 verbose link bins     'win-line-endings': './bin/win-line-endings' },
2196 verbose link bins   '/usr/local/lib/node_modules/appium/node_modules/.bin',
2196 verbose link bins   false ]
2197 verbose linkMans win-...@1.1.2
2198 verbose rebuildBundles win-...@1.1.2
2199 silly gunzTarPerm extractEntry test/global.coffee
2200 silly gunzTarPerm extractEntry util/build.coffee
2201 silly gunzTarPerm extractEntry lib/router/index.js
2202 silly gunzTarPerm extractEntry lib/router/route.js
2203 silly gunzTarPerm extractEntry examples/couchdb.js
2204 silly gunzTarPerm extractEntry examples/exception.js
2205 info preinstall buffe...@0.0.6
2206 silly gunzTarPerm extractEntry examples/testformatters.js
2207 silly gunzTarPerm extractEntry lib/action.js
2208 verbose read json /usr/local/lib/node_modules/appium/node_modules/rimraf/package.json
2209 verbose from cache /usr/local/lib/node_modules/appium/node_modules/bufferpack/package.json
2210 verbose readDependencies using package.json deps
2211 verbose from cache /usr/local/lib/node_modules/appium/node_modules/bufferpack/package.json
2212 verbose read json /usr/local/lib/node_modules/appium/node_modules/colors/package.json
2213 verbose readDependencies using package.json deps
2214 silly resolved []
2215 verbose about to build /usr/local/lib/node_modules/appium/node_modules/bufferpack
2216 info build /usr/local/lib/node_modules/appium/node_modules/bufferpack
2217 verbose from cache /usr/local/lib/node_modules/appium/node_modules/bufferpack/package.json
2218 verbose linkStuff [ true,
2218 verbose linkStuff   '/usr/local/lib/node_modules',
2218 verbose linkStuff   false,
2218 verbose linkStuff   '/usr/local/lib/node_modules/appium/node_modules' ]
2219 info linkStuff buffe...@0.0.6
2220 verbose read json /Users/jmiele/appium-test/package.json
2221 silly gunzTarPerm extractEntry headers/mainHeader.js
2222 silly gunzTarPerm extractEntry methods/deflater.js
2223 info install win-...@1.1.2
2224 silly gunzTarPerm extractEntry test/underscore.js
2225 silly gunzTarPerm extractEntry test/test.html
2226 verbose linkBins buffe...@0.0.6
2227 verbose linkMans buffe...@0.0.6
2228 verbose rebuildBundles buffe...@0.0.6
2229 info postinstall win-...@1.1.2
2230 silly gunzTarPerm extractEntry History.md
2231 silly gunzTarPerm extractEntry bin/express
2232 info install buffe...@0.0.6
2233 info postinstall buffe...@0.0.6
2234 verbose read json /usr/local/lib/node_modules/appium/node_modules/temp/package.json
2235 silly gunzTarPerm extractEntry examples/raw-mode.js
2236 silly gunzTarPerm extractEntry examples/webhook-post.js
2237 silly gunzTarPerm extractEntry lib/action_container.js
2238 silly gunzTarPerm extractEntry lib/argparse.js
2239 silly gunzTarPerm extractEntry tests/test-headers.js
2240 silly gunzTarPerm extractEntry tests/test-httpModule.js
2241 silly lockFile ac2d9c72-dules-appium-node-modules-rimraf /usr/local/lib/node_modules/appium/node_modules/rimraf
2242 silly lockFile ac2d9c72-dules-appium-node-modules-rimraf /usr/local/lib/node_modules/appium/node_modules/rimraf
2243 silly lockFile 1f949650-ele-npm-rimraf-2-1-4-package-tgz /Users/jmiele/.npm/rimraf/2.1.4/package.tgz
2244 silly lockFile 1f949650-ele-npm-rimraf-2-1-4-package-tgz /Users/jmiele/.npm/rimraf/2.1.4/package.tgz
2245 silly lockFile 004ca610-dules-appium-node-modules-colors /usr/local/lib/node_modules/appium/node_modules/colors
2246 silly lockFile 004ca610-dules-appium-node-modules-colors /usr/local/lib/node_modules/appium/node_modules/colors
2247 silly gunzTarPerm extractEntry test/browser/index.html
2248 silly gunzTarPerm extractEntry test/fix
2249 silly gunzTarPerm extractEntry test/cwd-test.js
2250 silly gunzTarPerm extractEntry test/mark.js
2251 silly lockFile 03614182-e-npm-colors-0-6-0-1-package-tgz /Users/jmiele/.npm/colors/0.6.0-1/package.tgz
2252 silly lockFile 03614182-e-npm-colors-0-6-0-1-package-tgz /Users/jmiele/.npm/colors/0.6.0-1/package.tgz
2253 silly gunzTarPerm extractEntry lib/winston.js
2254 silly gunzTarPerm extractEntry lib/winston/common.js
2255 info preinstall rim...@2.1.4
2256 silly gunzTarPerm extractEntry lib/argument_parser.js
2257 silly gunzTarPerm extractEntry lib/const.js
2258 silly lockFile dbe0faff-modules-appium-node-modules-temp /usr/local/lib/node_modules/appium/node_modules/temp
2259 silly lockFile dbe0faff-modules-appium-node-modules-temp /usr/local/lib/node_modules/appium/node_modules/temp
2260 silly gunzTarPerm extractEntry testData/compressed-flags-set/inflated/file.txt
2261 silly gunzTarPerm extractEntry testData/compressed-standard/archive.zip
2262 verbose from cache /usr/local/lib/node_modules/appium/node_modules/rimraf/package.json
2263 info preinstall col...@0.6.0-1
2264 silly gunzTarPerm extractEntry test/nocase-nomagic.js
2265 silly gunzTarPerm extractEntry test/pause-resume.js
2266 verbose readDependencies using package.json deps
2267 verbose from cache /usr/local/lib/node_modules/appium/node_modules/rimraf/package.json
2268 silly lockFile 57dd719c-miele-npm-temp-0-5-0-package-tgz /Users/jmiele/.npm/temp/0.5.0/package.tgz
2269 silly lockFile 57dd719c-miele-npm-temp-0-5-0-package-tgz /Users/jmiele/.npm/temp/0.5.0/package.tgz
2270 verbose read json /usr/local/lib/node_modules/appium/node_modules/uuid-js/package.json
2271 verbose readDependencies using package.json deps
2272 silly gunzTarPerm extractEntry test/new/list_item_text.text
2273 silly gunzTarPerm extractEntry test/new/autolink_lines.html
2274 verbose from cache /usr/local/lib/node_modules/appium/node_modules/colors/package.json
2275 verbose readDependencies using package.json deps
2276 verbose from cache /usr/local/lib/node_modules/appium/node_modules/colors/package.json
2277 verbose cache add [ 'graceful-fs@~1', null ]
2278 verbose cache add name=undefined spec="graceful-fs@~1" args=["graceful-fs@~1",null]
2279 verbose parsed url { protocol: null,
2279 verbose parsed url   slashes: null,
2279 verbose parsed url   auth: null,
2279 verbose parsed url   host: null,
2279 verbose parsed url   port: null,
2279 verbose parsed url   hostname: null,
2279 verbose parsed url   hash: null,
2279 verbose parsed url   search: null,
2279 verbose parsed url   query: null,
2279 verbose parsed url   pathname: 'graceful-fs@~1',
2279 verbose parsed url   path: 'graceful-fs@~1',
2279 verbose parsed url   href: 'graceful-fs@~1' }
2280 verbose cache add name="graceful-fs" spec="~1" args=["graceful-fs","~1"]
2281 verbose parsed url { protocol: null,
2281 verbose parsed url   slashes: null,
2281 verbose parsed url   auth: null,
2281 verbose parsed url   host: null,
2281 verbose parsed url   port: null,
2281 verbose parsed url   hostname: null,
2281 verbose parsed url   hash: null,
2281 verbose parsed url   search: null,
2281 verbose parsed url   query: null,
2281 verbose parsed url   pathname: '~1',
2281 verbose parsed url   path: '~1',
2281 verbose parsed url   href: '~1' }
2282 verbose addNamed [ 'graceful-fs', '~1' ]
2283 verbose addNamed [ null, '>=1.0.0- <2.0.0-' ]
2284 silly lockFile 34532f06-graceful-fs-1 graceful-fs@~1
2285 verbose lock graceful-fs@~1 /Users/jmiele/.npm/34532f06-graceful-fs-1.lock
2286 verbose readDependencies using package.json deps
2287 silly resolved []
2288 verbose about to build /usr/local/lib/node_modules/appium/node_modules/colors
2289 info build /usr/local/lib/node_modules/appium/node_modules/colors
2290 verbose from cache /usr/local/lib/node_modules/appium/node_modules/colors/package.json
2291 verbose linkStuff [ true,
2291 verbose linkStuff   '/usr/local/lib/node_modules',
2291 verbose linkStuff   false,
2291 verbose linkStuff   '/usr/local/lib/node_modules/appium/node_modules' ]
2292 info linkStuff col...@0.6.0-1
2293 verbose read json /Users/jmiele/appium-test/package.json
2294 silly addNameRange { name: 'graceful-fs',
2294 silly addNameRange   range: '>=1.0.0- <2.0.0-',
2294 silly addNameRange   hasData: false }
2295 verbose linkBins col...@0.6.0-1
2296 verbose linkMans col...@0.6.0-1
2297 verbose rebuildBundles col...@0.6.0-1
2298 info preinstall te...@0.5.0
2299 silly gunzTarPerm extractEntry methods/index.js
2300 silly gunzTarPerm extractEntry methods/inflater.js
2301 info install col...@0.6.0-1
2302 silly gunzTarPerm extractEntry lib/namespace.js
2303 silly gunzTarPerm extractEntry lib/action/append.js
2304 verbose from cache /usr/local/lib/node_modules/appium/node_modules/temp/package.json
2305 info postinstall col...@0.6.0-1
2306 verbose readDependencies using package.json deps
2307 verbose from cache /usr/local/lib/node_modules/appium/node_modules/temp/package.json
2308 verbose url raw graceful-fs
2309 verbose url resolving [ 'https://registry.npmjs.org/', './graceful-fs' ]
2310 verbose url resolved https://registry.npmjs.org/graceful-fs
2311 info trying registry request attempt 1 at 10:59:46
2312 verbose etag "4QB314Y3S11CD6RLWHEK13W"
2314 verbose readDependencies using package.json deps
2315 silly resolved []
2316 verbose about to build /usr/local/lib/node_modules/appium/node_modules/temp
2317 info build /usr/local/lib/node_modules/appium/node_modules/temp
2318 verbose from cache /usr/local/lib/node_modules/appium/node_modules/temp/package.json
2319 verbose linkStuff [ true,
2319 verbose linkStuff   '/usr/local/lib/node_modules',
2319 verbose linkStuff   false,
2319 verbose linkStuff   '/usr/local/lib/node_modules/appium/node_modules' ]
2320 info linkStuff te...@0.5.0
2321 verbose read json /Users/jmiele/appium-test/package.json
2322 verbose read json /usr/local/lib/node_modules/appium/node_modules/grunt-cli/package.json
2323 silly gunzTarPerm extractEntry test/root-nomount.js
2324 silly gunzTarPerm extractEntry test/root.js
2325 silly lockFile 9334b9f2-ules-appium-node-modules-uuid-js /usr/local/lib/node_modules/appium/node_modules/uuid-js
2326 silly lockFile 9334b9f2-ules-appium-node-modules-uuid-js /usr/local/lib/node_modules/appium/node_modules/uuid-js
2327 silly gunzTarPerm extractEntry test/test_standalone.html
2328 silly gunzTarPerm extractEntry test/test_underscore/arrays.js
2329 silly gunzTarPerm extractEntry testData/compressed-standard/inflated/dir/fileInsideDir.txt
2330 silly gunzTarPerm extractEntry testData/compressed-standard/inflated/file.txt
2331 verbose linkBins te...@0.5.0
2332 verbose linkMans te...@0.5.0
2333 verbose rebuildBundles te...@0.5.0
2334 info install te...@0.5.0
2335 silly lockFile 4dd2941f-le-npm-uuid-js-0-7-4-package-tgz /Users/jmiele/.npm/uuid-js/0.7.4/package.tgz
2336 silly lockFile 4dd2941f-le-npm-uuid-js-0-7-4-package-tgz /Users/jmiele/.npm/uuid-js/0.7.4/package.tgz
2337 info postinstall te...@0.5.0
2338 silly gunzTarPerm extractEntry test/index.js
2339 silly gunzTarPerm extractEntry test/assets/attributes_test/New folder/hidden.txt
2340 silly gunzTarPerm extractEntry lib/action/count.js
2341 silly gunzTarPerm extractEntry lib/action/help.js
2342 silly gunzTarPerm extractEntry test/zz-cleanup.js
2343 silly gunzTarPerm extractEntry test/bash-results.json
2344 info preinstall uui...@0.7.4
2345 verbose from cache /usr/local/lib/node_modules/appium/node_modules/uuid-js/package.json
2346 silly lockFile 32b3326f-es-appium-node-modules-grunt-cli /usr/local/lib/node_modules/appium/node_modules/grunt-cli
2347 silly lockFile 32b3326f-es-appium-node-modules-grunt-cli /usr/local/lib/node_modules/appium/node_modules/grunt-cli
2348 verbose readDependencies using package.json deps
2349 verbose from cache /usr/local/lib/node_modules/appium/node_modules/uuid-js/package.json
2350 silly gunzTarPerm extractEntry test/functional.js
2351 silly gunzTarPerm extractEntry test/unit.js
2352 verbose readDependencies using package.json deps
2353 silly resolved []
2354 verbose about to build /usr/local/lib/node_modules/appium/node_modules/uuid-js
2355 info build /usr/local/lib/node_modules/appium/node_modules/uuid-js
2356 verbose from cache /usr/local/lib/node_modules/appium/node_modules/uuid-js/package.json
2357 verbose linkStuff [ true,
2357 verbose linkStuff   '/usr/local/lib/node_modules',
2357 verbose linkStuff   false,
2357 verbose linkStuff   '/usr/local/lib/node_modules/appium/node_modules' ]
2358 info linkStuff uui...@0.7.4
2359 verbose read json /Users/jmiele/appium-test/package.json
2360 silly lockFile 52808af7--npm-grunt-cli-0-1-9-package-tgz /Users/jmiele/.npm/grunt-cli/0.1.9/package.tgz
2361 silly lockFile 52808af7--npm-grunt-cli-0-1-9-package-tgz /Users/jmiele/.npm/grunt-cli/0.1.9/package.tgz
2362 silly gunzTarPerm extractEntry testData/uncompressed/archive.zip
2363 silly gunzTarPerm extractEntry testData/uncompressed/inflated/dir/fileInsideDir.txt
2364 verbose linkBins uui...@0.7.4
2365 verbose linkMans uui...@0.7.4
2366 verbose rebuildBundles uui...@0.7.4
2367 info install uui...@0.7.4
2368 silly gunzTarPerm extractEntry lib/action/store.js
2369 silly gunzTarPerm extractEntry lib/action/subparsers.js
2370 info postinstall uui...@0.7.4
2371 info preinstall grun...@0.1.9
2372 verbose from cache /usr/local/lib/node_modules/appium/node_modules/grunt-cli/package.json
2373 silly gunzTarPerm extractEntry test/new/blockquote_list_item.html
2374 silly gunzTarPerm extractEntry test/new/blockquote_list_item.text
2375 verbose readDependencies using package.json deps
2376 verbose from cache /usr/local/lib/node_modules/appium/node_modules/grunt-cli/package.json
2377 verbose readDependencies using package.json deps
2378 verbose cache add [ 'nopt@~1.0.10', null ]
2379 verbose cache add name=undefined spec="nopt@~1.0.10" args=["nopt@~1.0.10",null]
2380 verbose parsed url { protocol: null,
2380 verbose parsed url   slashes: null,
2380 verbose parsed url   auth: null,
2380 verbose parsed url   host: null,
2380 verbose parsed url   port: null,
2380 verbose parsed url   hostname: null,
2380 verbose parsed url   hash: null,
2380 verbose parsed url   search: null,
2380 verbose parsed url   query: null,
2380 verbose parsed url   pathname: 'nopt@~1.0.10',
2380 verbose parsed url   path: 'nopt@~1.0.10',
2380 verbose parsed url   href: 'nopt@~1.0.10' }
2381 verbose cache add name="nopt" spec="~1.0.10" args=["nopt","~1.0.10"]
2382 verbose parsed url { protocol: null,
2382 verbose parsed url   slashes: null,
2382 verbose parsed url   auth: null,
2382 verbose parsed url   host: null,
2382 verbose parsed url   port: null,
2382 verbose parsed url   hostname: null,
2382 verbose parsed url   hash: null,
2382 verbose parsed url   search: null,
2382 verbose parsed url   query: null,
2382 verbose parsed url   pathname: '~1.0.10',
2382 verbose parsed url   path: '~1.0.10',
2382 verbose parsed url   href: '~1.0.10' }
2383 verbose addNamed [ 'nopt', '~1.0.10' ]
2384 verbose addNamed [ null, '>=1.0.10- <1.1.0-' ]
2385 silly lockFile 79f78dba-nopt-1-0-10 nopt@~1.0.10
2386 verbose lock nopt@~1.0.10 /Users/jmiele/.npm/79f78dba-nopt-1-0-10.lock
2387 verbose cache add [ 'findup-sync@~0.1.0', null ]
2388 verbose cache add name=undefined spec="findup-sync@~0.1.0" args=["findup-sync@~0.1.0",null]
2389 verbose parsed url { protocol: null,
2389 verbose parsed url   slashes: null,
2389 verbose parsed url   auth: null,
2389 verbose parsed url   host: null,
2389 verbose parsed url   port: null,
2389 verbose parsed url   hostname: null,
2389 verbose parsed url   hash: null,
2389 verbose parsed url   search: null,
2389 verbose parsed url   query: null,
2389 verbose parsed url   pathname: 'findup-sync@~0.1.0',
2389 verbose parsed url   path: 'findup-sync@~0.1.0',
2389 verbose parsed url   href: 'findup-sync@~0.1.0' }
2390 verbose cache add name="findup-sync" spec="~0.1.0" args=["findup-sync","~0.1.0"]
2391 verbose parsed url { protocol: null,
2391 verbose parsed url   slashes: null,
2391 verbose parsed url   auth: null,
2391 verbose parsed url   host: null,
2391 verbose parsed url   port: null,
2391 verbose parsed url   hostname: null,
2391 verbose parsed url   hash: null,
2391 verbose parsed url   search: null,
2391 verbose parsed url   query: null,
2391 verbose parsed url   pathname: '~0.1.0',
2391 verbose parsed url   path: '~0.1.0',
2391 verbose parsed url   href: '~0.1.0' }
2392 verbose addNamed [ 'findup-sync', '~0.1.0' ]
2393 verbose addNamed [ null, '>=0.1.0- <0.2.0-' ]
2394 silly lockFile 625605b9-findup-sync-0-1-0 findup-sync@~0.1.0
2395 verbose lock findup-sync@~0.1.0 /Users/jmiele/.npm/625605b9-findup-sync-0-1-0.lock
2396 silly gunzTarPerm extractEntry testData/uncompressed/inflated/file.txt
2397 silly addNameRange { name: 'nopt', range: '>=1.0.10- <1.1.0-', hasData: false }
2398 verbose cache add [ 'resolve@~0.3.1', null ]
2399 verbose cache add name=undefined spec="resolve@~0.3.1" args=["resolve@~0.3.1",null]
2400 verbose parsed url { protocol: null,
2400 verbose parsed url   slashes: null,
2400 verbose parsed url   auth: null,
2400 verbose parsed url   host: null,
2400 verbose parsed url   port: null,
2400 verbose parsed url   hostname: null,
2400 verbose parsed url   hash: null,
2400 verbose parsed url   search: null,
2400 verbose parsed url   query: null,
2400 verbose parsed url   pathname: 'resolve@~0.3.1',
2400 verbose parsed url   path: 'resolve@~0.3.1',
2400 verbose parsed url   href: 'resolve@~0.3.1' }
2401 verbose cache add name="resolve" spec="~0.3.1" args=["resolve","~0.3.1"]
2402 verbose parsed url { protocol: null,
2402 verbose parsed url   slashes: null,
2402 verbose parsed url   auth: null,
2402 verbose parsed url   host: null,
2402 verbose parsed url   port: null,
2402 verbose parsed url   hostname: null,
2402 verbose parsed url   hash: null,
2402 verbose parsed url   search: null,
2402 verbose parsed url   query: null,
2402 verbose parsed url   pathname: '~0.3.1',
2402 verbose parsed url   path: '~0.3.1',
2402 verbose parsed url   href: '~0.3.1' }
2403 verbose addNamed [ 'resolve', '~0.3.1' ]
2404 verbose addNamed [ null, '>=0.3.1- <0.4.0-' ]
2405 silly lockFile 7958d065-resolve-0-3-1 resolve@~0.3.1
2406 verbose lock resolve@~0.3.1 /Users/jmiele/.npm/7958d065-resolve-0-3-1.lock
2407 silly addNameRange { name: 'findup-sync',
2407 silly addNameRange   range: '>=0.1.0- <0.2.0-',
2407 silly addNameRange   hasData: false }
2408 silly addNameRange { name: 'resolve', range: '>=0.3.1- <0.4.0-', hasData: false }
2409 silly gunzTarPerm extractEntry lib/action/version.js
2410 silly gunzTarPerm extractEntry lib/action/append/constant.js
2411 silly gunzTarPerm extractEntry lib/winston/config.js
2412 silly gunzTarPerm extractEntry lib/winston/container.js
2413 verbose url raw nopt
2414 verbose url resolving [ 'https://registry.npmjs.org/', './nopt' ]
2415 verbose url resolved https://registry.npmjs.org/nopt
2416 info trying registry request attempt 1 at 10:59:46
2417 verbose etag "EN7BWQ7ESOJ7R0SBIBZDB8EEM"
2419 verbose url raw findup-sync
2420 verbose url resolving [ 'https://registry.npmjs.org/', './findup-sync' ]
2421 verbose url resolved https://registry.npmjs.org/findup-sync
2422 info trying registry request attempt 1 at 10:59:46
2423 verbose etag "BXIX5F9F608QS414YZPBS4ACC"
2425 verbose url raw resolve
2426 verbose url resolving [ 'https://registry.npmjs.org/', './resolve' ]
2427 verbose url resolved https://registry.npmjs.org/resolve
2428 info trying registry request attempt 1 at 10:59:46
2429 verbose etag "AGVXE9065DV8WRHG6W2FFW7CV"
2431 silly gunzTarPerm extractEntry lib/action/store/constant.js
2432 silly gunzTarPerm extractEntry lib/action/store/false.js
2433 silly gunzTarPerm extractEntry test/assets/attributes_test/New folder/hidden_readonly.txt
2434 silly gunzTarPerm extractEntry test/assets/attributes_test/New folder/readonly.txt
2435 silly gunzTarPerm extractEntry lib/winston/exception.js
2436 silly gunzTarPerm extractEntry lib/winston/logger.js
2437 silly gunzTarPerm extractEntry test/new/case_insensitive_refs.html
2438 silly gunzTarPerm extractEntry test/new/case_insensitive_refs.text
2439 verbose read json /usr/local/lib/node_modules/appium/node_modules/ncp/package.json
2440 silly gunzTarPerm extractEntry test/assets/attributes_test/New folder/somefile.txt
2441 silly gunzTarPerm extractEntry test/assets/attributes_test/asd/New Text Document.txt
2442 silly gunzTarPerm extractEntry lib/winston/transports.js
2443 silly gunzTarPerm extractEntry lib/winston/config/cli-config.js
2444 silly gunzTarPerm extractEntry test/test_underscore/chaining.js
2445 silly gunzTarPerm extractEntry test/test_underscore/collections.js
2446 silly lockFile ec35bd62--modules-appium-node-modules-ncp /usr/local/lib/node_modules/appium/node_modules/ncp
2447 silly lockFile ec35bd62--modules-appium-node-modules-ncp /usr/local/lib/node_modules/appium/node_modules/ncp
2448 silly gunzTarPerm extractEntry lib/action/store/true.js
2449 silly gunzTarPerm extractEntry lib/argument/error.js
2450 silly gunzTarPerm extractEntry tests/run.js
2451 silly gunzTarPerm extractEntry tests/test-form.js
2452 verbose read json /usr/local/lib/node_modules/appium/node_modules/bplist-parser/package.json
2453 silly gunzTarPerm extractEntry lib/winston/config/npm-config.js
2454 silly gunzTarPerm extractEntry lib/winston/config/syslog-config.js
2455 silly lockFile d9908190-jmiele-npm-ncp-0-4-2-package-tgz /Users/jmiele/.npm/ncp/0.4.2/package.tgz
2456 silly lockFile d9908190-jmiele-npm-ncp-0-4-2-package-tgz /Users/jmiele/.npm/ncp/0.4.2/package.tgz
2457 verbose read json /usr/local/lib/node_modules/appium/node_modules/node-uuid/package.json
2458 silly gunzTarPerm extractEntry test/assets/attributes_test/blank file.txt
2459 silly gunzTarPerm extractEntry test/assets/attributes_test.zip
2460 silly gunzTarPerm extractEntry test/test_underscore/functions.js
2461 silly gunzTarPerm extractEntry test/test_underscore/objects.js
2462 info preinstall n...@0.4.2
2463 verbose from cache /usr/local/lib/node_modules/appium/node_modules/ncp/package.json
2464 silly gunzTarPerm extractEntry lib/winston/transports/console.js
2465 silly gunzTarPerm extractEntry lib/winston/transports/file.js
2466 silly gunzTarPerm extractEntry tests/test-oauth.js
2467 silly gunzTarPerm extractEntry tests/test-params.js
2468 verbose readDependencies using package.json deps
2469 verbose from cache /usr/local/lib/node_modules/appium/node_modules/ncp/package.json
2470 silly gunzTarPerm extractEntry test/.NotCookies.binarycookies.un~
2471 silly gunzTarPerm extractEntry test/.functional.js.un~
2472 verbose readDependencies using package.json deps
2473 silly resolved []
2474 verbose about to build /usr/local/lib/node_modules/appium/node_modules/ncp
2475 info build /usr/local/lib/node_modules/appium/node_modules/ncp
2476 verbose from cache /usr/local/lib/node_modules/appium/node_modules/ncp/package.json
2477 verbose linkStuff [ true,
2477 verbose linkStuff   '/usr/local/lib/node_modules',
2477 verbose linkStuff   false,
2477 verbose linkStuff   '/usr/local/lib/node_modules/appium/node_modules' ]
2478 info linkStuff n...@0.4.2
2479 verbose read json /Users/jmiele/appium-test/package.json
2480 silly lockFile 3173df07-ppium-node-modules-bplist-parser /usr/local/lib/node_modules/appium/node_modules/bplist-parser
2481 silly lockFile 3173df07-ppium-node-modules-bplist-parser /usr/local/lib/node_modules/appium/node_modules/bplist-parser
2482 silly lockFile 58a5250d-es-appium-node-modules-node-uuid /usr/local/lib/node_modules/appium/node_modules/node-uuid
2483 silly lockFile 58a5250d-es-appium-node-modules-node-uuid /usr/local/lib/node_modules/appium/node_modules/node-uuid
2484 verbose linkBins n...@0.4.2
2485 verbose link bins [ { ncp: './bin/ncp' },
2485 verbose link bins   '/usr/local/lib/node_modules/appium/node_modules/.bin',
2485 verbose link bins   false ]
2486 verbose linkMans n...@0.4.2
2487 verbose rebuildBundles n...@0.4.2
2488 silly lockFile 9c3c99b9--bplist-parser-0-0-4-package-tgz /Users/jmiele/.npm/bplist-parser/0.0.4/package.tgz
2489 silly lockFile 9c3c99b9--bplist-parser-0-0-4-package-tgz /Users/jmiele/.npm/bplist-parser/0.0.4/package.tgz
2490 silly lockFile 54113fbc--npm-node-uuid-1-4-0-package-tgz /Users/jmiele/.npm/node-uuid/1.4.0/package.tgz
2491 silly lockFile 54113fbc--npm-node-uuid-1-4-0-package-tgz /Users/jmiele/.npm/node-uuid/1.4.0/package.tgz
2492 info preinstall bplist...@0.0.4
2493 silly gunzTarPerm extractEntry lib/argument/exclusive.js
2494 silly gunzTarPerm extractEntry lib/argument/group.js
2495 verbose read json /usr/local/lib/node_modules/appium/node_modules/async/package.json
2496 info preinstall node...@1.4.0
2497 info install n...@0.4.2
2498 verbose from cache /usr/local/lib/node_modules/appium/node_modules/bplist-parser/package.json
2499 silly gunzTarPerm extractEntry test/test_underscore/speed.js
2500 silly gunzTarPerm extractEntry test/test_underscore/utility.js
2501 verbose readDependencies using package.json deps
2502 verbose from cache /usr/local/lib/node_modules/appium/node_modules/bplist-parser/package.json
2503 verbose from cache /usr/local/lib/node_modules/appium/node_modules/node-uuid/package.json
2504 verbose read json /usr/local/lib/node_modules/appium/node_modules/mkdirp/package.json
2505 info postinstall n...@0.4.2
2506 verbose readDependencies using package.json deps
2507 silly resolved []
2508 verbose about to build /usr/local/lib/node_modules/appium/node_modules/bplist-parser
2509 info build /usr/local/lib/node_modules/appium/node_modules/bplist-parser
2510 verbose from cache /usr/local/lib/node_modules/appium/node_modules/bplist-parser/package.json
2511 verbose linkStuff [ true,
2511 verbose linkStuff   '/usr/local/lib/node_modules',
2511 verbose linkStuff   false,
2511 verbose linkStuff   '/usr/local/lib/node_modules/appium/node_modules' ]
2512 info linkStuff bplist...@0.0.4
2513 verbose read json /Users/jmiele/appium-test/package.json
2514 verbose readDependencies using package.json deps
2515 verbose from cache /usr/local/lib/node_modules/appium/node_modules/node-uuid/package.json
2516 verbose readDependencies using package.json deps
2517 silly resolved []
2518 verbose about to build /usr/local/lib/node_modules/appium/node_modules/node-uuid
2519 info build /usr/local/lib/node_modules/appium/node_modules/node-uuid
2520 verbose from cache /usr/local/lib/node_modules/appium/node_modules/node-uuid/package.json
2521 verbose linkStuff [ true,
2521 verbose linkStuff   '/usr/local/lib/node_modules',
2521 verbose linkStuff   false,
2521 verbose linkStuff   '/usr/local/lib/node_modules/appium/node_modules' ]
2522 info linkStuff node...@1.4.0
2523 verbose read json /Users/jmiele/appium-test/package.json
2524 verbose linkBins bplist...@0.0.4
2525 verbose linkMans bplist...@0.0.4
2526 verbose rebuildBundles bplist...@0.0.4
2527 info install bplist...@0.0.4
2528 silly gunzTarPerm extractEntry lib/winston/transports/http.js
2529 silly gunzTarPerm extractEntry lib/winston/transports/transport.js
2530 verbose linkBins node...@1.4.0
2531 verbose linkMans node...@1.4.0
2532 verbose rebuildBundles node...@1.4.0
2533 verbose read json /usr/local/lib/node_modules/appium/node_modules/bplist-creator/package.json
2534 info install node...@1.4.0
2535 info postinstall bplist...@0.0.4
2536 info postinstall node...@1.4.0
2537 silly lockFile acf09c12-odules-appium-node-modules-async /usr/local/lib/node_modules/appium/node_modules/async
2538 silly lockFile acf09c12-odules-appium-node-modules-async /usr/local/lib/node_modules/appium/node_modules/async
2539 silly gunzTarPerm extractEntry tests/test-piped-redirect.js
2540 silly gunzTarPerm extractEntry tests/test-pipes.js
2541 silly lockFile 52729884-iele-npm-async-0-2-9-package-tgz /Users/jmiele/.npm/async/0.2.9/package.tgz
2542 silly lockFile 52729884-iele-npm-async-0-2-9-package-tgz /Users/jmiele/.npm/async/0.2.9/package.tgz
2543 silly lockFile 9b6b94e8-dules-appium-node-modules-mkdirp /usr/local/lib/node_modules/appium/node_modules/mkdirp
2544 silly lockFile 9b6b94e8-dules-appium-node-modules-mkdirp /usr/local/lib/node_modules/appium/node_modules/mkdirp
2545 silly lockFile a7fca521-ele-npm-mkdirp-0-3-5-package-tgz /Users/jmiele/.npm/mkdirp/0.3.5/package.tgz
2546 silly lockFile a7fca521-ele-npm-mkdirp-0-3-5-package-tgz /Users/jmiele/.npm/mkdirp/0.3.5/package.tgz
2547 silly lockFile 9a15b6a4-pium-node-modules-bplist-creator /usr/local/lib/node_modules/appium/node_modules/bplist-creator
2548 silly lockFile 9a15b6a4-pium-node-modules-bplist-creator /usr/local/lib/node_modules/appium/node_modules/bplist-creator
2549 info preinstall as...@0.2.9
2550 silly lockFile 2b04d112-bplist-creator-0-0-2-package-tgz /Users/jmiele/.npm/bplist-creator/0.0.2/package.tgz
2551 silly lockFile 2b04d112-bplist-creator-0-0-2-package-tgz /Users/jmiele/.npm/bplist-creator/0.0.2/package.tgz
2552 verbose from cache /usr/local/lib/node_modules/appium/node_modules/async/package.json
2553 silly gunzTarPerm extractEntry tests/test-pool.js
2554 silly gunzTarPerm extractEntry tests/test-follow-all.js
2555 info preinstall mkd...@0.3.5
2556 verbose readDependencies using package.json deps
2557 verbose from cache /usr/local/lib/node_modules/appium/node_modules/async/package.json
2558 silly gunzTarPerm extractEntry test/new/escaped_angles.html
2559 silly gunzTarPerm extractEntry test/new/escaped_angles.text
2560 verbose readDependencies using package.json deps
2561 silly resolved []
2562 verbose about to build /usr/local/lib/node_modules/appium/node_modules/async
2563 info build /usr/local/lib/node_modules/appium/node_modules/async
2564 verbose from cache /usr/local/lib/node_modules/appium/node_modules/async/package.json
2565 verbose linkStuff [ true,
2565 verbose linkStuff   '/usr/local/lib/node_modules',
2565 verbose linkStuff   false,
2565 verbose linkStuff   '/usr/local/lib/node_modules/appium/node_modules' ]
2566 info linkStuff as...@0.2.9
2567 verbose read json /Users/jmiele/appium-test/package.json
2568 verbose from cache /usr/local/lib/node_modules/appium/node_modules/mkdirp/package.json
2569 verbose readDependencies using package.json deps
2570 verbose from cache /usr/local/lib/node_modules/appium/node_modules/mkdirp/package.json
2571 silly gunzTarPerm extractEntry test/.unit.js.un~
2572 silly gunzTarPerm extractEntry test/AppleStore.binarycookies
2573 verbose linkBins as...@0.2.9
2574 verbose linkMans as...@0.2.9
2575 verbose rebuildBundles as...@0.2.9
2576 verbose readDependencies using package.json deps
2577 silly resolved []
2578 verbose about to build /usr/local/lib/node_modules/appium/node_modules/mkdirp
2579 info build /usr/local/lib/node_modules/appium/node_modules/mkdirp
2580 verbose from cache /usr/local/lib/node_modules/appium/node_modules/mkdirp/package.json
2581 verbose linkStuff [ true,
2581 verbose linkStuff   '/usr/local/lib/node_modules',
2581 verbose linkStuff   false,
2581 verbose linkStuff   '/usr/local/lib/node_modules/appium/node_modules' ]
2582 info linkStuff mkd...@0.3.5
2583 verbose read json /Users/jmiele/appium-test/package.json
2584 info preinstall bplist-...@0.0.2
2585 info install as...@0.2.9
2586 verbose linkBins mkd...@0.3.5
2587 verbose linkMans mkd...@0.3.5
2588 verbose rebuildBundles mkd...@0.3.5
2589 verbose from cache /usr/local/lib/node_modules/appium/node_modules/bplist-creator/package.json
2590 info postinstall as...@0.2.9
2591 info install mkd...@0.3.5
2592 verbose readDependencies using package.json deps
2593 verbose from cache /usr/local/lib/node_modules/appium/node_modules/bplist-creator/package.json
2594 verbose readDependencies using package.json deps
2595 info postinstall mkd...@0.3.5
2596 silly gunzTarPerm extractEntry lib/winston/transports/webhook.js
2597 silly gunzTarPerm extractEntry test/cli-test.js
2598 verbose cache add [ 'stream-buffers@~0.2.3', null ]
2599 verbose cache add name=undefined spec="stream-buffers@~0.2.3" args=["stream-buffers@~0.2.3",null]
2600 verbose parsed url { protocol: null,
2600 verbose parsed url   slashes: null,
2600 verbose parsed url   auth: null,
2600 verbose parsed url   host: null,
2600 verbose parsed url   port: null,
2600 verbose parsed url   hostname: null,
2600 verbose parsed url   hash: null,
2600 verbose parsed url   search: null,
2600 verbose parsed url   query: null,
2600 verbose parsed url   pathname: 'stream-buffers@~0.2.3',
2600 verbose parsed url   path: 'stream-buffers@~0.2.3',
2600 verbose parsed url   href: 'stream-buffers@~0.2.3' }
2601 verbose cache add name="stream-buffers" spec="~0.2.3" args=["stream-buffers","~0.2.3"]
2602 verbose parsed url { protocol: null,
2602 verbose parsed url   slashes: null,
2602 verbose parsed url   auth: null,
2602 verbose parsed url   host: null,
2602 verbose parsed url   port: null,
2602 verbose parsed url   hostname: null,
2602 verbose parsed url   hash: null,
2602 verbose parsed url   search: null,
2602 verbose parsed url   query: null,
2602 verbose parsed url   pathname: '~0.2.3',
2602 verbose parsed url   path: '~0.2.3',
2602 verbose parsed url   href: '~0.2.3' }
2603 verbose addNamed [ 'stream-buffers', '~0.2.3' ]
2604 verbose addNamed [ null, '>=0.2.3- <0.3.0-' ]
2605 silly lockFile 475f5155-stream-buffers-0-2-3 stream-buffers@~0.2.3
2606 verbose lock stream-buffers@~0.2.3 /Users/jmiele/.npm/475f5155-stream-buffers-0-2-3.lock
2607 silly gunzTarPerm extractEntry test/new/gfm_break.html
2608 silly gunzTarPerm extractEntry test/new/gfm_break.text
2609 silly addNameRange { name: 'stream-buffers',
2609 silly addNameRange   range: '>=0.2.3- <0.3.0-',
2609 silly addNameRange   hasData: false }
2610 silly gunzTarPerm extractEntry tests/test-protocol-changing-redirect.js
2611 silly gunzTarPerm extractEntry tests/test-follow-all-303.js
2612 silly gunzTarPerm extractEntry lib/help/added_formatters.js
2613 silly gunzTarPerm extractEntry lib/help/formatter.js
2614 verbose url raw stream-buffers
2615 verbose url resolving [ 'https://registry.npmjs.org/', './stream-buffers' ]
2617 info trying registry request attempt 1 at 10:59:47
2618 verbose etag "CCPKNMRU3FBJSCHN2FQZPS36Y"
2620 silly gunzTarPerm extractEntry test/custom-timestamp-test.js
2621 silly gunzTarPerm extractEntry test/exception-test.js
2622 silly gunzTarPerm extractEntry test/new/gfm_code.html
2623 silly gunzTarPerm extractEntry test/new/gfm_code.text
2624 silly gunzTarPerm extractEntry tests/test-proxy.js
2625 silly gunzTarPerm extractEntry tests/test-errors.js
2626 silly gunzTarPerm extractEntry test/logger-test.js
2627 silly gunzTarPerm extractEntry test/container-test.js
2628 silly gunzTarPerm extractEntry test/new/gfm_em.html
2629 silly gunzTarPerm extractEntry test/new/gfm_em.text
2630 verbose read json /usr/local/lib/node_modules/appium/node_modules/node-idevice/package.json
2631 silly gunzTarPerm extractEntry tests/test-qs.js
2632 silly gunzTarPerm extractEntry tests/test-defaults.js
2633 silly gunzTarPerm extractEntry test/log-exception-test.js
2634 silly gunzTarPerm extractEntry test/log-rewriter-test.js
2635 silly gunzTarPerm extractEntry test/test_underscore/index.html
2636 silly gunzTarPerm extractEntry test/test_underscore/vendor/jquery.js
2637 silly gunzTarPerm extractEntry test/new/gfm_links.html
2638 silly gunzTarPerm extractEntry test/new/gfm_links.text
2639 silly gunzTarPerm extractEntry tests/test-redirect.js
2640 silly gunzTarPerm extractEntry tests/test-cookiejar.js
2641 silly lockFile 62890a53-appium-node-modules-node-idevice /usr/local/lib/node_modules/appium/node_modules/node-idevice
2642 silly lockFile 62890a53-appium-node-modules-node-idevice /usr/local/lib/node_modules/appium/node_modules/node-idevice
2643 verbose read json /usr/local/lib/node_modules/appium/node_modules/xml2js/package.json
2644 silly lockFile 9705bd52-m-node-idevice-0-1-2-package-tgz /Users/jmiele/.npm/node-idevice/0.1.2/package.tgz
2645 silly lockFile 9705bd52-m-node-idevice-0-1-2-package-tgz /Users/jmiele/.npm/node-idevice/0.1.2/package.tgz
2646 silly gunzTarPerm extractEntry test/test_underscore/vendor/jslitmus.js
2647 info preinstall node-i...@0.1.2
2648 silly gunzTarPerm extractEntry test/new/hr_list_break.html
2649 silly gunzTarPerm extractEntry test/new/hr_list_break.text
2650 verbose from cache /usr/local/lib/node_modules/appium/node_modules/node-idevice/package.json
2651 verbose readDependencies using package.json deps
2652 verbose from cache /usr/local/lib/node_modules/appium/node_modules/node-idevice/package.json
2653 verbose readDependencies using package.json deps
2654 silly resolved []
2655 verbose about to build /usr/local/lib/node_modules/appium/node_modules/node-idevice
2656 info build /usr/local/lib/node_modules/appium/node_modules/node-idevice
2657 verbose from cache /usr/local/lib/node_modules/appium/node_modules/node-idevice/package.json
2658 verbose linkStuff [ true,
2658 verbose linkStuff   '/usr/local/lib/node_modules',
2658 verbose linkStuff   false,
2658 verbose linkStuff   '/usr/local/lib/node_modules/appium/node_modules' ]
2659 info linkStuff node-i...@0.1.2
2660 verbose read json /Users/jmiele/appium-test/package.json
2661 silly gunzTarPerm extractEntry tests/test-s3.js
2662 silly gunzTarPerm extractEntry tests/test-cookie.js
2663 silly lockFile 8d25b56b-dules-appium-node-modules-xml2js /usr/local/lib/node_modules/appium/node_modules/xml2js
2664 silly lockFile 8d25b56b-dules-appium-node-modules-xml2js /usr/local/lib/node_modules/appium/node_modules/xml2js
2665 verbose linkBins node-i...@0.1.2
2666 verbose linkMans node-i...@0.1.2
2667 verbose rebuildBundles node-i...@0.1.2
2668 silly lockFile 0e64bb4c-ele-npm-xml2js-0-2-7-package-tgz /Users/jmiele/.npm/xml2js/0.2.7/package.tgz
2669 silly lockFile 0e64bb4c-ele-npm-xml2js-0-2-7-package-tgz /Users/jmiele/.npm/xml2js/0.2.7/package.tgz
2670 info install node-i...@0.1.2
2671 silly gunzTarPerm extractEntry test/new/lazy_blockquotes.html
2672 silly gunzTarPerm extractEntry test/new/lazy_blockquotes.text
2673 info postinstall node-i...@0.1.2
2674 info preinstall xml...@0.2.7
2675 verbose from cache /usr/local/lib/node_modules/appium/node_modules/xml2js/package.json
2676 verbose readDependencies using package.json deps
2677 verbose from cache /usr/local/lib/node_modules/appium/node_modules/xml2js/package.json
2678 verbose readDependencies using package.json deps
2679 silly gunzTarPerm extractEntry test/new/list_item_text.html
2680 silly gunzTarPerm extractEntry test/new/autolink_lines.text
2681 verbose cache add [ 's...@0.5.2', null ]
2682 verbose cache add name=undefined spec="s...@0.5.2" args=["s...@0.5.2",null]
2683 verbose parsed url { protocol: null,
2683 verbose parsed url   slashes: null,
2683 verbose parsed url   auth: null,
2683 verbose parsed url   host: null,
2683 verbose parsed url   port: null,
2683 verbose parsed url   hostname: null,
2683 verbose parsed url   hash: null,
2683 verbose parsed url   search: null,
2683 verbose parsed url   query: null,
2683 verbose parsed url   pathname: 's...@0.5.2',
2683 verbose parsed url   path: 's...@0.5.2',
2683 verbose parsed url   href: 's...@0.5.2' }
2684 verbose cache add name="sax" spec="0.5.2" args=["sax","0.5.2"]
2685 verbose parsed url { protocol: null,
2685 verbose parsed url   slashes: null,
2685 verbose parsed url   auth: null,
2685 verbose parsed url   host: null,
2685 verbose parsed url   port: null,
2685 verbose parsed url   hostname: null,
2685 verbose parsed url   hash: null,
2685 verbose parsed url   search: null,
2685 verbose parsed url   query: null,
2685 verbose parsed url   pathname: '0.5.2',
2685 verbose parsed url   path: '0.5.2',
2685 verbose parsed url   href: '0.5.2' }
2686 verbose addNamed [ 'sax', '0.5.2' ]
2687 verbose addNamed [ '0.5.2', '0.5.2' ]
2688 silly lockFile 5f76915a-sax-0-5-2 s...@0.5.2
2689 verbose lock s...@0.5.2 /Users/jmiele/.npm/5f76915a-sax-0-5-2.lock
2690 silly gunzTarPerm extractEntry tests/test-timeout.js
2691 silly gunzTarPerm extractEntry tests/test-body.js
2692 verbose url raw sax/0.5.2
2693 verbose url resolving [ 'https://registry.npmjs.org/', './sax/0.5.2' ]
2694 verbose url resolved https://registry.npmjs.org/sax/0.5.2
2695 info trying registry request attempt 1 at 10:59:47
2696 verbose etag "802SUU0JT0M6CV5B2UX1GTSPU"
2698 silly gunzTarPerm extractEntry test/new/loose_lists.html
2699 silly gunzTarPerm extractEntry test/new/loose_lists.text
2700 verbose read json /usr/local/lib/node_modules/appium/node_modules/glob/package.json
2701 silly gunzTarPerm extractEntry test/winston-test.js
2702 silly gunzTarPerm extractEntry test/helpers.js
2703 silly gunzTarPerm extractEntry tests/test-toJSON.js
2704 silly gunzTarPerm extractEntry tests/server.js
2705 verbose read json /usr/local/lib/node_modules/appium/node_modules/unzip/package.json
2706 silly gunzTarPerm extractEntry test/new/main.html
2707 silly gunzTarPerm extractEntry test/new/main.text
2708 silly lockFile 80ea4f44-modules-appium-node-modules-glob /usr/local/lib/node_modules/appium/node_modules/glob
2709 silly lockFile 80ea4f44-modules-appium-node-modules-glob /usr/local/lib/node_modules/appium/node_modules/glob
2710 silly gunzTarPerm extractEntry test/fixtures/.gitkeep
2711 silly gunzTarPerm extractEntry test/fixtures/keys/agent2-cert.pem
2712 silly lockFile 16445a1e-iele-npm-glob-3-1-21-package-tgz /Users/jmiele/.npm/glob/3.1.21/package.tgz
2713 silly lockFile 16445a1e-iele-npm-glob-3-1-21-package-tgz /Users/jmiele/.npm/glob/3.1.21/package.tgz
2714 silly gunzTarPerm extractEntry test/assets/fast.zip
2715 silly gunzTarPerm extractEntry test/assets/fastest.zip
2716 silly gunzTarPerm extractEntry tests/test-tunnel.js
2717 silly gunzTarPerm extractEntry tests/test-https.js
2718 silly gunzTarPerm extractEntry test/new/nested_code.html
2719 silly gunzTarPerm extractEntry test/new/nested_code.text
2720 info preinstall gl...@3.1.21
2721 silly lockFile 65361ef3-odules-appium-node-modules-unzip /usr/local/lib/node_modules/appium/node_modules/unzip
2722 silly lockFile 65361ef3-odules-appium-node-modules-unzip /usr/local/lib/node_modules/appium/node_modules/unzip
2723 verbose from cache /usr/local/lib/node_modules/appium/node_modules/glob/package.json
2724 silly lockFile 31adc58c-iele-npm-unzip-0-1-7-package-tgz /Users/jmiele/.npm/unzip/0.1.7/package.tgz
2725 silly lockFile 31adc58c-iele-npm-unzip-0-1-7-package-tgz /Users/jmiele/.npm/unzip/0.1.7/package.tgz
2726 verbose readDependencies using package.json deps
2727 verbose from cache /usr/local/lib/node_modules/appium/node_modules/glob/package.json
2728 silly gunzTarPerm extractEntry test/fixtures/keys/agent2-key.pem
2729 silly gunzTarPerm extractEntry test/fixtures/logs/.gitkeep
2730 verbose readDependencies using package.json deps
2731 verbose cache add [ 'minimatch@~0.2.11', null ]
2732 verbose cache add name=undefined spec="minimatch@~0.2.11" args=["minimatch@~0.2.11",null]
2733 verbose parsed url { protocol: null,
2733 verbose parsed url   slashes: null,
2733 verbose parsed url   auth: null,
2733 verbose parsed url   host: null,
2733 verbose parsed url   port: null,
2733 verbose parsed url   hostname: null,
2733 verbose parsed url   hash: null,
2733 verbose parsed url   search: null,
2733 verbose parsed url   query: null,
2733 verbose parsed url   pathname: 'minimatch@~0.2.11',
2733 verbose parsed url   path: 'minimatch@~0.2.11',
2733 verbose parsed url   href: 'minimatch@~0.2.11' }
2734 verbose cache add name="minimatch" spec="~0.2.11" args=["minimatch","~0.2.11"]
2735 verbose parsed url { protocol: null,
2735 verbose parsed url   slashes: null,
2735 verbose parsed url   auth: null,
2735 verbose parsed url   host: null,
2735 verbose parsed url   port: null,
2735 verbose parsed url   hostname: null,
2735 verbose parsed url   hash: null,
2735 verbose parsed url   search: null,
2735 verbose parsed url   query: null,
2735 verbose parsed url   pathname: '~0.2.11',
2735 verbose parsed url   path: '~0.2.11',
2735 verbose parsed url   href: '~0.2.11' }
2736 verbose addNamed [ 'minimatch', '~0.2.11' ]
2737 verbose addNamed [ null, '>=0.2.11- <0.3.0-' ]
2738 silly lockFile 94473efb-minimatch-0-2-11 minimatch@~0.2.11
2739 verbose lock minimatch@~0.2.11 /Users/jmiele/.npm/94473efb-minimatch-0-2-11.lock
2740 verbose cache add [ 'graceful-fs@~1.2.0', null ]
2741 verbose cache add name=undefined spec="graceful-fs@~1.2.0" args=["graceful-fs@~1.2.0",null]
2742 verbose parsed url { protocol: null,
2742 verbose parsed url   slashes: null,
2742 verbose parsed url   auth: null,
2742 verbose parsed url   host: null,
2742 verbose parsed url   port: null,
2742 verbose parsed url   hostname: null,
2742 verbose parsed url   hash: null,
2742 verbose parsed url   search: null,
2742 verbose parsed url   query: null,
2742 verbose parsed url   pathname: 'graceful-fs@~1.2.0',
2742 verbose parsed url   path: 'graceful-fs@~1.2.0',
2742 verbose parsed url   href: 'graceful-fs@~1.2.0' }
2743 verbose cache add name="graceful-fs" spec="~1.2.0" args=["graceful-fs","~1.2.0"]
2744 verbose parsed url { protocol: null,
2744 verbose parsed url   slashes: null,
2744 verbose parsed url   auth: null,
2744 verbose parsed url   host: null,
2744 verbose parsed url   port: null,
2744 verbose parsed url   hostname: null,
2744 verbose parsed url   hash: null,
2744 verbose parsed url   search: null,
2744 verbose parsed url   query: null,
2744 verbose parsed url   pathname: '~1.2.0',
2744 verbose parsed url   path: '~1.2.0',
2744 verbose parsed url   href: '~1.2.0' }
2745 verbose addNamed [ 'graceful-fs', '~1.2.0' ]
2746 verbose addNamed [ null, '>=1.2.0- <1.3.0-' ]
2747 silly lockFile 9c0bb906-graceful-fs-1-2-0 graceful-fs@~1.2.0
2748 verbose lock graceful-fs@~1.2.0 /Users/jmiele/.npm/9c0bb906-graceful-fs-1-2-0.lock
2749 silly gunzTarPerm extractEntry test/assets/linux_arc.zip
2750 silly gunzTarPerm extractEntry test/assets/maximum.zip
2751 silly addNameRange { name: 'minimatch', range: '>=0.2.11- <0.3.0-', hasData: false }
2752 verbose cache add [ 'inherits@1', null ]
2753 verbose cache add name=undefined spec="inherits@1" args=["inherits@1",null]
2754 verbose parsed url { protocol: null,
2754 verbose parsed url   slashes: null,
2754 verbose parsed url   auth: null,
2754 verbose parsed url   host: null,
2754 verbose parsed url   port: null,
2754 verbose parsed url   hostname: null,
2754 verbose parsed url   hash: null,
2754 verbose parsed url   search: null,
2754 verbose parsed url   query: null,
2754 verbose parsed url   pathname: 'inherits@1',
2754 verbose parsed url   path: 'inherits@1',
2754 verbose parsed url   href: 'inherits@1' }
2755 verbose cache add name="inherits" spec="1" args=["inherits","1"]
2756 verbose parsed url { protocol: null,
2756 verbose parsed url   slashes: null,
2756 verbose parsed url   auth: null,
2756 verbose parsed url   host: null,
2756 verbose parsed url   port: null,
2756 verbose parsed url   hostname: null,
2756 verbose parsed url   hash: null,
2756 verbose parsed url   search: null,
2756 verbose parsed url   query: null,
2756 verbose parsed url   pathname: '1',
2756 verbose parsed url   path: '1',
2756 verbose parsed url   href: '1' }
2757 verbose addNamed [ 'inherits', '1' ]
2758 verbose addNamed [ null, '>=1.0.0- <2.0.0-' ]
2759 silly lockFile 4bca46d0-inherits-1 inherits@1
2760 verbose lock inherits@1 /Users/jmiele/.npm/4bca46d0-inherits-1.lock
2761 silly addNameRange { name: 'graceful-fs',
2761 silly addNameRange   range: '>=1.2.0- <1.3.0-',
2761 silly addNameRange   hasData: false }
2762 info preinstall un...@0.1.7
2763 silly gunzTarPerm extractEntry test/new/nested_em.html
2764 silly gunzTarPerm extractEntry test/new/nested_em.text
2765 silly addNameRange { name: 'inherits', range: '>=1.0.0- <2.0.0-', hasData: false }
2766 verbose from cache /usr/local/lib/node_modules/appium/node_modules/unzip/package.json
2767 verbose readDependencies using package.json deps
2768 verbose from cache /usr/local/lib/node_modules/appium/node_modules/unzip/package.json
2769 silly gunzTarPerm extractEntry test/fixtures/scripts/default-exceptions.js
2770 silly gunzTarPerm extractEntry test/fixtures/scripts/exit-on-error.js
2771 verbose readDependencies using package.json deps
2772 verbose url raw graceful-fs
2773 verbose url resolving [ 'https://registry.npmjs.org/', './graceful-fs' ]
2774 verbose url resolved https://registry.npmjs.org/graceful-fs
2775 info trying registry request attempt 1 at 10:59:47
2776 verbose etag "4QB314Y3S11CD6RLWHEK13W"
2778 verbose url raw minimatch
2779 verbose url resolving [ 'https://registry.npmjs.org/', './minimatch' ]
2780 verbose url resolved https://registry.npmjs.org/minimatch
2781 info trying registry request attempt 1 at 10:59:47
2782 verbose etag "5JX71LVFYVTO8MP94CQJNAUUL"
2784 verbose cache add [ 'readable-stream@~1.0.0', null ]
2785 verbose cache add name=undefined spec="readable-stream@~1.0.0" args=["readable-stream@~1.0.0",null]
2786 verbose parsed url { protocol: null,
2786 verbose parsed url   slashes: null,
2786 verbose parsed url   auth: null,
2786 verbose parsed url   host: null,
2786 verbose parsed url   port: null,
2786 verbose parsed url   hostname: null,
2786 verbose parsed url   hash: null,
2786 verbose parsed url   search: null,
2786 verbose parsed url   query: null,
2786 verbose parsed url   pathname: 'readable-stream@~1.0.0',
2786 verbose parsed url   path: 'readable-stream@~1.0.0',
2786 verbose parsed url   href: 'readable-stream@~1.0.0' }
2787 verbose cache add name="readable-stream" spec="~1.0.0" args=["readable-stream","~1.0.0"]
2788 verbose parsed url { protocol: null,
2788 verbose parsed url   slashes: null,
2788 verbose parsed url   auth: null,
2788 verbose parsed url   host: null,
2788 verbose parsed url   port: null,
2788 verbose parsed url   hostname: null,
2788 verbose parsed url   hash: null,
2788 verbose parsed url   search: null,
2788 verbose parsed url   query: null,
2788 verbose parsed url   pathname: '~1.0.0',
2788 verbose parsed url   path: '~1.0.0',
2788 verbose parsed url   href: '~1.0.0' }
2789 verbose addNamed [ 'readable-stream', '~1.0.0' ]
2790 verbose addNamed [ null, '>=1.0.0- <1.1.0-' ]
2791 silly lockFile 87dee724-readable-stream-1-0-0 readable-stream@~1.0.0
2792 verbose lock readable-stream@~1.0.0 /Users/jmiele/.npm/87dee724-readable-stream-1-0-0.lock
2793 verbose cache add [ 'binary@~0.3.0', null ]
2794 verbose cache add name=undefined spec="binary@~0.3.0" args=["binary@~0.3.0",null]
2795 verbose parsed url { protocol: null,
2795 verbose parsed url   slashes: null,
2795 verbose parsed url   auth: null,
2795 verbose parsed url   host: null,
2795 verbose parsed url   port: null,
2795 verbose parsed url   hostname: null,
2795 verbose parsed url   hash: null,
2795 verbose parsed url   search: null,
2795 verbose parsed url   query: null,
2795 verbose parsed url   pathname: 'binary@~0.3.0',
2795 verbose parsed url   path: 'binary@~0.3.0',
2795 verbose parsed url   href: 'binary@~0.3.0' }
2796 verbose cache add name="binary" spec="~0.3.0" args=["binary","~0.3.0"]
2797 verbose parsed url { protocol: null,
2797 verbose parsed url   slashes: null,
2797 verbose parsed url   auth: null,
2797 verbose parsed url   host: null,
2797 verbose parsed url   port: null,
2797 verbose parsed url   hostname: null,
2797 verbose parsed url   hash: null,
2797 verbose parsed url   search: null,
2797 verbose parsed url   query: null,
2797 verbose parsed url   pathname: '~0.3.0',
2797 verbose parsed url   path: '~0.3.0',
2797 verbose parsed url   href: '~0.3.0' }
2798 verbose addNamed [ 'binary', '~0.3.0' ]
2799 verbose addNamed [ null, '>=0.3.0- <0.4.0-' ]
2800 silly lockFile bd38fc46-binary-0-3-0 binary@~0.3.0
2801 verbose lock binary@~0.3.0 /Users/jmiele/.npm/bd38fc46-binary-0-3-0.lock
2802 verbose cache add [ 'setimmediate@~1.0.1', null ]
2803 verbose cache add name=undefined spec="setimmediate@~1.0.1" args=["setimmediate@~1.0.1",null]
2804 verbose parsed url { protocol: null,
2804 verbose parsed url   slashes: null,
2804 verbose parsed url   auth: null,
2804 verbose parsed url   host: null,
2804 verbose parsed url   port: null,
2804 verbose parsed url   hostname: null,
2804 verbose parsed url   hash: null,
2804 verbose parsed url   search: null,
2804 verbose parsed url   query: null,
2804 verbose parsed url   pathname: 'setimmediate@~1.0.1',
2804 verbose parsed url   path: 'setimmediate@~1.0.1',
2804 verbose parsed url   href: 'setimmediate@~1.0.1' }
2805 verbose cache add name="setimmediate" spec="~1.0.1" args=["setimmediate","~1.0.1"]
2806 verbose parsed url { protocol: null,
2806 verbose parsed url   slashes: null,
2806 verbose parsed url   auth: null,
2806 verbose parsed url   host: null,
2806 verbose parsed url   port: null,
2806 verbose parsed url   hostname: null,
2806 verbose parsed url   hash: null,
2806 verbose parsed url   search: null,
2806 verbose parsed url   query: null,
2806 verbose parsed url   pathname: '~1.0.1',
2806 verbose parsed url   path: '~1.0.1',
2806 verbose parsed url   href: '~1.0.1' }
2807 verbose addNamed [ 'setimmediate', '~1.0.1' ]
2808 verbose addNamed [ null, '>=1.0.1- <1.1.0-' ]
2809 silly lockFile 9b468877-setimmediate-1-0-1 setimmediate@~1.0.1
2810 verbose lock setimmediate@~1.0.1 /Users/jmiele/.npm/9b468877-setimmediate-1-0-1.lock
2811 verbose cache add [ 'match-...@0.0.1', null ]
2812 verbose cache add name=undefined spec="match-...@0.0.1" args=["match-...@0.0.1",null]
2813 verbose parsed url { protocol: null,
2813 verbose parsed url   slashes: null,
2813 verbose parsed url   auth: null,
2813 verbose parsed url   host: null,
2813 verbose parsed url   port: null,
2813 verbose parsed url   hostname: null,
2813 verbose parsed url   hash: null,
2813 verbose parsed url   search: null,
2813 verbose parsed url   query: null,
2813 verbose parsed url   pathname: 'match-...@0.0.1',
2813 verbose parsed url   path: 'match-...@0.0.1',
2813 verbose parsed url   href: 'match-...@0.0.1' }
2814 verbose cache add name="match-stream" spec="0.0.1" args=["match-stream","0.0.1"]
2815 verbose parsed url { protocol: null,
2815 verbose parsed url   slashes: null,
2815 verbose parsed url   auth: null,
2815 verbose parsed url   host: null,
2815 verbose parsed url   port: null,
2815 verbose parsed url   hostname: null,
2815 verbose parsed url   hash: null,
2815 verbose parsed url   search: null,
2815 verbose parsed url   query: null,
2815 verbose parsed url   pathname: '0.0.1',
2815 verbose parsed url   path: '0.0.1',
2815 verbose parsed url   href: '0.0.1' }
2816 verbose addNamed [ 'match-stream', '0.0.1' ]
2817 verbose addNamed [ '0.0.1', '0.0.1' ]
2818 silly lockFile f36e9fe1-match-stream-0-0-1 match-...@0.0.1
2819 verbose lock match-...@0.0.1 /Users/jmiele/.npm/f36e9fe1-match-stream-0-0-1.lock
2820 verbose url raw inherits
2821 verbose url resolving [ 'https://registry.npmjs.org/', './inherits' ]
2822 verbose url resolved https://registry.npmjs.org/inherits
2823 info trying registry request attempt 1 at 10:59:47
2824 verbose etag "95AEQLT7K8F5YP7JX1NLNSZQ"
2826 silly addNameRange { name: 'readable-stream',
2826 silly addNameRange   range: '>=1.0.0- <1.1.0-',
2826 silly addNameRange   hasData: false }
2827 silly addNameRange { name: 'binary', range: '>=0.3.0- <0.4.0-', hasData: false }
2828 silly addNameRange { name: 'setimmediate',
2828 silly addNameRange   range: '>=1.0.1- <1.1.0-',
2828 silly addNameRange   hasData: false }
2829 verbose cache add [ 'fstream@~0.1.21', null ]
2830 verbose cache add name=undefined spec="fstream@~0.1.21" args=["fstream@~0.1.21",null]
2831 verbose parsed url { protocol: null,
2831 verbose parsed url   slashes: null,
2831 verbose parsed url   auth: null,
2831 verbose parsed url   host: null,
2831 verbose parsed url   port: null,
2831 verbose parsed url   hostname: null,
2831 verbose parsed url   hash: null,
2831 verbose parsed url   search: null,
2831 verbose parsed url   query: null,
2831 verbose parsed url   pathname: 'fstream@~0.1.21',
2831 verbose parsed url   path: 'fstream@~0.1.21',
2831 verbose parsed url   href: 'fstream@~0.1.21' }
2832 verbose cache add name="fstream" spec="~0.1.21" args=["fstream","~0.1.21"]
2833 verbose parsed url { protocol: null,
2833 verbose parsed url   slashes: null,
2833 verbose parsed url   auth: null,
2833 verbose parsed url   host: null,
2833 verbose parsed url   port: null,
2833 verbose parsed url   hostname: null,
2833 verbose parsed url   hash: null,
2833 verbose parsed url   search: null,
2833 verbose parsed url   query: null,
2833 verbose parsed url   pathname: '~0.1.21',
2833 verbose parsed url   path: '~0.1.21',
2833 verbose parsed url   href: '~0.1.21' }
2834 verbose addNamed [ 'fstream', '~0.1.21' ]
2835 verbose addNamed [ null, '>=0.1.21- <0.2.0-' ]
2836 silly lockFile 359d2e02-fstream-0-1-21 fstream@~0.1.21
2837 verbose lock fstream@~0.1.21 /Users/jmiele/.npm/359d2e02-fstream-0-1-21.lock
2838 verbose cache add [ 'pullstream@~0.4.0', null ]
2839 verbose cache add name=undefined spec="pullstream@~0.4.0" args=["pullstream@~0.4.0",null]
2840 verbose parsed url { protocol: null,
2840 verbose parsed url   slashes: null,
2840 verbose parsed url   auth: null,
2840 verbose parsed url   host: null,
2840 verbose parsed url   port: null,
2840 verbose parsed url   hostname: null,
2840 verbose parsed url   hash: null,
2840 verbose parsed url   search: null,
2840 verbose parsed url   query: null,
2840 verbose parsed url   pathname: 'pullstream@~0.4.0',
2840 verbose parsed url   path: 'pullstream@~0.4.0',
2840 verbose parsed url   href: 'pullstream@~0.4.0' }
2841 verbose cache add name="pullstream" spec="~0.4.0" args=["pullstream","~0.4.0"]
2842 verbose parsed url { protocol: null,
2842 verbose parsed url   slashes: null,
2842 verbose parsed url   auth: null,
2842 verbose parsed url   host: null,
2842 verbose parsed url   port: null,
2842 verbose parsed url   hostname: null,
2842 verbose parsed url   hash: null,
2842 verbose parsed url   search: null,
2842 verbose parsed url   query: null,
2842 verbose parsed url   pathname: '~0.4.0',
2842 verbose parsed url   path: '~0.4.0',
2842 verbose parsed url   href: '~0.4.0' }
2843 verbose addNamed [ 'pullstream', '~0.4.0' ]
2844 verbose addNamed [ null, '>=0.4.0- <0.5.0-' ]
2845 silly lockFile 01a41988-pullstream-0-4-0 pullstream@~0.4.0
2846 verbose lock pullstream@~0.4.0 /Users/jmiele/.npm/01a41988-pullstream-0-4-0.lock
2847 silly addNameRange { name: 'fstream', range: '>=0.1.21- <0.2.0-', hasData: false }
2848 silly addNameRange { name: 'pullstream', range: '>=0.4.0- <0.5.0-', hasData: false }
2849 silly gunzTarPerm extractEntry test/new/nested_square_link.html
2850 silly gunzTarPerm extractEntry test/new/nested_square_link.text
2851 silly gunzTarPerm extractEntry tests/squid.conf
2852 silly gunzTarPerm extractEntry tests/ssl/ca/server.js
2853 silly gunzTarPerm extractEntry test/fixtures/scripts/log-exceptions.js
2854 silly gunzTarPerm extractEntry test/fixtures/scripts/unhandle-exceptions.js
2855 verbose url raw readable-stream
2856 verbose url resolving [ 'https://registry.npmjs.org/', './readable-stream' ]
2858 info trying registry request attempt 1 at 10:59:47
2859 verbose etag "4H5XA9H4KBJGBF96JLN8WYY5U"
2861 verbose url raw binary
2862 verbose url resolving [ 'https://registry.npmjs.org/', './binary' ]
2863 verbose url resolved https://registry.npmjs.org/binary
2864 info trying registry request attempt 1 at 10:59:47
2865 verbose etag "1VLF9JLJ2LDF1EVXQ80551B54"
2867 verbose url raw setimmediate
2868 verbose url resolving [ 'https://registry.npmjs.org/', './setimmediate' ]
2869 verbose url resolved https://registry.npmjs.org/setimmediate
2870 info trying registry request attempt 1 at 10:59:47
2871 verbose etag "8M7HWN4T8JX86515VNSW6N1AJ"
2873 verbose url raw match-stream/0.0.1
2874 verbose url resolving [ 'https://registry.npmjs.org/', './match-stream/0.0.1' ]
2876 info trying registry request attempt 1 at 10:59:47
2877 verbose etag "E41MH1C5SREBCHN836RLQISEP"
2879 verbose url raw fstream
2880 verbose url resolving [ 'https://registry.npmjs.org/', './fstream' ]
2881 verbose url resolved https://registry.npmjs.org/fstream
2882 info trying registry request attempt 1 at 10:59:47
2883 verbose etag "9ETPSIRJ5L3UKTIE704ZYLZPL"
2885 verbose url raw pullstream
2886 verbose url resolving [ 'https://registry.npmjs.org/', './pullstream' ]
2887 verbose url resolved https://registry.npmjs.org/pullstream
2888 info trying registry request attempt 1 at 10:59:47
2889 verbose etag "D68Z27C6PHEWBSJC05WQY06DF"
2891 silly gunzTarPerm extractEntry test/new/not_a_link.html
2892 silly gunzTarPerm extractEntry test/new/not_a_link.text
2893 silly gunzTarPerm extractEntry tests/ssl/ca/ca.srl
2894 silly gunzTarPerm extractEntry tests/ssl/ca/ca.crt
2895 silly gunzTarPerm extractEntry test/new/ref_paren.html
2896 silly gunzTarPerm extractEntry test/new/ref_paren.text
2897 silly gunzTarPerm extractEntry test/transports/console-test.js
2898 silly gunzTarPerm extractEntry test/transports/file-maxfiles-test.js
2899 silly gunzTarPerm extractEntry tests/ssl/ca/ca.csr
2900 silly gunzTarPerm extractEntry tests/ssl/ca/ca.key
2901 silly gunzTarPerm extractEntry test/new/same_bullet.html
2902 silly gunzTarPerm extractEntry test/new/same_bullet.text
2903 silly gunzTarPerm extractEntry test/test_underscore/vendor/qunit.js
2904 silly gunzTarPerm extractEntry test/test_underscore/vendor/qunit.css
2905 silly gunzTarPerm extractEntry test/assets/normal.zip
2906 silly gunzTarPerm extractEntry test/assets/store.zip
2907 silly gunzTarPerm extractEntry tests/ssl/ca/ca.crl
2908 silly gunzTarPerm extractEntry tests/ssl/ca/server.cnf
2909 silly gunzTarPerm extractEntry test/new/toplevel_paragraphs.html
2910 silly gunzTarPerm extractEntry test/new/toplevel_paragraphs.text
2911 silly gunzTarPerm extractEntry tests/ssl/ca/server.crt
2912 silly gunzTarPerm extractEntry tests/ssl/ca/server.csr
2913 silly gunzTarPerm extractEntry test/assets/ultra.zip
2914 silly gunzTarPerm extractEntry util/constants.js
2915 silly gunzTarPerm extractEntry test/new/tricky_list.html
2916 silly gunzTarPerm extractEntry test/new/tricky_list.text
2917 verbose read json /usr/local/lib/node_modules/appium/node_modules/swig/package.json
2918 silly gunzTarPerm extractEntry tests/ssl/ca/ca.cnf
2919 silly gunzTarPerm extractEntry tests/ssl/ca/server.key
2920 silly gunzTarPerm extractEntry test/original/links_inline_style.html
2921 silly gunzTarPerm extractEntry test/original/amps_and_angles_encoding.html
2923 silly registry.get cb [ 304,
2923 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
2923 silly registry.get     etag: '"4QB314Y3S11CD6RLWHEK13W"',
2923 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
2923 silly registry.get     'content-length': '0' } ]
2924 verbose etag graceful-fs from cache
2925 silly gunzTarPerm extractEntry test/transports/file-maxsize-test.js
2926 silly gunzTarPerm extractEntry test/transports/file-test.js
2927 silly lockFile 99a16888-modules-appium-node-modules-swig /usr/local/lib/node_modules/appium/node_modules/swig
2928 silly lockFile 99a16888-modules-appium-node-modules-swig /usr/local/lib/node_modules/appium/node_modules/swig
2929 silly lockFile 2764fe3c-iele-npm-swig-0-13-5-package-tgz /Users/jmiele/.npm/swig/0.13.5/package.tgz
2930 silly lockFile 2764fe3c-iele-npm-swig-0-13-5-package-tgz /Users/jmiele/.npm/swig/0.13.5/package.tgz
2931 silly addNameRange number 2 { name: 'graceful-fs', range: '>=1.0.0- <2.0.0-', hasData: true }
2932 silly addNameRange versions [ 'graceful-fs',
2932 silly addNameRange   [ '1.0.0',
2932 silly addNameRange     '1.0.1',
2932 silly addNameRange     '1.0.2',
2932 silly addNameRange     '1.1.0',
2932 silly addNameRange     '1.1.1',
2932 silly addNameRange     '1.1.2',
2932 silly addNameRange     '1.1.3',
2932 silly addNameRange     '1.1.4',
2932 silly addNameRange     '1.1.5',
2932 silly addNameRange     '1.1.6',
2932 silly addNameRange     '1.1.7',
2932 silly addNameRange     '1.1.8',
2932 silly addNameRange     '1.1.9',
2932 silly addNameRange     '1.1.10',
2932 silly addNameRange     '1.1.11',
2932 silly addNameRange     '1.1.12',
2932 silly addNameRange     '1.1.13',
2932 silly addNameRange     '1.1.14',
2932 silly addNameRange     '1.2.0',
2932 silly addNameRange     '1.2.1' ] ]
2933 verbose addNamed [ 'graceful-fs', '1.2.1' ]
2934 verbose addNamed [ '1.2.1', '1.2.1' ]
2935 silly lockFile 5f41e0dc-graceful-fs-1-2-1 grace...@1.2.1
2936 verbose lock grace...@1.2.1 /Users/jmiele/.npm/5f41e0dc-graceful-fs-1-2-1.lock
2937 silly gunzTarPerm extractEntry tests/ssl/npm-ca.crt
2938 silly gunzTarPerm extractEntry tests/ssl/test.crt
2939 silly gunzTarPerm extractEntry util/errors.js
2940 silly gunzTarPerm extractEntry util/fattr.js
2941 silly gunzTarPerm extractEntry test/original/auto_links.html
2942 silly gunzTarPerm extractEntry test/original/auto_links.text
2943 verbose read json /Users/jmiele/.npm/graceful-fs/1.2.1/package/package.json
2944 verbose read json /usr/local/lib/node_modules/appium/node_modules/express/package.json
2945 info preinstall sw...@0.13.5
2946 verbose from cache /usr/local/lib/node_modules/appium/node_modules/swig/package.json
2947 verbose readDependencies using package.json deps
2948 verbose from cache /usr/local/lib/node_modules/appium/node_modules/swig/package.json
2949 verbose readDependencies using package.json deps
2950 silly resolved []
2951 verbose about to build /usr/local/lib/node_modules/appium/node_modules/swig
2952 info build /usr/local/lib/node_modules/appium/node_modules/swig
2953 verbose from cache /usr/local/lib/node_modules/appium/node_modules/swig/package.json
2954 verbose linkStuff [ true,
2954 verbose linkStuff   '/usr/local/lib/node_modules',
2954 verbose linkStuff   false,
2954 verbose linkStuff   '/usr/local/lib/node_modules/appium/node_modules' ]
2955 info linkStuff sw...@0.13.5
2956 verbose read json /Users/jmiele/appium-test/package.json
2957 silly gunzTarPerm extractEntry test/original/backslash_escapes.html
2958 silly gunzTarPerm extractEntry test/original/backslash_escapes.text
2959 silly gunzTarPerm extractEntry tests/ssl/test.key
2960 silly gunzTarPerm extractEntry tests/googledoodle.png
2961 verbose read json /usr/local/lib/node_modules/appium/node_modules/underscore/package.json
2962 verbose linkBins sw...@0.13.5
2963 verbose linkMans sw...@0.13.5
2964 verbose rebuildBundles sw...@0.13.5
2965 silly gunzTarPerm extractEntry util/index.js
2966 silly gunzTarPerm extractEntry util/utils.js
2967 info install sw...@0.13.5
2968 silly gunzTarPerm extractEntry test/transports/transport.js
2969 silly gunzTarPerm extractEntry test/transports/webhook-test.js
2970 silly lockFile 5f41e0dc-graceful-fs-1-2-1 grace...@1.2.1
2971 silly lockFile 5f41e0dc-graceful-fs-1-2-1 grace...@1.2.1
2972 silly lockFile 571ac575-ules-appium-node-modules-express /usr/local/lib/node_modules/appium/node_modules/express
2973 silly lockFile 571ac575-ules-appium-node-modules-express /usr/local/lib/node_modules/appium/node_modules/express
2974 info postinstall sw...@0.13.5
2975 silly lockFile 34532f06-graceful-fs-1 graceful-fs@~1
2976 silly lockFile 34532f06-graceful-fs-1 graceful-fs@~1
2977 silly lockFile 71b4fd01-le-npm-express-3-0-6-package-tgz /Users/jmiele/.npm/express/3.0.6/package.tgz
2978 silly lockFile 71b4fd01-le-npm-express-3-0-6-package-tgz /Users/jmiele/.npm/express/3.0.6/package.tgz
2979 silly resolved [ { author:
2979 silly resolved      { name: 'Isaac Z. Schlueter',
2979 silly resolved        email: 'i...@izs.me',
2979 silly resolved        url: 'http://blog.izs.me' },
2979 silly resolved     name: 'graceful-fs',
2979 silly resolved     description: 'A drop-in replacement for fs, making various improvements.',
2979 silly resolved     version: '1.2.1',
2979 silly resolved     repository:
2979 silly resolved      { type: 'git',
2979 silly resolved        url: 'git://github.com/isaacs/node-graceful-fs.git' },
2979 silly resolved     main: 'graceful-fs.js',
2979 silly resolved     engines: { node: '>=0.4.0' },
2979 silly resolved     directories: { test: 'test' },
2979 silly resolved     scripts: { test: 'tap test/*.js' },
2979 silly resolved     keywords:
2979 silly resolved      [ 'fs',
2979 silly resolved        'module',
2979 silly resolved        'reading',
2979 silly resolved        'retry',
2979 silly resolved        'retries',
2979 silly resolved        'queue',
2979 silly resolved        'error',
2979 silly resolved        'errors',
2979 silly resolved        'handling',
2979 silly resolved        'EMFILE',
2979 silly resolved        'EAGAIN',
2979 silly resolved        'EINVAL',
2979 silly resolved        'EPERM',
2979 silly resolved        'EACCESS' ],
2979 silly resolved     license: 'BSD',
2979 silly resolved     readme: '# graceful-fs\n\ngraceful-fs functions as a drop-in replacement for the fs module,\nmaking various improvements.\n\nThe improvements are meant to normalize behavior across different\nplatforms and environments, and to make filesystem access more\nresilient to errors.\n\n## Improvements over fs module\n\ngraceful-fs:\n\n* keeps track of how many file descriptors are open, and by default\n  limits this to 1024. Any further requests to open a file are put in a\n  queue until new slots become available. If 1024 turns out to be too\n  much, it decreases the limit further.\n* fixes `lchmod` for Node versions prior to 0.6.2.\n* implements `fs.lutimes` if possible. Otherwise it becomes a noop.\n* ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or\n  `lchown` if the user isn\'t root.\n* makes `lchmod` and `lchown` become noops, if not available.\n* retries reading a file if `read` results in EAGAIN error.\n\nOn Windows, it retries renaming a file for up to one second if `EACCESS`\nor `EPERM` error occurs, likely because antivirus software has locked\nthe directory.\n\n## Configuration\n\nThe maximum number of open file descriptors that graceful-fs manages may\nbe adjusted by setting `fs.MAX_OPEN` to a different number. The default\nis 1024.\n',
2979 silly resolved     readmeFilename: 'README.md',
2979 silly resolved     bugs: { url: 'https://github.com/isaacs/node-graceful-fs/issues' },
2979 silly resolved     _id: 'grace...@1.2.1',
2979 silly resolved     _from: 'graceful-fs@~1' } ]
2980 info install grace...@1.2.1 into /usr/local/lib/node_modules/appium/node_modules/rimraf
2981 info installOne grace...@1.2.1
2982 silly gunzTarPerm extractEntry test/original/blockquotes_with_code_blocks.html
2983 silly gunzTarPerm extractEntry test/original/blockquotes_with_code_blocks.text
2984 verbose from cache /Users/jmiele/.npm/graceful-fs/1.2.1/package/package.json
2985 info /usr/local/lib/node_modules/appium/node_modules/rimraf/node_modules/graceful-fs unbuild
2986 verbose read json /usr/local/lib/node_modules/appium/node_modules/rimraf/node_modules/graceful-fs/package.json
2987 info preinstall exp...@3.0.6
2988 silly lockFile 7351970b-s-appium-node-modules-underscore /usr/local/lib/node_modules/appium/node_modules/underscore
2989 silly lockFile 7351970b-s-appium-node-modules-underscore /usr/local/lib/node_modules/appium/node_modules/underscore
2990 verbose tar unpack /Users/jmiele/.npm/graceful-fs/1.2.1/package.tgz
2991 silly lockFile b79d6bbc--rimraf-node-modules-graceful-fs /usr/local/lib/node_modules/appium/node_modules/rimraf/node_modules/graceful-fs
2992 verbose lock /usr/local/lib/node_modules/appium/node_modules/rimraf/node_modules/graceful-fs /Users/jmiele/.npm/b79d6bbc--rimraf-node-modules-graceful-fs.lock
2993 silly lockFile 06ebdcbd-pm-graceful-fs-1-2-1-package-tgz /Users/jmiele/.npm/graceful-fs/1.2.1/package.tgz
2994 verbose lock /Users/jmiele/.npm/graceful-fs/1.2.1/package.tgz /Users/jmiele/.npm/06ebdcbd-pm-graceful-fs-1-2-1-package-tgz.lock
2995 verbose from cache /usr/local/lib/node_modules/appium/node_modules/express/package.json
2996 silly lockFile acf96bf4-npm-underscore-1-4-4-package-tgz /Users/jmiele/.npm/underscore/1.4.4/package.tgz
2997 silly lockFile acf96bf4-npm-underscore-1-4-4-package-tgz /Users/jmiele/.npm/underscore/1.4.4/package.tgz
2998 silly gunzTarPerm modes [ '755', '644' ]
2999 verbose readDependencies using package.json deps
3000 verbose from cache /usr/local/lib/node_modules/appium/node_modules/express/package.json
3001 silly gunzTarPerm extractEntry tests/unicycle.jpg
3002 verbose readDependencies using package.json deps
3003 silly gunzTarPerm extractEntry vendor/cookie/index.js
3004 verbose cache add [ 'mkd...@0.3.3', null ]
3005 verbose cache add name=undefined spec="mkd...@0.3.3" args=["mkd...@0.3.3",null]
3006 verbose parsed url { protocol: null,
3006 verbose parsed url   slashes: null,
3006 verbose parsed url   auth: null,
3006 verbose parsed url   host: null,
3006 verbose parsed url   port: null,
3006 verbose parsed url   hostname: null,
3006 verbose parsed url   hash: null,
3006 verbose parsed url   search: null,
3006 verbose parsed url   query: null,
3006 verbose parsed url   pathname: 'mkd...@0.3.3',
3006 verbose parsed url   path: 'mkd...@0.3.3',
3006 verbose parsed url   href: 'mkd...@0.3.3' }
3007 verbose cache add name="mkdirp" spec="0.3.3" args=["mkdirp","0.3.3"]
3008 verbose parsed url { protocol: null,
3008 verbose parsed url   slashes: null,
3008 verbose parsed url   auth: null,
3008 verbose parsed url   host: null,
3008 verbose parsed url   port: null,
3008 verbose parsed url   hostname: null,
3008 verbose parsed url   hash: null,
3008 verbose parsed url   search: null,
3008 verbose parsed url   query: null,
3008 verbose parsed url   pathname: '0.3.3',
3008 verbose parsed url   path: '0.3.3',
3008 verbose parsed url   href: '0.3.3' }
3009 verbose addNamed [ 'mkdirp', '0.3.3' ]
3010 verbose addNamed [ '0.3.3', '0.3.3' ]
3011 silly lockFile 453bb99b-mkdirp-0-3-3 mkd...@0.3.3
3012 verbose lock mkd...@0.3.3 /Users/jmiele/.npm/453bb99b-mkdirp-0-3-3.lock
3013 verbose cache add [ 'con...@2.7.2', null ]
3014 verbose cache add name=undefined spec="con...@2.7.2" args=["con...@2.7.2",null]
3015 verbose parsed url { protocol: null,
3015 verbose parsed url   slashes: null,
3015 verbose parsed url   auth: null,
3015 verbose parsed url   host: null,
3015 verbose parsed url   port: null,
3015 verbose parsed url   hostname: null,
3015 verbose parsed url   hash: null,
3015 verbose parsed url   search: null,
3015 verbose parsed url   query: null,
3015 verbose parsed url   pathname: 'con...@2.7.2',
3015 verbose parsed url   path: 'con...@2.7.2',
3015 verbose parsed url   href: 'con...@2.7.2' }
3016 verbose cache add name="connect" spec="2.7.2" args=["connect","2.7.2"]
3017 verbose parsed url { protocol: null,
3017 verbose parsed url   slashes: null,
3017 verbose parsed url   auth: null,
3017 verbose parsed url   host: null,
3017 verbose parsed url   port: null,
3017 verbose parsed url   hostname: null,
3017 verbose parsed url   hash: null,
3017 verbose parsed url   search: null,
3017 verbose parsed url   query: null,
3017 verbose parsed url   pathname: '2.7.2',
3017 verbose parsed url   path: '2.7.2',
3017 verbose parsed url   href: '2.7.2' }
3018 verbose addNamed [ 'connect', '2.7.2' ]
3019 verbose addNamed [ '2.7.2', '2.7.2' ]
3020 silly lockFile 170d9bff-connect-2-7-2 con...@2.7.2
3021 verbose lock con...@2.7.2 /Users/jmiele/.npm/170d9bff-connect-2-7-2.lock
3022 verbose cache add [ 'comm...@0.6.1', null ]
3023 verbose cache add name=undefined spec="comm...@0.6.1" args=["comm...@0.6.1",null]
3024 verbose parsed url { protocol: null,
3024 verbose parsed url   slashes: null,
3024 verbose parsed url   auth: null,
3024 verbose parsed url   host: null,
3024 verbose parsed url   port: null,
3024 verbose parsed url   hostname: null,
3024 verbose parsed url   hash: null,
3024 verbose parsed url   search: null,
3024 verbose parsed url   query: null,
3024 verbose parsed url   pathname: 'comm...@0.6.1',
3024 verbose parsed url   path: 'comm...@0.6.1',
3024 verbose parsed url   href: 'comm...@0.6.1' }
3025 verbose cache add name="commander" spec="0.6.1" args=["commander","0.6.1"]
3026 verbose parsed url { protocol: null,
3026 verbose parsed url   slashes: null,
3026 verbose parsed url   auth: null,
3026 verbose parsed url   host: null,
3026 verbose parsed url   port: null,
3026 verbose parsed url   hostname: null,
3026 verbose parsed url   hash: null,
3026 verbose parsed url   search: null,
3026 verbose parsed url   query: null,
3026 verbose parsed url   pathname: '0.6.1',
3026 verbose parsed url   path: '0.6.1',
3026 verbose parsed url   href: '0.6.1' }
3027 verbose addNamed [ 'commander', '0.6.1' ]
3028 verbose addNamed [ '0.6.1', '0.6.1' ]
3029 silly lockFile fa16a2ce-commander-0-6-1 comm...@0.6.1
3030 verbose lock comm...@0.6.1 /Users/jmiele/.npm/fa16a2ce-commander-0-6-1.lock
3031 verbose cache add [ 'coo...@0.0.5', null ]
3032 verbose cache add name=undefined spec="coo...@0.0.5" args=["coo...@0.0.5",null]
3033 verbose parsed url { protocol: null,
3033 verbose parsed url   slashes: null,
3033 verbose parsed url   auth: null,
3033 verbose parsed url   host: null,
3033 verbose parsed url   port: null,
3033 verbose parsed url   hostname: null,
3033 verbose parsed url   hash: null,
3033 verbose parsed url   search: null,
3033 verbose parsed url   query: null,
3033 verbose parsed url   pathname: 'coo...@0.0.5',
3033 verbose parsed url   path: 'coo...@0.0.5',
3033 verbose parsed url   href: 'coo...@0.0.5' }
3034 verbose cache add name="cookie" spec="0.0.5" args=["cookie","0.0.5"]
3035 verbose parsed url { protocol: null,
3035 verbose parsed url   slashes: null,
3035 verbose parsed url   auth: null,
3035 verbose parsed url   host: null,
3035 verbose parsed url   port: null,
3035 verbose parsed url   hostname: null,
3035 verbose parsed url   hash: null,
3035 verbose parsed url   search: null,
3035 verbose parsed url   query: null,
3035 verbose parsed url   pathname: '0.0.5',
3035 verbose parsed url   path: '0.0.5',
3035 verbose parsed url   href: '0.0.5' }
3036 verbose addNamed [ 'cookie', '0.0.5' ]
3037 verbose addNamed [ '0.0.5', '0.0.5' ]
3038 silly lockFile fe08ced7-cookie-0-0-5 coo...@0.0.5
3039 verbose lock coo...@0.0.5 /Users/jmiele/.npm/fe08ced7-cookie-0-0-5.lock
3040 verbose cache add [ 'range-...@0.0.4', null ]
3041 verbose cache add name=undefined spec="range-...@0.0.4" args=["range-...@0.0.4",null]
3042 verbose parsed url { protocol: null,
3042 verbose parsed url   slashes: null,
3042 verbose parsed url   auth: null,
3042 verbose parsed url   host: null,
3042 verbose parsed url   port: null,
3042 verbose parsed url   hostname: null,
3042 verbose parsed url   hash: null,
3042 verbose parsed url   search: null,
3042 verbose parsed url   query: null,
3042 verbose parsed url   pathname: 'range-...@0.0.4',
3042 verbose parsed url   path: 'range-...@0.0.4',
3042 verbose parsed url   href: 'range-...@0.0.4' }
3043 verbose cache add name="range-parser" spec="0.0.4" args=["range-parser","0.0.4"]
3044 verbose parsed url { protocol: null,
3044 verbose parsed url   slashes: null,
3044 verbose parsed url   auth: null,
3044 verbose parsed url   host: null,
3044 verbose parsed url   port: null,
3044 verbose parsed url   hostname: null,
3044 verbose parsed url   hash: null,
3044 verbose parsed url   search: null,
3044 verbose parsed url   query: null,
3044 verbose parsed url   pathname: '0.0.4',
3044 verbose parsed url   path: '0.0.4',
3044 verbose parsed url   href: '0.0.4' }
3045 verbose addNamed [ 'range-parser', '0.0.4' ]
3046 verbose addNamed [ '0.0.4', '0.0.4' ]
3047 silly lockFile 0760c556-range-parser-0-0-4 range-...@0.0.4
3048 verbose lock range-...@0.0.4 /Users/jmiele/.npm/0760c556-range-parser-0-0-4.lock
3049 verbose cache add [ 'buffer...@0.1.1', null ]
3050 verbose cache add name=undefined spec="buffer...@0.1.1" args=["buffer...@0.1.1",null]
3051 verbose parsed url { protocol: null,
3051 verbose parsed url   slashes: null,
3051 verbose parsed url   auth: null,
3051 verbose parsed url   host: null,
3051 verbose parsed url   port: null,
3051 verbose parsed url   hostname: null,
3051 verbose parsed url   hash: null,
3051 verbose parsed url   search: null,
3051 verbose parsed url   query: null,
3051 verbose parsed url   pathname: 'buffer...@0.1.1',
3051 verbose parsed url   path: 'buffer...@0.1.1',
3051 verbose parsed url   href: 'buffer...@0.1.1' }
3052 verbose cache add name="buffer-crc32" spec="0.1.1" args=["buffer-crc32","0.1.1"]
3053 verbose parsed url { protocol: null,
3053 verbose parsed url   slashes: null,
3053 verbose parsed url   auth: null,
3053 verbose parsed url   host: null,
3053 verbose parsed url   port: null,
3053 verbose parsed url   hostname: null,
3053 verbose parsed url   hash: null,
3053 verbose parsed url   search: null,
3053 verbose parsed url   query: null,
3053 verbose parsed url   pathname: '0.1.1',
3053 verbose parsed url   path: '0.1.1',
3053 verbose parsed url   href: '0.1.1' }
3054 verbose addNamed [ 'buffer-crc32', '0.1.1' ]
3055 verbose addNamed [ '0.1.1', '0.1.1' ]
3056 silly lockFile 8fdeba6f-buffer-crc32-0-1-1 buffer...@0.1.1
3057 verbose lock buffer...@0.1.1 /Users/jmiele/.npm/8fdeba6f-buffer-crc32-0-1-1.lock
3058 silly gunzTarPerm extractEntry test/original/code_blocks.html
3059 silly gunzTarPerm extractEntry test/original/code_blocks.text
3061 silly registry.get cb [ 304,
3061 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3061 silly registry.get     etag: '"EN7BWQ7ESOJ7R0SBIBZDB8EEM"',
3061 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3061 silly registry.get     'content-length': '0' } ]
3062 verbose etag nopt from cache
3063 verbose cache add [ 'fr...@0.1.0', null ]
3064 verbose cache add name=undefined spec="fr...@0.1.0" args=["fr...@0.1.0",null]
3065 verbose parsed url { protocol: null,
3065 verbose parsed url   slashes: null,
3065 verbose parsed url   auth: null,
3065 verbose parsed url   host: null,
3065 verbose parsed url   port: null,
3065 verbose parsed url   hostname: null,
3065 verbose parsed url   hash: null,
3065 verbose parsed url   search: null,
3065 verbose parsed url   query: null,
3065 verbose parsed url   pathname: 'fr...@0.1.0',
3065 verbose parsed url   path: 'fr...@0.1.0',
3065 verbose parsed url   href: 'fr...@0.1.0' }
3066 verbose cache add name="fresh" spec="0.1.0" args=["fresh","0.1.0"]
3067 verbose parsed url { protocol: null,
3067 verbose parsed url   slashes: null,
3067 verbose parsed url   auth: null,
3067 verbose parsed url   host: null,
3067 verbose parsed url   port: null,
3067 verbose parsed url   hostname: null,
3067 verbose parsed url   hash: null,
3067 verbose parsed url   search: null,
3067 verbose parsed url   query: null,
3067 verbose parsed url   pathname: '0.1.0',
3067 verbose parsed url   path: '0.1.0',
3067 verbose parsed url   href: '0.1.0' }
3068 verbose addNamed [ 'fresh', '0.1.0' ]
3069 verbose addNamed [ '0.1.0', '0.1.0' ]
3070 silly lockFile 3dea7da8-fresh-0-1-0 fr...@0.1.0
3071 verbose lock fr...@0.1.0 /Users/jmiele/.npm/3dea7da8-fresh-0-1-0.lock
3072 verbose cache add [ 'met...@0.0.1', null ]
3073 verbose cache add name=undefined spec="met...@0.0.1" args=["met...@0.0.1",null]
3074 verbose parsed url { protocol: null,
3074 verbose parsed url   slashes: null,
3074 verbose parsed url   auth: null,
3074 verbose parsed url   host: null,
3074 verbose parsed url   port: null,
3074 verbose parsed url   hostname: null,
3074 verbose parsed url   hash: null,
3074 verbose parsed url   search: null,
3074 verbose parsed url   query: null,
3074 verbose parsed url   pathname: 'met...@0.0.1',
3074 verbose parsed url   path: 'met...@0.0.1',
3074 verbose parsed url   href: 'met...@0.0.1' }
3075 verbose cache add name="methods" spec="0.0.1" args=["methods","0.0.1"]
3076 verbose parsed url { protocol: null,
3076 verbose parsed url   slashes: null,
3076 verbose parsed url   auth: null,
3076 verbose parsed url   host: null,
3076 verbose parsed url   port: null,
3076 verbose parsed url   hostname: null,
3076 verbose parsed url   hash: null,
3076 verbose parsed url   search: null,
3076 verbose parsed url   query: null,
3076 verbose parsed url   pathname: '0.0.1',
3076 verbose parsed url   path: '0.0.1',
3076 verbose parsed url   href: '0.0.1' }
3077 verbose addNamed [ 'methods', '0.0.1' ]
3078 verbose addNamed [ '0.0.1', '0.0.1' ]
3079 silly lockFile 209c2920-methods-0-0-1 met...@0.0.1
3080 verbose lock met...@0.0.1 /Users/jmiele/.npm/209c2920-methods-0-0-1.lock
3081 verbose cache add [ 'se...@0.1.0', null ]
3082 verbose cache add name=undefined spec="se...@0.1.0" args=["se...@0.1.0",null]
3083 verbose parsed url { protocol: null,
3083 verbose parsed url   slashes: null,
3083 verbose parsed url   auth: null,
3083 verbose parsed url   host: null,
3083 verbose parsed url   port: null,
3083 verbose parsed url   hostname: null,
3083 verbose parsed url   hash: null,
3083 verbose parsed url   search: null,
3083 verbose parsed url   query: null,
3083 verbose parsed url   pathname: 'se...@0.1.0',
3083 verbose parsed url   path: 'se...@0.1.0',
3083 verbose parsed url   href: 'se...@0.1.0' }
3084 verbose cache add name="send" spec="0.1.0" args=["send","0.1.0"]
3085 verbose parsed url { protocol: null,
3085 verbose parsed url   slashes: null,
3085 verbose parsed url   auth: null,
3085 verbose parsed url   host: null,
3085 verbose parsed url   port: null,
3085 verbose parsed url   hostname: null,
3085 verbose parsed url   hash: null,
3085 verbose parsed url   search: null,
3085 verbose parsed url   query: null,
3085 verbose parsed url   pathname: '0.1.0',
3085 verbose parsed url   path: '0.1.0',
3085 verbose parsed url   href: '0.1.0' }
3086 verbose addNamed [ 'send', '0.1.0' ]
3087 verbose addNamed [ '0.1.0', '0.1.0' ]
3088 silly lockFile ef2886cd-send-0-1-0 se...@0.1.0
3089 verbose lock se...@0.1.0 /Users/jmiele/.npm/ef2886cd-send-0-1-0.lock
3090 verbose cache add [ 'cookie-s...@0.0.1', null ]
3091 verbose cache add name=undefined spec="cookie-s...@0.0.1" args=["cookie-s...@0.0.1",null]
3092 verbose parsed url { protocol: null,
3092 verbose parsed url   slashes: null,
3092 verbose parsed url   auth: null,
3092 verbose parsed url   host: null,
3092 verbose parsed url   port: null,
3092 verbose parsed url   hostname: null,
3092 verbose parsed url   hash: null,
3092 verbose parsed url   search: null,
3092 verbose parsed url   query: null,
3092 verbose parsed url   pathname: 'cookie-s...@0.0.1',
3092 verbose parsed url   path: 'cookie-s...@0.0.1',
3092 verbose parsed url   href: 'cookie-s...@0.0.1' }
3093 verbose cache add name="cookie-signature" spec="0.0.1" args=["cookie-signature","0.0.1"]
3094 verbose parsed url { protocol: null,
3094 verbose parsed url   slashes: null,
3094 verbose parsed url   auth: null,
3094 verbose parsed url   host: null,
3094 verbose parsed url   port: null,
3094 verbose parsed url   hostname: null,
3094 verbose parsed url   hash: null,
3094 verbose parsed url   search: null,
3094 verbose parsed url   query: null,
3094 verbose parsed url   pathname: '0.0.1',
3094 verbose parsed url   path: '0.0.1',
3094 verbose parsed url   href: '0.0.1' }
3095 verbose addNamed [ 'cookie-signature', '0.0.1' ]
3096 verbose addNamed [ '0.0.1', '0.0.1' ]
3097 silly lockFile f4fbff07-cookie-signature-0-0-1 cookie-s...@0.0.1
3098 verbose lock cookie-s...@0.0.1 /Users/jmiele/.npm/f4fbff07-cookie-signature-0-0-1.lock
3099 verbose cache add [ 'debug@*', null ]
3100 verbose cache add name=undefined spec="debug@*" args=["debug@*",null]
3101 verbose parsed url { protocol: null,
3101 verbose parsed url   slashes: null,
3101 verbose parsed url   auth: null,
3101 verbose parsed url   host: null,
3101 verbose parsed url   port: null,
3101 verbose parsed url   hostname: null,
3101 verbose parsed url   hash: null,
3101 verbose parsed url   search: null,
3101 verbose parsed url   query: null,
3101 verbose parsed url   pathname: 'debug@*',
3101 verbose parsed url   path: 'debug@*',
3101 verbose parsed url   href: 'debug@*' }
3102 verbose cache add name="debug" spec="*" args=["debug","*"]
3103 verbose parsed url { protocol: null,
3103 verbose parsed url   slashes: null,
3103 verbose parsed url   auth: null,
3103 verbose parsed url   host: null,
3103 verbose parsed url   port: null,
3103 verbose parsed url   hostname: null,
3103 verbose parsed url   hash: null,
3103 verbose parsed url   search: null,
3103 verbose parsed url   query: null,
3103 verbose parsed url   pathname: '*',
3103 verbose parsed url   path: '*',
3103 verbose parsed url   href: '*' }
3104 verbose addNamed [ 'debug', '*' ]
3105 verbose addNamed [ null, '' ]
3106 silly lockFile 3ac45eff-debug debug@*
3107 verbose lock debug@* /Users/jmiele/.npm/3ac45eff-debug.lock
3109 silly registry.get cb [ 304,
3109 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3109 silly registry.get     etag: '"AGVXE9065DV8WRHG6W2FFW7CV"',
3109 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3109 silly registry.get     'content-length': '0' } ]
3110 verbose etag resolve from cache
3111 silly addNameRange { name: 'debug', range: '', hasData: false }
3112 info preinstall under...@1.4.4
3113 silly gunzTarPerm extractEntry package.json
3115 silly registry.get cb [ 304,
3115 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3115 silly registry.get     etag: '"BXIX5F9F608QS414YZPBS4ACC"',
3115 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3115 silly registry.get     'content-length': '0' } ]
3116 verbose etag findup-sync from cache
3118 silly registry.get cb [ 304,
3118 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3118 silly registry.get     etag: '"802SUU0JT0M6CV5B2UX1GTSPU"',
3118 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3118 silly registry.get     'content-length': '0' } ]
3119 verbose etag sax/0.5.2 from cache
3120 verbose from cache /usr/local/lib/node_modules/appium/node_modules/underscore/package.json
3121 verbose readDependencies using package.json deps
3122 verbose from cache /usr/local/lib/node_modules/appium/node_modules/underscore/package.json
3123 verbose url raw mkdirp/0.3.3
3124 verbose url resolving [ 'https://registry.npmjs.org/', './mkdirp/0.3.3' ]
3125 verbose url resolved https://registry.npmjs.org/mkdirp/0.3.3
3126 info trying registry request attempt 1 at 10:59:47
3127 verbose etag "3ULD31ILDU86U22V4KQEZTLOL"
3129 verbose url raw connect/2.7.2
3130 verbose url resolving [ 'https://registry.npmjs.org/', './connect/2.7.2' ]
3132 info trying registry request attempt 1 at 10:59:47
3133 verbose etag "CY6VKP2J24A6C0D3CWIKX4KWN"
3135 verbose url raw commander/0.6.1
3136 verbose url resolving [ 'https://registry.npmjs.org/', './commander/0.6.1' ]
3138 info trying registry request attempt 1 at 10:59:47
3139 verbose etag "D7K1H7LZWS5MZ5237EITUFCEM"
3141 verbose url raw cookie/0.0.5
3142 verbose url resolving [ 'https://registry.npmjs.org/', './cookie/0.0.5' ]
3143 verbose url resolved https://registry.npmjs.org/cookie/0.0.5
3144 info trying registry request attempt 1 at 10:59:47
3145 verbose etag "6LJN33H1HL085DMJE4P3CG40V"
3147 verbose url raw range-parser/0.0.4
3148 verbose url resolving [ 'https://registry.npmjs.org/', './range-parser/0.0.4' ]
3150 info trying registry request attempt 1 at 10:59:47
3151 verbose etag "4LYQEZP7F0RJGVO8CMQ7D0ZM2"
3153 verbose url raw buffer-crc32/0.1.1
3154 verbose url resolving [ 'https://registry.npmjs.org/', './buffer-crc32/0.1.1' ]
3156 info trying registry request attempt 1 at 10:59:47
3157 verbose etag "3MGT6DA4AJWA64BSFFNWXYKDA"
3159 verbose readDependencies using package.json deps
3160 silly resolved []
3161 verbose about to build /usr/local/lib/node_modules/appium/node_modules/underscore
3162 info build /usr/local/lib/node_modules/appium/node_modules/underscore
3163 verbose from cache /usr/local/lib/node_modules/appium/node_modules/underscore/package.json
3164 verbose linkStuff [ true,
3164 verbose linkStuff   '/usr/local/lib/node_modules',
3164 verbose linkStuff   false,
3164 verbose linkStuff   '/usr/local/lib/node_modules/appium/node_modules' ]
3165 info linkStuff under...@1.4.4
3166 verbose read json /Users/jmiele/appium-test/package.json
3167 silly gunzTarPerm extractEntry .npmignore
3168 silly gunzTarPerm extractEntry README.md
3169 verbose url raw fresh/0.1.0
3170 verbose url resolving [ 'https://registry.npmjs.org/', './fresh/0.1.0' ]
3171 verbose url resolved https://registry.npmjs.org/fresh/0.1.0
3172 info trying registry request attempt 1 at 10:59:47
3173 verbose etag "GJ32W9WQ9ABBY40CFQ8OX68Q"
3175 verbose url raw methods/0.0.1
3176 verbose url resolving [ 'https://registry.npmjs.org/', './methods/0.0.1' ]
3178 info trying registry request attempt 1 at 10:59:47
3179 verbose etag "27PNDVCR34N9PLUBD22E2N507"
3181 verbose url raw send/0.1.0
3182 verbose url resolving [ 'https://registry.npmjs.org/', './send/0.1.0' ]
3183 verbose url resolved https://registry.npmjs.org/send/0.1.0
3184 info trying registry request attempt 1 at 10:59:47
3185 verbose etag "CTBGJUNY4PF9Y8G7O7HVZDQCH"
3187 verbose url raw cookie-signature/0.0.1
3188 verbose url resolving [ 'https://registry.npmjs.org/', './cookie-signature/0.0.1' ]
3190 info trying registry request attempt 1 at 10:59:47
3191 verbose etag "CY3CKMUCU529W3Q2ALVZW8AUW"
3193 verbose url raw debug
3194 verbose url resolving [ 'https://registry.npmjs.org/', './debug' ]
3195 verbose url resolved https://registry.npmjs.org/debug
3196 info trying registry request attempt 1 at 10:59:47
3197 verbose etag "2NQFBC5T4PM83LSCUT58F4178"
3199 silly addNameRange number 2 { name: 'nopt', range: '>=1.0.10- <1.1.0-', hasData: true }
3200 silly addNameRange versions [ 'nopt',
3200 silly addNameRange   [ '1.0.0',
3200 silly addNameRange     '1.0.1',
3200 silly addNameRange     '1.0.2',
3200 silly addNameRange     '1.0.3',
3200 silly addNameRange     '1.0.4',
3200 silly addNameRange     '1.0.5',
3200 silly addNameRange     '1.0.6',
3200 silly addNameRange     '1.0.7',
3200 silly addNameRange     '1.0.8',
3200 silly addNameRange     '1.0.9',
3200 silly addNameRange     '1.0.10',
3200 silly addNameRange     '2.0.0',
3200 silly addNameRange     '2.1.0',
3200 silly addNameRange     '2.1.1' ] ]
3201 verbose addNamed [ 'nopt', '1.0.10' ]
3202 verbose addNamed [ '1.0.10', '1.0.10' ]
3203 silly lockFile 1be903a1-nopt-1-0-10 no...@1.0.10
3204 verbose lock no...@1.0.10 /Users/jmiele/.npm/1be903a1-nopt-1-0-10.lock
3205 verbose linkBins under...@1.4.4
3206 verbose linkMans under...@1.4.4
3207 verbose rebuildBundles under...@1.4.4
3208 silly gunzTarPerm extractEntry test/original/code_spans.html
3209 silly gunzTarPerm extractEntry test/original/code_spans.text
3210 silly addNameRange number 2 { name: 'resolve', range: '>=0.3.1- <0.4.0-', hasData: true }
3211 silly addNameRange versions [ 'resolve',
3211 silly addNameRange   [ '0.0.0',
3211 silly addNameRange     '0.0.1',
3211 silly addNameRange     '0.0.2',
3211 silly addNameRange     '0.0.3',
3211 silly addNameRange     '0.0.4',
3211 silly addNameRange     '0.1.0',
3211 silly addNameRange     '0.1.2',
3211 silly addNameRange     '0.1.3',
3211 silly addNameRange     '0.2.0',
3211 silly addNameRange     '0.2.1',
3211 silly addNameRange     '0.2.2',
3211 silly addNameRange     '0.2.3',
3211 silly addNameRange     '0.2.4',
3211 silly addNameRange     '0.2.5',
3211 silly addNameRange     '0.2.6',
3211 silly addNameRange     '0.2.7',
3211 silly addNameRange     '0.2.8',
3211 silly addNameRange     '0.3.0',
3211 silly addNameRange     '0.3.1' ] ]
3212 verbose addNamed [ 'resolve', '0.3.1' ]
3213 verbose addNamed [ '0.3.1', '0.3.1' ]
3214 silly lockFile 95464470-resolve-0-3-1 res...@0.3.1
3215 verbose lock res...@0.3.1 /Users/jmiele/.npm/95464470-resolve-0-3-1.lock
3216 info install under...@1.4.4
3217 verbose read json /Users/jmiele/.npm/nopt/1.0.10/package/package.json
3218 verbose read json /Users/jmiele/.npm/resolve/0.3.1/package/package.json
3219 silly addNameRange number 2 { name: 'findup-sync', range: '>=0.1.0- <0.2.0-', hasData: true }
3220 silly addNameRange versions [ 'findup-sync', [ '0.1.0', '0.1.1', '0.1.2' ] ]
3221 verbose addNamed [ 'findup-sync', '0.1.2' ]
3222 verbose addNamed [ '0.1.2', '0.1.2' ]
3223 silly lockFile d7184b2b-findup-sync-0-1-2 findu...@0.1.2
3224 verbose lock findu...@0.1.2 /Users/jmiele/.npm/d7184b2b-findup-sync-0-1-2.lock
3225 info postinstall under...@1.4.4
3226 verbose read json /Users/jmiele/.npm/sax/0.5.2/package/package.json
3227 verbose read json /Users/jmiele/.npm/findup-sync/0.1.2/package/package.json
3228 silly gunzTarPerm extractEntry LICENSE
3229 silly gunzTarPerm extractEntry graceful-fs.js
3230 silly gunzTarPerm extractEntry test/original/hard_wrapped_paragraphs_with_list_like_lines.html
3231 silly gunzTarPerm extractEntry test/original/hard_wrapped_paragraphs_with_list_like_lines.text
3232 silly gunzTarPerm extractEntry vendor/cookie/jar.js
3233 silly gunzTarPerm extractEntry node_modules/form-data/package.json
3234 silly lockFile 1be903a1-nopt-1-0-10 no...@1.0.10
3235 silly lockFile 1be903a1-nopt-1-0-10 no...@1.0.10
3236 silly lockFile 95464470-resolve-0-3-1 res...@0.3.1
3237 silly lockFile 95464470-resolve-0-3-1 res...@0.3.1
3238 silly lockFile 5f76915a-sax-0-5-2 s...@0.5.2
3239 silly lockFile 5f76915a-sax-0-5-2 s...@0.5.2
3240 silly lockFile 79f78dba-nopt-1-0-10 nopt@~1.0.10
3241 silly lockFile 79f78dba-nopt-1-0-10 nopt@~1.0.10
3242 silly lockFile 7958d065-resolve-0-3-1 resolve@~0.3.1
3243 silly lockFile 7958d065-resolve-0-3-1 resolve@~0.3.1
3244 silly lockFile d7184b2b-findup-sync-0-1-2 findu...@0.1.2
3245 silly lockFile d7184b2b-findup-sync-0-1-2 findu...@0.1.2
3246 silly gunzTarPerm extractEntry test/open.js
3247 silly resolved [ { name: 'sax',
3247 silly resolved     description: 'An evented streaming XML parser in JavaScript',
3247 silly resolved     author:
3247 silly resolved      { name: 'Isaac Z. Schlueter',
3247 silly resolved        email: 'i...@izs.me',
3247 silly resolved        url: 'http://blog.izs.me/' },
3247 silly resolved     version: '0.5.2',
3247 silly resolved     main: 'lib/sax.js',
3247 silly resolved     license: 'BSD',
3247 silly resolved     scripts: { test: 'node test/index.js' },
3247 silly resolved     repository: { type: 'git', url: 'git://github.com/isaacs/sax-js.git' },
3247 silly resolved     contributors:
3247 silly resolved      [ [Object],
3247 silly resolved        [Object],
3247 silly resolved        [Object],
3247 silly resolved        [Object],
3247 silly resolved        [Object],
3247 silly resolved        [Object],
3247 silly resolved        [Object],
3247 silly resolved        [Object],
3247 silly resolved        [Object] ],
3247 silly resolved     readme: '# sax js\n\nA sax-style parser for XML and HTML.\n\nDesigned with [node](http://nodejs.org/) in mind, but should work fine in\nthe browser or other CommonJS implementations.\n\n## What This Is\n\n* A very simple tool to parse through an XML string.\n* A stepping stone to a streaming HTML parser.\n* A handy way to deal with RSS and other mostly-ok-but-kinda-broken XML \n  docs.\n\n## What This Is (probably) Not\n\n* An HTML Parser - That\'s a fine goal, but this isn\'t it.  It\'s just\n  XML.\n* A DOM Builder - You can use it to build an object model out of XML,\n  but it doesn\'t do that out of the box.\n* XSLT - No DOM = no querying.\n* 100% Compliant with (some other SAX implementation) - Most SAX\n  implementations are in Java and do a lot more than this does.\n* An XML Validator - It does a little validation when in strict mode, but\n  not much.\n* A Schema-Aware XSD Thing - Schemas are an exercise in fetishistic \n  masochism.\n* A DTD-aware Thing - Fetching DTDs is a much bigger job.\n\n## Regarding `<!DOCTYPE`s and `<!ENTITY`s\n\nThe parser will handle the basic XML entities in text nodes and attribute\nvalues: `&amp; &lt; &gt; &apos; &quot;`. It\'s possible to define additional\nentities in XML by putting them in the DTD. This parser doesn\'t do anything\nwith that. If you want to listen to the `ondoctype` event, and then fetch\nthe doctypes, and read the entities and add them to `parser.ENTITIES`, then\nbe my guest.\n\nUnknown entities will fail in strict mode, and in loose mode, will pass\nthrough unmolested.\n\n## Usage\n\n    var sax = require("./lib/sax"),\n      strict = true, // set to false for html-mode\n      parser = sax.parser(strict);\n\n    parser.onerror = function (e) {\n      // an error happened.\n    };\n    parser.ontext = function (t) {\n      // got some text.  t is the string of text.\n    };\n    parser.onopentag = function (node) {\n      // opened a tag.  node has "name" and "attributes"\n    };\n    parser.onattribute = function (attr) {\n      // an attribute.  attr has "name" and "value"\n    };\n    parser.onend = function () {\n      // parser stream is done, and ready to have more stuff written to it.\n    };\n\n    parser.write(\'<xml>Hello, <who name="world">world</who>!</xml>\').close();\n\n    // stream usage\n    // takes the same options as the parser\n    var saxStream = require("sax").createStream(strict, options)\n    saxStream.on("error", function (e) {\n      // unhandled errors will throw, since this is a proper node\n      // event emitter.\n      console.error("error!", e)\n      // clear the error\n      this._parser.error = null\n      this._parser.resume()\n    })\n    saxStream.on("opentag", function (node) {\n      // same object as above\n    })\n    // pipe is supported, and it\'s readable/writable\n    // same chunks coming in also go out.\n    fs.createReadStream("file.xml")\n      .pipe(saxStream)\n      .pipe(fs.createWriteStream("file-copy.xml"))\n\n\n\n## Arguments\n\nPass the following arguments to the parser function.  All are optional.\n\n`strict` - Boolean. Whether or not to be a jerk. Default: `false`.\n\n`opt` - Object bag of settings regarding string formatting.  All default to `false`.\n\nSettings supported:\n\n* `trim` - Boolean. Whether or not to trim text and comment nodes.\n* `normalize` - Boolean. If true, then turn any whitespace into a single\n  space.\n* `lowercase` - Boolean. If true, then lowercase tag names and attribute names\n  in loose mode, rather than uppercasing them.\n* `xmlns` - Boolean. If true, then namespaces are supported.\n* `position` - Boolean. If false, then don\'t track line/col/position.\n\n## Methods\n\n`write` - Write bytes onto the stream. You don\'t have to do this all at\nonce. You can keep writing as much as you want.\n\n`close` - Close the stream. Once closed, no more data may be written until\nit is done processing the buffer, which is signaled by the `end` event.\n\n`resume` - To gracefully handle errors, assign a listener to the `error`\nevent. Then, when the error is taken care of, you can call `resume` to\ncontinue parsing. Otherwise, the parser will not continue while in an error\nstate.\n\n## Members\n\nAt all times, the parser object will have the following members:\n\n`line`, `column`, `position` - Indications of the position in the XML\ndocument where the parser currently is looking.\n\n`startTagPosition` - Indicates the position where the current tag starts.\n\n`closed` - Boolean indicating whether or not the parser can be written to.\nIf it\'s `true`, then wait for the `ready` event to write again.\n\n`strict` - Boolean indicating whether or not the parser is a jerk.\n\n`opt` - Any options passed into the constructor.\n\n`tag` - The current tag being dealt with.\n\nAnd a bunch of other stuff that you probably shouldn\'t touch.\n\n## Events\n\nAll events emit with a single argument. To listen to an event, assign a\nfunction to `on<eventname>`. Functions get executed in the this-context of\nthe parser object. The list of supported events are also in the exported\n`EVENTS` array.\n\nWhen using the stream interface, assign handlers using the EventEmitter\n`on` function in the normal fashion.\n\n`error` - Indication that something bad happened. The error will be hanging\nout on `parser.error`, and must be deleted before parsing can continue. By\nlistening to this event, you can keep an eye on that kind of stuff. Note:\nthis happens *much* more in strict mode. Argument: instance of `Error`.\n\n`text` - Text node. Argument: string of text.\n\n`doctype` - The `<!DOCTYPE` declaration. Argument: doctype string.\n\n`processinginstruction` - Stuff like `<?xml foo="blerg" ?>`. Argument:\nobject with `name` and `body` members. Attributes are not parsed, as\nprocessing instructions have implementation dependent semantics.\n\n`sgmldeclaration` - Random SGML declarations. Stuff like `<!ENTITY p>`\nwould trigger this kind of event. This is a weird thing to support, so it\nmight go away at some point. SAX isn\'t intended to be used to parse SGML,\nafter all.\n\n`opentag` - An opening tag. Argument: object with `name` and `attributes`.\nIn non-strict mode, tag names are uppercased, unless the `lowercase`\noption is set.  If the `xmlns` option is set, then it will contain\nnamespace binding information on the `ns` member, and will have a\n`local`, `prefix`, and `uri` member.\n\n`closetag` - A closing tag. In loose mode, tags are auto-closed if their\nparent closes. In strict mode, well-formedness is enforced. Note that\nself-closing tags will have `closeTag` emitted immediately after `openTag`.\nArgument: tag name.\n\n`attribute` - An attribute node.  Argument: object with `name` and `value`.\nIn non-strict mode, attribute names are uppercased, unless the `lowercase`\noption is set.  If the `xmlns` option is set, it will also contains namespace\ninformation.\n\n`comment` - A comment node.  Argument: the string of the comment.\n\n`opencdata` - The opening tag of a `<![CDATA[` block.\n\n`cdata` - The text of a `<![CDATA[` block. Since `<![CDATA[` blocks can get\nquite large, this event may fire multiple times for a single block, if it\nis broken up into multiple `write()`s. Argument: the string of random\ncharacter data.\n\n`closecdata` - The closing tag (`]]>`) of a `<![CDATA[` block.\n\n`opennamespace` - If the `xmlns` option is set, then this event will\nsignal the start of a new namespace binding.\n\n`closenamespace` - If the `xmlns` option is set, then this event will\nsignal the end of a namespace binding.\n\n`end` - Indication that the closed stream has ended.\n\n`ready` - Indication that the stream has reset, and is ready to be written\nto.\n\n`noscript` - In non-strict mode, `<script>` tags trigger a `"script"`\nevent, and their contents are not checked for special xml characters.\nIf you pass `noscript: true`, then this behavior is suppressed.\n\n## Reporting Problems\n\nIt\'s best to write a failing test if you find an issue.  I will always\naccept pull requests with failing tests if they demonstrate intended\nbehavior, but it is very hard to figure out what issue you\'re describing\nwithout a test.  Writing a test is also the best way for you yourself\nto figure out if you really understand the issue you think you have with\nsax-js.\n',
3247 silly resolved     readmeFilename: 'README.md',
3247 silly resolved     bugs: { url: 'https://github.com/isaacs/sax-js/issues' },
3247 silly resolved     _id: 's...@0.5.2',
3247 silly resolved     _from: 's...@0.5.2' } ]
3248 info install s...@0.5.2 into /usr/local/lib/node_modules/appium/node_modules/xml2js
3249 info installOne s...@0.5.2
3250 verbose read json /usr/local/lib/node_modules/appium/node_modules/prompt/package.json
3251 silly gunzTarPerm extractEntry test/original/horizontal_rules.html
3252 silly gunzTarPerm extractEntry test/original/horizontal_rules.text
3253 verbose from cache /Users/jmiele/.npm/sax/0.5.2/package/package.json
3254 info /usr/local/lib/node_modules/appium/node_modules/xml2js/node_modules/sax unbuild
3255 verbose read json /usr/local/lib/node_modules/appium/node_modules/xml2js/node_modules/sax/package.json
3256 verbose read json /usr/local/lib/node_modules/appium/node_modules/difflib/package.json
3257 silly lockFile 625605b9-findup-sync-0-1-0 findup-sync@~0.1.0
3258 silly lockFile 625605b9-findup-sync-0-1-0 findup-sync@~0.1.0
3259 silly resolved [ { name: 'nopt',
3259 silly resolved     version: '1.0.10',
3259 silly resolved     description: 'Option parsing for Node, supporting types, shorthands, etc. Used by npm.',
3259 silly resolved     author:
3259 silly resolved      { name: 'Isaac Z. Schlueter',
3259 silly resolved        email: 'i...@izs.me',
3259 silly resolved        url: 'http://blog.izs.me/' },
3259 silly resolved     main: 'lib/nopt.js',
3259 silly resolved     scripts: { test: 'node lib/nopt.js' },
3259 silly resolved     repository: { type: 'git', url: 'http://github.com/isaacs/nopt' },
3259 silly resolved     bin: { nopt: './bin/nopt.js' },
3259 silly resolved     license:
3259 silly resolved      { type: 'MIT',
3259 silly resolved        url: 'https://github.com/isaacs/nopt/raw/master/LICENSE' },
3259 silly resolved     dependencies: { abbrev: '1' },
3259 silly resolved     readme: 'If you want to write an option parser, and have it be good, there are\ntwo ways to do it.  The Right Way, and the Wrong Way.\n\nThe Wrong Way is to sit down and write an option parser.  We\'ve all done\nthat.\n\nThe Right Way is to write some complex configurable program with so many\noptions that you go half-insane just trying to manage them all, and put\nit off with duct-tape solutions until you see exactly to the core of the\nproblem, and finally snap and write an awesome option parser.\n\nIf you want to write an option parser, don\'t write an option parser.\nWrite a package manager, or a source control system, or a service\nrestarter, or an operating system.  You probably won\'t end up with a\ngood one of those, but if you don\'t give up, and you are relentless and\ndiligent enough in your procrastination, you may just end up with a very\nnice option parser.\n\n## USAGE\n\n    // my-program.js\n    var nopt = require("nopt")\n      , Stream = require("stream").Stream\n      , path = require("path")\n      , knownOpts = { "foo" : [String, null]\n                    , "bar" : [Stream, Number]\n                    , "baz" : path\n                    , "bloo" : [ "big", "medium", "small" ]\n                    , "flag" : Boolean\n                    , "pick" : Boolean\n                    , "many" : [String, Array]\n                    }\n      , shortHands = { "foofoo" : ["--foo", "Mr. Foo"]\n                     , "b7" : ["--bar", "7"]\n                     , "m" : ["--bloo", "medium"]\n                     , "p" : ["--pick"]\n                     , "f" : ["--flag"]\n                     }\n                 // everything is optional.\n                 // knownOpts and shorthands default to {}\n                 // arg list defaults to process.argv\n                 // slice defaults to 2\n      , parsed = nopt(knownOpts, shortHands, process.argv, 2)\n    console.log(parsed)\n\nThis would give you support for any of the following:\n\n```bash\n$ node my-program.js --foo "blerp" --no-flag\n{ "foo" : "blerp", "flag" : false }\n\n$ node my-program.js ---bar 7 --foo "Mr. Hand" --flag\n{ bar: 7, foo: "Mr. Hand", flag: true }\n\n$ node my-program.js --foo "blerp" -f -----p\n{ foo: "blerp", flag: true, pick: true }\n\n$ node my-program.js -fp --foofoo\n{ foo: "Mr. Foo", flag: true, pick: true }\n\n$ node my-program.js --foofoo -- -fp  # -- stops the flag parsing.\n{ foo: "Mr. Foo", argv: { remain: ["-fp"] } }\n\n$ node my-program.js --blatzk 1000 -fp # unknown opts are ok.\n{ blatzk: 1000, flag: true, pick: true }\n\n$ node my-program.js --blatzk true -fp # but they need a value\n{ blatzk: true, flag: true, pick: true }\n\n$ node my-program.js --no-blatzk -fp # unless they start with "no-"\n{ blatzk: false, flag: true, pick: true }\n\n$ node my-program.js --baz b/a/z # known paths are resolved.\n{ baz: "/Users/isaacs/b/a/z" }\n\n# if Array is one of the types, then it can take many\n# values, and will always be an array.  The other types provided\n# specify what types are allowed in the list.\n\n$ node my-program.js --many 1 --many null --many foo\n{ many: ["1", "null", "foo"] }\n\n$ node my-program.js --many foo\n{ many: ["foo"] }\n```\n\nRead the tests at the bottom of `lib/nopt.js` for more examples of\nwhat this puppy can do.\n\n## Types\n\nThe following types are supported, and defined on `nopt.typeDefs`\n\n* String: A normal string.  No parsing is done.\n* path: A file system path.  Gets resolved against cwd if not absolute.\n* url: A url.  If it doesn\'t parse, it isn\'t accepted.\n* Number: Must be numeric.\n* Date: Must parse as a date. If it does, and `Date` is one of the options,\n  then it will return a Date object, not a string.\n* Boolean: Must be either `true` or `false`.  If an option is a boolean,\n  then it does not need a value, and its presence will imply `true` as\n  the value.  To negate boolean flags, do `--no-whatever` or `--whatever\n  false`\n* NaN: Means that the option is strictly not allowed.  Any value will\n  fail.\n* Stream: An object matching the "Stream" class in node.  Valuable\n  for use when validating programmatically.  (npm uses this to let you\n  supply any WriteStream on the `outfd` and `logfd` config options.)\n* Array: If `Array` is specified as one of the types, then the value\n  will be parsed as a list of options.  This means that multiple values\n  can be specified, and that the value will always be an array.\n\nIf a type is an array of values not on this list, then those are\nconsidered valid values.  For instance, in the example above, the\n`--bloo` option can only be one of `"big"`, `"medium"`, or `"small"`,\nand any other value will be rejected.\n\nWhen parsing unknown fields, `"true"`, `"false"`, and `"null"` will be\ninterpreted as their JavaScript equivalents, and numeric values will be\ninterpreted as a number.\n\nYou can also mix types and values, or multiple types, in a list.  For\ninstance `{ blah: [Number, null] }` would allow a value to be set to\neither a Number or null.\n\nTo define a new type, add it to `nopt.typeDefs`.  Each item in that\nhash is an object with a `type` member and a `validate` method.  The\n`type` member is an object that matches what goes in the type list.  The\n`validate` method is a function that gets called with `validate(data,\nkey, val)`.  Validate methods should assign `data[key]` to the valid\nvalue of `val` if it can be handled properly, or return boolean\n`false` if it cannot.\n\nYou can also call `nopt.clean(data, types, typeDefs)` to clean up a\nconfig object and remove its invalid properties.\n\n## Error Handling\n\nBy default, nopt outputs a warning to standard error when invalid\noptions are found.  You can change this behavior by assigning a method\nto `nopt.invalidHandler`.  This method will be called with\nthe offending `nopt.invalidHandler(key, val, types)`.\n\nIf no `nopt.invalidHandler` is assigned, then it will console.error\nits whining.  If it is assigned to boolean `false` then the warning is\nsuppressed.\n\n## Abbreviations\n\nYes, they are supported.  If you define options like this:\n\n```javascript\n{ "foolhardyelephants" : Boolean\n, "pileofmonkeys" : Boolean }\n```\n\nThen this will work:\n\n```bash\nnode program.js --foolhar --pil\nnode program.js --no-f --pileofmon\n# etc.\n```\n\n## Shorthands\n\nShorthands are a hash of shorter option names to a snippet of args that\nthey expand to.\n\nIf multiple one-character shorthands are all combined, and the\ncombination does not unambiguously match any other option or shorthand,\nthen they will be broken up into their constituent parts.  For example:\n\n```json\n{ "s" : ["--loglevel", "silent"]\n, "g" : "--global"\n, "f" : "--force"\n, "p" : "--parseable"\n, "l" : "--long"\n}\n```\n\n```bash\nnpm ls -sgflp\n# just like doing this:\nnpm ls --loglevel silent --global --force --long --parseable\n```\n\n## The Rest of the args\n\nThe config object returned by nopt is given a special member called\n`argv`, which is an object with the following fields:\n\n* `remain`: The remaining args after all the parsing has occurred.\n* `original`: The args as they originally appeared.\n* `cooked`: The args after flags and shorthands are expanded.\n\n## Slicing\n\nNode programs are called with more or less the exact argv as it appears\nin C land, after the v8 and node-specific options have been plucked off.\nAs such, `argv[0]` is always `node` and `argv[1]` is always the\nJavaScript program being run.\n\nThat\'s usually not very useful to you.  So they\'re sliced off by\ndefault.  If you want them, then you can pass in `0` as the last\nargument, or any other number that you\'d like to slice off the start of\nthe list.\n',
3259 silly resolved     readmeFilename: 'README.md',
3259 silly resolved     bugs: { url: 'https://github.com/isaacs/nopt/issues' },
3259 silly resolved     _id: 'no...@1.0.10',
3259 silly resolved     _from: 'nopt@~1.0.10' },
3259 silly resolved   { name: 'resolve',
3259 silly resolved     description: 'resolve like require.resolve() on behalf of files asynchronously and synchronously',
3259 silly resolved     version: '0.3.1',
3259 silly resolved     repository:
3259 silly resolved      { type: 'git',
3259 silly resolved        url: 'git://github.com/substack/node-resolve.git' },
3259 silly resolved     main: 'index.js',
3259 silly resolved     keywords: [ 'resolve', 'require', 'node', 'module' ],
3259 silly resolved     scripts: { test: 'tap test/*.js' },
3259 silly resolved     devDependencies: { tap: '~0.4.0' },
3259 silly resolved     license: 'MIT',
3259 silly resolved     author:
3259 silly resolved      { name: 'James Halliday',
3259 silly resolved        email: 'ma...@substack.net',
3259 silly resolved        url: 'http://substack.net' },
3259 silly resolved     readme: '# resolve\n\nimplements the [node `require.resolve()`\nalgorithm](http://nodejs.org/docs/v0.4.8/api/all.html#all_Together...)\nsuch that you can `require.resolve()` on behalf of a file asynchronously and\nsynchronously\n\n[![build status](https://secure.travis-ci.org/substack/node-resolve.png)](http://travis-ci.org/substack/node-resolve)\n\n# example\n\nasynchronously resolve:\n\n``` js\nvar resolve = require(\'resolve\');\nresolve(\'tap\', { basedir: __dirname }, function (err, res) {\n    if (err) console.error(err)\n    else console.log(res)\n});\n```\n\n```\n$ node example/async.js\n/home/substack/projects/node-resolve/node_modules/tap/lib/main.js\n```\n\nsynchronously resolve:\n\n``` js\nvar resolve = require(\'resolve\');\nvar res = resolve.sync(\'tap\', { basedir: __dirname });\nconsole.log(res);\n```\n\n```\n$ node example/sync.js\n/home/substack/projects/node-resolve/node_modules/tap/lib/main.js\n```\n\n# methods\n\n``` js\nvar resolve = require(\'resolve\')\n```\n\n## resolve(pkg, opts={}, cb)\n\nAsynchronously resolve the module path string `pkg` into `cb(err, res)`.\n\noptions are:\n\n* opts.basedir - directory to begin resolving from\n\n* opts.extensions - array of file extensions to search in order\n\n* opts.readFile - how to read files asynchronously\n\n* opts.isFile - function to asynchronously test whether a file exists\n\n* opts.packageFilter - transform the parsed package.json contents before looking\nat the "main" field\n\n* opts.paths - require.paths array to use if nothing is found on the normal\nnode_modules recursive walk (probably don\'t use this)\n\ndefault `opts` values:\n\n``` javascript\n{\n    paths: [],\n    basedir: __dirname,\n    extensions: [ \'.js\' ],\n    readFile: fs.readFile,\n    isFile: function (file, cb) {\n        fs.stat(file, function (err, stat) {\n            if (err && err.code === \'ENOENT\') cb(null, false)\n            else if (err) cb(err)\n            else cb(null, stat.isFile())\n        });\n    }\n}\n```\n\n## resolve.sync(pkg, opts)\n\nSynchronously resolve the module path string `pkg`, returning the result and\nthrowing an error when `pkg` can\'t be resolved.\n\noptions are:\n\n* opts.basedir - directory to begin resolving from\n\n* opts.extensions - array of file extensions to search in order\n\n* opts.readFile - how to read files synchronously\n\n* opts.isFile - function to synchronously test whether a file exists\n\n* opts.packageFilter - transform the parsed package.json contents before looking\nat the "main" field\n\n* opts.paths - require.paths array to use if nothing is found on the normal\nnode_modules recursive walk (probably don\'t use this)\n\ndefault `opts` values:\n\n``` javascript\n{\n    paths: [],\n    basedir: __dirname,\n    extensions: [ \'.js\' ],\n    readFileSync: fs.readFileSync,\n    isFile: function (file) {\n        try { return fs.statSync(file).isFile() }\n        catch (e) { return false }\n    }\n}\n````\n\n## resolve.isCore(pkg)\n\nReturn whether a package is in core.\n\n# install\n\nWith [npm](https://npmjs.org) do:\n\n```\nnpm install resolve\n```\n\n# license\n\nMIT\n',
3259 silly resolved     readmeFilename: 'readme.markdown',
3259 silly resolved     bugs: { url: 'https://github.com/substack/node-resolve/issues' },
3259 silly resolved     _id: 'res...@0.3.1',
3259 silly resolved     _from: 'resolve@~0.3.1' },
3259 silly resolved   { name: 'findup-sync',
3259 silly resolved     description: 'Find the first file matching a given pattern in the current directory or the nearest ancestor directory.',
3259 silly resolved     version: '0.1.2',
3259 silly resolved     homepage: 'https://github.com/cowboy/node-findup-sync',
3259 silly resolved     author: { name: '"Cowboy" Ben Alman', url: 'http://benalman.com/' },
3259 silly resolved     repository:
3259 silly resolved      { type: 'git',
3259 silly resolved        url: 'git://github.com/cowboy/node-findup-sync.git' },
3259 silly resolved     bugs: { url: 'https://github.com/cowboy/node-findup-sync/issues' },
3259 silly resolved     licenses: [ [Object] ],
3259 silly resolved     main: 'lib/findup-sync',
3259 silly resolved     engines: { node: '>= 0.6.0' },
3259 silly resolved     scripts: { test: 'grunt nodeunit' },
3259 silly resolved     dependencies: { glob: '~3.1.21', lodash: '~1.0.1' },
3259 silly resolved     devDependencies:
3259 silly resolved      { grunt: '~0.4.0',
3259 silly resolved        'grunt-contrib-jshint': '~0.2.0',
3259 silly resolved        'grunt-contrib-nodeunit': '~0.1.2' },
3259 silly resolved     keywords: [ 'find', 'glob', 'file' ],
3259 silly resolved     readme: '# findup-sync\n\nFind the first file matching a given pattern in the current directory or the nearest ancestor directory.\n\n## Getting Started\nInstall the module with: `npm install findup-sync`\n\n```js\nvar findup = require(\'findup-sync\');\n\n// Start looking in the CWD.\nvar filepath1 = findup(\'{a,b}*.txt\');\n\n// Start looking somewhere else, and ignore case (probably a good idea).\nvar filepath2 = findup(\'{a,b}*.txt\', {cwd: \'/some/path\', nocase: true});\n```\n\n## Usage\n\n```js\nfindup(patternOrPatterns [, minimatchOptions])\n```\n\n### patternOrPatterns\nType: `String` or `Array`  \nDefault: none\n\nOne or more wildcard glob patterns. Or just filenames.\n\n### minimatchOptions\nType: `Object`  \nDefault: `{}`\n\nOptions to be passed to [minimatch](https://github.com/isaacs/minimatch).\n\nNote that if you want to start in a different directory than the current working directory, specify a `cwd` property here.\n\n## Contributing\nIn lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).\n\n## Release History\n2013-03-08 - v0.1.2 - Updated dependencies. Fixed a Node 0.9.x bug. Updated unit tests to work cross-platform.  \n2012-11-15 - v0.1.1 - Now works without an options object.  \n2012-11-01 - v0.1.0 - Initial release.\n',
3259 silly resolved     readmeFilename: 'README.md',
3259 silly resolved     _id: 'findu...@0.1.2',
3259 silly resolved     _from: 'findup-sync@~0.1.0' } ]
3260 info install no...@1.0.10 into /usr/local/lib/node_modules/appium/node_modules/grunt-cli
3261 info install res...@0.3.1 into /usr/local/lib/node_modules/appium/node_modules/grunt-cli
3262 info install findu...@0.1.2 into /usr/local/lib/node_modules/appium/node_modules/grunt-cli
3263 info installOne no...@1.0.10
3264 info installOne res...@0.3.1
3265 info installOne findu...@0.1.2
3266 verbose tar unpack /Users/jmiele/.npm/sax/0.5.2/package.tgz
3267 silly lockFile a4de12a3--modules-xml2js-node-modules-sax /usr/local/lib/node_modules/appium/node_modules/xml2js/node_modules/sax
3268 verbose lock /usr/local/lib/node_modules/appium/node_modules/xml2js/node_modules/sax /Users/jmiele/.npm/a4de12a3--modules-xml2js-node-modules-sax.lock
3269 silly lockFile bb85ff60-jmiele-npm-sax-0-5-2-package-tgz /Users/jmiele/.npm/sax/0.5.2/package.tgz
3270 verbose lock /Users/jmiele/.npm/sax/0.5.2/package.tgz /Users/jmiele/.npm/bb85ff60-jmiele-npm-sax-0-5-2-package-tgz.lock
3272 silly registry.get cb [ 304,
3272 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3272 silly registry.get     etag: '"4QB314Y3S11CD6RLWHEK13W"',
3272 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3272 silly registry.get     'content-length': '0' } ]
3273 verbose etag graceful-fs from cache
3274 verbose from cache /Users/jmiele/.npm/nopt/1.0.10/package/package.json
3275 info /usr/local/lib/node_modules/appium/node_modules/grunt-cli/node_modules/nopt unbuild
3276 verbose read json /usr/local/lib/node_modules/appium/node_modules/grunt-cli/node_modules/nopt/package.json
3277 verbose from cache /Users/jmiele/.npm/resolve/0.3.1/package/package.json
3278 info /usr/local/lib/node_modules/appium/node_modules/grunt-cli/node_modules/resolve unbuild
3279 verbose read json /usr/local/lib/node_modules/appium/node_modules/grunt-cli/node_modules/resolve/package.json
3280 verbose from cache /Users/jmiele/.npm/findup-sync/0.1.2/package/package.json
3281 info /usr/local/lib/node_modules/appium/node_modules/grunt-cli/node_modules/findup-sync unbuild
3282 verbose read json /usr/local/lib/node_modules/appium/node_modules/grunt-cli/node_modules/findup-sync/package.json
3284 silly registry.get cb [ 304,
3284 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3284 silly registry.get     etag: '"5JX71LVFYVTO8MP94CQJNAUUL"',
3284 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3284 silly registry.get     'content-length': '0' } ]
3285 verbose etag minimatch from cache
3286 silly gunzTarPerm extractEntry node_modules/form-data/.npmignore
3287 silly gunzTarPerm extractEntry node_modules/form-data/Makefile
3288 silly gunzTarPerm modes [ '755', '644' ]
3290 silly registry.get cb [ 304,
3290 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3290 silly registry.get     etag: '"95AEQLT7K8F5YP7JX1NLNSZQ"',
3290 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3290 silly registry.get     'content-length': '0' } ]
3291 verbose etag inherits from cache
3292 verbose tar unpack /Users/jmiele/.npm/nopt/1.0.10/package.tgz
3293 silly lockFile 64f9e21c-ules-grunt-cli-node-modules-nopt /usr/local/lib/node_modules/appium/node_modules/grunt-cli/node_modules/nopt
3294 verbose lock /usr/local/lib/node_modules/appium/node_modules/grunt-cli/node_modules/nopt /Users/jmiele/.npm/64f9e21c-ules-grunt-cli-node-modules-nopt.lock
3295 silly lockFile 79271471-iele-npm-nopt-1-0-10-package-tgz /Users/jmiele/.npm/nopt/1.0.10/package.tgz
3296 verbose lock /Users/jmiele/.npm/nopt/1.0.10/package.tgz /Users/jmiele/.npm/79271471-iele-npm-nopt-1-0-10-package-tgz.lock
3297 verbose tar unpack /Users/jmiele/.npm/resolve/0.3.1/package.tgz
3298 silly lockFile f1251740-s-grunt-cli-node-modules-resolve /usr/local/lib/node_modules/appium/node_modules/grunt-cli/node_modules/resolve
3299 verbose lock /usr/local/lib/node_modules/appium/node_modules/grunt-cli/node_modules/resolve /Users/jmiele/.npm/f1251740-s-grunt-cli-node-modules-resolve.lock
3300 silly lockFile fe964689-le-npm-resolve-0-3-1-package-tgz /Users/jmiele/.npm/resolve/0.3.1/package.tgz
3301 verbose lock /Users/jmiele/.npm/resolve/0.3.1/package.tgz /Users/jmiele/.npm/fe964689-le-npm-resolve-0-3-1-package-tgz.lock
3302 verbose tar unpack /Users/jmiele/.npm/findup-sync/0.1.2/package.tgz
3303 silly lockFile 978fc9ff-unt-cli-node-modules-findup-sync /usr/local/lib/node_modules/appium/node_modules/grunt-cli/node_modules/findup-sync
3304 verbose lock /usr/local/lib/node_modules/appium/node_modules/grunt-cli/node_modules/findup-sync /Users/jmiele/.npm/978fc9ff-unt-cli-node-modules-findup-sync.lock
3305 silly lockFile 3bcec98f-pm-findup-sync-0-1-2-package-tgz /Users/jmiele/.npm/findup-sync/0.1.2/package.tgz
3306 verbose lock /Users/jmiele/.npm/findup-sync/0.1.2/package.tgz /Users/jmiele/.npm/3bcec98f-pm-findup-sync-0-1-2-package-tgz.lock
3308 silly registry.get cb [ 304,
3308 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3308 silly registry.get     etag: '"4H5XA9H4KBJGBF96JLN8WYY5U"',
3308 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3308 silly registry.get     'content-length': '0' } ]
3309 verbose etag readable-stream from cache
3310 silly gunzTarPerm extractEntry test/original/inline_html_advanced.html
3311 silly gunzTarPerm extractEntry test/original/inline_html_advanced.text
3312 silly gunzTarPerm modes [ '755', '644' ]
3313 silly lockFile 487b4589-dules-appium-node-modules-prompt /usr/local/lib/node_modules/appium/node_modules/prompt
3314 silly lockFile 487b4589-dules-appium-node-modules-prompt /usr/local/lib/node_modules/appium/node_modules/prompt
3315 silly lockFile ee697bd8-ules-appium-node-modules-difflib /usr/local/lib/node_modules/appium/node_modules/difflib
3316 silly lockFile ee697bd8-ules-appium-node-modules-difflib /usr/local/lib/node_modules/appium/node_modules/difflib
3317 silly addNameRange number 2 { name: 'graceful-fs', range: '>=1.2.0- <1.3.0-', hasData: true }
3318 silly addNameRange versions [ 'graceful-fs',
3318 silly addNameRange   [ '1.0.0',
3318 silly addNameRange     '1.0.1',
3318 silly addNameRange     '1.0.2',
3318 silly addNameRange     '1.1.0',
3318 silly addNameRange     '1.1.1',
3318 silly addNameRange     '1.1.2',
3318 silly addNameRange     '1.1.3',
3318 silly addNameRange     '1.1.4',
3318 silly addNameRange     '1.1.5',
3318 silly addNameRange     '1.1.6',
3318 silly addNameRange     '1.1.7',
3318 silly addNameRange     '1.1.8',
3318 silly addNameRange     '1.1.9',
3318 silly addNameRange     '1.1.10',
3318 silly addNameRange     '1.1.11',
3318 silly addNameRange     '1.1.12',
3318 silly addNameRange     '1.1.13',
3318 silly addNameRange     '1.1.14',
3318 silly addNameRange     '1.2.0',
3318 silly addNameRange     '1.2.1' ] ]
3319 verbose addNamed [ 'graceful-fs', '1.2.1' ]
3320 verbose addNamed [ '1.2.1', '1.2.1' ]
3321 silly lockFile 5f41e0dc-graceful-fs-1-2-1 grace...@1.2.1
3322 verbose lock grace...@1.2.1 /Users/jmiele/.npm/5f41e0dc-graceful-fs-1-2-1.lock
3323 silly gunzTarPerm extractEntry package.json
3324 silly addNameRange number 2 { name: 'minimatch', range: '>=0.2.11- <0.3.0-', hasData: true }
3325 silly addNameRange versions [ 'minimatch',
3325 silly addNameRange   [ '0.0.1',
3325 silly addNameRange     '0.0.2',
3325 silly addNameRange     '0.0.4',
3325 silly addNameRange     '0.0.5',
3325 silly addNameRange     '0.1.1',
3325 silly addNameRange     '0.1.2',
3325 silly addNameRange     '0.1.3',
3325 silly addNameRange     '0.1.4',
3325 silly addNameRange     '0.1.5',
3325 silly addNameRange     '0.2.0',
3325 silly addNameRange     '0.2.2',
3325 silly addNameRange     '0.2.3',
3325 silly addNameRange     '0.2.4',
3325 silly addNameRange     '0.2.5',
3325 silly addNameRange     '0.2.6',
3325 silly addNameRange     '0.2.7',
3325 silly addNameRange     '0.2.8',
3325 silly addNameRange     '0.2.9',
3325 silly addNameRange     '0.2.10',
3325 silly addNameRange     '0.2.11',
3325 silly addNameRange     '0.2.12' ] ]
3326 verbose addNamed [ 'minimatch', '0.2.12' ]
3327 verbose addNamed [ '0.2.12', '0.2.12' ]
3328 silly lockFile 16b89810-minimatch-0-2-12 mini...@0.2.12
3329 verbose lock mini...@0.2.12 /Users/jmiele/.npm/16b89810-minimatch-0-2-12.lock
3330 silly lockFile 4f4c855b-ele-npm-prompt-0-2-9-package-tgz /Users/jmiele/.npm/prompt/0.2.9/package.tgz
3331 silly lockFile 4f4c855b-ele-npm-prompt-0-2-9-package-tgz /Users/jmiele/.npm/prompt/0.2.9/package.tgz
3332 silly gunzTarPerm modes [ '755', '644' ]
3333 silly gunzTarPerm modes [ '755', '644' ]
3334 silly lockFile 2ad25858-le-npm-difflib-0-2-4-package-tgz /Users/jmiele/.npm/difflib/0.2.4/package.tgz
3335 silly lockFile 2ad25858-le-npm-difflib-0-2-4-package-tgz /Users/jmiele/.npm/difflib/0.2.4/package.tgz
3336 verbose from cache /Users/jmiele/.npm/graceful-fs/1.2.1/package/package.json
3337 silly lockFile 5f41e0dc-graceful-fs-1-2-1 grace...@1.2.1
3338 silly lockFile 5f41e0dc-graceful-fs-1-2-1 grace...@1.2.1
3339 silly gunzTarPerm extractEntry node_modules/form-data/Readme.md
3340 silly gunzTarPerm extractEntry node_modules/form-data/lib/form_data.js
3341 verbose read json /Users/jmiele/.npm/minimatch/0.2.12/package/package.json
3342 silly addNameRange number 2 { name: 'inherits', range: '>=1.0.0- <2.0.0-', hasData: true }
3343 silly addNameRange versions [ 'inherits', [ '1.0.0', '2.0.0' ] ]
3344 verbose addNamed [ 'inherits', '1.0.0' ]
3345 verbose addNamed [ '1.0.0', '1.0.0' ]
3346 silly lockFile 776fbe77-inherits-1-0-0 inhe...@1.0.0
3347 verbose lock inhe...@1.0.0 /Users/jmiele/.npm/776fbe77-inherits-1-0-0.lock
3348 silly gunzTarPerm extractEntry package.json
3349 silly lockFile 9c0bb906-graceful-fs-1-2-0 graceful-fs@~1.2.0
3350 silly lockFile 9c0bb906-graceful-fs-1-2-0 graceful-fs@~1.2.0
3351 silly gunzTarPerm extractEntry README.md
3352 silly gunzTarPerm extractEntry LICENSE
3353 silly addNameRange number 2 { name: 'readable-stream',
3353 silly addNameRange   range: '>=1.0.0- <1.1.0-',
3353 silly addNameRange   hasData: true }
3354 silly addNameRange versions [ 'readable-stream',
3354 silly addNameRange   [ '0.0.1',
3354 silly addNameRange     '0.0.2',
3354 silly addNameRange     '0.0.3',
3354 silly addNameRange     '0.0.4',
3354 silly addNameRange     '0.1.0',
3354 silly addNameRange     '0.2.0',
3354 silly addNameRange     '0.3.0',
3354 silly addNameRange     '0.3.1',
3354 silly addNameRange     '1.0.0',
3354 silly addNameRange     '1.0.1',
3354 silly addNameRange     '1.0.2' ] ]
3355 verbose addNamed [ 'readable-stream', '1.0.2' ]
3356 verbose addNamed [ '1.0.2', '1.0.2' ]
3357 silly lockFile fe8d6774-readable-stream-1-0-2 readabl...@1.0.2
3358 verbose lock readabl...@1.0.2 /Users/jmiele/.npm/fe8d6774-readable-stream-1-0-2.lock
3359 verbose read json /Users/jmiele/.npm/inherits/1.0.0/package/package.json
3360 silly gunzTarPerm extractEntry test/original/inline_html_comments.html
3361 silly gunzTarPerm extractEntry test/original/inline_html_comments.text
3362 info preinstall pro...@0.2.9
3363 verbose read json /Users/jmiele/.npm/readable-stream/1.0.2/package/package.json
3364 info preinstall dif...@0.2.4
3365 silly gunzTarPerm extractEntry package.json
3366 silly gunzTarPerm extractEntry package.json
3367 silly gunzTarPerm extractEntry .npmignore
3368 silly gunzTarPerm extractEntry README.md
3369 verbose from cache /usr/local/lib/node_modules/appium/node_modules/prompt/package.json
3371 silly registry.get cb [ 304,
3371 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3371 silly registry.get     etag: '"CCPKNMRU3FBJSCHN2FQZPS36Y"',
3371 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3371 silly registry.get     'content-length': '0' } ]
3372 verbose etag stream-buffers from cache
3373 verbose from cache /usr/local/lib/node_modules/appium/node_modules/difflib/package.json
3374 verbose readDependencies using package.json deps
3375 verbose from cache /usr/local/lib/node_modules/appium/node_modules/prompt/package.json
3376 verbose readDependencies using package.json deps
3377 verbose from cache /usr/local/lib/node_modules/appium/node_modules/difflib/package.json
3378 verbose readDependencies using package.json deps
3379 verbose readDependencies using package.json deps
3380 silly gunzTarPerm extractEntry .npmignore
3381 silly gunzTarPerm extractEntry README.md
3382 silly gunzTarPerm extractEntry LICENSE
3383 silly gunzTarPerm extractEntry index.js
3384 silly gunzTarPerm extractEntry node_modules/form-data/node-form-data.sublime-project
3385 silly gunzTarPerm extractEntry node_modules/form-data/node-form-data.sublime-workspace
3387 silly registry.get cb [ 304,
3387 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3387 silly registry.get     etag: '"1VLF9JLJ2LDF1EVXQ80551B54"',
3387 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3387 silly registry.get     'content-length': '0' } ]
3388 verbose etag binary from cache
3389 verbose cache add [ 'ut...@0.1.x', null ]
3390 verbose cache add name=undefined spec="ut...@0.1.x" args=["ut...@0.1.x",null]
3391 verbose parsed url { protocol: null,
3391 verbose parsed url   slashes: null,
3391 verbose parsed url   auth: null,
3391 verbose parsed url   host: null,
3391 verbose parsed url   port: null,
3391 verbose parsed url   hostname: null,
3391 verbose parsed url   hash: null,
3391 verbose parsed url   search: null,
3391 verbose parsed url   query: null,
3391 verbose parsed url   pathname: 'ut...@0.1.x',
3391 verbose parsed url   path: 'ut...@0.1.x',
3391 verbose parsed url   href: 'ut...@0.1.x' }
3392 verbose cache add name="utile" spec="0.1.x" args=["utile","0.1.x"]
3393 verbose parsed url { protocol: null,
3393 verbose parsed url   slashes: null,
3393 verbose parsed url   auth: null,
3393 verbose parsed url   host: null,
3393 verbose parsed url   port: null,
3393 verbose parsed url   hostname: null,
3393 verbose parsed url   hash: null,
3393 verbose parsed url   search: null,
3393 verbose parsed url   query: null,
3393 verbose parsed url   pathname: '0.1.x',
3393 verbose parsed url   path: '0.1.x',
3393 verbose parsed url   href: '0.1.x' }
3394 verbose addNamed [ 'utile', '0.1.x' ]
3395 verbose addNamed [ null, '>=0.1.0- <0.2.0-' ]
3396 silly lockFile 67dcb77e-utile-0-1-x ut...@0.1.x
3397 verbose lock ut...@0.1.x /Users/jmiele/.npm/67dcb77e-utile-0-1-x.lock
3398 verbose cache add [ 'pkg...@0.x.x', null ]
3399 verbose cache add name=undefined spec="pkg...@0.x.x" args=["pkg...@0.x.x",null]
3400 verbose parsed url { protocol: null,
3400 verbose parsed url   slashes: null,
3400 verbose parsed url   auth: null,
3400 verbose parsed url   host: null,
3400 verbose parsed url   port: null,
3400 verbose parsed url   hostname: null,
3400 verbose parsed url   hash: null,
3400 verbose parsed url   search: null,
3400 verbose parsed url   query: null,
3400 verbose parsed url   pathname: 'pkg...@0.x.x',
3400 verbose parsed url   path: 'pkg...@0.x.x',
3400 verbose parsed url   href: 'pkg...@0.x.x' }
3401 verbose cache add name="pkginfo" spec="0.x.x" args=["pkginfo","0.x.x"]
3402 verbose parsed url { protocol: null,
3402 verbose parsed url   slashes: null,
3402 verbose parsed url   auth: null,
3402 verbose parsed url   host: null,
3402 verbose parsed url   port: null,
3402 verbose parsed url   hostname: null,
3402 verbose parsed url   hash: null,
3402 verbose parsed url   search: null,
3402 verbose parsed url   query: null,
3402 verbose parsed url   pathname: '0.x.x',
3402 verbose parsed url   path: '0.x.x',
3402 verbose parsed url   href: '0.x.x' }
3403 verbose addNamed [ 'pkginfo', '0.x.x' ]
3404 verbose addNamed [ null, '>=0.0.0- <1.0.0-' ]
3405 silly lockFile 67f4d2cb-pkginfo-0-x-x pkg...@0.x.x
3406 verbose lock pkg...@0.x.x /Users/jmiele/.npm/67f4d2cb-pkginfo-0-x-x.lock
3407 verbose cache add [ 're...@1.0.x', null ]
3408 verbose cache add name=undefined spec="re...@1.0.x" args=["re...@1.0.x",null]
3409 verbose parsed url { protocol: null,
3409 verbose parsed url   slashes: null,
3409 verbose parsed url   auth: null,
3409 verbose parsed url   host: null,
3409 verbose parsed url   port: null,
3409 verbose parsed url   hostname: null,
3409 verbose parsed url   hash: null,
3409 verbose parsed url   search: null,
3409 verbose parsed url   query: null,
3409 verbose parsed url   pathname: 're...@1.0.x',
3409 verbose parsed url   path: 're...@1.0.x',
3409 verbose parsed url   href: 're...@1.0.x' }
3410 verbose cache add name="read" spec="1.0.x" args=["read","1.0.x"]
3411 verbose parsed url { protocol: null,
3411 verbose parsed url   slashes: null,
3411 verbose parsed url   auth: null,
3411 verbose parsed url   host: null,
3411 verbose parsed url   port: null,
3411 verbose parsed url   hostname: null,
3411 verbose parsed url   hash: null,
3411 verbose parsed url   search: null,
3411 verbose parsed url   query: null,
3411 verbose parsed url   pathname: '1.0.x',
3411 verbose parsed url   path: '1.0.x',
3411 verbose parsed url   href: '1.0.x' }
3412 verbose addNamed [ 'read', '1.0.x' ]
3413 verbose addNamed [ null, '>=1.0.0- <1.1.0-' ]
3414 silly lockFile acd4039d-read-1-0-x re...@1.0.x
3415 verbose lock re...@1.0.x /Users/jmiele/.npm/acd4039d-read-1-0-x.lock
3416 silly gunzTarPerm extractEntry AUTHORS
3417 silly gunzTarPerm extractEntry LICENSE-W3C.html
3418 silly addNameRange { name: 'utile', range: '>=0.1.0- <0.2.0-', hasData: false }
3419 silly addNameRange { name: 'pkginfo', range: '>=0.0.0- <1.0.0-', hasData: false }
3421 silly registry.get cb [ 304,
3421 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3421 silly registry.get     etag: '"8M7HWN4T8JX86515VNSW6N1AJ"',
3421 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3421 silly registry.get     'content-length': '0' } ]
3422 verbose etag setimmediate from cache
3423 verbose cache add [ 'reval...@0.1.x', null ]
3424 verbose cache add name=undefined spec="reval...@0.1.x" args=["reval...@0.1.x",null]
3425 verbose parsed url { protocol: null,
3425 verbose parsed url   slashes: null,
3425 verbose parsed url   auth: null,
3425 verbose parsed url   host: null,
3425 verbose parsed url   port: null,
3425 verbose parsed url   hostname: null,
3425 verbose parsed url   hash: null,
3425 verbose parsed url   search: null,
3425 verbose parsed url   query: null,
3425 verbose parsed url   pathname: 'reval...@0.1.x',
3425 verbose parsed url   path: 'reval...@0.1.x',
3425 verbose parsed url   href: 'reval...@0.1.x' }
3426 verbose cache add name="revalidator" spec="0.1.x" args=["revalidator","0.1.x"]
3427 verbose parsed url { protocol: null,
3427 verbose parsed url   slashes: null,
3427 verbose parsed url   auth: null,
3427 verbose parsed url   host: null,
3427 verbose parsed url   port: null,
3427 verbose parsed url   hostname: null,
3427 verbose parsed url   hash: null,
3427 verbose parsed url   search: null,
3427 verbose parsed url   query: null,
3427 verbose parsed url   pathname: '0.1.x',
3427 verbose parsed url   path: '0.1.x',
3427 verbose parsed url   href: '0.1.x' }
3428 verbose addNamed [ 'revalidator', '0.1.x' ]
3429 verbose addNamed [ null, '>=0.1.0- <0.2.0-' ]
3430 silly lockFile 0837132e-revalidator-0-1-x reval...@0.1.x
3431 verbose lock reval...@0.1.x /Users/jmiele/.npm/0837132e-revalidator-0-1-x.lock
3432 verbose cache add [ 'heap@>= 0.2.0', null ]
3433 verbose cache add name=undefined spec="heap@>= 0.2.0" args=["heap@>= 0.2.0",null]
3434 verbose parsed url { protocol: null,
3434 verbose parsed url   slashes: null,
3434 verbose parsed url   auth: null,
3434 verbose parsed url   host: null,
3434 verbose parsed url   port: null,
3434 verbose parsed url   hostname: null,
3434 verbose parsed url   hash: null,
3434 verbose parsed url   search: null,
3434 verbose parsed url   query: null,
3434 verbose parsed url   pathname: 'heap@%3E=%200.2.0',
3434 verbose parsed url   path: 'heap@%3E=%200.2.0',
3434 verbose parsed url   href: 'heap@%3E=%200.2.0' }
3435 verbose cache add name="heap" spec=">= 0.2.0" args=["heap",">= 0.2.0"]
3436 verbose parsed url { protocol: null,
3436 verbose parsed url   slashes: null,
3436 verbose parsed url   auth: null,
3436 verbose parsed url   host: null,
3436 verbose parsed url   port: null,
3436 verbose parsed url   hostname: null,
3436 verbose parsed url   hash: null,
3436 verbose parsed url   search: null,
3436 verbose parsed url   query: null,
3436 verbose parsed url   pathname: '%3E=%200.2.0',
3436 verbose parsed url   path: '%3E=%200.2.0',
3436 verbose parsed url   href: '%3E=%200.2.0' }
3437 verbose addNamed [ 'heap', '>= 0.2.0' ]
3438 verbose addNamed [ null, '>=0.2.0' ]
3439 silly lockFile fa1ce979-heap-0-2-0 heap@>= 0.2.0
3440 verbose lock heap@>= 0.2.0 /Users/jmiele/.npm/fa1ce979-heap-0-2-0.lock
3441 silly addNameRange { name: 'read', range: '>=1.0.0- <1.1.0-', hasData: false }
3442 silly lockFile 16b89810-minimatch-0-2-12 mini...@0.2.12
3443 silly lockFile 16b89810-minimatch-0-2-12 mini...@0.2.12
3444 silly addNameRange { name: 'revalidator',
3444 silly addNameRange   range: '>=0.1.0- <0.2.0-',
3444 silly addNameRange   hasData: false }
3445 silly addNameRange { name: 'heap', range: '>=0.2.0', hasData: false }
3446 silly gunzTarPerm extractEntry test/original/inline_html_simple.html
3447 silly gunzTarPerm extractEntry test/original/inline_html_simple.text
3449 silly registry.get cb [ 304,
3449 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3449 silly registry.get     etag: '"E41MH1C5SREBCHN836RLQISEP"',
3449 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3449 silly registry.get     'content-length': '0' } ]
3450 verbose etag match-stream/0.0.1 from cache
3451 silly lockFile 94473efb-minimatch-0-2-11 minimatch@~0.2.11
3452 silly lockFile 94473efb-minimatch-0-2-11 minimatch@~0.2.11
3453 silly lockFile 776fbe77-inherits-1-0-0 inhe...@1.0.0
3454 silly lockFile 776fbe77-inherits-1-0-0 inhe...@1.0.0
3455 silly addNameRange number 2 { name: 'stream-buffers',
3455 silly addNameRange   range: '>=0.2.3- <0.3.0-',
3455 silly addNameRange   hasData: true }
3456 silly addNameRange versions [ 'stream-buffers',
3456 silly addNameRange   [ '0.1.0', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4' ] ]
3457 verbose addNamed [ 'stream-buffers', '0.2.4' ]
3458 verbose addNamed [ '0.2.4', '0.2.4' ]
3459 silly lockFile 0c7154c2-stream-buffers-0-2-4 stream-...@0.2.4
3460 verbose lock stream-...@0.2.4 /Users/jmiele/.npm/0c7154c2-stream-buffers-0-2-4.lock
3462 silly registry.get cb [ 304,
3462 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3462 silly registry.get     etag: '"9ETPSIRJ5L3UKTIE704ZYLZPL"',
3462 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3462 silly registry.get     'content-length': '0' } ]
3463 verbose etag fstream from cache
3464 silly lockFile fe8d6774-readable-stream-1-0-2 readabl...@1.0.2
3465 silly lockFile fe8d6774-readable-stream-1-0-2 readabl...@1.0.2
3466 silly gunzTarPerm extractEntry Gruntfile.js
3467 silly gunzTarPerm extractEntry .jshintrc
3468 silly lockFile 4bca46d0-inherits-1 inherits@1
3469 silly lockFile 4bca46d0-inherits-1 inherits@1
3470 verbose read json /Users/jmiele/.npm/stream-buffers/0.2.4/package/package.json
3471 verbose url raw utile
3472 verbose url resolving [ 'https://registry.npmjs.org/', './utile' ]
3473 verbose url resolved https://registry.npmjs.org/utile
3474 info trying registry request attempt 1 at 10:59:47
3475 verbose etag "7OSM4MT6VTV8FSMYWQTR1V7IS"
3477 verbose url raw pkginfo
3478 verbose url resolving [ 'https://registry.npmjs.org/', './pkginfo' ]
3479 verbose url resolved https://registry.npmjs.org/pkginfo
3480 info trying registry request attempt 1 at 10:59:47
3481 verbose etag "6SAHD68W8QRMXR9TFUWVANJ4P"
3483 verbose url raw read
3484 verbose url resolving [ 'https://registry.npmjs.org/', './read' ]
3485 verbose url resolved https://registry.npmjs.org/read
3486 info trying registry request attempt 1 at 10:59:47
3487 verbose etag "1064YB5S7U6KO6JTTIBQYXGUG"
3489 silly lockFile 87dee724-readable-stream-1-0-0 readable-stream@~1.0.0
3490 silly lockFile 87dee724-readable-stream-1-0-0 readable-stream@~1.0.0
3491 verbose url raw revalidator
3492 verbose url resolving [ 'https://registry.npmjs.org/', './revalidator' ]
3493 verbose url resolved https://registry.npmjs.org/revalidator
3494 info trying registry request attempt 1 at 10:59:47
3495 verbose etag "7PFFGPNEX2JBLSHZUTFPMKUQL"
3497 silly addNameRange number 2 { name: 'binary', range: '>=0.3.0- <0.4.0-', hasData: true }
3498 silly addNameRange versions [ 'binary',
3498 silly addNameRange   [ '0.0.1',
3498 silly addNameRange     '0.0.2',
3498 silly addNameRange     '0.0.3',
3498 silly addNameRange     '0.0.4',
3498 silly addNameRange     '0.0.5',
3498 silly addNameRange     '0.0.6',
3498 silly addNameRange     '0.0.8',
3498 silly addNameRange     '0.1.0',
3498 silly addNameRange     '0.1.1',
3498 silly addNameRange     '0.1.2',
3498 silly addNameRange     '0.1.3',
3498 silly addNameRange     '0.1.4',
3498 silly addNameRange     '0.1.5',
3498 silly addNameRange     '0.1.6',
3498 silly addNameRange     '0.1.7',
3498 silly addNameRange     '0.1.8',
3498 silly addNameRange     '0.1.9',
3498 silly addNameRange     '0.2.0',
3498 silly addNameRange     '0.2.1',
3498 silly addNameRange     '0.2.2',
3498 silly addNameRange     '0.2.3',
3498 silly addNameRange     '0.2.4',
3498 silly addNameRange     '0.2.5',
3498 silly addNameRange     '0.2.6',
3498 silly addNameRange     '0.3.0' ] ]
3499 verbose addNamed [ 'binary', '0.3.0' ]
3500 verbose addNamed [ '0.3.0', '0.3.0' ]
3501 silly lockFile 4c22eedf-binary-0-3-0 bin...@0.3.0
3502 verbose lock bin...@0.3.0 /Users/jmiele/.npm/4c22eedf-binary-0-3-0.lock
3503 verbose url raw heap
3504 verbose url resolving [ 'https://registry.npmjs.org/', './heap' ]
3505 verbose url resolved https://registry.npmjs.org/heap
3506 info trying registry request attempt 1 at 10:59:47
3507 verbose etag "DYLUHYESKJSEU3J3FQPY0C25F"
3509 silly resolved [ { author:
3509 silly resolved      { name: 'Isaac Z. Schlueter',
3509 silly resolved        email: 'i...@izs.me',
3509 silly resolved        url: 'http://blog.izs.me' },
3509 silly resolved     name: 'graceful-fs',
3509 silly resolved     description: 'A drop-in replacement for fs, making various improvements.',
3509 silly resolved     version: '1.2.1',
3509 silly resolved     repository:
3509 silly resolved      { type: 'git',
3509 silly resolved        url: 'git://github.com/isaacs/node-graceful-fs.git' },
3509 silly resolved     main: 'graceful-fs.js',
3509 silly resolved     engines: { node: '>=0.4.0' },
3509 silly resolved     directories: { test: 'test' },
3509 silly resolved     scripts: { test: 'tap test/*.js' },
3509 silly resolved     keywords:
3509 silly resolved      [ 'fs',
3509 silly resolved        'module',
3509 silly resolved        'reading',
3509 silly resolved        'retry',
3509 silly resolved        'retries',
3509 silly resolved        'queue',
3509 silly resolved        'error',
3509 silly resolved        'errors',
3509 silly resolved        'handling',
3509 silly resolved        'EMFILE',
3509 silly resolved        'EAGAIN',
3509 silly resolved        'EINVAL',
3509 silly resolved        'EPERM',
3509 silly resolved        'EACCESS' ],
3509 silly resolved     license: 'BSD',
3509 silly resolved     readme: '# graceful-fs\n\ngraceful-fs functions as a drop-in replacement for the fs module,\nmaking various improvements.\n\nThe improvements are meant to normalize behavior across different\nplatforms and environments, and to make filesystem access more\nresilient to errors.\n\n## Improvements over fs module\n\ngraceful-fs:\n\n* keeps track of how many file descriptors are open, and by default\n  limits this to 1024. Any further requests to open a file are put in a\n  queue until new slots become available. If 1024 turns out to be too\n  much, it decreases the limit further.\n* fixes `lchmod` for Node versions prior to 0.6.2.\n* implements `fs.lutimes` if possible. Otherwise it becomes a noop.\n* ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or\n  `lchown` if the user isn\'t root.\n* makes `lchmod` and `lchown` become noops, if not available.\n* retries reading a file if `read` results in EAGAIN error.\n\nOn Windows, it retries renaming a file for up to one second if `EACCESS`\nor `EPERM` error occurs, likely because antivirus software has locked\nthe directory.\n\n## Configuration\n\nThe maximum number of open file descriptors that graceful-fs manages may\nbe adjusted by setting `fs.MAX_OPEN` to a different number. The default\nis 1024.\n',
3509 silly resolved     readmeFilename: 'README.md',
3509 silly resolved     bugs: { url: 'https://github.com/isaacs/node-graceful-fs/issues' },
3509 silly resolved     _id: 'grace...@1.2.1',
3509 silly resolved     _from: 'graceful-fs@~1.2.0' },
3509 silly resolved   { author:
3509 silly resolved      { name: 'Isaac Z. Schlueter',
3509 silly resolved        email: 'i...@izs.me',
3509 silly resolved        url: 'http://blog.izs.me' },
3509 silly resolved     name: 'minimatch',
3509 silly resolved     description: 'a glob matcher in javascript',
3509 silly resolved     version: '0.2.12',
3509 silly resolved     repository: { type: 'git', url: 'git://github.com/isaacs/minimatch.git' },
3509 silly resolved     main: 'minimatch.js',
3509 silly resolved     scripts: { test: 'tap test' },
3509 silly resolved     engines: { node: '*' },
3509 silly resolved     dependencies: { 'lru-cache': '2', sigmund: '~1.0.0' },
3509 silly resolved     devDependencies: { tap: '' },
3509 silly resolved     license:
3509 silly resolved      { type: 'MIT',
3509 silly resolved        url: 'http://github.com/isaacs/minimatch/raw/master/LICENSE' },
3509 silly resolved     readme: '# minimatch\n\nA minimal matching utility.\n\n[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch)\n\n\nThis is the matching library used internally by npm.\n\nEventually, it will replace the C binding in node-glob.\n\nIt works by converting glob expressions into JavaScript `RegExp`\nobjects.\n\n## Usage\n\n```javascript\nvar minimatch = require("minimatch")\n\nminimatch("bar.foo", "*.foo") // true!\nminimatch("bar.foo", "*.bar") // false!\n```\n\n## Features\n\nSupports these glob features:\n\n* Brace Expansion\n* Extended glob matching\n* "Globstar" `**` matching\n\nSee:\n\n* `man sh`\n* `man bash`\n* `man 3 fnmatch`\n* `man 5 gitignore`\n\n### Comparisons to other fnmatch/glob implementations\n\nWhile strict compliance with the existing standards is a worthwhile\ngoal, some discrepancies exist between minimatch and other\nimplementations, and are intentional.\n\nIf the pattern starts with a `!` character, then it is negated.  Set the\n`nonegate` flag to suppress this behavior, and treat leading `!`\ncharacters normally.  This is perhaps relevant if you wish to start the\npattern with a negative extglob pattern like `!(a|B)`.  Multiple `!`\ncharacters at the start of a pattern will negate the pattern multiple\ntimes.\n\nIf a pattern starts with `#`, then it is treated as a comment, and\nwill not match anything.  Use `\\#` to match a literal `#` at the\nstart of a line, or set the `nocomment` flag to suppress this behavior.\n\nThe double-star character `**` is supported by default, unless the\n`noglobstar` flag is set.  This is supported in the manner of bsdglob\nand bash 4.1, where `**` only has special significance if it is the only\nthing in a path part.  That is, `a/**/b` will match `a/x/y/b`, but\n`a/**b` will not.  **Note that this is different from the way that `**` is\nhandled by ruby\'s `Dir` class.**\n\nIf an escaped pattern has no matches, and the `nonull` flag is set,\nthen minimatch.match returns the pattern as-provided, rather than\ninterpreting the character escapes.  For example,\n`minimatch.match([], "\\\\*a\\\\?")` will return `"\\\\*a\\\\?"` rather than\n`"*a?"`.  This is akin to setting the `nullglob` option in bash, except\nthat it does not resolve escaped pattern characters.\n\nIf brace expansion is not disabled, then it is performed before any\nother interpretation of the glob pattern.  Thus, a pattern like\n`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded\n**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are\nchecked for validity.  Since those two are valid, matching proceeds.\n\n\n## Minimatch Class\n\nCreate a minimatch object by instanting the `minimatch.Minimatch` class.\n\n```javascript\nvar Minimatch = require("minimatch").Minimatch\nvar mm = new Minimatch(pattern, options)\n```\n\n### Properties\n\n* `pattern` The original pattern the minimatch object represents.\n* `options` The options supplied to the constructor.\n* `set` A 2-dimensional array of regexp or string expressions.\n  Each row in the\n  array corresponds to a brace-expanded pattern.  Each item in the row\n  corresponds to a single path-part.  For example, the pattern\n  `{a,b/c}/d` would expand to a set of patterns like:\n\n        [ [ a, d ]\n        , [ b, c, d ] ]\n\n    If a portion of the pattern doesn\'t have any "magic" in it\n    (that is, it\'s something like `"foo"` rather than `fo*o?`), then it\n    will be left as a string rather than converted to a regular\n    expression.\n\n* `regexp` Created by the `makeRe` method.  A single regular expression\n  expressing the entire pattern.  This is useful in cases where you wish\n  to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.\n* `negate` True if the pattern is negated.\n* `comment` True if the pattern is a comment.\n* `empty` True if the pattern is `""`.\n\n### Methods\n\n* `makeRe` Generate the `regexp` member if necessary, and return it.\n  Will return `false` if the pattern is invalid.\n* `match(fname)` Return true if the filename matches the pattern, or\n  false otherwise.\n* `matchOne(fileArray, patternArray, partial)` Take a `/`-split\n  filename, and match it against a single row in the `regExpSet`.  This\n  method is mainly for internal use, but is exposed so that it can be\n  used by a glob-walker that needs to avoid excessive filesystem calls.\n\nAll other methods are internal, and will be called as necessary.\n\n## Functions\n\nThe top-level exported function has a `cache` property, which is an LRU\ncache set to store 100 items.  So, calling these methods repeatedly\nwith the same pattern and options will use the same Minimatch object,\nsaving the cost of parsing it multiple times.\n\n### minimatch(path, pattern, options)\n\nMain export.  Tests a path against the pattern using the options.\n\n```javascript\nvar isJS = minimatch(file, "*.js", { matchBase: true })\n```\n\n### minimatch.filter(pattern, options)\n\nReturns a function that tests its\nsupplied argument, suitable for use with `Array.filter`.  Example:\n\n```javascript\nvar javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))\n```\n\n### minimatch.match(list, pattern, options)\n\nMatch against the list of\nfiles, in the style of fnmatch or glob.  If nothing is matched, and\noptions.nonull is set, then return a list containing the pattern itself.\n\n```javascript\nvar javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))\n```\n\n### minimatch.makeRe(pattern, options)\n\nMake a regular expression object from the pattern.\n\n## Options\n\nAll options are `false` by default.\n\n### debug\n\nDump a ton of stuff to stderr.\n\n### nobrace\n\nDo not expand `{a,b}` and `{1..3}` brace sets.\n\n### noglobstar\n\nDisable `**` matching against multiple folder names.\n\n### dot\n\nAllow patterns to match filenames starting with a period, even if\nthe pattern does not explicitly have a period in that spot.\n\nNote that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`\nis set.\n\n### noext\n\nDisable "extglob" style patterns like `+(a|b)`.\n\n### nocase\n\nPerform a case-insensitive match.\n\n### nonull\n\nWhen a match is not found by `minimatch.match`, return a list containing\nthe pattern itself.  When set, an empty list is returned if there are\nno matches.\n\n### matchBase\n\nIf set, then patterns without slashes will be matched\nagainst the basename of the path if it contains slashes.  For example,\n`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.\n\n### nocomment\n\nSuppress the behavior of treating `#` at the start of a pattern as a\ncomment.\n\n### nonegate\n\nSuppress the behavior of treating a leading `!` character as negation.\n\n### flipNegate\n\nReturns from negate expressions the same as if they were not negated.\n(Ie, true on a hit, false on a miss.)\n',
3509 silly resolved     readmeFilename: 'README.md',
3509 silly resolved     bugs: { url: 'https://github.com/isaacs/minimatch/issues' },
3509 silly resolved     _id: 'mini...@0.2.12',
3509 silly resolved     _from: 'minimatch@~0.2.11' },
3509 silly resolved   { name: 'inherits',
3509 silly resolved     description: 'A tiny simple way to do classic inheritance in js',
3509 silly resolved     version: '1.0.0',
3509 silly resolved     keywords: [ 'inheritance', 'class', 'klass', 'oop', 'object-oriented' ],
3509 silly resolved     main: './inherits.js',
3509 silly resolved     repository: { type: 'git', url: 'https://github.com/isaacs/inherits' },
3509 silly resolved     author:
3509 silly resolved      { name: 'Isaac Z. Schlueter',
3509 silly resolved        email: 'i...@izs.me',
3509 silly resolved        url: 'http://blog.izs.me/' },
3509 silly resolved     readme: 'A dead simple way to do inheritance in JS.\n\n    var inherits = require("inherits")\n\n    function Animal () {\n      this.alive = true\n    }\n    Animal.prototype.say = function (what) {\n      console.log(what)\n    }\n\n    inherits(Dog, Animal)\n    function Dog () {\n      Dog.super.apply(this)\n    }\n    Dog.prototype.sniff = function () {\n      this.say("sniff sniff")\n    }\n    Dog.prototype.bark = function () {\n      this.say("woof woof")\n    }\n\n    inherits(Chihuahua, Dog)\n    function Chihuahua () {\n      Chihuahua.super.apply(this)\n    }\n    Chihuahua.prototype.bark = function () {\n      this.say("yip yip")\n    }\n\n    // also works\n    function Cat () {\n      Cat.super.apply(this)\n    }\n    Cat.prototype.hiss = function () {\n      this.say("CHSKKSS!!")\n    }\n    inherits(Cat, Animal, {\n      meow: function () { this.say("miao miao") }\n    })\n    Cat.prototype.purr = function () {\n      this.say("purr purr")\n    }\n\n\n    var c = new Chihuahua\n    assert(c instanceof Chihuahua)\n    assert(c instanceof Dog)\n    assert(c instanceof Animal)\n\nThe actual function is laughably small.  10-lines small.\n',
3509 silly resolved     readmeFilename: 'README.md',
3509 silly resolved     bugs: { url: 'https://github.com/isaacs/inherits/issues' },
3509 silly resolved     _id: 'inhe...@1.0.0',
3509 silly resolved     _from: 'inherits@1' } ]
3510 info install grace...@1.2.1 into /usr/local/lib/node_modules/appium/node_modules/glob
3511 info install mini...@0.2.12 into /usr/local/lib/node_modules/appium/node_modules/glob
3512 info install inhe...@1.0.0 into /usr/local/lib/node_modules/appium/node_modules/glob
3513 info installOne grace...@1.2.1
3514 info installOne mini...@0.2.12
3515 info installOne inhe...@1.0.0
3516 silly gunzTarPerm extractEntry LICENSE
3517 silly gunzTarPerm extractEntry bin/nopt.js
3518 silly addNameRange number 2 { name: 'setimmediate',
3518 silly addNameRange   range: '>=1.0.1- <1.1.0-',
3518 silly addNameRange   hasData: true }
3519 silly addNameRange versions [ 'setimmediate', [ '1.0.0', '1.0.1' ] ]
3520 verbose addNamed [ 'setimmediate', '1.0.1' ]
3521 verbose addNamed [ '1.0.1', '1.0.1' ]
3522 silly lockFile 23981b85-setimmediate-1-0-1 setimm...@1.0.1
3523 verbose lock setimm...@1.0.1 /Users/jmiele/.npm/23981b85-setimmediate-1-0-1.lock
3524 verbose from cache /Users/jmiele/.npm/graceful-fs/1.2.1/package/package.json
3525 info /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/graceful-fs unbuild
3526 verbose read json /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/graceful-fs/package.json
3527 verbose from cache /Users/jmiele/.npm/minimatch/0.2.12/package/package.json
3528 info /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/minimatch unbuild
3529 verbose read json /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/minimatch/package.json
3530 verbose from cache /Users/jmiele/.npm/inherits/1.0.0/package/package.json
3531 info /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/inherits unbuild
3532 verbose read json /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/inherits/package.json
3533 silly gunzTarPerm extractEntry .travis.yml
3534 silly gunzTarPerm extractEntry example/async.js
3535 verbose read json /Users/jmiele/.npm/binary/0.3.0/package/package.json
3536 verbose read json /Users/jmiele/.npm/setimmediate/1.0.1/package/package.json
3537 silly gunzTarPerm extractEntry test/original/amps_and_angles_encoding.text
3538 silly gunzTarPerm extractEntry test/original/links_inline_style.text
3539 silly gunzTarPerm extractEntry node_modules/form-data/test/common.js
3540 silly gunzTarPerm extractEntry node_modules/form-data/test/run.js
3541 verbose read json /Users/jmiele/.npm/match-stream/0.0.1/package/package.json
3542 silly addNameRange number 2 { name: 'fstream', range: '>=0.1.21- <0.2.0-', hasData: true }
3543 silly addNameRange versions [ 'fstream',
3543 silly addNameRange   [ '0.0.0',
3543 silly addNameRange     '0.0.1',
3543 silly addNameRange     '0.1.0',
3543 silly addNameRange     '0.1.1',
3543 silly addNameRange     '0.1.2',
3543 silly addNameRange     '0.1.3',
3543 silly addNameRange     '0.1.5',
3543 silly addNameRange     '0.1.6',
3543 silly addNameRange     '0.1.7',
3543 silly addNameRange     '0.1.8',
3543 silly addNameRange     '0.1.9',
3543 silly addNameRange     '0.1.10',
3543 silly addNameRange     '0.1.11',
3543 silly addNameRange     '0.1.12',
3543 silly addNameRange     '0.1.13',
3543 silly addNameRange     '0.1.14',
3543 silly addNameRange     '0.1.15',
3543 silly addNameRange     '0.1.16',
3543 silly addNameRange     '0.1.17',
3543 silly addNameRange     '0.1.18',
3543 silly addNameRange     '0.1.19',
3543 silly addNameRange     '0.1.20',
3543 silly addNameRange     '0.1.21',
3543 silly addNameRange     '0.1.22' ] ]
3544 verbose addNamed [ 'fstream', '0.1.22' ]
3545 verbose addNamed [ '0.1.22', '0.1.22' ]
3546 silly lockFile 7efda1a3-fstream-0-1-22 fst...@0.1.22
3547 verbose lock fst...@0.1.22 /Users/jmiele/.npm/7efda1a3-fstream-0-1-22.lock
3548 verbose tar unpack /Users/jmiele/.npm/graceful-fs/1.2.1/package.tgz
3549 silly lockFile 24a8bcea-es-glob-node-modules-graceful-fs /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/graceful-fs
3550 verbose lock /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/graceful-fs /Users/jmiele/.npm/24a8bcea-es-glob-node-modules-graceful-fs.lock
3551 silly lockFile 06ebdcbd-pm-graceful-fs-1-2-1-package-tgz /Users/jmiele/.npm/graceful-fs/1.2.1/package.tgz
3552 verbose lock /Users/jmiele/.npm/graceful-fs/1.2.1/package.tgz /Users/jmiele/.npm/06ebdcbd-pm-graceful-fs-1-2-1-package-tgz.lock
3553 verbose tar unpack /Users/jmiele/.npm/minimatch/0.2.12/package.tgz
3554 silly lockFile a007b6f6-ules-glob-node-modules-minimatch /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/minimatch
3555 verbose lock /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/minimatch /Users/jmiele/.npm/a007b6f6-ules-glob-node-modules-minimatch.lock
3556 silly lockFile 1db99767-npm-minimatch-0-2-12-package-tgz /Users/jmiele/.npm/minimatch/0.2.12/package.tgz
3557 verbose lock /Users/jmiele/.npm/minimatch/0.2.12/package.tgz /Users/jmiele/.npm/1db99767-npm-minimatch-0-2-12-package-tgz.lock
3558 verbose tar unpack /Users/jmiele/.npm/inherits/1.0.0/package.tgz
3559 silly lockFile 08a122ab-dules-glob-node-modules-inherits /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/inherits
3560 verbose lock /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/inherits /Users/jmiele/.npm/08a122ab-dules-glob-node-modules-inherits.lock
3561 silly lockFile 4b015361-e-npm-inherits-1-0-0-package-tgz /Users/jmiele/.npm/inherits/1.0.0/package.tgz
3562 verbose lock /Users/jmiele/.npm/inherits/1.0.0/package.tgz /Users/jmiele/.npm/4b015361-e-npm-inherits-1-0-0-package-tgz.lock
3563 silly gunzTarPerm extractEntry LICENSE-MIT
3564 silly gunzTarPerm extractEntry lib/findup-sync.js
3565 verbose read json /Users/jmiele/.npm/fstream/0.1.22/package/package.json
3566 silly gunzTarPerm modes [ '755', '644' ]
3568 silly registry.get cb [ 304,
3568 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3568 silly registry.get     etag: '"D68Z27C6PHEWBSJC05WQY06DF"',
3568 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3568 silly registry.get     'content-length': '0' } ]
3569 verbose etag pullstream from cache
3570 silly gunzTarPerm extractEntry examples/my-program.js
3571 silly gunzTarPerm extractEntry lib/nopt.js
3572 silly lockFile 0c7154c2-stream-buffers-0-2-4 stream-...@0.2.4
3573 silly lockFile 0c7154c2-stream-buffers-0-2-4 stream-...@0.2.4
3574 silly gunzTarPerm modes [ '755', '644' ]
3576 silly registry.get cb [ 304,
3576 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3576 silly registry.get     etag: '"3ULD31ILDU86U22V4KQEZTLOL"',
3576 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3576 silly registry.get     'content-length': '0' } ]
3577 verbose etag mkdirp/0.3.3 from cache
3578 silly lockFile 475f5155-stream-buffers-0-2-3 stream-buffers@~0.2.3
3579 silly lockFile 475f5155-stream-buffers-0-2-3 stream-buffers@~0.2.3
3580 silly gunzTarPerm extractEntry package.json
3581 silly gunzTarPerm extractEntry example/sync.js
3582 silly gunzTarPerm extractEntry lib/async.js
3583 silly lockFile 4c22eedf-binary-0-3-0 bin...@0.3.0
3584 silly lockFile 4c22eedf-binary-0-3-0 bin...@0.3.0
3585 silly gunzTarPerm extractEntry test/original/links_reference_style.html
3586 silly gunzTarPerm extractEntry test/original/links_reference_style.text
3588 silly registry.get cb [ 304,
3588 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3588 silly registry.get     etag: '"CY6VKP2J24A6C0D3CWIKX4KWN"',
3588 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3588 silly registry.get     'content-length': '0' } ]
3589 verbose etag connect/2.7.2 from cache
3590 silly lockFile 23981b85-setimmediate-1-0-1 setimm...@1.0.1
3591 silly lockFile 23981b85-setimmediate-1-0-1 setimm...@1.0.1
3592 silly resolved [ { name: 'stream-buffers',
3592 silly resolved     version: '0.2.4',
3592 silly resolved     description: 'Buffer-backed Streams for reading and writing.',
3592 silly resolved     keywords: [ 'memory streams', 'buffer streams' ],
3592 silly resolved     author: { name: 'Sam Day', email: 'sam....@gmail.com' },
3592 silly resolved     main: './lib/streambuffer.js',
3592 silly resolved     engines: { node: '>= 0.3.0' },
3592 silly resolved     dependencies: {},
3592 silly resolved     devDependencies: { vows: '>= 0.5.6' },
3592 silly resolved     repository:
3592 silly resolved      { type: 'git',
3592 silly resolved        url: 'https://github.com/samcday/node-stream-buffer.git' },
3592 silly resolved     readme: '# Node Stream Buffers\r\n\r\n... For lack of a cooler (or less confusing) name.\r\n\r\nSimple Readable and Writable Streams that use a Buffer to store received data, or for data to send out. Pretty much to be used for automated test-cases or debugging.\r\n\r\n## Installation\r\n\r\nIt\'s on NPM.\r\n\r\n\tnpm install stream-buffers\r\n\r\n## Usage\r\n\r\nTo use the stream buffers in your module, simply import it and away you go.\r\n\r\n\tvar streamBuffers = require("stream-buffers");\r\n\r\n### Writable StreamBuffer\r\n\r\nWritable Stream Buffers implement the standardized writable stream interface. All write()\'s to this object will accumulate in an internal Buffer. If the Buffer overflows it will be resized larger automatically. The initial size of the Buffer and the amount in which it grows can be configured in the constructor.\r\n\r\n\tvar myWritableStreamBuffer = new streamBuffers.WritableStreamBuffer({\r\n\t\tinitialSize: (100 * 1024),\t\t// start as 100 kilobytes.\r\n\t\tincrementAmount: (10 * 1024)\t// grow by 10 kilobytes each time buffer overflows.\r\n\t});\r\n\t\r\nThe default initial size and increment amount are stored in the following constants:\r\n\r\n\tstreamBuffers.DEFAULT_INITIAL_SIZE \t\t// (8 * 1024)\r\n\tstreamBuffers.DEFAULT_INCREMENT_AMOUNT\t// (8 * 1024)\r\n\r\nWriting is standard Stream stuff:\r\n\r\n\tmyWritableStreamBuffer.write(myBuffer);\r\n\t// - or -\r\n\tmyWritableStreamBuffer.write("\\u00bd + \\u00bc = \\u00be", "utf8");\r\n\r\nYou can query the size of the data being held in the Buffer, and also how big the Buffer\'s max capacity currently is: \r\n\r\n\tmyWritableStreamBuffer.write("ASDF");\r\n\tstreamBuffers.size();\t\t\t// 4.\r\n\tstreamBuffers.maxSize();\t\t// Whatever was configured as initial size. In our example: (100 * 1024).\r\n\r\nRetrieving the contents of the Buffer is simple:\r\n\r\n\tmyWritableStreamBuffer.getContents();\t\t\t\t\t// Gets all held data as a Buffer.\r\n\tmyWritableStreamBuffer.getContentsAsString("utf8");\t\t// Gets all held data as a utf8 string.\r\n\tmyWritableStreamBuffer.getContents(5);\t\t\t\t\t// Gets first 5 bytes as a Buffer.\r\n\tmyWritableStreamBuffer.getContentsAsString("utf8", 5);\t// Gets first 5 bytes as a utf8 string.\r\n\r\nCare should be taken when getting encoded strings from WritableStream, as it doesn\'t really care about the contents (multi-byte characters will not be respected).\r\n \r\nDestroying or ending the WritableStream will not delete the contents of Buffer, but will disallow any further writes:\r\n\r\n\tmyWritableStreamBuffer.write("ASDF");\r\n\tmyWritableStreamBuffer.destroy();\r\n\t\r\n\tmyWritableStreamBuffer.getContents();\t\t// Returns ASDF in Buffer.\r\n\tmyWritableStreamBuffer.write("Yeah?");\t\t// No effect.\r\n\t\r\n\r\n### Readable StreamBuffer\r\n\r\nReadable Stream Buffers can have data inserted in them, which will then be pumped out via standard readable stream data events. The data to be sent out is held in a Buffer, which can grow in much the same way as a WritableStream Buffer does, if data is being put in Buffer faster than it\'s being pumped out. \r\n\r\nThe frequency in which chunks are pumped out, and the size of the chunks themselves can be configured in the constructor. The initial size and increment amount of internal Buffer can be configured too.\r\n\r\n\tvar myReadableStreamBuffer = new streamBuffers.ReadableStreamBuffer({\r\n\t\tfrequency: 10\t\t// in milliseconds.\r\n\t\tchunkSize: 2048\t\t// in bytes.\r\n\t});\r\n\r\nDefault frequency and chunk size:\r\n\r\n\tstreamBuffers.DEFAULT_CHUNK_SIZE \t\t// (1024)\r\n\tstreamBuffers.DEFAULT_FREQUENCY\t\t\t// (1)\r\n\r\nPutting data in Buffer to be pumped out is easy:\r\n\r\n\tmyReadableStreamBuffer.put(aBuffer);\r\n\tmyReadableStreamBuffer.put("A String", "utf8");\r\n\t\r\nChunks are pumped out via standard readable stream spec: \r\n\r\n\tmyReadableStreamBuffer.on("data", function(data) {\r\n\t\t// Yup.\r\n\t\tassert.isTrue(data instanceof Buffer);\r\n\t});\r\n\r\nsetEncoding() for streams is respected too:\r\n\r\n\tmyReadableStreamBuffer.setEncoding("utf8");\r\n\tmyReadableStreamBuffer.on("data", function(data) {\r\n\t\tassert.isTrue(data instanceof String);\r\n\t});\r\n\t\r\nPause and resume are also implemented. pause()\'ing stream will allow buffer to continue accumulating, but will not pump any of that data out until it is resume()\'d again. \r\n\r\nDestroying the stream will immediately purge the buffer, unless destroySoon() is called, in which case the rest of the buffer will be written out. Either way, any further attempts to put data in the Buffer will be silently ignored. \r\n\r\n\tmyReadableStreamBuffer.destroySoon();\r\n\tmyReadableStreamBuffer.put("A String!");\r\n\tmyReadableStreamBuffer.size();\t\t\t// will be 0.\r\n\t\r\n## Disclaimer\r\n\r\nNot supposed to be a speed demon, it\'s more for tests/debugging or weird edge cases. It works with an internal buffer that it copies contents to/from/around.\r\n\r\n## License\r\n\r\nnode-stream-buffer is free and unencumbered public domain software. For more information, see the accompanying UNLICENSE file.',
3592 silly resolved     readmeFilename: 'README.md',
3592 silly resolved     bugs: { url: 'https://github.com/samcday/node-stream-buffer/issues' },
3592 silly resolved     _id: 'stream-...@0.2.4',
3592 silly resolved     _from: 'stream-buffers@~0.2.3' } ]
3593 info install stream-...@0.2.4 into /usr/local/lib/node_modules/appium/node_modules/bplist-creator
3594 info installOne stream-...@0.2.4
3596 silly registry.get cb [ 304,
3596 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3596 silly registry.get     etag: '"D7K1H7LZWS5MZ5237EITUFCEM"',
3596 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3596 silly registry.get     'content-length': '0' } ]
3597 verbose etag commander/0.6.1 from cache
3598 silly addNameRange number 2 { name: 'pullstream', range: '>=0.4.0- <0.5.0-', hasData: true }
3599 silly addNameRange versions [ 'pullstream',
3599 silly addNameRange   [ '0.0.1',
3599 silly addNameRange     '0.0.2',
3599 silly addNameRange     '0.0.3',
3599 silly addNameRange     '0.0.4',
3599 silly addNameRange     '0.0.5',
3599 silly addNameRange     '0.0.6',
3599 silly addNameRange     '0.1.0',
3599 silly addNameRange     '0.2.0',
3599 silly addNameRange     '0.2.1',
3599 silly addNameRange     '0.2.2',
3599 silly addNameRange     '0.3.0',
3599 silly addNameRange     '0.4.0' ] ]
3600 verbose addNamed [ 'pullstream', '0.4.0' ]
3601 verbose addNamed [ '0.4.0', '0.4.0' ]
3602 silly lockFile d895d482-pullstream-0-4-0 pulls...@0.4.0
3603 verbose lock pulls...@0.4.0 /Users/jmiele/.npm/d895d482-pullstream-0-4-0.lock
3604 verbose from cache /Users/jmiele/.npm/stream-buffers/0.2.4/package/package.json
3605 info /usr/local/lib/node_modules/appium/node_modules/bplist-creator/node_modules/stream-buffers unbuild
3606 verbose read json /usr/local/lib/node_modules/appium/node_modules/bplist-creator/node_modules/stream-buffers/package.json
3607 silly lockFile f36e9fe1-match-stream-0-0-1 match-...@0.0.1
3608 silly lockFile f36e9fe1-match-stream-0-0-1 match-...@0.0.1
3609 silly lockFile bd38fc46-binary-0-3-0 binary@~0.3.0
3610 silly lockFile bd38fc46-binary-0-3-0 binary@~0.3.0
3612 silly registry.get cb [ 304,
3612 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3612 silly registry.get     etag: '"6LJN33H1HL085DMJE4P3CG40V"',
3612 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3612 silly registry.get     'content-length': '0' } ]
3613 verbose etag cookie/0.0.5 from cache
3614 silly gunzTarPerm extractEntry test/findup-sync_test.js
3615 silly gunzTarPerm extractEntry test/fixtures/a/b/bar.txt
3616 silly lockFile 9b468877-setimmediate-1-0-1 setimmediate@~1.0.1
3617 silly lockFile 9b468877-setimmediate-1-0-1 setimmediate@~1.0.1
3618 silly gunzTarPerm extractEntry package.json
3619 silly gunzTarPerm extractEntry README.md
3620 silly gunzTarPerm extractEntry inherits.js
3621 verbose read json /Users/jmiele/.npm/pullstream/0.4.0/package/package.json
3622 silly gunzTarPerm extractEntry examples/pretty-print.js
3623 silly lockFile 7efda1a3-fstream-0-1-22 fst...@0.1.22
3624 silly lockFile 7efda1a3-fstream-0-1-22 fst...@0.1.22
3625 silly gunzTarPerm extractEntry node_modules/form-data/test/fixture/bacon.txt
3626 silly gunzTarPerm extractEntry node_modules/form-data/test/fixture/unicycle.jpg
3627 verbose tar unpack /Users/jmiele/.npm/stream-buffers/0.2.4/package.tgz
3628 silly lockFile 9dbdf150-ator-node-modules-stream-buffers /usr/local/lib/node_modules/appium/node_modules/bplist-creator/node_modules/stream-buffers
3629 verbose lock /usr/local/lib/node_modules/appium/node_modules/bplist-creator/node_modules/stream-buffers /Users/jmiele/.npm/9dbdf150-ator-node-modules-stream-buffers.lock
3630 silly lockFile a08491c4-stream-buffers-0-2-4-package-tgz /Users/jmiele/.npm/stream-buffers/0.2.4/package.tgz
3631 verbose lock /Users/jmiele/.npm/stream-buffers/0.2.4/package.tgz /Users/jmiele/.npm/a08491c4-stream-buffers-0-2-4-package-tgz.lock
3632 verbose read json /Users/jmiele/.npm/mkdirp/0.3.3/package/package.json
3633 silly lockFile 359d2e02-fstream-0-1-21 fstream@~0.1.21
3634 silly lockFile 359d2e02-fstream-0-1-21 fstream@~0.1.21
3635 silly gunzTarPerm modes [ '755', '644' ]
3636 silly gunzTarPerm extractEntry README.md
3637 silly gunzTarPerm extractEntry LICENSE
3638 silly gunzTarPerm extractEntry lib/core.js
3639 silly gunzTarPerm extractEntry lib/sync.js
3640 silly gunzTarPerm extractEntry test/original/links_shortcut_references.html
3641 silly gunzTarPerm extractEntry test/original/links_shortcut_references.text
3642 verbose read json /Users/jmiele/.npm/connect/2.7.2/package/package.json
3643 verbose read json /Users/jmiele/.npm/commander/0.6.1/package/package.json
3644 verbose read json /Users/jmiele/.npm/cookie/0.0.5/package/package.json
3645 silly gunzTarPerm extractEntry test/fixtures/a/foo.txt
3646 silly gunzTarPerm extractEntry test/fixtures/a.txt
3647 verbose read json /usr/local/lib/node_modules/appium/node_modules/rimraf/node_modules/graceful-fs/package.json
3648 silly gunzTarPerm extractEntry package.json
3649 silly gunzTarPerm extractEntry node_modules/form-data/test/integration/test-form-get-length.js
3650 silly gunzTarPerm extractEntry node_modules/form-data/test/integration/test-get-boundary.js
3651 silly lockFile d895d482-pullstream-0-4-0 pulls...@0.4.0
3652 silly lockFile d895d482-pullstream-0-4-0 pulls...@0.4.0
3653 silly gunzTarPerm extractEntry examples/get-products.js
3654 silly gunzTarPerm extractEntry examples/hello-world.js
3655 silly gunzTarPerm extractEntry lib/core.json
3656 silly lockFile 453bb99b-mkdirp-0-3-3 mkd...@0.3.3
3657 silly lockFile 453bb99b-mkdirp-0-3-3 mkd...@0.3.3
3659 silly registry.get cb [ 304,
3659 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3659 silly registry.get     etag: '"4LYQEZP7F0RJGVO8CMQ7D0ZM2"',
3659 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3659 silly registry.get     'content-length': '0' } ]
3660 verbose etag range-parser/0.0.4 from cache
3661 silly lockFile 01a41988-pullstream-0-4-0 pullstream@~0.4.0
3662 silly lockFile 01a41988-pullstream-0-4-0 pullstream@~0.4.0
3663 silly gunzTarPerm extractEntry README.md
3664 silly gunzTarPerm extractEntry UNLICENSE
3665 silly gunzTarPerm extractEntry minimatch.js
3666 silly gunzTarPerm extractEntry test/basic.js
3667 silly gunzTarPerm extractEntry test/brace-expand.js
3668 silly gunzTarPerm extractEntry test/caching.js
3669 silly gunzTarPerm extractEntry test/defaults.js
3670 silly resolved [ { name: 'readable-stream',
3670 silly resolved     version: '1.0.2',
3670 silly resolved     description: 'An exploration of a new kind of readable streams for Node.js',
3670 silly resolved     main: 'readable.js',
3670 silly resolved     dependencies: {},
3670 silly resolved     devDependencies: { tap: '~0.2.6' },
3670 silly resolved     scripts: { test: 'tap test/simple/*.js' },
3670 silly resolved     repository: { type: 'git', url: 'git://github.com/isaacs/readable-stream' },
3670 silly resolved     keywords: [ 'readable', 'stream', 'pipe' ],
3670 silly resolved     author:
3670 silly resolved      { name: 'Isaac Z. Schlueter',
3670 silly resolved        email: 'i...@izs.me',
3670 silly resolved        url: 'http://blog.izs.me/' },
3670 silly resolved     license: 'BSD',
3670 silly resolved     readme: '# readable-stream\n\nA new class of streams for Node.js\n\nThis module provides the new Stream base classes introduced in Node\nv0.10, for use in Node v0.8.  You can use it to have programs that\nhave to work with node v0.8, while being forward-compatible for v0.10\nand beyond.  When you drop support for v0.8, you can remove this\nmodule, and only use the native streams.\n\nThis is almost exactly the same codebase as appears in Node v0.10.\nHowever:\n\n1. The exported object is actually the Readable class.  Decorating the\n   native `stream` module would be global pollution.\n2. In v0.10, you can safely use `base64` as an argument to\n   `setEncoding` in Readable streams.  However, in v0.8, the\n   StringDecoder class has no `end()` method, which is problematic for\n   Base64.  So, don\'t use that, because it\'ll break and be weird.\n\nOther than that, the API is the same as `require(\'stream\')` in v0.10,\nso the API docs are reproduced below.\n\n----------\n\n    Stability: 2 - Unstable\n\nA stream is an abstract interface implemented by various objects in\nNode.  For example a request to an HTTP server is a stream, as is\nstdout. Streams are readable, writable, or both. All streams are\ninstances of [EventEmitter][]\n\nYou can load the Stream base classes by doing `require(\'stream\')`.\nThere are base classes provided for Readable streams, Writable\nstreams, Duplex streams, and Transform streams.\n\n## Compatibility\n\nIn earlier versions of Node, the Readable stream interface was\nsimpler, but also less powerful and less useful.\n\n* Rather than waiting for you to call the `read()` method, `\'data\'`\n  events would start emitting immediately.  If you needed to do some\n  I/O to decide how to handle data, then you had to store the chunks\n  in some kind of buffer so that they would not be lost.\n* The `pause()` method was advisory, rather than guaranteed.  This\n  meant that you still had to be prepared to receive `\'data\'` events\n  even when the stream was in a paused state.\n\nIn Node v0.10, the Readable class described below was added.  For\nbackwards compatibility with older Node programs, Readable streams\nswitch into "old mode" when a `\'data\'` event handler is added, or when\nthe `pause()` or `resume()` methods are called.  The effect is that,\neven if you are not using the new `read()` method and `\'readable\'`\nevent, you no longer have to worry about losing `\'data\'` chunks.\n\nMost programs will continue to function normally.  However, this\nintroduces an edge case in the following conditions:\n\n* No `\'data\'` event handler is added.\n* The `pause()` and `resume()` methods are never called.\n\nFor example, consider the following code:\n\n```javascript\n// WARNING!  BROKEN!\nnet.createServer(function(socket) {\n\n  // we add an \'end\' method, but never consume the data\n  socket.on(\'end\', function() {\n    // It will never get here.\n    socket.end(\'I got your message (but didnt read it)\\n\');\n  });\n\n}).listen(1337);\n```\n\nIn versions of node prior to v0.10, the incoming message data would be\nsimply discarded.  However, in Node v0.10 and beyond, the socket will\nremain paused forever.\n\nThe workaround in this situation is to call the `resume()` method to\ntrigger "old mode" behavior:\n\n```javascript\n// Workaround\nnet.createServer(function(socket) {\n\n  socket.on(\'end\', function() {\n    socket.end(\'I got your message (but didnt read it)\\n\');\n  });\n\n  // start the flow of data, discarding it.\n  socket.resume();\n\n}).listen(1337);\n```\n\nIn addition to new Readable streams switching into old-mode, pre-v0.10\nstyle streams can be wrapped in a Readable class using the `wrap()`\nmethod.\n\n## Class: stream.Readable\n\n<!--type=class-->\n\nA `Readable Stream` has the following methods, members, and events.\n\nNote that `stream.Readable` is an abstract class designed to be\nextended with an underlying implementation of the `_read(size)`\nmethod. (See below.)\n\n### new stream.Readable([options])\n\n* `options` {Object}\n  * `highWaterMark` {Number} The maximum number of bytes to store in\n    the internal buffer before ceasing to read from the underlying\n    resource.  Default=16kb\n  * `encoding` {String} If specified, then buffers will be decoded to\n    strings using the specified encoding.  Default=null\n  * `objectMode` {Boolean} Whether this stream should behave\n    as a stream of objects. Meaning that stream.read(n) returns\n    a single value instead of a Buffer of size n\n\nIn classes that extend the Readable class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n### readable.\\_read(size)\n\n* `size` {Number} Number of bytes to read asynchronously\n\nNote: **This function should NOT be called directly.**  It should be\nimplemented by child classes, and called by the internal Readable\nclass methods only.\n\nAll Readable stream implementations must provide a `_read` method\nto fetch data from the underlying resource.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms.  However, you **are** expected to override this method in\nyour own extension classes.\n\nWhen data is available, put it into the read queue by calling\n`readable.push(chunk)`.  If `push` returns false, then you should stop\nreading.  When `_read` is called again, you should start pushing more\ndata.\n\nThe `size` argument is advisory.  Implementations where a "read" is a\nsingle call that returns data can use this to know how much data to\nfetch.  Implementations where that is not relevant, such as TCP or\nTLS, may ignore this argument, and simply provide data whenever it\nbecomes available.  There is no need, for example to "wait" until\n`size` bytes are available before calling `stream.push(chunk)`.\n\n### readable.push(chunk)\n\n* `chunk` {Buffer | null | String} Chunk of data to push into the read queue\n* return {Boolean} Whether or not more pushes should be performed\n\nNote: **This function should be called by Readable implementors, NOT\nby consumers of Readable subclasses.**  The `_read()` function will not\nbe called again until at least one `push(chunk)` call is made.  If no\ndata is available, then you MAY call `push(\'\')` (an empty string) to\nallow a future `_read` call, without adding any data to the queue.\n\nThe `Readable` class works by putting data into a read queue to be\npulled out later by calling the `read()` method when the `\'readable\'`\nevent fires.\n\nThe `push()` method will explicitly insert some data into the read\nqueue.  If it is called with `null` then it will signal the end of the\ndata.\n\nIn some cases, you may be wrapping a lower-level source which has some\nsort of pause/resume mechanism, and a data callback.  In those cases,\nyou could wrap the low-level source object by doing something like\nthis:\n\n```javascript\n// source is an object with readStop() and readStart() methods,\n// and an `ondata` member that gets called when it has data, and\n// an `onend` member that gets called when the data is over.\n\nvar stream = new Readable();\n\nsource.ondata = function(chunk) {\n  // if push() returns false, then we need to stop reading from source\n  if (!stream.push(chunk))\n    source.readStop();\n};\n\nsource.onend = function() {\n  stream.push(null);\n};\n\n// _read will be called when the stream wants to pull more data in\n// the advisory size argument is ignored in this case.\nstream._read = function(n) {\n  source.readStart();\n};\n```\n\n### readable.unshift(chunk)\n\n* `chunk` {Buffer | null | String} Chunk of data to unshift onto the read queue\n* return {Boolean} Whether or not more pushes should be performed\n\nThis is the corollary of `readable.push(chunk)`.  Rather than putting\nthe data at the *end* of the read queue, it puts it at the *front* of\nthe read queue.\n\nThis is useful in certain use-cases where a stream is being consumed\nby a parser, which needs to "un-consume" some data that it has\noptimistically pulled out of the source.\n\n```javascript\n// A parser for a simple data protocol.\n// The "header" is a JSON object, followed by 2 \\n characters, and\n// then a message body.\n//\n// Note: This can be done more simply as a Transform stream.  See below.\n\nfunction SimpleProtocol(source, options) {\n  if (!(this instanceof SimpleProtocol))\n    return new SimpleProtocol(options);\n\n  Readable.call(this, options);\n  this._inBody = false;\n  this._sawFirstCr = false;\n\n  // source is a readable stream, such as a socket or file\n  this._source = source;\n\n  var self = this;\n  source.on(\'end\', function() {\n    self.push(null);\n  });\n\n  // give it a kick whenever the source is readable\n  // read(0) will not consume any bytes\n  source.on(\'readable\', function() {\n    self.read(0);\n  });\n\n  this._rawHeader = [];\n  this.header = null;\n}\n\nSimpleProtocol.prototype = Object.create(\n  Readable.prototype, { constructor: { value: SimpleProtocol }});\n\nSimpleProtocol.prototype._read = function(n) {\n  if (!this._inBody) {\n    var chunk = this._source.read();\n\n    // if the source doesn\'t have data, we don\'t have data yet.\n    if (chunk === null)\n      return this.push(\'\');\n\n    // check if the chunk has a \\n\\n\n    var split = -1;\n    for (var i = 0; i < chunk.length; i++) {\n      if (chunk[i] === 10) { // \'\\n\'\n        if (this._sawFirstCr) {\n          split = i;\n          break;\n        } else {\n          this._sawFirstCr = true;\n        }\n      } else {\n        this._sawFirstCr = false;\n      }\n    }\n\n    if (split === -1) {\n      // still waiting for the \\n\\n\n      // stash the chunk, and try again.\n      this._rawHeader.push(chunk);\n      this.push(\'\');\n    } else {\n      this._inBody = true;\n      var h = chunk.slice(0, split);\n      this._rawHeader.push(h);\n      var header = Buffer.concat(this._rawHeader).toString();\n      try {\n        this.header = JSON.parse(header);\n      } catch (er) {\n        this.emit(\'error\', new Error(\'invalid simple protocol data\'));\n        return;\n      }\n      // now, because we got some extra data, unshift the rest\n      // back into the read queue so that our consumer will see it.\n      var b = chunk.slice(split);\n      this.unshift(b);\n\n      // and let them know that we are done parsing the header.\n      this.emit(\'header\', this.header);\n    }\n  } else {\n    // from there on, just provide the data to our consumer.\n    // careful not to push(null), since that would indicate EOF.\n    var chunk = this._source.read();\n    if (chunk) this.push(chunk);\n  }\n};\n\n// Usage:\nvar parser = new SimpleProtocol(source);\n// Now parser is a readable stream that will emit \'header\'\n// with the parsed header data.\n```\n\n### readable.wrap(stream)\n\n* `stream` {Stream} An "old style" readable stream\n\nIf you are using an older Node library that emits `\'data\'` events and\nhas a `pause()` method that is advisory only, then you can use the\n`wrap()` method to create a Readable stream that uses the old stream\nas its data source.\n\nFor example:\n\n```javascript\nvar OldReader = require(\'./old-api-module.js\').OldReader;\nvar oreader = new OldReader;\nvar Readable = require(\'stream\').Readable;\nvar myReader = new Readable().wrap(oreader);\n\nmyReader.on(\'readable\', function() {\n  myReader.read(); // etc.\n});\n```\n\n### Event: \'readable\'\n\nWhen there is data ready to be consumed, this event will fire.\n\nWhen this event emits, call the `read()` method to consume the data.\n\n### Event: \'end\'\n\nEmitted when the stream has received an EOF (FIN in TCP terminology).\nIndicates that no more `\'data\'` events will happen. If the stream is\nalso writable, it may be possible to continue writing.\n\n### Event: \'data\'\n\nThe `\'data\'` event emits either a `Buffer` (by default) or a string if\n`setEncoding()` was used.\n\nNote that adding a `\'data\'` event listener will switch the Readable\nstream into "old mode", where data is emitted as soon as it is\navailable, rather than waiting for you to call `read()` to consume it.\n\n### Event: \'error\'\n\nEmitted if there was an error receiving data.\n\n### Event: \'close\'\n\nEmitted when the underlying resource (for example, the backing file\ndescriptor) has been closed. Not all streams will emit this.\n\n### readable.setEncoding(encoding)\n\nMakes the `\'data\'` event emit a string instead of a `Buffer`. `encoding`\ncan be `\'utf8\'`, `\'utf16le\'` (`\'ucs2\'`), `\'ascii\'`, or `\'hex\'`.\n\nThe encoding can also be set by specifying an `encoding` field to the\nconstructor.\n\n### readable.read([size])\n\n* `size` {Number | null} Optional number of bytes to read.\n* Return: {Buffer | String | null}\n\nNote: **This function SHOULD be called by Readable stream users.**\n\nCall this method to consume data once the `\'readable\'` event is\nemitted.\n\nThe `size` argument will set a minimum number of bytes that you are\ninterested in.  If not set, then the entire content of the internal\nbuffer is returned.\n\nIf there is no data to consume, or if there are fewer bytes in the\ninternal buffer than the `size` argument, then `null` is returned, and\na future `\'readable\'` event will be emitted when more is available.\n\nCalling `stream.read(0)` will always return `null`, and will trigger a\nrefresh of the internal buffer, but otherwise be a no-op.\n\n### readable.pipe(destination, [options])\n\n* `destination` {Writable Stream}\n* `options` {Object} Optional\n  * `end` {Boolean} Default=true\n\nConnects this readable stream to `destination` WriteStream. Incoming\ndata on this stream gets written to `destination`.  Properly manages\nback-pressure so that a slow destination will not be overwhelmed by a\nfast readable stream.\n\nThis function returns the `destination` stream.\n\nFor example, emulating the Unix `cat` command:\n\n    process.stdin.pipe(process.stdout);\n\nBy default `end()` is called on the destination when the source stream\nemits `end`, so that `destination` is no longer writable. Pass `{ end:\nfalse }` as `options` to keep the destination stream open.\n\nThis keeps `writer` open so that "Goodbye" can be written at the\nend.\n\n    reader.pipe(writer, { end: false });\n    reader.on("end", function() {\n      writer.end("Goodbye\\n");\n    });\n\nNote that `process.stderr` and `process.stdout` are never closed until\nthe process exits, regardless of the specified options.\n\n### readable.unpipe([destination])\n\n* `destination` {Writable Stream} Optional\n\nUndo a previously established `pipe()`.  If no destination is\nprovided, then all previously established pipes are removed.\n\n### readable.pause()\n\nSwitches the readable stream into "old mode", where data is emitted\nusing a `\'data\'` event rather than being buffered for consumption via\nthe `read()` method.\n\nCeases the flow of data.  No `\'data\'` events are emitted while the\nstream is in a paused state.\n\n### readable.resume()\n\nSwitches the readable stream into "old mode", where data is emitted\nusing a `\'data\'` event rather than being buffered for consumption via\nthe `read()` method.\n\nResumes the incoming `\'data\'` events after a `pause()`.\n\n\n## Class: stream.Writable\n\n<!--type=class-->\n\nA `Writable` Stream has the following methods, members, and events.\n\nNote that `stream.Writable` is an abstract class designed to be\nextended with an underlying implementation of the\n`_write(chunk, encoding, cb)` method. (See below.)\n\n### new stream.Writable([options])\n\n* `options` {Object}\n  * `highWaterMark` {Number} Buffer level when `write()` starts\n    returning false. Default=16kb\n  * `decodeStrings` {Boolean} Whether or not to decode strings into\n    Buffers before passing them to `_write()`.  Default=true\n\nIn classes that extend the Writable class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n### writable.\\_write(chunk, encoding, callback)\n\n* `chunk` {Buffer | String} The chunk to be written.  Will always\n  be a buffer unless the `decodeStrings` option was set to `false`.\n* `encoding` {String} If the chunk is a string, then this is the\n  encoding type.  Ignore chunk is a buffer.  Note that chunk will\n  **always** be a buffer unless the `decodeStrings` option is\n  explicitly set to `false`.\n* `callback` {Function} Call this function (optionally with an error\n  argument) when you are done processing the supplied chunk.\n\nAll Writable stream implementations must provide a `_write` method to\nsend data to the underlying resource.\n\nNote: **This function MUST NOT be called directly.**  It should be\nimplemented by child classes, and called by the internal Writable\nclass methods only.\n\nCall the callback using the standard `callback(error)` pattern to\nsignal that the write completed successfully or with an error.\n\nIf the `decodeStrings` flag is set in the constructor options, then\n`chunk` may be a string rather than a Buffer, and `encoding` will\nindicate the sort of string that it is.  This is to support\nimplementations that have an optimized handling for certain string\ndata encodings.  If you do not explicitly set the `decodeStrings`\noption to `false`, then you can safely ignore the `encoding` argument,\nand assume that `chunk` will always be a Buffer.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms.  However, you **are** expected to override this method in\nyour own extension classes.\n\n\n### writable.write(chunk, [encoding], [callback])\n\n* `chunk` {Buffer | String} Data to be written\n* `encoding` {String} Optional.  If `chunk` is a string, then encoding\n  defaults to `\'utf8\'`\n* `callback` {Function} Optional.  Called when this chunk is\n  successfully written.\n* Returns {Boolean}\n\nWrites `chunk` to the stream.  Returns `true` if the data has been\nflushed to the underlying resource.  Returns `false` to indicate that\nthe buffer is full, and the data will be sent out in the future. The\n`\'drain\'` event will indicate when the buffer is empty again.\n\nThe specifics of when `write()` will return false, is determined by\nthe `highWaterMark` option provided to the constructor.\n\n### writable.end([chunk], [encoding], [callback])\n\n* `chunk` {Buffer | String} Optional final data to be written\n* `encoding` {String} Optional.  If `chunk` is a string, then encoding\n  defaults to `\'utf8\'`\n* `callback` {Function} Optional.  Called when the final chunk is\n  successfully written.\n\nCall this method to signal the end of the data being written to the\nstream.\n\n### Event: \'drain\'\n\nEmitted when the stream\'s write queue empties and it\'s safe to write\nwithout buffering again. Listen for it when `stream.write()` returns\n`false`.\n\n### Event: \'close\'\n\nEmitted when the underlying resource (for example, the backing file\ndescriptor) has been closed. Not all streams will emit this.\n\n### Event: \'finish\'\n\nWhen `end()` is called and there are no more chunks to write, this\nevent is emitted.\n\n### Event: \'pipe\'\n\n* `source` {Readable Stream}\n\nEmitted when the stream is passed to a readable stream\'s pipe method.\n\n### Event \'unpipe\'\n\n* `source` {Readable Stream}\n\nEmitted when a previously established `pipe()` is removed using the\nsource Readable stream\'s `unpipe()` method.\n\n## Class: stream.Duplex\n\n<!--type=class-->\n\nA "duplex" stream is one that is both Readable and Writable, such as a\nTCP socket connection.\n\nNote that `stream.Duplex` is an abstract class designed to be\nextended with an underlying implementation of the `_read(size)`\nand `_write(chunk, encoding, callback)` methods as you would with a Readable or\nWritable stream class.\n\nSince JavaScript doesn\'t have multiple prototypal inheritance, this\nclass prototypally inherits from Readable, and then parasitically from\nWritable.  It is thus up to the user to implement both the lowlevel\n`_read(n)` method as well as the lowlevel `_write(chunk, encoding, cb)` method\non extension duplex classes.\n\n### new stream.Duplex(options)\n\n* `options` {Object} Passed to both Writable and Readable\n  constructors. Also has the following fields:\n  * `allowHalfOpen` {Boolean} Default=true.  If set to `false`, then\n    the stream will automatically end the readable side when the\n    writable side ends and vice versa.\n\nIn classes that extend the Duplex class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n## Class: stream.Transform\n\nA "transform" stream is a duplex stream where the output is causally\nconnected in some way to the input, such as a zlib stream or a crypto\nstream.\n\nThere is no requirement that the output be the same size as the input,\nthe same number of chunks, or arrive at the same time.  For example, a\nHash stream will only ever have a single chunk of output which is\nprovided when the input is ended.  A zlib stream will either produce\nmuch smaller or much larger than its input.\n\nRather than implement the `_read()` and `_write()` methods, Transform\nclasses must implement the `_transform()` method, and may optionally\nalso implement the `_flush()` method.  (See below.)\n\n### new stream.Transform([options])\n\n* `options` {Object} Passed to both Writable and Readable\n  constructors.\n\nIn classes that extend the Transform class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n### transform.\\_transform(chunk, encoding, callback)\n\n* `chunk` {Buffer | String} The chunk to be transformed.  Will always\n  be a buffer unless the `decodeStrings` option was set to `false`.\n* `encoding` {String} If the chunk is a string, then this is the\n  encoding type.  (Ignore if `decodeStrings` chunk is a buffer.)\n* `callback` {Function} Call this function (optionally with an error\n  argument) when you are done processing the supplied chunk.\n\nNote: **This function MUST NOT be called directly.**  It should be\nimplemented by child classes, and called by the internal Transform\nclass methods only.\n\nAll Transform stream implementations must provide a `_transform`\nmethod to accept input and produce output.\n\n`_transform` should do whatever has to be done in this specific\nTransform class, to handle the bytes being written, and pass them off\nto the readable portion of the interface.  Do asynchronous I/O,\nprocess things, and so on.\n\nCall `transform.push(outputChunk)` 0 or more times to generate output\nfrom this input chunk, depending on how much data you want to output\nas a result of this chunk.\n\nCall the callback function only when the current chunk is completely\nconsumed.  Note that there may or may not be output as a result of any\nparticular input chunk.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms.  However, you **are** expected to override this method in\nyour own extension classes.\n\n### transform.\\_flush(callback)\n\n* `callback` {Function} Call this function (optionally with an error\n  argument) when you are done flushing any remaining data.\n\nNote: **This function MUST NOT be called directly.**  It MAY be implemented\nby child classes, and if so, will be called by the internal Transform\nclass methods only.\n\nIn some cases, your transform operation may need to emit a bit more\ndata at the end of the stream.  For example, a `Zlib` compression\nstream will store up some internal state so that it can optimally\ncompress the output.  At the end, however, it needs to do the best it\ncan with what is left, so that the data will be complete.\n\nIn those cases, you can implement a `_flush` method, which will be\ncalled at the very end, after all the written data is consumed, but\nbefore emitting `end` to signal the end of the readable side.  Just\nlike with `_transform`, call `transform.push(chunk)` zero or more\ntimes, as appropriate, and call `callback` when the flush operation is\ncomplete.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms.  However, you **are** expected to override this method in\nyour own extension classes.\n\n### Example: `SimpleProtocol` parser\n\nThe example above of a simple protocol parser can be implemented much\nmore simply by using the higher level `Transform` stream class.\n\nIn this example, rather than providing the input as an argument, it\nwould be piped into the parser, which is a more idiomatic Node stream\napproach.\n\n```javascript\nfunction SimpleProtocol(options) {\n  if (!(this instanceof SimpleProtocol))\n    return new SimpleProtocol(options);\n\n  Transform.call(this, options);\n  this._inBody = false;\n  this._sawFirstCr = false;\n  this._rawHeader = [];\n  this.header = null;\n}\n\nSimpleProtocol.prototype = Object.create(\n  Transform.prototype, { constructor: { value: SimpleProtocol }});\n\nSimpleProtocol.prototype._transform = function(chunk, encoding, done) {\n  if (!this._inBody) {\n    // check if the chunk has a \\n\\n\n    var split = -1;\n    for (var i = 0; i < chunk.length; i++) {\n      if (chunk[i] === 10) { // \'\\n\'\n        if (this._sawFirstCr) {\n          split = i;\n          break;\n        } else {\n          this._sawFirstCr = true;\n        }\n      } else {\n        this._sawFirstCr = false;\n      }\n    }\n\n    if (split === -1) {\n      // still waiting for the \\n\\n\n      // stash the chunk, and try again.\n      this._rawHeader.push(chunk);\n    } else {\n      this._inBody = true;\n      var h = chunk.slice(0, split);\n      this._rawHeader.push(h);\n      var header = Buffer.concat(this._rawHeader).toString();\n      try {\n        this.header = JSON.parse(header);\n      } catch (er) {\n        this.emit(\'error\', new Error(\'invalid simple protocol data\'));\n        return;\n      }\n      // and let them know that we are done parsing the header.\n      this.emit(\'header\', this.header);\n\n      // now, because we got some extra data, emit this first.\n      this.push(b);\n    }\n  } else {\n    // from there on, just provide the data to our consumer as-is.\n    this.push(b);\n  }\n  done();\n};\n\nvar parser = new SimpleProtocol();\nsource.pipe(parser)\n\n// Now parser is a readable stream that will emit \'header\'\n// with the parsed header data.\n```\n\n\n## Class: stream.PassThrough\n\nThis is a trivial implementation of a `Transform` stream that simply\npasses the input bytes across to the output.  Its purpose is mainly\nfor examples and testing, but there are occasionally use cases where\nit can come in handy.\n\n\n[EventEmitter]: events.html#events_class_events_eventemitter\n',
3670 silly resolved     readmeFilename: 'README.md',
3670 silly resolved     bugs: { url: 'https://github.com/isaacs/readable-stream/issues' },
3670 silly resolved     _id: 'readabl...@1.0.2',
3670 silly resolved     _from: 'readable-stream@~1.0.0' },
3670 silly resolved   { name: 'match-stream',
3670 silly resolved     version: '0.0.1',
3670 silly resolved     description: 'Match a pattern within a stream',
3670 silly resolved     main: 'match.js',
3670 silly resolved     directories: { example: 'examples', test: 'test' },
3670 silly resolved     dependencies: { buffers: '~0.1.1', 'readable-stream': '~1.0.0' },
3670 silly resolved     devDependencies: { tap: '~0.4.0', 'stream-buffers': '~0.2.4' },
3670 silly resolved     scripts: { test: './node_modules/.bin/tap ./test/*.js' },
3670 silly resolved     repository:
3670 silly resolved      { type: 'git',
3670 silly resolved        url: 'https://github.com/EvanOxfeld/match-stream.git' },
3670 silly resolved     keywords: [ 'match', 'stream', 'split' ],
3670 silly resolved     author: { name: 'Evan Oxfeld', email: 'eox...@gmail.com' },
3670 silly resolved     license: 'MIT',
3670 silly resolved     readmeFilename: 'README.md',
3670 silly resolved     gitHead: '665dabbb0a3593310012eb041fc07395db632a20',
3670 silly resolved     readme: 'match-stream [![Build Status](https://travis-ci.org/EvanOxfeld/match-stream.png)](https://travis-ci.org/EvanOxfeld/match-stream)\n============\n\nSupply a function to handle pattern matches within a NodeJS stream.\n\n## Installation\n\n```bash\n$ npm install match-stream\n```\n\n## Quick Examples\n\n### End stream on match\n\n```javascript\nvar MatchStream = require(\'match-stream\');\nvar streamBuffers = require("stream-buffers");\n\nvar ms = new MatchStream({ pattern: \'World\'}, function (buf, matched, extra) {\n  if (!matched) {\n    return this.push(buf);\n  }\n  this.push(buf);\n  return this.push(null); //end the stream\n});\n\nvar sourceStream = new streamBuffers.ReadableStreamBuffer();\nsourceStream.put("Hello World");\nvar writableStream = new streamBuffers.WritableStreamBuffer();\n\nsourceStream\n  .pipe(ms)\n  .pipe(writableStream)\n  .once(\'close\', function () {\n    var str = writableStream.getContentsAsString(\'utf8\');\n    console.log(\'Piped data before pattern occurs:\', "\'" + str + "\'");\n    sourceStream.destroy();\n  });\n\n//Output\n//Piped data before pattern occurs: \'Hello \'\n```\n\n### Split stream\n\n```javascript\nvar MatchStream = require(\'match-stream\');\nvar fs = require(\'fs\');\n\nvar line = "";\nvar loremLines = [];\nvar ms = new MatchStream({ pattern: \'.\', consume: true}, function (buf, matched, extra) {\n  line += buf.toString();\n  if (matched) {\n    loremLines.push(line.trim());\n    line = "";\n  }\n});\n\nfs.createReadStream(\'lorem.txt\')\n  .pipe(ms)\n  .once(\'end\', function() {\n    console.log(loremLines);\n  });\n```\n\n## License\n\nMIT\n\n## Acknowledgements\n\nSpecial thanks to @wanderview for assisting with the API.\n\n',
3670 silly resolved     bugs: { url: 'https://github.com/EvanOxfeld/match-stream/issues' },
3670 silly resolved     _id: 'match-...@0.0.1',
3670 silly resolved     _from: 'match-...@0.0.1' },
3670 silly resolved   { name: 'binary',
3670 silly resolved     version: '0.3.0',
3670 silly resolved     description: 'Unpack multibyte binary values from buffers',
3670 silly resolved     main: './index.js',
3670 silly resolved     repository:
3670 silly resolved      { type: 'git',
3670 silly resolved        url: 'http://github.com/substack/node-binary.git' },
3670 silly resolved     keywords: [ 'binary', 'decode', 'endian', 'unpack', 'signed', 'unsigned' ],
3670 silly resolved     author:
3670 silly resolved      { name: 'James Halliday',
3670 silly resolved        email: 'ma...@substack.net',
3670 silly resolved        url: 'http://substack.net' },
3670 silly resolved     dependencies: { chainsaw: '~0.1.0', buffers: '~0.1.1' },
3670 silly resolved     devDependencies: { seq: '~0.2.5', tap: '~0.2.4' },
3670 silly resolved     scripts: { test: 'tap test/*.js' },
3670 silly resolved     license: 'MIT',
3670 silly resolved     engine: { node: '>=0.4.0' },
3670 silly resolved     readme: 'binary\n======\n\nUnpack multibyte binary values from buffers and streams.\nYou can specify the endianness and signedness of the fields to be unpacked too.\n\nThis module is a cleaner and more complete version of\n[bufferlist](https://github.com/substack/node-bufferlist)\'s binary module that\nruns on pre-allocated buffers instead of a linked list.\n\n[![build status](https://secure.travis-ci.org/substack/node-binary.png)](http://travis-ci.org/substack/node-binary)\n\nexamples\n========\n\nstream.js\n---------\n\n``` js\nvar binary = require(\'binary\');\n\nvar ws = binary()\n    .word32lu(\'x\')\n    .word16bs(\'y\')\n    .word16bu(\'z\')\n    .tap(function (vars) {\n        console.dir(vars);\n    })\n;\nprocess.stdin.pipe(ws);\nprocess.stdin.resume();\n```\n\noutput:\n\n```\n$ node examples/stream.js\nabcdefgh\n{ x: 1684234849, y: 25958, z: 26472 }\n^D\n```\n\nparse.js\n--------\n\n``` js\nvar buf = new Buffer([ 97, 98, 99, 100, 101, 102, 0 ]);\n\nvar binary = require(\'binary\');\nvar vars = binary.parse(buf)\n    .word16ls(\'ab\')\n    .word32bu(\'cf\')\n    .word8(\'x\')\n    .vars\n;\nconsole.dir(vars);\n```\n\noutput:\n\n```\n{ ab: 25185, cf: 1667523942, x: 0 }\n```\n\nmethods\n=======\n\n`var binary = require(\'binary\')`\n\nvar b = binary()\n----------------\n\nReturn a new writable stream `b` that has the chainable methods documented below\nfor buffering binary input.\n\nbinary.parse(buf)\n-----------------\n\nParse a static buffer in one pass. Returns a chainable interface with the\nmethods below plus a `vars` field to get at the variable stash as the last item\nin a chain.\n\nIn parse mode, methods will set their keys to `null` if the buffer isn\'t big\nenough except `buffer()` and `scan()` which read up up to the end of the buffer\nand stop.\n\nb.word{8,16,32,64}{l,b}{e,u,s}(key)\n-----------------------------------\n\nParse bytes in the buffer or stream given:\n\n* number of bits\n* endianness ( l : little, b : big ),\n* signedness ( u and e : unsigned, s : signed )\n\nThese functions won\'t start parsing until all previous parser functions have run\nand the data is available.\n\nThe result of the parse goes into the variable stash at `key`.\nIf `key` has dots (`.`s), it refers to a nested address. If parent container\nvalues don\'t exist they will be created automatically, so for instance you can\nassign into `dst.addr` and `dst.port` and the `dst` key in the variable stash\nwill be `{ addr : x, port : y }` afterwards.\n\nb.buffer(key, size)\n-------------------\n\nTake `size` bytes directly off the buffer stream, putting the resulting buffer\nslice in the variable stash at `key`. If `size` is a string, use the value at\n`vars[size]`. The key follows the same dotted address rules as the word\nfunctions.\n\nb.scan(key, buffer)\n-------------------\n\nSearch for `buffer` in the stream and store all the intervening data in the\nstash at at `key`, excluding the search buffer. If `buffer` passed as a string,\nit will be converted into a Buffer internally.\n\nFor example, to read in a line you can just do:\n\n``` js\nvar b = binary()\n    .scan(\'line\', new Buffer(\'\\r\\n\'))\n    .tap(function (vars) {\n        console.log(vars.line)\n    })\n;\nstream.pipe(b);\n```\n\nb.tap(cb)\n---------\n\nThe callback `cb` is provided with the variable stash from all the previous\nactions once they\'ve all finished.\n\nYou can nest additional actions onto `this` inside the callback.\n\nb.into(key, cb)\n---------------\n\nLike `.tap()`, except all nested actions will assign into a `key` in the `vars`\nstash.\n\nb.loop(cb)\n----------\n\nLoop, each time calling `cb(end, vars)` for function `end` and the variable\nstash with `this` set to a new chain for nested parsing. The loop terminates\nonce `end` is called.\n\nb.flush()\n---------\n\nClear the variable stash entirely.\n\ninstallation\n============\n\nTo install with [npm](http://github.com/isaacs/npm):\n\n```\nnpm install binary\n```\n\nnotes\n=====\n\nThe word64 functions will only return approximations since javascript uses ieee\nfloating point for all number types. Mind the loss of precision.\n\nlicense\n=======\n\nMIT\n\n',
3670 silly resolved     readmeFilename: 'README.markdown',
3670 silly resolved     bugs: { url: 'https://github.com/substack/node-binary/issues' },
3670 silly resolved     _id: 'bin...@0.3.0',
3670 silly resolved     _from: 'binary@~0.3.0' },
3670 silly resolved   { name: 'setimmediate',
3670 silly resolved     description: 'A shim for the setImmediate efficient script yielding API',
3670 silly resolved     version: '1.0.1',
3670 silly resolved     author: { name: 'NobleJS' },
3670 silly resolved     contributors: [ [Object], [Object], [Object] ],
3670 silly resolved     license: 'MIT',
3670 silly resolved     repository:
3670 silly resolved      { type: 'git',
3670 silly resolved        url: 'git://github.com/NobleJS/setImmediate.git' },
3670 silly resolved     bugs: { url: 'http://github.com/NobleJS/setImmediate/issues' },
3670 silly resolved     main: 'setImmediate.js',
3670 silly resolved     scripts:
3670 silly resolved      { lint: 'jshint setImmediate.js',
3670 silly resolved        test: 'mocha test/tests.js',
3670 silly resolved        'test-browser': 'opener http://localhost:9000 && zuul --server 9000 test/tests.js --wwwroot test/',
3670 silly resolved        'test-browser-only': 'opener http://localhost:9007/test/browserOnly/index.html && http-server . -p 9007' },
3670 silly resolved     devDependencies:
3670 silly resolved      { jshint: '>= 0.9.1',
3670 silly resolved        mocha: '>= 1.7.4',
3670 silly resolved        zuul: '>= 0.0.1',
3670 silly resolved        'http-server': '>= 0.5.3',
3670 silly resolved        opener: '>= 1.1.0' },
3670 silly resolved     testling: { browsers: [Object], harness: 'mocha', files: 'test/tests.js' },
3670 silly resolved     readme: '<a href="http://ci.testling.com/NobleJS/setImmediate">\n    <img src="http://ci.testling.com/NobleJS/setImmediate.png" alt="Testling-CI badge showing browser compliance"\n         align="right">\n</a>\n\n# setImmediate.js\n**A NobleJS production**\n\n## Introduction\n\n**setImmediate.js** is a highly cross-browser implementation of the `setImmediate` and `clearImmediate` APIs, currently\na [W3C draft spec][spec] from the Web Performance Working Group. `setImmediate` allows scripts to yield to the browser,\nexecuting a given operation asynchronously, in a manner that is typically more efficient and consumes less power than\nthe usual `setTimeout(..., 0)` pattern.\n\nsetImmediate.js runs at “full speed” in the following browsers and environments, using various clever tricks:\n\n * Internet Explorer 6+\n * Firefox 3+\n * WebKit\n * Opera 9.5+\n * Node.js\n * Web workers in browsers that support `MessageChannel`, which I can\'t find solid info on.\n\nIn all other browsers we fall back to using `setTimeout`, so it\'s always safe to use.\n\n## The Tricks\n\n### `process.nextTick`\n\nIn Node.js versions below 0.9, `setImmediate` is not available, but [`process.nextTick`][nextTIck] is, so we use it to\nshim support for a global `setImmediate`. In Node.js 0.9 and above, `setImmediate` is available.\n\nNote that we check for *actual* Node.js environments, not emulated ones like those produced by browserify or similar.\nSuch emulated environments often already include a `process.nextTick` shim that\'s not as browser-compatible as\nsetImmediate.js.\n\n### `postMessage`\n\nIn Firefox 3+, Internet Explorer 9+, all modern WebKit browsers, and Opera 9.5+, [`postMessage`][postMessage] is\navailable and provides a good way to queue tasks on the event loop. It\'s quite the abuse, using a cross-document\nmessaging protocol within the same document simply to get access to the event loop task queue, but until there are\nnative implementations, this is the best option.\n\nNote that Internet Explorer 8 includes a synchronous version of `postMessage`. We detect this, or any other such\nsynchronous implementation, and fall back to another trick.\n\n### `MessageChannel`\n\nUnfortunately, `postMessage` has completely different semantics inside web workers, and so cannot be used there. So we\nturn to [`MessageChannel`][MessageChannel], which has worse browser support, but does work inside a web worker.\n\n### `<script> onreadystatechange`\n\nFor our last trick, we pull something out to make things fast in Internet Explorer versions 6 through 8: namely,\ncreating a `<script>` element and firing our calls in its `onreadystatechange` event. This does execute in a future\nturn of the event loop, and is also faster than `setTimeout(…, 0)`, so hey, why not?\n\n## Usage\n\nIn the browser, include it with a `<script>` tag; pretty simple.\n\nIn Node.js, do\n\n```\nnpm install setimmediate\n```\n\nthen\n\n```js\nrequire("setimmediate");\n```\n\nsomewhere early in your app; it attaches to the global.\n\n## Demo\n\n* [Quick sort demo][cross-browser-demo]\n \n## Reference and Reading\n\n * [Efficient Script Yielding W3C Editor\'s Draft][spec]\n * [W3C mailing list post introducing the specification][list-post]\n * [IE Test Drive demo][ie-demo]\n * [Introductory blog post by Nicholas C. Zakas][ncz]\n\n\n[spec]: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/setImmediate/Overview.html\n[list-post]: http://lists.w3.org/Archives/Public/public-web-perf/2011Jun/0100.html\n[ie-demo]: http://ie.microsoft.com/testdrive/Performance/setImmediateSorting/Default.html\n[ncz]: http://www.nczonline.net/blog/2011/09/19/script-yielding-with-setimmediate/\n[nextTick]: http://nodejs.org/docs/v0.8.16/api/process.html#process_process_nexttick_callback\n[postMessage]: http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#posting-messages\n[MessageChannel]: http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#channel-messaging\n[cross-browser-demo]: http://jphpsf.github.com/setImmediate-shim-demo\n',
3670 silly resolved     readmeFilename: 'README.md',
3670 silly resolved     _id: 'setimm...@1.0.1',
3670 silly resolved     _from: 'setimmediate@~1.0.1' },
3670 silly resolved   { author:
3670 silly resolved      { name: 'Isaac Z. Schlueter',
3670 silly resolved        email: 'i...@izs.me',
3670 silly resolved        url: 'http://blog.izs.me/' },
3670 silly resolved     name: 'fstream',
3670 silly resolved     description: 'Advanced file system stream things',
3670 silly resolved     version: '0.1.22',
3670 silly resolved     repository: { type: 'git', url: 'git://github.com/isaacs/fstream.git' },
3670 silly resolved     main: 'fstream.js',
3670 silly resolved     engines: { node: '>=0.6' },
3670 silly resolved     dependencies:
3670 silly resolved      { rimraf: '2',
3670 silly resolved        mkdirp: '0.3',
3670 silly resolved        'graceful-fs': '~1.2.0',
3670 silly resolved        inherits: '~1.0.0' },
3670 silly resolved     devDependencies: { tap: '' },
3670 silly resolved     scripts: { test: 'tap examples/*.js' },
3670 silly resolved     license: 'BSD',
3670 silly resolved     readme: 'Like FS streams, but with stat on them, and supporting directories and\nsymbolic links, as well as normal files.  Also, you can use this to set\nthe stats on a file, even if you don\'t change its contents, or to create\na symlink, etc.\n\nSo, for example, you can "write" a directory, and it\'ll call `mkdir`.  You\ncan specify a uid and gid, and it\'ll call `chown`.  You can specify a\n`mtime` and `atime`, and it\'ll call `utimes`.  You can call it a symlink\nand provide a `linkpath` and it\'ll call `symlink`.\n\nNote that it won\'t automatically resolve symbolic links.  So, if you\ncall `fstream.Reader(\'/some/symlink\')` then you\'ll get an object\nthat stats and then ends immediately (since it has no data).  To follow\nsymbolic links, do this: `fstream.Reader({path:\'/some/symlink\', follow:\ntrue })`.\n\nThere are various checks to make sure that the bytes emitted are the\nsame as the intended size, if the size is set.\n\n## Examples\n\n```javascript\nfstream\n  .Writer({ path: "path/to/file"\n          , mode: 0755\n          , size: 6\n          })\n  .write("hello\\n")\n  .end()\n```\n\nThis will create the directories if they\'re missing, and then write\n`hello\\n` into the file, chmod it to 0755, and assert that 6 bytes have\nbeen written when it\'s done.\n\n```javascript\nfstream\n  .Writer({ path: "path/to/file"\n          , mode: 0755\n          , size: 6\n          , flags: "a"\n          })\n  .write("hello\\n")\n  .end()\n```\n\nYou can pass flags in, if you want to append to a file.\n\n```javascript\nfstream\n  .Writer({ path: "path/to/symlink"\n          , linkpath: "./file"\n          , SymbolicLink: true\n          , mode: "0755" // octal strings supported\n          })\n  .end()\n```\n\nIf isSymbolicLink is a function, it\'ll be called, and if it returns\ntrue, then it\'ll treat it as a symlink.  If it\'s not a function, then\nany truish value will make a symlink, or you can set `type:\n\'SymbolicLink\'`, which does the same thing.\n\nNote that the linkpath is relative to the symbolic link location, not\nthe parent dir or cwd.\n\n```javascript\nfstream\n  .Reader("path/to/dir")\n  .pipe(fstream.Writer("path/to/other/dir"))\n```\n\nThis will do like `cp -Rp path/to/dir path/to/other/dir`.  If the other\ndir exists and isn\'t a directory, then it\'ll emit an error.  It\'ll also\nset the uid, gid, mode, etc. to be identical.  In this way, it\'s more\nlike `rsync -a` than simply a copy.\n',
3670 silly resolved     readmeFilename: 'README.md',
3670 silly resolved     bugs: { url: 'https://github.com/isaacs/fstream/issues' },
3670 silly resolved     _id: 'fst...@0.1.22',
3670 silly resolved     _from: 'fstream@~0.1.21' },
3670 silly resolved   { name: 'pullstream',
3670 silly resolved     version: '0.4.0',
3670 silly resolved     description: 'A stream you can pull data from.',
3670 silly resolved     main: 'pullstream.js',
3670 silly resolved     scripts: { test: './node_modules/.bin/nodeunit ./test/' },
3670 silly resolved     license: 'MIT',
3670 silly resolved     bugs: { url: 'https://github.com/nearinfinity/node-pullstream/issues' },
3670 silly resolved     repository:
3670 silly resolved      { type: 'git',
3670 silly resolved        url: 'https://github.com/nearinfinity/node-pullstream.git' },
3670 silly resolved     keywords: [ 'stream', 'pull' ],
3670 silly resolved     devDependencies:
3670 silly resolved      { nodeunit: '~0.7.4',
3670 silly resolved        'stream-buffers': '~0.2.3',
3670 silly resolved        async: '~0.1.22' },
3670 silly resolved     dependencies:
3670 silly resolved      { over: '~0.0.5',
3670 silly resolved        'readable-stream': '~1.0.0',
3670 silly resolved        setimmediate: '~1.0.1',
3670 silly resolved        'slice-stream': '0.0.0' },
3670 silly resolved     readme: 'pullstream [![Build Status](https://travis-ci.org/nearinfinity/node-pullstream.png)](https://travis-ci.org/nearinfinity/node-pullstream)\n==========\n\nTired of getting a firehose worth of data from your streams. This module is here to save the day. PullStream allows\nyou to pull data when you want and as much as you want.\n\n## Quick Examples\n\n```javascript\nvar PullStream = require(\'pullstream\');\nvar fs = require(\'fs\');\n\nvar ps = new PullStream();\nvar loremIpsumStream = fs.createReadStream(\'loremIpsum.txt\');\nvar outputStream = fs.createWriteStream(path.join(__dirname, \'loremIpsum.out\'));\n\nloremIpsumStream.pipe(ps);\n\n// pull 5 bytes\nps.pull(5, function(err, data) {\n  console.log(data.toString(\'utf8\'));\n\n  //synchronously pull 1000 bytes or howevery many bytes are available\n  var bytes = ps.pullUpTo(1000);\n\n  // pipe the next 100 to a file\n  ps.pipe(100, outputStream).on(\'end\', function () {\n    console.log(\'all done\');\n  });\n});\n```\n\n# API Index\n\n## PullStream\n * [pull](#pullStreamPull)\n * [pullUpTo](#pullStreamPullUpTo)\n * [pipe](#pullStreamPipe)\n * [drain](#pullStreamDrain)\n * [write](#pullStreamWrite)\n * [end](#pullStreamEnd)\n * [prepend](#pullStreamPrepend)\n\n# API Documentation\n\n<a name="pullStream"/>\n## PullStream\n\n<a name="pullStreamPull" />\n### ps.pull([number], callback)\n\nCalls a callback when the specified number of bytes are ready. If no number is specified pull will read until the end\nof the input stream.\n\n__Arguments__\n\n* number (optional) - Number of bytes to wait for. If not specified reads to the end of input stream.\n* callback(err, data) - Callback called when the bytes are ready. data is a buffer containing the bytes.\n\n__Example__\n\n```javascript\nvar ps = new PullStream();\n\nps.pull(5, function(err, data) {\n  console.log(data.toString(\'utf8\'));\n});\n```\n\n<a name="pullStreamPullUpTo" />\n### ps.pullUpTo([number])\n\nSynchronously returns the specified number of bytes or however many bytes are available from the input stream. If no\nnumber is specified pullUpTo will return however many bytes are available from the input stream.\n\n__Arguments__\n\n* number (optional) - Number of bytes to read from the input stream.\n\n__Example__\n\n```javascript\nvar ps = new PullStream();\n\nvar data = ps.pullUpTo(1000);\nconsole.log(data.toString(\'utf8\'));\n```\n\n<a name="pullStreamPipe" />\n### ps.pipe([number], destStream)\n\nPipes the specified number of bytes to destStream. If a number is not specified pipe will pipe the remainder\nof the input stream to destStream. Back-pressure is properly managed.\n\n__Arguments__\n\n* number (optional) - Number of bytes to pipe. If not specified pipe the rest of input stream.\n* destStream - The stream to pipe data to.\n\n__Returns__\n\nReturns destStream.\n\n__Example__\n\n```javascript\nvar ps = new PullStream();\nvar outputStream = fs.createWriteStream(path.join(__dirname, \'loremIpsum.out\'));\n\nps.pipe(100, out).on(\'end\', function() {\n  console.log(\'done with pipe\');\n});\n```\n\n<a name="pullStreamDrain" />\n### ps.drain(number, callback)\n\nConsume the specified number of bytes and send them to nowhere. Also drains from upstream as necessary if the specified\nnumber of bytes is less than the length of the pull stream\'s internal buffer.\n\n__Example__\n\n```javascript\nvar ps = new PullStream();\n\nps.drain(5, function(err) {\n  console.log(\'5 bytes removed from pull stream\');\n});\n```\n\n<a name="pullStreamWrite" />\n### ps.write(data, [encoding])\n\nWrites data to input side of a pull stream.\n\n__Arguments__\n\n* data - Buffer or string to write to the input side of the pull stream.\n* encoding (optional) - Encoding to use if data is a string. If not specified \'utf8\' is used.\n\n__Example__\n\n```javascript\nvar ps = new PullStream();\n\nps.pull(5, function(err, data) {\n  console.log(data.toString(\'ascii\'));\n});\n\nps.write(\'Hello World\', \'ascii\');\n```\n\n<a name="pullStreamEnd" />\n### ps.end()\n\nManually ends a pull stream.\n\n__Example__\n\n```javascript\nvar ps = new PullStream();\n\nps.pull(5, function(err, data) {\n  console.log(data.toString(\'utf8\'));\n});\n\nps.write(\'Hello World\');\nps.end();\n```\n\n<a name="pullStreamPrepend" />\n### ps.prepend()\n\nWrites data to the front of the input side of a pull stream.\n\n__Example__\n\n```javascript\nvar ps = new PullStream();\n\nps.pull(11, function(err, data) {\n  console.log(data.toString());\n});\n\nps.write(\'World\');\nps.prepend(\'Hello \');\nps.end();\n```\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2012 - 2013 Near Infinity Corporation\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n"Software"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n',
3670 silly resolved     readmeFilename: 'README.md',
3670 silly resolved     _id: 'pulls...@0.4.0',
3670 silly resolved     _from: 'pullstream@~0.4.0' } ]
3671 info install readabl...@1.0.2 into /usr/local/lib/node_modules/appium/node_modules/unzip
3672 info install match-...@0.0.1 into /usr/local/lib/node_modules/appium/node_modules/unzip
3673 info install bin...@0.3.0 into /usr/local/lib/node_modules/appium/node_modules/unzip
3674 info install setimm...@1.0.1 into /usr/local/lib/node_modules/appium/node_modules/unzip
3675 info install fst...@0.1.22 into /usr/local/lib/node_modules/appium/node_modules/unzip
3676 info install pulls...@0.4.0 into /usr/local/lib/node_modules/appium/node_modules/unzip
3677 info installOne readabl...@1.0.2
3678 info installOne match-...@0.0.1
3679 info installOne bin...@0.3.0
3680 info installOne setimm...@1.0.1
3681 info installOne fst...@0.1.22
3682 info installOne pulls...@0.4.0
3683 silly gunzTarPerm extractEntry test/original/literal_quotes_in_titles.html
3684 silly gunzTarPerm extractEntry test/original/literal_quotes_in_titles.text
3685 silly lockFile 170d9bff-connect-2-7-2 con...@2.7.2
3686 silly lockFile 170d9bff-connect-2-7-2 con...@2.7.2
3687 verbose from cache /Users/jmiele/.npm/readable-stream/1.0.2/package/package.json
3688 info /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/readable-stream unbuild
3689 verbose read json /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/readable-stream/package.json
3690 verbose from cache /Users/jmiele/.npm/match-stream/0.0.1/package/package.json
3691 info /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/match-stream unbuild
3692 verbose read json /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/match-stream/package.json
3693 verbose from cache /Users/jmiele/.npm/binary/0.3.0/package/package.json
3694 info /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/binary unbuild
3695 verbose read json /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/binary/package.json
3696 verbose from cache /Users/jmiele/.npm/setimmediate/1.0.1/package/package.json
3697 info /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/setimmediate unbuild
3698 verbose read json /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/setimmediate/package.json
3699 verbose from cache /Users/jmiele/.npm/fstream/0.1.22/package/package.json
3700 info /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/fstream unbuild
3701 verbose read json /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/fstream/package.json
3702 verbose from cache /Users/jmiele/.npm/pullstream/0.4.0/package/package.json
3703 info /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/pullstream unbuild
3704 verbose read json /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/pullstream/package.json
3705 silly gunzTarPerm extractEntry test/fixtures/aaa.txt
3707 silly registry.get cb [ 304,
3707 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3707 silly registry.get     etag: '"3MGT6DA4AJWA64BSFFNWXYKDA"',
3707 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3707 silly registry.get     'content-length': '0' } ]
3708 verbose etag buffer-crc32/0.1.1 from cache
3710 silly registry.get cb [ 304,
3710 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3710 silly registry.get     etag: '"GJ32W9WQ9ABBY40CFQ8OX68Q"',
3710 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3710 silly registry.get     'content-length': '0' } ]
3711 verbose etag fresh/0.1.0 from cache
3713 silly registry.get cb [ 304,
3713 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3713 silly registry.get     etag: '"27PNDVCR34N9PLUBD22E2N507"',
3713 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3713 silly registry.get     'content-length': '0' } ]
3714 verbose etag methods/0.0.1 from cache
3715 silly lockFile fa16a2ce-commander-0-6-1 comm...@0.6.1
3716 silly lockFile fa16a2ce-commander-0-6-1 comm...@0.6.1
3718 silly registry.get cb [ 304,
3718 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3718 silly registry.get     etag: '"CTBGJUNY4PF9Y8G7O7HVZDQCH"',
3718 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3718 silly registry.get     'content-length': '0' } ]
3719 verbose etag send/0.1.0 from cache
3720 silly lockFile fe08ced7-cookie-0-0-5 coo...@0.0.5
3721 silly lockFile fe08ced7-cookie-0-0-5 coo...@0.0.5
3722 silly lockFile b79d6bbc--rimraf-node-modules-graceful-fs /usr/local/lib/node_modules/appium/node_modules/rimraf/node_modules/graceful-fs
3723 silly lockFile b79d6bbc--rimraf-node-modules-graceful-fs /usr/local/lib/node_modules/appium/node_modules/rimraf/node_modules/graceful-fs
3724 verbose tar unpack /Users/jmiele/.npm/readable-stream/1.0.2/package.tgz
3725 silly lockFile 9fe6ca9f-zip-node-modules-readable-stream /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/readable-stream
3726 verbose lock /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/readable-stream /Users/jmiele/.npm/9fe6ca9f-zip-node-modules-readable-stream.lock
3727 silly lockFile 0c37fcf4-eadable-stream-1-0-2-package-tgz /Users/jmiele/.npm/readable-stream/1.0.2/package.tgz
3728 verbose lock /Users/jmiele/.npm/readable-stream/1.0.2/package.tgz /Users/jmiele/.npm/0c37fcf4-eadable-stream-1-0-2-package-tgz.lock
3729 verbose tar unpack /Users/jmiele/.npm/match-stream/0.0.1/package.tgz
3730 silly lockFile b70e0169--unzip-node-modules-match-stream /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/match-stream
3731 verbose lock /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/match-stream /Users/jmiele/.npm/b70e0169--unzip-node-modules-match-stream.lock
3732 silly lockFile 4a8e6e55-m-match-stream-0-0-1-package-tgz /Users/jmiele/.npm/match-stream/0.0.1/package.tgz
3733 verbose lock /Users/jmiele/.npm/match-stream/0.0.1/package.tgz /Users/jmiele/.npm/4a8e6e55-m-match-stream-0-0-1-package-tgz.lock
3734 verbose tar unpack /Users/jmiele/.npm/binary/0.3.0/package.tgz
3735 silly lockFile 5e7db8b2-odules-unzip-node-modules-binary /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/binary
3736 verbose lock /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/binary /Users/jmiele/.npm/5e7db8b2-odules-unzip-node-modules-binary.lock
3737 silly lockFile 1db380c7-ele-npm-binary-0-3-0-package-tgz /Users/jmiele/.npm/binary/0.3.0/package.tgz
3738 verbose lock /Users/jmiele/.npm/binary/0.3.0/package.tgz /Users/jmiele/.npm/1db380c7-ele-npm-binary-0-3-0-package-tgz.lock
3739 verbose tar unpack /Users/jmiele/.npm/setimmediate/1.0.1/package.tgz
3740 silly lockFile d94f1f1b--unzip-node-modules-setimmediate /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/setimmediate
3741 verbose lock /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/setimmediate /Users/jmiele/.npm/d94f1f1b--unzip-node-modules-setimmediate.lock
3742 silly lockFile 2f47fa4a-m-setimmediate-1-0-1-package-tgz /Users/jmiele/.npm/setimmediate/1.0.1/package.tgz
3743 verbose lock /Users/jmiele/.npm/setimmediate/1.0.1/package.tgz /Users/jmiele/.npm/2f47fa4a-m-setimmediate-1-0-1-package-tgz.lock
3744 verbose tar unpack /Users/jmiele/.npm/fstream/0.1.22/package.tgz
3745 silly lockFile e342ea66-dules-unzip-node-modules-fstream /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/fstream
3746 verbose lock /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/fstream /Users/jmiele/.npm/e342ea66-dules-unzip-node-modules-fstream.lock
3747 silly lockFile 724aa0ed-e-npm-fstream-0-1-22-package-tgz /Users/jmiele/.npm/fstream/0.1.22/package.tgz
3748 verbose lock /Users/jmiele/.npm/fstream/0.1.22/package.tgz /Users/jmiele/.npm/724aa0ed-e-npm-fstream-0-1-22-package-tgz.lock
3749 verbose tar unpack /Users/jmiele/.npm/pullstream/0.4.0/package.tgz
3750 silly lockFile d93f34df-es-unzip-node-modules-pullstream /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/pullstream
3751 verbose lock /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/pullstream /Users/jmiele/.npm/d93f34df-es-unzip-node-modules-pullstream.lock
3752 silly lockFile 3acf9c5c-npm-pullstream-0-4-0-package-tgz /Users/jmiele/.npm/pullstream/0.4.0/package.tgz
3753 verbose lock /Users/jmiele/.npm/pullstream/0.4.0/package.tgz /Users/jmiele/.npm/3acf9c5c-npm-pullstream-0-4-0-package-tgz.lock
3754 silly gunzTarPerm extractEntry examples/example.js
3755 silly gunzTarPerm extractEntry examples/switch-bench.js
3756 verbose read json /Users/jmiele/.npm/range-parser/0.0.4/package/package.json
3757 silly lockFile 06ebdcbd-pm-graceful-fs-1-2-1-package-tgz /Users/jmiele/.npm/graceful-fs/1.2.1/package.tgz
3758 silly lockFile 06ebdcbd-pm-graceful-fs-1-2-1-package-tgz /Users/jmiele/.npm/graceful-fs/1.2.1/package.tgz
3759 silly gunzTarPerm modes [ '755', '644' ]
3760 silly gunzTarPerm modes [ '755', '644' ]
3761 silly gunzTarPerm extractEntry lib/constants.js
3762 silly gunzTarPerm extractEntry lib/readable_streambuffer.js
3763 silly gunzTarPerm extractEntry node_modules/form-data/test/integration/test-http-response.js
3764 silly gunzTarPerm extractEntry node_modules/form-data/test/integration/test-pipe.js
3765 silly gunzTarPerm extractEntry readme.markdown
3766 silly gunzTarPerm extractEntry test/core.js
3767 silly gunzTarPerm modes [ '755', '644' ]
3768 silly gunzTarPerm modes [ '755', '644' ]
3769 silly gunzTarPerm modes [ '755', '644' ]
3770 silly gunzTarPerm modes [ '755', '644' ]
3771 verbose read json /Users/jmiele/.npm/fresh/0.1.0/package/package.json
3772 verbose read json /Users/jmiele/.npm/buffer-crc32/0.1.1/package/package.json
3773 verbose read json /Users/jmiele/.npm/methods/0.0.1/package/package.json
3774 silly gunzTarPerm extractEntry test/original/markdown_documentation_basics.html
3775 silly gunzTarPerm extractEntry test/original/markdown_documentation_basics.text
3776 warn package.json range-...@0.0.4 No repository field.
3777 warn package.json range-...@0.0.4 No readme data.
3778 silly lockFile 0760c556-range-parser-0-0-4 range-...@0.0.4
3779 silly lockFile 0760c556-range-parser-0-0-4 range-...@0.0.4
3780 silly gunzTarPerm modes [ '755', '644' ]
3781 verbose read json /Users/jmiele/.npm/send/0.1.0/package/package.json
3782 info preinstall grace...@1.2.1
3783 silly gunzTarPerm extractEntry package.json
3784 silly gunzTarPerm extractEntry package.json
3785 verbose read json /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/inherits/package.json
3786 verbose from cache /usr/local/lib/node_modules/appium/node_modules/rimraf/node_modules/graceful-fs/package.json
3788 silly registry.get cb [ 304,
3788 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3788 silly registry.get     etag: '"CY3CKMUCU529W3Q2ALVZW8AUW"',
3788 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3788 silly registry.get     'content-length': '0' } ]
3789 verbose etag cookie-signature/0.0.1 from cache
3790 silly lockFile 8fdeba6f-buffer-crc32-0-1-1 buffer...@0.1.1
3791 silly lockFile 8fdeba6f-buffer-crc32-0-1-1 buffer...@0.1.1
3792 verbose readDependencies using package.json deps
3793 verbose from cache /usr/local/lib/node_modules/appium/node_modules/rimraf/node_modules/graceful-fs/package.json
3794 silly gunzTarPerm extractEntry test/filter.js
3795 silly gunzTarPerm extractEntry test/filter_sync.js
3796 warn package.json met...@0.0.1 No repository field.
3797 warn package.json met...@0.0.1 No readme data.
3798 silly lockFile 209c2920-methods-0-0-1 met...@0.0.1
3799 silly lockFile 209c2920-methods-0-0-1 met...@0.0.1
3800 silly gunzTarPerm extractEntry package.json
3801 verbose readDependencies using package.json deps
3802 silly resolved []
3803 verbose about to build /usr/local/lib/node_modules/appium/node_modules/rimraf/node_modules/graceful-fs
3804 info build /usr/local/lib/node_modules/appium/node_modules/rimraf/node_modules/graceful-fs
3805 verbose from cache /usr/local/lib/node_modules/appium/node_modules/rimraf/node_modules/graceful-fs/package.json
3806 verbose linkStuff [ true,
3806 verbose linkStuff   '/usr/local/lib/node_modules',
3806 verbose linkStuff   false,
3806 verbose linkStuff   '/usr/local/lib/node_modules/appium/node_modules/rimraf/node_modules' ]
3807 info linkStuff grace...@1.2.1
3808 verbose read json /Users/jmiele/appium-test/package.json
3809 silly gunzTarPerm extractEntry package.json
3810 silly gunzTarPerm extractEntry package.json
3811 silly gunzTarPerm extractEntry package.json
3812 silly gunzTarPerm extractEntry .npmignore
3813 silly gunzTarPerm extractEntry README.md
3814 verbose about to build /usr/local/lib/node_modules/appium/node_modules/express
3815 info /usr/local/lib/node_modules/appium/node_modules/express unbuild
3816 verbose from cache /usr/local/lib/node_modules/appium/node_modules/express/package.json
3817 info preuninstall exp...@3.0.6
3818 silly gunzTarPerm extractEntry .npmignore
3819 silly gunzTarPerm extractEntry README.md
3820 silly gunzTarPerm extractEntry package.json
3821 verbose linkBins grace...@1.2.1
3822 verbose linkMans grace...@1.2.1
3823 verbose rebuildBundles grace...@1.2.1
3824 info uninstall exp...@3.0.6
3825 silly gunzTarPerm extractEntry node_modules/form-data/test/integration/test-submit.js
3826 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/package.json
3827 info install grace...@1.2.1
3828 silly gunzTarPerm extractEntry test/original/markdown_documentation_syntax.html
3829 silly gunzTarPerm extractEntry test/original/markdown_documentation_syntax.text
3830 silly gunzTarPerm extractEntry README.md
3831 silly gunzTarPerm extractEntry README.md
3832 silly gunzTarPerm extractEntry LICENSE
3833 silly gunzTarPerm extractEntry .npmignore
3834 silly gunzTarPerm extractEntry index.js
3835 silly gunzTarPerm extractEntry README.md
3836 silly gunzTarPerm extractEntry setImmediate.js
3837 silly gunzTarPerm extractEntry LICENSE
3838 warn package.json fr...@0.1.0 No repository field.
3839 silly lockFile 3dea7da8-fresh-0-1-0 fr...@0.1.0
3840 silly lockFile 3dea7da8-fresh-0-1-0 fr...@0.1.0
3841 verbose false,/usr/local/lib/node_modules,/usr/local/lib/node_modules/appium/node_modules unbuild exp...@3.0.6
3842 verbose /usr/local/lib/node_modules/appium/node_modules/.bin,[object Object] binRoot
3843 info postinstall grace...@1.2.1
3844 silly gunzTarPerm extractEntry .npmignore
3845 silly gunzTarPerm extractEntry README.md
3846 warn package.json se...@0.1.0 No repository field.
3847 silly lockFile ef2886cd-send-0-1-0 se...@0.1.0
3848 silly lockFile ef2886cd-send-0-1-0 se...@0.1.0
3849 verbose read json /Users/jmiele/.npm/cookie-signature/0.0.1/package/package.json
3850 info postuninstall exp...@3.0.6
3851 verbose about to build /usr/local/lib/node_modules/appium/node_modules/rimraf
3852 info build /usr/local/lib/node_modules/appium/node_modules/rimraf
3853 verbose from cache /usr/local/lib/node_modules/appium/node_modules/rimraf/package.json
3854 verbose linkStuff [ true,
3854 verbose linkStuff   '/usr/local/lib/node_modules',
3854 verbose linkStuff   false,
3854 verbose linkStuff   '/usr/local/lib/node_modules/appium/node_modules' ]
3855 info linkStuff rim...@2.1.4
3856 verbose read json /Users/jmiele/appium-test/package.json
3857 silly lockFile 08a122ab-dules-glob-node-modules-inherits /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/inherits
3858 silly lockFile 08a122ab-dules-glob-node-modules-inherits /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/inherits
3859 silly gunzTarPerm extractEntry lib/streambuffer.js
3860 silly gunzTarPerm extractEntry lib/writable_streambuffer.js
3861 verbose linkBins rim...@2.1.4
3862 verbose linkMans rim...@2.1.4
3863 verbose rebuildBundles rim...@2.1.4
3864 silly gunzTarPerm extractEntry LICENSE
3865 silly gunzTarPerm extractEntry fstream.js
3867 silly registry.get cb [ 304,
3867 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3867 silly registry.get     etag: '"2NQFBC5T4PM83LSCUT58F4178"',
3867 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3867 silly registry.get     'content-length': '0' } ]
3868 verbose etag debug from cache
3869 silly lockFile 4b015361-e-npm-inherits-1-0-0-package-tgz /Users/jmiele/.npm/inherits/1.0.0/package.tgz
3870 silly lockFile 4b015361-e-npm-inherits-1-0-0-package-tgz /Users/jmiele/.npm/inherits/1.0.0/package.tgz
3871 verbose rebuildBundles [ 'graceful-fs' ]
3872 info install rim...@2.1.4
3873 silly gunzTarPerm extractEntry LICENSE
3874 silly gunzTarPerm extractEntry pullstream.js
3876 silly registry.get cb [ 304,
3876 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3876 silly registry.get     etag: '"7OSM4MT6VTV8FSMYWQTR1V7IS"',
3876 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3876 silly registry.get     'content-length': '0' } ]
3877 verbose etag utile from cache
3879 silly registry.get cb [ 304,
3879 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3879 silly registry.get     etag: '"6SAHD68W8QRMXR9TFUWVANJ4P"',
3879 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3879 silly registry.get     'content-length': '0' } ]
3880 verbose etag pkginfo from cache
3881 silly gunzTarPerm extractEntry test/original/nested_blockquotes.html
3882 silly gunzTarPerm extractEntry test/original/nested_blockquotes.text
3884 silly registry.get cb [ 304,
3884 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3884 silly registry.get     etag: '"1064YB5S7U6KO6JTTIBQYXGUG"',
3884 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3884 silly registry.get     'content-length': '0' } ]
3885 verbose etag read from cache
3886 info postinstall rim...@2.1.4
3887 silly gunzTarPerm extractEntry fs.js
3888 silly gunzTarPerm extractEntry duplex.js
3889 silly gunzTarPerm extractEntry match.js
3890 silly gunzTarPerm extractEntry .idea/.name
3891 silly gunzTarPerm extractEntry .travis.yml
3892 silly gunzTarPerm extractEntry README.markdown
3893 silly gunzTarPerm extractEntry LICENSE.txt
3894 silly gunzTarPerm extractEntry qUnitTest/tests.js
3895 silly gunzTarPerm extractEntry qUnitTest/worker.js
3896 silly gunzTarPerm extractEntry qUnitTest/lib/qunit.js
3897 silly gunzTarPerm extractEntry qUnitTest/lib/qunit.css
3898 silly gunzTarPerm extractEntry qUnitTest/runner.htm
3899 silly gunzTarPerm extractEntry qUnitTest/selfClose.htm
3900 silly gunzTarPerm extractEntry LICENSE
3901 silly gunzTarPerm extractEntry graceful-fs.js
3902 info preinstall inhe...@1.0.0
3903 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/README.md
3904 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/LICENSE
3905 silly addNameRange number 2 { name: 'debug', range: '', hasData: true }
3906 silly addNameRange versions [ 'debug',
3906 silly addNameRange   [ '0.0.1',
3906 silly addNameRange     '0.1.0',
3906 silly addNameRange     '0.2.0',
3906 silly addNameRange     '0.3.0',
3906 silly addNameRange     '0.4.0',
3906 silly addNameRange     '0.4.1',
3906 silly addNameRange     '0.5.0',
3906 silly addNameRange     '0.6.0',
3906 silly addNameRange     '0.7.0',
3906 silly addNameRange     '0.7.1',
3906 silly addNameRange     '0.7.2' ] ]
3907 verbose addNamed [ 'debug', '0.7.2' ]
3908 verbose addNamed [ '0.7.2', '0.7.2' ]
3909 silly lockFile 432e5064-debug-0-7-2 de...@0.7.2
3910 verbose lock de...@0.7.2 /Users/jmiele/.npm/432e5064-debug-0-7-2.lock
3912 silly registry.get cb [ 304,
3912 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3912 silly registry.get     etag: '"7PFFGPNEX2JBLSHZUTFPMKUQL"',
3912 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3912 silly registry.get     'content-length': '0' } ]
3913 verbose etag revalidator from cache
3914 warn package.json cookie-s...@0.0.1 No repository field.
3915 silly lockFile f4fbff07-cookie-signature-0-0-1 cookie-s...@0.0.1
3916 silly lockFile f4fbff07-cookie-signature-0-0-1 cookie-s...@0.0.1
3917 verbose from cache /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/inherits/package.json
3918 silly gunzTarPerm extractEntry .travis.yml
3919 silly gunzTarPerm extractEntry examples/filter-pipe.js
3920 silly gunzTarPerm extractEntry test/mock.js
3921 silly gunzTarPerm extractEntry test/mock_sync.js
3922 silly addNameRange number 2 { name: 'utile', range: '>=0.1.0- <0.2.0-', hasData: true }
3923 silly addNameRange versions [ 'utile',
3923 silly addNameRange   [ '0.0.1',
3923 silly addNameRange     '0.0.2',
3923 silly addNameRange     '0.0.3',
3923 silly addNameRange     '0.0.4',
3923 silly addNameRange     '0.0.5',
3923 silly addNameRange     '0.0.6',
3923 silly addNameRange     '0.0.8',
3923 silly addNameRange     '0.0.9',
3923 silly addNameRange     '0.0.10',
3923 silly addNameRange     '0.1.0',
3923 silly addNameRange     '0.1.1',
3923 silly addNameRange     '0.1.2',
3923 silly addNameRange     '0.1.3',
3923 silly addNameRange     '0.1.5',
3923 silly addNameRange     '0.1.6',
3923 silly addNameRange     '0.1.7',
3923 silly addNameRange     '0.2.0' ] ]
3924 verbose addNamed [ 'utile', '0.1.7' ]
3925 verbose addNamed [ '0.1.7', '0.1.7' ]
3926 silly lockFile 78905450-utile-0-1-7 ut...@0.1.7
3927 verbose lock ut...@0.1.7 /Users/jmiele/.npm/78905450-utile-0-1-7.lock
3928 silly addNameRange number 2 { name: 'pkginfo', range: '>=0.0.0- <1.0.0-', hasData: true }
3929 silly addNameRange versions [ 'pkginfo', [ '0.2.1', '0.2.2', '0.2.3', '0.3.0' ] ]
3930 verbose addNamed [ 'pkginfo', '0.3.0' ]
3931 verbose addNamed [ '0.3.0', '0.3.0' ]
3932 silly lockFile c6150d55-pkginfo-0-3-0 pkg...@0.3.0
3933 verbose lock pkg...@0.3.0 /Users/jmiele/.npm/c6150d55-pkginfo-0-3-0.lock
3934 verbose readDependencies using package.json deps
3935 verbose from cache /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/inherits/package.json
3936 silly gunzTarPerm extractEntry .travis.yml
3937 silly gunzTarPerm extractEntry examples/pullFromFile.js
3938 verbose read json /Users/jmiele/.npm/debug/0.7.2/package/package.json
3939 silly addNameRange number 2 { name: 'read', range: '>=1.0.0- <1.1.0-', hasData: true }
3940 silly addNameRange versions [ 'read',
3940 silly addNameRange   [ '0.0.1',
3940 silly addNameRange     '0.0.2',
3940 silly addNameRange     '0.0.3',
3940 silly addNameRange     '0.1.0',
3940 silly addNameRange     '0.1.1',
3940 silly addNameRange     '1.0.0',
3940 silly addNameRange     '1.0.1',
3940 silly addNameRange     '1.0.2',
3940 silly addNameRange     '1.0.3',
3940 silly addNameRange     '1.0.4' ] ]
3941 verbose addNamed [ 'read', '1.0.4' ]
3942 verbose addNamed [ '1.0.4', '1.0.4' ]
3943 silly lockFile 3dbfd2e9-read-1-0-4 re...@1.0.4
3944 verbose lock re...@1.0.4 /Users/jmiele/.npm/3dbfd2e9-read-1-0-4.lock
3945 verbose readDependencies using package.json deps
3946 silly resolved []
3947 verbose about to build /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/inherits
3948 info build /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/inherits
3949 verbose from cache /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/inherits/package.json
3950 verbose linkStuff [ true,
3950 verbose linkStuff   '/usr/local/lib/node_modules',
3950 verbose linkStuff   false,
3950 verbose linkStuff   '/usr/local/lib/node_modules/appium/node_modules/glob/node_modules' ]
3951 info linkStuff inhe...@1.0.0
3952 verbose read json /Users/jmiele/appium-test/package.json
3953 silly gunzTarPerm extractEntry examples/big-not-pretty.xml
3954 silly gunzTarPerm extractEntry examples/shopping.xml
3955 silly gunzTarPerm extractEntry test/original/ordered_and_unordered_lists.html
3956 silly gunzTarPerm extractEntry test/original/ordered_and_unordered_lists.text
3957 verbose read json /Users/jmiele/.npm/utile/0.1.7/package/package.json
3958 verbose read json /Users/jmiele/.npm/pkginfo/0.3.0/package/package.json
3959 verbose read json /Users/jmiele/.npm/read/1.0.4/package/package.json
3960 verbose linkBins inhe...@1.0.0
3961 verbose linkMans inhe...@1.0.0
3962 verbose rebuildBundles inhe...@1.0.0
3963 silly gunzTarPerm extractEntry example/buf.js
3964 verbose about to build /usr/local/lib/node_modules/appium
3965 info /usr/local/lib/node_modules/appium unbuild
3966 verbose from cache /usr/local/lib/node_modules/appium/package.json
3967 info preuninstall app...@0.7.1
3968 info install inhe...@1.0.0
3969 silly gunzTarPerm extractEntry test/open.js
3970 silly addNameRange number 2 { name: 'revalidator', range: '>=0.1.0- <0.2.0-', hasData: true }
3971 silly addNameRange versions [ 'revalidator',
3971 silly addNameRange   [ '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.5' ] ]
3972 verbose addNamed [ 'revalidator', '0.1.5' ]
3973 verbose addNamed [ '0.1.5', '0.1.5' ]
3974 silly lockFile abe9e280-revalidator-0-1-5 reval...@0.1.5
3975 verbose lock reval...@0.1.5 /Users/jmiele/.npm/abe9e280-revalidator-0-1-5.lock
3976 info uninstall app...@0.7.1
3977 info postinstall inhe...@1.0.0
3978 silly gunzTarPerm extractEntry .idea/encodings.xml
3979 silly gunzTarPerm extractEntry .idea/jsLibraryMappings.xml
3980 silly gunzTarPerm extractEntry test/resolver.js
3981 silly gunzTarPerm extractEntry test/resolver_sync.js
3982 verbose read json /Users/jmiele/.npm/revalidator/0.1.5/package/package.json
3983 verbose true,/usr/local/lib/node_modules,/usr/local/lib/node_modules unbuild app...@0.7.1
3984 verbose /usr/local/bin,[object Object] binRoot
3985 silly gunzTarPerm extractEntry test/original/strong_and_em_together.html
3986 silly gunzTarPerm extractEntry test/original/strong_and_em_together.text
3987 info postuninstall app...@0.7.1
3988 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/index.js
3989 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/dist/async.min.js
3991 silly registry.get cb [ 304,
3991 silly registry.get   { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
3991 silly registry.get     etag: '"DYLUHYESKJSEU3J3FQPY0C25F"',
3991 silly registry.get     date: 'Fri, 07 Jun 2013 14:59:47 GMT',
3991 silly registry.get     'content-length': '0' } ]
3992 verbose etag heap from cache
3993 silly lockFile 432e5064-debug-0-7-2 de...@0.7.2
3994 silly lockFile 432e5064-debug-0-7-2 de...@0.7.2
3995 verbose read json /usr/local/lib/node_modules/appium/node_modules/argparse/package.json
3996 silly gunzTarPerm extractEntry examples/pipe.js
3997 silly gunzTarPerm extractEntry examples/reader.js
3998 silly gunzTarPerm extractEntry examples/symlink-write.js
3999 silly gunzTarPerm extractEntry lib/abstract.js
4000 silly gunzTarPerm extractEntry lib/dir-writer.js
4001 silly gunzTarPerm extractEntry lib/file-reader.js
4002 silly gunzTarPerm extractEntry lib/file-writer.js
4003 silly gunzTarPerm extractEntry lib/get-type.js
4004 silly gunzTarPerm extractEntry lib/dir-reader.js
4005 silly gunzTarPerm extractEntry lib/link-writer.js
4006 silly gunzTarPerm extractEntry lib/proxy-reader.js
4007 silly gunzTarPerm extractEntry lib/proxy-writer.js
4008 silly gunzTarPerm extractEntry lib/reader.js
4009 silly gunzTarPerm extractEntry lib/socket-reader.js
4010 silly gunzTarPerm extractEntry lib/collect.js
4011 silly gunzTarPerm extractEntry lib/writer.js
4012 silly gunzTarPerm extractEntry lib/link-reader.js
4013 silly lockFile 78905450-utile-0-1-7 ut...@0.1.7
4014 silly lockFile 78905450-utile-0-1-7 ut...@0.1.7
4015 silly lockFile c6150d55-pkginfo-0-3-0 pkg...@0.3.0
4016 silly lockFile c6150d55-pkginfo-0-3-0 pkg...@0.3.0
4017 silly lockFile 3ac45eff-debug debug@*
4018 silly lockFile 3ac45eff-debug debug@*
4019 silly lockFile 3dbfd2e9-read-1-0-4 re...@1.0.4
4020 silly lockFile 3dbfd2e9-read-1-0-4 re...@1.0.4
4021 silly gunzTarPerm extractEntry examples/strict.dtd
4022 silly gunzTarPerm extractEntry examples/not-pretty.xml
4023 silly lockFile 67dcb77e-utile-0-1-x ut...@0.1.x
4024 silly lockFile 67dcb77e-utile-0-1-x ut...@0.1.x
4025 silly lockFile 67f4d2cb-pkginfo-0-x-x pkg...@0.x.x
4026 silly lockFile 67f4d2cb-pkginfo-0-x-x pkg...@0.x.x
4027 silly lockFile acd4039d-read-1-0-x re...@1.0.x
4028 silly lockFile acd4039d-read-1-0-x re...@1.0.x
4029 silly gunzTarPerm extractEntry .idea/match-stream.iml
4030 silly gunzTarPerm extractEntry .idea/misc.xml
4031 silly addNameRange number 2 { name: 'heap', range: '>=0.2.0', hasData: true }
4032 silly addNameRange versions [ 'heap', [ '0.1.0', '0.1.2', '0.2.0', '0.2.1' ] ]
4033 verbose addNamed [ 'heap', '0.2.1' ]
4034 verbose addNamed [ '0.2.1', '0.2.1' ]
4035 silly lockFile d6a1103e-heap-0-2-1 he...@0.2.1
4036 verbose lock he...@0.2.1 /Users/jmiele/.npm/d6a1103e-heap-0-2-1.lock
4037 silly lockFile abe9e280-revalidator-0-1-5 reval...@0.1.5
4038 silly lockFile abe9e280-revalidator-0-1-5 reval...@0.1.5
4039 silly gunzTarPerm extractEntry test/original/tabs.html
4040 silly gunzTarPerm extractEntry test/original/tabs.text
4041 silly gunzTarPerm extractEntry examples/loremIpsum.txt
4042 verbose read json /Users/jmiele/.npm/heap/0.2.1/package/package.json
4043 silly lockFile 0837132e-revalidator-0-1-x reval...@0.1.x
4044 silly lockFile 0837132e-revalidator-0-1-x reval...@0.1.x
4045 silly gunzTarPerm extractEntry test/resolver/foo.js
4046 silly gunzTarPerm extractEntry test/resolver/mug.js
4047 silly lockFile e1fcd5d2-les-appium-node-modules-argparse /usr/local/lib/node_modules/appium/node_modules/argparse
4048 silly lockFile e1fcd5d2-les-appium-node-modules-argparse /usr/local/lib/node_modules/appium/node_modules/argparse
4049 silly resolved [ { name: 'utile',
4049 silly resolved     description: 'A drop-in replacement for `util` with some additional advantageous functions',
4049 silly resolved     version: '0.1.7',
4049 silly resolved     author: { name: 'Nodejitsu Inc.', email: 'in...@nodejitsu.com' },
4049 silly resolved     maintainers: [ [Object] ],
4049 silly resolved     repository: { type: 'git', url: 'http://github.com/flatiron/utile.git' },
4049 silly resolved     dependencies:
4049 silly resolved      { async: '0.1.x',
4049 silly resolved        'deep-equal': '*',
4049 silly resolved        i: '0.3.x',
4049 silly resolved        mkdirp: '0.x.x',
4049 silly resolved        ncp: '0.2.x',
4049 silly resolved        rimraf: '1.x.x' },
4049 silly resolved     devDependencies: { vows: '0.6.x' },
4049 silly resolved     scripts: { test: 'vows --spec' },
4049 silly resolved     main: './lib/index',
4049 silly resolved     engines: { node: '>= 0.6.4' },
4049 silly resolved     readme: '# utile [![Build Status](https://secure.travis-ci.org/flatiron/utile.png)](http://travis-ci.org/flatiron/utile)\n\nA drop-in replacement for `util` with some additional advantageous functions\n\n## Motivation\nJavascript is definitely a "batteries not included language" when compared to languages like Ruby or Python. Node.js has a simple utility library which exposes some basic (but important) functionality:\n\n```\n$ node\n> var util = require(\'util\');\n> util.\n(...)\n\nutil.debug                 util.error                 util.exec                  util.inherits              util.inspect\nutil.log                   util.p                     util.print                 util.pump                  util.puts\n```\n\nWhen one considers their own utility library, why ever bother requiring `util` again? That is the approach taken by this module. To compare:\n\n```\n$ node\n> var utile = require(\'./lib\')\n> utile.\n(...)\n\nutile.async                 utile.capitalize            utile.clone                 utile.cpr                   utile.createPath            utile.debug\nutile.each                  utile.error                 utile.exec                  utile.file                  utile.filter                utile.find\nutile.inherits              utile.log                   utile.mixin                 utile.mkdirp                utile.p                     utile.path\nutile.print                 utile.pump                  utile.puts                  utile.randomString          utile.requireDir            uile.requireDirLazy\nutile.rimraf\n```\n\nAs you can see all of the original methods from `util` are there, but there are several new methods specific to `utile`. A note about implementation: _no node.js native modules are modified by utile, it simply copies those methods._\n\n## Methods\nThe `utile` modules exposes some simple utility methods:\n\n* `.each(obj, iterator)`: Iterate over the keys of an object.\n* `.mixin(target [source0, source1, ...])`: Copies enumerable properties from `source0 ... sourceN` onto `target` and returns the resulting object.\n* `.clone(obj)`: Shallow clones the specified object.\n* `.capitalize(str)`: Capitalizes the specified `str`.\n* `.randomString(length)`: randomString returns a pseudo-random ASCII string (subset) the return value is a string of length ⌈bits/6⌉ of characters from the base64 alphabet.\n* `.filter(obj, test)`: return an object with the properties that `test` returns true on.\n* `.args(arguments)`: Converts function arguments into actual array with special `callback`, `cb`, `array`, and `last` properties. Also supports *optional* argument contracts. See [the example](https://github.com/flatiron/utile/blob/master/examples/utile-args.js) for more details.\n* `.requireDir(directory)`: Requires all files and directories from `directory`, returning an object with keys being filenames (without trailing `.js`) and respective values being return values of `require(filename)`.\n* `.requireDirLazy(directory)`: Lazily requires all files and directories from `directory`, returning an object with keys being filenames (without trailing `.js`) and respective values (getters) being return values of `require(filename)`.\n* `.format([string] text, [array] formats, [array] replacements)`: Replace `formats` in `text` with `replacements`. This will fall back to the original `util.format` command if it is called improperly.\n\n## Packaged Dependencies\nIn addition to the methods that are built-in, utile includes a number of commonly used dependencies to reduce the number of includes in your package.json. These modules _are not eagerly loaded to be respectful of startup time,_ but instead are lazy-loaded getters on the `utile` object\n\n* `.async`: [Async utilities for node and the browser][0]\n* `.inflect`: [Customizable inflections for node.js][6]\n* `.mkdirp`: [Recursively mkdir, like mkdir -p, but in node.js][1]\n* `.rimraf`: [A rm -rf util for nodejs][2]\n* `.cpr`: [Asynchronous recursive file copying with Node.js][3]\n\n## Installation\n\n### Installing npm (node package manager)\n```\n  curl http://npmjs.org/install.sh | sh\n```\n\n### Installing utile\n```\n  [sudo] npm install utile\n```\n\n## Tests\nAll tests are written with [vows][4] and should be run with [npm][5]:\n\n``` bash\n  $ npm test\n```\n\n#### Author: [Nodejitsu Inc.](http://www.nodejitsu.com)\n#### Contributors: [Charlie Robbins](http://github.com/indexzero), [Dominic Tarr](http://github.com/dominictarr)\n#### License: MIT\n\n[0]: https://github.com/caolan/async\n[1]: https://github.com/substack/node-mkdirp\n[2]: https://github.com/isaacs/rimraf\n[3]: https://github.com/avianflu/ncp\n[4]: https://vowsjs.org\n[5]: https://npmjs.org\n[6]: https://github.com/pksunkara/inflect\n',
4049 silly resolved     readmeFilename: 'README.md',
4049 silly resolved     bugs: { url: 'https://github.com/flatiron/utile/issues' },
4049 silly resolved     _id: 'ut...@0.1.7',
4049 silly resolved     _from: 'ut...@0.1.x' },
4049 silly resolved   { name: 'pkginfo',
4049 silly resolved     version: '0.3.0',
4049 silly resolved     description: 'An easy way to expose properties on a module from a package.json',
4049 silly resolved     author: { name: 'Charlie Robbins', email: 'charlie...@gmail.com' },
4049 silly resolved     repository:
4049 silly resolved      { type: 'git',
4049 silly resolved        url: 'http://github.com/indexzero/node-pkginfo.git' },
4049 silly resolved     keywords: [ 'info', 'tools', 'package.json' ],
4049 silly resolved     devDependencies: { vows: '0.7.x' },
4049 silly resolved     main: './lib/pkginfo',
4049 silly resolved     scripts: { test: 'vows test/*-test.js --spec' },
4049 silly resolved     engines: { node: '>= 0.4.0' },
4049 silly resolved     readme: '# node-pkginfo\n\nAn easy way to expose properties on a module from a package.json\n\n## Installation\n\n### Installing npm (node package manager)\n```\n  curl http://npmjs.org/install.sh | sh\n```\n\n### Installing pkginfo\n```\n  [sudo] npm install pkginfo\n```\n\n## Motivation\nHow often when writing node.js modules have you written the following line(s) of code? \n\n* Hard code your version string into your code\n\n``` js\n  exports.version = \'0.1.0\';\n```\n\n* Programmatically expose the version from the package.json\n\n``` js\n  exports.version = JSON.parse(fs.readFileSync(\'/path/to/package.json\', \'utf8\')).version;\n```\n\nIn other words, how often have you wanted to expose basic information from your package.json onto your module programmatically? **WELL NOW YOU CAN!**\n\n## Usage\n\nUsing `pkginfo` is idiot-proof, just require and invoke it. \n\n``` js\n  var pkginfo = require(\'pkginfo\')(module);\n  \n  console.dir(module.exports);\n```\n\nBy invoking the `pkginfo` module all of the properties in your `package.json` file will be automatically exposed on the callee module (i.e. the parent module of `pkginfo`). \n\nHere\'s a sample of the output:\n\n```\n  { name: \'simple-app\',\n    description: \'A test fixture for pkginfo\',\n    version: \'0.1.0\',\n    author: \'Charlie Robbins <charlie...@gmail.com>\',\n    keywords: [ \'test\', \'fixture\' ],\n    main: \'./index.js\',\n    scripts: { test: \'vows test/*-test.js --spec\' },\n    engines: { node: \'>= 0.4.0\' } }\n```\n\n### Expose specific properties\nIf you don\'t want to expose **all** properties on from your `package.json` on your module then simple pass those properties to the `pkginfo` function:\n\n``` js\n  var pkginfo = require(\'pkginfo\')(module, \'version\', \'author\');\n  \n  console.dir(module.exports);\n```\n\n```\n  { version: \'0.1.0\',\n    author: \'Charlie Robbins <charlie...@gmail.com>\' }\n```\n\nIf you\'re looking for further usage see the [examples][0] included in this repository. \n\n## Run Tests\nTests are written in [vows][1] and give complete coverage of all APIs.\n\n```\n  vows test/*-test.js --spec\n```\n\n[0]: https://github.com/indexzero/node-pkginfo/tree/master/examples\n[1]: http://vowsjs.org\n\n#### Author: [Charlie Robbins](http://nodejitsu.com)\n#### License: MIT',
4049 silly resolved     readmeFilename: 'README.md',
4049 silly resolved     bugs: { url: 'https://github.com/indexzero/node-pkginfo/issues' },
4049 silly resolved     _id: 'pkg...@0.3.0',
4049 silly resolved     _from: 'pkg...@0.x.x' },
4049 silly resolved   { name: 'read',
4049 silly resolved     version: '1.0.4',
4049 silly resolved     main: 'lib/read.js',
4049 silly resolved     dependencies: { 'mute-stream': '~0.0.2' },
4049 silly resolved     devDependencies: { tap: '*' },
4049 silly resolved     engines: { node: '>=0.8' },
4049 silly resolved     author:
4049 silly resolved      { name: 'Isaac Z. Schlueter',
4049 silly resolved        email: 'i...@izs.me',
4049 silly resolved        url: 'http://blog.izs.me/' },
4049 silly resolved     description: 'read(1) for node programs',
4049 silly resolved     repository: { type: 'git', url: 'git://github.com/isaacs/read.git' },
4049 silly resolved     license: 'BSD',
4049 silly resolved     scripts: { test: 'tap test/*.js' },
4049 silly resolved     readme: '## read\n\nFor reading user input from stdin.\n\nSimilar to the `readline` builtin\'s `question()` method, but with a\nfew more features.\n\n## USAGE\n\n```javascript\nvar read = require("read")\nread(options, callback)\n```\n\nThe callback gets called with either the user input, or the default\nspecified, or an error, as `callback(error, result, isDefault)`\nnode style.\n\n## OPTIONS\n\nEvery option is optional.\n\n* `prompt` What to write to stdout before reading input.\n* `silent` Don\'t echo the output as the user types it.\n* `replace` Replace silenced characters with the supplied character value.\n* `timeout` Number of ms to wait for user input before giving up.\n* `default` The default value if the user enters nothing.\n* `edit` Allow the user to edit the default value.\n* `terminal` Treat the output as a TTY, whether it is or not.\n* `stdin` Readable stream to get input data from. (default `process.stdin`)\n* `stdout` Writeable stream to write prompts to. (default: `process.stdout`)\n\nIf silent is true, and the input is a TTY, then read will set raw\nmode, and read character by character.\n\n## COMPATIBILITY\n\nThis module works sort of with node 0.6.  It does not work with node\nversions less than 0.6.  It is best on node 0.8.\n\nOn node version 0.6, it will remove all listeners on the input\nstream\'s `data` and `keypress` events, because the readline module did\nnot fully clean up after itself in that version of node, and did not\nmake it possible to clean up after it in a way that has no potential\nfor side effects.\n\nAdditionally, some of the readline options (like `terminal`) will not\nfunction in versions of node before 0.8, because they were not\nimplemented in the builtin readline module.\n\n## CONTRIBUTING\n\nPatches welcome.\n',
4049 silly resolved     readmeFilename: 'README.md',
4049 silly resolved     bugs: { url: 'https://github.com/isaacs/read/issues' },
4049 silly resolved     _id: 're...@1.0.4',
4049 silly resolved     _from: 're...@1.0.x' },
4049 silly resolved   { name: 'revalidator',
4049 silly resolved     version: '0.1.5',
4049 silly resolved     description: 'A cross-browser / node.js validator used by resourceful',
4049 silly resolved     author: { name: 'Nodejitsu Inc.', email: 'in...@nodejitsu.com' },
4049 silly resolved     maintainers: [ [Object], [Object] ],
4049 silly resolved     repository:
4049 silly resolved      { type: 'git',
4049 silly resolved        url: 'http://github.com/flatiron/revalidator.git' },
4049 silly resolved     devDependencies: { vows: '0.6.x' },
4049 silly resolved     main: './lib/revalidator',
4049 silly resolved     scripts: { test: 'vows test/*-test.js --spec' },
4049 silly resolved     engines: { node: '>= 0.4.0' },
4049 silly resolved     readme: '# revalidator [![Build Status](https://secure.travis-ci.org/flatiron/revalidator.png)](http://travis-ci.org/flatiron/revalidator)\n\nA cross-browser / node.js validator used by resourceful and flatiron.\n\n## Example\nThe core of `revalidator` is simple and succinct: `revalidator.validate(obj, schema)`: \n \n``` js\n  var revalidator = require(\'revalidator\');\n  \n  console.dir(revalidator.validate(someObject, {\n    properties: {\n      url: {\n        description: \'the url the object should be stored at\',\n        type: \'string\',\n        pattern: \'^/[^#%&*{}\\\\:<>?\\/+]+$\',\n        required: true\n      },\n      challenge: {\n        description: \'a means of protecting data (insufficient for production, used as example)\',\n        type: \'string\',\n        minLength: 5\n      },\n      body: {\n        description: \'what to store at the url\',\n        type: \'any\',\n        default: null\n      }\n    }\n  }));\n```\n\nThis will return with a value indicating if the `obj` conforms to the `schema`. If it does not, a descriptive object will be returned containing the errors encountered with validation.\n\n``` js\n  {\n    valid: true // or false\n    errors: [/* Array of errors if valid is false */]\n  }\n```\n\nIn the browser, the validation function is exposed on `window.validate` by simply including `revalidator.js`.\n\n## Installation\n\n### Installing npm (node package manager)\n``` bash\n  $ curl http://npmjs.org/install.sh | sh\n```\n\n### Installing revalidator\n``` bash \n  $ [sudo] npm install revalidator\n```\n\n## Usage\n\n`revalidator` takes json-schema as input to validate objects.\n\n### revalidator.validate (obj, schema, options)\n\nThis will return with a value indicating if the `obj` conforms to the `schema`. If it does not, a descriptive object will be returned containing the errors encountered with validation.\n\n``` js\n{\n  valid: true // or false\n  errors: [/* Array of errors if valid is false */]\n}\n```\n\n#### Available Options\n\n* __validateFormats__: Enforce format constraints (_default true_)\n* __validateFormatsStrict__: When `validateFormats` is _true_ treat unrecognized formats as validation errors (_default false_)\n* __validateFormatExtensions__: When `validateFormats` is _true_ also validate formats defined in `validate.formatExtensions` (_default true_)\n* __cast__: Enforce casting of some types (for integers/numbers are only supported) when it\'s possible, e.g. `"42" => 42`, but `"forty2" => "forty2"` for the `integer` type.\n\n### Schema\nFor a property an `value` is that which is given as input for validation where as an `expected value` is the value of the below fields\n\n#### required\nIf true, the value should not be empty\n\n```js\n{ required: true }\n```\n\n#### type\nThe `type of value` should be equal to the expected value\n\n```js\n{ type: \'string\' }\n{ type: \'number\' }\n{ type: \'integer\' }\n{ type: \'array\' }\n{ type: \'boolean\' }\n{ type: \'object\' }\n{ type: \'null\' }\n{ type: \'any\' }\n{ type: [\'boolean\', \'string\'] }\n```\n\n#### pattern\nThe expected value regex needs to be satisfied by the value\n\n```js\n{ pattern: /^[a-z]+$/ }\n```\n\n#### maxLength\nThe length of value must be greater than or equal to expected value\n\n```js\n{ maxLength: 8 }\n```\n\n#### minLength\nThe length of value must be lesser than or equal to expected value\n\n```js\n{ minLength: 8 }\n```\n\n#### minimum\nValue must be greater than or equal to the expected value\n\n```js\n{ minimum: 10 }\n```\n\n#### maximum\nValue must be lesser than or equal to the expected value\n\n```js\n{ maximum: 10 }\n```\n\n#### exclusiveMinimum\nValue must be greater than expected value\n\n```js\n{ exclusiveMinimum: 9 }\n```\n\n### exclusiveMaximum\nValue must be lesser than expected value\n\n```js\n{ exclusiveMaximum: 11 }\n```\n\n#### divisibleBy\nValue must be divisible by expected value\n\n```js\n{ divisibleBy: 5 }\n{ divisibleBy: 0.5 }\n```\n\n#### minItems\nValue must contain more then expected value number of items\n\n```js\n{ minItems: 2 }\n```\n\n#### maxItems\nValue must contains less then expected value number of items\n\n```js\n{ maxItems: 5 }\n```\n\n#### uniqueItems\nValue must hold a unique set of values\n\n```js\n{ uniqueItems: true }\n```\n\n#### enum\nValue must be present in the array of expected value\n\n```js\n{ enum: [\'month\', \'year\'] }\n```\n\n#### format\nValue must be a valid format\n\n```js\n{ format: \'url\' }\n{ format: \'email\' }\n{ format: \'ip-address\' }\n{ format: \'ipv6\' }\n{ format: \'date-time\' }\n{ format: \'date\' }\n{ format: \'time\' }\n{ format: \'color\' }\n{ format: \'host-name\' }\n{ format: \'utc-millisec\' }\n{ format: \'regex\' }\n```\n\n#### conform\nValue must conform to constraint denoted by expected value\n\n```js\n{ conform: function (v) {\n    if (v%3==1) return true;\n    return false;\n  }\n}\n```\n\n#### dependencies\nValue is valid only if the dependent value is valid\n\n```js\n{\n  town: { required: true, dependencies: \'country\' },\n  country: { maxLength: 3, required: true }\n}\n```\n\n### Nested Schema\nWe also allow nested schema\n\n```js\n{\n  properties: {\n    title: {\n      type: \'string\',\n      maxLength: 140,\n      required: true\n    },\n    author: {\n      type: \'object\',\n      required: true,\n      properties: {\n        name: {\n          type: \'string\',\n          required: true\n        },\n        email: {\n          type: \'string\',\n          format: \'email\'\n        }\n      }\n    }\n  }\n}\n```\n\n### Custom Messages\nWe also allow custom message for different constraints\n\n```js\n{\n  type: \'string\',\n  format: \'url\'\n  messages: {\n    type: \'Not a string type\',\n    format: \'Expected format is a url\'\n  }\n```\n\n```js\n{\n  conform: function () { ... },\n  message: \'This can be used as a global message\'\n}\n```\n\n## Tests\nAll tests are written with [vows][0] and should be run with [npm][1]:\n\n``` bash\n  $ npm test\n```\n\n#### Author: [Charlie Robbins](http://nodejitsu.com), [Alexis Sellier](http://cloudhead.io)\n#### Contributors: [Fedor Indutny](http://github.com/indutny), [Bradley Meck](http://github.com/bmeck), [Laurie Harper](http://laurie.holoweb.net/)\n#### License: Apache 2.0\n\n[0]: http://vowsjs.org\n[1]: http://npmjs.org\n',
4049 silly resolved     readmeFilename: 'README.md',
4049 silly resolved     bugs: { url: 'https://github.com/flatiron/revalidator/issues' },
4049 silly resolved     _id: 'reval...@0.1.5',
4049 silly resolved     _from: 'reval...@0.1.x' } ]
4050 info install ut...@0.1.7 into /usr/local/lib/node_modules/appium/node_modules/prompt
4051 info install pkg...@0.3.0 into /usr/local/lib/node_modules/appium/node_modules/prompt
4052 info install re...@1.0.4 into /usr/local/lib/node_modules/appium/node_modules/prompt
4053 info install reval...@0.1.5 into /usr/local/lib/node_modules/appium/node_modules/prompt
4054 info installOne ut...@0.1.7
4055 info installOne pkg...@0.3.0
4056 info installOne re...@1.0.4
4057 info installOne reval...@0.1.5
4058 verbose from cache /Users/jmiele/.npm/utile/0.1.7/package/package.json
4059 info /usr/local/lib/node_modules/appium/node_modules/prompt/node_modules/utile unbuild
4060 verbose read json /usr/local/lib/node_modules/appium/node_modules/prompt/node_modules/utile/package.json
4061 verbose from cache /Users/jmiele/.npm/pkginfo/0.3.0/package/package.json
4062 info /usr/local/lib/node_modules/appium/node_modules/prompt/node_modules/pkginfo unbuild
4063 verbose read json /usr/local/lib/node_modules/appium/node_modules/prompt/node_modules/pkginfo/package.json
4064 verbose from cache /Users/jmiele/.npm/read/1.0.4/package/package.json
4065 info /usr/local/lib/node_modules/appium/node_modules/prompt/node_modules/read unbuild
4066 verbose read json /usr/local/lib/node_modules/appium/node_modules/prompt/node_modules/read/package.json
4067 verbose from cache /Users/jmiele/.npm/revalidator/0.1.5/package/package.json
4068 info /usr/local/lib/node_modules/appium/node_modules/prompt/node_modules/revalidator unbuild
4069 verbose read json /usr/local/lib/node_modules/appium/node_modules/prompt/node_modules/revalidator/package.json
4070 silly lockFile 48f552bc--npm-argparse-0-1-15-package-tgz /Users/jmiele/.npm/argparse/0.1.15/package.tgz
4071 silly lockFile 48f552bc--npm-argparse-0-1-15-package-tgz /Users/jmiele/.npm/argparse/0.1.15/package.tgz
4072 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/deps/nodeunit.js
4073 silly gunzTarPerm extractEntry examples/test.html
4074 silly gunzTarPerm extractEntry examples/test.xml
4075 silly gunzTarPerm extractEntry .idea/modules.xml
4076 silly gunzTarPerm extractEntry .idea/scopes/scope_settings.xml
4077 verbose tar unpack /Users/jmiele/.npm/utile/0.1.7/package.tgz
4078 silly lockFile 9a62e650-odules-prompt-node-modules-utile /usr/local/lib/node_modules/appium/node_modules/prompt/node_modules/utile
4079 verbose lock /usr/local/lib/node_modules/appium/node_modules/prompt/node_modules/utile /Users/jmiele/.npm/9a62e650-odules-prompt-node-modules-utile.lock
4080 silly lockFile a29b6259-iele-npm-utile-0-1-7-package-tgz /Users/jmiele/.npm/utile/0.1.7/package.tgz
4081 verbose lock /Users/jmiele/.npm/utile/0.1.7/package.tgz /Users/jmiele/.npm/a29b6259-iele-npm-utile-0-1-7-package-tgz.lock
4082 verbose tar unpack /Users/jmiele/.npm/pkginfo/0.3.0/package.tgz
4083 silly lockFile d5838348-ules-prompt-node-modules-pkginfo /usr/local/lib/node_modules/appium/node_modules/prompt/node_modules/pkginfo
4084 verbose lock /usr/local/lib/node_modules/appium/node_modules/prompt/node_modules/pkginfo /Users/jmiele/.npm/d5838348-ules-prompt-node-modules-pkginfo.lock
4085 silly lockFile 988e7c44-le-npm-pkginfo-0-3-0-package-tgz /Users/jmiele/.npm/pkginfo/0.3.0/package.tgz
4086 verbose lock /Users/jmiele/.npm/pkginfo/0.3.0/package.tgz /Users/jmiele/.npm/988e7c44-le-npm-pkginfo-0-3-0-package-tgz.lock
4087 verbose tar unpack /Users/jmiele/.npm/read/1.0.4/package.tgz
4088 silly lockFile da70a6f3-modules-prompt-node-modules-read /usr/local/lib/node_modules/appium/node_modules/prompt/node_modules/read
4089 verbose lock /usr/local/lib/node_modules/appium/node_modules/prompt/node_modules/read /Users/jmiele/.npm/da70a6f3-modules-prompt-node-modules-read.lock
4090 silly lockFile ab3d3996-miele-npm-read-1-0-4-package-tgz /Users/jmiele/.npm/read/1.0.4/package.tgz
4091 verbose lock /Users/jmiele/.npm/read/1.0.4/package.tgz /Users/jmiele/.npm/ab3d3996-miele-npm-read-1-0-4-package-tgz.lock
4092 verbose tar unpack /Users/jmiele/.npm/revalidator/0.1.5/package.tgz
4093 silly lockFile 32008c7b--prompt-node-modules-revalidator /usr/local/lib/node_modules/appium/node_modules/prompt/node_modules/revalidator
4094 verbose lock /usr/local/lib/node_modules/appium/node_modules/prompt/node_modules/revalidator /Users/jmiele/.npm/32008c7b--prompt-node-modules-revalidator.lock
4095 silly lockFile 131f9b76-pm-revalidator-0-1-5-package-tgz /Users/jmiele/.npm/revalidator/0.1.5/package.tgz
4096 verbose lock /Users/jmiele/.npm/revalidator/0.1.5/package.tgz /Users/jmiele/.npm/131f9b76-pm-revalidator-0-1-5-package-tgz.lock
4097 silly gunzTarPerm extractEntry test/original/tidyness.html
4098 silly gunzTarPerm extractEntry test/original/tidyness.text
4099 silly gunzTarPerm modes [ '755', '644' ]
4100 silly gunzTarPerm modes [ '755', '644' ]
4101 silly gunzTarPerm modes [ '755', '644' ]
4102 silly gunzTarPerm modes [ '755', '644' ]
4103 info preinstall argp...@0.1.15
4104 silly gunzTarPerm extractEntry test/resolver/bar/node_modules/foo/index.js
4105 silly gunzTarPerm extractEntry test/resolver/baz/package.json
4106 silly gunzTarPerm extractEntry test/pullStreamTest.js
4107 silly gunzTarPerm extractEntry test/testFile.txt
4108 error Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/namp/test/new/not_a_link.html'
4109 error If you need help, you may report this log at:
4109 error or email it to:
4109 error     <np...@googlegroups.com>
4110 error System Darwin 12.4.0
4111 error command "node" "/usr/local/bin/npm" "install" "-g" "appium"
4112 error cwd /Users/jmiele/appium-test
4113 error node -v v0.10.9
4114 error npm -v 1.2.24
4115 error path /usr/local/lib/node_modules/appium/node_modules/namp/test/new/not_a_link.html
4116 error fstream_path /usr/local/lib/node_modules/appium/node_modules/namp/test/new/not_a_link.html
4117 error fstream_type File
4118 error fstream_class FileWriter
4119 error code ENOENT
4120 error errno 34
4121 error fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
4121 error fstream_stack Object.oncomplete (fs.js:107:15)
4122 verbose exit [ 34, true ]
 

Jonathan Lipps

unread,
Jun 7, 2013, 1:31:31 PM6/7/13
to jmi...@snap-interactive.com, appium-...@googlegroups.com
any particular reason you're trying with sudo? did you try without sudo first?

jmi...@snap-interactive.com

unread,
Jun 7, 2013, 1:39:26 PM6/7/13
to appium-...@googlegroups.com, jmi...@snap-interactive.com
Yes I tried without Sudo first.  Node.js was installed from the package and not using Homebrew.  The docs suggest using Sudo if node.js was installed this way.

Jonathan Lipps

unread,
Jun 7, 2013, 1:50:21 PM6/7/13
to jmi...@snap-interactive.com, appium-...@googlegroups.com
can you send a gist of the npm output (not the log itself, which is too verbose to do anything with initially).

--
http://appium.io
---
You received this message because you are subscribed to the Google Groups "Appium-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to appium-discus...@googlegroups.com.
Visit this group at http://groups.google.com/group/appium-discuss?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

jmi...@snap-interactive.com

unread,
Jun 7, 2013, 2:09:33 PM6/7/13
to appium-...@googlegroups.com, jmi...@snap-interactive.com
Without sudo:

npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/appium'
npm ERR!  { [Error: EACCES, mkdir '/usr/local/lib/node_modules/appium']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/appium',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/usr/local/lib/node_modules/appium',
npm ERR!   fstream_class: 'DirWriter',
npm ERR!   fstream_stack:
npm ERR!    [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23',
npm ERR!      '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53',
npm ERR!      'Object.oncomplete (fs.js:107:15)' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium
npm ERR! fstream_path /usr/local/lib/node_modules/appium
npm ERR! fstream_type Directory
npm ERR! fstream_class DirWriter
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, mkdir '/usr/local/lib/node_modules/appium'
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: EACCES, open 'npm-debug.log'
npm ERR!  { [Error: EACCES, open 'npm-debug.log'] errno: 3, code: 'EACCES', path: 'npm-debug.log' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path npm-debug.log
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, open 'npm-debug.log'
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/jmiele/appium-test/npm-debug.log
npm ERR! not ok code 0

jmi...@snap-interactive.com

unread,
Jun 7, 2013, 2:11:28 PM6/7/13
to appium-...@googlegroups.com, jmi...@snap-interactive.com
With sudo:

npm WARN package.json pa...@0.4.9 No readme data.
npm WARN package.json buffe...@0.0.6 No readme data.
npm WARN package.json node-i...@0.1.2 No repository field.
npm WARN package.json range-...@0.0.4 No repository field.
npm WARN package.json range-...@0.0.4 No readme data.
npm WARN package.json met...@0.0.1 No repository field.
npm WARN package.json met...@0.0.1 No readme data.
npm WARN package.json fr...@0.1.0 No repository field.
npm WARN package.json cookie-s...@0.0.1 No repository field.
npm WARN package.json se...@0.1.0 No repository field.
npm ERR! error rolling back Error: ENOTEMPTY, rmdir '/usr/local/lib/node_modules/appium/node_modules/winston/test'
npm ERR! error rolling back  app...@0.7.1 { [Error: ENOTEMPTY, rmdir '/usr/local/lib/node_modules/appium/node_modules/winston/test']
npm ERR! error rolling back   errno: 53,
npm ERR! error rolling back   code: 'ENOTEMPTY',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/appium/node_modules/winston/test' }
npm ERR! Failed to parse json
npm ERR! Unexpected token d
npm ERR! File: /Users/jmiele/.npm/buffer-crc32/0.1.1/package/package.json
npm ERR! Failed to parse package.json data.
npm ERR! package.json must be actual JSON, not just JavaScript.
npm ERR!
npm ERR! This is not a bug in npm.
npm ERR! Tell the package author to fix their package.json file. JSON.parse

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! file /Users/jmiele/.npm/buffer-crc32/0.1.1/package/package.json
npm ERR! code EJSONPARSE
npm ERR! Error: ENOENT, chown '/usr/local/lib/node_modules/appium/node_modules/grunt/test/grunt/file_test.js'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/grunt/test/grunt/file_test.js
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/grunt/test/grunt/file_test.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! fstream_finish_call chown
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:305:19
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:222:7
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/ws/examples/fileapi/.npmignore'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/ws/examples/fileapi/.npmignore
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/ws/examples/fileapi/.npmignore
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/request/tests/test-https.js'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/request/tests/test-https.js
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/request/tests/test-https.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/glob/node_modules/graceful-fs/LICENSE'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/graceful-fs/LICENSE
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/graceful-fs/LICENSE
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/fstream/LICENSE'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/fstream/LICENSE
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/fstream/LICENSE
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/xml2js/node_modules/sax/examples/pretty-print.js'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/xml2js/node_modules/sax/examples/pretty-print.js
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/xml2js/node_modules/sax/examples/pretty-print.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/bplist-creator/node_modules/stream-buffers/lib/readable_streambuffer.js'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/bplist-creator/node_modules/stream-buffers/lib/readable_streambuffer.js
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/bplist-creator/node_modules/stream-buffers/lib/readable_streambuffer.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/underscore.string/test/test_underscore/objects.js'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/underscore.string/test/test_underscore/objects.js
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/underscore.string/test/test_underscore/objects.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/adm-zip/test/assets/store.zip'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/adm-zip/test/assets/store.zip
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/adm-zip/test/assets/store.zip
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/grunt-cli/node_modules/resolve/lib/sync.js'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/grunt-cli/node_modules/resolve/lib/sync.js
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/grunt-cli/node_modules/resolve/lib/sync.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/binary/index.js'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/binary/index.js
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/binary/index.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/socket.io/lib/transports/websocket/hybi-07-12.js'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/socket.io/lib/transports/websocket/hybi-07-12.js
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/socket.io/lib/transports/websocket/hybi-07-12.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/setimmediate/setImmediate.js'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/setimmediate/setImmediate.js
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/setimmediate/setImmediate.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/argparse/lib/help/formatter.js'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/argparse/lib/help/formatter.js
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/argparse/lib/help/formatter.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/grunt-cli/node_modules/nopt/lib/nopt.js'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/grunt-cli/node_modules/nopt/lib/nopt.js
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/grunt-cli/node_modules/nopt/lib/nopt.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/readable-stream/README.md'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/readable-stream/README.md
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/readable-stream/README.md
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/glob/node_modules/minimatch/minimatch.js'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/minimatch/minimatch.js
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/glob/node_modules/minimatch/minimatch.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/match-stream/.idea/workspace.xml'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/match-stream/.idea/workspace.xml
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/unzip/node_modules/match-stream/.idea/workspace.xml
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/appium/node_modules/binary-cookies/.cookies.js.un~'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/jmiele/appium-test
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /usr/local/lib/node_modules/appium/node_modules/binary-cookies/.cookies.js.un~
npm ERR! fstream_path /usr/local/lib/node_modules/appium/node_modules/binary-cookies/.cookies.js.un~
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)

jmi...@snap-interactive.com

unread,
Jun 7, 2013, 2:12:36 PM6/7/13
to appium-...@googlegroups.com, jmi...@snap-interactive.com
If you would like more information let me know.

Jonathan Lipps

unread,
Jun 7, 2013, 2:21:07 PM6/7/13
to jmi...@snap-interactive.com, appium-...@googlegroups.com
That looks like an npm bug or a bug in one of the packages appium relies on. I was able to install just fine right now.

What happens if you

mkdir tmp && cd tmp && npm install appium

?

On Jun 7, 2013, at 11:12 AM, jmi...@snap-interactive.com wrote:

If you would like more information let me know.

jmi...@snap-interactive.com

unread,
Jun 7, 2013, 2:28:59 PM6/7/13
to appium-...@googlegroups.com, jmi...@snap-interactive.com
tmp existed so I used tempappium:

npm WARN package.json pa...@0.4.9 No readme data.
npm WARN package.json buffe...@0.0.6 No readme data.
npm WARN package.json node-i...@0.1.2 No repository field.
npm WARN package.json range-...@0.0.4 No repository field.
npm WARN package.json range-...@0.0.4 No readme data.
npm WARN package.json met...@0.0.1 No repository field.
npm WARN package.json met...@0.0.1 No readme data.
npm WARN package.json fr...@0.1.0 No repository field.
npm WARN package.json se...@0.1.0 No repository field.
npm WARN package.json cookie-s...@0.0.1 No repository field.
npm ERR! Error: ENOENT, lstat '/Users/jmiele/tempappium/node_modules/appium/node_modules/unzip/node_modules/setimmediate/README.md'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "appium"
npm ERR! cwd /Users/jmiele/tempappium
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /Users/jmiele/tempappium/node_modules/appium/node_modules/unzip/node_modules/setimmediate/README.md
npm ERR! fstream_path /Users/jmiele/tempappium/node_modules/appium/node_modules/unzip/node_modules/setimmediate/README.md
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! error rolling back Error: ENOTEMPTY, rmdir '/Users/jmiele/tempappium/node_modules/appium/node_modules/unzip/node_modules/match-stream'
npm ERR! error rolling back  app...@0.7.1 { [Error: ENOTEMPTY, rmdir '/Users/jmiele/tempappium/node_modules/appium/node_modules/unzip/node_modules/match-stream']
npm ERR! error rolling back   errno: 53,
npm ERR! error rolling back   code: 'ENOTEMPTY',
npm ERR! error rolling back   path: '/Users/jmiele/tempappium/node_modules/appium/node_modules/unzip/node_modules/match-stream' }
npm ERR! Failed to parse json
npm ERR! Unexpected token d
npm ERR! File: /Users/jmiele/.npm/buffer-crc32/0.1.1/package/package.json
npm ERR! Failed to parse package.json data.
npm ERR! package.json must be actual JSON, not just JavaScript.
npm ERR!
npm ERR! This is not a bug in npm.
npm ERR! Tell the package author to fix their package.json file. JSON.parse

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "appium"
npm ERR! cwd /Users/jmiele/tempappium
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! file /Users/jmiele/.npm/buffer-crc32/0.1.1/package/package.json
npm ERR! code EJSONPARSE
npm ERR! Error: ENOENT, open '/Users/jmiele/tempappium/node_modules/appium/node_modules/namp/test/new/tricky_list.html'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "appium"
npm ERR! cwd /Users/jmiele/tempappium
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /Users/jmiele/tempappium/node_modules/appium/node_modules/namp/test/new/tricky_list.html
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! Error: ENOENT, lstat '/Users/jmiele/tempappium/node_modules/appium/node_modules/unzip/node_modules/fstream/README.md'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "appium"
npm ERR! cwd /Users/jmiele/tempappium
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /Users/jmiele/tempappium/node_modules/appium/node_modules/unzip/node_modules/fstream/README.md
npm ERR! fstream_path /Users/jmiele/tempappium/node_modules/appium/node_modules/unzip/node_modules/fstream/README.md
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/Users/jmiele/tempappium/node_modules/appium/node_modules/ws/examples/serverstats-express_3/public/index.html'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "appium"
npm ERR! cwd /Users/jmiele/tempappium
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /Users/jmiele/tempappium/node_modules/appium/node_modules/ws/examples/serverstats-express_3/public/index.html
npm ERR! fstream_path /Users/jmiele/tempappium/node_modules/appium/node_modules/ws/examples/serverstats-express_3/public/index.html
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! EEXIST, mkdir '/Users/jmiele/tempappium/node_modules/appium/node_modules/bplist-creator/node_modules/stream-buffers/lib'
File exists: /Users/jmiele/tempappium/node_modules/appium/node_modules/bplist-creator/node_modules/stream-buffers/lib
Move it away, and try again.

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "appium"
npm ERR! cwd /Users/jmiele/tempappium
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /Users/jmiele/tempappium/node_modules/appium/node_modules/bplist-creator/node_modules/stream-buffers/lib
npm ERR! fstream_path /Users/jmiele/tempappium/node_modules/appium/node_modules/bplist-creator/node_modules/stream-buffers/lib/writable_streambuffer.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code EEXIST
npm ERR! errno 47
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:171:23
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! EEXIST, mkdir '/Users/jmiele/tempappium/node_modules/appium/node_modules/request/tests/ssl/ca'
File exists: /Users/jmiele/tempappium/node_modules/appium/node_modules/request/tests/ssl/ca
Move it away, and try again.

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "appium"
npm ERR! cwd /Users/jmiele/tempappium
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /Users/jmiele/tempappium/node_modules/appium/node_modules/request/tests/ssl/ca
npm ERR! fstream_path /Users/jmiele/tempappium/node_modules/appium/node_modules/request/tests/ssl/ca/ca.cnf
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code EEXIST
npm ERR! errno 47
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:171:23
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/Users/jmiele/tempappium/node_modules/appium/node_modules/unzip/node_modules/pullstream/README.md'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "appium"
npm ERR! cwd /Users/jmiele/tempappium
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /Users/jmiele/tempappium/node_modules/appium/node_modules/unzip/node_modules/pullstream/README.md
npm ERR! fstream_path /Users/jmiele/tempappium/node_modules/appium/node_modules/unzip/node_modules/pullstream/README.md
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/Users/jmiele/tempappium/node_modules/appium/node_modules/grunt-cli/node_modules/resolve/test/mock_sync.js'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "appium"
npm ERR! cwd /Users/jmiele/tempappium
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /Users/jmiele/tempappium/node_modules/appium/node_modules/grunt-cli/node_modules/resolve/test/mock_sync.js
npm ERR! fstream_path /Users/jmiele/tempappium/node_modules/appium/node_modules/grunt-cli/node_modules/resolve/test/mock_sync.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/Users/jmiele/tempappium/node_modules/appium/node_modules/unzip/node_modules/binary/index.js'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "appium"
npm ERR! cwd /Users/jmiele/tempappium
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /Users/jmiele/tempappium/node_modules/appium/node_modules/unzip/node_modules/binary/index.js
npm ERR! fstream_path /Users/jmiele/tempappium/node_modules/appium/node_modules/unzip/node_modules/binary/index.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm WARN package.json polic...@0.0.4 No repository field.
npm WARN package.json polic...@0.0.4 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
npm ERR! Error: ENOENT, lstat '/Users/jmiele/tempappium/node_modules/appium/node_modules/glob/node_modules/minimatch/test/basic.js'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "appium"
npm ERR! cwd /Users/jmiele/tempappium
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /Users/jmiele/tempappium/node_modules/appium/node_modules/glob/node_modules/minimatch/test/basic.js
npm ERR! fstream_path /Users/jmiele/tempappium/node_modules/appium/node_modules/glob/node_modules/minimatch/test/basic.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/Users/jmiele/tempappium/node_modules/appium/node_modules/unzip/node_modules/readable-stream/README.md'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "appium"
npm ERR! cwd /Users/jmiele/tempappium
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /Users/jmiele/tempappium/node_modules/appium/node_modules/unzip/node_modules/readable-stream/README.md
npm ERR! fstream_path /Users/jmiele/tempappium/node_modules/appium/node_modules/unzip/node_modules/readable-stream/README.md
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/Users/jmiele/tempappium/node_modules/appium/node_modules/binary-cookies/.cookies.js.un~'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "appium"
npm ERR! cwd /Users/jmiele/tempappium
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /Users/jmiele/tempappium/node_modules/appium/node_modules/binary-cookies/.cookies.js.un~
npm ERR! fstream_path /Users/jmiele/tempappium/node_modules/appium/node_modules/binary-cookies/.cookies.js.un~
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/Users/jmiele/tempappium/node_modules/appium/node_modules/xml2js/node_modules/sax/examples/big-not-pretty.xml'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "appium"
npm ERR! cwd /Users/jmiele/tempappium
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /Users/jmiele/tempappium/node_modules/appium/node_modules/xml2js/node_modules/sax/examples/big-not-pretty.xml
npm ERR! fstream_path /Users/jmiele/tempappium/node_modules/appium/node_modules/xml2js/node_modules/sax/examples/big-not-pretty.xml
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/Users/jmiele/tempappium/node_modules/appium/node_modules/underscore.string/test/test_underscore/vendor/jquery.js'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "appium"
npm ERR! cwd /Users/jmiele/tempappium
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /Users/jmiele/tempappium/node_modules/appium/node_modules/underscore.string/test/test_underscore/vendor/jquery.js
npm ERR! fstream_path /Users/jmiele/tempappium/node_modules/appium/node_modules/underscore.string/test/test_underscore/vendor/jquery.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/Users/jmiele/tempappium/node_modules/appium/node_modules/grunt-cli/node_modules/findup-sync/node_modules/lodash/build.js'
npm ERR! If you need help, you may report this log at:
npm ERR! or email it to:
npm ERR!     <np...@googlegroups.com>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "appium"
npm ERR! cwd /Users/jmiele/tempappium
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /Users/jmiele/tempappium/node_modules/appium/node_modules/grunt-cli/node_modules/findup-sync/node_modules/lodash/build.js
npm ERR! fstream_path /Users/jmiele/tempappium/node_modules/appium/node_modules/grunt-cli/node_modules/findup-sync/node_modules/lodash/build.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/jmiele/tempappium/npm-debug.log

Jonathan Lipps

unread,
Jun 7, 2013, 2:32:12 PM6/7/13
to jmi...@snap-interactive.com, appium-...@googlegroups.com
This looks like an npm issue. What version of node/npm do you have?

jmi...@snap-interactive.com

unread,
Jun 7, 2013, 2:38:11 PM6/7/13
to appium-...@googlegroups.com, jmi...@snap-interactive.com
Local: ~ $     node -v
v0.10.10
Local: ~ $     npm -v
1.2.25

Jonathan Lipps

unread,
Jun 7, 2013, 2:45:06 PM6/7/13
to jmi...@snap-interactive.com, appium-...@googlegroups.com
I'm on earlier versions. Is anyone else on 10.10/1.2.25 that can double-check this?

jmi...@snap-interactive.com

unread,
Jun 7, 2013, 2:58:58 PM6/7/13
to appium-...@googlegroups.com, jmi...@snap-interactive.com
What versions are you on?  Perhaps I can check on a coworkers box.

Dan Cuellar

unread,
Jun 7, 2013, 3:46:58 PM6/7/13
to appium-...@googlegroups.com, jmi...@snap-interactive.com
I just relased the .app and .exe with 10.10 and i had no problems with npm
Reply all
Reply to author
Forward
0 new messages