necessary 11.3.2 → 11.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -601,6 +601,7 @@ pathWithoutTopmostDirectoryNameFromPath("root/etc/init.conf"); // returns 'etc/i
601
601
  - `prune()`
602
602
  - `patch()`
603
603
  - `compress()`
604
+ - `combine()`
604
605
  - `augment()`
605
606
  - `separate()`
606
607
  - `forwardsFind()`
@@ -690,6 +691,12 @@ patch([1, 2, 0, -1, -2], 4, (element, index) => (element === 0)); // the array a
690
691
  compress([1, 2, 1], (element1, element2) => (element1 === element2)); // the array argument becomes [1, 2]
691
692
  ```
692
693
 
694
+ * The `combine()` function will concatenate the two array arguments, combine them and and return the result
695
+
696
+ ```
697
+ combine([1, 2, 1], [2, 3], (element1, element2) => (element1 === element2)); // returns [1, 2, 3]
698
+ ```
699
+
693
700
  * The `augment()` function appends each of the elements of the second array argument to the first array argument whenever the callback returns a truthy value:
694
701
 
695
702
  ```
@@ -30,6 +30,7 @@ exports.find = find;
30
30
  exports.prune = prune;
31
31
  exports.patch = patch;
32
32
  exports.compress = compress;
33
+ exports.combine = combine;
33
34
  exports.augment = augment;
34
35
  exports.separate = separate;
35
36
  exports.forwardsFind = forwardsFind;
@@ -226,6 +227,11 @@ function compress(array, callback) {
226
227
  length = array.length;
227
228
  }
228
229
  }
230
+ function combine(array1, array2, callback) {
231
+ var array = _toConsumableArray(array1).concat(_toConsumableArray(array2));
232
+ compress(array, callback);
233
+ return array;
234
+ }
229
235
  function augment(array1, array2, callback) {
230
236
  array2.forEach(function(element, index) {
231
237
  var passed = callback(element, index);
@@ -361,6 +367,7 @@ var _default = {
361
367
  prune: prune,
362
368
  patch: patch,
363
369
  compress: compress,
370
+ combine: combine,
364
371
  augment: augment,
365
372
  separate: separate,
366
373
  forwardsFind: forwardsFind,
@@ -376,4 +383,4 @@ var _default = {
376
383
  };
377
384
  exports.default = _default;
378
385
 
379
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYXJyYXkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdChhcnJheSkgeyByZXR1cm4gYXJyYXlbMF07fVxuXG5leHBvcnQgZnVuY3Rpb24gc2Vjb25kKGFycmF5KSB7IHJldHVybiBhcnJheVsxXTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gdGhpcmQoYXJyYXkpIHsgcmV0dXJuIGFycmF5WzJdOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3VydGgoYXJyYXkpIHsgcmV0dXJuIGFycmF5WzNdOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWZ0aChhcnJheSkgeyByZXR1cm4gYXJyYXlbNF07IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpZnRoTGFzdChhcnJheSkgeyByZXR1cm4gYXJyYXlbYXJyYXkubGVuZ3RoIC0gNV07IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvdXJ0aExhc3QoYXJyYXkpIHsgcmV0dXJuIGFycmF5W2FycmF5Lmxlbmd0aCAtIDRdOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiB0aGlyZExhc3QoYXJyYXkpIHsgcmV0dXJuIGFycmF5W2FycmF5Lmxlbmd0aCAtIDNdOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBzZWNvbmRMYXN0KGFycmF5KSB7IHJldHVybiBhcnJheVthcnJheS5sZW5ndGggLSAyXTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gZmlyc3RMYXN0KGFycmF5KSB7IHJldHVybiBhcnJheVthcnJheS5sZW5ndGggLSAxXTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gbGFzdChhcnJheSkgeyByZXR1cm4gYXJyYXlbYXJyYXkubGVuZ3RoIC0gMV07IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGhlYWQoYXJyYXkpIHsgcmV0dXJuIGFycmF5LnNsaWNlKDAsIDEpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiB0YWlsKGFycmF5KSB7IHJldHVybiBhcnJheS5zbGljZSgxKTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gYmFjayhhcnJheSkgeyByZXR1cm4gYXJyYXkuc2xpY2UoYXJyYXkubGVuZ3RoIC0gMSk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyb250KGFycmF5KSB7IHJldHVybiBhcnJheS5zbGljZSgwLCBNYXRoLm1heCgxLCBhcnJheS5sZW5ndGggLSAxKSk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIHB1c2goYXJyYXkxLCBhcnJheTIpIHsgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoYXJyYXkxLCBhcnJheTIpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnNoaWZ0KGFycmF5MSwgYXJyYXkyKSB7IEFycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGFycmF5MSwgYXJyYXkyKTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gY29uY2F0KGFycmF5MSwgZWxlbWVudE9yQXJyYXkyKSB7XG4gIGNvbnN0IGFycmF5MiA9IChlbGVtZW50T3JBcnJheTIgaW5zdGFuY2VvZiBBcnJheSkgP1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50T3JBcnJheTIgOlxuICAgICAgICAgICAgICAgICAgICAgW2VsZW1lbnRPckFycmF5Ml07XG4gIFxuICBwdXNoKGFycmF5MSwgYXJyYXkyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyKGFycmF5KSB7XG4gIGNvbnN0IHN0YXJ0ID0gMDtcbiAgXG4gIHJldHVybiBhcnJheS5zcGxpY2Uoc3RhcnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29weShhcnJheTEsIGFycmF5Mikge1xuICBjb25zdCBzdGFydCA9IDAsXG4gICAgICAgIGRlbGV0ZUNvdW50ID0gYXJyYXkyLmxlbmd0aDsgIC8vL1xuICBcbiAgc3BsaWNlKGFycmF5MSwgc3RhcnQsIGRlbGV0ZUNvdW50LCBhcnJheTIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2UoYXJyYXkxLCBhcnJheTIpIHsgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoYXJyYXkxLCBhcnJheTIpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBzcGxpY2UoYXJyYXkxLCBzdGFydCwgZGVsZXRlQ291bnQgPSBJbmZpbml0eSwgYXJyYXkyID0gW10pIHtcbiAgY29uc3QgYXJncyA9IFtzdGFydCwgZGVsZXRlQ291bnQsIC4uLmFycmF5Ml0sXG4gICAgICAgIGRlbGV0ZWRJdGVtc0FycmF5ID0gQXJyYXkucHJvdG90eXBlLnNwbGljZS5hcHBseShhcnJheTEsIGFyZ3MpO1xuXG4gIHJldHVybiBkZWxldGVkSXRlbXNBcnJheTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2UoYXJyYXksIGVsZW1lbnQsIGNhbGxiYWNrKSB7XG4gIGxldCBzdGFydDtcbiAgXG4gIGNvbnN0IGZvdW5kID0gYXJyYXkuc29tZSgoZWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFjayhlbGVtZW50LCBpbmRleCk7XG5cbiAgICBpZiAocGFzc2VkKSB7XG4gICAgICBzdGFydCA9IGluZGV4OyAgLy8vXG4gICAgICBcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG4gIFxuICBpZiAoZm91bmQpIHtcbiAgICBjb25zdCBkZWxldGVDb3VudCA9IDE7XG5cbiAgICBhcnJheS5zcGxpY2Uoc3RhcnQsIGRlbGV0ZUNvdW50LCBlbGVtZW50KTtcbiAgfVxuXG4gIHJldHVybiBmb3VuZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlcihhcnJheSwgY2FsbGJhY2spIHtcbiAgY29uc3QgZmlsdGVyZWRFbGVtZW50cyA9IFtdO1xuICBcbiAgYmFja3dhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgcGFzc2VkID0gY2FsbGJhY2soZWxlbWVudCwgaW5kZXgpO1xuXG4gICAgaWYgKCFwYXNzZWQpIHtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gaW5kZXgsICAvLy9cbiAgICAgICAgICAgIGRlbGV0ZUNvdW50ID0gMSxcbiAgICAgICAgICAgIGRlbGV0ZWRFbGVtZW50cyA9IGFycmF5LnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpLFxuICAgICAgICAgICAgZmlyc3REZWxldGVkRWxlbWVudCA9IGZpcnN0KGRlbGV0ZWRFbGVtZW50cyk7XG4gICAgICBcbiAgICAgIGZpbHRlcmVkRWxlbWVudHMudW5zaGlmdChmaXJzdERlbGV0ZWRFbGVtZW50KTsgIC8vL1xuICAgIH1cbiAgfSk7XG4gIFxuICByZXR1cm4gZmlsdGVyZWRFbGVtZW50cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmQoYXJyYXksIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGVsZW1lbnRzID0gW107XG5cbiAgZm9yd2FyZHNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFjayhlbGVtZW50LCBpbmRleCk7XG5cbiAgICBpZiAocGFzc2VkKSB7XG4gICAgICBlbGVtZW50cy5wdXNoKGVsZW1lbnQpO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGVsZW1lbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJ1bmUoYXJyYXksIGNhbGxiYWNrKSB7XG4gIGxldCBwcnVuZWRFbGVtZW50ID0gdW5kZWZpbmVkO1xuICBcbiAgYXJyYXkuc29tZSgoZWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFjayhlbGVtZW50LCBpbmRleCk7XG5cbiAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgY29uc3Qgc3RhcnQgPSBpbmRleCwgIC8vL1xuICAgICAgICAgICAgZGVsZXRlQ291bnQgPSAxLFxuICAgICAgICAgICAgZGVsZXRlZEVsZW1lbnRzID0gYXJyYXkuc3BsaWNlKHN0YXJ0LCBkZWxldGVDb3VudCksXG4gICAgICAgICAgICBmaXJzdERlbGV0ZWRFbGVtZW50ID0gZmlyc3QoZGVsZXRlZEVsZW1lbnRzKTtcbiAgICAgIFxuICAgICAgcHJ1bmVkRWxlbWVudCA9IGZpcnN0RGVsZXRlZEVsZW1lbnQ7ICAvLy9cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbiAgXG4gIHJldHVybiBwcnVuZWRFbGVtZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0Y2goYXJyYXksIGVsZW1lbnQsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGZvdW5kID0gYXJyYXkuc29tZSgoZWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFjayhlbGVtZW50LCBpbmRleCk7XG5cbiAgICBpZiAocGFzc2VkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG5cbiAgaWYgKGZvdW5kKSB7XG4gICAgYXJyYXkucHVzaChlbGVtZW50KTtcbiAgfVxuXG4gIHJldHVybiBmb3VuZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzKGFycmF5LCBjYWxsYmFjaykge1xuICBsZXQgaW5kZXgxID0gMCxcbiAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICB3aGlsZSAoaW5kZXgxIDwgbGVuZ3RoKSB7XG4gICAgY29uc3QgZWxlbWVudDEgPSBhcnJheVtpbmRleDFdO1xuXG4gICAgZm9yIChsZXQgaW5kZXgyID0gbGVuZ3RoIC0gMTsgaW5kZXgyID4gaW5kZXgxOyBpbmRleDItLSkge1xuICAgICAgY29uc3QgZWxlbWVudDIgPSBhcnJheVtpbmRleDJdLFxuICAgICAgICAgICAgcGFzc2VkID0gY2FsbGJhY2soZWxlbWVudDIsIGVsZW1lbnQxKTtcblxuICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICBjb25zdCBzdGFydCA9IGluZGV4MiwgLy8vXG4gICAgICAgICAgICAgIGRlbGV0ZUNvdW50ID0gMTtcblxuICAgICAgICBhcnJheS5zcGxpY2Uoc3RhcnQsIGRlbGV0ZUNvdW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbmRleDErKztcblxuICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXVnbWVudChhcnJheTEsIGFycmF5MiwgY2FsbGJhY2spIHtcbiAgYXJyYXkyLmZvckVhY2goKGVsZW1lbnQsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgcGFzc2VkID0gY2FsbGJhY2soZWxlbWVudCwgaW5kZXgpO1xuXG4gICAgaWYgKHBhc3NlZCkge1xuICAgICAgYXJyYXkxLnB1c2goZWxlbWVudCk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlcGFyYXRlKGFycmF5LCBhcnJheTEsIGFycmF5MiwgY2FsbGJhY2spIHtcbiAgYXJyYXkuZm9yRWFjaCgoZWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFjayhlbGVtZW50LCBpbmRleCk7XG5cbiAgICBwYXNzZWQgP1xuICAgICAgYXJyYXkxLnB1c2goZWxlbWVudCkgOlxuICAgICAgICBhcnJheTIucHVzaChlbGVtZW50KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3J3YXJkc0ZpbmQoYXJyYXksIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGFycmF5TGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBhcnJheUxlbmd0aDsgaW5kZXgrKykge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF0sXG4gICAgICAgICAgcGFzc2VkID0gY2FsbGJhY2soZWxlbWVudCwgaW5kZXgpO1xuXG4gICAgaWYgKHBhc3NlZCkge1xuICAgICAgcmV0dXJuIGVsZW1lbnQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFja3dhcmRzRmluZChhcnJheSwgY2FsbGJhY2spIHtcbiAgY29uc3QgYXJyYXlMZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZm9yIChsZXQgaW5kZXggPSBhcnJheUxlbmd0aCAtIDE7IGluZGV4ID49IDA7IGluZGV4LS0pIHtcbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICAgIHBhc3NlZCA9IGNhbGxiYWNrKGVsZW1lbnQsIGluZGV4KTtcblxuICAgIGlmIChwYXNzZWQpIHtcbiAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcndhcmRzU29tZShhcnJheSwgY2FsbGJhY2spIHtcbiAgY29uc3QgYXJyYXlMZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5TGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgICBwYXNzZWQgPSBjYWxsYmFjayhlbGVtZW50LCBpbmRleCk7XG4gICAgXG4gICAgaWYgKHBhc3NlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFja3dhcmRzU29tZShhcnJheSwgY2FsbGJhY2spIHtcbiAgY29uc3QgYXJyYXlMZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZm9yIChsZXQgaW5kZXggPSBhcnJheUxlbmd0aCAtIDE7IGluZGV4ID49IDA7IGluZGV4LS0pIHtcbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICAgIHBhc3NlZCA9IGNhbGxiYWNrKGVsZW1lbnQsIGluZGV4KTtcblxuICAgIGlmIChwYXNzZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcndhcmRzRXZlcnkoYXJyYXksIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGFycmF5TGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBhcnJheUxlbmd0aDsgaW5kZXgrKykge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF0sXG4gICAgICAgICAgcGFzc2VkID0gY2FsbGJhY2soZWxlbWVudCwgaW5kZXgpO1xuXG4gICAgaWYgKCFwYXNzZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJhY2t3YXJkc0V2ZXJ5KGFycmF5LCBjYWxsYmFjaykge1xuICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmb3IgKGxldCBpbmRleCA9IGFycmF5TGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXgtLSkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF0sXG4gICAgICAgICAgcGFzc2VkID0gY2FsbGJhY2soZWxlbWVudCwgaW5kZXgpO1xuXG4gICAgaWYgKCFwYXNzZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcndhcmRzUmVkdWNlKGFycmF5LCBjYWxsYmFjaywgaW5pdGlhbFZhbHVlKSB7XG4gIGxldCB2YWx1ZSA9IGluaXRpYWxWYWx1ZTsgLy8vXG5cbiAgY29uc3QgYXJyYXlMZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5TGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHZhbHVlID0gY2FsbGJhY2sodmFsdWUsIGVsZW1lbnQsIGluZGV4KTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJhY2t3YXJkc1JlZHVjZShhcnJheSwgY2FsbGJhY2ssIGluaXRpYWxWYWx1ZSkge1xuICBsZXQgdmFsdWUgPSBpbml0aWFsVmFsdWU7IC8vL1xuXG4gIGNvbnN0IGFycmF5TGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZvciAobGV0IGluZGV4ID0gYXJyYXlMZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleC0tKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHZhbHVlID0gY2FsbGJhY2sodmFsdWUsIGVsZW1lbnQsIGluZGV4KTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcndhcmRzRm9yRWFjaChhcnJheSwgY2FsbGJhY2spIHtcbiAgY29uc3QgYXJyYXlMZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5TGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIGNhbGxiYWNrKGVsZW1lbnQsIGluZGV4KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFja3dhcmRzRm9yRWFjaChhcnJheSwgY2FsbGJhY2spIHtcbiAgY29uc3QgYXJyYXlMZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZm9yIChsZXQgaW5kZXggPSBhcnJheUxlbmd0aCAtIDE7IGluZGV4ID49IDA7IGluZGV4LS0pIHtcbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgY2FsbGJhY2soZWxlbWVudCwgaW5kZXgpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgZmlyc3QsXG4gIHNlY29uZCxcbiAgdGhpcmQsXG4gIGZvdXJ0aCxcbiAgZmlmdGgsXG4gIGZpZnRoTGFzdCxcbiAgZm91cnRoTGFzdCxcbiAgdGhpcmRMYXN0LFxuICBzZWNvbmRMYXN0LFxuICBmaXJzdExhc3QsXG4gIGxhc3QsXG4gIGhlYWQsXG4gIHRhaWwsXG4gIGJhY2ssXG4gIGZyb250LFxuICBwdXNoLFxuICB1bnNoaWZ0LFxuICBjb25jYXQsXG4gIGNsZWFyLFxuICBjb3B5LFxuICBtZXJnZSxcbiAgc3BsaWNlLFxuICByZXBsYWNlLFxuICBmaWx0ZXIsXG4gIGZpbmQsXG4gIHBydW5lLFxuICBwYXRjaCxcbiAgY29tcHJlc3MsXG4gIGF1Z21lbnQsXG4gIHNlcGFyYXRlLFxuICBmb3J3YXJkc0ZpbmQsXG4gIGJhY2t3YXJkc0ZpbmQsXG4gIGZvcndhcmRzU29tZSxcbiAgYmFja3dhcmRzU29tZSxcbiAgZm9yd2FyZHNFdmVyeSxcbiAgYmFja3dhcmRzRXZlcnksXG4gIGZvcndhcmRzUmVkdWNlLFxuICBiYWNrd2FyZHNSZWR1Y2UsXG4gIGZvcndhcmRzRm9yRWFjaCxcbiAgYmFja3dhcmRzRm9yRWFjaFxufTtcbiJdLCJuYW1lcyI6WyJmaXJzdCIsInNlY29uZCIsInRoaXJkIiwiZm91cnRoIiwiZmlmdGgiLCJmaWZ0aExhc3QiLCJmb3VydGhMYXN0IiwidGhpcmRMYXN0Iiwic2Vjb25kTGFzdCIsImZpcnN0TGFzdCIsImxhc3QiLCJoZWFkIiwidGFpbCIsImJhY2siLCJmcm9udCIsInB1c2giLCJ1bnNoaWZ0IiwiY29uY2F0IiwiY2xlYXIiLCJjb3B5IiwibWVyZ2UiLCJzcGxpY2UiLCJyZXBsYWNlIiwiZmlsdGVyIiwiZmluZCIsInBydW5lIiwicGF0Y2giLCJjb21wcmVzcyIsImF1Z21lbnQiLCJzZXBhcmF0ZSIsImZvcndhcmRzRmluZCIsImJhY2t3YXJkc0ZpbmQiLCJmb3J3YXJkc1NvbWUiLCJiYWNrd2FyZHNTb21lIiwiZm9yd2FyZHNFdmVyeSIsImJhY2t3YXJkc0V2ZXJ5IiwiZm9yd2FyZHNSZWR1Y2UiLCJiYWNrd2FyZHNSZWR1Y2UiLCJmb3J3YXJkc0ZvckVhY2giLCJiYWNrd2FyZHNGb3JFYWNoIiwiYXJyYXkiLCJsZW5ndGgiLCJzbGljZSIsIk1hdGgiLCJtYXgiLCJhcnJheTEiLCJhcnJheTIiLCJBcnJheSIsInByb3RvdHlwZSIsImFwcGx5IiwiZWxlbWVudE9yQXJyYXkyIiwic3RhcnQiLCJkZWxldGVDb3VudCIsIkluZmluaXR5IiwiYXJncyIsImRlbGV0ZWRJdGVtc0FycmF5IiwiZWxlbWVudCIsImNhbGxiYWNrIiwiZm91bmQiLCJzb21lIiwiaW5kZXgiLCJwYXNzZWQiLCJmaWx0ZXJlZEVsZW1lbnRzIiwiZGVsZXRlZEVsZW1lbnRzIiwiZmlyc3REZWxldGVkRWxlbWVudCIsImVsZW1lbnRzIiwicHJ1bmVkRWxlbWVudCIsInVuZGVmaW5lZCIsImluZGV4MSIsImVsZW1lbnQxIiwiaW5kZXgyIiwiZWxlbWVudDIiLCJmb3JFYWNoIiwiYXJyYXlMZW5ndGgiLCJpbml0aWFsVmFsdWUiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7OztRQUVJQSxLQUFLLEdBQUxBLEtBQUs7UUFFTEMsTUFBTSxHQUFOQSxNQUFNO1FBRU5DLEtBQUssR0FBTEEsS0FBSztRQUVMQyxNQUFNLEdBQU5BLE1BQU07UUFFTkMsS0FBSyxHQUFMQSxLQUFLO1FBRUxDLFNBQVMsR0FBVEEsU0FBUztRQUVUQyxVQUFVLEdBQVZBLFVBQVU7UUFFVkMsU0FBUyxHQUFUQSxTQUFTO1FBRVRDLFVBQVUsR0FBVkEsVUFBVTtRQUVWQyxTQUFTLEdBQVRBLFNBQVM7UUFFVEMsSUFBSSxHQUFKQSxJQUFJO1FBRUpDLElBQUksR0FBSkEsSUFBSTtRQUVKQyxJQUFJLEdBQUpBLElBQUk7UUFFSkMsSUFBSSxHQUFKQSxJQUFJO1FBRUpDLEtBQUssR0FBTEEsS0FBSztRQUVMQyxJQUFJLEdBQUpBLElBQUk7UUFFSkMsT0FBTyxHQUFQQSxPQUFPO1FBRVBDLE1BQU0sR0FBTkEsTUFBTTtRQVFOQyxLQUFLLEdBQUxBLEtBQUs7UUFNTEMsSUFBSSxHQUFKQSxJQUFJO1FBT0pDLEtBQUssR0FBTEEsS0FBSztRQUVMQyxNQUFNLEdBQU5BLE1BQU07UUFPTkMsT0FBTyxHQUFQQSxPQUFPO1FBc0JQQyxNQUFNLEdBQU5BLE1BQU07UUFtQk5DLElBQUksR0FBSkEsSUFBSTtRQWNKQyxLQUFLLEdBQUxBLEtBQUs7UUFxQkxDLEtBQUssR0FBTEEsS0FBSztRQWlCTEMsUUFBUSxHQUFSQSxRQUFRO1FBeUJSQyxPQUFPLEdBQVBBLE9B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
386
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYXJyYXkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdChhcnJheSkgeyByZXR1cm4gYXJyYXlbMF07fVxuXG5leHBvcnQgZnVuY3Rpb24gc2Vjb25kKGFycmF5KSB7IHJldHVybiBhcnJheVsxXTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gdGhpcmQoYXJyYXkpIHsgcmV0dXJuIGFycmF5WzJdOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3VydGgoYXJyYXkpIHsgcmV0dXJuIGFycmF5WzNdOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWZ0aChhcnJheSkgeyByZXR1cm4gYXJyYXlbNF07IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpZnRoTGFzdChhcnJheSkgeyByZXR1cm4gYXJyYXlbYXJyYXkubGVuZ3RoIC0gNV07IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvdXJ0aExhc3QoYXJyYXkpIHsgcmV0dXJuIGFycmF5W2FycmF5Lmxlbmd0aCAtIDRdOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiB0aGlyZExhc3QoYXJyYXkpIHsgcmV0dXJuIGFycmF5W2FycmF5Lmxlbmd0aCAtIDNdOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBzZWNvbmRMYXN0KGFycmF5KSB7IHJldHVybiBhcnJheVthcnJheS5sZW5ndGggLSAyXTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gZmlyc3RMYXN0KGFycmF5KSB7IHJldHVybiBhcnJheVthcnJheS5sZW5ndGggLSAxXTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gbGFzdChhcnJheSkgeyByZXR1cm4gYXJyYXlbYXJyYXkubGVuZ3RoIC0gMV07IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGhlYWQoYXJyYXkpIHsgcmV0dXJuIGFycmF5LnNsaWNlKDAsIDEpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiB0YWlsKGFycmF5KSB7IHJldHVybiBhcnJheS5zbGljZSgxKTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gYmFjayhhcnJheSkgeyByZXR1cm4gYXJyYXkuc2xpY2UoYXJyYXkubGVuZ3RoIC0gMSk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyb250KGFycmF5KSB7IHJldHVybiBhcnJheS5zbGljZSgwLCBNYXRoLm1heCgxLCBhcnJheS5sZW5ndGggLSAxKSk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIHB1c2goYXJyYXkxLCBhcnJheTIpIHsgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoYXJyYXkxLCBhcnJheTIpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnNoaWZ0KGFycmF5MSwgYXJyYXkyKSB7IEFycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGFycmF5MSwgYXJyYXkyKTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gY29uY2F0KGFycmF5MSwgZWxlbWVudE9yQXJyYXkyKSB7XG4gIGNvbnN0IGFycmF5MiA9IChlbGVtZW50T3JBcnJheTIgaW5zdGFuY2VvZiBBcnJheSkgP1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50T3JBcnJheTIgOlxuICAgICAgICAgICAgICAgICAgICAgWyBlbGVtZW50T3JBcnJheTIgXTtcbiAgXG4gIHB1c2goYXJyYXkxLCBhcnJheTIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYXIoYXJyYXkpIHtcbiAgY29uc3Qgc3RhcnQgPSAwO1xuICBcbiAgcmV0dXJuIGFycmF5LnNwbGljZShzdGFydCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb3B5KGFycmF5MSwgYXJyYXkyKSB7XG4gIGNvbnN0IHN0YXJ0ID0gMCxcbiAgICAgICAgZGVsZXRlQ291bnQgPSBhcnJheTIubGVuZ3RoOyAgLy8vXG4gIFxuICBzcGxpY2UoYXJyYXkxLCBzdGFydCwgZGVsZXRlQ291bnQsIGFycmF5Mik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZShhcnJheTEsIGFycmF5MikgeyBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShhcnJheTEsIGFycmF5Mik7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIHNwbGljZShhcnJheTEsIHN0YXJ0LCBkZWxldGVDb3VudCA9IEluZmluaXR5LCBhcnJheTIgPSBbXSkge1xuICBjb25zdCBhcmdzID0gW3N0YXJ0LCBkZWxldGVDb3VudCwgLi4uYXJyYXkyXSxcbiAgICAgICAgZGVsZXRlZEl0ZW1zQXJyYXkgPSBBcnJheS5wcm90b3R5cGUuc3BsaWNlLmFwcGx5KGFycmF5MSwgYXJncyk7XG5cbiAgcmV0dXJuIGRlbGV0ZWRJdGVtc0FycmF5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZShhcnJheSwgZWxlbWVudCwgY2FsbGJhY2spIHtcbiAgbGV0IHN0YXJ0O1xuICBcbiAgY29uc3QgZm91bmQgPSBhcnJheS5zb21lKChlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IHBhc3NlZCA9IGNhbGxiYWNrKGVsZW1lbnQsIGluZGV4KTtcblxuICAgIGlmIChwYXNzZWQpIHtcbiAgICAgIHN0YXJ0ID0gaW5kZXg7ICAvLy9cbiAgICAgIFxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbiAgXG4gIGlmIChmb3VuZCkge1xuICAgIGNvbnN0IGRlbGV0ZUNvdW50ID0gMTtcblxuICAgIGFycmF5LnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQsIGVsZW1lbnQpO1xuICB9XG5cbiAgcmV0dXJuIGZvdW5kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyKGFycmF5LCBjYWxsYmFjaykge1xuICBjb25zdCBmaWx0ZXJlZEVsZW1lbnRzID0gW107XG4gIFxuICBiYWNrd2FyZHNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFjayhlbGVtZW50LCBpbmRleCk7XG5cbiAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgY29uc3Qgc3RhcnQgPSBpbmRleCwgIC8vL1xuICAgICAgICAgICAgZGVsZXRlQ291bnQgPSAxLFxuICAgICAgICAgICAgZGVsZXRlZEVsZW1lbnRzID0gYXJyYXkuc3BsaWNlKHN0YXJ0LCBkZWxldGVDb3VudCksXG4gICAgICAgICAgICBmaXJzdERlbGV0ZWRFbGVtZW50ID0gZmlyc3QoZGVsZXRlZEVsZW1lbnRzKTtcbiAgICAgIFxuICAgICAgZmlsdGVyZWRFbGVtZW50cy51bnNoaWZ0KGZpcnN0RGVsZXRlZEVsZW1lbnQpOyAgLy8vXG4gICAgfVxuICB9KTtcbiAgXG4gIHJldHVybiBmaWx0ZXJlZEVsZW1lbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZChhcnJheSwgY2FsbGJhY2spIHtcbiAgY29uc3QgZWxlbWVudHMgPSBbXTtcblxuICBmb3J3YXJkc0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IHBhc3NlZCA9IGNhbGxiYWNrKGVsZW1lbnQsIGluZGV4KTtcblxuICAgIGlmIChwYXNzZWQpIHtcbiAgICAgIGVsZW1lbnRzLnB1c2goZWxlbWVudCk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZWxlbWVudHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcnVuZShhcnJheSwgY2FsbGJhY2spIHtcbiAgbGV0IHBydW5lZEVsZW1lbnQgPSB1bmRlZmluZWQ7XG4gIFxuICBhcnJheS5zb21lKChlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IHBhc3NlZCA9IGNhbGxiYWNrKGVsZW1lbnQsIGluZGV4KTtcblxuICAgIGlmICghcGFzc2VkKSB7XG4gICAgICBjb25zdCBzdGFydCA9IGluZGV4LCAgLy8vXG4gICAgICAgICAgICBkZWxldGVDb3VudCA9IDEsXG4gICAgICAgICAgICBkZWxldGVkRWxlbWVudHMgPSBhcnJheS5zcGxpY2Uoc3RhcnQsIGRlbGV0ZUNvdW50KSxcbiAgICAgICAgICAgIGZpcnN0RGVsZXRlZEVsZW1lbnQgPSBmaXJzdChkZWxldGVkRWxlbWVudHMpO1xuICAgICAgXG4gICAgICBwcnVuZWRFbGVtZW50ID0gZmlyc3REZWxldGVkRWxlbWVudDsgIC8vL1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuICBcbiAgcmV0dXJuIHBydW5lZEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRjaChhcnJheSwgZWxlbWVudCwgY2FsbGJhY2spIHtcbiAgY29uc3QgZm91bmQgPSBhcnJheS5zb21lKChlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IHBhc3NlZCA9IGNhbGxiYWNrKGVsZW1lbnQsIGluZGV4KTtcblxuICAgIGlmIChwYXNzZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cblxuICBpZiAoZm91bmQpIHtcbiAgICBhcnJheS5wdXNoKGVsZW1lbnQpO1xuICB9XG5cbiAgcmV0dXJuIGZvdW5kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcHJlc3MoYXJyYXksIGNhbGxiYWNrKSB7XG4gIGxldCBpbmRleDEgPSAwLFxuICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIHdoaWxlIChpbmRleDEgPCBsZW5ndGgpIHtcbiAgICBjb25zdCBlbGVtZW50MSA9IGFycmF5W2luZGV4MV07XG5cbiAgICBmb3IgKGxldCBpbmRleDIgPSBsZW5ndGggLSAxOyBpbmRleDIgPiBpbmRleDE7IGluZGV4Mi0tKSB7XG4gICAgICBjb25zdCBlbGVtZW50MiA9IGFycmF5W2luZGV4Ml0sXG4gICAgICAgICAgICBwYXNzZWQgPSBjYWxsYmFjayhlbGVtZW50MiwgZWxlbWVudDEpO1xuXG4gICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gaW5kZXgyLCAvLy9cbiAgICAgICAgICAgICAgZGVsZXRlQ291bnQgPSAxO1xuXG4gICAgICAgIGFycmF5LnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGluZGV4MSsrO1xuXG4gICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lKGFycmF5MSwgYXJyYXkyLCBjYWxsYmFjaykge1xuICBjb25zdCBhcnJheSA9IFtcbiAgICAuLi5hcnJheTEsXG4gICAgLi4uYXJyYXkyXG4gIF07XG5cbiAgY29tcHJlc3MoYXJyYXksIGNhbGxiYWNrKTtcblxuICByZXR1cm4gYXJyYXk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhdWdtZW50KGFycmF5MSwgYXJyYXkyLCBjYWxsYmFjaykge1xuICBhcnJheTIuZm9yRWFjaCgoZWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFjayhlbGVtZW50LCBpbmRleCk7XG5cbiAgICBpZiAocGFzc2VkKSB7XG4gICAgICBhcnJheTEucHVzaChlbGVtZW50KTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VwYXJhdGUoYXJyYXksIGFycmF5MSwgYXJyYXkyLCBjYWxsYmFjaykge1xuICBhcnJheS5mb3JFYWNoKChlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IHBhc3NlZCA9IGNhbGxiYWNrKGVsZW1lbnQsIGluZGV4KTtcblxuICAgIHBhc3NlZCA/XG4gICAgICBhcnJheTEucHVzaChlbGVtZW50KSA6XG4gICAgICAgIGFycmF5Mi5wdXNoKGVsZW1lbnQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcndhcmRzRmluZChhcnJheSwgY2FsbGJhY2spIHtcbiAgY29uc3QgYXJyYXlMZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5TGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgICBwYXNzZWQgPSBjYWxsYmFjayhlbGVtZW50LCBpbmRleCk7XG5cbiAgICBpZiAocGFzc2VkKSB7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiYWNrd2FyZHNGaW5kKGFycmF5LCBjYWxsYmFjaykge1xuICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmb3IgKGxldCBpbmRleCA9IGFycmF5TGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXgtLSkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF0sXG4gICAgICAgICAgcGFzc2VkID0gY2FsbGJhY2soZWxlbWVudCwgaW5kZXgpO1xuXG4gICAgaWYgKHBhc3NlZCkge1xuICAgICAgcmV0dXJuIGVsZW1lbnQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yd2FyZHNTb21lKGFycmF5LCBjYWxsYmFjaykge1xuICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYXJyYXlMZW5ndGg7IGluZGV4KyspIHtcbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICAgIHBhc3NlZCA9IGNhbGxiYWNrKGVsZW1lbnQsIGluZGV4KTtcbiAgICBcbiAgICBpZiAocGFzc2VkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiYWNrd2FyZHNTb21lKGFycmF5LCBjYWxsYmFjaykge1xuICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmb3IgKGxldCBpbmRleCA9IGFycmF5TGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXgtLSkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF0sXG4gICAgICAgICAgcGFzc2VkID0gY2FsbGJhY2soZWxlbWVudCwgaW5kZXgpO1xuXG4gICAgaWYgKHBhc3NlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yd2FyZHNFdmVyeShhcnJheSwgY2FsbGJhY2spIHtcbiAgY29uc3QgYXJyYXlMZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5TGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgICBwYXNzZWQgPSBjYWxsYmFjayhlbGVtZW50LCBpbmRleCk7XG5cbiAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFja3dhcmRzRXZlcnkoYXJyYXksIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGFycmF5TGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZvciAobGV0IGluZGV4ID0gYXJyYXlMZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleC0tKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgICBwYXNzZWQgPSBjYWxsYmFjayhlbGVtZW50LCBpbmRleCk7XG5cbiAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yd2FyZHNSZWR1Y2UoYXJyYXksIGNhbGxiYWNrLCBpbml0aWFsVmFsdWUpIHtcbiAgbGV0IHZhbHVlID0gaW5pdGlhbFZhbHVlOyAvLy9cblxuICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYXJyYXlMZW5ndGg7IGluZGV4KyspIHtcbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgdmFsdWUgPSBjYWxsYmFjayh2YWx1ZSwgZWxlbWVudCwgaW5kZXgpO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFja3dhcmRzUmVkdWNlKGFycmF5LCBjYWxsYmFjaywgaW5pdGlhbFZhbHVlKSB7XG4gIGxldCB2YWx1ZSA9IGluaXRpYWxWYWx1ZTsgLy8vXG5cbiAgY29uc3QgYXJyYXlMZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZm9yIChsZXQgaW5kZXggPSBhcnJheUxlbmd0aCAtIDE7IGluZGV4ID49IDA7IGluZGV4LS0pIHtcbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgdmFsdWUgPSBjYWxsYmFjayh2YWx1ZSwgZWxlbWVudCwgaW5kZXgpO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yd2FyZHNGb3JFYWNoKGFycmF5LCBjYWxsYmFjaykge1xuICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYXJyYXlMZW5ndGg7IGluZGV4KyspIHtcbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgY2FsbGJhY2soZWxlbWVudCwgaW5kZXgpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiYWNrd2FyZHNGb3JFYWNoKGFycmF5LCBjYWxsYmFjaykge1xuICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmb3IgKGxldCBpbmRleCA9IGFycmF5TGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXgtLSkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICBjYWxsYmFjayhlbGVtZW50LCBpbmRleCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBmaXJzdCxcbiAgc2Vjb25kLFxuICB0aGlyZCxcbiAgZm91cnRoLFxuICBmaWZ0aCxcbiAgZmlmdGhMYXN0LFxuICBmb3VydGhMYXN0LFxuICB0aGlyZExhc3QsXG4gIHNlY29uZExhc3QsXG4gIGZpcnN0TGFzdCxcbiAgbGFzdCxcbiAgaGVhZCxcbiAgdGFpbCxcbiAgYmFjayxcbiAgZnJvbnQsXG4gIHB1c2gsXG4gIHVuc2hpZnQsXG4gIGNvbmNhdCxcbiAgY2xlYXIsXG4gIGNvcHksXG4gIG1lcmdlLFxuICBzcGxpY2UsXG4gIHJlcGxhY2UsXG4gIGZpbHRlcixcbiAgZmluZCxcbiAgcHJ1bmUsXG4gIHBhdGNoLFxuICBjb21wcmVzcyxcbiAgY29tYmluZSxcbiAgYXVnbWVudCxcbiAgc2VwYXJhdGUsXG4gIGZvcndhcmRzRmluZCxcbiAgYmFja3dhcmRzRmluZCxcbiAgZm9yd2FyZHNTb21lLFxuICBiYWNrd2FyZHNTb21lLFxuICBmb3J3YXJkc0V2ZXJ5LFxuICBiYWNrd2FyZHNFdmVyeSxcbiAgZm9yd2FyZHNSZWR1Y2UsXG4gIGJhY2t3YXJkc1JlZHVjZSxcbiAgZm9yd2FyZHNGb3JFYWNoLFxuICBiYWNrd2FyZHNGb3JFYWNoXG59O1xuIl0sIm5hbWVzIjpbImZpcnN0Iiwic2Vjb25kIiwidGhpcmQiLCJmb3VydGgiLCJmaWZ0aCIsImZpZnRoTGFzdCIsImZvdXJ0aExhc3QiLCJ0aGlyZExhc3QiLCJzZWNvbmRMYXN0IiwiZmlyc3RMYXN0IiwibGFzdCIsImhlYWQiLCJ0YWlsIiwiYmFjayIsImZyb250IiwicHVzaCIsInVuc2hpZnQiLCJjb25jYXQiLCJjbGVhciIsImNvcHkiLCJtZXJnZSIsInNwbGljZSIsInJlcGxhY2UiLCJmaWx0ZXIiLCJmaW5kIiwicHJ1bmUiLCJwYXRjaCIsImNvbXByZXNzIiwiY29tYmluZSIsImF1Z21lbnQiLCJzZXBhcmF0ZSIsImZvcndhcmRzRmluZCIsImJhY2t3YXJkc0ZpbmQiLCJmb3J3YXJkc1NvbWUiLCJiYWNrd2FyZHNTb21lIiwiZm9yd2FyZHNFdmVyeSIsImJhY2t3YXJkc0V2ZXJ5IiwiZm9yd2FyZHNSZWR1Y2UiLCJiYWNrd2FyZHNSZWR1Y2UiLCJmb3J3YXJkc0ZvckVhY2giLCJiYWNrd2FyZHNGb3JFYWNoIiwiYXJyYXkiLCJsZW5ndGgiLCJzbGljZSIsIk1hdGgiLCJtYXgiLCJhcnJheTEiLCJhcnJheTIiLCJBcnJheSIsInByb3RvdHlwZSIsImFwcGx5IiwiZWxlbWVudE9yQXJyYXkyIiwic3RhcnQiLCJkZWxldGVDb3VudCIsIkluZmluaXR5IiwiYXJncyIsImRlbGV0ZWRJdGVtc0FycmF5IiwiZWxlbWVudCIsImNhbGxiYWNrIiwiZm91bmQiLCJzb21lIiwiaW5kZXgiLCJwYXNzZWQiLCJmaWx0ZXJlZEVsZW1lbnRzIiwiZGVsZXRlZEVsZW1lbnRzIiwiZmlyc3REZWxldGVkRWxlbWVudCIsImVsZW1lbnRzIiwicHJ1bmVkRWxlbWVudCIsInVuZGVmaW5lZCIsImluZGV4MSIsImVsZW1lbnQxIiwiaW5kZXgyIiwiZWxlbWVudDIiLCJmb3JFYWNoIiwiYXJyYXlMZW5ndGgiLCJpbml0aWFsVmFsdWUiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7OztRQUVJQSxLQUFLLEdBQUxBLEtBQUs7UUFFTEMsTUFBTSxHQUFOQSxNQUFNO1FBRU5DLEtBQUssR0FBTEEsS0FBSztRQUVMQyxNQUFNLEdBQU5BLE1BQU07UUFFTkMsS0FBSyxHQUFMQSxLQUFLO1FBRUxDLFNBQVMsR0FBVEEsU0FBUztRQUVUQyxVQUFVLEdBQVZBLFVBQVU7UUFFVkMsU0FBUyxHQUFUQSxTQUFTO1FBRVRDLFVBQVUsR0FBVkEsVUFBVTtRQUVWQyxTQUFTLEdBQVRBLFNBQVM7UUFFVEMsSUFBSSxHQUFKQSxJQUFJO1FBRUpDLElBQUksR0FBSkEsSUFBSTtRQUVKQyxJQUFJLEdBQUpBLElBQUk7UUFFSkMsSUFBSSxHQUFKQSxJQUFJO1FBRUpDLEtBQUssR0FBTEEsS0FBSztRQUVMQyxJQUFJLEdBQUpBLElBQUk7UUFFSkMsT0FBTyxHQUFQQSxPQUFPO1FBRVBDLE1BQU0sR0FBTkEsTUFBTTtRQVFOQyxLQUFLLEdBQUxBLEtBQUs7UUFNTEMsSUFBSSxHQUFKQSxJQUFJO1FBT0pDLEtBQUss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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "necessary",
3
3
  "author": "James Smith",
4
- "version": "11.3.2",
4
+ "version": "11.4.0",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/necessary",
7
7
  "description": "A collection of utility functions.",
@@ -37,7 +37,7 @@ export function unshift(array1, array2) { Array.prototype.unshift.apply(array1,
37
37
  export function concat(array1, elementOrArray2) {
38
38
  const array2 = (elementOrArray2 instanceof Array) ?
39
39
  elementOrArray2 :
40
- [elementOrArray2];
40
+ [ elementOrArray2 ];
41
41
 
42
42
  push(array1, array2);
43
43
  }
@@ -182,6 +182,17 @@ export function compress(array, callback) {
182
182
  }
183
183
  }
184
184
 
185
+ export function combine(array1, array2, callback) {
186
+ const array = [
187
+ ...array1,
188
+ ...array2
189
+ ];
190
+
191
+ compress(array, callback);
192
+
193
+ return array;
194
+ }
195
+
185
196
  export function augment(array1, array2, callback) {
186
197
  array2.forEach((element, index) => {
187
198
  const passed = callback(element, index);
@@ -369,6 +380,7 @@ export default {
369
380
  prune,
370
381
  patch,
371
382
  compress,
383
+ combine,
372
384
  augment,
373
385
  separate,
374
386
  forwardsFind,