@vielzeug/flux 26.10.14 → 26.10.16

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.js +68 -1
  4. package/dist/_iterator.js.map +1 -1
  5. package/dist/_link.cjs.map +1 -1
  6. package/dist/_link.js +7 -1
  7. package/dist/_link.js.map +1 -1
  8. package/dist/_numeric.cjs.map +1 -1
  9. package/dist/_numeric.js +13 -1
  10. package/dist/_numeric.js.map +1 -1
  11. package/dist/_safe.cjs.map +1 -1
  12. package/dist/_safe.js +11 -1
  13. package/dist/_safe.js.map +1 -1
  14. package/dist/_scheduler.cjs.map +1 -1
  15. package/dist/_scheduler.js +14 -1
  16. package/dist/_scheduler.js.map +1 -1
  17. package/dist/_subscription.cjs +1 -1
  18. package/dist/_subscription.cjs.map +1 -1
  19. package/dist/_subscription.js +72 -1
  20. package/dist/_subscription.js.map +1 -1
  21. package/dist/async.cjs.map +1 -1
  22. package/dist/async.js +10 -1
  23. package/dist/async.js.map +1 -1
  24. package/dist/channel.cjs +1 -1
  25. package/dist/channel.cjs.map +1 -1
  26. package/dist/channel.js +53 -1
  27. package/dist/channel.js.map +1 -1
  28. package/dist/core.cjs.map +1 -1
  29. package/dist/core.js +46 -1
  30. package/dist/core.js.map +1 -1
  31. package/dist/errors.cjs.map +1 -1
  32. package/dist/errors.js +23 -1
  33. package/dist/errors.js.map +1 -1
  34. package/dist/flux.cjs +1 -1
  35. package/dist/flux.cjs.map +1 -1
  36. package/dist/flux.iife.js +1 -1
  37. package/dist/flux.iife.js.map +1 -1
  38. package/dist/flux.js +754 -1
  39. package/dist/flux.js.map +1 -1
  40. package/dist/index.js +11 -1
  41. package/dist/operators/combination.cjs +1 -1
  42. package/dist/operators/combination.cjs.map +1 -1
  43. package/dist/operators/combination.js +86 -1
  44. package/dist/operators/combination.js.map +1 -1
  45. package/dist/operators/creation.cjs +1 -1
  46. package/dist/operators/creation.cjs.map +1 -1
  47. package/dist/operators/creation.js +85 -1
  48. package/dist/operators/creation.js.map +1 -1
  49. package/dist/operators/filtering.cjs.map +1 -1
  50. package/dist/operators/filtering.js +92 -1
  51. package/dist/operators/filtering.js.map +1 -1
  52. package/dist/operators/transformation.cjs +1 -1
  53. package/dist/operators/transformation.cjs.map +1 -1
  54. package/dist/operators/transformation.js +119 -1
  55. package/dist/operators/transformation.js.map +1 -1
  56. package/dist/operators/utility.cjs +1 -1
  57. package/dist/operators/utility.cjs.map +1 -1
  58. package/dist/operators/utility.js +103 -1
  59. package/dist/operators/utility.js.map +1 -1
  60. package/dist/pipe.cjs.map +1 -1
  61. package/dist/pipe.js +7 -1
  62. package/dist/pipe.js.map +1 -1
  63. package/package.json +5 -5
package/dist/flux.js CHANGED
@@ -1,2 +1,755 @@
1
- function abortError(e,t=`Aborted`){return e?.reason??new DOMException(t,`AbortError`)}function assertNonNegativeInteger(e,t){if(!Number.isInteger(e)||e<0)throw RangeError(`${t} must be a non-negative integer`)}function assertPositiveInteger(e,t){if(!Number.isInteger(e)||e<1)throw RangeError(`${t} must be a positive integer`)}function assertDuration(e,t){if(!Number.isFinite(e)||e<0||e>2147483647)throw RangeError(`${t} must be between 0 and 2147483647 milliseconds`)}var FluxError=class extends Error{constructor(e,t){super(e,t),this.name=new.target.name,Object.setPrototypeOf(this,new.target.prototype)}},FluxTimeoutError=class extends FluxError{ms;constructor(e){super(`Timeout after ${e}ms`),this.ms=e}},FluxEmptyError=class extends FluxError{constructor(e=`Stream completed without emitting any value`){super(e)}},FluxCapacityError=class extends FluxError{capacity;constructor(e,t){super(t),this.capacity=e}};function toIterator(e,t){if(assertPositiveInteger(t.capacity,`Async iterable capacity`),t.overflow!==`drop-newest`&&t.overflow!==`drop-oldest`&&t.overflow!==`error`)throw RangeError(`Async iterable overflow must be "drop-newest", "drop-oldest", or "error"`);let n=new AbortController,r=[],i={kind:`open`,queue:[]},detach=()=>t.signal?.removeEventListener(`abort`,abort),resolveDone=()=>{for(;r.length>0;)r.shift()?.resolve({done:!0,value:void 0})},complete=()=>{i.kind===`open`&&(i.kind=`complete`,detach(),resolveDone())},fail=e=>{if(i.kind===`open`)for(i={kind:`error`,queue:i.queue,reason:e},n.abort(),detach();r.length>0;)r.shift()?.reject(e)},abort=()=>{fail(abortError(t.signal,`Async iteration aborted`))},stop=()=>{n.abort(),detach(),i={kind:`returned`},resolveDone()},a={complete,error:fail,next(e){if(i.kind!==`open`)return;let n=r.shift();if(n){n.resolve({done:!1,value:e});return}if(i.queue.length<t.capacity){i.queue.push(e);return}t.overflow===`drop-oldest`?(i.queue.shift(),i.queue.push(e)):t.overflow===`error`&&fail(new FluxCapacityError(t.capacity,`Async iterable buffer capacity exceeded`))}};return t.signal?.aborted?abort():t.signal?.addEventListener(`abort`,abort,{once:!0}),e.subscribe(a,{signal:n.signal}),{next(){return i.kind===`returned`?Promise.resolve({done:!0,value:void 0}):i.queue.length>0?Promise.resolve({done:!1,value:i.queue.shift()}):i.kind===`error`?Promise.reject(i.reason):i.kind===`complete`?Promise.resolve({done:!0,value:void 0}):new Promise((e,t)=>r.push({reject:t,resolve:e}))},return(){return stop(),Promise.resolve({done:!0,value:void 0})},[Symbol.asyncIterator](){return this}}}function toAsyncIterable(e,t){return{[Symbol.asyncIterator](){return toIterator(e,t)}}}function reportUnhandledError(e){let t=globalThis.reportError;if(t){t(e);return}queueMicrotask(()=>{throw e})}function createSubscription(e,t){let n=typeof e==`function`?{next:e}:e,r=new AbortController,i=!1,a,unsubscribe=()=>{if(!i){i=!0,r.abort(),t?.removeEventListener(`abort`,unsubscribe);try{a?.()}catch(e){reportUnhandledError(e)}}},o={complete(){if(!i){try{n.complete?.()}catch(e){reportUnhandledError(e)}unsubscribe()}},error(e){if(!i){if(n.error)try{n.error(e)}catch(e){reportUnhandledError(e)}else reportUnhandledError(e);unsubscribe()}},next(e){if(!i)try{n.next(e)}catch(e){unsubscribe(),reportUnhandledError(e)}}},add=e=>{if(e){if(i){try{e()}catch(e){reportUnhandledError(e)}return}a=e}};return t?.aborted?unsubscribe():t?.addEventListener(`abort`,unsubscribe,{once:!0}),{add,signal:r.signal,sink:o,subscription:{get closed(){return i},[Symbol.dispose]:unsubscribe,unsubscribe}}}function stream(e){return{subscribe(t,n){let r=createSubscription(t,n?.signal);if(r.subscription.closed)return r.subscription;try{r.add(e(r.sink,r.signal))}catch(e){r.sink.error(e)}return r.subscription}}}function fromSubscribe(e){return stream(t=>e(t.next))}function fromStore(e){return stream((t,n)=>{let r;try{if(r=e.getSnapshot(),t.next(r),n.aborted)return}catch(e){t.error(e);return}let i=e.subscribe(()=>{try{r=e.getSnapshot(),t.next(r)}catch(e){t.error(e)}});if(n.aborted)return i;try{let n=e.getSnapshot();Object.is(r,n)||t.next(n)}catch(e){t.error(e)}return i})}function replayCapacity(e){let t=`initial`in e,n=e.replay??+!!t;if(assertNonNegativeInteger(n,`Channel replay`),t&&n===0)throw RangeError(`Channel replay cannot be 0 when initial is provided: the initial value would be immediately dropped`);return n}function createChannel(e={}){let t=replayCapacity(e),n=new AbortController,r=new Set,i=[];`initial`in e&&t>0&&i.push(e.initial);let a=stream(e=>{if(n.signal.aborted){e.complete();return}for(let t of i)e.next(t);return r.add(e),()=>r.delete(e)}),dispose=()=>{if(!n.signal.aborted){n.abort();for(let e of[...r])e.complete();r.clear(),i.length=0,s.length=0}},o=!1,s=[],flush=()=>{o=!0;try{for(;s.length>0;){let e=s.shift();t>0&&(i.length===t&&i.shift(),i.push(e));for(let t of[...r])t.next(e)}}finally{o=!1}};return{get disposalSignal(){return n.signal},dispose,get disposed(){return n.signal.aborted},send(e){n.signal.aborted||(s.push(e),o||flush())},stream:a,[Symbol.dispose]:dispose}}function link(e,t,n){return e.subscribe(t,{signal:n})}function merge(...e){return stream((t,n)=>{if(e.length===0){t.complete();return}let r=0,i=[];for(let a of e){let o=link(a,{complete(){r++,r===e.length&&t.complete()},error:t.error,next:t.next},n);if(i.push(o),n.aborted)break}return()=>i.forEach(e=>{e.unsubscribe()})})}function concat(...e){return stream((t,n)=>{let r=!1,i,a=0,o=!1,subscribeNext=()=>{if(!n.aborted){if(r){o=!0;return}r=!0;try{do{o=!1;let r=e[a++];if(!r){t.complete();return}let s=link(r,{complete(){i=void 0,subscribeNext()},error:t.error,next:t.next},n);i=s.closed?void 0:s}while(o&&!n.aborted)}finally{r=!1}}};return subscribeNext(),()=>i?.unsubscribe()})}function combineLatest(...e){return stream((t,n)=>{if(e.length===0){t.complete();return}let r=Array(e.length),i=Array(e.length).fill(!1),a=[],o=0;for(let[s,c]of e.entries()){if(n.aborted)break;let l=link(c,{complete(){if(!i[s]){t.complete();return}o++,o===e.length&&t.complete()},error:t.error,next(e){r[s]=e,i[s]=!0,i.every(Boolean)&&t.next([...r])}},n);a.push(l)}return()=>a.forEach(e=>{e.unsubscribe()})})}var e={delay(e,t){let n=setTimeout(e,t);return()=>clearTimeout(n)},repeat(e,t){let n=setInterval(e,t);return()=>clearInterval(n)}};function of(...e){return stream(t=>{for(let n of e)t.next(n);t.complete()})}function from(e){return Symbol.asyncIterator in Object(e)?stream((t,n)=>{let r=e[Symbol.asyncIterator]();return(async()=>{try{for(;!n.aborted;){let e=await r.next();if(e.done){t.complete();return}t.next(e.value)}}catch(e){n.aborted||t.error(e)}})(),()=>{try{let e=r.return?.();e&&e.catch(reportUnhandledError)}catch(e){reportUnhandledError(e)}}}):typeof e.then==`function`?stream((t,n)=>{e.then(e=>{n.aborted||(t.next(e),t.complete())},e=>{n.aborted||t.error(e)})}):stream((t,n)=>{let r=e[Symbol.iterator]();try{for(;!n.aborted;){let e=r.next();if(e.done){t.complete();return}t.next(e.value)}}catch(e){t.error(e)}return()=>{r.return?.()}})}function fromEvent(e,t){return stream(n=>{let listener=e=>n.next(e);return e.addEventListener(t,listener),()=>e.removeEventListener(t,listener)})}function interval(t){return assertDuration(t,`Interval duration`),stream(n=>{let r=0;return e.repeat(()=>n.next(r++),t)})}function timer(t){return assertDuration(t.delay,`Timer delay`),t.interval!==void 0&&assertDuration(t.interval,`Timer interval`),stream(n=>{let r=0,i,a=e.delay(()=>{if(n.next(r++),t.interval===void 0){n.complete();return}i=e.repeat(()=>n.next(r++),t.interval)},t.delay);return()=>{a(),i?.()}})}function take(e){return assertNonNegativeInteger(e,`take count`),t=>stream((n,r)=>{if(e===0){n.complete();return}let i=0,a={};return a.current=link(t,{complete:n.complete,error:n.error,next(t){n.next(t),i++,i===e&&(n.complete(),a.current?.unsubscribe())}},r),()=>a.current?.unsubscribe()})}function isAbortSignal(e){return typeof e.aborted==`boolean`&&typeof e.addEventListener==`function`&&typeof e.removeEventListener==`function`}function takeUntil(e){return t=>stream((n,r)=>{let i,a,removeNotifier=()=>{},complete=()=>{i?.unsubscribe(),a?.unsubscribe(),n.complete()};if(isAbortSignal(e)){if(e.aborted){n.complete();return}e.addEventListener(`abort`,complete,{once:!0}),removeNotifier=()=>e.removeEventListener(`abort`,complete)}else a=link(e,{error:n.error,next:complete},r);return r.aborted||(i=link(t,{complete:n.complete,error:n.error,next:n.next},r)),()=>{removeNotifier(),i?.unsubscribe(),a?.unsubscribe()}})}function debounce(t){return assertDuration(t,`Debounce duration`),n=>stream((r,i)=>{let a,o,s=!1,flush=()=>{a=void 0,s&&(s=!1,r.next(o))},c=link(n,{complete(){a?.(),flush(),r.complete()},error:r.error,next(n){o=n,s=!0,a?.(),a=e.delay(flush,t)}},i);return()=>{a?.(),c.unsubscribe()}})}function timeout(t){return assertDuration(t,`Timeout duration`),n=>stream((r,i)=>{let a,start=()=>{a=e.delay(()=>r.error(new FluxTimeoutError(t)),t)};start();let o=link(n,{complete(){a(),r.complete()},error(e){a(),r.error(e)},next(e){a(),start(),r.next(e)}},i);return()=>{a(),o.unsubscribe()}})}function tryCall(e,t){try{e()}catch(e){t(e)}}function map(e){return t=>stream((n,r)=>link(t,{complete:n.complete,error:n.error,next(t){tryCall(()=>n.next(e(t)),n.error)}},r).unsubscribe)}function filter(e){return t=>stream((n,r)=>link(t,{complete:n.complete,error:n.error,next(t){tryCall(()=>{e(t)&&n.next(t)},n.error)}},r).unsubscribe)}function scan(e,t){return n=>stream((r,i)=>{let a=t;return link(n,{complete:r.complete,error:r.error,next(t){tryCall(()=>{a=e(a,t),r.next(a)},r.error)}},i).unsubscribe})}function switchMap(e){return t=>stream((n,r)=>{let i=!1,a,finish=()=>{i&&!a&&n.complete()},o=link(t,{complete(){i=!0,finish()},error:n.error,next(t){a?.unsubscribe(),a=void 0,tryCall(()=>{let i=link(e(t),{complete(){a=void 0,finish()},error:n.error,next:n.next},r);a=i.closed?void 0:i},n.error)}},r);return()=>{o.unsubscribe(),a?.unsubscribe()}})}function flatten(e,t){let n=t.concurrency===1/0;return n||(assertPositiveInteger(t.concurrency,`mergeMap concurrency`),assertPositiveInteger(t.capacity,`mergeMap capacity`)),r=>stream((i,a)=>{let o=[],s=new Set,c=!1,l={},finish=()=>{c&&s.size===0&&o.length===0&&i.complete()},startInner=t=>{tryCall(()=>{let n={};n.current=link(e(t),{complete(){n.current&&s.delete(n.current),drain()},error:i.error,next:i.next},a),n.current.closed?drain():s.add(n.current)},i.error)},drain=()=>{if(!a.aborted){for(;o.length>0&&(n||s.size<t.concurrency);){let e=o.shift();startInner(e)}finish()}};return l.current=link(r,{complete(){c=!0,finish()},error:i.error,next(e){if(!n&&o.length>=t.capacity){l.current?.unsubscribe(),i.error(new FluxCapacityError(t.capacity,`mergeMap buffer capacity exceeded`));return}o.push(e),drain()}},a),()=>{l.current?.unsubscribe();for(let e of s)e.unsubscribe();o.length=0}})}function mergeMap(e,t){return flatten(e,t)}function concatMap(e,t){return flatten(e,{capacity:t.capacity,concurrency:1})}function retry(t){return assertNonNegativeInteger(t.times,`retry times`),n=>stream((r,i)=>{let a=0,o,s,start=()=>{if(i.aborted)return;let c=link(n,{complete:r.complete,error(n){if(a===t.times){r.error(n);return}let o=a++,c;if(tryCall(()=>{c=typeof t.delay==`function`?t.delay(o):t.delay},r.error),!i.aborted){if(c!==void 0)try{assertDuration(c,`Retry delay`)}catch(e){r.error(e);return}c===void 0||c===0?queueMicrotask(start):s=e.delay(start,c)}},next:r.next},i);c.closed||(o=c)};return start(),()=>{s?.(),o?.unsubscribe()}})}function first(e,t){return new Promise((n,r)=>{let i=new AbortController,abort=()=>{i.abort(),r(abortError(t?.signal,`Stream consumption aborted`))};if(t?.signal?.aborted){abort();return}t?.signal?.addEventListener(`abort`,abort,{once:!0}),link(e,{complete(){t?.signal?.removeEventListener(`abort`,abort),`defaultValue`in(t??{})?n(t.defaultValue):r(new FluxEmptyError)},error(e){t?.signal?.removeEventListener(`abort`,abort),r(e)},next(e){t?.signal?.removeEventListener(`abort`,abort),i.abort(),n(e)}},i.signal)})}function last(e,t){return new Promise((n,r)=>{let i=new AbortController,abort=()=>{i.abort(),r(abortError(t?.signal,`Stream consumption aborted`))};if(t?.signal?.aborted){abort();return}let a=!1,o;t?.signal?.addEventListener(`abort`,abort,{once:!0}),link(e,{complete(){t?.signal?.removeEventListener(`abort`,abort),a?n(o):`defaultValue`in(t??{})?n(t.defaultValue):r(new FluxEmptyError)},error(e){t?.signal?.removeEventListener(`abort`,abort),r(e)},next(e){a=!0,o=e}},i.signal)})}function toArray(e,t){return assertNonNegativeInteger(t.maxItems,`toArray maxItems`),new Promise((n,r)=>{let i=new AbortController,a=[],abort=()=>{i.abort(),r(abortError(t?.signal,`Stream consumption aborted`))};if(t.signal?.aborted){abort();return}t.signal?.addEventListener(`abort`,abort,{once:!0}),link(e,{complete(){t.signal?.removeEventListener(`abort`,abort),n(a)},error(e){t.signal?.removeEventListener(`abort`,abort),r(e)},next(e){if(a.length===t.maxItems){t.signal?.removeEventListener(`abort`,abort),i.abort(),r(new FluxCapacityError(t.maxItems,`toArray maxItems exceeded`));return}a.push(e)}},i.signal)})}function pipe(e,...t){return t.reduce((e,t)=>t(e),e)}export{FluxCapacityError,FluxEmptyError,FluxError,FluxTimeoutError,combineLatest,concat,concatMap,createChannel,debounce,filter,first,from,fromEvent,fromStore,fromSubscribe,interval,last,map,merge,mergeMap,of,pipe,retry,scan,stream,switchMap,take,takeUntil,timeout,timer,toArray,toAsyncIterable};
1
+ //#region ../arsenal/dist/async/abortError.js
2
+ function abortError(e, t = "Aborted") {
3
+ return e?.reason ?? new DOMException(t, "AbortError");
4
+ }
5
+ //#endregion
6
+ //#region src/_numeric.ts
7
+ function assertNonNegativeInteger(e, t) {
8
+ if (!Number.isInteger(e) || e < 0) throw RangeError(`${t} must be a non-negative integer`);
9
+ }
10
+ function assertPositiveInteger(e, t) {
11
+ if (!Number.isInteger(e) || e < 1) throw RangeError(`${t} must be a positive integer`);
12
+ }
13
+ function assertDuration(e, t) {
14
+ if (!Number.isFinite(e) || e < 0 || e > 2147483647) throw RangeError(`${t} must be between 0 and 2147483647 milliseconds`);
15
+ }
16
+ //#endregion
17
+ //#region src/errors.ts
18
+ var FluxError = class extends Error {
19
+ constructor(e, t) {
20
+ super(e, t), this.name = new.target.name, Object.setPrototypeOf(this, new.target.prototype);
21
+ }
22
+ }, FluxTimeoutError = class extends FluxError {
23
+ ms;
24
+ constructor(e) {
25
+ super(`Timeout after ${e}ms`), this.ms = e;
26
+ }
27
+ }, FluxEmptyError = class extends FluxError {
28
+ constructor(e = "Stream completed without emitting any value") {
29
+ super(e);
30
+ }
31
+ }, FluxCapacityError = class extends FluxError {
32
+ capacity;
33
+ constructor(e, t) {
34
+ super(t), this.capacity = e;
35
+ }
36
+ };
37
+ //#endregion
38
+ //#region src/_iterator.ts
39
+ function toIterator(e, t) {
40
+ if (assertPositiveInteger(t.capacity, "Async iterable capacity"), t.overflow !== "drop-newest" && t.overflow !== "drop-oldest" && t.overflow !== "error") throw RangeError("Async iterable overflow must be \"drop-newest\", \"drop-oldest\", or \"error\"");
41
+ let n = new AbortController(), r = [], i = {
42
+ kind: "open",
43
+ queue: []
44
+ }, detach = () => t.signal?.removeEventListener("abort", abort), resolveDone = () => {
45
+ for (; r.length > 0;) r.shift()?.resolve({
46
+ done: !0,
47
+ value: void 0
48
+ });
49
+ }, complete = () => {
50
+ i.kind === "open" && (i.kind = "complete", detach(), resolveDone());
51
+ }, fail = (e) => {
52
+ if (i.kind === "open") for (i = {
53
+ kind: "error",
54
+ queue: i.queue,
55
+ reason: e
56
+ }, n.abort(), detach(); r.length > 0;) r.shift()?.reject(e);
57
+ }, abort = () => {
58
+ fail(abortError(t.signal, "Async iteration aborted"));
59
+ }, stop = () => {
60
+ n.abort(), detach(), i = { kind: "returned" }, resolveDone();
61
+ }, a = {
62
+ complete,
63
+ error: fail,
64
+ next(e) {
65
+ if (i.kind !== "open") return;
66
+ let n = r.shift();
67
+ n ? n.resolve({
68
+ done: !1,
69
+ value: e
70
+ }) : i.queue.length < t.capacity ? i.queue.push(e) : t.overflow === "drop-oldest" ? (i.queue.shift(), i.queue.push(e)) : t.overflow === "error" && fail(new FluxCapacityError(t.capacity, "Async iterable buffer capacity exceeded"));
71
+ }
72
+ };
73
+ return t.signal?.aborted ? abort() : t.signal?.addEventListener("abort", abort, { once: !0 }), e.subscribe(a, { signal: n.signal }), {
74
+ next() {
75
+ return i.kind === "returned" ? Promise.resolve({
76
+ done: !0,
77
+ value: void 0
78
+ }) : i.queue.length > 0 ? Promise.resolve({
79
+ done: !1,
80
+ value: i.queue.shift()
81
+ }) : i.kind === "error" ? Promise.reject(i.reason) : i.kind === "complete" ? Promise.resolve({
82
+ done: !0,
83
+ value: void 0
84
+ }) : new Promise((e, t) => r.push({
85
+ reject: t,
86
+ resolve: e
87
+ }));
88
+ },
89
+ return() {
90
+ return stop(), Promise.resolve({
91
+ done: !0,
92
+ value: void 0
93
+ });
94
+ },
95
+ [Symbol.asyncIterator]() {
96
+ return this;
97
+ }
98
+ };
99
+ }
100
+ //#endregion
101
+ //#region src/async.ts
102
+ function toAsyncIterable(e, t) {
103
+ return { [Symbol.asyncIterator]() {
104
+ return toIterator(e, t);
105
+ } };
106
+ }
107
+ //#endregion
108
+ //#region src/_subscription.ts
109
+ function reportUnhandledError(e) {
110
+ let t = globalThis.reportError;
111
+ t ? t(e) : queueMicrotask(() => {
112
+ throw e;
113
+ });
114
+ }
115
+ function createSubscription(e, t) {
116
+ let n = typeof e == "function" ? { next: e } : e, r = new AbortController(), i = !1, a, unsubscribe = () => {
117
+ if (!i) {
118
+ i = !0, r.abort(), t?.removeEventListener("abort", unsubscribe);
119
+ try {
120
+ a?.();
121
+ } catch (e) {
122
+ reportUnhandledError(e);
123
+ }
124
+ }
125
+ }, o = {
126
+ complete() {
127
+ if (!i) {
128
+ try {
129
+ n.complete?.();
130
+ } catch (e) {
131
+ reportUnhandledError(e);
132
+ }
133
+ unsubscribe();
134
+ }
135
+ },
136
+ error(e) {
137
+ if (!i) {
138
+ if (n.error) try {
139
+ n.error(e);
140
+ } catch (e) {
141
+ reportUnhandledError(e);
142
+ }
143
+ else reportUnhandledError(e);
144
+ unsubscribe();
145
+ }
146
+ },
147
+ next(e) {
148
+ if (!i) try {
149
+ n.next(e);
150
+ } catch (e) {
151
+ unsubscribe(), reportUnhandledError(e);
152
+ }
153
+ }
154
+ }, add = (e) => {
155
+ if (e) {
156
+ if (i) try {
157
+ e();
158
+ } catch (e) {
159
+ reportUnhandledError(e);
160
+ }
161
+ else a = e;
162
+ }
163
+ };
164
+ return t?.aborted ? unsubscribe() : t?.addEventListener("abort", unsubscribe, { once: !0 }), {
165
+ add,
166
+ signal: r.signal,
167
+ sink: o,
168
+ subscription: {
169
+ get closed() {
170
+ return i;
171
+ },
172
+ [Symbol.dispose]: unsubscribe,
173
+ unsubscribe
174
+ }
175
+ };
176
+ }
177
+ //#endregion
178
+ //#region src/core.ts
179
+ function stream(e) {
180
+ return { subscribe(t, n) {
181
+ let r = createSubscription(t, n?.signal);
182
+ if (r.subscription.closed) return r.subscription;
183
+ try {
184
+ r.add(e(r.sink, r.signal));
185
+ } catch (e) {
186
+ r.sink.error(e);
187
+ }
188
+ return r.subscription;
189
+ } };
190
+ }
191
+ function fromSubscribe(e) {
192
+ return stream((t) => e(t.next));
193
+ }
194
+ function fromStore(e) {
195
+ return stream((t, n) => {
196
+ let r;
197
+ try {
198
+ if (r = e.getSnapshot(), t.next(r), n.aborted) return;
199
+ } catch (e) {
200
+ t.error(e);
201
+ return;
202
+ }
203
+ let i = e.subscribe(() => {
204
+ try {
205
+ r = e.getSnapshot(), t.next(r);
206
+ } catch (e) {
207
+ t.error(e);
208
+ }
209
+ });
210
+ if (n.aborted) return i;
211
+ try {
212
+ let n = e.getSnapshot();
213
+ Object.is(r, n) || t.next(n);
214
+ } catch (e) {
215
+ t.error(e);
216
+ }
217
+ return i;
218
+ });
219
+ }
220
+ //#endregion
221
+ //#region src/channel.ts
222
+ function replayCapacity(e) {
223
+ let t = "initial" in e, n = e.replay ?? +!!t;
224
+ if (assertNonNegativeInteger(n, "Channel replay"), t && n === 0) throw RangeError("Channel replay cannot be 0 when initial is provided: the initial value would be immediately dropped");
225
+ return n;
226
+ }
227
+ function createChannel(e = {}) {
228
+ let t = replayCapacity(e), n = new AbortController(), r = /* @__PURE__ */ new Set(), i = [];
229
+ "initial" in e && t > 0 && i.push(e.initial);
230
+ let a = stream((e) => {
231
+ if (n.signal.aborted) e.complete();
232
+ else {
233
+ for (let t of i) e.next(t);
234
+ return r.add(e), () => r.delete(e);
235
+ }
236
+ }), dispose = () => {
237
+ if (!n.signal.aborted) {
238
+ n.abort();
239
+ for (let e of [...r]) e.complete();
240
+ r.clear(), i.length = 0, s.length = 0;
241
+ }
242
+ }, o = !1, s = [], flush = () => {
243
+ o = !0;
244
+ try {
245
+ for (; s.length > 0;) {
246
+ let e = s.shift();
247
+ t > 0 && (i.length === t && i.shift(), i.push(e));
248
+ for (let t of [...r]) t.next(e);
249
+ }
250
+ } finally {
251
+ o = !1;
252
+ }
253
+ };
254
+ return {
255
+ get disposalSignal() {
256
+ return n.signal;
257
+ },
258
+ dispose,
259
+ get disposed() {
260
+ return n.signal.aborted;
261
+ },
262
+ send(e) {
263
+ n.signal.aborted || (s.push(e), o || flush());
264
+ },
265
+ stream: a,
266
+ [Symbol.dispose]: dispose
267
+ };
268
+ }
269
+ //#endregion
270
+ //#region src/_link.ts
271
+ function link(e, t, n) {
272
+ return e.subscribe(t, { signal: n });
273
+ }
274
+ //#endregion
275
+ //#region src/operators/combination.ts
276
+ function merge(...e) {
277
+ return stream((t, n) => {
278
+ if (e.length === 0) {
279
+ t.complete();
280
+ return;
281
+ }
282
+ let r = 0, i = [];
283
+ for (let a of e) {
284
+ let o = link(a, {
285
+ complete() {
286
+ r++, r === e.length && t.complete();
287
+ },
288
+ error: t.error,
289
+ next: t.next
290
+ }, n);
291
+ if (i.push(o), n.aborted) break;
292
+ }
293
+ return () => i.forEach((e) => {
294
+ e.unsubscribe();
295
+ });
296
+ });
297
+ }
298
+ function concat(...e) {
299
+ return stream((t, n) => {
300
+ let r = !1, i, a = 0, o = !1, subscribeNext = () => {
301
+ if (!n.aborted) {
302
+ if (r) o = !0;
303
+ else {
304
+ r = !0;
305
+ try {
306
+ do {
307
+ o = !1;
308
+ let r = e[a++];
309
+ if (!r) {
310
+ t.complete();
311
+ return;
312
+ }
313
+ let s = link(r, {
314
+ complete() {
315
+ i = void 0, subscribeNext();
316
+ },
317
+ error: t.error,
318
+ next: t.next
319
+ }, n);
320
+ i = s.closed ? void 0 : s;
321
+ } while (o && !n.aborted);
322
+ } finally {
323
+ r = !1;
324
+ }
325
+ }
326
+ }
327
+ };
328
+ return subscribeNext(), () => i?.unsubscribe();
329
+ });
330
+ }
331
+ function combineLatest(...e) {
332
+ return stream((t, n) => {
333
+ if (e.length === 0) {
334
+ t.complete();
335
+ return;
336
+ }
337
+ let r = Array(e.length), i = Array(e.length).fill(!1), a = [], o = 0;
338
+ for (let [s, c] of e.entries()) {
339
+ if (n.aborted) break;
340
+ let l = link(c, {
341
+ complete() {
342
+ i[s] ? (o++, o === e.length && t.complete()) : t.complete();
343
+ },
344
+ error: t.error,
345
+ next(e) {
346
+ r[s] = e, i[s] = !0, i.every(Boolean) && t.next([...r]);
347
+ }
348
+ }, n);
349
+ a.push(l);
350
+ }
351
+ return () => a.forEach((e) => {
352
+ e.unsubscribe();
353
+ });
354
+ });
355
+ }
356
+ //#endregion
357
+ //#region src/_scheduler.ts
358
+ var e = {
359
+ delay(e, t) {
360
+ let n = setTimeout(e, t);
361
+ return () => clearTimeout(n);
362
+ },
363
+ repeat(e, t) {
364
+ let n = setInterval(e, t);
365
+ return () => clearInterval(n);
366
+ }
367
+ };
368
+ //#endregion
369
+ //#region src/operators/creation.ts
370
+ function of(...e) {
371
+ return stream((t) => {
372
+ for (let n of e) t.next(n);
373
+ t.complete();
374
+ });
375
+ }
376
+ function from(e) {
377
+ return Symbol.asyncIterator in Object(e) ? stream((t, n) => {
378
+ let r = e[Symbol.asyncIterator]();
379
+ return (async () => {
380
+ try {
381
+ for (; !n.aborted;) {
382
+ let e = await r.next();
383
+ if (e.done) {
384
+ t.complete();
385
+ return;
386
+ }
387
+ t.next(e.value);
388
+ }
389
+ } catch (e) {
390
+ n.aborted || t.error(e);
391
+ }
392
+ })(), () => {
393
+ try {
394
+ let e = r.return?.();
395
+ e && e.catch(reportUnhandledError);
396
+ } catch (e) {
397
+ reportUnhandledError(e);
398
+ }
399
+ };
400
+ }) : typeof e.then == "function" ? stream((t, n) => {
401
+ e.then((e) => {
402
+ n.aborted || (t.next(e), t.complete());
403
+ }, (e) => {
404
+ n.aborted || t.error(e);
405
+ });
406
+ }) : stream((t, n) => {
407
+ let r = e[Symbol.iterator]();
408
+ try {
409
+ for (; !n.aborted;) {
410
+ let e = r.next();
411
+ if (e.done) {
412
+ t.complete();
413
+ return;
414
+ }
415
+ t.next(e.value);
416
+ }
417
+ } catch (e) {
418
+ t.error(e);
419
+ }
420
+ return () => {
421
+ r.return?.();
422
+ };
423
+ });
424
+ }
425
+ function fromEvent(e, t) {
426
+ return stream((n) => {
427
+ let listener = (e) => n.next(e);
428
+ return e.addEventListener(t, listener), () => e.removeEventListener(t, listener);
429
+ });
430
+ }
431
+ function interval(t) {
432
+ return assertDuration(t, "Interval duration"), stream((n) => {
433
+ let r = 0;
434
+ return e.repeat(() => n.next(r++), t);
435
+ });
436
+ }
437
+ function timer(t) {
438
+ return assertDuration(t.delay, "Timer delay"), t.interval !== void 0 && assertDuration(t.interval, "Timer interval"), stream((n) => {
439
+ let r = 0, i, a = e.delay(() => {
440
+ n.next(r++), t.interval === void 0 ? n.complete() : i = e.repeat(() => n.next(r++), t.interval);
441
+ }, t.delay);
442
+ return () => {
443
+ a(), i?.();
444
+ };
445
+ });
446
+ }
447
+ //#endregion
448
+ //#region src/operators/filtering.ts
449
+ function take(e) {
450
+ return assertNonNegativeInteger(e, "take count"), (t) => stream((n, r) => {
451
+ if (e === 0) {
452
+ n.complete();
453
+ return;
454
+ }
455
+ let i = 0, a = {};
456
+ return a.current = link(t, {
457
+ complete: n.complete,
458
+ error: n.error,
459
+ next(t) {
460
+ n.next(t), i++, i === e && (n.complete(), a.current?.unsubscribe());
461
+ }
462
+ }, r), () => a.current?.unsubscribe();
463
+ });
464
+ }
465
+ function isAbortSignal(e) {
466
+ return typeof e.aborted == "boolean" && typeof e.addEventListener == "function" && typeof e.removeEventListener == "function";
467
+ }
468
+ function takeUntil(e) {
469
+ return (t) => stream((n, r) => {
470
+ let i, a, removeNotifier = () => {}, complete = () => {
471
+ i?.unsubscribe(), a?.unsubscribe(), n.complete();
472
+ };
473
+ if (isAbortSignal(e)) {
474
+ if (e.aborted) {
475
+ n.complete();
476
+ return;
477
+ }
478
+ e.addEventListener("abort", complete, { once: !0 }), removeNotifier = () => e.removeEventListener("abort", complete);
479
+ } else a = link(e, {
480
+ error: n.error,
481
+ next: complete
482
+ }, r);
483
+ return r.aborted || (i = link(t, {
484
+ complete: n.complete,
485
+ error: n.error,
486
+ next: n.next
487
+ }, r)), () => {
488
+ removeNotifier(), i?.unsubscribe(), a?.unsubscribe();
489
+ };
490
+ });
491
+ }
492
+ function debounce(t) {
493
+ return assertDuration(t, "Debounce duration"), (n) => stream((r, i) => {
494
+ let a, o, s = !1, flush = () => {
495
+ a = void 0, s && (s = !1, r.next(o));
496
+ }, c = link(n, {
497
+ complete() {
498
+ a?.(), flush(), r.complete();
499
+ },
500
+ error: r.error,
501
+ next(n) {
502
+ o = n, s = !0, a?.(), a = e.delay(flush, t);
503
+ }
504
+ }, i);
505
+ return () => {
506
+ a?.(), c.unsubscribe();
507
+ };
508
+ });
509
+ }
510
+ function timeout(t) {
511
+ return assertDuration(t, "Timeout duration"), (n) => stream((r, i) => {
512
+ let a, start = () => {
513
+ a = e.delay(() => r.error(new FluxTimeoutError(t)), t);
514
+ };
515
+ start();
516
+ let o = link(n, {
517
+ complete() {
518
+ a(), r.complete();
519
+ },
520
+ error(e) {
521
+ a(), r.error(e);
522
+ },
523
+ next(e) {
524
+ a(), start(), r.next(e);
525
+ }
526
+ }, i);
527
+ return () => {
528
+ a(), o.unsubscribe();
529
+ };
530
+ });
531
+ }
532
+ //#endregion
533
+ //#region src/_safe.ts
534
+ function tryCall(e, t) {
535
+ try {
536
+ e();
537
+ } catch (e) {
538
+ t(e);
539
+ }
540
+ }
541
+ //#endregion
542
+ //#region src/operators/transformation.ts
543
+ function map(e) {
544
+ return (t) => stream((n, r) => link(t, {
545
+ complete: n.complete,
546
+ error: n.error,
547
+ next(t) {
548
+ tryCall(() => n.next(e(t)), n.error);
549
+ }
550
+ }, r).unsubscribe);
551
+ }
552
+ function filter(e) {
553
+ return (t) => stream((n, r) => link(t, {
554
+ complete: n.complete,
555
+ error: n.error,
556
+ next(t) {
557
+ tryCall(() => {
558
+ e(t) && n.next(t);
559
+ }, n.error);
560
+ }
561
+ }, r).unsubscribe);
562
+ }
563
+ function scan(e, t) {
564
+ return (n) => stream((r, i) => {
565
+ let a = t;
566
+ return link(n, {
567
+ complete: r.complete,
568
+ error: r.error,
569
+ next(t) {
570
+ tryCall(() => {
571
+ a = e(a, t), r.next(a);
572
+ }, r.error);
573
+ }
574
+ }, i).unsubscribe;
575
+ });
576
+ }
577
+ function switchMap(e) {
578
+ return (t) => stream((n, r) => {
579
+ let i = !1, a, finish = () => {
580
+ i && !a && n.complete();
581
+ }, o = link(t, {
582
+ complete() {
583
+ i = !0, finish();
584
+ },
585
+ error: n.error,
586
+ next(t) {
587
+ a?.unsubscribe(), a = void 0, tryCall(() => {
588
+ let i = link(e(t), {
589
+ complete() {
590
+ a = void 0, finish();
591
+ },
592
+ error: n.error,
593
+ next: n.next
594
+ }, r);
595
+ a = i.closed ? void 0 : i;
596
+ }, n.error);
597
+ }
598
+ }, r);
599
+ return () => {
600
+ o.unsubscribe(), a?.unsubscribe();
601
+ };
602
+ });
603
+ }
604
+ function flatten(e, t) {
605
+ let n = t.concurrency === Infinity;
606
+ return n || (assertPositiveInteger(t.concurrency, "mergeMap concurrency"), assertPositiveInteger(t.capacity, "mergeMap capacity")), (r) => stream((i, a) => {
607
+ let o = [], s = /* @__PURE__ */ new Set(), c = !1, l = {}, finish = () => {
608
+ c && s.size === 0 && o.length === 0 && i.complete();
609
+ }, startInner = (t) => {
610
+ tryCall(() => {
611
+ let n = {};
612
+ n.current = link(e(t), {
613
+ complete() {
614
+ n.current && s.delete(n.current), drain();
615
+ },
616
+ error: i.error,
617
+ next: i.next
618
+ }, a), n.current.closed ? drain() : s.add(n.current);
619
+ }, i.error);
620
+ }, drain = () => {
621
+ if (!a.aborted) {
622
+ for (; o.length > 0 && (n || s.size < t.concurrency);) {
623
+ let e = o.shift();
624
+ startInner(e);
625
+ }
626
+ finish();
627
+ }
628
+ };
629
+ return l.current = link(r, {
630
+ complete() {
631
+ c = !0, finish();
632
+ },
633
+ error: i.error,
634
+ next(e) {
635
+ !n && o.length >= t.capacity ? (l.current?.unsubscribe(), i.error(new FluxCapacityError(t.capacity, "mergeMap buffer capacity exceeded"))) : (o.push(e), drain());
636
+ }
637
+ }, a), () => {
638
+ l.current?.unsubscribe();
639
+ for (let e of s) e.unsubscribe();
640
+ o.length = 0;
641
+ };
642
+ });
643
+ }
644
+ function mergeMap(e, t) {
645
+ return flatten(e, t);
646
+ }
647
+ function concatMap(e, t) {
648
+ return flatten(e, {
649
+ capacity: t.capacity,
650
+ concurrency: 1
651
+ });
652
+ }
653
+ //#endregion
654
+ //#region src/operators/utility.ts
655
+ function retry(t) {
656
+ return assertNonNegativeInteger(t.times, "retry times"), (n) => stream((r, i) => {
657
+ let a = 0, o, s, start = () => {
658
+ if (i.aborted) return;
659
+ let c = link(n, {
660
+ complete: r.complete,
661
+ error(n) {
662
+ if (a === t.times) {
663
+ r.error(n);
664
+ return;
665
+ }
666
+ let o = a++, c;
667
+ if (tryCall(() => {
668
+ c = typeof t.delay == "function" ? t.delay(o) : t.delay;
669
+ }, r.error), !i.aborted) {
670
+ if (c !== void 0) try {
671
+ assertDuration(c, "Retry delay");
672
+ } catch (e) {
673
+ r.error(e);
674
+ return;
675
+ }
676
+ c === void 0 || c === 0 ? queueMicrotask(start) : s = e.delay(start, c);
677
+ }
678
+ },
679
+ next: r.next
680
+ }, i);
681
+ c.closed || (o = c);
682
+ };
683
+ return start(), () => {
684
+ s?.(), o?.unsubscribe();
685
+ };
686
+ });
687
+ }
688
+ function first(e, t) {
689
+ return new Promise((n, r) => {
690
+ let i = new AbortController(), abort = () => {
691
+ i.abort(), r(abortError(t?.signal, "Stream consumption aborted"));
692
+ };
693
+ t?.signal?.aborted ? abort() : (t?.signal?.addEventListener("abort", abort, { once: !0 }), link(e, {
694
+ complete() {
695
+ t?.signal?.removeEventListener("abort", abort), "defaultValue" in (t ?? {}) ? n(t.defaultValue) : r(new FluxEmptyError());
696
+ },
697
+ error(e) {
698
+ t?.signal?.removeEventListener("abort", abort), r(e);
699
+ },
700
+ next(e) {
701
+ t?.signal?.removeEventListener("abort", abort), i.abort(), n(e);
702
+ }
703
+ }, i.signal));
704
+ });
705
+ }
706
+ function last(e, t) {
707
+ return new Promise((n, r) => {
708
+ let i = new AbortController(), abort = () => {
709
+ i.abort(), r(abortError(t?.signal, "Stream consumption aborted"));
710
+ };
711
+ if (t?.signal?.aborted) {
712
+ abort();
713
+ return;
714
+ }
715
+ let a = !1, o;
716
+ t?.signal?.addEventListener("abort", abort, { once: !0 }), link(e, {
717
+ complete() {
718
+ t?.signal?.removeEventListener("abort", abort), a ? n(o) : "defaultValue" in (t ?? {}) ? n(t.defaultValue) : r(new FluxEmptyError());
719
+ },
720
+ error(e) {
721
+ t?.signal?.removeEventListener("abort", abort), r(e);
722
+ },
723
+ next(e) {
724
+ a = !0, o = e;
725
+ }
726
+ }, i.signal);
727
+ });
728
+ }
729
+ function toArray(e, t) {
730
+ return assertNonNegativeInteger(t.maxItems, "toArray maxItems"), new Promise((n, r) => {
731
+ let i = new AbortController(), a = [], abort = () => {
732
+ i.abort(), r(abortError(t?.signal, "Stream consumption aborted"));
733
+ };
734
+ t.signal?.aborted ? abort() : (t.signal?.addEventListener("abort", abort, { once: !0 }), link(e, {
735
+ complete() {
736
+ t.signal?.removeEventListener("abort", abort), n(a);
737
+ },
738
+ error(e) {
739
+ t.signal?.removeEventListener("abort", abort), r(e);
740
+ },
741
+ next(e) {
742
+ a.length === t.maxItems ? (t.signal?.removeEventListener("abort", abort), i.abort(), r(new FluxCapacityError(t.maxItems, "toArray maxItems exceeded"))) : a.push(e);
743
+ }
744
+ }, i.signal));
745
+ });
746
+ }
747
+ //#endregion
748
+ //#region src/pipe.ts
749
+ function pipe(e, ...t) {
750
+ return t.reduce((e, t) => t(e), e);
751
+ }
752
+ //#endregion
753
+ export { FluxCapacityError, FluxEmptyError, FluxError, FluxTimeoutError, combineLatest, concat, concatMap, createChannel, debounce, filter, first, from, fromEvent, fromStore, fromSubscribe, interval, last, map, merge, mergeMap, of, pipe, retry, scan, stream, switchMap, take, takeUntil, timeout, timer, toArray, toAsyncIterable };
754
+
2
755
  //# sourceMappingURL=flux.js.map