@vielzeug/flux 2.0.2 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/_iterator.cjs +1 -1
  2. package/dist/_iterator.cjs.map +1 -1
  3. package/dist/_iterator.d.ts.map +1 -1
  4. package/dist/_iterator.js +2 -2
  5. package/dist/_iterator.js.map +1 -1
  6. package/dist/_subscription.cjs.map +1 -1
  7. package/dist/_subscription.d.ts +1 -1
  8. package/dist/_subscription.d.ts.map +1 -1
  9. package/dist/_subscription.js.map +1 -1
  10. package/dist/adapters/courier.cjs.map +1 -1
  11. package/dist/adapters/courier.d.ts.map +1 -1
  12. package/dist/adapters/courier.js.map +1 -1
  13. package/dist/adapters/herald.cjs.map +1 -1
  14. package/dist/adapters/herald.d.ts.map +1 -1
  15. package/dist/adapters/herald.js.map +1 -1
  16. package/dist/adapters/pulse.cjs.map +1 -1
  17. package/dist/adapters/pulse.d.ts.map +1 -1
  18. package/dist/adapters/pulse.js.map +1 -1
  19. package/dist/adapters/ripple.cjs.map +1 -1
  20. package/dist/adapters/ripple.d.ts.map +1 -1
  21. package/dist/adapters/ripple.js.map +1 -1
  22. package/dist/async.cjs.map +1 -1
  23. package/dist/async.d.ts.map +1 -1
  24. package/dist/async.js.map +1 -1
  25. package/dist/core.cjs.map +1 -1
  26. package/dist/core.d.ts.map +1 -1
  27. package/dist/core.js.map +1 -1
  28. package/dist/flux.cjs +1 -1
  29. package/dist/flux.cjs.map +1 -1
  30. package/dist/flux.iife.js +1 -1
  31. package/dist/flux.iife.js.map +1 -1
  32. package/dist/flux.js +1 -1
  33. package/dist/flux.js.map +1 -1
  34. package/dist/index.d.ts +4 -4
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/operators/combination.cjs.map +1 -1
  37. package/dist/operators/combination.d.ts.map +1 -1
  38. package/dist/operators/combination.js.map +1 -1
  39. package/dist/operators/creation.cjs.map +1 -1
  40. package/dist/operators/creation.d.ts.map +1 -1
  41. package/dist/operators/creation.js.map +1 -1
  42. package/dist/operators/filtering.cjs.map +1 -1
  43. package/dist/operators/filtering.d.ts.map +1 -1
  44. package/dist/operators/filtering.js.map +1 -1
  45. package/dist/operators/transformation.cjs.map +1 -1
  46. package/dist/operators/transformation.d.ts.map +1 -1
  47. package/dist/operators/transformation.js.map +1 -1
  48. package/dist/operators/utility.cjs.map +1 -1
  49. package/dist/operators/utility.d.ts.map +1 -1
  50. package/dist/operators/utility.js.map +1 -1
  51. package/dist/pipe.cjs.map +1 -1
  52. package/dist/pipe.d.ts.map +1 -1
  53. package/dist/pipe.js.map +1 -1
  54. package/dist/ripple.d.ts +1 -1
  55. package/dist/ripple.d.ts.map +1 -1
  56. package/dist/subject.cjs.map +1 -1
  57. package/dist/subject.d.ts.map +1 -1
  58. package/dist/subject.js.map +1 -1
  59. package/dist/subjects.d.ts +1 -1
  60. package/dist/subjects.d.ts.map +1 -1
  61. package/dist/types.d.ts +1 -1
  62. package/dist/types.d.ts.map +1 -1
  63. package/package.json +52 -52
@@ -1 +1 @@
1
- {"version":3,"file":"utility.cjs","names":[],"sources":["../../src/operators/utility.ts"],"sourcesContent":["import type { Operator, Stream, Subscription } from '../types';\n\nimport { link } from '../_link';\nimport { tryCall } from '../_safe';\nimport { defaultScheduler } from '../_scheduler';\nimport { stream } from '../core';\n\nexport type RetryOptions = {\n attempts: number;\n delay?: number | ((attempt: number) => number);\n};\n\nexport type ToArrayOptions = {\n maxItems: number;\n signal?: AbortSignal;\n};\n\nexport type ValueOptions = {\n signal?: AbortSignal;\n};\n\nfunction abortError(): DOMException {\n return new DOMException('Stream consumption aborted', 'AbortError');\n}\n\nexport function retry<T>(options: RetryOptions): Operator<T, T> {\n if (!Number.isInteger(options.attempts) || options.attempts < 0) {\n throw new RangeError('retry attempts must be a non-negative integer');\n }\n\n return (source) =>\n stream((sink, signal) => {\n let attempts = 0;\n let current: Subscription | undefined;\n let cancelDelay: (() => void) | undefined;\n\n const start = (): void => {\n if (signal.aborted) return;\n\n const subscription = link(\n source,\n {\n complete: sink.complete,\n error(reason) {\n if (attempts === options.attempts) {\n sink.error(reason);\n\n return;\n }\n\n const attempt = attempts++;\n let delay: number | undefined;\n\n tryCall(() => {\n delay = typeof options.delay === 'function' ? options.delay(attempt) : options.delay;\n }, sink.error);\n\n if (signal.aborted) return;\n\n if (delay !== undefined && (!Number.isFinite(delay) || delay < 0)) {\n sink.error(new RangeError('retry delay must be a finite number greater than or equal to zero'));\n\n return;\n }\n\n if (delay === undefined || delay === 0) {\n queueMicrotask(start);\n } else {\n cancelDelay = defaultScheduler.delay(start, delay);\n }\n },\n next: sink.next,\n },\n signal,\n );\n\n if (!subscription.closed) current = subscription;\n };\n\n start();\n\n return () => {\n cancelDelay?.();\n current?.unsubscribe();\n };\n });\n}\n\nexport function first<T>(source: Stream<T>, options?: ValueOptions): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const controller = new AbortController();\n const abort = (): void => {\n controller.abort();\n reject(abortError());\n };\n\n if (options?.signal?.aborted) {\n abort();\n\n return;\n }\n\n options?.signal?.addEventListener('abort', abort, { once: true });\n link(\n source,\n {\n error(reason) {\n options?.signal?.removeEventListener('abort', abort);\n reject(reason);\n },\n next(value) {\n options?.signal?.removeEventListener('abort', abort);\n controller.abort();\n resolve(value);\n },\n },\n controller.signal,\n );\n });\n}\n\nexport function last<T>(source: Stream<T>, options?: ValueOptions): Promise<T | undefined> {\n return new Promise<T | undefined>((resolve, reject) => {\n const abort = (): void => reject(abortError());\n let latest: T | undefined;\n\n if (options?.signal?.aborted) {\n abort();\n\n return;\n }\n\n options?.signal?.addEventListener('abort', abort, { once: true });\n link(\n source,\n {\n complete() {\n options?.signal?.removeEventListener('abort', abort);\n resolve(latest);\n },\n error(reason) {\n options?.signal?.removeEventListener('abort', abort);\n reject(reason);\n },\n next(value) {\n latest = value;\n },\n },\n options?.signal ?? new AbortController().signal,\n );\n });\n}\n\nexport function toArray<T>(source: Stream<T>, options: ToArrayOptions): Promise<T[]> {\n if (!Number.isInteger(options.maxItems) || options.maxItems < 0) {\n throw new RangeError('toArray maxItems must be a non-negative integer');\n }\n\n return new Promise<T[]>((resolve, reject) => {\n const controller = new AbortController();\n const values: T[] = [];\n const abort = (): void => {\n controller.abort();\n reject(abortError());\n };\n\n if (options.signal?.aborted) {\n abort();\n\n return;\n }\n\n options.signal?.addEventListener('abort', abort, { once: true });\n link(\n source,\n {\n complete() {\n options.signal?.removeEventListener('abort', abort);\n resolve(values);\n },\n error(reason) {\n options.signal?.removeEventListener('abort', abort);\n reject(reason);\n },\n next(value) {\n if (values.length === options.maxItems) {\n options.signal?.removeEventListener('abort', abort);\n controller.abort();\n reject(new RangeError('toArray maxItems exceeded'));\n\n return;\n }\n\n values.push(value);\n },\n },\n controller.signal,\n );\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"utility.cjs","names":[],"sources":["../../src/operators/utility.ts"],"sourcesContent":["import { link } from '../_link';\nimport { tryCall } from '../_safe';\nimport { defaultScheduler } from '../_scheduler';\nimport { stream } from '../core';\nimport type { Operator, Stream, Subscription } from '../types';\n\nexport type RetryOptions = {\n attempts: number;\n delay?: number | ((attempt: number) => number);\n};\n\nexport type ToArrayOptions = {\n maxItems: number;\n signal?: AbortSignal;\n};\n\nexport type ValueOptions = {\n signal?: AbortSignal;\n};\n\nfunction abortError(): DOMException {\n return new DOMException('Stream consumption aborted', 'AbortError');\n}\n\nexport function retry<T>(options: RetryOptions): Operator<T, T> {\n if (!Number.isInteger(options.attempts) || options.attempts < 0) {\n throw new RangeError('retry attempts must be a non-negative integer');\n }\n\n return (source) =>\n stream((sink, signal) => {\n let attempts = 0;\n let current: Subscription | undefined;\n let cancelDelay: (() => void) | undefined;\n\n const start = (): void => {\n if (signal.aborted) return;\n\n const subscription = link(\n source,\n {\n complete: sink.complete,\n error(reason) {\n if (attempts === options.attempts) {\n sink.error(reason);\n\n return;\n }\n\n const attempt = attempts++;\n let delay: number | undefined;\n\n tryCall(() => {\n delay = typeof options.delay === 'function' ? options.delay(attempt) : options.delay;\n }, sink.error);\n\n if (signal.aborted) return;\n\n if (delay !== undefined && (!Number.isFinite(delay) || delay < 0)) {\n sink.error(new RangeError('retry delay must be a finite number greater than or equal to zero'));\n\n return;\n }\n\n if (delay === undefined || delay === 0) {\n queueMicrotask(start);\n } else {\n cancelDelay = defaultScheduler.delay(start, delay);\n }\n },\n next: sink.next,\n },\n signal,\n );\n\n if (!subscription.closed) current = subscription;\n };\n\n start();\n\n return () => {\n cancelDelay?.();\n current?.unsubscribe();\n };\n });\n}\n\nexport function first<T>(source: Stream<T>, options?: ValueOptions): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const controller = new AbortController();\n const abort = (): void => {\n controller.abort();\n reject(abortError());\n };\n\n if (options?.signal?.aborted) {\n abort();\n\n return;\n }\n\n options?.signal?.addEventListener('abort', abort, { once: true });\n link(\n source,\n {\n error(reason) {\n options?.signal?.removeEventListener('abort', abort);\n reject(reason);\n },\n next(value) {\n options?.signal?.removeEventListener('abort', abort);\n controller.abort();\n resolve(value);\n },\n },\n controller.signal,\n );\n });\n}\n\nexport function last<T>(source: Stream<T>, options?: ValueOptions): Promise<T | undefined> {\n return new Promise<T | undefined>((resolve, reject) => {\n const abort = (): void => reject(abortError());\n let latest: T | undefined;\n\n if (options?.signal?.aborted) {\n abort();\n\n return;\n }\n\n options?.signal?.addEventListener('abort', abort, { once: true });\n link(\n source,\n {\n complete() {\n options?.signal?.removeEventListener('abort', abort);\n resolve(latest);\n },\n error(reason) {\n options?.signal?.removeEventListener('abort', abort);\n reject(reason);\n },\n next(value) {\n latest = value;\n },\n },\n options?.signal ?? new AbortController().signal,\n );\n });\n}\n\nexport function toArray<T>(source: Stream<T>, options: ToArrayOptions): Promise<T[]> {\n if (!Number.isInteger(options.maxItems) || options.maxItems < 0) {\n throw new RangeError('toArray maxItems must be a non-negative integer');\n }\n\n return new Promise<T[]>((resolve, reject) => {\n const controller = new AbortController();\n const values: T[] = [];\n const abort = (): void => {\n controller.abort();\n reject(abortError());\n };\n\n if (options.signal?.aborted) {\n abort();\n\n return;\n }\n\n options.signal?.addEventListener('abort', abort, { once: true });\n link(\n source,\n {\n complete() {\n options.signal?.removeEventListener('abort', abort);\n resolve(values);\n },\n error(reason) {\n options.signal?.removeEventListener('abort', abort);\n reject(reason);\n },\n next(value) {\n if (values.length === options.maxItems) {\n options.signal?.removeEventListener('abort', abort);\n controller.abort();\n reject(new RangeError('toArray maxItems exceeded'));\n\n return;\n }\n\n values.push(value);\n },\n },\n controller.signal,\n );\n });\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../src/operators/utility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAgB,MAAM,UAAU,CAAC;AAO/D,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAMF,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CA6D9D;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CA+B9E;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CA8BzF;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CA8CnF"}
1
+ {"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../src/operators/utility.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAgB,MAAM,UAAU,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAMF,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CA6D9D;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CA+B9E;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CA8BzF;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CA8CnF"}
@@ -1 +1 @@
1
- {"version":3,"file":"utility.js","names":[],"sources":["../../src/operators/utility.ts"],"sourcesContent":["import type { Operator, Stream, Subscription } from '../types';\n\nimport { link } from '../_link';\nimport { tryCall } from '../_safe';\nimport { defaultScheduler } from '../_scheduler';\nimport { stream } from '../core';\n\nexport type RetryOptions = {\n attempts: number;\n delay?: number | ((attempt: number) => number);\n};\n\nexport type ToArrayOptions = {\n maxItems: number;\n signal?: AbortSignal;\n};\n\nexport type ValueOptions = {\n signal?: AbortSignal;\n};\n\nfunction abortError(): DOMException {\n return new DOMException('Stream consumption aborted', 'AbortError');\n}\n\nexport function retry<T>(options: RetryOptions): Operator<T, T> {\n if (!Number.isInteger(options.attempts) || options.attempts < 0) {\n throw new RangeError('retry attempts must be a non-negative integer');\n }\n\n return (source) =>\n stream((sink, signal) => {\n let attempts = 0;\n let current: Subscription | undefined;\n let cancelDelay: (() => void) | undefined;\n\n const start = (): void => {\n if (signal.aborted) return;\n\n const subscription = link(\n source,\n {\n complete: sink.complete,\n error(reason) {\n if (attempts === options.attempts) {\n sink.error(reason);\n\n return;\n }\n\n const attempt = attempts++;\n let delay: number | undefined;\n\n tryCall(() => {\n delay = typeof options.delay === 'function' ? options.delay(attempt) : options.delay;\n }, sink.error);\n\n if (signal.aborted) return;\n\n if (delay !== undefined && (!Number.isFinite(delay) || delay < 0)) {\n sink.error(new RangeError('retry delay must be a finite number greater than or equal to zero'));\n\n return;\n }\n\n if (delay === undefined || delay === 0) {\n queueMicrotask(start);\n } else {\n cancelDelay = defaultScheduler.delay(start, delay);\n }\n },\n next: sink.next,\n },\n signal,\n );\n\n if (!subscription.closed) current = subscription;\n };\n\n start();\n\n return () => {\n cancelDelay?.();\n current?.unsubscribe();\n };\n });\n}\n\nexport function first<T>(source: Stream<T>, options?: ValueOptions): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const controller = new AbortController();\n const abort = (): void => {\n controller.abort();\n reject(abortError());\n };\n\n if (options?.signal?.aborted) {\n abort();\n\n return;\n }\n\n options?.signal?.addEventListener('abort', abort, { once: true });\n link(\n source,\n {\n error(reason) {\n options?.signal?.removeEventListener('abort', abort);\n reject(reason);\n },\n next(value) {\n options?.signal?.removeEventListener('abort', abort);\n controller.abort();\n resolve(value);\n },\n },\n controller.signal,\n );\n });\n}\n\nexport function last<T>(source: Stream<T>, options?: ValueOptions): Promise<T | undefined> {\n return new Promise<T | undefined>((resolve, reject) => {\n const abort = (): void => reject(abortError());\n let latest: T | undefined;\n\n if (options?.signal?.aborted) {\n abort();\n\n return;\n }\n\n options?.signal?.addEventListener('abort', abort, { once: true });\n link(\n source,\n {\n complete() {\n options?.signal?.removeEventListener('abort', abort);\n resolve(latest);\n },\n error(reason) {\n options?.signal?.removeEventListener('abort', abort);\n reject(reason);\n },\n next(value) {\n latest = value;\n },\n },\n options?.signal ?? new AbortController().signal,\n );\n });\n}\n\nexport function toArray<T>(source: Stream<T>, options: ToArrayOptions): Promise<T[]> {\n if (!Number.isInteger(options.maxItems) || options.maxItems < 0) {\n throw new RangeError('toArray maxItems must be a non-negative integer');\n }\n\n return new Promise<T[]>((resolve, reject) => {\n const controller = new AbortController();\n const values: T[] = [];\n const abort = (): void => {\n controller.abort();\n reject(abortError());\n };\n\n if (options.signal?.aborted) {\n abort();\n\n return;\n }\n\n options.signal?.addEventListener('abort', abort, { once: true });\n link(\n source,\n {\n complete() {\n options.signal?.removeEventListener('abort', abort);\n resolve(values);\n },\n error(reason) {\n options.signal?.removeEventListener('abort', abort);\n reject(reason);\n },\n next(value) {\n if (values.length === options.maxItems) {\n options.signal?.removeEventListener('abort', abort);\n controller.abort();\n reject(new RangeError('toArray maxItems exceeded'));\n\n return;\n }\n\n values.push(value);\n },\n },\n controller.signal,\n );\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"utility.js","names":[],"sources":["../../src/operators/utility.ts"],"sourcesContent":["import { link } from '../_link';\nimport { tryCall } from '../_safe';\nimport { defaultScheduler } from '../_scheduler';\nimport { stream } from '../core';\nimport type { Operator, Stream, Subscription } from '../types';\n\nexport type RetryOptions = {\n attempts: number;\n delay?: number | ((attempt: number) => number);\n};\n\nexport type ToArrayOptions = {\n maxItems: number;\n signal?: AbortSignal;\n};\n\nexport type ValueOptions = {\n signal?: AbortSignal;\n};\n\nfunction abortError(): DOMException {\n return new DOMException('Stream consumption aborted', 'AbortError');\n}\n\nexport function retry<T>(options: RetryOptions): Operator<T, T> {\n if (!Number.isInteger(options.attempts) || options.attempts < 0) {\n throw new RangeError('retry attempts must be a non-negative integer');\n }\n\n return (source) =>\n stream((sink, signal) => {\n let attempts = 0;\n let current: Subscription | undefined;\n let cancelDelay: (() => void) | undefined;\n\n const start = (): void => {\n if (signal.aborted) return;\n\n const subscription = link(\n source,\n {\n complete: sink.complete,\n error(reason) {\n if (attempts === options.attempts) {\n sink.error(reason);\n\n return;\n }\n\n const attempt = attempts++;\n let delay: number | undefined;\n\n tryCall(() => {\n delay = typeof options.delay === 'function' ? options.delay(attempt) : options.delay;\n }, sink.error);\n\n if (signal.aborted) return;\n\n if (delay !== undefined && (!Number.isFinite(delay) || delay < 0)) {\n sink.error(new RangeError('retry delay must be a finite number greater than or equal to zero'));\n\n return;\n }\n\n if (delay === undefined || delay === 0) {\n queueMicrotask(start);\n } else {\n cancelDelay = defaultScheduler.delay(start, delay);\n }\n },\n next: sink.next,\n },\n signal,\n );\n\n if (!subscription.closed) current = subscription;\n };\n\n start();\n\n return () => {\n cancelDelay?.();\n current?.unsubscribe();\n };\n });\n}\n\nexport function first<T>(source: Stream<T>, options?: ValueOptions): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const controller = new AbortController();\n const abort = (): void => {\n controller.abort();\n reject(abortError());\n };\n\n if (options?.signal?.aborted) {\n abort();\n\n return;\n }\n\n options?.signal?.addEventListener('abort', abort, { once: true });\n link(\n source,\n {\n error(reason) {\n options?.signal?.removeEventListener('abort', abort);\n reject(reason);\n },\n next(value) {\n options?.signal?.removeEventListener('abort', abort);\n controller.abort();\n resolve(value);\n },\n },\n controller.signal,\n );\n });\n}\n\nexport function last<T>(source: Stream<T>, options?: ValueOptions): Promise<T | undefined> {\n return new Promise<T | undefined>((resolve, reject) => {\n const abort = (): void => reject(abortError());\n let latest: T | undefined;\n\n if (options?.signal?.aborted) {\n abort();\n\n return;\n }\n\n options?.signal?.addEventListener('abort', abort, { once: true });\n link(\n source,\n {\n complete() {\n options?.signal?.removeEventListener('abort', abort);\n resolve(latest);\n },\n error(reason) {\n options?.signal?.removeEventListener('abort', abort);\n reject(reason);\n },\n next(value) {\n latest = value;\n },\n },\n options?.signal ?? new AbortController().signal,\n );\n });\n}\n\nexport function toArray<T>(source: Stream<T>, options: ToArrayOptions): Promise<T[]> {\n if (!Number.isInteger(options.maxItems) || options.maxItems < 0) {\n throw new RangeError('toArray maxItems must be a non-negative integer');\n }\n\n return new Promise<T[]>((resolve, reject) => {\n const controller = new AbortController();\n const values: T[] = [];\n const abort = (): void => {\n controller.abort();\n reject(abortError());\n };\n\n if (options.signal?.aborted) {\n abort();\n\n return;\n }\n\n options.signal?.addEventListener('abort', abort, { once: true });\n link(\n source,\n {\n complete() {\n options.signal?.removeEventListener('abort', abort);\n resolve(values);\n },\n error(reason) {\n options.signal?.removeEventListener('abort', abort);\n reject(reason);\n },\n next(value) {\n if (values.length === options.maxItems) {\n options.signal?.removeEventListener('abort', abort);\n controller.abort();\n reject(new RangeError('toArray maxItems exceeded'));\n\n return;\n }\n\n values.push(value);\n },\n },\n controller.signal,\n );\n });\n}\n"],"mappings":"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"}
package/dist/pipe.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pipe.cjs","names":[],"sources":["../src/pipe.ts"],"sourcesContent":["import type { Operator, PipedStream, Stream, ValidPipe } from './types';\n\nimport { applyOperators } from './_pipe';\n\n/** Standalone composition preserves contextual types for inline generic operators. */\nexport function pipe<Input>(source: Stream<Input>): Stream<Input>;\nexport function pipe<Input, A>(source: Stream<Input>, operator1: Operator<Input, A>): Stream<A>;\nexport function pipe<Input, A, B>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n): Stream<B>;\nexport function pipe<Input, A, B, C>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n): Stream<C>;\nexport function pipe<Input, A, B, C, D>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n): Stream<D>;\nexport function pipe<Input, A, B, C, D, E>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n): Stream<E>;\nexport function pipe<Input, A, B, C, D, E, F>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n): Stream<F>;\nexport function pipe<Input, A, B, C, D, E, F, G>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n): Stream<G>;\nexport function pipe<Input, A, B, C, D, E, F, G, H>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n): Stream<H>;\nexport function pipe<Input, A, B, C, D, E, F, G, H, I>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n operator9: Operator<H, I>,\n): Stream<I>;\nexport function pipe<Input, A, B, C, D, E, F, G, H, I, J>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n operator9: Operator<H, I>,\n operator10: Operator<I, J>,\n): Stream<J>;\nexport function pipe<Input, const Operators extends readonly unknown[]>(\n source: Stream<Input>,\n ...operators: Operators & ValidPipe<Input, Operators>\n): PipedStream<Input, Operators>;\nexport function pipe<Input, const Operators extends readonly unknown[]>(\n source: Stream<Input>,\n ...operators: Operators & ValidPipe<Input, Operators>\n): PipedStream<Input, Operators> {\n return applyOperators(source as Stream<unknown>, operators) as PipedStream<Input, Operators>;\n}\n"],"mappings":"+BA4FA,SAAgB,EACd,EACA,GAAG,EAC4B,CAC/B,OAAO,EAAA,eAAe,EAA2B,CAAS,CAC5D"}
1
+ {"version":3,"file":"pipe.cjs","names":[],"sources":["../src/pipe.ts"],"sourcesContent":["import { applyOperators } from './_pipe';\nimport type { Operator, PipedStream, Stream, ValidPipe } from './types';\n\n/** Standalone composition preserves contextual types for inline generic operators. */\nexport function pipe<Input>(source: Stream<Input>): Stream<Input>;\nexport function pipe<Input, A>(source: Stream<Input>, operator1: Operator<Input, A>): Stream<A>;\nexport function pipe<Input, A, B>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n): Stream<B>;\nexport function pipe<Input, A, B, C>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n): Stream<C>;\nexport function pipe<Input, A, B, C, D>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n): Stream<D>;\nexport function pipe<Input, A, B, C, D, E>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n): Stream<E>;\nexport function pipe<Input, A, B, C, D, E, F>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n): Stream<F>;\nexport function pipe<Input, A, B, C, D, E, F, G>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n): Stream<G>;\nexport function pipe<Input, A, B, C, D, E, F, G, H>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n): Stream<H>;\nexport function pipe<Input, A, B, C, D, E, F, G, H, I>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n operator9: Operator<H, I>,\n): Stream<I>;\nexport function pipe<Input, A, B, C, D, E, F, G, H, I, J>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n operator9: Operator<H, I>,\n operator10: Operator<I, J>,\n): Stream<J>;\nexport function pipe<Input, const Operators extends readonly unknown[]>(\n source: Stream<Input>,\n ...operators: Operators & ValidPipe<Input, Operators>\n): PipedStream<Input, Operators>;\nexport function pipe<Input, const Operators extends readonly unknown[]>(\n source: Stream<Input>,\n ...operators: Operators & ValidPipe<Input, Operators>\n): PipedStream<Input, Operators> {\n return applyOperators(source as Stream<unknown>, operators) as PipedStream<Input, Operators>;\n}\n"],"mappings":"+BA2FA,SAAgB,EACd,EACA,GAAG,EAC4B,CAC/B,OAAO,EAAA,eAAe,EAA2B,CAAS,CAC5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipe.d.ts","sourceRoot":"","sources":["../src/pipe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipe.d.ts","sourceRoot":"","sources":["../src/pipe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAExE,sFAAsF;AACtF,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAClE,wBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAChG,wBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAC9B,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EACrB,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAC7B,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GACxB,MAAM,CAAC,CAAC,CAAC,CAAC;AACb,wBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACjC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EACrB,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAC7B,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GACxB,MAAM,CAAC,CAAC,CAAC,CAAC;AACb,wBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACpC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EACrB,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAC7B,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GACxB,MAAM,CAAC,CAAC,CAAC,CAAC;AACb,wBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACvC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EACrB,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAC7B,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GACxB,MAAM,CAAC,CAAC,CAAC,CAAC;AACb,wBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC1C,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EACrB,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAC7B,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GACxB,MAAM,CAAC,CAAC,CAAC,CAAC;AACb,wBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7C,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EACrB,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAC7B,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GACxB,MAAM,CAAC,CAAC,CAAC,CAAC;AACb,wBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAChD,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EACrB,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAC7B,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GACxB,MAAM,CAAC,CAAC,CAAC,CAAC;AACb,wBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACnD,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EACrB,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAC7B,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GACxB,MAAM,CAAC,CAAC,CAAC,CAAC;AACb,wBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACtD,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EACrB,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAC7B,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,UAAU,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GACzB,MAAM,CAAC,CAAC,CAAC,CAAC;AACb,wBAAgB,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,SAAS,SAAS,OAAO,EAAE,EACpE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EACrB,GAAG,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GACpD,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC"}
package/dist/pipe.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pipe.js","names":[],"sources":["../src/pipe.ts"],"sourcesContent":["import type { Operator, PipedStream, Stream, ValidPipe } from './types';\n\nimport { applyOperators } from './_pipe';\n\n/** Standalone composition preserves contextual types for inline generic operators. */\nexport function pipe<Input>(source: Stream<Input>): Stream<Input>;\nexport function pipe<Input, A>(source: Stream<Input>, operator1: Operator<Input, A>): Stream<A>;\nexport function pipe<Input, A, B>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n): Stream<B>;\nexport function pipe<Input, A, B, C>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n): Stream<C>;\nexport function pipe<Input, A, B, C, D>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n): Stream<D>;\nexport function pipe<Input, A, B, C, D, E>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n): Stream<E>;\nexport function pipe<Input, A, B, C, D, E, F>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n): Stream<F>;\nexport function pipe<Input, A, B, C, D, E, F, G>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n): Stream<G>;\nexport function pipe<Input, A, B, C, D, E, F, G, H>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n): Stream<H>;\nexport function pipe<Input, A, B, C, D, E, F, G, H, I>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n operator9: Operator<H, I>,\n): Stream<I>;\nexport function pipe<Input, A, B, C, D, E, F, G, H, I, J>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n operator9: Operator<H, I>,\n operator10: Operator<I, J>,\n): Stream<J>;\nexport function pipe<Input, const Operators extends readonly unknown[]>(\n source: Stream<Input>,\n ...operators: Operators & ValidPipe<Input, Operators>\n): PipedStream<Input, Operators>;\nexport function pipe<Input, const Operators extends readonly unknown[]>(\n source: Stream<Input>,\n ...operators: Operators & ValidPipe<Input, Operators>\n): PipedStream<Input, Operators> {\n return applyOperators(source as Stream<unknown>, operators) as PipedStream<Input, Operators>;\n}\n"],"mappings":";;AA4FA,SAAgB,EACd,GACA,GAAG,GAC4B;CAC/B,OAAO,EAAe,GAA2B,CAAS;AAC5D"}
1
+ {"version":3,"file":"pipe.js","names":[],"sources":["../src/pipe.ts"],"sourcesContent":["import { applyOperators } from './_pipe';\nimport type { Operator, PipedStream, Stream, ValidPipe } from './types';\n\n/** Standalone composition preserves contextual types for inline generic operators. */\nexport function pipe<Input>(source: Stream<Input>): Stream<Input>;\nexport function pipe<Input, A>(source: Stream<Input>, operator1: Operator<Input, A>): Stream<A>;\nexport function pipe<Input, A, B>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n): Stream<B>;\nexport function pipe<Input, A, B, C>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n): Stream<C>;\nexport function pipe<Input, A, B, C, D>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n): Stream<D>;\nexport function pipe<Input, A, B, C, D, E>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n): Stream<E>;\nexport function pipe<Input, A, B, C, D, E, F>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n): Stream<F>;\nexport function pipe<Input, A, B, C, D, E, F, G>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n): Stream<G>;\nexport function pipe<Input, A, B, C, D, E, F, G, H>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n): Stream<H>;\nexport function pipe<Input, A, B, C, D, E, F, G, H, I>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n operator9: Operator<H, I>,\n): Stream<I>;\nexport function pipe<Input, A, B, C, D, E, F, G, H, I, J>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n operator9: Operator<H, I>,\n operator10: Operator<I, J>,\n): Stream<J>;\nexport function pipe<Input, const Operators extends readonly unknown[]>(\n source: Stream<Input>,\n ...operators: Operators & ValidPipe<Input, Operators>\n): PipedStream<Input, Operators>;\nexport function pipe<Input, const Operators extends readonly unknown[]>(\n source: Stream<Input>,\n ...operators: Operators & ValidPipe<Input, Operators>\n): PipedStream<Input, Operators> {\n return applyOperators(source as Stream<unknown>, operators) as PipedStream<Input, Operators>;\n}\n"],"mappings":";;AA2FA,SAAgB,EACd,GACA,GAAG,GAC4B;CAC/B,OAAO,EAAe,GAA2B,CAAS;AAC5D"}
package/dist/ripple.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { fromSignal, toSignal } from './adapters/ripple';
2
1
  export type { SignalBinding, ToSignalOptions } from './adapters/ripple';
2
+ export { fromSignal, toSignal } from './adapters/ripple';
3
3
  //# sourceMappingURL=ripple.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ripple.d.ts","sourceRoot":"","sources":["../src/ripple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"ripple.d.ts","sourceRoot":"","sources":["../src/ripple.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"subject.cjs","names":[],"sources":["../src/subject.ts"],"sourcesContent":["import type { Sink, Stream } from './types';\n\nimport { assertNonNegativeInteger } from './_numeric';\nimport { stream } from './core';\n\nexport type ChannelOptions<T> = {\n initial?: T;\n replay?: number;\n};\n\nexport type Channel<T> = {\n [Symbol.dispose](): void;\n readonly disposalSignal: AbortSignal;\n dispose(): void;\n readonly disposed: boolean;\n send(value: T): void;\n readonly stream: Stream<T>;\n};\n\nfunction replayCapacity<T>(options: ChannelOptions<T>): number {\n const capacity = options.replay ?? ('initial' in options ? 1 : 0);\n\n assertNonNegativeInteger(capacity, 'Channel replay');\n\n return capacity;\n}\n\n/** Channels own mutable multicast state; disposal is their only terminal event. */\nexport function createChannel<T>(options: ChannelOptions<T> = {}): Channel<T> {\n const capacity = replayCapacity(options);\n const controller = new AbortController();\n const listeners = new Set<Sink<T>>();\n const replay: T[] = [];\n\n if ('initial' in options && capacity > 0) replay.push(options.initial as T);\n\n const source = stream<T>((sink) => {\n for (const value of replay) sink.next(value);\n\n if (controller.signal.aborted) {\n sink.complete();\n\n return;\n }\n\n listeners.add(sink);\n\n return () => listeners.delete(sink);\n });\n\n const dispose = (): void => {\n if (controller.signal.aborted) return;\n\n controller.abort();\n\n for (const listener of [...listeners]) listener.complete();\n\n listeners.clear();\n };\n\n return {\n get disposalSignal(): AbortSignal {\n return controller.signal;\n },\n dispose,\n get disposed(): boolean {\n return controller.signal.aborted;\n },\n send(value: T): void {\n if (controller.signal.aborted) return;\n\n if (capacity > 0) {\n if (replay.length === capacity) replay.shift();\n\n replay.push(value);\n }\n\n for (const listener of [...listeners]) listener.next(value);\n },\n stream: source,\n [Symbol.dispose]: dispose,\n };\n}\n"],"mappings":"0DAmBA,SAAS,EAAkB,EAAoC,CAC7D,IAAM,EAAW,EAAQ,QAAW,cAAa,GAIjD,OAFA,EAAA,yBAAyB,EAAU,gBAAgB,EAE5C,CACT,CAGA,SAAgB,EAAiB,EAA6B,CAAC,EAAe,CAC5E,IAAM,EAAW,EAAe,CAAO,EACjC,EAAa,IAAI,gBACjB,EAAY,IAAI,IAChB,EAAc,CAAC,EAEjB,YAAa,GAAW,EAAW,GAAG,EAAO,KAAK,EAAQ,OAAY,EAE1E,IAAM,EAAS,EAAA,OAAW,GAAS,CACjC,IAAK,IAAM,KAAS,EAAQ,EAAK,KAAK,CAAK,EAE3C,GAAI,EAAW,OAAO,QAAS,CAC7B,EAAK,SAAS,EAEd,MACF,CAIA,OAFA,EAAU,IAAI,CAAI,MAEL,EAAU,OAAO,CAAI,CACpC,CAAC,EAEK,MAAsB,CACtB,MAAW,OAAO,QAEtB,GAAW,MAAM,EAEjB,IAAK,IAAM,IAAY,CAAC,GAAG,CAAS,EAAG,EAAS,SAAS,EAEzD,EAAU,MAAM,CAJC,CAKnB,EAEA,MAAO,CACL,IAAI,gBAA8B,CAChC,OAAO,EAAW,MACpB,EACA,UACA,IAAI,UAAoB,CACtB,OAAO,EAAW,OAAO,OAC3B,EACA,KAAK,EAAgB,CACf,MAAW,OAAO,QAEtB,CAAI,EAAW,IACT,EAAO,SAAW,GAAU,EAAO,MAAM,EAE7C,EAAO,KAAK,CAAK,GAGnB,IAAK,IAAM,IAAY,CAAC,GAAG,CAAS,EAAG,EAAS,KAAK,CAAK,CAF1D,CAGF,EACA,OAAQ,GACP,OAAO,SAAU,CACpB,CACF"}
1
+ {"version":3,"file":"subject.cjs","names":[],"sources":["../src/subject.ts"],"sourcesContent":["import { assertNonNegativeInteger } from './_numeric';\nimport { stream } from './core';\nimport type { Sink, Stream } from './types';\n\nexport type ChannelOptions<T> = {\n initial?: T;\n replay?: number;\n};\n\nexport type Channel<T> = {\n [Symbol.dispose](): void;\n readonly disposalSignal: AbortSignal;\n dispose(): void;\n readonly disposed: boolean;\n send(value: T): void;\n readonly stream: Stream<T>;\n};\n\nfunction replayCapacity<T>(options: ChannelOptions<T>): number {\n const capacity = options.replay ?? ('initial' in options ? 1 : 0);\n\n assertNonNegativeInteger(capacity, 'Channel replay');\n\n return capacity;\n}\n\n/** Channels own mutable multicast state; disposal is their only terminal event. */\nexport function createChannel<T>(options: ChannelOptions<T> = {}): Channel<T> {\n const capacity = replayCapacity(options);\n const controller = new AbortController();\n const listeners = new Set<Sink<T>>();\n const replay: T[] = [];\n\n if ('initial' in options && capacity > 0) replay.push(options.initial as T);\n\n const source = stream<T>((sink) => {\n for (const value of replay) sink.next(value);\n\n if (controller.signal.aborted) {\n sink.complete();\n\n return;\n }\n\n listeners.add(sink);\n\n return () => listeners.delete(sink);\n });\n\n const dispose = (): void => {\n if (controller.signal.aborted) return;\n\n controller.abort();\n\n for (const listener of [...listeners]) listener.complete();\n\n listeners.clear();\n };\n\n return {\n get disposalSignal(): AbortSignal {\n return controller.signal;\n },\n dispose,\n get disposed(): boolean {\n return controller.signal.aborted;\n },\n send(value: T): void {\n if (controller.signal.aborted) return;\n\n if (capacity > 0) {\n if (replay.length === capacity) replay.shift();\n\n replay.push(value);\n }\n\n for (const listener of [...listeners]) listener.next(value);\n },\n stream: source,\n [Symbol.dispose]: dispose,\n };\n}\n"],"mappings":"0DAkBA,SAAS,EAAkB,EAAoC,CAC7D,IAAM,EAAW,EAAQ,QAAW,cAAa,GAIjD,OAFA,EAAA,yBAAyB,EAAU,gBAAgB,EAE5C,CACT,CAGA,SAAgB,EAAiB,EAA6B,CAAC,EAAe,CAC5E,IAAM,EAAW,EAAe,CAAO,EACjC,EAAa,IAAI,gBACjB,EAAY,IAAI,IAChB,EAAc,CAAC,EAEjB,YAAa,GAAW,EAAW,GAAG,EAAO,KAAK,EAAQ,OAAY,EAE1E,IAAM,EAAS,EAAA,OAAW,GAAS,CACjC,IAAK,IAAM,KAAS,EAAQ,EAAK,KAAK,CAAK,EAE3C,GAAI,EAAW,OAAO,QAAS,CAC7B,EAAK,SAAS,EAEd,MACF,CAIA,OAFA,EAAU,IAAI,CAAI,MAEL,EAAU,OAAO,CAAI,CACpC,CAAC,EAEK,MAAsB,CACtB,MAAW,OAAO,QAEtB,GAAW,MAAM,EAEjB,IAAK,IAAM,IAAY,CAAC,GAAG,CAAS,EAAG,EAAS,SAAS,EAEzD,EAAU,MAAM,CAJC,CAKnB,EAEA,MAAO,CACL,IAAI,gBAA8B,CAChC,OAAO,EAAW,MACpB,EACA,UACA,IAAI,UAAoB,CACtB,OAAO,EAAW,OAAO,OAC3B,EACA,KAAK,EAAgB,CACf,MAAW,OAAO,QAEtB,CAAI,EAAW,IACT,EAAO,SAAW,GAAU,EAAO,MAAM,EAE7C,EAAO,KAAK,CAAK,GAGnB,IAAK,IAAM,IAAY,CAAC,GAAG,CAAS,EAAG,EAAS,KAAK,CAAK,CAF1D,CAGF,EACA,OAAQ,GACP,OAAO,SAAU,CACpB,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"subject.d.ts","sourceRoot":"","sources":["../src/subject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,MAAM,EAAE,MAAM,SAAS,CAAC;AAK5C,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACvB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;IACrC,OAAO,IAAI,IAAI,CAAC;IAChB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CAC5B,CAAC;AAUF,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAE,cAAc,CAAC,CAAC,CAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAsD5E"}
1
+ {"version":3,"file":"subject.d.ts","sourceRoot":"","sources":["../src/subject.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAQ,MAAM,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACvB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;IACrC,OAAO,IAAI,IAAI,CAAC;IAChB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CAC5B,CAAC;AAUF,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAE,cAAc,CAAC,CAAC,CAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAsD5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"subject.js","names":[],"sources":["../src/subject.ts"],"sourcesContent":["import type { Sink, Stream } from './types';\n\nimport { assertNonNegativeInteger } from './_numeric';\nimport { stream } from './core';\n\nexport type ChannelOptions<T> = {\n initial?: T;\n replay?: number;\n};\n\nexport type Channel<T> = {\n [Symbol.dispose](): void;\n readonly disposalSignal: AbortSignal;\n dispose(): void;\n readonly disposed: boolean;\n send(value: T): void;\n readonly stream: Stream<T>;\n};\n\nfunction replayCapacity<T>(options: ChannelOptions<T>): number {\n const capacity = options.replay ?? ('initial' in options ? 1 : 0);\n\n assertNonNegativeInteger(capacity, 'Channel replay');\n\n return capacity;\n}\n\n/** Channels own mutable multicast state; disposal is their only terminal event. */\nexport function createChannel<T>(options: ChannelOptions<T> = {}): Channel<T> {\n const capacity = replayCapacity(options);\n const controller = new AbortController();\n const listeners = new Set<Sink<T>>();\n const replay: T[] = [];\n\n if ('initial' in options && capacity > 0) replay.push(options.initial as T);\n\n const source = stream<T>((sink) => {\n for (const value of replay) sink.next(value);\n\n if (controller.signal.aborted) {\n sink.complete();\n\n return;\n }\n\n listeners.add(sink);\n\n return () => listeners.delete(sink);\n });\n\n const dispose = (): void => {\n if (controller.signal.aborted) return;\n\n controller.abort();\n\n for (const listener of [...listeners]) listener.complete();\n\n listeners.clear();\n };\n\n return {\n get disposalSignal(): AbortSignal {\n return controller.signal;\n },\n dispose,\n get disposed(): boolean {\n return controller.signal.aborted;\n },\n send(value: T): void {\n if (controller.signal.aborted) return;\n\n if (capacity > 0) {\n if (replay.length === capacity) replay.shift();\n\n replay.push(value);\n }\n\n for (const listener of [...listeners]) listener.next(value);\n },\n stream: source,\n [Symbol.dispose]: dispose,\n };\n}\n"],"mappings":";;;AAmBA,SAAS,EAAkB,GAAoC;CAC7D,IAAM,IAAW,EAAQ,UAAW,eAAa;CAIjD,OAFA,EAAyB,GAAU,gBAAgB,GAE5C;AACT;AAGA,SAAgB,EAAiB,IAA6B,CAAC,GAAe;CAC5E,IAAM,IAAW,EAAe,CAAO,GACjC,IAAa,IAAI,gBAAgB,GACjC,oBAAY,IAAI,IAAa,GAC7B,IAAc,CAAC;CAErB,AAAI,aAAa,KAAW,IAAW,KAAG,EAAO,KAAK,EAAQ,OAAY;CAE1E,IAAM,IAAS,GAAW,MAAS;EACjC,KAAK,IAAM,KAAS,GAAQ,EAAK,KAAK,CAAK;EAE3C,IAAI,EAAW,OAAO,SAAS;GAC7B,EAAK,SAAS;GAEd;EACF;EAIA,OAFA,EAAU,IAAI,CAAI,SAEL,EAAU,OAAO,CAAI;CACpC,CAAC,GAEK,UAAsB;EACtB,OAAW,OAAO,SAEtB;KAAW,MAAM;GAEjB,KAAK,IAAM,KAAY,CAAC,GAAG,CAAS,GAAG,EAAS,SAAS;GAEzD,EAAU,MAAM;EAJC;CAKnB;CAEA,OAAO;EACL,IAAI,iBAA8B;GAChC,OAAO,EAAW;EACpB;EACA;EACA,IAAI,WAAoB;GACtB,OAAO,EAAW,OAAO;EAC3B;EACA,KAAK,GAAgB;GACf,OAAW,OAAO,SAEtB;IAAI,IAAW,MACT,EAAO,WAAW,KAAU,EAAO,MAAM,GAE7C,EAAO,KAAK,CAAK;IAGnB,KAAK,IAAM,KAAY,CAAC,GAAG,CAAS,GAAG,EAAS,KAAK,CAAK;GAF1D;EAGF;EACA,QAAQ;GACP,OAAO,UAAU;CACpB;AACF"}
1
+ {"version":3,"file":"subject.js","names":[],"sources":["../src/subject.ts"],"sourcesContent":["import { assertNonNegativeInteger } from './_numeric';\nimport { stream } from './core';\nimport type { Sink, Stream } from './types';\n\nexport type ChannelOptions<T> = {\n initial?: T;\n replay?: number;\n};\n\nexport type Channel<T> = {\n [Symbol.dispose](): void;\n readonly disposalSignal: AbortSignal;\n dispose(): void;\n readonly disposed: boolean;\n send(value: T): void;\n readonly stream: Stream<T>;\n};\n\nfunction replayCapacity<T>(options: ChannelOptions<T>): number {\n const capacity = options.replay ?? ('initial' in options ? 1 : 0);\n\n assertNonNegativeInteger(capacity, 'Channel replay');\n\n return capacity;\n}\n\n/** Channels own mutable multicast state; disposal is their only terminal event. */\nexport function createChannel<T>(options: ChannelOptions<T> = {}): Channel<T> {\n const capacity = replayCapacity(options);\n const controller = new AbortController();\n const listeners = new Set<Sink<T>>();\n const replay: T[] = [];\n\n if ('initial' in options && capacity > 0) replay.push(options.initial as T);\n\n const source = stream<T>((sink) => {\n for (const value of replay) sink.next(value);\n\n if (controller.signal.aborted) {\n sink.complete();\n\n return;\n }\n\n listeners.add(sink);\n\n return () => listeners.delete(sink);\n });\n\n const dispose = (): void => {\n if (controller.signal.aborted) return;\n\n controller.abort();\n\n for (const listener of [...listeners]) listener.complete();\n\n listeners.clear();\n };\n\n return {\n get disposalSignal(): AbortSignal {\n return controller.signal;\n },\n dispose,\n get disposed(): boolean {\n return controller.signal.aborted;\n },\n send(value: T): void {\n if (controller.signal.aborted) return;\n\n if (capacity > 0) {\n if (replay.length === capacity) replay.shift();\n\n replay.push(value);\n }\n\n for (const listener of [...listeners]) listener.next(value);\n },\n stream: source,\n [Symbol.dispose]: dispose,\n };\n}\n"],"mappings":";;;AAkBA,SAAS,EAAkB,GAAoC;CAC7D,IAAM,IAAW,EAAQ,UAAW,eAAa;CAIjD,OAFA,EAAyB,GAAU,gBAAgB,GAE5C;AACT;AAGA,SAAgB,EAAiB,IAA6B,CAAC,GAAe;CAC5E,IAAM,IAAW,EAAe,CAAO,GACjC,IAAa,IAAI,gBAAgB,GACjC,oBAAY,IAAI,IAAa,GAC7B,IAAc,CAAC;CAErB,AAAI,aAAa,KAAW,IAAW,KAAG,EAAO,KAAK,EAAQ,OAAY;CAE1E,IAAM,IAAS,GAAW,MAAS;EACjC,KAAK,IAAM,KAAS,GAAQ,EAAK,KAAK,CAAK;EAE3C,IAAI,EAAW,OAAO,SAAS;GAC7B,EAAK,SAAS;GAEd;EACF;EAIA,OAFA,EAAU,IAAI,CAAI,SAEL,EAAU,OAAO,CAAI;CACpC,CAAC,GAEK,UAAsB;EACtB,OAAW,OAAO,SAEtB;KAAW,MAAM;GAEjB,KAAK,IAAM,KAAY,CAAC,GAAG,CAAS,GAAG,EAAS,SAAS;GAEzD,EAAU,MAAM;EAJC;CAKnB;CAEA,OAAO;EACL,IAAI,iBAA8B;GAChC,OAAO,EAAW;EACpB;EACA;EACA,IAAI,WAAoB;GACtB,OAAO,EAAW,OAAO;EAC3B;EACA,KAAK,GAAgB;GACf,OAAW,OAAO,SAEtB;IAAI,IAAW,MACT,EAAO,WAAW,KAAU,EAAO,MAAM,GAE7C,EAAO,KAAK,CAAK;IAGnB,KAAK,IAAM,KAAY,CAAC,GAAG,CAAS,GAAG,EAAS,KAAK,CAAK;GAF1D;EAGF;EACA,QAAQ;GACP,OAAO,UAAU;CACpB;AACF"}
@@ -1,3 +1,3 @@
1
- export { createChannel } from './subject';
2
1
  export type { Channel, ChannelOptions } from './subject';
2
+ export { createChannel } from './subject';
3
3
  //# sourceMappingURL=subjects.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subjects.d.ts","sourceRoot":"","sources":["../src/subjects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"subjects.d.ts","sourceRoot":"","sources":["../src/subjects.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC"}
package/dist/types.d.ts CHANGED
@@ -17,7 +17,7 @@ export type Sink<T> = {
17
17
  error(reason: unknown): void;
18
18
  next(value: T): void;
19
19
  };
20
- export type Producer<T> = (sink: Sink<T>, signal: AbortSignal) => Teardown | void;
20
+ export type Producer<T> = (sink: Sink<T>, signal: AbortSignal) => Teardown | undefined;
21
21
  export type Operator<A = unknown, B = unknown> = (source: Stream<A>) => Stream<B>;
22
22
  /** Streams describe reusable work. Subscriptions own lifetime. */
23
23
  export interface Stream<T> {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC;AAElC,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,WAAW,IAAI,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;IACxB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI;IACpB,QAAQ,IAAI,IAAI,CAAC;IACjB,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,KAAK,QAAQ,GAAG,IAAI,CAAC;AAElF,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;AAElF,kEAAkE;AAClE,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,YAAY,CAAC;CACnG;AAED,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC;AAErE,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,KAAK,UAAU,CAAC,KAAK,EAAE,SAAS,SAAS,SAAS,OAAO,EAAE,IAAI,SAAS,SAAS,SAAS;IACxF,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC;IAC7B,GAAG,MAAM,SAAS;CACnB,GACG,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,GAC7B,MAAM,CAAC,KAAK,CAAC,CAAC;AAElB,MAAM,MAAM,SAAS,CAAC,KAAK,EAAE,SAAS,SAAS,SAAS,OAAO,EAAE,IAAI,SAAS,SAAS,SAAS,EAAE,GAC9F,EAAE,GACF,SAAS,SAAS,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC,EAAE,GAAG,MAAM,SAAS,CAAC,GAC5E,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,GAC1D,KAAK,CAAC;AAEZ,MAAM,MAAM,WAAW,CAAC,KAAK,EAAE,SAAS,SAAS,SAAS,OAAO,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC;AAElC,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,WAAW,IAAI,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;IACxB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI;IACpB,QAAQ,IAAI,IAAI,CAAC;IACjB,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,KAAK,QAAQ,GAAG,SAAS,CAAC;AAEvF,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;AAElF,kEAAkE;AAClE,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,YAAY,CAAC;CACnG;AAED,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC;AAErE,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,KAAK,UAAU,CAAC,KAAK,EAAE,SAAS,SAAS,SAAS,OAAO,EAAE,IAAI,SAAS,SAAS,SAAS;IACxF,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC;IAC7B,GAAG,MAAM,SAAS;CACnB,GACG,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,GAC7B,MAAM,CAAC,KAAK,CAAC,CAAC;AAElB,MAAM,MAAM,SAAS,CAAC,KAAK,EAAE,SAAS,SAAS,SAAS,OAAO,EAAE,IAAI,SAAS,SAAS,SAAS,EAAE,GAC9F,EAAE,GACF,SAAS,SAAS,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC,EAAE,GAAG,MAAM,SAAS,CAAC,GAC5E,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,GAC1D,KAAK,CAAC;AAEZ,MAAM,MAAM,WAAW,CAAC,KAAK,EAAE,SAAS,SAAS,SAAS,OAAO,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,11 @@
1
1
  {
2
2
  "name": "@vielzeug/flux",
3
- "version": "2.0.2",
3
+ "version": "2.0.4",
4
4
  "description": "Minimal push streams with explicit ownership, buffering, and ecosystem adapters",
5
5
  "type": "module",
6
+ "engines": {
7
+ "node": ">=22"
8
+ },
6
9
  "files": [
7
10
  "dist"
8
11
  ],
@@ -11,63 +14,82 @@
11
14
  "types": "dist/index.d.ts",
12
15
  "exports": {
13
16
  ".": {
14
- "types": "./dist/index.d.ts",
15
17
  "import": "./dist/index.js",
16
- "require": "./dist/index.cjs"
18
+ "require": "./dist/index.cjs",
19
+ "types": "./dist/index.d.ts"
17
20
  },
18
21
  "./async": {
19
- "types": "./dist/async.d.ts",
20
22
  "import": "./dist/async.js",
21
- "require": "./dist/async.cjs"
23
+ "require": "./dist/async.cjs",
24
+ "types": "./dist/async.d.ts"
22
25
  },
23
26
  "./courier": {
24
- "types": "./dist/courier.d.ts",
25
27
  "import": "./dist/courier.js",
26
- "require": "./dist/courier.cjs"
28
+ "require": "./dist/courier.cjs",
29
+ "types": "./dist/courier.d.ts"
27
30
  },
28
31
  "./herald": {
29
- "types": "./dist/herald.d.ts",
30
32
  "import": "./dist/herald.js",
31
- "require": "./dist/herald.cjs"
33
+ "require": "./dist/herald.cjs",
34
+ "types": "./dist/herald.d.ts"
32
35
  },
33
36
  "./pulse": {
34
- "types": "./dist/pulse.d.ts",
35
37
  "import": "./dist/pulse.js",
36
- "require": "./dist/pulse.cjs"
38
+ "require": "./dist/pulse.cjs",
39
+ "types": "./dist/pulse.d.ts"
37
40
  },
38
41
  "./ripple": {
39
- "types": "./dist/ripple.d.ts",
40
42
  "import": "./dist/ripple.js",
41
- "require": "./dist/ripple.cjs"
43
+ "require": "./dist/ripple.cjs",
44
+ "types": "./dist/ripple.d.ts"
42
45
  },
43
46
  "./subjects": {
44
- "types": "./dist/subjects.d.ts",
45
47
  "import": "./dist/subjects.js",
46
- "require": "./dist/subjects.cjs"
48
+ "require": "./dist/subjects.cjs",
49
+ "types": "./dist/subjects.d.ts"
47
50
  }
48
51
  },
52
+ "typesVersions": {
53
+ "*": {
54
+ "async": [
55
+ "dist/async.d.ts"
56
+ ],
57
+ "courier": [
58
+ "dist/courier.d.ts"
59
+ ],
60
+ "herald": [
61
+ "dist/herald.d.ts"
62
+ ],
63
+ "pulse": [
64
+ "dist/pulse.d.ts"
65
+ ],
66
+ "ripple": [
67
+ "dist/ripple.d.ts"
68
+ ],
69
+ "subjects": [
70
+ "dist/subjects.d.ts"
71
+ ]
72
+ }
73
+ },
74
+ "publishConfig": {
75
+ "access": "public",
76
+ "registry": "https://registry.npmjs.org/"
77
+ },
49
78
  "scripts": {
50
79
  "build": "vite build && pnpm run build:bundle && pnpm run build:types && pnpm run verify:exports",
51
80
  "build:bundle": "vite build --config vite.bundle.config.ts",
52
81
  "build:types": "tsc -p tsconfig.declarations.json",
53
- "fix": "eslint --fix src",
54
- "lint": "eslint src",
82
+ "fix": "biome check --write src",
83
+ "lint": "biome ci src",
55
84
  "prepublishOnly": "pnpm run build",
56
85
  "test": "vitest",
57
86
  "verify:exports": "node scripts/verify-exports.mjs && node scripts/verify-package-exports.mjs"
58
87
  },
59
- "publishConfig": {
60
- "access": "public",
61
- "registry": "https://registry.npmjs.org/"
62
- },
63
- "engines": {
64
- "node": ">=22"
65
- },
66
88
  "peerDependencies": {
67
89
  "@vielzeug/courier": "2.0.1",
68
90
  "@vielzeug/herald": "2.0.0",
69
- "@vielzeug/pulse": "2.1.0",
70
- "@vielzeug/ripple": "2.0.1"
91
+ "@vielzeug/pulse": "2.1.2",
92
+ "@vielzeug/ripple": "2.2.0"
71
93
  },
72
94
  "peerDependenciesMeta": {
73
95
  "@vielzeug/courier": {
@@ -84,35 +106,13 @@
84
106
  }
85
107
  },
86
108
  "devDependencies": {
87
- "@types/node": "^26.1.2",
109
+ "@types/node": "^26.2.0",
88
110
  "@vielzeug/courier": "2.0.1",
89
111
  "@vielzeug/herald": "2.0.0",
90
- "@vielzeug/pulse": "2.1.0",
91
- "@vielzeug/ripple": "2.0.1",
112
+ "@vielzeug/pulse": "2.1.2",
113
+ "@vielzeug/ripple": "2.2.0",
92
114
  "typescript": "^6.0.3",
93
- "vite": "^8.2.0",
115
+ "vite": "^8.2.1",
94
116
  "vitest": "^4.1.10"
95
- },
96
- "typesVersions": {
97
- "*": {
98
- "async": [
99
- "dist/async.d.ts"
100
- ],
101
- "courier": [
102
- "dist/courier.d.ts"
103
- ],
104
- "herald": [
105
- "dist/herald.d.ts"
106
- ],
107
- "pulse": [
108
- "dist/pulse.d.ts"
109
- ],
110
- "ripple": [
111
- "dist/ripple.d.ts"
112
- ],
113
- "subjects": [
114
- "dist/subjects.d.ts"
115
- ]
116
- }
117
117
  }
118
118
  }