UNPKG

233 kBSource Map (JSON)View Raw
1{"version":3,"file":"most.js","sources":["../src/Stream.js","../node_modules/@most/prelude/dist/index.es.js","../src/disposable/Disposable.js","../src/disposable/SettableDisposable.js","../src/Promise.js","../src/disposable/dispose.js","../src/fatalError.js","../src/scheduler/PropagateTask.js","../src/source/core.js","../src/source/fromArray.js","../src/iterable.js","../src/source/fromIterable.js","../node_modules/symbol-observable/es/ponyfill.js","../node_modules/symbol-observable/es/index.js","../src/observable/getObservable.js","../src/source/tryEvent.js","../src/observable/fromObservable.js","../src/source/from.js","../src/source/periodic.js","../src/scheduler/ScheduledTask.js","../src/task.js","../src/scheduler/Scheduler.js","../src/scheduler/ClockTimer.js","../src/scheduler/Timeline.js","../src/scheduler/defaultScheduler.js","../src/observable/subscribe.js","../src/combinator/thru.js","../src/source/EventTargetSource.js","../src/sink/DeferredSink.js","../src/source/EventEmitterSource.js","../src/source/fromEvent.js","../src/runSource.js","../src/sink/Pipe.js","../src/fusion/Filter.js","../src/fusion/FilterMap.js","../src/fusion/Map.js","../src/combinator/transform.js","../src/combinator/observe.js","../src/combinator/loop.js","../src/combinator/accumulate.js","../src/source/unfold.js","../src/source/iterate.js","../src/source/generate.js","../src/combinator/continueWith.js","../src/combinator/build.js","../src/sink/IndexSink.js","../src/invoke.js","../src/combinator/combine.js","../src/combinator/applicative.js","../src/combinator/transduce.js","../src/LinkedList.js","../src/combinator/mergeConcurrently.js","../src/combinator/flatMap.js","../src/combinator/concatMap.js","../src/combinator/merge.js","../src/combinator/sample.js","../src/Queue.js","../src/combinator/zip.js","../src/combinator/switch.js","../src/combinator/filter.js","../src/combinator/slice.js","../src/combinator/timeslice.js","../src/combinator/delay.js","../src/combinator/timestamp.js","../src/combinator/limit.js","../src/combinator/promises.js","../src/sink/SafeSink.js","../src/combinator/errors.js","../node_modules/@most/multicast/dist/multicast.es.js","../src/index.js"],"sourcesContent":["/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nexport default function Stream (source) {\n this.source = source\n}\n\nStream.prototype.run = function (sink, scheduler) {\n return this.source.run(sink, scheduler)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n\n// Non-mutating array operations\n\n// cons :: a -> [a] -> [a]\n// a with x prepended\nfunction cons (x, a) {\n var l = a.length;\n var b = new Array(l + 1);\n b[0] = x;\n for (var i = 0; i < l; ++i) {\n b[i + 1] = a[i];\n }\n return b\n}\n\n// append :: a -> [a] -> [a]\n// a with x appended\nfunction append (x, a) {\n var l = a.length;\n var b = new Array(l + 1);\n for (var i = 0; i < l; ++i) {\n b[i] = a[i];\n }\n\n b[l] = x;\n return b\n}\n\n// drop :: Int -> [a] -> [a]\n// drop first n elements\nfunction drop (n, a) { // eslint-disable-line complexity\n if (n < 0) {\n throw new TypeError('n must be >= 0')\n }\n\n var l = a.length;\n if (n === 0 || l === 0) {\n return a\n }\n\n if (n >= l) {\n return []\n }\n\n return unsafeDrop(n, a, l - n)\n}\n\n// unsafeDrop :: Int -> [a] -> Int -> [a]\n// Internal helper for drop\nfunction unsafeDrop (n, a, l) {\n var b = new Array(l);\n for (var i = 0; i < l; ++i) {\n b[i] = a[n + i];\n }\n return b\n}\n\n// tail :: [a] -> [a]\n// drop head element\nfunction tail (a) {\n return drop(1, a)\n}\n\n// copy :: [a] -> [a]\n// duplicate a (shallow duplication)\nfunction copy (a) {\n var l = a.length;\n var b = new Array(l);\n for (var i = 0; i < l; ++i) {\n b[i] = a[i];\n }\n return b\n}\n\n// map :: (a -> b) -> [a] -> [b]\n// transform each element with f\nfunction map (f, a) {\n var l = a.length;\n var b = new Array(l);\n for (var i = 0; i < l; ++i) {\n b[i] = f(a[i]);\n }\n return b\n}\n\n// reduce :: (a -> b -> a) -> a -> [b] -> a\n// accumulate via left-fold\nfunction reduce (f, z, a) {\n var r = z;\n for (var i = 0, l = a.length; i < l; ++i) {\n r = f(r, a[i], i);\n }\n return r\n}\n\n// replace :: a -> Int -> [a]\n// replace element at index\nfunction replace (x, i, a) { // eslint-disable-line complexity\n if (i < 0) {\n throw new TypeError('i must be >= 0')\n }\n\n var l = a.length;\n var b = new Array(l);\n for (var j = 0; j < l; ++j) {\n b[j] = i === j ? x : a[j];\n }\n return b\n}\n\n// remove :: Int -> [a] -> [a]\n// remove element at index\nfunction remove (i, a) { // eslint-disable-line complexity\n if (i < 0) {\n throw new TypeError('i must be >= 0')\n }\n\n var l = a.length;\n if (l === 0 || i >= l) { // exit early if index beyond end of array\n return a\n }\n\n if (l === 1) { // exit early if index in bounds and length === 1\n return []\n }\n\n return unsafeRemove(i, a, l - 1)\n}\n\n// unsafeRemove :: Int -> [a] -> Int -> [a]\n// Internal helper to remove element at index\nfunction unsafeRemove (i, a, l) {\n var b = new Array(l);\n var j;\n for (j = 0; j < i; ++j) {\n b[j] = a[j];\n }\n for (j = i; j < l; ++j) {\n b[j] = a[j + 1];\n }\n\n return b\n}\n\n// removeAll :: (a -> boolean) -> [a] -> [a]\n// remove all elements matching a predicate\nfunction removeAll (f, a) {\n var l = a.length;\n var b = new Array(l);\n var j = 0;\n for (var x = (void 0), i = 0; i < l; ++i) {\n x = a[i];\n if (!f(x)) {\n b[j] = x;\n ++j;\n }\n }\n\n b.length = j;\n return b\n}\n\n// findIndex :: a -> [a] -> Int\n// find index of x in a, from the left\nfunction findIndex (x, a) {\n for (var i = 0, l = a.length; i < l; ++i) {\n if (x === a[i]) {\n return i\n }\n }\n return -1\n}\n\n// isArrayLike :: * -> boolean\n// Return true iff x is array-like\nfunction isArrayLike (x) {\n return x != null && typeof x.length === 'number' && typeof x !== 'function'\n}\n\n/** @license MIT License (c) copyright 2010-2016 original author or authors */\n\n// id :: a -> a\nvar id = function (x) { return x; };\n\n// compose :: (b -> c) -> (a -> b) -> (a -> c)\nvar compose = function (f, g) { return function (x) { return f(g(x)); }; };\n\n// apply :: (a -> b) -> a -> b\nvar apply = function (f, x) { return f(x); };\n\n// curry2 :: ((a, b) -> c) -> (a -> b -> c)\nfunction curry2 (f) {\n function curried (a, b) {\n switch (arguments.length) {\n case 0: return curried\n case 1: return function (b) { return f(a, b); }\n default: return f(a, b)\n }\n }\n return curried\n}\n\n// curry3 :: ((a, b, c) -> d) -> (a -> b -> c -> d)\nfunction curry3 (f) {\n function curried (a, b, c) { // eslint-disable-line complexity\n switch (arguments.length) {\n case 0: return curried\n case 1: return curry2(function (b, c) { return f(a, b, c); })\n case 2: return function (c) { return f(a, b, c); }\n default:return f(a, b, c)\n }\n }\n return curried\n}\n\n// curry4 :: ((a, b, c, d) -> e) -> (a -> b -> c -> d -> e)\nfunction curry4 (f) {\n function curried (a, b, c, d) { // eslint-disable-line complexity\n switch (arguments.length) {\n case 0: return curried\n case 1: return curry3(function (b, c, d) { return f(a, b, c, d); })\n case 2: return curry2(function (c, d) { return f(a, b, c, d); })\n case 3: return function (d) { return f(a, b, c, d); }\n default:return f(a, b, c, d)\n }\n }\n return curried\n}\n\n/** @license MIT License (c) copyright 2016 original author or authors */\n\nexport { cons, append, drop, tail, copy, map, reduce, replace, remove, removeAll, findIndex, isArrayLike, id, compose, apply, curry2, curry3, curry4 };\n//# sourceMappingURL=index.es.js.map\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n/**\n * Create a new Disposable which will dispose its underlying resource.\n * @param {function} dispose function\n * @param {*?} data any data to be passed to disposer function\n * @constructor\n */\nexport default function Disposable (dispose, data) {\n this._dispose = dispose\n this._data = data\n}\n\nDisposable.prototype.dispose = function () {\n return this._dispose(this._data)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nexport default function SettableDisposable () {\n this.disposable = void 0\n this.disposed = false\n this._resolve = void 0\n\n var self = this\n this.result = new Promise(function (resolve) {\n self._resolve = resolve\n })\n}\n\nSettableDisposable.prototype.setDisposable = function (disposable) {\n if (this.disposable !== void 0) {\n throw new Error('setDisposable called more than once')\n }\n\n this.disposable = disposable\n\n if (this.disposed) {\n this._resolve(disposable.dispose())\n }\n}\n\nSettableDisposable.prototype.dispose = function () {\n if (this.disposed) {\n return this.result\n }\n\n this.disposed = true\n\n if (this.disposable !== void 0) {\n this.result = this.disposable.dispose()\n }\n\n return this.result\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nexport function isPromise (p) {\n return p !== null && typeof p === 'object' && typeof p.then === 'function'\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\nimport Disposable from './Disposable'\nimport SettableDisposable from './SettableDisposable'\nimport { isPromise } from '../Promise'\nimport * as base from '@most/prelude'\n\nvar map = base.map\nvar identity = base.id\n\n/**\n * Call disposable.dispose. If it returns a promise, catch promise\n * error and forward it through the provided sink.\n * @param {number} t time\n * @param {{dispose: function}} disposable\n * @param {{error: function}} sink\n * @return {*} result of disposable.dispose\n */\nexport function tryDispose (t, disposable, sink) {\n var result = disposeSafely(disposable)\n return isPromise(result)\n ? result.catch(function (e) {\n sink.error(t, e)\n })\n : result\n}\n\n/**\n * Create a new Disposable which will dispose its underlying resource\n * at most once.\n * @param {function} dispose function\n * @param {*?} data any data to be passed to disposer function\n * @return {Disposable}\n */\nexport function create (dispose, data) {\n return once(new Disposable(dispose, data))\n}\n\n/**\n * Create a noop disposable. Can be used to satisfy a Disposable\n * requirement when no actual resource needs to be disposed.\n * @return {Disposable|exports|module.exports}\n */\nexport function empty () {\n return new Disposable(identity, void 0)\n}\n\n/**\n * Create a disposable that will dispose all input disposables in parallel.\n * @param {Array<Disposable>} disposables\n * @return {Disposable}\n */\nexport function all (disposables) {\n return create(disposeAll, disposables)\n}\n\nfunction disposeAll (disposables) {\n return Promise.all(map(disposeSafely, disposables))\n}\n\nfunction disposeSafely (disposable) {\n try {\n return disposable.dispose()\n } catch (e) {\n return Promise.reject(e)\n }\n}\n\n/**\n * Create a disposable from a promise for another disposable\n * @param {Promise<Disposable>} disposablePromise\n * @return {Disposable}\n */\nexport function promised (disposablePromise) {\n return create(disposePromise, disposablePromise)\n}\n\nfunction disposePromise (disposablePromise) {\n return disposablePromise.then(disposeOne)\n}\n\nfunction disposeOne (disposable) {\n return disposable.dispose()\n}\n\n/**\n * Create a disposable proxy that allows its underlying disposable to\n * be set later.\n * @return {SettableDisposable}\n */\nexport function settable () {\n return new SettableDisposable()\n}\n\n/**\n * Wrap an existing disposable (which may not already have been once()d)\n * so that it will only dispose its underlying resource at most once.\n * @param {{ dispose: function() }} disposable\n * @return {Disposable} wrapped disposable\n */\nexport function once (disposable) {\n return new Disposable(disposeMemoized, memoized(disposable))\n}\n\nfunction disposeMemoized (memoized) {\n if (!memoized.disposed) {\n memoized.disposed = true\n memoized.value = disposeSafely(memoized.disposable)\n memoized.disposable = void 0\n }\n\n return memoized.value\n}\n\nfunction memoized (disposable) {\n return { disposed: false, disposable: disposable, value: void 0 }\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nexport default function fatalError (e) {\n setTimeout(function () {\n throw e\n }, 0)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport fatal from '../fatalError'\n\nexport default function PropagateTask (run, value, sink) {\n this._run = run\n this.value = value\n this.sink = sink\n this.active = true\n}\n\nPropagateTask.event = function (value, sink) {\n return new PropagateTask(emit, value, sink)\n}\n\nPropagateTask.end = function (value, sink) {\n return new PropagateTask(end, value, sink)\n}\n\nPropagateTask.error = function (value, sink) {\n return new PropagateTask(error, value, sink)\n}\n\nPropagateTask.prototype.dispose = function () {\n this.active = false\n}\n\nPropagateTask.prototype.run = function (t) {\n if (!this.active) {\n return\n }\n this._run(t, this.value, this.sink)\n}\n\nPropagateTask.prototype.error = function (t, e) {\n if (!this.active) {\n return fatal(e)\n }\n this.sink.error(t, e)\n}\n\nfunction error (t, e, sink) {\n sink.error(t, e)\n}\n\nfunction emit (t, x, sink) {\n sink.event(t, x)\n}\n\nfunction end (t, x, sink) {\n sink.end(t, x)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport * as dispose from '../disposable/dispose'\nimport PropagateTask from '../scheduler/PropagateTask'\n\n/**\n * Stream containing only x\n * @param {*} x\n * @returns {Stream}\n */\nexport function of (x) {\n return new Stream(new Just(x))\n}\n\nfunction Just (x) {\n this.value = x\n}\n\nJust.prototype.run = function (sink, scheduler) {\n return scheduler.asap(new PropagateTask(runJust, this.value, sink))\n}\n\nfunction runJust (t, x, sink) {\n sink.event(t, x)\n sink.end(t, void 0)\n}\n\n/**\n * Stream containing no events and ends immediately\n * @returns {Stream}\n */\nexport function empty () {\n return EMPTY\n}\n\nfunction EmptySource () {}\n\nEmptySource.prototype.run = function (sink, scheduler) {\n var task = PropagateTask.end(void 0, sink)\n scheduler.asap(task)\n\n return dispose.create(disposeEmpty, task)\n}\n\nfunction disposeEmpty (task) {\n return task.dispose()\n}\n\nvar EMPTY = new Stream(new EmptySource())\n\n/**\n * Stream containing no events and never ends\n * @returns {Stream}\n */\nexport function never () {\n return NEVER\n}\n\nfunction NeverSource () {}\n\nNeverSource.prototype.run = function () {\n return dispose.empty()\n}\n\nvar NEVER = new Stream(new NeverSource())\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport PropagateTask from '../scheduler/PropagateTask'\n\nexport function fromArray (a) {\n return new Stream(new ArraySource(a))\n}\n\nfunction ArraySource (a) {\n this.array = a\n}\n\nArraySource.prototype.run = function (sink, scheduler) {\n return scheduler.asap(new PropagateTask(runProducer, this.array, sink))\n}\n\nfunction runProducer (t, array, sink) {\n for (var i = 0, l = array.length; i < l && this.active; ++i) {\n sink.event(t, array[i])\n }\n\n this.active && sink.end(t)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n/*global Set, Symbol*/\nvar iteratorSymbol\n// Firefox ships a partial implementation using the name @@iterator.\n// https://bugzilla.mozilla.org/show_bug.cgi?id=907077#c14\nif (typeof Set === 'function' && typeof new Set()['@@iterator'] === 'function') {\n iteratorSymbol = '@@iterator'\n} else {\n iteratorSymbol = typeof Symbol === 'function' && Symbol.iterator ||\n '_es6shim_iterator_'\n}\n\nexport function isIterable (o) {\n return typeof o[iteratorSymbol] === 'function'\n}\n\nexport function getIterator (o) {\n return o[iteratorSymbol]()\n}\n\nexport function makeIterable (f, o) {\n o[iteratorSymbol] = f\n return o\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport { getIterator } from '../iterable'\nimport PropagateTask from '../scheduler/PropagateTask'\n\nexport function fromIterable (iterable) {\n return new Stream(new IterableSource(iterable))\n}\n\nfunction IterableSource (iterable) {\n this.iterable = iterable\n}\n\nIterableSource.prototype.run = function (sink, scheduler) {\n return scheduler.asap(new PropagateTask(runProducer, getIterator(this.iterable), sink))\n}\n\nfunction runProducer (t, iterator, sink) {\n var r = iterator.next()\n\n while (!r.done && this.active) {\n sink.event(t, r.value)\n r = iterator.next()\n }\n\n sink.end(t, r.value)\n}\n","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","/* global window */\nimport ponyfill from './ponyfill';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport symbolObservable from 'symbol-observable'\n\nexport default function getObservable (o) { // eslint-disable-line complexity\n var obs = null\n if (o) {\n // Access foreign method only once\n var method = o[symbolObservable]\n if (typeof method === 'function') {\n obs = method.call(o)\n if (!(obs && typeof obs.subscribe === 'function')) {\n throw new TypeError('invalid observable ' + obs)\n }\n }\n }\n\n return obs\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nexport function tryEvent (t, x, sink) {\n try {\n sink.event(t, x)\n } catch (e) {\n sink.error(t, e)\n }\n}\n\nexport function tryEnd (t, x, sink) {\n try {\n sink.end(t, x)\n } catch (e) {\n sink.error(t, e)\n }\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport * as dispose from '../disposable/dispose'\nimport { tryEnd, tryEvent } from '../source/tryEvent'\n\nexport function fromObservable (observable) {\n return new Stream(new ObservableSource(observable))\n}\n\nexport function ObservableSource (observable) {\n this.observable = observable\n}\n\nObservableSource.prototype.run = function (sink, scheduler) {\n var sub = this.observable.subscribe(new SubscriberSink(sink, scheduler))\n if (typeof sub === 'function') {\n return dispose.create(sub)\n } else if (sub && typeof sub.unsubscribe === 'function') {\n return dispose.create(unsubscribe, sub)\n }\n\n throw new TypeError('Observable returned invalid subscription ' + String(sub))\n}\n\nexport function SubscriberSink (sink, scheduler) {\n this.sink = sink\n this.scheduler = scheduler\n}\n\nSubscriberSink.prototype.next = function (x) {\n tryEvent(this.scheduler.now(), x, this.sink)\n}\n\nSubscriberSink.prototype.complete = function (x) {\n tryEnd(this.scheduler.now(), x, this.sink)\n}\n\nSubscriberSink.prototype.error = function (e) {\n this.sink.error(this.scheduler.now(), e)\n}\n\nfunction unsubscribe (subscription) {\n return subscription.unsubscribe()\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport { fromArray } from './fromArray'\nimport { isIterable } from '../iterable'\nimport { fromIterable } from './fromIterable'\nimport getObservable from '../observable/getObservable'\nimport { fromObservable } from '../observable/fromObservable'\nimport { isArrayLike } from '@most/prelude'\n\nexport function from (a) { // eslint-disable-line complexity\n if (a instanceof Stream) {\n return a\n }\n\n var observable = getObservable(a)\n if (observable != null) {\n return fromObservable(observable)\n }\n\n if (Array.isArray(a) || isArrayLike(a)) {\n return fromArray(a)\n }\n\n if (isIterable(a)) {\n return fromIterable(a)\n }\n\n throw new TypeError('from(x) must be observable, iterable, or array-like: ' + a)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport PropagateTask from '../scheduler/PropagateTask'\n\n/**\n * Create a stream that emits the current time periodically\n * @param {Number} period periodicity of events in millis\n * @param {*} deprecatedValue @deprecated value to emit each period\n * @returns {Stream} new stream that emits the current time every period\n */\nexport function periodic (period, deprecatedValue) {\n return new Stream(new Periodic(period, deprecatedValue))\n}\n\nfunction Periodic (period, value) {\n this.period = period\n this.value = value\n}\n\nPeriodic.prototype.run = function (sink, scheduler) {\n return scheduler.periodic(this.period, PropagateTask.event(this.value, sink))\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nexport default function ScheduledTask (delay, period, task, scheduler) {\n this.time = delay\n this.period = period\n this.task = task\n this.scheduler = scheduler\n this.active = true\n}\n\nScheduledTask.prototype.run = function () {\n return this.task.run(this.time)\n}\n\nScheduledTask.prototype.error = function (e) {\n return this.task.error(this.time, e)\n}\n\nScheduledTask.prototype.dispose = function () {\n this.scheduler.cancel(this)\n return this.task.dispose()\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nexport function defer (task) {\n return Promise.resolve(task).then(runTask)\n}\n\nexport function runTask (task) {\n try {\n return task.run()\n } catch (e) {\n return task.error(e)\n }\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport ScheduledTask from './ScheduledTask'\nimport { runTask } from '../task'\n\nexport default function Scheduler (timer, timeline) {\n this.timer = timer\n this.timeline = timeline\n\n this._timer = null\n this._nextArrival = Infinity\n\n var self = this\n this._runReadyTasksBound = function () {\n self._runReadyTasks(self.now())\n }\n}\n\nScheduler.prototype.now = function () {\n return this.timer.now()\n}\n\nScheduler.prototype.asap = function (task) {\n return this.schedule(0, -1, task)\n}\n\nScheduler.prototype.delay = function (delay, task) {\n return this.schedule(delay, -1, task)\n}\n\nScheduler.prototype.periodic = function (period, task) {\n return this.schedule(0, period, task)\n}\n\nScheduler.prototype.schedule = function (delay, period, task) {\n var now = this.now()\n var st = new ScheduledTask(now + Math.max(0, delay), period, task, this)\n\n this.timeline.add(st)\n this._scheduleNextRun(now)\n return st\n}\n\nScheduler.prototype.cancel = function (task) {\n task.active = false\n if (this.timeline.remove(task)) {\n this._reschedule()\n }\n}\n\nScheduler.prototype.cancelAll = function (f) {\n this.timeline.removeAll(f)\n this._reschedule()\n}\n\nScheduler.prototype._reschedule = function () {\n if (this.timeline.isEmpty()) {\n this._unschedule()\n } else {\n this._scheduleNextRun(this.now())\n }\n}\n\nScheduler.prototype._unschedule = function () {\n this.timer.clearTimer(this._timer)\n this._timer = null\n}\n\nScheduler.prototype._scheduleNextRun = function (now) { // eslint-disable-line complexity\n if (this.timeline.isEmpty()) {\n return\n }\n\n var nextArrival = this.timeline.nextArrival()\n\n if (this._timer === null) {\n this._scheduleNextArrival(nextArrival, now)\n } else if (nextArrival < this._nextArrival) {\n this._unschedule()\n this._scheduleNextArrival(nextArrival, now)\n }\n}\n\nScheduler.prototype._scheduleNextArrival = function (nextArrival, now) {\n this._nextArrival = nextArrival\n var delay = Math.max(0, nextArrival - now)\n this._timer = this.timer.setTimer(this._runReadyTasksBound, delay)\n}\n\nScheduler.prototype._runReadyTasks = function (now) {\n this._timer = null\n this.timeline.runTasks(now, runTask)\n this._scheduleNextRun(this.now())\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport { defer } from '../task'\n\n/*global setTimeout, clearTimeout*/\n\nexport default function ClockTimer () {}\n\nClockTimer.prototype.now = Date.now\n\nClockTimer.prototype.setTimer = function (f, dt) {\n return dt <= 0 ? runAsap(f) : setTimeout(f, dt)\n}\n\nClockTimer.prototype.clearTimer = function (t) {\n return t instanceof Asap ? t.cancel() : clearTimeout(t)\n}\n\nfunction Asap (f) {\n this.f = f\n this.active = true\n}\n\nAsap.prototype.run = function () {\n return this.active && this.f()\n}\n\nAsap.prototype.error = function (e) {\n throw e\n}\n\nAsap.prototype.cancel = function () {\n this.active = false\n}\n\nfunction runAsap (f) {\n var task = new Asap(f)\n defer(task)\n return task\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport * as base from '@most/prelude'\n\nexport default function Timeline () {\n this.tasks = []\n}\n\nTimeline.prototype.nextArrival = function () {\n return this.isEmpty() ? Infinity : this.tasks[0].time\n}\n\nTimeline.prototype.isEmpty = function () {\n return this.tasks.length === 0\n}\n\nTimeline.prototype.add = function (st) {\n insertByTime(st, this.tasks)\n}\n\nTimeline.prototype.remove = function (st) {\n var i = binarySearch(st.time, this.tasks)\n\n if (i >= 0 && i < this.tasks.length) {\n var at = base.findIndex(st, this.tasks[i].events)\n if (at >= 0) {\n this.tasks[i].events.splice(at, 1)\n return true\n }\n }\n\n return false\n}\n\nTimeline.prototype.removeAll = function (f) {\n for (var i = 0, l = this.tasks.length; i < l; ++i) {\n removeAllFrom(f, this.tasks[i])\n }\n}\n\nTimeline.prototype.runTasks = function (t, runTask) {\n var tasks = this.tasks\n var l = tasks.length\n var i = 0\n\n while (i < l && tasks[i].time <= t) {\n ++i\n }\n\n this.tasks = tasks.slice(i)\n\n // Run all ready tasks\n for (var j = 0; j < i; ++j) {\n this.tasks = runTasks(runTask, tasks[j], this.tasks)\n }\n}\n\nfunction runTasks (runTask, timeslot, tasks) { // eslint-disable-line complexity\n var events = timeslot.events\n for (var i = 0; i < events.length; ++i) {\n var task = events[i]\n\n if (task.active) {\n runTask(task)\n\n // Reschedule periodic repeating tasks\n // Check active again, since a task may have canceled itself\n if (task.period >= 0 && task.active) {\n task.time = task.time + task.period\n insertByTime(task, tasks)\n }\n }\n }\n\n return tasks\n}\n\nfunction insertByTime (task, timeslots) { // eslint-disable-line complexity\n var l = timeslots.length\n\n if (l === 0) {\n timeslots.push(newTimeslot(task.time, [task]))\n return\n }\n\n var i = binarySearch(task.time, timeslots)\n\n if (i >= l) {\n timeslots.push(newTimeslot(task.time, [task]))\n } else if (task.time === timeslots[i].time) {\n timeslots[i].events.push(task)\n } else {\n timeslots.splice(i, 0, newTimeslot(task.time, [task]))\n }\n}\n\nfunction removeAllFrom (f, timeslot) {\n timeslot.events = base.removeAll(f, timeslot.events)\n}\n\nfunction binarySearch (t, sortedArray) { // eslint-disable-line complexity\n var lo = 0\n var hi = sortedArray.length\n var mid, y\n\n while (lo < hi) {\n mid = Math.floor((lo + hi) / 2)\n y = sortedArray[mid]\n\n if (t === y.time) {\n return mid\n } else if (t < y.time) {\n hi = mid\n } else {\n lo = mid + 1\n }\n }\n return hi\n}\n\nfunction newTimeslot (t, events) {\n return { time: t, events: events }\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Scheduler from './Scheduler'\nimport ClockTimer from './ClockTimer'\nimport Timeline from './Timeline'\n\nvar defaultScheduler = new Scheduler(new ClockTimer(), new Timeline())\n\nexport default defaultScheduler\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport defaultScheduler from '../scheduler/defaultScheduler'\nimport * as dispose from '../disposable/dispose'\nimport fatalError from '../fatalError'\n\nexport function subscribe (subscriber, stream) {\n if (Object(subscriber) !== subscriber) {\n throw new TypeError('subscriber must be an object')\n }\n\n var disposable = dispose.settable()\n var observer = new SubscribeObserver(fatalError, subscriber, disposable)\n\n disposable.setDisposable(stream.source.run(observer, defaultScheduler))\n\n return new Subscription(disposable)\n}\n\nexport function SubscribeObserver (fatalError, subscriber, disposable) {\n this.fatalError = fatalError\n this.subscriber = subscriber\n this.disposable = disposable\n}\n\nSubscribeObserver.prototype.event = function (t, x) {\n if (!this.disposable.disposed && typeof this.subscriber.next === 'function') {\n this.subscriber.next(x)\n }\n}\n\nSubscribeObserver.prototype.end = function (t, x) {\n if (!this.disposable.disposed) {\n var s = this.subscriber\n var fatalError = this.fatalError\n Promise.resolve(this.disposable.dispose()).then(function () {\n if (typeof s.complete === 'function') {\n s.complete(x)\n }\n }).catch(function (e) {\n throwError(e, s, fatalError)\n })\n }\n}\n\nSubscribeObserver.prototype.error = function (t, e) {\n var s = this.subscriber\n var fatalError = this.fatalError\n Promise.resolve(this.disposable.dispose()).then(function () {\n throwError(e, s, fatalError)\n })\n}\n\nexport function Subscription (disposable) {\n this.disposable = disposable\n}\n\nSubscription.prototype.unsubscribe = function () {\n this.disposable.dispose()\n}\n\nfunction throwError (e1, subscriber, throwError) {\n if (typeof subscriber.error === 'function') {\n try {\n subscriber.error(e1)\n } catch (e2) {\n throwError(e2)\n }\n } else {\n throwError(e1)\n }\n}\n","/** @license MIT License (c) copyright 2010-2017 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nexport function thru (f, stream) {\n return f(stream)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport * as dispose from '../disposable/dispose'\nimport * as tryEvent from './tryEvent'\n\nexport default function EventTargetSource (event, source, capture) {\n this.event = event\n this.source = source\n this.capture = capture\n}\n\nEventTargetSource.prototype.run = function (sink, scheduler) {\n function addEvent (e) {\n tryEvent.tryEvent(scheduler.now(), e, sink)\n }\n\n this.source.addEventListener(this.event, addEvent, this.capture)\n\n return dispose.create(disposeEventTarget,\n { target: this, addEvent: addEvent })\n}\n\nfunction disposeEventTarget (info) {\n var target = info.target\n target.source.removeEventListener(target.event, info.addEvent, target.capture)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport { defer } from '../task'\n\nexport default function DeferredSink (sink) {\n this.sink = sink\n this.events = []\n this.active = true\n}\n\nDeferredSink.prototype.event = function (t, x) {\n if (!this.active) {\n return\n }\n\n if (this.events.length === 0) {\n defer(new PropagateAllTask(this.sink, t, this.events))\n }\n\n this.events.push({ time: t, value: x })\n}\n\nDeferredSink.prototype.end = function (t, x) {\n if (!this.active) {\n return\n }\n\n this._end(new EndTask(t, x, this.sink))\n}\n\nDeferredSink.prototype.error = function (t, e) {\n this._end(new ErrorTask(t, e, this.sink))\n}\n\nDeferredSink.prototype._end = function (task) {\n this.active = false\n defer(task)\n}\n\nfunction PropagateAllTask (sink, time, events) {\n this.sink = sink\n this.events = events\n this.time = time\n}\n\nPropagateAllTask.prototype.run = function () {\n var events = this.events\n var sink = this.sink\n var event\n\n for (var i = 0, l = events.length; i < l; ++i) {\n event = events[i]\n this.time = event.time\n sink.event(event.time, event.value)\n }\n\n events.length = 0\n}\n\nPropagateAllTask.prototype.error = function (e) {\n this.sink.error(this.time, e)\n}\n\nfunction EndTask (t, x, sink) {\n this.time = t\n this.value = x\n this.sink = sink\n}\n\nEndTask.prototype.run = function () {\n this.sink.end(this.time, this.value)\n}\n\nEndTask.prototype.error = function (e) {\n this.sink.error(this.time, e)\n}\n\nfunction ErrorTask (t, e, sink) {\n this.time = t\n this.value = e\n this.sink = sink\n}\n\nErrorTask.prototype.run = function () {\n this.sink.error(this.time, this.value)\n}\n\nErrorTask.prototype.error = function (e) {\n throw e\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport DeferredSink from '../sink/DeferredSink'\nimport * as dispose from '../disposable/dispose'\nimport * as tryEvent from './tryEvent'\n\nexport default function EventEmitterSource (event, source) {\n this.event = event\n this.source = source\n}\n\nEventEmitterSource.prototype.run = function (sink, scheduler) {\n // NOTE: Because EventEmitter allows events in the same call stack as\n // a listener is added, use a DeferredSink to buffer events\n // until the stack clears, then propagate. This maintains most.js's\n // invariant that no event will be delivered in the same call stack\n // as an observer begins observing.\n var dsink = new DeferredSink(sink)\n\n function addEventVariadic (a) {\n var l = arguments.length\n if (l > 1) {\n var arr = new Array(l)\n for (var i = 0; i < l; ++i) {\n arr[i] = arguments[i]\n }\n tryEvent.tryEvent(scheduler.now(), arr, dsink)\n } else {\n tryEvent.tryEvent(scheduler.now(), a, dsink)\n }\n }\n\n this.source.addListener(this.event, addEventVariadic)\n\n return dispose.create(disposeEventEmitter, { target: this, addEvent: addEventVariadic })\n}\n\nfunction disposeEventEmitter (info) {\n var target = info.target\n target.source.removeListener(target.event, info.addEvent)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport EventTargetSource from './EventTargetSource'\nimport EventEmitterSource from './EventEmitterSource'\n\n/**\n * Create a stream from an EventTarget, such as a DOM Node, or EventEmitter.\n * @param {String} event event type name, e.g. 'click'\n * @param {EventTarget|EventEmitter} source EventTarget or EventEmitter\n * @param {*?} capture for DOM events, whether to use\n * capturing--passed as 3rd parameter to addEventListener.\n * @returns {Stream} stream containing all events of the specified type\n * from the source.\n */\nexport function fromEvent (event, source, capture) { // eslint-disable-line complexity\n var s\n\n if (typeof source.addEventListener === 'function' && typeof source.removeEventListener === 'function') {\n if (arguments.length < 3) {\n capture = false\n }\n\n s = new EventTargetSource(event, source, capture)\n } else if (typeof source.addListener === 'function' && typeof source.removeListener === 'function') {\n s = new EventEmitterSource(event, source)\n } else {\n throw new Error('source must support addEventListener/removeEventListener or addListener/removeListener')\n }\n\n return new Stream(s)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport * as dispose from './disposable/dispose'\nimport defaultScheduler from './scheduler/defaultScheduler'\n\nexport function withDefaultScheduler (source) {\n return withScheduler(source, defaultScheduler)\n}\n\nexport function withScheduler (source, scheduler) {\n return new Promise(function (resolve, reject) {\n runSource(source, scheduler, resolve, reject)\n })\n}\n\nfunction runSource (source, scheduler, resolve, reject) {\n var disposable = dispose.settable()\n var observer = new Drain(resolve, reject, disposable)\n\n disposable.setDisposable(source.run(observer, scheduler))\n}\n\nfunction Drain (end, error, disposable) {\n this._end = end\n this._error = error\n this._disposable = disposable\n this.active = true\n}\n\nDrain.prototype.event = function (t, x) {}\n\nDrain.prototype.end = function (t, x) {\n if (!this.active) {\n return\n }\n this.active = false\n disposeThen(this._end, this._error, this._disposable, x)\n}\n\nDrain.prototype.error = function (t, e) {\n this.active = false\n disposeThen(this._error, this._error, this._disposable, e)\n}\n\nfunction disposeThen (end, error, disposable, x) {\n Promise.resolve(disposable.dispose()).then(function () {\n end(x)\n }, error)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n/**\n * A sink mixin that simply forwards event, end, and error to\n * another sink.\n * @param sink\n * @constructor\n */\nexport default function Pipe (sink) {\n this.sink = sink\n}\n\nPipe.prototype.event = function (t, x) {\n return this.sink.event(t, x)\n}\n\nPipe.prototype.end = function (t, x) {\n return this.sink.end(t, x)\n}\n\nPipe.prototype.error = function (t, e) {\n return this.sink.error(t, e)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Pipe from '../sink/Pipe'\n\nexport default function Filter (p, source) {\n this.p = p\n this.source = source\n}\n\n/**\n * Create a filtered source, fusing adjacent filter.filter if possible\n * @param {function(x:*):boolean} p filtering predicate\n * @param {{run:function}} source source to filter\n * @returns {Filter} filtered source\n */\nFilter.create = function createFilter (p, source) {\n if (source instanceof Filter) {\n return new Filter(and(source.p, p), source.source)\n }\n\n return new Filter(p, source)\n}\n\nFilter.prototype.run = function (sink, scheduler) {\n return this.source.run(new FilterSink(this.p, sink), scheduler)\n}\n\nfunction FilterSink (p, sink) {\n this.p = p\n this.sink = sink\n}\n\nFilterSink.prototype.end = Pipe.prototype.end\nFilterSink.prototype.error = Pipe.prototype.error\n\nFilterSink.prototype.event = function (t, x) {\n var p = this.p\n p(x) && this.sink.event(t, x)\n}\n\nfunction and (p, q) {\n return function (x) {\n return p(x) && q(x)\n }\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Pipe from '../sink/Pipe'\n\nexport default function FilterMap (p, f, source) {\n this.p = p\n this.f = f\n this.source = source\n}\n\nFilterMap.prototype.run = function (sink, scheduler) {\n return this.source.run(new FilterMapSink(this.p, this.f, sink), scheduler)\n}\n\nfunction FilterMapSink (p, f, sink) {\n this.p = p\n this.f = f\n this.sink = sink\n}\n\nFilterMapSink.prototype.event = function (t, x) {\n var f = this.f\n var p = this.p\n p(x) && this.sink.event(t, f(x))\n}\n\nFilterMapSink.prototype.end = Pipe.prototype.end\nFilterMapSink.prototype.error = Pipe.prototype.error\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Pipe from '../sink/Pipe'\nimport Filter from './Filter'\nimport FilterMap from './FilterMap'\nimport * as base from '@most/prelude'\n\nexport default function Map (f, source) {\n this.f = f\n this.source = source\n}\n\n/**\n * Create a mapped source, fusing adjacent map.map, filter.map,\n * and filter.map.map if possible\n * @param {function(*):*} f mapping function\n * @param {{run:function}} source source to map\n * @returns {Map|FilterMap} mapped source, possibly fused\n */\nMap.create = function createMap (f, source) {\n if (source instanceof Map) {\n return new Map(base.compose(f, source.f), source.source)\n }\n\n if (source instanceof Filter) {\n return new FilterMap(source.p, f, source.source)\n }\n\n return new Map(f, source)\n}\n\nMap.prototype.run = function (sink, scheduler) { // eslint-disable-line no-extend-native\n return this.source.run(new MapSink(this.f, sink), scheduler)\n}\n\nfunction MapSink (f, sink) {\n this.f = f\n this.sink = sink\n}\n\nMapSink.prototype.end = Pipe.prototype.end\nMapSink.prototype.error = Pipe.prototype.error\n\nMapSink.prototype.event = function (t, x) {\n var f = this.f\n this.sink.event(t, f(x))\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport Map from '../fusion/Map'\nimport Pipe from '../sink/Pipe'\n\n/**\n * Transform each value in the stream by applying f to each\n * @param {function(*):*} f mapping function\n * @param {Stream} stream stream to map\n * @returns {Stream} stream containing items transformed by f\n */\nexport function map (f, stream) {\n return new Stream(Map.create(f, stream.source))\n}\n\n/**\n* Replace each value in the stream with x\n* @param {*} x\n* @param {Stream} stream\n* @returns {Stream} stream containing items replaced with x\n*/\nexport function constant (x, stream) {\n return map(function () {\n return x\n }, stream)\n}\n\n/**\n* Perform a side effect for each item in the stream\n* @param {function(x:*):*} f side effect to execute for each item. The\n* return value will be discarded.\n* @param {Stream} stream stream to tap\n* @returns {Stream} new stream containing the same items as this stream\n*/\nexport function tap (f, stream) {\n return new Stream(new Tap(f, stream.source))\n}\n\nfunction Tap (f, source) {\n this.source = source\n this.f = f\n}\n\nTap.prototype.run = function (sink, scheduler) {\n return this.source.run(new TapSink(this.f, sink), scheduler)\n}\n\nfunction TapSink (f, sink) {\n this.sink = sink\n this.f = f\n}\n\nTapSink.prototype.end = Pipe.prototype.end\nTapSink.prototype.error = Pipe.prototype.error\n\nTapSink.prototype.event = function (t, x) {\n var f = this.f\n f(x)\n this.sink.event(t, x)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport { withDefaultScheduler as run } from '../runSource'\nimport { tap } from './transform'\n\n/**\n * Observe all the event values in the stream in time order. The\n * provided function `f` will be called for each event value\n * @param {function(x:T):*} f function to call with each event value\n * @param {Stream<T>} stream stream to observe\n * @return {Promise} promise that fulfills after the stream ends without\n * an error, or rejects if the stream ends with an error.\n */\nexport function observe (f, stream) {\n return drain(tap(f, stream))\n}\n\n/**\n * \"Run\" a stream by creating demand and consuming all events\n * @param {Stream<T>} stream stream to drain\n * @return {Promise} promise that fulfills after the stream ends without\n * an error, or rejects if the stream ends with an error.\n */\nexport function drain (stream) {\n return run(stream.source)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport Pipe from '../sink/Pipe'\n\n/**\n * Generalized feedback loop. Call a stepper function for each event. The stepper\n * will be called with 2 params: the current seed and the an event value. It must\n * return a new { seed, value } pair. The `seed` will be fed back into the next\n * invocation of stepper, and the `value` will be propagated as the event value.\n * @param {function(seed:*, value:*):{seed:*, value:*}} stepper loop step function\n * @param {*} seed initial seed value passed to first stepper call\n * @param {Stream} stream event stream\n * @returns {Stream} new stream whose values are the `value` field of the objects\n * returned by the stepper\n */\nexport function loop (stepper, seed, stream) {\n return new Stream(new Loop(stepper, seed, stream.source))\n}\n\nfunction Loop (stepper, seed, source) {\n this.step = stepper\n this.seed = seed\n this.source = source\n}\n\nLoop.prototype.run = function (sink, scheduler) {\n return this.source.run(new LoopSink(this.step, this.seed, sink), scheduler)\n}\n\nfunction LoopSink (stepper, seed, sink) {\n this.step = stepper\n this.seed = seed\n this.sink = sink\n}\n\nLoopSink.prototype.error = Pipe.prototype.error\n\nLoopSink.prototype.event = function (t, x) {\n var result = this.step(this.seed, x)\n this.seed = result.seed\n this.sink.event(t, result.value)\n}\n\nLoopSink.prototype.end = function (t) {\n this.sink.end(t, this.seed)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport Pipe from '../sink/Pipe'\nimport { withDefaultScheduler as runSource } from '../runSource'\nimport * as dispose from '../disposable/dispose'\nimport PropagateTask from '../scheduler/PropagateTask'\n\n/**\n * Create a stream containing successive reduce results of applying f to\n * the previous reduce result and the current stream item.\n * @param {function(result:*, x:*):*} f reducer function\n * @param {*} initial initial value\n * @param {Stream} stream stream to scan\n * @returns {Stream} new stream containing successive reduce results\n */\nexport function scan (f, initial, stream) {\n return new Stream(new Scan(f, initial, stream.source))\n}\n\nfunction Scan (f, z, source) {\n this.source = source\n this.f = f\n this.value = z\n}\n\nScan.prototype.run = function (sink, scheduler) {\n var d1 = scheduler.asap(PropagateTask.event(this.value, sink))\n var d2 = this.source.run(new ScanSink(this.f, this.value, sink), scheduler)\n return dispose.all([d1, d2])\n}\n\nfunction ScanSink (f, z, sink) {\n this.f = f\n this.value = z\n this.sink = sink\n}\n\nScanSink.prototype.event = function (t, x) {\n var f = this.f\n this.value = f(this.value, x)\n this.sink.event(t, this.value)\n}\n\nScanSink.prototype.error = Pipe.prototype.error\nScanSink.prototype.end = Pipe.prototype.end\n\n/**\n* Reduce a stream to produce a single result. Note that reducing an infinite\n* stream will return a Promise that never fulfills, but that may reject if an error\n* occurs.\n* @param {function(result:*, x:*):*} f reducer function\n* @param {*} initial initial value\n* @param {Stream} stream to reduce\n* @returns {Promise} promise for the file result of the reduce\n*/\nexport function reduce (f, initial, stream) {\n return runSource(new Reduce(f, initial, stream.source))\n}\n\nfunction Reduce (f, z, source) {\n this.source = source\n this.f = f\n this.value = z\n}\n\nReduce.prototype.run = function (sink, scheduler) {\n return this.source.run(new ReduceSink(this.f, this.value, sink), scheduler)\n}\n\nfunction ReduceSink (f, z, sink) {\n this.f = f\n this.value = z\n this.sink = sink\n}\n\nReduceSink.prototype.event = function (t, x) {\n var f = this.f\n this.value = f(this.value, x)\n this.sink.event(t, this.value)\n}\n\nReduceSink.prototype.error = Pipe.prototype.error\n\nReduceSink.prototype.end = function (t) {\n this.sink.end(t, this.value)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\n\n/**\n * Compute a stream by unfolding tuples of future values from a seed value\n * Event times may be controlled by returning a Promise from f\n * @param {function(seed:*):{value:*, seed:*, done:boolean}|Promise<{value:*, seed:*, done:boolean}>} f unfolding function accepts\n * a seed and returns a new tuple with a value, new seed, and boolean done flag.\n * If tuple.done is true, the stream will end.\n * @param {*} seed seed value\n * @returns {Stream} stream containing all value of all tuples produced by the\n * unfolding function.\n */\nexport function unfold (f, seed) {\n return new Stream(new UnfoldSource(f, seed))\n}\n\nfunction UnfoldSource (f, seed) {\n this.f = f\n this.value = seed\n}\n\nUnfoldSource.prototype.run = function (sink, scheduler) {\n return new Unfold(this.f, this.value, sink, scheduler)\n}\n\nfunction Unfold (f, x, sink, scheduler) {\n this.f = f\n this.sink = sink\n this.scheduler = scheduler\n this.active = true\n\n var self = this\n function err (e) {\n self.sink.error(self.scheduler.now(), e)\n }\n\n function start (unfold) {\n return stepUnfold(unfold, x)\n }\n\n Promise.resolve(this).then(start).catch(err)\n}\n\nUnfold.prototype.dispose = function () {\n this.active = false\n}\n\nfunction stepUnfold (unfold, x) {\n var f = unfold.f\n return Promise.resolve(f(x)).then(function (tuple) {\n return continueUnfold(unfold, tuple)\n })\n}\n\nfunction continueUnfold (unfold, tuple) {\n if (tuple.done) {\n unfold.sink.end(unfold.scheduler.now(), tuple.value)\n return tuple.value\n }\n\n unfold.sink.event(unfold.scheduler.now(), tuple.value)\n\n if (!unfold.active) {\n return tuple.value\n }\n return stepUnfold(unfold, tuple.seed)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\n\n/**\n * Compute a stream by iteratively calling f to produce values\n * Event times may be controlled by returning a Promise from f\n * @param {function(x:*):*|Promise<*>} f\n * @param {*} x initial value\n * @returns {Stream}\n */\nexport function iterate (f, x) {\n return new Stream(new IterateSource(f, x))\n}\n\nfunction IterateSource (f, x) {\n this.f = f\n this.value = x\n}\n\nIterateSource.prototype.run = function (sink, scheduler) {\n return new Iterate(this.f, this.value, sink, scheduler)\n}\n\nfunction Iterate (f, initial, sink, scheduler) {\n this.f = f\n this.sink = sink\n this.scheduler = scheduler\n this.active = true\n\n var x = initial\n\n var self = this\n function err (e) {\n self.sink.error(self.scheduler.now(), e)\n }\n\n function start (iterate) {\n return stepIterate(iterate, x)\n }\n\n Promise.resolve(this).then(start).catch(err)\n}\n\nIterate.prototype.dispose = function () {\n this.active = false\n}\n\nfunction stepIterate (iterate, x) {\n iterate.sink.event(iterate.scheduler.now(), x)\n\n if (!iterate.active) {\n return x\n }\n\n var f = iterate.f\n return Promise.resolve(f(x)).then(function (y) {\n return continueIterate(iterate, y)\n })\n}\n\nfunction continueIterate (iterate, x) {\n return !iterate.active ? iterate.value : stepIterate(iterate, x)\n}\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport * as base from '@most/prelude'\n\n/**\n * Compute a stream using an *async* generator, which yields promises\n * to control event times.\n * @param f\n * @returns {Stream}\n */\nexport function generate (f /*, ...args */) {\n return new Stream(new GenerateSource(f, base.tail(arguments)))\n}\n\nfunction GenerateSource (f, args) {\n this.f = f\n this.args = args\n}\n\nGenerateSource.prototype.run = function (sink, scheduler) {\n return new Generate(this.f.apply(void 0, this.args), sink, scheduler)\n}\n\nfunction Generate (iterator, sink, scheduler) {\n this.iterator = iterator\n this.sink = sink\n this.scheduler = scheduler\n this.active = true\n\n var self = this\n function err (e) {\n self.sink.error(self.scheduler.now(), e)\n }\n\n Promise.resolve(this).then(next).catch(err)\n}\n\nfunction next (generate, x) {\n return generate.active ? handle(generate, generate.iterator.next(x)) : x\n}\n\nfunction handle (generate, result) {\n if (result.done) {\n return generate.sink.end(generate.scheduler.now(), result.value)\n }\n\n return Promise.resolve(result.value).then(function (x) {\n return emit(generate, x)\n }, function (e) {\n return error(generate, e)\n })\n}\n\nfunction emit (generate, x) {\n generate.sink.event(generate.scheduler.now(), x)\n return next(generate, x)\n}\n\nfunction error (generate, e) {\n return handle(generate, generate.iterator.throw(e))\n}\n\nGenerate.prototype.dispose = function () {\n this.active = false\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport Pipe from '../sink/Pipe'\nimport * as dispose from '../disposable/dispose'\n\nexport function continueWith (f, stream) {\n return new Stream(new ContinueWith(f, stream.source))\n}\n\nfunction ContinueWith (f, source) {\n this.f = f\n this.source = source\n}\n\nContinueWith.prototype.run = function (sink, scheduler) {\n return new ContinueWithSink(this.f, this.source, sink, scheduler)\n}\n\nfunction ContinueWithSink (f, source, sink, scheduler) {\n this.f = f\n this.sink = sink\n this.scheduler = scheduler\n this.active = true\n this.disposable = dispose.once(source.run(this, scheduler))\n}\n\nContinueWithSink.prototype.error = Pipe.prototype.error\n\nContinueWithSink.prototype.event = function (t, x) {\n if (!this.active) {\n return\n }\n this.sink.event(t, x)\n}\n\nContinueWithSink.prototype.end = function (t, x) {\n if (!this.active) {\n return\n }\n\n dispose.tryDispose(t, this.disposable, this.sink)\n this._startNext(t, x, this.sink)\n}\n\nContinueWithSink.prototype._startNext = function (t, x, sink) {\n try {\n this.disposable = this._continue(this.f, x, sink)\n } catch (e) {\n sink.error(t, e)\n }\n}\n\nContinueWithSink.prototype._continue = function (f, x, sink) {\n return f(x).source.run(sink, this.scheduler)\n}\n\nContinueWithSink.prototype.dispose = function () {\n this.active = false\n return this.disposable.dispose()\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport { of as streamOf } from '../source/core'\nimport { continueWith } from './continueWith'\n\n/**\n * @param {*} x value to prepend\n * @param {Stream} stream\n * @returns {Stream} new stream with x prepended\n */\nexport function cons (x, stream) {\n return concat(streamOf(x), stream)\n}\n\n/**\n* @param {Stream} left\n* @param {Stream} right\n* @returns {Stream} new stream containing all events in left followed by all\n* events in right. This *timeshifts* right to the end of left.\n*/\nexport function concat (left, right) {\n return continueWith(function () {\n return right\n }, left)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Sink from './Pipe'\n\nexport default function IndexSink (i, sink) {\n this.sink = sink\n this.index = i\n this.active = true\n this.value = void 0\n}\n\nIndexSink.prototype.event = function (t, x) {\n if (!this.active) {\n return\n }\n this.value = x\n this.sink.event(t, this)\n}\n\nIndexSink.prototype.end = function (t, x) {\n if (!this.active) {\n return\n }\n this.active = false\n this.sink.end(t, { index: this.index, value: x })\n}\n\nIndexSink.prototype.error = Sink.prototype.error\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nexport default function invoke (f, args) {\n\t/*eslint complexity: [2,7]*/\n switch (args.length) {\n case 0: return f()\n case 1: return f(args[0])\n case 2: return f(args[0], args[1])\n case 3: return f(args[0], args[1], args[2])\n case 4: return f(args[0], args[1], args[2], args[3])\n case 5: return f(args[0], args[1], args[2], args[3], args[4])\n default:\n return f.apply(void 0, args)\n }\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport * as transform from './transform'\nimport * as core from '../source/core'\nimport Pipe from '../sink/Pipe'\nimport IndexSink from '../sink/IndexSink'\nimport * as dispose from '../disposable/dispose'\nimport * as base from '@most/prelude'\nimport invoke from '../invoke'\n\nvar map = base.map\nvar tail = base.tail\n\n/**\n * Combine latest events from all input streams\n * @param {function(...events):*} f function to combine most recent events\n * @returns {Stream} stream containing the result of applying f to the most recent\n * event of each input stream, whenever a new event arrives on any stream.\n */\nexport function combine (f /*, ...streams */) {\n return combineArray(f, tail(arguments))\n}\n\n/**\n* Combine latest events from all input streams\n* @param {function(...events):*} f function to combine most recent events\n* @param {[Stream]} streams most recent events\n* @returns {Stream} stream containing the result of applying f to the most recent\n* event of each input stream, whenever a new event arrives on any stream.\n*/\nexport function combineArray (f, streams) {\n var l = streams.length\n return l === 0 ? core.empty()\n : l === 1 ? transform.map(f, streams[0])\n : new Stream(combineSources(f, streams))\n}\n\nfunction combineSources (f, streams) {\n return new Combine(f, map(getSource, streams))\n}\n\nfunction getSource (stream) {\n return stream.source\n}\n\nfunction Combine (f, sources) {\n this.f = f\n this.sources = sources\n}\n\nCombine.prototype.run = function (sink, scheduler) {\n var l = this.sources.length\n var disposables = new Array(l)\n var sinks = new Array(l)\n\n var mergeSink = new CombineSink(disposables, sinks, sink, this.f)\n\n for (var indexSink, i = 0; i < l; ++i) {\n indexSink = sinks[i] = new IndexSink(i, mergeSink)\n disposables[i] = this.sources[i].run(indexSink, scheduler)\n }\n\n return dispose.all(disposables)\n}\n\nfunction CombineSink (disposables, sinks, sink, f) {\n this.sink = sink\n this.disposables = disposables\n this.sinks = sinks\n this.f = f\n\n var l = sinks.length\n this.awaiting = l\n this.values = new Array(l)\n this.hasValue = new Array(l)\n for (var i = 0; i < l; ++i) {\n this.hasValue[i] = false\n }\n\n this.activeCount = sinks.length\n}\n\nCombineSink.prototype.error = Pipe.prototype.error\n\nCombineSink.prototype.event = function (t, indexedValue) {\n var i = indexedValue.index\n var awaiting = this._updateReady(i)\n\n this.values[i] = indexedValue.value\n if (awaiting === 0) {\n this.sink.event(t, invoke(this.f, this.values))\n }\n}\n\nCombineSink.prototype._updateReady = function (index) {\n if (this.awaiting > 0) {\n if (!this.hasValue[index]) {\n this.hasValue[index] = true\n this.awaiting -= 1\n }\n }\n return this.awaiting\n}\n\nCombineSink.prototype.end = function (t, indexedValue) {\n dispose.tryDispose(t, this.disposables[indexedValue.index], this.sink)\n if (--this.activeCount === 0) {\n this.sink.end(t, indexedValue.value)\n }\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport { combine } from './combine'\nimport { apply } from '@most/prelude'\n\n/**\n * Assume fs is a stream containing functions, and apply the latest function\n * in fs to the latest value in xs.\n * fs: --f---------g--------h------>\n * xs: -a-------b-------c-------d-->\n * ap(fs, xs): --fa-----fb-gb---gc--hc--hd->\n * @param {Stream} fs stream of functions to apply to the latest x\n * @param {Stream} xs stream of values to which to apply all the latest f\n * @returns {Stream} stream containing all the applications of fs to xs\n */\nexport function ap (fs, xs) {\n return combine(apply, fs, xs)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\n\n/**\n * Transform a stream by passing its events through a transducer.\n * @param {function} transducer transducer function\n * @param {Stream} stream stream whose events will be passed through the\n * transducer\n * @return {Stream} stream of events transformed by the transducer\n */\nexport function transduce (transducer, stream) {\n return new Stream(new Transduce(transducer, stream.source))\n}\n\nfunction Transduce (transducer, source) {\n this.transducer = transducer\n this.source = source\n}\n\nTransduce.prototype.run = function (sink, scheduler) {\n var xf = this.transducer(new Transformer(sink))\n return this.source.run(new TransduceSink(getTxHandler(xf), sink), scheduler)\n}\n\nfunction TransduceSink (adapter, sink) {\n this.xf = adapter\n this.sink = sink\n}\n\nTransduceSink.prototype.event = function (t, x) {\n var next = this.xf.step(t, x)\n\n return this.xf.isReduced(next)\n ? this.sink.end(t, this.xf.getResult(next))\n : next\n}\n\nTransduceSink.prototype.end = function (t, x) {\n return this.xf.result(x)\n}\n\nTransduceSink.prototype.error = function (t, e) {\n return this.sink.error(t, e)\n}\n\nfunction Transformer (sink) {\n this.time = -Infinity\n this.sink = sink\n}\n\nTransformer.prototype['@@transducer/init'] = Transformer.prototype.init = function () {}\n\nTransformer.prototype['@@transducer/step'] = Transformer.prototype.step = function (t, x) {\n if (!isNaN(t)) {\n this.time = Math.max(t, this.time)\n }\n return this.sink.event(this.time, x)\n}\n\nTransformer.prototype['@@transducer/result'] = Transformer.prototype.result = function (x) {\n return this.sink.end(this.time, x)\n}\n\n/**\n* Given an object supporting the new or legacy transducer protocol,\n* create an adapter for it.\n* @param {object} tx transform\n* @returns {TxAdapter|LegacyTxAdapter}\n*/\nfunction getTxHandler (tx) {\n return typeof tx['@@transducer/step'] === 'function'\n ? new TxAdapter(tx)\n : new LegacyTxAdapter(tx)\n}\n\n/**\n* Adapter for new official transducer protocol\n* @param {object} tx transform\n* @constructor\n*/\nfunction TxAdapter (tx) {\n this.tx = tx\n}\n\nTxAdapter.prototype.step = function (t, x) {\n return this.tx['@@transducer/step'](t, x)\n}\nTxAdapter.prototype.result = function (x) {\n return this.tx['@@transducer/result'](x)\n}\nTxAdapter.prototype.isReduced = function (x) {\n return x != null && x['@@transducer/reduced']\n}\nTxAdapter.prototype.getResult = function (x) {\n return x['@@transducer/value']\n}\n\n/**\n* Adapter for older transducer protocol\n* @param {object} tx transform\n* @constructor\n*/\nfunction LegacyTxAdapter (tx) {\n this.tx = tx\n}\n\nLegacyTxAdapter.prototype.step = function (t, x) {\n return this.tx.step(t, x)\n}\nLegacyTxAdapter.prototype.result = function (x) {\n return this.tx.result(x)\n}\nLegacyTxAdapter.prototype.isReduced = function (x) {\n return x != null && x.__transducers_reduced__\n}\nLegacyTxAdapter.prototype.getResult = function (x) {\n return x.value\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n/**\n * Doubly linked list\n * @constructor\n */\nexport default function LinkedList () {\n this.head = null\n this.length = 0\n}\n\n/**\n * Add a node to the end of the list\n * @param {{prev:Object|null, next:Object|null, dispose:function}} x node to add\n */\nLinkedList.prototype.add = function (x) {\n if (this.head !== null) {\n this.head.prev = x\n x.next = this.head\n }\n this.head = x\n ++this.length\n}\n\n/**\n * Remove the provided node from the list\n * @param {{prev:Object|null, next:Object|null, dispose:function}} x node to remove\n */\nLinkedList.prototype.remove = function (x) { // eslint-disable-line complexity\n --this.length\n if (x === this.head) {\n this.head = this.head.next\n }\n if (x.next !== null) {\n x.next.prev = x.prev\n x.next = null\n }\n if (x.prev !== null) {\n x.prev.next = x.next\n x.prev = null\n }\n}\n\n/**\n * @returns {boolean} true iff there are no nodes in the list\n */\nLinkedList.prototype.isEmpty = function () {\n return this.length === 0\n}\n\n/**\n * Dispose all nodes\n * @returns {Promise} promise that fulfills when all nodes have been disposed,\n * or rejects if an error occurs while disposing\n */\nLinkedList.prototype.dispose = function () {\n if (this.isEmpty()) {\n return Promise.resolve()\n }\n\n var promises = []\n var x = this.head\n this.head = null\n this.length = 0\n\n while (x !== null) {\n promises.push(x.dispose())\n x = x.next\n }\n\n return Promise.all(promises)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport * as dispose from '../disposable/dispose'\nimport LinkedList from '../LinkedList'\nimport { id as identity } from '@most/prelude'\n\nexport function mergeConcurrently (concurrency, stream) {\n return mergeMapConcurrently(identity, concurrency, stream)\n}\n\nexport function mergeMapConcurrently (f, concurrency, stream) {\n return new Stream(new MergeConcurrently(f, concurrency, stream.source))\n}\n\nfunction MergeConcurrently (f, concurrency, source) {\n this.f = f\n this.concurrency = concurrency\n this.source = source\n}\n\nMergeConcurrently.prototype.run = function (sink, scheduler) {\n return new Outer(this.f, this.concurrency, this.source, sink, scheduler)\n}\n\nfunction Outer (f, concurrency, source, sink, scheduler) {\n this.f = f\n this.concurrency = concurrency\n this.sink = sink\n this.scheduler = scheduler\n this.pending = []\n this.current = new LinkedList()\n this.disposable = dispose.once(source.run(this, scheduler))\n this.active = true\n}\n\nOuter.prototype.event = function (t, x) {\n this._addInner(t, x)\n}\n\nOuter.prototype._addInner = function (t, x) {\n if (this.current.length < this.concurrency) {\n this._startInner(t, x)\n } else {\n this.pending.push(x)\n }\n}\n\nOuter.prototype._startInner = function (t, x) {\n try {\n this._initInner(t, x)\n } catch (e) {\n this.error(t, e)\n }\n}\n\nOuter.prototype._initInner = function (t, x) {\n var innerSink = new Inner(t, this, this.sink)\n innerSink.disposable = mapAndRun(this.f, x, innerSink, this.scheduler)\n this.current.add(innerSink)\n}\n\nfunction mapAndRun (f, x, sink, scheduler) {\n return f(x).source.run(sink, scheduler)\n}\n\nOuter.prototype.end = function (t, x) {\n this.active = false\n dispose.tryDispose(t, this.disposable, this.sink)\n this._checkEnd(t, x)\n}\n\nOuter.prototype.error = function (t, e) {\n this.active = false\n this.sink.error(t, e)\n}\n\nOuter.prototype.dispose = function () {\n this.active = false\n this.pending.length = 0\n return Promise.all([this.disposable.dispose(), this.current.dispose()])\n}\n\nOuter.prototype._endInner = function (t, x, inner) {\n this.current.remove(inner)\n dispose.tryDispose(t, inner, this)\n\n if (this.pending.length === 0) {\n this._checkEnd(t, x)\n } else {\n this._startInner(t, this.pending.shift())\n }\n}\n\nOuter.prototype._checkEnd = function (t, x) {\n if (!this.active && this.current.isEmpty()) {\n this.sink.end(t, x)\n }\n}\n\nfunction Inner (time, outer, sink) {\n this.prev = this.next = null\n this.time = time\n this.outer = outer\n this.sink = sink\n this.disposable = void 0\n}\n\nInner.prototype.event = function (t, x) {\n this.sink.event(Math.max(t, this.time), x)\n}\n\nInner.prototype.end = function (t, x) {\n this.outer._endInner(Math.max(t, this.time), x, this)\n}\n\nInner.prototype.error = function (t, e) {\n this.outer.error(Math.max(t, this.time), e)\n}\n\nInner.prototype.dispose = function () {\n return this.disposable.dispose()\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport { mergeConcurrently, mergeMapConcurrently } from './mergeConcurrently'\n\n/**\n * Map each value in the stream to a new stream, and merge it into the\n * returned outer stream. Event arrival times are preserved.\n * @param {function(x:*):Stream} f chaining function, must return a Stream\n * @param {Stream} stream\n * @returns {Stream} new stream containing all events from each stream returned by f\n */\nexport function flatMap (f, stream) {\n return mergeMapConcurrently(f, Infinity, stream)\n}\n\n/**\n * Monadic join. Flatten a Stream<Stream<X>> to Stream<X> by merging inner\n * streams to the outer. Event arrival times are preserved.\n * @param {Stream<Stream<X>>} stream stream of streams\n * @returns {Stream<X>} new stream containing all events of all inner streams\n */\nexport function join (stream) {\n return mergeConcurrently(Infinity, stream)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport { mergeMapConcurrently } from './mergeConcurrently'\n\n/**\n * Map each value in stream to a new stream, and concatenate them all\n * stream: -a---b---cX\n * f(a): 1-1-1-1X\n * f(b): -2-2-2-2X\n * f(c): -3-3-3-3X\n * stream.concatMap(f): -1-1-1-1-2-2-2-2-3-3-3-3X\n * @param {function(x:*):Stream} f function to map each value to a stream\n * @param {Stream} stream\n * @returns {Stream} new stream containing all events from each stream returned by f\n */\nexport function concatMap (f, stream) {\n return mergeMapConcurrently(f, 1, stream)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport Pipe from '../sink/Pipe'\nimport IndexSink from '../sink/IndexSink'\nimport { empty } from '../source/core'\nimport * as dispose from '../disposable/dispose'\nimport * as base from '@most/prelude'\n\nvar copy = base.copy\nvar reduce = base.reduce\n\n/**\n * @returns {Stream} stream containing events from all streams in the argument\n * list in time order. If two events are simultaneous they will be merged in\n * arbitrary order.\n */\nexport function merge (/* ...streams*/) {\n return mergeArray(copy(arguments))\n}\n\n/**\n * @param {Array} streams array of stream to merge\n * @returns {Stream} stream containing events from all input observables\n * in time order. If two events are simultaneous they will be merged in\n * arbitrary order.\n */\nexport function mergeArray (streams) {\n var l = streams.length\n return l === 0 ? empty()\n : l === 1 ? streams[0]\n : new Stream(mergeSources(streams))\n}\n\n/**\n * This implements fusion/flattening for merge. It will\n * fuse adjacent merge operations. For example:\n * - a.merge(b).merge(c) effectively becomes merge(a, b, c)\n * - merge(a, merge(b, c)) effectively becomes merge(a, b, c)\n * It does this by concatenating the sources arrays of\n * any nested Merge sources, in effect \"flattening\" nested\n * merge operations into a single merge.\n */\nfunction mergeSources (streams) {\n return new Merge(reduce(appendSources, [], streams))\n}\n\nfunction appendSources (sources, stream) {\n var source = stream.source\n return source instanceof Merge\n ? sources.concat(source.sources)\n : sources.concat(source)\n}\n\nfunction Merge (sources) {\n this.sources = sources\n}\n\nMerge.prototype.run = function (sink, scheduler) {\n var l = this.sources.length\n var disposables = new Array(l)\n var sinks = new Array(l)\n\n var mergeSink = new MergeSink(disposables, sinks, sink)\n\n for (var indexSink, i = 0; i < l; ++i) {\n indexSink = sinks[i] = new IndexSink(i, mergeSink)\n disposables[i] = this.sources[i].run(indexSink, scheduler)\n }\n\n return dispose.all(disposables)\n}\n\nfunction MergeSink (disposables, sinks, sink) {\n this.sink = sink\n this.disposables = disposables\n this.activeCount = sinks.length\n}\n\nMergeSink.prototype.error = Pipe.prototype.error\n\nMergeSink.prototype.event = function (t, indexValue) {\n this.sink.event(t, indexValue.value)\n}\n\nMergeSink.prototype.end = function (t, indexedValue) {\n dispose.tryDispose(t, this.disposables[indexedValue.index], this.sink)\n if (--this.activeCount === 0) {\n this.sink.end(t, indexedValue.value)\n }\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport Pipe from '../sink/Pipe'\nimport * as dispose from '../disposable/dispose'\nimport * as base from '@most/prelude'\nimport invoke from '../invoke'\n\n/**\n * When an event arrives on sampler, emit the result of calling f with the latest\n * values of all streams being sampled\n * @param {function(...values):*} f function to apply to each set of sampled values\n * @param {Stream} sampler streams will be sampled whenever an event arrives\n * on sampler\n * @returns {Stream} stream of sampled and transformed values\n */\nexport function sample (f, sampler /*, ...streams */) {\n return sampleArray(f, sampler, base.drop(2, arguments))\n}\n\n/**\n * When an event arrives on sampler, emit the latest event value from stream.\n * @param {Stream} sampler stream of events at whose arrival time\n * stream's latest value will be propagated\n * @param {Stream} stream stream of values\n * @returns {Stream} sampled stream of values\n */\nexport function sampleWith (sampler, stream) {\n return new Stream(new Sampler(base.id, sampler.source, [stream.source]))\n}\n\nexport function sampleArray (f, sampler, streams) {\n return new Stream(new Sampler(f, sampler.source, base.map(getSource, streams)))\n}\n\nfunction getSource (stream) {\n return stream.source\n}\n\nfunction Sampler (f, sampler, sources) {\n this.f = f\n this.sampler = sampler\n this.sources = sources\n}\n\nSampler.prototype.run = function (sink, scheduler) {\n var l = this.sources.length\n var disposables = new Array(l + 1)\n var sinks = new Array(l)\n\n var sampleSink = new SampleSink(this.f, sinks, sink)\n\n for (var hold, i = 0; i < l; ++i) {\n hold = sinks[i] = new Hold(sampleSink)\n disposables[i] = this.sources[i].run(hold, scheduler)\n }\n\n disposables[i] = this.sampler.run(sampleSink, scheduler)\n\n return dispose.all(disposables)\n}\n\nfunction Hold (sink) {\n this.sink = sink\n this.hasValue = false\n}\n\nHold.prototype.event = function (t, x) {\n this.value = x\n this.hasValue = true\n this.sink._notify(this)\n}\n\nHold.prototype.end = function () {}\nHold.prototype.error = Pipe.prototype.error\n\nfunction SampleSink (f, sinks, sink) {\n this.f = f\n this.sinks = sinks\n this.sink = sink\n this.active = false\n}\n\nSampleSink.prototype._notify = function () {\n if (!this.active) {\n this.active = this.sinks.every(hasValue)\n }\n}\n\nSampleSink.prototype.event = function (t) {\n if (this.active) {\n this.sink.event(t, invoke(this.f, base.map(getValue, this.sinks)))\n }\n}\n\nSampleSink.prototype.end = Pipe.prototype.end\nSampleSink.prototype.error = Pipe.prototype.error\n\nfunction hasValue (hold) {\n return hold.hasValue\n}\n\nfunction getValue (hold) {\n return hold.value\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n// Based on https://github.com/petkaantonov/deque\n\nexport default function Queue (capPow2) {\n this._capacity = capPow2 || 32\n this._length = 0\n this._head = 0\n}\n\nQueue.prototype.push = function (x) {\n var len = this._length\n this._checkCapacity(len + 1)\n\n var i = (this._head + len) & (this._capacity - 1)\n this[i] = x\n this._length = len + 1\n}\n\nQueue.prototype.shift = function () {\n var head = this._head\n var x = this[head]\n\n this[head] = void 0\n this._head = (head + 1) & (this._capacity - 1)\n this._length--\n return x\n}\n\nQueue.prototype.isEmpty = function () {\n return this._length === 0\n}\n\nQueue.prototype.length = function () {\n return this._length\n}\n\nQueue.prototype._checkCapacity = function (size) {\n if (this._capacity < size) {\n this._ensureCapacity(this._capacity << 1)\n }\n}\n\nQueue.prototype._ensureCapacity = function (capacity) {\n var oldCapacity = this._capacity\n this._capacity = capacity\n\n var last = this._head + this._length\n\n if (last > oldCapacity) {\n copy(this, 0, this, oldCapacity, last & (oldCapacity - 1))\n }\n}\n\nfunction copy (src, srcIndex, dst, dstIndex, len) {\n for (var j = 0; j < len; ++j) {\n dst[j + dstIndex] = src[j + srcIndex]\n src[j + srcIndex] = void 0\n }\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport * as transform from './transform'\nimport * as core from '../source/core'\nimport Pipe from '../sink/Pipe'\nimport IndexSink from '../sink/IndexSink'\nimport * as dispose from '../disposable/dispose'\nimport * as base from '@most/prelude'\nimport invoke from '../invoke'\nimport Queue from '../Queue'\n\nvar map = base.map\nvar tail = base.tail\n\n/**\n * Combine streams pairwise (or tuple-wise) by index by applying f to values\n * at corresponding indices. The returned stream ends when any of the input\n * streams ends.\n * @param {function} f function to combine values\n * @returns {Stream} new stream with items at corresponding indices combined\n * using f\n */\nexport function zip (f /*, ...streams */) {\n return zipArray(f, tail(arguments))\n}\n\n/**\n* Combine streams pairwise (or tuple-wise) by index by applying f to values\n* at corresponding indices. The returned stream ends when any of the input\n* streams ends.\n* @param {function} f function to combine values\n* @param {[Stream]} streams streams to zip using f\n* @returns {Stream} new stream with items at corresponding indices combined\n* using f\n*/\nexport function zipArray (f, streams) {\n return streams.length === 0 ? core.empty()\n: streams.length === 1 ? transform.map(f, streams[0])\n: new Stream(new Zip(f, map(getSource, streams)))\n}\n\nfunction getSource (stream) {\n return stream.source\n}\n\nfunction Zip (f, sources) {\n this.f = f\n this.sources = sources\n}\n\nZip.prototype.run = function (sink, scheduler) {\n var l = this.sources.length\n var disposables = new Array(l)\n var sinks = new Array(l)\n var buffers = new Array(l)\n\n var zipSink = new ZipSink(this.f, buffers, sinks, sink)\n\n for (var indexSink, i = 0; i < l; ++i) {\n buffers[i] = new Queue()\n indexSink = sinks[i] = new IndexSink(i, zipSink)\n disposables[i] = this.sources[i].run(indexSink, scheduler)\n }\n\n return dispose.all(disposables)\n}\n\nfunction ZipSink (f, buffers, sinks, sink) {\n this.f = f\n this.sinks = sinks\n this.sink = sink\n this.buffers = buffers\n}\n\nZipSink.prototype.event = function (t, indexedValue) { // eslint-disable-line complexity\n var buffers = this.buffers\n var buffer = buffers[indexedValue.index]\n\n buffer.push(indexedValue.value)\n\n if (buffer.length() === 1) {\n if (!ready(this.buffers)) {\n return\n }\n\n emitZipped(this.f, t, buffers, this.sink)\n\n if (ended(this.buffers, this.sinks)) {\n this.sink.end(t, void 0)\n }\n }\n}\n\nZipSink.prototype.end = function (t, indexedValue) {\n var buffer = this.buffers[indexedValue.index]\n if (buffer.isEmpty()) {\n this.sink.end(t, indexedValue.value)\n }\n}\n\nZipSink.prototype.error = Pipe.prototype.error\n\nfunction emitZipped (f, t, buffers, sink) {\n sink.event(t, invoke(f, map(head, buffers)))\n}\n\nfunction head (buffer) {\n return buffer.shift()\n}\n\nfunction ended (buffers, sinks) {\n for (var i = 0, l = buffers.length; i < l; ++i) {\n if (buffers[i].isEmpty() && !sinks[i].active) {\n return true\n }\n }\n return false\n}\n\nfunction ready (buffers) {\n for (var i = 0, l = buffers.length; i < l; ++i) {\n if (buffers[i].isEmpty()) {\n return false\n }\n }\n return true\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport * as dispose from '../disposable/dispose'\n\n/**\n * Given a stream of streams, return a new stream that adopts the behavior\n * of the most recent inner stream.\n * @param {Stream} stream of streams on which to switch\n * @returns {Stream} switching stream\n */\nexport function switchLatest (stream) {\n return new Stream(new Switch(stream.source))\n}\n\nexport { switchLatest as switch }\n\nfunction Switch (source) {\n this.source = source\n}\n\nSwitch.prototype.run = function (sink, scheduler) {\n var switchSink = new SwitchSink(sink, scheduler)\n return dispose.all([switchSink, this.source.run(switchSink, scheduler)])\n}\n\nfunction SwitchSink (sink, scheduler) {\n this.sink = sink\n this.scheduler = scheduler\n this.current = null\n this.ended = false\n}\n\nSwitchSink.prototype.event = function (t, stream) {\n this._disposeCurrent(t) // TODO: capture the result of this dispose\n this.current = new Segment(t, Infinity, this, this.sink)\n this.current.disposable = stream.source.run(this.current, this.scheduler)\n}\n\nSwitchSink.prototype.end = function (t, x) {\n this.ended = true\n this._checkEnd(t, x)\n}\n\nSwitchSink.prototype.error = function (t, e) {\n this.ended = true\n this.sink.error(t, e)\n}\n\nSwitchSink.prototype.dispose = function () {\n return this._disposeCurrent(this.scheduler.now())\n}\n\nSwitchSink.prototype._disposeCurrent = function (t) {\n if (this.current !== null) {\n return this.current._dispose(t)\n }\n}\n\nSwitchSink.prototype._disposeInner = function (t, inner) {\n inner._dispose(t) // TODO: capture the result of this dispose\n if (inner === this.current) {\n this.current = null\n }\n}\n\nSwitchSink.prototype._checkEnd = function (t, x) {\n if (this.ended && this.current === null) {\n this.sink.end(t, x)\n }\n}\n\nSwitchSink.prototype._endInner = function (t, x, inner) {\n this._disposeInner(t, inner)\n this._checkEnd(t, x)\n}\n\nSwitchSink.prototype._errorInner = function (t, e, inner) {\n this._disposeInner(t, inner)\n this.sink.error(t, e)\n}\n\nfunction Segment (min, max, outer, sink) {\n this.min = min\n this.max = max\n this.outer = outer\n this.sink = sink\n this.disposable = dispose.empty()\n}\n\nSegment.prototype.event = function (t, x) {\n if (t < this.max) {\n this.sink.event(Math.max(t, this.min), x)\n }\n}\n\nSegment.prototype.end = function (t, x) {\n this.outer._endInner(Math.max(t, this.min), x, this)\n}\n\nSegment.prototype.error = function (t, e) {\n this.outer._errorInner(Math.max(t, this.min), e, this)\n}\n\nSegment.prototype._dispose = function (t) {\n this.max = t\n dispose.tryDispose(t, this.disposable, this.sink)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport Pipe from '../sink/Pipe'\nimport Filter from '../fusion/Filter'\n\n/**\n * Retain only items matching a predicate\n * @param {function(x:*):boolean} p filtering predicate called for each item\n * @param {Stream} stream stream to filter\n * @returns {Stream} stream containing only items for which predicate returns truthy\n */\nexport function filter (p, stream) {\n return new Stream(Filter.create(p, stream.source))\n}\n\n/**\n * Skip repeated events, using === to detect duplicates\n * @param {Stream} stream stream from which to omit repeated events\n * @returns {Stream} stream without repeated events\n */\nexport function skipRepeats (stream) {\n return skipRepeatsWith(same, stream)\n}\n\n/**\n * Skip repeated events using the provided equals function to detect duplicates\n * @param {function(a:*, b:*):boolean} equals optional function to compare items\n * @param {Stream} stream stream from which to omit repeated events\n * @returns {Stream} stream without repeated events\n */\nexport function skipRepeatsWith (equals, stream) {\n return new Stream(new SkipRepeats(equals, stream.source))\n}\n\nfunction SkipRepeats (equals, source) {\n this.equals = equals\n this.source = source\n}\n\nSkipRepeats.prototype.run = function (sink, scheduler) {\n return this.source.run(new SkipRepeatsSink(this.equals, sink), scheduler)\n}\n\nfunction SkipRepeatsSink (equals, sink) {\n this.equals = equals\n this.sink = sink\n this.value = void 0\n this.init = true\n}\n\nSkipRepeatsSink.prototype.end = Pipe.prototype.end\nSkipRepeatsSink.prototype.error = Pipe.prototype.error\n\nSkipRepeatsSink.prototype.event = function (t, x) {\n if (this.init) {\n this.init = false\n this.value = x\n this.sink.event(t, x)\n } else if (!this.equals(this.value, x)) {\n this.value = x\n this.sink.event(t, x)\n }\n}\n\nfunction same (a, b) {\n return a === b\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport Pipe from '../sink/Pipe'\nimport * as core from '../source/core'\nimport * as dispose from '../disposable/dispose'\nimport Map from '../fusion/Map'\n\n/**\n * @param {number} n\n * @param {Stream} stream\n * @returns {Stream} new stream containing only up to the first n items from stream\n */\nexport function take (n, stream) {\n return slice(0, n, stream)\n}\n\n/**\n * @param {number} n\n * @param {Stream} stream\n * @returns {Stream} new stream with the first n items removed\n */\nexport function skip (n, stream) {\n return slice(n, Infinity, stream)\n}\n\n/**\n * Slice a stream by index. Negative start/end indexes are not supported\n * @param {number} start\n * @param {number} end\n * @param {Stream} stream\n * @returns {Stream} stream containing items where start <= index < end\n */\nexport function slice (start, end, stream) {\n return end <= start ? core.empty()\n : new Stream(sliceSource(start, end, stream.source))\n}\n\nfunction sliceSource (start, end, source) {\n return source instanceof Map ? commuteMapSlice(start, end, source)\n : source instanceof Slice ? fuseSlice(start, end, source)\n : new Slice(start, end, source)\n}\n\nfunction commuteMapSlice (start, end, source) {\n return Map.create(source.f, sliceSource(start, end, source.source))\n}\n\nfunction fuseSlice (start, end, source) {\n start += source.min\n end = Math.min(end + source.min, source.max)\n return new Slice(start, end, source.source)\n}\n\nfunction Slice (min, max, source) {\n this.source = source\n this.min = min\n this.max = max\n}\n\nSlice.prototype.run = function (sink, scheduler) {\n var disposable = dispose.settable()\n var sliceSink = new SliceSink(this.min, this.max - this.min, sink, disposable)\n\n disposable.setDisposable(this.source.run(sliceSink, scheduler))\n return disposable\n}\n\nfunction SliceSink (skip, take, sink, disposable) {\n this.sink = sink\n this.skip = skip\n this.take = take\n this.disposable = disposable\n}\n\nSliceSink.prototype.end = Pipe.prototype.end\nSliceSink.prototype.error = Pipe.prototype.error\n\nSliceSink.prototype.event = function (t, x) {\n /* eslint complexity: [1, 4] */\n if (this.skip > 0) {\n this.skip -= 1\n return\n }\n\n if (this.take === 0) {\n return\n }\n\n this.take -= 1\n this.sink.event(t, x)\n if (this.take === 0) {\n this.disposable.dispose()\n this.sink.end(t, x)\n }\n}\n\nexport function takeWhile (p, stream) {\n return new Stream(new TakeWhile(p, stream.source))\n}\n\nfunction TakeWhile (p, source) {\n this.p = p\n this.source = source\n}\n\nTakeWhile.prototype.run = function (sink, scheduler) {\n var disposable = dispose.settable()\n var takeWhileSink = new TakeWhileSink(this.p, sink, disposable)\n\n disposable.setDisposable(this.source.run(takeWhileSink, scheduler))\n return disposable\n}\n\nfunction TakeWhileSink (p, sink, disposable) {\n this.p = p\n this.sink = sink\n this.active = true\n this.disposable = disposable\n}\n\nTakeWhileSink.prototype.end = Pipe.prototype.end\nTakeWhileSink.prototype.error = Pipe.prototype.error\n\nTakeWhileSink.prototype.event = function (t, x) {\n if (!this.active) {\n return\n }\n\n var p = this.p\n this.active = p(x)\n if (this.active) {\n this.sink.event(t, x)\n } else {\n this.disposable.dispose()\n this.sink.end(t, x)\n }\n}\n\nexport function skipWhile (p, stream) {\n return new Stream(new SkipWhile(p, stream.source))\n}\n\nfunction SkipWhile (p, source) {\n this.p = p\n this.source = source\n}\n\nSkipWhile.prototype.run = function (sink, scheduler) {\n return this.source.run(new SkipWhileSink(this.p, sink), scheduler)\n}\n\nfunction SkipWhileSink (p, sink) {\n this.p = p\n this.sink = sink\n this.skipping = true\n}\n\nSkipWhileSink.prototype.end = Pipe.prototype.end\nSkipWhileSink.prototype.error = Pipe.prototype.error\n\nSkipWhileSink.prototype.event = function (t, x) {\n if (this.skipping) {\n var p = this.p\n this.skipping = p(x)\n if (this.skipping) {\n return\n }\n }\n\n this.sink.event(t, x)\n}\n\nexport function skipAfter (p, stream) {\n return new Stream(new SkipAfter(p, stream.source))\n}\n\nfunction SkipAfter (p, source) {\n this.p = p\n this.source = source\n}\n\nSkipAfter.prototype.run = function run (sink, scheduler) {\n return this.source.run(new SkipAfterSink(this.p, sink), scheduler)\n}\n\nfunction SkipAfterSink (p, sink) {\n this.p = p\n this.sink = sink\n this.skipping = false\n}\n\nSkipAfterSink.prototype.event = function event (t, x) {\n if (this.skipping) {\n return\n }\n\n var p = this.p\n this.skipping = p(x)\n this.sink.event(t, x)\n\n if (this.skipping) {\n this.sink.end(t, x)\n }\n}\n\nSkipAfterSink.prototype.end = Pipe.prototype.end\nSkipAfterSink.prototype.error = Pipe.prototype.error\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport Pipe from '../sink/Pipe'\nimport * as dispose from '../disposable/dispose'\nimport { join } from '../combinator/flatMap'\n\nexport function takeUntil (signal, stream) {\n return new Stream(new Until(signal.source, stream.source))\n}\n\nexport function skipUntil (signal, stream) {\n return new Stream(new Since(signal.source, stream.source))\n}\n\nexport function during (timeWindow, stream) {\n return takeUntil(join(timeWindow), skipUntil(timeWindow, stream))\n}\n\nfunction Until (maxSignal, source) {\n this.maxSignal = maxSignal\n this.source = source\n}\n\nUntil.prototype.run = function (sink, scheduler) {\n var min = new Bound(-Infinity, sink)\n var max = new UpperBound(this.maxSignal, sink, scheduler)\n var disposable = this.source.run(new TimeWindowSink(min, max, sink), scheduler)\n\n return dispose.all([min, max, disposable])\n}\n\nfunction Since (minSignal, source) {\n this.minSignal = minSignal\n this.source = source\n}\n\nSince.prototype.run = function (sink, scheduler) {\n var min = new LowerBound(this.minSignal, sink, scheduler)\n var max = new Bound(Infinity, sink)\n var disposable = this.source.run(new TimeWindowSink(min, max, sink), scheduler)\n\n return dispose.all([min, max, disposable])\n}\n\nfunction Bound (value, sink) {\n this.value = value\n this.sink = sink\n}\n\nBound.prototype.error = Pipe.prototype.error\nBound.prototype.event = noop\nBound.prototype.end = noop\nBound.prototype.dispose = noop\n\nfunction TimeWindowSink (min, max, sink) {\n this.min = min\n this.max = max\n this.sink = sink\n}\n\nTimeWindowSink.prototype.event = function (t, x) {\n if (t >= this.min.value && t < this.max.value) {\n this.sink.event(t, x)\n }\n}\n\nTimeWindowSink.prototype.error = Pipe.prototype.error\nTimeWindowSink.prototype.end = Pipe.prototype.end\n\nfunction LowerBound (signal, sink, scheduler) {\n this.value = Infinity\n this.sink = sink\n this.disposable = signal.run(this, scheduler)\n}\n\nLowerBound.prototype.event = function (t /*, x */) {\n if (t < this.value) {\n this.value = t\n }\n}\n\nLowerBound.prototype.end = noop\nLowerBound.prototype.error = Pipe.prototype.error\n\nLowerBound.prototype.dispose = function () {\n return this.disposable.dispose()\n}\n\nfunction UpperBound (signal, sink, scheduler) {\n this.value = Infinity\n this.sink = sink\n this.disposable = signal.run(this, scheduler)\n}\n\nUpperBound.prototype.event = function (t, x) {\n if (t < this.value) {\n this.value = t\n this.sink.end(t, x)\n }\n}\n\nUpperBound.prototype.end = noop\nUpperBound.prototype.error = Pipe.prototype.error\n\nUpperBound.prototype.dispose = function () {\n return this.disposable.dispose()\n}\n\nfunction noop () {}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport Pipe from '../sink/Pipe'\nimport * as dispose from '../disposable/dispose'\nimport PropagateTask from '../scheduler/PropagateTask'\n\n/**\n * @param {Number} delayTime milliseconds to delay each item\n * @param {Stream} stream\n * @returns {Stream} new stream containing the same items, but delayed by ms\n */\nexport function delay (delayTime, stream) {\n return delayTime <= 0 ? stream\n : new Stream(new Delay(delayTime, stream.source))\n}\n\nfunction Delay (dt, source) {\n this.dt = dt\n this.source = source\n}\n\nDelay.prototype.run = function (sink, scheduler) {\n var delaySink = new DelaySink(this.dt, sink, scheduler)\n return dispose.all([delaySink, this.source.run(delaySink, scheduler)])\n}\n\nfunction DelaySink (dt, sink, scheduler) {\n this.dt = dt\n this.sink = sink\n this.scheduler = scheduler\n}\n\nDelaySink.prototype.dispose = function () {\n var self = this\n this.scheduler.cancelAll(function (task) {\n return task.sink === self.sink\n })\n}\n\nDelaySink.prototype.event = function (t, x) {\n this.scheduler.delay(this.dt, PropagateTask.event(x, this.sink))\n}\n\nDelaySink.prototype.end = function (t, x) {\n this.scheduler.delay(this.dt, PropagateTask.end(x, this.sink))\n}\n\nDelaySink.prototype.error = Pipe.prototype.error\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport Pipe from '../sink/Pipe'\n\nexport function timestamp (stream) {\n return new Stream(new Timestamp(stream.source))\n}\n\nfunction Timestamp (source) {\n this.source = source\n}\n\nTimestamp.prototype.run = function (sink, scheduler) {\n return this.source.run(new TimestampSink(sink), scheduler)\n}\n\nfunction TimestampSink (sink) {\n this.sink = sink\n}\n\nTimestampSink.prototype.end = Pipe.prototype.end\nTimestampSink.prototype.error = Pipe.prototype.error\n\nTimestampSink.prototype.event = function (t, x) {\n this.sink.event(t, { time: t, value: x })\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport Pipe from '../sink/Pipe'\nimport PropagateTask from '../scheduler/PropagateTask'\nimport Map from '../fusion/Map'\n\n/**\n * Limit the rate of events by suppressing events that occur too often\n * @param {Number} period time to suppress events\n * @param {Stream} stream\n * @returns {Stream}\n */\nexport function throttle (period, stream) {\n return new Stream(throttleSource(period, stream.source))\n}\n\nfunction throttleSource (period, source) {\n return source instanceof Map ? commuteMapThrottle(period, source)\n : source instanceof Throttle ? fuseThrottle(period, source)\n : new Throttle(period, source)\n}\n\nfunction commuteMapThrottle (period, source) {\n return Map.create(source.f, throttleSource(period, source.source))\n}\n\nfunction fuseThrottle (period, source) {\n return new Throttle(Math.max(period, source.period), source.source)\n}\n\nfunction Throttle (period, source) {\n this.period = period\n this.source = source\n}\n\nThrottle.prototype.run = function (sink, scheduler) {\n return this.source.run(new ThrottleSink(this.period, sink), scheduler)\n}\n\nfunction ThrottleSink (period, sink) {\n this.time = 0\n this.period = period\n this.sink = sink\n}\n\nThrottleSink.prototype.event = function (t, x) {\n if (t >= this.time) {\n this.time = t + this.period\n this.sink.event(t, x)\n }\n}\n\nThrottleSink.prototype.end = Pipe.prototype.end\n\nThrottleSink.prototype.error = Pipe.prototype.error\n\n/**\n * Wait for a burst of events to subside and emit only the last event in the burst\n * @param {Number} period events occuring more frequently than this\n * will be suppressed\n * @param {Stream} stream stream to debounce\n * @returns {Stream} new debounced stream\n */\nexport function debounce (period, stream) {\n return new Stream(new Debounce(period, stream.source))\n}\n\nfunction Debounce (dt, source) {\n this.dt = dt\n this.source = source\n}\n\nDebounce.prototype.run = function (sink, scheduler) {\n return new DebounceSink(this.dt, this.source, sink, scheduler)\n}\n\nfunction DebounceSink (dt, source, sink, scheduler) {\n this.dt = dt\n this.sink = sink\n this.scheduler = scheduler\n this.value = void 0\n this.timer = null\n this.disposable = source.run(this, scheduler)\n}\n\nDebounceSink.prototype.event = function (t, x) {\n this._clearTimer()\n this.value = x\n this.timer = this.scheduler.delay(this.dt, PropagateTask.event(x, this.sink))\n}\n\nDebounceSink.prototype.end = function (t, x) {\n if (this._clearTimer()) {\n this.sink.event(t, this.value)\n this.value = void 0\n }\n this.sink.end(t, x)\n}\n\nDebounceSink.prototype.error = function (t, x) {\n this._clearTimer()\n this.sink.error(t, x)\n}\n\nDebounceSink.prototype.dispose = function () {\n this._clearTimer()\n return this.disposable.dispose()\n}\n\nDebounceSink.prototype._clearTimer = function () {\n if (this.timer === null) {\n return false\n }\n this.timer.dispose()\n this.timer = null\n return true\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport fatal from '../fatalError'\nimport { of as just } from '../source/core'\n\n/**\n * Create a stream containing only the promise's fulfillment\n * value at the time it fulfills.\n * @param {Promise<T>} p promise\n * @return {Stream<T>} stream containing promise's fulfillment value.\n * If the promise rejects, the stream will error\n */\nexport function fromPromise (p) {\n return awaitPromises(just(p))\n}\n\n/**\n * Turn a Stream<Promise<T>> into Stream<T> by awaiting each promise.\n * Event order is preserved.\n * @param {Stream<Promise<T>>} stream\n * @return {Stream<T>} stream of fulfillment values. The stream will\n * error if any promise rejects.\n */\nexport function awaitPromises (stream) {\n return new Stream(new Await(stream.source))\n}\n\nfunction Await (source) {\n this.source = source\n}\n\nAwait.prototype.run = function (sink, scheduler) {\n return this.source.run(new AwaitSink(sink, scheduler), scheduler)\n}\n\nfunction AwaitSink (sink, scheduler) {\n this.sink = sink\n this.scheduler = scheduler\n this.queue = Promise.resolve()\n var self = this\n\n\t// Pre-create closures, to avoid creating them per event\n this._eventBound = function (x) {\n self.sink.event(self.scheduler.now(), x)\n }\n\n this._endBound = function (x) {\n self.sink.end(self.scheduler.now(), x)\n }\n\n this._errorBound = function (e) {\n self.sink.error(self.scheduler.now(), e)\n }\n}\n\nAwaitSink.prototype.event = function (t, promise) {\n var self = this\n this.queue = this.queue.then(function () {\n return self._event(promise)\n }).catch(this._errorBound)\n}\n\nAwaitSink.prototype.end = function (t, x) {\n var self = this\n this.queue = this.queue.then(function () {\n return self._end(x)\n }).catch(this._errorBound)\n}\n\nAwaitSink.prototype.error = function (t, e) {\n var self = this\n // Don't resolve error values, propagate directly\n this.queue = this.queue.then(function () {\n return self._errorBound(e)\n }).catch(fatal)\n}\n\nAwaitSink.prototype._event = function (promise) {\n return promise.then(this._eventBound)\n}\n\nAwaitSink.prototype._end = function (x) {\n return Promise.resolve(x).then(this._endBound)\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nexport default function SafeSink (sink) {\n this.sink = sink\n this.active = true\n}\n\nSafeSink.prototype.event = function (t, x) {\n if (!this.active) {\n return\n }\n this.sink.event(t, x)\n}\n\nSafeSink.prototype.end = function (t, x) {\n if (!this.active) {\n return\n }\n this.disable()\n this.sink.end(t, x)\n}\n\nSafeSink.prototype.error = function (t, e) {\n this.disable()\n this.sink.error(t, e)\n}\n\nSafeSink.prototype.disable = function () {\n this.active = false\n return this.sink\n}\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from '../Stream'\nimport SafeSink from '../sink/SafeSink'\nimport * as dispose from '../disposable/dispose'\nimport * as tryEvent from '../source/tryEvent'\nimport PropagateTask from '../scheduler/PropagateTask'\n\n/**\n * If stream encounters an error, recover and continue with items from stream\n * returned by f.\n * @param {function(error:*):Stream} f function which returns a new stream\n * @param {Stream} stream\n * @returns {Stream} new stream which will recover from an error by calling f\n */\nexport function recoverWith (f, stream) {\n return new Stream(new RecoverWith(f, stream.source))\n}\n\nexport var flatMapError = recoverWith\n\n/**\n * Create a stream containing only an error\n * @param {*} e error value, preferably an Error or Error subtype\n * @returns {Stream} new stream containing only an error\n */\nexport function throwError (e) {\n return new Stream(new ErrorSource(e))\n}\n\nfunction ErrorSource (e) {\n this.value = e\n}\n\nErrorSource.prototype.run = function (sink, scheduler) {\n return scheduler.asap(new PropagateTask(runError, this.value, sink))\n}\n\nfunction runError (t, e, sink) {\n sink.error(t, e)\n}\n\nfunction RecoverWith (f, source) {\n this.f = f\n this.source = source\n}\n\nRecoverWith.prototype.run = function (sink, scheduler) {\n return new RecoverWithSink(this.f, this.source, sink, scheduler)\n}\n\nfunction RecoverWithSink (f, source, sink, scheduler) {\n this.f = f\n this.sink = new SafeSink(sink)\n this.scheduler = scheduler\n this.disposable = source.run(this, scheduler)\n}\n\nRecoverWithSink.prototype.event = function (t, x) {\n tryEvent.tryEvent(t, x, this.sink)\n}\n\nRecoverWithSink.prototype.end = function (t, x) {\n tryEvent.tryEnd(t, x, this.sink)\n}\n\nRecoverWithSink.prototype.error = function (t, e) {\n var nextSink = this.sink.disable()\n\n dispose.tryDispose(t, this.disposable, this.sink)\n this._startNext(t, e, nextSink)\n}\n\nRecoverWithSink.prototype._startNext = function (t, x, sink) {\n try {\n this.disposable = this._continue(this.f, x, sink)\n } catch (e) {\n sink.error(t, e)\n }\n}\n\nRecoverWithSink.prototype._continue = function (f, x, sink) {\n var stream = f(x)\n return stream.source.run(sink, this.scheduler)\n}\n\nRecoverWithSink.prototype.dispose = function () {\n return this.disposable.dispose()\n}\n","import { append, remove, findIndex } from '@most/prelude';\n\nvar MulticastDisposable = function MulticastDisposable (source, sink) {\n this.source = source\n this.sink = sink\n this.disposed = false\n};\n\nMulticastDisposable.prototype.dispose = function dispose () {\n if (this.disposed) {\n return\n }\n this.disposed = true\n var remaining = this.source.remove(this.sink)\n return remaining === 0 && this.source._dispose()\n};\n\nfunction tryEvent (t, x, sink) {\n try {\n sink.event(t, x)\n } catch (e) {\n sink.error(t, e)\n }\n}\n\nfunction tryEnd (t, x, sink) {\n try {\n sink.end(t, x)\n } catch (e) {\n sink.error(t, e)\n }\n}\n\nvar dispose = function (disposable) { return disposable.dispose(); }\n\nvar emptyDisposable = {\n dispose: function dispose$1 () {}\n}\n\nvar MulticastSource = function MulticastSource (source) {\n this.source = source\n this.sinks = []\n this._disposable = emptyDisposable\n};\n\nMulticastSource.prototype.run = function run (sink, scheduler) {\n var n = this.add(sink)\n if (n === 1) {\n this._disposable = this.source.run(this, scheduler)\n }\n return new MulticastDisposable(this, sink)\n};\n\nMulticastSource.prototype._dispose = function _dispose () {\n var disposable = this._disposable\n this._disposable = emptyDisposable\n return Promise.resolve(disposable).then(dispose)\n};\n\nMulticastSource.prototype.add = function add (sink) {\n this.sinks = append(sink, this.sinks)\n return this.sinks.length\n};\n\nMulticastSource.prototype.remove = function remove$1 (sink) {\n var i = findIndex(sink, this.sinks)\n // istanbul ignore next\n if (i >= 0) {\n this.sinks = remove(i, this.sinks)\n }\n\n return this.sinks.length\n};\n\nMulticastSource.prototype.event = function event (time, value) {\n var s = this.sinks\n if (s.length === 1) {\n return s[0].event(time, value)\n }\n for (var i = 0; i < s.length; ++i) {\n tryEvent(time, value, s[i])\n }\n};\n\nMulticastSource.prototype.end = function end (time, value) {\n var s = this.sinks\n for (var i = 0; i < s.length; ++i) {\n tryEnd(time, value, s[i])\n }\n};\n\nMulticastSource.prototype.error = function error (time, err) {\n var s = this.sinks\n for (var i = 0; i < s.length; ++i) {\n s[i].error(time, err)\n }\n};\n\nfunction multicast (stream) {\n var source = stream.source\n return source instanceof MulticastSource\n ? stream\n : new stream.constructor(new MulticastSource(source))\n}\n\nexport { MulticastSource };export default multicast;\n//# sourceMappingURL=multicast.es.js.map\n","/** @license MIT License (c) copyright 2010-2016 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\nimport Stream from './Stream'\nimport * as base from '@most/prelude'\nimport { of, empty, never } from './source/core'\nimport { from } from './source/from'\nimport { periodic } from './source/periodic'\nimport symbolObservable from 'symbol-observable'\n\n/**\n * Core stream type\n * @type {Stream}\n */\nexport { Stream }\n\n// Add of and empty to constructor for fantasy-land compat\nStream.of = of\nStream.empty = empty\n// Add from to constructor for ES Observable compat\nStream.from = from\nexport { of, of as just, empty, never, from, periodic }\n\n// -----------------------------------------------------------------------\n// Draft ES Observable proposal interop\n// https://github.com/zenparsing/es-observable\n\nimport { subscribe } from './observable/subscribe'\n\nStream.prototype.subscribe = function (subscriber) {\n return subscribe(subscriber, this)\n}\n\nStream.prototype[symbolObservable] = function () {\n return this\n}\n\n// -----------------------------------------------------------------------\n// Fluent adapter\n\nimport { thru } from './combinator/thru'\n\n/**\n * Adapt a functional stream transform to fluent style.\n * It applies f to the this stream object\n * @param {function(s: Stream): Stream} f function that\n * receives the stream itself and must return a new stream\n * @return {Stream}\n */\nStream.prototype.thru = function (f) {\n return thru(f, this)\n}\n\n// -----------------------------------------------------------------------\n// Adapting other sources\n\n/**\n * Create a stream of events from the supplied EventTarget or EventEmitter\n * @param {String} event event name\n * @param {EventTarget|EventEmitter} source EventTarget or EventEmitter. The source\n * must support either addEventListener/removeEventListener (w3c EventTarget:\n * http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventTarget),\n * or addListener/removeListener (node EventEmitter: http://nodejs.org/api/events.html)\n * @returns {Stream} stream of events of the specified type from the source\n */\nexport { fromEvent } from './source/fromEvent'\n\n// -----------------------------------------------------------------------\n// Observing\n\nimport { observe, drain } from './combinator/observe'\n\nexport { observe, observe as forEach, drain }\n\n/**\n * Process all the events in the stream\n * @returns {Promise} promise that fulfills when the stream ends, or rejects\n * if the stream fails with an unhandled error.\n */\nStream.prototype.observe = Stream.prototype.forEach = function (f) {\n return observe(f, this)\n}\n\n/**\n * Consume all events in the stream, without providing a function to process each.\n * This causes a stream to become active and begin emitting events, and is useful\n * in cases where all processing has been setup upstream via other combinators, and\n * there is no need to process the terminal events.\n * @returns {Promise} promise that fulfills when the stream ends, or rejects\n * if the stream fails with an unhandled error.\n */\nStream.prototype.drain = function () {\n return drain(this)\n}\n\n// -------------------------------------------------------\n\nimport { loop } from './combinator/loop'\n\nexport { loop }\n\n/**\n * Generalized feedback loop. Call a stepper function for each event. The stepper\n * will be called with 2 params: the current seed and the an event value. It must\n * return a new { seed, value } pair. The `seed` will be fed back into the next\n * invocation of stepper, and the `value` will be propagated as the event value.\n * @param {function(seed:*, value:*):{seed:*, value:*}} stepper loop step function\n * @param {*} seed initial seed value passed to first stepper call\n * @returns {Stream} new stream whose values are the `value` field of the objects\n * returned by the stepper\n */\nStream.prototype.loop = function (stepper, seed) {\n return loop(stepper, seed, this)\n}\n\n// -------------------------------------------------------\n\nimport { scan, reduce } from './combinator/accumulate'\n\nexport { scan, reduce }\n\n/**\n * Create a stream containing successive reduce results of applying f to\n * the previous reduce result and the current stream item.\n * @param {function(result:*, x:*):*} f reducer function\n * @param {*} initial initial value\n * @returns {Stream} new stream containing successive reduce results\n */\nStream.prototype.scan = function (f, initial) {\n return scan(f, initial, this)\n}\n\n/**\n * Reduce the stream to produce a single result. Note that reducing an infinite\n * stream will return a Promise that never fulfills, but that may reject if an error\n * occurs.\n * @param {function(result:*, x:*):*} f reducer function\n * @param {*} initial optional initial value\n * @returns {Promise} promise for the file result of the reduce\n */\nStream.prototype.reduce = function (f, initial) {\n return reduce(f, initial, this)\n}\n\n// -----------------------------------------------------------------------\n// Building and extending\n\nexport { unfold } from './source/unfold'\nexport { iterate } from './source/iterate'\nexport { generate } from './source/generate'\nimport { concat, cons as startWith } from './combinator/build'\n\nexport { concat, startWith }\n\n/**\n * @param {Stream} tail\n * @returns {Stream} new stream containing all items in this followed by\n * all items in tail\n */\nStream.prototype.concat = function (tail) {\n return concat(this, tail)\n}\n\n/**\n * @param {*} x value to prepend\n * @returns {Stream} a new stream with x prepended\n */\nStream.prototype.startWith = function (x) {\n return startWith(x, this)\n}\n\n// -----------------------------------------------------------------------\n// Transforming\n\nimport { map, constant, tap } from './combinator/transform'\nimport { ap } from './combinator/applicative'\n\nexport { map, constant, tap, ap }\n\n/**\n * Transform each value in the stream by applying f to each\n * @param {function(*):*} f mapping function\n * @returns {Stream} stream containing items transformed by f\n */\nStream.prototype.map = function (f) {\n return map(f, this)\n}\n\n/**\n * Assume this stream contains functions, and apply each function to each item\n * in the provided stream. This generates, in effect, a cross product.\n * @param {Stream} xs stream of items to which\n * @returns {Stream} stream containing the cross product of items\n */\nStream.prototype.ap = function (xs) {\n return ap(this, xs)\n}\n\n/**\n * Replace each value in the stream with x\n * @param {*} x\n * @returns {Stream} stream containing items replaced with x\n */\nStream.prototype.constant = function (x) {\n return constant(x, this)\n}\n\n/**\n * Perform a side effect for each item in the stream\n * @param {function(x:*):*} f side effect to execute for each item. The\n * return value will be discarded.\n * @returns {Stream} new stream containing the same items as this stream\n */\nStream.prototype.tap = function (f) {\n return tap(f, this)\n}\n\n// -----------------------------------------------------------------------\n// Transducer support\n\nimport { transduce } from './combinator/transduce'\n\nexport { transduce }\n\n/**\n * Transform this stream by passing its events through a transducer.\n * @param {function} transducer transducer function\n * @return {Stream} stream of events transformed by the transducer\n */\nStream.prototype.transduce = function (transducer) {\n return transduce(transducer, this)\n}\n\n// -----------------------------------------------------------------------\n// FlatMapping\n\nimport { flatMap, join } from './combinator/flatMap'\n\n// @deprecated flatMap, use chain instead\nexport { flatMap, flatMap as chain, join }\n\n/**\n * Map each value in the stream to a new stream, and merge it into the\n * returned outer stream. Event arrival times are preserved.\n * @param {function(x:*):Stream} f chaining function, must return a Stream\n * @returns {Stream} new stream containing all events from each stream returned by f\n */\nStream.prototype.chain = function (f) {\n return flatMap(f, this)\n}\n\n// @deprecated use chain instead\nStream.prototype.flatMap = Stream.prototype.chain\n\n /**\n * Monadic join. Flatten a Stream<Stream<X>> to Stream<X> by merging inner\n * streams to the outer. Event arrival times are preserved.\n * @returns {Stream<X>} new stream containing all events of all inner streams\n */\nStream.prototype.join = function () {\n return join(this)\n}\n\nimport { continueWith } from './combinator/continueWith'\n\n// @deprecated flatMapEnd, use continueWith instead\nexport { continueWith, continueWith as flatMapEnd }\n\n/**\n * Map the end event to a new stream, and begin emitting its values.\n * @param {function(x:*):Stream} f function that receives the end event value,\n * and *must* return a new Stream to continue with.\n * @returns {Stream} new stream that emits all events from the original stream,\n * followed by all events from the stream returned by f.\n */\nStream.prototype.continueWith = function (f) {\n return continueWith(f, this)\n}\n\n// @deprecated use continueWith instead\nStream.prototype.flatMapEnd = Stream.prototype.continueWith\n\nimport { concatMap } from './combinator/concatMap'\n\nexport { concatMap }\n\nStream.prototype.concatMap = function (f) {\n return concatMap(f, this)\n}\n\n// -----------------------------------------------------------------------\n// Concurrent merging\n\nimport { mergeConcurrently } from './combinator/mergeConcurrently'\n\nexport { mergeConcurrently }\n\n/**\n * Flatten a Stream<Stream<X>> to Stream<X> by merging inner\n * streams to the outer, limiting the number of inner streams that may\n * be active concurrently.\n * @param {number} concurrency at most this many inner streams will be\n * allowed to be active concurrently.\n * @return {Stream<X>} new stream containing all events of all inner\n * streams, with limited concurrency.\n */\nStream.prototype.mergeConcurrently = function (concurrency) {\n return mergeConcurrently(concurrency, this)\n}\n\n// -----------------------------------------------------------------------\n// Merging\n\nimport { merge, mergeArray } from './combinator/merge'\n\nexport { merge, mergeArray }\n\n/**\n * Merge this stream and all the provided streams\n * @returns {Stream} stream containing items from this stream and s in time\n * order. If two events are simultaneous they will be merged in\n * arbitrary order.\n */\nStream.prototype.merge = function (/* ...streams*/) {\n return mergeArray(base.cons(this, arguments))\n}\n\n// -----------------------------------------------------------------------\n// Combining\n\nimport { combine, combineArray } from './combinator/combine'\n\nexport { combine, combineArray }\n\n/**\n * Combine latest events from all input streams\n * @param {function(...events):*} f function to combine most recent events\n * @returns {Stream} stream containing the result of applying f to the most recent\n * event of each input stream, whenever a new event arrives on any stream.\n */\nStream.prototype.combine = function (f /*, ...streams*/) {\n return combineArray(f, base.replace(this, 0, arguments))\n}\n\n// -----------------------------------------------------------------------\n// Sampling\n\nimport { sample, sampleArray, sampleWith } from './combinator/sample'\n\nexport { sample, sampleArray, sampleWith }\n\n/**\n * When an event arrives on sampler, emit the latest event value from stream.\n * @param {Stream} sampler stream of events at whose arrival time\n * signal's latest value will be propagated\n * @returns {Stream} sampled stream of values\n */\nStream.prototype.sampleWith = function (sampler) {\n return sampleWith(sampler, this)\n}\n\n/**\n * When an event arrives on this stream, emit the result of calling f with the latest\n * values of all streams being sampled\n * @param {function(...values):*} f function to apply to each set of sampled values\n * @returns {Stream} stream of sampled and transformed values\n */\nStream.prototype.sample = function (f /* ...streams */) {\n return sampleArray(f, this, base.tail(arguments))\n}\n\n// -----------------------------------------------------------------------\n// Zipping\n\nimport { zip, zipArray } from './combinator/zip'\n\nexport { zip, zipArray }\n\n/**\n * Pair-wise combine items with those in s. Given 2 streams:\n * [1,2,3] zipWith f [4,5,6] -> [f(1,4),f(2,5),f(3,6)]\n * Note: zip causes fast streams to buffer and wait for slow streams.\n * @param {function(a:Stream, b:Stream, ...):*} f function to combine items\n * @returns {Stream} new stream containing pairs\n */\nStream.prototype.zip = function (f /*, ...streams*/) {\n return zipArray(f, base.replace(this, 0, arguments))\n}\n\n// -----------------------------------------------------------------------\n// Switching\n\nimport { switchLatest } from './combinator/switch'\n\n// @deprecated switch, use switchLatest instead\nexport { switchLatest, switchLatest as switch }\n\n/**\n * Given a stream of streams, return a new stream that adopts the behavior\n * of the most recent inner stream.\n * @returns {Stream} switching stream\n */\nStream.prototype.switchLatest = function () {\n return switchLatest(this)\n}\n\n// @deprecated use switchLatest instead\nStream.prototype.switch = Stream.prototype.switchLatest\n\n// -----------------------------------------------------------------------\n// Filtering\n\nimport { filter, skipRepeats, skipRepeatsWith } from './combinator/filter'\n\n// @deprecated distinct, use skipRepeats instead\n// @deprecated distinctBy, use skipRepeatsWith instead\nexport { filter, skipRepeats, skipRepeats as distinct, skipRepeatsWith, skipRepeatsWith as distinctBy }\n\n/**\n * Retain only items matching a predicate\n * stream: -12345678-\n * filter(x => x % 2 === 0, stream): --2-4-6-8-\n * @param {function(x:*):boolean} p filtering predicate called for each item\n * @returns {Stream} stream containing only items for which predicate returns truthy\n */\nStream.prototype.filter = function (p) {\n return filter(p, this)\n}\n\n/**\n * Skip repeated events, using === to compare items\n * stream: -abbcd-\n * distinct(stream): -ab-cd-\n * @returns {Stream} stream with no repeated events\n */\nStream.prototype.skipRepeats = function () {\n return skipRepeats(this)\n}\n\n/**\n * Skip repeated events, using supplied equals function to compare items\n * @param {function(a:*, b:*):boolean} equals function to compare items\n * @returns {Stream} stream with no repeated events\n */\nStream.prototype.skipRepeatsWith = function (equals) {\n return skipRepeatsWith(equals, this)\n}\n\n// -----------------------------------------------------------------------\n// Slicing\n\nimport { take, skip, slice, takeWhile, skipWhile, skipAfter } from './combinator/slice'\n\nexport { take, skip, slice, takeWhile, skipWhile, skipAfter }\n\n/**\n * stream: -abcd-\n * take(2, stream): -ab|\n * @param {Number} n take up to this many events\n * @returns {Stream} stream containing at most the first n items from this stream\n */\nStream.prototype.take = function (n) {\n return take(n, this)\n}\n\n/**\n * stream: -abcd->\n * skip(2, stream): ---cd->\n * @param {Number} n skip this many events\n * @returns {Stream} stream not containing the first n events\n */\nStream.prototype.skip = function (n) {\n return skip(n, this)\n}\n\n/**\n * Slice a stream by event index. Equivalent to, but more efficient than\n * stream.take(end).skip(start);\n * NOTE: Negative start and end are not supported\n * @param {Number} start skip all events before the start index\n * @param {Number} end allow all events from the start index to the end index\n * @returns {Stream} stream containing items where start <= index < end\n */\nStream.prototype.slice = function (start, end) {\n return slice(start, end, this)\n}\n\n/**\n * stream: -123451234->\n * takeWhile(x => x < 5, stream): -1234|\n * @param {function(x:*):boolean} p predicate\n * @returns {Stream} stream containing items up to, but not including, the\n * first item for which p returns falsy.\n */\nStream.prototype.takeWhile = function (p) {\n return takeWhile(p, this)\n}\n\n/**\n * stream: -123451234->\n * skipWhile(x => x < 5, stream): -----51234->\n * @param {function(x:*):boolean} p predicate\n * @returns {Stream} stream containing items following *and including* the\n * first item for which p returns falsy.\n */\nStream.prototype.skipWhile = function (p) {\n return skipWhile(p, this)\n}\n\n/**\n * stream: -123456789->\n * skipAfter(x => x === 5, stream):-12345|\n * @param {function(x:*):boolean} p predicate\n * @returns {Stream} stream containing items up to, *and including*, the\n * first item for which p returns truthy.\n */\nStream.prototype.skipAfter = function (p) {\n return skipAfter(p, this)\n}\n\n// -----------------------------------------------------------------------\n// Time slicing\n\nimport { takeUntil, skipUntil, during } from './combinator/timeslice'\n\n// @deprecated takeUntil, use until instead\n// @deprecated skipUntil, use since instead\nexport { takeUntil, takeUntil as until, skipUntil, skipUntil as since, during }\n\n/**\n * stream: -a-b-c-d-e-f-g->\n * signal: -------x\n * takeUntil(signal, stream): -a-b-c-|\n * @param {Stream} signal retain only events in stream before the first\n * event in signal\n * @returns {Stream} new stream containing only events that occur before\n * the first event in signal.\n */\nStream.prototype.until = function (signal) {\n return takeUntil(signal, this)\n}\n\n// @deprecated use until instead\nStream.prototype.takeUntil = Stream.prototype.until\n\n /**\n * stream: -a-b-c-d-e-f-g->\n * signal: -------x\n * takeUntil(signal, stream): -------d-e-f-g->\n * @param {Stream} signal retain only events in stream at or after the first\n * event in signal\n * @returns {Stream} new stream containing only events that occur after\n * the first event in signal.\n */\nStream.prototype.since = function (signal) {\n return skipUntil(signal, this)\n}\n\n// @deprecated use since instead\nStream.prototype.skipUntil = Stream.prototype.since\n\n /**\n * stream: -a-b-c-d-e-f-g->\n * timeWindow: -----s\n * s: -----t\n * stream.during(timeWindow): -----c-d-e-|\n * @param {Stream<Stream>} timeWindow a stream whose first event (s) represents\n * the window start time. That event (s) is itself a stream whose first event (t)\n * represents the window end time\n * @returns {Stream} new stream containing only events within the provided timespan\n */\nStream.prototype.during = function (timeWindow) {\n return during(timeWindow, this)\n}\n\n// -----------------------------------------------------------------------\n// Delaying\n\nimport { delay } from './combinator/delay'\n\nexport { delay }\n\n/**\n * @param {Number} delayTime milliseconds to delay each item\n * @returns {Stream} new stream containing the same items, but delayed by ms\n */\nStream.prototype.delay = function (delayTime) {\n return delay(delayTime, this)\n}\n\n// -----------------------------------------------------------------------\n// Getting event timestamp\n\nimport { timestamp } from './combinator/timestamp'\nexport { timestamp }\n\n/**\n * Expose event timestamps into the stream. Turns a Stream<X> into\n * Stream<{time:t, value:X}>\n * @returns {Stream<{time:number, value:*}>}\n */\nStream.prototype.timestamp = function () {\n return timestamp(this)\n}\n\n// -----------------------------------------------------------------------\n// Rate limiting\n\nimport { throttle, debounce } from './combinator/limit'\n\nexport { throttle, debounce }\n\n/**\n * Limit the rate of events\n * stream: abcd----abcd----\n * throttle(2, stream): a-c-----a-c-----\n * @param {Number} period time to suppress events\n * @returns {Stream} new stream that skips events for throttle period\n */\nStream.prototype.throttle = function (period) {\n return throttle(period, this)\n}\n\n/**\n * Wait for a burst of events to subside and emit only the last event in the burst\n * stream: abcd----abcd----\n * debounce(2, stream): -----d-------d--\n * @param {Number} period events occuring more frequently than this\n * on the provided scheduler will be suppressed\n * @returns {Stream} new debounced stream\n */\nStream.prototype.debounce = function (period) {\n return debounce(period, this)\n}\n\n// -----------------------------------------------------------------------\n// Awaiting Promises\n\nimport { fromPromise, awaitPromises } from './combinator/promises'\n\n// @deprecated await, use awaitPromises instead\nexport { fromPromise, awaitPromises, awaitPromises as await }\n\n/**\n * Await promises, turning a Stream<Promise<X>> into Stream<X>. Preserves\n * event order, but timeshifts events based on promise resolution time.\n * @returns {Stream<X>} stream containing non-promise values\n */\nStream.prototype.awaitPromises = function () {\n return awaitPromises(this)\n}\n\n// @deprecated use awaitPromises instead\nStream.prototype.await = Stream.prototype.awaitPromises\n\n// -----------------------------------------------------------------------\n// Error handling\n\nimport { recoverWith, flatMapError, throwError } from './combinator/errors'\n\n// @deprecated flatMapError, use recoverWith instead\nexport { recoverWith, flatMapError, throwError }\n\n/**\n * If this stream encounters an error, recover and continue with items from stream\n * returned by f.\n * stream: -a-b-c-X-\n * f(X): d-e-f-g-\n * flatMapError(f, stream): -a-b-c-d-e-f-g-\n * @param {function(error:*):Stream} f function which returns a new stream\n * @returns {Stream} new stream which will recover from an error by calling f\n */\nStream.prototype.recoverWith = function (f) {\n return flatMapError(f, this)\n}\n\n// @deprecated use recoverWith instead\nStream.prototype.flatMapError = Stream.prototype.recoverWith\n\n// -----------------------------------------------------------------------\n// Multicasting\n\nimport multicast from '@most/multicast'\n\nexport { multicast }\n\n/**\n * Transform the stream into multicast stream. That means that many subscribers\n * to the stream will not cause multiple invocations of the internal machinery.\n * @returns {Stream} new stream which will multicast events to all observers.\n */\nStream.prototype.multicast = function () {\n return multicast(this)\n}\n\n// export the instance of the defaultScheduler for third-party libraries\nimport defaultScheduler from './scheduler/defaultScheduler'\n\nexport { defaultScheduler }\n\n// export an implementation of Task used internally for third-party libraries\nimport PropagateTask from './scheduler/PropagateTask'\n\nexport { PropagateTask }\n"],"names":["map","base.map","base.id","empty","fatal","dispose.create","dispose.empty","runProducer","ponyfill","symbolObservable","base.findIndex","this","base.removeAll","dispose.settable","fatalError","tryEvent.tryEvent","arguments","base.compose","run","dispose.all","reduce","runSource","base.tail","emit","error","dispose.once","dispose.tryDispose","cons","streamOf","Sink","tail","core.empty","transform.map","identity","copy","base.copy","base.reduce","base.drop","getSource","just","throwError","tryEvent.tryEnd","tryEvent","tryEnd","startWith","base.cons","base.replace"],"mappings":"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"}
\No newline at end of file