CB-11006 Updated checked-in node_modules

Project: http://git-wip-us.apache.org/repos/asf/cordova-ios/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-ios/commit/6394314d
Tree: http://git-wip-us.apache.org/repos/asf/cordova-ios/tree/6394314d
Diff: http://git-wip-us.apache.org/repos/asf/cordova-ios/diff/6394314d

Branch: refs/heads/master
Commit: 6394314d34d20c755d0fdc3bbf2ab0313ee5436b
Parents: 6221bd7
Author: Edna Morales <[email protected]>
Authored: Fri Apr 1 15:25:23 2016 -0400
Committer: Edna Morales <[email protected]>
Committed: Fri Apr 1 15:25:23 2016 -0400

----------------------------------------------------------------------
 node_modules/cordova-common/RELEASENOTES.md     |   9 +
 node_modules/cordova-common/package.json        | 127 ++++++--------
 .../src/ConfigParser/ConfigParser.js            |   1 +
 .../cordova-common/src/CordovaLogger.js         |  17 ++
 .../cordova-common/src/PluginInfo/PluginInfo.js |  16 +-
 .../cordova-common/src/util/xml-helpers.js      |  27 ++-
 .../node_modules/bplist-parser/package.json     |  84 +++-------
 .../ios-sim/node_modules/nopt/package.json      |  99 +++++------
 node_modules/ios-sim/package.json               | 127 ++++++--------
 node_modules/ios-sim/src/cli.js                 |  29 ++--
 node_modules/ios-sim/src/commands.js            |   2 +-
 node_modules/ios-sim/src/help.js                |   2 +-
 node_modules/ios-sim/src/lib.js                 |  49 ++++--
 node_modules/nopt/package.json                  |  92 +++--------
 node_modules/plist/package.json                 | 130 ++++++---------
 node_modules/q/package.json                     | 164 +++++++------------
 node_modules/shelljs/package.json               | 111 +++++--------
 node_modules/xcode/package.json                 | 119 ++++++--------
 18 files changed, 490 insertions(+), 715 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6394314d/node_modules/cordova-common/RELEASENOTES.md
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/RELEASENOTES.md 
b/node_modules/cordova-common/RELEASENOTES.md
index e7db69c..806b6f2 100644
--- a/node_modules/cordova-common/RELEASENOTES.md
+++ b/node_modules/cordova-common/RELEASENOTES.md
@@ -20,6 +20,15 @@
 -->
 # Cordova-common Release Notes
 
+### 1.1.1 (Mar 18, 2016)
+* CB-10694 Update test to reflect merging of CB-9264 fix
+* CB-10694 Platform-specific configuration preferences don't override global 
settings
+* CB-9264 Duplicate entries in `config.xml`
+* CB-10791 Add `adjustLoggerLevel` to `cordova-common.CordovaLogger`
+* CB-10662 Add tests for `ConfigParser.getStaticResources`
+* CB-10622 fix target attribute being ignored for images in `config.xml`.
+* CB-10583 Protect plugin preferences from adding extra Array properties.
+
 ### 1.1.0 (Feb 16, 2016)
 * CB-10482 Remove references to windows8 from cordova-lib/cli
 * CB-10430 Adds forwardEvents method to easily connect two EventEmitters

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6394314d/node_modules/cordova-common/package.json
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/package.json 
b/node_modules/cordova-common/package.json
index 21e2226..164939c 100644
--- a/node_modules/cordova-common/package.json
+++ b/node_modules/cordova-common/package.json
@@ -1,50 +1,30 @@
 {
-  "_args": [
-    [
-      "cordova-common@^1.1.0",
-      "/Users/omefire/Projects/cordova-ios"
-    ]
-  ],
-  "_from": "cordova-common@>=1.1.0 <2.0.0",
-  "_id": "[email protected]",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/cordova-common",
-  "_nodeVersion": "4.2.3",
-  "_npmOperationalInternal": {
-    "host": "packages-5-east.internal.npmjs.com",
-    "tmp": "tmp/cordova-common-1.1.0.tgz_1455781889491_0.6937742941081524"
-  },
-  "_npmUser": {
-    "email": "[email protected]",
-    "name": "kotikov.vladimir"
-  },
-  "_npmVersion": "2.14.7",
-  "_phantomChildren": {},
-  "_requested": {
-    "name": "cordova-common",
-    "raw": "cordova-common@^1.1.0",
-    "rawSpec": "^1.1.0",
-    "scope": null,
-    "spec": ">=1.1.0 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/"
-  ],
-  "_resolved": 
"https://registry.npmjs.org/cordova-common/-/cordova-common-1.1.0.tgz";,
-  "_shasum": "8682721466ee354747ec6241f34f412b7e0ef636",
-  "_shrinkwrap": null,
-  "_spec": "cordova-common@^1.1.0",
-  "_where": "/Users/omefire/Projects/cordova-ios",
   "author": {
     "name": "Apache Software Foundation"
   },
+  "name": "cordova-common",
+  "description": "Apache Cordova tools and platforms shared routines",
+  "license": "Apache-2.0",
+  "version": "1.1.1",
+  "repository": {
+    "type": "git",
+    "url": "git://git-wip-us.apache.org/repos/asf/cordova-common.git"
+  },
   "bugs": {
-    "email": "[email protected]",
-    "url": "https://issues.apache.org/jira/browse/CB";
+    "url": "https://issues.apache.org/jira/browse/CB";,
+    "email": "[email protected]"
   },
-  "contributors": [],
+  "main": "cordova-common.js",
+  "engines": {
+    "node": ">=0.9.9"
+  },
+  "scripts": {
+    "test": "npm run jshint && npm run jasmine",
+    "jshint": "node node_modules/jshint/bin/jshint src && node 
node_modules/jshint/bin/jshint spec",
+    "jasmine": "node node_modules/jasmine-node/bin/jasmine-node 
--captureExceptions --color spec",
+    "cover": "node node_modules/istanbul/lib/cli.js cover --root src --print 
detail node_modules/jasmine-node/bin/jasmine-node -- spec"
+  },
+  "engineStrict": true,
   "dependencies": {
     "ansi": "^0.3.1",
     "bplist-parser": "^0.1.0",
@@ -59,61 +39,56 @@
     "underscore": "^1.8.3",
     "unorm": "^1.3.3"
   },
-  "description": "Apache Cordova tools and platforms shared routines",
   "devDependencies": {
     "istanbul": "^0.3.17",
     "jasmine-node": "^1.14.5",
     "jshint": "^2.8.0"
   },
-  "directories": {},
-  "dist": {
-    "shasum": "8682721466ee354747ec6241f34f412b7e0ef636",
-    "tarball": 
"http://registry.npmjs.org/cordova-common/-/cordova-common-1.1.0.tgz";
+  "contributors": [],
+  "_id": "[email protected]",
+  "_shasum": "4f74e182fe706b7a0ad626b0b3d303910af21d25",
+  "_resolved": 
"http://visustar.francelab.fr.ibm.com:8081/nexus/content/groups/mobile-npm-all/cordova-common/-/cordova-common-1.1.1.tgz";,
+  "_from": "cordova-common@>=1.1.0 <2.0.0",
+  "_npmVersion": "3.5.3",
+  "_nodeVersion": "5.4.1",
+  "_npmUser": {
+    "name": "stevegill",
+    "email": "[email protected]"
   },
-  "engineStrict": true,
-  "engines": {
-    "node": ">=0.9.9"
+  "dist": {
+    "shasum": "4f74e182fe706b7a0ad626b0b3d303910af21d25",
+    "tarball": 
"http://visustar.francelab.fr.ibm.com:8081/nexus/content/groups/mobile-npm-all/cordova-common/-/cordova-common-1.1.1.tgz";
   },
-  "license": "Apache-2.0",
-  "main": "cordova-common.js",
   "maintainers": [
     {
-      "email": "[email protected]",
-      "name": "bowserj"
+      "name": "bowserj",
+      "email": "[email protected]"
     },
     {
-      "email": "[email protected]",
-      "name": "kotikov.vladimir"
+      "name": "kotikov.vladimir",
+      "email": "[email protected]"
     },
     {
-      "email": "[email protected]",
-      "name": "purplecabbage"
+      "name": "purplecabbage",
+      "email": "[email protected]"
     },
     {
-      "email": "[email protected]",
-      "name": "shazron"
+      "name": "shazron",
+      "email": "[email protected]"
     },
     {
-      "email": "[email protected]",
-      "name": "stevegill"
+      "name": "stevegill",
+      "email": "[email protected]"
     },
     {
-      "email": "[email protected]",
-      "name": "timbarham"
+      "name": "timbarham",
+      "email": "[email protected]"
     }
   ],
-  "name": "cordova-common",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://git-wip-us.apache.org/repos/asf/cordova-common.git"
-  },
-  "scripts": {
-    "cover": "node node_modules/istanbul/lib/cli.js cover --root src --print 
detail node_modules/jasmine-node/bin/jasmine-node -- spec",
-    "jasmine": "node node_modules/jasmine-node/bin/jasmine-node 
--captureExceptions --color spec",
-    "jshint": "node node_modules/jshint/bin/jshint src && node 
node_modules/jshint/bin/jshint spec",
-    "test": "npm run jshint && npm run jasmine"
+  "_npmOperationalInternal": {
+    "host": "packages-12-west.internal.npmjs.com",
+    "tmp": "tmp/cordova-common-1.1.1.tgz_1458760117765_0.2676008273847401"
   },
-  "version": "1.1.0"
+  "directories": {},
+  "readme": "ERROR: No README data found!"
 }

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6394314d/node_modules/cordova-common/src/ConfigParser/ConfigParser.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/src/ConfigParser/ConfigParser.js 
b/node_modules/cordova-common/src/ConfigParser/ConfigParser.js
index 7abddf6..aae59db 100644
--- a/node_modules/cordova-common/src/ConfigParser/ConfigParser.js
+++ b/node_modules/cordova-common/src/ConfigParser/ConfigParser.js
@@ -186,6 +186,7 @@ ConfigParser.prototype = {
         staticResources.forEach(function (elt) {
             var res = {};
             res.src = elt.attrib.src;
+            res.target = elt.attrib.target || undefined;
             res.density = elt.attrib['density'] || 
elt.attrib[that.cdvNamespacePrefix+':density'] || elt.attrib['gap:density'];
             res.platform = elt.platform || null; // null means icon represents 
default icon (shared between platforms)
             res.width = +elt.attrib.width || undefined;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6394314d/node_modules/cordova-common/src/CordovaLogger.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/src/CordovaLogger.js 
b/node_modules/cordova-common/src/CordovaLogger.js
index 06dbcf3..852d298 100644
--- a/node_modules/cordova-common/src/CordovaLogger.js
+++ b/node_modules/cordova-common/src/CordovaLogger.js
@@ -153,6 +153,23 @@ CordovaLogger.prototype.setLevel = function (logLevel) {
 };
 
 /**
+ * Adjusts the current logger level according to the passed options.
+ *
+ * @param   {Object|Array}  opts  An object or args array with options
+ *
+ * @return  {CordovaLogger}     Current instance, to allow calls chaining.
+ */
+CordovaLogger.prototype.adjustLevel = function (opts) {
+    if (opts.verbose || (Array.isArray(opts) && opts.indexOf('--verbose') !== 
-1)) {
+        this.setLevel('verbose');
+    } else if (opts.silent || (Array.isArray(opts) && opts.indexOf('--silent') 
!== -1)) {
+        this.setLevel('error');
+    }
+
+    return this;
+};
+
+/**
  * Attaches logger to EventEmitter instance provided.
  *
  * @param   {EventEmitter}  eventEmitter  An EventEmitter instance to attach

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6394314d/node_modules/cordova-common/src/PluginInfo/PluginInfo.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/src/PluginInfo/PluginInfo.js 
b/node_modules/cordova-common/src/PluginInfo/PluginInfo.js
index 2554a3c..e1a1b31 100644
--- a/node_modules/cordova-common/src/PluginInfo/PluginInfo.js
+++ b/node_modules/cordova-common/src/PluginInfo/PluginInfo.js
@@ -43,18 +43,14 @@ function PluginInfo(dirname) {
     // <preference> tag
     // Example: <preference name="API_KEY" />
     // Used to require a variable to be specified via --variable when 
installing the plugin.
+    // returns { key : default | null}
     self.getPreferences = getPreferences;
     function getPreferences(platform) {
-        var arprefs = _getTags(self._et, 'preference', platform, 
_parsePreference);
-
-        var prefs= {};
-        for(var i in arprefs)
-        {
-            var pref=arprefs[i];
-            prefs[pref.preference]=pref.default;
-        }
-        // returns { key : default | null}
-        return prefs;
+        return _getTags(self._et, 'preference', platform, _parsePreference)
+        .reduce(function (preferences, pref) {
+            preferences[pref.preference] = pref.default;
+            return preferences;
+        }, {});
     }
 
     function _parsePreference(prefTag) {

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6394314d/node_modules/cordova-common/src/util/xml-helpers.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/src/util/xml-helpers.js 
b/node_modules/cordova-common/src/util/xml-helpers.js
index 8b02989..fc84128 100644
--- a/node_modules/cordova-common/src/util/xml-helpers.js
+++ b/node_modules/cordova-common/src/util/xml-helpers.js
@@ -209,6 +209,9 @@ function mergeXml(src, dest, platform, clobber) {
     if (src.text && (clobber || !dest.text)) {
         dest.text = src.text;
     }
+    //Handle children
+    src.getchildren().forEach(mergeChild);
+
     //Handle platform
     if (platform) {
         src.findall('platform[@name="' + platform + '"]').forEach(function 
(platformElement) {
@@ -216,8 +219,8 @@ function mergeXml(src, dest, platform, clobber) {
         });
     }
 
-    //Handle children
-    src.getchildren().forEach(mergeChild);
+    //Handle duplicate preference tags (by name attribute)
+    removeDuplicatePreferences(dest);
 
     function mergeChild (srcChild) {
         var srcTag = srcChild.tag,
@@ -254,6 +257,26 @@ function mergeXml(src, dest, platform, clobber) {
             dest.append(destChild);
         }
     }
+    
+    function removeDuplicatePreferences(xml) {
+        // reduce preference tags to a hashtable to remove dupes
+        var prefHash = 
xml.findall('preference[@name][@value]').reduce(function(previousValue, 
currentValue) {
+            previousValue[ currentValue.attrib.name ] = 
currentValue.attrib.value;
+            return previousValue;
+        }, {});
+        
+        // remove all preferences
+        xml.findall('preference[@name][@value]').forEach(function(pref) {
+            xml.remove(pref);
+        });
+        
+        // write new preferences
+        Object.keys(prefHash).forEach(function(key, index) {
+            var element = et.SubElement(xml, 'preference');
+            element.set('name', key);
+            element.set('value', this[key]);
+        }, prefHash);
+    }
 }
 
 // Expose for testing.

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6394314d/node_modules/ios-sim/node_modules/bplist-parser/package.json
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/bplist-parser/package.json 
b/node_modules/ios-sim/node_modules/bplist-parser/package.json
index 969d618..95879d0 100644
--- a/node_modules/ios-sim/node_modules/bplist-parser/package.json
+++ b/node_modules/ios-sim/node_modules/bplist-parser/package.json
@@ -1,78 +1,36 @@
 {
-  "_args": [
-    [
-      "bplist-parser@^0.0.6",
-      "/Users/omefire/Projects/cordova-ios/node_modules/ios-sim"
-    ]
-  ],
-  "_from": "bplist-parser@>=0.0.6 <0.0.7",
-  "_id": "[email protected]",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/ios-sim/bplist-parser",
-  "_npmUser": {
-    "email": "[email protected]",
-    "name": "joeferner"
-  },
-  "_npmVersion": "1.4.14",
-  "_phantomChildren": {},
-  "_requested": {
-    "name": "bplist-parser",
-    "raw": "bplist-parser@^0.0.6",
-    "rawSpec": "^0.0.6",
-    "scope": null,
-    "spec": ">=0.0.6 <0.0.7",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/ios-sim"
-  ],
-  "_resolved": 
"https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz";,
-  "_shasum": "38da3471817df9d44ab3892e27707bbbd75a11b9",
-  "_shrinkwrap": null,
-  "_spec": "bplist-parser@^0.0.6",
-  "_where": "/Users/omefire/Projects/cordova-ios/node_modules/ios-sim",
-  "author": {
-    "email": "[email protected]",
-    "name": "Joe Ferner"
-  },
-  "bugs": {
-    "url": "https://github.com/nearinfinity/node-bplist-parser/issues";
-  },
-  "dependencies": {},
+  "name": "bplist-parser",
+  "version": "0.0.6",
   "description": "Binary plist parser.",
-  "devDependencies": {
-    "nodeunit": "~0.7.4"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "38da3471817df9d44ab3892e27707bbbd75a11b9",
-    "tarball": 
"http://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz";
+  "main": "bplistParser.js",
+  "scripts": {
+    "test": "./node_modules/nodeunit/bin/nodeunit test"
   },
-  "gitHead": "a2230a5df3c7014ffbe5761bcb091ea2d061b47b",
-  "homepage": "https://github.com/nearinfinity/node-bplist-parser";,
   "keywords": [
     "bplist",
     "plist",
     "parser"
   ],
+  "author": {
+    "name": "Joe Ferner",
+    "email": "[email protected]"
+  },
   "license": "MIT",
-  "main": "bplistParser.js",
-  "maintainers": [
-    {
-      "email": "[email protected]",
-      "name": "joeferner"
-    }
-  ],
-  "name": "bplist-parser",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
+  "devDependencies": {
+    "nodeunit": "~0.7.4"
+  },
   "repository": {
     "type": "git",
     "url": "git+https://github.com/nearinfinity/node-bplist-parser.git";
   },
-  "scripts": {
-    "test": "./node_modules/nodeunit/bin/nodeunit test"
+  "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 p
 ortions 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",
+  "readmeFilename": "README.md",
+  "bugs": {
+    "url": "https://github.com/nearinfinity/node-bplist-parser/issues";
   },
-  "version": "0.0.6"
+  "homepage": "https://github.com/nearinfinity/node-bplist-parser#readme";,
+  "_id": "[email protected]",
+  "_shasum": "38da3471817df9d44ab3892e27707bbbd75a11b9",
+  "_resolved": 
"https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz";,
+  "_from": "bplist-parser@>=0.0.6 <0.0.7"
 }

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6394314d/node_modules/ios-sim/node_modules/nopt/package.json
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/nopt/package.json 
b/node_modules/ios-sim/node_modules/nopt/package.json
index 3ebb34b..73629b3 100644
--- a/node_modules/ios-sim/node_modules/nopt/package.json
+++ b/node_modules/ios-sim/node_modules/nopt/package.json
@@ -1,85 +1,60 @@
 {
-  "_args": [
-    [
-      "[email protected]",
-      "/Users/omefire/Projects/cordova-ios/node_modules/ios-sim"
-    ]
-  ],
-  "_defaultsLoaded": true,
-  "_engineSupported": true,
-  "_from": "[email protected]",
-  "_id": "[email protected]",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/ios-sim/nopt",
-  "_nodeVersion": "v0.5.8-pre",
-  "_npmUser": {
-    "email": "[email protected]",
-    "name": "isaacs"
-  },
-  "_npmVersion": "1.0.30",
-  "_phantomChildren": {},
-  "_requested": {
-    "name": "nopt",
-    "raw": "[email protected]",
-    "rawSpec": "1.0.9",
-    "scope": null,
-    "spec": "1.0.9",
-    "type": "version"
-  },
-  "_requiredBy": [
-    "/ios-sim"
-  ],
-  "_resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.9.tgz";,
-  "_shasum": "3bc0d7cba7bfb0d5a676dbed7c0ebe48a4fd454e",
-  "_shrinkwrap": null,
-  "_spec": "[email protected]",
-  "_where": "/Users/omefire/Projects/cordova-ios/node_modules/ios-sim",
+  "name": "nopt",
+  "version": "1.0.9",
+  "description": "Option parsing for Node, supporting types, shorthands, etc. 
Used by npm.",
   "author": {
-    "email": "[email protected]",
     "name": "Isaac Z. Schlueter",
+    "email": "[email protected]",
     "url": "http://blog.izs.me/";
   },
+  "main": "lib/nopt.js",
+  "scripts": {
+    "test": "node lib/nopt.js"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/isaacs/nopt.git"
+  },
   "bin": {
     "nopt": "./bin/nopt.js"
   },
-  "bugs": {
-    "url": "https://github.com/isaacs/nopt/issues";
+  "license": {
+    "type": "MIT",
+    "url": "https://github.com/isaacs/nopt/raw/master/LICENSE";
   },
   "dependencies": {
     "abbrev": "1"
   },
-  "description": "Option parsing for Node, supporting types, shorthands, etc. 
Used by npm.",
-  "devDependencies": {},
-  "directories": {},
-  "dist": {
-    "shasum": "3bc0d7cba7bfb0d5a676dbed7c0ebe48a4fd454e",
-    "tarball": "http://registry.npmjs.org/nopt/-/nopt-1.0.9.tgz";
+  "_npmUser": {
+    "name": "isaacs",
+    "email": "[email protected]"
   },
+  "_id": "[email protected]",
+  "devDependencies": {},
   "engines": {
     "node": "*"
   },
-  "homepage": "https://github.com/isaacs/nopt#readme";,
-  "license": {
-    "type": "MIT",
-    "url": "https://github.com/isaacs/nopt/raw/master/LICENSE";
+  "_engineSupported": true,
+  "_npmVersion": "1.0.30",
+  "_nodeVersion": "v0.5.8-pre",
+  "_defaultsLoaded": true,
+  "dist": {
+    "shasum": "3bc0d7cba7bfb0d5a676dbed7c0ebe48a4fd454e",
+    "tarball": 
"http://visustar.francelab.fr.ibm.com:8081/nexus/content/groups/mobile-npm-all/nopt/-/nopt-1.0.9.tgz";
   },
-  "main": "lib/nopt.js",
   "maintainers": [
     {
-      "email": "[email protected]",
-      "name": "isaacs"
+      "name": "isaacs",
+      "email": "[email protected]"
     }
   ],
-  "name": "nopt",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/nopt.git"
-  },
-  "scripts": {
-    "test": "node lib/nopt.js"
+  "directories": {},
+  "_shasum": "3bc0d7cba7bfb0d5a676dbed7c0ebe48a4fd454e",
+  "_resolved": 
"http://visustar.francelab.fr.ibm.com:8081/nexus/content/groups/mobile-npm-all/nopt/-/nopt-1.0.9.tgz";,
+  "_from": "[email protected]",
+  "bugs": {
+    "url": "https://github.com/isaacs/nopt/issues";
   },
-  "version": "1.0.9"
+  "readme": "ERROR: No README data found!",
+  "homepage": "https://github.com/isaacs/nopt#readme";
 }

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6394314d/node_modules/ios-sim/package.json
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/package.json 
b/node_modules/ios-sim/package.json
index 582c81e..ca55c48 100644
--- a/node_modules/ios-sim/package.json
+++ b/node_modules/ios-sim/package.json
@@ -1,102 +1,81 @@
 {
-  "_args": [
-    [
-      "ios-sim@^5.0.7",
-      "/Users/omefire/Projects/cordova-ios"
-    ]
-  ],
-  "_from": "ios-sim@>=5.0.7 <6.0.0",
-  "_id": "[email protected]",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/ios-sim",
-  "_nodeVersion": "0.12.7",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/ios-sim-5.0.7.tgz_1458354455716_0.9269207445904613"
-  },
-  "_npmUser": {
-    "email": "[email protected]",
-    "name": "shazron"
-  },
-  "_npmVersion": "2.11.3",
-  "_phantomChildren": {
-    "abbrev": "1.0.7"
+  "name": "ios-sim",
+  "version": "5.0.8",
+  "preferGlobal": "true",
+  "description": "launch iOS apps into the iOS Simulator from the command line 
(Xcode 6.0+)",
+  "main": "ios-sim.js",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/phonegap/ios-sim.git";
   },
-  "_requested": {
-    "name": "ios-sim",
-    "raw": "ios-sim@^5.0.7",
-    "rawSpec": "^5.0.7",
-    "scope": null,
-    "spec": ">=5.0.7 <6.0.0",
-    "type": "range"
+  "engines": {
+    "node": ">=0.10.0"
   },
-  "_requiredBy": [
-    "/"
+  "keywords": [
+    "ios-sim",
+    "iOS Simulator"
   ],
-  "_resolved": "https://registry.npmjs.org/ios-sim/-/ios-sim-5.0.7.tgz";,
-  "_shasum": "03d5b726b25e08b653620fb65509b58626490a79",
-  "_shrinkwrap": null,
-  "_spec": "ios-sim@^5.0.7",
-  "_where": "/Users/omefire/Projects/cordova-ios",
-  "author": {
-    "name": "Shazron Abdullah"
-  },
   "bin": {
     "ios-sim": "./bin/ios-sim"
   },
   "bugs": {
     "url": "https://github.com/phonegap/ios-sim/issues";
   },
+  "author": {
+    "name": "Shazron Abdullah"
+  },
+  "license": "MIT",
   "dependencies": {
-    "bplist-parser": "^0.0.6",
+    "plist": "^1.2.0",
+    "simctl": "^0.0.9",
     "nopt": "1.0.9",
-    "simctl": "^0.0.9"
+    "bplist-parser": "^0.0.6"
   },
-  "description": "launch iOS apps into the iOS Simulator from the command line 
(Xcode 6.0+)",
-  "devDependencies": {},
-  "directories": {},
-  "dist": {
-    "shasum": "03d5b726b25e08b653620fb65509b58626490a79",
-    "tarball": "http://registry.npmjs.org/ios-sim/-/ios-sim-5.0.7.tgz";
+  "devDependencies": {
+    "jshint": "^2.9.1"
   },
-  "engines": {
-    "node": ">=0.10.0"
+  "scripts": {
+    "test": "npm run jshint",
+    "jshint": "jshint src ./ios-sim.js"
   },
-  "gitHead": "37a4633b6e12c808247588c33891a4d5d52265ea",
+  "gitHead": "f0fc8160c262fe86ccaf8eeef1ff4ef22eb19b5c",
   "homepage": "https://github.com/phonegap/ios-sim#readme";,
-  "keywords": [
-    "ios-sim",
-    "iOS Simulator"
-  ],
-  "license": "MIT",
-  "main": "ios-sim.js",
+  "_id": "[email protected]",
+  "_shasum": "20520bbcfdadb0b0cb08690b90969b6e60a9a796",
+  "_from": "ios-sim@>=5.0.7 <6.0.0",
+  "_npmVersion": "2.11.3",
+  "_nodeVersion": "0.12.7",
+  "_npmUser": {
+    "name": "shazron",
+    "email": "[email protected]"
+  },
+  "dist": {
+    "shasum": "20520bbcfdadb0b0cb08690b90969b6e60a9a796",
+    "tarball": 
"http://visustar.francelab.fr.ibm.com:8081/nexus/content/groups/mobile-npm-all/ios-sim/-/ios-sim-5.0.8.tgz";
+  },
   "maintainers": [
     {
-      "email": "[email protected]",
-      "name": "macdonst"
+      "name": "macdonst",
+      "email": "[email protected]"
     },
     {
-      "email": "[email protected]",
-      "name": "purplecabbage"
+      "name": "purplecabbage",
+      "email": "[email protected]"
     },
     {
-      "email": "[email protected]",
-      "name": "shazron"
+      "name": "shazron",
+      "email": "[email protected]"
     },
     {
-      "email": "[email protected]",
-      "name": "stevegill"
+      "name": "stevegill",
+      "email": "[email protected]"
     }
   ],
-  "name": "ios-sim",
-  "optionalDependencies": {},
-  "preferGlobal": "true",
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/phonegap/ios-sim.git";
+  "_npmOperationalInternal": {
+    "host": "packages-12-west.internal.npmjs.com",
+    "tmp": "tmp/ios-sim-5.0.8.tgz_1458757739978_0.3562360794749111"
   },
-  "scripts": {},
-  "version": "5.0.7"
+  "directories": {},
+  "_resolved": 
"http://visustar.francelab.fr.ibm.com:8081/nexus/content/groups/mobile-npm-all/ios-sim/-/ios-sim-5.0.8.tgz";,
+  "readme": "ERROR: No README data found!"
 }

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6394314d/node_modules/ios-sim/src/cli.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/src/cli.js b/node_modules/ios-sim/src/cli.js
index 2b822e4..5746ab4 100644
--- a/node_modules/ios-sim/src/cli.js
+++ b/node_modules/ios-sim/src/cli.js
@@ -45,24 +45,25 @@ function init() {
         );
         process.exit(2);
     }
-};
+}
 
 function cli(inputArgs) {
     
     var knownOpts =
-        { 'version' : Boolean
-        , 'help' : Boolean
-        , 'verbose' : Boolean
-        , 'exit' : Boolean
-        , 'use-gdb' : Boolean
-        , 'uuid' : String
-        , 'env' : String
-        , 'setenv' : String
-        , 'stdout' : path
-        , 'stderr' : path
-        , 'timeout' : Number
-        , 'args' : Array
-        , 'devicetypeid' : String
+        {
+            'version' : Boolean,
+            'help' : Boolean,
+            'verbose' : Boolean,
+            'exit' : Boolean,
+            'use-gdb' : Boolean,
+            'uuid' : String,
+            'env' : String,
+            'setenv' : String,
+            'stdout' : path,
+            'stderr' : path,
+            'timeout' : Number,
+            'args' : Array,
+            'devicetypeid' : String
     };
 
     var shortHands = null;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6394314d/node_modules/ios-sim/src/commands.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/src/commands.js 
b/node_modules/ios-sim/src/commands.js
index 40a86a3..bdbe378 100644
--- a/node_modules/ios-sim/src/commands.js
+++ b/node_modules/ios-sim/src/commands.js
@@ -75,7 +75,7 @@ var command_lib = {
     start : function(args) {
         lib.start(args.devicetypeid);
     }
-}
+};
 
 module.exports = command_lib;
 

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6394314d/node_modules/ios-sim/src/help.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/src/help.js b/node_modules/ios-sim/src/help.js
index 9176d95..4a95e06 100644
--- a/node_modules/ios-sim/src/help.js
+++ b/node_modules/ios-sim/src/help.js
@@ -35,7 +35,7 @@ function help() {
     } else {
         console.log("Help file missing.");
     }
-};
+}
 
 module.exports = help;
 

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6394314d/node_modules/ios-sim/src/lib.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/src/lib.js b/node_modules/ios-sim/src/lib.js
index 20cdb2e..834a09f 100644
--- a/node_modules/ios-sim/src/lib.js
+++ b/node_modules/ios-sim/src/lib.js
@@ -27,7 +27,8 @@ var path = require('path'),
     help = require('./help'),
     util = require('util'),
     simctl,
-    bplist;
+       bplist,
+       plist;
     
 function findFirstAvailableDevice(list) {
     /*
@@ -167,7 +168,7 @@ function getDeviceFromDeviceTypeId(devicetypeid) {
     
     // check whether devicetype has the 
"com.apple.CoreSimulator.SimDeviceType." prefix, if not, add it
     var prefix = 'com.apple.CoreSimulator.SimDeviceType.';
-    if (devicetype.indexOf(prefix) != 0) {
+    if (devicetype.indexOf(prefix) !== 0) {
         devicetype = prefix + devicetype;
     }
     
@@ -260,18 +261,19 @@ var lib = {
             name_id_map[ device.name ] = device.id;
         });
         
-        var list = [];
+        list = [];
+        var remove = function(runtime){
+            // remove "iOS" prefix in runtime, remove prefix 
"com.apple.CoreSimulator.SimDeviceType." in id
+            list.push(util.format("%s, %s", name_id_map[ deviceName 
].replace(/^com.apple.CoreSimulator.SimDeviceType./, ''), runtime.replace(/^iOS 
/, '')));
+        };
+
         for (var deviceName in druntimes) {
             var runtimes = druntimes[ deviceName ];
             
             if (!(deviceName in name_id_map)) {
                 continue;
             }
-            
-            runtimes.forEach(function(runtime){
-                // remove "iOS" prefix in runtime, remove prefix 
"com.apple.CoreSimulator.SimDeviceType." in id
-                list.push(util.format("%s, %s", name_id_map[ deviceName 
].replace(/^com.apple.CoreSimulator.SimDeviceType./, ''), runtime.replace(/^iOS 
/, '')));
-            });
+            runtimes.forEach(remove);
         }
         return list;
     },
@@ -287,17 +289,18 @@ var lib = {
             name_id_map[ device.name ] = device.id;
         });
         
+        var remove = function(runtime){
+                // remove "iOS" prefix in runtime, remove prefix 
"com.apple.CoreSimulator.SimDeviceType." in id
+                console.log(util.format("%s, %s", name_id_map[ deviceName 
].replace(/^com.apple.CoreSimulator.SimDeviceType./, ''), runtime.replace(/^iOS 
/, '')));
+        };
+        
         for (var deviceName in druntimes) {
             var runtimes = druntimes[ deviceName ];
             
             if (!(deviceName in name_id_map)) {
                 continue;
             }
-            
-            runtimes.forEach(function(runtime){
-                // remove "iOS" prefix in runtime, remove prefix 
"com.apple.CoreSimulator.SimDeviceType." in id
-                console.log(util.format("%s, %s", name_id_map[ deviceName 
].replace(/^com.apple.CoreSimulator.SimDeviceType./, ''), runtime.replace(/^iOS 
/, '')));
-            });
+            runtimes.forEach(remove);
         }
     },
     
@@ -315,11 +318,21 @@ var lib = {
         bplist.parseFile(info_plist_path, function(err, obj) {
           
             if (err) {
-              throw err;
-            }
+                               // try to see if a regular plist parser will 
work
+                       if (!plist) {
+                           plist = require('plist');
+                       }
+                               obj = 
plist.parse(fs.readFileSync(info_plist_path, 'utf8'));
+                               if (obj) {
+                                 app_identifier = obj.CFBundleIdentifier;
+                               } else {
+                                 throw err;
+                               }
+            } else {
+                       app_identifier = obj[0].CFBundleIdentifier;
+                       }
 
-            app_identifier = obj[0].CFBundleIdentifier;
-            argv = argv || [];
+             argv = argv || [];
 
             // get the deviceid from --devicetypeid
             // --devicetypeid is a string in the form "devicetype, 
runtime_version" (optional: runtime_version)
@@ -386,7 +399,7 @@ var lib = {
 
         simctl.extensions.start(device.id);
     }
-}
+};
 
 module.exports = lib;
 

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6394314d/node_modules/nopt/package.json
----------------------------------------------------------------------
diff --git a/node_modules/nopt/package.json b/node_modules/nopt/package.json
index bd56e02..c758434 100644
--- a/node_modules/nopt/package.json
+++ b/node_modules/nopt/package.json
@@ -1,88 +1,38 @@
 {
-  "_args": [
-    [
-      "nopt@^3.0.6",
-      "/Users/omefire/Projects/cordova-ios"
-    ]
-  ],
-  "_from": "nopt@>=3.0.6 <4.0.0",
-  "_id": "[email protected]",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/nopt",
-  "_nodeVersion": "4.2.1",
-  "_npmUser": {
-    "email": "[email protected]",
-    "name": "othiym23"
-  },
-  "_npmVersion": "2.14.10",
-  "_phantomChildren": {},
-  "_requested": {
-    "name": "nopt",
-    "raw": "nopt@^3.0.6",
-    "rawSpec": "^3.0.6",
-    "scope": null,
-    "spec": ">=3.0.6 <4.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/"
-  ],
-  "_resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz";,
-  "_shasum": "c6465dbf08abcd4db359317f79ac68a646b28ff9",
-  "_shrinkwrap": null,
-  "_spec": "nopt@^3.0.6",
-  "_where": "/Users/omefire/Projects/cordova-ios",
+  "name": "nopt",
+  "version": "3.0.6",
+  "description": "Option parsing for Node, supporting types, shorthands, etc. 
Used by npm.",
   "author": {
-    "email": "[email protected]",
     "name": "Isaac Z. Schlueter",
+    "email": "[email protected]",
     "url": "http://blog.izs.me/";
   },
+  "main": "lib/nopt.js",
+  "scripts": {
+    "test": "tap test/*.js"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/npm/nopt.git";
+  },
   "bin": {
     "nopt": "./bin/nopt.js"
   },
-  "bugs": {
-    "url": "https://github.com/npm/nopt/issues";
-  },
+  "license": "ISC",
   "dependencies": {
     "abbrev": "1"
   },
-  "description": "Option parsing for Node, supporting types, shorthands, etc. 
Used by npm.",
   "devDependencies": {
     "tap": "^1.2.0"
   },
-  "directories": {},
-  "dist": {
-    "shasum": "c6465dbf08abcd4db359317f79ac68a646b28ff9",
-    "tarball": "http://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz";
+  "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 
hit the limit of your frustration just trying to\nmanage them all, and defer it 
with duct-tape solutions until you see\nexactly to the core of the problem, and 
finally snap and write an\nawesome 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                    , \"many1\" : [String, 
Array]\n                    , \"many2\" : [path]\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, proces
 s.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 -fp # unknown opts are ok.\n{ blatzk: true, flag: true, 
pick: true }\n\n$ node my-program.js --blatzk=1000 -fp # but you need to use = 
if they have a value\n{ blatzk: 1000, 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 r
 esolved.\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 
--many1 5 --many1 null --many1 foo\n{ many1: [\"5\", \"null\", \"foo\"] }\n\n$ 
node my-program.js --many2 foo --many2 bar\n{ many2: [\"/path/to/foo\", 
\"path/to/bar\"] }\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\ninterpr
 eted as their JavaScript equivalents.\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.  When types are ordered, 
this implies a\npreference, and the first type that can be used to properly 
interpret\nthe value will be used.\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
  values for\nknown options 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",
+  "readmeFilename": "README.md",
+  "bugs": {
+    "url": "https://github.com/npm/nopt/issues";
   },
-  "gitHead": "10a750c9bb99c1950160353459e733ac2aa18cb6",
   "homepage": "https://github.com/npm/nopt#readme";,
-  "license": "ISC",
-  "main": "lib/nopt.js",
-  "maintainers": [
-    {
-      "email": "[email protected]",
-      "name": "isaacs"
-    },
-    {
-      "email": "[email protected]",
-      "name": "othiym23"
-    },
-    {
-      "email": "[email protected]",
-      "name": "zkat"
-    }
-  ],
-  "name": "nopt",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/npm/nopt.git";
-  },
-  "scripts": {
-    "test": "tap test/*.js"
-  },
-  "version": "3.0.6"
+  "_id": "[email protected]",
+  "_shasum": "c6465dbf08abcd4db359317f79ac68a646b28ff9",
+  "_resolved": 
"http://visustar.francelab.fr.ibm.com:8081/nexus/content/groups/mobile-npm-all/nopt/-/nopt-3.0.6.tgz";,
+  "_from": "nopt@>=3.0.6 <4.0.0"
 }

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6394314d/node_modules/plist/package.json
----------------------------------------------------------------------
diff --git a/node_modules/plist/package.json b/node_modules/plist/package.json
index 28a0107..fd05954 100644
--- a/node_modules/plist/package.json
+++ b/node_modules/plist/package.json
@@ -1,57 +1,22 @@
 {
-  "_args": [
-    [
-      "plist@^1.2.0",
-      "/Users/omefire/Projects/cordova-ios"
-    ]
-  ],
-  "_from": "plist@>=1.2.0 <2.0.0",
-  "_id": "[email protected]",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/plist",
-  "_nodeVersion": "5.0.0",
-  "_npmUser": {
-    "email": "[email protected]",
-    "name": "mreinstein"
-  },
-  "_npmVersion": "3.3.11",
-  "_phantomChildren": {},
-  "_requested": {
-    "name": "plist",
-    "raw": "plist@^1.2.0",
-    "rawSpec": "^1.2.0",
-    "scope": null,
-    "spec": ">=1.2.0 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/",
-    "/cordova-common"
-  ],
-  "_resolved": "https://registry.npmjs.org/plist/-/plist-1.2.0.tgz";,
-  "_shasum": "084b5093ddc92506e259f874b8d9b1afb8c79593",
-  "_shrinkwrap": null,
-  "_spec": "plist@^1.2.0",
-  "_where": "/Users/omefire/Projects/cordova-ios",
+  "name": "plist",
+  "description": "Mac OS X Plist parser/builder for Node.js and browsers",
+  "version": "1.2.0",
   "author": {
-    "email": "[email protected]",
-    "name": "Nathan Rajlich"
-  },
-  "bugs": {
-    "url": "https://github.com/TooTallNate/node-plist/issues";
+    "name": "Nathan Rajlich",
+    "email": "[email protected]"
   },
   "contributors": [
     {
-      "email": "[email protected]",
-      "name": "Hans Huebner"
+      "name": "Hans Huebner",
+      "email": "[email protected]"
     },
     {
       "name": "Pierre Metrailler"
     },
     {
-      "email": "[email protected]",
-      "name": "Mike Reinstein"
+      "name": "Mike Reinstein",
+      "email": "[email protected]"
     },
     {
       "name": "Vladimir Tsvang"
@@ -60,59 +25,68 @@
       "name": "Mathieu D'Amours"
     }
   ],
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/TooTallNate/node-plist.git"
+  },
+  "license": "MIT",
+  "keywords": [
+    "apple",
+    "browser",
+    "mac",
+    "plist",
+    "parser",
+    "xml"
+  ],
+  "main": "lib/plist.js",
   "dependencies": {
     "base64-js": "0.0.8",
-    "util-deprecate": "1.0.2",
     "xmlbuilder": "4.0.0",
-    "xmldom": "0.1.x"
+    "xmldom": "0.1.x",
+    "util-deprecate": "1.0.2"
   },
-  "description": "Mac OS X Plist parser/builder for Node.js and browsers",
   "devDependencies": {
     "browserify": "12.0.1",
     "mocha": "2.3.3",
     "multiline": "1.0.2",
     "zuul": "3.7.2"
   },
-  "directories": {},
-  "dist": {
-    "shasum": "084b5093ddc92506e259f874b8d9b1afb8c79593",
-    "tarball": "http://registry.npmjs.org/plist/-/plist-1.2.0.tgz";
+  "scripts": {
+    "test": "make test"
   },
   "gitHead": "69520574f27864145192338b72e608fbe1bda6f7",
+  "bugs": {
+    "url": "https://github.com/TooTallNate/node-plist/issues";
+  },
   "homepage": "https://github.com/TooTallNate/node-plist#readme";,
-  "keywords": [
-    "apple",
-    "browser",
-    "mac",
-    "plist",
-    "parser",
-    "xml"
-  ],
-  "license": "MIT",
-  "main": "lib/plist.js",
+  "_id": "[email protected]",
+  "_shasum": "084b5093ddc92506e259f874b8d9b1afb8c79593",
+  "_from": "plist@>=1.2.0 <2.0.0",
+  "_npmVersion": "3.3.11",
+  "_nodeVersion": "5.0.0",
+  "_npmUser": {
+    "name": "mreinstein",
+    "email": "[email protected]"
+  },
+  "dist": {
+    "shasum": "084b5093ddc92506e259f874b8d9b1afb8c79593",
+    "tarball": 
"http://visustar.francelab.fr.ibm.com:8081/nexus/content/groups/mobile-npm-all/plist/-/plist-1.2.0.tgz";
+  },
   "maintainers": [
     {
-      "email": "[email protected]",
-      "name": "TooTallNate"
+      "name": "TooTallNate",
+      "email": "[email protected]"
     },
     {
-      "email": "[email protected]",
-      "name": "tootallnate"
+      "name": "tootallnate",
+      "email": "[email protected]"
     },
     {
-      "email": "[email protected]",
-      "name": "mreinstein"
+      "name": "mreinstein",
+      "email": "[email protected]"
     }
   ],
-  "name": "plist",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/TooTallNate/node-plist.git"
-  },
-  "scripts": {
-    "test": "make test"
-  },
-  "version": "1.2.0"
+  "directories": {},
+  "_resolved": 
"http://visustar.francelab.fr.ibm.com:8081/nexus/content/groups/mobile-npm-all/plist/-/plist-1.2.0.tgz";,
+  "readme": "ERROR: No README data found!"
 }

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6394314d/node_modules/q/package.json
----------------------------------------------------------------------
diff --git a/node_modules/q/package.json b/node_modules/q/package.json
index 0f2bc57..0af055d 100644
--- a/node_modules/q/package.json
+++ b/node_modules/q/package.json
@@ -1,66 +1,66 @@
 {
-  "_args": [
-    [
-      "q@^1.4.1",
-      "/Users/omefire/Projects/cordova-ios"
-    ]
-  ],
-  "_from": "q@>=1.4.1 <2.0.0",
-  "_id": "[email protected]",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/q",
-  "_nodeVersion": "1.8.1",
-  "_npmUser": {
-    "email": "[email protected]",
-    "name": "kriskowal"
-  },
-  "_npmVersion": "2.8.3",
-  "_phantomChildren": {},
-  "_requested": {
-    "name": "q",
-    "raw": "q@^1.4.1",
-    "rawSpec": "^1.4.1",
-    "scope": null,
-    "spec": ">=1.4.1 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/",
-    "/cordova-common"
-  ],
-  "_resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz";,
-  "_shasum": "55705bcd93c5f3673530c2c2cbc0c2b3addc286e",
-  "_shrinkwrap": null,
-  "_spec": "q@^1.4.1",
-  "_where": "/Users/omefire/Projects/cordova-ios",
+  "name": "q",
+  "version": "1.4.1",
+  "description": "A library for promises (CommonJS/Promises/A,B,D)",
+  "homepage": "https://github.com/kriskowal/q";,
   "author": {
-    "email": "[email protected]",
     "name": "Kris Kowal",
+    "email": "[email protected]",
     "url": "https://github.com/kriskowal";
   },
-  "bugs": {
-    "url": "http://github.com/kriskowal/q/issues";
-  },
+  "keywords": [
+    "q",
+    "promise",
+    "promises",
+    "promises-a",
+    "promises-aplus",
+    "deferred",
+    "future",
+    "async",
+    "flow control",
+    "fluent",
+    "browser",
+    "node"
+  ],
   "contributors": [
     {
-      "email": "[email protected]",
       "name": "Kris Kowal",
+      "email": "[email protected]",
       "url": "https://github.com/kriskowal";
     },
     {
-      "email": "[email protected]",
       "name": "Irakli Gozalishvili",
+      "email": "[email protected]",
       "url": "http://jeditoolkit.com";
     },
     {
-      "email": "[email protected]",
       "name": "Domenic Denicola",
+      "email": "[email protected]",
       "url": "http://domenicdenicola.com";
     }
   ],
+  "bugs": {
+    "url": "http://github.com/kriskowal/q/issues";
+  },
+  "license": {
+    "type": "MIT",
+    "url": "http://github.com/kriskowal/q/raw/master/LICENSE";
+  },
+  "main": "q.js",
+  "files": [
+    "LICENSE",
+    "q.js",
+    "queue.js"
+  ],
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/kriskowal/q.git"
+  },
+  "engines": {
+    "node": ">=0.6.0",
+    "teleport": ">=0.2.0"
+  },
   "dependencies": {},
-  "description": "A library for promises (CommonJS/Promises/A,B,D)",
   "devDependencies": {
     "cover": "*",
     "grunt": "~0.4.1",
@@ -72,55 +72,15 @@
     "opener": "*",
     "promises-aplus-tests": "1.x"
   },
-  "directories": {
-    "test": "./spec"
-  },
-  "dist": {
-    "shasum": "55705bcd93c5f3673530c2c2cbc0c2b3addc286e",
-    "tarball": "http://registry.npmjs.org/q/-/q-1.4.1.tgz";
-  },
-  "engines": {
-    "node": ">=0.6.0",
-    "teleport": ">=0.2.0"
-  },
-  "files": [
-    "LICENSE",
-    "q.js",
-    "queue.js"
-  ],
-  "gitHead": "d373079d3620152e3d60e82f27265a09ee0e81bd",
-  "homepage": "https://github.com/kriskowal/q";,
-  "keywords": [
-    "q",
-    "promise",
-    "promises",
-    "promises-a",
-    "promises-aplus",
-    "deferred",
-    "future",
-    "async",
-    "flow control",
-    "fluent",
-    "browser",
-    "node"
-  ],
-  "license": {
-    "type": "MIT",
-    "url": "http://github.com/kriskowal/q/raw/master/LICENSE";
+  "scripts": {
+    "test": "jasmine-node spec && promises-aplus-tests spec/aplus-adapter",
+    "test-browser": "opener spec/q-spec.html",
+    "benchmark": "matcha",
+    "lint": "jshint q.js",
+    "cover": "cover run jasmine-node spec && cover report html && opener 
cover_html/index.html",
+    "minify": "grunt",
+    "prepublish": "grunt"
   },
-  "main": "q.js",
-  "maintainers": [
-    {
-      "email": "[email protected]",
-      "name": "kriskowal"
-    },
-    {
-      "email": "[email protected]",
-      "name": "domenic"
-    }
-  ],
-  "name": "q",
-  "optionalDependencies": {},
   "overlay": {
     "teleport": {
       "dependencies": {
@@ -128,19 +88,13 @@
       }
     }
   },
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/kriskowal/q.git"
-  },
-  "scripts": {
-    "benchmark": "matcha",
-    "cover": "cover run jasmine-node spec && cover report html && opener 
cover_html/index.html",
-    "lint": "jshint q.js",
-    "minify": "grunt",
-    "prepublish": "grunt",
-    "test": "jasmine-node spec && promises-aplus-tests spec/aplus-adapter",
-    "test-browser": "opener spec/q-spec.html"
+  "directories": {
+    "test": "./spec"
   },
-  "version": "1.4.1"
+  "readme": "[![Build 
Status](https://secure.travis-ci.org/kriskowal/q.png?branch=master)](http://travis-ci.org/kriskowal/q)\n\n<a
 href=\"http://promises-aplus.github.com/promises-spec\";>\n    <img 
src=\"http://kriskowal.github.io/q/q.png\"\n         align=\"right\" alt=\"Q 
logo\" />\n</a>\n\n*This is Q version 1, from the `v1` branch in Git. This 
documentation applies to\nthe latest of both the version 1 and version 0.9 
release trains. These releases\nare stable. There will be no further releases 
of 0.9 after 0.9.7 which is nearly\nequivalent to version 1.0.0. All further 
releases of `q@~1.0` will be backward\ncompatible. The version 2 release train 
introduces significant and\nbackward-incompatible changes and is experimental 
at this time.*\n\nIf a function cannot return a value or throw an exception 
without\nblocking, it can return a promise instead.  A promise is an 
object\nthat represents the return value or the thrown exception that 
the\nfunction may eventually provide.  A prom
 ise can also be used as a\nproxy for a [remote object][Q-Connection] to 
overcome latency.\n\n[Q-Connection]: 
https://github.com/kriskowal/q-connection\n\nOn the first pass, promises can 
mitigate the “[Pyramid of\nDoom][POD]”: the situation where code marches to 
the right faster\nthan it marches forward.\n\n[POD]: 
http://calculist.org/blog/2011/12/14/why-coroutines-wont-work-on-the-web/\n\n```javascript\nstep1(function
 (value1) {\n    step2(value1, function(value2) {\n        step3(value2, 
function(value3) {\n            step4(value3, function(value4) {\n              
  // Do something with value4\n            });\n        });\n    
});\n});\n```\n\nWith a promise library, you can flatten the 
pyramid.\n\n```javascript\nQ.fcall(promisedStep1)\n.then(promisedStep2)\n.then(promisedStep3)\n.then(promisedStep4)\n.then(function
 (value4) {\n    // Do something with value4\n})\n.catch(function (error) {\n   
 // Handle any error from all above steps\n})\n.done();\n```\n\nWith this 
approach
 , you also get implicit error propagation, just like `try`,\n`catch`, and 
`finally`.  An error in `promisedStep1` will flow all the way to\nthe `catch` 
function, where it’s caught and handled.  (Here `promisedStepN` is\na version 
of `stepN` that returns a promise.)\n\nThe callback approach is called an 
“inversion of control”.\nA function that accepts a callback instead of a 
return value\nis saying, “Don’t call me, I’ll call you.”.  
Promises\n[un-invert][IOC] the inversion, cleanly separating the 
input\narguments from control flow arguments.  This simplifies the\nuse and 
creation of API’s, particularly variadic,\nrest and spread 
arguments.\n\n[IOC]: 
http://www.slideshare.net/domenicdenicola/callbacks-promises-and-coroutines-oh-my-the-evolution-of-asynchronicity-in-javascript\n\n\n##
 Getting Started\n\nThe Q module can be loaded as:\n\n-   A ``<script>`` tag 
(creating a ``Q`` global variable): ~2.5 KB minified and\n    gzipped.\n-   A 
Node.js and CommonJS module, avail
 able in [npm](https://npmjs.org/) as\n    the [q](https://npmjs.org/package/q) 
package\n-   An AMD module\n-   A 
[component](https://github.com/component/component) as ``microjs/q``\n-   Using 
[bower](http://bower.io/) as `q#1.0.1`\n-   Using [NuGet](http://nuget.org/) as 
[Q](https://nuget.org/packages/q)\n\nQ can exchange promises with jQuery, Dojo, 
When.js, WinJS, and more.\n\n## Resources\n\nOur [wiki][] contains a number of 
useful resources, including:\n\n- A method-by-method [Q API 
reference][reference].\n- A growing [examples gallery][examples], showing how Q 
can be used to make\n  everything better. From XHR to database access to 
accessing the Flickr API,\n  Q is there for you.\n- There are many libraries 
that produce and consume Q promises for everything\n  from file system/database 
access or RPC to templating. For a list of some of\n  the more popular ones, 
see [Libraries][].\n- If you want materials that introduce the promise concept 
generally, and the\n  below tutorial is
 n't doing it for you, check out our collection of\n  [presentations, blog 
posts, and podcasts][resources].\n- A guide for those [coming from jQuery's 
`$.Deferred`][jquery].\n\nWe'd also love to have you join the Q-Continuum 
[mailing list][].\n\n[wiki]: https://github.com/kriskowal/q/wiki\n[reference]: 
https://github.com/kriskowal/q/wiki/API-Reference\n[examples]: 
https://github.com/kriskowal/q/wiki/Examples-Gallery\n[Libraries]: 
https://github.com/kriskowal/q/wiki/Libraries\n[resources]: 
https://github.com/kriskowal/q/wiki/General-Promise-Resources\n[jquery]: 
https://github.com/kriskowal/q/wiki/Coming-from-jQuery\n[mailing list]: 
https://groups.google.com/forum/#!forum/q-continuum\n\n\n## 
Tutorial\n\nPromises have a ``then`` method, which you can use to get the 
eventual\nreturn value (fulfillment) or thrown exception 
(rejection).\n\n```javascript\npromiseMeSomething()\n.then(function (value) 
{\n}, function (reason) {\n});\n```\n\nIf ``promiseMeSomething`` returns a 
promise that gets
  fulfilled later\nwith a return value, the first function (the fulfillment 
handler) will be\ncalled with the value.  However, if the 
``promiseMeSomething`` function\ngets rejected later by a thrown exception, the 
second function (the\nrejection handler) will be called with the 
exception.\n\nNote that resolution of a promise is always asynchronous: that 
is, the\nfulfillment or rejection handler will always be called in the next 
turn of the\nevent loop (i.e. `process.nextTick` in Node). This gives you a 
nice\nguarantee when mentally tracing the flow of your code, namely 
that\n``then`` will always return before either handler is executed.\n\nIn this 
tutorial, we begin with how to consume and work with promises. We'll\ntalk 
about how to create them, and thus create functions like\n`promiseMeSomething` 
that return promises, [below](#the-beginning).\n\n\n### Propagation\n\nThe 
``then`` method returns a promise, which in this example, I’m\nassigning to 
``outputPromise``.\n\n```javascript
 \nvar outputPromise = getInputPromise()\n.then(function (input) {\n}, function 
(reason) {\n});\n```\n\nThe ``outputPromise`` variable becomes a new promise 
for the return\nvalue of either handler.  Since a function can only either 
return a\nvalue or throw an exception, only one handler will ever be called and 
it\nwill be responsible for resolving ``outputPromise``.\n\n-   If you return a 
value in a handler, ``outputPromise`` will get\n    fulfilled.\n\n-   If you 
throw an exception in a handler, ``outputPromise`` will get\n    rejected.\n\n- 
  If you return a **promise** in a handler, ``outputPromise`` will\n    
“become” that promise.  Being able to become a new promise is useful\n    
for managing delays, combining results, or recovering from errors.\n\nIf the 
``getInputPromise()`` promise gets rejected and you omit the\nrejection 
handler, the **error** will go to ``outputPromise``:\n\n```javascript\nvar 
outputPromise = getInputPromise()\n.then(function (value) {\n});\n```\n\nIf
  the input promise gets fulfilled and you omit the fulfillment handler, 
the\n**value** will go to ``outputPromise``:\n\n```javascript\nvar 
outputPromise = getInputPromise()\n.then(null, function (error) 
{\n});\n```\n\nQ promises provide a ``fail`` shorthand for ``then`` when you 
are only\ninterested in handling the error:\n\n```javascript\nvar outputPromise 
= getInputPromise()\n.fail(function (error) {\n});\n```\n\nIf you are writing 
JavaScript for modern engines only or using\nCoffeeScript, you may use `catch` 
instead of `fail`.\n\nPromises also have a ``fin`` function that is like a 
``finally`` clause.\nThe final handler gets called, with no arguments, when the 
promise\nreturned by ``getInputPromise()`` either returns a value or throws 
an\nerror.  The value returned or error thrown by ``getInputPromise()``\npasses 
directly to ``outputPromise`` unless the final handler fails, and\nmay be 
delayed if the final handler returns a promise.\n\n```javascript\nvar 
outputPromise = getInputP
 romise()\n.fin(function () {\n    // close files, database connections, stop 
servers, conclude tests\n});\n```\n\n-   If the handler returns a value, the 
value is ignored\n-   If the handler throws an error, the error passes to 
``outputPromise``\n-   If the handler returns a promise, ``outputPromise`` gets 
postponed.  The\n    eventual value or error has the same effect as an 
immediate return\n    value or thrown error: a value would be ignored, an error 
would be\n    forwarded.\n\nIf you are writing JavaScript for modern engines 
only or using\nCoffeeScript, you may use `finally` instead of `fin`.\n\n### 
Chaining\n\nThere are two ways to chain promises.  You can chain promises 
either\ninside or outside handlers.  The next two examples are 
equivalent.\n\n```javascript\nreturn getUsername()\n.then(function (username) 
{\n    return getUser(username)\n    .then(function (user) {\n        // if we 
get here without an error,\n        // the value returned here\n        // or 
the exception
  thrown here\n        // resolves the promise returned\n        // by the 
first line\n    })\n});\n```\n\n```javascript\nreturn 
getUsername()\n.then(function (username) {\n    return 
getUser(username);\n})\n.then(function (user) {\n    // if we get here without 
an error,\n    // the value returned here\n    // or the exception thrown 
here\n    // resolves the promise returned\n    // by the first 
line\n});\n```\n\nThe only difference is nesting.  It’s useful to nest 
handlers if you\nneed to capture multiple input values in your 
closure.\n\n```javascript\nfunction authenticate() {\n    return 
getUsername()\n    .then(function (username) {\n        return 
getUser(username);\n    })\n    // chained because we will not need the user 
name in the next event\n    .then(function (user) {\n        return 
getPassword()\n        // nested because we need both user and password next\n  
      .then(function (password) {\n            if (user.passwordHash !== 
hash(password)) {\n                
 throw new Error(\"Can't authenticate\");\n            }\n        });\n    
});\n}\n```\n\n\n### Combination\n\nYou can turn an array of promises into a 
promise for the whole,\nfulfilled array using ``all``.\n\n```javascript\nreturn 
Q.all([\n    eventualAdd(2, 2),\n    eventualAdd(10, 20)\n]);\n```\n\nIf you 
have a promise for an array, you can use ``spread`` as a\nreplacement for 
``then``.  The ``spread`` function “spreads” the\nvalues over the arguments 
of the fulfillment handler.  The rejection handler\nwill get called at the 
first sign of failure.  That is, whichever of\nthe received promises fails 
first gets handled by the rejection handler.\n\n```javascript\nfunction 
eventualAdd(a, b) {\n    return Q.spread([a, b], function (a, b) {\n        
return a + b;\n    })\n}\n```\n\nBut ``spread`` calls ``all`` initially, so you 
can skip it in chains.\n\n```javascript\nreturn getUsername()\n.then(function 
(username) {\n    return [username, getUser(username)];\n})\n.spread(function (
 username, user) {\n});\n```\n\nThe ``all`` function returns a promise for an 
array of values.  When this\npromise is fulfilled, the array contains the 
fulfillment values of the original\npromises, in the same order as those 
promises.  If one of the given promises\nis rejected, the returned promise is 
immediately rejected, not waiting for the\nrest of the batch.  If you want to 
wait for all of the promises to either be\nfulfilled or rejected, you can use 
``allSettled``.\n\n```javascript\nQ.allSettled(promises)\n.then(function 
(results) {\n    results.forEach(function (result) {\n        if (result.state 
=== \"fulfilled\") {\n            var value = result.value;\n        } else {\n 
           var reason = result.reason;\n        }\n    });\n});\n```\n\nThe 
``any`` function accepts an array of promises and returns a promise that 
is\nfulfilled by the first given promise to be fulfilled, or rejected if all of 
the\ngiven promises are rejected.\n\n```javascript\nQ.any(promises)\n.then(fun
 ction (first) {\n    // Any of the promises was fulfilled.\n}, function 
(error) {\n    // All of the promises were rejected.\n});\n```\n\n### 
Sequences\n\nIf you have a number of promise-producing functions that need\nto 
be run sequentially, you can of course do so manually:\n\n```javascript\nreturn 
foo(initialVal).then(bar).then(baz).then(qux);\n```\n\nHowever, if you want to 
run a dynamically constructed sequence of\nfunctions, you'll want something 
like this:\n\n```javascript\nvar funcs = [foo, bar, baz, qux];\n\nvar result = 
Q(initialVal);\nfuncs.forEach(function (f) {\n    result = 
result.then(f);\n});\nreturn result;\n```\n\nYou can make this slightly more 
compact using `reduce`:\n\n```javascript\nreturn funcs.reduce(function (soFar, 
f) {\n    return soFar.then(f);\n}, Q(initialVal));\n```\n\nOr, you could use 
the ultra-compact version:\n\n```javascript\nreturn funcs.reduce(Q.when, 
Q(initialVal));\n```\n\n### Handling Errors\n\nOne sometimes-unintuive aspect 
of promises is tha
 t if you throw an\nexception in the fulfillment handler, it will not be caught 
by the error\nhandler.\n\n```javascript\nreturn foo()\n.then(function (value) 
{\n    throw new Error(\"Can't bar.\");\n}, function (error) {\n    // We only 
get here if \"foo\" fails\n});\n```\n\nTo see why this is, consider the 
parallel between promises and\n``try``/``catch``. We are ``try``-ing to execute 
``foo()``: the error\nhandler represents a ``catch`` for ``foo()``, while the 
fulfillment handler\nrepresents code that happens *after* the ``try``/``catch`` 
block.\nThat code then needs its own ``try``/``catch`` block.\n\nIn terms of 
promises, this means chaining your rejection handler:\n\n```javascript\nreturn 
foo()\n.then(function (value) {\n    throw new Error(\"Can't 
bar.\");\n})\n.fail(function (error) {\n    // We get here with either foo's 
error or bar's error\n});\n```\n\n### Progress Notification\n\nIt's possible 
for promises to report their progress, e.g. for tasks that take a\nlong time lik
 e a file upload. Not all promises will implement progress\nnotifications, but 
for those that do, you can consume the progress values using\na third parameter 
to ``then``:\n\n```javascript\nreturn uploadFile()\n.then(function () {\n    // 
Success uploading the file\n}, function (err) {\n    // There was an error, and 
we get the reason for error\n}, function (progress) {\n    // We get notified 
of the upload's progress as it is executed\n});\n```\n\nLike `fail`, Q also 
provides a shorthand for progress callbacks\ncalled 
`progress`:\n\n```javascript\nreturn uploadFile().progress(function (progress) 
{\n    // We get notified of the upload's progress\n});\n```\n\n### The 
End\n\nWhen you get to the end of a chain of promises, you should 
either\nreturn the last promise or end the chain.  Since handlers 
catch\nerrors, it’s an unfortunate pattern that the exceptions can 
go\nunobserved.\n\nSo, either return it,\n\n```javascript\nreturn 
foo()\n.then(function () {\n    return \"bar\";\n});\n`
 ``\n\nOr, end it.\n\n```javascript\nfoo()\n.then(function () {\n    return 
\"bar\";\n})\n.done();\n```\n\nEnding a promise chain makes sure that, if an 
error doesn’t get\nhandled before the end, it will get rethrown and 
reported.\n\nThis is a stopgap. We are exploring ways to make unhandled 
errors\nvisible without any explicit handling.\n\n\n### The 
Beginning\n\nEverything above assumes you get a promise from somewhere else.  
This\nis the common case.  Every once in a while, you will need to create 
a\npromise from scratch.\n\n#### Using ``Q.fcall``\n\nYou can create a promise 
from a value using ``Q.fcall``.  This returns a\npromise for 
10.\n\n```javascript\nreturn Q.fcall(function () {\n    return 
10;\n});\n```\n\nYou can also use ``fcall`` to get a promise for an 
exception.\n\n```javascript\nreturn Q.fcall(function () {\n    throw new 
Error(\"Can't do it\");\n});\n```\n\nAs the name implies, ``fcall`` can call 
functions, or even promised\nfunctions.  This uses the ``eventualAdd``
  function above to add two\nnumbers.\n\n```javascript\nreturn 
Q.fcall(eventualAdd, 2, 2);\n```\n\n\n#### Using Deferreds\n\nIf you have to 
interface with asynchronous functions that are callback-based\ninstead of 
promise-based, Q provides a few shortcuts (like ``Q.nfcall`` and\nfriends). But 
much of the time, the solution will be to use 
*deferreds*.\n\n```javascript\nvar deferred = 
Q.defer();\nFS.readFile(\"foo.txt\", \"utf-8\", function (error, text) {\n    
if (error) {\n        deferred.reject(new Error(error));\n    } else {\n        
deferred.resolve(text);\n    }\n});\nreturn deferred.promise;\n```\n\nNote that 
a deferred can be resolved with a value or a promise.  The\n``reject`` function 
is a shorthand for resolving with a rejected\npromise.\n\n```javascript\n// 
this:\ndeferred.reject(new Error(\"Can't do it\"));\n\n// is shorthand 
for:\nvar rejection = Q.fcall(function () {\n    throw new Error(\"Can't do 
it\");\n});\ndeferred.resolve(rejection);\n```\n\nThis is a simplified 
 implementation of ``Q.delay``.\n\n```javascript\nfunction delay(ms) {\n    var 
deferred = Q.defer();\n    setTimeout(deferred.resolve, ms);\n    return 
deferred.promise;\n}\n```\n\nThis is a simplified implementation of 
``Q.timeout``\n\n```javascript\nfunction timeout(promise, ms) {\n    var 
deferred = Q.defer();\n    Q.when(promise, deferred.resolve);\n    
delay(ms).then(function () {\n        deferred.reject(new Error(\"Timed 
out\"));\n    });\n    return deferred.promise;\n}\n```\n\nFinally, you can 
send a progress notification to the promise with\n``deferred.notify``.\n\nFor 
illustration, this is a wrapper for XML HTTP requests in the browser. 
Note\nthat a more [thorough][XHR] implementation would be in order in 
practice.\n\n[XHR]: 
https://github.com/montagejs/mr/blob/71e8df99bb4f0584985accd6f2801ef3015b9763/browser.js#L29-L73\n\n```javascript\nfunction
 requestOkText(url) {\n    var request = new XMLHttpRequest();\n    var 
deferred = Q.defer();\n\n    request.open(\"GET\", url, 
 true);\n    request.onload = onload;\n    request.onerror = onerror;\n    
request.onprogress = onprogress;\n    request.send();\n\n    function onload() 
{\n        if (request.status === 200) {\n            
deferred.resolve(request.responseText);\n        } else {\n            
deferred.reject(new Error(\"Status code was \" + request.status));\n        }\n 
   }\n\n    function onerror() {\n        deferred.reject(new Error(\"Can't XHR 
\" + JSON.stringify(url)));\n    }\n\n    function onprogress(event) {\n        
deferred.notify(event.loaded / event.total);\n    }\n\n    return 
deferred.promise;\n}\n```\n\nBelow is an example of how to use this 
``requestOkText`` 
function:\n\n```javascript\nrequestOkText(\"http://localhost:3000\";)\n.then(function
 (responseText) {\n    // If the HTTP response returns 200 OK, log the response 
text.\n    console.log(responseText);\n}, function (error) {\n    // If there's 
an error or a non-200 status code, log the error.\n    
console.error(error);\n}, fu
 nction (progress) {\n    // Log the progress as it comes in.\n    
console.log(\"Request progress: \" + Math.round(progress * 100) + 
\"%\");\n});\n```\n\n#### Using `Q.Promise`\n\nThis is an alternative 
promise-creation API that has the same power as\nthe deferred concept, but 
without introducing another conceptual entity.\n\nRewriting the `requestOkText` 
example above using `Q.Promise`:\n\n```javascript\nfunction requestOkText(url) 
{\n    return Q.Promise(function(resolve, reject, notify) {\n        var 
request = new XMLHttpRequest();\n\n        request.open(\"GET\", url, true);\n  
      request.onload = onload;\n        request.onerror = onerror;\n        
request.onprogress = onprogress;\n        request.send();\n\n        function 
onload() {\n            if (request.status === 200) {\n                
resolve(request.responseText);\n            } else {\n                
reject(new Error(\"Status code was \" + request.status));\n            }\n      
  }\n\n        function onerror()
  {\n            reject(new Error(\"Can't XHR \" + JSON.stringify(url)));\n     
   }\n\n        function onprogress(event) {\n            notify(event.loaded / 
event.total);\n        }\n    });\n}\n```\n\nIf `requestOkText` were to throw 
an exception, the returned promise would be\nrejected with that thrown 
exception as the rejection reason.\n\n### The Middle\n\nIf you are using a 
function that may return a promise, but just might\nreturn a value if it 
doesn’t need to defer, you can use the “static”\nmethods of the Q 
library.\n\nThe ``when`` function is the static equivalent for 
``then``.\n\n```javascript\nreturn Q.when(valueOrPromise, function (value) 
{\n}, function (error) {\n});\n```\n\nAll of the other methods on a promise 
have static analogs with the\nsame name.\n\nThe following are 
equivalent:\n\n```javascript\nreturn Q.all([a, 
b]);\n```\n\n```javascript\nreturn Q.fcall(function () {\n    return [a, 
b];\n})\n.all();\n```\n\nWhen working with promises provided by other lib
 raries, you should\nconvert it to a Q promise.  Not all promise libraries make 
the same\nguarantees as Q and certainly don’t provide all of the same 
methods.\nMost libraries only provide a partially functional ``then`` 
method.\nThis thankfully is all we need to turn them into vibrant Q 
promises.\n\n```javascript\nreturn Q($.ajax(...))\n.then(function () 
{\n});\n```\n\nIf there is any chance that the promise you receive is not a Q 
promise\nas provided by your library, you should wrap it using a Q 
function.\nYou can even use ``Q.invoke`` as a 
shorthand.\n\n```javascript\nreturn Q.invoke($, 'ajax', ...)\n.then(function () 
{\n});\n```\n\n\n### Over the Wire\n\nA promise can serve as a proxy for 
another object, even a remote\nobject.  There are methods that allow you to 
optimistically manipulate\nproperties or call functions.  All of these 
interactions return\npromises, so they can be chained.\n\n```\ndirect 
manipulation         using a promise as a proxy\n--------------------------  -
 ------------------------------\nvalue.foo                   
promise.get(\"foo\")\nvalue.foo = value           promise.put(\"foo\", 
value)\ndelete value.foo            promise.del(\"foo\")\nvalue.foo(...args)    
      promise.post(\"foo\", [args])\nvalue.foo(...args)          
promise.invoke(\"foo\", ...args)\nvalue(...args)              
promise.fapply([args])\nvalue(...args)              
promise.fcall(...args)\n```\n\nIf the promise is a proxy for a remote object, 
you can shave\nround-trips by using these functions instead of ``then``.  To 
take\nadvantage of promises for remote objects, check out 
[Q-Connection][].\n\n[Q-Connection]: 
https://github.com/kriskowal/q-connection\n\nEven in the case of non-remote 
objects, these methods can be used as\nshorthand for particularly-simple 
fulfillment handlers. For example, you\ncan replace\n\n```javascript\nreturn 
Q.fcall(function () {\n    return [{ foo: \"bar\" }, { foo: \"baz\" 
}];\n})\n.then(function (value) {\n    return value[0].foo;\n})
 ;\n```\n\nwith\n\n```javascript\nreturn Q.fcall(function () {\n    return [{ 
foo: \"bar\" }, { foo: \"baz\" }];\n})\n.get(0)\n.get(\"foo\");\n```\n\n\n### 
Adapting Node\n\nIf you're working with functions that make use of the Node.js 
callback pattern,\nwhere callbacks are in the form of `function(err, result)`, 
Q provides a few\nuseful utility functions for converting between them. The 
most straightforward\nare probably `Q.nfcall` and `Q.nfapply` (\"Node function 
call/apply\") for calling\nNode.js-style functions and getting back a 
promise:\n\n```javascript\nreturn Q.nfcall(FS.readFile, \"foo.txt\", 
\"utf-8\");\nreturn Q.nfapply(FS.readFile, [\"foo.txt\", 
\"utf-8\"]);\n```\n\nIf you are working with methods, instead of simple 
functions, you can easily\nrun in to the usual problems where passing a method 
to another function—like\n`Q.nfcall`—\"un-binds\" the method from its 
owner. To avoid this, you can either\nuse `Function.prototype.bind` or some 
nice shortcut methods we provide
 :\n\n```javascript\nreturn Q.ninvoke(redisClient, \"get\", 
\"user:1:id\");\nreturn Q.npost(redisClient, \"get\", 
[\"user:1:id\"]);\n```\n\nYou can also create reusable wrappers with 
`Q.denodeify` or `Q.nbind`:\n\n```javascript\nvar readFile = 
Q.denodeify(FS.readFile);\nreturn readFile(\"foo.txt\", \"utf-8\");\n\nvar 
redisClientGet = Q.nbind(redisClient.get, redisClient);\nreturn 
redisClientGet(\"user:1:id\");\n```\n\nFinally, if you're working with raw 
deferred objects, there is a\n`makeNodeResolver` method on deferreds that can 
be handy:\n\n```javascript\nvar deferred = Q.defer();\nFS.readFile(\"foo.txt\", 
\"utf-8\", deferred.makeNodeResolver());\nreturn deferred.promise;\n```\n\n### 
Long Stack Traces\n\nQ comes with optional support for “long stack traces,” 
wherein the `stack`\nproperty of `Error` rejection reasons is rewritten to be 
traced along\nasynchronous jumps instead of stopping at the most recent one. As 
an example:\n\n```js\nfunction theDepthsOfMyProgram() {\n  Q.dela
 y(100).done(function explode() {\n    throw new Error(\"boo!\");\n  
});\n}\n\ntheDepthsOfMyProgram();\n```\n\nusually would give a rather unhelpful 
stack trace looking something like\n\n```\nError: boo!\n    at explode 
(/path/to/test.js:3:11)\n    at _fulfilled (/path/to/test.js:q:54)\n    at 
resolvedValue.promiseDispatch.done (/path/to/q.js:823:30)\n    at 
makePromise.promise.promiseDispatch (/path/to/q.js:496:13)\n    at pending 
(/path/to/q.js:397:39)\n    at 
process.startup.processNextTick.process._tickCallback 
(node.js:244:9)\n```\n\nBut, if you turn this feature on by 
setting\n\n```js\nQ.longStackSupport = true;\n```\n\nthen the above code gives 
a nice stack trace to the tune of\n\n```\nError: boo!\n    at explode 
(/path/to/test.js:3:11)\nFrom previous event:\n    at theDepthsOfMyProgram 
(/path/to/test.js:2:16)\n    at Object.<anonymous> 
(/path/to/test.js:7:1)\n```\n\nNote how you can see the function that triggered 
the async operation in the\nstack trace! This is very helpful 
 for debugging, as otherwise you end up getting\nonly the first line, plus a 
bunch of Q internals, with no sign of where the\noperation started.\n\nIn 
node.js, this feature can also be enabled through the Q_DEBUG 
environment\nvariable:\n\n```\nQ_DEBUG=1 node server.js\n```\n\nThis will 
enable long stack support in every instance of Q.\n\nThis feature does come 
with somewhat-serious performance and memory overhead,\nhowever. If you're 
working with lots of promises, or trying to scale a server\nto many users, you 
should probably keep it off. But in development, go for it!\n\n## Tests\n\nYou 
can view the results of the Q test suite [in your browser][tests]!\n\n[tests]: 
https://rawgithub.com/kriskowal/q/v1/spec/q-spec.html\n\n## 
License\n\nCopyright 2009–2015 Kristopher Michael Kowal and contributors\nMIT 
License (enclosed)\n\n",
+  "readmeFilename": "README.md",
+  "_id": "[email protected]",
+  "_shasum": "55705bcd93c5f3673530c2c2cbc0c2b3addc286e",
+  "_resolved": 
"http://visustar.francelab.fr.ibm.com:8081/nexus/content/groups/mobile-npm-all/q/-/q-1.4.1.tgz";,
+  "_from": "q@>=1.4.1 <2.0.0"
 }

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6394314d/node_modules/shelljs/package.json
----------------------------------------------------------------------
diff --git a/node_modules/shelljs/package.json 
b/node_modules/shelljs/package.json
index f11bbf7..83050f0 100644
--- a/node_modules/shelljs/package.json
+++ b/node_modules/shelljs/package.json
@@ -1,89 +1,64 @@
 {
-  "_args": [
-    [
-      "shelljs@^0.5.3",
-      "/Users/omefire/Projects/cordova-ios"
-    ]
-  ],
-  "_from": "shelljs@>=0.5.3 <0.6.0",
-  "_id": "[email protected]",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/shelljs",
-  "_nodeVersion": "1.2.0",
-  "_npmUser": {
-    "email": "[email protected]",
-    "name": "artur"
-  },
-  "_npmVersion": "2.5.1",
-  "_phantomChildren": {},
-  "_requested": {
-    "name": "shelljs",
-    "raw": "shelljs@^0.5.3",
-    "rawSpec": "^0.5.3",
-    "scope": null,
-    "spec": ">=0.5.3 <0.6.0",
-    "type": "range"
+  "name": "shelljs",
+  "version": "0.5.3",
+  "author": {
+    "name": "Artur Adib",
+    "email": "[email protected]"
   },
-  "_requiredBy": [
-    "/",
-    "/cordova-common"
+  "description": "Portable Unix shell commands for Node.js",
+  "keywords": [
+    "unix",
+    "shell",
+    "makefile",
+    "make",
+    "jake",
+    "synchronous"
   ],
-  "_resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz";,
-  "_shasum": "c54982b996c76ef0c1e6b59fbdc5825f5b713113",
-  "_shrinkwrap": null,
-  "_spec": "shelljs@^0.5.3",
-  "_where": "/Users/omefire/Projects/cordova-ios",
-  "author": {
-    "email": "[email protected]",
-    "name": "Artur Adib"
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/arturadib/shelljs.git"
+  },
+  "license": "BSD*",
+  "homepage": "http://github.com/arturadib/shelljs";,
+  "main": "./shell.js",
+  "scripts": {
+    "test": "node scripts/run-tests"
   },
   "bin": {
     "shjs": "./bin/shjs"
   },
-  "bugs": {
-    "url": "https://github.com/arturadib/shelljs/issues";
-  },
   "dependencies": {},
-  "description": "Portable Unix shell commands for Node.js",
   "devDependencies": {
     "jshint": "~2.1.11"
   },
-  "directories": {},
-  "dist": {
-    "shasum": "c54982b996c76ef0c1e6b59fbdc5825f5b713113",
-    "tarball": "http://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz";
-  },
+  "optionalDependencies": {},
   "engines": {
     "node": ">=0.8.0"
   },
   "gitHead": "22d0975040b9b8234755dc6e692d6869436e8485",
-  "homepage": "http://github.com/arturadib/shelljs";,
-  "keywords": [
-    "unix",
-    "shell",
-    "makefile",
-    "make",
-    "jake",
-    "synchronous"
-  ],
-  "license": "BSD*",
-  "main": "./shell.js",
+  "bugs": {
+    "url": "https://github.com/arturadib/shelljs/issues";
+  },
+  "_id": "[email protected]",
+  "_shasum": "c54982b996c76ef0c1e6b59fbdc5825f5b713113",
+  "_from": "shelljs@>=0.5.3 <0.6.0",
+  "_npmVersion": "2.5.1",
+  "_nodeVersion": "1.2.0",
+  "_npmUser": {
+    "name": "artur",
+    "email": "[email protected]"
+  },
   "maintainers": [
     {
-      "email": "[email protected]",
-      "name": "artur"
+      "name": "artur",
+      "email": "[email protected]"
     }
   ],
-  "name": "shelljs",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/arturadib/shelljs.git"
-  },
-  "scripts": {
-    "test": "node scripts/run-tests"
+  "dist": {
+    "shasum": "c54982b996c76ef0c1e6b59fbdc5825f5b713113",
+    "tarball": 
"http://visustar.francelab.fr.ibm.com:8081/nexus/content/groups/mobile-npm-all/shelljs/-/shelljs-0.5.3.tgz";
   },
-  "version": "0.5.3"
+  "directories": {},
+  "_resolved": 
"http://visustar.francelab.fr.ibm.com:8081/nexus/content/groups/mobile-npm-all/shelljs/-/shelljs-0.5.3.tgz";,
+  "readme": "ERROR: No README data found!"
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to