<|start_filename|>test-treeshake/rollup.config.js<|end_filename|>
module.exports = [{
  input: 'map.js',
  output: {
    file: 'map-umd.js',
    format: 'umd',
    name: 'map',
  },
}, {
  input: 'template.js',
  output: {
    file: 'template-umd.js',
    format: 'umd',
    name: 'template',
  },
}];


<|start_filename|>test-treeshake/map.js<|end_filename|>
export { default as map } from '../modules/map.js';


<|start_filename|>docs/modules/index.html<|end_filename|>

<!DOCTYPE html>

<html>
<head>
  <title>Named Exports</title>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
  <link rel="stylesheet" media="all" href="../docco.css" />
</head>
<body>
  <div id="container">
    <div id="background"></div>
    
      <ul id="jump_to">
        <li>
          <a class="large" href="javascript:void(0);">Jump To &hellip;</a>
          <a class="small" href="javascript:void(0);">+</a>
          <div id="jump_wrapper">
          <div id="jump_page_wrapper">
            <div id="jump_page">
              
                
                <a class="source" href="_baseCreate.html">
                  modules/_baseCreate.js
                </a>
              
                
                <a class="source" href="_baseIteratee.html">
                  modules/_baseIteratee.js
                </a>
              
                
                <a class="source" href="_cb.html">
                  modules/_cb.js
                </a>
              
                
                <a class="source" href="_chainResult.html">
                  modules/_chainResult.js
                </a>
              
                
                <a class="source" href="_collectNonEnumProps.html">
                  modules/_collectNonEnumProps.js
                </a>
              
                
                <a class="source" href="_createAssigner.html">
                  modules/_createAssigner.js
                </a>
              
                
                <a class="source" href="_createEscaper.html">
                  modules/_createEscaper.js
                </a>
              
                
                <a class="source" href="_createIndexFinder.html">
                  modules/_createIndexFinder.js
                </a>
              
                
                <a class="source" href="_createPredicateIndexFinder.html">
                  modules/_createPredicateIndexFinder.js
                </a>
              
                
                <a class="source" href="_createReduce.html">
                  modules/_createReduce.js
                </a>
              
                
                <a class="source" href="_createSizePropertyCheck.html">
                  modules/_createSizePropertyCheck.js
                </a>
              
                
                <a class="source" href="_deepGet.html">
                  modules/_deepGet.js
                </a>
              
                
                <a class="source" href="_escapeMap.html">
                  modules/_escapeMap.js
                </a>
              
                
                <a class="source" href="_executeBound.html">
                  modules/_executeBound.js
                </a>
              
                
                <a class="source" href="_flatten.html">
                  modules/_flatten.js
                </a>
              
                
                <a class="source" href="_getByteLength.html">
                  modules/_getByteLength.js
                </a>
              
                
                <a class="source" href="_getLength.html">
                  modules/_getLength.js
                </a>
              
                
                <a class="source" href="_group.html">
                  modules/_group.js
                </a>
              
                
                <a class="source" href="_has.html">
                  modules/_has.js
                </a>
              
                
                <a class="source" href="_hasObjectTag.html">
                  modules/_hasObjectTag.js
                </a>
              
                
                <a class="source" href="_isArrayLike.html">
                  modules/_isArrayLike.js
                </a>
              
                
                <a class="source" href="_isBufferLike.html">
                  modules/_isBufferLike.js
                </a>
              
                
                <a class="source" href="_keyInObj.html">
                  modules/_keyInObj.js
                </a>
              
                
                <a class="source" href="_methodFingerprint.html">
                  modules/_methodFingerprint.js
                </a>
              
                
                <a class="source" href="_optimizeCb.html">
                  modules/_optimizeCb.js
                </a>
              
                
                <a class="source" href="_setup.html">
                  modules/_setup.js
                </a>
              
                
                <a class="source" href="_shallowProperty.html">
                  modules/_shallowProperty.js
                </a>
              
                
                <a class="source" href="_stringTagBug.html">
                  modules/_stringTagBug.js
                </a>
              
                
                <a class="source" href="_tagTester.html">
                  modules/_tagTester.js
                </a>
              
                
                <a class="source" href="_toBufferView.html">
                  modules/_toBufferView.js
                </a>
              
                
                <a class="source" href="_toPath.html">
                  modules/_toPath.js
                </a>
              
                
                <a class="source" href="_unescapeMap.html">
                  modules/_unescapeMap.js
                </a>
              
                
                <a class="source" href="after.html">
                  modules/after.js
                </a>
              
                
                <a class="source" href="allKeys.html">
                  modules/allKeys.js
                </a>
              
                
                <a class="source" href="before.html">
                  modules/before.js
                </a>
              
                
                <a class="source" href="bind.html">
                  modules/bind.js
                </a>
              
                
                <a class="source" href="bindAll.html">
                  modules/bindAll.js
                </a>
              
                
                <a class="source" href="chain.html">
                  modules/chain.js
                </a>
              
                
                <a class="source" href="chunk.html">
                  modules/chunk.js
                </a>
              
                
                <a class="source" href="clone.html">
                  modules/clone.js
                </a>
              
                
                <a class="source" href="compact.html">
                  modules/compact.js
                </a>
              
                
                <a class="source" href="compose.html">
                  modules/compose.js
                </a>
              
                
                <a class="source" href="constant.html">
                  modules/constant.js
                </a>
              
                
                <a class="source" href="contains.html">
                  modules/contains.js
                </a>
              
                
                <a class="source" href="countBy.html">
                  modules/countBy.js
                </a>
              
                
                <a class="source" href="create.html">
                  modules/create.js
                </a>
              
                
                <a class="source" href="debounce.html">
                  modules/debounce.js
                </a>
              
                
                <a class="source" href="defaults.html">
                  modules/defaults.js
                </a>
              
                
                <a class="source" href="defer.html">
                  modules/defer.js
                </a>
              
                
                <a class="source" href="delay.html">
                  modules/delay.js
                </a>
              
                
                <a class="source" href="difference.html">
                  modules/difference.js
                </a>
              
                
                <a class="source" href="each.html">
                  modules/each.js
                </a>
              
                
                <a class="source" href="escape.html">
                  modules/escape.js
                </a>
              
                
                <a class="source" href="every.html">
                  modules/every.js
                </a>
              
                
                <a class="source" href="extend.html">
                  modules/extend.js
                </a>
              
                
                <a class="source" href="extendOwn.html">
                  modules/extendOwn.js
                </a>
              
                
                <a class="source" href="filter.html">
                  modules/filter.js
                </a>
              
                
                <a class="source" href="find.html">
                  modules/find.js
                </a>
              
                
                <a class="source" href="findIndex.html">
                  modules/findIndex.js
                </a>
              
                
                <a class="source" href="findKey.html">
                  modules/findKey.js
                </a>
              
                
                <a class="source" href="findLastIndex.html">
                  modules/findLastIndex.js
                </a>
              
                
                <a class="source" href="findWhere.html">
                  modules/findWhere.js
                </a>
              
                
                <a class="source" href="first.html">
                  modules/first.js
                </a>
              
                
                <a class="source" href="flatten.html">
                  modules/flatten.js
                </a>
              
                
                <a class="source" href="functions.html">
                  modules/functions.js
                </a>
              
                
                <a class="source" href="get.html">
                  modules/get.js
                </a>
              
                
                <a class="source" href="groupBy.html">
                  modules/groupBy.js
                </a>
              
                
                <a class="source" href="has.html">
                  modules/has.js
                </a>
              
                
                <a class="source" href="identity.html">
                  modules/identity.js
                </a>
              
                
                <a class="source" href="index-all.html">
                  modules/index-all.js
                </a>
              
                
                <a class="source" href="index-default.html">
                  modules/index-default.js
                </a>
              
                
                <a class="source" href="index.html">
                  modules/index.js
                </a>
              
                
                <a class="source" href="indexBy.html">
                  modules/indexBy.js
                </a>
              
                
                <a class="source" href="indexOf.html">
                  modules/indexOf.js
                </a>
              
                
                <a class="source" href="initial.html">
                  modules/initial.js
                </a>
              
                
                <a class="source" href="intersection.html">
                  modules/intersection.js
                </a>
              
                
                <a class="source" href="invert.html">
                  modules/invert.js
                </a>
              
                
                <a class="source" href="invoke.html">
                  modules/invoke.js
                </a>
              
                
                <a class="source" href="isArguments.html">
                  modules/isArguments.js
                </a>
              
                
                <a class="source" href="isArray.html">
                  modules/isArray.js
                </a>
              
                
                <a class="source" href="isArrayBuffer.html">
                  modules/isArrayBuffer.js
                </a>
              
                
                <a class="source" href="isBoolean.html">
                  modules/isBoolean.js
                </a>
              
                
                <a class="source" href="isDataView.html">
                  modules/isDataView.js
                </a>
              
                
                <a class="source" href="isDate.html">
                  modules/isDate.js
                </a>
              
                
                <a class="source" href="isElement.html">
                  modules/isElement.js
                </a>
              
                
                <a class="source" href="isEmpty.html">
                  modules/isEmpty.js
                </a>
              
                
                <a class="source" href="isEqual.html">
                  modules/isEqual.js
                </a>
              
                
                <a class="source" href="isError.html">
                  modules/isError.js
                </a>
              
                
                <a class="source" href="isFinite.html">
                  modules/isFinite.js
                </a>
              
                
                <a class="source" href="isFunction.html">
                  modules/isFunction.js
                </a>
              
                
                <a class="source" href="isMap.html">
                  modules/isMap.js
                </a>
              
                
                <a class="source" href="isMatch.html">
                  modules/isMatch.js
                </a>
              
                
                <a class="source" href="isNaN.html">
                  modules/isNaN.js
                </a>
              
                
                <a class="source" href="isNull.html">
                  modules/isNull.js
                </a>
              
                
                <a class="source" href="isNumber.html">
                  modules/isNumber.js
                </a>
              
                
                <a class="source" href="isObject.html">
                  modules/isObject.js
                </a>
              
                
                <a class="source" href="isRegExp.html">
                  modules/isRegExp.js
                </a>
              
                
                <a class="source" href="isSet.html">
                  modules/isSet.js
                </a>
              
                
                <a class="source" href="isString.html">
                  modules/isString.js
                </a>
              
                
                <a class="source" href="isSymbol.html">
                  modules/isSymbol.js
                </a>
              
                
                <a class="source" href="isTypedArray.html">
                  modules/isTypedArray.js
                </a>
              
                
                <a class="source" href="isUndefined.html">
                  modules/isUndefined.js
                </a>
              
                
                <a class="source" href="isWeakMap.html">
                  modules/isWeakMap.js
                </a>
              
                
                <a class="source" href="isWeakSet.html">
                  modules/isWeakSet.js
                </a>
              
                
                <a class="source" href="iteratee.html">
                  modules/iteratee.js
                </a>
              
                
                <a class="source" href="keys.html">
                  modules/keys.js
                </a>
              
                
                <a class="source" href="last.html">
                  modules/last.js
                </a>
              
                
                <a class="source" href="lastIndexOf.html">
                  modules/lastIndexOf.js
                </a>
              
                
                <a class="source" href="map.html">
                  modules/map.js
                </a>
              
                
                <a class="source" href="mapObject.html">
                  modules/mapObject.js
                </a>
              
                
                <a class="source" href="matcher.html">
                  modules/matcher.js
                </a>
              
                
                <a class="source" href="max.html">
                  modules/max.js
                </a>
              
                
                <a class="source" href="memoize.html">
                  modules/memoize.js
                </a>
              
                
                <a class="source" href="min.html">
                  modules/min.js
                </a>
              
                
                <a class="source" href="mixin.html">
                  modules/mixin.js
                </a>
              
                
                <a class="source" href="negate.html">
                  modules/negate.js
                </a>
              
                
                <a class="source" href="noop.html">
                  modules/noop.js
                </a>
              
                
                <a class="source" href="now.html">
                  modules/now.js
                </a>
              
                
                <a class="source" href="object.html">
                  modules/object.js
                </a>
              
                
                <a class="source" href="omit.html">
                  modules/omit.js
                </a>
              
                
                <a class="source" href="once.html">
                  modules/once.js
                </a>
              
                
                <a class="source" href="pairs.html">
                  modules/pairs.js
                </a>
              
                
                <a class="source" href="partial.html">
                  modules/partial.js
                </a>
              
                
                <a class="source" href="partition.html">
                  modules/partition.js
                </a>
              
                
                <a class="source" href="pick.html">
                  modules/pick.js
                </a>
              
                
                <a class="source" href="pluck.html">
                  modules/pluck.js
                </a>
              
                
                <a class="source" href="property.html">
                  modules/property.js
                </a>
              
                
                <a class="source" href="propertyOf.html">
                  modules/propertyOf.js
                </a>
              
                
                <a class="source" href="random.html">
                  modules/random.js
                </a>
              
                
                <a class="source" href="range.html">
                  modules/range.js
                </a>
              
                
                <a class="source" href="reduce.html">
                  modules/reduce.js
                </a>
              
                
                <a class="source" href="reduceRight.html">
                  modules/reduceRight.js
                </a>
              
                
                <a class="source" href="reject.html">
                  modules/reject.js
                </a>
              
                
                <a class="source" href="rest.html">
                  modules/rest.js
                </a>
              
                
                <a class="source" href="restArguments.html">
                  modules/restArguments.js
                </a>
              
                
                <a class="source" href="result.html">
                  modules/result.js
                </a>
              
                
                <a class="source" href="sample.html">
                  modules/sample.js
                </a>
              
                
                <a class="source" href="shuffle.html">
                  modules/shuffle.js
                </a>
              
                
                <a class="source" href="size.html">
                  modules/size.js
                </a>
              
                
                <a class="source" href="some.html">
                  modules/some.js
                </a>
              
                
                <a class="source" href="sortBy.html">
                  modules/sortBy.js
                </a>
              
                
                <a class="source" href="sortedIndex.html">
                  modules/sortedIndex.js
                </a>
              
                
                <a class="source" href="tap.html">
                  modules/tap.js
                </a>
              
                
                <a class="source" href="template.html">
                  modules/template.js
                </a>
              
                
                <a class="source" href="templateSettings.html">
                  modules/templateSettings.js
                </a>
              
                
                <a class="source" href="throttle.html">
                  modules/throttle.js
                </a>
              
                
                <a class="source" href="times.html">
                  modules/times.js
                </a>
              
                
                <a class="source" href="toArray.html">
                  modules/toArray.js
                </a>
              
                
                <a class="source" href="toPath.html">
                  modules/toPath.js
                </a>
              
                
                <a class="source" href="underscore-array-methods.html">
                  modules/underscore-array-methods.js
                </a>
              
                
                <a class="source" href="underscore.html">
                  modules/underscore.js
                </a>
              
                
                <a class="source" href="unescape.html">
                  modules/unescape.js
                </a>
              
                
                <a class="source" href="union.html">
                  modules/union.js
                </a>
              
                
                <a class="source" href="uniq.html">
                  modules/uniq.js
                </a>
              
                
                <a class="source" href="uniqueId.html">
                  modules/uniqueId.js
                </a>
              
                
                <a class="source" href="unzip.html">
                  modules/unzip.js
                </a>
              
                
                <a class="source" href="values.html">
                  modules/values.js
                </a>
              
                
                <a class="source" href="where.html">
                  modules/where.js
                </a>
              
                
                <a class="source" href="without.html">
                  modules/without.js
                </a>
              
                
                <a class="source" href="wrap.html">
                  modules/wrap.js
                </a>
              
                
                <a class="source" href="zip.html">
                  modules/zip.js
                </a>
              
            </div>
          </div>
        </li>
      </ul>
    
    <ul class="sections">
        
        
        
        <li id="section-1">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-1">&#182;</a>
              </div>
              <h1 id="named-exports">Named Exports</h1>

            </div>
            
        </li>
        
        
        <li id="section-2">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-2">&#182;</a>
              </div>
              
            </div>
            
        </li>
        
        
        <li id="section-3">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-3">&#182;</a>
              </div>
              <pre><code>Underscore.js <span class="hljs-number">1.13</span><span class="hljs-number">.1</span>
<span class="hljs-attr">https</span>:<span class="hljs-comment">//underscorejs.org</span>
(c) <span class="hljs-number">2009</span><span class="hljs-number">-2021</span> <NAME>, <NAME>, and DocumentCloud and Investigative Reporters &amp; Editors
Underscore may be freely distributed under the MIT license.</code></pre>
            </div>
            
        </li>
        
        
        <li id="section-4">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-4">&#182;</a>
              </div>
              <p>Baseline setup.</p>

            </div>
            
            <div class="content"><div class='highlight'><pre><span class="hljs-keyword">export</span> { VERSION } <span class="hljs-keyword">from</span> <span class="hljs-string">'./_setup.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> restArguments } <span class="hljs-keyword">from</span> <span class="hljs-string">'./restArguments.js'</span>;</pre></div></div>
            
        </li>
        
        
        <li id="section-5">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-5">&#182;</a>
              </div>
              <h2 id="object-functions">Object Functions</h2>

            </div>
            
        </li>
        
        
        <li id="section-6">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-6">&#182;</a>
              </div>
              <p>Our most fundamental functions operate on any JavaScript object.
Most functions in Underscore depend on at least one function in this section.</p>

            </div>
            
        </li>
        
        
        <li id="section-7">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-7">&#182;</a>
              </div>
              <p>A group of functions that check the types of core JavaScript values.
These are often informally referred to as the “isType” functions.</p>

            </div>
            
            <div class="content"><div class='highlight'><pre><span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isObject } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isObject.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isNull } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isNull.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isUndefined } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isUndefined.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isBoolean } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isBoolean.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isElement } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isElement.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isString } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isString.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isNumber } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isNumber.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isDate } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isDate.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isRegExp } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isRegExp.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isError } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isError.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isSymbol } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isSymbol.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isArrayBuffer } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isArrayBuffer.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isDataView } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isDataView.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isArray } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isArray.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isFunction } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isFunction.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isArguments } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isArguments.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> <span class="hljs-built_in">isFinite</span> } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isFinite.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> <span class="hljs-built_in">isNaN</span> } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isNaN.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isTypedArray } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isTypedArray.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isEmpty } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isEmpty.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isMatch } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isMatch.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isEqual } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isEqual.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isMap } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isMap.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isWeakMap } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isWeakMap.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isSet } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isSet.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> isWeakSet } <span class="hljs-keyword">from</span> <span class="hljs-string">'./isWeakSet.js'</span>;</pre></div></div>
            
        </li>
        
        
        <li id="section-8">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-8">&#182;</a>
              </div>
              <p>Functions that treat an object as a dictionary of key-value pairs.</p>

            </div>
            
            <div class="content"><div class='highlight'><pre><span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> keys } <span class="hljs-keyword">from</span> <span class="hljs-string">'./keys.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> allKeys } <span class="hljs-keyword">from</span> <span class="hljs-string">'./allKeys.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> values } <span class="hljs-keyword">from</span> <span class="hljs-string">'./values.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> pairs } <span class="hljs-keyword">from</span> <span class="hljs-string">'./pairs.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> invert } <span class="hljs-keyword">from</span> <span class="hljs-string">'./invert.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> functions,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> methods   } <span class="hljs-keyword">from</span> <span class="hljs-string">'./functions.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> extend } <span class="hljs-keyword">from</span> <span class="hljs-string">'./extend.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> extendOwn,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> assign    } <span class="hljs-keyword">from</span> <span class="hljs-string">'./extendOwn.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> defaults } <span class="hljs-keyword">from</span> <span class="hljs-string">'./defaults.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> create } <span class="hljs-keyword">from</span> <span class="hljs-string">'./create.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> clone } <span class="hljs-keyword">from</span> <span class="hljs-string">'./clone.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> tap } <span class="hljs-keyword">from</span> <span class="hljs-string">'./tap.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> get } <span class="hljs-keyword">from</span> <span class="hljs-string">'./get.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> has } <span class="hljs-keyword">from</span> <span class="hljs-string">'./has.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> mapObject } <span class="hljs-keyword">from</span> <span class="hljs-string">'./mapObject.js'</span>;</pre></div></div>
            
        </li>
        
        
        <li id="section-9">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-9">&#182;</a>
              </div>
              <h2 id="utility-functions">Utility Functions</h2>

            </div>
            
        </li>
        
        
        <li id="section-10">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-10">&#182;</a>
              </div>
              <p>A bit of a grab bag: Predicate-generating functions for use with filters and
loops, string escaping and templating, create random numbers and unique ids,
and functions that facilitate Underscore’s chaining and iteration conventions.</p>

            </div>
            
            <div class="content"><div class='highlight'><pre><span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> identity } <span class="hljs-keyword">from</span> <span class="hljs-string">'./identity.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> constant } <span class="hljs-keyword">from</span> <span class="hljs-string">'./constant.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> noop } <span class="hljs-keyword">from</span> <span class="hljs-string">'./noop.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> toPath } <span class="hljs-keyword">from</span> <span class="hljs-string">'./toPath.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> property } <span class="hljs-keyword">from</span> <span class="hljs-string">'./property.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> propertyOf } <span class="hljs-keyword">from</span> <span class="hljs-string">'./propertyOf.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> matcher,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> matches } <span class="hljs-keyword">from</span> <span class="hljs-string">'./matcher.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> times } <span class="hljs-keyword">from</span> <span class="hljs-string">'./times.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> random } <span class="hljs-keyword">from</span> <span class="hljs-string">'./random.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> now } <span class="hljs-keyword">from</span> <span class="hljs-string">'./now.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> <span class="hljs-built_in">escape</span> } <span class="hljs-keyword">from</span> <span class="hljs-string">'./escape.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> <span class="hljs-built_in">unescape</span> } <span class="hljs-keyword">from</span> <span class="hljs-string">'./unescape.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> templateSettings } <span class="hljs-keyword">from</span> <span class="hljs-string">'./templateSettings.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> template } <span class="hljs-keyword">from</span> <span class="hljs-string">'./template.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> result } <span class="hljs-keyword">from</span> <span class="hljs-string">'./result.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> uniqueId } <span class="hljs-keyword">from</span> <span class="hljs-string">'./uniqueId.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> chain } <span class="hljs-keyword">from</span> <span class="hljs-string">'./chain.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> iteratee } <span class="hljs-keyword">from</span> <span class="hljs-string">'./iteratee.js'</span>;</pre></div></div>
            
        </li>
        
        
        <li id="section-11">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-11">&#182;</a>
              </div>
              <h2 id="function-ahem-functions">Function (ahem) Functions</h2>

            </div>
            
        </li>
        
        
        <li id="section-12">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-12">&#182;</a>
              </div>
              <p>These functions take a function as an argument and return a new function
as the result. Also known as higher-order functions.</p>

            </div>
            
            <div class="content"><div class='highlight'><pre><span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> partial } <span class="hljs-keyword">from</span> <span class="hljs-string">'./partial.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> bind } <span class="hljs-keyword">from</span> <span class="hljs-string">'./bind.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> bindAll } <span class="hljs-keyword">from</span> <span class="hljs-string">'./bindAll.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> memoize } <span class="hljs-keyword">from</span> <span class="hljs-string">'./memoize.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> delay } <span class="hljs-keyword">from</span> <span class="hljs-string">'./delay.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> defer } <span class="hljs-keyword">from</span> <span class="hljs-string">'./defer.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> throttle } <span class="hljs-keyword">from</span> <span class="hljs-string">'./throttle.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> debounce } <span class="hljs-keyword">from</span> <span class="hljs-string">'./debounce.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> wrap } <span class="hljs-keyword">from</span> <span class="hljs-string">'./wrap.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> negate } <span class="hljs-keyword">from</span> <span class="hljs-string">'./negate.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> compose } <span class="hljs-keyword">from</span> <span class="hljs-string">'./compose.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> after } <span class="hljs-keyword">from</span> <span class="hljs-string">'./after.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> before } <span class="hljs-keyword">from</span> <span class="hljs-string">'./before.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> once } <span class="hljs-keyword">from</span> <span class="hljs-string">'./once.js'</span>;</pre></div></div>
            
        </li>
        
        
        <li id="section-13">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-13">&#182;</a>
              </div>
              <h2 id="finders">Finders</h2>

            </div>
            
        </li>
        
        
        <li id="section-14">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-14">&#182;</a>
              </div>
              <p>Functions that extract (the position of) a single element from an object
or array based on some criterion.</p>

            </div>
            
            <div class="content"><div class='highlight'><pre><span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> findKey } <span class="hljs-keyword">from</span> <span class="hljs-string">'./findKey.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> findIndex } <span class="hljs-keyword">from</span> <span class="hljs-string">'./findIndex.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> findLastIndex } <span class="hljs-keyword">from</span> <span class="hljs-string">'./findLastIndex.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> sortedIndex } <span class="hljs-keyword">from</span> <span class="hljs-string">'./sortedIndex.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> indexOf } <span class="hljs-keyword">from</span> <span class="hljs-string">'./indexOf.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> lastIndexOf } <span class="hljs-keyword">from</span> <span class="hljs-string">'./lastIndexOf.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> find,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> detect } <span class="hljs-keyword">from</span> <span class="hljs-string">'./find.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> findWhere } <span class="hljs-keyword">from</span> <span class="hljs-string">'./findWhere.js'</span>;</pre></div></div>
            
        </li>
        
        
        <li id="section-15">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-15">&#182;</a>
              </div>
              <h2 id="collection-functions">Collection Functions</h2>

            </div>
            
        </li>
        
        
        <li id="section-16">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-16">&#182;</a>
              </div>
              <p>Functions that work on any collection of elements: either an array, or
an object of key-value pairs.</p>

            </div>
            
            <div class="content"><div class='highlight'><pre><span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> each,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> forEach } <span class="hljs-keyword">from</span> <span class="hljs-string">'./each.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> map,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> collect } <span class="hljs-keyword">from</span> <span class="hljs-string">'./map.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> reduce,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> foldl,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> inject } <span class="hljs-keyword">from</span> <span class="hljs-string">'./reduce.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> reduceRight,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> foldr       } <span class="hljs-keyword">from</span> <span class="hljs-string">'./reduceRight.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> filter,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> select } <span class="hljs-keyword">from</span> <span class="hljs-string">'./filter.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> reject } <span class="hljs-keyword">from</span> <span class="hljs-string">'./reject.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> every,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> all   } <span class="hljs-keyword">from</span> <span class="hljs-string">'./every.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> some,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> any  } <span class="hljs-keyword">from</span> <span class="hljs-string">'./some.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> contains,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> includes,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> include  } <span class="hljs-keyword">from</span> <span class="hljs-string">'./contains.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> invoke } <span class="hljs-keyword">from</span> <span class="hljs-string">'./invoke.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> pluck } <span class="hljs-keyword">from</span> <span class="hljs-string">'./pluck.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> where } <span class="hljs-keyword">from</span> <span class="hljs-string">'./where.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> max } <span class="hljs-keyword">from</span> <span class="hljs-string">'./max.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> min } <span class="hljs-keyword">from</span> <span class="hljs-string">'./min.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> shuffle } <span class="hljs-keyword">from</span> <span class="hljs-string">'./shuffle.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> sample } <span class="hljs-keyword">from</span> <span class="hljs-string">'./sample.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> sortBy } <span class="hljs-keyword">from</span> <span class="hljs-string">'./sortBy.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> groupBy } <span class="hljs-keyword">from</span> <span class="hljs-string">'./groupBy.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> indexBy } <span class="hljs-keyword">from</span> <span class="hljs-string">'./indexBy.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> countBy } <span class="hljs-keyword">from</span> <span class="hljs-string">'./countBy.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> partition } <span class="hljs-keyword">from</span> <span class="hljs-string">'./partition.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> toArray } <span class="hljs-keyword">from</span> <span class="hljs-string">'./toArray.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> size } <span class="hljs-keyword">from</span> <span class="hljs-string">'./size.js'</span>;</pre></div></div>
            
        </li>
        
        
        <li id="section-17">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-17">&#182;</a>
              </div>
              <p><code>_.pick</code> and <code>_.omit</code> are actually object functions, but we put
them here in order to create a more natural reading order in the
monolithic build as they depend on <code>_.contains</code>.</p>

            </div>
            
            <div class="content"><div class='highlight'><pre><span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> pick } <span class="hljs-keyword">from</span> <span class="hljs-string">'./pick.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> omit } <span class="hljs-keyword">from</span> <span class="hljs-string">'./omit.js'</span>;</pre></div></div>
            
        </li>
        
        
        <li id="section-18">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-18">&#182;</a>
              </div>
              <h2 id="array-functions">Array Functions</h2>

            </div>
            
        </li>
        
        
        <li id="section-19">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-19">&#182;</a>
              </div>
              <p>Functions that operate on arrays (and array-likes) only, because they’re
expressed in terms of operations on an ordered list of values.</p>

            </div>
            
            <div class="content"><div class='highlight'><pre><span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> first,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> head,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> take  } <span class="hljs-keyword">from</span> <span class="hljs-string">'./first.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> initial } <span class="hljs-keyword">from</span> <span class="hljs-string">'./initial.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> last } <span class="hljs-keyword">from</span> <span class="hljs-string">'./last.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> rest,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> tail,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> drop } <span class="hljs-keyword">from</span> <span class="hljs-string">'./rest.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> compact } <span class="hljs-keyword">from</span> <span class="hljs-string">'./compact.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> flatten } <span class="hljs-keyword">from</span> <span class="hljs-string">'./flatten.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> without } <span class="hljs-keyword">from</span> <span class="hljs-string">'./without.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> uniq,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> unique } <span class="hljs-keyword">from</span> <span class="hljs-string">'./uniq.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> union } <span class="hljs-keyword">from</span> <span class="hljs-string">'./union.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> intersection } <span class="hljs-keyword">from</span> <span class="hljs-string">'./intersection.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> difference } <span class="hljs-keyword">from</span> <span class="hljs-string">'./difference.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> unzip,
         <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> transpose } <span class="hljs-keyword">from</span> <span class="hljs-string">'./unzip.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> zip } <span class="hljs-keyword">from</span> <span class="hljs-string">'./zip.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> object } <span class="hljs-keyword">from</span> <span class="hljs-string">'./object.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> range } <span class="hljs-keyword">from</span> <span class="hljs-string">'./range.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> chunk } <span class="hljs-keyword">from</span> <span class="hljs-string">'./chunk.js'</span>;</pre></div></div>
            
        </li>
        
        
        <li id="section-20">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-20">&#182;</a>
              </div>
              <h2 id="oop">OOP</h2>

            </div>
            
        </li>
        
        
        <li id="section-21">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-21">&#182;</a>
              </div>
              <p>These modules support the “object-oriented” calling style. See also
<code>underscore.js</code> and <code>index-default.js</code>.</p>

            </div>
            
            <div class="content"><div class='highlight'><pre><span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> <span class="hljs-keyword">as</span> mixin } <span class="hljs-keyword">from</span> <span class="hljs-string">'./mixin.js'</span>;
<span class="hljs-keyword">export</span> { <span class="hljs-keyword">default</span> } <span class="hljs-keyword">from</span> <span class="hljs-string">'./underscore-array-methods.js'</span>;</pre></div></div>
            
        </li>
        
    </ul>
  </div>
  
  <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
  <script>
    // We run a script at page load to inject the links after the fact.
    // It would be more elegant to do this at page generation time, but
    // unfortunately the docco infrastructure doesn't support this very well.
    // Highlighted code is passed along as an unparsed HTML string, which would
    // make this very tricky. In the script below, we exploit the fact that the
    // HTML has already been parsed by the browser.
    (function() {
      // Define a regex for stripping the .html extension from anchor hrefs.
      var extPattern = /\.html$/;
      // Collect all module paths that we have an HTML page for.
      var moduleMap = {};
      $('#jump_page a.source').each(function() {
        // Fortunately, translating anchor hrefs to ES module paths is easy,
        // because both systems work relative to the current file by default.
        var href = $(this).attr('href');
        var path = href.replace(extPattern, '').split('/');
        if (path[0] !== '..') path.unshift('.');
        var normPath = path.join('/');
        // Support both paths with and without extension.
        moduleMap[normPath] = moduleMap[normPath + '.js'] = href;
      });
      // Find all 'from' keywords followed by a string (ES6 import statements).
      $('.hljs-keyword').filter(function() {
        var text = $(this).text();
        return text === 'from' || text === 'import';
      }).next('.hljs-string').each(function() {
        // Finally, for each of these strings, replace it by a link if we have
        // a matching HTML page.
        var text = $(this).text();
        var quote = text[0];
        var path = text.slice(1, -1);
        var matchingDoc = moduleMap[path];
        if (!matchingDoc) return;
        $(this).html(
          quote + '<a href="' + matchingDoc + '">' + path + '</a>' + quote
        );
      });
    }());
  </script>
  
</body>
</html>


<|start_filename|>rollup.config.js<|end_filename|>
import glob from 'glob';
import { filter } from './underscore-esm.js';
import { outputConf, sourcemapConf, monolithConf } from './rollup.common.js';

export default [
  // Monolithic ESM bundle for browsers and deno.
  {
    input: 'modules/index-all.js',
    treeshake: false,
    output: monolithConf({
      file: 'underscore-esm.js',
      format: 'esm',
    }),
  },
  // Monolithic UMD bundle for browsers, AMD and old Node.js.
  {
    input: 'modules/index-default.js',
    treeshake: false,
    output: monolithConf({
      file: 'underscore-umd.js',
      exports: 'default',
      format: 'umd',
      name: '_',
      amd: {
        id: 'underscore',
      },
      noConflict: true,
    }),
  },
  // Custom builds for Node.js, first pass. Second pass in rollup.config2.js.
  {
    input: {
      'underscore-node-cjs-pre': 'modules/index-default.js',
      'underscore-node-mjs-pre': 'modules/index-all.js',
    },
    treeshake: false,
    output: sourcemapConf({
      chunkFileNames: 'underscore-node-f-pre.js',
      dir: '.',
      minifyInternalExports: false,
      format: 'esm',
    }),
  },
  // AMD and CJS versions of the individual modules for development
  // and custom bundles.
  {
    input: filter(
      glob.sync('modules/**/*.js'),
      function(path) { return path !== 'modules/index-all.js'; }
    ),
    preserveModules: true,
    output: [
      outputConf({
        dir: 'amd',
        exports: 'auto',
        format: 'amd',
      }),
      outputConf({
        dir: 'cjs',
        exports: 'auto',
        format: 'cjs',
      }),
    ],
  }
];


<|start_filename|>rollup.common.js<|end_filename|>
import { readFileSync } from 'fs';
import { extend } from './underscore-esm.js';

var intro = readFileSync('modules/index.js', 'utf-8').split('\n').slice(3, 7).join('\n');

var outputBase = {
  strict: false,
  externalLiveBindings: false,
  freeze: false,
};

var sourcemapBase = {
  sourcemap: true,
  sourcemapExcludeSources: true,
};

export function outputConf(particular) {
  return extend(particular, outputBase);
}

export function sourcemapConf(particular) {
  return extend(particular, outputBase, sourcemapBase);
}

export function monolithConf(particular) {
  return extend(particular, outputBase, sourcemapBase, {intro});
}


<|start_filename|>rollup.config2.js<|end_filename|>
import { resolve } from 'path';
import { monolithConf } from './rollup.common.js';

var sharedInput = './underscore-node-f-pre.js';
var sharedOutput = './underscore-node-f.cjs';

export default [
  // ESM entry point for Node.js 12+.
  {
    input: 'underscore-node-mjs-pre.js',
    external: sharedInput,
    output: monolithConf({
      file: 'underscore-node.mjs',
      format: 'esm',
      paths: {
        [resolve(__dirname, sharedInput)]: sharedOutput,
      },
    }),
  },
  // CJS entry point for Node.js 12+, plus code shared with the ESM entry.
  {
    input: {
      'underscore-node-f': sharedInput,
      'underscore-node': 'underscore-node-cjs-pre.js',
    },
    preserveModules: true,
    output: monolithConf({
      entryFileNames: '[name].cjs',
      dir: '.',
      exports: 'auto',
      format: 'cjs',
    }),
  },
];


<|start_filename|>test-treeshake/template.js<|end_filename|>
export { template } from '../modules/index-all.js';
