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:05 UTC

[11/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/chain/thru.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/chain/thru.js b/node_modules/archiver/node_modules/lodash/chain/thru.js
new file mode 100644
index 0000000..13e19a2
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/chain/thru.js
@@ -0,0 +1,23 @@
+/**
+ * This method is like `_.tap` except that it returns the result of `interceptor`.
+ *
+ * @static
+ * @memberOf _
+ * @category Chain
+ * @param {*} value The value to provide to `interceptor`.
+ * @param {Function} interceptor The function to invoke.
+ * @param {*} [thisArg] The `this` binding of `interceptor`.
+ * @returns {*} Returns the result of `interceptor`.
+ * @example
+ *
+ * _([1, 2, 3])
+ *  .last()
+ *  .thru(function(value) { return [value]; })
+ *  .value();
+ * // => [3]
+ */
+function thru(value, interceptor, thisArg) {
+  return interceptor.call(thisArg, value);
+}
+
+module.exports = thru;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/chain/toJSON.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/chain/toJSON.js b/node_modules/archiver/node_modules/lodash/chain/toJSON.js
new file mode 100644
index 0000000..5e751a2
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/chain/toJSON.js
@@ -0,0 +1 @@
+module.exports = require('./wrapperValue');

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/chain/toString.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/chain/toString.js b/node_modules/archiver/node_modules/lodash/chain/toString.js
new file mode 100644
index 0000000..c7bcbf9
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/chain/toString.js
@@ -0,0 +1 @@
+module.exports = require('./wrapperToString');

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/chain/value.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/chain/value.js b/node_modules/archiver/node_modules/lodash/chain/value.js
new file mode 100644
index 0000000..5e751a2
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/chain/value.js
@@ -0,0 +1 @@
+module.exports = require('./wrapperValue');

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/chain/valueOf.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/chain/valueOf.js b/node_modules/archiver/node_modules/lodash/chain/valueOf.js
new file mode 100644
index 0000000..5e751a2
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/chain/valueOf.js
@@ -0,0 +1 @@
+module.exports = require('./wrapperValue');

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/chain/wrapperChain.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/chain/wrapperChain.js b/node_modules/archiver/node_modules/lodash/chain/wrapperChain.js
new file mode 100644
index 0000000..3823481
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/chain/wrapperChain.js
@@ -0,0 +1,32 @@
+var chain = require('./chain');
+
+/**
+ * Enables explicit method chaining on the wrapper object.
+ *
+ * @name chain
+ * @memberOf _
+ * @category Chain
+ * @returns {Object} Returns the new `lodash` wrapper instance.
+ * @example
+ *
+ * var users = [
+ *   { 'user': 'barney', 'age': 36 },
+ *   { 'user': 'fred',   'age': 40 }
+ * ];
+ *
+ * // without explicit chaining
+ * _(users).first();
+ * // => { 'user': 'barney', 'age': 36 }
+ *
+ * // with explicit chaining
+ * _(users).chain()
+ *   .first()
+ *   .pick('user')
+ *   .value();
+ * // => { 'user': 'barney' }
+ */
+function wrapperChain() {
+  return chain(this);
+}
+
+module.exports = wrapperChain;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/chain/wrapperCommit.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/chain/wrapperCommit.js b/node_modules/archiver/node_modules/lodash/chain/wrapperCommit.js
new file mode 100644
index 0000000..c46a787
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/chain/wrapperCommit.js
@@ -0,0 +1,32 @@
+var LodashWrapper = require('../internal/LodashWrapper');
+
+/**
+ * Executes the chained sequence and returns the wrapped result.
+ *
+ * @name commit
+ * @memberOf _
+ * @category Chain
+ * @returns {Object} Returns the new `lodash` wrapper instance.
+ * @example
+ *
+ * var array = [1, 2];
+ * var wrapper = _(array).push(3);
+ *
+ * console.log(array);
+ * // => [1, 2]
+ *
+ * wrapper = wrapper.commit();
+ * console.log(array);
+ * // => [1, 2, 3]
+ *
+ * wrapper.last();
+ * // => 3
+ *
+ * console.log(array);
+ * // => [1, 2, 3]
+ */
+function wrapperCommit() {
+  return new LodashWrapper(this.value(), this.__chain__);
+}
+
+module.exports = wrapperCommit;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/chain/wrapperPlant.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/chain/wrapperPlant.js b/node_modules/archiver/node_modules/lodash/chain/wrapperPlant.js
new file mode 100644
index 0000000..c8e2761
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/chain/wrapperPlant.js
@@ -0,0 +1,43 @@
+var LodashWrapper = require('../internal/LodashWrapper'),
+    wrapperClone = require('../internal/wrapperClone');
+
+/**
+ * Creates a clone of the chained sequence planting `value` as the wrapped value.
+ *
+ * @name plant
+ * @memberOf _
+ * @category Chain
+ * @returns {Object} Returns the new `lodash` wrapper instance.
+ * @example
+ *
+ * var array = [1, 2];
+ * var wrapper = _(array).map(_.partial(Math.pow, _, 2));
+ *
+ * var other = [3, 4];
+ * var otherWrapper = wrapper.plant(other);
+ *
+ * otherWrapper.value();
+ * // => [9, 16]
+ *
+ * wrapper.value();
+ * // => [1, 4]
+ */
+function wrapperPlant(value) {
+  var result,
+      parent = this;
+
+  while (parent instanceof LodashWrapper) {
+    var clone = wrapperClone(parent);
+    if (result) {
+      previous.__wrapped__ = clone;
+    } else {
+      result = clone;
+    }
+    var previous = clone;
+    parent = parent.__wrapped__;
+  }
+  previous.__wrapped__ = value;
+  return result;
+}
+
+module.exports = wrapperPlant;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/chain/wrapperReverse.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/chain/wrapperReverse.js b/node_modules/archiver/node_modules/lodash/chain/wrapperReverse.js
new file mode 100644
index 0000000..4518b3e
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/chain/wrapperReverse.js
@@ -0,0 +1,38 @@
+var LazyWrapper = require('../internal/LazyWrapper'),
+    LodashWrapper = require('../internal/LodashWrapper'),
+    thru = require('./thru');
+
+/**
+ * Reverses the wrapped array so the first element becomes the last, the
+ * second element becomes the second to last, and so on.
+ *
+ * **Note:** This method mutates the wrapped array.
+ *
+ * @name reverse
+ * @memberOf _
+ * @category Chain
+ * @returns {Object} Returns the new reversed `lodash` wrapper instance.
+ * @example
+ *
+ * var array = [1, 2, 3];
+ *
+ * _(array).reverse().value()
+ * // => [3, 2, 1]
+ *
+ * console.log(array);
+ * // => [3, 2, 1]
+ */
+function wrapperReverse() {
+  var value = this.__wrapped__;
+  if (value instanceof LazyWrapper) {
+    if (this.__actions__.length) {
+      value = new LazyWrapper(this);
+    }
+    return new LodashWrapper(value.reverse(), this.__chain__);
+  }
+  return this.thru(function(value) {
+    return value.reverse();
+  });
+}
+
+module.exports = wrapperReverse;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/chain/wrapperToString.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/chain/wrapperToString.js b/node_modules/archiver/node_modules/lodash/chain/wrapperToString.js
new file mode 100644
index 0000000..db975a5
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/chain/wrapperToString.js
@@ -0,0 +1,17 @@
+/**
+ * Produces the result of coercing the unwrapped value to a string.
+ *
+ * @name toString
+ * @memberOf _
+ * @category Chain
+ * @returns {string} Returns the coerced string value.
+ * @example
+ *
+ * _([1, 2, 3]).toString();
+ * // => '1,2,3'
+ */
+function wrapperToString() {
+  return (this.value() + '');
+}
+
+module.exports = wrapperToString;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/chain/wrapperValue.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/chain/wrapperValue.js b/node_modules/archiver/node_modules/lodash/chain/wrapperValue.js
new file mode 100644
index 0000000..2734e41
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/chain/wrapperValue.js
@@ -0,0 +1,20 @@
+var baseWrapperValue = require('../internal/baseWrapperValue');
+
+/**
+ * Executes the chained sequence to extract the unwrapped value.
+ *
+ * @name value
+ * @memberOf _
+ * @alias run, toJSON, valueOf
+ * @category Chain
+ * @returns {*} Returns the resolved unwrapped value.
+ * @example
+ *
+ * _([1, 2, 3]).value();
+ * // => [1, 2, 3]
+ */
+function wrapperValue() {
+  return baseWrapperValue(this.__wrapped__, this.__actions__);
+}
+
+module.exports = wrapperValue;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection.js b/node_modules/archiver/node_modules/lodash/collection.js
new file mode 100644
index 0000000..2682db5
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection.js
@@ -0,0 +1,42 @@
+module.exports = {
+  'all': require('./collection/all'),
+  'any': require('./collection/any'),
+  'at': require('./collection/at'),
+  'collect': require('./collection/collect'),
+  'contains': require('./collection/contains'),
+  'countBy': require('./collection/countBy'),
+  'detect': require('./collection/detect'),
+  'each': require('./collection/each'),
+  'eachRight': require('./collection/eachRight'),
+  'every': require('./collection/every'),
+  'filter': require('./collection/filter'),
+  'find': require('./collection/find'),
+  'findLast': require('./collection/findLast'),
+  'findWhere': require('./collection/findWhere'),
+  'foldl': require('./collection/foldl'),
+  'foldr': require('./collection/foldr'),
+  'forEach': require('./collection/forEach'),
+  'forEachRight': require('./collection/forEachRight'),
+  'groupBy': require('./collection/groupBy'),
+  'include': require('./collection/include'),
+  'includes': require('./collection/includes'),
+  'indexBy': require('./collection/indexBy'),
+  'inject': require('./collection/inject'),
+  'invoke': require('./collection/invoke'),
+  'map': require('./collection/map'),
+  'max': require('./collection/max'),
+  'min': require('./collection/min'),
+  'partition': require('./collection/partition'),
+  'pluck': require('./collection/pluck'),
+  'reduce': require('./collection/reduce'),
+  'reduceRight': require('./collection/reduceRight'),
+  'reject': require('./collection/reject'),
+  'sample': require('./collection/sample'),
+  'select': require('./collection/select'),
+  'shuffle': require('./collection/shuffle'),
+  'size': require('./collection/size'),
+  'some': require('./collection/some'),
+  'sortBy': require('./collection/sortBy'),
+  'sortByAll': require('./collection/sortByAll'),
+  'where': require('./collection/where')
+};

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/all.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/all.js b/node_modules/archiver/node_modules/lodash/collection/all.js
new file mode 100644
index 0000000..d0839f7
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/all.js
@@ -0,0 +1 @@
+module.exports = require('./every');

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/any.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/any.js b/node_modules/archiver/node_modules/lodash/collection/any.js
new file mode 100644
index 0000000..900ac25
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/any.js
@@ -0,0 +1 @@
+module.exports = require('./some');

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/at.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/at.js b/node_modules/archiver/node_modules/lodash/collection/at.js
new file mode 100644
index 0000000..dd50050
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/at.js
@@ -0,0 +1,34 @@
+var baseAt = require('../internal/baseAt'),
+    baseFlatten = require('../internal/baseFlatten'),
+    isLength = require('../internal/isLength'),
+    toIterable = require('../internal/toIterable');
+
+/**
+ * Creates an array of elements corresponding to the given keys, or indexes,
+ * of `collection`. Keys may be specified as individual arguments or as arrays
+ * of keys.
+ *
+ * @static
+ * @memberOf _
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {...(number|number[]|string|string[])} [props] The property names
+ *  or indexes of elements to pick, specified individually or in arrays.
+ * @returns {Array} Returns the new array of picked elements.
+ * @example
+ *
+ * _.at(['a', 'b', 'c', 'd', 'e'], [0, 2, 4]);
+ * // => ['a', 'c', 'e']
+ *
+ * _.at(['fred', 'barney', 'pebbles'], 0, 2);
+ * // => ['fred', 'pebbles']
+ */
+function at(collection) {
+  var length = collection ? collection.length : 0;
+  if (isLength(length)) {
+    collection = toIterable(collection);
+  }
+  return baseAt(collection, baseFlatten(arguments, false, false, 1));
+}
+
+module.exports = at;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/collect.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/collect.js b/node_modules/archiver/node_modules/lodash/collection/collect.js
new file mode 100644
index 0000000..0d1e1ab
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/collect.js
@@ -0,0 +1 @@
+module.exports = require('./map');

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/contains.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/contains.js b/node_modules/archiver/node_modules/lodash/collection/contains.js
new file mode 100644
index 0000000..594722a
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/contains.js
@@ -0,0 +1 @@
+module.exports = require('./includes');

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/countBy.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/countBy.js b/node_modules/archiver/node_modules/lodash/collection/countBy.js
new file mode 100644
index 0000000..a1ed0c1
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/countBy.js
@@ -0,0 +1,51 @@
+var createAggregator = require('../internal/createAggregator');
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Creates an object composed of keys generated from the results of running
+ * each element of `collection` through `iteratee`. The corresponding value
+ * of each key is the number of times the key was returned by `iteratee`.
+ * The `iteratee` is bound to `thisArg` and invoked with three arguments;
+ * (value, index|key, collection).
+ *
+ * If a property name is provided for `predicate` the created "_.property"
+ * style callback returns the property value of the given element.
+ *
+ * If value is also provided for `thisArg` the created "_.matchesProperty"
+ * style callback returns `true` for elements that have a matching property
+ * value, else `false`.
+ *
+ * If an object is provided for `predicate` the created "_.matches" style
+ * callback returns `true` for elements that have the properties of the given
+ * object, else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [iteratee=_.identity] The function invoked
+ *  per iteration. If a property name or object is provided it is used to
+ *  create a "_.property" or "_.matches" style callback respectively.
+ * @param {*} [thisArg] The `this` binding of `iteratee`.
+ * @returns {Object} Returns the composed aggregate object.
+ * @example
+ *
+ * _.countBy([4.3, 6.1, 6.4], function(n) { return Math.floor(n); });
+ * // => { '4': 1, '6': 2 }
+ *
+ * _.countBy([4.3, 6.1, 6.4], function(n) { return this.floor(n); }, Math);
+ * // => { '4': 1, '6': 2 }
+ *
+ * _.countBy(['one', 'two', 'three'], 'length');
+ * // => { '3': 2, '5': 1 }
+ */
+var countBy = createAggregator(function(result, value, key) {
+  hasOwnProperty.call(result, key) ? ++result[key] : (result[key] = 1);
+});
+
+module.exports = countBy;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/detect.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/detect.js b/node_modules/archiver/node_modules/lodash/collection/detect.js
new file mode 100644
index 0000000..2fb6303
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/detect.js
@@ -0,0 +1 @@
+module.exports = require('./find');

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/each.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/each.js b/node_modules/archiver/node_modules/lodash/collection/each.js
new file mode 100644
index 0000000..8800f42
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/each.js
@@ -0,0 +1 @@
+module.exports = require('./forEach');

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/eachRight.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/eachRight.js b/node_modules/archiver/node_modules/lodash/collection/eachRight.js
new file mode 100644
index 0000000..3252b2a
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/eachRight.js
@@ -0,0 +1 @@
+module.exports = require('./forEachRight');

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/every.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/every.js b/node_modules/archiver/node_modules/lodash/collection/every.js
new file mode 100644
index 0000000..302439d
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/every.js
@@ -0,0 +1,63 @@
+var arrayEvery = require('../internal/arrayEvery'),
+    baseCallback = require('../internal/baseCallback'),
+    baseEvery = require('../internal/baseEvery'),
+    isArray = require('../lang/isArray');
+
+/**
+ * Checks if `predicate` returns truthy for **all** elements of `collection`.
+ * The predicate is bound to `thisArg` and invoked with three arguments;
+ * (value, index|key, collection).
+ *
+ * If a property name is provided for `predicate` the created "_.property"
+ * style callback returns the property value of the given element.
+ *
+ * If value is also provided for `thisArg` the created "_.matchesProperty"
+ * style callback returns `true` for elements that have a matching property
+ * value, else `false`.
+ *
+ * If an object is provided for `predicate` the created "_.matches" style
+ * callback returns `true` for elements that have the properties of the given
+ * object, else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @alias all
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [predicate=_.identity] The function invoked
+ *  per iteration. If a property name or object is provided it is used to
+ *  create a "_.property" or "_.matches" style callback respectively.
+ * @param {*} [thisArg] The `this` binding of `predicate`.
+ * @returns {boolean} Returns `true` if all elements pass the predicate check,
+ *  else `false`.
+ * @example
+ *
+ * _.every([true, 1, null, 'yes']);
+ * // => false
+ *
+ * var users = [
+ *   { 'user': 'barney', 'age': 36, 'active': false },
+ *   { 'user': 'fred',   'age': 40, 'active': false }
+ * ];
+ *
+ * // using the "_.matches" callback shorthand
+ * _.every(users, { 'age': 36, 'active': false });
+ * // => false
+ *
+ * // using the "_.matchesProperty" callback shorthand
+ * _.every(users, 'active', false);
+ * // => true
+ *
+ * // using the "_.property" callback shorthand
+ * _.every(users, 'active');
+ * // => false
+ */
+function every(collection, predicate, thisArg) {
+  var func = isArray(collection) ? arrayEvery : baseEvery;
+  if (typeof predicate != 'function' || typeof thisArg != 'undefined') {
+    predicate = baseCallback(predicate, thisArg, 3);
+  }
+  return func(collection, predicate);
+}
+
+module.exports = every;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/filter.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/filter.js b/node_modules/archiver/node_modules/lodash/collection/filter.js
new file mode 100644
index 0000000..a51e525
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/filter.js
@@ -0,0 +1,60 @@
+var arrayFilter = require('../internal/arrayFilter'),
+    baseCallback = require('../internal/baseCallback'),
+    baseFilter = require('../internal/baseFilter'),
+    isArray = require('../lang/isArray');
+
+/**
+ * Iterates over elements of `collection`, returning an array of all elements
+ * `predicate` returns truthy for. The predicate is bound to `thisArg` and
+ * invoked with three arguments; (value, index|key, collection).
+ *
+ * If a property name is provided for `predicate` the created "_.property"
+ * style callback returns the property value of the given element.
+ *
+ * If value is also provided for `thisArg` the created "_.matchesProperty"
+ * style callback returns `true` for elements that have a matching property
+ * value, else `false`.
+ *
+ * If an object is provided for `predicate` the created "_.matches" style
+ * callback returns `true` for elements that have the properties of the given
+ * object, else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @alias select
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [predicate=_.identity] The function invoked
+ *  per iteration. If a property name or object is provided it is used to
+ *  create a "_.property" or "_.matches" style callback respectively.
+ * @param {*} [thisArg] The `this` binding of `predicate`.
+ * @returns {Array} Returns the new filtered array.
+ * @example
+ *
+ * var evens = _.filter([1, 2, 3, 4], function(n) { return n % 2 == 0; });
+ * // => [2, 4]
+ *
+ * var users = [
+ *   { 'user': 'barney', 'age': 36, 'active': true },
+ *   { 'user': 'fred',   'age': 40, 'active': false }
+ * ];
+ *
+ * // using the "_.matches" callback shorthand
+ * _.pluck(_.filter(users, { 'age': 36, 'active': true }), 'user');
+ * // => ['barney']
+ *
+ * // using the "_.matchesProperty" callback shorthand
+ * _.pluck(_.filter(users, 'active', false), 'user');
+ * // => ['fred']
+ *
+ * // using the "_.property" callback shorthand
+ * _.pluck(_.filter(users, 'active'), 'user');
+ * // => ['barney']
+ */
+function filter(collection, predicate, thisArg) {
+  var func = isArray(collection) ? arrayFilter : baseFilter;
+  predicate = baseCallback(predicate, thisArg, 3);
+  return func(collection, predicate);
+}
+
+module.exports = filter;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/find.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/find.js b/node_modules/archiver/node_modules/lodash/collection/find.js
new file mode 100644
index 0000000..053a139
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/find.js
@@ -0,0 +1,65 @@
+var baseCallback = require('../internal/baseCallback'),
+    baseEach = require('../internal/baseEach'),
+    baseFind = require('../internal/baseFind'),
+    findIndex = require('../array/findIndex'),
+    isArray = require('../lang/isArray');
+
+/**
+ * Iterates over elements of `collection`, returning the first element
+ * `predicate` returns truthy for. The predicate is bound to `thisArg` and
+ * invoked with three arguments; (value, index|key, collection).
+ *
+ * If a property name is provided for `predicate` the created "_.property"
+ * style callback returns the property value of the given element.
+ *
+ * If value is also provided for `thisArg` the created "_.matchesProperty"
+ * style callback returns `true` for elements that have a matching property
+ * value, else `false`.
+ *
+ * If an object is provided for `predicate` the created "_.matches" style
+ * callback returns `true` for elements that have the properties of the given
+ * object, else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @alias detect
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to search.
+ * @param {Function|Object|string} [predicate=_.identity] The function invoked
+ *  per iteration. If a property name or object is provided it is used to
+ *  create a "_.property" or "_.matches" style callback respectively.
+ * @param {*} [thisArg] The `this` binding of `predicate`.
+ * @returns {*} Returns the matched element, else `undefined`.
+ * @example
+ *
+ * var users = [
+ *   { 'user': 'barney',  'age': 36, 'active': true },
+ *   { 'user': 'fred',    'age': 40, 'active': false },
+ *   { 'user': 'pebbles', 'age': 1,  'active': true }
+ * ];
+ *
+ * _.result(_.find(users, function(chr) { return chr.age < 40; }), 'user');
+ * // => 'barney'
+ *
+ * // using the "_.matches" callback shorthand
+ * _.result(_.find(users, { 'age': 1, 'active': true }), 'user');
+ * // => 'pebbles'
+ *
+ * // using the "_.matchesProperty" callback shorthand
+ * _.result(_.find(users, 'active', false), 'user');
+ * // => 'fred'
+ *
+ * // using the "_.property" callback shorthand
+ * _.result(_.find(users, 'active'), 'user');
+ * // => 'barney'
+ */
+function find(collection, predicate, thisArg) {
+  if (isArray(collection)) {
+    var index = findIndex(collection, predicate, thisArg);
+    return index > -1 ? collection[index] : undefined;
+  }
+  predicate = baseCallback(predicate, thisArg, 3);
+  return baseFind(collection, predicate, baseEach);
+}
+
+module.exports = find;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/findLast.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/findLast.js b/node_modules/archiver/node_modules/lodash/collection/findLast.js
new file mode 100644
index 0000000..281133c
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/findLast.js
@@ -0,0 +1,28 @@
+var baseCallback = require('../internal/baseCallback'),
+    baseEachRight = require('../internal/baseEachRight'),
+    baseFind = require('../internal/baseFind');
+
+/**
+ * This method is like `_.find` except that it iterates over elements of
+ * `collection` from right to left.
+ *
+ * @static
+ * @memberOf _
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to search.
+ * @param {Function|Object|string} [predicate=_.identity] The function invoked
+ *  per iteration. If a property name or object is provided it is used to
+ *  create a "_.property" or "_.matches" style callback respectively.
+ * @param {*} [thisArg] The `this` binding of `predicate`.
+ * @returns {*} Returns the matched element, else `undefined`.
+ * @example
+ *
+ * _.findLast([1, 2, 3, 4], function(n) { return n % 2 == 1; });
+ * // => 3
+ */
+function findLast(collection, predicate, thisArg) {
+  predicate = baseCallback(predicate, thisArg, 3);
+  return baseFind(collection, predicate, baseEachRight);
+}
+
+module.exports = findLast;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/findWhere.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/findWhere.js b/node_modules/archiver/node_modules/lodash/collection/findWhere.js
new file mode 100644
index 0000000..2d62065
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/findWhere.js
@@ -0,0 +1,37 @@
+var baseMatches = require('../internal/baseMatches'),
+    find = require('./find');
+
+/**
+ * Performs a deep comparison between each element in `collection` and the
+ * source object, returning the first element that has equivalent property
+ * values.
+ *
+ * **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 Collection
+ * @param {Array|Object|string} collection The collection to search.
+ * @param {Object} source The object of property values to match.
+ * @returns {*} Returns the matched element, else `undefined`.
+ * @example
+ *
+ * var users = [
+ *   { 'user': 'barney', 'age': 36, 'active': true },
+ *   { 'user': 'fred',   'age': 40, 'active': false }
+ * ];
+ *
+ * _.result(_.findWhere(users, { 'age': 36, 'active': true }), 'user');
+ * // => 'barney'
+ *
+ * _.result(_.findWhere(users, { 'age': 40, 'active': false }), 'user');
+ * // => 'fred'
+ */
+function findWhere(collection, source) {
+  return find(collection, baseMatches(source));
+}
+
+module.exports = findWhere;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/foldl.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/foldl.js b/node_modules/archiver/node_modules/lodash/collection/foldl.js
new file mode 100644
index 0000000..26f53cf
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/foldl.js
@@ -0,0 +1 @@
+module.exports = require('./reduce');

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/foldr.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/foldr.js b/node_modules/archiver/node_modules/lodash/collection/foldr.js
new file mode 100644
index 0000000..8fb199e
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/foldr.js
@@ -0,0 +1 @@
+module.exports = require('./reduceRight');

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/forEach.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/forEach.js b/node_modules/archiver/node_modules/lodash/collection/forEach.js
new file mode 100644
index 0000000..9294072
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/forEach.js
@@ -0,0 +1,38 @@
+var arrayEach = require('../internal/arrayEach'),
+    baseEach = require('../internal/baseEach'),
+    bindCallback = require('../internal/bindCallback'),
+    isArray = require('../lang/isArray');
+
+/**
+ * Iterates over elements of `collection` invoking `iteratee` for each element.
+ * The `iteratee` is bound to `thisArg` and invoked with three arguments;
+ * (value, index|key, collection). Iterator functions may exit iteration early
+ * by explicitly returning `false`.
+ *
+ * **Note:** As with other "Collections" methods, objects with a `length` property
+ * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`
+ * may be used for object iteration.
+ *
+ * @static
+ * @memberOf _
+ * @alias each
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @param {*} [thisArg] The `this` binding of `iteratee`.
+ * @returns {Array|Object|string} Returns `collection`.
+ * @example
+ *
+ * _([1, 2, 3]).forEach(function(n) { console.log(n); }).value();
+ * // => logs each value from left to right and returns the array
+ *
+ * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(n, key) { console.log(n, key); });
+ * // => logs each value-key pair and returns the object (iteration order is not guaranteed)
+ */
+function forEach(collection, iteratee, thisArg) {
+  return (typeof iteratee == 'function' && typeof thisArg == 'undefined' && isArray(collection))
+    ? arrayEach(collection, iteratee)
+    : baseEach(collection, bindCallback(iteratee, thisArg, 3));
+}
+
+module.exports = forEach;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/forEachRight.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/forEachRight.js b/node_modules/archiver/node_modules/lodash/collection/forEachRight.js
new file mode 100644
index 0000000..5fce75d
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/forEachRight.js
@@ -0,0 +1,29 @@
+var arrayEachRight = require('../internal/arrayEachRight'),
+    baseEachRight = require('../internal/baseEachRight'),
+    bindCallback = require('../internal/bindCallback'),
+    isArray = require('../lang/isArray');
+
+/**
+ * This method is like `_.forEach` except that it iterates over elements of
+ * `collection` from right to left.
+ *
+ * @static
+ * @memberOf _
+ * @alias eachRight
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @param {*} [thisArg] The `this` binding of `iteratee`.
+ * @returns {Array|Object|string} Returns `collection`.
+ * @example
+ *
+ * _([1, 2, 3]).forEachRight(function(n) { console.log(n); }).join(',');
+ * // => logs each value from right to left and returns the array
+ */
+function forEachRight(collection, iteratee, thisArg) {
+  return (typeof iteratee == 'function' && typeof thisArg == 'undefined' && isArray(collection))
+    ? arrayEachRight(collection, iteratee)
+    : baseEachRight(collection, bindCallback(iteratee, thisArg, 3));
+}
+
+module.exports = forEachRight;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/groupBy.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/groupBy.js b/node_modules/archiver/node_modules/lodash/collection/groupBy.js
new file mode 100644
index 0000000..47fd4a1
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/groupBy.js
@@ -0,0 +1,56 @@
+var createAggregator = require('../internal/createAggregator');
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Creates an object composed of keys generated from the results of running
+ * each element of `collection` through `iteratee`. The corresponding value
+ * of each key is an array of the elements responsible for generating the key.
+ * The `iteratee` is bound to `thisArg` and invoked with three arguments;
+ * (value, index|key, collection).
+ *
+ * If a property name is provided for `predicate` the created "_.property"
+ * style callback returns the property value of the given element.
+ *
+ * If value is also provided for `thisArg` the created "_.matchesProperty"
+ * style callback returns `true` for elements that have a matching property
+ * value, else `false`.
+ *
+ * If an object is provided for `predicate` the created "_.matches" style
+ * callback returns `true` for elements that have the properties of the given
+ * object, else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [iteratee=_.identity] The function invoked
+ *  per iteration. If a property name or object is provided it is used to
+ *  create a "_.property" or "_.matches" style callback respectively.
+ * @param {*} [thisArg] The `this` binding of `iteratee`.
+ * @returns {Object} Returns the composed aggregate object.
+ * @example
+ *
+ * _.groupBy([4.2, 6.1, 6.4], function(n) { return Math.floor(n); });
+ * // => { '4': [4.2], '6': [6.1, 6.4] }
+ *
+ * _.groupBy([4.2, 6.1, 6.4], function(n) { return this.floor(n); }, Math);
+ * // => { '4': [4.2], '6': [6.1, 6.4] }
+ *
+ * // using the "_.property" callback shorthand
+ * _.groupBy(['one', 'two', 'three'], 'length');
+ * // => { '3': ['one', 'two'], '5': ['three'] }
+ */
+var groupBy = createAggregator(function(result, value, key) {
+  if (hasOwnProperty.call(result, key)) {
+    result[key].push(value);
+  } else {
+    result[key] = [value];
+  }
+});
+
+module.exports = groupBy;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/include.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/include.js b/node_modules/archiver/node_modules/lodash/collection/include.js
new file mode 100644
index 0000000..594722a
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/include.js
@@ -0,0 +1 @@
+module.exports = require('./includes');

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/includes.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/includes.js b/node_modules/archiver/node_modules/lodash/collection/includes.js
new file mode 100644
index 0000000..a383fab
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/includes.js
@@ -0,0 +1,61 @@
+var baseIndexOf = require('../internal/baseIndexOf'),
+    isArray = require('../lang/isArray'),
+    isLength = require('../internal/isLength'),
+    isString = require('../lang/isString'),
+    values = require('../object/values');
+
+/* Native method references for those with the same name as other `lodash` methods. */
+var nativeMax = Math.max;
+
+/**
+ * Checks if `value` is in `collection` using `SameValueZero` for equality
+ * comparisons. If `fromIndex` is negative, it is used as the offset from
+ * the end of `collection`.
+ *
+ * **Note:** `SameValueZero` comparisons are like strict equality comparisons,
+ * e.g. `===`, except that `NaN` matches `NaN`. See the
+ * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
+ * for more details.
+ *
+ * @static
+ * @memberOf _
+ * @alias contains, include
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to search.
+ * @param {*} target The value to search for.
+ * @param {number} [fromIndex=0] The index to search from.
+ * @returns {boolean} Returns `true` if a matching element is found, else `false`.
+ * @example
+ *
+ * _.includes([1, 2, 3], 1);
+ * // => true
+ *
+ * _.includes([1, 2, 3], 1, 2);
+ * // => false
+ *
+ * _.includes({ 'user': 'fred', 'age': 40 }, 'fred');
+ * // => true
+ *
+ * _.includes('pebbles', 'eb');
+ * // => true
+ */
+function includes(collection, target, fromIndex) {
+  var length = collection ? collection.length : 0;
+  if (!isLength(length)) {
+    collection = values(collection);
+    length = collection.length;
+  }
+  if (!length) {
+    return false;
+  }
+  if (typeof fromIndex == 'number') {
+    fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : (fromIndex || 0);
+  } else {
+    fromIndex = 0;
+  }
+  return (typeof collection == 'string' || !isArray(collection) && isString(collection))
+    ? (fromIndex < length && collection.indexOf(target, fromIndex) > -1)
+    : (baseIndexOf(collection, target, fromIndex) > -1);
+}
+
+module.exports = includes;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/indexBy.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/indexBy.js b/node_modules/archiver/node_modules/lodash/collection/indexBy.js
new file mode 100644
index 0000000..4eccdeb
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/indexBy.js
@@ -0,0 +1,50 @@
+var createAggregator = require('../internal/createAggregator');
+
+/**
+ * Creates an object composed of keys generated from the results of running
+ * each element of `collection` through `iteratee`. The corresponding value
+ * of each key is the last element responsible for generating the key. The
+ * iteratee function is bound to `thisArg` and invoked with three arguments;
+ * (value, index|key, collection).
+ *
+ * If a property name is provided for `predicate` the created "_.property"
+ * style callback returns the property value of the given element.
+ *
+ * If value is also provided for `thisArg` the created "_.matchesProperty"
+ * style callback returns `true` for elements that have a matching property
+ * value, else `false`.
+ *
+ * If an object is provided for `predicate` the created "_.matches" style
+ * callback returns `true` for elements that have the properties of the given
+ * object, else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [iteratee=_.identity] The function invoked
+ *  per iteration. If a property name or object is provided it is used to
+ *  create a "_.property" or "_.matches" style callback respectively.
+ * @param {*} [thisArg] The `this` binding of `iteratee`.
+ * @returns {Object} Returns the composed aggregate object.
+ * @example
+ *
+ * var keyData = [
+ *   { 'dir': 'left', 'code': 97 },
+ *   { 'dir': 'right', 'code': 100 }
+ * ];
+ *
+ * _.indexBy(keyData, 'dir');
+ * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }
+ *
+ * _.indexBy(keyData, function(object) { return String.fromCharCode(object.code); });
+ * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }
+ *
+ * _.indexBy(keyData, function(object) { return this.fromCharCode(object.code); }, String);
+ * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }
+ */
+var indexBy = createAggregator(function(result, value, key) {
+  result[key] = value;
+});
+
+module.exports = indexBy;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/inject.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/inject.js b/node_modules/archiver/node_modules/lodash/collection/inject.js
new file mode 100644
index 0000000..26f53cf
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/inject.js
@@ -0,0 +1 @@
+module.exports = require('./reduce');

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/invoke.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/invoke.js b/node_modules/archiver/node_modules/lodash/collection/invoke.js
new file mode 100644
index 0000000..c305a04
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/invoke.js
@@ -0,0 +1,30 @@
+var baseInvoke = require('../internal/baseInvoke'),
+    baseSlice = require('../internal/baseSlice');
+
+/**
+ * Invokes the method named by `methodName` on each element in `collection`,
+ * returning an array of the results of each invoked method. Any additional
+ * arguments are provided to each invoked method. If `methodName` is a function
+ * it is invoked for, and `this` bound to, each element in `collection`.
+ *
+ * @static
+ * @memberOf _
+ * @category Collection
+ * @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 {...*} [args] The arguments to invoke the method with.
+ * @returns {Array} Returns the array of results.
+ * @example
+ *
+ * _.invoke([[5, 1, 7], [3, 2, 1]], 'sort');
+ * // => [[1, 5, 7], [1, 2, 3]]
+ *
+ * _.invoke([123, 456], String.prototype.split, '');
+ * // => [['1', '2', '3'], ['4', '5', '6']]
+ */
+function invoke(collection, methodName) {
+  return baseInvoke(collection, methodName, baseSlice(arguments, 2));
+}
+
+module.exports = invoke;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/map.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/map.js b/node_modules/archiver/node_modules/lodash/collection/map.js
new file mode 100644
index 0000000..184ee4e
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/map.js
@@ -0,0 +1,64 @@
+var arrayMap = require('../internal/arrayMap'),
+    baseCallback = require('../internal/baseCallback'),
+    baseMap = require('../internal/baseMap'),
+    isArray = require('../lang/isArray');
+
+/**
+ * Creates an array of values by running each element in `collection` through
+ * `iteratee`. The `iteratee` is bound to `thisArg` and invoked with three
+ * arguments; (value, index|key, collection).
+ *
+ * If a property name is provided for `predicate` the created "_.property"
+ * style callback returns the property value of the given element.
+ *
+ * If value is also provided for `thisArg` the created "_.matchesProperty"
+ * style callback returns `true` for elements that have a matching property
+ * value, else `false`.
+ *
+ * If an object is provided for `predicate` the created "_.matches" style
+ * callback returns `true` for elements that have the properties of the given
+ * object, else `false`.
+ *
+ * Many lodash methods are guarded to work as interatees for methods like
+ * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
+ *
+ * The guarded methods are:
+ * `ary`, `callback`, `chunk`, `clone`, `create`, `curry`, `curryRight`, `drop`,
+ * `dropRight`, `fill`, `flatten`, `invert`, `max`, `min`, `parseInt`, `slice`,
+ * `sortBy`, `take`, `takeRight`, `template`, `trim`, `trimLeft`, `trimRight`,
+ * `trunc`, `random`, `range`, `sample`, `uniq`, and `words`
+ *
+ * @static
+ * @memberOf _
+ * @alias collect
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [iteratee=_.identity] The function invoked
+ *  per iteration. If a property name or object is provided it is used to
+ *  create a "_.property" or "_.matches" style callback respectively.
+ * @param {*} [thisArg] The `this` binding of `iteratee`.
+ * @returns {Array} Returns the new mapped array.
+ * @example
+ *
+ * _.map([1, 2, 3], function(n) { return n * 3; });
+ * // => [3, 6, 9]
+ *
+ * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(n) { return n * 3; });
+ * // => [3, 6, 9] (iteration order is not guaranteed)
+ *
+ * var users = [
+ *   { 'user': 'barney' },
+ *   { 'user': 'fred' }
+ * ];
+ *
+ * // using the "_.property" callback shorthand
+ * _.map(users, 'user');
+ * // => ['barney', 'fred']
+ */
+function map(collection, iteratee, thisArg) {
+  var func = isArray(collection) ? arrayMap : baseMap;
+  iteratee = baseCallback(iteratee, thisArg, 3);
+  return func(collection, iteratee);
+}
+
+module.exports = map;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/max.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/max.js b/node_modules/archiver/node_modules/lodash/collection/max.js
new file mode 100644
index 0000000..1c00d15
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/max.js
@@ -0,0 +1,53 @@
+var arrayMax = require('../internal/arrayMax'),
+    createExtremum = require('../internal/createExtremum');
+
+/**
+ * Gets the maximum value of `collection`. If `collection` is empty or falsey
+ * `-Infinity` is returned. If an iteratee function is provided it is invoked
+ * for each value in `collection` to generate the criterion by which the value
+ * is ranked. The `iteratee` is bound to `thisArg` and invoked with three
+ * arguments; (value, index, collection).
+ *
+ * If a property name is provided for `predicate` the created "_.property"
+ * style callback returns the property value of the given element.
+ *
+ * If value is also provided for `thisArg` the created "_.matchesProperty"
+ * style callback returns `true` for elements that have a matching property
+ * value, else `false`.
+ *
+ * If an object is provided for `predicate` the created "_.matches" style
+ * callback returns `true` for elements that have the properties of the given
+ * object, else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [iteratee] The function invoked per iteration.
+ *  If a property name or object is provided it is used to create a "_.property"
+ *  or "_.matches" style callback respectively.
+ * @param {*} [thisArg] The `this` binding of `iteratee`.
+ * @returns {*} Returns the maximum value.
+ * @example
+ *
+ * _.max([4, 2, 8, 6]);
+ * // => 8
+ *
+ * _.max([]);
+ * // => -Infinity
+ *
+ * var users = [
+ *   { 'user': 'barney', 'age': 36 },
+ *   { 'user': 'fred',   'age': 40 }
+ * ];
+ *
+ * _.max(users, function(chr) { return chr.age; });
+ * // => { 'user': 'fred', 'age': 40 };
+ *
+ * // using the "_.property" callback shorthand
+ * _.max(users, 'age');
+ * // => { 'user': 'fred', 'age': 40 };
+ */
+var max = createExtremum(arrayMax);
+
+module.exports = max;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/min.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/min.js b/node_modules/archiver/node_modules/lodash/collection/min.js
new file mode 100644
index 0000000..6d0d812
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/min.js
@@ -0,0 +1,53 @@
+var arrayMin = require('../internal/arrayMin'),
+    createExtremum = require('../internal/createExtremum');
+
+/**
+ * Gets the minimum value of `collection`. If `collection` is empty or falsey
+ * `Infinity` is returned. If an iteratee function is provided it is invoked
+ * for each value in `collection` to generate the criterion by which the value
+ * is ranked. The `iteratee` is bound to `thisArg` and invoked with three
+ * arguments; (value, index, collection).
+ *
+ * If a property name is provided for `predicate` the created "_.property"
+ * style callback returns the property value of the given element.
+ *
+ * If value is also provided for `thisArg` the created "_.matchesProperty"
+ * style callback returns `true` for elements that have a matching property
+ * value, else `false`.
+ *
+ * If an object is provided for `predicate` the created "_.matches" style
+ * callback returns `true` for elements that have the properties of the given
+ * object, else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [iteratee] The function invoked per iteration.
+ *  If a property name or object is provided it is used to create a "_.property"
+ *  or "_.matches" style callback respectively.
+ * @param {*} [thisArg] The `this` binding of `iteratee`.
+ * @returns {*} Returns the minimum value.
+ * @example
+ *
+ * _.min([4, 2, 8, 6]);
+ * // => 2
+ *
+ * _.min([]);
+ * // => Infinity
+ *
+ * var users = [
+ *   { 'user': 'barney', 'age': 36 },
+ *   { 'user': 'fred',   'age': 40 }
+ * ];
+ *
+ * _.min(users, function(chr) { return chr.age; });
+ * // => { 'user': 'barney', 'age': 36 };
+ *
+ * // using the "_.property" callback shorthand
+ * _.min(users, 'age');
+ * // => { 'user': 'barney', 'age': 36 };
+ */
+var min = createExtremum(arrayMin, true);
+
+module.exports = min;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/partition.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/partition.js b/node_modules/archiver/node_modules/lodash/collection/partition.js
new file mode 100644
index 0000000..721a4be
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/partition.js
@@ -0,0 +1,61 @@
+var createAggregator = require('../internal/createAggregator');
+
+/**
+ * Creates an array of elements split into two groups, the first of which
+ * contains elements `predicate` returns truthy for, while the second of which
+ * contains elements `predicate` returns falsey for. The predicate is bound
+ * to `thisArg` and invoked with three arguments; (value, index|key, collection).
+ *
+ * If a property name is provided for `predicate` the created "_.property"
+ * style callback returns the property value of the given element.
+ *
+ * If value is also provided for `thisArg` the created "_.matchesProperty"
+ * style callback returns `true` for elements that have a matching property
+ * value, else `false`.
+ *
+ * If an object is provided for `predicate` the created "_.matches" style
+ * callback returns `true` for elements that have the properties of the given
+ * object, else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [predicate=_.identity] The function invoked
+ *  per iteration. If a property name or object is provided it is used to
+ *  create a "_.property" or "_.matches" style callback respectively.
+ * @param {*} [thisArg] The `this` binding of `predicate`.
+ * @returns {Array} Returns the array of grouped elements.
+ * @example
+ *
+ * _.partition([1, 2, 3], function(n) { return n % 2; });
+ * // => [[1, 3], [2]]
+ *
+ * _.partition([1.2, 2.3, 3.4], function(n) { return this.floor(n) % 2; }, Math);
+ * // => [[1, 3], [2]]
+ *
+ * var users = [
+ *   { 'user': 'barney',  'age': 36, 'active': false },
+ *   { 'user': 'fred',    'age': 40, 'active': true },
+ *   { 'user': 'pebbles', 'age': 1,  'active': false }
+ * ];
+ *
+ * var mapper = function(array) { return _.pluck(array, 'user'); };
+ *
+ * // using the "_.matches" callback shorthand
+ * _.map(_.partition(users, { 'age': 1, 'active': false }), mapper);
+ * // => [['pebbles'], ['barney', 'fred']]
+ *
+ * // using the "_.matchesProperty" callback shorthand
+ * _.map(_.partition(users, 'active', false), mapper);
+ * // => [['barney', 'pebbles'], ['fred']]
+ *
+ * // using the "_.property" callback shorthand
+ * _.map(_.partition(users, 'active'), mapper);
+ * // => [['fred'], ['barney', 'pebbles']]
+ */
+var partition = createAggregator(function(result, value, key) {
+  result[key ? 0 : 1].push(value);
+}, function() { return [[], []]; });
+
+module.exports = partition;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/pluck.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/pluck.js b/node_modules/archiver/node_modules/lodash/collection/pluck.js
new file mode 100644
index 0000000..af85d5a
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/pluck.js
@@ -0,0 +1,31 @@
+var baseProperty = require('../internal/baseProperty'),
+    map = require('./map');
+
+/**
+ * Gets the value of `key` from all elements in `collection`.
+ *
+ * @static
+ * @memberOf _
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {string} key The key of the property to pluck.
+ * @returns {Array} Returns the property values.
+ * @example
+ *
+ * var users = [
+ *   { 'user': 'barney', 'age': 36 },
+ *   { 'user': 'fred',   'age': 40 }
+ * ];
+ *
+ * _.pluck(users, 'user');
+ * // => ['barney', 'fred']
+ *
+ * var userIndex = _.indexBy(users, 'user');
+ * _.pluck(userIndex, 'age');
+ * // => [36, 40] (iteration order is not guaranteed)
+ */
+function pluck(collection, key) {
+  return map(collection, baseProperty(key));
+}
+
+module.exports = pluck;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/reduce.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/reduce.js b/node_modules/archiver/node_modules/lodash/collection/reduce.js
new file mode 100644
index 0000000..0ddf678
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/reduce.js
@@ -0,0 +1,46 @@
+var arrayReduce = require('../internal/arrayReduce'),
+    baseCallback = require('../internal/baseCallback'),
+    baseEach = require('../internal/baseEach'),
+    baseReduce = require('../internal/baseReduce'),
+    isArray = require('../lang/isArray');
+
+/**
+ * Reduces `collection` to a value which is the accumulated result of running
+ * each element in `collection` through `iteratee`, where each successive
+ * invocation is supplied the return value of the previous. If `accumulator`
+ * is not provided the first element of `collection` is used as the initial
+ * value. The `iteratee` is bound to `thisArg`and invoked with four arguments;
+ * (accumulator, value, index|key, collection).
+ *
+ * Many lodash methods are guarded to work as interatees for methods like
+ * `_.reduce`, `_.reduceRight`, and `_.transform`.
+ *
+ * The guarded methods are:
+ * `assign`, `defaults`, `merge`, and `sortAllBy`
+ *
+ * @static
+ * @memberOf _
+ * @alias foldl, inject
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @param {*} [accumulator] The initial value.
+ * @param {*} [thisArg] The `this` binding of `iteratee`.
+ * @returns {*} Returns the accumulated value.
+ * @example
+ *
+ * var sum = _.reduce([1, 2, 3], function(sum, n) { return sum + n; });
+ * // => 6
+ *
+ * var mapped = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(result, n, key) {
+ *   result[key] = n * 3;
+ *   return result;
+ * }, {});
+ * // => { 'a': 3, 'b': 6, 'c': 9 } (iteration order is not guaranteed)
+ */
+function reduce(collection, iteratee, accumulator, thisArg) {
+  var func = isArray(collection) ? arrayReduce : baseReduce;
+  return func(collection, baseCallback(iteratee, thisArg, 4), accumulator, arguments.length < 3, baseEach);
+}
+
+module.exports = reduce;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/reduceRight.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/reduceRight.js b/node_modules/archiver/node_modules/lodash/collection/reduceRight.js
new file mode 100644
index 0000000..4832945
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/reduceRight.js
@@ -0,0 +1,31 @@
+var arrayReduceRight = require('../internal/arrayReduceRight'),
+    baseCallback = require('../internal/baseCallback'),
+    baseEachRight = require('../internal/baseEachRight'),
+    baseReduce = require('../internal/baseReduce'),
+    isArray = require('../lang/isArray');
+
+/**
+ * This method is like `_.reduce` except that it iterates over elements of
+ * `collection` from right to left.
+ *
+ * @static
+ * @memberOf _
+ * @alias foldr
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @param {*} [accumulator] The initial value.
+ * @param {*} [thisArg] The `this` binding of `iteratee`.
+ * @returns {*} Returns the accumulated value.
+ * @example
+ *
+ * var array = [[0, 1], [2, 3], [4, 5]];
+ * _.reduceRight(array, function(flattened, other) { return flattened.concat(other); }, []);
+ * // => [4, 5, 2, 3, 0, 1]
+ */
+function reduceRight(collection, iteratee, accumulator, thisArg) {
+  var func = isArray(collection) ? arrayReduceRight : baseReduce;
+  return func(collection, baseCallback(iteratee, thisArg, 4), accumulator, arguments.length < 3, baseEachRight);
+}
+
+module.exports = reduceRight;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/reject.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/reject.js b/node_modules/archiver/node_modules/lodash/collection/reject.js
new file mode 100644
index 0000000..33a8a92
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/reject.js
@@ -0,0 +1,60 @@
+var arrayFilter = require('../internal/arrayFilter'),
+    baseCallback = require('../internal/baseCallback'),
+    baseFilter = require('../internal/baseFilter'),
+    isArray = require('../lang/isArray');
+
+/**
+ * The opposite of `_.filter`; this method returns the elements of `collection`
+ * that `predicate` does **not** return truthy for.
+ *
+ * If a property name is provided for `predicate` the created "_.property"
+ * style callback returns the property value of the given element.
+ *
+ * If value is also provided for `thisArg` the created "_.matchesProperty"
+ * style callback returns `true` for elements that have a matching property
+ * value, else `false`.
+ *
+ * If an object is provided for `predicate` the created "_.matches" style
+ * callback returns `true` for elements that have the properties of the given
+ * object, else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [predicate=_.identity] The function invoked
+ *  per iteration. If a property name or object is provided it is used to
+ *  create a "_.property" or "_.matches" style callback respectively.
+ * @param {*} [thisArg] The `this` binding of `predicate`.
+ * @returns {Array} Returns the new filtered array.
+ * @example
+ *
+ * var odds = _.reject([1, 2, 3, 4], function(n) { return n % 2 == 0; });
+ * // => [1, 3]
+ *
+ * var users = [
+ *   { 'user': 'barney', 'age': 36, 'active': false },
+ *   { 'user': 'fred',   'age': 40, 'active': true }
+ * ];
+ *
+ * // using the "_.matches" callback shorthand
+ * _.pluck(_.reject(users, { 'age': 40, 'active': true }), 'user');
+ * // => ['barney']
+ *
+ * // using the "_.matchesProperty" callback shorthand
+ * _.pluck(_.reject(users, 'active', false), 'user');
+ * // => ['fred']
+ *
+ * // using the "_.property" callback shorthand
+ * _.pluck(_.reject(users, 'active'), 'user');
+ * // => ['barney']
+ */
+function reject(collection, predicate, thisArg) {
+  var func = isArray(collection) ? arrayFilter : baseFilter;
+  predicate = baseCallback(predicate, thisArg, 3);
+  return func(collection, function(value, index, collection) {
+    return !predicate(value, index, collection);
+  });
+}
+
+module.exports = reject;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/sample.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/sample.js b/node_modules/archiver/node_modules/lodash/collection/sample.js
new file mode 100644
index 0000000..f090db1
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/sample.js
@@ -0,0 +1,38 @@
+var baseRandom = require('../internal/baseRandom'),
+    isIterateeCall = require('../internal/isIterateeCall'),
+    shuffle = require('./shuffle'),
+    toIterable = require('../internal/toIterable');
+
+/* Native method references for those with the same name as other `lodash` methods. */
+var nativeMin = Math.min;
+
+/**
+ * Gets a random element or `n` random elements from a collection.
+ *
+ * @static
+ * @memberOf _
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to sample.
+ * @param {number} [n] The number of elements to sample.
+ * @param- {Object} [guard] Enables use as a callback for functions like `_.map`.
+ * @returns {*} Returns the random sample(s).
+ * @example
+ *
+ * _.sample([1, 2, 3, 4]);
+ * // => 2
+ *
+ * _.sample([1, 2, 3, 4], 2);
+ * // => [3, 1]
+ */
+function sample(collection, n, guard) {
+  if (guard ? isIterateeCall(collection, n, guard) : n == null) {
+    collection = toIterable(collection);
+    var length = collection.length;
+    return length > 0 ? collection[baseRandom(0, length - 1)] : undefined;
+  }
+  var result = shuffle(collection);
+  result.length = nativeMin(n < 0 ? 0 : (+n || 0), result.length);
+  return result;
+}
+
+module.exports = sample;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/select.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/select.js b/node_modules/archiver/node_modules/lodash/collection/select.js
new file mode 100644
index 0000000..ade80f6
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/select.js
@@ -0,0 +1 @@
+module.exports = require('./filter');

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/shuffle.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/shuffle.js b/node_modules/archiver/node_modules/lodash/collection/shuffle.js
new file mode 100644
index 0000000..7548c1a
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/shuffle.js
@@ -0,0 +1,36 @@
+var baseRandom = require('../internal/baseRandom'),
+    toIterable = require('../internal/toIterable');
+
+/**
+ * Creates an array of shuffled values, using a version of the Fisher-Yates
+ * shuffle. See [Wikipedia](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle)
+ * for more details.
+ *
+ * @static
+ * @memberOf _
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to shuffle.
+ * @returns {Array} Returns the new shuffled array.
+ * @example
+ *
+ * _.shuffle([1, 2, 3, 4]);
+ * // => [4, 1, 3, 2]
+ */
+function shuffle(collection) {
+  collection = toIterable(collection);
+
+  var index = -1,
+      length = collection.length,
+      result = Array(length);
+
+  while (++index < length) {
+    var rand = baseRandom(0, index);
+    if (index != rand) {
+      result[index] = result[rand];
+    }
+    result[rand] = collection[index];
+  }
+  return result;
+}
+
+module.exports = shuffle;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/size.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/size.js b/node_modules/archiver/node_modules/lodash/collection/size.js
new file mode 100644
index 0000000..5c87062
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/size.js
@@ -0,0 +1,29 @@
+var isLength = require('../internal/isLength'),
+    keys = require('../object/keys');
+
+/**
+ * Gets the size of `collection` by returning `collection.length` for
+ * array-like values or the number of own enumerable properties for objects.
+ *
+ * @static
+ * @memberOf _
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to inspect.
+ * @returns {number} Returns the size of `collection`.
+ * @example
+ *
+ * _.size([1, 2]);
+ * // => 2
+ *
+ * _.size({ 'one': 1, 'two': 2, 'three': 3 });
+ * // => 3
+ *
+ * _.size('pebbles');
+ * // => 7
+ */
+function size(collection) {
+  var length = collection ? collection.length : 0;
+  return isLength(length) ? length : keys(collection).length;
+}
+
+module.exports = size;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/some.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/some.js b/node_modules/archiver/node_modules/lodash/collection/some.js
new file mode 100644
index 0000000..b4ae2a2
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/some.js
@@ -0,0 +1,64 @@
+var arraySome = require('../internal/arraySome'),
+    baseCallback = require('../internal/baseCallback'),
+    baseSome = require('../internal/baseSome'),
+    isArray = require('../lang/isArray');
+
+/**
+ * Checks if `predicate` returns truthy for **any** element of `collection`.
+ * The function returns as soon as it finds a passing value and does not iterate
+ * over the entire collection. The predicate is bound to `thisArg` and invoked
+ * with three arguments; (value, index|key, collection).
+ *
+ * If a property name is provided for `predicate` the created "_.property"
+ * style callback returns the property value of the given element.
+ *
+ * If value is also provided for `thisArg` the created "_.matchesProperty"
+ * style callback returns `true` for elements that have a matching property
+ * value, else `false`.
+ *
+ * If an object is provided for `predicate` the created "_.matches" style
+ * callback returns `true` for elements that have the properties of the given
+ * object, else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @alias any
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [predicate=_.identity] The function invoked
+ *  per iteration. If a property name or object is provided it is used to
+ *  create a "_.property" or "_.matches" style callback respectively.
+ * @param {*} [thisArg] The `this` binding of `predicate`.
+ * @returns {boolean} Returns `true` if any element passes the predicate check,
+ *  else `false`.
+ * @example
+ *
+ * _.some([null, 0, 'yes', false], Boolean);
+ * // => true
+ *
+ * var users = [
+ *   { 'user': 'barney', 'age': 36, 'active': false },
+ *   { 'user': 'fred',   'age': 40, 'active': true }
+ * ];
+ *
+ * // using the "_.matches" callback shorthand
+ * _.some(users, { 'age': 1, 'active': true });
+ * // => false
+ *
+ * // using the "_.matchesProperty" callback shorthand
+ * _.some(users, 'active', false);
+ * // => true
+ *
+ * // using the "_.property" callback shorthand
+ * _.some(users, 'active');
+ * // => true
+ */
+function some(collection, predicate, thisArg) {
+  var func = isArray(collection) ? arraySome : baseSome;
+  if (typeof predicate != 'function' || typeof thisArg != 'undefined') {
+    predicate = baseCallback(predicate, thisArg, 3);
+  }
+  return func(collection, predicate);
+}
+
+module.exports = some;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/sortBy.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/sortBy.js b/node_modules/archiver/node_modules/lodash/collection/sortBy.js
new file mode 100644
index 0000000..33e908d
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/sortBy.js
@@ -0,0 +1,68 @@
+var baseCallback = require('../internal/baseCallback'),
+    baseEach = require('../internal/baseEach'),
+    baseSortBy = require('../internal/baseSortBy'),
+    compareAscending = require('../internal/compareAscending'),
+    isIterateeCall = require('../internal/isIterateeCall'),
+    isLength = require('../internal/isLength');
+
+/**
+ * Creates an array of elements, sorted in ascending order by the results of
+ * running each element in a collection through `iteratee`. This method performs
+ * a stable sort, that is, it preserves the original sort order of equal elements.
+ * The `iteratee` is bound to `thisArg` and invoked with three arguments;
+ * (value, index|key, collection).
+ *
+ * If a property name is provided for `predicate` the created "_.property"
+ * style callback returns the property value of the given element.
+ *
+ * If value is also provided for `thisArg` the created "_.matchesProperty"
+ * style callback returns `true` for elements that have a matching property
+ * value, else `false`.
+ *
+ * If an object is provided for `predicate` the created "_.matches" style
+ * callback returns `true` for elements that have the properties of the given
+ * object, else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Array|Function|Object|string} [iteratee=_.identity] The function
+ *  invoked per iteration. If a property name or an object is provided it is
+ *  used to create a "_.property" or "_.matches" style callback respectively.
+ * @param {*} [thisArg] The `this` binding of `iteratee`.
+ * @returns {Array} Returns the new sorted array.
+ * @example
+ *
+ * _.sortBy([1, 2, 3], function(n) { return Math.sin(n); });
+ * // => [3, 1, 2]
+ *
+ * _.sortBy([1, 2, 3], function(n) { return this.sin(n); }, Math);
+ * // => [3, 1, 2]
+ *
+ * var users = [
+ *   { 'user': 'fred' },
+ *   { 'user': 'pebbles' },
+ *   { 'user': 'barney' }
+ * ];
+ *
+ * // using the "_.property" callback shorthand
+ * _.pluck(_.sortBy(users, 'user'), 'user');
+ * // => ['barney', 'fred', 'pebbles']
+ */
+function sortBy(collection, iteratee, thisArg) {
+  var index = -1,
+      length = collection ? collection.length : 0,
+      result = isLength(length) ? Array(length) : [];
+
+  if (thisArg && isIterateeCall(collection, iteratee, thisArg)) {
+    iteratee = null;
+  }
+  iteratee = baseCallback(iteratee, thisArg, 3);
+  baseEach(collection, function(value, key, collection) {
+    result[++index] = { 'criteria': iteratee(value, key, collection), 'index': index, 'value': value };
+  });
+  return baseSortBy(result, compareAscending);
+}
+
+module.exports = sortBy;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/sortByAll.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/sortByAll.js b/node_modules/archiver/node_modules/lodash/collection/sortByAll.js
new file mode 100644
index 0000000..19fe32e
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/sortByAll.js
@@ -0,0 +1,53 @@
+var baseEach = require('../internal/baseEach'),
+    baseFlatten = require('../internal/baseFlatten'),
+    baseSortBy = require('../internal/baseSortBy'),
+    compareMultipleAscending = require('../internal/compareMultipleAscending'),
+    isIterateeCall = require('../internal/isIterateeCall'),
+    isLength = require('../internal/isLength');
+
+/**
+ * This method is like `_.sortBy` except that it sorts by property names
+ * instead of an iteratee function.
+ *
+ * @static
+ * @memberOf _
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {...(string|string[])} props The property names to sort by,
+ *  specified as individual property names or arrays of property names.
+ * @returns {Array} Returns the new sorted array.
+ * @example
+ *
+ * var users = [
+ *   { 'user': 'barney', 'age': 36 },
+ *   { 'user': 'fred',   'age': 40 },
+ *   { 'user': 'barney', 'age': 26 },
+ *   { 'user': 'fred',   'age': 30 }
+ * ];
+ *
+ * _.map(_.sortByAll(users, ['user', 'age']), _.values);
+ * // => [['barney', 26], ['barney', 36], ['fred', 30], ['fred', 40]]
+ */
+function sortByAll(collection) {
+  var args = arguments;
+  if (args.length > 3 && isIterateeCall(args[1], args[2], args[3])) {
+    args = [collection, args[1]];
+  }
+  var index = -1,
+      length = collection ? collection.length : 0,
+      props = baseFlatten(args, false, false, 1),
+      result = isLength(length) ? Array(length) : [];
+
+  baseEach(collection, function(value) {
+    var length = props.length,
+        criteria = Array(length);
+
+    while (length--) {
+      criteria[length] = value == null ? undefined : value[props[length]];
+    }
+    result[++index] = { 'criteria': criteria, 'index': index, 'value': value };
+  });
+  return baseSortBy(result, compareMultipleAscending);
+}
+
+module.exports = sortByAll;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/collection/where.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/collection/where.js b/node_modules/archiver/node_modules/lodash/collection/where.js
new file mode 100644
index 0000000..f603bf8
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/collection/where.js
@@ -0,0 +1,37 @@
+var baseMatches = require('../internal/baseMatches'),
+    filter = require('./filter');
+
+/**
+ * Performs a deep comparison between each element in `collection` and the
+ * source object, returning an array of all elements that have equivalent
+ * property values.
+ *
+ * **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 Collection
+ * @param {Array|Object|string} collection The collection to search.
+ * @param {Object} source The object of property values to match.
+ * @returns {Array} Returns the new filtered array.
+ * @example
+ *
+ * var users = [
+ *   { 'user': 'barney', 'age': 36, 'active': false, 'pets': ['hoppy'] },
+ *   { 'user': 'fred',   'age': 40, 'active': true, 'pets': ['baby puss', 'dino'] }
+ * ];
+ *
+ * _.pluck(_.where(users, { 'age': 36, 'active': false }), 'user');
+ * // => ['barney']
+ *
+ * _.pluck(_.where(users, { 'pets': ['dino'] }), 'user');
+ * // => ['fred']
+ */
+function where(collection, source) {
+  return filter(collection, baseMatches(source));
+}
+
+module.exports = where;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/date.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/date.js b/node_modules/archiver/node_modules/lodash/date.js
new file mode 100644
index 0000000..195366e
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/date.js
@@ -0,0 +1,3 @@
+module.exports = {
+  'now': require('./date/now')
+};

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/date/now.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/date/now.js b/node_modules/archiver/node_modules/lodash/date/now.js
new file mode 100644
index 0000000..bca5604
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/date/now.js
@@ -0,0 +1,22 @@
+var isNative = require('../lang/isNative');
+
+/* Native method references for those with the same name as other `lodash` methods. */
+var nativeNow = isNative(nativeNow = Date.now) && nativeNow;
+
+/**
+ * Gets the number of milliseconds that have elapsed since the Unix epoch
+ * (1 January 1970 00:00:00 UTC).
+ *
+ * @static
+ * @memberOf _
+ * @category Date
+ * @example
+ *
+ * _.defer(function(stamp) { console.log(_.now() - stamp); }, _.now());
+ * // => logs the number of milliseconds it took for the deferred function to be invoked
+ */
+var now = nativeNow || function() {
+  return new Date().getTime();
+};
+
+module.exports = now;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/function.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/function.js b/node_modules/archiver/node_modules/lodash/function.js
new file mode 100644
index 0000000..33ccefc
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/function.js
@@ -0,0 +1,26 @@
+module.exports = {
+  'after': require('./function/after'),
+  'ary': require('./function/ary'),
+  'backflow': require('./function/backflow'),
+  'before': require('./function/before'),
+  'bind': require('./function/bind'),
+  'bindAll': require('./function/bindAll'),
+  'bindKey': require('./function/bindKey'),
+  'compose': require('./function/compose'),
+  'curry': require('./function/curry'),
+  'curryRight': require('./function/curryRight'),
+  'debounce': require('./function/debounce'),
+  'defer': require('./function/defer'),
+  'delay': require('./function/delay'),
+  'flow': require('./function/flow'),
+  'flowRight': require('./function/flowRight'),
+  'memoize': require('./function/memoize'),
+  'negate': require('./function/negate'),
+  'once': require('./function/once'),
+  'partial': require('./function/partial'),
+  'partialRight': require('./function/partialRight'),
+  'rearg': require('./function/rearg'),
+  'spread': require('./function/spread'),
+  'throttle': require('./function/throttle'),
+  'wrap': require('./function/wrap')
+};

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/function/after.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/function/after.js b/node_modules/archiver/node_modules/lodash/function/after.js
new file mode 100644
index 0000000..e6a5de4
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/function/after.js
@@ -0,0 +1,48 @@
+/** Used as the `TypeError` message for "Functions" methods. */
+var FUNC_ERROR_TEXT = 'Expected a function';
+
+/* Native method references for those with the same name as other `lodash` methods. */
+var nativeIsFinite = global.isFinite;
+
+/**
+ * The opposite of `_.before`; this method creates a function that invokes
+ * `func` once it is called `n` or more times.
+ *
+ * @static
+ * @memberOf _
+ * @category Function
+ * @param {number} n The number of calls before `func` is invoked.
+ * @param {Function} func The function to restrict.
+ * @returns {Function} Returns the new restricted function.
+ * @example
+ *
+ * var saves = ['profile', 'settings'];
+ *
+ * var done = _.after(saves.length, function() {
+ *   console.log('done saving!');
+ * });
+ *
+ * _.forEach(saves, function(type) {
+ *   asyncSave({ 'type': type, 'complete': done });
+ * });
+ * // => logs 'done saving!' after the two async saves have completed
+ */
+function after(n, func) {
+  if (typeof func != 'function') {
+    if (typeof n == 'function') {
+      var temp = n;
+      n = func;
+      func = temp;
+    } else {
+      throw new TypeError(FUNC_ERROR_TEXT);
+    }
+  }
+  n = nativeIsFinite(n = +n) ? n : 0;
+  return function() {
+    if (--n < 1) {
+      return func.apply(this, arguments);
+    }
+  };
+}
+
+module.exports = after;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/function/ary.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/function/ary.js b/node_modules/archiver/node_modules/lodash/function/ary.js
new file mode 100644
index 0000000..9604c1b
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/function/ary.js
@@ -0,0 +1,34 @@
+var createWrapper = require('../internal/createWrapper'),
+    isIterateeCall = require('../internal/isIterateeCall');
+
+/** Used to compose bitmasks for wrapper metadata. */
+var ARY_FLAG = 256;
+
+/* Native method references for those with the same name as other `lodash` methods. */
+var nativeMax = Math.max;
+
+/**
+ * Creates a function that accepts up to `n` arguments ignoring any
+ * additional arguments.
+ *
+ * @static
+ * @memberOf _
+ * @category Function
+ * @param {Function} func The function to cap arguments for.
+ * @param {number} [n=func.length] The arity cap.
+ * @param- {Object} [guard] Enables use as a callback for functions like `_.map`.
+ * @returns {Function} Returns the new function.
+ * @example
+ *
+ * _.map(['6', '8', '10'], _.ary(parseInt, 1));
+ * // => [6, 8, 10]
+ */
+function ary(func, n, guard) {
+  if (guard && isIterateeCall(func, n, guard)) {
+    n = null;
+  }
+  n = (func && n == null) ? func.length : nativeMax(+n || 0, 0);
+  return createWrapper(func, ARY_FLAG, null, null, null, null, n);
+}
+
+module.exports = ary;

http://git-wip-us.apache.org/repos/asf/cordova-firefoxos/blob/bd21ce3b/node_modules/archiver/node_modules/lodash/function/backflow.js
----------------------------------------------------------------------
diff --git a/node_modules/archiver/node_modules/lodash/function/backflow.js b/node_modules/archiver/node_modules/lodash/function/backflow.js
new file mode 100644
index 0000000..1954e94
--- /dev/null
+++ b/node_modules/archiver/node_modules/lodash/function/backflow.js
@@ -0,0 +1 @@
+module.exports = require('./flowRight');


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