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 2017/05/02 00:08:31 UTC
[11/68] [abbrv] cordova-lib git commit: CB-11242: updated tests and
fixtures
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata-chunked.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata-chunked.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata-chunked.js
new file mode 100644
index 0000000..ccd5ee6
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata-chunked.js
@@ -0,0 +1,11 @@
+
+require(__dirname).test({
+ expect : [
+ ["opentag", {"name": "R","attributes": {}}],
+ ["opencdata", undefined],
+ ["cdata", " this is character data \uf8ff "],
+ ["closecdata", undefined],
+ ["closetag", "R"]
+ ]
+}).write("<r><![CDATA[ this is ").write("character data \uf8ff ").write("]]></r>").close();
+
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata-end-split.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata-end-split.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata-end-split.js
new file mode 100644
index 0000000..b41bd00
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata-end-split.js
@@ -0,0 +1,15 @@
+
+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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata-fake-end.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata-fake-end.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata-fake-end.js
new file mode 100644
index 0000000..07aeac4
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata-fake-end.js
@@ -0,0 +1,28 @@
+
+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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata-multiple.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata-multiple.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata-multiple.js
new file mode 100644
index 0000000..dab2015
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata-multiple.js
@@ -0,0 +1,15 @@
+
+require(__dirname).test({
+ expect : [
+ ["opentag", {"name": "R","attributes": {}}],
+ ["opencdata", undefined],
+ ["cdata", " this is "],
+ ["closecdata", undefined],
+ ["opencdata", undefined],
+ ["cdata", "character data \uf8ff "],
+ ["closecdata", undefined],
+ ["closetag", "R"]
+ ]
+}).write("<r><![CDATA[ this is ]]>").write("<![CDA").write("T").write("A[")
+ .write("character data \uf8ff ").write("]]></r>").close();
+
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata.js
new file mode 100644
index 0000000..0f09cce
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/cdata.js
@@ -0,0 +1,10 @@
+require(__dirname).test({
+ xml : "<r><![CDATA[ this is character data \uf8ff ]]></r>",
+ expect : [
+ ["opentag", {"name": "R","attributes": {}}],
+ ["opencdata", undefined],
+ ["cdata", " this is character data \uf8ff "],
+ ["closecdata", undefined],
+ ["closetag", "R"]
+ ]
+});
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/index.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/index.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/index.js
new file mode 100644
index 0000000..d4e1ef4
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/index.js
@@ -0,0 +1,86 @@
+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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-23.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-23.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-23.js
new file mode 100644
index 0000000..e7991b2
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-23.js
@@ -0,0 +1,43 @@
+
+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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-30.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-30.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-30.js
new file mode 100644
index 0000000..c2cc809
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-30.js
@@ -0,0 +1,24 @@
+// 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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-35.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-35.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-35.js
new file mode 100644
index 0000000..7c521c5
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-35.js
@@ -0,0 +1,15 @@
+// https://github.com/isaacs/sax-js/issues/35
+require(__dirname).test
+ ( { xml : "<xml>

\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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-47.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-47.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-47.js
new file mode 100644
index 0000000..911c7d0
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-47.js
@@ -0,0 +1,13 @@
+// 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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-49.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-49.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-49.js
new file mode 100644
index 0000000..2964325
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/issue-49.js
@@ -0,0 +1,31 @@
+// 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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/parser-position.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/parser-position.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/parser-position.js
new file mode 100644
index 0000000..e4a68b1
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/parser-position.js
@@ -0,0 +1,28 @@
+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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/script.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/script.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/script.js
new file mode 100644
index 0000000..464c051
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/script.js
@@ -0,0 +1,12 @@
+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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/self-closing-child-strict.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/self-closing-child-strict.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/self-closing-child-strict.js
new file mode 100644
index 0000000..ce9c045
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/self-closing-child-strict.js
@@ -0,0 +1,40 @@
+
+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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/self-closing-child.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/self-closing-child.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/self-closing-child.js
new file mode 100644
index 0000000..bc6b52b
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/self-closing-child.js
@@ -0,0 +1,40 @@
+
+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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/self-closing-tag.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/self-closing-tag.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/self-closing-tag.js
new file mode 100644
index 0000000..b2c5736
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/self-closing-tag.js
@@ -0,0 +1,25 @@
+
+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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/stray-ending.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/stray-ending.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/stray-ending.js
new file mode 100644
index 0000000..6b0aa7f
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/stray-ending.js
@@ -0,0 +1,17 @@
+// 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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/trailing-non-whitespace.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/trailing-non-whitespace.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/trailing-non-whitespace.js
new file mode 100644
index 0000000..3e1fb2e
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/trailing-non-whitespace.js
@@ -0,0 +1,17 @@
+
+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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/unquoted.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/unquoted.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/unquoted.js
new file mode 100644
index 0000000..79f1d0b
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/unquoted.js
@@ -0,0 +1,17 @@
+// 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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-issue-41.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-issue-41.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-issue-41.js
new file mode 100644
index 0000000..596d82b
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-issue-41.js
@@ -0,0 +1,67 @@
+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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-rebinding.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-rebinding.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-rebinding.js
new file mode 100644
index 0000000..f464876
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-rebinding.js
@@ -0,0 +1,59 @@
+
+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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-strict.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-strict.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-strict.js
new file mode 100644
index 0000000..4ad615b
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-strict.js
@@ -0,0 +1,71 @@
+
+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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-unbound.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-unbound.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-unbound.js
new file mode 100644
index 0000000..2944b87
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-unbound.js
@@ -0,0 +1,15 @@
+
+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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js
new file mode 100644
index 0000000..16da771
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js
@@ -0,0 +1,35 @@
+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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-xml-default-prefix.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-xml-default-prefix.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-xml-default-prefix.js
new file mode 100644
index 0000000..9a1ce1b
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-xml-default-prefix.js
@@ -0,0 +1,20 @@
+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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-xml-default-redefine.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-xml-default-redefine.js b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-xml-default-redefine.js
new file mode 100644
index 0000000..1eba9c7
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/sax/test/xmlns-xml-default-redefine.js
@@ -0,0 +1,40 @@
+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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/LICENSE
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/LICENSE b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/LICENSE
new file mode 100644
index 0000000..19129e3
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/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-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/README.md
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/README.md b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/README.md
new file mode 100644
index 0000000..cbd9565
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/README.md
@@ -0,0 +1,350 @@
+semver(1) -- The semantic versioner for npm
+===========================================
+
+## Usage
+
+ $ npm install semver
+ $ node
+ var semver = require('semver')
+
+ semver.valid('1.2.3') // '1.2.3'
+ semver.valid('a.b.c') // null
+ semver.clean(' =v1.2.3 ') // '1.2.3'
+ semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true
+ semver.gt('1.2.3', '9.8.7') // false
+ semver.lt('1.2.3', '9.8.7') // true
+
+As a command-line utility:
+
+ $ semver -h
+
+ SemVer 5.1.0
+
+ A JavaScript implementation of the http://semver.org/ specification
+ Copyright Isaac Z. Schlueter
+
+ Usage: semver [options] <version> [<version> [...]]
+ Prints valid versions sorted by SemVer precedence
+
+ Options:
+ -r --range <range>
+ Print versions that match the specified range.
+
+ -i --increment [<level>]
+ Increment a version by the specified level. Level can
+ be one of: major, minor, patch, premajor, preminor,
+ prepatch, or prerelease. Default level is 'patch'.
+ Only one version may be specified.
+
+ --preid <identifier>
+ Identifier to be used to prefix premajor, preminor,
+ prepatch or prerelease version increments.
+
+ -l --loose
+ Interpret versions and ranges loosely
+
+ Program exits successfully if any valid version satisfies
+ all supplied ranges, and prints all satisfying versions.
+
+ If no satisfying versions are found, then exits failure.
+
+ Versions are printed in ascending order, so supplying
+ multiple versions to the utility will just sort them.
+
+## Versions
+
+A "version" is described by the `v2.0.0` specification found at
+<http://semver.org/>.
+
+A leading `"="` or `"v"` character is stripped off and ignored.
+
+## Ranges
+
+A `version range` is a set of `comparators` which specify versions
+that satisfy the range.
+
+A `comparator` is composed of an `operator` and a `version`. The set
+of primitive `operators` is:
+
+* `<` Less than
+* `<=` Less than or equal to
+* `>` Greater than
+* `>=` Greater than or equal to
+* `=` Equal. If no operator is specified, then equality is assumed,
+ so this operator is optional, but MAY be included.
+
+For example, the comparator `>=1.2.7` would match the versions
+`1.2.7`, `1.2.8`, `2.5.3`, and `1.3.9`, but not the versions `1.2.6`
+or `1.1.0`.
+
+Comparators can be joined by whitespace to form a `comparator set`,
+which is satisfied by the **intersection** of all of the comparators
+it includes.
+
+A range is composed of one or more comparator sets, joined by `||`. A
+version matches a range if and only if every comparator in at least
+one of the `||`-separated comparator sets is satisfied by the version.
+
+For example, the range `>=1.2.7 <1.3.0` would match the versions
+`1.2.7`, `1.2.8`, and `1.2.99`, but not the versions `1.2.6`, `1.3.0`,
+or `1.1.0`.
+
+The range `1.2.7 || >=1.2.9 <2.0.0` would match the versions `1.2.7`,
+`1.2.9`, and `1.4.6`, but not the versions `1.2.8` or `2.0.0`.
+
+### Prerelease Tags
+
+If a version has a prerelease tag (for example, `1.2.3-alpha.3`) then
+it will only be allowed to satisfy comparator sets if at least one
+comparator with the same `[major, minor, patch]` tuple also has a
+prerelease tag.
+
+For example, the range `>1.2.3-alpha.3` would be allowed to match the
+version `1.2.3-alpha.7`, but it would *not* be satisfied by
+`3.4.5-alpha.9`, even though `3.4.5-alpha.9` is technically "greater
+than" `1.2.3-alpha.3` according to the SemVer sort rules. The version
+range only accepts prerelease tags on the `1.2.3` version. The
+version `3.4.5` *would* satisfy the range, because it does not have a
+prerelease flag, and `3.4.5` is greater than `1.2.3-alpha.7`.
+
+The purpose for this behavior is twofold. First, prerelease versions
+frequently are updated very quickly, and contain many breaking changes
+that are (by the author's design) not yet fit for public consumption.
+Therefore, by default, they are excluded from range matching
+semantics.
+
+Second, a user who has opted into using a prerelease version has
+clearly indicated the intent to use *that specific* set of
+alpha/beta/rc versions. By including a prerelease tag in the range,
+the user is indicating that they are aware of the risk. However, it
+is still not appropriate to assume that they have opted into taking a
+similar risk on the *next* set of prerelease versions.
+
+#### Prerelease Identifiers
+
+The method `.inc` takes an additional `identifier` string argument that
+will append the value of the string as a prerelease identifier:
+
+```javascript
+> semver.inc('1.2.3', 'prerelease', 'beta')
+'1.2.4-beta.0'
+```
+
+command-line example:
+
+```shell
+$ semver 1.2.3 -i prerelease --preid beta
+1.2.4-beta.0
+```
+
+Which then can be used to increment further:
+
+```shell
+$ semver 1.2.4-beta.0 -i prerelease
+1.2.4-beta.1
+```
+
+### Advanced Range Syntax
+
+Advanced range syntax desugars to primitive comparators in
+deterministic ways.
+
+Advanced ranges may be combined in the same way as primitive
+comparators using white space or `||`.
+
+#### Hyphen Ranges `X.Y.Z - A.B.C`
+
+Specifies an inclusive set.
+
+* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4`
+
+If a partial version is provided as the first version in the inclusive
+range, then the missing pieces are replaced with zeroes.
+
+* `1.2 - 2.3.4` := `>=1.2.0 <=2.3.4`
+
+If a partial version is provided as the second version in the
+inclusive range, then all versions that start with the supplied parts
+of the tuple are accepted, but nothing that would be greater than the
+provided tuple parts.
+
+* `1.2.3 - 2.3` := `>=1.2.3 <2.4.0`
+* `1.2.3 - 2` := `>=1.2.3 <3.0.0`
+
+#### X-Ranges `1.2.x` `1.X` `1.2.*` `*`
+
+Any of `X`, `x`, or `*` may be used to "stand in" for one of the
+numeric values in the `[major, minor, patch]` tuple.
+
+* `*` := `>=0.0.0` (Any version satisfies)
+* `1.x` := `>=1.0.0 <2.0.0` (Matching major version)
+* `1.2.x` := `>=1.2.0 <1.3.0` (Matching major and minor versions)
+
+A partial version range is treated as an X-Range, so the special
+character is in fact optional.
+
+* `""` (empty string) := `*` := `>=0.0.0`
+* `1` := `1.x.x` := `>=1.0.0 <2.0.0`
+* `1.2` := `1.2.x` := `>=1.2.0 <1.3.0`
+
+#### Tilde Ranges `~1.2.3` `~1.2` `~1`
+
+Allows patch-level changes if a minor version is specified on the
+comparator. Allows minor-level changes if not.
+
+* `~1.2.3` := `>=1.2.3 <1.(2+1).0` := `>=1.2.3 <1.3.0`
+* `~1.2` := `>=1.2.0 <1.(2+1).0` := `>=1.2.0 <1.3.0` (Same as `1.2.x`)
+* `~1` := `>=1.0.0 <(1+1).0.0` := `>=1.0.0 <2.0.0` (Same as `1.x`)
+* `~0.2.3` := `>=0.2.3 <0.(2+1).0` := `>=0.2.3 <0.3.0`
+* `~0.2` := `>=0.2.0 <0.(2+1).0` := `>=0.2.0 <0.3.0` (Same as `0.2.x`)
+* `~0` := `>=0.0.0 <(0+1).0.0` := `>=0.0.0 <1.0.0` (Same as `0.x`)
+* `~1.2.3-beta.2` := `>=1.2.3-beta.2 <1.3.0` Note that prereleases in
+ the `1.2.3` version will be allowed, if they are greater than or
+ equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but
+ `1.2.4-beta.2` would not, because it is a prerelease of a
+ different `[major, minor, patch]` tuple.
+
+#### Caret Ranges `^1.2.3` `^0.2.5` `^0.0.4`
+
+Allows changes that do not modify the left-most non-zero digit in the
+`[major, minor, patch]` tuple. In other words, this allows patch and
+minor updates for versions `1.0.0` and above, patch updates for
+versions `0.X >=0.1.0`, and *no* updates for versions `0.0.X`.
+
+Many authors treat a `0.x` version as if the `x` were the major
+"breaking-change" indicator.
+
+Caret ranges are ideal when an author may make breaking changes
+between `0.2.4` and `0.3.0` releases, which is a common practice.
+However, it presumes that there will *not* be breaking changes between
+`0.2.4` and `0.2.5`. It allows for changes that are presumed to be
+additive (but non-breaking), according to commonly observed practices.
+
+* `^1.2.3` := `>=1.2.3 <2.0.0`
+* `^0.2.3` := `>=0.2.3 <0.3.0`
+* `^0.0.3` := `>=0.0.3 <0.0.4`
+* `^1.2.3-beta.2` := `>=1.2.3-beta.2 <2.0.0` Note that prereleases in
+ the `1.2.3` version will be allowed, if they are greater than or
+ equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but
+ `1.2.4-beta.2` would not, because it is a prerelease of a
+ different `[major, minor, patch]` tuple.
+* `^0.0.3-beta` := `>=0.0.3-beta <0.0.4` Note that prereleases in the
+ `0.0.3` version *only* will be allowed, if they are greater than or
+ equal to `beta`. So, `0.0.3-pr.2` would be allowed.
+
+When parsing caret ranges, a missing `patch` value desugars to the
+number `0`, but will allow flexibility within that value, even if the
+major and minor versions are both `0`.
+
+* `^1.2.x` := `>=1.2.0 <2.0.0`
+* `^0.0.x` := `>=0.0.0 <0.1.0`
+* `^0.0` := `>=0.0.0 <0.1.0`
+
+A missing `minor` and `patch` values will desugar to zero, but also
+allow flexibility within those values, even if the major version is
+zero.
+
+* `^1.x` := `>=1.0.0 <2.0.0`
+* `^0.x` := `>=0.0.0 <1.0.0`
+
+### Range Grammar
+
+Putting all this together, here is a Backus-Naur grammar for ranges,
+for the benefit of parser authors:
+
+```bnf
+range-set ::= range ( logical-or range ) *
+logical-or ::= ( ' ' ) * '||' ( ' ' ) *
+range ::= hyphen | simple ( ' ' simple ) * | ''
+hyphen ::= partial ' - ' partial
+simple ::= primitive | partial | tilde | caret
+primitive ::= ( '<' | '>' | '>=' | '<=' | '=' | ) partial
+partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )?
+xr ::= 'x' | 'X' | '*' | nr
+nr ::= '0' | ['1'-'9'] ( ['0'-'9'] ) *
+tilde ::= '~' partial
+caret ::= '^' partial
+qualifier ::= ( '-' pre )? ( '+' build )?
+pre ::= parts
+build ::= parts
+parts ::= part ( '.' part ) *
+part ::= nr | [-0-9A-Za-z]+
+```
+
+## Functions
+
+All methods and classes take a final `loose` boolean argument that, if
+true, will be more forgiving about not-quite-valid semver strings.
+The resulting output will always be 100% strict, of course.
+
+Strict-mode Comparators and Ranges will be strict about the SemVer
+strings that they parse.
+
+* `valid(v)`: Return the parsed version, or null if it's not valid.
+* `inc(v, release)`: Return the version incremented by the release
+ type (`major`, `premajor`, `minor`, `preminor`, `patch`,
+ `prepatch`, or `prerelease`), or null if it's not valid
+ * `premajor` in one call will bump the version up to the next major
+ version and down to a prerelease of that major version.
+ `preminor`, and `prepatch` work the same way.
+ * If called from a non-prerelease version, the `prerelease` will work the
+ same as `prepatch`. It increments the patch version, then makes a
+ prerelease. If the input version is already a prerelease it simply
+ increments it.
+* `prerelease(v)`: Returns an array of prerelease components, or null
+ if none exist. Example: `prerelease('1.2.3-alpha.1') -> ['alpha', 1]`
+* `major(v)`: Return the major version number.
+* `minor(v)`: Return the minor version number.
+* `patch(v)`: Return the patch version number.
+
+### Comparison
+
+* `gt(v1, v2)`: `v1 > v2`
+* `gte(v1, v2)`: `v1 >= v2`
+* `lt(v1, v2)`: `v1 < v2`
+* `lte(v1, v2)`: `v1 <= v2`
+* `eq(v1, v2)`: `v1 == v2` This is true if they're logically equivalent,
+ even if they're not the exact same string. You already know how to
+ compare strings.
+* `neq(v1, v2)`: `v1 != v2` The opposite of `eq`.
+* `cmp(v1, comparator, v2)`: Pass in a comparison string, and it'll call
+ the corresponding function above. `"==="` and `"!=="` do simple
+ string comparison, but are included for completeness. Throws if an
+ invalid comparison string is provided.
+* `compare(v1, v2)`: Return `0` if `v1 == v2`, or `1` if `v1` is greater, or `-1` if
+ `v2` is greater. Sorts in ascending order if passed to `Array.sort()`.
+* `rcompare(v1, v2)`: The reverse of compare. Sorts an array of versions
+ in descending order when passed to `Array.sort()`.
+* `diff(v1, v2)`: Returns difference between two versions by the release type
+ (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`),
+ or null if the versions are the same.
+
+
+### Ranges
+
+* `validRange(range)`: Return the valid range or null if it's not valid
+* `satisfies(version, range)`: Return true if the version satisfies the
+ range.
+* `maxSatisfying(versions, range)`: Return the highest version in the list
+ that satisfies the range, or `null` if none of them do.
+* `minSatisfying(versions, range)`: Return the lowest version in the list
+ that satisfies the range, or `null` if none of them do.
+* `gtr(version, range)`: Return `true` if version is greater than all the
+ versions possible in the range.
+* `ltr(version, range)`: Return `true` if version is less than all the
+ versions possible in the range.
+* `outside(version, range, hilo)`: Return true if the version is outside
+ the bounds of the range in either the high or low direction. The
+ `hilo` argument must be either the string `'>'` or `'<'`. (This is
+ the function called by `gtr` and `ltr`.)
+
+Note that, since ranges may be non-contiguous, a version might not be
+greater than a range, less than a range, *or* satisfy a range! For
+example, the range `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9`
+until `2.0.0`, so the version `1.2.10` would not be greater than the
+range (because `2.0.1` satisfies, which is higher), nor less than the
+range (since `1.2.8` satisfies, which is lower), and it also does not
+satisfy the range.
+
+If you want to know if a version satisfies or does not satisfy a
+range, use the `satisfies(version, range)` function.
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/bin/semver
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/bin/semver b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/bin/semver
new file mode 100755
index 0000000..c5f2e85
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/bin/semver
@@ -0,0 +1,133 @@
+#!/usr/bin/env node
+// Standalone semver comparison program.
+// Exits successfully and prints matching version(s) if
+// any supplied version is valid and passes all tests.
+
+var argv = process.argv.slice(2)
+ , versions = []
+ , range = []
+ , gt = []
+ , lt = []
+ , eq = []
+ , inc = null
+ , version = require("../package.json").version
+ , loose = false
+ , identifier = undefined
+ , semver = require("../semver")
+ , reverse = false
+
+main()
+
+function main () {
+ if (!argv.length) return help()
+ while (argv.length) {
+ var a = argv.shift()
+ var i = a.indexOf('=')
+ if (i !== -1) {
+ a = a.slice(0, i)
+ argv.unshift(a.slice(i + 1))
+ }
+ switch (a) {
+ case "-rv": case "-rev": case "--rev": case "--reverse":
+ reverse = true
+ break
+ case "-l": case "--loose":
+ loose = true
+ break
+ case "-v": case "--version":
+ versions.push(argv.shift())
+ break
+ case "-i": case "--inc": case "--increment":
+ switch (argv[0]) {
+ case "major": case "minor": case "patch": case "prerelease":
+ case "premajor": case "preminor": case "prepatch":
+ inc = argv.shift()
+ break
+ default:
+ inc = "patch"
+ break
+ }
+ break
+ case "--preid":
+ identifier = argv.shift()
+ break
+ case "-r": case "--range":
+ range.push(argv.shift())
+ break
+ case "-h": case "--help": case "-?":
+ return help()
+ default:
+ versions.push(a)
+ break
+ }
+ }
+
+ versions = versions.filter(function (v) {
+ return semver.valid(v, loose)
+ })
+ if (!versions.length) return fail()
+ if (inc && (versions.length !== 1 || range.length))
+ return failInc()
+
+ for (var i = 0, l = range.length; i < l ; i ++) {
+ versions = versions.filter(function (v) {
+ return semver.satisfies(v, range[i], loose)
+ })
+ if (!versions.length) return fail()
+ }
+ return success(versions)
+}
+
+function failInc () {
+ console.error("--inc can only be used on a single version with no range")
+ fail()
+}
+
+function fail () { process.exit(1) }
+
+function success () {
+ var compare = reverse ? "rcompare" : "compare"
+ versions.sort(function (a, b) {
+ return semver[compare](a, b, loose)
+ }).map(function (v) {
+ return semver.clean(v, loose)
+ }).map(function (v) {
+ return inc ? semver.inc(v, inc, loose, identifier) : v
+ }).forEach(function (v,i,_) { console.log(v) })
+}
+
+function help () {
+ console.log(["SemVer " + version
+ ,""
+ ,"A JavaScript implementation of the http://semver.org/ specification"
+ ,"Copyright Isaac Z. Schlueter"
+ ,""
+ ,"Usage: semver [options] <version> [<version> [...]]"
+ ,"Prints valid versions sorted by SemVer precedence"
+ ,""
+ ,"Options:"
+ ,"-r --range <range>"
+ ," Print versions that match the specified range."
+ ,""
+ ,"-i --increment [<level>]"
+ ," Increment a version by the specified level. Level can"
+ ," be one of: major, minor, patch, premajor, preminor,"
+ ," prepatch, or prerelease. Default level is 'patch'."
+ ," Only one version may be specified."
+ ,""
+ ,"--preid <identifier>"
+ ," Identifier to be used to prefix premajor, preminor,"
+ ," prepatch or prerelease version increments."
+ ,""
+ ,"-l --loose"
+ ," Interpret versions and ranges loosely"
+ ,""
+ ,"Program exits successfully if any valid version satisfies"
+ ,"all supplied ranges, and prints all satisfying versions."
+ ,""
+ ,"If no satisfying versions are found, then exits failure."
+ ,""
+ ,"Versions are printed in ascending order, so supplying"
+ ,"multiple versions to the utility will just sort them."
+ ].join("\n"))
+}
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/package.json
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/package.json b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/package.json
new file mode 100644
index 0000000..7c94665
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/package.json
@@ -0,0 +1,94 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "semver@^5.0.1",
+ "scope": null,
+ "escapedName": "semver",
+ "name": "semver",
+ "rawSpec": "^5.0.1",
+ "spec": ">=5.0.1 <6.0.0",
+ "type": "range"
+ },
+ "/Users/steveng/repo/cordova/cordova-android/node_modules/cordova-common"
+ ]
+ ],
+ "_from": "semver@>=5.0.1 <6.0.0",
+ "_id": "semver@5.3.0",
+ "_inCache": true,
+ "_location": "/cordova-android/semver",
+ "_nodeVersion": "4.4.4",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/semver-5.3.0.tgz_1468515166602_0.9155273644719273"
+ },
+ "_npmUser": {
+ "name": "isaacs",
+ "email": "i@izs.me"
+ },
+ "_npmVersion": "3.10.6",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "semver@^5.0.1",
+ "scope": null,
+ "escapedName": "semver",
+ "name": "semver",
+ "rawSpec": "^5.0.1",
+ "spec": ">=5.0.1 <6.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/cordova-android/cordova-common"
+ ],
+ "_resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "_shasum": "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f",
+ "_shrinkwrap": null,
+ "_spec": "semver@^5.0.1",
+ "_where": "/Users/steveng/repo/cordova/cordova-android/node_modules/cordova-common",
+ "bin": {
+ "semver": "./bin/semver"
+ },
+ "bugs": {
+ "url": "https://github.com/npm/node-semver/issues"
+ },
+ "dependencies": {},
+ "description": "The semantic version parser used by npm.",
+ "devDependencies": {
+ "tap": "^2.0.0"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f",
+ "tarball": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"
+ },
+ "files": [
+ "bin",
+ "range.bnf",
+ "semver.js"
+ ],
+ "gitHead": "d21444a0658224b152ce54965d02dbe0856afb84",
+ "homepage": "https://github.com/npm/node-semver#readme",
+ "license": "ISC",
+ "main": "semver.js",
+ "maintainers": [
+ {
+ "name": "isaacs",
+ "email": "isaacs@npmjs.com"
+ },
+ {
+ "name": "othiym23",
+ "email": "ogd@aoaioxxysz.net"
+ }
+ ],
+ "name": "semver",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/npm/node-semver.git"
+ },
+ "scripts": {
+ "test": "tap test/*.js"
+ },
+ "version": "5.3.0"
+}
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/f0e19e8c/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/range.bnf
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/range.bnf b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/range.bnf
new file mode 100644
index 0000000..25ebd5c
--- /dev/null
+++ b/cordova-lib/spec-plugman/projects/android/cordova/node_modules/semver/range.bnf
@@ -0,0 +1,16 @@
+range-set ::= range ( logical-or range ) *
+logical-or ::= ( ' ' ) * '||' ( ' ' ) *
+range ::= hyphen | simple ( ' ' simple ) * | ''
+hyphen ::= partial ' - ' partial
+simple ::= primitive | partial | tilde | caret
+primitive ::= ( '<' | '>' | '>=' | '<=' | '=' | ) partial
+partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )?
+xr ::= 'x' | 'X' | '*' | nr
+nr ::= '0' | ['1'-'9'] ( ['0'-'9'] ) *
+tilde ::= '~' partial
+caret ::= '^' partial
+qualifier ::= ( '-' pre )? ( '+' build )?
+pre ::= parts
+build ::= parts
+parts ::= part ( '.' part ) *
+part ::= nr | [-0-9A-Za-z]+
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org