You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by st...@apache.org on 2016/06/18 01:04:47 UTC
[29/51] [abbrv] [partial] ios commit: CB-11445 rechecked in
node_modules using npm 2
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/exec.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/exec.js b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/exec.js
new file mode 100644
index 0000000..7ccdbc0
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/exec.js
@@ -0,0 +1,181 @@
+var common = require('./common');
+var _tempDir = require('./tempdir');
+var _pwd = require('./pwd');
+var path = require('path');
+var fs = require('fs');
+var child = require('child_process');
+
+// Hack to run child_process.exec() synchronously (sync avoids callback hell)
+// Uses a custom wait loop that checks for a flag file, created when the child process is done.
+// (Can't do a wait loop that checks for internal Node variables/messages as
+// Node is single-threaded; callbacks and other internal state changes are done in the
+// event loop).
+function execSync(cmd, opts) {
+ var tempDir = _tempDir();
+ var stdoutFile = path.resolve(tempDir+'/'+common.randomFileName()),
+ codeFile = path.resolve(tempDir+'/'+common.randomFileName()),
+ scriptFile = path.resolve(tempDir+'/'+common.randomFileName()),
+ sleepFile = path.resolve(tempDir+'/'+common.randomFileName());
+
+ var options = common.extend({
+ silent: common.config.silent
+ }, opts);
+
+ var previousStdoutContent = '';
+ // Echoes stdout changes from running process, if not silent
+ function updateStdout() {
+ if (options.silent || !fs.existsSync(stdoutFile))
+ return;
+
+ var stdoutContent = fs.readFileSync(stdoutFile, 'utf8');
+ // No changes since last time?
+ if (stdoutContent.length <= previousStdoutContent.length)
+ return;
+
+ process.stdout.write(stdoutContent.substr(previousStdoutContent.length));
+ previousStdoutContent = stdoutContent;
+ }
+
+ function escape(str) {
+ return (str+'').replace(/([\\"'])/g, "\\$1").replace(/\0/g, "\\0");
+ }
+
+ cmd += ' > '+stdoutFile+' 2>&1'; // works on both win/unix
+
+ var script =
+ "var child = require('child_process')," +
+ " fs = require('fs');" +
+ "child.exec('"+escape(cmd)+"', {env: process.env, maxBuffer: 20*1024*1024}, function(err) {" +
+ " fs.writeFileSync('"+escape(codeFile)+"', err ? err.code.toString() : '0');" +
+ "});";
+
+ if (fs.existsSync(scriptFile)) common.unlinkSync(scriptFile);
+ if (fs.existsSync(stdoutFile)) common.unlinkSync(stdoutFile);
+ if (fs.existsSync(codeFile)) common.unlinkSync(codeFile);
+
+ fs.writeFileSync(scriptFile, script);
+ child.exec('"'+process.execPath+'" '+scriptFile, {
+ env: process.env,
+ cwd: _pwd(),
+ maxBuffer: 20*1024*1024
+ });
+
+ // The wait loop
+ // sleepFile is used as a dummy I/O op to mitigate unnecessary CPU usage
+ // (tried many I/O sync ops, writeFileSync() seems to be only one that is effective in reducing
+ // CPU usage, though apparently not so much on Windows)
+ while (!fs.existsSync(codeFile)) { updateStdout(); fs.writeFileSync(sleepFile, 'a'); }
+ while (!fs.existsSync(stdoutFile)) { updateStdout(); fs.writeFileSync(sleepFile, 'a'); }
+
+ // At this point codeFile exists, but it's not necessarily flushed yet.
+ // Keep reading it until it is.
+ var code = parseInt('', 10);
+ while (isNaN(code)) {
+ code = parseInt(fs.readFileSync(codeFile, 'utf8'), 10);
+ }
+
+ var stdout = fs.readFileSync(stdoutFile, 'utf8');
+
+ // No biggie if we can't erase the files now -- they're in a temp dir anyway
+ try { common.unlinkSync(scriptFile); } catch(e) {}
+ try { common.unlinkSync(stdoutFile); } catch(e) {}
+ try { common.unlinkSync(codeFile); } catch(e) {}
+ try { common.unlinkSync(sleepFile); } catch(e) {}
+
+ // some shell return codes are defined as errors, per http://tldp.org/LDP/abs/html/exitcodes.html
+ if (code === 1 || code === 2 || code >= 126) {
+ common.error('', true); // unix/shell doesn't really give an error message after non-zero exit codes
+ }
+ // True if successful, false if not
+ var obj = {
+ code: code,
+ output: stdout
+ };
+ return obj;
+} // execSync()
+
+// Wrapper around exec() to enable echoing output to console in real time
+function execAsync(cmd, opts, callback) {
+ var output = '';
+
+ var options = common.extend({
+ silent: common.config.silent
+ }, opts);
+
+ var c = child.exec(cmd, {env: process.env, maxBuffer: 20*1024*1024}, function(err) {
+ if (callback)
+ callback(err ? err.code : 0, output);
+ });
+
+ c.stdout.on('data', function(data) {
+ output += data;
+ if (!options.silent)
+ process.stdout.write(data);
+ });
+
+ c.stderr.on('data', function(data) {
+ output += data;
+ if (!options.silent)
+ process.stdout.write(data);
+ });
+
+ return c;
+}
+
+//@
+//@ ### exec(command [, options] [, callback])
+//@ Available options (all `false` by default):
+//@
+//@ + `async`: Asynchronous execution. Defaults to true if a callback is provided.
+//@ + `silent`: Do not echo program output to console.
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ var version = exec('node --version', {silent:true}).output;
+//@
+//@ var child = exec('some_long_running_process', {async:true});
+//@ child.stdout.on('data', function(data) {
+//@ /* ... do something with data ... */
+//@ });
+//@
+//@ exec('some_long_running_process', function(code, output) {
+//@ console.log('Exit code:', code);
+//@ console.log('Program output:', output);
+//@ });
+//@ ```
+//@
+//@ Executes the given `command` _synchronously_, unless otherwise specified.
+//@ When in synchronous mode returns the object `{ code:..., output:... }`, containing the program's
+//@ `output` (stdout + stderr) and its exit `code`. Otherwise returns the child process object, and
+//@ the `callback` gets the arguments `(code, output)`.
+//@
+//@ **Note:** For long-lived processes, it's best to run `exec()` asynchronously as
+//@ the current synchronous implementation uses a lot of CPU. This should be getting
+//@ fixed soon.
+function _exec(command, options, callback) {
+ if (!command)
+ common.error('must specify command');
+
+ // Callback is defined instead of options.
+ if (typeof options === 'function') {
+ callback = options;
+ options = { async: true };
+ }
+
+ // Callback is defined with options.
+ if (typeof options === 'object' && typeof callback === 'function') {
+ options.async = true;
+ }
+
+ options = common.extend({
+ silent: common.config.silent,
+ async: false
+ }, options);
+
+ if (options.async)
+ return execAsync(command, options, callback);
+ else
+ return execSync(command, options);
+}
+module.exports = _exec;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/find.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/find.js b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/find.js
new file mode 100644
index 0000000..d9eeec2
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/find.js
@@ -0,0 +1,51 @@
+var fs = require('fs');
+var common = require('./common');
+var _ls = require('./ls');
+
+//@
+//@ ### find(path [,path ...])
+//@ ### find(path_array)
+//@ Examples:
+//@
+//@ ```javascript
+//@ find('src', 'lib');
+//@ find(['src', 'lib']); // same as above
+//@ find('.').filter(function(file) { return file.match(/\.js$/); });
+//@ ```
+//@
+//@ Returns array of all files (however deep) in the given paths.
+//@
+//@ The main difference from `ls('-R', path)` is that the resulting file names
+//@ include the base directories, e.g. `lib/resources/file1` instead of just `file1`.
+function _find(options, paths) {
+ if (!paths)
+ common.error('no path specified');
+ else if (typeof paths === 'object')
+ paths = paths; // assume array
+ else if (typeof paths === 'string')
+ paths = [].slice.call(arguments, 1);
+
+ var list = [];
+
+ function pushFile(file) {
+ if (common.platform === 'win')
+ file = file.replace(/\\/g, '/');
+ list.push(file);
+ }
+
+ // why not simply do ls('-R', paths)? because the output wouldn't give the base dirs
+ // to get the base dir in the output, we need instead ls('-R', 'dir/*') for every directory
+
+ paths.forEach(function(file) {
+ pushFile(file);
+
+ if (fs.statSync(file).isDirectory()) {
+ _ls('-RA', file+'/*').forEach(function(subfile) {
+ pushFile(subfile);
+ });
+ }
+ });
+
+ return list;
+}
+module.exports = _find;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/grep.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/grep.js b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/grep.js
new file mode 100644
index 0000000..00c7d6a
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/grep.js
@@ -0,0 +1,52 @@
+var common = require('./common');
+var fs = require('fs');
+
+//@
+//@ ### grep([options ,] regex_filter, file [, file ...])
+//@ ### grep([options ,] regex_filter, file_array)
+//@ Available options:
+//@
+//@ + `-v`: Inverse the sense of the regex and print the lines not matching the criteria.
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ grep('-v', 'GLOBAL_VARIABLE', '*.js');
+//@ grep('GLOBAL_VARIABLE', '*.js');
+//@ ```
+//@
+//@ Reads input string from given files and returns a string containing all lines of the
+//@ file that match the given `regex_filter`. Wildcard `*` accepted.
+function _grep(options, regex, files) {
+ options = common.parseOptions(options, {
+ 'v': 'inverse'
+ });
+
+ if (!files)
+ common.error('no paths given');
+
+ if (typeof files === 'string')
+ files = [].slice.call(arguments, 2);
+ // if it's array leave it as it is
+
+ files = common.expand(files);
+
+ var grep = '';
+ files.forEach(function(file) {
+ if (!fs.existsSync(file)) {
+ common.error('no such file or directory: ' + file, true);
+ return;
+ }
+
+ var contents = fs.readFileSync(file, 'utf8'),
+ lines = contents.split(/\r*\n/);
+ lines.forEach(function(line) {
+ var matched = line.match(regex);
+ if ((options.inverse && !matched) || (!options.inverse && matched))
+ grep += line + '\n';
+ });
+ });
+
+ return common.ShellString(grep);
+}
+module.exports = _grep;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/ls.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/ls.js b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/ls.js
new file mode 100644
index 0000000..3345db4
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/ls.js
@@ -0,0 +1,126 @@
+var path = require('path');
+var fs = require('fs');
+var common = require('./common');
+var _cd = require('./cd');
+var _pwd = require('./pwd');
+
+//@
+//@ ### ls([options ,] path [,path ...])
+//@ ### ls([options ,] path_array)
+//@ Available options:
+//@
+//@ + `-R`: recursive
+//@ + `-A`: all files (include files beginning with `.`, except for `.` and `..`)
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ ls('projs/*.js');
+//@ ls('-R', '/users/me', '/tmp');
+//@ ls('-R', ['/users/me', '/tmp']); // same as above
+//@ ```
+//@
+//@ Returns array of files in the given path, or in current directory if no path provided.
+function _ls(options, paths) {
+ options = common.parseOptions(options, {
+ 'R': 'recursive',
+ 'A': 'all',
+ 'a': 'all_deprecated'
+ });
+
+ if (options.all_deprecated) {
+ // We won't support the -a option as it's hard to image why it's useful
+ // (it includes '.' and '..' in addition to '.*' files)
+ // For backwards compatibility we'll dump a deprecated message and proceed as before
+ common.log('ls: Option -a is deprecated. Use -A instead');
+ options.all = true;
+ }
+
+ if (!paths)
+ paths = ['.'];
+ else if (typeof paths === 'object')
+ paths = paths; // assume array
+ else if (typeof paths === 'string')
+ paths = [].slice.call(arguments, 1);
+
+ var list = [];
+
+ // Conditionally pushes file to list - returns true if pushed, false otherwise
+ // (e.g. prevents hidden files to be included unless explicitly told so)
+ function pushFile(file, query) {
+ // hidden file?
+ if (path.basename(file)[0] === '.') {
+ // not explicitly asking for hidden files?
+ if (!options.all && !(path.basename(query)[0] === '.' && path.basename(query).length > 1))
+ return false;
+ }
+
+ if (common.platform === 'win')
+ file = file.replace(/\\/g, '/');
+
+ list.push(file);
+ return true;
+ }
+
+ paths.forEach(function(p) {
+ if (fs.existsSync(p)) {
+ var stats = fs.statSync(p);
+ // Simple file?
+ if (stats.isFile()) {
+ pushFile(p, p);
+ return; // continue
+ }
+
+ // Simple dir?
+ if (stats.isDirectory()) {
+ // Iterate over p contents
+ fs.readdirSync(p).forEach(function(file) {
+ if (!pushFile(file, p))
+ return;
+
+ // Recursive?
+ if (options.recursive) {
+ var oldDir = _pwd();
+ _cd('', p);
+ if (fs.statSync(file).isDirectory())
+ list = list.concat(_ls('-R'+(options.all?'A':''), file+'/*'));
+ _cd('', oldDir);
+ }
+ });
+ return; // continue
+ }
+ }
+
+ // p does not exist - possible wildcard present
+
+ var basename = path.basename(p);
+ var dirname = path.dirname(p);
+ // Wildcard present on an existing dir? (e.g. '/tmp/*.js')
+ if (basename.search(/\*/) > -1 && fs.existsSync(dirname) && fs.statSync(dirname).isDirectory) {
+ // Escape special regular expression chars
+ var regexp = basename.replace(/(\^|\$|\(|\)|<|>|\[|\]|\{|\}|\.|\+|\?)/g, '\\$1');
+ // Translates wildcard into regex
+ regexp = '^' + regexp.replace(/\*/g, '.*') + '$';
+ // Iterate over directory contents
+ fs.readdirSync(dirname).forEach(function(file) {
+ if (file.match(new RegExp(regexp))) {
+ if (!pushFile(path.normalize(dirname+'/'+file), basename))
+ return;
+
+ // Recursive?
+ if (options.recursive) {
+ var pp = dirname + '/' + file;
+ if (fs.lstatSync(pp).isDirectory())
+ list = list.concat(_ls('-R'+(options.all?'A':''), pp+'/*'));
+ } // recursive
+ } // if file matches
+ }); // forEach
+ return;
+ }
+
+ common.error('no such file or directory: ' + p, true);
+ });
+
+ return list;
+}
+module.exports = _ls;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/mkdir.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/mkdir.js b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/mkdir.js
new file mode 100644
index 0000000..5a7088f
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/mkdir.js
@@ -0,0 +1,68 @@
+var common = require('./common');
+var fs = require('fs');
+var path = require('path');
+
+// Recursively creates 'dir'
+function mkdirSyncRecursive(dir) {
+ var baseDir = path.dirname(dir);
+
+ // Base dir exists, no recursion necessary
+ if (fs.existsSync(baseDir)) {
+ fs.mkdirSync(dir, parseInt('0777', 8));
+ return;
+ }
+
+ // Base dir does not exist, go recursive
+ mkdirSyncRecursive(baseDir);
+
+ // Base dir created, can create dir
+ fs.mkdirSync(dir, parseInt('0777', 8));
+}
+
+//@
+//@ ### mkdir([options ,] dir [, dir ...])
+//@ ### mkdir([options ,] dir_array)
+//@ Available options:
+//@
+//@ + `p`: full path (will create intermediate dirs if necessary)
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ mkdir('-p', '/tmp/a/b/c/d', '/tmp/e/f/g');
+//@ mkdir('-p', ['/tmp/a/b/c/d', '/tmp/e/f/g']); // same as above
+//@ ```
+//@
+//@ Creates directories.
+function _mkdir(options, dirs) {
+ options = common.parseOptions(options, {
+ 'p': 'fullpath'
+ });
+ if (!dirs)
+ common.error('no paths given');
+
+ if (typeof dirs === 'string')
+ dirs = [].slice.call(arguments, 1);
+ // if it's array leave it as it is
+
+ dirs.forEach(function(dir) {
+ if (fs.existsSync(dir)) {
+ if (!options.fullpath)
+ common.error('path already exists: ' + dir, true);
+ return; // skip dir
+ }
+
+ // Base dir does not exist, and no -p option given
+ var baseDir = path.dirname(dir);
+ if (!fs.existsSync(baseDir) && !options.fullpath) {
+ common.error('no such file or directory: ' + baseDir, true);
+ return; // skip dir
+ }
+
+ if (options.fullpath)
+ mkdirSyncRecursive(dir);
+ else
+ fs.mkdirSync(dir, parseInt('0777', 8));
+ });
+} // mkdir
+module.exports = _mkdir;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/mv.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/mv.js b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/mv.js
new file mode 100644
index 0000000..11f9607
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/mv.js
@@ -0,0 +1,80 @@
+var fs = require('fs');
+var path = require('path');
+var common = require('./common');
+
+//@
+//@ ### mv(source [, source ...], dest')
+//@ ### mv(source_array, dest')
+//@ Available options:
+//@
+//@ + `f`: force
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ mv('-f', 'file', 'dir/');
+//@ mv('file1', 'file2', 'dir/');
+//@ mv(['file1', 'file2'], 'dir/'); // same as above
+//@ ```
+//@
+//@ Moves files. The wildcard `*` is accepted.
+function _mv(options, sources, dest) {
+ options = common.parseOptions(options, {
+ 'f': 'force'
+ });
+
+ // Get sources, dest
+ if (arguments.length < 3) {
+ common.error('missing <source> and/or <dest>');
+ } else if (arguments.length > 3) {
+ sources = [].slice.call(arguments, 1, arguments.length - 1);
+ dest = arguments[arguments.length - 1];
+ } else if (typeof sources === 'string') {
+ sources = [sources];
+ } else if ('length' in sources) {
+ sources = sources; // no-op for array
+ } else {
+ common.error('invalid arguments');
+ }
+
+ sources = common.expand(sources);
+
+ var exists = fs.existsSync(dest),
+ stats = exists && fs.statSync(dest);
+
+ // Dest is not existing dir, but multiple sources given
+ if ((!exists || !stats.isDirectory()) && sources.length > 1)
+ common.error('dest is not a directory (too many sources)');
+
+ // Dest is an existing file, but no -f given
+ if (exists && stats.isFile() && !options.force)
+ common.error('dest file already exists: ' + dest);
+
+ sources.forEach(function(src) {
+ if (!fs.existsSync(src)) {
+ common.error('no such file or directory: '+src, true);
+ return; // skip file
+ }
+
+ // If here, src exists
+
+ // When copying to '/path/dir':
+ // thisDest = '/path/dir/file1'
+ var thisDest = dest;
+ if (fs.existsSync(dest) && fs.statSync(dest).isDirectory())
+ thisDest = path.normalize(dest + '/' + path.basename(src));
+
+ if (fs.existsSync(thisDest) && !options.force) {
+ common.error('dest file already exists: ' + thisDest, true);
+ return; // skip file
+ }
+
+ if (path.resolve(src) === path.dirname(path.resolve(thisDest))) {
+ common.error('cannot move to self: '+src, true);
+ return; // skip file
+ }
+
+ fs.renameSync(src, thisDest);
+ }); // forEach(src)
+} // mv
+module.exports = _mv;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/popd.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/popd.js b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/popd.js
new file mode 100644
index 0000000..11ea24f
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/popd.js
@@ -0,0 +1 @@
+// see dirs.js
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/pushd.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/pushd.js b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/pushd.js
new file mode 100644
index 0000000..11ea24f
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/pushd.js
@@ -0,0 +1 @@
+// see dirs.js
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/pwd.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/pwd.js b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/pwd.js
new file mode 100644
index 0000000..41727bb
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/pwd.js
@@ -0,0 +1,11 @@
+var path = require('path');
+var common = require('./common');
+
+//@
+//@ ### pwd()
+//@ Returns the current directory.
+function _pwd(options) {
+ var pwd = path.resolve(process.cwd());
+ return common.ShellString(pwd);
+}
+module.exports = _pwd;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/rm.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/rm.js b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/rm.js
new file mode 100644
index 0000000..3abe6e1
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/rm.js
@@ -0,0 +1,145 @@
+var common = require('./common');
+var fs = require('fs');
+
+// Recursively removes 'dir'
+// Adapted from https://github.com/ryanmcgrath/wrench-js
+//
+// Copyright (c) 2010 Ryan McGrath
+// Copyright (c) 2012 Artur Adib
+//
+// Licensed under the MIT License
+// http://www.opensource.org/licenses/mit-license.php
+function rmdirSyncRecursive(dir, force) {
+ var files;
+
+ files = fs.readdirSync(dir);
+
+ // Loop through and delete everything in the sub-tree after checking it
+ for(var i = 0; i < files.length; i++) {
+ var file = dir + "/" + files[i],
+ currFile = fs.lstatSync(file);
+
+ if(currFile.isDirectory()) { // Recursive function back to the beginning
+ rmdirSyncRecursive(file, force);
+ }
+
+ else if(currFile.isSymbolicLink()) { // Unlink symlinks
+ if (force || isWriteable(file)) {
+ try {
+ common.unlinkSync(file);
+ } catch (e) {
+ common.error('could not remove file (code '+e.code+'): ' + file, true);
+ }
+ }
+ }
+
+ else // Assume it's a file - perhaps a try/catch belongs here?
+ if (force || isWriteable(file)) {
+ try {
+ common.unlinkSync(file);
+ } catch (e) {
+ common.error('could not remove file (code '+e.code+'): ' + file, true);
+ }
+ }
+ }
+
+ // Now that we know everything in the sub-tree has been deleted, we can delete the main directory.
+ // Huzzah for the shopkeep.
+
+ var result;
+ try {
+ result = fs.rmdirSync(dir);
+ } catch(e) {
+ common.error('could not remove directory (code '+e.code+'): ' + dir, true);
+ }
+
+ return result;
+} // rmdirSyncRecursive
+
+// Hack to determine if file has write permissions for current user
+// Avoids having to check user, group, etc, but it's probably slow
+function isWriteable(file) {
+ var writePermission = true;
+ try {
+ var __fd = fs.openSync(file, 'a');
+ fs.closeSync(__fd);
+ } catch(e) {
+ writePermission = false;
+ }
+
+ return writePermission;
+}
+
+//@
+//@ ### rm([options ,] file [, file ...])
+//@ ### rm([options ,] file_array)
+//@ Available options:
+//@
+//@ + `-f`: force
+//@ + `-r, -R`: recursive
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ rm('-rf', '/tmp/*');
+//@ rm('some_file.txt', 'another_file.txt');
+//@ rm(['some_file.txt', 'another_file.txt']); // same as above
+//@ ```
+//@
+//@ Removes files. The wildcard `*` is accepted.
+function _rm(options, files) {
+ options = common.parseOptions(options, {
+ 'f': 'force',
+ 'r': 'recursive',
+ 'R': 'recursive'
+ });
+ if (!files)
+ common.error('no paths given');
+
+ if (typeof files === 'string')
+ files = [].slice.call(arguments, 1);
+ // if it's array leave it as it is
+
+ files = common.expand(files);
+
+ files.forEach(function(file) {
+ if (!fs.existsSync(file)) {
+ // Path does not exist, no force flag given
+ if (!options.force)
+ common.error('no such file or directory: '+file, true);
+
+ return; // skip file
+ }
+
+ // If here, path exists
+
+ var stats = fs.lstatSync(file);
+ if (stats.isFile() || stats.isSymbolicLink()) {
+
+ // Do not check for file writing permissions
+ if (options.force) {
+ common.unlinkSync(file);
+ return;
+ }
+
+ if (isWriteable(file))
+ common.unlinkSync(file);
+ else
+ common.error('permission denied: '+file, true);
+
+ return;
+ } // simple file
+
+ // Path is an existing directory, but no -r flag given
+ if (stats.isDirectory() && !options.recursive) {
+ common.error('path is a directory', true);
+ return; // skip path
+ }
+
+ // Recursively remove existing directory
+ if (stats.isDirectory() && options.recursive) {
+ rmdirSyncRecursive(file, options.force);
+ }
+ }); // forEach(file)
+} // rm
+module.exports = _rm;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/sed.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/sed.js b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/sed.js
new file mode 100644
index 0000000..9783252
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/sed.js
@@ -0,0 +1,43 @@
+var common = require('./common');
+var fs = require('fs');
+
+//@
+//@ ### sed([options ,] search_regex, replace_str, file)
+//@ Available options:
+//@
+//@ + `-i`: Replace contents of 'file' in-place. _Note that no backups will be created!_
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ sed('-i', 'PROGRAM_VERSION', 'v0.1.3', 'source.js');
+//@ sed(/.*DELETE_THIS_LINE.*\n/, '', 'source.js');
+//@ ```
+//@
+//@ Reads an input string from `file` and performs a JavaScript `replace()` on the input
+//@ using the given search regex and replacement string. Returns the new string after replacement.
+function _sed(options, regex, replacement, file) {
+ options = common.parseOptions(options, {
+ 'i': 'inplace'
+ });
+
+ if (typeof replacement === 'string')
+ replacement = replacement; // no-op
+ else if (typeof replacement === 'number')
+ replacement = replacement.toString(); // fallback
+ else
+ common.error('invalid replacement string');
+
+ if (!file)
+ common.error('no file given');
+
+ if (!fs.existsSync(file))
+ common.error('no such file or directory: ' + file);
+
+ var result = fs.readFileSync(file, 'utf8').replace(regex, replacement);
+ if (options.inplace)
+ fs.writeFileSync(file, result, 'utf8');
+
+ return common.ShellString(result);
+}
+module.exports = _sed;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/tempdir.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/tempdir.js b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/tempdir.js
new file mode 100644
index 0000000..45953c2
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/tempdir.js
@@ -0,0 +1,56 @@
+var common = require('./common');
+var os = require('os');
+var fs = require('fs');
+
+// Returns false if 'dir' is not a writeable directory, 'dir' otherwise
+function writeableDir(dir) {
+ if (!dir || !fs.existsSync(dir))
+ return false;
+
+ if (!fs.statSync(dir).isDirectory())
+ return false;
+
+ var testFile = dir+'/'+common.randomFileName();
+ try {
+ fs.writeFileSync(testFile, ' ');
+ common.unlinkSync(testFile);
+ return dir;
+ } catch (e) {
+ return false;
+ }
+}
+
+
+//@
+//@ ### tempdir()
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ var tmp = tempdir(); // "/tmp" for most *nix platforms
+//@ ```
+//@
+//@ Searches and returns string containing a writeable, platform-dependent temporary directory.
+//@ Follows Python's [tempfile algorithm](http://docs.python.org/library/tempfile.html#tempfile.tempdir).
+function _tempDir() {
+ var state = common.state;
+ if (state.tempDir)
+ return state.tempDir; // from cache
+
+ state.tempDir = writeableDir(os.tempDir && os.tempDir()) || // node 0.8+
+ writeableDir(process.env['TMPDIR']) ||
+ writeableDir(process.env['TEMP']) ||
+ writeableDir(process.env['TMP']) ||
+ writeableDir(process.env['Wimp$ScrapDir']) || // RiscOS
+ writeableDir('C:\\TEMP') || // Windows
+ writeableDir('C:\\TMP') || // Windows
+ writeableDir('\\TEMP') || // Windows
+ writeableDir('\\TMP') || // Windows
+ writeableDir('/tmp') ||
+ writeableDir('/var/tmp') ||
+ writeableDir('/usr/tmp') ||
+ writeableDir('.'); // last resort
+
+ return state.tempDir;
+}
+module.exports = _tempDir;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/test.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/test.js b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/test.js
new file mode 100644
index 0000000..8a4ac7d
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/test.js
@@ -0,0 +1,85 @@
+var common = require('./common');
+var fs = require('fs');
+
+//@
+//@ ### test(expression)
+//@ Available expression primaries:
+//@
+//@ + `'-b', 'path'`: true if path is a block device
+//@ + `'-c', 'path'`: true if path is a character device
+//@ + `'-d', 'path'`: true if path is a directory
+//@ + `'-e', 'path'`: true if path exists
+//@ + `'-f', 'path'`: true if path is a regular file
+//@ + `'-L', 'path'`: true if path is a symboilc link
+//@ + `'-p', 'path'`: true if path is a pipe (FIFO)
+//@ + `'-S', 'path'`: true if path is a socket
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ if (test('-d', path)) { /* do something with dir */ };
+//@ if (!test('-f', path)) continue; // skip if it's a regular file
+//@ ```
+//@
+//@ Evaluates expression using the available primaries and returns corresponding value.
+function _test(options, path) {
+ if (!path)
+ common.error('no path given');
+
+ // hack - only works with unary primaries
+ options = common.parseOptions(options, {
+ 'b': 'block',
+ 'c': 'character',
+ 'd': 'directory',
+ 'e': 'exists',
+ 'f': 'file',
+ 'L': 'link',
+ 'p': 'pipe',
+ 'S': 'socket'
+ });
+
+ var canInterpret = false;
+ for (var key in options)
+ if (options[key] === true) {
+ canInterpret = true;
+ break;
+ }
+
+ if (!canInterpret)
+ common.error('could not interpret expression');
+
+ if (options.link) {
+ try {
+ return fs.lstatSync(path).isSymbolicLink();
+ } catch(e) {
+ return false;
+ }
+ }
+
+ if (!fs.existsSync(path))
+ return false;
+
+ if (options.exists)
+ return true;
+
+ var stats = fs.statSync(path);
+
+ if (options.block)
+ return stats.isBlockDevice();
+
+ if (options.character)
+ return stats.isCharacterDevice();
+
+ if (options.directory)
+ return stats.isDirectory();
+
+ if (options.file)
+ return stats.isFile();
+
+ if (options.pipe)
+ return stats.isFIFO();
+
+ if (options.socket)
+ return stats.isSocket();
+} // test
+module.exports = _test;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/to.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/to.js b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/to.js
new file mode 100644
index 0000000..f029999
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/to.js
@@ -0,0 +1,29 @@
+var common = require('./common');
+var fs = require('fs');
+var path = require('path');
+
+//@
+//@ ### 'string'.to(file)
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ cat('input.txt').to('output.txt');
+//@ ```
+//@
+//@ Analogous to the redirection operator `>` in Unix, but works with JavaScript strings (such as
+//@ those returned by `cat`, `grep`, etc). _Like Unix redirections, `to()` will overwrite any existing file!_
+function _to(options, file) {
+ if (!file)
+ common.error('wrong arguments');
+
+ if (!fs.existsSync( path.dirname(file) ))
+ common.error('no such file or directory: ' + path.dirname(file));
+
+ try {
+ fs.writeFileSync(file, this.toString(), 'utf8');
+ } catch(e) {
+ common.error('could not write to file (code '+e.code+'): '+file, true);
+ }
+}
+module.exports = _to;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/toEnd.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/toEnd.js b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/toEnd.js
new file mode 100644
index 0000000..f6d099d
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/toEnd.js
@@ -0,0 +1,29 @@
+var common = require('./common');
+var fs = require('fs');
+var path = require('path');
+
+//@
+//@ ### 'string'.toEnd(file)
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ cat('input.txt').toEnd('output.txt');
+//@ ```
+//@
+//@ Analogous to the redirect-and-append operator `>>` in Unix, but works with JavaScript strings (such as
+//@ those returned by `cat`, `grep`, etc).
+function _toEnd(options, file) {
+ if (!file)
+ common.error('wrong arguments');
+
+ if (!fs.existsSync( path.dirname(file) ))
+ common.error('no such file or directory: ' + path.dirname(file));
+
+ try {
+ fs.appendFileSync(file, this.toString(), 'utf8');
+ } catch(e) {
+ common.error('could not append to file (code '+e.code+'): '+file, true);
+ }
+}
+module.exports = _toEnd;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/which.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/which.js b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/which.js
new file mode 100644
index 0000000..fadb96c
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/shelljs/src/which.js
@@ -0,0 +1,79 @@
+var common = require('./common');
+var fs = require('fs');
+var path = require('path');
+
+// Cross-platform method for splitting environment PATH variables
+function splitPath(p) {
+ for (i=1;i<2;i++) {}
+
+ if (!p)
+ return [];
+
+ if (common.platform === 'win')
+ return p.split(';');
+ else
+ return p.split(':');
+}
+
+//@
+//@ ### which(command)
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ var nodeExec = which('node');
+//@ ```
+//@
+//@ Searches for `command` in the system's PATH. On Windows looks for `.exe`, `.cmd`, and `.bat` extensions.
+//@ Returns string containing the absolute path to the command.
+function _which(options, cmd) {
+ if (!cmd)
+ common.error('must specify command');
+
+ var pathEnv = process.env.path || process.env.Path || process.env.PATH,
+ pathArray = splitPath(pathEnv),
+ where = null;
+
+ // No relative/absolute paths provided?
+ if (cmd.search(/\//) === -1) {
+ // Search for command in PATH
+ pathArray.forEach(function(dir) {
+ if (where)
+ return; // already found it
+
+ var attempt = path.resolve(dir + '/' + cmd);
+ if (fs.existsSync(attempt)) {
+ where = attempt;
+ return;
+ }
+
+ if (common.platform === 'win') {
+ var baseAttempt = attempt;
+ attempt = baseAttempt + '.exe';
+ if (fs.existsSync(attempt)) {
+ where = attempt;
+ return;
+ }
+ attempt = baseAttempt + '.cmd';
+ if (fs.existsSync(attempt)) {
+ where = attempt;
+ return;
+ }
+ attempt = baseAttempt + '.bat';
+ if (fs.existsSync(attempt)) {
+ where = attempt;
+ return;
+ }
+ } // if 'win'
+ });
+ }
+
+ // Command not found anywhere?
+ if (!fs.existsSync(cmd) && !where)
+ return null;
+
+ where = where || path.resolve(cmd);
+
+ return common.ShellString(where);
+}
+module.exports = _which;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/tail/README.md
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/tail/README.md b/node_modules/ios-sim/node_modules/simctl/node_modules/tail/README.md
new file mode 100644
index 0000000..eec282c
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/tail/README.md
@@ -0,0 +1,72 @@
+#tail
+
+To install:
+
+```bash
+npm install tail
+```
+
+#Use:
+```javascript
+Tail = require('tail').Tail;
+
+tail = new Tail("fileToTail");
+
+tail.on("line", function(data) {
+ console.log(data);
+});
+
+tail.on("error", function(error) {
+ console.log('ERROR: ', error);
+});
+````
+
+Tail constructor accepts few parameters:
+
+```javascript
+
+var fileToTail = "/path/to/fileToTail.txt";
+var lineSeparator= "\n";
+var fromBeginning = false;
+var watchOptions = {}; \\ as per node fs.watch documentations
+
+new Tail(fileToTail, lineSeparator, watchOptions,fromBeginning)
+```
+
+* `fileToTail` is the name (inclusive of the path) of the file to tail
+* `lineSeparator` is the line separator token (default "\n")
+* `watchOptions` is the full set of options that can be passed to `fs.watch` as per node documentation (default: {})
+* `fromBeginning` force the tail of the file from the very beginning of it instead of from the first new line that will be appended(default: "\n")
+
+The only mandatory one is the first, i.e. the the file you want to tail.
+
+Tail emits two type of events:
+
+* line
+```
+function(data){}
+```
+* error
+```
+function(exception){}
+```
+
+If you simply want to stop the tail:
+
+```javascript
+tail.unwatch()
+```
+
+And to start watching again:
+```javascript
+tail.watch()
+```
+
+#Want to fork ?
+
+Tail is written in [CoffeeScript](http://jashkenas.github.com/coffee-script/).
+
+The Cakefile generates the javascript that is then published to npm.
+
+#License
+MIT. Please see License file for more details.
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/tail/package.json
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/tail/package.json b/node_modules/ios-sim/node_modules/simctl/node_modules/tail/package.json
new file mode 100644
index 0000000..95e9edd
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/tail/package.json
@@ -0,0 +1,57 @@
+{
+ "author": {
+ "name": "Luca Grulla"
+ },
+ "contributors": [
+ {
+ "name": "Luca Grulla"
+ },
+ {
+ "name": "Tom Hall"
+ },
+ {
+ "name": "Andy Kent"
+ }
+ ],
+ "name": "tail",
+ "description": "tail a file in node",
+ "version": "0.4.0",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/lucagrulla/node-tail.git"
+ },
+ "main": "tail",
+ "engines": {
+ "node": ">= 0.4.0"
+ },
+ "dependencies": {},
+ "devDependencies": {
+ "coffee-script": "1.7.1"
+ },
+ "bugs": {
+ "url": "https://github.com/lucagrulla/node-tail/issues"
+ },
+ "homepage": "https://github.com/lucagrulla/node-tail",
+ "_id": "tail@0.4.0",
+ "scripts": {},
+ "_shasum": "d29de72750cc99db1e053aff13c359ecfb713002",
+ "_from": "tail@>=0.4.0 <0.5.0",
+ "_npmVersion": "1.4.15",
+ "_npmUser": {
+ "name": "lucagrulla",
+ "email": "luca.grulla@gmail.com"
+ },
+ "maintainers": [
+ {
+ "name": "lucagrulla",
+ "email": "luca.grulla@gmail.com"
+ }
+ ],
+ "dist": {
+ "shasum": "d29de72750cc99db1e053aff13c359ecfb713002",
+ "tarball": "https://registry.npmjs.org/tail/-/tail-0.4.0.tgz"
+ },
+ "directories": {},
+ "_resolved": "http://registry.npmjs.org/tail/-/tail-0.4.0.tgz",
+ "readme": "ERROR: No README data found!"
+}
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/node_modules/tail/tail.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/node_modules/tail/tail.js b/node_modules/ios-sim/node_modules/simctl/node_modules/tail/tail.js
new file mode 100644
index 0000000..061ceab
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/node_modules/tail/tail.js
@@ -0,0 +1,147 @@
+// Generated by CoffeeScript 1.6.2
+var Tail, environment, events, fs,
+ __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
+ __hasProp = {}.hasOwnProperty,
+ __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
+
+events = require("events");
+
+fs = require('fs');
+
+environment = process.env['NODE_ENV'] || 'development';
+
+Tail = (function(_super) {
+ __extends(Tail, _super);
+
+ Tail.prototype.readBlock = function() {
+ var block, stream,
+ _this = this;
+
+ if (this.queue.length >= 1) {
+ block = this.queue.shift();
+ if (block.end > block.start) {
+ stream = fs.createReadStream(this.filename, {
+ start: block.start,
+ end: block.end - 1,
+ encoding: "utf-8"
+ });
+ stream.on('error', function(error) {
+ console.log("Tail error:" + error);
+ return _this.emit('error', error);
+ });
+ stream.on('end', function() {
+ if (_this.queue.length >= 1) {
+ return _this.internalDispatcher.emit("next");
+ }
+ });
+ return stream.on('data', function(data) {
+ var chunk, parts, _i, _len, _results;
+
+ _this.buffer += data;
+ parts = _this.buffer.split(_this.separator);
+ _this.buffer = parts.pop();
+ _results = [];
+ for (_i = 0, _len = parts.length; _i < _len; _i++) {
+ chunk = parts[_i];
+ _results.push(_this.emit("line", chunk));
+ }
+ return _results;
+ });
+ }
+ }
+ };
+
+ function Tail(filename, separator, fsWatchOptions, frombeginning) {
+ var stats,
+ _this = this;
+
+ this.filename = filename;
+ this.separator = separator != null ? separator : '\n';
+ this.fsWatchOptions = fsWatchOptions != null ? fsWatchOptions : {};
+ this.frombeginning = frombeginning != null ? frombeginning : false;
+ this.readBlock = __bind(this.readBlock, this);
+ this.buffer = '';
+ this.internalDispatcher = new events.EventEmitter();
+ this.queue = [];
+ this.isWatching = false;
+ stats = fs.statSync(this.filename);
+ this.internalDispatcher.on('next', function() {
+ return _this.readBlock();
+ });
+ this.pos = this.frombeginning ? 0 : stats.size;
+ this.watch();
+ }
+
+ Tail.prototype.watch = function() {
+ var _this = this;
+
+ if (this.isWatching) {
+ return;
+ }
+ this.isWatching = true;
+ if (fs.watch) {
+ return this.watcher = fs.watch(this.filename, this.fsWatchOptions, function(e) {
+ return _this.watchEvent(e);
+ });
+ } else {
+ return fs.watchFile(this.filename, this.fsWatchOptions, function(curr, prev) {
+ return _this.watchFileEvent(curr, prev);
+ });
+ }
+ };
+
+ Tail.prototype.watchEvent = function(e) {
+ var stats,
+ _this = this;
+
+ if (e === 'change') {
+ stats = fs.statSync(this.filename);
+ if (stats.size < this.pos) {
+ this.pos = stats.size;
+ }
+ if (stats.size > this.pos) {
+ this.queue.push({
+ start: this.pos,
+ end: stats.size
+ });
+ this.pos = stats.size;
+ if (this.queue.length === 1) {
+ return this.internalDispatcher.emit("next");
+ }
+ }
+ } else if (e === 'rename') {
+ this.unwatch();
+ return setTimeout((function() {
+ return _this.watch();
+ }), 1000);
+ }
+ };
+
+ Tail.prototype.watchFileEvent = function(curr, prev) {
+ if (curr.size > prev.size) {
+ this.queue.push({
+ start: prev.size,
+ end: curr.size
+ });
+ if (this.queue.length === 1) {
+ return this.internalDispatcher.emit("next");
+ }
+ }
+ };
+
+ Tail.prototype.unwatch = function() {
+ if (fs.watch && this.watcher) {
+ this.watcher.close();
+ this.pos = 0;
+ } else {
+ fs.unwatchFile(this.filename);
+ }
+ this.isWatching = false;
+ return this.queue = [];
+ };
+
+ return Tail;
+
+})(events.EventEmitter);
+
+exports.Tail = Tail;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/package.json
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/package.json b/node_modules/ios-sim/node_modules/simctl/package.json
new file mode 100644
index 0000000..82b5432
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/package.json
@@ -0,0 +1,54 @@
+{
+ "name": "simctl",
+ "version": "0.0.9",
+ "description": "library for Xcode simctl utility on OS X",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/phonegap/simctl.git"
+ },
+ "main": "simctl.js",
+ "dependencies": {
+ "shelljs": "^0.2.6",
+ "tail": "^0.4.0"
+ },
+ "keywords": [
+ "simctl",
+ "iOS Simulator"
+ ],
+ "author": {
+ "name": "Shazron Abdullah"
+ },
+ "license": "MIT",
+ "gitHead": "34426c719130a73b83af65f50a11a46267a5ad0b",
+ "bugs": {
+ "url": "https://github.com/phonegap/simctl/issues"
+ },
+ "homepage": "https://github.com/phonegap/simctl#readme",
+ "_id": "simctl@0.0.9",
+ "scripts": {},
+ "_shasum": "cd36c9d3a1ae1709645f97e0ce205cc3cac6fd1b",
+ "_from": "simctl@>=0.0.9 <0.0.10",
+ "_npmVersion": "2.11.3",
+ "_nodeVersion": "0.12.7",
+ "_npmUser": {
+ "name": "shazron",
+ "email": "shazron@gmail.com"
+ },
+ "dist": {
+ "shasum": "cd36c9d3a1ae1709645f97e0ce205cc3cac6fd1b",
+ "tarball": "https://registry.npmjs.org/simctl/-/simctl-0.0.9.tgz"
+ },
+ "maintainers": [
+ {
+ "name": "shazron",
+ "email": "shazron@gmail.com"
+ }
+ ],
+ "_npmOperationalInternal": {
+ "host": "packages-13-west.internal.npmjs.com",
+ "tmp": "tmp/simctl-0.0.9.tgz_1458354134802_0.09800405637361109"
+ },
+ "directories": {},
+ "_resolved": "http://registry.npmjs.org/simctl/-/simctl-0.0.9.tgz",
+ "readme": "ERROR: No README data found!"
+}
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/node_modules/simctl/simctl.js
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/node_modules/simctl/simctl.js b/node_modules/ios-sim/node_modules/simctl/simctl.js
new file mode 100644
index 0000000..91512ed
--- /dev/null
+++ b/node_modules/ios-sim/node_modules/simctl/simctl.js
@@ -0,0 +1,195 @@
+/*
+The MIT License (MIT)
+
+Copyright (c) 2014 Shazron Abdullah.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
+
+var shell = require('shelljs'),
+ path = require('path'),
+ util = require('util'),
+ Tail = require('tail').Tail,
+ SimCtlExtensions = require('./lib/simctl-extensions'),
+ SimCtlListParser = require('./lib/simctl-list-parser');
+
+
+exports = module.exports = {
+
+ set noxpc(b) {
+ this._noxpc = b;
+ },
+
+ get noxpc() {
+ return this._noxpc;
+ },
+
+ extensions : SimCtlExtensions,
+
+ check_prerequisites : function() {
+ var command = util.format('xcrun simctl help');
+ var obj = shell.exec(command, {silent: true});
+
+ if (obj.code !== 0) {
+ obj.output = 'simctl was not found.\n';
+ obj.output += 'Check that you have Xcode 6.x installed:\n';
+ obj.output += '\txcodebuild --version';
+ obj.output += 'Check that you have Xcode 6.x selected:\n';
+ obj.output += '\txcode-select --print-path';
+ }
+
+ return obj;
+ },
+
+ create : function(name, device_type_id, runtime_id) {
+ var command = util.format('xcrun simctl create "%s" "%s" "%s"', name, device_type_id, runtime_id);
+ return shell.exec(command);
+ },
+
+ del : function(device) {
+ var command = util.format('xcrun simctl delete "%s"', device);
+ return shell.exec(command);
+ },
+
+ erase : function(device) {
+ var command = util.format('xcrun simctl erase "%s"', device);
+ return shell.exec(command);
+ },
+
+ boot : function(device) {
+ var command = util.format('xcrun simctl boot "%s"', device);
+ return shell.exec(command);
+ },
+
+ shutdown : function(device) {
+ var command = util.format('xcrun simctl shutdown "%s"', device);
+ return shell.exec(command);
+ },
+
+ rename : function(device, name) {
+ var command = util.format('xcrun simctl rename "%s" "%s"', device, name);
+ return shell.exec(command);
+ },
+
+ getenv : function(device, variable_name) {
+ var command = util.format('xcrun simctl getenv "%s" "%s"', device, variable_name);
+ return shell.exec(command);
+ },
+
+ openurl : function(device, url) {
+ var command = util.format('xcrun simctl openurl "%s" "%s"', device, url);
+ return shell.exec(command);
+ },
+
+ addphoto : function(device, path) {
+ var command = util.format('xcrun simctl addphoto "%s" "%s"', device, path);
+ return shell.exec(command);
+ },
+
+ install : function(device, path) {
+ var command = util.format('xcrun simctl install "%s" "%s"', device, path);
+ return shell.exec(command);
+ },
+
+ uninstall : function(device, app_identifier) {
+ var command = util.format('xcrun simctl uninstall "%s" "%s"', device, app_identifier);
+ return shell.exec(command);
+ },
+
+ launch : function(wait_for_debugger, device, app_identifier, argv) {
+ var wait_flag = '';
+ if (wait_for_debugger) {
+ wait_flag = '--wait-for-debugger';
+ }
+
+ var argv_expanded = '';
+ if (argv.length > 0) {
+ argv_expanded = argv.map(function(arg){
+ return "'" + arg + "'";
+ }).join(" ");
+ }
+
+ var command = util.format('xcrun simctl launch %s "%s" "%s" %s', wait_flag, device, app_identifier, argv_expanded);
+ return shell.exec(command);
+ },
+
+ spawn : function(wait_for_debugger, arch, device, path_to_executable, argv) {
+ var wait_flag = '';
+ if (wait_for_debugger) {
+ wait_flag = '--wait-for-debugger';
+ }
+
+ var arch_flag = '';
+ if (arch) {
+ arch_flag = util.format('--arch="%s"', arch);
+ }
+
+ var argv_expanded = '';
+ if (argv.length > 0) {
+ argv_expanded = argv.map(function(arg){
+ return "'" + arg + "'";
+ }).join(" ");
+ }
+
+ var command = util.format('xcrun simctl spawn %s %s "%s" "%s" %s', wait_flag, arch_flag, device, path_to_executable, argv_expanded);
+ return shell.exec(command);
+ },
+
+ list : function(options) {
+ var sublist = '';
+ options = options || {};
+
+ if (options.devices) {
+ sublist = 'devices';
+ } else if (options.devicetypes) {
+ sublist = 'devicetypes';
+ } else if (options.runtimes) {
+ sublist = 'runtimes';
+ }
+
+ var command = util.format('xcrun simctl list %s', sublist);
+ var obj = shell.exec(command, { silent: options.silent });
+
+ if (obj.code === 0) {
+ try {
+ var parser = new SimCtlListParser();
+ obj.json = parser.parse(obj.output);
+ } catch(err) {
+ console.error(err.stack);
+ }
+ }
+
+ return obj;
+ },
+
+ notify_post : function(device, notification_name) {
+ var command = util.format('xcrun simctl notify_post "%s" "%s"', device, notification_name);
+ return shell.exec(command);
+ },
+
+ icloud_sync : function(device) {
+ var command = util.format('xcrun simctl icloud_sync "%s"', device);
+ return shell.exec(command);
+ },
+
+ help : function(subcommand) {
+ var command = util.format('xcrun simctl help "%s"', subcommand);
+ return shell.exec(command);
+ }
+};
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/ios-sim/package.json
----------------------------------------------------------------------
diff --git a/node_modules/ios-sim/package.json b/node_modules/ios-sim/package.json
index 60fb6cd..32da874 100644
--- a/node_modules/ios-sim/package.json
+++ b/node_modules/ios-sim/package.json
@@ -1,108 +1,81 @@
{
- "_args": [
- [
- "ios-sim@^5.0.7",
- "/Users/steveng/repo/cordova/cordova-ios"
- ]
- ],
- "_from": "ios-sim@>=5.0.7 <6.0.0",
- "_id": "ios-sim@5.0.8",
- "_inCache": true,
- "_installable": true,
- "_location": "/ios-sim",
- "_nodeVersion": "0.12.7",
- "_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/ios-sim-5.0.8.tgz_1458757739978_0.3562360794749111"
- },
- "_npmUser": {
- "email": "shazron@gmail.com",
- "name": "shazron"
- },
- "_npmVersion": "2.11.3",
- "_phantomChildren": {
- "abbrev": "1.0.9"
+ "name": "ios-sim",
+ "version": "5.0.8",
+ "preferGlobal": "true",
+ "description": "launch iOS apps into the iOS Simulator from the command line (Xcode 6.0+)",
+ "main": "ios-sim.js",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/phonegap/ios-sim.git"
},
- "_requested": {
- "name": "ios-sim",
- "raw": "ios-sim@^5.0.7",
- "rawSpec": "^5.0.7",
- "scope": null,
- "spec": ">=5.0.7 <6.0.0",
- "type": "range"
+ "engines": {
+ "node": ">=0.10.0"
},
- "_requiredBy": [
- "/"
+ "keywords": [
+ "ios-sim",
+ "iOS Simulator"
],
- "_resolved": "http://registry.npmjs.org/ios-sim/-/ios-sim-5.0.8.tgz",
- "_shasum": "20520bbcfdadb0b0cb08690b90969b6e60a9a796",
- "_shrinkwrap": null,
- "_spec": "ios-sim@^5.0.7",
- "_where": "/Users/steveng/repo/cordova/cordova-ios",
- "author": {
- "name": "Shazron Abdullah"
- },
"bin": {
"ios-sim": "./bin/ios-sim"
},
"bugs": {
"url": "https://github.com/phonegap/ios-sim/issues"
},
+ "author": {
+ "name": "Shazron Abdullah"
+ },
+ "license": "MIT",
"dependencies": {
- "bplist-parser": "^0.0.6",
- "nopt": "1.0.9",
"plist": "^1.2.0",
- "simctl": "^0.0.9"
+ "simctl": "^0.0.9",
+ "nopt": "1.0.9",
+ "bplist-parser": "^0.0.6"
},
- "description": "launch iOS apps into the iOS Simulator from the command line (Xcode 6.0+)",
"devDependencies": {
"jshint": "^2.9.1"
},
- "directories": {},
+ "scripts": {
+ "test": "npm run jshint",
+ "jshint": "jshint src ./ios-sim.js"
+ },
+ "gitHead": "f0fc8160c262fe86ccaf8eeef1ff4ef22eb19b5c",
+ "homepage": "https://github.com/phonegap/ios-sim#readme",
+ "_id": "ios-sim@5.0.8",
+ "_shasum": "20520bbcfdadb0b0cb08690b90969b6e60a9a796",
+ "_from": "ios-sim@>=5.0.7 <6.0.0",
+ "_npmVersion": "2.11.3",
+ "_nodeVersion": "0.12.7",
+ "_npmUser": {
+ "name": "shazron",
+ "email": "shazron@gmail.com"
+ },
"dist": {
"shasum": "20520bbcfdadb0b0cb08690b90969b6e60a9a796",
"tarball": "https://registry.npmjs.org/ios-sim/-/ios-sim-5.0.8.tgz"
},
- "engines": {
- "node": ">=0.10.0"
- },
- "gitHead": "f0fc8160c262fe86ccaf8eeef1ff4ef22eb19b5c",
- "homepage": "https://github.com/phonegap/ios-sim#readme",
- "keywords": [
- "ios-sim",
- "iOS Simulator"
- ],
- "license": "MIT",
- "main": "ios-sim.js",
"maintainers": [
{
- "email": "simon.macdonald@gmail.com",
- "name": "macdonst"
+ "name": "macdonst",
+ "email": "simon.macdonald@gmail.com"
},
{
- "email": "purplecabbage@gmail.com",
- "name": "purplecabbage"
+ "name": "purplecabbage",
+ "email": "purplecabbage@gmail.com"
},
{
- "email": "shazron@gmail.com",
- "name": "shazron"
+ "name": "shazron",
+ "email": "shazron@gmail.com"
},
{
- "email": "stevengill97@gmail.com",
- "name": "stevegill"
+ "name": "stevegill",
+ "email": "stevengill97@gmail.com"
}
],
- "name": "ios-sim",
- "optionalDependencies": {},
- "preferGlobal": "true",
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/phonegap/ios-sim.git"
- },
- "scripts": {
- "jshint": "jshint src ./ios-sim.js",
- "test": "npm run jshint"
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/ios-sim-5.0.8.tgz_1458757739978_0.3562360794749111"
},
- "version": "5.0.8"
+ "directories": {},
+ "_resolved": "http://registry.npmjs.org/ios-sim/-/ios-sim-5.0.8.tgz",
+ "readme": "ERROR: No README data found!"
}
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/lodash/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/lodash/LICENSE b/node_modules/lodash/LICENSE
deleted file mode 100644
index 9cd87e5..0000000
--- a/node_modules/lodash/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
-Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/lodash/README.md
----------------------------------------------------------------------
diff --git a/node_modules/lodash/README.md b/node_modules/lodash/README.md
deleted file mode 100644
index fd98e5c..0000000
--- a/node_modules/lodash/README.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# lodash v3.10.1
-
-The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash](https://lodash.com/) exported as [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) modules.
-
-Generated using [lodash-cli](https://www.npmjs.com/package/lodash-cli):
-```bash
-$ lodash modularize modern exports=node -o ./
-$ lodash modern -d -o ./index.js
-```
-
-## Installation
-
-Using npm:
-
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash
-```
-
-In Node.js/io.js:
-
-```js
-// load the modern build
-var _ = require('lodash');
-// or a method category
-var array = require('lodash/array');
-// or a method (great for smaller builds with browserify/webpack)
-var chunk = require('lodash/array/chunk');
-```
-
-See the [package source](https://github.com/lodash/lodash/tree/3.10.1-npm) for more details.
-
-**Note:**<br>
-Don\u2019t assign values to the [special variable](http://nodejs.org/api/repl.html#repl_repl_features) `_` when in the REPL.<br>
-Install [n_](https://www.npmjs.com/package/n_) for a REPL that includes lodash by default.
-
-## Module formats
-
-lodash is also available in a variety of other builds & module formats.
-
- * npm packages for [modern](https://www.npmjs.com/package/lodash), [compatibility](https://www.npmjs.com/package/lodash-compat), & [per method](https://www.npmjs.com/browse/keyword/lodash-modularized) builds
- * AMD modules for [modern](https://github.com/lodash/lodash/tree/3.10.1-amd) & [compatibility](https://github.com/lodash/lodash-compat/tree/3.10.1-amd) builds
- * ES modules for the [modern](https://github.com/lodash/lodash/tree/3.10.1-es) build
-
-## Further Reading
-
- * [API Documentation](https://lodash.com/docs)
- * [Build Differences](https://github.com/lodash/lodash/wiki/Build-Differences)
- * [Changelog](https://github.com/lodash/lodash/wiki/Changelog)
- * [Roadmap](https://github.com/lodash/lodash/wiki/Roadmap)
- * [More Resources](https://github.com/lodash/lodash/wiki/Resources)
-
-## Features
-
- * ~100% [code coverage](https://coveralls.io/r/lodash)
- * Follows [semantic versioning](http://semver.org/) for releases
- * [Lazily evaluated](http://filimanjaro.com/blog/2014/introducing-lazy-evaluation/) chaining
- * [_(\u2026)](https://lodash.com/docs#_) supports implicit chaining
- * [_.ary](https://lodash.com/docs#ary) & [_.rearg](https://lodash.com/docs#rearg) to change function argument limits & order
- * [_.at](https://lodash.com/docs#at) for cherry-picking collection values
- * [_.attempt](https://lodash.com/docs#attempt) to execute functions which may error without a try-catch
- * [_.before](https://lodash.com/docs#before) to complement [_.after](https://lodash.com/docs#after)
- * [_.bindKey](https://lodash.com/docs#bindKey) for binding [*\u201clazy\u201d*](http://michaux.ca/articles/lazy-function-definition-pattern) defined methods
- * [_.chunk](https://lodash.com/docs#chunk) for splitting an array into chunks of a given size
- * [_.clone](https://lodash.com/docs#clone) supports shallow cloning of `Date` & `RegExp` objects
- * [_.cloneDeep](https://lodash.com/docs#cloneDeep) for deep cloning arrays & objects
- * [_.curry](https://lodash.com/docs#curry) & [_.curryRight](https://lodash.com/docs#curryRight) for creating [curried](http://hughfdjackson.com/javascript/why-curry-helps/) functions
- * [_.debounce](https://lodash.com/docs#debounce) & [_.throttle](https://lodash.com/docs#throttle) are cancelable & accept options for more control
- * [_.defaultsDeep](https://lodash.com/docs#defaultsDeep) for recursively assigning default properties
- * [_.fill](https://lodash.com/docs#fill) to fill arrays with values
- * [_.findKey](https://lodash.com/docs#findKey) for finding keys
- * [_.flow](https://lodash.com/docs#flow) to complement [_.flowRight](https://lodash.com/docs#flowRight) (a.k.a `_.compose`)
- * [_.forEach](https://lodash.com/docs#forEach) supports exiting early
- * [_.forIn](https://lodash.com/docs#forIn) for iterating all enumerable properties
- * [_.forOwn](https://lodash.com/docs#forOwn) for iterating own properties
- * [_.get](https://lodash.com/docs#get) & [_.set](https://lodash.com/docs#set) for deep property getting & setting
- * [_.gt](https://lodash.com/docs#gt), [_.gte](https://lodash.com/docs#gte), [_.lt](https://lodash.com/docs#lt), & [_.lte](https://lodash.com/docs#lte) relational methods
- * [_.inRange](https://lodash.com/docs#inRange) for checking whether a number is within a given range
- * [_.isNative](https://lodash.com/docs#isNative) to check for native functions
- * [_.isPlainObject](https://lodash.com/docs#isPlainObject) & [_.toPlainObject](https://lodash.com/docs#toPlainObject) to check for & convert to `Object` objects
- * [_.isTypedArray](https://lodash.com/docs#isTypedArray) to check for typed arrays
- * [_.mapKeys](https://lodash.com/docs#mapKeys) for mapping keys to an object
- * [_.matches](https://lodash.com/docs#matches) supports deep object comparisons
- * [_.matchesProperty](https://lodash.com/docs#matchesProperty) to complement [_.matches](https://lodash.com/docs#matches) & [_.property](https://lodash.com/docs#property)
- * [_.merge](https://lodash.com/docs#merge) for a deep [_.extend](https://lodash.com/docs#extend)
- * [_.method](https://lodash.com/docs#method) & [_.methodOf](https://lodash.com/docs#methodOf) to create functions that invoke methods
- * [_.modArgs](https://lodash.com/docs#modArgs) for more advanced functional composition
- * [_.parseInt](https://lodash.com/docs#parseInt) for consistent cross-environment behavior
- * [_.pull](https://lodash.com/docs#pull), [_.pullAt](https://lodash.com/docs#pullAt), & [_.remove](https://lodash.com/docs#remove) for mutating arrays
- * [_.random](https://lodash.com/docs#random) supports returning floating-point numbers
- * [_.restParam](https://lodash.com/docs#restParam) & [_.spread](https://lodash.com/docs#spread) for applying rest parameters & spreading arguments to functions
- * [_.runInContext](https://lodash.com/docs#runInContext) for collisionless mixins & easier mocking
- * [_.slice](https://lodash.com/docs#slice) for creating subsets of array-like values
- * [_.sortByAll](https://lodash.com/docs#sortByAll) & [_.sortByOrder](https://lodash.com/docs#sortByOrder) for sorting by multiple properties & orders
- * [_.support](https://lodash.com/docs#support) for flagging environment features
- * [_.template](https://lodash.com/docs#template) supports [*\u201cimports\u201d*](https://lodash.com/docs#templateSettings-imports) options & [ES template delimiters](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-template-literal-lexical-components)
- * [_.transform](https://lodash.com/docs#transform) as a powerful alternative to [_.reduce](https://lodash.com/docs#reduce) for transforming objects
- * [_.unzipWith](https://lodash.com/docs#unzipWith) & [_.zipWith](https://lodash.com/docs#zipWith) to specify how grouped values should be combined
- * [_.valuesIn](https://lodash.com/docs#valuesIn) for getting values of all enumerable properties
- * [_.xor](https://lodash.com/docs#xor) to complement [_.difference](https://lodash.com/docs#difference), [_.intersection](https://lodash.com/docs#intersection), & [_.union](https://lodash.com/docs#union)
- * [_.add](https://lodash.com/docs#add), [_.round](https://lodash.com/docs#round), [_.sum](https://lodash.com/docs#sum), &
- [more](https://lodash.com/docs "_.ceil & _.floor") math methods
- * [_.bind](https://lodash.com/docs#bind), [_.curry](https://lodash.com/docs#curry), [_.partial](https://lodash.com/docs#partial), &
- [more](https://lodash.com/docs "_.bindKey, _.curryRight, _.partialRight") support customizable argument placeholders
- * [_.capitalize](https://lodash.com/docs#capitalize), [_.trim](https://lodash.com/docs#trim), &
- [more](https://lodash.com/docs "_.camelCase, _.deburr, _.endsWith, _.escapeRegExp, _.kebabCase, _.pad, _.padLeft, _.padRight, _.repeat, _.snakeCase, _.startCase, _.startsWith, _.trimLeft, _.trimRight, _.trunc, _.words") string methods
- * [_.clone](https://lodash.com/docs#clone), [_.isEqual](https://lodash.com/docs#isEqual), &
- [more](https://lodash.com/docs "_.assign, _.cloneDeep, _.merge") accept customizer callbacks
- * [_.dropWhile](https://lodash.com/docs#dropWhile), [_.takeWhile](https://lodash.com/docs#takeWhile), &
- [more](https://lodash.com/docs "_.drop, _.dropRight, _.dropRightWhile, _.take, _.takeRight, _.takeRightWhile") to complement [_.first](https://lodash.com/docs#first), [_.initial](https://lodash.com/docs#initial), [_.last](https://lodash.com/docs#last), & [_.rest](https://lodash.com/docs#rest)
- * [_.findLast](https://lodash.com/docs#findLast), [_.findLastKey](https://lodash.com/docs#findLastKey), &
- [more](https://lodash.com/docs "_.curryRight, _.dropRight, _.dropRightWhile, _.flowRight, _.forEachRight, _.forInRight, _.forOwnRight, _.padRight, partialRight, _.takeRight, _.trimRight, _.takeRightWhile") right-associative methods
- * [_.includes](https://lodash.com/docs#includes), [_.toArray](https://lodash.com/docs#toArray), &
- [more](https://lodash.com/docs "_.at, _.countBy, _.every, _.filter, _.find, _.findLast, _.findWhere, _.forEach, _.forEachRight, _.groupBy, _.indexBy, _.invoke, _.map, _.max, _.min, _.partition, _.pluck, _.reduce, _.reduceRight, _.reject, _.shuffle, _.size, _.some, _.sortBy, _.sortByAll, _.sortByOrder, _.sum, _.where") accept strings
- * [_#commit](https://lodash.com/docs#prototype-commit) & [_#plant](https://lodash.com/docs#prototype-plant) for working with chain sequences
- * [_#thru](https://lodash.com/docs#thru) to pass values thru a chain sequence
-
-## Support
-
-Tested in Chrome 43-44, Firefox 38-39, IE 6-11, MS Edge, Safari 5-8, ChakraNode 0.12.2, io.js 2.5.0, Node.js 0.8.28, 0.10.40, & 0.12.7, PhantomJS 1.9.8, RingoJS 0.11, & Rhino 1.7.6.
-Automated [browser](https://saucelabs.com/u/lodash) & [CI](https://travis-ci.org/lodash/lodash/) test runs are available. Special thanks to [Sauce Labs](https://saucelabs.com/) for providing automated browser testing.
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/lodash/array.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/array.js b/node_modules/lodash/array.js
deleted file mode 100644
index e5121fa..0000000
--- a/node_modules/lodash/array.js
+++ /dev/null
@@ -1,44 +0,0 @@
-module.exports = {
- 'chunk': require('./array/chunk'),
- 'compact': require('./array/compact'),
- 'difference': require('./array/difference'),
- 'drop': require('./array/drop'),
- 'dropRight': require('./array/dropRight'),
- 'dropRightWhile': require('./array/dropRightWhile'),
- 'dropWhile': require('./array/dropWhile'),
- 'fill': require('./array/fill'),
- 'findIndex': require('./array/findIndex'),
- 'findLastIndex': require('./array/findLastIndex'),
- 'first': require('./array/first'),
- 'flatten': require('./array/flatten'),
- 'flattenDeep': require('./array/flattenDeep'),
- 'head': require('./array/head'),
- 'indexOf': require('./array/indexOf'),
- 'initial': require('./array/initial'),
- 'intersection': require('./array/intersection'),
- 'last': require('./array/last'),
- 'lastIndexOf': require('./array/lastIndexOf'),
- 'object': require('./array/object'),
- 'pull': require('./array/pull'),
- 'pullAt': require('./array/pullAt'),
- 'remove': require('./array/remove'),
- 'rest': require('./array/rest'),
- 'slice': require('./array/slice'),
- 'sortedIndex': require('./array/sortedIndex'),
- 'sortedLastIndex': require('./array/sortedLastIndex'),
- 'tail': require('./array/tail'),
- 'take': require('./array/take'),
- 'takeRight': require('./array/takeRight'),
- 'takeRightWhile': require('./array/takeRightWhile'),
- 'takeWhile': require('./array/takeWhile'),
- 'union': require('./array/union'),
- 'uniq': require('./array/uniq'),
- 'unique': require('./array/unique'),
- 'unzip': require('./array/unzip'),
- 'unzipWith': require('./array/unzipWith'),
- 'without': require('./array/without'),
- 'xor': require('./array/xor'),
- 'zip': require('./array/zip'),
- 'zipObject': require('./array/zipObject'),
- 'zipWith': require('./array/zipWith')
-};
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/lodash/array/chunk.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/array/chunk.js b/node_modules/lodash/array/chunk.js
deleted file mode 100644
index c8be1fb..0000000
--- a/node_modules/lodash/array/chunk.js
+++ /dev/null
@@ -1,46 +0,0 @@
-var baseSlice = require('../internal/baseSlice'),
- isIterateeCall = require('../internal/isIterateeCall');
-
-/* Native method references for those with the same name as other `lodash` methods. */
-var nativeCeil = Math.ceil,
- nativeFloor = Math.floor,
- nativeMax = Math.max;
-
-/**
- * Creates an array of elements split into groups the length of `size`.
- * If `collection` can't be split evenly, the final chunk will be the remaining
- * elements.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to process.
- * @param {number} [size=1] The length of each chunk.
- * @param- {Object} [guard] Enables use as a callback for functions like `_.map`.
- * @returns {Array} Returns the new array containing chunks.
- * @example
- *
- * _.chunk(['a', 'b', 'c', 'd'], 2);
- * // => [['a', 'b'], ['c', 'd']]
- *
- * _.chunk(['a', 'b', 'c', 'd'], 3);
- * // => [['a', 'b', 'c'], ['d']]
- */
-function chunk(array, size, guard) {
- if (guard ? isIterateeCall(array, size, guard) : size == null) {
- size = 1;
- } else {
- size = nativeMax(nativeFloor(size) || 1, 1);
- }
- var index = 0,
- length = array ? array.length : 0,
- resIndex = -1,
- result = Array(nativeCeil(length / size));
-
- while (index < length) {
- result[++resIndex] = baseSlice(array, index, (index += size));
- }
- return result;
-}
-
-module.exports = chunk;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/lodash/array/compact.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/array/compact.js b/node_modules/lodash/array/compact.js
deleted file mode 100644
index 1dc1c55..0000000
--- a/node_modules/lodash/array/compact.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * Creates an array with all falsey values removed. The values `false`, `null`,
- * `0`, `""`, `undefined`, and `NaN` are falsey.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to compact.
- * @returns {Array} Returns the new array of filtered values.
- * @example
- *
- * _.compact([0, 1, false, 2, '', 3]);
- * // => [1, 2, 3]
- */
-function compact(array) {
- var index = -1,
- length = array ? array.length : 0,
- resIndex = -1,
- result = [];
-
- while (++index < length) {
- var value = array[index];
- if (value) {
- result[++resIndex] = value;
- }
- }
- return result;
-}
-
-module.exports = compact;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/lodash/array/difference.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/array/difference.js b/node_modules/lodash/array/difference.js
deleted file mode 100644
index 128932a..0000000
--- a/node_modules/lodash/array/difference.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var baseDifference = require('../internal/baseDifference'),
- baseFlatten = require('../internal/baseFlatten'),
- isArrayLike = require('../internal/isArrayLike'),
- isObjectLike = require('../internal/isObjectLike'),
- restParam = require('../function/restParam');
-
-/**
- * Creates an array of unique `array` values not included in the other
- * provided arrays using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * for equality comparisons.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to inspect.
- * @param {...Array} [values] The arrays of values to exclude.
- * @returns {Array} Returns the new array of filtered values.
- * @example
- *
- * _.difference([1, 2, 3], [4, 2]);
- * // => [1, 3]
- */
-var difference = restParam(function(array, values) {
- return (isObjectLike(array) && isArrayLike(array))
- ? baseDifference(array, baseFlatten(values, false, true))
- : [];
-});
-
-module.exports = difference;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/lodash/array/drop.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/array/drop.js b/node_modules/lodash/array/drop.js
deleted file mode 100644
index 039a0b5..0000000
--- a/node_modules/lodash/array/drop.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var baseSlice = require('../internal/baseSlice'),
- isIterateeCall = require('../internal/isIterateeCall');
-
-/**
- * Creates a slice of `array` with `n` elements dropped from the beginning.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to query.
- * @param {number} [n=1] The number of elements to drop.
- * @param- {Object} [guard] Enables use as a callback for functions like `_.map`.
- * @returns {Array} Returns the slice of `array`.
- * @example
- *
- * _.drop([1, 2, 3]);
- * // => [2, 3]
- *
- * _.drop([1, 2, 3], 2);
- * // => [3]
- *
- * _.drop([1, 2, 3], 5);
- * // => []
- *
- * _.drop([1, 2, 3], 0);
- * // => [1, 2, 3]
- */
-function drop(array, n, guard) {
- var length = array ? array.length : 0;
- if (!length) {
- return [];
- }
- if (guard ? isIterateeCall(array, n, guard) : n == null) {
- n = 1;
- }
- return baseSlice(array, n < 0 ? 0 : n);
-}
-
-module.exports = drop;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/lodash/array/dropRight.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/array/dropRight.js b/node_modules/lodash/array/dropRight.js
deleted file mode 100644
index 14b5eb6..0000000
--- a/node_modules/lodash/array/dropRight.js
+++ /dev/null
@@ -1,40 +0,0 @@
-var baseSlice = require('../internal/baseSlice'),
- isIterateeCall = require('../internal/isIterateeCall');
-
-/**
- * Creates a slice of `array` with `n` elements dropped from the end.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to query.
- * @param {number} [n=1] The number of elements to drop.
- * @param- {Object} [guard] Enables use as a callback for functions like `_.map`.
- * @returns {Array} Returns the slice of `array`.
- * @example
- *
- * _.dropRight([1, 2, 3]);
- * // => [1, 2]
- *
- * _.dropRight([1, 2, 3], 2);
- * // => [1]
- *
- * _.dropRight([1, 2, 3], 5);
- * // => []
- *
- * _.dropRight([1, 2, 3], 0);
- * // => [1, 2, 3]
- */
-function dropRight(array, n, guard) {
- var length = array ? array.length : 0;
- if (!length) {
- return [];
- }
- if (guard ? isIterateeCall(array, n, guard) : n == null) {
- n = 1;
- }
- n = length - (+n || 0);
- return baseSlice(array, 0, n < 0 ? 0 : n);
-}
-
-module.exports = dropRight;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/lodash/array/dropRightWhile.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/array/dropRightWhile.js b/node_modules/lodash/array/dropRightWhile.js
deleted file mode 100644
index be158bd..0000000
--- a/node_modules/lodash/array/dropRightWhile.js
+++ /dev/null
@@ -1,59 +0,0 @@
-var baseCallback = require('../internal/baseCallback'),
- baseWhile = require('../internal/baseWhile');
-
-/**
- * Creates a slice of `array` excluding elements dropped from the end.
- * Elements are dropped until `predicate` returns falsey. The predicate is
- * bound to `thisArg` and invoked with three arguments: (value, index, array).
- *
- * If a property name is provided for `predicate` the created `_.property`
- * style callback returns the property value of the given element.
- *
- * If a value is also provided for `thisArg` the created `_.matchesProperty`
- * style callback returns `true` for elements that have a matching property
- * value, else `false`.
- *
- * If an object is provided for `predicate` the created `_.matches` style
- * callback returns `true` for elements that match the properties of the given
- * object, else `false`.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to query.
- * @param {Function|Object|string} [predicate=_.identity] The function invoked
- * per iteration.
- * @param {*} [thisArg] The `this` binding of `predicate`.
- * @returns {Array} Returns the slice of `array`.
- * @example
- *
- * _.dropRightWhile([1, 2, 3], function(n) {
- * return n > 1;
- * });
- * // => [1]
- *
- * var users = [
- * { 'user': 'barney', 'active': true },
- * { 'user': 'fred', 'active': false },
- * { 'user': 'pebbles', 'active': false }
- * ];
- *
- * // using the `_.matches` callback shorthand
- * _.pluck(_.dropRightWhile(users, { 'user': 'pebbles', 'active': false }), 'user');
- * // => ['barney', 'fred']
- *
- * // using the `_.matchesProperty` callback shorthand
- * _.pluck(_.dropRightWhile(users, 'active', false), 'user');
- * // => ['barney']
- *
- * // using the `_.property` callback shorthand
- * _.pluck(_.dropRightWhile(users, 'active'), 'user');
- * // => ['barney', 'fred', 'pebbles']
- */
-function dropRightWhile(array, predicate, thisArg) {
- return (array && array.length)
- ? baseWhile(array, baseCallback(predicate, thisArg, 3), true, true)
- : [];
-}
-
-module.exports = dropRightWhile;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/lodash/array/dropWhile.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/array/dropWhile.js b/node_modules/lodash/array/dropWhile.js
deleted file mode 100644
index d9eabae..0000000
--- a/node_modules/lodash/array/dropWhile.js
+++ /dev/null
@@ -1,59 +0,0 @@
-var baseCallback = require('../internal/baseCallback'),
- baseWhile = require('../internal/baseWhile');
-
-/**
- * Creates a slice of `array` excluding elements dropped from the beginning.
- * Elements are dropped until `predicate` returns falsey. The predicate is
- * bound to `thisArg` and invoked with three arguments: (value, index, array).
- *
- * If a property name is provided for `predicate` the created `_.property`
- * style callback returns the property value of the given element.
- *
- * If a value is also provided for `thisArg` the created `_.matchesProperty`
- * style callback returns `true` for elements that have a matching property
- * value, else `false`.
- *
- * If an object is provided for `predicate` the created `_.matches` style
- * callback returns `true` for elements that have the properties of the given
- * object, else `false`.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to query.
- * @param {Function|Object|string} [predicate=_.identity] The function invoked
- * per iteration.
- * @param {*} [thisArg] The `this` binding of `predicate`.
- * @returns {Array} Returns the slice of `array`.
- * @example
- *
- * _.dropWhile([1, 2, 3], function(n) {
- * return n < 3;
- * });
- * // => [3]
- *
- * var users = [
- * { 'user': 'barney', 'active': false },
- * { 'user': 'fred', 'active': false },
- * { 'user': 'pebbles', 'active': true }
- * ];
- *
- * // using the `_.matches` callback shorthand
- * _.pluck(_.dropWhile(users, { 'user': 'barney', 'active': false }), 'user');
- * // => ['fred', 'pebbles']
- *
- * // using the `_.matchesProperty` callback shorthand
- * _.pluck(_.dropWhile(users, 'active', false), 'user');
- * // => ['pebbles']
- *
- * // using the `_.property` callback shorthand
- * _.pluck(_.dropWhile(users, 'active'), 'user');
- * // => ['barney', 'fred', 'pebbles']
- */
-function dropWhile(array, predicate, thisArg) {
- return (array && array.length)
- ? baseWhile(array, baseCallback(predicate, thisArg, 3), true)
- : [];
-}
-
-module.exports = dropWhile;
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/lodash/array/fill.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/array/fill.js b/node_modules/lodash/array/fill.js
deleted file mode 100644
index 2c8f6da..0000000
--- a/node_modules/lodash/array/fill.js
+++ /dev/null
@@ -1,44 +0,0 @@
-var baseFill = require('../internal/baseFill'),
- isIterateeCall = require('../internal/isIterateeCall');
-
-/**
- * Fills elements of `array` with `value` from `start` up to, but not
- * including, `end`.
- *
- * **Note:** This method mutates `array`.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to fill.
- * @param {*} value The value to fill `array` with.
- * @param {number} [start=0] The start position.
- * @param {number} [end=array.length] The end position.
- * @returns {Array} Returns `array`.
- * @example
- *
- * var array = [1, 2, 3];
- *
- * _.fill(array, 'a');
- * console.log(array);
- * // => ['a', 'a', 'a']
- *
- * _.fill(Array(3), 2);
- * // => [2, 2, 2]
- *
- * _.fill([4, 6, 8], '*', 1, 2);
- * // => [4, '*', 8]
- */
-function fill(array, value, start, end) {
- var length = array ? array.length : 0;
- if (!length) {
- return [];
- }
- if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {
- start = 0;
- end = length;
- }
- return baseFill(array, value, start, end);
-}
-
-module.exports = fill;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org