You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by an...@apache.org on 2014/09/03 10:40:12 UTC

[06/10] Moves node_modules from package root to bin/ folder

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/echo.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/echo.js b/wp8/bin/node_modules/shelljs/test/echo.js
new file mode 100644
index 0000000..82faa51
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/echo.js
@@ -0,0 +1,50 @@
+var shell = require('..');
+
+var assert = require('assert'),
+    path = require('path'),
+    fs = require('fs'),
+    child = require('child_process');
+
+// Node shims for < v0.7
+fs.existsSync = fs.existsSync || path.existsSync;
+
+shell.config.silent = true;
+
+function numLines(str) {
+  return typeof str === 'string' ? str.match(/\n/g).length : 0;
+}
+
+shell.rm('-rf', 'tmp');
+shell.mkdir('tmp');
+
+//
+// Valids
+//
+
+
+// From here on we use child.exec() to intercept the stdout
+
+
+// simple test with defaults
+shell.mkdir('-p', 'tmp');
+var file = 'tmp/tempscript'+Math.random()+'.js',
+    script = 'require(\'../../global.js\'); echo("-asdf", "111");'; // test '-' bug (see issue #20)
+script.to(file);
+child.exec('node '+file, function(err, stdout, stderr) {
+  assert.ok(stdout === '-asdf 111\n' || stdout === '-asdf 111\nundefined\n'); // 'undefined' for v0.4
+
+  // simple test with silent(true)
+  shell.mkdir('-p', 'tmp');
+  var file = 'tmp/tempscript'+Math.random()+'.js',
+      script = 'require(\'../../global.js\'); config.silent=true; echo(555);';
+  script.to(file);
+  child.exec('node '+file, function(err, stdout, stderr) {
+    assert.ok(stdout === '555\n' || stdout === '555\nundefined\n'); // 'undefined' for v0.4
+
+    theEnd();
+  });
+});
+
+function theEnd() {
+  shell.exit(123);
+}

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/env.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/env.js b/wp8/bin/node_modules/shelljs/test/env.js
new file mode 100644
index 0000000..0e041d6
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/env.js
@@ -0,0 +1,19 @@
+var shell = require('..');
+
+var assert = require('assert');
+
+shell.config.silent = true;
+
+shell.rm('-rf', 'tmp');
+shell.mkdir('tmp');
+
+//
+// Valids
+//
+
+assert.equal(shell.env['PATH'], process.env['PATH']);
+
+shell.env['SHELLJS_TEST'] = 'hello world';
+assert.equal(shell.env['SHELLJS_TEST'], process.env['SHELLJS_TEST']);
+
+shell.exit(123);

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/exec.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/exec.js b/wp8/bin/node_modules/shelljs/test/exec.js
new file mode 100644
index 0000000..e721808
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/exec.js
@@ -0,0 +1,109 @@
+var shell = require('..');
+
+var assert = require('assert'),
+    path = require('path'),
+    fs = require('fs'),
+    util = require('util'),
+    child = require('child_process');
+
+shell.config.silent = true;
+
+function numLines(str) {
+  return typeof str === 'string' ? str.match(/\n/g).length : 0;
+}
+
+//
+// Invalids
+//
+
+shell.exec();
+assert.ok(shell.error());
+
+var result = shell.exec('asdfasdf'); // could not find command
+assert.ok(result.code > 0);
+
+
+//
+// Valids
+//
+
+//
+// sync
+//
+
+// check if stdout goes to output
+var result = shell.exec('node -e \"console.log(1234);\"');
+assert.equal(shell.error(), null);
+assert.equal(result.code, 0);
+assert.ok(result.output === '1234\n' || result.output === '1234\nundefined\n'); // 'undefined' for v0.4
+
+// check if stderr goes to output
+var result = shell.exec('node -e \"console.error(1234);\"');
+assert.equal(shell.error(), null);
+assert.equal(result.code, 0);
+assert.ok(result.output === '1234\n' || result.output === '1234\nundefined\n'); // 'undefined' for v0.4
+
+// check if stdout + stderr go to output
+var result = shell.exec('node -e \"console.error(1234); console.log(666);\"');
+assert.equal(shell.error(), null);
+assert.equal(result.code, 0);
+assert.ok(result.output === '1234\n666\n' || result.output === '1234\n666\nundefined\n');  // 'undefined' for v0.4
+
+// check exit code
+var result = shell.exec('node -e \"process.exit(12);\"');
+assert.equal(shell.error(), null);
+assert.equal(result.code, 12);
+
+// interaction with cd
+shell.cd('resources/external');
+var result = shell.exec('node node_script.js');
+assert.equal(shell.error(), null);
+assert.equal(result.code, 0);
+assert.equal(result.output, 'node_script_1234\n');
+shell.cd('../..');
+
+// check quotes escaping
+var result = shell.exec( util.format('node -e "console.log(%s);"', "\\\"\\'+\\'_\\'+\\'\\\"") );
+assert.equal(shell.error(), null);
+assert.equal(result.code, 0);
+assert.equal(result.output, "'+'_'+'\n");
+
+//
+// async
+//
+
+// no callback
+var c = shell.exec('node -e \"console.log(1234)\"', {async:true});
+assert.equal(shell.error(), null);
+assert.ok('stdout' in c, 'async exec returns child process object');
+
+//
+// callback as 2nd argument
+//
+shell.exec('node -e \"console.log(5678);\"', function(code, output) {
+  assert.equal(code, 0);
+  assert.ok(output === '5678\n' || output === '5678\nundefined\n');  // 'undefined' for v0.4
+
+  //
+  // callback as 3rd argument
+  //
+  shell.exec('node -e \"console.log(5566);\"', {async:true}, function(code, output) {
+    assert.equal(code, 0);
+    assert.ok(output === '5566\n' || output === '5566\nundefined\n');  // 'undefined' for v0.4
+
+    //
+    // callback as 3rd argument (slient:true)
+    //
+    shell.exec('node -e \"console.log(5678);\"', {silent:true}, function(code, output) {
+      assert.equal(code, 0);
+      assert.ok(output === '5678\n' || output === '5678\nundefined\n');  // 'undefined' for v0.4
+
+      shell.exit(123);
+
+    });
+
+  });
+
+});
+
+assert.equal(shell.error(), null);

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/find.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/find.js b/wp8/bin/node_modules/shelljs/test/find.js
new file mode 100644
index 0000000..d375f86
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/find.js
@@ -0,0 +1,56 @@
+var shell = require('..');
+
+var assert = require('assert'),
+    path = require('path'),
+    fs = require('fs');
+
+// Node shims for < v0.7
+fs.existsSync = fs.existsSync || path.existsSync;
+
+shell.config.silent = true;
+
+shell.rm('-rf', 'tmp');
+shell.mkdir('tmp');
+
+//
+// Invalids
+//
+
+var result = shell.find(); // no paths given
+assert.ok(shell.error());
+
+//
+// Valids
+//
+
+// current path
+shell.cd('resources/find');
+var result = shell.find('.');
+assert.equal(shell.error(), null);
+assert.equal(result.indexOf('.hidden') > -1, true);
+assert.equal(result.indexOf('dir1/dir11/a_dir11') > -1, true);
+assert.equal(result.length, 11);
+shell.cd('../..');
+
+// simple path
+var result = shell.find('resources/find');
+assert.equal(shell.error(), null);
+assert.equal(result.indexOf('resources/find/.hidden') > -1, true);
+assert.equal(result.indexOf('resources/find/dir1/dir11/a_dir11') > -1, true);
+assert.equal(result.length, 11);
+
+// multiple paths - comma
+var result = shell.find('resources/find/dir1', 'resources/find/dir2');
+assert.equal(shell.error(), null);
+assert.equal(result.indexOf('resources/find/dir1/dir11/a_dir11') > -1, true);
+assert.equal(result.indexOf('resources/find/dir2/a_dir1') > -1, true);
+assert.equal(result.length, 6);
+
+// multiple paths - array
+var result = shell.find(['resources/find/dir1', 'resources/find/dir2']);
+assert.equal(shell.error(), null);
+assert.equal(result.indexOf('resources/find/dir1/dir11/a_dir11') > -1, true);
+assert.equal(result.indexOf('resources/find/dir2/a_dir1') > -1, true);
+assert.equal(result.length, 6);
+
+shell.exit(123);

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/grep.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/grep.js b/wp8/bin/node_modules/shelljs/test/grep.js
new file mode 100644
index 0000000..71db982
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/grep.js
@@ -0,0 +1,59 @@
+var shell = require('..');
+
+var assert = require('assert'),
+    path = require('path'),
+    fs = require('fs');
+
+// Node shims for < v0.7
+fs.existsSync = fs.existsSync || path.existsSync;
+
+shell.config.silent = true;
+
+function numLines(str) {
+  return typeof str === 'string' ? str.match(/\n/g).length : 0;
+}
+
+shell.rm('-rf', 'tmp');
+shell.mkdir('tmp');
+
+//
+// Invalids
+//
+
+shell.grep();
+assert.ok(shell.error());
+
+shell.grep(/asdf/g); // too few args
+assert.ok(shell.error());
+
+assert.equal(fs.existsSync('/asdfasdf'), false); // sanity check
+shell.grep(/asdf/g, '/asdfasdf'); // no such file
+assert.ok(shell.error());
+
+//
+// Valids
+//
+
+var result = shell.grep('line', 'resources/a.txt');
+assert.equal(shell.error(), null);
+assert.equal(result.split('\n').length - 1, 4);
+
+var result = shell.grep('-v', 'line', 'resources/a.txt');
+assert.equal(shell.error(), null);
+assert.equal(result.split('\n').length - 1, 8);
+
+var result = shell.grep('line one', 'resources/a.txt');
+assert.equal(shell.error(), null);
+assert.equal(result, 'This is line one\n');
+
+// multiple files
+var result = shell.grep(/test/, 'resources/file1.txt', 'resources/file2.txt');
+assert.equal(shell.error(), null);
+assert.equal(result, 'test1\ntest2\n');
+
+// multiple files, array syntax
+var result = shell.grep(/test/, ['resources/file1.txt', 'resources/file2.txt']);
+assert.equal(shell.error(), null);
+assert.equal(result, 'test1\ntest2\n');
+
+shell.exit(123);

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/ls.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/ls.js b/wp8/bin/node_modules/shelljs/test/ls.js
new file mode 100644
index 0000000..5067b7d
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/ls.js
@@ -0,0 +1,202 @@
+var shell = require('..');
+
+var assert = require('assert'),
+    path = require('path'),
+    fs = require('fs');
+
+// Node shims for < v0.7
+fs.existsSync = fs.existsSync || path.existsSync;
+
+shell.config.silent = true;
+
+function numLines(str) {
+  return typeof str === 'string' ? str.match(/\n/g).length : 0;
+}
+
+shell.rm('-rf', 'tmp');
+shell.mkdir('tmp');
+
+//
+// Invalids
+//
+
+assert.equal(fs.existsSync('/asdfasdf'), false); // sanity check
+var result = shell.ls('/asdfasdf'); // no such file or dir
+assert.ok(shell.error());
+assert.equal(result.length, 0);
+
+//
+// Valids
+//
+
+var result = shell.ls();
+assert.equal(shell.error(), null);
+
+var result = shell.ls('/');
+assert.equal(shell.error(), null);
+
+// no args
+shell.cd('resources/ls');
+var result = shell.ls();
+assert.equal(shell.error(), null);
+assert.equal(result.indexOf('file1') > -1, true);
+assert.equal(result.indexOf('file2') > -1, true);
+assert.equal(result.indexOf('file1.js') > -1, true);
+assert.equal(result.indexOf('file2.js') > -1, true);
+assert.equal(result.indexOf('filename(with)[chars$]^that.must+be-escaped') > -1, true);
+assert.equal(result.indexOf('a_dir') > -1, true);
+assert.equal(result.length, 6);
+shell.cd('../..');
+
+// simple arg
+var result = shell.ls('resources/ls');
+assert.equal(shell.error(), null);
+assert.equal(result.indexOf('file1') > -1, true);
+assert.equal(result.indexOf('file2') > -1, true);
+assert.equal(result.indexOf('file1.js') > -1, true);
+assert.equal(result.indexOf('file2.js') > -1, true);
+assert.equal(result.indexOf('filename(with)[chars$]^that.must+be-escaped') > -1, true);
+assert.equal(result.indexOf('a_dir') > -1, true);
+assert.equal(result.length, 6);
+
+// no args, 'all' option
+shell.cd('resources/ls');
+var result = shell.ls('-A');
+assert.equal(shell.error(), null);
+assert.equal(result.indexOf('file1') > -1, true);
+assert.equal(result.indexOf('file2') > -1, true);
+assert.equal(result.indexOf('file1.js') > -1, true);
+assert.equal(result.indexOf('file2.js') > -1, true);
+assert.equal(result.indexOf('filename(with)[chars$]^that.must+be-escaped') > -1, true);
+assert.equal(result.indexOf('a_dir') > -1, true);
+assert.equal(result.indexOf('.hidden_file') > -1, true);
+assert.equal(result.indexOf('.hidden_dir') > -1, true);
+assert.equal(result.length, 8);
+shell.cd('../..');
+
+// no args, 'all' option
+shell.cd('resources/ls');
+var result = shell.ls('-a'); // (deprecated) backwards compatibility test
+assert.equal(shell.error(), null);
+assert.equal(result.indexOf('file1') > -1, true);
+assert.equal(result.indexOf('file2') > -1, true);
+assert.equal(result.indexOf('file1.js') > -1, true);
+assert.equal(result.indexOf('file2.js') > -1, true);
+assert.equal(result.indexOf('filename(with)[chars$]^that.must+be-escaped') > -1, true);
+assert.equal(result.indexOf('a_dir') > -1, true);
+assert.equal(result.indexOf('.hidden_file') > -1, true);
+assert.equal(result.indexOf('.hidden_dir') > -1, true);
+assert.equal(result.length, 8);
+shell.cd('../..');
+
+// wildcard, simple
+var result = shell.ls('resources/ls/*');
+assert.equal(shell.error(), null);
+assert.equal(result.indexOf('resources/ls/file1') > -1, true);
+assert.equal(result.indexOf('resources/ls/file2') > -1, true);
+assert.equal(result.indexOf('resources/ls/file1.js') > -1, true);
+assert.equal(result.indexOf('resources/ls/file2.js') > -1, true);
+assert.equal(result.indexOf('resources/ls/filename(with)[chars$]^that.must+be-escaped') > -1, true);
+assert.equal(result.indexOf('resources/ls/a_dir') > -1, true);
+assert.equal(result.length, 6);
+
+// wildcard, hidden only
+var result = shell.ls('resources/ls/.*');
+assert.equal(shell.error(), null);
+assert.equal(result.indexOf('resources/ls/.hidden_file') > -1, true);
+assert.equal(result.indexOf('resources/ls/.hidden_dir') > -1, true);
+assert.equal(result.length, 2);
+
+// wildcard, mid-file
+var result = shell.ls('resources/ls/f*le*');
+assert.equal(shell.error(), null);
+assert.equal(result.length, 5);
+assert.equal(result.indexOf('resources/ls/file1') > -1, true);
+assert.equal(result.indexOf('resources/ls/file2') > -1, true);
+assert.equal(result.indexOf('resources/ls/file1.js') > -1, true);
+assert.equal(result.indexOf('resources/ls/file2.js') > -1, true);
+assert.equal(result.indexOf('resources/ls/filename(with)[chars$]^that.must+be-escaped') > -1, true);
+
+// wildcard, mid-file with dot (should escape dot for regex)
+var result = shell.ls('resources/ls/f*le*.js');
+assert.equal(shell.error(), null);
+assert.equal(result.length, 2);
+assert.equal(result.indexOf('resources/ls/file1.js') > -1, true);
+assert.equal(result.indexOf('resources/ls/file2.js') > -1, true);
+
+// wildcard, should not do partial matches
+var result = shell.ls('resources/ls/*.j'); // shouldn't get .js
+assert.equal(shell.error(), null);
+assert.equal(result.length, 0);
+
+// wildcard, all files with extension
+var result = shell.ls('resources/ls/*.*');
+assert.equal(shell.error(), null);
+assert.equal(result.length, 3);
+assert.equal(result.indexOf('resources/ls/file1.js') > -1, true);
+assert.equal(result.indexOf('resources/ls/file2.js') > -1, true);
+assert.equal(result.indexOf('resources/ls/filename(with)[chars$]^that.must+be-escaped') > -1, true);
+
+// wildcard, with additional path
+var result = shell.ls('resources/ls/f*le*.js', 'resources/ls/a_dir');
+assert.equal(shell.error(), null);
+assert.equal(result.length, 4);
+assert.equal(result.indexOf('resources/ls/file1.js') > -1, true);
+assert.equal(result.indexOf('resources/ls/file2.js') > -1, true);
+assert.equal(result.indexOf('b_dir') > -1, true); // no wildcard == no path prefix
+assert.equal(result.indexOf('nada') > -1, true); // no wildcard == no path prefix
+
+// wildcard for both paths
+var result = shell.ls('resources/ls/f*le*.js', 'resources/ls/a_dir/*');
+assert.equal(shell.error(), null);
+assert.equal(result.length, 4);
+assert.equal(result.indexOf('resources/ls/file1.js') > -1, true);
+assert.equal(result.indexOf('resources/ls/file2.js') > -1, true);
+assert.equal(result.indexOf('resources/ls/a_dir/b_dir') > -1, true);
+assert.equal(result.indexOf('resources/ls/a_dir/nada') > -1, true);
+
+// wildcard for both paths, array
+var result = shell.ls(['resources/ls/f*le*.js', 'resources/ls/a_dir/*']);
+assert.equal(shell.error(), null);
+assert.equal(result.length, 4);
+assert.equal(result.indexOf('resources/ls/file1.js') > -1, true);
+assert.equal(result.indexOf('resources/ls/file2.js') > -1, true);
+assert.equal(result.indexOf('resources/ls/a_dir/b_dir') > -1, true);
+assert.equal(result.indexOf('resources/ls/a_dir/nada') > -1, true);
+
+// recursive, no path
+shell.cd('resources/ls');
+var result = shell.ls('-R');
+assert.equal(shell.error(), null);
+assert.equal(result.indexOf('a_dir') > -1, true);
+assert.equal(result.indexOf('a_dir/b_dir') > -1, true);
+assert.equal(result.indexOf('a_dir/b_dir/z') > -1, true);
+assert.equal(result.length, 9);
+shell.cd('../..');
+
+// recusive, path given
+var result = shell.ls('-R', 'resources/ls');
+assert.equal(shell.error(), null);
+assert.equal(result.indexOf('a_dir') > -1, true);
+assert.equal(result.indexOf('a_dir/b_dir') > -1, true);
+assert.equal(result.indexOf('a_dir/b_dir/z') > -1, true);
+assert.equal(result.length, 9);
+
+// recusive, path given - 'all' flag
+var result = shell.ls('-RA', 'resources/ls');
+assert.equal(shell.error(), null);
+assert.equal(result.indexOf('a_dir') > -1, true);
+assert.equal(result.indexOf('a_dir/b_dir') > -1, true);
+assert.equal(result.indexOf('a_dir/b_dir/z') > -1, true);
+assert.equal(result.indexOf('a_dir/.hidden_dir/nada') > -1, true);
+assert.equal(result.length, 14);
+
+// recursive, wildcard
+var result = shell.ls('-R', 'resources/ls/*');
+assert.equal(shell.error(), null);
+assert.equal(result.indexOf('resources/ls/a_dir') > -1, true);
+assert.equal(result.indexOf('resources/ls/a_dir/b_dir') > -1, true);
+assert.equal(result.indexOf('resources/ls/a_dir/b_dir/z') > -1, true);
+assert.equal(result.length, 9);
+
+shell.exit(123);

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/make.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/make.js b/wp8/bin/node_modules/shelljs/test/make.js
new file mode 100644
index 0000000..3edbd8c
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/make.js
@@ -0,0 +1,20 @@
+var shell = require('..'),
+    child = require('child_process'),
+    assert = require('assert');
+
+shell.mkdir('-p', 'tmp');
+var file = 'tmp/tempscript'+Math.random()+'.js',
+    script = 'require(\'../../make.js\');' +
+             'target.all=function(){' +
+             '  echo("first"); '+
+             '  cp("this_file_doesnt_exist", ".");' +
+             '  echo("second");' +
+             '}';
+
+script.to(file);
+child.exec('node '+file, function(err, stdout, stderr) {
+  assert.ok(stdout.match('first'));
+  assert.ok(!stdout.match('second')); // Make should die on errors, so this should never get echoed
+
+  shell.exit(123);
+});

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/mkdir.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/mkdir.js b/wp8/bin/node_modules/shelljs/test/mkdir.js
new file mode 100644
index 0000000..1f93422
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/mkdir.js
@@ -0,0 +1,79 @@
+var shell = require('..');
+
+var assert = require('assert'),
+    path = require('path'),
+    fs = require('fs');
+
+// Node shims for < v0.7
+fs.existsSync = fs.existsSync || path.existsSync;
+
+shell.config.silent = true;
+
+function numLines(str) {
+  return typeof str === 'string' ? str.match(/\n/g).length : 0;
+}
+
+shell.rm('-rf', 'tmp');
+shell.mkdir('tmp');
+
+//
+// Invalids
+//
+
+shell.mkdir();
+assert.ok(shell.error());
+
+var mtime = fs.statSync('tmp').mtime.toString();
+shell.mkdir('tmp'); // dir already exists
+assert.ok(shell.error());
+assert.equal(fs.statSync('tmp').mtime.toString(), mtime); // didn't mess with dir
+
+assert.equal(fs.existsSync('/asdfasdf'), false); // sanity check
+shell.mkdir('/asdfasdf/asdfasdf'); // root path does not exist
+assert.ok(shell.error());
+assert.equal(fs.existsSync('/asdfasdf'), false);
+
+//
+// Valids
+//
+
+assert.equal(fs.existsSync('tmp/t1'), false);
+shell.mkdir('tmp/t1'); // simple dir
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync('tmp/t1'), true);
+
+assert.equal(fs.existsSync('tmp/t2'), false);
+assert.equal(fs.existsSync('tmp/t3'), false);
+shell.mkdir('tmp/t2', 'tmp/t3'); // multiple dirs
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync('tmp/t2'), true);
+assert.equal(fs.existsSync('tmp/t3'), true);
+
+assert.equal(fs.existsSync('tmp/t1'), true);
+assert.equal(fs.existsSync('tmp/t4'), false);
+shell.mkdir('tmp/t1', 'tmp/t4'); // one dir exists, one doesn't
+assert.equal(numLines(shell.error()), 1);
+assert.equal(fs.existsSync('tmp/t1'), true);
+assert.equal(fs.existsSync('tmp/t4'), true);
+
+assert.equal(fs.existsSync('tmp/a'), false);
+shell.mkdir('-p', 'tmp/a/b/c');
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync('tmp/a/b/c'), true);
+shell.rm('-Rf', 'tmp/a'); // revert
+
+// multiple dirs
+shell.mkdir('-p', 'tmp/zzza', 'tmp/zzzb', 'tmp/zzzc');
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync('tmp/zzza'), true);
+assert.equal(fs.existsSync('tmp/zzzb'), true);
+assert.equal(fs.existsSync('tmp/zzzc'), true);
+
+// multiple dirs, array syntax
+shell.mkdir('-p', ['tmp/yyya', 'tmp/yyyb', 'tmp/yyyc']);
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync('tmp/yyya'), true);
+assert.equal(fs.existsSync('tmp/yyyb'), true);
+assert.equal(fs.existsSync('tmp/yyyc'), true);
+
+shell.exit(123);

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/mv.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/mv.js b/wp8/bin/node_modules/shelljs/test/mv.js
new file mode 100644
index 0000000..89bca91
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/mv.js
@@ -0,0 +1,130 @@
+var shell = require('..');
+
+var assert = require('assert'),
+    path = require('path'),
+    fs = require('fs');
+
+// Node shims for < v0.7
+fs.existsSync = fs.existsSync || path.existsSync;
+
+shell.config.silent = true;
+
+function numLines(str) {
+  return typeof str === 'string' ? str.match(/\n/g).length : 0;
+}
+
+shell.rm('-rf', 'tmp');
+shell.mkdir('tmp');
+
+// Prepare tmp/
+shell.cp('resources/*', 'tmp');
+
+//
+// Invalids
+//
+
+shell.mv();
+assert.ok(shell.error());
+
+shell.mv('file1');
+assert.ok(shell.error());
+
+shell.mv('-f');
+assert.ok(shell.error());
+
+shell.mv('-Z', 'tmp/file1', 'tmp/file1'); // option not supported
+assert.ok(shell.error());
+assert.equal(fs.existsSync('tmp/file1'), true);
+
+shell.mv('asdfasdf', 'tmp'); // source does not exist
+assert.ok(shell.error());
+assert.equal(numLines(shell.error()), 1);
+assert.equal(fs.existsSync('tmp/asdfasdf'), false);
+
+shell.mv('asdfasdf1', 'asdfasdf2', 'tmp'); // sources do not exist
+assert.ok(shell.error());
+assert.equal(numLines(shell.error()), 2);
+assert.equal(fs.existsSync('tmp/asdfasdf1'), false);
+assert.equal(fs.existsSync('tmp/asdfasdf2'), false);
+
+shell.mv('asdfasdf1', 'asdfasdf2', 'tmp/file1'); // too many sources (dest is file)
+assert.ok(shell.error());
+
+shell.mv('tmp/file1', 'tmp/file2'); // dest already exists
+assert.ok(shell.error());
+
+shell.mv('tmp/file1', 'tmp/file2', 'tmp/a_file'); // too many sources (exist, but dest is file)
+assert.ok(shell.error());
+assert.equal(fs.existsSync('tmp/a_file'), false);
+
+shell.mv('tmp/file*', 'tmp/file1'); // can't use wildcard when dest is file
+assert.ok(shell.error());
+assert.equal(fs.existsSync('tmp/file1'), true);
+assert.equal(fs.existsSync('tmp/file2'), true);
+assert.equal(fs.existsSync('tmp/file1.js'), true);
+assert.equal(fs.existsSync('tmp/file2.js'), true);
+
+//
+// Valids
+//
+
+shell.cd('tmp');
+
+// handles self OK
+shell.mkdir('tmp2');
+shell.mv('*', 'tmp2'); // has to handle self (tmp2 --> tmp2) without throwing error
+assert.ok(shell.error()); // there's an error, but not fatal
+assert.equal(fs.existsSync('tmp2/file1'), true); // moved OK
+shell.mv('tmp2/*', '.'); // revert
+assert.equal(fs.existsSync('file1'), true); // moved OK
+
+shell.mv('file1', 'file3'); // one source
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync('file1'), false);
+assert.equal(fs.existsSync('file3'), true);
+shell.mv('file3', 'file1'); // revert
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync('file1'), true);
+
+// two sources
+shell.rm('-rf', 't');
+shell.mkdir('-p', 't');
+shell.mv('file1', 'file2', 't');
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync('file1'), false);
+assert.equal(fs.existsSync('file2'), false);
+assert.equal(fs.existsSync('t/file1'), true);
+assert.equal(fs.existsSync('t/file2'), true);
+shell.mv('t/*', '.'); // revert
+assert.equal(fs.existsSync('file1'), true);
+assert.equal(fs.existsSync('file2'), true);
+
+// two sources, array style
+shell.rm('-rf', 't');
+shell.mkdir('-p', 't');
+shell.mv(['file1', 'file2'], 't'); // two sources
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync('file1'), false);
+assert.equal(fs.existsSync('file2'), false);
+assert.equal(fs.existsSync('t/file1'), true);
+assert.equal(fs.existsSync('t/file2'), true);
+shell.mv('t/*', '.'); // revert
+assert.equal(fs.existsSync('file1'), true);
+assert.equal(fs.existsSync('file2'), true);
+
+shell.mv('file*.js', 't'); // wildcard
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync('file1.js'), false);
+assert.equal(fs.existsSync('file2.js'), false);
+assert.equal(fs.existsSync('t/file1.js'), true);
+assert.equal(fs.existsSync('t/file2.js'), true);
+shell.mv('t/*', '.'); // revert
+assert.equal(fs.existsSync('file1.js'), true);
+assert.equal(fs.existsSync('file2.js'), true);
+
+shell.mv('-f', 'file1', 'file2'); // dest exists, but -f given
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync('file1'), false);
+assert.equal(fs.existsSync('file2'), true);
+
+shell.exit(123);

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/popd.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/popd.js b/wp8/bin/node_modules/shelljs/test/popd.js
new file mode 100644
index 0000000..fd79533
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/popd.js
@@ -0,0 +1,118 @@
+var shell = require('..');
+
+var assert = require('assert'),
+    path = require('path'),
+    fs = require('fs');
+
+// Node shims for < v0.7
+fs.existsSync = fs.existsSync || path.existsSync;
+
+shell.config.silent = true;
+
+var root = path.resolve(), trail;
+
+function reset() {
+    shell.dirs('-c');
+    shell.cd(root);
+}
+
+// Valid
+shell.pushd('resources/pushd');
+trail = shell.popd();
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [ root ]);
+
+shell.pushd('resources/pushd');
+shell.pushd('a');
+trail = shell.popd();
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    path.resolve(root, 'resources/pushd'),
+    root
+]);
+
+shell.pushd('b');
+trail = shell.popd();
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    path.resolve(root, 'resources/pushd'),
+    root
+]);
+
+shell.pushd('b');
+shell.pushd('c');
+trail = shell.popd();
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    path.resolve(root, 'resources/pushd/b'),
+    path.resolve(root, 'resources/pushd'),
+    root
+]);
+
+trail = shell.popd();
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    path.resolve(root, 'resources/pushd'),
+    root
+]);
+
+trail = shell.popd();
+assert.equal(shell.error(), null);
+assert.equal(trail.length, 1);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [ root ]);
+
+// Valid by index
+shell.pushd('resources/pushd');
+trail = shell.popd('+0');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [ root ]);
+
+shell.pushd('resources/pushd');
+trail = shell.popd('+1');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [ path.resolve(root, 'resources/pushd') ]);
+
+reset(); shell.pushd('resources/pushd');
+trail = shell.popd('-0');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [ path.resolve(root, 'resources/pushd') ]);
+
+reset(); shell.pushd('resources/pushd');
+trail = shell.popd('-1');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [ root ]);
+
+
+reset(); shell.pushd('resources/pushd');
+trail = shell.popd('-n');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [ path.resolve(root, 'resources/pushd') ]);
+
+// Invalid
+trail = shell.popd();
+assert.ok(shell.error('popd: directory stack empty\n'));
+
+// Test that the root dir is not stored
+shell.cd('resources/pushd');
+shell.pushd('b');
+trail = shell.popd();
+assert.equal(shell.error(), null);
+assert.equal(trail[0], path.resolve(root, 'resources/pushd'));
+assert.equal(process.cwd(), trail[0]);
+shell.popd();
+assert.ok(shell.error(), null);
+
+shell.cd(root);
+
+shell.exit(123);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/pushd.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/pushd.js b/wp8/bin/node_modules/shelljs/test/pushd.js
new file mode 100644
index 0000000..32089dc
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/pushd.js
@@ -0,0 +1,228 @@
+var shell = require('..');
+
+var assert = require('assert'),
+    path = require('path'),
+    fs = require('fs');
+
+// Node shims for < v0.7
+fs.existsSync = fs.existsSync || path.existsSync;
+
+shell.config.silent = true;
+
+var root = path.resolve(), trail;
+
+function reset() {
+    shell.dirs('-c');
+    shell.cd(root);
+}
+
+// Push valid directories
+trail = shell.pushd('resources/pushd');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    path.resolve(root, 'resources/pushd'),
+    root
+]);
+
+trail = shell.pushd('a');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    path.resolve(root, 'resources/pushd/a'),
+    path.resolve(root, 'resources/pushd'),
+    root
+]);
+
+trail = shell.pushd('../b');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    path.resolve(root, 'resources/pushd/b'),
+    path.resolve(root, 'resources/pushd/a'),
+    path.resolve(root, 'resources/pushd'),
+    root
+]);
+
+trail = shell.pushd('c');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    path.resolve(root, 'resources/pushd/b/c'),
+    path.resolve(root, 'resources/pushd/b'),
+    path.resolve(root, 'resources/pushd/a'),
+    path.resolve(root, 'resources/pushd'),
+    root
+]);
+
+// Push stuff around with positive indices
+trail = shell.pushd('+0');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    path.resolve(root, 'resources/pushd/b/c'),
+    path.resolve(root, 'resources/pushd/b'),
+    path.resolve(root, 'resources/pushd/a'),
+    path.resolve(root, 'resources/pushd'),
+    root
+]);
+
+trail = shell.pushd('+1');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    path.resolve(root, 'resources/pushd/b'),
+    path.resolve(root, 'resources/pushd/a'),
+    path.resolve(root, 'resources/pushd'),
+    root,
+    path.resolve(root, 'resources/pushd/b/c')
+]);
+
+trail = shell.pushd('+2');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    path.resolve(root, 'resources/pushd'),
+    root,
+    path.resolve(root, 'resources/pushd/b/c'),
+    path.resolve(root, 'resources/pushd/b'),
+    path.resolve(root, 'resources/pushd/a')
+]);
+
+trail = shell.pushd('+3');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    path.resolve(root, 'resources/pushd/b'),
+    path.resolve(root, 'resources/pushd/a'),
+    path.resolve(root, 'resources/pushd'),
+    root,
+    path.resolve(root, 'resources/pushd/b/c')
+]);
+
+trail = shell.pushd('+4');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    path.resolve(root, 'resources/pushd/b/c'),
+    path.resolve(root, 'resources/pushd/b'),
+    path.resolve(root, 'resources/pushd/a'),
+    path.resolve(root, 'resources/pushd'),
+    root
+]);
+
+// Push stuff around with negative indices
+trail = shell.pushd('-0');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    root,
+    path.resolve(root, 'resources/pushd/b/c'),
+    path.resolve(root, 'resources/pushd/b'),
+    path.resolve(root, 'resources/pushd/a'),
+    path.resolve(root, 'resources/pushd')
+]);
+
+trail = shell.pushd('-1');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    path.resolve(root, 'resources/pushd/a'),
+    path.resolve(root, 'resources/pushd'),
+    root,
+    path.resolve(root, 'resources/pushd/b/c'),
+    path.resolve(root, 'resources/pushd/b')
+]);
+
+trail = shell.pushd('-2');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    root,
+    path.resolve(root, 'resources/pushd/b/c'),
+    path.resolve(root, 'resources/pushd/b'),
+    path.resolve(root, 'resources/pushd/a'),
+    path.resolve(root, 'resources/pushd')
+]);
+
+trail = shell.pushd('-3');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    path.resolve(root, 'resources/pushd/b/c'),
+    path.resolve(root, 'resources/pushd/b'),
+    path.resolve(root, 'resources/pushd/a'),
+    path.resolve(root, 'resources/pushd'),
+    root
+]);
+
+trail = shell.pushd('-4');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    path.resolve(root, 'resources/pushd/b/c'),
+    path.resolve(root, 'resources/pushd/b'),
+    path.resolve(root, 'resources/pushd/a'),
+    path.resolve(root, 'resources/pushd'),
+    root
+]);
+
+// Push without changing directory or resolving paths
+reset(); trail = shell.pushd('-n', 'resources/pushd');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    root,
+    'resources/pushd'
+]);
+
+trail = shell.pushd('-n', 'resources/pushd/a');
+assert.equal(shell.error(), null);
+assert.equal(process.cwd(), trail[0]);
+assert.deepEqual(trail, [
+    root,
+    'resources/pushd/a',
+    'resources/pushd'
+]);
+
+// Push invalid directory
+shell.pushd('does/not/exist');
+assert.equal(shell.error(), 'pushd: no such file or directory: ' + path.resolve('.', 'does/not/exist') + '\n');
+assert.equal(process.cwd(), trail[0]);
+
+// Push without arguments should swap top two directories when stack length is 2
+reset(); trail = shell.pushd('resources/pushd');
+assert.equal(shell.error(), null);
+assert.equal(trail.length, 2);
+assert.equal(path.relative(root, trail[0]), 'resources/pushd');
+assert.equal(trail[1], root);
+assert.equal(process.cwd(), trail[0]);
+trail = shell.pushd();
+assert.equal(shell.error(), null);
+assert.equal(trail.length, 2);
+assert.equal(trail[0], root);
+assert.equal(path.relative(root, trail[1]), 'resources/pushd');
+assert.equal(process.cwd(), trail[0]);
+
+// Push without arguments should swap top two directories when stack length is > 2
+trail = shell.pushd('resources/pushd/a');
+assert.equal(shell.error(), null);
+assert.equal(trail.length, 3);
+assert.equal(path.relative(root, trail[0]), 'resources/pushd/a');
+assert.equal(trail[1], root);
+assert.equal(path.relative(root, trail[2]), 'resources/pushd');
+assert.equal(process.cwd(), trail[0]);
+
+trail = shell.pushd();
+assert.equal(shell.error(), null);
+assert.equal(trail.length, 3);
+assert.equal(trail[0], root);
+assert.equal(path.relative(root, trail[1]), 'resources/pushd/a');
+assert.equal(path.relative(root, trail[2]), 'resources/pushd');
+assert.equal(process.cwd(), trail[0]);
+
+// Push without arguments invalid when stack is empty
+reset(); shell.pushd();
+assert.equal(shell.error(), 'pushd: no other directory\n');
+
+shell.exit(123);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/pwd.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/pwd.js b/wp8/bin/node_modules/shelljs/test/pwd.js
new file mode 100644
index 0000000..d1f563f
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/pwd.js
@@ -0,0 +1,28 @@
+var shell = require('..');
+
+var assert = require('assert'),
+    path = require('path');
+
+shell.config.silent = true;
+
+function numLines(str) {
+  return typeof str === 'string' ? str.match(/\n/g).length : 0;
+}
+
+shell.rm('-rf', 'tmp');
+shell.mkdir('tmp');
+
+//
+// Valids
+//
+
+var _pwd = shell.pwd();
+assert.equal(shell.error(), null);
+assert.equal(_pwd, path.resolve('.'));
+
+shell.cd('tmp');
+var _pwd = shell.pwd();
+assert.equal(shell.error(), null);
+assert.equal(path.basename(_pwd), 'tmp');
+
+shell.exit(123);

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/a.txt
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/a.txt b/wp8/bin/node_modules/shelljs/test/resources/a.txt
new file mode 100644
index 0000000..356ce49
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/a.txt
@@ -0,0 +1,11 @@
+This is line one
+This is line two
+
+This is line four
+.
+.
+More content here
+.
+.
+
+This is line eleven

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/chmod/a/b/c/.npmignore
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/chmod/a/b/c/.npmignore b/wp8/bin/node_modules/shelljs/test/resources/chmod/a/b/c/.npmignore
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/chmod/b/a/b/.npmignore
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/chmod/b/a/b/.npmignore b/wp8/bin/node_modules/shelljs/test/resources/chmod/b/a/b/.npmignore
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/chmod/c/a/b/.npmignore
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/chmod/c/a/b/.npmignore b/wp8/bin/node_modules/shelljs/test/resources/chmod/c/a/b/.npmignore
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/chmod/file1
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/chmod/file1 b/wp8/bin/node_modules/shelljs/test/resources/chmod/file1
new file mode 100644
index 0000000..db3f9ca
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/chmod/file1
@@ -0,0 +1,2 @@
+this is test file 1
+default state should be 0644 (rw-r--r--)

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/cp/a
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/cp/a b/wp8/bin/node_modules/shelljs/test/resources/cp/a
new file mode 100644
index 0000000..8bd6648
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/cp/a
@@ -0,0 +1 @@
+asdf

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/cp/b
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/cp/b b/wp8/bin/node_modules/shelljs/test/resources/cp/b
new file mode 100644
index 0000000..8bd6648
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/cp/b
@@ -0,0 +1 @@
+asdf

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/cp/dir_a/z
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/cp/dir_a/z b/wp8/bin/node_modules/shelljs/test/resources/cp/dir_a/z
new file mode 100644
index 0000000..8bd6648
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/cp/dir_a/z
@@ -0,0 +1 @@
+asdf

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/cp/dir_b/dir_b_a/dir_b_a_a/z
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/cp/dir_b/dir_b_a/dir_b_a_a/z b/wp8/bin/node_modules/shelljs/test/resources/cp/dir_b/dir_b_a/dir_b_a_a/z
new file mode 100644
index 0000000..8bd6648
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/cp/dir_b/dir_b_a/dir_b_a_a/z
@@ -0,0 +1 @@
+asdf

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/external/node_script.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/external/node_script.js b/wp8/bin/node_modules/shelljs/test/resources/external/node_script.js
new file mode 100644
index 0000000..3b2d24a
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/external/node_script.js
@@ -0,0 +1,2 @@
+console.log('node_script_1234');
+

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/file1
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/file1 b/wp8/bin/node_modules/shelljs/test/resources/file1
new file mode 100644
index 0000000..f079749
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/file1
@@ -0,0 +1 @@
+test1
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/file1.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/file1.js b/wp8/bin/node_modules/shelljs/test/resources/file1.js
new file mode 100644
index 0000000..9daeafb
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/file1.js
@@ -0,0 +1 @@
+test

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/file1.txt
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/file1.txt b/wp8/bin/node_modules/shelljs/test/resources/file1.txt
new file mode 100644
index 0000000..a5bce3f
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/file1.txt
@@ -0,0 +1 @@
+test1

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/file2
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/file2 b/wp8/bin/node_modules/shelljs/test/resources/file2
new file mode 100644
index 0000000..d606037
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/file2
@@ -0,0 +1 @@
+test2
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/file2.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/file2.js b/wp8/bin/node_modules/shelljs/test/resources/file2.js
new file mode 100644
index 0000000..9daeafb
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/file2.js
@@ -0,0 +1 @@
+test

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/file2.txt
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/file2.txt b/wp8/bin/node_modules/shelljs/test/resources/file2.txt
new file mode 100644
index 0000000..180cf83
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/file2.txt
@@ -0,0 +1 @@
+test2

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/find/.hidden
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/find/.hidden b/wp8/bin/node_modules/shelljs/test/resources/find/.hidden
new file mode 100644
index 0000000..8bd6648
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/find/.hidden
@@ -0,0 +1 @@
+asdf

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/find/a
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/find/a b/wp8/bin/node_modules/shelljs/test/resources/find/a
new file mode 100644
index 0000000..8bd6648
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/find/a
@@ -0,0 +1 @@
+asdf

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/find/b
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/find/b b/wp8/bin/node_modules/shelljs/test/resources/find/b
new file mode 100644
index 0000000..8bd6648
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/find/b
@@ -0,0 +1 @@
+asdf

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/find/dir1/a_dir1
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/find/dir1/a_dir1 b/wp8/bin/node_modules/shelljs/test/resources/find/dir1/a_dir1
new file mode 100644
index 0000000..8bd6648
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/find/dir1/a_dir1
@@ -0,0 +1 @@
+asdf

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/find/dir1/dir11/a_dir11
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/find/dir1/dir11/a_dir11 b/wp8/bin/node_modules/shelljs/test/resources/find/dir1/dir11/a_dir11
new file mode 100644
index 0000000..8bd6648
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/find/dir1/dir11/a_dir11
@@ -0,0 +1 @@
+asdf

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/find/dir2/a_dir1
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/find/dir2/a_dir1 b/wp8/bin/node_modules/shelljs/test/resources/find/dir2/a_dir1
new file mode 100644
index 0000000..8bd6648
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/find/dir2/a_dir1
@@ -0,0 +1 @@
+asdf

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/issue44/main.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/issue44/main.js b/wp8/bin/node_modules/shelljs/test/resources/issue44/main.js
new file mode 100644
index 0000000..d800886
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/issue44/main.js
@@ -0,0 +1 @@
+123
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/ls/.hidden_dir/nada
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/ls/.hidden_dir/nada b/wp8/bin/node_modules/shelljs/test/resources/ls/.hidden_dir/nada
new file mode 100644
index 0000000..8bd6648
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/ls/.hidden_dir/nada
@@ -0,0 +1 @@
+asdf

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/ls/.hidden_file
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/ls/.hidden_file b/wp8/bin/node_modules/shelljs/test/resources/ls/.hidden_file
new file mode 100644
index 0000000..8bd6648
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/ls/.hidden_file
@@ -0,0 +1 @@
+asdf

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/ls/a_dir/.hidden_dir/nada
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/ls/a_dir/.hidden_dir/nada b/wp8/bin/node_modules/shelljs/test/resources/ls/a_dir/.hidden_dir/nada
new file mode 100644
index 0000000..5fedf57
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/ls/a_dir/.hidden_dir/nada
@@ -0,0 +1 @@
+nada
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/ls/a_dir/b_dir/z
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/ls/a_dir/b_dir/z b/wp8/bin/node_modules/shelljs/test/resources/ls/a_dir/b_dir/z
new file mode 100644
index 0000000..8bd6648
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/ls/a_dir/b_dir/z
@@ -0,0 +1 @@
+asdf

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/ls/a_dir/nada
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/ls/a_dir/nada b/wp8/bin/node_modules/shelljs/test/resources/ls/a_dir/nada
new file mode 100644
index 0000000..8bd6648
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/ls/a_dir/nada
@@ -0,0 +1 @@
+asdf

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/ls/file1
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/ls/file1 b/wp8/bin/node_modules/shelljs/test/resources/ls/file1
new file mode 100644
index 0000000..9daeafb
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/ls/file1
@@ -0,0 +1 @@
+test

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/ls/file1.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/ls/file1.js b/wp8/bin/node_modules/shelljs/test/resources/ls/file1.js
new file mode 100644
index 0000000..9daeafb
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/ls/file1.js
@@ -0,0 +1 @@
+test

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/ls/file2
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/ls/file2 b/wp8/bin/node_modules/shelljs/test/resources/ls/file2
new file mode 100644
index 0000000..9daeafb
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/ls/file2
@@ -0,0 +1 @@
+test

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/ls/file2.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/ls/file2.js b/wp8/bin/node_modules/shelljs/test/resources/ls/file2.js
new file mode 100644
index 0000000..9daeafb
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/ls/file2.js
@@ -0,0 +1 @@
+test

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/ls/filename(with)[chars$]^that.must+be-escaped
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/ls/filename(with)[chars$]^that.must+be-escaped b/wp8/bin/node_modules/shelljs/test/resources/ls/filename(with)[chars$]^that.must+be-escaped
new file mode 100644
index 0000000..8bd6648
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/ls/filename(with)[chars$]^that.must+be-escaped
@@ -0,0 +1 @@
+asdf

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/pushd/a/dummy
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/pushd/a/dummy b/wp8/bin/node_modules/shelljs/test/resources/pushd/a/dummy
new file mode 100644
index 0000000..72e12a9
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/pushd/a/dummy
@@ -0,0 +1 @@
+meh
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/resources/pushd/b/c/dummy
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/resources/pushd/b/c/dummy b/wp8/bin/node_modules/shelljs/test/resources/pushd/b/c/dummy
new file mode 100644
index 0000000..72e12a9
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/resources/pushd/b/c/dummy
@@ -0,0 +1 @@
+meh
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/rm.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/rm.js b/wp8/bin/node_modules/shelljs/test/rm.js
new file mode 100644
index 0000000..61182a1
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/rm.js
@@ -0,0 +1,183 @@
+var shell = require('..');
+
+var assert = require('assert'),
+    path = require('path'),
+    fs = require('fs');
+
+// Node shims for < v0.7
+fs.existsSync = fs.existsSync || path.existsSync;
+
+shell.config.silent = true;
+
+shell.rm('-rf', 'tmp');
+shell.mkdir('tmp');
+
+//
+// Invalids
+//
+
+shell.rm();
+assert.ok(shell.error());
+
+shell.rm('asdfasdf'); // file does not exist
+assert.ok(shell.error());
+
+shell.rm('-f'); // no file
+assert.ok(shell.error());
+
+shell.rm('-@', 'resources/file1'); // invalid option
+assert.ok(shell.error());
+assert.equal(fs.existsSync('resources/file1'), true);
+
+//
+// Valids
+//
+
+// file does not exist, but -f specified
+shell.rm('-f', 'asdfasdf');
+assert.equal(shell.error(), null);
+
+// simple rm
+shell.cp('-f', 'resources/file1', 'tmp/file1');
+assert.equal(fs.existsSync('tmp/file1'), true);
+shell.rm('tmp/file1');
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync('tmp/file1'), false);
+
+// recursive dir removal - small-caps '-r'
+shell.mkdir('-p', 'tmp/a/b/c');
+assert.equal(fs.existsSync('tmp/a/b/c'), true);
+shell.rm('-rf', 'tmp/a');
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync('tmp/a'), false);
+
+// recursive dir removal - capital '-R'
+shell.mkdir('-p', 'tmp/a/b/c');
+assert.equal(fs.existsSync('tmp/a/b/c'), true);
+shell.rm('-Rf', 'tmp/a');
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync('tmp/a'), false);
+
+// recursive dir removal - absolute path
+shell.mkdir('-p', 'tmp/a/b/c');
+assert.equal(fs.existsSync('tmp/a/b/c'), true);
+shell.rm('-Rf', path.resolve('./tmp/a'));
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync('tmp/a'), false);
+
+// wildcard
+shell.cp('-f', 'resources/file*', 'tmp');
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync('tmp/file1'), true);
+assert.equal(fs.existsSync('tmp/file2'), true);
+assert.equal(fs.existsSync('tmp/file1.js'), true);
+assert.equal(fs.existsSync('tmp/file2.js'), true);
+shell.rm('tmp/file*');
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync('tmp/file1'), false);
+assert.equal(fs.existsSync('tmp/file2'), false);
+assert.equal(fs.existsSync('tmp/file1.js'), false);
+assert.equal(fs.existsSync('tmp/file2.js'), false);
+
+// recursive dir removal
+shell.mkdir('-p', 'tmp/a/b/c');
+shell.mkdir('-p', 'tmp/b');
+shell.mkdir('-p', 'tmp/c');
+shell.mkdir('-p', 'tmp/.hidden');
+assert.equal(fs.existsSync('tmp/a/b/c'), true);
+assert.equal(fs.existsSync('tmp/b'), true);
+assert.equal(fs.existsSync('tmp/c'), true);
+assert.equal(fs.existsSync('tmp/.hidden'), true);
+shell.rm('-rf', 'tmp/*'); 
+assert.equal(shell.error(), null);
+var contents = fs.readdirSync('tmp');
+assert.equal(contents.length, 1);
+assert.equal(contents[0], '.hidden'); // shouldn't remove hiddden if no .* given
+
+// recursive dir removal
+shell.mkdir('-p', 'tmp/a/b/c');
+shell.mkdir('-p', 'tmp/b');
+shell.mkdir('-p', 'tmp/c');
+shell.mkdir('-p', 'tmp/.hidden');
+assert.equal(fs.existsSync('tmp/a/b/c'), true);
+assert.equal(fs.existsSync('tmp/b'), true);
+assert.equal(fs.existsSync('tmp/c'), true);
+assert.equal(fs.existsSync('tmp/.hidden'), true);
+shell.rm('-rf', 'tmp/*', 'tmp/.*');
+assert.equal(shell.error(), null);
+var contents = fs.readdirSync('tmp');
+assert.equal(contents.length, 0);
+
+// recursive dir removal - array-syntax
+shell.mkdir('-p', 'tmp/a/b/c');
+shell.mkdir('-p', 'tmp/b');
+shell.mkdir('-p', 'tmp/c');
+shell.mkdir('-p', 'tmp/.hidden');
+assert.equal(fs.existsSync('tmp/a/b/c'), true);
+assert.equal(fs.existsSync('tmp/b'), true);
+assert.equal(fs.existsSync('tmp/c'), true);
+assert.equal(fs.existsSync('tmp/.hidden'), true);
+shell.rm('-rf', ['tmp/*', 'tmp/.*']);
+assert.equal(shell.error(), null);
+var contents = fs.readdirSync('tmp');
+assert.equal(contents.length, 0);
+
+// removal of a read-only file (unforced)
+shell.mkdir('-p', 'tmp/readonly');
+'asdf'.to('tmp/readonly/file1');
+fs.chmodSync('tmp/readonly/file1', '0444'); // -r--r--r--
+shell.rm('tmp/readonly/file1');
+assert.equal(fs.existsSync('tmp/readonly/file1'), true); // bash's rm always asks before removing read-only files
+                                                         // here we just assume "no"
+
+// removal of a read-only file (forced)
+shell.mkdir('-p', 'tmp/readonly');
+'asdf'.to('tmp/readonly/file2');
+fs.chmodSync('tmp/readonly/file2', '0444'); // -r--r--r--
+shell.rm('-f', 'tmp/readonly/file2');
+assert.equal(fs.existsSync('tmp/readonly/file2'), false);
+
+// removal of a tree containing read-only files (unforced)
+shell.mkdir('-p', 'tmp/tree2');
+'asdf'.to('tmp/tree2/file1');
+'asdf'.to('tmp/tree2/file2');
+fs.chmodSync('tmp/tree2/file1', '0444'); // -r--r--r--
+shell.rm('-r', 'tmp/tree2');
+assert.equal(fs.existsSync('tmp/tree2/file1'), true);
+assert.equal(fs.existsSync('tmp/tree2/file2'), false);
+
+// removal of a tree containing read-only files (forced)
+shell.mkdir('-p', 'tmp/tree');
+'asdf'.to('tmp/tree/file1');
+'asdf'.to('tmp/tree/file2');
+fs.chmodSync('tmp/tree/file1', '0444'); // -r--r--r--
+shell.rm('-rf', 'tmp/tree');
+assert.equal(fs.existsSync('tmp/tree'), false);
+
+// removal of a sub-tree containing read-only and hidden files - rm('dir/*')
+shell.mkdir('-p', 'tmp/tree3');
+shell.mkdir('-p', 'tmp/tree3/subtree');
+shell.mkdir('-p', 'tmp/tree3/.hidden');
+'asdf'.to('tmp/tree3/subtree/file');
+'asdf'.to('tmp/tree3/.hidden/file');
+'asdf'.to('tmp/tree3/file');
+fs.chmodSync('tmp/tree3/file', '0444'); // -r--r--r--
+fs.chmodSync('tmp/tree3/subtree/file', '0444'); // -r--r--r--
+fs.chmodSync('tmp/tree3/.hidden/file', '0444'); // -r--r--r--
+shell.rm('-rf', 'tmp/tree3/*', 'tmp/tree3/.*'); // erase dir contents
+assert.equal(shell.ls('tmp/tree3').length, 0);
+
+// removal of a sub-tree containing read-only and hidden files - rm('dir')
+shell.mkdir('-p', 'tmp/tree4');
+shell.mkdir('-p', 'tmp/tree4/subtree');
+shell.mkdir('-p', 'tmp/tree4/.hidden');
+'asdf'.to('tmp/tree4/subtree/file');
+'asdf'.to('tmp/tree4/.hidden/file');
+'asdf'.to('tmp/tree4/file');
+fs.chmodSync('tmp/tree4/file', '0444'); // -r--r--r--
+fs.chmodSync('tmp/tree4/subtree/file', '0444'); // -r--r--r--
+fs.chmodSync('tmp/tree4/.hidden/file', '0444'); // -r--r--r--
+shell.rm('-rf', 'tmp/tree4'); // erase dir contents
+assert.equal(fs.existsSync('tmp/tree4'), false);
+
+shell.exit(123);

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/sed.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/sed.js b/wp8/bin/node_modules/shelljs/test/sed.js
new file mode 100644
index 0000000..d3d66b1
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/sed.js
@@ -0,0 +1,58 @@
+var shell = require('..');
+
+var assert = require('assert'),
+    path = require('path'),
+    fs = require('fs');
+
+// Node shims for < v0.7
+fs.existsSync = fs.existsSync || path.existsSync;
+
+shell.config.silent = true;
+
+function numLines(str) {
+  return typeof str === 'string' ? str.match(/\n/g).length : 0;
+}
+
+shell.rm('-rf', 'tmp');
+shell.mkdir('tmp');
+
+//
+// Invalids
+//
+
+shell.sed();
+assert.ok(shell.error());
+
+shell.sed(/asdf/g); // too few args
+assert.ok(shell.error());
+
+shell.sed(/asdf/g, 'nada'); // too few args
+assert.ok(shell.error());
+
+assert.equal(fs.existsSync('/asdfasdf'), false); // sanity check
+shell.sed(/asdf/g, 'nada', '/asdfasdf'); // no such file
+assert.ok(shell.error());
+
+//
+// Valids
+//
+
+shell.cp('-f', 'resources/file1', 'tmp/file1');
+var result = shell.sed('test1', 'hello', 'tmp/file1'); // search string
+assert.equal(shell.error(), null);
+assert.equal(result, 'hello');
+
+var result = shell.sed(/test1/, 'hello', 'tmp/file1'); // search regex
+assert.equal(shell.error(), null);
+assert.equal(result, 'hello');
+
+var result = shell.sed(/test1/, 1234, 'tmp/file1'); // numeric replacement
+assert.equal(shell.error(), null);
+assert.equal(result, '1234');
+
+var result = shell.sed('-i', /test1/, 'hello', 'tmp/file1');
+assert.equal(shell.error(), null);
+assert.equal(result, 'hello');
+assert.equal(shell.cat('tmp/file1'), 'hello');
+
+shell.exit(123);

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/tempdir.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/tempdir.js b/wp8/bin/node_modules/shelljs/test/tempdir.js
new file mode 100644
index 0000000..704ca56
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/tempdir.js
@@ -0,0 +1,27 @@
+var shell = require('..');
+
+var assert = require('assert'),
+    path = require('path'),
+    fs = require('fs');
+
+// Node shims for < v0.7
+fs.existsSync = fs.existsSync || path.existsSync;
+
+shell.config.silent = true;
+
+function numLines(str) {
+  return typeof str === 'string' ? str.match(/\n/g).length : 0;
+}
+
+shell.rm('-rf', 'tmp');
+shell.mkdir('tmp');
+
+//
+// Valids
+//
+
+var tmp = shell.tempdir();
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync(tmp), true);
+
+shell.exit(123);

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/test.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/test.js b/wp8/bin/node_modules/shelljs/test/test.js
new file mode 100644
index 0000000..a824edb
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/test.js
@@ -0,0 +1,91 @@
+var shell = require('..');
+
+var assert = require('assert'),
+    path = require('path'),
+    fs = require('fs');
+
+// Node shims for < v0.7
+fs.existsSync = fs.existsSync || path.existsSync;
+
+shell.config.silent = true;
+
+shell.rm('-rf', 'tmp');
+shell.mkdir('tmp');
+
+//
+// Invalids
+//
+
+var result = shell.test(); // no expression given
+assert.ok(shell.error());
+
+var result = shell.test('asdf'); // bad expression
+assert.ok(shell.error());
+
+var result = shell.test('f', 'resources/file1'); // bad expression
+assert.ok(shell.error());
+
+var result = shell.test('-f'); // no file
+assert.ok(shell.error());
+
+//
+// Valids
+//
+
+//exists
+var result = shell.test('-e', 'resources/file1');
+assert.equal(shell.error(), null);
+assert.equal(result, true);//true
+
+var result = shell.test('-e', 'resources/404');
+assert.equal(shell.error(), null);
+assert.equal(result, false);
+
+//directory
+var result = shell.test('-d', 'resources');
+assert.equal(shell.error(), null);
+assert.equal(result, true);//true
+
+var result = shell.test('-f', 'resources');
+assert.equal(shell.error(), null);
+assert.equal(result, false);
+
+var result = shell.test('-L', 'resources');
+assert.equal(shell.error(), null);
+assert.equal(result, false);
+
+//file
+var result = shell.test('-d', 'resources/file1');
+assert.equal(shell.error(), null);
+assert.equal(result, false);
+
+var result = shell.test('-f', 'resources/file1');
+assert.equal(shell.error(), null);
+assert.equal(result, true);//true
+
+var result = shell.test('-L', 'resources/file1');
+assert.equal(shell.error(), null);
+assert.equal(result, false);
+
+//link
+var result = shell.test('-d', 'resources/link');
+assert.equal(shell.error(), null);
+assert.equal(result, false);
+
+var result = shell.test('-f', 'resources/link');
+assert.equal(shell.error(), null);
+assert.equal(result, true);//true
+
+var result = shell.test('-L', 'resources/link');
+assert.equal(shell.error(), null);
+assert.equal(result, true);//true
+
+var result = shell.test('-L', 'resources/badlink');
+assert.equal(shell.error(), null);
+assert.equal(result, true);//true
+
+var result = shell.test('-L', 'resources/404');
+assert.equal(shell.error(), null);
+assert.equal(result, false);//false
+
+shell.exit(123);

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/to.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/to.js b/wp8/bin/node_modules/shelljs/test/to.js
new file mode 100644
index 0000000..2e1253d
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/to.js
@@ -0,0 +1,39 @@
+var shell = require('..');
+
+var assert = require('assert'),
+    path = require('path'),
+    fs = require('fs');
+
+// Node shims for < v0.7
+fs.existsSync = fs.existsSync || path.existsSync;
+
+shell.config.silent = true;
+
+function numLines(str) {
+  return typeof str === 'string' ? str.match(/\n/g).length : 0;
+}
+
+shell.rm('-rf', 'tmp');
+shell.mkdir('tmp');
+
+//
+// Invalids
+//
+
+'hello world'.to();
+assert.ok(shell.error());
+
+assert.equal(fs.existsSync('/asdfasdf'), false); // sanity check
+'hello world'.to('/asdfasdf/file');
+assert.ok(shell.error());
+
+//
+// Valids
+//
+
+'hello world'.to('tmp/to1');
+var result = shell.cat('tmp/to1');
+assert.equal(shell.error(), null);
+assert.equal(result, 'hello world');
+
+shell.exit(123);

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/bin/node_modules/shelljs/test/which.js
----------------------------------------------------------------------
diff --git a/wp8/bin/node_modules/shelljs/test/which.js b/wp8/bin/node_modules/shelljs/test/which.js
new file mode 100644
index 0000000..ac9a04d
--- /dev/null
+++ b/wp8/bin/node_modules/shelljs/test/which.js
@@ -0,0 +1,38 @@
+var shell = require('..');
+
+var assert = require('assert'),
+    path = require('path'),
+    fs = require('fs');
+
+// Node shims for < v0.7
+fs.existsSync = fs.existsSync || path.existsSync;
+
+shell.config.silent = true;
+
+function numLines(str) {
+  return typeof str === 'string' ? str.match(/\n/g).length : 0;
+}
+
+shell.rm('-rf', 'tmp');
+shell.mkdir('tmp');
+
+//
+// Invalids
+//
+
+shell.which();
+assert.ok(shell.error());
+
+var result = shell.which('asdfasdfasdfasdfasdf'); // what are the odds...
+assert.equal(shell.error(), null);
+assert.equal(result, null);
+
+//
+// Valids
+//
+
+var result = shell.which('node');
+assert.equal(shell.error(), null);
+assert.equal(fs.existsSync(result), true);
+
+shell.exit(123);

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/node_modules/.bin/nopt
----------------------------------------------------------------------
diff --git a/wp8/node_modules/.bin/nopt b/wp8/node_modules/.bin/nopt
deleted file mode 100644
index 25995f3..0000000
--- a/wp8/node_modules/.bin/nopt
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-basedir=`dirname "$0"`
-
-case `uname` in
-    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  "$basedir/node"  "$basedir/../nopt/bin/nopt.js" "$@"
-  ret=$?
-else 
-  node  "$basedir/../nopt/bin/nopt.js" "$@"
-  ret=$?
-fi
-exit $ret

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/node_modules/.bin/nopt.cmd
----------------------------------------------------------------------
diff --git a/wp8/node_modules/.bin/nopt.cmd b/wp8/node_modules/.bin/nopt.cmd
deleted file mode 100644
index c8e8216..0000000
--- a/wp8/node_modules/.bin/nopt.cmd
+++ /dev/null
@@ -1,5 +0,0 @@
-@IF EXIST "%~dp0\node.exe" (
-  "%~dp0\node.exe"  "%~dp0\..\nopt\bin\nopt.js" %*
-) ELSE (
-  node  "%~dp0\..\nopt\bin\nopt.js" %*
-)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/node_modules/.bin/shjs
----------------------------------------------------------------------
diff --git a/wp8/node_modules/.bin/shjs b/wp8/node_modules/.bin/shjs
deleted file mode 100644
index 9908675..0000000
--- a/wp8/node_modules/.bin/shjs
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-basedir=`dirname "$0"`
-
-case `uname` in
-    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  "$basedir/node"  "$basedir/../shelljs/bin/shjs" "$@"
-  ret=$?
-else 
-  node  "$basedir/../shelljs/bin/shjs" "$@"
-  ret=$?
-fi
-exit $ret

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/node_modules/.bin/shjs.cmd
----------------------------------------------------------------------
diff --git a/wp8/node_modules/.bin/shjs.cmd b/wp8/node_modules/.bin/shjs.cmd
deleted file mode 100644
index 9ce460a..0000000
--- a/wp8/node_modules/.bin/shjs.cmd
+++ /dev/null
@@ -1,5 +0,0 @@
-@IF EXIST "%~dp0\node.exe" (
-  "%~dp0\node.exe"  "%~dp0\..\shelljs\bin\shjs" %*
-) ELSE (
-  node  "%~dp0\..\shelljs\bin\shjs" %*
-)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/node_modules/node-uuid/.npmignore
----------------------------------------------------------------------
diff --git a/wp8/node_modules/node-uuid/.npmignore b/wp8/node_modules/node-uuid/.npmignore
deleted file mode 100644
index fd4f2b0..0000000
--- a/wp8/node_modules/node-uuid/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules
-.DS_Store

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/node_modules/node-uuid/LICENSE.md
----------------------------------------------------------------------
diff --git a/wp8/node_modules/node-uuid/LICENSE.md b/wp8/node_modules/node-uuid/LICENSE.md
deleted file mode 100644
index f039427..0000000
--- a/wp8/node_modules/node-uuid/LICENSE.md
+++ /dev/null
@@ -1,2 +0,0 @@
-Copyright (c) 2010-2012 Robert Kieffer
-MIT License - http://opensource.org/licenses/mit-license.php

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/node_modules/node-uuid/README.md
----------------------------------------------------------------------
diff --git a/wp8/node_modules/node-uuid/README.md b/wp8/node_modules/node-uuid/README.md
deleted file mode 100644
index e436a89..0000000
--- a/wp8/node_modules/node-uuid/README.md
+++ /dev/null
@@ -1,207 +0,0 @@
-# node-uuid
-
-Simple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS.
-
-Features:
-
-* Generate RFC4122 version 1 or version 4 UUIDs
-* Runs in node.js and all browsers.
-* Registered as a [ComponentJS](https://github.com/component/component) [component](https://github.com/component/component/wiki/Components) ('broofa/node-uuid').
-* Cryptographically strong random # generation on supporting platforms
-* 1.1K minified and gzip'ed  (Want something smaller?  Check this [crazy shit](https://gist.github.com/982883) out! )
-* [Annotated source code](http://broofa.github.com/node-uuid/docs/uuid.html)
-
-## Getting Started
-
-Install it in your browser:
-
-```html
-<script src="uuid.js"></script>
-```
-
-Or in node.js:
-
-```
-npm install node-uuid
-```
-
-```javascript
-var uuid = require('node-uuid');
-```
-
-Then create some ids ...
-
-```javascript
-// Generate a v1 (time-based) id
-uuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'
-
-// Generate a v4 (random) id
-uuid.v4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1'
-```
-
-## API
-
-### uuid.v1([`options` [, `buffer` [, `offset`]]])
-
-Generate and return a RFC4122 v1 (timestamp-based) UUID.
-
-* `options` - (Object) Optional uuid state to apply. Properties may include:
-
-  * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID.  See note 1.
-  * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence.  Default: An internally maintained clockseq is used.
-  * `msecs` - (Number | Date) Time in milliseconds since unix Epoch.  Default: The current time is used.
-  * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2.
-
-* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
-* `offset` - (Number) Starting index in `buffer` at which to begin writing.
-
-Returns `buffer`, if specified, otherwise the string form of the UUID
-
-Notes:
-
-1. The randomly generated node id is only guaranteed to stay constant for the lifetime of the current JS runtime. (Future versions of this module may use persistent storage mechanisms to extend this guarantee.)
-
-Example: Generate string UUID with fully-specified options
-
-```javascript
-uuid.v1({
-  node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
-  clockseq: 0x1234,
-  msecs: new Date('2011-11-01').getTime(),
-  nsecs: 5678
-});   // -> "710b962e-041c-11e1-9234-0123456789ab"
-```
-
-Example: In-place generation of two binary IDs
-
-```javascript
-// Generate two ids in an array
-var arr = new Array(32); // -> []
-uuid.v1(null, arr, 0);   // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15]
-uuid.v1(null, arr, 16);  // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15 02 a3 1c b0 14 32 11 e1 85 58 0b 48 8e 4f c1 15]
-
-// Optionally use uuid.unparse() to get stringify the ids
-uuid.unparse(buffer);    // -> '02a2ce90-1432-11e1-8558-0b488e4fc115'
-uuid.unparse(buffer, 16) // -> '02a31cb0-1432-11e1-8558-0b488e4fc115'
-```
-
-### uuid.v4([`options` [, `buffer` [, `offset`]]])
-
-Generate and return a RFC4122 v4 UUID.
-
-* `options` - (Object) Optional uuid state to apply. Properties may include:
-
-  * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values
-  * `rng` - (Function) Random # generator to use.  Set to one of the built-in generators - `uuid.mathRNG` (all platforms), `uuid.nodeRNG` (node.js only), `uuid.whatwgRNG` (WebKit only) - or a custom function that returns an array[16] of byte values.
-
-* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
-* `offset` - (Number) Starting index in `buffer` at which to begin writing.
-
-Returns `buffer`, if specified, otherwise the string form of the UUID
-
-Example: Generate string UUID with fully-specified options
-
-```javascript
-uuid.v4({
-  random: [
-    0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea,
-    0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36
-  ]
-});
-// -> "109156be-c4fb-41ea-b1b4-efe1671c5836"
-```
-
-Example: Generate two IDs in a single buffer
-
-```javascript
-var buffer = new Array(32); // (or 'new Buffer' in node.js)
-uuid.v4(null, buffer, 0);
-uuid.v4(null, buffer, 16);
-```
-
-### uuid.parse(id[, buffer[, offset]])
-### uuid.unparse(buffer[, offset])
-
-Parse and unparse UUIDs
-
-  * `id` - (String) UUID(-like) string
-  * `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. Default: A new Array or Buffer is used
-  * `offset` - (Number) Starting index in `buffer` at which to begin writing. Default: 0
-
-Example parsing and unparsing a UUID string
-
-```javascript
-var bytes = uuid.parse('797ff043-11eb-11e1-80d6-510998755d10'); // -> <Buffer 79 7f f0 43 11 eb 11 e1 80 d6 51 09 98 75 5d 10>
-var string = uuid.unparse(bytes); // -> '797ff043-11eb-11e1-80d6-510998755d10'
-```
-
-### uuid.noConflict()
-
-(Browsers only) Set `uuid` property back to it's previous value.
-
-Returns the node-uuid object.
-
-Example:
-
-```javascript
-var myUuid = uuid.noConflict();
-myUuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'
-```
-
-## Deprecated APIs
-
-Support for the following v1.2 APIs is available in v1.3, but is deprecated and will be removed in the next major version.
-
-### uuid([format [, buffer [, offset]]])
-
-uuid() has become uuid.v4(), and the `format` argument is now implicit in the `buffer` argument. (i.e. if you specify a buffer, the format is assumed to be binary).
-
-### uuid.BufferClass
-
-The class of container created when generating binary uuid data if no buffer argument is specified.  This is expected to go away, with no replacement API.
-
-## Testing
-
-In node.js
-
-```
-> cd test
-> node test.js
-```
-
-In Browser
-
-```
-open test/test.html
-```
-
-### Benchmarking
-
-Requires node.js
-
-```
-npm install uuid uuid-js
-node benchmark/benchmark.js
-```
-
-For a more complete discussion of node-uuid performance, please see the `benchmark/README.md` file, and the [benchmark wiki](https://github.com/broofa/node-uuid/wiki/Benchmark)
-
-For browser performance [checkout the JSPerf tests](http://jsperf.com/node-uuid-performance).
-
-## Release notes
-
-### 1.4.0
-
-* Improved module context detection
-* Removed public RNG functions
-
-### 1.3.2
-
-* Improve tests and handling of v1() options (Issue #24)
-* Expose RNG option to allow for perf testing with different generators
-
-### 1.3.0
-
-* Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)!
-* Support for node.js crypto API
-* De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/node_modules/node-uuid/benchmark/README.md
----------------------------------------------------------------------
diff --git a/wp8/node_modules/node-uuid/benchmark/README.md b/wp8/node_modules/node-uuid/benchmark/README.md
deleted file mode 100644
index aaeb2ea..0000000
--- a/wp8/node_modules/node-uuid/benchmark/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# node-uuid Benchmarks
-
-### Results
-
-To see the results of our benchmarks visit https://github.com/broofa/node-uuid/wiki/Benchmark
-
-### Run them yourself
-
-node-uuid comes with some benchmarks to measure performance of generating UUIDs. These can be run using node.js. node-uuid is being benchmarked against some other uuid modules, that are available through npm namely `uuid` and `uuid-js`.
-
-To prepare and run the benchmark issue;
-
-```
-npm install uuid uuid-js
-node benchmark/benchmark.js
-```
-
-You'll see an output like this one:
-
-```
-# v4
-nodeuuid.v4(): 854700 uuids/second
-nodeuuid.v4('binary'): 788643 uuids/second
-nodeuuid.v4('binary', buffer): 1336898 uuids/second
-uuid(): 479386 uuids/second
-uuid('binary'): 582072 uuids/second
-uuidjs.create(4): 312304 uuids/second
-
-# v1
-nodeuuid.v1(): 938086 uuids/second
-nodeuuid.v1('binary'): 683060 uuids/second
-nodeuuid.v1('binary', buffer): 1644736 uuids/second
-uuidjs.create(1): 190621 uuids/second
-```
-
-* The `uuid()` entries are for Nikhil Marathe's [uuid module](https://bitbucket.org/nikhilm/uuidjs) which is a wrapper around the native libuuid library.
-* The `uuidjs()` entries are for Patrick Negri's [uuid-js module](https://github.com/pnegri/uuid-js) which is a pure javascript implementation based on [UUID.js](https://github.com/LiosK/UUID.js) by LiosK.
-
-If you want to get more reliable results you can run the benchmark multiple times and write the output into a log file:
-
-```
-for i in {0..9}; do node benchmark/benchmark.js >> benchmark/bench_0.4.12.log; done;
-```
-
-If you're interested in how performance varies between different node versions, you can issue the above command multiple times.
-
-You can then use the shell script `bench.sh` provided in this directory to calculate the averages over all benchmark runs and draw a nice plot:
-
-```
-(cd benchmark/ && ./bench.sh)
-```
-
-This assumes you have [gnuplot](http://www.gnuplot.info/) and [ImageMagick](http://www.imagemagick.org/) installed. You'll find a nice `bench.png` graph in the `benchmark/` directory then.

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/98448f5f/wp8/node_modules/node-uuid/benchmark/bench.gnu
----------------------------------------------------------------------
diff --git a/wp8/node_modules/node-uuid/benchmark/bench.gnu b/wp8/node_modules/node-uuid/benchmark/bench.gnu
deleted file mode 100644
index a342fbb..0000000
--- a/wp8/node_modules/node-uuid/benchmark/bench.gnu
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/opt/local/bin/gnuplot -persist
-#
-#    
-#    	G N U P L O T
-#    	Version 4.4 patchlevel 3
-#    	last modified March 2011
-#    	System: Darwin 10.8.0
-#    
-#    	Copyright (C) 1986-1993, 1998, 2004, 2007-2010
-#    	Thomas Williams, Colin Kelley and many others
-#    
-#    	gnuplot home:     http://www.gnuplot.info
-#    	faq, bugs, etc:   type "help seeking-assistance"
-#    	immediate help:   type "help"
-#    	plot window:      hit 'h'
-set terminal postscript eps noenhanced defaultplex \
- leveldefault color colortext \
- solid linewidth 1.2 butt noclip \
- palfuncparam 2000,0.003 \
- "Helvetica" 14 
-set output 'bench.eps'
-unset clip points
-set clip one
-unset clip two
-set bar 1.000000 front
-set border 31 front linetype -1 linewidth 1.000
-set xdata
-set ydata
-set zdata
-set x2data
-set y2data
-set timefmt x "%d/%m/%y,%H:%M"
-set timefmt y "%d/%m/%y,%H:%M"
-set timefmt z "%d/%m/%y,%H:%M"
-set timefmt x2 "%d/%m/%y,%H:%M"
-set timefmt y2 "%d/%m/%y,%H:%M"
-set timefmt cb "%d/%m/%y,%H:%M"
-set boxwidth
-set style fill  empty border
-set style rectangle back fc lt -3 fillstyle   solid 1.00 border lt -1
-set style circle radius graph 0.02, first 0, 0 
-set dummy x,y
-set format x "% g"
-set format y "% g"
-set format x2 "% g"
-set format y2 "% g"
-set format z "% g"
-set format cb "% g"
-set angles radians
-unset grid
-set key title ""
-set key outside left top horizontal Right noreverse enhanced autotitles columnhead nobox
-set key noinvert samplen 4 spacing 1 width 0 height 0 
-set key maxcolumns 2 maxrows 0
-unset label
-unset arrow
-set style increment default
-unset style line
-set style line 1  linetype 1 linewidth 2.000 pointtype 1 pointsize default pointinterval 0
-unset style arrow
-set style histogram clustered gap 2 title  offset character 0, 0, 0
-unset logscale
-set offsets graph 0.05, 0.15, 0, 0
-set pointsize 1.5
-set pointintervalbox 1
-set encoding default
-unset polar
-unset parametric
-unset decimalsign
-set view 60, 30, 1, 1
-set samples 100, 100
-set isosamples 10, 10
-set surface
-unset contour
-set clabel '%8.3g'
-set mapping cartesian
-set datafile separator whitespace
-unset hidden3d
-set cntrparam order 4
-set cntrparam linear
-set cntrparam levels auto 5
-set cntrparam points 5
-set size ratio 0 1,1
-set origin 0,0
-set style data points
-set style function lines
-set xzeroaxis linetype -2 linewidth 1.000
-set yzeroaxis linetype -2 linewidth 1.000
-set zzeroaxis linetype -2 linewidth 1.000
-set x2zeroaxis linetype -2 linewidth 1.000
-set y2zeroaxis linetype -2 linewidth 1.000
-set ticslevel 0.5
-set mxtics default
-set mytics default
-set mztics default
-set mx2tics default
-set my2tics default
-set mcbtics default
-set xtics border in scale 1,0.5 mirror norotate  offset character 0, 0, 0
-set xtics  norangelimit
-set xtics   ()
-set ytics border in scale 1,0.5 mirror norotate  offset character 0, 0, 0
-set ytics autofreq  norangelimit
-set ztics border in scale 1,0.5 nomirror norotate  offset character 0, 0, 0
-set ztics autofreq  norangelimit
-set nox2tics
-set noy2tics
-set cbtics border in scale 1,0.5 mirror norotate  offset character 0, 0, 0
-set cbtics autofreq  norangelimit
-set title "" 
-set title  offset character 0, 0, 0 font "" norotate
-set timestamp bottom 
-set timestamp "" 
-set timestamp  offset character 0, 0, 0 font "" norotate
-set rrange [ * : * ] noreverse nowriteback  # (currently [8.98847e+307:-8.98847e+307] )
-set autoscale rfixmin
-set autoscale rfixmax
-set trange [ * : * ] noreverse nowriteback  # (currently [-5.00000:5.00000] )
-set autoscale tfixmin
-set autoscale tfixmax
-set urange [ * : * ] noreverse nowriteback  # (currently [-10.0000:10.0000] )
-set autoscale ufixmin
-set autoscale ufixmax
-set vrange [ * : * ] noreverse nowriteback  # (currently [-10.0000:10.0000] )
-set autoscale vfixmin
-set autoscale vfixmax
-set xlabel "" 
-set xlabel  offset character 0, 0, 0 font "" textcolor lt -1 norotate
-set x2label "" 
-set x2label  offset character 0, 0, 0 font "" textcolor lt -1 norotate
-set xrange [ * : * ] noreverse nowriteback  # (currently [-0.150000:3.15000] )
-set autoscale xfixmin
-set autoscale xfixmax
-set x2range [ * : * ] noreverse nowriteback  # (currently [0.00000:3.00000] )
-set autoscale x2fixmin
-set autoscale x2fixmax
-set ylabel "" 
-set ylabel  offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270
-set y2label "" 
-set y2label  offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270
-set yrange [ 0.00000 : 1.90000e+06 ] noreverse nowriteback  # (currently [:] )
-set autoscale yfixmin
-set autoscale yfixmax
-set y2range [ * : * ] noreverse nowriteback  # (currently [0.00000:1.90000e+06] )
-set autoscale y2fixmin
-set autoscale y2fixmax
-set zlabel "" 
-set zlabel  offset character 0, 0, 0 font "" textcolor lt -1 norotate
-set zrange [ * : * ] noreverse nowriteback  # (currently [-10.0000:10.0000] )
-set autoscale zfixmin
-set autoscale zfixmax
-set cblabel "" 
-set cblabel  offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270
-set cbrange [ * : * ] noreverse nowriteback  # (currently [8.98847e+307:-8.98847e+307] )
-set autoscale cbfixmin
-set autoscale cbfixmax
-set zero 1e-08
-set lmargin  -1
-set bmargin  -1
-set rmargin  -1
-set tmargin  -1
-set pm3d explicit at s
-set pm3d scansautomatic
-set pm3d interpolate 1,1 flush begin noftriangles nohidden3d corners2color mean
-set palette positive nops_allcF maxcolors 0 gamma 1.5 color model RGB 
-set palette rgbformulae 7, 5, 15
-set colorbox default
-set colorbox vertical origin screen 0.9, 0.2, 0 size screen 0.05, 0.6, 0 front bdefault
-set loadpath 
-set fontpath 
-set fit noerrorvariables
-GNUTERM = "aqua"
-plot 'bench_results.txt' using 2:xticlabel(1) w lp lw 2, '' using 3:xticlabel(1) w lp lw 2, '' using 4:xticlabel(1) w lp lw 2, '' using 5:xticlabel(1) w lp lw 2, '' using 6:xticlabel(1) w lp lw 2, '' using 7:xticlabel(1) w lp lw 2, '' using 8:xticlabel(1) w lp lw 2, '' using 9:xticlabel(1) w lp lw 2
-#    EOF