{"version":3,"file":"index.cjs","sources":["../es/protocol.js","../es/common.js","../es/combination.js","../es/producer.js","../es/mathematical.js","../es/filtering.js","../es/transformation.js","../es/utils.js"],"sourcesContent":["// Shared devtools protocol types for fastrx.\n// Consumed by the library (emit side) and the devtools panel (decode side).\n/**\n * Bounded serialization of a runtime value for the devtools panel.\n * Returns undefined for null/undefined so the Envelope field can be omitted.\n * Objects attempted via JSON.stringify, fallback to String(); truncated to `max`.\n */\nexport function summarize(v, max = 256) {\n    if (v === undefined || v === null)\n        return undefined;\n    let s;\n    try {\n        if (typeof v === 'object')\n            s = JSON.stringify(v);\n        else\n            s = String(v);\n    }\n    catch {\n        try {\n            s = String(v);\n        }\n        catch {\n            return 'unserializable';\n        }\n    }\n    if (s.length > max)\n        return s.slice(0, Math.max(0, max - 3)) + '...';\n    return s;\n}\n//# sourceMappingURL=protocol.js.map","import { summarize } from './protocol';\nexport function nothing(...args) { }\nexport const call = (f) => f();\nexport const identity = (x) => x;\nexport function dispose() {\n    this.dispose();\n}\n// Compile-time opt-out: defining `__FASTRX_NO_DEVTOOLS__` (e.g. via a bundler\n// define) removes all devtools instrumentation via dead-code elimination.\n// @ts-ignore\nconst DEVTOOLS_ENABLED = typeof __FASTRX_NO_DEVTOOLS__ === 'undefined';\nlet obids = 1;\n// function pp(this: Observable<unknown>, ...args: [...Operator<unknown>[], Operator<unknown>]) {\n//   return pipe(this, ...args);\n// }\nexport class Inspect extends Function {\n    id;\n    name;\n    args;\n    streamId;\n    source;\n    _label;\n    toString() {\n        return `${this.name}(${this.args.length ? [...this.args].join(', ') : \"\"})`;\n    }\n    /** Attach a stable display label for the devtools panel. Does not change the node id. */\n    label(name) {\n        this._label = name;\n        return this;\n    }\n    // pipe(...args: [...Operator<unknown>[], Operator<unknown>]): Observable<unknown> {\n    //   return pipe(this as unknown as Observable<T>, ...args);\n    // }\n    subscribe(sink) {\n        const ns = new NodeSink(sink, this, this.streamId++);\n        Events.subscribe({ id: this.id }, { nodeId: ns.sourceId, streamId: ns.id });\n        this(ns);\n        return ns;\n    }\n}\nexport class LastSink {\n    sourceId;\n    defers = new Set();\n    disposed = false;\n    next(data) {\n    }\n    complete() {\n        this.dispose();\n    }\n    error(err) {\n        this.dispose();\n    }\n    get bindDispose() {\n        return () => this.dispose();\n    }\n    dispose() {\n        this.disposed = true;\n        this.complete = nothing;\n        this.error = nothing;\n        this.next = nothing;\n        this.dispose = nothing;\n        this.subscribe = nothing;\n        this.doDefer();\n    }\n    subscribe(source) {\n        if (source instanceof Inspect)\n            source.subscribe(this);\n        else\n            source(this);\n        return this;\n    }\n    get bindSubscribe() {\n        return (source) => this.subscribe(source);\n    }\n    doDefer() {\n        this.defers.forEach(call);\n        this.defers.clear();\n    }\n    defer(df) {\n        this.defers.add(df);\n    }\n    removeDefer(df) {\n        this.defers.delete(df);\n    }\n    reset() {\n        this.disposed = false;\n        //@ts-ignore\n        delete this.complete;\n        //@ts-ignore\n        delete this.next;\n        //@ts-ignore\n        delete this.dispose;\n        //@ts-ignore\n        delete this.next;\n        //@ts-ignore\n        delete this.subscribe;\n    }\n    resetNext() {\n        //@ts-ignore\n        delete this.next;\n    }\n    resetComplete() {\n        //@ts-ignore\n        delete this.complete;\n    }\n    resetError() {\n        //@ts-ignore\n        delete this.error;\n    }\n}\nexport class Sink extends LastSink {\n    sink;\n    constructor(sink) {\n        super();\n        this.sink = sink;\n        sink.defer(this.bindDispose);\n    }\n    next(data) {\n        this.sink.next(data);\n    }\n    complete() {\n        this.sink.complete();\n    }\n    error(err) {\n        this.sink.error(err);\n    }\n}\nexport class Subscribe extends LastSink {\n    _next;\n    _error;\n    _complete;\n    then = nothing;\n    constructor(source, _next = nothing, _error = nothing, _complete = nothing) {\n        super();\n        this._next = _next;\n        this._error = _error;\n        this._complete = _complete;\n        if (source instanceof Inspect) {\n            const node = { toString: () => 'subscribe', name: 'subscribe', id: '', source: source };\n            this.defer(() => {\n                Events.defer(node, 0);\n            });\n            Events.create(node);\n            Events.pipe(node);\n            this.sourceId = node.id;\n            this.subscribe(source);\n            Events.subscribe({ id: node.id });\n            if (_next == nothing) {\n                this._next = data => Events.next(node, 0, data);\n            }\n            else {\n                this.next = data => {\n                    Events.next(node, 0, data);\n                    _next(data);\n                };\n            }\n            if (_complete == nothing) {\n                this._complete = () => Events.complete(node, 0);\n            }\n            else {\n                this.complete = () => {\n                    this.dispose();\n                    Events.complete(node, 0);\n                    _complete();\n                };\n            }\n            if (_error == nothing) {\n                this._error = err => Events.error(node, 0, err);\n            }\n            else {\n                this.error = err => {\n                    this.dispose();\n                    Events.error(node, 0, err);\n                    _error(err);\n                };\n            }\n        }\n        else {\n            this.subscribe(source);\n        }\n    }\n    next(data) {\n        this._next(data);\n    }\n    complete() {\n        this.dispose();\n        this._complete();\n    }\n    error(err) {\n        this.dispose();\n        this._error(err);\n    }\n}\nexport function pipe(first, ...cbs) {\n    return cbs.reduce((aac, c) => c(aac), first);\n}\nexport function create(ob, name, args) {\n    if (DEVTOOLS_ENABLED) {\n        const result = Object.defineProperties(Object.setPrototypeOf(ob, Inspect.prototype), {\n            streamId: { value: 0, writable: true, configurable: true },\n            name: { value: name, writable: true, configurable: true },\n            args: { value: args, writable: true, configurable: true },\n            id: { value: '', writable: true, configurable: true },\n        });\n        Events.create(result);\n        for (let i = 0; i < args.length; i++) {\n            const arg = args[i];\n            if (typeof arg === 'function') {\n                if (arg instanceof Inspect) {\n                    Events.addSource(result, arg);\n                }\n                else {\n                }\n            }\n        }\n        return result;\n    }\n    return ob;\n}\nexport function deliver(c, name) {\n    return function (...args) {\n        return source => {\n            if (source instanceof Inspect) {\n                const ob = create((observer) => {\n                    const deliverSink = new c(observer, ...args);\n                    deliverSink.sourceId = ob.id;\n                    deliverSink.subscribe(source);\n                }, name, arguments);\n                ob.source = source;\n                Events.pipe(ob);\n                return ob;\n            }\n            else {\n                return observer => source(new c(observer, ...args));\n            }\n        };\n    };\n}\n// ── Devtools transport ─────────────────────────────────────────────────────\n// The library connects to the devtools extension via externally_connectable.\n// When the devtools panel opens, devtools.js sets window.__fastrxExtId to the\n// extension id (via inspectedWindow.eval). The library detects this (immediately\n// or via the property setter) and opens a long-lived port with\n// chrome.runtime.connect(extId, {name:'fastrx-backend'}). Envelopes are posted\n// on the port. When the panel closes, devtools.js clears the id and the library\n// disconnects, resuming ring-buffer accumulation.\n//\n// The port is bidirectional: the panel can send PanelCommands (inspect /\n// breakpoint) and the library replies over the same port.\nlet sequence = 0;\nlet currentCause;\nlet port;\n/** Playground / tests subscribe here without replacing the Chrome DevTools port. */\nlet localEmit;\nconst ring = [];\nconst RING_MAX = 500;\n// Reverse-channel state.\nconst breakpoints = new Set();\nconst latestByNode = new Map();\nconst streamCountByNode = new Map();\nfunction dispatch(env) {\n    if (localEmit) {\n        try {\n            localEmit(env);\n        }\n        catch { /* noop */ }\n    }\n    if (port) {\n        try {\n            port.postMessage(env);\n            return;\n        }\n        catch {\n            port = undefined;\n        }\n    }\n    // Buffer for Chrome DevTools only when it is not connected. A local\n    // subscriber (playground) must not fill the ring or later tests / panel\n    // attaches would see duplicate leftovers.\n    if (localEmit)\n        return;\n    ring.push(env);\n    if (ring.length > RING_MAX)\n        ring.shift();\n}\n/** Handle a panel command; returns a reply to post back (or undefined). */\nexport function handlePanelCommand(msg) {\n    if (!msg || typeof msg.type !== 'string')\n        return undefined;\n    if (msg.type === 'breakpoint') {\n        if (msg.on)\n            breakpoints.add(String(msg.nodeId));\n        else\n            breakpoints.delete(String(msg.nodeId));\n        return { type: 'breakpoint-ack', nodeId: String(msg.nodeId), on: !!msg.on, ts: Date.now() };\n    }\n    if (msg.type === 'inspect') {\n        const nodeId = String(msg.nodeId);\n        return {\n            type: 'inspect-result',\n            nodeId,\n            latest: latestByNode.get(nodeId),\n            subscriptionCount: streamCountByNode.get(nodeId) ?? 0,\n            ts: Date.now(),\n        };\n    }\n    return undefined;\n}\nfunction openPort(extId) {\n    if (port)\n        return;\n    const rt = globalThis.chrome?.runtime;\n    if (!rt?.connect)\n        return;\n    try {\n        const p = rt.connect(extId, { name: 'fastrx-backend' });\n        p.onDisconnect.addListener(() => { port = undefined; });\n        p.onMessage.addListener((msg) => {\n            const reply = handlePanelCommand(msg);\n            if (reply && port) {\n                try {\n                    port.postMessage(reply);\n                }\n                catch { /* noop */ }\n            }\n        });\n        port = p;\n        while (ring.length)\n            p.postMessage(ring.shift());\n    }\n    catch {\n        port = undefined;\n    }\n}\nfunction closePort() {\n    if (port) {\n        try {\n            port.disconnect();\n        }\n        catch { }\n        port = undefined;\n    }\n}\nfunction tryOpen() {\n    if (port)\n        return;\n    const extId = globalThis.__fastrxExtId;\n    if (extId)\n        openPort(extId);\n}\nif (typeof window !== 'undefined') {\n    const w = window;\n    const currentId = w.__fastrxExtId;\n    let storedId = currentId;\n    try {\n        Object.defineProperty(w, '__fastrxExtId', {\n            configurable: true,\n            get() { return storedId; },\n            set(id) {\n                storedId = id;\n                if (id)\n                    tryOpen();\n                else\n                    closePort();\n            },\n        });\n    }\n    catch { /* property non-configurable; fall back to direct check in tryOpen */ }\n    if (storedId)\n        tryOpen();\n}\nexport function __testInstallBackend(emit, onReply) {\n    const sendCommand = (msg) => {\n        const reply = handlePanelCommand(msg);\n        if (reply && onReply)\n            onReply(reply);\n    };\n    localEmit = emit;\n    while (ring.length)\n        emit(ring.shift());\n    const disconnect = () => {\n        if (localEmit === emit)\n            localEmit = undefined;\n    };\n    return onReply\n        ? { disconnect, sendCommand }\n        : disconnect;\n}\n// ────────────────────────────────────────────────────────────────────────────\nclass NodeSink extends Sink {\n    source;\n    id;\n    constructor(sink, source, id) {\n        super(sink);\n        this.source = source;\n        this.id = id;\n        this.sourceId = sink.sourceId;\n        this.defer(() => {\n            Events.defer(this.source, this.id);\n        });\n    }\n    next(data) {\n        const seq = Events.next(this.source, this.id, data);\n        const prev = currentCause;\n        currentCause = { nodeId: this.source.id, sequence: seq };\n        try {\n            this.sink.next(data);\n        }\n        finally {\n            currentCause = prev;\n        }\n    }\n    complete() {\n        const seq = Events.complete(this.source, this.id);\n        const prev = currentCause;\n        currentCause = { nodeId: this.source.id, sequence: seq };\n        try {\n            this.sink.complete();\n        }\n        finally {\n            currentCause = prev;\n        }\n    }\n    error(err) {\n        const seq = Events.error(this.source, this.id, err);\n        const prev = currentCause;\n        currentCause = { nodeId: this.source.id, sequence: seq };\n        try {\n            this.sink.error(err);\n        }\n        finally {\n            currentCause = prev;\n        }\n    }\n}\nexport const Events = {\n    addSource(who, source) {\n        dispatch({\n            version: 1, sequence: ++sequence, nodeId: who.id, nodeLabel: who._label,\n            kind: 'addSource', streamId: 0, ts: Date.now(), data: source.id,\n        });\n    },\n    next(who, streamId, data, cause = currentCause) {\n        const seq = ++sequence;\n        latestByNode.set(who.id, summarize(data) ?? '');\n        dispatch({\n            version: 1, sequence: seq, nodeId: who.id, nodeLabel: who._label,\n            kind: 'next', streamId, ts: Date.now(), cause, data: summarize(data),\n            breakpoint: breakpoints.has(who.id) || undefined,\n        });\n        return seq;\n    },\n    subscribe(id, sink) {\n        const active = sink !== undefined;\n        streamCountByNode.set(id.id, (streamCountByNode.get(id.id) ?? 0) + (active ? 1 : 0));\n        dispatch({\n            version: 1, sequence: ++sequence, nodeId: id.id, kind: 'subscribe',\n            streamId: sink ? sink.streamId : 0, ts: Date.now(),\n            data: sink ? sink.nodeId : undefined,\n        });\n    },\n    complete(who, streamId, cause = currentCause) {\n        const seq = ++sequence;\n        dispatch({\n            version: 1, sequence: seq, nodeId: who.id, nodeLabel: who._label,\n            kind: 'complete', streamId, ts: Date.now(), cause,\n            breakpoint: breakpoints.has(who.id) || undefined,\n        });\n        return seq;\n    },\n    error(who, streamId, err, cause = currentCause) {\n        const seq = ++sequence;\n        dispatch({\n            version: 1, sequence: seq, nodeId: who.id, nodeLabel: who._label,\n            kind: 'error', streamId, ts: Date.now(), cause, err: summarize(err),\n            breakpoint: breakpoints.has(who.id) || undefined,\n        });\n        return seq;\n    },\n    defer(who, streamId) {\n        dispatch({\n            version: 1, sequence: ++sequence, nodeId: who.id, nodeLabel: who._label,\n            kind: 'defer', streamId, ts: Date.now(),\n        });\n    },\n    pipe(who) {\n        dispatch({\n            version: 1, sequence: ++sequence, nodeId: who.id, nodeLabel: who._label,\n            kind: 'pipe', streamId: 0, ts: Date.now(),\n            data: who.source ? who.source.id : undefined,\n        });\n    },\n    create(who) {\n        if (!who.id)\n            who.id = `${who.name}#${obids++}`;\n        dispatch({\n            version: 1, sequence: ++sequence, nodeId: who.id, nodeLabel: who._label,\n            kind: 'create', streamId: 0, ts: Date.now(),\n        });\n    },\n};\nexport class TimeoutError extends Error {\n    timeout;\n    constructor(timeout) {\n        super(`timeout after ${timeout}ms`);\n        this.timeout = timeout;\n    }\n}\n//# sourceMappingURL=common.js.map","import { Sink, LastSink, deliver, nothing, create, Inspect, Events } from \"./common\";\nclass Share extends LastSink {\n    source;\n    sinks = new Set();\n    constructor(source) {\n        super();\n        this.source = source;\n    }\n    add(sink) {\n        sink.defer(() => this.remove(sink));\n        if (this.sinks.add(sink).size === 1) {\n            this.reset();\n            this.subscribe(this.source);\n        }\n    }\n    remove(sink) {\n        this.sinks.delete(sink);\n        if (this.sinks.size === 0) {\n            this.dispose();\n        }\n    }\n    next(data) {\n        this.sinks.forEach((s) => s.next(data));\n    }\n    complete() {\n        this.sinks.forEach((s) => s.complete());\n        this.sinks.clear();\n    }\n    error(err) {\n        this.sinks.forEach((s) => s.error(err));\n        this.sinks.clear();\n    }\n}\nexport function share() {\n    return (source) => {\n        const share = new Share(source);\n        if (source instanceof Inspect) {\n            const ob = create((observer) => {\n                share.add(observer);\n            }, \"share\", arguments);\n            share.sourceId = ob.id;\n            ob.source = source;\n            Events.pipe(ob);\n            return ob;\n        }\n        return create(share.add.bind(share), \"share\", arguments);\n    };\n}\n;\nexport function merge(...sources) {\n    return create((sink) => {\n        const merge = new Sink(sink);\n        let nLife = sources.length;\n        merge.complete = () => {\n            if (--nLife === 0) {\n                sink.complete();\n            }\n        };\n        sources.forEach(merge.bindSubscribe);\n    }, \"merge\", arguments);\n}\nexport function race(...sources) {\n    return create((sink) => {\n        const sinks = new Map();\n        sources.forEach((source) => {\n            const r = new Sink(sink);\n            sinks.set(source, r);\n            r.complete = () => {\n                sinks.delete(source);\n                if (sinks.size === 0) { //特殊情况：所有流都没有数据\n                    sink.complete();\n                }\n                else {\n                    r.dispose();\n                }\n            };\n            r.next = (data) => {\n                sinks.delete(source); //先排除自己，防止自己调用dispose\n                sinks.forEach((s) => s.dispose()); //其他所有流全部取消订阅\n                r.resetNext();\n                r.resetComplete();\n                r.next(data);\n            };\n        });\n        sources.forEach((source) => sinks.get(source).subscribe(source));\n    }, \"race\", arguments);\n}\nexport function concat(...sources) {\n    return create(sink => {\n        let pos = 0;\n        const len = sources.length;\n        const s = new Sink(sink);\n        s.complete = () => {\n            if (pos < len && !s.disposed) {\n                s.doDefer();\n                s.subscribe(sources[pos++]);\n            }\n            else\n                sink.complete();\n        };\n        s.complete();\n    }, \"concat\", arguments);\n}\nexport function shareReplay(bufferSize) {\n    return (source) => {\n        const share = new Share(source);\n        const buffer = [];\n        share.next = function (data) {\n            buffer.push(data);\n            if (buffer.length > bufferSize) {\n                buffer.shift();\n            }\n            this.sinks.forEach((s) => s.next(data));\n        };\n        return create(sink => {\n            sink.defer(() => share.remove(sink));\n            buffer.forEach((cache) => sink.next(cache));\n            share.add(sink);\n        }, \"shareReplay\", arguments);\n    };\n}\nexport function iif(condition, trueS, falseS) {\n    return create((sink) => condition() ? trueS(sink) : falseS(sink), \"iif\", arguments);\n}\nexport function combineLatest(...sources) {\n    return create((sink) => {\n        const nTotal = sources.length;\n        let nRun = nTotal; //剩余未发出事件的事件流数量\n        let nLife = nTotal; //剩余未完成的事件流数量\n        const array = new Array(nTotal);\n        const onComplete = () => {\n            if (--nLife === 0)\n                sink.complete();\n        };\n        const s = (source, i) => {\n            const ss = new Sink(sink);\n            ss.next = data => {\n                nRun--;\n                ss.next = data => {\n                    array[i] = data;\n                    if (nRun === 0)\n                        sink.next(array);\n                };\n                ss.next(data);\n            };\n            ss.complete = onComplete;\n            ss.subscribe(source);\n        };\n        sources.forEach(s);\n    }, \"combineLatest\", arguments);\n}\nexport function zip(...sources) {\n    return create((sink) => {\n        const nTotal = sources.length;\n        let nLife = nTotal; //剩余未完成的事件流数量\n        const array = new Array(nTotal);\n        const onComplete = () => {\n            if (--nLife === 0)\n                sink.complete();\n        };\n        const s = (source, i) => {\n            const ss = new Sink(sink);\n            const buffer = [];\n            array[i] = buffer;\n            ss.next = data => {\n                buffer.push(data);\n                if (array.every(x => x.length)) {\n                    sink.next(array.map(x => x.shift()));\n                }\n            };\n            ss.complete = onComplete;\n            ss.subscribe(source);\n        };\n        sources.forEach(s);\n    }, \"zip\", arguments);\n}\nexport function startWith(...xs) {\n    return (inputSource) => create((sink, pos = 0, l = xs.length) => {\n        while (pos < l && !sink.disposed) {\n            sink.next(xs[pos++]);\n        }\n        sink.disposed || sink.subscribe(inputSource);\n    }, \"startWith\", arguments);\n}\nclass WithLatestFrom extends Sink {\n    buffer;\n    constructor(sink, ...sources) {\n        super(sink);\n        const s = new Sink(this.sink);\n        s.next = (data) => (this.buffer = data);\n        s.complete = nothing;\n        s.subscribe(combineLatest(...sources));\n    }\n    next(data) {\n        if (this.buffer) {\n            this.sink.next([data, ...this.buffer]);\n        }\n    }\n}\nexport const withLatestFrom = deliver(WithLatestFrom, \"withLatestFrom\");\nclass BufferCount extends Sink {\n    bufferSize;\n    startBufferEvery;\n    buffer = [];\n    buffers;\n    count = 0;\n    constructor(sink, bufferSize, startBufferEvery) {\n        super(sink);\n        this.bufferSize = bufferSize;\n        this.startBufferEvery = startBufferEvery;\n        if (this.startBufferEvery) {\n            this.buffers = [[]];\n        }\n    }\n    next(data) {\n        if (this.startBufferEvery) {\n            if (this.count++ === this.startBufferEvery) {\n                this.buffers.push([]);\n                this.count = 1;\n            }\n            this.buffers.forEach((buffer) => {\n                buffer.push(data);\n            });\n            if (this.buffers[0].length === this.bufferSize) {\n                this.sink.next(this.buffers.shift());\n            }\n        }\n        else {\n            this.buffer.push(data);\n            if (this.buffer.length === this.bufferSize) {\n                this.sink.next(this.buffer);\n                this.buffer = [];\n            }\n        }\n    }\n    complete() {\n        if (this.buffer.length) {\n            this.sink.next(this.buffer);\n        }\n        else if (this.buffers.length) {\n            this.buffers.forEach((buffer) => this.sink.next(buffer));\n        }\n        super.complete();\n    }\n}\nexport const bufferCount = deliver(BufferCount, \"bufferCount\");\n// export function operator<T, R, ARG extends unknown[]>(f: (...args: [ISink<R>, ...ARG]) => ISink<T>) {\n//   return (...args: ARG): (Operator<T, R>) => source => sink => f(sink, ...args).subscribe(source);\n// }\nclass Buffer extends Sink {\n    buffer = [];\n    constructor(sink, closingNotifier) {\n        super(sink);\n        const s = new Sink(sink);\n        s.next = (_data) => {\n            sink.next(this.buffer);\n            this.buffer = [];\n        };\n        s.complete = nothing;\n        s.subscribe(closingNotifier);\n    }\n    next(data) {\n        this.buffer.push(data);\n    }\n    complete() {\n        if (this.buffer.length) {\n            this.sink.next(this.buffer);\n        }\n        super.complete();\n    }\n}\nexport const buffer = deliver(Buffer, \"buffer\");\n//# sourceMappingURL=combination.js.map","import { share } from \"./combination\";\nimport { nothing, create } from \"./common\";\nexport function subject(source) {\n    const args = arguments;\n    const observable = share()(create((sink) => {\n        observable.next = (data) => sink.next(data);\n        observable.complete = () => sink.complete();\n        observable.error = (err) => sink.error(err);\n        source && sink.subscribe(source);\n    }, \"subject\", args));\n    observable.next = nothing;\n    observable.complete = nothing;\n    observable.error = nothing;\n    return observable;\n}\n;\nexport function defer(f) {\n    return create(sink => sink.subscribe(f()), \"defer\", arguments);\n}\n// 不同的调度器实现\nconst schedulers = {\n    // 使用 Promise.resolve().then() - 微任务队列，性能最佳\n    promise: (callback) => {\n        Promise.resolve().then(callback);\n    },\n    // 使用 setImmediate - Node.js 环境\n    setImmediate: typeof setImmediate !== 'undefined'\n        ? (callback) => setImmediate(callback)\n        : null,\n    // 使用 setTimeout - 兼容性最好的回退方案\n    setTimeout: (callback) => setTimeout(callback, 0)\n};\n// 创建一个高性能的异步调度器，根据环境选择最佳方法\nconst createAsapScheduler = () => {\n    // 优先使用 Promise.resolve().then() - 使用微任务队列，性能最佳\n    if (typeof Promise !== 'undefined') {\n        return schedulers.promise;\n    }\n    // 检查是否支持 setImmediate (Node.js 或 IE)\n    if (schedulers.setImmediate) {\n        return schedulers.setImmediate;\n    }\n    // 回退到 setTimeout\n    return schedulers.setTimeout;\n};\n// 创建全局调度器实例\nlet scheduler = createAsapScheduler();\n// 导出可配置的 asap 函数\nconst asap = (f) => (sink) => {\n    scheduler(() => f(sink));\n};\n// 调度器配置函数，允许用户自定义调度方法\nconst setAsapScheduler = (schedulerType) => {\n    if (typeof schedulerType === 'function') {\n        // 自定义调度器函数\n        scheduler = schedulerType;\n    }\n    else if (schedulers[schedulerType]) {\n        // 预定义的调度器类型\n        scheduler = schedulers[schedulerType];\n    }\n};\n// 单独导出调度器配置函数，避免与 Observable 创建函数混淆\nexport { setAsapScheduler };\nconst _fromArray = (data) => asap((sink) => {\n    for (let i = 0; !sink.disposed && i < data.length; i++) {\n        sink.next(data[i]);\n    }\n    sink.complete();\n});\nexport function of(...data) {\n    return create(_fromArray(data), \"of\", arguments);\n}\nexport function fromArray(data) {\n    return create(_fromArray(data), \"fromArray\", arguments);\n}\nexport function interval(period) {\n    return create((sink) => {\n        let i = 0;\n        const id = setInterval(() => sink.next(i++), period);\n        sink.defer(() => { clearInterval(id); });\n        return \"interval\";\n    }, \"interval\", arguments);\n}\nexport function timer(delay, period) {\n    return create((sink) => {\n        let i = 0;\n        const id = setTimeout(() => {\n            sink.removeDefer(deferF);\n            sink.next(i++);\n            // Only create interval if period is explicitly provided and >= 10ms\n            // This prevents accidental interval creation when timer is called with extra parameters (like index values 0,1,2,3...)\n            if (period) {\n                const id = setInterval(() => sink.next(i++), period);\n                sink.defer(() => { clearInterval(id); });\n            }\n            else {\n                sink.complete();\n            }\n        }, delay);\n        const deferF = () => clearTimeout(id);\n        sink.defer(deferF);\n    }, \"timer\", arguments);\n}\n;\nfunction _fromEventPattern(add, remove) {\n    return (sink) => {\n        const n = (d) => sink.next(d);\n        sink.defer(() => remove(n));\n        add(n);\n    };\n}\nexport function fromEventPattern(add, remove) {\n    return create(_fromEventPattern(add, remove), \"fromEventPattern\", arguments);\n}\n;\nexport function fromEvent(target, name) {\n    if (\"on\" in target && \"off\" in target) {\n        return create(_fromEventPattern((h) => target.on(name, h), (h) => target.off(name, h)), \"fromEvent\", arguments);\n    }\n    else if (\"addListener\" in target && \"removeListener\" in target) {\n        return create(_fromEventPattern((h) => target.addListener(name, h), (h) => target.removeListener(name, h)), \"fromEvent\", arguments);\n    }\n    else if (\"addEventListener\" in target) {\n        return create(_fromEventPattern((h) => target.addEventListener(name, h), (h) => target.removeEventListener(name, h)), \"fromEvent\", arguments);\n    }\n    else\n        throw 'target is not a EventDispachter';\n}\n;\nexport function fromPromise(promise) {\n    return create((sink) => {\n        promise.then((data) => {\n            sink.next(data);\n            sink.complete();\n        }, sink.error.bind(sink));\n    }, \"fromPromise\", arguments);\n}\nexport function fromFetch(input, init) {\n    return create(defer(() => fromPromise(fetch(input, init))), \"fromFetch\", arguments);\n}\nexport function fromIterable(source) {\n    return create(asap((sink) => {\n        try {\n            for (const data of source) {\n                if (sink.disposed)\n                    return;\n                sink.next(data);\n            }\n            sink.complete();\n        }\n        catch (err) {\n            sink.error(err);\n        }\n    }), \"fromIterable\", arguments);\n}\nexport function fromReader(source) {\n    const read = async (sink) => {\n        try {\n            if (sink.disposed)\n                return;\n            const { done, value } = await source.read();\n            if (done) {\n                sink.complete();\n                return;\n            }\n            else {\n                sink.next(value);\n                read(sink);\n            }\n        }\n        catch (err) {\n            sink.error(err);\n        }\n    };\n    return create((sink) => {\n        read(sink);\n    }, \"fromReader\", arguments);\n}\nexport function fromReadableStream(source) {\n    return create((sink) => {\n        const controller = new AbortController();\n        const signal = controller.signal;\n        //@ts-ignore\n        sink.defer(() => controller.abort('cancelled'));\n        source.pipeTo(new WritableStream({\n            write(chunk) {\n                sink.next(chunk);\n            },\n            close() {\n                sink.complete();\n            },\n            abort(err) {\n                sink.error(err);\n            }\n        }), { signal }).then(() => sink.complete(), (err) => sink.error(err));\n    }, \"fromReadableStream\", arguments);\n}\nexport function fromAnimationFrame() {\n    return create((sink) => {\n        let id = requestAnimationFrame(function next(t) {\n            if (!sink.disposed) {\n                sink.next(t);\n                id = requestAnimationFrame(next);\n            }\n        });\n        sink.defer(() => cancelAnimationFrame(id));\n    }, \"fromAnimationFrame\", arguments);\n}\nexport function range(start, count) {\n    return create((sink, pos = start, end = count + start) => {\n        while (pos < end && !sink.disposed)\n            sink.next(pos++);\n        sink.complete();\n        return \"range\";\n    }, \"range\", arguments);\n}\nexport function bindCallback(call, thisArg, ...args) {\n    return create((sink) => {\n        const inArgs = args.concat((res) => (sink.next(res), sink.complete()));\n        call.apply(thisArg, inArgs);\n    }, \"bindCallback\", arguments);\n}\nexport function bindNodeCallback(call, thisArg, ...args) {\n    return create((sink) => {\n        const inArgs = args.concat((err, res) => err ? (sink.error(err)) : (sink.next(res), sink.complete()));\n        call.apply(thisArg, inArgs);\n    }, \"bindNodeCallback\", arguments);\n}\nexport function never() {\n    return create(() => { }, \"never\", arguments);\n}\n;\nexport function throwError(e) {\n    return create(sink => sink.error(e), \"throwError\", arguments);\n}\nexport function empty() {\n    return create(sink => sink.complete(), \"empty\", arguments);\n}\n;\n//# sourceMappingURL=producer.js.map","import { Sink, deliver } from \"./common\";\nclass Reduce extends Sink {\n    f;\n    acc;\n    constructor(sink, f, seed) {\n        super(sink);\n        this.f = f;\n        const accSet = () => {\n            this.sink.next(this.acc);\n            this.sink.complete();\n        };\n        if (typeof seed === \"undefined\") {\n            this.next = (d) => {\n                this.acc = d;\n                this.complete = accSet;\n                this.resetNext();\n            };\n        }\n        else {\n            this.acc = seed;\n            this.complete = accSet;\n        }\n    }\n    next(data) {\n        this.acc = this.f(this.acc, data);\n    }\n}\nexport const reduce = deliver(Reduce, \"reduce\");\nexport const count = (f) => deliver(Reduce, \"count\")((aac, c) => (f(c) ? aac + 1 : aac), 0);\nexport const max = () => deliver(Reduce, \"max\")(Math.max);\nexport const min = () => deliver(Reduce, \"min\")(Math.min);\nexport const sum = () => deliver(Reduce, \"sum\")((aac, c) => aac + c, 0);\n//# sourceMappingURL=mathematical.js.map","import { Sink, deliver, nothing, dispose } from \"./common\";\nimport { reduce } from \"./mathematical\";\nimport { timer } from \"./producer\";\nclass Filter extends Sink {\n    filter;\n    thisArg;\n    constructor(sink, filter, thisArg) {\n        super(sink);\n        this.filter = filter;\n        this.thisArg = thisArg;\n    }\n    next(data) {\n        if (this.filter.call(this.thisArg, data)) {\n            this.sink.next(data);\n        }\n    }\n}\nexport const filter = deliver(Filter, \"filter\");\nclass Distinct extends Sink {\n    keySelector;\n    hasPrevious = false;\n    previous;\n    constructor(sink, keySelector) {\n        super(sink);\n        this.keySelector = keySelector;\n    }\n    next(data) {\n        const key = this.keySelector(data);\n        if (!this.hasPrevious || key !== this.previous) {\n            this.hasPrevious = true;\n            this.previous = key;\n            this.sink.next(data);\n        }\n    }\n}\n/**\n * Suppresses consecutive values with the same key.\n *\n * This matches Rill's `distinct` operator semantics. A new comparison state is\n * created for every subscription.\n */\nexport function distinct(keySelector = (data => data)) {\n    return deliver(Distinct, \"distinct\")(keySelector);\n}\nclass Ignore extends Sink {\n    next(_data) { }\n}\nexport const ignoreElements = deliver(Ignore, \"ignoreElements\");\nclass Take extends Sink {\n    count;\n    constructor(sink, count) {\n        super(sink);\n        this.count = count;\n    }\n    next(data) {\n        this.sink.next(data);\n        if (--this.count === 0) {\n            this.doDefer();\n            this.complete();\n        }\n    }\n}\nexport const take = deliver(Take, \"take\");\nclass TakeUntil extends Sink {\n    constructor(sink, control) {\n        super(sink);\n        const _takeUntil = new Sink(sink);\n        _takeUntil.next = () => {\n            _takeUntil.doDefer();\n            sink.complete();\n        };\n        _takeUntil.complete = dispose;\n        _takeUntil.subscribe(control);\n    }\n}\nexport const takeUntil = deliver(TakeUntil, \"takeUntil\");\nclass TakeWhile extends Sink {\n    f;\n    constructor(sink, f) {\n        super(sink);\n        this.f = f;\n    }\n    next(data) {\n        if (this.f(data)) {\n            this.sink.next(data);\n        }\n        else {\n            this.doDefer();\n            this.complete();\n        }\n    }\n}\nexport const takeWhile = deliver(TakeWhile, \"takeWhile\");\nexport const takeLast = (count) => reduce((buffer, d) => {\n    buffer.push(d);\n    if (buffer.length > count)\n        buffer.shift();\n    return buffer;\n}, []);\nclass Skip extends Sink {\n    count;\n    constructor(sink, count) {\n        super(sink);\n        this.count = count;\n    }\n    next(_data) {\n        if (--this.count === 0) {\n            this.next = super.next;\n        }\n    }\n}\nexport const skip = deliver(Skip, \"skip\");\nclass SkipUntil extends Sink {\n    constructor(sink, control) {\n        super(sink);\n        sink.next = nothing;\n        const _skipUntil = new Sink(sink);\n        _skipUntil.next = () => {\n            _skipUntil.doDefer();\n            sink.resetNext();\n        };\n        _skipUntil.complete = dispose;\n        _skipUntil.subscribe(control);\n    }\n}\nexport const skipUntil = deliver(SkipUntil, \"skipUntil\");\nclass SkipWhile extends Sink {\n    f;\n    constructor(sink, f) {\n        super(sink);\n        this.f = f;\n    }\n    next(data) {\n        if (!this.f(data)) {\n            this.next = super.next;\n            this.next(data);\n        }\n    }\n}\nexport const skipWhile = deliver(SkipWhile, \"skipWhile\");\nconst defaultThrottleConfig = {\n    leading: true,\n    trailing: false,\n};\nclass _Throttle extends Sink {\n    durationSelector;\n    trailing;\n    last;\n    constructor(sink, durationSelector, trailing) {\n        super(sink);\n        this.durationSelector = durationSelector;\n        this.trailing = trailing;\n    }\n    cacheValue(value) {\n        this.last = value;\n        if (this.disposed)\n            this.throttle(value);\n    }\n    send(data) {\n        this.sink.next(data);\n        this.throttle(data);\n    }\n    throttle(data) {\n        this.reset();\n        this.subscribe(this.durationSelector(data));\n    }\n    next() {\n        this.complete();\n    }\n    complete() {\n        this.dispose();\n        if (this.trailing) {\n            this.send(this.last);\n        }\n    }\n}\nclass Throttle extends Sink {\n    durationSelector;\n    config;\n    _throttle;\n    constructor(sink, durationSelector, config = defaultThrottleConfig) {\n        super(sink);\n        this.durationSelector = durationSelector;\n        this.config = config;\n        this._throttle = new _Throttle(this.sink, this.durationSelector, this.config.trailing);\n        this._throttle.dispose();\n    }\n    next(data) {\n        if (this._throttle.disposed && this.config.leading) {\n            this._throttle.send(data);\n        }\n        else {\n            this._throttle.cacheValue(data);\n        }\n    }\n    complete() {\n        this._throttle.throttle = nothing; //最后不再启动节流\n        this._throttle.complete();\n        super.complete();\n    }\n}\nexport const throttle = deliver(Throttle, \"throttle\");\nconst defaultAuditConfig = {\n    leading: false,\n    trailing: true,\n};\nexport const audit = (durationSelector) => deliver(Throttle, \"audit\")(durationSelector, defaultAuditConfig);\nclass _Debounce extends Sink {\n    last;\n    next() {\n        this.complete();\n    }\n    complete() {\n        this.dispose();\n        this.sink.next(this.last);\n    }\n}\nclass Debounce extends Sink {\n    durationSelector;\n    _debounce = new _Debounce(this.sink);\n    constructor(sink, durationSelector) {\n        super(sink);\n        this.durationSelector = durationSelector;\n        this._debounce.dispose();\n    }\n    next(data) {\n        this._debounce.dispose();\n        this._debounce.reset();\n        this._debounce.last = data;\n        this._debounce.subscribe(this.durationSelector(data));\n    }\n    complete() {\n        this._debounce.complete();\n        super.complete();\n    }\n}\nexport const debounce = deliver(Debounce, \"debounce\");\nexport const debounceTime = (period) => deliver(Debounce, \"debounceTime\")((_d) => timer(period));\nclass ElementAt extends Sink {\n    count;\n    defaultValue;\n    constructor(sink, count, defaultValue) {\n        super(sink);\n        this.count = count;\n        this.defaultValue = defaultValue;\n    }\n    next(data) {\n        if (this.count-- === 0) {\n            this.defaultValue = data;\n            this.doDefer();\n            this.complete();\n        }\n    }\n    complete() {\n        if (this.defaultValue === void 0) {\n            this.error(new Error('not enough elements in sequence'));\n            return;\n        }\n        else\n            this.sink.next(this.defaultValue);\n        super.complete();\n    }\n}\nexport const elementAt = deliver(ElementAt, \"elementAt\");\nexport const find = (f) => (source) => take(1)(skipWhile((d) => !f(d))(source));\nclass FindIndex extends Sink {\n    f;\n    i = 0;\n    constructor(sink, f) {\n        super(sink);\n        this.f = f;\n    }\n    next(data) {\n        if (this.f(data)) {\n            this.sink.next(this.i++);\n            this.doDefer();\n            this.complete();\n        }\n        else {\n            ++this.i;\n        }\n    }\n}\nexport const findIndex = deliver(FindIndex, \"findIndex\");\nclass First extends Sink {\n    f;\n    defaultValue;\n    index = 0;\n    constructor(sink, f, defaultValue) {\n        super(sink);\n        this.f = f;\n        this.defaultValue = defaultValue;\n    }\n    next(data) {\n        if (!this.f || this.f(data, this.index++)) {\n            this.defaultValue = data;\n            this.doDefer();\n            this.complete();\n        }\n    }\n    complete() {\n        if (this.defaultValue === void 0) {\n            this.error(new Error('no elements in sequence'));\n            return;\n        }\n        else\n            this.sink.next(this.defaultValue);\n        super.complete();\n    }\n}\nexport const first = deliver(First, \"first\");\nclass Last extends Sink {\n    f;\n    defaultValue;\n    index = 0;\n    constructor(sink, f, defaultValue) {\n        super(sink);\n        this.f = f;\n        this.defaultValue = defaultValue;\n    }\n    next(data) {\n        if (!this.f || this.f(data, this.index++)) {\n            this.defaultValue = data;\n        }\n    }\n    complete() {\n        if (this.defaultValue === void 0) {\n            this.error(new Error('no elements in sequence'));\n            return;\n        }\n        else\n            this.sink.next(this.defaultValue);\n        super.complete();\n    }\n}\nexport const last = deliver(Last, 'last');\nclass Every extends Sink {\n    predicate;\n    result;\n    index = 0;\n    constructor(sink, predicate) {\n        super(sink);\n        this.predicate = predicate;\n    }\n    next(data) {\n        if (!this.predicate(data, this.index++)) {\n            this.result = false;\n            this.doDefer();\n            this.complete();\n        }\n        else {\n            this.result = true;\n        }\n    }\n    complete() {\n        if (this.result === void 0) {\n            this.error(new Error('no elements in sequence'));\n            return;\n        }\n        else\n            this.sink.next(this.result);\n        super.complete();\n    }\n}\nexport const every = deliver(Every, \"every\");\n//# sourceMappingURL=filtering.js.map","import { Sink, deliver, nothing } from \"./common\";\nimport { subject } from \"./producer\";\nclass Scan extends Sink {\n    f;\n    acc;\n    constructor(sink, f, seed) {\n        super(sink);\n        this.f = f;\n        if (typeof seed === \"undefined\") {\n            this.next = (d) => {\n                this.acc = d;\n                this.resetNext();\n                this.sink.next(this.acc);\n            };\n        }\n        else {\n            this.acc = seed;\n        }\n    }\n    next(data) {\n        this.sink.next(this.acc = this.f(this.acc, data));\n    }\n}\nexport const scan = deliver(Scan, \"scan\");\nclass Pairwise extends Sink {\n    hasLast = false;\n    last;\n    next(data) {\n        if (this.hasLast) {\n            this.sink.next([this.last, data]);\n        }\n        else {\n            this.hasLast = true;\n        }\n        this.last = data;\n    }\n}\nexport const pairwise = deliver(Pairwise, \"pairwise\");\nclass MapObserver extends Sink {\n    mapper;\n    thisArg;\n    constructor(sink, mapper, thisArg) {\n        super(sink);\n        this.mapper = mapper;\n        this.thisArg = thisArg;\n    }\n    next(data) {\n        super.next(this.mapper.call(this.thisArg, data));\n    }\n}\nexport const map = deliver(MapObserver, \"map\");\nexport const mapTo = (target) => deliver(MapObserver, \"mapTo\")((_x) => target);\nclass InnerSink extends Sink {\n    data;\n    context;\n    constructor(sink, data, context) {\n        super(sink);\n        this.data = data;\n        this.context = context;\n    }\n    next(data) {\n        const combineResults = this.context.combineResults;\n        if (combineResults) {\n            this.sink.next(combineResults(this.data, data));\n        }\n        else {\n            this.sink.next(data);\n        }\n    }\n    // 如果complete先于context的complete触发，则激活原始的context的complete\n    tryComplete() {\n        this.context.resetComplete();\n        this.dispose();\n    }\n}\nclass Maps extends Sink {\n    makeSource;\n    combineResults;\n    currentSink;\n    index = 0;\n    constructor(sink, makeSource, combineResults) {\n        super(sink);\n        this.makeSource = makeSource;\n        this.combineResults = combineResults;\n    }\n    subInner(data, c) {\n        const sink = this.currentSink = new c(this.sink, data, this);\n        // Only override complete if it hasn't been overridden by a subclass\n        if (this.complete === Maps.prototype.complete) {\n            this.complete = this.tryComplete;\n        }\n        sink.complete = sink.tryComplete;\n        sink.subscribe(this.makeSource(data, this.index++));\n    }\n    // Default complete method that can be overridden by subclasses\n    complete() {\n        // Default behavior: just call the sink's complete\n        this.sink.complete();\n    }\n    // 如果complete先于inner的complete触发，则不传播complete\n    tryComplete() {\n        // 如果tryComplete被调用，说明currentSink已经存在\n        this.currentSink.resetComplete();\n        this.dispose();\n    }\n}\nclass _SwitchMap extends InnerSink {\n}\nclass SwitchMap extends Maps {\n    next(data) {\n        this.subInner(data, _SwitchMap);\n        this.next = (data) => {\n            this.currentSink.dispose();\n            this.subInner(data, _SwitchMap);\n        };\n    }\n}\nexport const switchMap = deliver(SwitchMap, \"switchMap\");\nfunction makeMapTo(f) {\n    return (innerSource, combineResults) => f(() => innerSource, combineResults);\n}\nexport const switchMapTo = makeMapTo(deliver(SwitchMap, \"switchMapTo\"));\nclass _ConcatMap extends InnerSink {\n    tryComplete() {\n        this.dispose();\n        if (this.context.sources.length) {\n            this.context.subNext();\n        }\n        else {\n            this.context.resetNext();\n            this.context.resetComplete();\n        }\n    }\n}\nclass ConcatMap extends Maps {\n    sources = [];\n    next2 = this.sources.push.bind(this.sources);\n    next(data) {\n        this.next2(data);\n        this.subNext();\n    }\n    subNext() {\n        this.next = this.next2; //后续直接push，不触发subNext\n        this.subInner(this.sources.shift(), _ConcatMap);\n        if (this.disposed && this.sources.length === 0) {\n            // 最后一个innerSink，需要激活其真实的complete\n            this.currentSink.resetComplete();\n        }\n    }\n    tryComplete() {\n        if (this.sources.length === 0)\n            // 最后一个innerSink，需要激活其真实的complete\n            this.currentSink.resetComplete();\n        this.dispose();\n    }\n}\nexport const concatMap = deliver(ConcatMap, \"concatMap\");\nexport const concatMapTo = makeMapTo(deliver(ConcatMap, \"concatMapTo\"));\nclass _MergeMap extends InnerSink {\n    tryComplete() {\n        this.context.inners.delete(this);\n        super.dispose();\n        if (this.context.inners.size === 0)\n            this.context.resetComplete();\n    }\n}\n// type __Maps<C> = C extends MapContext<infer T, infer U, infer R> ? C : never;\n// type _Maps<C> = C extends InnerSink<infer T, infer U, infer R, infer> ? Maps<T, U, R, C> : never;\nclass MergeMap extends Maps {\n    inners = new Set();\n    next(data) {\n        this.subInner(data, _MergeMap);\n        this.inners.add(this.currentSink);\n    }\n    tryComplete() {\n        // 最后一个innerSink，需要激活其真实的complete\n        if (this.inners.size === 1)\n            this.inners.forEach(s => s.resetComplete());\n        else\n            this.dispose();\n    }\n}\nexport const mergeMap = deliver(MergeMap, \"mergeMap\");\nexport const mergeMapTo = makeMapTo(deliver(MergeMap, \"mergeMapTo\"));\nclass _ExhaustMap extends InnerSink {\n    dispose() {\n        this.context.resetNext();\n        super.dispose();\n    }\n}\nclass ExhaustMap extends Maps {\n    next(data) {\n        this.next = nothing;\n        this.subInner(data, _ExhaustMap);\n    }\n}\nexport const exhaustMap = deliver(ExhaustMap, \"exhaustMap\");\nexport const exhaustMapTo = makeMapTo(deliver(ExhaustMap, \"exhaustMapTo\"));\nclass GroupBy extends Sink {\n    f;\n    groups = new Map();\n    constructor(sink, f) {\n        super(sink);\n        this.f = f;\n    }\n    next(data) {\n        const key = this.f(data);\n        let group = this.groups.get(key);\n        if (typeof group === 'undefined') {\n            group = subject();\n            group.key = key;\n            this.groups.set(key, group);\n            super.next(group);\n        }\n        group.next(data);\n    }\n    complete() {\n        this.groups.forEach((group) => group.complete());\n        super.complete();\n    }\n    error(err) {\n        this.groups.forEach((group) => group.error(err));\n        super.error(err);\n    }\n}\nexport const groupBy = deliver(GroupBy, \"groupBy\");\nclass TimeInterval extends Sink {\n    start = new Date();\n    next(value) {\n        this.sink.next({ value, interval: Number(new Date()) - Number(this.start) });\n        this.start = new Date();\n    }\n}\nexport const timeInterval = deliver(TimeInterval, \"timeInterval\");\nclass BufferTime extends Sink {\n    miniseconds;\n    buffer = [];\n    id;\n    constructor(sink, miniseconds) {\n        super(sink);\n        this.miniseconds = miniseconds;\n        this.id = setInterval(() => {\n            this.sink.next(this.buffer.concat());\n            this.buffer.length = 0;\n        }, this.miniseconds);\n    }\n    next(data) {\n        this.buffer.push(data);\n    }\n    complete() {\n        this.sink.next(this.buffer);\n        super.complete();\n    }\n    dispose() {\n        clearInterval(this.id);\n        super.dispose();\n    }\n}\nexport const bufferTime = deliver(BufferTime, \"bufferTime\");\nclass Delay extends Sink {\n    delayTime;\n    buffer = [];\n    timeoutId;\n    constructor(sink, delay) {\n        super(sink);\n        this.delayTime = delay;\n    }\n    dispose() {\n        clearTimeout(this.timeoutId);\n        super.dispose();\n    }\n    delay(delay) {\n        this.timeoutId = setTimeout(() => {\n            const d = this.buffer.shift();\n            if (d) {\n                const { time: lastTime, data } = d;\n                super.next(data);\n                if (this.buffer.length) {\n                    this.delay(Number(this.buffer[0].time) - Number(lastTime));\n                }\n            }\n        }, delay);\n    }\n    next(data) {\n        if (!this.buffer.length) {\n            this.delay(this.delayTime);\n        }\n        this.buffer.push({ time: new Date(), data });\n    }\n    complete() {\n        this.timeoutId = setTimeout(() => super.complete(), this.delayTime);\n    }\n}\nexport const delay = deliver(Delay, \"delay\");\nclass CatchError extends Sink {\n    selector;\n    constructor(sink, selector) {\n        super(sink);\n        this.selector = selector;\n    }\n    error(err) {\n        this.dispose();\n        this.selector(err)(this.sink);\n    }\n}\nexport const catchError = deliver(CatchError, \"catchError\");\nclass _Expand extends InnerSink {\n    tryComplete() {\n        const deleted = this.context.inners.delete(this);\n        super.dispose();\n        // 只有当成功删除时才检查完成，避免重复检查\n        if (deleted) {\n            this.context.checkComplete();\n        }\n    }\n    next(data) {\n        // 发送数据到输出流\n        this.sink.next(data);\n        // 递归处理：将新数据通过 project 函数产生新的 Observable 并订阅\n        this.context.expandValue(data);\n    }\n}\nclass Expand extends Maps {\n    project;\n    inners = new Set();\n    sourceCompleted = false;\n    constructor(sink, project) {\n        super(sink, project);\n        this.project = project;\n    }\n    next(data) {\n        // 发送原始数据到输出流\n        this.sink.next(data);\n        // 展开数据（递归处理）\n        this.expandValue(data);\n    }\n    expandValue(data) {\n        // 创建内部 sink 但不立即订阅\n        const innerSink = new _Expand(this.sink, data, this);\n        this.currentSink = innerSink;\n        this.complete = this.tryComplete;\n        innerSink.complete = innerSink.tryComplete;\n        // 先添加到 inners，再订阅，避免时序问题\n        this.inners.add(innerSink);\n        // 现在订阅 Observable\n        innerSink.subscribe(this.makeSource(data, this.index++));\n    }\n    complete() {\n        this.sourceCompleted = true;\n        this.checkComplete();\n    }\n    checkComplete() {\n        // 只有当源 Observable 完成且所有内部 Observable 都完成时才完成\n        if (this.sourceCompleted && this.inners.size === 0) {\n            this.resetComplete();\n            super.complete();\n        }\n    }\n    tryComplete() {\n        // 当源 Observable 完成时，标记源已完成并检查是否可以完成\n        this.sourceCompleted = true;\n        this.checkComplete();\n    }\n}\nexport const expand = deliver(Expand, \"expand\");\n//# sourceMappingURL=transformation.js.map","import { nothing, Sink, deliver, TimeoutError, Subscribe, Events, Inspect, create } from \"./common\";\nexport const toPromise = () => (source) => new Promise((resolve, reject) => {\n    let value;\n    new Subscribe(source, (d) => (value = d), reject, () => resolve(value));\n});\nexport const toReadableStream = () => (source) => {\n    let subscriber;\n    return new ReadableStream({\n        start(controller) {\n            subscriber = new Subscribe(source, controller.enqueue.bind(controller), controller.error.bind(controller), controller.close.bind(controller));\n        },\n        cancel() {\n            subscriber.dispose();\n        }\n    });\n};\n// //SUBSCRIBER\nexport const subscribe = (n = nothing, e = nothing, c = nothing) => (source) => new Subscribe(source, n, e, c);\n// // UTILITY\nclass Tap extends Sink {\n    constructor(sink, ob) {\n        super(sink);\n        if (ob instanceof Function) {\n            this.next = (data) => { ob(data); sink.next(data); };\n        }\n        else {\n            if (ob.next)\n                this.next = (data) => { ob.next(data); sink.next(data); };\n            if (ob.complete)\n                this.complete = () => { ob.complete(); sink.complete(); };\n            if (ob.error)\n                this.error = (err) => { ob.error(err); sink.error(err); };\n        }\n    }\n}\nexport const tap = deliver(Tap, \"tap\");\nclass Timeout extends Sink {\n    timeout;\n    id;\n    constructor(sink, timeout) {\n        super(sink);\n        this.timeout = timeout;\n        this.id = setTimeout(() => this.error(new TimeoutError(this.timeout)), this.timeout);\n    }\n    next(data) {\n        super.next(data);\n        clearTimeout(this.id);\n        this.next = super.next;\n    }\n    dispose() {\n        clearTimeout(this.id);\n        super.dispose();\n    }\n}\nexport const timeout = deliver(Timeout, \"timeout\");\nexport const retry = (count = Infinity) => (source) => {\n    if (source instanceof Inspect) {\n        const ob = create((observer) => {\n            let remain = count;\n            const deliverSink = new Sink(observer);\n            deliverSink.error = (err) => {\n                if (remain-- > 0) {\n                    deliverSink.subscribe(source);\n                }\n                else {\n                    observer.error(err);\n                }\n            };\n            deliverSink.sourceId = ob.id;\n            deliverSink.subscribe(source);\n        }, 'retry', [count]);\n        ob.source = source;\n        Events.pipe(ob);\n        return ob;\n    }\n    else {\n        return (observer) => {\n            let remain = count;\n            const deliverSink = new Sink(observer);\n            deliverSink.error = (err) => {\n                if (remain-- > 0) {\n                    source(deliverSink);\n                }\n                else {\n                    observer.error(err);\n                }\n            };\n            source(deliverSink);\n        };\n    }\n};\n//# sourceMappingURL=utils.js.map"],"names":[],"mappings":"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"}