You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by st...@apache.org on 2016/07/22 19:40:48 UTC

[3/3] android commit: updated cordoova-common to 1.4.0

updated cordoova-common to 1.4.0


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

Branch: refs/heads/master
Commit: 081637134f746e05321a27c93d06043fa1e4a224
Parents: 39165a8
Author: Steve Gill <st...@gmail.com>
Authored: Fri Jul 22 12:24:27 2016 -0700
Committer: Steve Gill <st...@gmail.com>
Committed: Fri Jul 22 12:24:27 2016 -0700

----------------------------------------------------------------------
 node_modules/.bin/nopt                          |  16 +-
 node_modules/.bin/nopt.cmd                      |   7 -
 node_modules/.bin/semver                        |  16 +-
 node_modules/.bin/semver.cmd                    |   7 -
 node_modules/.bin/shjs                          |  16 +-
 node_modules/.bin/shjs.cmd                      |   7 -
 node_modules/abbrev/.npmignore                  |   4 -
 node_modules/abbrev/.travis.yml                 |   5 -
 node_modules/abbrev/CONTRIBUTING.md             |   3 -
 node_modules/abbrev/package.json                |  58 +-
 node_modules/abbrev/test.js                     |  47 --
 node_modules/ansi/package.json                  |  35 +-
 node_modules/balanced-match/README.md           |   4 +-
 node_modules/balanced-match/index.js            |   2 +-
 node_modules/balanced-match/package.json        |  57 +-
 node_modules/base64-js/package.json             |  41 +-
 node_modules/big-integer/package.json           |  33 +-
 node_modules/bplist-parser/package.json         |  33 +-
 node_modules/brace-expansion/.npmignore         |   3 -
 node_modules/brace-expansion/example.js         |   8 -
 node_modules/brace-expansion/index.js           |  10 +
 node_modules/brace-expansion/package.json       |  61 +-
 node_modules/concat-map/package.json            |  57 +-
 node_modules/cordova-common/README.md           |  14 +-
 node_modules/cordova-common/RELEASENOTES.md     |   3 +
 node_modules/cordova-common/package.json        |  77 +-
 .../src/ConfigChanges/ConfigChanges.js          | 108 ++-
 .../src/ConfigChanges/ConfigFile.js             |  20 +-
 .../src/ConfigChanges/munge-util.js             |   3 +
 node_modules/cordova-common/src/PlatformJson.js |   5 +-
 .../cordova-common/src/PluginInfo/PluginInfo.js |  18 +-
 .../cordova-common/src/PluginManager.js         |   2 +-
 .../cordova-common/src/util/xml-helpers.js      | 124 +++-
 .../cordova-registry-mapper/package.json        |  31 +-
 node_modules/elementtree/package.json           |  37 +-
 node_modules/glob/package.json                  |  31 +-
 node_modules/inflight/package.json              |  43 +-
 node_modules/inherits/package.json              |  29 +-
 node_modules/lodash/package.json                |  57 +-
 node_modules/minimatch/README.md                |  11 +-
 node_modules/minimatch/minimatch.js             |  18 +-
 node_modules/minimatch/package.json             |  53 +-
 node_modules/nopt/package.json                  |  39 +-
 node_modules/once/package.json                  |  31 +-
 node_modules/os-homedir/package.json            |  31 +-
 node_modules/os-tmpdir/package.json             |  31 +-
 node_modules/osenv/package.json                 |  43 +-
 node_modules/path-is-absolute/package.json      |  31 +-
 node_modules/plist/package.json                 |  49 +-
 node_modules/properties-parser/package.json     |  31 +-
 node_modules/q/package.json                     |  41 +-
 node_modules/sax/package.json                   |  63 +-
 node_modules/semver/.npmignore                  |   4 -
 node_modules/semver/.travis.yml                 |   5 -
 node_modules/semver/README.md                   |  39 +-
 node_modules/semver/package.json                |  58 +-
 node_modules/semver/range.bnf                   |   2 +-
 node_modules/semver/semver.js                   |  27 +-
 node_modules/semver/test/big-numbers.js         |  31 -
 node_modules/semver/test/clean.js               |  29 -
 node_modules/semver/test/gtr.js                 | 173 -----
 node_modules/semver/test/index.js               | 698 -------------------
 node_modules/semver/test/ltr.js                 | 181 -----
 node_modules/semver/test/major-minor-patch.js   |  72 --
 node_modules/shelljs/package.json               |  33 +-
 node_modules/underscore/package.json            |  33 +-
 node_modules/unorm/package.json                 |  47 +-
 node_modules/util-deprecate/package.json        |  31 +-
 node_modules/wrappy/package.json                |  35 +-
 node_modules/xmlbuilder/package.json            |  33 +-
 node_modules/xmldom/package.json                |  61 +-
 package.json                                    |   2 +-
 72 files changed, 1219 insertions(+), 1979 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/.bin/nopt
----------------------------------------------------------------------
diff --git a/node_modules/.bin/nopt b/node_modules/.bin/nopt
index 714334e..6b6566e 120000
--- a/node_modules/.bin/nopt
+++ b/node_modules/.bin/nopt
@@ -1,15 +1 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
-    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  "$basedir/node"  "$basedir/../nopt/bin/nopt.js" "$@"
-  ret=$?
-else 
-  node  "$basedir/../nopt/bin/nopt.js" "$@"
-  ret=$?
-fi
-exit $ret
+../nopt/bin/nopt.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/.bin/nopt.cmd
----------------------------------------------------------------------
diff --git a/node_modules/.bin/nopt.cmd b/node_modules/.bin/nopt.cmd
deleted file mode 100644
index 1626454..0000000
--- a/node_modules/.bin/nopt.cmd
+++ /dev/null
@@ -1,7 +0,0 @@
-@IF EXIST "%~dp0\node.exe" (
-  "%~dp0\node.exe"  "%~dp0\..\nopt\bin\nopt.js" %*
-) ELSE (
-  @SETLOCAL
-  @SET PATHEXT=%PATHEXT:;.JS;=;%
-  node  "%~dp0\..\nopt\bin\nopt.js" %*
-)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/.bin/semver
----------------------------------------------------------------------
diff --git a/node_modules/.bin/semver b/node_modules/.bin/semver
index d592e69..317eb29 120000
--- a/node_modules/.bin/semver
+++ b/node_modules/.bin/semver
@@ -1,15 +1 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
-    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  "$basedir/node"  "$basedir/../semver/bin/semver" "$@"
-  ret=$?
-else 
-  node  "$basedir/../semver/bin/semver" "$@"
-  ret=$?
-fi
-exit $ret
+../semver/bin/semver
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/.bin/semver.cmd
----------------------------------------------------------------------
diff --git a/node_modules/.bin/semver.cmd b/node_modules/.bin/semver.cmd
deleted file mode 100644
index 37c00a4..0000000
--- a/node_modules/.bin/semver.cmd
+++ /dev/null
@@ -1,7 +0,0 @@
-@IF EXIST "%~dp0\node.exe" (
-  "%~dp0\node.exe"  "%~dp0\..\semver\bin\semver" %*
-) ELSE (
-  @SETLOCAL
-  @SET PATHEXT=%PATHEXT:;.JS;=;%
-  node  "%~dp0\..\semver\bin\semver" %*
-)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/.bin/shjs
----------------------------------------------------------------------
diff --git a/node_modules/.bin/shjs b/node_modules/.bin/shjs
index 1d45691..a044997 120000
--- a/node_modules/.bin/shjs
+++ b/node_modules/.bin/shjs
@@ -1,15 +1 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
-    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  "$basedir/node"  "$basedir/../shelljs/bin/shjs" "$@"
-  ret=$?
-else 
-  node  "$basedir/../shelljs/bin/shjs" "$@"
-  ret=$?
-fi
-exit $ret
+../shelljs/bin/shjs
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/.bin/shjs.cmd
----------------------------------------------------------------------
diff --git a/node_modules/.bin/shjs.cmd b/node_modules/.bin/shjs.cmd
deleted file mode 100644
index 3d98b0b..0000000
--- a/node_modules/.bin/shjs.cmd
+++ /dev/null
@@ -1,7 +0,0 @@
-@IF EXIST "%~dp0\node.exe" (
-  "%~dp0\node.exe"  "%~dp0\..\shelljs\bin\shjs" %*
-) ELSE (
-  @SETLOCAL
-  @SET PATHEXT=%PATHEXT:;.JS;=;%
-  node  "%~dp0\..\shelljs\bin\shjs" %*
-)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/abbrev/.npmignore
----------------------------------------------------------------------
diff --git a/node_modules/abbrev/.npmignore b/node_modules/abbrev/.npmignore
deleted file mode 100644
index 9d6cd2f..0000000
--- a/node_modules/abbrev/.npmignore
+++ /dev/null
@@ -1,4 +0,0 @@
-.nyc_output
-nyc_output
-node_modules
-coverage

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/abbrev/.travis.yml
----------------------------------------------------------------------
diff --git a/node_modules/abbrev/.travis.yml b/node_modules/abbrev/.travis.yml
deleted file mode 100644
index 991d04b..0000000
--- a/node_modules/abbrev/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-node_js:
-  - '0.10'
-  - '0.12'
-  - 'iojs'

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/abbrev/CONTRIBUTING.md
----------------------------------------------------------------------
diff --git a/node_modules/abbrev/CONTRIBUTING.md b/node_modules/abbrev/CONTRIBUTING.md
deleted file mode 100644
index 2f30261..0000000
--- a/node_modules/abbrev/CONTRIBUTING.md
+++ /dev/null
@@ -1,3 +0,0 @@
- To get started, <a
- href="http://www.clahub.com/agreements/isaacs/abbrev-js">sign the
- Contributor License Agreement</a>.

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/abbrev/package.json
----------------------------------------------------------------------
diff --git a/node_modules/abbrev/package.json b/node_modules/abbrev/package.json
index 343fa3b..38e7f25 100644
--- a/node_modules/abbrev/package.json
+++ b/node_modules/abbrev/package.json
@@ -1,41 +1,54 @@
 {
   "_args": [
     [
-      "abbrev@1",
-      "D:\\Cordova\\cordova-android\\node_modules\\nopt"
+      {
+        "raw": "abbrev@1",
+        "scope": null,
+        "escapedName": "abbrev",
+        "name": "abbrev",
+        "rawSpec": "1",
+        "spec": ">=1.0.0 <2.0.0",
+        "type": "range"
+      },
+      "/Users/steveng/repo/cordova/cordova-android/node_modules/nopt"
     ]
   ],
   "_from": "abbrev@>=1.0.0 <2.0.0",
-  "_id": "abbrev@1.0.7",
+  "_id": "abbrev@1.0.9",
   "_inCache": true,
   "_installable": true,
   "_location": "/abbrev",
-  "_nodeVersion": "2.0.1",
+  "_nodeVersion": "4.4.4",
+  "_npmOperationalInternal": {
+    "host": "packages-16-east.internal.npmjs.com",
+    "tmp": "tmp/abbrev-1.0.9.tgz_1466016055839_0.7825860097073019"
+  },
   "_npmUser": {
-    "email": "isaacs@npmjs.com",
-    "name": "isaacs"
+    "name": "isaacs",
+    "email": "i@izs.me"
   },
-  "_npmVersion": "2.10.1",
+  "_npmVersion": "3.9.1",
   "_phantomChildren": {},
   "_requested": {
-    "name": "abbrev",
     "raw": "abbrev@1",
-    "rawSpec": "1",
     "scope": null,
+    "escapedName": "abbrev",
+    "name": "abbrev",
+    "rawSpec": "1",
     "spec": ">=1.0.0 <2.0.0",
     "type": "range"
   },
   "_requiredBy": [
     "/nopt"
   ],
-  "_resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz",
-  "_shasum": "5b6035b2ee9d4fb5cf859f08a9be81b208491843",
+  "_resolved": "http://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
+  "_shasum": "91b4792588a7738c25f35dd6f63752a2f8776135",
   "_shrinkwrap": null,
   "_spec": "abbrev@1",
-  "_where": "D:\\Cordova\\cordova-android\\node_modules\\nopt",
+  "_where": "/Users/steveng/repo/cordova/cordova-android/node_modules/nopt",
   "author": {
-    "email": "i@izs.me",
-    "name": "Isaac Z. Schlueter"
+    "name": "Isaac Z. Schlueter",
+    "email": "i@izs.me"
   },
   "bugs": {
     "url": "https://github.com/isaacs/abbrev-js/issues"
@@ -43,21 +56,24 @@
   "dependencies": {},
   "description": "Like ruby's abbrev module, but in js",
   "devDependencies": {
-    "tap": "^1.2.0"
+    "tap": "^5.7.2"
   },
   "directories": {},
   "dist": {
-    "shasum": "5b6035b2ee9d4fb5cf859f08a9be81b208491843",
-    "tarball": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz"
+    "shasum": "91b4792588a7738c25f35dd6f63752a2f8776135",
+    "tarball": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz"
   },
-  "gitHead": "821d09ce7da33627f91bbd8ed631497ed6f760c2",
+  "files": [
+    "abbrev.js"
+  ],
+  "gitHead": "c386cd9dbb1d8d7581718c54d4ba944cc9298d6f",
   "homepage": "https://github.com/isaacs/abbrev-js#readme",
   "license": "ISC",
   "main": "abbrev.js",
   "maintainers": [
     {
-      "email": "i@izs.me",
-      "name": "isaacs"
+      "name": "isaacs",
+      "email": "i@izs.me"
     }
   ],
   "name": "abbrev",
@@ -70,5 +86,5 @@
   "scripts": {
     "test": "tap test.js --cov"
   },
-  "version": "1.0.7"
+  "version": "1.0.9"
 }

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/abbrev/test.js
----------------------------------------------------------------------
diff --git a/node_modules/abbrev/test.js b/node_modules/abbrev/test.js
deleted file mode 100644
index eb30e42..0000000
--- a/node_modules/abbrev/test.js
+++ /dev/null
@@ -1,47 +0,0 @@
-var abbrev = require('./abbrev.js')
-var assert = require("assert")
-var util = require("util")
-
-console.log("TAP version 13")
-var count = 0
-
-function test (list, expect) {
-  count++
-  var actual = abbrev(list)
-  assert.deepEqual(actual, expect,
-    "abbrev("+util.inspect(list)+") === " + util.inspect(expect) + "\n"+
-    "actual: "+util.inspect(actual))
-  actual = abbrev.apply(exports, list)
-  assert.deepEqual(abbrev.apply(exports, list), expect,
-    "abbrev("+list.map(JSON.stringify).join(",")+") === " + util.inspect(expect) + "\n"+
-    "actual: "+util.inspect(actual))
-  console.log('ok - ' + list.join(' '))
-}
-
-test([ "ruby", "ruby", "rules", "rules", "rules" ],
-{ rub: 'ruby'
-, ruby: 'ruby'
-, rul: 'rules'
-, rule: 'rules'
-, rules: 'rules'
-})
-test(["fool", "foom", "pool", "pope"],
-{ fool: 'fool'
-, foom: 'foom'
-, poo: 'pool'
-, pool: 'pool'
-, pop: 'pope'
-, pope: 'pope'
-})
-test(["a", "ab", "abc", "abcd", "abcde", "acde"],
-{ a: 'a'
-, ab: 'ab'
-, abc: 'abc'
-, abcd: 'abcd'
-, abcde: 'abcde'
-, ac: 'acde'
-, acd: 'acde'
-, acde: 'acde'
-})
-
-console.log("1..%d", count)

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/ansi/package.json
----------------------------------------------------------------------
diff --git a/node_modules/ansi/package.json b/node_modules/ansi/package.json
index 7e3d6aa..5569642 100644
--- a/node_modules/ansi/package.json
+++ b/node_modules/ansi/package.json
@@ -1,8 +1,16 @@
 {
   "_args": [
     [
-      "ansi@^0.3.1",
-      "D:\\Cordova\\cordova-android\\node_modules\\cordova-common"
+      {
+        "raw": "ansi@^0.3.1",
+        "scope": null,
+        "escapedName": "ansi",
+        "name": "ansi",
+        "rawSpec": "^0.3.1",
+        "spec": ">=0.3.1 <0.4.0",
+        "type": "range"
+      },
+      "/Users/steveng/repo/cordova/cordova-android/node_modules/cordova-common"
     ]
   ],
   "_from": "ansi@>=0.3.1 <0.4.0",
@@ -12,30 +20,31 @@
   "_location": "/ansi",
   "_nodeVersion": "5.3.0",
   "_npmUser": {
-    "email": "nathan@tootallnate.net",
-    "name": "tootallnate"
+    "name": "tootallnate",
+    "email": "nathan@tootallnate.net"
   },
   "_npmVersion": "3.3.12",
   "_phantomChildren": {},
   "_requested": {
-    "name": "ansi",
     "raw": "ansi@^0.3.1",
-    "rawSpec": "^0.3.1",
     "scope": null,
+    "escapedName": "ansi",
+    "name": "ansi",
+    "rawSpec": "^0.3.1",
     "spec": ">=0.3.1 <0.4.0",
     "type": "range"
   },
   "_requiredBy": [
     "/cordova-common"
   ],
-  "_resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
+  "_resolved": "http://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
   "_shasum": "0c42d4fb17160d5a9af1e484bace1c66922c1b21",
   "_shrinkwrap": null,
   "_spec": "ansi@^0.3.1",
-  "_where": "D:\\Cordova\\cordova-android\\node_modules\\cordova-common",
+  "_where": "/Users/steveng/repo/cordova/cordova-android/node_modules/cordova-common",
   "author": {
-    "email": "nathan@tootallnate.net",
     "name": "Nathan Rajlich",
+    "email": "nathan@tootallnate.net",
     "url": "http://tootallnate.net"
   },
   "bugs": {
@@ -65,12 +74,12 @@
   "main": "./lib/ansi.js",
   "maintainers": [
     {
-      "email": "nathan@tootallnate.net",
-      "name": "TooTallNate"
+      "name": "TooTallNate",
+      "email": "nathan@tootallnate.net"
     },
     {
-      "email": "nathan@tootallnate.net",
-      "name": "tootallnate"
+      "name": "tootallnate",
+      "email": "nathan@tootallnate.net"
     }
   ],
   "name": "ansi",

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/balanced-match/README.md
----------------------------------------------------------------------
diff --git a/node_modules/balanced-match/README.md b/node_modules/balanced-match/README.md
index d6880b2..08e918c 100644
--- a/node_modules/balanced-match/README.md
+++ b/node_modules/balanced-match/README.md
@@ -47,7 +47,7 @@ object with those keys:
 
 If there's no match, `undefined` will be returned.
 
-If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']`.
+If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`.
 
 ### var r = balanced.range(a, b, str)
 
@@ -56,7 +56,7 @@ array with indexes: `[ <a index>, <b index> ]`.
 
 If there's no match, `undefined` will be returned.
 
-If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]`.
+If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`.
 
 ## Installation
 

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/balanced-match/index.js
----------------------------------------------------------------------
diff --git a/node_modules/balanced-match/index.js b/node_modules/balanced-match/index.js
index 4670f7f..e8d8587 100644
--- a/node_modules/balanced-match/index.js
+++ b/node_modules/balanced-match/index.js
@@ -30,7 +30,7 @@ function range(a, b, str) {
     begs = [];
     left = str.length;
 
-    while (i < str.length && i >= 0 && ! result) {
+    while (i >= 0 && !result) {
       if (i == ai) {
         begs.push(i);
         ai = str.indexOf(a, i + 1);

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/balanced-match/package.json
----------------------------------------------------------------------
diff --git a/node_modules/balanced-match/package.json b/node_modules/balanced-match/package.json
index 5044b4e..25e4fa8 100644
--- a/node_modules/balanced-match/package.json
+++ b/node_modules/balanced-match/package.json
@@ -1,45 +1,54 @@
 {
   "_args": [
     [
-      "balanced-match@^0.4.1",
-      "D:\\Cordova\\cordova-android\\node_modules\\brace-expansion"
+      {
+        "raw": "balanced-match@^0.4.1",
+        "scope": null,
+        "escapedName": "balanced-match",
+        "name": "balanced-match",
+        "rawSpec": "^0.4.1",
+        "spec": ">=0.4.1 <0.5.0",
+        "type": "range"
+      },
+      "/Users/steveng/repo/cordova/cordova-android/node_modules/brace-expansion"
     ]
   ],
   "_from": "balanced-match@>=0.4.1 <0.5.0",
-  "_id": "balanced-match@0.4.1",
+  "_id": "balanced-match@0.4.2",
   "_inCache": true,
   "_installable": true,
   "_location": "/balanced-match",
-  "_nodeVersion": "6.0.0",
+  "_nodeVersion": "4.4.7",
   "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/balanced-match-0.4.1.tgz_1462129663650_0.39764496590942144"
+    "host": "packages-16-east.internal.npmjs.com",
+    "tmp": "tmp/balanced-match-0.4.2.tgz_1468834991581_0.6590619895141572"
   },
   "_npmUser": {
-    "email": "julian@juliangruber.com",
-    "name": "juliangruber"
+    "name": "juliangruber",
+    "email": "julian@juliangruber.com"
   },
-  "_npmVersion": "3.8.6",
+  "_npmVersion": "2.15.8",
   "_phantomChildren": {},
   "_requested": {
-    "name": "balanced-match",
     "raw": "balanced-match@^0.4.1",
-    "rawSpec": "^0.4.1",
     "scope": null,
+    "escapedName": "balanced-match",
+    "name": "balanced-match",
+    "rawSpec": "^0.4.1",
     "spec": ">=0.4.1 <0.5.0",
     "type": "range"
   },
   "_requiredBy": [
     "/brace-expansion"
   ],
-  "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz",
-  "_shasum": "19053e2e0748eadb379da6c09d455cf5e1039335",
+  "_resolved": "http://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+  "_shasum": "cb3f3e3c732dc0f01ee70b403f302e61d7709838",
   "_shrinkwrap": null,
   "_spec": "balanced-match@^0.4.1",
-  "_where": "D:\\Cordova\\cordova-android\\node_modules\\brace-expansion",
+  "_where": "/Users/steveng/repo/cordova/cordova-android/node_modules/brace-expansion",
   "author": {
-    "email": "mail@juliangruber.com",
     "name": "Julian Gruber",
+    "email": "mail@juliangruber.com",
     "url": "http://juliangruber.com"
   },
   "bugs": {
@@ -48,14 +57,14 @@
   "dependencies": {},
   "description": "Match balanced character pairs, like \"{\" and \"}\"",
   "devDependencies": {
-    "tape": "~4.5.0"
+    "tape": "^4.6.0"
   },
   "directories": {},
   "dist": {
-    "shasum": "19053e2e0748eadb379da6c09d455cf5e1039335",
-    "tarball": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz"
+    "shasum": "cb3f3e3c732dc0f01ee70b403f302e61d7709838",
+    "tarball": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz"
   },
-  "gitHead": "7004b289baaaab6a832f4901735e29d37cc2a863",
+  "gitHead": "57c2ea29d89a2844ae3bdcc637c6e2cbb73725e2",
   "homepage": "https://github.com/juliangruber/balanced-match",
   "keywords": [
     "match",
@@ -68,8 +77,8 @@
   "main": "index.js",
   "maintainers": [
     {
-      "email": "julian@juliangruber.com",
-      "name": "juliangruber"
+      "name": "juliangruber",
+      "email": "julian@juliangruber.com"
     }
   ],
   "name": "balanced-match",
@@ -83,6 +92,7 @@
     "test": "make test"
   },
   "testling": {
+    "files": "test/*.js",
     "browsers": [
       "ie/8..latest",
       "firefox/20..latest",
@@ -95,8 +105,7 @@
       "ipad/6.0..latest",
       "iphone/6.0..latest",
       "android-browser/4.2..latest"
-    ],
-    "files": "test/*.js"
+    ]
   },
-  "version": "0.4.1"
+  "version": "0.4.2"
 }

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/base64-js/package.json
----------------------------------------------------------------------
diff --git a/node_modules/base64-js/package.json b/node_modules/base64-js/package.json
index 5f21386..61922bf 100644
--- a/node_modules/base64-js/package.json
+++ b/node_modules/base64-js/package.json
@@ -1,8 +1,16 @@
 {
   "_args": [
     [
-      "base64-js@0.0.8",
-      "D:\\Cordova\\cordova-android\\node_modules\\plist"
+      {
+        "raw": "base64-js@0.0.8",
+        "scope": null,
+        "escapedName": "base64-js",
+        "name": "base64-js",
+        "rawSpec": "0.0.8",
+        "spec": "0.0.8",
+        "type": "version"
+      },
+      "/Users/steveng/repo/cordova/cordova-android/node_modules/plist"
     ]
   ],
   "_from": "base64-js@0.0.8",
@@ -12,30 +20,31 @@
   "_location": "/base64-js",
   "_nodeVersion": "0.10.35",
   "_npmUser": {
-    "email": "feross@feross.org",
-    "name": "feross"
+    "name": "feross",
+    "email": "feross@feross.org"
   },
   "_npmVersion": "2.1.16",
   "_phantomChildren": {},
   "_requested": {
-    "name": "base64-js",
     "raw": "base64-js@0.0.8",
-    "rawSpec": "0.0.8",
     "scope": null,
+    "escapedName": "base64-js",
+    "name": "base64-js",
+    "rawSpec": "0.0.8",
     "spec": "0.0.8",
     "type": "version"
   },
   "_requiredBy": [
     "/plist"
   ],
-  "_resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz",
+  "_resolved": "http://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz",
   "_shasum": "1101e9544f4a76b1bc3b26d452ca96d7a35e7978",
   "_shrinkwrap": null,
   "_spec": "base64-js@0.0.8",
-  "_where": "D:\\Cordova\\cordova-android\\node_modules\\plist",
+  "_where": "/Users/steveng/repo/cordova/cordova-android/node_modules/plist",
   "author": {
-    "email": "t.jameson.little@gmail.com",
-    "name": "T. Jameson Little"
+    "name": "T. Jameson Little",
+    "email": "t.jameson.little@gmail.com"
   },
   "bugs": {
     "url": "https://github.com/beatgammit/base64-js/issues"
@@ -59,12 +68,12 @@
   "main": "lib/b64.js",
   "maintainers": [
     {
-      "email": "t.jameson.little@gmail.com",
-      "name": "beatgammit"
+      "name": "beatgammit",
+      "email": "t.jameson.little@gmail.com"
     },
     {
-      "email": "feross@feross.org",
-      "name": "feross"
+      "name": "feross",
+      "email": "feross@feross.org"
     }
   ],
   "name": "base64-js",
@@ -78,6 +87,7 @@
     "test": "tape test/*.js"
   },
   "testling": {
+    "files": "test/*.js",
     "browsers": [
       "ie/6..latest",
       "chrome/4..latest",
@@ -86,8 +96,7 @@
       "opera/11.0..latest",
       "iphone/6",
       "ipad/6"
-    ],
-    "files": "test/*.js"
+    ]
   },
   "version": "0.0.8"
 }

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/big-integer/package.json
----------------------------------------------------------------------
diff --git a/node_modules/big-integer/package.json b/node_modules/big-integer/package.json
index c0f37fb..5e9e0dd 100644
--- a/node_modules/big-integer/package.json
+++ b/node_modules/big-integer/package.json
@@ -1,8 +1,16 @@
 {
   "_args": [
     [
-      "big-integer@^1.6.7",
-      "D:\\Cordova\\cordova-android\\node_modules\\bplist-parser"
+      {
+        "raw": "big-integer@^1.6.7",
+        "scope": null,
+        "escapedName": "big-integer",
+        "name": "big-integer",
+        "rawSpec": "^1.6.7",
+        "spec": ">=1.6.7 <2.0.0",
+        "type": "range"
+      },
+      "/Users/steveng/repo/cordova/cordova-android/node_modules/bplist-parser"
     ]
   ],
   "_from": "big-integer@>=1.6.7 <2.0.0",
@@ -16,30 +24,31 @@
     "tmp": "tmp/big-integer-1.6.15.tgz_1460079231162_0.7087579960934818"
   },
   "_npmUser": {
-    "email": "peter.e.c.olson+npm@gmail.com",
-    "name": "peterolson"
+    "name": "peterolson",
+    "email": "peter.e.c.olson+npm@gmail.com"
   },
   "_npmVersion": "2.9.1",
   "_phantomChildren": {},
   "_requested": {
-    "name": "big-integer",
     "raw": "big-integer@^1.6.7",
-    "rawSpec": "^1.6.7",
     "scope": null,
+    "escapedName": "big-integer",
+    "name": "big-integer",
+    "rawSpec": "^1.6.7",
     "spec": ">=1.6.7 <2.0.0",
     "type": "range"
   },
   "_requiredBy": [
     "/bplist-parser"
   ],
-  "_resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.15.tgz",
+  "_resolved": "http://registry.npmjs.org/big-integer/-/big-integer-1.6.15.tgz",
   "_shasum": "33d27d3b7388dfcc4b86d3130c10740cec01fb9e",
   "_shrinkwrap": null,
   "_spec": "big-integer@^1.6.7",
-  "_where": "D:\\Cordova\\cordova-android\\node_modules\\bplist-parser",
+  "_where": "/Users/steveng/repo/cordova/cordova-android/node_modules/bplist-parser",
   "author": {
-    "email": "peter.e.c.olson+npm@gmail.com",
-    "name": "Peter Olson"
+    "name": "Peter Olson",
+    "email": "peter.e.c.olson+npm@gmail.com"
   },
   "bin": {},
   "bugs": {
@@ -82,8 +91,8 @@
   "main": "./BigInteger",
   "maintainers": [
     {
-      "email": "peter.e.c.olson+npm@gmail.com",
-      "name": "peterolson"
+      "name": "peterolson",
+      "email": "peter.e.c.olson+npm@gmail.com"
     }
   ],
   "name": "big-integer",

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/bplist-parser/package.json
----------------------------------------------------------------------
diff --git a/node_modules/bplist-parser/package.json b/node_modules/bplist-parser/package.json
index eaae4d5..8865539 100644
--- a/node_modules/bplist-parser/package.json
+++ b/node_modules/bplist-parser/package.json
@@ -1,8 +1,16 @@
 {
   "_args": [
     [
-      "bplist-parser@^0.1.0",
-      "D:\\Cordova\\cordova-android\\node_modules\\cordova-common"
+      {
+        "raw": "bplist-parser@^0.1.0",
+        "scope": null,
+        "escapedName": "bplist-parser",
+        "name": "bplist-parser",
+        "rawSpec": "^0.1.0",
+        "spec": ">=0.1.0 <0.2.0",
+        "type": "range"
+      },
+      "/Users/steveng/repo/cordova/cordova-android/node_modules/cordova-common"
     ]
   ],
   "_from": "bplist-parser@>=0.1.0 <0.2.0",
@@ -12,30 +20,31 @@
   "_location": "/bplist-parser",
   "_nodeVersion": "5.1.0",
   "_npmUser": {
-    "email": "joe@fernsroth.com",
-    "name": "joeferner"
+    "name": "joeferner",
+    "email": "joe@fernsroth.com"
   },
   "_npmVersion": "3.4.0",
   "_phantomChildren": {},
   "_requested": {
-    "name": "bplist-parser",
     "raw": "bplist-parser@^0.1.0",
-    "rawSpec": "^0.1.0",
     "scope": null,
+    "escapedName": "bplist-parser",
+    "name": "bplist-parser",
+    "rawSpec": "^0.1.0",
     "spec": ">=0.1.0 <0.2.0",
     "type": "range"
   },
   "_requiredBy": [
     "/cordova-common"
   ],
-  "_resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz",
+  "_resolved": "http://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz",
   "_shasum": "d60d5dcc20cba6dc7e1f299b35d3e1f95dafbae6",
   "_shrinkwrap": null,
   "_spec": "bplist-parser@^0.1.0",
-  "_where": "D:\\Cordova\\cordova-android\\node_modules\\cordova-common",
+  "_where": "/Users/steveng/repo/cordova/cordova-android/node_modules/cordova-common",
   "author": {
-    "email": "joe.ferner@nearinfinity.com",
-    "name": "Joe Ferner"
+    "name": "Joe Ferner",
+    "email": "joe.ferner@nearinfinity.com"
   },
   "bugs": {
     "url": "https://github.com/nearinfinity/node-bplist-parser/issues"
@@ -63,8 +72,8 @@
   "main": "bplistParser.js",
   "maintainers": [
     {
-      "email": "joe@fernsroth.com",
-      "name": "joeferner"
+      "name": "joeferner",
+      "email": "joe@fernsroth.com"
     }
   ],
   "name": "bplist-parser",

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/brace-expansion/.npmignore
----------------------------------------------------------------------
diff --git a/node_modules/brace-expansion/.npmignore b/node_modules/brace-expansion/.npmignore
deleted file mode 100644
index 353546a..0000000
--- a/node_modules/brace-expansion/.npmignore
+++ /dev/null
@@ -1,3 +0,0 @@
-test
-.gitignore
-.travis.yml

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/brace-expansion/example.js
----------------------------------------------------------------------
diff --git a/node_modules/brace-expansion/example.js b/node_modules/brace-expansion/example.js
deleted file mode 100644
index 60ecfc7..0000000
--- a/node_modules/brace-expansion/example.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var expand = require('./');
-
-console.log(expand('http://any.org/archive{1996..1999}/vol{1..4}/part{a,b,c}.html'));
-console.log(expand('http://www.numericals.com/file{1..100..10}.txt'));
-console.log(expand('http://www.letters.com/file{a..z..2}.txt'));
-console.log(expand('mkdir /usr/local/src/bash/{old,new,dist,bugs}'));
-console.log(expand('chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}'));
-

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/brace-expansion/index.js
----------------------------------------------------------------------
diff --git a/node_modules/brace-expansion/index.js b/node_modules/brace-expansion/index.js
index 932718f..955f27c 100644
--- a/node_modules/brace-expansion/index.js
+++ b/node_modules/brace-expansion/index.js
@@ -66,6 +66,16 @@ function expandTop(str) {
   if (!str)
     return [];
 
+  // I don't know why Bash 4.3 does this, but it does.
+  // Anything starting with {} will have the first two bytes preserved
+  // but *only* at the top level, so {},a}b will not expand to anything,
+  // but a{},b}c will be expanded to [a}c,abc].
+  // One could argue that this is a bug in Bash, but since the goal of
+  // this module is to match Bash's rules, we escape a leading {}
+  if (str.substr(0, 2) === '{}') {
+    str = '\\{\\}' + str.substr(2);
+  }
+
   return expand(escapeBraces(str), true).map(unescapeBraces);
 }
 

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/brace-expansion/package.json
----------------------------------------------------------------------
diff --git a/node_modules/brace-expansion/package.json b/node_modules/brace-expansion/package.json
index 55f4281..33a4d08 100644
--- a/node_modules/brace-expansion/package.json
+++ b/node_modules/brace-expansion/package.json
@@ -1,45 +1,54 @@
 {
   "_args": [
     [
-      "brace-expansion@^1.0.0",
-      "D:\\Cordova\\cordova-android\\node_modules\\minimatch"
+      {
+        "raw": "brace-expansion@^1.0.0",
+        "scope": null,
+        "escapedName": "brace-expansion",
+        "name": "brace-expansion",
+        "rawSpec": "^1.0.0",
+        "spec": ">=1.0.0 <2.0.0",
+        "type": "range"
+      },
+      "/Users/steveng/repo/cordova/cordova-android/node_modules/minimatch"
     ]
   ],
   "_from": "brace-expansion@>=1.0.0 <2.0.0",
-  "_id": "brace-expansion@1.1.4",
+  "_id": "brace-expansion@1.1.6",
   "_inCache": true,
   "_installable": true,
   "_location": "/brace-expansion",
-  "_nodeVersion": "6.0.0",
+  "_nodeVersion": "4.4.7",
   "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/brace-expansion-1.1.4.tgz_1462130058897_0.14984136167913675"
+    "host": "packages-16-east.internal.npmjs.com",
+    "tmp": "tmp/brace-expansion-1.1.6.tgz_1469047715600_0.9362958471756428"
   },
   "_npmUser": {
-    "email": "julian@juliangruber.com",
-    "name": "juliangruber"
+    "name": "juliangruber",
+    "email": "julian@juliangruber.com"
   },
-  "_npmVersion": "3.8.6",
+  "_npmVersion": "2.15.8",
   "_phantomChildren": {},
   "_requested": {
-    "name": "brace-expansion",
     "raw": "brace-expansion@^1.0.0",
-    "rawSpec": "^1.0.0",
     "scope": null,
+    "escapedName": "brace-expansion",
+    "name": "brace-expansion",
+    "rawSpec": "^1.0.0",
     "spec": ">=1.0.0 <2.0.0",
     "type": "range"
   },
   "_requiredBy": [
     "/minimatch"
   ],
-  "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.4.tgz",
-  "_shasum": "464a204c77f482c085c2a36c456bbfbafb67a127",
+  "_resolved": "http://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
+  "_shasum": "7197d7eaa9b87e648390ea61fc66c84427420df9",
   "_shrinkwrap": null,
   "_spec": "brace-expansion@^1.0.0",
-  "_where": "D:\\Cordova\\cordova-android\\node_modules\\minimatch",
+  "_where": "/Users/steveng/repo/cordova/cordova-android/node_modules/minimatch",
   "author": {
-    "email": "mail@juliangruber.com",
     "name": "Julian Gruber",
+    "email": "mail@juliangruber.com",
     "url": "http://juliangruber.com"
   },
   "bugs": {
@@ -51,26 +60,26 @@
   },
   "description": "Brace expansion as known from sh/bash",
   "devDependencies": {
-    "tape": "4.5.1"
+    "tape": "^4.6.0"
   },
   "directories": {},
   "dist": {
-    "shasum": "464a204c77f482c085c2a36c456bbfbafb67a127",
-    "tarball": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.4.tgz"
+    "shasum": "7197d7eaa9b87e648390ea61fc66c84427420df9",
+    "tarball": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
   },
-  "gitHead": "1660b75d0bf03b022e7888b576cd5a4080692c1d",
+  "gitHead": "791262fa06625e9c5594cde529a21d82086af5f2",
   "homepage": "https://github.com/juliangruber/brace-expansion",
   "keywords": [],
   "license": "MIT",
   "main": "index.js",
   "maintainers": [
     {
-      "email": "julian@juliangruber.com",
-      "name": "juliangruber"
+      "name": "juliangruber",
+      "email": "julian@juliangruber.com"
     },
     {
-      "email": "isaacs@npmjs.com",
-      "name": "isaacs"
+      "name": "isaacs",
+      "email": "isaacs@npmjs.com"
     }
   ],
   "name": "brace-expansion",
@@ -85,6 +94,7 @@
     "test": "tape test/*.js"
   },
   "testling": {
+    "files": "test/*.js",
     "browsers": [
       "ie/8..latest",
       "firefox/20..latest",
@@ -97,8 +107,7 @@
       "ipad/6.0..latest",
       "iphone/6.0..latest",
       "android-browser/4.2..latest"
-    ],
-    "files": "test/*.js"
+    ]
   },
-  "version": "1.1.4"
+  "version": "1.1.6"
 }

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/concat-map/package.json
----------------------------------------------------------------------
diff --git a/node_modules/concat-map/package.json b/node_modules/concat-map/package.json
index a011e1c..fcb5849 100644
--- a/node_modules/concat-map/package.json
+++ b/node_modules/concat-map/package.json
@@ -1,8 +1,16 @@
 {
   "_args": [
     [
-      "concat-map@0.0.1",
-      "D:\\Cordova\\cordova-android\\node_modules\\brace-expansion"
+      {
+        "raw": "concat-map@0.0.1",
+        "scope": null,
+        "escapedName": "concat-map",
+        "name": "concat-map",
+        "rawSpec": "0.0.1",
+        "spec": "0.0.1",
+        "type": "version"
+      },
+      "/Users/steveng/repo/cordova/cordova-android/node_modules/brace-expansion"
     ]
   ],
   "_from": "concat-map@0.0.1",
@@ -11,30 +19,31 @@
   "_installable": true,
   "_location": "/concat-map",
   "_npmUser": {
-    "email": "mail@substack.net",
-    "name": "substack"
+    "name": "substack",
+    "email": "mail@substack.net"
   },
   "_npmVersion": "1.3.21",
   "_phantomChildren": {},
   "_requested": {
-    "name": "concat-map",
     "raw": "concat-map@0.0.1",
-    "rawSpec": "0.0.1",
     "scope": null,
+    "escapedName": "concat-map",
+    "name": "concat-map",
+    "rawSpec": "0.0.1",
     "spec": "0.0.1",
     "type": "version"
   },
   "_requiredBy": [
     "/brace-expansion"
   ],
-  "_resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+  "_resolved": "http://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
   "_shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b",
   "_shrinkwrap": null,
   "_spec": "concat-map@0.0.1",
-  "_where": "D:\\Cordova\\cordova-android\\node_modules\\brace-expansion",
+  "_where": "/Users/steveng/repo/cordova/cordova-android/node_modules/brace-expansion",
   "author": {
-    "email": "mail@substack.net",
     "name": "James Halliday",
+    "email": "mail@substack.net",
     "url": "http://substack.net"
   },
   "bugs": {
@@ -65,8 +74,8 @@
   "main": "index.js",
   "maintainers": [
     {
-      "email": "mail@substack.net",
-      "name": "substack"
+      "name": "substack",
+      "email": "mail@substack.net"
     }
   ],
   "name": "concat-map",
@@ -80,30 +89,30 @@
     "test": "tape test/*.js"
   },
   "testling": {
+    "files": "test/*.js",
     "browsers": {
-      "chrome": [
-        10,
-        22
-      ],
-      "ff": [
-        3.5,
-        10,
-        15
-      ],
       "ie": [
         6,
         7,
         8,
         9
       ],
-      "opera": [
-        12
+      "ff": [
+        3.5,
+        10,
+        15
+      ],
+      "chrome": [
+        10,
+        22
       ],
       "safari": [
         5.1
+      ],
+      "opera": [
+        12
       ]
-    },
-    "files": "test/*.js"
+    }
   },
   "version": "0.0.1"
 }

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/cordova-common/README.md
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/README.md b/node_modules/cordova-common/README.md
index 6454481..c5dcfd5 100644
--- a/node_modules/cordova-common/README.md
+++ b/node_modules/cordova-common/README.md
@@ -28,7 +28,7 @@ Expoeses shared functionality used by [cordova-lib](https://github.com/apache/co
 Represents special instance of NodeJS EventEmitter which is intended to be used to post events to cordova-lib and cordova-cli
 
 Usage:
-```
+```js
 var events = require('cordova-common').events;
 events.emit('warn', 'Some warning message')
 ```
@@ -41,7 +41,7 @@ An error class used by Cordova to throw cordova-specific errors. The CordovaErro
 
 Usage:
 
-```
+```js
 var CordovaError = require('cordova-common').CordovaError;
 throw new CordovaError('Some error message', SOME_ERR_CODE);
 ```
@@ -53,7 +53,7 @@ See [CordovaError](src/CordovaError/CordovaError.js) for supported error codes.
 Exposes functionality to deal with cordova project `config.xml` files. For ConfigParser API reference check [ConfigParser Readme](src/ConfigParser/README.md).
 
 Usage:
-```
+```js
 var ConfigParser = require('cordova-common').ConfigParser;
 var appConfig = new ConfigParser('path/to/cordova-app/config.xml');
 console.log(appconfig.name() + ':' + appConfig.version());
@@ -64,7 +64,7 @@ console.log(appconfig.name() + ':' + appConfig.version());
 `PluginInfo` is a wrapper for cordova plugins' `plugin.xml` files. This class may be instantiated directly or via `PluginInfoProvider`. The difference is that `PluginInfoProvider` caches `PluginInfo` instances based on plugin source directory.
 
 Usage:
-```
+```js
 var PluginInfo: require('cordova-common').PluginInfo;
 var PluginInfoProvider: require('cordova-common').PluginInfoProvider;
 
@@ -80,7 +80,7 @@ console.log('The plugin ' + plugin1.id + ' has version ' + plugin1.version)
 Utility module for dealing with sequential tasks. Provides a set of tasks that are needed to be done and reverts all tasks that are already completed if one of those tasks fail to complete. Used internally by cordova-lib and platform's plugin installation routines.
 
 Usage:
-```
+```js
 var ActionStack = require('cordova-common').ActionStack;
 var stack = new ActionStack()
 
@@ -104,7 +104,7 @@ stack.process()
 Module for spawning child processes with some advanced logic.
 
 Usage:
-```
+```js
 var superspawn = require('cordova-common').superspawn;
 superspawn.spawn('adb', ['devices'])
 .progress(function(data){
@@ -121,7 +121,7 @@ superspawn.spawn('adb', ['devices'])
 A set of utility methods for dealing with xml files.
 
 Usage:
-```
+```js
 var xml = require('cordova-common').xmlHelpers;
 
 var xmlDoc1 = xml.parseElementtreeSync('some/xml/file');

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/cordova-common/RELEASENOTES.md
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/RELEASENOTES.md b/node_modules/cordova-common/RELEASENOTES.md
index 7a99cc9..71ad1ea 100644
--- a/node_modules/cordova-common/RELEASENOTES.md
+++ b/node_modules/cordova-common/RELEASENOTES.md
@@ -20,6 +20,9 @@
 -->
 # Cordova-common Release Notes
 
+### 1.4.0 (Jul 12, 2016)
+* [CB-11023](https://issues.apache.org/jira/browse/CB-11023) Add edit-config functionality
+
 ### 1.3.0 (May 12, 2016)
 * [CB-11259](https://issues.apache.org/jira/browse/CB-11259): Improving prepare and build logging
 * [CB-11194](https://issues.apache.org/jira/browse/CB-11194) Improve cordova load time

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/cordova-common/package.json
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/package.json b/node_modules/cordova-common/package.json
index d4dddc4..f71b569 100644
--- a/node_modules/cordova-common/package.json
+++ b/node_modules/cordova-common/package.json
@@ -1,48 +1,57 @@
 {
   "_args": [
     [
-      "cordova-common@^1.3.0",
-      "D:\\Cordova\\cordova-android"
+      {
+        "raw": "cordova-common@^1.4.0",
+        "scope": null,
+        "escapedName": "cordova-common",
+        "name": "cordova-common",
+        "rawSpec": "^1.4.0",
+        "spec": ">=1.4.0 <2.0.0",
+        "type": "range"
+      },
+      "/Users/steveng/repo/cordova/cordova-android"
     ]
   ],
-  "_from": "cordova-common@>=1.3.0 <2.0.0",
-  "_id": "cordova-common@1.3.0",
+  "_from": "cordova-common@>=1.4.0 <2.0.0",
+  "_id": "cordova-common@1.4.0",
   "_inCache": true,
   "_installable": true,
   "_location": "/cordova-common",
-  "_nodeVersion": "5.4.1",
+  "_nodeVersion": "6.3.0",
   "_npmOperationalInternal": {
     "host": "packages-16-east.internal.npmjs.com",
-    "tmp": "tmp/cordova-common-1.3.0.tgz_1464130094288_0.48495062021538615"
+    "tmp": "tmp/cordova-common-1.4.0.tgz_1469092638680_0.9961137105710804"
   },
   "_npmUser": {
-    "email": "stevengill97@gmail.com",
-    "name": "stevegill"
+    "name": "kotikov.vladimir",
+    "email": "kotikov.vladimir@gmail.com"
   },
-  "_npmVersion": "3.9.0",
+  "_npmVersion": "3.10.5",
   "_phantomChildren": {},
   "_requested": {
-    "name": "cordova-common",
-    "raw": "cordova-common@^1.3.0",
-    "rawSpec": "^1.3.0",
+    "raw": "cordova-common@^1.4.0",
     "scope": null,
-    "spec": ">=1.3.0 <2.0.0",
+    "escapedName": "cordova-common",
+    "name": "cordova-common",
+    "rawSpec": "^1.4.0",
+    "spec": ">=1.4.0 <2.0.0",
     "type": "range"
   },
   "_requiredBy": [
     "/"
   ],
-  "_resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-1.3.0.tgz",
-  "_shasum": "f75161f6aa7cef5486fd5d69a3b0a1f628334491",
+  "_resolved": "http://registry.npmjs.org/cordova-common/-/cordova-common-1.4.0.tgz",
+  "_shasum": "b3ba73595caa34fe8250ac11f20a4ed44e7c84e4",
   "_shrinkwrap": null,
-  "_spec": "cordova-common@^1.3.0",
-  "_where": "D:\\Cordova\\cordova-android",
+  "_spec": "cordova-common@^1.4.0",
+  "_where": "/Users/steveng/repo/cordova/cordova-android",
   "author": {
     "name": "Apache Software Foundation"
   },
   "bugs": {
-    "email": "dev@cordova.apache.org",
-    "url": "https://issues.apache.org/jira/browse/CB"
+    "url": "https://issues.apache.org/jira/browse/CB",
+    "email": "dev@cordova.apache.org"
   },
   "contributors": [],
   "dependencies": {
@@ -70,8 +79,8 @@
   },
   "directories": {},
   "dist": {
-    "shasum": "f75161f6aa7cef5486fd5d69a3b0a1f628334491",
-    "tarball": "https://registry.npmjs.org/cordova-common/-/cordova-common-1.3.0.tgz"
+    "shasum": "b3ba73595caa34fe8250ac11f20a4ed44e7c84e4",
+    "tarball": "https://registry.npmjs.org/cordova-common/-/cordova-common-1.4.0.tgz"
   },
   "engineStrict": true,
   "engines": {
@@ -81,28 +90,28 @@
   "main": "cordova-common.js",
   "maintainers": [
     {
-      "email": "bowserj@apache.org",
-      "name": "bowserj"
+      "name": "bowserj",
+      "email": "bowserj@apache.org"
     },
     {
-      "email": "kotikov.vladimir@gmail.com",
-      "name": "kotikov.vladimir"
+      "name": "kotikov.vladimir",
+      "email": "kotikov.vladimir@gmail.com"
     },
     {
-      "email": "purplecabbage@gmail.com",
-      "name": "purplecabbage"
+      "name": "purplecabbage",
+      "email": "purplecabbage@gmail.com"
     },
     {
-      "email": "shazron@gmail.com",
-      "name": "shazron"
+      "name": "shazron",
+      "email": "shazron@gmail.com"
     },
     {
-      "email": "stevengill97@gmail.com",
-      "name": "stevegill"
+      "name": "stevegill",
+      "email": "stevengill97@gmail.com"
     },
     {
-      "email": "npmjs@barhams.info",
-      "name": "timbarham"
+      "name": "timbarham",
+      "email": "npmjs@barhams.info"
     }
   ],
   "name": "cordova-common",
@@ -118,5 +127,5 @@
     "jshint": "node node_modules/jshint/bin/jshint src && node node_modules/jshint/bin/jshint spec",
     "test": "npm run jshint && npm run jasmine"
   },
-  "version": "1.3.0"
+  "version": "1.4.0"
 }

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/cordova-common/src/ConfigChanges/ConfigChanges.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/src/ConfigChanges/ConfigChanges.js b/node_modules/cordova-common/src/ConfigChanges/ConfigChanges.js
index a914fc8..a395c6d 100644
--- a/node_modules/cordova-common/src/ConfigChanges/ConfigChanges.js
+++ b/node_modules/cordova-common/src/ConfigChanges/ConfigChanges.js
@@ -36,9 +36,11 @@ var fs   = require('fs'),
     et   = require('elementtree'),
     semver = require('semver'),
     events = require('../events'),
-    ConfigKeeper = require('./ConfigKeeper');
+    ConfigKeeper = require('./ConfigKeeper'),
+    CordovaLogger = require('../CordovaLogger');
 
 var mungeutil = require('./munge-util');
+var xml_helpers = require('../util/xml-helpers');
 
 exports.PlatformMunger = PlatformMunger;
 
@@ -95,9 +97,10 @@ function remove_plugin_changes(pluginInfo, is_top_level) {
     var plugin_vars = is_top_level ?
         platform_config.installed_plugins[pluginInfo.id] :
         platform_config.dependent_plugins[pluginInfo.id];
+    var edit_config_changes = pluginInfo.getEditConfigs(self.platform);
 
     // get config munge, aka how did this plugin change various config files
-    var config_munge = self.generate_plugin_config_munge(pluginInfo, plugin_vars);
+    var config_munge = self.generate_plugin_config_munge(pluginInfo, plugin_vars, edit_config_changes);
     // global munge looks at all plugins' changes to config files
     var global_munge = platform_config.config_munge;
     var munge = mungeutil.decrement_munge(global_munge, config_munge);
@@ -125,12 +128,40 @@ function remove_plugin_changes(pluginInfo, is_top_level) {
 
 
 PlatformMunger.prototype.add_plugin_changes = add_plugin_changes;
-function add_plugin_changes(pluginInfo, plugin_vars, is_top_level, should_increment) {
+function add_plugin_changes(pluginInfo, plugin_vars, is_top_level, should_increment, plugin_force) {
     var self = this;
     var platform_config = self.platformJson.root;
+    var edit_config_changes = pluginInfo.getEditConfigs(self.platform);
+    var config_munge;
 
-    // get config munge, aka how should this plugin change various config files
-    var config_munge = self.generate_plugin_config_munge(pluginInfo, plugin_vars);
+    if (!edit_config_changes || edit_config_changes.length === 0) {
+        // get config munge, aka how should this plugin change various config files
+        config_munge = self.generate_plugin_config_munge(pluginInfo, plugin_vars);
+    }
+    else {
+        var isConflictingInfo = is_conflicting(edit_config_changes, platform_config.config_munge, self, plugin_force);
+        if (plugin_force) {
+            CordovaLogger.get().log(CordovaLogger.WARN, '--force is used. edit-config will overwrite conflicts if any. Conflicting plugins may not work as expected.');
+
+            // remove conflicting munges
+            var conflict_munge = mungeutil.decrement_munge(platform_config.config_munge, isConflictingInfo.conflictingMunge);
+            for (var conflict_file in conflict_munge.files) {
+                self.apply_file_munge(conflict_file, conflict_munge.files[conflict_file], /* remove = */ true);
+            }
+
+            // force add new munges
+            config_munge = self.generate_plugin_config_munge(pluginInfo, plugin_vars, edit_config_changes);
+        }
+        else if(isConflictingInfo.conflictFound) {
+            throw new Error('There was a conflict trying to modify attributes with <edit-config> in plugin ' + pluginInfo.id +
+            '. The conflicting plugin, ' + isConflictingInfo.conflictingPlugin + ', already modified the same attributes. The conflict must be resolved before ' +
+            pluginInfo.id + ' can be added. You may use --force to add the plugin and overwrite the conflicting attributes.');
+        }
+        else {
+            // no conflicts, will handle edit-config
+            config_munge = self.generate_plugin_config_munge(pluginInfo, plugin_vars, edit_config_changes);
+        }
+    }
     // global munge looks at all plugins' changes to config files
 
     // TODO: The should_increment param is only used by cordova-cli and is going away soon.
@@ -186,13 +217,17 @@ function reapply_global_munge () {
 // generate_plugin_config_munge
 // Generate the munge object from plugin.xml + vars
 PlatformMunger.prototype.generate_plugin_config_munge = generate_plugin_config_munge;
-function generate_plugin_config_munge(pluginInfo, vars) {
+function generate_plugin_config_munge(pluginInfo, vars, edit_config_changes) {
     var self = this;
 
     vars = vars || {};
     var munge = { files: {} };
     var changes = pluginInfo.getConfigFiles(self.platform);
 
+    if(edit_config_changes) {
+        Array.prototype.push.apply(changes, edit_config_changes);
+    }
+
     // Demux 'package.appxmanifest' into relevant platform-specific appx manifests.
     // Only spend the cycles if there are version-specific plugin settings
     if (self.platform === 'windows' &&
@@ -291,12 +326,69 @@ function generate_plugin_config_munge(pluginInfo, vars) {
                 });
             }
             // 2. add into munge
-            mungeutil.deep_add(munge, change.target, change.parent, { xml: stringified, count: 1, after: change.after });
+            if (change.mode) {
+                mungeutil.deep_add(munge, change.file, change.target, { xml: stringified, count: 1, mode: change.mode, plugin: pluginInfo.id });
+            }
+            else {
+                mungeutil.deep_add(munge, change.target, change.parent, { xml: stringified, count: 1, after: change.after });
+            }
         });
     });
     return munge;
 }
 
+function is_conflicting(editchanges, config_munge, self, force) {
+    var files = config_munge.files;
+    var conflictFound = false;
+    var conflictingMunge = { files: {} };
+    var conflictingParent;
+    var conflictingPlugin;
+
+    editchanges.forEach(function(editchange) {
+        if (files[editchange.file]) {
+            var parents = files[editchange.file].parents;
+            var target = parents[editchange.target];
+
+            // Check if the edit target will resolve to an existing target
+            if (!target || target.length === 0) {
+                var file_xml = self.config_keeper.get(self.project_dir, self.platform, editchange.file).data;
+                var resolveEditTarget = xml_helpers.resolveParent(file_xml, editchange.target);
+                var resolveTarget;
+
+                if (resolveEditTarget) {
+                    for (var parent in parents) {
+                        resolveTarget = xml_helpers.resolveParent(file_xml, parent);
+                        if (resolveEditTarget === resolveTarget) {
+                            conflictingParent = parent;
+                            target = parents[parent];
+                            break;
+                        }
+                    }
+                }
+            }
+            else {
+                conflictingParent = editchange.target;
+            }
+
+            if (target.length !== 0) {
+                // conflict has been found, exit and throw an error
+                conflictFound = true;
+                if (!force) {
+                    // since there has been modifications to the attributes at this target,
+                    // the current plugin should not modify the attributes
+                    conflictingPlugin = target[0].plugin;
+                    return;
+                }
+
+                // need to find all conflicts when --force is used, track conflicting munges
+                mungeutil.deep_add(conflictingMunge, editchange.file, conflictingParent, target[0]);
+            }
+        }
+    });
+
+    return {conflictFound: conflictFound, conflictingPlugin: conflictingPlugin, conflictingMunge: conflictingMunge};
+}
+
 // Go over the prepare queue and apply the config munges for each plugin
 // that has been (un)installed.
 PlatformMunger.prototype.process = PlatformMunger_process;
@@ -313,7 +405,7 @@ function PlatformMunger_process(plugins_dir) {
     // Now handle installation
     platform_config.prepare_queue.installed.forEach(function(u) {
         var pluginInfo = self.pluginInfoProvider.get(path.join(plugins_dir, u.plugin));
-        self.add_plugin_changes(pluginInfo, u.vars, u.topLevel, true);
+        self.add_plugin_changes(pluginInfo, u.vars, u.topLevel, true, u.force);
     });
 
     // Empty out installed/ uninstalled queues.

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/cordova-common/src/ConfigChanges/ConfigFile.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/src/ConfigChanges/ConfigFile.js b/node_modules/cordova-common/src/ConfigChanges/ConfigFile.js
index 9c540b9..179d54d 100644
--- a/node_modules/cordova-common/src/ConfigChanges/ConfigFile.js
+++ b/node_modules/cordova-common/src/ConfigChanges/ConfigFile.js
@@ -103,7 +103,16 @@ ConfigFile.prototype.graft_child = function ConfigFile_graft_child(selector, xml
     var result;
     if (self.type === 'xml') {
         var xml_to_graft = [modules.et.XML(xml_child.xml)];
-        result = modules.xml_helpers.graftXML(self.data, xml_to_graft, selector, xml_child.after);
+        switch (xml_child.mode) {
+            case 'merge':
+                result = modules.xml_helpers.graftXMLMerge(self.data, xml_to_graft, selector, xml_child);
+                break;
+            case 'overwrite':
+                result = modules.xml_helpers.graftXMLOverwrite(self.data, xml_to_graft, selector, xml_child);
+                break;
+            default:
+                result = modules.xml_helpers.graftXML(self.data, xml_to_graft, selector, xml_child.after);
+        }
         if ( !result) {
             throw new Error('Unable to graft xml at selector "' + selector + '" from "' + filepath + '" during config install');
         }
@@ -123,7 +132,14 @@ ConfigFile.prototype.prune_child = function ConfigFile_prune_child(selector, xml
     var result;
     if (self.type === 'xml') {
         var xml_to_graft = [modules.et.XML(xml_child.xml)];
-        result = modules.xml_helpers.pruneXML(self.data, xml_to_graft, selector);
+        switch (xml_child.mode) {
+            case 'merge':
+            case 'overwrite':
+                result = modules.xml_helpers.pruneXMLRestore(self.data, selector, xml_child);
+                break;
+            default:
+                result = modules.xml_helpers.pruneXML(self.data, xml_to_graft, selector);
+        }
     } else {
         // plist file
         result = modules.plist_helpers.prunePLIST(self.data, xml_child.xml, selector);

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/cordova-common/src/ConfigChanges/munge-util.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/src/ConfigChanges/munge-util.js b/node_modules/cordova-common/src/ConfigChanges/munge-util.js
index 307b3c1..0149bab 100644
--- a/node_modules/cordova-common/src/ConfigChanges/munge-util.js
+++ b/node_modules/cordova-common/src/ConfigChanges/munge-util.js
@@ -52,6 +52,9 @@ exports.deep_remove = function deep_remove(obj, keys /* or key1, key2 .... */ )
             return element.xml == k.xml;
         });
         if (found) {
+            if (parentArray[index].oldAttrib) {
+                k.oldAttrib = _.extend({}, parentArray[index].oldAttrib);
+            }
             found.count -= k.count;
             if (found.count > 0) {
                 return false;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/cordova-common/src/PlatformJson.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/src/PlatformJson.js b/node_modules/cordova-common/src/PlatformJson.js
index 4e2b287..ab94b5f 100644
--- a/node_modules/cordova-common/src/PlatformJson.js
+++ b/node_modules/cordova-common/src/PlatformJson.js
@@ -162,8 +162,8 @@ PlatformJson.prototype.removePluginMetadata = function (pluginInfo) {
     return this;
 };
 
-PlatformJson.prototype.addInstalledPluginToPrepareQueue = function(pluginDirName, vars, is_top_level) {
-    this.root.prepare_queue.installed.push({'plugin':pluginDirName, 'vars':vars, 'topLevel':is_top_level});
+PlatformJson.prototype.addInstalledPluginToPrepareQueue = function(pluginDirName, vars, is_top_level, force) {
+    this.root.prepare_queue.installed.push({'plugin':pluginDirName, 'vars':vars, 'topLevel':is_top_level, 'force':force});
 };
 
 PlatformJson.prototype.addUninstalledPluginToPrepareQueue = function(pluginId, is_top_level) {
@@ -276,4 +276,3 @@ function ModuleMetadata (pluginId, jsModule) {
 }
 
 module.exports = PlatformJson;
-

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/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 77199ec..bf1f75b 100644
--- a/node_modules/cordova-common/src/PluginInfo/PluginInfo.js
+++ b/node_modules/cordova-common/src/PluginInfo/PluginInfo.js
@@ -146,6 +146,22 @@ function PluginInfo(dirname) {
         return configFile;
     }
 
+    self.getEditConfigs = getEditConfigs;
+    function getEditConfigs(platform) {
+        var editConfigs = _getTags(self._et, 'edit-config', platform, _parseEditConfigs);
+        return editConfigs;
+    }
+
+    function _parseEditConfigs(tag) {
+        var editConfig =
+        { file : tag.attrib['file']
+        , target : tag.attrib['target']
+        , mode : tag.attrib['mode']
+        , xmls : tag.getchildren()
+        };
+        return editConfig;
+    }
+
     // <info> tags, both global and within a <platform>
     // TODO (kamrik): Do we ever use <info> under <platform>? Example wanted.
     self.getInfo = getInfo;
@@ -382,7 +398,7 @@ function _getTags(pelem, tag, platform, transform) {
     return tags;
 }
 
-// Same as _getTags() but only looks inside a platfrom section.
+// Same as _getTags() but only looks inside a platform section.
 function _getTagsInPlatform(pelem, tag, platform, transform) {
     var platformTag = pelem.find('./platform[@name="' + platform + '"]');
     var tags = platformTag ? platformTag.findall(tag) : [];

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/cordova-common/src/PluginManager.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/src/PluginManager.js b/node_modules/cordova-common/src/PluginManager.js
index c3a29fc..e8968f1 100644
--- a/node_modules/cordova-common/src/PluginManager.js
+++ b/node_modules/cordova-common/src/PluginManager.js
@@ -123,7 +123,7 @@ PluginManager.prototype.doOperation = function (operation, plugin, options) {
         if (operation === PluginManager.INSTALL) {
             // Ignore passed `is_top_level` option since platform itself doesn't know
             // anything about managing dependencies - it's responsibility of caller.
-            self.munger.add_plugin_changes(plugin, options.variables, /*is_top_level=*/true, /*should_increment=*/true);
+            self.munger.add_plugin_changes(plugin, options.variables, /*is_top_level=*/true, /*should_increment=*/true, options.force);
             self.munger.platformJson.addPluginMetadata(plugin);
         } else {
             self.munger.remove_plugin_changes(plugin, /*is_top_level=*/true);

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/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 6366af9..f16eaaf 100644
--- a/node_modules/cordova-common/src/util/xml-helpers.js
+++ b/node_modules/cordova-common/src/util/xml-helpers.js
@@ -29,6 +29,9 @@ var fs = require('fs')
   , et = require('elementtree')
   ;
 
+  var ROOT = /^\/([^\/]*)/,
+      ABSOLUTE = /^\/([^\/]*)\/(.*)/;
+
 module.exports = {
     // compare two et.XML nodes, see if they match
     // compares tagName, text, attributes and children (recursively)
@@ -68,7 +71,7 @@ module.exports = {
 
     // adds node to doc at selector, creating parent if it doesn't exist
     graftXML: function(doc, nodes, selector, after) {
-        var parent = resolveParent(doc, selector);
+        var parent = module.exports.resolveParent(doc, selector);
         if (!parent) {
             //Try to create the parent recursively if necessary
             try {
@@ -79,7 +82,7 @@ module.exports = {
             } catch (e) {
                 return false;
             }
-            parent = resolveParent(doc, selector);
+            parent = module.exports.resolveParent(doc, selector);
             if (!parent) return false;
         }
 
@@ -97,9 +100,54 @@ module.exports = {
         return true;
     },
 
+    // adds new attributes to doc at selector
+    // Will only merge if attribute has not been modified already or --force is used
+    graftXMLMerge: function(doc, nodes, selector, xml) {
+        var target = module.exports.resolveParent(doc, selector);
+        if (!target) return false;
+
+        // saves the attributes of the original xml before making changes
+        xml.oldAttrib = _.extend({}, target.attrib);
+
+        nodes.forEach(function (node) {
+            var attributes = node.attrib;
+            for (var attribute in attributes) {
+                target.attrib[attribute] = node.attrib[attribute];
+            }
+        });
+
+        return true;
+    },
+
+    // overwrite all attributes to doc at selector with new attributes
+    // Will only overwrite if attribute has not been modified already or --force is used
+    graftXMLOverwrite: function(doc, nodes, selector, xml) {
+        var target = module.exports.resolveParent(doc, selector);
+        if (!target) return false;
+
+        // saves the attributes of the original xml before making changes
+        xml.oldAttrib = _.extend({}, target.attrib);
+
+        // remove old attributes from target
+        var targetAttributes = target.attrib;
+        for (var targetAttribute in targetAttributes) {
+            delete targetAttributes[targetAttribute];
+        }
+
+        // add new attributes to target
+        nodes.forEach(function (node) {
+            var attributes = node.attrib;
+            for (var attribute in attributes) {
+                target.attrib[attribute] = node.attrib[attribute];
+            }
+        });
+
+        return true;
+    },
+
     // removes node from doc at selector
     pruneXML: function(doc, nodes, selector) {
-        var parent = resolveParent(doc, selector);
+        var parent = module.exports.resolveParent(doc, selector);
         if (!parent) return false;
 
         nodes.forEach(function (node) {
@@ -114,6 +162,19 @@ module.exports = {
         return true;
     },
 
+    // restores attributes from doc at selector
+    pruneXMLRestore: function(doc, selector, xml) {
+        var target = module.exports.resolveParent(doc, selector);
+        if (!target) return false;
+
+        if (xml.oldAttrib) {
+            target.attrib = _.extend({}, xml.oldAttrib);
+        }
+
+        return true;
+    },
+
+
     parseElementtreeSync: function (filename) {
         var contents = fs.readFileSync(filename, 'utf-8');
         if(contents) {
@@ -121,6 +182,30 @@ module.exports = {
             contents = contents.substring(contents.indexOf('<'));
         }
         return new et.ElementTree(et.XML(contents));
+    },
+
+    resolveParent: function (doc, selector) {
+        var parent, tagName, subSelector;
+
+        // handle absolute selector (which elementtree doesn't like)
+        if (ROOT.test(selector)) {
+            tagName = selector.match(ROOT)[1];
+            // test for wildcard "any-tag" root selector
+            if (tagName == '*' || tagName === doc._root.tag) {
+                parent = doc._root;
+
+                // could be an absolute path, but not selecting the root
+                if (ABSOLUTE.test(selector)) {
+                    subSelector = selector.match(ABSOLUTE)[2];
+                    parent = parent.find(subSelector);
+                }
+            } else {
+                return false;
+            }
+        } else {
+            parent = doc.find(selector);
+        }
+        return parent;
     }
 };
 
@@ -152,33 +237,6 @@ function uniqueChild(node, parent) {
     }
 }
 
-var ROOT = /^\/([^\/]*)/,
-    ABSOLUTE = /^\/([^\/]*)\/(.*)/;
-
-function resolveParent(doc, selector) {
-    var parent, tagName, subSelector;
-
-    // handle absolute selector (which elementtree doesn't like)
-    if (ROOT.test(selector)) {
-        tagName = selector.match(ROOT)[1];
-        // test for wildcard "any-tag" root selector
-        if (tagName == '*' || tagName === doc._root.tag) {
-            parent = doc._root;
-
-            // could be an absolute path, but not selecting the root
-            if (ABSOLUTE.test(selector)) {
-                subSelector = selector.match(ABSOLUTE)[2];
-                parent = parent.find(subSelector);
-            }
-        } else {
-            return false;
-        }
-    } else {
-        parent = doc.find(selector);
-    }
-    return parent;
-}
-
 // Find the index at which to insert an entry. After is a ;-separated priority list
 // of tags after which the insertion should be made. E.g. If we need to
 // insert an element C, and the rule is that the order of children has to be
@@ -257,19 +315,19 @@ 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');

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/cordova-registry-mapper/package.json
----------------------------------------------------------------------
diff --git a/node_modules/cordova-registry-mapper/package.json b/node_modules/cordova-registry-mapper/package.json
index d9c8324..f835196 100644
--- a/node_modules/cordova-registry-mapper/package.json
+++ b/node_modules/cordova-registry-mapper/package.json
@@ -1,8 +1,16 @@
 {
   "_args": [
     [
-      "cordova-registry-mapper@^1.1.8",
-      "D:\\Cordova\\cordova-android\\node_modules\\cordova-common"
+      {
+        "raw": "cordova-registry-mapper@^1.1.8",
+        "scope": null,
+        "escapedName": "cordova-registry-mapper",
+        "name": "cordova-registry-mapper",
+        "rawSpec": "^1.1.8",
+        "spec": ">=1.1.8 <2.0.0",
+        "type": "range"
+      },
+      "/Users/steveng/repo/cordova/cordova-android/node_modules/cordova-common"
     ]
   ],
   "_from": "cordova-registry-mapper@>=1.1.8 <2.0.0",
@@ -12,27 +20,28 @@
   "_location": "/cordova-registry-mapper",
   "_nodeVersion": "5.4.1",
   "_npmUser": {
-    "email": "stevengill97@gmail.com",
-    "name": "stevegill"
+    "name": "stevegill",
+    "email": "stevengill97@gmail.com"
   },
   "_npmVersion": "3.5.3",
   "_phantomChildren": {},
   "_requested": {
-    "name": "cordova-registry-mapper",
     "raw": "cordova-registry-mapper@^1.1.8",
-    "rawSpec": "^1.1.8",
     "scope": null,
+    "escapedName": "cordova-registry-mapper",
+    "name": "cordova-registry-mapper",
+    "rawSpec": "^1.1.8",
     "spec": ">=1.1.8 <2.0.0",
     "type": "range"
   },
   "_requiredBy": [
     "/cordova-common"
   ],
-  "_resolved": "https://registry.npmjs.org/cordova-registry-mapper/-/cordova-registry-mapper-1.1.15.tgz",
+  "_resolved": "http://registry.npmjs.org/cordova-registry-mapper/-/cordova-registry-mapper-1.1.15.tgz",
   "_shasum": "e244b9185b8175473bff6079324905115f83dc7c",
   "_shrinkwrap": null,
   "_spec": "cordova-registry-mapper@^1.1.8",
-  "_where": "D:\\Cordova\\cordova-android\\node_modules\\cordova-common",
+  "_where": "/Users/steveng/repo/cordova/cordova-android/node_modules/cordova-common",
   "author": {
     "name": "Steve Gill"
   },
@@ -47,7 +56,7 @@
   "directories": {},
   "dist": {
     "shasum": "e244b9185b8175473bff6079324905115f83dc7c",
-    "tarball": "http://registry.npmjs.org/cordova-registry-mapper/-/cordova-registry-mapper-1.1.15.tgz"
+    "tarball": "https://registry.npmjs.org/cordova-registry-mapper/-/cordova-registry-mapper-1.1.15.tgz"
   },
   "gitHead": "00af0f028ec94154a364eeabe38b8e22320647bd",
   "homepage": "https://github.com/stevengill/cordova-registry-mapper#readme",
@@ -59,8 +68,8 @@
   "main": "index.js",
   "maintainers": [
     {
-      "email": "stevengill97@gmail.com",
-      "name": "stevegill"
+      "name": "stevegill",
+      "email": "stevengill97@gmail.com"
     }
   ],
   "name": "cordova-registry-mapper",

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/elementtree/package.json
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/package.json b/node_modules/elementtree/package.json
index eadd6a4..5a8ff65 100644
--- a/node_modules/elementtree/package.json
+++ b/node_modules/elementtree/package.json
@@ -1,8 +1,16 @@
 {
   "_args": [
     [
-      "elementtree@^0.1.6",
-      "D:\\Cordova\\cordova-android"
+      {
+        "raw": "elementtree@^0.1.6",
+        "scope": null,
+        "escapedName": "elementtree",
+        "name": "elementtree",
+        "rawSpec": "^0.1.6",
+        "spec": ">=0.1.6 <0.2.0",
+        "type": "range"
+      },
+      "/Users/steveng/repo/cordova/cordova-android"
     ]
   ],
   "_from": "elementtree@>=0.1.6 <0.2.0",
@@ -11,16 +19,17 @@
   "_installable": true,
   "_location": "/elementtree",
   "_npmUser": {
-    "email": "ryan@trolocsis.com",
-    "name": "rphillips"
+    "name": "rphillips",
+    "email": "ryan@trolocsis.com"
   },
   "_npmVersion": "1.3.24",
   "_phantomChildren": {},
   "_requested": {
-    "name": "elementtree",
     "raw": "elementtree@^0.1.6",
-    "rawSpec": "^0.1.6",
     "scope": null,
+    "escapedName": "elementtree",
+    "name": "elementtree",
+    "rawSpec": "^0.1.6",
     "spec": ">=0.1.6 <0.2.0",
     "type": "range"
   },
@@ -28,11 +37,11 @@
     "/",
     "/cordova-common"
   ],
-  "_resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.6.tgz",
+  "_resolved": "http://registry.npmjs.org/elementtree/-/elementtree-0.1.6.tgz",
   "_shasum": "2ac4c46ea30516c8c4cbdb5e3ac7418e592de20c",
   "_shrinkwrap": null,
   "_spec": "elementtree@^0.1.6",
-  "_where": "D:\\Cordova\\cordova-android",
+  "_where": "/Users/steveng/repo/cordova/cordova-android",
   "author": {
     "name": "Rackspace US, Inc."
   },
@@ -41,12 +50,12 @@
   },
   "contributors": [
     {
-      "email": "paul.querna@rackspace.com",
-      "name": "Paul Querna"
+      "name": "Paul Querna",
+      "email": "paul.querna@rackspace.com"
     },
     {
-      "email": "tomaz.muraus@rackspace.com",
-      "name": "Tomaz Muraus"
+      "name": "Tomaz Muraus",
+      "email": "tomaz.muraus@rackspace.com"
     }
   ],
   "dependencies": {
@@ -83,8 +92,8 @@
   "main": "lib/elementtree.js",
   "maintainers": [
     {
-      "email": "ryan@trolocsis.com",
-      "name": "rphillips"
+      "name": "rphillips",
+      "email": "ryan@trolocsis.com"
     }
   ],
   "name": "elementtree",

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/glob/package.json
----------------------------------------------------------------------
diff --git a/node_modules/glob/package.json b/node_modules/glob/package.json
index 03aeb13..e7d4004 100644
--- a/node_modules/glob/package.json
+++ b/node_modules/glob/package.json
@@ -1,8 +1,16 @@
 {
   "_args": [
     [
-      "glob@^5.0.13",
-      "D:\\Cordova\\cordova-android\\node_modules\\cordova-common"
+      {
+        "raw": "glob@^5.0.13",
+        "scope": null,
+        "escapedName": "glob",
+        "name": "glob",
+        "rawSpec": "^5.0.13",
+        "spec": ">=5.0.13 <6.0.0",
+        "type": "range"
+      },
+      "/Users/steveng/repo/cordova/cordova-android/node_modules/cordova-common"
     ]
   ],
   "_from": "glob@>=5.0.13 <6.0.0",
@@ -12,30 +20,31 @@
   "_location": "/glob",
   "_nodeVersion": "4.0.0",
   "_npmUser": {
-    "email": "isaacs@npmjs.com",
-    "name": "isaacs"
+    "name": "isaacs",
+    "email": "isaacs@npmjs.com"
   },
   "_npmVersion": "3.3.2",
   "_phantomChildren": {},
   "_requested": {
-    "name": "glob",
     "raw": "glob@^5.0.13",
-    "rawSpec": "^5.0.13",
     "scope": null,
+    "escapedName": "glob",
+    "name": "glob",
+    "rawSpec": "^5.0.13",
     "spec": ">=5.0.13 <6.0.0",
     "type": "range"
   },
   "_requiredBy": [
     "/cordova-common"
   ],
-  "_resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+  "_resolved": "http://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
   "_shasum": "1bc936b9e02f4a603fcc222ecf7633d30b8b93b1",
   "_shrinkwrap": null,
   "_spec": "glob@^5.0.13",
-  "_where": "D:\\Cordova\\cordova-android\\node_modules\\cordova-common",
+  "_where": "/Users/steveng/repo/cordova/cordova-android/node_modules/cordova-common",
   "author": {
-    "email": "i@izs.me",
     "name": "Isaac Z. Schlueter",
+    "email": "i@izs.me",
     "url": "http://blog.izs.me/"
   },
   "bugs": {
@@ -74,8 +83,8 @@
   "main": "glob.js",
   "maintainers": [
     {
-      "email": "i@izs.me",
-      "name": "isaacs"
+      "name": "isaacs",
+      "email": "i@izs.me"
     }
   ],
   "name": "glob",

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/inflight/package.json
----------------------------------------------------------------------
diff --git a/node_modules/inflight/package.json b/node_modules/inflight/package.json
index 1a9acb1..5a67ac8 100644
--- a/node_modules/inflight/package.json
+++ b/node_modules/inflight/package.json
@@ -1,8 +1,16 @@
 {
   "_args": [
     [
-      "inflight@^1.0.4",
-      "D:\\Cordova\\cordova-android\\node_modules\\glob"
+      {
+        "raw": "inflight@^1.0.4",
+        "scope": null,
+        "escapedName": "inflight",
+        "name": "inflight",
+        "rawSpec": "^1.0.4",
+        "spec": ">=1.0.4 <2.0.0",
+        "type": "range"
+      },
+      "/Users/steveng/repo/cordova/cordova-android/node_modules/glob"
     ]
   ],
   "_from": "inflight@>=1.0.4 <2.0.0",
@@ -16,30 +24,31 @@
     "tmp": "tmp/inflight-1.0.5.tgz_1463529611443_0.00041943578980863094"
   },
   "_npmUser": {
-    "email": "kat@sykosomatic.org",
-    "name": "zkat"
+    "name": "zkat",
+    "email": "kat@sykosomatic.org"
   },
   "_npmVersion": "3.9.1",
   "_phantomChildren": {},
   "_requested": {
-    "name": "inflight",
     "raw": "inflight@^1.0.4",
-    "rawSpec": "^1.0.4",
     "scope": null,
+    "escapedName": "inflight",
+    "name": "inflight",
+    "rawSpec": "^1.0.4",
     "spec": ">=1.0.4 <2.0.0",
     "type": "range"
   },
   "_requiredBy": [
     "/glob"
   ],
-  "_resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz",
+  "_resolved": "http://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz",
   "_shasum": "db3204cd5a9de2e6cd890b85c6e2f66bcf4f620a",
   "_shrinkwrap": null,
   "_spec": "inflight@^1.0.4",
-  "_where": "D:\\Cordova\\cordova-android\\node_modules\\glob",
+  "_where": "/Users/steveng/repo/cordova/cordova-android/node_modules/glob",
   "author": {
-    "email": "i@izs.me",
     "name": "Isaac Z. Schlueter",
+    "email": "i@izs.me",
     "url": "http://blog.izs.me/"
   },
   "bugs": {
@@ -67,20 +76,20 @@
   "main": "inflight.js",
   "maintainers": [
     {
-      "email": "me@re-becca.org",
-      "name": "iarna"
+      "name": "iarna",
+      "email": "me@re-becca.org"
     },
     {
-      "email": "i@izs.me",
-      "name": "isaacs"
+      "name": "isaacs",
+      "email": "i@izs.me"
     },
     {
-      "email": "ogd@aoaioxxysz.net",
-      "name": "othiym23"
+      "name": "othiym23",
+      "email": "ogd@aoaioxxysz.net"
     },
     {
-      "email": "kat@sykosomatic.org",
-      "name": "zkat"
+      "name": "zkat",
+      "email": "kat@sykosomatic.org"
     }
   ],
   "name": "inflight",

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/inherits/package.json
----------------------------------------------------------------------
diff --git a/node_modules/inherits/package.json b/node_modules/inherits/package.json
index c41eaf2..44dcb9a 100644
--- a/node_modules/inherits/package.json
+++ b/node_modules/inherits/package.json
@@ -1,8 +1,16 @@
 {
   "_args": [
     [
-      "inherits@2",
-      "D:\\Cordova\\cordova-android\\node_modules\\glob"
+      {
+        "raw": "inherits@2",
+        "scope": null,
+        "escapedName": "inherits",
+        "name": "inherits",
+        "rawSpec": "2",
+        "spec": ">=2.0.0 <3.0.0",
+        "type": "range"
+      },
+      "/Users/steveng/repo/cordova/cordova-android/node_modules/glob"
     ]
   ],
   "_from": "inherits@>=2.0.0 <3.0.0",
@@ -11,27 +19,28 @@
   "_installable": true,
   "_location": "/inherits",
   "_npmUser": {
-    "email": "i@izs.me",
-    "name": "isaacs"
+    "name": "isaacs",
+    "email": "i@izs.me"
   },
   "_npmVersion": "1.3.8",
   "_phantomChildren": {},
   "_requested": {
-    "name": "inherits",
     "raw": "inherits@2",
-    "rawSpec": "2",
     "scope": null,
+    "escapedName": "inherits",
+    "name": "inherits",
+    "rawSpec": "2",
     "spec": ">=2.0.0 <3.0.0",
     "type": "range"
   },
   "_requiredBy": [
     "/glob"
   ],
-  "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+  "_resolved": "http://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
   "_shasum": "b17d08d326b4423e568eff719f91b0b1cbdf69f1",
   "_shrinkwrap": null,
   "_spec": "inherits@2",
-  "_where": "D:\\Cordova\\cordova-android\\node_modules\\glob",
+  "_where": "/Users/steveng/repo/cordova/cordova-android/node_modules/glob",
   "browser": "./inherits_browser.js",
   "bugs": {
     "url": "https://github.com/isaacs/inherits/issues"
@@ -59,8 +68,8 @@
   "main": "./inherits.js",
   "maintainers": [
     {
-      "email": "i@izs.me",
-      "name": "isaacs"
+      "name": "isaacs",
+      "email": "i@izs.me"
     }
   ],
   "name": "inherits",

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/lodash/package.json
----------------------------------------------------------------------
diff --git a/node_modules/lodash/package.json b/node_modules/lodash/package.json
index 4112d9f..2c01326 100644
--- a/node_modules/lodash/package.json
+++ b/node_modules/lodash/package.json
@@ -1,8 +1,16 @@
 {
   "_args": [
     [
-      "lodash@^3.5.0",
-      "D:\\Cordova\\cordova-android\\node_modules\\xmlbuilder"
+      {
+        "raw": "lodash@^3.5.0",
+        "scope": null,
+        "escapedName": "lodash",
+        "name": "lodash",
+        "rawSpec": "^3.5.0",
+        "spec": ">=3.5.0 <4.0.0",
+        "type": "range"
+      },
+      "/Users/steveng/repo/cordova/cordova-android/node_modules/xmlbuilder"
     ]
   ],
   "_from": "lodash@>=3.5.0 <4.0.0",
@@ -12,30 +20,31 @@
   "_location": "/lodash",
   "_nodeVersion": "0.12.5",
   "_npmUser": {
-    "email": "john.david.dalton@gmail.com",
-    "name": "jdalton"
+    "name": "jdalton",
+    "email": "john.david.dalton@gmail.com"
   },
   "_npmVersion": "2.13.1",
   "_phantomChildren": {},
   "_requested": {
-    "name": "lodash",
     "raw": "lodash@^3.5.0",
-    "rawSpec": "^3.5.0",
     "scope": null,
+    "escapedName": "lodash",
+    "name": "lodash",
+    "rawSpec": "^3.5.0",
     "spec": ">=3.5.0 <4.0.0",
     "type": "range"
   },
   "_requiredBy": [
     "/xmlbuilder"
   ],
-  "_resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+  "_resolved": "http://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
   "_shasum": "5bf45e8e49ba4189e17d482789dfd15bd140b7b6",
   "_shrinkwrap": null,
   "_spec": "lodash@^3.5.0",
-  "_where": "D:\\Cordova\\cordova-android\\node_modules\\xmlbuilder",
+  "_where": "/Users/steveng/repo/cordova/cordova-android/node_modules/xmlbuilder",
   "author": {
-    "email": "john.david.dalton@gmail.com",
     "name": "John-David Dalton",
+    "email": "john.david.dalton@gmail.com",
     "url": "http://allyoucanleet.com/"
   },
   "bugs": {
@@ -43,28 +52,28 @@
   },
   "contributors": [
     {
-      "email": "john.david.dalton@gmail.com",
       "name": "John-David Dalton",
+      "email": "john.david.dalton@gmail.com",
       "url": "http://allyoucanleet.com/"
     },
     {
-      "email": "demoneaux@gmail.com",
       "name": "Benjamin Tan",
+      "email": "demoneaux@gmail.com",
       "url": "https://d10.github.io/"
     },
     {
-      "email": "blaine@iceddev.com",
       "name": "Blaine Bublitz",
+      "email": "blaine@iceddev.com",
       "url": "http://www.iceddev.com/"
     },
     {
-      "email": "github@kitcambridge.be",
       "name": "Kit Cambridge",
+      "email": "github@kitcambridge.be",
       "url": "http://kitcambridge.be/"
     },
     {
-      "email": "mathias@qiwi.be",
       "name": "Mathias Bynens",
+      "email": "mathias@qiwi.be",
       "url": "https://mathiasbynens.be/"
     }
   ],
@@ -87,24 +96,24 @@
   "main": "index.js",
   "maintainers": [
     {
-      "email": "john.david.dalton@gmail.com",
-      "name": "jdalton"
+      "name": "jdalton",
+      "email": "john.david.dalton@gmail.com"
     },
     {
-      "email": "mathias@qiwi.be",
-      "name": "mathias"
+      "name": "mathias",
+      "email": "mathias@qiwi.be"
     },
     {
-      "email": "blaine@iceddev.com",
-      "name": "phated"
+      "name": "phated",
+      "email": "blaine@iceddev.com"
     },
     {
-      "email": "github@kitcambridge.be",
-      "name": "kitcambridge"
+      "name": "kitcambridge",
+      "email": "github@kitcambridge.be"
     },
     {
-      "email": "demoneaux@gmail.com",
-      "name": "d10"
+      "name": "d10",
+      "email": "demoneaux@gmail.com"
     }
   ],
   "name": "lodash",

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/08163713/node_modules/minimatch/README.md
----------------------------------------------------------------------
diff --git a/node_modules/minimatch/README.md b/node_modules/minimatch/README.md
index d458bc2..ad72b81 100644
--- a/node_modules/minimatch/README.md
+++ b/node_modules/minimatch/README.md
@@ -2,7 +2,7 @@
 
 A minimal matching utility.
 
-[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch)
+[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.svg)](http://travis-ci.org/isaacs/minimatch)
 
 
 This is the matching library used internally by npm.
@@ -37,7 +37,7 @@ See:
 
 ## Minimatch Class
 
-Create a minimatch object by instanting the `minimatch.Minimatch` class.
+Create a minimatch object by instantiating the `minimatch.Minimatch` class.
 
 ```javascript
 var Minimatch = require("minimatch").Minimatch
@@ -82,13 +82,6 @@ var mm = new Minimatch(pattern, options)
 
 All other methods are internal, and will be called as necessary.
 
-## Functions
-
-The top-level exported function has a `cache` property, which is an LRU
-cache set to store 100 items.  So, calling these methods repeatedly
-with the same pattern and options will use the same Minimatch object,
-saving the cost of parsing it multiple times.
-
 ### minimatch(path, pattern, options)
 
 Main export.  Tests a path against the pattern using the options.


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org