You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by za...@apache.org on 2015/02/20 20:38:02 UTC

[08/20] cordova-firefoxos git commit: CB-7567 Don't use adm-zip because it creates invalid zip files

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/LazyWrapper.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/LazyWrapper.js b/node_modules/archiver/node_modules/lodash/internal/LazyWrapper.js
new file mode 100644
index 0000000..b0374b4
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/LazyWrapper.js
@@ -0,0 +1,21 @@
+/** Used as references for `-Infinity` and `Infinity`. */
+var POSITIVE_INFINITY = Number.POSITIVE_INFINITY;
+
+/**
+ * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.
+ *
+ * @private
+ * @param {*} value The value to wrap.
+ */
+function LazyWrapper(value) {
+  this.__wrapped__ = value;
+  this.__actions__ = null;
+  this.__dir__ = 1;
+  this.__dropCount__ = 0;
+  this.__filtered__ = false;
+  this.__iteratees__ = null;
+  this.__takeCount__ = POSITIVE_INFINITY;
+  this.__views__ = null;
+}
+
+module.exports = LazyWrapper;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/LodashWrapper.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/LodashWrapper.js b/node_modules/archiver/node_modules/lodash/internal/LodashWrapper.js
new file mode 100644
index 0000000..faedb1a
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/LodashWrapper.js
@@ -0,0 +1,15 @@
+/**
+ * The base constructor for creating `lodash` wrapper objects.
+ *
+ * @private
+ * @param {*} value The value to wrap.
+ * @param {boolean} [chainAll] Enable chaining for all wrapper methods.
+ * @param {Array} [actions=[]] Actions to peform to resolve the unwrapped value.
+ */
+function LodashWrapper(value, chainAll, actions) {
+  this.__wrapped__ = value;
+  this.__actions__ = actions || [];
+  this.__chain__ = !!chainAll;
+}
+
+module.exports = LodashWrapper;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/MapCache.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/MapCache.js b/node_modules/archiver/node_modules/lodash/internal/MapCache.js
new file mode 100644
index 0000000..1d7ab98
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/MapCache.js
@@ -0,0 +1,24 @@
+var mapDelete = require('./mapDelete'),
+    mapGet = require('./mapGet'),
+    mapHas = require('./mapHas'),
+    mapSet = require('./mapSet');
+
+/**
+ * Creates a cache object to store key/value pairs.
+ *
+ * @private
+ * @static
+ * @name Cache
+ * @memberOf _.memoize
+ */
+function MapCache() {
+  this.__data__ = {};
+}
+
+// Add functions to the `Map` cache.
+MapCache.prototype['delete'] = mapDelete;
+MapCache.prototype.get = mapGet;
+MapCache.prototype.has = mapHas;
+MapCache.prototype.set = mapSet;
+
+module.exports = MapCache;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/SetCache.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/SetCache.js b/node_modules/archiver/node_modules/lodash/internal/SetCache.js
new file mode 100644
index 0000000..ed3dc6b
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/SetCache.js
@@ -0,0 +1,29 @@
+var cachePush = require('./cachePush'),
+    isNative = require('../lang/isNative');
+
+/** Native method references. */
+var Set = isNative(Set = global.Set) && Set;
+
+/* Native method references for those with the same name as other `lodash` methods. */
+var nativeCreate = isNative(nativeCreate = Object.create) && nativeCreate;
+
+/**
+ *
+ * Creates a cache object to store unique values.
+ *
+ * @private
+ * @param {Array} [values] The values to cache.
+ */
+function SetCache(values) {
+  var length = values ? values.length : 0;
+
+  this.data = { 'hash': nativeCreate(null), 'set': new Set };
+  while (length--) {
+    this.push(values[length]);
+  }
+}
+
+// Add functions to the `Set` cache.
+SetCache.prototype.push = cachePush;
+
+module.exports = SetCache;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/arrayCopy.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/arrayCopy.js b/node_modules/archiver/node_modules/lodash/internal/arrayCopy.js
new file mode 100644
index 0000000..fa7067f
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/arrayCopy.js
@@ -0,0 +1,20 @@
+/**
+ * Copies the values of `source` to `array`.
+ *
+ * @private
+ * @param {Array} source The array to copy values from.
+ * @param {Array} [array=[]] The array to copy values to.
+ * @returns {Array} Returns `array`.
+ */
+function arrayCopy(source, array) {
+  var index = -1,
+      length = source.length;
+
+  array || (array = Array(length));
+  while (++index < length) {
+    array[index] = source[index];
+  }
+  return array;
+}
+
+module.exports = arrayCopy;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/arrayEach.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/arrayEach.js b/node_modules/archiver/node_modules/lodash/internal/arrayEach.js
new file mode 100644
index 0000000..652fc53
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/arrayEach.js
@@ -0,0 +1,22 @@
+/**
+ * A specialized version of `_.forEach` for arrays without support for callback
+ * shorthands or `this` binding.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns `array`.
+ */
+function arrayEach(array, iteratee) {
+  var index = -1,
+      length = array.length;
+
+  while (++index < length) {
+    if (iteratee(array[index], index, array) === false) {
+      break;
+    }
+  }
+  return array;
+}
+
+module.exports = arrayEach;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/arrayEachRight.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/arrayEachRight.js b/node_modules/archiver/node_modules/lodash/internal/arrayEachRight.js
new file mode 100644
index 0000000..226307e
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/arrayEachRight.js
@@ -0,0 +1,21 @@
+/**
+ * A specialized version of `_.forEachRight` for arrays without support for
+ * callback shorthands or `this` binding.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns `array`.
+ */
+function arrayEachRight(array, iteratee) {
+  var length = array.length;
+
+  while (length--) {
+    if (iteratee(array[length], length, array) === false) {
+      break;
+    }
+  }
+  return array;
+}
+
+module.exports = arrayEachRight;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/arrayEvery.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/arrayEvery.js b/node_modules/archiver/node_modules/lodash/internal/arrayEvery.js
new file mode 100644
index 0000000..1f486a3
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/arrayEvery.js
@@ -0,0 +1,23 @@
+/**
+ * A specialized version of `_.every` for arrays without support for callback
+ * shorthands or `this` binding.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} predicate The function invoked per iteration.
+ * @returns {boolean} Returns `true` if all elements pass the predicate check,
+ *  else `false`.
+ */
+function arrayEvery(array, predicate) {
+  var index = -1,
+      length = array.length;
+
+  while (++index < length) {
+    if (!predicate(array[index], index, array)) {
+      return false;
+    }
+  }
+  return true;
+}
+
+module.exports = arrayEvery;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/arrayFilter.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/arrayFilter.js b/node_modules/archiver/node_modules/lodash/internal/arrayFilter.js
new file mode 100644
index 0000000..2aa9682
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/arrayFilter.js
@@ -0,0 +1,25 @@
+/**
+ * A specialized version of `_.filter` for arrays without support for callback
+ * shorthands or `this` binding.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} predicate The function invoked per iteration.
+ * @returns {Array} Returns the new filtered array.
+ */
+function arrayFilter(array, predicate) {
+  var index = -1,
+      length = array.length,
+      resIndex = -1,
+      result = [];
+
+  while (++index < length) {
+    var value = array[index];
+    if (predicate(value, index, array)) {
+      result[++resIndex] = value;
+    }
+  }
+  return result;
+}
+
+module.exports = arrayFilter;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/arrayMap.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/arrayMap.js b/node_modules/archiver/node_modules/lodash/internal/arrayMap.js
new file mode 100644
index 0000000..80ccb8f
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/arrayMap.js
@@ -0,0 +1,21 @@
+/**
+ * A specialized version of `_.map` for arrays without support for callback
+ * shorthands or `this` binding.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns the new mapped array.
+ */
+function arrayMap(array, iteratee) {
+  var index = -1,
+      length = array.length,
+      result = Array(length);
+
+  while (++index < length) {
+    result[index] = iteratee(array[index], index, array);
+  }
+  return result;
+}
+
+module.exports = arrayMap;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/arrayMax.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/arrayMax.js b/node_modules/archiver/node_modules/lodash/internal/arrayMax.js
new file mode 100644
index 0000000..3f62469
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/arrayMax.js
@@ -0,0 +1,25 @@
+/** Used as references for `-Infinity` and `Infinity`. */
+var NEGATIVE_INFINITY = Number.NEGATIVE_INFINITY;
+
+/**
+ * A specialized version of `_.max` for arrays without support for iteratees.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @returns {*} Returns the maximum value.
+ */
+function arrayMax(array) {
+  var index = -1,
+      length = array.length,
+      result = NEGATIVE_INFINITY;
+
+  while (++index < length) {
+    var value = array[index];
+    if (value > result) {
+      result = value;
+    }
+  }
+  return result;
+}
+
+module.exports = arrayMax;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/arrayMin.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/arrayMin.js b/node_modules/archiver/node_modules/lodash/internal/arrayMin.js
new file mode 100644
index 0000000..dd1f175
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/arrayMin.js
@@ -0,0 +1,25 @@
+/** Used as references for `-Infinity` and `Infinity`. */
+var POSITIVE_INFINITY = Number.POSITIVE_INFINITY;
+
+/**
+ * A specialized version of `_.min` for arrays without support for iteratees.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @returns {*} Returns the minimum value.
+ */
+function arrayMin(array) {
+  var index = -1,
+      length = array.length,
+      result = POSITIVE_INFINITY;
+
+  while (++index < length) {
+    var value = array[index];
+    if (value < result) {
+      result = value;
+    }
+  }
+  return result;
+}
+
+module.exports = arrayMin;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/arrayReduce.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/arrayReduce.js b/node_modules/archiver/node_modules/lodash/internal/arrayReduce.js
new file mode 100644
index 0000000..3934318
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/arrayReduce.js
@@ -0,0 +1,26 @@
+/**
+ * A specialized version of `_.reduce` for arrays without support for callback
+ * shorthands or `this` binding.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @param {*} [accumulator] The initial value.
+ * @param {boolean} [initFromArray] Specify using the first element of `array`
+ *  as the initial value.
+ * @returns {*} Returns the accumulated value.
+ */
+function arrayReduce(array, iteratee, accumulator, initFromArray) {
+  var index = -1,
+      length = array.length;
+
+  if (initFromArray && length) {
+    accumulator = array[++index];
+  }
+  while (++index < length) {
+    accumulator = iteratee(accumulator, array[index], index, array);
+  }
+  return accumulator;
+}
+
+module.exports = arrayReduce;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/arrayReduceRight.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/arrayReduceRight.js b/node_modules/archiver/node_modules/lodash/internal/arrayReduceRight.js
new file mode 100644
index 0000000..1779407
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/arrayReduceRight.js
@@ -0,0 +1,24 @@
+/**
+ * A specialized version of `_.reduceRight` for arrays without support for
+ * callback shorthands or `this` binding.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @param {*} [accumulator] The initial value.
+ * @param {boolean} [initFromArray] Specify using the last element of `array`
+ *  as the initial value.
+ * @returns {*} Returns the accumulated value.
+ */
+function arrayReduceRight(array, iteratee, accumulator, initFromArray) {
+  var length = array.length;
+  if (initFromArray && length) {
+    accumulator = array[--length];
+  }
+  while (length--) {
+    accumulator = iteratee(accumulator, array[length], length, array);
+  }
+  return accumulator;
+}
+
+module.exports = arrayReduceRight;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/arraySome.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/arraySome.js b/node_modules/archiver/node_modules/lodash/internal/arraySome.js
new file mode 100644
index 0000000..d62a12a
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/arraySome.js
@@ -0,0 +1,23 @@
+/**
+ * A specialized version of `_.some` for arrays without support for callback
+ * shorthands or `this` binding.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} predicate The function invoked per iteration.
+ * @returns {boolean} Returns `true` if any element passes the predicate check,
+ *  else `false`.
+ */
+function arraySome(array, predicate) {
+  var index = -1,
+      length = array.length;
+
+  while (++index < length) {
+    if (predicate(array[index], index, array)) {
+      return true;
+    }
+  }
+  return false;
+}
+
+module.exports = arraySome;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/assignDefaults.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/assignDefaults.js b/node_modules/archiver/node_modules/lodash/internal/assignDefaults.js
new file mode 100644
index 0000000..6777ed6
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/assignDefaults.js
@@ -0,0 +1,13 @@
+/**
+ * Used by `_.defaults` to customize its `_.assign` use.
+ *
+ * @private
+ * @param {*} objectValue The destination object property value.
+ * @param {*} sourceValue The source object property value.
+ * @returns {*} Returns the value to assign to the destination object.
+ */
+function assignDefaults(objectValue, sourceValue) {
+  return typeof objectValue == 'undefined' ? sourceValue : objectValue;
+}
+
+module.exports = assignDefaults;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/assignOwnDefaults.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/assignOwnDefaults.js b/node_modules/archiver/node_modules/lodash/internal/assignOwnDefaults.js
new file mode 100644
index 0000000..15b0fff
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/assignOwnDefaults.js
@@ -0,0 +1,26 @@
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Used by `_.template` to customize its `_.assign` use.
+ *
+ * **Note:** This method is like `assignDefaults` except that it ignores
+ * inherited property values when checking if a property is `undefined`.
+ *
+ * @private
+ * @param {*} objectValue The destination object property value.
+ * @param {*} sourceValue The source object property value.
+ * @param {string} key The key associated with the object and source values.
+ * @param {Object} object The destination object.
+ * @returns {*} Returns the value to assign to the destination object.
+ */
+function assignOwnDefaults(objectValue, sourceValue, key, object) {
+  return (typeof objectValue == 'undefined' || !hasOwnProperty.call(object, key))
+    ? sourceValue
+    : objectValue;
+}
+
+module.exports = assignOwnDefaults;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseAssign.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseAssign.js b/node_modules/archiver/node_modules/lodash/internal/baseAssign.js
new file mode 100644
index 0000000..3626c2e
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseAssign.js
@@ -0,0 +1,35 @@
+var baseCopy = require('./baseCopy'),
+    keys = require('../object/keys');
+
+/**
+ * The base implementation of `_.assign` without support for argument juggling,
+ * multiple sources, and `this` binding `customizer` functions.
+ *
+ * @private
+ * @param {Object} object The destination object.
+ * @param {Object} source The source object.
+ * @param {Function} [customizer] The function to customize assigning values.
+ * @returns {Object} Returns the destination object.
+ */
+function baseAssign(object, source, customizer) {
+  var props = keys(source);
+  if (!customizer) {
+    return baseCopy(source, object, props);
+  }
+  var index = -1,
+      length = props.length;
+
+  while (++index < length) {
+    var key = props[index],
+        value = object[key],
+        result = customizer(value, source[key], key, object, source);
+
+    if ((result === result ? result !== value : value === value) ||
+        (typeof value == 'undefined' && !(key in object))) {
+      object[key] = result;
+    }
+  }
+  return object;
+}
+
+module.exports = baseAssign;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseAt.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseAt.js b/node_modules/archiver/node_modules/lodash/internal/baseAt.js
new file mode 100644
index 0000000..51015f8
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseAt.js
@@ -0,0 +1,32 @@
+var isIndex = require('./isIndex'),
+    isLength = require('./isLength');
+
+/**
+ * The base implementation of `_.at` without support for strings and individual
+ * key arguments.
+ *
+ * @private
+ * @param {Array|Object} collection The collection to iterate over.
+ * @param {number[]|string[]} [props] The property names or indexes of elements to pick.
+ * @returns {Array} Returns the new array of picked elements.
+ */
+function baseAt(collection, props) {
+  var index = -1,
+      length = collection.length,
+      isArr = isLength(length),
+      propsLength = props.length,
+      result = Array(propsLength);
+
+  while(++index < propsLength) {
+    var key = props[index];
+    if (isArr) {
+      key = parseFloat(key);
+      result[index] = isIndex(key, length) ? collection[key] : undefined;
+    } else {
+      result[index] = collection[key];
+    }
+  }
+  return result;
+}
+
+module.exports = baseAt;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseBindAll.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseBindAll.js b/node_modules/archiver/node_modules/lodash/internal/baseBindAll.js
new file mode 100644
index 0000000..b951d72
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseBindAll.js
@@ -0,0 +1,26 @@
+var createWrapper = require('./createWrapper');
+
+/** Used to compose bitmasks for wrapper metadata. */
+var BIND_FLAG = 1;
+
+/**
+ * The base implementation of `_.bindAll` without support for individual
+ * method name arguments.
+ *
+ * @private
+ * @param {Object} object The object to bind and assign the bound methods to.
+ * @param {string[]} methodNames The object method names to bind.
+ * @returns {Object} Returns `object`.
+ */
+function baseBindAll(object, methodNames) {
+  var index = -1,
+      length = methodNames.length;
+
+  while (++index < length) {
+    var key = methodNames[index];
+    object[key] = createWrapper(object[key], BIND_FLAG, object);
+  }
+  return object;
+}
+
+module.exports = baseBindAll;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseCallback.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseCallback.js b/node_modules/archiver/node_modules/lodash/internal/baseCallback.js
new file mode 100644
index 0000000..684d67d
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseCallback.js
@@ -0,0 +1,36 @@
+var baseMatches = require('./baseMatches'),
+    baseMatchesProperty = require('./baseMatchesProperty'),
+    baseProperty = require('./baseProperty'),
+    bindCallback = require('./bindCallback'),
+    identity = require('../utility/identity'),
+    isBindable = require('./isBindable');
+
+/**
+ * The base implementation of `_.callback` which supports specifying the
+ * number of arguments to provide to `func`.
+ *
+ * @private
+ * @param {*} [func=_.identity] The value to convert to a callback.
+ * @param {*} [thisArg] The `this` binding of `func`.
+ * @param {number} [argCount] The number of arguments to provide to `func`.
+ * @returns {Function} Returns the callback.
+ */
+function baseCallback(func, thisArg, argCount) {
+  var type = typeof func;
+  if (type == 'function') {
+    return (typeof thisArg != 'undefined' && isBindable(func))
+      ? bindCallback(func, thisArg, argCount)
+      : func;
+  }
+  if (func == null) {
+    return identity;
+  }
+  if (type == 'object') {
+    return baseMatches(func);
+  }
+  return typeof thisArg == 'undefined'
+    ? baseProperty(func + '')
+    : baseMatchesProperty(func + '', thisArg);
+}
+
+module.exports = baseCallback;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseClone.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseClone.js b/node_modules/archiver/node_modules/lodash/internal/baseClone.js
new file mode 100644
index 0000000..5f8587a
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseClone.js
@@ -0,0 +1,130 @@
+var arrayCopy = require('./arrayCopy'),
+    arrayEach = require('./arrayEach'),
+    baseCopy = require('./baseCopy'),
+    baseForOwn = require('./baseForOwn'),
+    initCloneArray = require('./initCloneArray'),
+    initCloneByTag = require('./initCloneByTag'),
+    initCloneObject = require('./initCloneObject'),
+    isArray = require('../lang/isArray'),
+    isObject = require('../lang/isObject'),
+    keys = require('../object/keys');
+
+/** `Object#toString` result references. */
+var argsTag = '[object Arguments]',
+    arrayTag = '[object Array]',
+    boolTag = '[object Boolean]',
+    dateTag = '[object Date]',
+    errorTag = '[object Error]',
+    funcTag = '[object Function]',
+    mapTag = '[object Map]',
+    numberTag = '[object Number]',
+    objectTag = '[object Object]',
+    regexpTag = '[object RegExp]',
+    setTag = '[object Set]',
+    stringTag = '[object String]',
+    weakMapTag = '[object WeakMap]';
+
+var arrayBufferTag = '[object ArrayBuffer]',
+    float32Tag = '[object Float32Array]',
+    float64Tag = '[object Float64Array]',
+    int8Tag = '[object Int8Array]',
+    int16Tag = '[object Int16Array]',
+    int32Tag = '[object Int32Array]',
+    uint8Tag = '[object Uint8Array]',
+    uint8ClampedTag = '[object Uint8ClampedArray]',
+    uint16Tag = '[object Uint16Array]',
+    uint32Tag = '[object Uint32Array]';
+
+/** Used to identify `toStringTag` values supported by `_.clone`. */
+var cloneableTags = {};
+cloneableTags[argsTag] = cloneableTags[arrayTag] =
+cloneableTags[arrayBufferTag] = cloneableTags[boolTag] =
+cloneableTags[dateTag] = cloneableTags[float32Tag] =
+cloneableTags[float64Tag] = cloneableTags[int8Tag] =
+cloneableTags[int16Tag] = cloneableTags[int32Tag] =
+cloneableTags[numberTag] = cloneableTags[objectTag] =
+cloneableTags[regexpTag] = cloneableTags[stringTag] =
+cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
+cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
+cloneableTags[errorTag] = cloneableTags[funcTag] =
+cloneableTags[mapTag] = cloneableTags[setTag] =
+cloneableTags[weakMapTag] = false;
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the `toStringTag` of values.
+ * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * for more details.
+ */
+var objToString = objectProto.toString;
+
+/**
+ * The base implementation of `_.clone` without support for argument juggling
+ * and `this` binding `customizer` functions.
+ *
+ * @private
+ * @param {*} value The value to clone.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @param {Function} [customizer] The function to customize cloning values.
+ * @param {string} [key] The key of `value`.
+ * @param {Object} [object] The object `value` belongs to.
+ * @param {Array} [stackA=[]] Tracks traversed source objects.
+ * @param {Array} [stackB=[]] Associates clones with source counterparts.
+ * @returns {*} Returns the cloned value.
+ */
+function baseClone(value, isDeep, customizer, key, object, stackA, stackB) {
+  var result;
+  if (customizer) {
+    result = object ? customizer(value, key, object) : customizer(value);
+  }
+  if (typeof result != 'undefined') {
+    return result;
+  }
+  if (!isObject(value)) {
+    return value;
+  }
+  var isArr = isArray(value);
+  if (isArr) {
+    result = initCloneArray(value);
+    if (!isDeep) {
+      return arrayCopy(value, result);
+    }
+  } else {
+    var tag = objToString.call(value),
+        isFunc = tag == funcTag;
+
+    if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
+      result = initCloneObject(isFunc ? {} : value);
+      if (!isDeep) {
+        return baseCopy(value, result, keys(value));
+      }
+    } else {
+      return cloneableTags[tag]
+        ? initCloneByTag(value, tag, isDeep)
+        : (object ? value : {});
+    }
+  }
+  // Check for circular references and return corresponding clone.
+  stackA || (stackA = []);
+  stackB || (stackB = []);
+
+  var length = stackA.length;
+  while (length--) {
+    if (stackA[length] == value) {
+      return stackB[length];
+    }
+  }
+  // Add the source value to the stack of traversed objects and associate it with its clone.
+  stackA.push(value);
+  stackB.push(result);
+
+  // Recursively populate clone (susceptible to call stack limits).
+  (isArr ? arrayEach : baseForOwn)(value, function(subValue, key) {
+    result[key] = baseClone(subValue, isDeep, customizer, key, value, stackA, stackB);
+  });
+  return result;
+}
+
+module.exports = baseClone;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseCompareAscending.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseCompareAscending.js b/node_modules/archiver/node_modules/lodash/internal/baseCompareAscending.js
new file mode 100644
index 0000000..3f0ebfb
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseCompareAscending.js
@@ -0,0 +1,25 @@
+/**
+ * The base implementation of `compareAscending` which compares values and
+ * sorts them in ascending order without guaranteeing a stable sort.
+ *
+ * @private
+ * @param {*} value The value to compare to `other`.
+ * @param {*} other The value to compare to `value`.
+ * @returns {number} Returns the sort order indicator for `value`.
+ */
+function baseCompareAscending(value, other) {
+  if (value !== other) {
+    var valIsReflexive = value === value,
+        othIsReflexive = other === other;
+
+    if (value > other || !valIsReflexive || (typeof value == 'undefined' && othIsReflexive)) {
+      return 1;
+    }
+    if (value < other || !othIsReflexive || (typeof other == 'undefined' && valIsReflexive)) {
+      return -1;
+    }
+  }
+  return 0;
+}
+
+module.exports = baseCompareAscending;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseCopy.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseCopy.js b/node_modules/archiver/node_modules/lodash/internal/baseCopy.js
new file mode 100644
index 0000000..6d713a6
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseCopy.js
@@ -0,0 +1,25 @@
+/**
+ * Copies the properties of `source` to `object`.
+ *
+ * @private
+ * @param {Object} source The object to copy properties from.
+ * @param {Object} [object={}] The object to copy properties to.
+ * @param {Array} props The property names to copy.
+ * @returns {Object} Returns `object`.
+ */
+function baseCopy(source, object, props) {
+  if (!props) {
+    props = object;
+    object = {};
+  }
+  var index = -1,
+      length = props.length;
+
+  while (++index < length) {
+    var key = props[index];
+    object[key] = source[key];
+  }
+  return object;
+}
+
+module.exports = baseCopy;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseCreate.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseCreate.js b/node_modules/archiver/node_modules/lodash/internal/baseCreate.js
new file mode 100644
index 0000000..da6725f
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseCreate.js
@@ -0,0 +1,23 @@
+var isObject = require('../lang/isObject');
+
+/**
+ * The base implementation of `_.create` without support for assigning
+ * properties to the created object.
+ *
+ * @private
+ * @param {Object} prototype The object to inherit from.
+ * @returns {Object} Returns the new object.
+ */
+var baseCreate = (function() {
+  function Object() {}
+  return function(prototype) {
+    if (isObject(prototype)) {
+      Object.prototype = prototype;
+      var result = new Object;
+      Object.prototype = null;
+    }
+    return result || global.Object();
+  };
+}());
+
+module.exports = baseCreate;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseDelay.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseDelay.js b/node_modules/archiver/node_modules/lodash/internal/baseDelay.js
new file mode 100644
index 0000000..12fc5ff
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseDelay.js
@@ -0,0 +1,23 @@
+var baseSlice = require('./baseSlice');
+
+/** Used as the `TypeError` message for "Functions" methods. */
+var FUNC_ERROR_TEXT = 'Expected a function';
+
+/**
+ * The base implementation of `_.delay` and `_.defer` which accepts an index
+ * of where to slice the arguments to provide to `func`.
+ *
+ * @private
+ * @param {Function} func The function to delay.
+ * @param {number} wait The number of milliseconds to delay invocation.
+ * @param {Object} args The `arguments` object to slice and provide to `func`.
+ * @returns {number} Returns the timer id.
+ */
+function baseDelay(func, wait, args, fromIndex) {
+  if (typeof func != 'function') {
+    throw new TypeError(FUNC_ERROR_TEXT);
+  }
+  return setTimeout(function() { func.apply(undefined, baseSlice(args, fromIndex)); }, wait);
+}
+
+module.exports = baseDelay;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseDifference.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseDifference.js b/node_modules/archiver/node_modules/lodash/internal/baseDifference.js
new file mode 100644
index 0000000..72d9e90
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseDifference.js
@@ -0,0 +1,52 @@
+var baseIndexOf = require('./baseIndexOf'),
+    cacheIndexOf = require('./cacheIndexOf'),
+    createCache = require('./createCache');
+
+/**
+ * The base implementation of `_.difference` which accepts a single array
+ * of values to exclude.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {Array} values The values to exclude.
+ * @returns {Array} Returns the new array of filtered values.
+ */
+function baseDifference(array, values) {
+  var length = array ? array.length : 0,
+      result = [];
+
+  if (!length) {
+    return result;
+  }
+  var index = -1,
+      indexOf = baseIndexOf,
+      isCommon = true,
+      cache = isCommon && values.length >= 200 && createCache(values),
+      valuesLength = values.length;
+
+  if (cache) {
+    indexOf = cacheIndexOf;
+    isCommon = false;
+    values = cache;
+  }
+  outer:
+  while (++index < length) {
+    var value = array[index];
+
+    if (isCommon && value === value) {
+      var valuesIndex = valuesLength;
+      while (valuesIndex--) {
+        if (values[valuesIndex] === value) {
+          continue outer;
+        }
+      }
+      result.push(value);
+    }
+    else if (indexOf(values, value) < 0) {
+      result.push(value);
+    }
+  }
+  return result;
+}
+
+module.exports = baseDifference;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseEach.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseEach.js b/node_modules/archiver/node_modules/lodash/internal/baseEach.js
new file mode 100644
index 0000000..ac4863e
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseEach.js
@@ -0,0 +1,30 @@
+var baseForOwn = require('./baseForOwn'),
+    isLength = require('./isLength'),
+    toObject = require('./toObject');
+
+/**
+ * The base implementation of `_.forEach` without support for callback
+ * shorthands and `this` binding.
+ *
+ * @private
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array|Object|string} Returns `collection`.
+ */
+function baseEach(collection, iteratee) {
+  var length = collection ? collection.length : 0;
+  if (!isLength(length)) {
+    return baseForOwn(collection, iteratee);
+  }
+  var index = -1,
+      iterable = toObject(collection);
+
+  while (++index < length) {
+    if (iteratee(iterable[index], index, iterable) === false) {
+      break;
+    }
+  }
+  return collection;
+}
+
+module.exports = baseEach;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseEachRight.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseEachRight.js b/node_modules/archiver/node_modules/lodash/internal/baseEachRight.js
new file mode 100644
index 0000000..65e5ba8
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseEachRight.js
@@ -0,0 +1,28 @@
+var baseForOwnRight = require('./baseForOwnRight'),
+    isLength = require('./isLength'),
+    toObject = require('./toObject');
+
+/**
+ * The base implementation of `_.forEachRight` without support for callback
+ * shorthands and `this` binding.
+ *
+ * @private
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array|Object|string} Returns `collection`.
+ */
+function baseEachRight(collection, iteratee) {
+  var length = collection ? collection.length : 0;
+  if (!isLength(length)) {
+    return baseForOwnRight(collection, iteratee);
+  }
+  var iterable = toObject(collection);
+  while (length--) {
+    if (iteratee(iterable[length], length, iterable) === false) {
+      break;
+    }
+  }
+  return collection;
+}
+
+module.exports = baseEachRight;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseEvery.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseEvery.js b/node_modules/archiver/node_modules/lodash/internal/baseEvery.js
new file mode 100644
index 0000000..c6f3adb
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseEvery.js
@@ -0,0 +1,22 @@
+var baseEach = require('./baseEach');
+
+/**
+ * The base implementation of `_.every` without support for callback
+ * shorthands or `this` binding.
+ *
+ * @private
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} predicate The function invoked per iteration.
+ * @returns {boolean} Returns `true` if all elements pass the predicate check,
+ *  else `false`
+ */
+function baseEvery(collection, predicate) {
+  var result = true;
+  baseEach(collection, function(value, index, collection) {
+    result = !!predicate(value, index, collection);
+    return result;
+  });
+  return result;
+}
+
+module.exports = baseEvery;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseFill.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseFill.js b/node_modules/archiver/node_modules/lodash/internal/baseFill.js
new file mode 100644
index 0000000..3b90582
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseFill.js
@@ -0,0 +1,31 @@
+/**
+ * The base implementation of `_.fill` without an iteratee call guard.
+ *
+ * @private
+ * @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`.
+ */
+function baseFill(array, value, start, end) {
+  var length = array.length;
+
+  start = start == null ? 0 : (+start || 0);
+  if (start < 0) {
+    start = -start > length ? 0 : (length + start);
+  }
+  end = (typeof end == 'undefined' || end > length) ? length : (+end || 0);
+  if (end < 0) {
+    end += length;
+  }
+  length = start > end ? 0 : end >>> 0;
+  start >>>= 0;
+
+  while (start < length) {
+    array[start++] = value;
+  }
+  return array;
+}
+
+module.exports = baseFill;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseFilter.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseFilter.js b/node_modules/archiver/node_modules/lodash/internal/baseFilter.js
new file mode 100644
index 0000000..5536fdb
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseFilter.js
@@ -0,0 +1,22 @@
+var baseEach = require('./baseEach');
+
+/**
+ * The base implementation of `_.filter` without support for callback
+ * shorthands or `this` binding.
+ *
+ * @private
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} predicate The function invoked per iteration.
+ * @returns {Array} Returns the new filtered array.
+ */
+function baseFilter(collection, predicate) {
+  var result = [];
+  baseEach(collection, function(value, index, collection) {
+    if (predicate(value, index, collection)) {
+      result.push(value);
+    }
+  });
+  return result;
+}
+
+module.exports = baseFilter;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseFind.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseFind.js b/node_modules/archiver/node_modules/lodash/internal/baseFind.js
new file mode 100644
index 0000000..be5848f
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseFind.js
@@ -0,0 +1,25 @@
+/**
+ * The base implementation of `_.find`, `_.findLast`, `_.findKey`, and `_.findLastKey`,
+ * without support for callback shorthands and `this` binding, which iterates
+ * over `collection` using the provided `eachFunc`.
+ *
+ * @private
+ * @param {Array|Object|string} collection The collection to search.
+ * @param {Function} predicate The function invoked per iteration.
+ * @param {Function} eachFunc The function to iterate over `collection`.
+ * @param {boolean} [retKey] Specify returning the key of the found element
+ *  instead of the element itself.
+ * @returns {*} Returns the found element or its key, else `undefined`.
+ */
+function baseFind(collection, predicate, eachFunc, retKey) {
+  var result;
+  eachFunc(collection, function(value, key, collection) {
+    if (predicate(value, key, collection)) {
+      result = retKey ? key : value;
+      return false;
+    }
+  });
+  return result;
+}
+
+module.exports = baseFind;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseFlatten.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseFlatten.js b/node_modules/archiver/node_modules/lodash/internal/baseFlatten.js
new file mode 100644
index 0000000..996fc74
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseFlatten.js
@@ -0,0 +1,45 @@
+var isArguments = require('../lang/isArguments'),
+    isArray = require('../lang/isArray'),
+    isLength = require('./isLength'),
+    isObjectLike = require('./isObjectLike');
+
+/**
+ * The base implementation of `_.flatten` with added support for restricting
+ * flattening and specifying the start index.
+ *
+ * @private
+ * @param {Array} array The array to flatten.
+ * @param {boolean} [isDeep] Specify a deep flatten.
+ * @param {boolean} [isStrict] Restrict flattening to arrays and `arguments` objects.
+ * @param {number} [fromIndex=0] The index to start from.
+ * @returns {Array} Returns the new flattened array.
+ */
+function baseFlatten(array, isDeep, isStrict, fromIndex) {
+  var index = (fromIndex || 0) - 1,
+      length = array.length,
+      resIndex = -1,
+      result = [];
+
+  while (++index < length) {
+    var value = array[index];
+
+    if (isObjectLike(value) && isLength(value.length) && (isArray(value) || isArguments(value))) {
+      if (isDeep) {
+        // Recursively flatten arrays (susceptible to call stack limits).
+        value = baseFlatten(value, isDeep, isStrict);
+      }
+      var valIndex = -1,
+          valLength = value.length;
+
+      result.length += valLength;
+      while (++valIndex < valLength) {
+        result[++resIndex] = value[valIndex];
+      }
+    } else if (!isStrict) {
+      result[++resIndex] = value;
+    }
+  }
+  return result;
+}
+
+module.exports = baseFlatten;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseFor.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseFor.js b/node_modules/archiver/node_modules/lodash/internal/baseFor.js
new file mode 100644
index 0000000..1141c65
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseFor.js
@@ -0,0 +1,30 @@
+var toObject = require('./toObject');
+
+/**
+ * The base implementation of `baseForIn` and `baseForOwn` which iterates
+ * over `object` properties returned by `keysFunc` invoking `iteratee` for
+ * each property. Iterator functions may exit iteration early by explicitly
+ * returning `false`.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @param {Function} keysFunc The function to get the keys of `object`.
+ * @returns {Object} Returns `object`.
+ */
+function baseFor(object, iteratee, keysFunc) {
+  var index = -1,
+      iterable = toObject(object),
+      props = keysFunc(object),
+      length = props.length;
+
+  while (++index < length) {
+    var key = props[index];
+    if (iteratee(iterable[key], key, iterable) === false) {
+      break;
+    }
+  }
+  return object;
+}
+
+module.exports = baseFor;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseForIn.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseForIn.js b/node_modules/archiver/node_modules/lodash/internal/baseForIn.js
new file mode 100644
index 0000000..47d622c
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseForIn.js
@@ -0,0 +1,17 @@
+var baseFor = require('./baseFor'),
+    keysIn = require('../object/keysIn');
+
+/**
+ * The base implementation of `_.forIn` without support for callback
+ * shorthands and `this` binding.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Object} Returns `object`.
+ */
+function baseForIn(object, iteratee) {
+  return baseFor(object, iteratee, keysIn);
+}
+
+module.exports = baseForIn;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseForOwn.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseForOwn.js b/node_modules/archiver/node_modules/lodash/internal/baseForOwn.js
new file mode 100644
index 0000000..bef4d4c
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseForOwn.js
@@ -0,0 +1,17 @@
+var baseFor = require('./baseFor'),
+    keys = require('../object/keys');
+
+/**
+ * The base implementation of `_.forOwn` without support for callback
+ * shorthands and `this` binding.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Object} Returns `object`.
+ */
+function baseForOwn(object, iteratee) {
+  return baseFor(object, iteratee, keys);
+}
+
+module.exports = baseForOwn;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseForOwnRight.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseForOwnRight.js b/node_modules/archiver/node_modules/lodash/internal/baseForOwnRight.js
new file mode 100644
index 0000000..bb916bc
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseForOwnRight.js
@@ -0,0 +1,17 @@
+var baseForRight = require('./baseForRight'),
+    keys = require('../object/keys');
+
+/**
+ * The base implementation of `_.forOwnRight` without support for callback
+ * shorthands and `this` binding.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Object} Returns `object`.
+ */
+function baseForOwnRight(object, iteratee) {
+  return baseForRight(object, iteratee, keys);
+}
+
+module.exports = baseForOwnRight;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseForRight.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseForRight.js b/node_modules/archiver/node_modules/lodash/internal/baseForRight.js
new file mode 100644
index 0000000..455dc9e
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseForRight.js
@@ -0,0 +1,27 @@
+var toObject = require('./toObject');
+
+/**
+ * This function is like `baseFor` except that it iterates over properties
+ * in the opposite order.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @param {Function} keysFunc The function to get the keys of `object`.
+ * @returns {Object} Returns `object`.
+ */
+function baseForRight(object, iteratee, keysFunc) {
+  var iterable = toObject(object),
+      props = keysFunc(object),
+      length = props.length;
+
+  while (length--) {
+    var key = props[length];
+    if (iteratee(iterable[key], key, iterable) === false) {
+      break;
+    }
+  }
+  return object;
+}
+
+module.exports = baseForRight;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseFunctions.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseFunctions.js b/node_modules/archiver/node_modules/lodash/internal/baseFunctions.js
new file mode 100644
index 0000000..d56ea9c
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseFunctions.js
@@ -0,0 +1,27 @@
+var isFunction = require('../lang/isFunction');
+
+/**
+ * The base implementation of `_.functions` which creates an array of
+ * `object` function property names filtered from those provided.
+ *
+ * @private
+ * @param {Object} object The object to inspect.
+ * @param {Array} props The property names to filter.
+ * @returns {Array} Returns the new array of filtered property names.
+ */
+function baseFunctions(object, props) {
+  var index = -1,
+      length = props.length,
+      resIndex = -1,
+      result = [];
+
+  while (++index < length) {
+    var key = props[index];
+    if (isFunction(object[key])) {
+      result[++resIndex] = key;
+    }
+  }
+  return result;
+}
+
+module.exports = baseFunctions;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseIndexOf.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseIndexOf.js b/node_modules/archiver/node_modules/lodash/internal/baseIndexOf.js
new file mode 100644
index 0000000..9e13fab
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseIndexOf.js
@@ -0,0 +1,27 @@
+var indexOfNaN = require('./indexOfNaN');
+
+/**
+ * The base implementation of `_.indexOf` without support for binary searches.
+ *
+ * @private
+ * @param {Array} array The array to search.
+ * @param {*} value The value to search for.
+ * @param {number} [fromIndex=0] The index to search from.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ */
+function baseIndexOf(array, value, fromIndex) {
+  if (value !== value) {
+    return indexOfNaN(array, fromIndex);
+  }
+  var index = (fromIndex || 0) - 1,
+      length = array.length;
+
+  while (++index < length) {
+    if (array[index] === value) {
+      return index;
+    }
+  }
+  return -1;
+}
+
+module.exports = baseIndexOf;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseInvoke.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseInvoke.js b/node_modules/archiver/node_modules/lodash/internal/baseInvoke.js
new file mode 100644
index 0000000..76b566c
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseInvoke.js
@@ -0,0 +1,28 @@
+var baseEach = require('./baseEach'),
+    isLength = require('./isLength');
+
+/**
+ * The base implementation of `_.invoke` which requires additional arguments
+ * to be provided as an array of arguments rather than individually.
+ *
+ * @private
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|string} methodName The name of the method to invoke or
+ *  the function invoked per iteration.
+ * @param {Array} [args] The arguments to invoke the method with.
+ * @returns {Array} Returns the array of results.
+ */
+function baseInvoke(collection, methodName, args) {
+  var index = -1,
+      isFunc = typeof methodName == 'function',
+      length = collection ? collection.length : 0,
+      result = isLength(length) ? Array(length) : [];
+
+  baseEach(collection, function(value) {
+    var func = isFunc ? methodName : (value != null && value[methodName]);
+    result[++index] = func ? func.apply(value, args) : undefined;
+  });
+  return result;
+}
+
+module.exports = baseInvoke;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseIsEqual.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseIsEqual.js b/node_modules/archiver/node_modules/lodash/internal/baseIsEqual.js
new file mode 100644
index 0000000..8672d10
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseIsEqual.js
@@ -0,0 +1,34 @@
+var baseIsEqualDeep = require('./baseIsEqualDeep');
+
+/**
+ * The base implementation of `_.isEqual` without support for `this` binding
+ * `customizer` functions.
+ *
+ * @private
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @param {Function} [customizer] The function to customize comparing values.
+ * @param {boolean} [isWhere] Specify performing partial comparisons.
+ * @param {Array} [stackA] Tracks traversed `value` objects.
+ * @param {Array} [stackB] Tracks traversed `other` objects.
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
+ */
+function baseIsEqual(value, other, customizer, isWhere, stackA, stackB) {
+  // Exit early for identical values.
+  if (value === other) {
+    // Treat `+0` vs. `-0` as not equal.
+    return value !== 0 || (1 / value == 1 / other);
+  }
+  var valType = typeof value,
+      othType = typeof other;
+
+  // Exit early for unlike primitive values.
+  if ((valType != 'function' && valType != 'object' && othType != 'function' && othType != 'object') ||
+      value == null || other == null) {
+    // Return `false` unless both values are `NaN`.
+    return value !== value && other !== other;
+  }
+  return baseIsEqualDeep(value, other, baseIsEqual, customizer, isWhere, stackA, stackB);
+}
+
+module.exports = baseIsEqual;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseIsEqualDeep.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseIsEqualDeep.js b/node_modules/archiver/node_modules/lodash/internal/baseIsEqualDeep.js
new file mode 100644
index 0000000..8fb89ae
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseIsEqualDeep.js
@@ -0,0 +1,101 @@
+var equalArrays = require('./equalArrays'),
+    equalByTag = require('./equalByTag'),
+    equalObjects = require('./equalObjects'),
+    isArray = require('../lang/isArray'),
+    isTypedArray = require('../lang/isTypedArray');
+
+/** `Object#toString` result references. */
+var argsTag = '[object Arguments]',
+    arrayTag = '[object Array]',
+    objectTag = '[object Object]';
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Used to resolve the `toStringTag` of values.
+ * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * for more details.
+ */
+var objToString = objectProto.toString;
+
+/**
+ * A specialized version of `baseIsEqual` for arrays and objects which performs
+ * deep comparisons and tracks traversed objects enabling objects with circular
+ * references to be compared.
+ *
+ * @private
+ * @param {Object} object The object to compare.
+ * @param {Object} other The other object to compare.
+ * @param {Function} equalFunc The function to determine equivalents of values.
+ * @param {Function} [customizer] The function to customize comparing objects.
+ * @param {boolean} [isWhere] Specify performing partial comparisons.
+ * @param {Array} [stackA=[]] Tracks traversed `value` objects.
+ * @param {Array} [stackB=[]] Tracks traversed `other` objects.
+ * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
+ */
+function baseIsEqualDeep(object, other, equalFunc, customizer, isWhere, stackA, stackB) {
+  var objIsArr = isArray(object),
+      othIsArr = isArray(other),
+      objTag = arrayTag,
+      othTag = arrayTag;
+
+  if (!objIsArr) {
+    objTag = objToString.call(object);
+    if (objTag == argsTag) {
+      objTag = objectTag;
+    } else if (objTag != objectTag) {
+      objIsArr = isTypedArray(object);
+    }
+  }
+  if (!othIsArr) {
+    othTag = objToString.call(other);
+    if (othTag == argsTag) {
+      othTag = objectTag;
+    } else if (othTag != objectTag) {
+      othIsArr = isTypedArray(other);
+    }
+  }
+  var objIsObj = objTag == objectTag,
+      othIsObj = othTag == objectTag,
+      isSameTag = objTag == othTag;
+
+  if (isSameTag && !(objIsArr || objIsObj)) {
+    return equalByTag(object, other, objTag);
+  }
+  var valWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
+      othWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
+
+  if (valWrapped || othWrapped) {
+    return equalFunc(valWrapped ? object.value() : object, othWrapped ? other.value() : other, customizer, isWhere, stackA, stackB);
+  }
+  if (!isSameTag) {
+    return false;
+  }
+  // Assume cyclic values are equal.
+  // For more information on detecting circular references see https://es5.github.io/#JO.
+  stackA || (stackA = []);
+  stackB || (stackB = []);
+
+  var length = stackA.length;
+  while (length--) {
+    if (stackA[length] == object) {
+      return stackB[length] == other;
+    }
+  }
+  // Add `object` and `other` to the stack of traversed objects.
+  stackA.push(object);
+  stackB.push(other);
+
+  var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isWhere, stackA, stackB);
+
+  stackA.pop();
+  stackB.pop();
+
+  return result;
+}
+
+module.exports = baseIsEqualDeep;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseIsMatch.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseIsMatch.js b/node_modules/archiver/node_modules/lodash/internal/baseIsMatch.js
new file mode 100644
index 0000000..8409e1f
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseIsMatch.js
@@ -0,0 +1,58 @@
+var baseIsEqual = require('./baseIsEqual');
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * The base implementation of `_.isMatch` without support for callback
+ * shorthands or `this` binding.
+ *
+ * @private
+ * @param {Object} object The object to inspect.
+ * @param {Array} props The source property names to match.
+ * @param {Array} values The source values to match.
+ * @param {Array} strictCompareFlags Strict comparison flags for source values.
+ * @param {Function} [customizer] The function to customize comparing objects.
+ * @returns {boolean} Returns `true` if `object` is a match, else `false`.
+ */
+function baseIsMatch(object, props, values, strictCompareFlags, customizer) {
+  var length = props.length;
+  if (object == null) {
+    return !length;
+  }
+  var index = -1,
+      noCustomizer = !customizer;
+
+  while (++index < length) {
+    if ((noCustomizer && strictCompareFlags[index])
+          ? values[index] !== object[props[index]]
+          : !hasOwnProperty.call(object, props[index])
+        ) {
+      return false;
+    }
+  }
+  index = -1;
+  while (++index < length) {
+    var key = props[index];
+    if (noCustomizer && strictCompareFlags[index]) {
+      var result = hasOwnProperty.call(object, key);
+    } else {
+      var objValue = object[key],
+          srcValue = values[index];
+
+      result = customizer ? customizer(objValue, srcValue, key) : undefined;
+      if (typeof result == 'undefined') {
+        result = baseIsEqual(srcValue, objValue, customizer, true);
+      }
+    }
+    if (!result) {
+      return false;
+    }
+  }
+  return true;
+}
+
+module.exports = baseIsMatch;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseMap.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseMap.js b/node_modules/archiver/node_modules/lodash/internal/baseMap.js
new file mode 100644
index 0000000..b1b26c8
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseMap.js
@@ -0,0 +1,20 @@
+var baseEach = require('./baseEach');
+
+/**
+ * The base implementation of `_.map` without support for callback shorthands
+ * or `this` binding.
+ *
+ * @private
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns the new mapped array.
+ */
+function baseMap(collection, iteratee) {
+  var result = [];
+  baseEach(collection, function(value, key, collection) {
+    result.push(iteratee(value, key, collection));
+  });
+  return result;
+}
+
+module.exports = baseMap;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseMatches.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseMatches.js b/node_modules/archiver/node_modules/lodash/internal/baseMatches.js
new file mode 100644
index 0000000..381a1d0
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseMatches.js
@@ -0,0 +1,45 @@
+var baseIsMatch = require('./baseIsMatch'),
+    isStrictComparable = require('./isStrictComparable'),
+    keys = require('../object/keys');
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * The base implementation of `_.matches` which does not clone `source`.
+ *
+ * @private
+ * @param {Object} source The object of property values to match.
+ * @returns {Function} Returns the new function.
+ */
+function baseMatches(source) {
+  var props = keys(source),
+      length = props.length;
+
+  if (length == 1) {
+    var key = props[0],
+        value = source[key];
+
+    if (isStrictComparable(value)) {
+      return function(object) {
+        return object != null && value === object[key] && hasOwnProperty.call(object, key);
+      };
+    }
+  }
+  var values = Array(length),
+      strictCompareFlags = Array(length);
+
+  while (length--) {
+    value = source[props[length]];
+    values[length] = value;
+    strictCompareFlags[length] = isStrictComparable(value);
+  }
+  return function(object) {
+    return baseIsMatch(object, props, values, strictCompareFlags);
+  };
+}
+
+module.exports = baseMatches;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseMatchesProperty.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseMatchesProperty.js b/node_modules/archiver/node_modules/lodash/internal/baseMatchesProperty.js
new file mode 100644
index 0000000..49e31e6
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseMatchesProperty.js
@@ -0,0 +1,24 @@
+var baseIsEqual = require('./baseIsEqual'),
+    isStrictComparable = require('./isStrictComparable');
+
+/**
+ * The base implementation of `_.matchesProperty` which does not coerce `key`
+ * to a string.
+ *
+ * @private
+ * @param {string} key The key of the property to get.
+ * @param {*} value The value to compare.
+ * @returns {Function} Returns the new function.
+ */
+function baseMatchesProperty(key, value) {
+  if (isStrictComparable(value)) {
+    return function(object) {
+      return object != null && object[key] === value;
+    };
+  }
+  return function(object) {
+    return object != null && baseIsEqual(value, object[key], null, true);
+  };
+}
+
+module.exports = baseMatchesProperty;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseMerge.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseMerge.js b/node_modules/archiver/node_modules/lodash/internal/baseMerge.js
new file mode 100644
index 0000000..ddd36bf
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseMerge.js
@@ -0,0 +1,45 @@
+var arrayEach = require('./arrayEach'),
+    baseForOwn = require('./baseForOwn'),
+    baseMergeDeep = require('./baseMergeDeep'),
+    isArray = require('../lang/isArray'),
+    isLength = require('./isLength'),
+    isObjectLike = require('./isObjectLike'),
+    isTypedArray = require('../lang/isTypedArray');
+
+/**
+ * The base implementation of `_.merge` without support for argument juggling,
+ * multiple sources, and `this` binding `customizer` functions.
+ *
+ * @private
+ * @param {Object} object The destination object.
+ * @param {Object} source The source object.
+ * @param {Function} [customizer] The function to customize merging properties.
+ * @param {Array} [stackA=[]] Tracks traversed source objects.
+ * @param {Array} [stackB=[]] Associates values with source counterparts.
+ * @returns {Object} Returns the destination object.
+ */
+function baseMerge(object, source, customizer, stackA, stackB) {
+  var isSrcArr = isLength(source.length) && (isArray(source) || isTypedArray(source));
+
+  (isSrcArr ? arrayEach : baseForOwn)(source, function(srcValue, key, source) {
+    if (isObjectLike(srcValue)) {
+      stackA || (stackA = []);
+      stackB || (stackB = []);
+      return baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB);
+    }
+    var value = object[key],
+        result = customizer ? customizer(value, srcValue, key, object, source) : undefined,
+        isCommon = typeof result == 'undefined';
+
+    if (isCommon) {
+      result = srcValue;
+    }
+    if ((isSrcArr || typeof result != 'undefined') &&
+        (isCommon || (result === result ? result !== value : value === value))) {
+      object[key] = result;
+    }
+  });
+  return object;
+}
+
+module.exports = baseMerge;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseMergeDeep.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseMergeDeep.js b/node_modules/archiver/node_modules/lodash/internal/baseMergeDeep.js
new file mode 100644
index 0000000..2595dd7
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseMergeDeep.js
@@ -0,0 +1,67 @@
+var arrayCopy = require('./arrayCopy'),
+    isArguments = require('../lang/isArguments'),
+    isArray = require('../lang/isArray'),
+    isLength = require('./isLength'),
+    isPlainObject = require('../lang/isPlainObject'),
+    isTypedArray = require('../lang/isTypedArray'),
+    toPlainObject = require('../lang/toPlainObject');
+
+/**
+ * A specialized version of `baseMerge` for arrays and objects which performs
+ * deep merges and tracks traversed objects enabling objects with circular
+ * references to be merged.
+ *
+ * @private
+ * @param {Object} object The destination object.
+ * @param {Object} source The source object.
+ * @param {string} key The key of the value to merge.
+ * @param {Function} mergeFunc The function to merge values.
+ * @param {Function} [customizer] The function to customize merging properties.
+ * @param {Array} [stackA=[]] Tracks traversed source objects.
+ * @param {Array} [stackB=[]] Associates values with source counterparts.
+ * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
+ */
+function baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {
+  var length = stackA.length,
+      srcValue = source[key];
+
+  while (length--) {
+    if (stackA[length] == srcValue) {
+      object[key] = stackB[length];
+      return;
+    }
+  }
+  var value = object[key],
+      result = customizer ? customizer(value, srcValue, key, object, source) : undefined,
+      isCommon = typeof result == 'undefined';
+
+  if (isCommon) {
+    result = srcValue;
+    if (isLength(srcValue.length) && (isArray(srcValue) || isTypedArray(srcValue))) {
+      result = isArray(value)
+        ? value
+        : (value ? arrayCopy(value) : []);
+    }
+    else if (isPlainObject(srcValue) || isArguments(srcValue)) {
+      result = isArguments(value)
+        ? toPlainObject(value)
+        : (isPlainObject(value) ? value : {});
+    }
+    else {
+      isCommon = false;
+    }
+  }
+  // Add the source value to the stack of traversed objects and associate
+  // it with its merged value.
+  stackA.push(srcValue);
+  stackB.push(result);
+
+  if (isCommon) {
+    // Recursively merge objects and arrays (susceptible to call stack limits).
+    object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);
+  } else if (result === result ? result !== value : value === value) {
+    object[key] = result;
+  }
+}
+
+module.exports = baseMergeDeep;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseProperty.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseProperty.js b/node_modules/archiver/node_modules/lodash/internal/baseProperty.js
new file mode 100644
index 0000000..50d2043
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseProperty.js
@@ -0,0 +1,14 @@
+/**
+ * The base implementation of `_.property` which does not coerce `key` to a string.
+ *
+ * @private
+ * @param {string} key The key of the property to get.
+ * @returns {Function} Returns the new function.
+ */
+function baseProperty(key) {
+  return function(object) {
+    return object == null ? undefined : object[key];
+  };
+}
+
+module.exports = baseProperty;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/basePullAt.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/basePullAt.js b/node_modules/archiver/node_modules/lodash/internal/basePullAt.js
new file mode 100644
index 0000000..bfde76c
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/basePullAt.js
@@ -0,0 +1,35 @@
+var baseAt = require('./baseAt'),
+    baseCompareAscending = require('./baseCompareAscending'),
+    isIndex = require('./isIndex');
+
+/** Used for native method references. */
+var arrayProto = Array.prototype;
+
+/** Native method references. */
+var splice = arrayProto.splice;
+
+/**
+ * The base implementation of `_.pullAt` without support for individual
+ * index arguments.
+ *
+ * @private
+ * @param {Array} array The array to modify.
+ * @param {number[]} indexes The indexes of elements to remove.
+ * @returns {Array} Returns the new array of removed elements.
+ */
+function basePullAt(array, indexes) {
+  var length = indexes.length,
+      result = baseAt(array, indexes);
+
+  indexes.sort(baseCompareAscending);
+  while (length--) {
+    var index = parseFloat(indexes[length]);
+    if (index != previous && isIndex(index)) {
+      var previous = index;
+      splice.call(array, index, 1);
+    }
+  }
+  return result;
+}
+
+module.exports = basePullAt;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseRandom.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseRandom.js b/node_modules/archiver/node_modules/lodash/internal/baseRandom.js
new file mode 100644
index 0000000..d71bb16
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseRandom.js
@@ -0,0 +1,20 @@
+/** Native method references. */
+var floor = Math.floor;
+
+/* Native method references for those with the same name as other `lodash` methods. */
+var nativeRandom = Math.random;
+
+/**
+ * The base implementation of `_.random` without support for argument juggling
+ * and returning floating-point numbers.
+ *
+ * @private
+ * @param {number} min The minimum possible value.
+ * @param {number} max The maximum possible value.
+ * @returns {number} Returns the random number.
+ */
+function baseRandom(min, max) {
+  return min + floor(nativeRandom() * (max - min + 1));
+}
+
+module.exports = baseRandom;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseReduce.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseReduce.js b/node_modules/archiver/node_modules/lodash/internal/baseReduce.js
new file mode 100644
index 0000000..7322927
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseReduce.js
@@ -0,0 +1,24 @@
+/**
+ * The base implementation of `_.reduce` and `_.reduceRight` without support
+ * for callback shorthands or `this` binding, which iterates over `collection`
+ * using the provided `eachFunc`.
+ *
+ * @private
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @param {*} accumulator The initial value.
+ * @param {boolean} initFromCollection Specify using the first or last element
+ *  of `collection` as the initial value.
+ * @param {Function} eachFunc The function to iterate over `collection`.
+ * @returns {*} Returns the accumulated value.
+ */
+function baseReduce(collection, iteratee, accumulator, initFromCollection, eachFunc) {
+  eachFunc(collection, function(value, index, collection) {
+    accumulator = initFromCollection
+      ? (initFromCollection = false, value)
+      : iteratee(accumulator, value, index, collection);
+  });
+  return accumulator;
+}
+
+module.exports = baseReduce;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseSetData.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseSetData.js b/node_modules/archiver/node_modules/lodash/internal/baseSetData.js
new file mode 100644
index 0000000..5c98622
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseSetData.js
@@ -0,0 +1,17 @@
+var identity = require('../utility/identity'),
+    metaMap = require('./metaMap');
+
+/**
+ * The base implementation of `setData` without support for hot loop detection.
+ *
+ * @private
+ * @param {Function} func The function to associate metadata with.
+ * @param {*} data The metadata.
+ * @returns {Function} Returns `func`.
+ */
+var baseSetData = !metaMap ? identity : function(func, data) {
+  metaMap.set(func, data);
+  return func;
+};
+
+module.exports = baseSetData;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseSlice.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseSlice.js b/node_modules/archiver/node_modules/lodash/internal/baseSlice.js
new file mode 100644
index 0000000..78001a8
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseSlice.js
@@ -0,0 +1,32 @@
+/**
+ * The base implementation of `_.slice` without an iteratee call guard.
+ *
+ * @private
+ * @param {Array} array The array to slice.
+ * @param {number} [start=0] The start position.
+ * @param {number} [end=array.length] The end position.
+ * @returns {Array} Returns the slice of `array`.
+ */
+function baseSlice(array, start, end) {
+  var index = -1,
+      length = array.length;
+
+  start = start == null ? 0 : (+start || 0);
+  if (start < 0) {
+    start = -start > length ? 0 : (length + start);
+  }
+  end = (typeof end == 'undefined' || end > length) ? length : (+end || 0);
+  if (end < 0) {
+    end += length;
+  }
+  length = start > end ? 0 : (end - start) >>> 0;
+  start >>>= 0;
+
+  var result = Array(length);
+  while (++index < length) {
+    result[index] = array[index + start];
+  }
+  return result;
+}
+
+module.exports = baseSlice;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseSome.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseSome.js b/node_modules/archiver/node_modules/lodash/internal/baseSome.js
new file mode 100644
index 0000000..7b261b6
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseSome.js
@@ -0,0 +1,23 @@
+var baseEach = require('./baseEach');
+
+/**
+ * The base implementation of `_.some` without support for callback shorthands
+ * or `this` binding.
+ *
+ * @private
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} predicate The function invoked per iteration.
+ * @returns {boolean} Returns `true` if any element passes the predicate check,
+ *  else `false`.
+ */
+function baseSome(collection, predicate) {
+  var result;
+
+  baseEach(collection, function(value, index, collection) {
+    result = predicate(value, index, collection);
+    return !result;
+  });
+  return !!result;
+}
+
+module.exports = baseSome;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseSortBy.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseSortBy.js b/node_modules/archiver/node_modules/lodash/internal/baseSortBy.js
new file mode 100644
index 0000000..409a599
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseSortBy.js
@@ -0,0 +1,21 @@
+/**
+ * The base implementation of `_.sortBy` and `_.sortByAll` which uses `comparer`
+ * to define the sort order of `array` and replaces criteria objects with their
+ * corresponding values.
+ *
+ * @private
+ * @param {Array} array The array to sort.
+ * @param {Function} comparer The function to define sort order.
+ * @returns {Array} Returns `array`.
+ */
+function baseSortBy(array, comparer) {
+  var length = array.length;
+
+  array.sort(comparer);
+  while (length--) {
+    array[length] = array[length].value;
+  }
+  return array;
+}
+
+module.exports = baseSortBy;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseToString.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseToString.js b/node_modules/archiver/node_modules/lodash/internal/baseToString.js
new file mode 100644
index 0000000..3b0d0ec
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseToString.js
@@ -0,0 +1,16 @@
+/**
+ * Converts `value` to a string if it is not one. An empty string is returned
+ * for `null` or `undefined` values.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {string} Returns the string.
+ */
+function baseToString(value) {
+  if (typeof value == 'string') {
+    return value;
+  }
+  return value == null ? '' : (value + '');
+}
+
+module.exports = baseToString;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseUniq.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseUniq.js b/node_modules/archiver/node_modules/lodash/internal/baseUniq.js
new file mode 100644
index 0000000..b4e9aee
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseUniq.js
@@ -0,0 +1,57 @@
+var baseIndexOf = require('./baseIndexOf'),
+    cacheIndexOf = require('./cacheIndexOf'),
+    createCache = require('./createCache');
+
+/**
+ * The base implementation of `_.uniq` without support for callback shorthands
+ * and `this` binding.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {Function} [iteratee] The function invoked per iteration.
+ * @returns {Array} Returns the new duplicate-value-free array.
+ */
+function baseUniq(array, iteratee) {
+  var index = -1,
+      indexOf = baseIndexOf,
+      length = array.length,
+      isCommon = true,
+      isLarge = isCommon && length >= 200,
+      seen = isLarge && createCache(),
+      result = [];
+
+  if (seen) {
+    indexOf = cacheIndexOf;
+    isCommon = false;
+  } else {
+    isLarge = false;
+    seen = iteratee ? [] : result;
+  }
+  outer:
+  while (++index < length) {
+    var value = array[index],
+        computed = iteratee ? iteratee(value, index, array) : value;
+
+    if (isCommon && value === value) {
+      var seenIndex = seen.length;
+      while (seenIndex--) {
+        if (seen[seenIndex] === computed) {
+          continue outer;
+        }
+      }
+      if (iteratee) {
+        seen.push(computed);
+      }
+      result.push(value);
+    }
+    else if (indexOf(seen, computed) < 0) {
+      if (iteratee || isLarge) {
+        seen.push(computed);
+      }
+      result.push(value);
+    }
+  }
+  return result;
+}
+
+module.exports = baseUniq;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseValues.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseValues.js b/node_modules/archiver/node_modules/lodash/internal/baseValues.js
new file mode 100644
index 0000000..7259a08
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseValues.js
@@ -0,0 +1,22 @@
+/**
+ * The base implementation of `_.values` and `_.valuesIn` which creates an
+ * array of `object` property values corresponding to the property names
+ * returned by `keysFunc`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {Array} props The property names to get values for.
+ * @returns {Object} Returns the array of property values.
+ */
+function baseValues(object, props) {
+  var index = -1,
+      length = props.length,
+      result = Array(length);
+
+  while (++index < length) {
+    result[index] = object[props[index]];
+  }
+  return result;
+}
+
+module.exports = baseValues;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/internal/baseWrapperValue.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/internal/baseWrapperValue.js b/node_modules/archiver/node_modules/lodash/internal/baseWrapperValue.js
new file mode 100644
index 0000000..f400ca7
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/internal/baseWrapperValue.js
@@ -0,0 +1,37 @@
+var LazyWrapper = require('./LazyWrapper');
+
+/** Used for native method references. */
+var arrayProto = Array.prototype;
+
+/** Native method references. */
+var push = arrayProto.push;
+
+/**
+ * The base implementation of `wrapperValue` which returns the result of
+ * performing a sequence of actions on the unwrapped `value`, where each
+ * successive action is supplied the return value of the previous.
+ *
+ * @private
+ * @param {*} value The unwrapped value.
+ * @param {Array} actions Actions to peform to resolve the unwrapped value.
+ * @returns {*} Returns the resolved unwrapped value.
+ */
+function baseWrapperValue(value, actions) {
+  var result = value;
+  if (result instanceof LazyWrapper) {
+    result = result.value();
+  }
+  var index = -1,
+      length = actions.length;
+
+  while (++index < length) {
+    var args = [result],
+        action = actions[index];
+
+    push.apply(args, action.args);
+    result = action.func.apply(action.thisArg, args);
+  }
+  return result;
+}
+
+module.exports = baseWrapperValue;


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