VimUnDoi5rF2Ҋ^uf1.(PZ[_P~5_vP~   function map(source, f) { /**E Returns transformed version of given `source` where each item of it is mapped using `f`./ var data = [{ name: "foo" }, { name: "bar" }]> var names = map(data, function(value) { return value.name })( print(names) =>  **/? return transform(source, function(next, value, accumulated) {& return next(f(value), accumulated) })}5_vP~5_vP~5_vP~ 5_vP~!5_vP~"5_ vP~%module.exports = map5_  vP~*&var transform = require("./transform")5_ &vP~-(var transformer = require("./transform")5_ *vP~4 5_ *vP~5*var transformer = require("./transformer")5_  &*vP~8(var transform = require("./transformer")5_ #*vP~=  5_*vP~B var accumulated = require()5_*vP~B var accumulated = require("")5_)vP~F *var accumulated = require("./accumulated")5_)vP~G5_  ) vP~I 5_  ) vP~k  *  5_  ) vP~m K Returns stream containing first `n` elements of given `source`, on which5_  ) vP~p J Returns stream containing first `n` elements of given `source`, on which5_  ) vP~v L Returns sequence containing first `n` elements of given `source`, on which5_ ( ) vP~y D Returns sequence of first `n` elements of given `source`, on which5_ 8 ) vP~ A Returns sequence of first `n` items of given `source`, on which5_ 9 ) vP~ A Returns sequence of first `n` items of given `source`. on which5_ ) vP~  on which5_ ) vP~ given lambda returns `true`.5_ ) vP~ O Composes version of given `source` containing only element up until `f(item)`5_ ) vP~  was true.5_  ) ) vP~ 8 Returns sequence of first `n` items of given `source`.5_! < ) vP~ < Returns sequence of first `n` items of the given `source`.5_ "! I ) vP~ Q Returns sequence of first `n` items of the given `source`. If `source` contains5_!#"  ) vP~  contains5_"$#$ ) vP~ $ contains less items than `n` then 5_#%$ ) vP~  5_$&% ) vP~!' var numbers = list(10, 23, 2, 7, 17)5_%'&$ ) vP~!$ var numbers = [ 10, 23, 2, 7, 17)5_&(' ) vP~!#var digits = take(function(value) {5_')( ) vP~!% var digits = take(function(value) {5_(*) ) vP~" !5_)+* ) vP~return value >= 105_*,+ ) vP~ }, numbers)5_+-, ) vP~ & var digits = take(function(value) {5_,.- ) vP~% var numbers = [ 10, 23, 2, 7, 17 ]5_-/. ) vP~ % var digits = take(function(value) {5_.0/8vP 5_/108vP  8 print(take([ 1, 2, 3, 4, 5 ], 2)) // => 5_0218vP  2 print(take([ 1, 2, 3 ], 2)) // => 5_132/8vP  2 print(take([ 1, 2, 3 ], 5)) // => 5_2638vP5_3746$4vP|8 print(take([ 1, 2, 3, 4, 5 ], 2)) // => 5_6874vP~4 print(take([ 1, 2, 3 ], 5)) // => 5_7984vP 5_8:94vP  ## Example5_9;:4vP 5_:<;PKM/*jshint asi: true undef: true es5: true node: true browser: true devel: true5_;=< PK9 forin: true latedef: false globalstrict: true */5_<>=PK5_=?>PK 'use strict';5_>@? PK "use strict';5_?A@Ph*var accumulated = require("./accumulated")5_@BA$Pl&var reduced = require("./accumulated")5_ACB+PpE return count === 0 ? next(accumulated(), next(value, result)) :5_BDC)Ps4 next(accumulated(), result)5_CEDP 5_DFEP return reducible()5_EGFP return reducible(function())5_FHGP! return reducible(function() {})5_GIHP! 5_HJIP!var reduce = require()5_IKJP!var reduce = require("")5_JLKP"!5_KMLP"var reducible = require()5_LNMP"var reducible = require("")5_MONP*var transformer = require("./transformer")5_NPOP&var transform = require("./transform")5_OQPP var reduce = require("./reduce")5_PRQP return reducible(function() {5_QSR(P  5_RTS P  reduce()5_SUTP  reduce(source, function())5_TVU'P ) reduce(source, function(next, value))5_UWV*P + reduce(source, function(result, value))5_VXW,P . reduce(source, function(result, value) {})5_WYXP!, reduce(source, function(result, value) {5_XZY P,!5_Y[ZP.# "5_Z\[P5#5_[]\P?# return count === 0 next()5_\^]!PR#" return count === 0 next(res)5_]_^%Pe#& return count === 0 next(reduced)5_^`_&Pf#( return count === 0 next(reduced())5__a`-Pi#. return count === 0 next(reduced(result))5_`ba0P|#0 return count === 0 next(reduced(result), )5_acbvP# var count = n5_bdcvP$ #5_ced vP$"var reduced = require("./reduced")5_dfevP$!var reduce = require("./reduced")5_egf vP$ return 5_fhgvP$ return count === 0 ? 5_gihvP$ return count > 0 ? 5_hjivP$ return count > 0 ? next()5_ikj,vP$, return count > 0 ? next(value, result)5_jlkvP/ return transformer(source, function(source) {5_kmlvP% var count = n >= 0 ? n : Infinity5_lnmvP< return transform(source, function(next, value, result) {5_monvP count = count - 15_npovPA return count === 0 ? next(reduced(), next(value, result)) :5_oqp vP. count > 0 ? next(value, result) :5_prqvP0 next(reduced(), result)5_qsrvP })5_rtsvP })5_sut%vP!. return count > 0 ? next(value, result) :5_tvu$vP"' return count > 0 ? next(result) :5_uwvvP=. return count > 0 ? next(result, value) :5_vxwvPC/ return count => 0 ? next(result, value) :5_wyxvPD. return count > 0 ? next(result, value) :5_xzyvPr result5_y{zvP, return reducible(function(next, initial) {5_z|{"vP3 return reduce(source, function(result, value) {5_{}|2vP/ 5_|~}vP3 console.log()5_}~vP3 console.log("")5_~vP5 console.log(">>")5_vP7 console.log(">>", result)5_$vP95_vPM& console.log(">>", result, value)5_vPN5_vPP! })5_ vP/ 5_vP3 console.log()5_vP3" console.log("")5_vP5_vPvar reduced = require()5_vP#var reduced = require("")5_vP result5_(vP%( reduced(result5_vP; 5_vPE& 5_vPI/ return count >= 0 ? next(result, value) :5_.vPK" count === 0 ? reduced. return count > 0 ? next(result, value) :5_#vPY$ count === 0 ? reduced()5_1vP]1 count === 0 ? reduced(result, value)5_vPb') reduced(result)5_0+v+Ps+3 count === 0 ? reduced(result, value) :5_+v+Pw, console.log(">>>")5_4vPB: print(take([ 1, 2, 3, 4, 5 ], 2)) // => 5_4vPE< print(take([ 1, 2, 3 ], 5)) // => 5_5vPH6 print(take([ 1, 2, 3 ], 5)) // => < 1 2 3 />5_3vPI-4 print(take([ 1, 2, 3, 4, 5 ], 2)) // => < 1 2 />5_vP~ "use strict"; var reduce = require("./reduce")"var reduced = require("./reduced")&var reducible = require("./reducible")function take(source, n) { /**H Returns sequence of first `n` items of the given `source`. If `source`J contains less items than `n` then that's how much items return sequence will contain. ## Example3 print(take([ 1, 2, 3, 4, 5 ], 2)) // => < 1 2 >5 print(take([ 1, 2, 3 ], 5)) // => < 1 2 3 > **/7 return reducible(function reduceTake(next, initial) {% var count = n >= 0 ? n : InfinityD return reduce(source, function reduceTakeSource(result, value) { count = count - 1. return count > 0 ? next(result, value) :9 count === 0 ? reduced(next(result, value)) : reduced(result) }, initial) })}module.exports = take5_vP~ 5_vP~  function take !5_ vP~ "function take()5_ vP~ "function take(source, n)5_ vP~ "function take(source, n) {}5_ vP~ $  #5_ vP~ $ return reduced()5_ vP~ $ return reduced)5_ vP~ $ return reducible()5_ vP~ $ return reducible(function())5_ vP~ $! return reducible(function() {})5_ vP~ % return reducible(function() {5_ (vP~ %+ return reducible(function(next, source) {5_ (vP~ &  %5_ vP~ & accumulate()5_ !vP~ &" accumulate(source, function())5_ #vP~ &% accumulate(source, function() {})5_ vP~ ' })5_ vP~ '# accumulate(source, function() {5_ ,vP~ '5_ vP~ (5_ vP~ )  (5_ vP~ ) 5_   vP~ ) count = count - 15_   vP~ 5_ "$/v/P ) return co5_ $&/v/P; +0 accumulate(source, function(value, result) {5_ .$&/v/PA +? accumulate(source, function accumulateTake(value, result) {5_$&/v/PI+0 next(reduced(), result)5_ $&/v/PK+# next(reduced(), result)5_ $&/v/Pp ,  +5_ %'/v/Py -  ,5_&(/v/P~ - result = next()5_ &(/v/P return isReduced. -5_(*/v/P/ return isReduced()5_(*/v/P/ return isReduced(result)5_((*/v/P0 /5_!)+/v/P0! count === 0 ? next()5_#)+/v/P0$ count === 0 ? reduced()5_*)+/v/P0* count === 0 ? reduced(result)5_*,/v/PA return count === 0 ? next(reduced(), next(value, result)) :5_ )+/v/P. count > 0 ? next(value, result) :5_ (*/v/P$ next(reduced(), result)5_ ')/v/P."var reducer = require("./reducer")5_"')/v/P.$var reducible = require("./reducer")5_')/v/P*var transformer = require("./transformer")5_&(/v/P&var transform = require("./transform")5_%'/v/P5_$&/v/P"var reduced = require("./reduced")5_#%/v/P+*5_$&/v/P+var accumulate = require()5_$&/v/P+var accumulate = require("")5_%$&/v/P,+5_%'/v/P,var isReduced = require()5_%'/v/P.,var isReduced = require("")5_"%'/v/P-,5_&(/v/P-var reduced = require()5_&(/v/P/-var reduced = require("")5_!vP(.  -5_4"+vP,7: print(take([ 1, 2, 3, 4, 5 ], 2)) // => 5_4"+vP.7< print(take([ 1, 2, 3 ], 5)) // => 5_  5vP4!!!7function take(source, n) { /**H Returns sequence of first `n` items of the given `source`. If `source`J contains less items than `n` then that's how much items return sequence will contain. ## Example: print(take([ 1, 2, 3, 4, 5 ], 2)) // => < print(take([ 1, 2, 3 ], 5)) // =>  **// return transformer(source, function(source) {% var count = n >= 0 ? n : Infinity< return transform(source, function(next, value, result) { count = count - 1A return count === 0 ? next(reduced(), next(value, result)) :. count > 0 ? next(value, result) :0 next(reduced(), result) }) })}5_  vP40 5_5 vPO 6 print(take([ 1, 2, 3 ], 5)) // => < 1 2 3 />5_3 vPP3 4 print(take([ 1, 2, 3, 4, 5 ], 2)) // => < 1 2 />5_ vPX!  5_""vP[4 if C5_!!vPs console.log" !5_##vPv7# console.log()5_##vP8# console.log(value, result)5_&v&P#' console.log("<<<", value, result)5_&v&P 5_&v&P5_&v&P9" !5_&&v&P:"' console.log("<<<", value, result)5_&v&P0", count === 0 ? reduced(result) :5_&v&PP5_&v&PR. console.log("<<<", value, result, count)5_&v&PR!  5_ &v&PT! if ()5_&v&PV! if (isReduced())5_&v&PX! if (isReduced(result))5_&v&PY! if (isReduced(result))5_#&v&P\!# if (isReduced(result)) return5_)&v&P]" !5_ &v&Pe" if ()5_&v&Ph" if (count === 0)5_&v&Pk" if (count === 0) {}5_&v&Pl$ #5_&v&Pn }5_&v&Po# if (count === 0) {5_&v&Pr# if (count === 0) 5_&v&Ps# if (count !== 0) 5_#&v&Pw$ #5_ &v&P$ next()5_&v&P% $5_ &v&P% return result5_&v&P% return reduced(result5_&v&P 5_ &v&P5_  &v&P) return isReduced(result) ? result :5_    &v&P? count === 0 ? next(end, result), reduced(result) :5_    &v&P result5_   &v&P! 5_  &v&P!var end = require()5_ &v&P;!var end = require("")5_&v&P!$ if (count !== 0) return result5_&v&P<!# if (count >= 0) return result5_&v&P" !5_ &v&P" if ()5_&v&P if (count)5_&v&P" !5_ &v&P" if ()5_&v&P> if (count)5_&v&P?!" if (count > 0) return result5_&v&P@!# if (count >= 0) return result5_&v&P#!& var count = n >= 0 ? n : Infinity5_&v&P%" !5_&v&P'" if ()5_ &v&P)" if (count)5_ &v&P+A" if (count === 0)5_! &v&PR if (count === 0) return []5_ "! &v&PTD!, return reducible(function(next, initial) {5_!#" &v&Pl!; return n === 0 ? [] : reducible(function(next, initial) {5_"$# &v&Po!8 if (n === 0 ? [] : reducible(function(next, initial) {5_#%$&v&Pp!9 if (n === 0) ? [] : reducible(function(next, initial) {5_$&%&v&Ps!> if (n === 0) return [] : reducible(function(next, initial) {5_%'&&v&Pv# "5_&('&v&P|E# // If take `0` 5_')(&v&P# if (n === 0) return []5_(*)&v&PF# if (n === 0) return void()5_)+*4&v&PG#4 // If take `0` then optimize by returning an empty5_*,+&v&P$ #5_+-,&v&P5_,.-&v&P#5_-/.&v&P$5_.0/&v&P$% var count = n >= 0 ? n : Infinity5_/10&v&PH$ 5_021&v&P% $5_132&v&P% if ()5_243 &v&P% if (n < 0)5_354$&v&PI%$ var count = n > 0 ? n : Infinity5_4655&v&P%5 // If take `0` then optimize by returning an empty.5_576&v&P&5_687&v&PJ' // then just return 5_7987&v&PK'7 // Normalize count, if less then zero use infinity.5_8:9!&v&PF!) !(5_9A:!&v&Pa ")* if (isReduced(result)) return result5_:B;A ?&v&P!)E // If consumer does not even wants that much just return result5_ACB F&v&PM " // as it")F // If consumer does not even wants that much just return `result5_BKC"+&v&P"$+ "$*5_CLDK# &v&P"$+( // If we have not reached `n` yet.5_KML#&&v&P"$+& // If we have not taken `n` yet.5_LNM$!&v&P$&+5_MON%&v&P%'-%',5_NPO&$&v&P %(-$ // If got this far this means 5_OQP'%&v&P<&(.% // for pass `end` of stream to 5_PRQ'B&v&PF&(.B // for pass `end` of stream to consumer to signal it's done.5_QSR'@&v&PIN')L // accumulated `result` boxed in a `reduced` to notify `source` we don&).@ // for pass `end` of stream to consumer to signal the end.5_RTS*vPy)+0 next(end, result)5_SUT+vP{O*+ return reduced(result)5_TVU"(vPP!#/7 if (isReduced(result) || count > 0) return result5_UWV!vP!/5_VXW#vP"$0* if (isReduced(result)) return result5_WYX#vP"$01 return if (isReduced(result)) return result5_XZY#vP"$0- return isReduced(result)) return result5_Y[Z#(vP"$0. return isReduced(result) ? return result5_Z\[#'vP"$0' return isReduced(result) ? result5_[]\% vP$&0" if (count > 0) return result5_\^]%vP$&0% count > 0) return result5_]_^% vP$&0& count > 0 ? return result5_^`_%vP$&0 count > 0 ? result5__a`# vP#%05_`ba%vP%'15_acb&vP%'2 //5_bdc"vP"$3 // "$25_ced. vP-/3 return next(end, result)5_dfe-vP,.3 // need more items.5_egf-vP-/4 // -/35_fhg#vPQ"#5_gih!vP !G // If consumer does not even wants that much just return `result`5_hji!vP !, // as it's already boxed into reduced.5_ikj! vP "1) return isReduced(result) ? result :5_jlk!!! v P  "1 return 5_kml!!! v P  ! 5_lnm!!! v P! !5_mon#!! v P""$/! count > 0 ? result :5_npo#!! v P#"$/' return count > 0 ? result :5_oqp"!! v P'!"5_prq#!! v P+"#5_qsr#!! v P,"$-M // If got this far this means `n` items have already being passed there5_rts!B!! v P. #-B // If we have not taken `n` items yet just pass result back.5_sut"!! v PO!#.! // pass `end` toa consumer 5_tvu" !! v PP!#. // pass `end` to consumer 5_uwv" !! v PV!#. // pass `end` to consumer 5_vxw"!! v P^!#.' // communicate `end` to consumer 5_wyx"1!! v P`!#.1 // communicate `end` of stream to consumer 5_xzy"!! v Pl!#.& // communicate `end` of stream t5_y{z"!! v Pp!$. // pass `end` of stream t5_z|{# !! v P"$/ // reduced5_{~|#!! v P"$/ // `reduced5_|}~%!! v P$%O // If got this far this means `n` items have already being passed there5_~%!! v P$%L // for pass `end` of stream to consumer to signal the end. Also return5_%!! v P$%N // accumulated `result` boxed in a `reduced` to notify `source` we don't5_%!! v P$% // need more items.5_%!! v P$%5_%!! v P%'*5_&!! v PR%&5_!! v PS'var isReduced = require("./is-reduced")5_  v PT"var reduced = require("./reduced")5_# v PU"$( next(end, result)5_# v PV"$( next(end)5_vPW(, return reducible(function(next, initial) {5_PJ(&var reducible = require("./reducible")5_PJ((var accumulate = require("./accumulate")5_.PJ(0var accumulate = require("reducible/accumulate")5_PJX(,var accumulate = require("reducible/reduce")5_PJ(E accumulate(source, function accumulateTakeSource(value, result) {5_ PJ(A reduec(source, function accumulateTakeSource(value, result) {5_&PJY(A reduce(source, function accumulateTakeSource(value, result) {5_&PJ(; return reducible(function accumulateTake(next, initial) {5_"PJ(7 return reducible(function reduecTake(next, initial) {5_"PJ(7 return reducible(function reduecTake(next, initial) {5_"PJZ(7 return reducible(function reduecTake(next, initial) {5_PK-[(var end = require("./end")5_PY( "use strict";.var reducible = require("reducible/reducible")(var reduce = require("reducible/reduce")"var end = require("reducible/end")function take(source, n) { /**H Returns sequence of first `n` items of the given `source`. If `source`J contains less items than `n` then that's how much items return sequence will contain. ## Example3 print(take([ 1, 2, 3, 4, 5 ], 2)) // => < 1 2 >5 print(take([ 1, 2, 3 ], 5)) // => < 1 2 3 > **/E // If take `0` then optimize by returning an empty if less then `0`$ // then just return `source` back. if (n === 0) return void(0) if (n < 0) return source7 return reducible(function reduceTake(next, initial) {J // Capture `n` into count, since modifying `n` directly will have side# // effects on subsequent calls. var count = n= reduce(source, function reduceTakeSource(value, result) { count = count - 1" result = next(value, result)L // If we have not taken `n` items yet just pass result back. OtherwiseI // pass `end` of stream to a consumer. Note `reducible` will return@ // `reduced(result)` back signaling source it should stop.! return count > 0 ? result : next(end) }, initial) })}module.exports = take5_PZ( "use strict";&var reducible = require("./reducible")(var accumulate = require("./accumulate")var end = require("./end")function take(source, n) { /**H Returns sequence of first `n` items of the given `source`. If `source`J contains less items than `n` then that's how much items return sequence will contain. ## Example3 print(take([ 1, 2, 3, 4, 5 ], 2)) // => < 1 2 >5 print(take([ 1, 2, 3 ], 5)) // => < 1 2 3 > **/E // If take `0` then optimize by returning an empty if less then `0`$ // then just return `source` back. if (n === 0) return void(0) if (n < 0) return source; return reducible(function accumulateTake(next, initial) {J // Capture `n` into count, since modifying `n` directly will have side# // effects on subsequent calls. var count = nE accumulate(source, function accumulateTakeSource(value, result) { count = count - 1" result = next(value, result)L // If we have not taken `n` items yet just pass result back. OtherwiseI // pass `end` of stream to a consumer. Note `reducible` will return@ // `reduced(result)` back signaling source it should stop.! return count > 0 ? result : next(end) }, initial) })}module.exports = take5_|~}$!! v P#%5_CFKD#(&v&P"$+' // If we have not reached `n` yet5_DGEF&v&P+ var count = 05_FHG&v&P+ count = count + 15_GIH"(&v&P!#+* if (isReduced(result)) return result5_HJI$&v&P#%+$ if (count === 0) return result5_IJ$&v&P#%+$ if (count === n) return result5_DFE&v&P5_:<A;"&v&Pn!#5_;=< 2&v&Pt!(@ // If consumer does not even more items just return result5_<>= @&v&Pw!(L // If consumer does not even more items or if we exceeded a limit just // return `5_=?> L&v&P!)C // If consumer does not even more items or if we exceeded `n`5_>@? C&v&P!)H // If consumer does not even more items or if we exceeded `n` just5_?@!&v&PL ") // return result.5_ &v&P7B"J else accumulate(source, function accumulateTakeSource(value, result) {5_&v&P=!# if (count >= 0) return result5_&v&PG5_&v&PH5_&v&PI ! if ()5_ &v&PK! if (isRe)5_##vP6#+ count >= 0 ? reduced(result) :5_  vP $var reducer = require("./reducible")5_" vP2 "var reducer = require("./reducer")5_##vP  !8 return reducer(source, function(next, value, result) { next(f(value), result) })5_$$vP#5_+v+Py*5_3564  vPq   function drop(source, n) { /**/ Reduces given `reducible` to first `n` items. **// return transformer(source, function(source) { var count = n >= 0 ? n : 1< return transform(source, function(next, value, result) {$ return count -- > 0 ? result :/ next(value, result) }) })}5_45  vP   *  B Drops first n characters from s. Returns an empty string if n isgreater than the length of s.5