bufferCount2 =
(stream, n) =>
stream
.scan( (acc, x) => acc.length < n ? [...acc, x] : [x], [] )
.materialize()
.scan( (acc, event) =>
event.kind === 'C' ?
({event: acc.event, keep: acc.event.value.length > 0 && acc.event.value.length < n}) :
({event: event, keep: event.value.length === n}), {event:{}} )
.filter( x => x.keep )
.map( x => x.event.value )