cordova-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ste...@apache.org
Subject [18/60] [abbrv] [partial] android commit: updated cordova-common dependnecy to 1.1.0
Date Fri, 26 Feb 2016 21:30:43 GMT
http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/cdata-end-split.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/cdata-end-split.js b/node_modules/elementtree/node_modules/sax/test/cdata-end-split.js
deleted file mode 100644
index b41bd00..0000000
--- a/node_modules/elementtree/node_modules/sax/test/cdata-end-split.js
+++ /dev/null
@@ -1,15 +0,0 @@
-
-require(__dirname).test({
-  expect : [
-    ["opentag", {"name": "R","attributes": {}}],
-    ["opencdata", undefined],
-    ["cdata", " this is "],
-    ["closecdata", undefined],
-    ["closetag", "R"]
-  ]
-})
-  .write("<r><![CDATA[ this is ]")
-  .write("]>")
-  .write("</r>")
-  .close();
-

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/cdata-fake-end.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/cdata-fake-end.js b/node_modules/elementtree/node_modules/sax/test/cdata-fake-end.js
deleted file mode 100644
index 07aeac4..0000000
--- a/node_modules/elementtree/node_modules/sax/test/cdata-fake-end.js
+++ /dev/null
@@ -1,28 +0,0 @@
-
-var p = require(__dirname).test({
-  expect : [
-    ["opentag", {"name": "R","attributes": {}}],
-    ["opencdata", undefined],
-    ["cdata", "[[[[[[[[]]]]]]]]"],
-    ["closecdata", undefined],
-    ["closetag", "R"]
-  ]
-})
-var x = "<r><![CDATA[[[[[[[[[]]]]]]]]]]></r>"
-for (var i = 0; i < x.length ; i ++) {
-  p.write(x.charAt(i))
-}
-p.close();
-
-
-var p2 = require(__dirname).test({
-  expect : [
-    ["opentag", {"name": "R","attributes": {}}],
-    ["opencdata", undefined],
-    ["cdata", "[[[[[[[[]]]]]]]]"],
-    ["closecdata", undefined],
-    ["closetag", "R"]
-  ]
-})
-var x = "<r><![CDATA[[[[[[[[[]]]]]]]]]]></r>"
-p2.write(x).close();

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/cdata-multiple.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/cdata-multiple.js b/node_modules/elementtree/node_modules/sax/test/cdata-multiple.js
deleted file mode 100644
index dab2015..0000000
--- a/node_modules/elementtree/node_modules/sax/test/cdata-multiple.js
+++ /dev/null
@@ -1,15 +0,0 @@
-
-require(__dirname).test({
-  expect : [
-    ["opentag", {"name": "R","attributes": {}}],
-    ["opencdata", undefined],
-    ["cdata", " this is "],
-    ["closecdata", undefined],
-    ["opencdata", undefined],
-    ["cdata", "character data  "],
-    ["closecdata", undefined],
-    ["closetag", "R"]
-  ]
-}).write("<r><![CDATA[ this is ]]>").write("<![CDA").write("T").write("A[")
-  .write("character data  ").write("]]></r>").close();
-

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/cdata.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/cdata.js b/node_modules/elementtree/node_modules/sax/test/cdata.js
deleted file mode 100644
index 0f09cce..0000000
--- a/node_modules/elementtree/node_modules/sax/test/cdata.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require(__dirname).test({
-  xml : "<r><![CDATA[ this is character data  ]]></r>",
-  expect : [
-    ["opentag", {"name": "R","attributes": {}}],
-    ["opencdata", undefined],
-    ["cdata", " this is character data  "],
-    ["closecdata", undefined],
-    ["closetag", "R"]
-  ]
-});

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/index.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/index.js b/node_modules/elementtree/node_modules/sax/test/index.js
deleted file mode 100644
index d4e1ef4..0000000
--- a/node_modules/elementtree/node_modules/sax/test/index.js
+++ /dev/null
@@ -1,86 +0,0 @@
-var globalsBefore = JSON.stringify(Object.keys(global))
-  , util = require("util")
-  , assert = require("assert")
-  , fs = require("fs")
-  , path = require("path")
-  , sax = require("../lib/sax")
-
-exports.sax = sax
-
-// handy way to do simple unit tests
-// if the options contains an xml string, it'll be written and the parser closed.
-// otherwise, it's assumed that the test will write and close.
-exports.test = function test (options) {
-  var xml = options.xml
-    , parser = sax.parser(options.strict, options.opt)
-    , expect = options.expect
-    , e = 0
-  sax.EVENTS.forEach(function (ev) {
-    parser["on" + ev] = function (n) {
-      if (process.env.DEBUG) {
-        console.error({ expect: expect[e]
-                      , actual: [ev, n] })
-      }
-      if (e >= expect.length && (ev === "end" || ev === "ready")) return
-      assert.ok( e < expect.length,
-        "expectation #"+e+" "+util.inspect(expect[e])+"\n"+
-        "Unexpected event: "+ev+" "+(n ? util.inspect(n) : ""))
-      var inspected = n instanceof Error ? "\n"+ n.message : util.inspect(n)
-      assert.equal(ev, expect[e][0],
-        "expectation #"+e+"\n"+
-        "Didn't get expected event\n"+
-        "expect: "+expect[e][0] + " " +util.inspect(expect[e][1])+"\n"+
-        "actual: "+ev+" "+inspected+"\n")
-      if (ev === "error") assert.equal(n.message, expect[e][1])
-      else assert.deepEqual(n, expect[e][1],
-        "expectation #"+e+"\n"+
-        "Didn't get expected argument\n"+
-        "expect: "+expect[e][0] + " " +util.inspect(expect[e][1])+"\n"+
-        "actual: "+ev+" "+inspected+"\n")
-      e++
-      if (ev === "error") parser.resume()
-    }
-  })
-  if (xml) parser.write(xml).close()
-  return parser
-}
-
-if (module === require.main) {
-  var running = true
-    , failures = 0
-
-  function fail (file, er) {
-    util.error("Failed: "+file)
-    util.error(er.stack || er.message)
-    failures ++
-  }
-
-  fs.readdir(__dirname, function (error, files) {
-    files = files.filter(function (file) {
-      return (/\.js$/.exec(file) && file !== 'index.js')
-    })
-    var n = files.length
-      , i = 0
-    console.log("0.." + n)
-    files.forEach(function (file) {
-      // run this test.
-      try {
-        require(path.resolve(__dirname, file))
-        var globalsAfter = JSON.stringify(Object.keys(global))
-        if (globalsAfter !== globalsBefore) {
-          var er = new Error("new globals introduced\n"+
-                             "expected: "+globalsBefore+"\n"+
-                             "actual:   "+globalsAfter)
-          globalsBefore = globalsAfter
-          throw er
-        }
-        console.log("ok " + (++i) + " - " + file)
-      } catch (er) {
-        console.log("not ok "+ (++i) + " - " + file)
-        fail(file, er)
-      }
-    })
-    if (!failures) return console.log("#all pass")
-    else return console.error(failures + " failure" + (failures > 1 ? "s" : ""))
-  })
-}

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/issue-23.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/issue-23.js b/node_modules/elementtree/node_modules/sax/test/issue-23.js
deleted file mode 100644
index e7991b2..0000000
--- a/node_modules/elementtree/node_modules/sax/test/issue-23.js
+++ /dev/null
@@ -1,43 +0,0 @@
-
-require(__dirname).test
-  ( { xml :
-      "<compileClassesResponse>"+
-        "<result>"+
-          "<bodyCrc>653724009</bodyCrc>"+
-          "<column>-1</column>"+
-          "<id>01pG0000002KoSUIA0</id>"+
-          "<line>-1</line>"+
-          "<name>CalendarController</name>"+
-          "<success>true</success>"+
-        "</result>"+
-      "</compileClassesResponse>"
-
-    , expect :
-      [ [ "opentag", { name: "COMPILECLASSESRESPONSE", attributes: {} } ]
-      , [ "opentag", { name : "RESULT", attributes: {} } ]
-      , [ "opentag", { name: "BODYCRC", attributes: {} } ]
-      , [ "text", "653724009" ]
-      , [ "closetag", "BODYCRC" ]
-      , [ "opentag", { name: "COLUMN", attributes: {} } ]
-      , [ "text", "-1" ]
-      , [ "closetag", "COLUMN" ]
-      , [ "opentag", { name: "ID", attributes: {} } ]
-      , [ "text", "01pG0000002KoSUIA0" ]
-      , [ "closetag", "ID" ]
-      , [ "opentag", {name: "LINE", attributes: {} } ]
-      , [ "text", "-1" ]
-      , [ "closetag", "LINE" ]
-      , [ "opentag", {name: "NAME", attributes: {} } ]
-      , [ "text", "CalendarController" ]
-      , [ "closetag", "NAME" ]
-      , [ "opentag", {name: "SUCCESS", attributes: {} } ]
-      , [ "text", "true" ]
-      , [ "closetag", "SUCCESS" ]
-      , [ "closetag", "RESULT" ]
-      , [ "closetag", "COMPILECLASSESRESPONSE" ]
-      ]
-    , strict : false
-    , opt : {}
-    }
-  )
-

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/issue-30.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/issue-30.js b/node_modules/elementtree/node_modules/sax/test/issue-30.js
deleted file mode 100644
index c2cc809..0000000
--- a/node_modules/elementtree/node_modules/sax/test/issue-30.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// https://github.com/isaacs/sax-js/issues/33
-require(__dirname).test
-  ( { xml : "<xml>\n"+
-            "<!-- \n"+
-            "  comment with a single dash- in it\n"+
-            "-->\n"+
-            "<data/>\n"+
-            "</xml>"
-
-    , expect :
-      [ [ "opentag", { name: "xml", attributes: {} } ]
-      , [ "text", "\n" ]
-      , [ "comment", " \n  comment with a single dash- in it\n" ]
-      , [ "text", "\n" ]
-      , [ "opentag", { name: "data", attributes: {} } ]
-      , [ "closetag", "data" ]
-      , [ "text", "\n" ]
-      , [ "closetag", "xml" ]
-      ]
-    , strict : true
-    , opt : {}
-    }
-  )
-

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/issue-35.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/issue-35.js b/node_modules/elementtree/node_modules/sax/test/issue-35.js
deleted file mode 100644
index 7c521c5..0000000
--- a/node_modules/elementtree/node_modules/sax/test/issue-35.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// https://github.com/isaacs/sax-js/issues/35
-require(__dirname).test
-  ( { xml : "<xml>&#Xd;&#X0d;\n"+
-            "</xml>"
-
-    , expect :
-      [ [ "opentag", { name: "xml", attributes: {} } ]
-      , [ "text", "\r\r\n" ]
-      , [ "closetag", "xml" ]
-      ]
-    , strict : true
-    , opt : {}
-    }
-  )
-

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/issue-47.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/issue-47.js b/node_modules/elementtree/node_modules/sax/test/issue-47.js
deleted file mode 100644
index 911c7d0..0000000
--- a/node_modules/elementtree/node_modules/sax/test/issue-47.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// https://github.com/isaacs/sax-js/issues/47
-require(__dirname).test
-  ( { xml : '<a href="query.svc?x=1&y=2&z=3"/>'
-    , expect : [ 
-        [ "attribute", { name:'href', value:"query.svc?x=1&y=2&z=3"} ],
-        [ "opentag", { name: "a", attributes: { href:"query.svc?x=1&y=2&z=3"} } ],
-        [ "closetag", "a" ]
-      ]
-    , strict : true
-    , opt : {}
-    }
-  )
-

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/issue-49.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/issue-49.js b/node_modules/elementtree/node_modules/sax/test/issue-49.js
deleted file mode 100644
index 2964325..0000000
--- a/node_modules/elementtree/node_modules/sax/test/issue-49.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// https://github.com/isaacs/sax-js/issues/49
-require(__dirname).test
-  ( { xml : "<xml><script>hello world</script></xml>"
-    , expect :
-      [ [ "opentag", { name: "xml", attributes: {} } ]
-      , [ "opentag", { name: "script", attributes: {} } ]
-      , [ "text", "hello world" ]
-      , [ "closetag", "script" ]
-      , [ "closetag", "xml" ]
-      ]
-    , strict : false
-    , opt : { lowercasetags: true, noscript: true }
-    }
-  )
-
-require(__dirname).test
-  ( { xml : "<xml><script><![CDATA[hello world]]></script></xml>"
-    , expect :
-      [ [ "opentag", { name: "xml", attributes: {} } ]
-      , [ "opentag", { name: "script", attributes: {} } ]
-      , [ "opencdata", undefined ]
-      , [ "cdata", "hello world" ]
-      , [ "closecdata", undefined ]
-      , [ "closetag", "script" ]
-      , [ "closetag", "xml" ]
-      ]
-    , strict : false
-    , opt : { lowercasetags: true, noscript: true }
-    }
-  )
-

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/parser-position.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/parser-position.js b/node_modules/elementtree/node_modules/sax/test/parser-position.js
deleted file mode 100644
index e4a68b1..0000000
--- a/node_modules/elementtree/node_modules/sax/test/parser-position.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var sax = require("../lib/sax"),
-    assert = require("assert")
-
-function testPosition(chunks, expectedEvents) {
-  var parser = sax.parser();
-  expectedEvents.forEach(function(expectation) {
-    parser['on' + expectation[0]] = function() {
-      for (var prop in expectation[1]) {
-        assert.equal(parser[prop], expectation[1][prop]);
-      }
-    }
-  });
-  chunks.forEach(function(chunk) {
-    parser.write(chunk);
-  });
-};
-
-testPosition(['<div>abcdefgh</div>'],
-             [ ['opentag',  { position:  5, startTagPosition:  1 }]
-             , ['text',     { position: 19, startTagPosition: 14 }]
-             , ['closetag', { position: 19, startTagPosition: 14 }]
-             ]);
-
-testPosition(['<div>abcde','fgh</div>'],
-             [ ['opentag',  { position:  5, startTagPosition:  1 }]
-             , ['text',     { position: 19, startTagPosition: 14 }]
-             , ['closetag', { position: 19, startTagPosition: 14 }]
-             ]);

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/script.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/script.js b/node_modules/elementtree/node_modules/sax/test/script.js
deleted file mode 100644
index 464c051..0000000
--- a/node_modules/elementtree/node_modules/sax/test/script.js
+++ /dev/null
@@ -1,12 +0,0 @@
-require(__dirname).test({
-  xml : "<html><head><script>if (1 < 0) { console.log('elo there'); }</script></head></html>",
-  expect : [
-    ["opentag", {"name": "HTML","attributes": {}}],
-    ["opentag", {"name": "HEAD","attributes": {}}],
-    ["opentag", {"name": "SCRIPT","attributes": {}}],
-    ["script", "if (1 < 0) { console.log('elo there'); }"],
-    ["closetag", "SCRIPT"],
-    ["closetag", "HEAD"],
-    ["closetag", "HTML"]
-  ]
-});

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/self-closing-child-strict.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/self-closing-child-strict.js b/node_modules/elementtree/node_modules/sax/test/self-closing-child-strict.js
deleted file mode 100644
index ce9c045..0000000
--- a/node_modules/elementtree/node_modules/sax/test/self-closing-child-strict.js
+++ /dev/null
@@ -1,40 +0,0 @@
-
-require(__dirname).test({
-  xml :
-  "<root>"+
-    "<child>" +
-      "<haha />" +
-    "</child>" +
-    "<monkey>" +
-      "=(|)" +
-    "</monkey>" +
-  "</root>",
-  expect : [
-    ["opentag", {
-     "name": "root",
-     "attributes": {}
-    }],
-    ["opentag", {
-     "name": "child",
-     "attributes": {}
-    }],
-    ["opentag", {
-     "name": "haha",
-     "attributes": {}
-    }],
-    ["closetag", "haha"],
-    ["closetag", "child"],
-    ["opentag", {
-     "name": "monkey",
-     "attributes": {}
-    }],
-    ["text", "=(|)"],
-    ["closetag", "monkey"],
-    ["closetag", "root"],
-    ["end"],
-    ["ready"]
-  ],
-  strict : true,
-  opt : {}
-});
-

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/self-closing-child.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/self-closing-child.js b/node_modules/elementtree/node_modules/sax/test/self-closing-child.js
deleted file mode 100644
index bc6b52b..0000000
--- a/node_modules/elementtree/node_modules/sax/test/self-closing-child.js
+++ /dev/null
@@ -1,40 +0,0 @@
-
-require(__dirname).test({
-  xml :
-  "<root>"+
-    "<child>" +
-      "<haha />" +
-    "</child>" +
-    "<monkey>" +
-      "=(|)" +
-    "</monkey>" +
-  "</root>",
-  expect : [
-    ["opentag", {
-     "name": "ROOT",
-     "attributes": {}
-    }],
-    ["opentag", {
-     "name": "CHILD",
-     "attributes": {}
-    }],
-    ["opentag", {
-     "name": "HAHA",
-     "attributes": {}
-    }],
-    ["closetag", "HAHA"],
-    ["closetag", "CHILD"],
-    ["opentag", {
-     "name": "MONKEY",
-     "attributes": {}
-    }],
-    ["text", "=(|)"],
-    ["closetag", "MONKEY"],
-    ["closetag", "ROOT"],
-    ["end"],
-    ["ready"]
-  ],
-  strict : false,
-  opt : {}
-});
-

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/self-closing-tag.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/self-closing-tag.js b/node_modules/elementtree/node_modules/sax/test/self-closing-tag.js
deleted file mode 100644
index b2c5736..0000000
--- a/node_modules/elementtree/node_modules/sax/test/self-closing-tag.js
+++ /dev/null
@@ -1,25 +0,0 @@
-
-require(__dirname).test({
-  xml :
-  "<root>   "+
-    "<haha /> "+
-    "<haha/>  "+
-    "<monkey> "+
-      "=(|)     "+
-    "</monkey>"+
-  "</root>  ",
-  expect : [
-    ["opentag", {name:"ROOT", attributes:{}}],
-    ["opentag", {name:"HAHA", attributes:{}}],
-    ["closetag", "HAHA"],
-    ["opentag", {name:"HAHA", attributes:{}}],
-    ["closetag", "HAHA"],
-    // ["opentag", {name:"HAHA", attributes:{}}],
-    // ["closetag", "HAHA"],
-    ["opentag", {name:"MONKEY", attributes:{}}],
-    ["text", "=(|)"],
-    ["closetag", "MONKEY"],
-    ["closetag", "ROOT"]
-  ],
-  opt : { trim : true }
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/stray-ending.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/stray-ending.js b/node_modules/elementtree/node_modules/sax/test/stray-ending.js
deleted file mode 100644
index 6b0aa7f..0000000
--- a/node_modules/elementtree/node_modules/sax/test/stray-ending.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// stray ending tags should just be ignored in non-strict mode.
-// https://github.com/isaacs/sax-js/issues/32
-require(__dirname).test
-  ( { xml :
-      "<a><b></c></b></a>"
-    , expect :
-      [ [ "opentag", { name: "A", attributes: {} } ]
-      , [ "opentag", { name: "B", attributes: {} } ]
-      , [ "text", "</c>" ]
-      , [ "closetag", "B" ]
-      , [ "closetag", "A" ]
-      ]
-    , strict : false
-    , opt : {}
-    }
-  )
-

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/trailing-non-whitespace.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/trailing-non-whitespace.js b/node_modules/elementtree/node_modules/sax/test/trailing-non-whitespace.js
deleted file mode 100644
index 3e1fb2e..0000000
--- a/node_modules/elementtree/node_modules/sax/test/trailing-non-whitespace.js
+++ /dev/null
@@ -1,17 +0,0 @@
-
-require(__dirname).test({
-  xml : "<span>Welcome,</span> to monkey land",
-  expect : [
-    ["opentag", {
-     "name": "SPAN",
-     "attributes": {}
-    }],
-    ["text", "Welcome,"],
-    ["closetag", "SPAN"],
-    ["text", " to monkey land"],
-    ["end"],
-    ["ready"]
-  ],
-  strict : false,
-  opt : {}
-});

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/unquoted.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/unquoted.js b/node_modules/elementtree/node_modules/sax/test/unquoted.js
deleted file mode 100644
index 79f1d0b..0000000
--- a/node_modules/elementtree/node_modules/sax/test/unquoted.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// unquoted attributes should be ok in non-strict mode
-// https://github.com/isaacs/sax-js/issues/31
-require(__dirname).test
-  ( { xml :
-      "<span class=test hello=world></span>"
-    , expect :
-      [ [ "attribute", { name: "class", value: "test" } ]
-      , [ "attribute", { name: "hello", value: "world" } ]
-      , [ "opentag", { name: "SPAN",
-                       attributes: { class: "test", hello: "world" } } ]
-      , [ "closetag", "SPAN" ]
-      ]
-    , strict : false
-    , opt : {}
-    }
-  )
-

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/xmlns-issue-41.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/xmlns-issue-41.js b/node_modules/elementtree/node_modules/sax/test/xmlns-issue-41.js
deleted file mode 100644
index 596d82b..0000000
--- a/node_modules/elementtree/node_modules/sax/test/xmlns-issue-41.js
+++ /dev/null
@@ -1,67 +0,0 @@
-var t = require(__dirname)
-
-  , xmls = // should be the same both ways.
-    [ "<parent xmlns:a='http://ATTRIBUTE' a:attr='value' />"
-    , "<parent a:attr='value' xmlns:a='http://ATTRIBUTE' />" ]
-
-  , ex1 =
-    [ [ "opennamespace"
-      , { prefix: "a"
-        , uri: "http://ATTRIBUTE"
-        }
-      ]
-    , [ "attribute"
-      , { name: "xmlns:a"
-        , value: "http://ATTRIBUTE"
-        , prefix: "xmlns"
-        , local: "a"
-        , uri: "http://www.w3.org/2000/xmlns/"
-        }
-      ]
-    , [ "attribute"
-      , { name: "a:attr"
-        , local: "attr"
-        , prefix: "a"
-        , uri: "http://ATTRIBUTE"
-        , value: "value"
-        }
-      ]
-    , [ "opentag"
-      , { name: "parent"
-        , uri: ""
-        , prefix: ""
-        , local: "parent"
-        , attributes:
-          { "a:attr":
-            { name: "a:attr"
-            , local: "attr"
-            , prefix: "a"
-            , uri: "http://ATTRIBUTE"
-            , value: "value"
-            }
-          , "xmlns:a":
-            { name: "xmlns:a"
-            , local: "a"
-            , prefix: "xmlns"
-            , uri: "http://www.w3.org/2000/xmlns/"
-            , value: "http://ATTRIBUTE"
-            }
-          }
-        , ns: {"a": "http://ATTRIBUTE"}
-        }
-      ]
-    , ["closetag", "parent"]
-    , ["closenamespace", { prefix: "a", uri: "http://ATTRIBUTE" }]
-    ]
-
-  // swap the order of elements 2 and 1
-  , ex2 = [ex1[0], ex1[2], ex1[1]].concat(ex1.slice(3))
-  , expected = [ex1, ex2]
-
-xmls.forEach(function (x, i) {
-  t.test({ xml: x
-         , expect: expected[i]
-         , strict: true
-         , opt: { xmlns: true }
-         })
-})

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/xmlns-rebinding.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/xmlns-rebinding.js b/node_modules/elementtree/node_modules/sax/test/xmlns-rebinding.js
deleted file mode 100644
index f464876..0000000
--- a/node_modules/elementtree/node_modules/sax/test/xmlns-rebinding.js
+++ /dev/null
@@ -1,59 +0,0 @@
-
-require(__dirname).test
-  ( { xml :
-      "<root xmlns:x='x1' xmlns:y='y1' x:a='x1' y:a='y1'>"+
-        "<rebind xmlns:x='x2'>"+
-          "<check x:a='x2' y:a='y1'/>"+
-        "</rebind>"+
-        "<check x:a='x1' y:a='y1'/>"+
-      "</root>"
-
-    , expect :
-      [ [ "opennamespace", { prefix: "x", uri: "x1" } ]
-      , [ "opennamespace", { prefix: "y", uri: "y1" } ]
-      , [ "attribute", { name: "xmlns:x", value: "x1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } ]
-      , [ "attribute", { name: "xmlns:y", value: "y1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "y" } ]
-      , [ "attribute", { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } ]
-      , [ "attribute", { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } ]
-      , [ "opentag", { name: "root", uri: "", prefix: "", local: "root",
-            attributes: { "xmlns:x": { name: "xmlns:x", value: "x1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" }
-                        , "xmlns:y": { name: "xmlns:y", value: "y1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "y" }
-                        , "x:a": { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" }
-                        , "y:a": { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } },
-            ns: { x: 'x1', y: 'y1' } } ]
-
-      , [ "opennamespace", { prefix: "x", uri: "x2" } ]
-      , [ "attribute", { name: "xmlns:x", value: "x2", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } ]
-      , [ "opentag", { name: "rebind", uri: "", prefix: "", local: "rebind",
-            attributes: { "xmlns:x": { name: "xmlns:x", value: "x2", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } },
-            ns: { x: 'x2' } } ]
-
-      , [ "attribute", { name: "x:a", value: "x2", uri: "x2", prefix: "x", local: "a" } ]
-      , [ "attribute", { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } ]
-      , [ "opentag", { name: "check", uri: "", prefix: "", local: "check",
-            attributes: { "x:a": { name: "x:a", value: "x2", uri: "x2", prefix: "x", local: "a" }
-                        , "y:a": { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } },
-            ns: { x: 'x2' } } ]
-
-      , [ "closetag", "check" ]
-
-      , [ "closetag", "rebind" ]
-      , [ "closenamespace", { prefix: "x", uri: "x2" } ]
-
-      , [ "attribute", { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } ]
-      , [ "attribute", { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } ]
-      , [ "opentag", { name: "check", uri: "", prefix: "", local: "check",
-            attributes: { "x:a": { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" }
-                        , "y:a": { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } },
-            ns: { x: 'x1', y: 'y1' } } ]
-      , [ "closetag", "check" ]
-
-      , [ "closetag", "root" ]
-      , [ "closenamespace", { prefix: "x", uri: "x1" } ]
-      , [ "closenamespace", { prefix: "y", uri: "y1" } ]
-      ]
-    , strict : true
-    , opt : { xmlns: true }
-    }
-  )
-

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/xmlns-strict.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/xmlns-strict.js b/node_modules/elementtree/node_modules/sax/test/xmlns-strict.js
deleted file mode 100644
index 4ad615b..0000000
--- a/node_modules/elementtree/node_modules/sax/test/xmlns-strict.js
+++ /dev/null
@@ -1,71 +0,0 @@
-
-require(__dirname).test
-  ( { xml :
-      "<root>"+
-        "<plain attr='normal'/>"+
-        "<ns1 xmlns='uri:default'>"+
-          "<plain attr='normal'/>"+
-        "</ns1>"+
-        "<ns2 xmlns:a='uri:nsa'>"+
-          "<plain attr='normal'/>"+
-          "<a:ns a:attr='namespaced'/>"+
-        "</ns2>"+
-      "</root>"
-
-    , expect :
-      [ [ "opentag", { name: "root", prefix: "", local: "root", uri: "",
-            attributes: {}, ns: {} } ]
-
-      , [ "attribute", { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } ]
-      , [ "opentag", { name: "plain", prefix: "", local: "plain", uri: "",
-            attributes: { "attr": { name: "attr", value: "normal", uri: "", prefix: "", local: "attr", uri: "" } },
-            ns: {} } ]
-      , [ "closetag", "plain" ]
-
-      , [ "opennamespace", { prefix: "", uri: "uri:default" } ]
-
-      , [ "attribute", { name: "xmlns", value: "uri:default", prefix: "xmlns", local: "", uri: "http://www.w3.org/2000/xmlns/" } ]
-      , [ "opentag", { name: "ns1", prefix: "", local: "ns1", uri: "uri:default",
-            attributes: { "xmlns": { name: "xmlns", value: "uri:default", prefix: "xmlns", local: "", uri: "http://www.w3.org/2000/xmlns/" } },
-            ns: { "": "uri:default" } } ]
-
-      , [ "attribute", { name: "attr", value: "normal", prefix: "", local: "attr", uri: "uri:default" } ]
-      , [ "opentag", { name: "plain", prefix: "", local: "plain", uri: "uri:default", ns: { '': 'uri:default' },
-            attributes: { "attr": { name: "attr", value: "normal", prefix: "", local: "attr", uri: "uri:default" } } } ]
-      , [ "closetag", "plain" ]
-
-      , [ "closetag", "ns1" ]
-
-      , [ "closenamespace", { prefix: "", uri: "uri:default" } ]
-
-      , [ "opennamespace", { prefix: "a", uri: "uri:nsa" } ]
-
-      , [ "attribute", { name: "xmlns:a", value: "uri:nsa", prefix: "xmlns", local: "a", uri: "http://www.w3.org/2000/xmlns/" } ]
-
-      , [ "opentag", { name: "ns2", prefix: "", local: "ns2", uri: "",
-            attributes: { "xmlns:a": { name: "xmlns:a", value: "uri:nsa", prefix: "xmlns", local: "a", uri: "http://www.w3.org/2000/xmlns/" } },
-            ns: { a: "uri:nsa" } } ]
-
-      , [ "attribute", { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } ]
-      , [ "opentag", { name: "plain", prefix: "", local: "plain", uri: "",
-            attributes: { "attr": { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } },
-            ns: { a: 'uri:nsa' } } ]
-      , [ "closetag", "plain" ]
-
-      , [ "attribute", { name: "a:attr", value: "namespaced", prefix: "a", local: "attr", uri: "uri:nsa" } ]
-      , [ "opentag", { name: "a:ns", prefix: "a", local: "ns", uri: "uri:nsa",
-            attributes: { "a:attr": { name: "a:attr", value: "namespaced", prefix: "a", local: "attr", uri: "uri:nsa" } },
-            ns: { a: 'uri:nsa' } } ]
-      , [ "closetag", "a:ns" ]
-
-      , [ "closetag", "ns2" ]
-
-      , [ "closenamespace", { prefix: "a", uri: "uri:nsa" } ]
-
-      , [ "closetag", "root" ]
-      ]
-    , strict : true
-    , opt : { xmlns: true }
-    }
-  )
-

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/xmlns-unbound.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/xmlns-unbound.js b/node_modules/elementtree/node_modules/sax/test/xmlns-unbound.js
deleted file mode 100644
index 2944b87..0000000
--- a/node_modules/elementtree/node_modules/sax/test/xmlns-unbound.js
+++ /dev/null
@@ -1,15 +0,0 @@
-
-require(__dirname).test(
-  { strict : true
-  , opt : { xmlns: true }
-  , expect :
-    [ ["error", "Unbound namespace prefix: \"unbound\"\nLine: 0\nColumn: 28\nChar: >"]
-
-    , [ "attribute", { name: "unbound:attr", value: "value", uri: "unbound", prefix: "unbound", local: "attr" } ]
-    , [ "opentag", { name: "root", uri: "", prefix: "", local: "root",
-          attributes: { "unbound:attr": { name: "unbound:attr", value: "value", uri: "unbound", prefix: "unbound", local: "attr" } },
-          ns: {} } ]
-    , [ "closetag", "root" ]
-    ]
-  }
-).write("<root unbound:attr='value'/>")

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js b/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js
deleted file mode 100644
index 16da771..0000000
--- a/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js
+++ /dev/null
@@ -1,35 +0,0 @@
-require(__dirname).test(
-  { xml : "<root xml:lang='en'/>"
-  , expect :
-    [ [ "attribute"
-      , { name: "xml:lang"
-        , local: "lang"
-        , prefix: "xml"
-        , uri: "http://www.w3.org/XML/1998/namespace"
-        , value: "en"
-        }
-      ]
-    , [ "opentag"
-      , { name: "root"
-        , uri: ""
-        , prefix: ""
-        , local: "root"
-        , attributes:
-          { "xml:lang":
-            { name: "xml:lang"
-            , local: "lang"
-            , prefix: "xml"
-            , uri: "http://www.w3.org/XML/1998/namespace"
-            , value: "en"
-            }
-          }
-        , ns: {}
-        }
-      ]
-    , ["closetag", "root"]
-    ]
-  , strict : true
-  , opt : { xmlns: true }
-  }
-)
-

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-prefix.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-prefix.js b/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-prefix.js
deleted file mode 100644
index 9a1ce1b..0000000
--- a/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-prefix.js
+++ /dev/null
@@ -1,20 +0,0 @@
-require(__dirname).test(
-  { xml : "<xml:root/>"
-  , expect :
-    [
-      [ "opentag"
-      , { name: "xml:root"
-        , uri: "http://www.w3.org/XML/1998/namespace"
-        , prefix: "xml"
-        , local: "root"
-        , attributes: {}
-        , ns: {}
-        }
-      ]
-    , ["closetag", "xml:root"]
-    ]
-  , strict : true
-  , opt : { xmlns: true }
-  }
-)
-

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-redefine.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-redefine.js b/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-redefine.js
deleted file mode 100644
index 1eba9c7..0000000
--- a/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-redefine.js
+++ /dev/null
@@ -1,40 +0,0 @@
-require(__dirname).test(
-  { xml : "<xml:root xmlns:xml='ERROR'/>"
-  , expect :
-    [ ["error"
-      , "xml: prefix must be bound to http://www.w3.org/XML/1998/namespace\n"
-                        + "Actual: ERROR\n"
-      + "Line: 0\nColumn: 27\nChar: '"
-      ]
-    , [ "attribute"
-      , { name: "xmlns:xml"
-        , local: "xml"
-        , prefix: "xmlns"
-        , uri: "http://www.w3.org/2000/xmlns/"
-        , value: "ERROR"
-        }
-      ]
-    , [ "opentag"
-      , { name: "xml:root"
-        , uri: "http://www.w3.org/XML/1998/namespace"
-        , prefix: "xml"
-        , local: "root"
-        , attributes:
-          { "xmlns:xml":
-            { name: "xmlns:xml"
-            , local: "xml"
-            , prefix: "xmlns"
-            , uri: "http://www.w3.org/2000/xmlns/"
-            , value: "ERROR"
-            }
-          }
-        , ns: {}
-        }
-      ]
-    , ["closetag", "xml:root"]
-    ]
-  , strict : true
-  , opt : { xmlns: true }
-  }
-)
-

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/elementtree/package.json
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/package.json b/node_modules/elementtree/package.json
index 03adc91..f1a5f14 100644
--- a/node_modules/elementtree/package.json
+++ b/node_modules/elementtree/package.json
@@ -1,7 +1,44 @@
 {
+  "_args": [
+    [
+      "elementtree@^0.1.6",
+      "/Users/steveng/repo/cordova/cordova-android"
+    ]
+  ],
+  "_from": "elementtree@>=0.1.6 <0.2.0",
+  "_id": "elementtree@0.1.6",
+  "_inCache": true,
+  "_installable": true,
+  "_location": "/elementtree",
+  "_npmUser": {
+    "email": "ryan@trolocsis.com",
+    "name": "rphillips"
+  },
+  "_npmVersion": "1.3.24",
+  "_phantomChildren": {},
+  "_requested": {
+    "name": "elementtree",
+    "raw": "elementtree@^0.1.6",
+    "rawSpec": "^0.1.6",
+    "scope": null,
+    "spec": ">=0.1.6 <0.2.0",
+    "type": "range"
+  },
+  "_requiredBy": [
+    "/",
+    "/cordova-common"
+  ],
+  "_resolved": "http://registry.npmjs.org/elementtree/-/elementtree-0.1.6.tgz",
+  "_shasum": "2ac4c46ea30516c8c4cbdb5e3ac7418e592de20c",
+  "_shrinkwrap": null,
+  "_spec": "elementtree@^0.1.6",
+  "_where": "/Users/steveng/repo/cordova/cordova-android",
   "author": {
     "name": "Rackspace US, Inc."
   },
+  "bugs": {
+    "url": "https://github.com/racker/node-elementtree/issues"
+  },
   "contributors": [
     {
       "name": "Paul Querna",
@@ -12,64 +49,53 @@
       "email": "tomaz.muraus@rackspace.com"
     }
   ],
-  "name": "elementtree",
+  "dependencies": {
+    "sax": "0.3.5"
+  },
   "description": "XML Serialization and Parsing module based on Python's ElementTree.",
-  "version": "0.1.6",
-  "keywords": [
-    "xml",
-    "sax",
-    "parser",
-    "seralization",
-    "elementtree"
-  ],
-  "homepage": "https://github.com/racker/node-elementtree",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/racker/node-elementtree.git"
+  "devDependencies": {
+    "whiskey": "0.8.x"
   },
-  "main": "lib/elementtree.js",
   "directories": {
     "lib": "lib"
   },
-  "scripts": {
-    "test": "make test"
+  "dist": {
+    "shasum": "2ac4c46ea30516c8c4cbdb5e3ac7418e592de20c",
+    "tarball": "http://registry.npmjs.org/elementtree/-/elementtree-0.1.6.tgz"
   },
   "engines": {
     "node": ">= 0.4.0"
   },
-  "dependencies": {
-    "sax": "0.3.5"
-  },
-  "devDependencies": {
-    "whiskey": "0.8.x"
-  },
+  "homepage": "https://github.com/racker/node-elementtree",
+  "keywords": [
+    "elementtree",
+    "parser",
+    "sax",
+    "seralization",
+    "xml"
+  ],
   "licenses": [
     {
       "type": "Apache",
       "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
     }
   ],
-  "bugs": {
-    "url": "https://github.com/racker/node-elementtree/issues"
-  },
-  "_id": "elementtree@0.1.6",
-  "dist": {
-    "shasum": "2ac4c46ea30516c8c4cbdb5e3ac7418e592de20c",
-    "tarball": "http://registry.npmjs.org/elementtree/-/elementtree-0.1.6.tgz"
-  },
-  "_from": "elementtree@>=0.1.6 <0.2.0",
-  "_npmVersion": "1.3.24",
-  "_npmUser": {
-    "name": "rphillips",
-    "email": "ryan@trolocsis.com"
-  },
+  "main": "lib/elementtree.js",
   "maintainers": [
     {
       "name": "rphillips",
       "email": "ryan@trolocsis.com"
     }
   ],
-  "_shasum": "2ac4c46ea30516c8c4cbdb5e3ac7418e592de20c",
-  "_resolved": "http://registry.npmjs.org/elementtree/-/elementtree-0.1.6.tgz",
-  "readme": "ERROR: No README data found!"
+  "name": "elementtree",
+  "optionalDependencies": {},
+  "readme": "ERROR: No README data found!",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/racker/node-elementtree.git"
+  },
+  "scripts": {
+    "test": "make test"
+  },
+  "version": "0.1.6"
 }

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/glob/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/glob/LICENSE b/node_modules/glob/LICENSE
new file mode 100644
index 0000000..19129e3
--- /dev/null
+++ b/node_modules/glob/LICENSE
@@ -0,0 +1,15 @@
+The ISC License
+
+Copyright (c) Isaac Z. Schlueter and Contributors
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/glob/README.md
----------------------------------------------------------------------
diff --git a/node_modules/glob/README.md b/node_modules/glob/README.md
new file mode 100644
index 0000000..063cf95
--- /dev/null
+++ b/node_modules/glob/README.md
@@ -0,0 +1,377 @@
+[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Dependency Status](https://david-dm.org/isaacs/node-glob.svg)](https://david-dm.org/isaacs/node-glob) [![devDependency Status](https://david-dm.org/isaacs/node-glob/dev-status.svg)](https://david-dm.org/isaacs/node-glob#info=devDependencies) [![optionalDependency Status](https://david-dm.org/isaacs/node-glob/optional-status.svg)](https://david-dm.org/isaacs/node-glob#info=optionalDependencies)
+
+# Glob
+
+Match files using the patterns the shell uses, like stars and stuff.
+
+This is a glob implementation in JavaScript.  It uses the `minimatch`
+library to do its matching.
+
+![](oh-my-glob.gif)
+
+## Usage
+
+```javascript
+var glob = require("glob")
+
+// options is optional
+glob("**/*.js", options, function (er, files) {
+  // files is an array of filenames.
+  // If the `nonull` option is set, and nothing
+  // was found, then files is ["**/*.js"]
+  // er is an error object or null.
+})
+```
+
+## Glob Primer
+
+"Globs" are the patterns you type when you do stuff like `ls *.js` on
+the command line, or put `build/*` in a `.gitignore` file.
+
+Before parsing the path part patterns, braced sections are expanded
+into a set.  Braced sections start with `{` and end with `}`, with any
+number of comma-delimited sections within.  Braced sections may contain
+slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`.
+
+The following characters have special magic meaning when used in a
+path portion:
+
+* `*` Matches 0 or more characters in a single path portion
+* `?` Matches 1 character
+* `[...]` Matches a range of characters, similar to a RegExp range.
+  If the first character of the range is `!` or `^` then it matches
+  any character not in the range.
+* `!(pattern|pattern|pattern)` Matches anything that does not match
+  any of the patterns provided.
+* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the
+  patterns provided.
+* `+(pattern|pattern|pattern)` Matches one or more occurrences of the
+  patterns provided.
+* `*(a|b|c)` Matches zero or more occurrences of the patterns provided
+* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns
+  provided
+* `**` If a "globstar" is alone in a path portion, then it matches
+  zero or more directories and subdirectories searching for matches.
+  It does not crawl symlinked directories.
+
+### Dots
+
+If a file or directory path portion has a `.` as the first character,
+then it will not match any glob pattern unless that pattern's
+corresponding path part also has a `.` as its first character.
+
+For example, the pattern `a/.*/c` would match the file at `a/.b/c`.
+However the pattern `a/*/c` would not, because `*` does not start with
+a dot character.
+
+You can make glob treat dots as normal characters by setting
+`dot:true` in the options.
+
+### Basename Matching
+
+If you set `matchBase:true` in the options, and the pattern has no
+slashes in it, then it will seek for any file anywhere in the tree
+with a matching basename.  For example, `*.js` would match
+`test/simple/basic.js`.
+
+### Negation
+
+The intent for negation would be for a pattern starting with `!` to
+match everything that *doesn't* match the supplied pattern.  However,
+the implementation is weird, and for the time being, this should be
+avoided.  The behavior is deprecated in version 5, and will be removed
+entirely in version 6.
+
+### Empty Sets
+
+If no matching files are found, then an empty array is returned.  This
+differs from the shell, where the pattern itself is returned.  For
+example:
+
+    $ echo a*s*d*f
+    a*s*d*f
+
+To get the bash-style behavior, set the `nonull:true` in the options.
+
+### See Also:
+
+* `man sh`
+* `man bash` (Search for "Pattern Matching")
+* `man 3 fnmatch`
+* `man 5 gitignore`
+* [minimatch documentation](https://github.com/isaacs/minimatch)
+
+## glob.hasMagic(pattern, [options])
+
+Returns `true` if there are any special characters in the pattern, and
+`false` otherwise.
+
+Note that the options affect the results.  If `noext:true` is set in
+the options object, then `+(a|b)` will not be considered a magic
+pattern.  If the pattern has a brace expansion, like `a/{b/c,x/y}`
+then that is considered magical, unless `nobrace:true` is set in the
+options.
+
+## glob(pattern, [options], cb)
+
+* `pattern` {String} Pattern to be matched
+* `options` {Object}
+* `cb` {Function}
+  * `err` {Error | null}
+  * `matches` {Array<String>} filenames found matching the pattern
+
+Perform an asynchronous glob search.
+
+## glob.sync(pattern, [options])
+
+* `pattern` {String} Pattern to be matched
+* `options` {Object}
+* return: {Array<String>} filenames found matching the pattern
+
+Perform a synchronous glob search.
+
+## Class: glob.Glob
+
+Create a Glob object by instantiating the `glob.Glob` class.
+
+```javascript
+var Glob = require("glob").Glob
+var mg = new Glob(pattern, options, cb)
+```
+
+It's an EventEmitter, and starts walking the filesystem to find matches
+immediately.
+
+### new glob.Glob(pattern, [options], [cb])
+
+* `pattern` {String} pattern to search for
+* `options` {Object}
+* `cb` {Function} Called when an error occurs, or matches are found
+  * `err` {Error | null}
+  * `matches` {Array<String>} filenames found matching the pattern
+
+Note that if the `sync` flag is set in the options, then matches will
+be immediately available on the `g.found` member.
+
+### Properties
+
+* `minimatch` The minimatch object that the glob uses.
+* `options` The options object passed in.
+* `aborted` Boolean which is set to true when calling `abort()`.  There
+  is no way at this time to continue a glob search after aborting, but
+  you can re-use the statCache to avoid having to duplicate syscalls.
+* `cache` Convenience object.  Each field has the following possible
+  values:
+  * `false` - Path does not exist
+  * `true` - Path exists
+  * `'DIR'` - Path exists, and is not a directory
+  * `'FILE'` - Path exists, and is a directory
+  * `[file, entries, ...]` - Path exists, is a directory, and the
+    array value is the results of `fs.readdir`
+* `statCache` Cache of `fs.stat` results, to prevent statting the same
+  path multiple times.
+* `symlinks` A record of which paths are symbolic links, which is
+  relevant in resolving `**` patterns.
+* `realpathCache` An optional object which is passed to `fs.realpath`
+  to minimize unnecessary syscalls.  It is stored on the instantiated
+  Glob object, and may be re-used.
+
+### Events
+
+* `end` When the matching is finished, this is emitted with all the
+  matches found.  If the `nonull` option is set, and no match was found,
+  then the `matches` list contains the original pattern.  The matches
+  are sorted, unless the `nosort` flag is set.
+* `match` Every time a match is found, this is emitted with the matched.
+* `error` Emitted when an unexpected error is encountered, or whenever
+  any fs error occurs if `options.strict` is set.
+* `abort` When `abort()` is called, this event is raised.
+
+### Methods
+
+* `pause` Temporarily stop the search
+* `resume` Resume the search
+* `abort` Stop the search forever
+
+### Options
+
+All the options that can be passed to Minimatch can also be passed to
+Glob to change pattern matching behavior.  Also, some have been added,
+or have glob-specific ramifications.
+
+All options are false by default, unless otherwise noted.
+
+All options are added to the Glob object, as well.
+
+If you are running many `glob` operations, you can pass a Glob object
+as the `options` argument to a subsequent operation to shortcut some
+`stat` and `readdir` calls.  At the very least, you may pass in shared
+`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that
+parallel glob operations will be sped up by sharing information about
+the filesystem.
+
+* `cwd` The current working directory in which to search.  Defaults
+  to `process.cwd()`.
+* `root` The place where patterns starting with `/` will be mounted
+  onto.  Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix
+  systems, and `C:\` or some such on Windows.)
+* `dot` Include `.dot` files in normal matches and `globstar` matches.
+  Note that an explicit dot in a portion of the pattern will always
+  match dot files.
+* `nomount` By default, a pattern starting with a forward-slash will be
+  "mounted" onto the root setting, so that a valid filesystem path is
+  returned.  Set this flag to disable that behavior.
+* `mark` Add a `/` character to directory matches.  Note that this
+  requires additional stat calls.
+* `nosort` Don't sort the results.
+* `stat` Set to true to stat *all* results.  This reduces performance
+  somewhat, and is completely unnecessary, unless `readdir` is presumed
+  to be an untrustworthy indicator of file existence.
+* `silent` When an unusual error is encountered when attempting to
+  read a directory, a warning will be printed to stderr.  Set the
+  `silent` option to true to suppress these warnings.
+* `strict` When an unusual error is encountered when attempting to
+  read a directory, the process will just continue on in search of
+  other matches.  Set the `strict` option to raise an error in these
+  cases.
+* `cache` See `cache` property above.  Pass in a previously generated
+  cache object to save some fs calls.
+* `statCache` A cache of results of filesystem information, to prevent
+  unnecessary stat calls.  While it should not normally be necessary
+  to set this, you may pass the statCache from one glob() call to the
+  options object of another, if you know that the filesystem will not
+  change between calls.  (See "Race Conditions" below.)
+* `symlinks` A cache of known symbolic links.  You may pass in a
+  previously generated `symlinks` object to save `lstat` calls when
+  resolving `**` matches.
+* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead.
+* `nounique` In some cases, brace-expanded patterns can result in the
+  same file showing up multiple times in the result set.  By default,
+  this implementation prevents duplicates in the result set.  Set this
+  flag to disable that behavior.
+* `nonull` Set to never return an empty set, instead returning a set
+  containing the pattern itself.  This is the default in glob(3).
+* `debug` Set to enable debug logging in minimatch and glob.
+* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets.
+* `noglobstar` Do not match `**` against multiple filenames.  (Ie,
+  treat it as a normal `*` instead.)
+* `noext` Do not match `+(a|b)` "extglob" patterns.
+* `nocase` Perform a case-insensitive match.  Note: on
+  case-insensitive filesystems, non-magic patterns will match by
+  default, since `stat` and `readdir` will not raise errors.
+* `matchBase` Perform a basename-only match if the pattern does not
+  contain any slash characters.  That is, `*.js` would be treated as
+  equivalent to `**/*.js`, matching all js files in all directories.
+* `nodir` Do not match directories, only files.  (Note: to match
+  *only* directories, simply put a `/` at the end of the pattern.)
+* `ignore` Add a pattern or an array of patterns to exclude matches.
+* `follow` Follow symlinked directories when expanding `**` patterns.
+  Note that this can result in a lot of duplicate references in the
+  presence of cyclic links.
+* `realpath` Set to true to call `fs.realpath` on all of the results.
+  In the case of a symlink that cannot be resolved, the full absolute
+  path to the matched entry is returned (though it will usually be a
+  broken symlink)
+* `nonegate` Suppress deprecated `negate` behavior.  (See below.)
+  Default=true
+* `nocomment` Suppress deprecated `comment` behavior.  (See below.)
+  Default=true
+
+## Comparisons to other fnmatch/glob implementations
+
+While strict compliance with the existing standards is a worthwhile
+goal, some discrepancies exist between node-glob and other
+implementations, and are intentional.
+
+The double-star character `**` is supported by default, unless the
+`noglobstar` flag is set.  This is supported in the manner of bsdglob
+and bash 4.3, where `**` only has special significance if it is the only
+thing in a path part.  That is, `a/**/b` will match `a/x/y/b`, but
+`a/**b` will not.
+
+Note that symlinked directories are not crawled as part of a `**`,
+though their contents may match against subsequent portions of the
+pattern.  This prevents infinite loops and duplicates and the like.
+
+If an escaped pattern has no matches, and the `nonull` flag is set,
+then glob returns the pattern as-provided, rather than
+interpreting the character escapes.  For example,
+`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
+`"*a?"`.  This is akin to setting the `nullglob` option in bash, except
+that it does not resolve escaped pattern characters.
+
+If brace expansion is not disabled, then it is performed before any
+other interpretation of the glob pattern.  Thus, a pattern like
+`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
+**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
+checked for validity.  Since those two are valid, matching proceeds.
+
+### Comments and Negation
+
+**Note**: In version 5 of this module, negation and comments are
+**disabled** by default.  You can explicitly set `nonegate:false` or
+`nocomment:false` to re-enable them.  They are going away entirely in
+version 6.
+
+The intent for negation would be for a pattern starting with `!` to
+match everything that *doesn't* match the supplied pattern.  However,
+the implementation is weird.  It is better to use the `ignore` option
+to set a pattern or set of patterns to exclude from matches.  If you
+want the "everything except *x*" type of behavior, you can use `**` as
+the main pattern, and set an `ignore` for the things to exclude.
+
+The comments feature is added in minimatch, primarily to more easily
+support use cases like ignore files, where a `#` at the start of a
+line makes the pattern "empty".  However, in the context of a
+straightforward filesystem globber, "comments" don't make much sense.
+
+## Windows
+
+**Please only use forward-slashes in glob expressions.**
+
+Though windows uses either `/` or `\` as its path separator, only `/`
+characters are used by this glob implementation.  You must use
+forward-slashes **only** in glob expressions.  Back-slashes will always
+be interpreted as escape characters, not path separators.
+
+Results from absolute patterns such as `/foo/*` are mounted onto the
+root setting using `path.join`.  On windows, this will by default result
+in `/foo/*` matching `C:\foo\bar.txt`.
+
+## Race Conditions
+
+Glob searching, by its very nature, is susceptible to race conditions,
+since it relies on directory walking and such.
+
+As a result, it is possible that a file that exists when glob looks for
+it may have been deleted or modified by the time it returns the result.
+
+As part of its internal implementation, this program caches all stat
+and readdir calls that it makes, in order to cut down on system
+overhead.  However, this also makes it even more susceptible to races,
+especially if the cache or statCache objects are reused between glob
+calls.
+
+Users are thus advised not to use a glob result as a guarantee of
+filesystem state in the face of rapid changes.  For the vast majority
+of operations, this is never a problem.
+
+## Contributing
+
+Any change to behavior (including bugfixes) must come with a test.
+
+Patches that fail tests or reduce performance will be rejected.
+
+```
+# to run tests
+npm test
+
+# to re-generate test fixtures
+npm run test-regen
+
+# to benchmark against bash/zsh
+npm run bench
+
+# to profile javascript
+npm run prof
+```

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/glob/common.js
----------------------------------------------------------------------
diff --git a/node_modules/glob/common.js b/node_modules/glob/common.js
new file mode 100644
index 0000000..e36a631
--- /dev/null
+++ b/node_modules/glob/common.js
@@ -0,0 +1,245 @@
+exports.alphasort = alphasort
+exports.alphasorti = alphasorti
+exports.setopts = setopts
+exports.ownProp = ownProp
+exports.makeAbs = makeAbs
+exports.finish = finish
+exports.mark = mark
+exports.isIgnored = isIgnored
+exports.childrenIgnored = childrenIgnored
+
+function ownProp (obj, field) {
+  return Object.prototype.hasOwnProperty.call(obj, field)
+}
+
+var path = require("path")
+var minimatch = require("minimatch")
+var isAbsolute = require("path-is-absolute")
+var Minimatch = minimatch.Minimatch
+
+function alphasorti (a, b) {
+  return a.toLowerCase().localeCompare(b.toLowerCase())
+}
+
+function alphasort (a, b) {
+  return a.localeCompare(b)
+}
+
+function setupIgnores (self, options) {
+  self.ignore = options.ignore || []
+
+  if (!Array.isArray(self.ignore))
+    self.ignore = [self.ignore]
+
+  if (self.ignore.length) {
+    self.ignore = self.ignore.map(ignoreMap)
+  }
+}
+
+function ignoreMap (pattern) {
+  var gmatcher = null
+  if (pattern.slice(-3) === '/**') {
+    var gpattern = pattern.replace(/(\/\*\*)+$/, '')
+    gmatcher = new Minimatch(gpattern)
+  }
+
+  return {
+    matcher: new Minimatch(pattern),
+    gmatcher: gmatcher
+  }
+}
+
+function setopts (self, pattern, options) {
+  if (!options)
+    options = {}
+
+  // base-matching: just use globstar for that.
+  if (options.matchBase && -1 === pattern.indexOf("/")) {
+    if (options.noglobstar) {
+      throw new Error("base matching requires globstar")
+    }
+    pattern = "**/" + pattern
+  }
+
+  self.silent = !!options.silent
+  self.pattern = pattern
+  self.strict = options.strict !== false
+  self.realpath = !!options.realpath
+  self.realpathCache = options.realpathCache || Object.create(null)
+  self.follow = !!options.follow
+  self.dot = !!options.dot
+  self.mark = !!options.mark
+  self.nodir = !!options.nodir
+  if (self.nodir)
+    self.mark = true
+  self.sync = !!options.sync
+  self.nounique = !!options.nounique
+  self.nonull = !!options.nonull
+  self.nosort = !!options.nosort
+  self.nocase = !!options.nocase
+  self.stat = !!options.stat
+  self.noprocess = !!options.noprocess
+
+  self.maxLength = options.maxLength || Infinity
+  self.cache = options.cache || Object.create(null)
+  self.statCache = options.statCache || Object.create(null)
+  self.symlinks = options.symlinks || Object.create(null)
+
+  setupIgnores(self, options)
+
+  self.changedCwd = false
+  var cwd = process.cwd()
+  if (!ownProp(options, "cwd"))
+    self.cwd = cwd
+  else {
+    self.cwd = options.cwd
+    self.changedCwd = path.resolve(options.cwd) !== cwd
+  }
+
+  self.root = options.root || path.resolve(self.cwd, "/")
+  self.root = path.resolve(self.root)
+  if (process.platform === "win32")
+    self.root = self.root.replace(/\\/g, "/")
+
+  self.nomount = !!options.nomount
+
+  // disable comments and negation unless the user explicitly
+  // passes in false as the option.
+  options.nonegate = options.nonegate === false ? false : true
+  options.nocomment = options.nocomment === false ? false : true
+  deprecationWarning(options)
+
+  self.minimatch = new Minimatch(pattern, options)
+  self.options = self.minimatch.options
+}
+
+// TODO(isaacs): remove entirely in v6
+// exported to reset in tests
+exports.deprecationWarned
+function deprecationWarning(options) {
+  if (!options.nonegate || !options.nocomment) {
+    if (process.noDeprecation !== true && !exports.deprecationWarned) {
+      var msg = 'glob WARNING: comments and negation will be disabled in v6'
+      if (process.throwDeprecation)
+        throw new Error(msg)
+      else if (process.traceDeprecation)
+        console.trace(msg)
+      else
+        console.error(msg)
+
+      exports.deprecationWarned = true
+    }
+  }
+}
+
+function finish (self) {
+  var nou = self.nounique
+  var all = nou ? [] : Object.create(null)
+
+  for (var i = 0, l = self.matches.length; i < l; i ++) {
+    var matches = self.matches[i]
+    if (!matches || Object.keys(matches).length === 0) {
+      if (self.nonull) {
+        // do like the shell, and spit out the literal glob
+        var literal = self.minimatch.globSet[i]
+        if (nou)
+          all.push(literal)
+        else
+          all[literal] = true
+      }
+    } else {
+      // had matches
+      var m = Object.keys(matches)
+      if (nou)
+        all.push.apply(all, m)
+      else
+        m.forEach(function (m) {
+          all[m] = true
+        })
+    }
+  }
+
+  if (!nou)
+    all = Object.keys(all)
+
+  if (!self.nosort)
+    all = all.sort(self.nocase ? alphasorti : alphasort)
+
+  // at *some* point we statted all of these
+  if (self.mark) {
+    for (var i = 0; i < all.length; i++) {
+      all[i] = self._mark(all[i])
+    }
+    if (self.nodir) {
+      all = all.filter(function (e) {
+        return !(/\/$/.test(e))
+      })
+    }
+  }
+
+  if (self.ignore.length)
+    all = all.filter(function(m) {
+      return !isIgnored(self, m)
+    })
+
+  self.found = all
+}
+
+function mark (self, p) {
+  var abs = makeAbs(self, p)
+  var c = self.cache[abs]
+  var m = p
+  if (c) {
+    var isDir = c === 'DIR' || Array.isArray(c)
+    var slash = p.slice(-1) === '/'
+
+    if (isDir && !slash)
+      m += '/'
+    else if (!isDir && slash)
+      m = m.slice(0, -1)
+
+    if (m !== p) {
+      var mabs = makeAbs(self, m)
+      self.statCache[mabs] = self.statCache[abs]
+      self.cache[mabs] = self.cache[abs]
+    }
+  }
+
+  return m
+}
+
+// lotta situps...
+function makeAbs (self, f) {
+  var abs = f
+  if (f.charAt(0) === '/') {
+    abs = path.join(self.root, f)
+  } else if (isAbsolute(f) || f === '') {
+    abs = f
+  } else if (self.changedCwd) {
+    abs = path.resolve(self.cwd, f)
+  } else {
+    abs = path.resolve(f)
+  }
+  return abs
+}
+
+
+// Return true, if pattern ends with globstar '**', for the accompanying parent directory.
+// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents
+function isIgnored (self, path) {
+  if (!self.ignore.length)
+    return false
+
+  return self.ignore.some(function(item) {
+    return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path))
+  })
+}
+
+function childrenIgnored (self, path) {
+  if (!self.ignore.length)
+    return false
+
+  return self.ignore.some(function(item) {
+    return !!(item.gmatcher && item.gmatcher.match(path))
+  })
+}

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/glob/glob.js
----------------------------------------------------------------------
diff --git a/node_modules/glob/glob.js b/node_modules/glob/glob.js
new file mode 100644
index 0000000..022d2ac
--- /dev/null
+++ b/node_modules/glob/glob.js
@@ -0,0 +1,752 @@
+// Approach:
+//
+// 1. Get the minimatch set
+// 2. For each pattern in the set, PROCESS(pattern, false)
+// 3. Store matches per-set, then uniq them
+//
+// PROCESS(pattern, inGlobStar)
+// Get the first [n] items from pattern that are all strings
+// Join these together.  This is PREFIX.
+//   If there is no more remaining, then stat(PREFIX) and
+//   add to matches if it succeeds.  END.
+//
+// If inGlobStar and PREFIX is symlink and points to dir
+//   set ENTRIES = []
+// else readdir(PREFIX) as ENTRIES
+//   If fail, END
+//
+// with ENTRIES
+//   If pattern[n] is GLOBSTAR
+//     // handle the case where the globstar match is empty
+//     // by pruning it out, and testing the resulting pattern
+//     PROCESS(pattern[0..n] + pattern[n+1 .. $], false)
+//     // handle other cases.
+//     for ENTRY in ENTRIES (not dotfiles)
+//       // attach globstar + tail onto the entry
+//       // Mark that this entry is a globstar match
+//       PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)
+//
+//   else // not globstar
+//     for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)
+//       Test ENTRY against pattern[n]
+//       If fails, continue
+//       If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])
+//
+// Caveat:
+//   Cache all stats and readdirs results to minimize syscall.  Since all
+//   we ever care about is existence and directory-ness, we can just keep
+//   `true` for files, and [children,...] for directories, or `false` for
+//   things that don't exist.
+
+module.exports = glob
+
+var fs = require('fs')
+var minimatch = require('minimatch')
+var Minimatch = minimatch.Minimatch
+var inherits = require('inherits')
+var EE = require('events').EventEmitter
+var path = require('path')
+var assert = require('assert')
+var isAbsolute = require('path-is-absolute')
+var globSync = require('./sync.js')
+var common = require('./common.js')
+var alphasort = common.alphasort
+var alphasorti = common.alphasorti
+var setopts = common.setopts
+var ownProp = common.ownProp
+var inflight = require('inflight')
+var util = require('util')
+var childrenIgnored = common.childrenIgnored
+var isIgnored = common.isIgnored
+
+var once = require('once')
+
+function glob (pattern, options, cb) {
+  if (typeof options === 'function') cb = options, options = {}
+  if (!options) options = {}
+
+  if (options.sync) {
+    if (cb)
+      throw new TypeError('callback provided to sync glob')
+    return globSync(pattern, options)
+  }
+
+  return new Glob(pattern, options, cb)
+}
+
+glob.sync = globSync
+var GlobSync = glob.GlobSync = globSync.GlobSync
+
+// old api surface
+glob.glob = glob
+
+glob.hasMagic = function (pattern, options_) {
+  var options = util._extend({}, options_)
+  options.noprocess = true
+
+  var g = new Glob(pattern, options)
+  var set = g.minimatch.set
+  if (set.length > 1)
+    return true
+
+  for (var j = 0; j < set[0].length; j++) {
+    if (typeof set[0][j] !== 'string')
+      return true
+  }
+
+  return false
+}
+
+glob.Glob = Glob
+inherits(Glob, EE)
+function Glob (pattern, options, cb) {
+  if (typeof options === 'function') {
+    cb = options
+    options = null
+  }
+
+  if (options && options.sync) {
+    if (cb)
+      throw new TypeError('callback provided to sync glob')
+    return new GlobSync(pattern, options)
+  }
+
+  if (!(this instanceof Glob))
+    return new Glob(pattern, options, cb)
+
+  setopts(this, pattern, options)
+  this._didRealPath = false
+
+  // process each pattern in the minimatch set
+  var n = this.minimatch.set.length
+
+  // The matches are stored as {<filename>: true,...} so that
+  // duplicates are automagically pruned.
+  // Later, we do an Object.keys() on these.
+  // Keep them as a list so we can fill in when nonull is set.
+  this.matches = new Array(n)
+
+  if (typeof cb === 'function') {
+    cb = once(cb)
+    this.on('error', cb)
+    this.on('end', function (matches) {
+      cb(null, matches)
+    })
+  }
+
+  var self = this
+  var n = this.minimatch.set.length
+  this._processing = 0
+  this.matches = new Array(n)
+
+  this._emitQueue = []
+  this._processQueue = []
+  this.paused = false
+
+  if (this.noprocess)
+    return this
+
+  if (n === 0)
+    return done()
+
+  for (var i = 0; i < n; i ++) {
+    this._process(this.minimatch.set[i], i, false, done)
+  }
+
+  function done () {
+    --self._processing
+    if (self._processing <= 0)
+      self._finish()
+  }
+}
+
+Glob.prototype._finish = function () {
+  assert(this instanceof Glob)
+  if (this.aborted)
+    return
+
+  if (this.realpath && !this._didRealpath)
+    return this._realpath()
+
+  common.finish(this)
+  this.emit('end', this.found)
+}
+
+Glob.prototype._realpath = function () {
+  if (this._didRealpath)
+    return
+
+  this._didRealpath = true
+
+  var n = this.matches.length
+  if (n === 0)
+    return this._finish()
+
+  var self = this
+  for (var i = 0; i < this.matches.length; i++)
+    this._realpathSet(i, next)
+
+  function next () {
+    if (--n === 0)
+      self._finish()
+  }
+}
+
+Glob.prototype._realpathSet = function (index, cb) {
+  var matchset = this.matches[index]
+  if (!matchset)
+    return cb()
+
+  var found = Object.keys(matchset)
+  var self = this
+  var n = found.length
+
+  if (n === 0)
+    return cb()
+
+  var set = this.matches[index] = Object.create(null)
+  found.forEach(function (p, i) {
+    // If there's a problem with the stat, then it means that
+    // one or more of the links in the realpath couldn't be
+    // resolved.  just return the abs value in that case.
+    p = self._makeAbs(p)
+    fs.realpath(p, self.realpathCache, function (er, real) {
+      if (!er)
+        set[real] = true
+      else if (er.syscall === 'stat')
+        set[p] = true
+      else
+        self.emit('error', er) // srsly wtf right here
+
+      if (--n === 0) {
+        self.matches[index] = set
+        cb()
+      }
+    })
+  })
+}
+
+Glob.prototype._mark = function (p) {
+  return common.mark(this, p)
+}
+
+Glob.prototype._makeAbs = function (f) {
+  return common.makeAbs(this, f)
+}
+
+Glob.prototype.abort = function () {
+  this.aborted = true
+  this.emit('abort')
+}
+
+Glob.prototype.pause = function () {
+  if (!this.paused) {
+    this.paused = true
+    this.emit('pause')
+  }
+}
+
+Glob.prototype.resume = function () {
+  if (this.paused) {
+    this.emit('resume')
+    this.paused = false
+    if (this._emitQueue.length) {
+      var eq = this._emitQueue.slice(0)
+      this._emitQueue.length = 0
+      for (var i = 0; i < eq.length; i ++) {
+        var e = eq[i]
+        this._emitMatch(e[0], e[1])
+      }
+    }
+    if (this._processQueue.length) {
+      var pq = this._processQueue.slice(0)
+      this._processQueue.length = 0
+      for (var i = 0; i < pq.length; i ++) {
+        var p = pq[i]
+        this._processing--
+        this._process(p[0], p[1], p[2], p[3])
+      }
+    }
+  }
+}
+
+Glob.prototype._process = function (pattern, index, inGlobStar, cb) {
+  assert(this instanceof Glob)
+  assert(typeof cb === 'function')
+
+  if (this.aborted)
+    return
+
+  this._processing++
+  if (this.paused) {
+    this._processQueue.push([pattern, index, inGlobStar, cb])
+    return
+  }
+
+  //console.error('PROCESS %d', this._processing, pattern)
+
+  // Get the first [n] parts of pattern that are all strings.
+  var n = 0
+  while (typeof pattern[n] === 'string') {
+    n ++
+  }
+  // now n is the index of the first one that is *not* a string.
+
+  // see if there's anything else
+  var prefix
+  switch (n) {
+    // if not, then this is rather simple
+    case pattern.length:
+      this._processSimple(pattern.join('/'), index, cb)
+      return
+
+    case 0:
+      // pattern *starts* with some non-trivial item.
+      // going to readdir(cwd), but not include the prefix in matches.
+      prefix = null
+      break
+
+    default:
+      // pattern has some string bits in the front.
+      // whatever it starts with, whether that's 'absolute' like /foo/bar,
+      // or 'relative' like '../baz'
+      prefix = pattern.slice(0, n).join('/')
+      break
+  }
+
+  var remain = pattern.slice(n)
+
+  // get the list of entries.
+  var read
+  if (prefix === null)
+    read = '.'
+  else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
+    if (!prefix || !isAbsolute(prefix))
+      prefix = '/' + prefix
+    read = prefix
+  } else
+    read = prefix
+
+  var abs = this._makeAbs(read)
+
+  //if ignored, skip _processing
+  if (childrenIgnored(this, read))
+    return cb()
+
+  var isGlobStar = remain[0] === minimatch.GLOBSTAR
+  if (isGlobStar)
+    this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb)
+  else
+    this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb)
+}
+
+Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {
+  var self = this
+  this._readdir(abs, inGlobStar, function (er, entries) {
+    return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
+  })
+}
+
+Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
+
+  // if the abs isn't a dir, then nothing can match!
+  if (!entries)
+    return cb()
+
+  // It will only match dot entries if it starts with a dot, or if
+  // dot is set.  Stuff like @(.foo|.bar) isn't allowed.
+  var pn = remain[0]
+  var negate = !!this.minimatch.negate
+  var rawGlob = pn._glob
+  var dotOk = this.dot || rawGlob.charAt(0) === '.'
+
+  var matchedEntries = []
+  for (var i = 0; i < entries.length; i++) {
+    var e = entries[i]
+    if (e.charAt(0) !== '.' || dotOk) {
+      var m
+      if (negate && !prefix) {
+        m = !e.match(pn)
+      } else {
+        m = e.match(pn)
+      }
+      if (m)
+        matchedEntries.push(e)
+    }
+  }
+
+  //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)
+
+  var len = matchedEntries.length
+  // If there are no matched entries, then nothing matches.
+  if (len === 0)
+    return cb()
+
+  // if this is the last remaining pattern bit, then no need for
+  // an additional stat *unless* the user has specified mark or
+  // stat explicitly.  We know they exist, since readdir returned
+  // them.
+
+  if (remain.length === 1 && !this.mark && !this.stat) {
+    if (!this.matches[index])
+      this.matches[index] = Object.create(null)
+
+    for (var i = 0; i < len; i ++) {
+      var e = matchedEntries[i]
+      if (prefix) {
+        if (prefix !== '/')
+          e = prefix + '/' + e
+        else
+          e = prefix + e
+      }
+
+      if (e.charAt(0) === '/' && !this.nomount) {
+        e = path.join(this.root, e)
+      }
+      this._emitMatch(index, e)
+    }
+    // This was the last one, and no stats were needed
+    return cb()
+  }
+
+  // now test all matched entries as stand-ins for that part
+  // of the pattern.
+  remain.shift()
+  for (var i = 0; i < len; i ++) {
+    var e = matchedEntries[i]
+    var newPattern
+    if (prefix) {
+      if (prefix !== '/')
+        e = prefix + '/' + e
+      else
+        e = prefix + e
+    }
+    this._process([e].concat(remain), index, inGlobStar, cb)
+  }
+  cb()
+}
+
+Glob.prototype._emitMatch = function (index, e) {
+  if (this.aborted)
+    return
+
+  if (this.matches[index][e])
+    return
+
+  if (isIgnored(this, e))
+    return
+
+  if (this.paused) {
+    this._emitQueue.push([index, e])
+    return
+  }
+
+  var abs = this._makeAbs(e)
+
+  if (this.nodir) {
+    var c = this.cache[abs]
+    if (c === 'DIR' || Array.isArray(c))
+      return
+  }
+
+  if (this.mark)
+    e = this._mark(e)
+
+  this.matches[index][e] = true
+
+  var st = this.statCache[abs]
+  if (st)
+    this.emit('stat', e, st)
+
+  this.emit('match', e)
+}
+
+Glob.prototype._readdirInGlobStar = function (abs, cb) {
+  if (this.aborted)
+    return
+
+  // follow all symlinked directories forever
+  // just proceed as if this is a non-globstar situation
+  if (this.follow)
+    return this._readdir(abs, false, cb)
+
+  var lstatkey = 'lstat\0' + abs
+  var self = this
+  var lstatcb = inflight(lstatkey, lstatcb_)
+
+  if (lstatcb)
+    fs.lstat(abs, lstatcb)
+
+  function lstatcb_ (er, lstat) {
+    if (er)
+      return cb()
+
+    var isSym = lstat.isSymbolicLink()
+    self.symlinks[abs] = isSym
+
+    // If it's not a symlink or a dir, then it's definitely a regular file.
+    // don't bother doing a readdir in that case.
+    if (!isSym && !lstat.isDirectory()) {
+      self.cache[abs] = 'FILE'
+      cb()
+    } else
+      self._readdir(abs, false, cb)
+  }
+}
+
+Glob.prototype._readdir = function (abs, inGlobStar, cb) {
+  if (this.aborted)
+    return
+
+  cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb)
+  if (!cb)
+    return
+
+  //console.error('RD %j %j', +inGlobStar, abs)
+  if (inGlobStar && !ownProp(this.symlinks, abs))
+    return this._readdirInGlobStar(abs, cb)
+
+  if (ownProp(this.cache, abs)) {
+    var c = this.cache[abs]
+    if (!c || c === 'FILE')
+      return cb()
+
+    if (Array.isArray(c))
+      return cb(null, c)
+  }
+
+  var self = this
+  fs.readdir(abs, readdirCb(this, abs, cb))
+}
+
+function readdirCb (self, abs, cb) {
+  return function (er, entries) {
+    if (er)
+      self._readdirError(abs, er, cb)
+    else
+      self._readdirEntries(abs, entries, cb)
+  }
+}
+
+Glob.prototype._readdirEntries = function (abs, entries, cb) {
+  if (this.aborted)
+    return
+
+  // if we haven't asked to stat everything, then just
+  // assume that everything in there exists, so we can avoid
+  // having to stat it a second time.
+  if (!this.mark && !this.stat) {
+    for (var i = 0; i < entries.length; i ++) {
+      var e = entries[i]
+      if (abs === '/')
+        e = abs + e
+      else
+        e = abs + '/' + e
+      this.cache[e] = true
+    }
+  }
+
+  this.cache[abs] = entries
+  return cb(null, entries)
+}
+
+Glob.prototype._readdirError = function (f, er, cb) {
+  if (this.aborted)
+    return
+
+  // handle errors, and cache the information
+  switch (er.code) {
+    case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
+    case 'ENOTDIR': // totally normal. means it *does* exist.
+      this.cache[this._makeAbs(f)] = 'FILE'
+      break
+
+    case 'ENOENT': // not terribly unusual
+    case 'ELOOP':
+    case 'ENAMETOOLONG':
+    case 'UNKNOWN':
+      this.cache[this._makeAbs(f)] = false
+      break
+
+    default: // some unusual error.  Treat as failure.
+      this.cache[this._makeAbs(f)] = false
+      if (this.strict) {
+        this.emit('error', er)
+        // If the error is handled, then we abort
+        // if not, we threw out of here
+        this.abort()
+      }
+      if (!this.silent)
+        console.error('glob error', er)
+      break
+  }
+
+  return cb()
+}
+
+Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {
+  var self = this
+  this._readdir(abs, inGlobStar, function (er, entries) {
+    self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
+  })
+}
+
+
+Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
+  //console.error('pgs2', prefix, remain[0], entries)
+
+  // no entries means not a dir, so it can never have matches
+  // foo.txt/** doesn't match foo.txt
+  if (!entries)
+    return cb()
+
+  // test without the globstar, and with every child both below
+  // and replacing the globstar.
+  var remainWithoutGlobStar = remain.slice(1)
+  var gspref = prefix ? [ prefix ] : []
+  var noGlobStar = gspref.concat(remainWithoutGlobStar)
+
+  // the noGlobStar pattern exits the inGlobStar state
+  this._process(noGlobStar, index, false, cb)
+
+  var isSym = this.symlinks[abs]
+  var len = entries.length
+
+  // If it's a symlink, and we're in a globstar, then stop
+  if (isSym && inGlobStar)
+    return cb()
+
+  for (var i = 0; i < len; i++) {
+    var e = entries[i]
+    if (e.charAt(0) === '.' && !this.dot)
+      continue
+
+    // these two cases enter the inGlobStar state
+    var instead = gspref.concat(entries[i], remainWithoutGlobStar)
+    this._process(instead, index, true, cb)
+
+    var below = gspref.concat(entries[i], remain)
+    this._process(below, index, true, cb)
+  }
+
+  cb()
+}
+
+Glob.prototype._processSimple = function (prefix, index, cb) {
+  // XXX review this.  Shouldn't it be doing the mounting etc
+  // before doing stat?  kinda weird?
+  var self = this
+  this._stat(prefix, function (er, exists) {
+    self._processSimple2(prefix, index, er, exists, cb)
+  })
+}
+Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {
+
+  //console.error('ps2', prefix, exists)
+
+  if (!this.matches[index])
+    this.matches[index] = Object.create(null)
+
+  // If it doesn't exist, then just mark the lack of results
+  if (!exists)
+    return cb()
+
+  if (prefix && isAbsolute(prefix) && !this.nomount) {
+    var trail = /[\/\\]$/.test(prefix)
+    if (prefix.charAt(0) === '/') {
+      prefix = path.join(this.root, prefix)
+    } else {
+      prefix = path.resolve(this.root, prefix)
+      if (trail)
+        prefix += '/'
+    }
+  }
+
+  if (process.platform === 'win32')
+    prefix = prefix.replace(/\\/g, '/')
+
+  // Mark this as a match
+  this._emitMatch(index, prefix)
+  cb()
+}
+
+// Returns either 'DIR', 'FILE', or false
+Glob.prototype._stat = function (f, cb) {
+  var abs = this._makeAbs(f)
+  var needDir = f.slice(-1) === '/'
+
+  if (f.length > this.maxLength)
+    return cb()
+
+  if (!this.stat && ownProp(this.cache, abs)) {
+    var c = this.cache[abs]
+
+    if (Array.isArray(c))
+      c = 'DIR'
+
+    // It exists, but maybe not how we need it
+    if (!needDir || c === 'DIR')
+      return cb(null, c)
+
+    if (needDir && c === 'FILE')
+      return cb()
+
+    // otherwise we have to stat, because maybe c=true
+    // if we know it exists, but not what it is.
+  }
+
+  var exists
+  var stat = this.statCache[abs]
+  if (stat !== undefined) {
+    if (stat === false)
+      return cb(null, stat)
+    else {
+      var type = stat.isDirectory() ? 'DIR' : 'FILE'
+      if (needDir && type === 'FILE')
+        return cb()
+      else
+        return cb(null, type, stat)
+    }
+  }
+
+  var self = this
+  var statcb = inflight('stat\0' + abs, lstatcb_)
+  if (statcb)
+    fs.lstat(abs, statcb)
+
+  function lstatcb_ (er, lstat) {
+    if (lstat && lstat.isSymbolicLink()) {
+      // If it's a symlink, then treat it as the target, unless
+      // the target does not exist, then treat it as a file.
+      return fs.stat(abs, function (er, stat) {
+        if (er)
+          self._stat2(f, abs, null, lstat, cb)
+        else
+          self._stat2(f, abs, er, stat, cb)
+      })
+    } else {
+      self._stat2(f, abs, er, lstat, cb)
+    }
+  }
+}
+
+Glob.prototype._stat2 = function (f, abs, er, stat, cb) {
+  if (er) {
+    this.statCache[abs] = false
+    return cb()
+  }
+
+  var needDir = f.slice(-1) === '/'
+  this.statCache[abs] = stat
+
+  if (abs.slice(-1) === '/' && !stat.isDirectory())
+    return cb(null, false, stat)
+
+  var c = stat.isDirectory() ? 'DIR' : 'FILE'
+  this.cache[abs] = this.cache[abs] || c
+
+  if (needDir && c !== 'DIR')
+    return cb()
+
+  return cb(null, c, stat)
+}

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1d7ccaec/node_modules/glob/package.json
----------------------------------------------------------------------
diff --git a/node_modules/glob/package.json b/node_modules/glob/package.json
new file mode 100644
index 0000000..7c398ae
--- /dev/null
+++ b/node_modules/glob/package.json
@@ -0,0 +1,98 @@
+{
+  "_args": [
+    [
+      "glob@^5.0.13",
+      "/Users/steveng/repo/cordova/cordova-android/node_modules/cordova-common"
+    ]
+  ],
+  "_from": "glob@>=5.0.13 <6.0.0",
+  "_id": "glob@5.0.15",
+  "_inCache": true,
+  "_installable": true,
+  "_location": "/glob",
+  "_nodeVersion": "4.0.0",
+  "_npmUser": {
+    "email": "isaacs@npmjs.com",
+    "name": "isaacs"
+  },
+  "_npmVersion": "3.3.2",
+  "_phantomChildren": {},
+  "_requested": {
+    "name": "glob",
+    "raw": "glob@^5.0.13",
+    "rawSpec": "^5.0.13",
+    "scope": null,
+    "spec": ">=5.0.13 <6.0.0",
+    "type": "range"
+  },
+  "_requiredBy": [
+    "/cordova-common"
+  ],
+  "_resolved": "http://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+  "_shasum": "1bc936b9e02f4a603fcc222ecf7633d30b8b93b1",
+  "_shrinkwrap": null,
+  "_spec": "glob@^5.0.13",
+  "_where": "/Users/steveng/repo/cordova/cordova-android/node_modules/cordova-common",
+  "author": {
+    "email": "i@izs.me",
+    "name": "Isaac Z. Schlueter",
+    "url": "http://blog.izs.me/"
+  },
+  "bugs": {
+    "url": "https://github.com/isaacs/node-glob/issues"
+  },
+  "dependencies": {
+    "inflight": "^1.0.4",
+    "inherits": "2",
+    "minimatch": "2 || 3",
+    "once": "^1.3.0",
+    "path-is-absolute": "^1.0.0"
+  },
+  "description": "a little globber",
+  "devDependencies": {
+    "mkdirp": "0",
+    "rimraf": "^2.2.8",
+    "tap": "^1.1.4",
+    "tick": "0.0.6"
+  },
+  "directories": {},
+  "dist": {
+    "shasum": "1bc936b9e02f4a603fcc222ecf7633d30b8b93b1",
+    "tarball": "http://registry.npmjs.org/glob/-/glob-5.0.15.tgz"
+  },
+  "engines": {
+    "node": "*"
+  },
+  "files": [
+    "common.js",
+    "glob.js",
+    "sync.js"
+  ],
+  "gitHead": "3a7e71d453dd80e75b196fd262dd23ed54beeceb",
+  "homepage": "https://github.com/isaacs/node-glob#readme",
+  "license": "ISC",
+  "main": "glob.js",
+  "maintainers": [
+    {
+      "name": "isaacs",
+      "email": "i@izs.me"
+    }
+  ],
+  "name": "glob",
+  "optionalDependencies": {},
+  "readme": "ERROR: No README data found!",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/isaacs/node-glob.git"
+  },
+  "scripts": {
+    "bench": "bash benchmark.sh",
+    "benchclean": "node benchclean.js",
+    "prepublish": "npm run benchclean",
+    "prof": "bash prof.sh && cat profile.txt",
+    "profclean": "rm -f v8.log profile.txt",
+    "test": "tap test/*.js --cov",
+    "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js"
+  },
+  "version": "5.0.15"
+}


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


Mime
View raw message