cordova-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ste...@apache.org
Subject [05/51] [abbrv] [partial] ios commit: CB-11445 rechecked in node_modules using npm 2
Date Sat, 18 Jun 2016 01:04:23 GMT
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/result.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/result.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/result.js
new file mode 100644
index 0000000..29b38e6
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/result.js
@@ -0,0 +1,49 @@
+var baseGet = require('../internal/baseGet'),
+    baseSlice = require('../internal/baseSlice'),
+    isFunction = require('../lang/isFunction'),
+    isKey = require('../internal/isKey'),
+    last = require('../array/last'),
+    toPath = require('../internal/toPath');
+
+/**
+ * This method is like `_.get` except that if the resolved value is a function
+ * it's invoked with the `this` binding of its parent object and its result
+ * is returned.
+ *
+ * @static
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to query.
+ * @param {Array|string} path The path of the property to resolve.
+ * @param {*} [defaultValue] The value returned if the resolved value is `undefined`.
+ * @returns {*} Returns the resolved value.
+ * @example
+ *
+ * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };
+ *
+ * _.result(object, 'a[0].b.c1');
+ * // => 3
+ *
+ * _.result(object, 'a[0].b.c2');
+ * // => 4
+ *
+ * _.result(object, 'a.b.c', 'default');
+ * // => 'default'
+ *
+ * _.result(object, 'a.b.c', _.constant('default'));
+ * // => 'default'
+ */
+function result(object, path, defaultValue) {
+  var result = object == null ? undefined : object[path];
+  if (result === undefined) {
+    if (object != null && !isKey(path, object)) {
+      path = toPath(path);
+      object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1));
+      result = object == null ? undefined : object[last(path)];
+    }
+    result = result === undefined ? defaultValue : result;
+  }
+  return isFunction(result) ? result.call(object) : result;
+}
+
+module.exports = result;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/set.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/set.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/set.js
new file mode 100644
index 0000000..7a1e4e9
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/set.js
@@ -0,0 +1,55 @@
+var isIndex = require('../internal/isIndex'),
+    isKey = require('../internal/isKey'),
+    isObject = require('../lang/isObject'),
+    toPath = require('../internal/toPath');
+
+/**
+ * Sets the property value of `path` on `object`. If a portion of `path`
+ * does not exist it's created.
+ *
+ * @static
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to augment.
+ * @param {Array|string} path The path of the property to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns `object`.
+ * @example
+ *
+ * var object = { 'a': [{ 'b': { 'c': 3 } }] };
+ *
+ * _.set(object, 'a[0].b.c', 4);
+ * console.log(object.a[0].b.c);
+ * // => 4
+ *
+ * _.set(object, 'x[0].y.z', 5);
+ * console.log(object.x[0].y.z);
+ * // => 5
+ */
+function set(object, path, value) {
+  if (object == null) {
+    return object;
+  }
+  var pathKey = (path + '');
+  path = (object[pathKey] != null || isKey(path, object)) ? [pathKey] : toPath(path);
+
+  var index = -1,
+      length = path.length,
+      lastIndex = length - 1,
+      nested = object;
+
+  while (nested != null && ++index < length) {
+    var key = path[index];
+    if (isObject(nested)) {
+      if (index == lastIndex) {
+        nested[key] = value;
+      } else if (nested[key] == null) {
+        nested[key] = isIndex(path[index + 1]) ? [] : {};
+      }
+    }
+    nested = nested[key];
+  }
+  return object;
+}
+
+module.exports = set;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/transform.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/transform.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/transform.js
new file mode 100644
index 0000000..9a814b1
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/transform.js
@@ -0,0 +1,61 @@
+var arrayEach = require('../internal/arrayEach'),
+    baseCallback = require('../internal/baseCallback'),
+    baseCreate = require('../internal/baseCreate'),
+    baseForOwn = require('../internal/baseForOwn'),
+    isArray = require('../lang/isArray'),
+    isFunction = require('../lang/isFunction'),
+    isObject = require('../lang/isObject'),
+    isTypedArray = require('../lang/isTypedArray');
+
+/**
+ * An alternative to `_.reduce`; this method transforms `object` to a new
+ * `accumulator` object which is the result of running each of its own enumerable
+ * properties through `iteratee`, with each invocation potentially mutating
+ * the `accumulator` object. The `iteratee` is bound to `thisArg` and invoked
+ * with four arguments: (accumulator, value, key, object). Iteratee functions
+ * may exit iteration early by explicitly returning `false`.
+ *
+ * @static
+ * @memberOf _
+ * @category Object
+ * @param {Array|Object} object The object to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @param {*} [accumulator] The custom accumulator value.
+ * @param {*} [thisArg] The `this` binding of `iteratee`.
+ * @returns {*} Returns the accumulated value.
+ * @example
+ *
+ * _.transform([2, 3, 4], function(result, n) {
+ *   result.push(n *= n);
+ *   return n % 2 == 0;
+ * });
+ * // => [4, 9]
+ *
+ * _.transform({ 'a': 1, 'b': 2 }, function(result, n, key) {
+ *   result[key] = n * 3;
+ * });
+ * // => { 'a': 3, 'b': 6 }
+ */
+function transform(object, iteratee, accumulator, thisArg) {
+  var isArr = isArray(object) || isTypedArray(object);
+  iteratee = baseCallback(iteratee, thisArg, 4);
+
+  if (accumulator == null) {
+    if (isArr || isObject(object)) {
+      var Ctor = object.constructor;
+      if (isArr) {
+        accumulator = isArray(object) ? new Ctor : [];
+      } else {
+        accumulator = baseCreate(isFunction(Ctor) ? Ctor.prototype : undefined);
+      }
+    } else {
+      accumulator = {};
+    }
+  }
+  (isArr ? arrayEach : baseForOwn)(object, function(value, index, object) {
+    return iteratee(accumulator, value, index, object);
+  });
+  return accumulator;
+}
+
+module.exports = transform;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/values.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/values.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/values.js
new file mode 100644
index 0000000..0171515
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/values.js
@@ -0,0 +1,33 @@
+var baseValues = require('../internal/baseValues'),
+    keys = require('./keys');
+
+/**
+ * Creates an array of the own enumerable property values of `object`.
+ *
+ * **Note:** Non-object values are coerced to objects.
+ *
+ * @static
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property values.
+ * @example
+ *
+ * function Foo() {
+ *   this.a = 1;
+ *   this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.values(new Foo);
+ * // => [1, 2] (iteration order is not guaranteed)
+ *
+ * _.values('hi');
+ * // => ['h', 'i']
+ */
+function values(object) {
+  return baseValues(object, keys(object));
+}
+
+module.exports = values;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/valuesIn.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/valuesIn.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/valuesIn.js
new file mode 100644
index 0000000..5f067c0
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/object/valuesIn.js
@@ -0,0 +1,31 @@
+var baseValues = require('../internal/baseValues'),
+    keysIn = require('./keysIn');
+
+/**
+ * Creates an array of the own and inherited enumerable property values
+ * of `object`.
+ *
+ * **Note:** Non-object values are coerced to objects.
+ *
+ * @static
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property values.
+ * @example
+ *
+ * function Foo() {
+ *   this.a = 1;
+ *   this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.valuesIn(new Foo);
+ * // => [1, 2, 3] (iteration order is not guaranteed)
+ */
+function valuesIn(object) {
+  return baseValues(object, keysIn(object));
+}
+
+module.exports = valuesIn;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/package.json
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/package.json b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/package.json
new file mode 100644
index 0000000..dc43fb5
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/package.json
@@ -0,0 +1,94 @@
+{
+  "name": "lodash",
+  "version": "3.10.1",
+  "description": "The modern build of lodash modular utilities.",
+  "homepage": "https://lodash.com/",
+  "icon": "https://lodash.com/icon.svg",
+  "license": "MIT",
+  "main": "index.js",
+  "keywords": [
+    "modules",
+    "stdlib",
+    "util"
+  ],
+  "author": {
+    "name": "John-David Dalton",
+    "email": "john.david.dalton@gmail.com",
+    "url": "http://allyoucanleet.com/"
+  },
+  "contributors": [
+    {
+      "name": "John-David Dalton",
+      "email": "john.david.dalton@gmail.com",
+      "url": "http://allyoucanleet.com/"
+    },
+    {
+      "name": "Benjamin Tan",
+      "email": "demoneaux@gmail.com",
+      "url": "https://d10.github.io/"
+    },
+    {
+      "name": "Blaine Bublitz",
+      "email": "blaine@iceddev.com",
+      "url": "http://www.iceddev.com/"
+    },
+    {
+      "name": "Kit Cambridge",
+      "email": "github@kitcambridge.be",
+      "url": "http://kitcambridge.be/"
+    },
+    {
+      "name": "Mathias Bynens",
+      "email": "mathias@qiwi.be",
+      "url": "https://mathiasbynens.be/"
+    }
+  ],
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/lodash/lodash.git"
+  },
+  "scripts": {
+    "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+  },
+  "bugs": {
+    "url": "https://github.com/lodash/lodash/issues"
+  },
+  "_id": "lodash@3.10.1",
+  "_shasum": "5bf45e8e49ba4189e17d482789dfd15bd140b7b6",
+  "_from": "lodash@>=3.5.0 <4.0.0",
+  "_npmVersion": "2.13.1",
+  "_nodeVersion": "0.12.5",
+  "_npmUser": {
+    "name": "jdalton",
+    "email": "john.david.dalton@gmail.com"
+  },
+  "maintainers": [
+    {
+      "name": "jdalton",
+      "email": "john.david.dalton@gmail.com"
+    },
+    {
+      "name": "mathias",
+      "email": "mathias@qiwi.be"
+    },
+    {
+      "name": "phated",
+      "email": "blaine@iceddev.com"
+    },
+    {
+      "name": "kitcambridge",
+      "email": "github@kitcambridge.be"
+    },
+    {
+      "name": "d10",
+      "email": "demoneaux@gmail.com"
+    }
+  ],
+  "dist": {
+    "shasum": "5bf45e8e49ba4189e17d482789dfd15bd140b7b6",
+    "tarball": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz"
+  },
+  "directories": {},
+  "_resolved": "http://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+  "readme": "ERROR: No README data found!"
+}

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string.js
new file mode 100644
index 0000000..f777945
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string.js
@@ -0,0 +1,25 @@
+module.exports = {
+  'camelCase': require('./string/camelCase'),
+  'capitalize': require('./string/capitalize'),
+  'deburr': require('./string/deburr'),
+  'endsWith': require('./string/endsWith'),
+  'escape': require('./string/escape'),
+  'escapeRegExp': require('./string/escapeRegExp'),
+  'kebabCase': require('./string/kebabCase'),
+  'pad': require('./string/pad'),
+  'padLeft': require('./string/padLeft'),
+  'padRight': require('./string/padRight'),
+  'parseInt': require('./string/parseInt'),
+  'repeat': require('./string/repeat'),
+  'snakeCase': require('./string/snakeCase'),
+  'startCase': require('./string/startCase'),
+  'startsWith': require('./string/startsWith'),
+  'template': require('./string/template'),
+  'templateSettings': require('./string/templateSettings'),
+  'trim': require('./string/trim'),
+  'trimLeft': require('./string/trimLeft'),
+  'trimRight': require('./string/trimRight'),
+  'trunc': require('./string/trunc'),
+  'unescape': require('./string/unescape'),
+  'words': require('./string/words')
+};

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/camelCase.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/camelCase.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/camelCase.js
new file mode 100644
index 0000000..2d438f4
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/camelCase.js
@@ -0,0 +1,27 @@
+var createCompounder = require('../internal/createCompounder');
+
+/**
+ * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to convert.
+ * @returns {string} Returns the camel cased string.
+ * @example
+ *
+ * _.camelCase('Foo Bar');
+ * // => 'fooBar'
+ *
+ * _.camelCase('--foo-bar');
+ * // => 'fooBar'
+ *
+ * _.camelCase('__foo_bar__');
+ * // => 'fooBar'
+ */
+var camelCase = createCompounder(function(result, word, index) {
+  word = word.toLowerCase();
+  return result + (index ? (word.charAt(0).toUpperCase() + word.slice(1)) : word);
+});
+
+module.exports = camelCase;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/capitalize.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/capitalize.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/capitalize.js
new file mode 100644
index 0000000..f9222dc
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/capitalize.js
@@ -0,0 +1,21 @@
+var baseToString = require('../internal/baseToString');
+
+/**
+ * Capitalizes the first character of `string`.
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to capitalize.
+ * @returns {string} Returns the capitalized string.
+ * @example
+ *
+ * _.capitalize('fred');
+ * // => 'Fred'
+ */
+function capitalize(string) {
+  string = baseToString(string);
+  return string && (string.charAt(0).toUpperCase() + string.slice(1));
+}
+
+module.exports = capitalize;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/deburr.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/deburr.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/deburr.js
new file mode 100644
index 0000000..0bd03e6
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/deburr.js
@@ -0,0 +1,29 @@
+var baseToString = require('../internal/baseToString'),
+    deburrLetter = require('../internal/deburrLetter');
+
+/** Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). */
+var reComboMark = /[\u0300-\u036f\ufe20-\ufe23]/g;
+
+/** Used to match latin-1 supplementary letters (excluding mathematical operators). */
+var reLatin1 = /[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g;
+
+/**
+ * Deburrs `string` by converting [latin-1 supplementary letters](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)
+ * to basic latin letters and removing [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to deburr.
+ * @returns {string} Returns the deburred string.
+ * @example
+ *
+ * _.deburr('déjà vu');
+ * // => 'deja vu'
+ */
+function deburr(string) {
+  string = baseToString(string);
+  return string && string.replace(reLatin1, deburrLetter).replace(reComboMark, '');
+}
+
+module.exports = deburr;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/endsWith.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/endsWith.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/endsWith.js
new file mode 100644
index 0000000..26821e2
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/endsWith.js
@@ -0,0 +1,40 @@
+var baseToString = require('../internal/baseToString');
+
+/* Native method references for those with the same name as other `lodash` methods. */
+var nativeMin = Math.min;
+
+/**
+ * Checks if `string` ends with the given target string.
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to search.
+ * @param {string} [target] The string to search for.
+ * @param {number} [position=string.length] The position to search from.
+ * @returns {boolean} Returns `true` if `string` ends with `target`, else `false`.
+ * @example
+ *
+ * _.endsWith('abc', 'c');
+ * // => true
+ *
+ * _.endsWith('abc', 'b');
+ * // => false
+ *
+ * _.endsWith('abc', 'b', 2);
+ * // => true
+ */
+function endsWith(string, target, position) {
+  string = baseToString(string);
+  target = (target + '');
+
+  var length = string.length;
+  position = position === undefined
+    ? length
+    : nativeMin(position < 0 ? 0 : (+position || 0), length);
+
+  position -= target.length;
+  return position >= 0 && string.indexOf(target, position) == position;
+}
+
+module.exports = endsWith;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/escape.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/escape.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/escape.js
new file mode 100644
index 0000000..cd08a5d
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/escape.js
@@ -0,0 +1,48 @@
+var baseToString = require('../internal/baseToString'),
+    escapeHtmlChar = require('../internal/escapeHtmlChar');
+
+/** Used to match HTML entities and HTML characters. */
+var reUnescapedHtml = /[&<>"'`]/g,
+    reHasUnescapedHtml = RegExp(reUnescapedHtml.source);
+
+/**
+ * Converts the characters "&", "<", ">", '"', "'", and "\`", in `string` to
+ * their corresponding HTML entities.
+ *
+ * **Note:** No other characters are escaped. To escape additional characters
+ * use a third-party library like [_he_](https://mths.be/he).
+ *
+ * Though the ">" character is escaped for symmetry, characters like
+ * ">" and "/" don't need escaping in HTML and have no special meaning
+ * unless they're part of a tag or unquoted attribute value.
+ * See [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)
+ * (under "semi-related fun fact") for more details.
+ *
+ * Backticks are escaped because in Internet Explorer < 9, they can break out
+ * of attribute values or HTML comments. See [#59](https://html5sec.org/#59),
+ * [#102](https://html5sec.org/#102), [#108](https://html5sec.org/#108), and
+ * [#133](https://html5sec.org/#133) of the [HTML5 Security Cheatsheet](https://html5sec.org/)
+ * for more details.
+ *
+ * When working with HTML you should always [quote attribute values](http://wonko.com/post/html-escaping)
+ * to reduce XSS vectors.
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to escape.
+ * @returns {string} Returns the escaped string.
+ * @example
+ *
+ * _.escape('fred, barney, & pebbles');
+ * // => 'fred, barney, &amp; pebbles'
+ */
+function escape(string) {
+  // Reset `lastIndex` because in IE < 9 `String#replace` does not.
+  string = baseToString(string);
+  return (string && reHasUnescapedHtml.test(string))
+    ? string.replace(reUnescapedHtml, escapeHtmlChar)
+    : string;
+}
+
+module.exports = escape;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/escapeRegExp.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/escapeRegExp.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/escapeRegExp.js
new file mode 100644
index 0000000..176137a
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/escapeRegExp.js
@@ -0,0 +1,32 @@
+var baseToString = require('../internal/baseToString'),
+    escapeRegExpChar = require('../internal/escapeRegExpChar');
+
+/**
+ * Used to match `RegExp` [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns)
+ * and those outlined by [`EscapeRegExpPattern`](http://ecma-international.org/ecma-262/6.0/#sec-escaperegexppattern).
+ */
+var reRegExpChars = /^[:!,]|[\\^$.*+?()[\]{}|\/]|(^[0-9a-fA-Fnrtuvx])|([\n\r\u2028\u2029])/g,
+    reHasRegExpChars = RegExp(reRegExpChars.source);
+
+/**
+ * Escapes the `RegExp` special characters "\", "/", "^", "$", ".", "|", "?",
+ * "*", "+", "(", ")", "[", "]", "{" and "}" in `string`.
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to escape.
+ * @returns {string} Returns the escaped string.
+ * @example
+ *
+ * _.escapeRegExp('[lodash](https://lodash.com/)');
+ * // => '\[lodash\]\(https:\/\/lodash\.com\/\)'
+ */
+function escapeRegExp(string) {
+  string = baseToString(string);
+  return (string && reHasRegExpChars.test(string))
+    ? string.replace(reRegExpChars, escapeRegExpChar)
+    : (string || '(?:)');
+}
+
+module.exports = escapeRegExp;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/kebabCase.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/kebabCase.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/kebabCase.js
new file mode 100644
index 0000000..d29c2f9
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/kebabCase.js
@@ -0,0 +1,26 @@
+var createCompounder = require('../internal/createCompounder');
+
+/**
+ * Converts `string` to [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to convert.
+ * @returns {string} Returns the kebab cased string.
+ * @example
+ *
+ * _.kebabCase('Foo Bar');
+ * // => 'foo-bar'
+ *
+ * _.kebabCase('fooBar');
+ * // => 'foo-bar'
+ *
+ * _.kebabCase('__foo_bar__');
+ * // => 'foo-bar'
+ */
+var kebabCase = createCompounder(function(result, word, index) {
+  return result + (index ? '-' : '') + word.toLowerCase();
+});
+
+module.exports = kebabCase;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/pad.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/pad.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/pad.js
new file mode 100644
index 0000000..60e523b
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/pad.js
@@ -0,0 +1,47 @@
+var baseToString = require('../internal/baseToString'),
+    createPadding = require('../internal/createPadding');
+
+/* Native method references for those with the same name as other `lodash` methods. */
+var nativeCeil = Math.ceil,
+    nativeFloor = Math.floor,
+    nativeIsFinite = global.isFinite;
+
+/**
+ * Pads `string` on the left and right sides if it's shorter than `length`.
+ * Padding characters are truncated if they can't be evenly divided by `length`.
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to pad.
+ * @param {number} [length=0] The padding length.
+ * @param {string} [chars=' '] The string used as padding.
+ * @returns {string} Returns the padded string.
+ * @example
+ *
+ * _.pad('abc', 8);
+ * // => '  abc   '
+ *
+ * _.pad('abc', 8, '_-');
+ * // => '_-abc_-_'
+ *
+ * _.pad('abc', 3);
+ * // => 'abc'
+ */
+function pad(string, length, chars) {
+  string = baseToString(string);
+  length = +length;
+
+  var strLength = string.length;
+  if (strLength >= length || !nativeIsFinite(length)) {
+    return string;
+  }
+  var mid = (length - strLength) / 2,
+      leftLength = nativeFloor(mid),
+      rightLength = nativeCeil(mid);
+
+  chars = createPadding('', rightLength, chars);
+  return chars.slice(0, leftLength) + string + chars;
+}
+
+module.exports = pad;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/padLeft.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/padLeft.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/padLeft.js
new file mode 100644
index 0000000..bb0c94d
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/padLeft.js
@@ -0,0 +1,27 @@
+var createPadDir = require('../internal/createPadDir');
+
+/**
+ * Pads `string` on the left side if it's shorter than `length`. Padding
+ * characters are truncated if they exceed `length`.
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to pad.
+ * @param {number} [length=0] The padding length.
+ * @param {string} [chars=' '] The string used as padding.
+ * @returns {string} Returns the padded string.
+ * @example
+ *
+ * _.padLeft('abc', 6);
+ * // => '   abc'
+ *
+ * _.padLeft('abc', 6, '_-');
+ * // => '_-_abc'
+ *
+ * _.padLeft('abc', 3);
+ * // => 'abc'
+ */
+var padLeft = createPadDir();
+
+module.exports = padLeft;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/padRight.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/padRight.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/padRight.js
new file mode 100644
index 0000000..dc12f55
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/padRight.js
@@ -0,0 +1,27 @@
+var createPadDir = require('../internal/createPadDir');
+
+/**
+ * Pads `string` on the right side if it's shorter than `length`. Padding
+ * characters are truncated if they exceed `length`.
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to pad.
+ * @param {number} [length=0] The padding length.
+ * @param {string} [chars=' '] The string used as padding.
+ * @returns {string} Returns the padded string.
+ * @example
+ *
+ * _.padRight('abc', 6);
+ * // => 'abc   '
+ *
+ * _.padRight('abc', 6, '_-');
+ * // => 'abc_-_'
+ *
+ * _.padRight('abc', 3);
+ * // => 'abc'
+ */
+var padRight = createPadDir(true);
+
+module.exports = padRight;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/parseInt.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/parseInt.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/parseInt.js
new file mode 100644
index 0000000..f457711
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/parseInt.js
@@ -0,0 +1,46 @@
+var isIterateeCall = require('../internal/isIterateeCall'),
+    trim = require('./trim');
+
+/** Used to detect hexadecimal string values. */
+var reHasHexPrefix = /^0[xX]/;
+
+/* Native method references for those with the same name as other `lodash` methods. */
+var nativeParseInt = global.parseInt;
+
+/**
+ * Converts `string` to an integer of the specified radix. If `radix` is
+ * `undefined` or `0`, a `radix` of `10` is used unless `value` is a hexadecimal,
+ * in which case a `radix` of `16` is used.
+ *
+ * **Note:** This method aligns with the [ES5 implementation](https://es5.github.io/#E)
+ * of `parseInt`.
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} string The string to convert.
+ * @param {number} [radix] The radix to interpret `value` by.
+ * @param- {Object} [guard] Enables use as a callback for functions like `_.map`.
+ * @returns {number} Returns the converted integer.
+ * @example
+ *
+ * _.parseInt('08');
+ * // => 8
+ *
+ * _.map(['6', '08', '10'], _.parseInt);
+ * // => [6, 8, 10]
+ */
+function parseInt(string, radix, guard) {
+  // Firefox < 21 and Opera < 15 follow ES3 for `parseInt`.
+  // Chrome fails to trim leading <BOM> whitespace characters.
+  // See https://code.google.com/p/v8/issues/detail?id=3109 for more details.
+  if (guard ? isIterateeCall(string, radix, guard) : radix == null) {
+    radix = 0;
+  } else if (radix) {
+    radix = +radix;
+  }
+  string = trim(string);
+  return nativeParseInt(string, radix || (reHasHexPrefix.test(string) ? 16 : 10));
+}
+
+module.exports = parseInt;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/repeat.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/repeat.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/repeat.js
new file mode 100644
index 0000000..2902123
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/repeat.js
@@ -0,0 +1,47 @@
+var baseToString = require('../internal/baseToString');
+
+/* Native method references for those with the same name as other `lodash` methods. */
+var nativeFloor = Math.floor,
+    nativeIsFinite = global.isFinite;
+
+/**
+ * Repeats the given string `n` times.
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to repeat.
+ * @param {number} [n=0] The number of times to repeat the string.
+ * @returns {string} Returns the repeated string.
+ * @example
+ *
+ * _.repeat('*', 3);
+ * // => '***'
+ *
+ * _.repeat('abc', 2);
+ * // => 'abcabc'
+ *
+ * _.repeat('abc', 0);
+ * // => ''
+ */
+function repeat(string, n) {
+  var result = '';
+  string = baseToString(string);
+  n = +n;
+  if (n < 1 || !string || !nativeIsFinite(n)) {
+    return result;
+  }
+  // Leverage the exponentiation by squaring algorithm for a faster repeat.
+  // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.
+  do {
+    if (n % 2) {
+      result += string;
+    }
+    n = nativeFloor(n / 2);
+    string += string;
+  } while (n);
+
+  return result;
+}
+
+module.exports = repeat;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/snakeCase.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/snakeCase.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/snakeCase.js
new file mode 100644
index 0000000..c9ebffd
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/snakeCase.js
@@ -0,0 +1,26 @@
+var createCompounder = require('../internal/createCompounder');
+
+/**
+ * Converts `string` to [snake case](https://en.wikipedia.org/wiki/Snake_case).
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to convert.
+ * @returns {string} Returns the snake cased string.
+ * @example
+ *
+ * _.snakeCase('Foo Bar');
+ * // => 'foo_bar'
+ *
+ * _.snakeCase('fooBar');
+ * // => 'foo_bar'
+ *
+ * _.snakeCase('--foo-bar');
+ * // => 'foo_bar'
+ */
+var snakeCase = createCompounder(function(result, word, index) {
+  return result + (index ? '_' : '') + word.toLowerCase();
+});
+
+module.exports = snakeCase;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/startCase.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/startCase.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/startCase.js
new file mode 100644
index 0000000..740d48a
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/startCase.js
@@ -0,0 +1,26 @@
+var createCompounder = require('../internal/createCompounder');
+
+/**
+ * Converts `string` to [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to convert.
+ * @returns {string} Returns the start cased string.
+ * @example
+ *
+ * _.startCase('--foo-bar');
+ * // => 'Foo Bar'
+ *
+ * _.startCase('fooBar');
+ * // => 'Foo Bar'
+ *
+ * _.startCase('__foo_bar__');
+ * // => 'Foo Bar'
+ */
+var startCase = createCompounder(function(result, word, index) {
+  return result + (index ? ' ' : '') + (word.charAt(0).toUpperCase() + word.slice(1));
+});
+
+module.exports = startCase;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/startsWith.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/startsWith.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/startsWith.js
new file mode 100644
index 0000000..65fae2a
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/startsWith.js
@@ -0,0 +1,36 @@
+var baseToString = require('../internal/baseToString');
+
+/* Native method references for those with the same name as other `lodash` methods. */
+var nativeMin = Math.min;
+
+/**
+ * Checks if `string` starts with the given target string.
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to search.
+ * @param {string} [target] The string to search for.
+ * @param {number} [position=0] The position to search from.
+ * @returns {boolean} Returns `true` if `string` starts with `target`, else `false`.
+ * @example
+ *
+ * _.startsWith('abc', 'a');
+ * // => true
+ *
+ * _.startsWith('abc', 'b');
+ * // => false
+ *
+ * _.startsWith('abc', 'b', 1);
+ * // => true
+ */
+function startsWith(string, target, position) {
+  string = baseToString(string);
+  position = position == null
+    ? 0
+    : nativeMin(position < 0 ? 0 : (+position || 0), string.length);
+
+  return string.lastIndexOf(target, position) == position;
+}
+
+module.exports = startsWith;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/template.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/template.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/template.js
new file mode 100644
index 0000000..e75e992
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/template.js
@@ -0,0 +1,226 @@
+var assignOwnDefaults = require('../internal/assignOwnDefaults'),
+    assignWith = require('../internal/assignWith'),
+    attempt = require('../utility/attempt'),
+    baseAssign = require('../internal/baseAssign'),
+    baseToString = require('../internal/baseToString'),
+    baseValues = require('../internal/baseValues'),
+    escapeStringChar = require('../internal/escapeStringChar'),
+    isError = require('../lang/isError'),
+    isIterateeCall = require('../internal/isIterateeCall'),
+    keys = require('../object/keys'),
+    reInterpolate = require('../internal/reInterpolate'),
+    templateSettings = require('./templateSettings');
+
+/** Used to match empty string literals in compiled template source. */
+var reEmptyStringLeading = /\b__p \+= '';/g,
+    reEmptyStringMiddle = /\b(__p \+=) '' \+/g,
+    reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g;
+
+/** Used to match [ES template delimiters](http://ecma-international.org/ecma-262/6.0/#sec-template-literal-lexical-components). */
+var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
+
+/** Used to ensure capturing order of template delimiters. */
+var reNoMatch = /($^)/;
+
+/** Used to match unescaped characters in compiled string literals. */
+var reUnescapedString = /['\n\r\u2028\u2029\\]/g;
+
+/**
+ * Creates a compiled template function that can interpolate data properties
+ * in "interpolate" delimiters, HTML-escape interpolated data properties in
+ * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data
+ * properties may be accessed as free variables in the template. If a setting
+ * object is provided it takes precedence over `_.templateSettings` values.
+ *
+ * **Note:** In the development build `_.template` utilizes
+ * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)
+ * for easier debugging.
+ *
+ * For more information on precompiling templates see
+ * [lodash's custom builds documentation](https://lodash.com/custom-builds).
+ *
+ * For more information on Chrome extension sandboxes see
+ * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The template string.
+ * @param {Object} [options] The options object.
+ * @param {RegExp} [options.escape] The HTML "escape" delimiter.
+ * @param {RegExp} [options.evaluate] The "evaluate" delimiter.
+ * @param {Object} [options.imports] An object to import into the template as free variables.
+ * @param {RegExp} [options.interpolate] The "interpolate" delimiter.
+ * @param {string} [options.sourceURL] The sourceURL of the template's compiled source.
+ * @param {string} [options.variable] The data object variable name.
+ * @param- {Object} [otherOptions] Enables the legacy `options` param signature.
+ * @returns {Function} Returns the compiled template function.
+ * @example
+ *
+ * // using the "interpolate" delimiter to create a compiled template
+ * var compiled = _.template('hello <%= user %>!');
+ * compiled({ 'user': 'fred' });
+ * // => 'hello fred!'
+ *
+ * // using the HTML "escape" delimiter to escape data property values
+ * var compiled = _.template('<b><%- value %></b>');
+ * compiled({ 'value': '<script>' });
+ * // => '<b>&lt;script&gt;</b>'
+ *
+ * // using the "evaluate" delimiter to execute JavaScript and generate HTML
+ * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');
+ * compiled({ 'users': ['fred', 'barney'] });
+ * // => '<li>fred</li><li>barney</li>'
+ *
+ * // using the internal `print` function in "evaluate" delimiters
+ * var compiled = _.template('<% print("hello " + user); %>!');
+ * compiled({ 'user': 'barney' });
+ * // => 'hello barney!'
+ *
+ * // using the ES delimiter as an alternative to the default "interpolate" delimiter
+ * var compiled = _.template('hello ${ user }!');
+ * compiled({ 'user': 'pebbles' });
+ * // => 'hello pebbles!'
+ *
+ * // using custom template delimiters
+ * _.templateSettings.interpolate = /{{([\s\S]+?)}}/g;
+ * var compiled = _.template('hello {{ user }}!');
+ * compiled({ 'user': 'mustache' });
+ * // => 'hello mustache!'
+ *
+ * // using backslashes to treat delimiters as plain text
+ * var compiled = _.template('<%= "\\<%- value %\\>" %>');
+ * compiled({ 'value': 'ignored' });
+ * // => '<%- value %>'
+ *
+ * // using the `imports` option to import `jQuery` as `jq`
+ * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';
+ * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });
+ * compiled({ 'users': ['fred', 'barney'] });
+ * // => '<li>fred</li><li>barney</li>'
+ *
+ * // using the `sourceURL` option to specify a custom sourceURL for the template
+ * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });
+ * compiled(data);
+ * // => find the source of "greeting.jst" under the Sources tab or Resources panel of the web inspector
+ *
+ * // using the `variable` option to ensure a with-statement isn't used in the compiled template
+ * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });
+ * compiled.source;
+ * // => function(data) {
+ * //   var __t, __p = '';
+ * //   __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';
+ * //   return __p;
+ * // }
+ *
+ * // using the `source` property to inline compiled templates for meaningful
+ * // line numbers in error messages and a stack trace
+ * fs.writeFileSync(path.join(cwd, 'jst.js'), '\
+ *   var JST = {\
+ *     "main": ' + _.template(mainText).source + '\
+ *   };\
+ * ');
+ */
+function template(string, options, otherOptions) {
+  // Based on John Resig's `tmpl` implementation (http://ejohn.org/blog/javascript-micro-templating/)
+  // and Laura Doktorova's doT.js (https://github.com/olado/doT).
+  var settings = templateSettings.imports._.templateSettings || templateSettings;
+
+  if (otherOptions && isIterateeCall(string, options, otherOptions)) {
+    options = otherOptions = undefined;
+  }
+  string = baseToString(string);
+  options = assignWith(baseAssign({}, otherOptions || options), settings, assignOwnDefaults);
+
+  var imports = assignWith(baseAssign({}, options.imports), settings.imports, assignOwnDefaults),
+      importsKeys = keys(imports),
+      importsValues = baseValues(imports, importsKeys);
+
+  var isEscaping,
+      isEvaluating,
+      index = 0,
+      interpolate = options.interpolate || reNoMatch,
+      source = "__p += '";
+
+  // Compile the regexp to match each delimiter.
+  var reDelimiters = RegExp(
+    (options.escape || reNoMatch).source + '|' +
+    interpolate.source + '|' +
+    (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +
+    (options.evaluate || reNoMatch).source + '|$'
+  , 'g');
+
+  // Use a sourceURL for easier debugging.
+  var sourceURL = 'sourceURL' in options ? '//# sourceURL=' + options.sourceURL + '\n' : '';
+
+  string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {
+    interpolateValue || (interpolateValue = esTemplateValue);
+
+    // Escape characters that can't be included in string literals.
+    source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);
+
+    // Replace delimiters with snippets.
+    if (escapeValue) {
+      isEscaping = true;
+      source += "' +\n__e(" + escapeValue + ") +\n'";
+    }
+    if (evaluateValue) {
+      isEvaluating = true;
+      source += "';\n" + evaluateValue + ";\n__p += '";
+    }
+    if (interpolateValue) {
+      source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'";
+    }
+    index = offset + match.length;
+
+    // The JS engine embedded in Adobe products requires returning the `match`
+    // string in order to produce the correct `offset` value.
+    return match;
+  });
+
+  source += "';\n";
+
+  // If `variable` is not specified wrap a with-statement around the generated
+  // code to add the data object to the top of the scope chain.
+  var variable = options.variable;
+  if (!variable) {
+    source = 'with (obj) {\n' + source + '\n}\n';
+  }
+  // Cleanup code by stripping empty strings.
+  source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)
+    .replace(reEmptyStringMiddle, '$1')
+    .replace(reEmptyStringTrailing, '$1;');
+
+  // Frame code as the function body.
+  source = 'function(' + (variable || 'obj') + ') {\n' +
+    (variable
+      ? ''
+      : 'obj || (obj = {});\n'
+    ) +
+    "var __t, __p = ''" +
+    (isEscaping
+       ? ', __e = _.escape'
+       : ''
+    ) +
+    (isEvaluating
+      ? ', __j = Array.prototype.join;\n' +
+        "function print() { __p += __j.call(arguments, '') }\n"
+      : ';\n'
+    ) +
+    source +
+    'return __p\n}';
+
+  var result = attempt(function() {
+    return Function(importsKeys, sourceURL + 'return ' + source).apply(undefined, importsValues);
+  });
+
+  // Provide the compiled function's source by its `toString` method or
+  // the `source` property as a convenience for inlining compiled templates.
+  result.source = source;
+  if (isError(result)) {
+    throw result;
+  }
+  return result;
+}
+
+module.exports = template;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/templateSettings.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/templateSettings.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/templateSettings.js
new file mode 100644
index 0000000..cdcef9b
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/templateSettings.js
@@ -0,0 +1,67 @@
+var escape = require('./escape'),
+    reEscape = require('../internal/reEscape'),
+    reEvaluate = require('../internal/reEvaluate'),
+    reInterpolate = require('../internal/reInterpolate');
+
+/**
+ * By default, the template delimiters used by lodash are like those in
+ * embedded Ruby (ERB). Change the following template settings to use
+ * alternative delimiters.
+ *
+ * @static
+ * @memberOf _
+ * @type Object
+ */
+var templateSettings = {
+
+  /**
+   * Used to detect `data` property values to be HTML-escaped.
+   *
+   * @memberOf _.templateSettings
+   * @type RegExp
+   */
+  'escape': reEscape,
+
+  /**
+   * Used to detect code to be evaluated.
+   *
+   * @memberOf _.templateSettings
+   * @type RegExp
+   */
+  'evaluate': reEvaluate,
+
+  /**
+   * Used to detect `data` property values to inject.
+   *
+   * @memberOf _.templateSettings
+   * @type RegExp
+   */
+  'interpolate': reInterpolate,
+
+  /**
+   * Used to reference the data object in the template text.
+   *
+   * @memberOf _.templateSettings
+   * @type string
+   */
+  'variable': '',
+
+  /**
+   * Used to import variables into the compiled template.
+   *
+   * @memberOf _.templateSettings
+   * @type Object
+   */
+  'imports': {
+
+    /**
+     * A reference to the `lodash` function.
+     *
+     * @memberOf _.templateSettings.imports
+     * @type Function
+     */
+    '_': { 'escape': escape }
+  }
+};
+
+module.exports = templateSettings;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/trim.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/trim.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/trim.js
new file mode 100644
index 0000000..22cd38a
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/trim.js
@@ -0,0 +1,42 @@
+var baseToString = require('../internal/baseToString'),
+    charsLeftIndex = require('../internal/charsLeftIndex'),
+    charsRightIndex = require('../internal/charsRightIndex'),
+    isIterateeCall = require('../internal/isIterateeCall'),
+    trimmedLeftIndex = require('../internal/trimmedLeftIndex'),
+    trimmedRightIndex = require('../internal/trimmedRightIndex');
+
+/**
+ * Removes leading and trailing whitespace or specified characters from `string`.
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to trim.
+ * @param {string} [chars=whitespace] The characters to trim.
+ * @param- {Object} [guard] Enables use as a callback for functions like `_.map`.
+ * @returns {string} Returns the trimmed string.
+ * @example
+ *
+ * _.trim('  abc  ');
+ * // => 'abc'
+ *
+ * _.trim('-_-abc-_-', '_-');
+ * // => 'abc'
+ *
+ * _.map(['  foo  ', '  bar  '], _.trim);
+ * // => ['foo', 'bar']
+ */
+function trim(string, chars, guard) {
+  var value = string;
+  string = baseToString(string);
+  if (!string) {
+    return string;
+  }
+  if (guard ? isIterateeCall(value, chars, guard) : chars == null) {
+    return string.slice(trimmedLeftIndex(string), trimmedRightIndex(string) + 1);
+  }
+  chars = (chars + '');
+  return string.slice(charsLeftIndex(string, chars), charsRightIndex(string, chars) + 1);
+}
+
+module.exports = trim;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/trimLeft.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/trimLeft.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/trimLeft.js
new file mode 100644
index 0000000..2929967
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/trimLeft.js
@@ -0,0 +1,36 @@
+var baseToString = require('../internal/baseToString'),
+    charsLeftIndex = require('../internal/charsLeftIndex'),
+    isIterateeCall = require('../internal/isIterateeCall'),
+    trimmedLeftIndex = require('../internal/trimmedLeftIndex');
+
+/**
+ * Removes leading whitespace or specified characters from `string`.
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to trim.
+ * @param {string} [chars=whitespace] The characters to trim.
+ * @param- {Object} [guard] Enables use as a callback for functions like `_.map`.
+ * @returns {string} Returns the trimmed string.
+ * @example
+ *
+ * _.trimLeft('  abc  ');
+ * // => 'abc  '
+ *
+ * _.trimLeft('-_-abc-_-', '_-');
+ * // => 'abc-_-'
+ */
+function trimLeft(string, chars, guard) {
+  var value = string;
+  string = baseToString(string);
+  if (!string) {
+    return string;
+  }
+  if (guard ? isIterateeCall(value, chars, guard) : chars == null) {
+    return string.slice(trimmedLeftIndex(string));
+  }
+  return string.slice(charsLeftIndex(string, (chars + '')));
+}
+
+module.exports = trimLeft;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/trimRight.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/trimRight.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/trimRight.js
new file mode 100644
index 0000000..0f9be71
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/trimRight.js
@@ -0,0 +1,36 @@
+var baseToString = require('../internal/baseToString'),
+    charsRightIndex = require('../internal/charsRightIndex'),
+    isIterateeCall = require('../internal/isIterateeCall'),
+    trimmedRightIndex = require('../internal/trimmedRightIndex');
+
+/**
+ * Removes trailing whitespace or specified characters from `string`.
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to trim.
+ * @param {string} [chars=whitespace] The characters to trim.
+ * @param- {Object} [guard] Enables use as a callback for functions like `_.map`.
+ * @returns {string} Returns the trimmed string.
+ * @example
+ *
+ * _.trimRight('  abc  ');
+ * // => '  abc'
+ *
+ * _.trimRight('-_-abc-_-', '_-');
+ * // => '-_-abc'
+ */
+function trimRight(string, chars, guard) {
+  var value = string;
+  string = baseToString(string);
+  if (!string) {
+    return string;
+  }
+  if (guard ? isIterateeCall(value, chars, guard) : chars == null) {
+    return string.slice(0, trimmedRightIndex(string) + 1);
+  }
+  return string.slice(0, charsRightIndex(string, (chars + '')) + 1);
+}
+
+module.exports = trimRight;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/trunc.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/trunc.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/trunc.js
new file mode 100644
index 0000000..29e1939
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/trunc.js
@@ -0,0 +1,105 @@
+var baseToString = require('../internal/baseToString'),
+    isIterateeCall = require('../internal/isIterateeCall'),
+    isObject = require('../lang/isObject'),
+    isRegExp = require('../lang/isRegExp');
+
+/** Used as default options for `_.trunc`. */
+var DEFAULT_TRUNC_LENGTH = 30,
+    DEFAULT_TRUNC_OMISSION = '...';
+
+/** Used to match `RegExp` flags from their coerced string values. */
+var reFlags = /\w*$/;
+
+/**
+ * Truncates `string` if it's longer than the given maximum string length.
+ * The last characters of the truncated string are replaced with the omission
+ * string which defaults to "...".
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to truncate.
+ * @param {Object|number} [options] The options object or maximum string length.
+ * @param {number} [options.length=30] The maximum string length.
+ * @param {string} [options.omission='...'] The string to indicate text is omitted.
+ * @param {RegExp|string} [options.separator] The separator pattern to truncate to.
+ * @param- {Object} [guard] Enables use as a callback for functions like `_.map`.
+ * @returns {string} Returns the truncated string.
+ * @example
+ *
+ * _.trunc('hi-diddly-ho there, neighborino');
+ * // => 'hi-diddly-ho there, neighbo...'
+ *
+ * _.trunc('hi-diddly-ho there, neighborino', 24);
+ * // => 'hi-diddly-ho there, n...'
+ *
+ * _.trunc('hi-diddly-ho there, neighborino', {
+ *   'length': 24,
+ *   'separator': ' '
+ * });
+ * // => 'hi-diddly-ho there,...'
+ *
+ * _.trunc('hi-diddly-ho there, neighborino', {
+ *   'length': 24,
+ *   'separator': /,? +/
+ * });
+ * // => 'hi-diddly-ho there...'
+ *
+ * _.trunc('hi-diddly-ho there, neighborino', {
+ *   'omission': ' [...]'
+ * });
+ * // => 'hi-diddly-ho there, neig [...]'
+ */
+function trunc(string, options, guard) {
+  if (guard && isIterateeCall(string, options, guard)) {
+    options = undefined;
+  }
+  var length = DEFAULT_TRUNC_LENGTH,
+      omission = DEFAULT_TRUNC_OMISSION;
+
+  if (options != null) {
+    if (isObject(options)) {
+      var separator = 'separator' in options ? options.separator : separator;
+      length = 'length' in options ? (+options.length || 0) : length;
+      omission = 'omission' in options ? baseToString(options.omission) : omission;
+    } else {
+      length = +options || 0;
+    }
+  }
+  string = baseToString(string);
+  if (length >= string.length) {
+    return string;
+  }
+  var end = length - omission.length;
+  if (end < 1) {
+    return omission;
+  }
+  var result = string.slice(0, end);
+  if (separator == null) {
+    return result + omission;
+  }
+  if (isRegExp(separator)) {
+    if (string.slice(end).search(separator)) {
+      var match,
+          newEnd,
+          substring = string.slice(0, end);
+
+      if (!separator.global) {
+        separator = RegExp(separator.source, (reFlags.exec(separator) || '') + 'g');
+      }
+      separator.lastIndex = 0;
+      while ((match = separator.exec(substring))) {
+        newEnd = match.index;
+      }
+      result = result.slice(0, newEnd == null ? end : newEnd);
+    }
+  } else if (string.indexOf(separator, end) != end) {
+    var index = result.lastIndexOf(separator);
+    if (index > -1) {
+      result = result.slice(0, index);
+    }
+  }
+  return result + omission;
+}
+
+module.exports = trunc;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/unescape.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/unescape.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/unescape.js
new file mode 100644
index 0000000..b0266a7
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/unescape.js
@@ -0,0 +1,33 @@
+var baseToString = require('../internal/baseToString'),
+    unescapeHtmlChar = require('../internal/unescapeHtmlChar');
+
+/** Used to match HTML entities and HTML characters. */
+var reEscapedHtml = /&(?:amp|lt|gt|quot|#39|#96);/g,
+    reHasEscapedHtml = RegExp(reEscapedHtml.source);
+
+/**
+ * The inverse of `_.escape`; this method converts the HTML entities
+ * `&amp;`, `&lt;`, `&gt;`, `&quot;`, `&#39;`, and `&#96;` in `string` to their
+ * corresponding characters.
+ *
+ * **Note:** No other HTML entities are unescaped. To unescape additional HTML
+ * entities use a third-party library like [_he_](https://mths.be/he).
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to unescape.
+ * @returns {string} Returns the unescaped string.
+ * @example
+ *
+ * _.unescape('fred, barney, &amp; pebbles');
+ * // => 'fred, barney, & pebbles'
+ */
+function unescape(string) {
+  string = baseToString(string);
+  return (string && reHasEscapedHtml.test(string))
+    ? string.replace(reEscapedHtml, unescapeHtmlChar)
+    : string;
+}
+
+module.exports = unescape;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/words.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/words.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/words.js
new file mode 100644
index 0000000..3013ad6
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/string/words.js
@@ -0,0 +1,38 @@
+var baseToString = require('../internal/baseToString'),
+    isIterateeCall = require('../internal/isIterateeCall');
+
+/** Used to match words to create compound words. */
+var reWords = (function() {
+  var upper = '[A-Z\\xc0-\\xd6\\xd8-\\xde]',
+      lower = '[a-z\\xdf-\\xf6\\xf8-\\xff]+';
+
+  return RegExp(upper + '+(?=' + upper + lower + ')|' + upper + '?' + lower + '|' + upper + '+|[0-9]+', 'g');
+}());
+
+/**
+ * Splits `string` into an array of its words.
+ *
+ * @static
+ * @memberOf _
+ * @category String
+ * @param {string} [string=''] The string to inspect.
+ * @param {RegExp|string} [pattern] The pattern to match words.
+ * @param- {Object} [guard] Enables use as a callback for functions like `_.map`.
+ * @returns {Array} Returns the words of `string`.
+ * @example
+ *
+ * _.words('fred, barney, & pebbles');
+ * // => ['fred', 'barney', 'pebbles']
+ *
+ * _.words('fred, barney, & pebbles', /[^, ]+/g);
+ * // => ['fred', 'barney', '&', 'pebbles']
+ */
+function words(string, pattern, guard) {
+  if (guard && isIterateeCall(string, pattern, guard)) {
+    pattern = undefined;
+  }
+  string = baseToString(string);
+  return string.match(pattern || reWords) || [];
+}
+
+module.exports = words;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/support.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/support.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/support.js
new file mode 100644
index 0000000..5009c2c
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/support.js
@@ -0,0 +1,10 @@
+/**
+ * An object environment feature flags.
+ *
+ * @static
+ * @memberOf _
+ * @type Object
+ */
+var support = {};
+
+module.exports = support;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility.js
new file mode 100644
index 0000000..25311fa
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility.js
@@ -0,0 +1,18 @@
+module.exports = {
+  'attempt': require('./utility/attempt'),
+  'callback': require('./utility/callback'),
+  'constant': require('./utility/constant'),
+  'identity': require('./utility/identity'),
+  'iteratee': require('./utility/iteratee'),
+  'matches': require('./utility/matches'),
+  'matchesProperty': require('./utility/matchesProperty'),
+  'method': require('./utility/method'),
+  'methodOf': require('./utility/methodOf'),
+  'mixin': require('./utility/mixin'),
+  'noop': require('./utility/noop'),
+  'property': require('./utility/property'),
+  'propertyOf': require('./utility/propertyOf'),
+  'range': require('./utility/range'),
+  'times': require('./utility/times'),
+  'uniqueId': require('./utility/uniqueId')
+};

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/attempt.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/attempt.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/attempt.js
new file mode 100644
index 0000000..8d8fb98
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/attempt.js
@@ -0,0 +1,32 @@
+var isError = require('../lang/isError'),
+    restParam = require('../function/restParam');
+
+/**
+ * Attempts to invoke `func`, returning either the result or the caught error
+ * object. Any additional arguments are provided to `func` when it's invoked.
+ *
+ * @static
+ * @memberOf _
+ * @category Utility
+ * @param {Function} func The function to attempt.
+ * @returns {*} Returns the `func` result or error object.
+ * @example
+ *
+ * // avoid throwing errors for invalid selectors
+ * var elements = _.attempt(function(selector) {
+ *   return document.querySelectorAll(selector);
+ * }, '>_>');
+ *
+ * if (_.isError(elements)) {
+ *   elements = [];
+ * }
+ */
+var attempt = restParam(function(func, args) {
+  try {
+    return func.apply(undefined, args);
+  } catch(e) {
+    return isError(e) ? e : new Error(e);
+  }
+});
+
+module.exports = attempt;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/callback.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/callback.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/callback.js
new file mode 100644
index 0000000..21223d0
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/callback.js
@@ -0,0 +1,53 @@
+var baseCallback = require('../internal/baseCallback'),
+    isIterateeCall = require('../internal/isIterateeCall'),
+    isObjectLike = require('../internal/isObjectLike'),
+    matches = require('./matches');
+
+/**
+ * Creates a function that invokes `func` with the `this` binding of `thisArg`
+ * and arguments of the created function. If `func` is a property name the
+ * created callback returns the property value for a given element. If `func`
+ * is an object the created callback returns `true` for elements that contain
+ * the equivalent object properties, otherwise it returns `false`.
+ *
+ * @static
+ * @memberOf _
+ * @alias iteratee
+ * @category Utility
+ * @param {*} [func=_.identity] The value to convert to a callback.
+ * @param {*} [thisArg] The `this` binding of `func`.
+ * @param- {Object} [guard] Enables use as a callback for functions like `_.map`.
+ * @returns {Function} Returns the callback.
+ * @example
+ *
+ * var users = [
+ *   { 'user': 'barney', 'age': 36 },
+ *   { 'user': 'fred',   'age': 40 }
+ * ];
+ *
+ * // wrap to create custom callback shorthands
+ * _.callback = _.wrap(_.callback, function(callback, func, thisArg) {
+ *   var match = /^(.+?)__([gl]t)(.+)$/.exec(func);
+ *   if (!match) {
+ *     return callback(func, thisArg);
+ *   }
+ *   return function(object) {
+ *     return match[2] == 'gt'
+ *       ? object[match[1]] > match[3]
+ *       : object[match[1]] < match[3];
+ *   };
+ * });
+ *
+ * _.filter(users, 'age__gt36');
+ * // => [{ 'user': 'fred', 'age': 40 }]
+ */
+function callback(func, thisArg, guard) {
+  if (guard && isIterateeCall(func, thisArg, guard)) {
+    thisArg = undefined;
+  }
+  return isObjectLike(func)
+    ? matches(func)
+    : baseCallback(func, thisArg);
+}
+
+module.exports = callback;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/constant.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/constant.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/constant.js
new file mode 100644
index 0000000..6919b76
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/constant.js
@@ -0,0 +1,23 @@
+/**
+ * Creates a function that returns `value`.
+ *
+ * @static
+ * @memberOf _
+ * @category Utility
+ * @param {*} value The value to return from the new function.
+ * @returns {Function} Returns the new function.
+ * @example
+ *
+ * var object = { 'user': 'fred' };
+ * var getter = _.constant(object);
+ *
+ * getter() === object;
+ * // => true
+ */
+function constant(value) {
+  return function() {
+    return value;
+  };
+}
+
+module.exports = constant;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/identity.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/identity.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/identity.js
new file mode 100644
index 0000000..3a1d1d4
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/identity.js
@@ -0,0 +1,20 @@
+/**
+ * This method returns the first argument provided to it.
+ *
+ * @static
+ * @memberOf _
+ * @category Utility
+ * @param {*} value Any value.
+ * @returns {*} Returns `value`.
+ * @example
+ *
+ * var object = { 'user': 'fred' };
+ *
+ * _.identity(object) === object;
+ * // => true
+ */
+function identity(value) {
+  return value;
+}
+
+module.exports = identity;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/iteratee.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/iteratee.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/iteratee.js
new file mode 100644
index 0000000..fcfa202
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/iteratee.js
@@ -0,0 +1 @@
+module.exports = require('./callback');

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/matches.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/matches.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/matches.js
new file mode 100644
index 0000000..a182637
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/matches.js
@@ -0,0 +1,33 @@
+var baseClone = require('../internal/baseClone'),
+    baseMatches = require('../internal/baseMatches');
+
+/**
+ * Creates a function that performs a deep comparison between a given object
+ * and `source`, returning `true` if the given object has equivalent property
+ * values, else `false`.
+ *
+ * **Note:** This method supports comparing arrays, booleans, `Date` objects,
+ * numbers, `Object` objects, regexes, and strings. Objects are compared by
+ * their own, not inherited, enumerable properties. For comparing a single
+ * own or inherited property value see `_.matchesProperty`.
+ *
+ * @static
+ * @memberOf _
+ * @category Utility
+ * @param {Object} source The object of property values to match.
+ * @returns {Function} Returns the new function.
+ * @example
+ *
+ * var users = [
+ *   { 'user': 'barney', 'age': 36, 'active': true },
+ *   { 'user': 'fred',   'age': 40, 'active': false }
+ * ];
+ *
+ * _.filter(users, _.matches({ 'age': 40, 'active': false }));
+ * // => [{ 'user': 'fred', 'age': 40, 'active': false }]
+ */
+function matches(source) {
+  return baseMatches(baseClone(source, true));
+}
+
+module.exports = matches;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/matchesProperty.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/matchesProperty.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/matchesProperty.js
new file mode 100644
index 0000000..91e51a5
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/matchesProperty.js
@@ -0,0 +1,32 @@
+var baseClone = require('../internal/baseClone'),
+    baseMatchesProperty = require('../internal/baseMatchesProperty');
+
+/**
+ * Creates a function that compares the property value of `path` on a given
+ * object to `value`.
+ *
+ * **Note:** This method supports comparing arrays, booleans, `Date` objects,
+ * numbers, `Object` objects, regexes, and strings. Objects are compared by
+ * their own, not inherited, enumerable properties.
+ *
+ * @static
+ * @memberOf _
+ * @category Utility
+ * @param {Array|string} path The path of the property to get.
+ * @param {*} srcValue The value to match.
+ * @returns {Function} Returns the new function.
+ * @example
+ *
+ * var users = [
+ *   { 'user': 'barney' },
+ *   { 'user': 'fred' }
+ * ];
+ *
+ * _.find(users, _.matchesProperty('user', 'fred'));
+ * // => { 'user': 'fred' }
+ */
+function matchesProperty(path, srcValue) {
+  return baseMatchesProperty(path, baseClone(srcValue, true));
+}
+
+module.exports = matchesProperty;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/method.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/method.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/method.js
new file mode 100644
index 0000000..e315b7f
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/method.js
@@ -0,0 +1,33 @@
+var invokePath = require('../internal/invokePath'),
+    restParam = require('../function/restParam');
+
+/**
+ * Creates a function that invokes the method at `path` on a given object.
+ * Any additional arguments are provided to the invoked method.
+ *
+ * @static
+ * @memberOf _
+ * @category Utility
+ * @param {Array|string} path The path of the method to invoke.
+ * @param {...*} [args] The arguments to invoke the method with.
+ * @returns {Function} Returns the new function.
+ * @example
+ *
+ * var objects = [
+ *   { 'a': { 'b': { 'c': _.constant(2) } } },
+ *   { 'a': { 'b': { 'c': _.constant(1) } } }
+ * ];
+ *
+ * _.map(objects, _.method('a.b.c'));
+ * // => [2, 1]
+ *
+ * _.invoke(_.sortBy(objects, _.method(['a', 'b', 'c'])), 'a.b.c');
+ * // => [1, 2]
+ */
+var method = restParam(function(path, args) {
+  return function(object) {
+    return invokePath(object, path, args);
+  };
+});
+
+module.exports = method;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/methodOf.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/methodOf.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/methodOf.js
new file mode 100644
index 0000000..f61b782
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/methodOf.js
@@ -0,0 +1,32 @@
+var invokePath = require('../internal/invokePath'),
+    restParam = require('../function/restParam');
+
+/**
+ * The opposite of `_.method`; this method creates a function that invokes
+ * the method at a given path on `object`. Any additional arguments are
+ * provided to the invoked method.
+ *
+ * @static
+ * @memberOf _
+ * @category Utility
+ * @param {Object} object The object to query.
+ * @param {...*} [args] The arguments to invoke the method with.
+ * @returns {Function} Returns the new function.
+ * @example
+ *
+ * var array = _.times(3, _.constant),
+ *     object = { 'a': array, 'b': array, 'c': array };
+ *
+ * _.map(['a[2]', 'c[0]'], _.methodOf(object));
+ * // => [2, 0]
+ *
+ * _.map([['a', '2'], ['c', '0']], _.methodOf(object));
+ * // => [2, 0]
+ */
+var methodOf = restParam(function(object, args) {
+  return function(path) {
+    return invokePath(object, path, args);
+  };
+});
+
+module.exports = methodOf;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/mixin.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/mixin.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/mixin.js
new file mode 100644
index 0000000..5c4a372
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/mixin.js
@@ -0,0 +1,82 @@
+var arrayCopy = require('../internal/arrayCopy'),
+    arrayPush = require('../internal/arrayPush'),
+    baseFunctions = require('../internal/baseFunctions'),
+    isFunction = require('../lang/isFunction'),
+    isObject = require('../lang/isObject'),
+    keys = require('../object/keys');
+
+/**
+ * Adds all own enumerable function properties of a source object to the
+ * destination object. If `object` is a function then methods are added to
+ * its prototype as well.
+ *
+ * **Note:** Use `_.runInContext` to create a pristine `lodash` function to
+ * avoid conflicts caused by modifying the original.
+ *
+ * @static
+ * @memberOf _
+ * @category Utility
+ * @param {Function|Object} [object=lodash] The destination object.
+ * @param {Object} source The object of functions to add.
+ * @param {Object} [options] The options object.
+ * @param {boolean} [options.chain=true] Specify whether the functions added
+ *  are chainable.
+ * @returns {Function|Object} Returns `object`.
+ * @example
+ *
+ * function vowels(string) {
+ *   return _.filter(string, function(v) {
+ *     return /[aeiou]/i.test(v);
+ *   });
+ * }
+ *
+ * _.mixin({ 'vowels': vowels });
+ * _.vowels('fred');
+ * // => ['e']
+ *
+ * _('fred').vowels().value();
+ * // => ['e']
+ *
+ * _.mixin({ 'vowels': vowels }, { 'chain': false });
+ * _('fred').vowels();
+ * // => ['e']
+ */
+function mixin(object, source, options) {
+  var methodNames = baseFunctions(source, keys(source));
+
+  var chain = true,
+      index = -1,
+      isFunc = isFunction(object),
+      length = methodNames.length;
+
+  if (options === false) {
+    chain = false;
+  } else if (isObject(options) && 'chain' in options) {
+    chain = options.chain;
+  }
+  while (++index < length) {
+    var methodName = methodNames[index],
+        func = source[methodName];
+
+    object[methodName] = func;
+    if (isFunc) {
+      object.prototype[methodName] = (function(func) {
+        return function() {
+          var chainAll = this.__chain__;
+          if (chain || chainAll) {
+            var result = object(this.__wrapped__),
+                actions = result.__actions__ = arrayCopy(this.__actions__);
+
+            actions.push({ 'func': func, 'args': arguments, 'thisArg': object });
+            result.__chain__ = chainAll;
+            return result;
+          }
+          return func.apply(object, arrayPush([this.value()], arguments));
+        };
+      }(func));
+    }
+  }
+  return object;
+}
+
+module.exports = mixin;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/noop.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/noop.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/noop.js
new file mode 100644
index 0000000..56d6513
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/noop.js
@@ -0,0 +1,19 @@
+/**
+ * A no-operation function that returns `undefined` regardless of the
+ * arguments it receives.
+ *
+ * @static
+ * @memberOf _
+ * @category Utility
+ * @example
+ *
+ * var object = { 'user': 'fred' };
+ *
+ * _.noop(object) === undefined;
+ * // => true
+ */
+function noop() {
+  // No operation performed.
+}
+
+module.exports = noop;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/property.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/property.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/property.js
new file mode 100644
index 0000000..ddfd597
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/property.js
@@ -0,0 +1,31 @@
+var baseProperty = require('../internal/baseProperty'),
+    basePropertyDeep = require('../internal/basePropertyDeep'),
+    isKey = require('../internal/isKey');
+
+/**
+ * Creates a function that returns the property value at `path` on a
+ * given object.
+ *
+ * @static
+ * @memberOf _
+ * @category Utility
+ * @param {Array|string} path The path of the property to get.
+ * @returns {Function} Returns the new function.
+ * @example
+ *
+ * var objects = [
+ *   { 'a': { 'b': { 'c': 2 } } },
+ *   { 'a': { 'b': { 'c': 1 } } }
+ * ];
+ *
+ * _.map(objects, _.property('a.b.c'));
+ * // => [2, 1]
+ *
+ * _.pluck(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c');
+ * // => [1, 2]
+ */
+function property(path) {
+  return isKey(path) ? baseProperty(path) : basePropertyDeep(path);
+}
+
+module.exports = property;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/propertyOf.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/propertyOf.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/propertyOf.js
new file mode 100644
index 0000000..593a266
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/propertyOf.js
@@ -0,0 +1,30 @@
+var baseGet = require('../internal/baseGet'),
+    toPath = require('../internal/toPath');
+
+/**
+ * The opposite of `_.property`; this method creates a function that returns
+ * the property value at a given path on `object`.
+ *
+ * @static
+ * @memberOf _
+ * @category Utility
+ * @param {Object} object The object to query.
+ * @returns {Function} Returns the new function.
+ * @example
+ *
+ * var array = [0, 1, 2],
+ *     object = { 'a': array, 'b': array, 'c': array };
+ *
+ * _.map(['a[2]', 'c[0]'], _.propertyOf(object));
+ * // => [2, 0]
+ *
+ * _.map([['a', '2'], ['c', '0']], _.propertyOf(object));
+ * // => [2, 0]
+ */
+function propertyOf(object) {
+  return function(path) {
+    return baseGet(object, toPath(path), (path + ''));
+  };
+}
+
+module.exports = propertyOf;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/range.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/range.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/range.js
new file mode 100644
index 0000000..671939a
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/range.js
@@ -0,0 +1,66 @@
+var isIterateeCall = require('../internal/isIterateeCall');
+
+/* Native method references for those with the same name as other `lodash` methods. */
+var nativeCeil = Math.ceil,
+    nativeMax = Math.max;
+
+/**
+ * Creates an array of numbers (positive and/or negative) progressing from
+ * `start` up to, but not including, `end`. If `end` is not specified it's
+ * set to `start` with `start` then set to `0`. If `end` is less than `start`
+ * a zero-length range is created unless a negative `step` is specified.
+ *
+ * @static
+ * @memberOf _
+ * @category Utility
+ * @param {number} [start=0] The start of the range.
+ * @param {number} end The end of the range.
+ * @param {number} [step=1] The value to increment or decrement by.
+ * @returns {Array} Returns the new array of numbers.
+ * @example
+ *
+ * _.range(4);
+ * // => [0, 1, 2, 3]
+ *
+ * _.range(1, 5);
+ * // => [1, 2, 3, 4]
+ *
+ * _.range(0, 20, 5);
+ * // => [0, 5, 10, 15]
+ *
+ * _.range(0, -4, -1);
+ * // => [0, -1, -2, -3]
+ *
+ * _.range(1, 4, 0);
+ * // => [1, 1, 1]
+ *
+ * _.range(0);
+ * // => []
+ */
+function range(start, end, step) {
+  if (step && isIterateeCall(start, end, step)) {
+    end = step = undefined;
+  }
+  start = +start || 0;
+  step = step == null ? 1 : (+step || 0);
+
+  if (end == null) {
+    end = start;
+    start = 0;
+  } else {
+    end = +end || 0;
+  }
+  // Use `Array(length)` so engines like Chakra and V8 avoid slower modes.
+  // See https://youtu.be/XAqIpGU8ZZk#t=17m25s for more details.
+  var index = -1,
+      length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),
+      result = Array(length);
+
+  while (++index < length) {
+    result[index] = start;
+    start += step;
+  }
+  return result;
+}
+
+module.exports = range;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/times.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/times.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/times.js
new file mode 100644
index 0000000..9a41e2f
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/times.js
@@ -0,0 +1,60 @@
+var bindCallback = require('../internal/bindCallback');
+
+/* Native method references for those with the same name as other `lodash` methods. */
+var nativeFloor = Math.floor,
+    nativeIsFinite = global.isFinite,
+    nativeMin = Math.min;
+
+/** Used as references for the maximum length and index of an array. */
+var MAX_ARRAY_LENGTH = 4294967295;
+
+/**
+ * Invokes the iteratee function `n` times, returning an array of the results
+ * of each invocation. The `iteratee` is bound to `thisArg` and invoked with
+ * one argument; (index).
+ *
+ * @static
+ * @memberOf _
+ * @category Utility
+ * @param {number} n The number of times to invoke `iteratee`.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @param {*} [thisArg] The `this` binding of `iteratee`.
+ * @returns {Array} Returns the array of results.
+ * @example
+ *
+ * var diceRolls = _.times(3, _.partial(_.random, 1, 6, false));
+ * // => [3, 6, 4]
+ *
+ * _.times(3, function(n) {
+ *   mage.castSpell(n);
+ * });
+ * // => invokes `mage.castSpell(n)` three times with `n` of `0`, `1`, and `2`
+ *
+ * _.times(3, function(n) {
+ *   this.cast(n);
+ * }, mage);
+ * // => also invokes `mage.castSpell(n)` three times
+ */
+function times(n, iteratee, thisArg) {
+  n = nativeFloor(n);
+
+  // Exit early to avoid a JSC JIT bug in Safari 8
+  // where `Array(0)` is treated as `Array(1)`.
+  if (n < 1 || !nativeIsFinite(n)) {
+    return [];
+  }
+  var index = -1,
+      result = Array(nativeMin(n, MAX_ARRAY_LENGTH));
+
+  iteratee = bindCallback(iteratee, thisArg, 1);
+  while (++index < n) {
+    if (index < MAX_ARRAY_LENGTH) {
+      result[index] = iteratee(index);
+    } else {
+      iteratee(index);
+    }
+  }
+  return result;
+}
+
+module.exports = times;

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/222e5797/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/uniqueId.js
----------------------------------------------------------------------
diff --git a/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/uniqueId.js b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/uniqueId.js
new file mode 100644
index 0000000..88e02bf
--- /dev/null
+++ b/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash/utility/uniqueId.js
@@ -0,0 +1,27 @@
+var baseToString = require('../internal/baseToString');
+
+/** Used to generate unique IDs. */
+var idCounter = 0;
+
+/**
+ * Generates a unique ID. If `prefix` is provided the ID is appended to it.
+ *
+ * @static
+ * @memberOf _
+ * @category Utility
+ * @param {string} [prefix] The value to prefix the ID with.
+ * @returns {string} Returns the unique ID.
+ * @example
+ *
+ * _.uniqueId('contact_');
+ * // => 'contact_104'
+ *
+ * _.uniqueId();
+ * // => '105'
+ */
+function uniqueId(prefix) {
+  var id = ++idCounter;
+  return baseToString(prefix) + id;
+}
+
+module.exports = uniqueId;


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


Mime
View raw message