reactor-core-ts 3.2.3 → 3.2.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 (59) hide show
  1. package/dist/core/demand.d.ts +4 -0
  2. package/dist/core/demand.d.ts.map +1 -1
  3. package/dist/core/demand.js +12 -4
  4. package/dist/core/demand.js.map +1 -1
  5. package/dist/internal/iteration-demand.d.ts +18 -0
  6. package/dist/internal/iteration-demand.d.ts.map +1 -0
  7. package/dist/internal/iteration-demand.js +34 -0
  8. package/dist/internal/iteration-demand.js.map +1 -0
  9. package/dist/internal/publisher-terminal.d.ts +25 -0
  10. package/dist/internal/publisher-terminal.d.ts.map +1 -0
  11. package/dist/internal/publisher-terminal.js +128 -0
  12. package/dist/internal/publisher-terminal.js.map +1 -0
  13. package/dist/publisher/flux.d.ts.map +1 -1
  14. package/dist/publisher/flux.js +22 -12
  15. package/dist/publisher/flux.js.map +1 -1
  16. package/dist/publisher/mono.d.ts.map +1 -1
  17. package/dist/publisher/mono.js +2 -1
  18. package/dist/publisher/mono.js.map +1 -1
  19. package/dist/publisher/operators/aggregate.d.ts.map +1 -1
  20. package/dist/publisher/operators/aggregate.js +136 -143
  21. package/dist/publisher/operators/aggregate.js.map +1 -1
  22. package/dist/publisher/operators/buffer-lift.d.ts +5 -0
  23. package/dist/publisher/operators/buffer-lift.d.ts.map +1 -0
  24. package/dist/publisher/operators/buffer-lift.js +197 -0
  25. package/dist/publisher/operators/buffer-lift.js.map +1 -0
  26. package/dist/publisher/operators/compat/flux.d.ts.map +1 -1
  27. package/dist/publisher/operators/compat/flux.js +86 -35
  28. package/dist/publisher/operators/compat/flux.js.map +1 -1
  29. package/dist/publisher/operators/coordination.d.ts.map +1 -1
  30. package/dist/publisher/operators/coordination.js +3 -4
  31. package/dist/publisher/operators/coordination.js.map +1 -1
  32. package/dist/publisher/operators/lifecycle.d.ts.map +1 -1
  33. package/dist/publisher/operators/lifecycle.js +64 -21
  34. package/dist/publisher/operators/lifecycle.js.map +1 -1
  35. package/dist/publisher/operators/lift.d.ts +2 -0
  36. package/dist/publisher/operators/lift.d.ts.map +1 -1
  37. package/dist/publisher/operators/lift.js +173 -3
  38. package/dist/publisher/operators/lift.js.map +1 -1
  39. package/dist/publisher/operators/selection.d.ts.map +1 -1
  40. package/dist/publisher/operators/selection.js +3 -2
  41. package/dist/publisher/operators/selection.js.map +1 -1
  42. package/dist/publisher/operators/terminal-mono.d.ts +12 -0
  43. package/dist/publisher/operators/terminal-mono.d.ts.map +1 -0
  44. package/dist/publisher/operators/terminal-mono.js +244 -0
  45. package/dist/publisher/operators/terminal-mono.js.map +1 -0
  46. package/dist/publisher/operators/terminal.d.ts.map +1 -1
  47. package/dist/publisher/operators/terminal.js +12 -25
  48. package/dist/publisher/operators/terminal.js.map +1 -1
  49. package/dist/publisher/operators/time.d.ts.map +1 -1
  50. package/dist/publisher/operators/time.js +2 -0
  51. package/dist/publisher/operators/time.js.map +1 -1
  52. package/dist/subscription/iterable-subscription.d.ts.map +1 -1
  53. package/dist/subscription/iterable-subscription.js +5 -2
  54. package/dist/subscription/iterable-subscription.js.map +1 -1
  55. package/package.json +1 -1
  56. package/dist/internal/iterable-terminal.d.ts +0 -12
  57. package/dist/internal/iterable-terminal.d.ts.map +0 -1
  58. package/dist/internal/iterable-terminal.js +0 -49
  59. package/dist/internal/iterable-terminal.js.map +0 -1
@@ -2,8 +2,12 @@
2
2
  * @packageDocumentation
3
3
  * Reactive Streams core contracts and disposable helpers.
4
4
  */
5
+ /** Demand sentinel used when a subscriber can consume the whole source without batching. */
6
+ export declare const UNBOUNDED_DEMAND: number;
5
7
  /** Validates and normalizes a Reactive Streams request amount. */
6
8
  export declare function normalizeRequest(n: number): number;
7
9
  /** Adds demand values with saturation at positive infinity. */
8
10
  export declare function addCap(a: number, b: number): number;
11
+ /** Multiplies demand values with saturation at positive infinity. */
12
+ export declare function multiplyCap(a: number, b: number): number;
9
13
  //# sourceMappingURL=demand.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"demand.d.ts","sourceRoot":"","sources":["../../src/core/demand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAQlD;AAED,+DAA+D;AAC/D,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMnD"}
1
+ {"version":3,"file":"demand.d.ts","sourceRoot":"","sources":["../../src/core/demand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,4FAA4F;AAC5F,eAAO,MAAM,gBAAgB,QAA2B,CAAC;AAEzD,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAQlD;AAED,+DAA+D;AAC/D,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMxD"}
@@ -3,19 +3,27 @@
3
3
  * @packageDocumentation
4
4
  * Reactive Streams core contracts and disposable helpers.
5
5
  */
6
+ /** Demand sentinel used when a subscriber can consume the whole source without batching. */
7
+ var UNBOUNDED_DEMAND = Number.POSITIVE_INFINITY;
6
8
  /** Validates and normalizes a Reactive Streams request amount. */
7
9
  function normalizeRequest(n) {
8
- if (n === Number.POSITIVE_INFINITY) return Number.POSITIVE_INFINITY;
10
+ if (n === UNBOUNDED_DEMAND) return UNBOUNDED_DEMAND;
9
11
  if (!Number.isFinite(n) || !Number.isInteger(n) || n <= 0) throw new RangeError("request amount must be a strictly positive integer");
10
12
  return n;
11
13
  }
12
14
  /** Adds demand values with saturation at positive infinity. */
13
15
  function addCap(a, b) {
14
- if (a === Number.POSITIVE_INFINITY || b === Number.POSITIVE_INFINITY) return Number.POSITIVE_INFINITY;
16
+ if (a === UNBOUNDED_DEMAND || b === UNBOUNDED_DEMAND) return UNBOUNDED_DEMAND;
15
17
  const next = a + b;
16
- return next >= Number.MAX_SAFE_INTEGER ? Number.POSITIVE_INFINITY : next;
18
+ return next >= Number.MAX_SAFE_INTEGER ? UNBOUNDED_DEMAND : next;
19
+ }
20
+ /** Multiplies demand values with saturation at positive infinity. */
21
+ function multiplyCap(a, b) {
22
+ if (a === UNBOUNDED_DEMAND || b === UNBOUNDED_DEMAND) return UNBOUNDED_DEMAND;
23
+ const next = a * b;
24
+ return next >= Number.MAX_SAFE_INTEGER ? UNBOUNDED_DEMAND : next;
17
25
  }
18
26
  //#endregion
19
- export { addCap, normalizeRequest };
27
+ export { UNBOUNDED_DEMAND, addCap, multiplyCap, normalizeRequest };
20
28
 
21
29
  //# sourceMappingURL=demand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"demand.js","names":[],"sources":["../../src/core/demand.ts"],"sourcesContent":["/**\n * @packageDocumentation\n * Reactive Streams core contracts and disposable helpers.\n */\n/** Validates and normalizes a Reactive Streams request amount. */\nexport function normalizeRequest(n: number): number {\n if (n === Number.POSITIVE_INFINITY) {\n return Number.POSITIVE_INFINITY;\n }\n if (!Number.isFinite(n) || !Number.isInteger(n) || n <= 0) {\n throw new RangeError(\"request amount must be a strictly positive integer\");\n }\n return n;\n}\n\n/** Adds demand values with saturation at positive infinity. */\nexport function addCap(a: number, b: number): number {\n if (a === Number.POSITIVE_INFINITY || b === Number.POSITIVE_INFINITY) {\n return Number.POSITIVE_INFINITY;\n }\n const next = a + b;\n return next >= Number.MAX_SAFE_INTEGER ? Number.POSITIVE_INFINITY : next;\n}\n"],"mappings":";;;;;;AAKA,SAAgB,iBAAiB,GAAmB;CAChD,IAAI,MAAM,OAAO,mBACb,OAAO,OAAO;CAElB,IAAI,CAAC,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,KAAK,KAAK,GACpD,MAAM,IAAI,WAAW,oDAAoD;CAE7E,OAAO;AACX;;AAGA,SAAgB,OAAO,GAAW,GAAmB;CACjD,IAAI,MAAM,OAAO,qBAAqB,MAAM,OAAO,mBAC/C,OAAO,OAAO;CAElB,MAAM,OAAO,IAAI;CACjB,OAAO,QAAQ,OAAO,mBAAmB,OAAO,oBAAoB;AACxE"}
1
+ {"version":3,"file":"demand.js","names":[],"sources":["../../src/core/demand.ts"],"sourcesContent":["/**\n * @packageDocumentation\n * Reactive Streams core contracts and disposable helpers.\n */\n/** Demand sentinel used when a subscriber can consume the whole source without batching. */\nexport const UNBOUNDED_DEMAND = Number.POSITIVE_INFINITY;\n\n/** Validates and normalizes a Reactive Streams request amount. */\nexport function normalizeRequest(n: number): number {\n if (n === UNBOUNDED_DEMAND) {\n return UNBOUNDED_DEMAND;\n }\n if (!Number.isFinite(n) || !Number.isInteger(n) || n <= 0) {\n throw new RangeError(\"request amount must be a strictly positive integer\");\n }\n return n;\n}\n\n/** Adds demand values with saturation at positive infinity. */\nexport function addCap(a: number, b: number): number {\n if (a === UNBOUNDED_DEMAND || b === UNBOUNDED_DEMAND) {\n return UNBOUNDED_DEMAND;\n }\n const next = a + b;\n return next >= Number.MAX_SAFE_INTEGER ? UNBOUNDED_DEMAND : next;\n}\n\n/** Multiplies demand values with saturation at positive infinity. */\nexport function multiplyCap(a: number, b: number): number {\n if (a === UNBOUNDED_DEMAND || b === UNBOUNDED_DEMAND) {\n return UNBOUNDED_DEMAND;\n }\n const next = a * b;\n return next >= Number.MAX_SAFE_INTEGER ? UNBOUNDED_DEMAND : next;\n}\n"],"mappings":";;;;;;AAKA,IAAa,mBAAmB,OAAO;;AAGvC,SAAgB,iBAAiB,GAAmB;CAChD,IAAI,MAAM,kBACN,OAAO;CAEX,IAAI,CAAC,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,KAAK,KAAK,GACpD,MAAM,IAAI,WAAW,oDAAoD;CAE7E,OAAO;AACX;;AAGA,SAAgB,OAAO,GAAW,GAAmB;CACjD,IAAI,MAAM,oBAAoB,MAAM,kBAChC,OAAO;CAEX,MAAM,OAAO,IAAI;CACjB,OAAO,QAAQ,OAAO,mBAAmB,mBAAmB;AAChE;;AAGA,SAAgB,YAAY,GAAW,GAAmB;CACtD,IAAI,MAAM,oBAAoB,MAAM,kBAChC,OAAO;CAEX,MAAM,OAAO,IAAI;CACjB,OAAO,QAAQ,OAAO,mBAAmB,mBAAmB;AAChE"}
@@ -0,0 +1,18 @@
1
+ /** Internal subscriber hook that exposes an already-known upstream demand batch. */
2
+ export declare const ITERATION_DEMAND_HINT: unique symbol;
3
+ /** Subscriber shape that can propagate a demand hint before source assembly. */
4
+ export interface IterationDemandAware {
5
+ /** Returns the demand batch that this subscriber will request upstream. */
6
+ [ITERATION_DEMAND_HINT]?(): number | undefined;
7
+ }
8
+ /** Marks nested iteration as an unbounded terminal drain. */
9
+ export declare function markUnboundedIteration(signal: AbortSignal): void;
10
+ /** Marks a signal when a subscriber already knows it will request unbounded demand. */
11
+ export declare function applyIterationDemandHint(signal: AbortSignal, subscriber: unknown): void;
12
+ /** Reads an internal demand hint without exposing it through the public Subscriber contract. */
13
+ export declare function iterationDemandHint(subscriber: unknown): number | undefined;
14
+ /** Returns true when nested Publisher bridges may request unbounded demand once. */
15
+ export declare function isUnboundedIteration(signal: AbortSignal): boolean;
16
+ /** Propagates unbounded iteration metadata to a derived cancellation signal. */
17
+ export declare function inheritIterationDemand(parent: AbortSignal, child: AbortSignal): void;
18
+ //# sourceMappingURL=iteration-demand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iteration-demand.d.ts","sourceRoot":"","sources":["../../src/internal/iteration-demand.ts"],"names":[],"mappings":"AAMA,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,eAAkC,CAAC;AAErE,gFAAgF;AAChF,MAAM,WAAW,oBAAoB;IACjC,2EAA2E;IAC3E,CAAC,qBAAqB,CAAC,CAAC,IAAI,MAAM,GAAG,SAAS,CAAC;CAClD;AAKD,6DAA6D;AAC7D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAEhE;AAED,uFAAuF;AACvF,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI,CAKvF;AAED,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE3E;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAEjE;AAED,gFAAgF;AAChF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAIpF"}
@@ -0,0 +1,34 @@
1
+ import { UNBOUNDED_DEMAND } from "../core/demand.js";
2
+ //#region src/internal/iteration-demand.ts
3
+ /**
4
+ * @packageDocumentation
5
+ * Internal demand metadata propagated through nested iterable operator paths.
6
+ */
7
+ /** Internal subscriber hook that exposes an already-known upstream demand batch. */
8
+ var ITERATION_DEMAND_HINT = Symbol("iteration-demand-hint");
9
+ /** Signals whose enclosing subscriber requested unbounded demand. */
10
+ var UNBOUNDED_SIGNALS = /* @__PURE__ */ new WeakSet();
11
+ /** Marks nested iteration as an unbounded terminal drain. */
12
+ function markUnboundedIteration(signal) {
13
+ UNBOUNDED_SIGNALS.add(signal);
14
+ }
15
+ /** Marks a signal when a subscriber already knows it will request unbounded demand. */
16
+ function applyIterationDemandHint(signal, subscriber) {
17
+ if (iterationDemandHint(subscriber) === UNBOUNDED_DEMAND) markUnboundedIteration(signal);
18
+ }
19
+ /** Reads an internal demand hint without exposing it through the public Subscriber contract. */
20
+ function iterationDemandHint(subscriber) {
21
+ return subscriber?.[ITERATION_DEMAND_HINT]?.();
22
+ }
23
+ /** Returns true when nested Publisher bridges may request unbounded demand once. */
24
+ function isUnboundedIteration(signal) {
25
+ return UNBOUNDED_SIGNALS.has(signal);
26
+ }
27
+ /** Propagates unbounded iteration metadata to a derived cancellation signal. */
28
+ function inheritIterationDemand(parent, child) {
29
+ if (isUnboundedIteration(parent)) markUnboundedIteration(child);
30
+ }
31
+ //#endregion
32
+ export { ITERATION_DEMAND_HINT, applyIterationDemandHint, inheritIterationDemand, isUnboundedIteration, iterationDemandHint, markUnboundedIteration };
33
+
34
+ //# sourceMappingURL=iteration-demand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iteration-demand.js","names":[],"sources":["../../src/internal/iteration-demand.ts"],"sourcesContent":["/**\n * @packageDocumentation\n * Internal demand metadata propagated through nested iterable operator paths.\n */\nimport {UNBOUNDED_DEMAND} from \"@/core/demand.js\";\n\n/** Internal subscriber hook that exposes an already-known upstream demand batch. */\nexport const ITERATION_DEMAND_HINT = Symbol(\"iteration-demand-hint\");\n\n/** Subscriber shape that can propagate a demand hint before source assembly. */\nexport interface IterationDemandAware {\n /** Returns the demand batch that this subscriber will request upstream. */\n [ITERATION_DEMAND_HINT]?(): number | undefined;\n}\n\n/** Signals whose enclosing subscriber requested unbounded demand. */\nconst UNBOUNDED_SIGNALS = new WeakSet<AbortSignal>();\n\n/** Marks nested iteration as an unbounded terminal drain. */\nexport function markUnboundedIteration(signal: AbortSignal): void {\n UNBOUNDED_SIGNALS.add(signal);\n}\n\n/** Marks a signal when a subscriber already knows it will request unbounded demand. */\nexport function applyIterationDemandHint(signal: AbortSignal, subscriber: unknown): void {\n const demand = iterationDemandHint(subscriber);\n if (demand === UNBOUNDED_DEMAND) {\n markUnboundedIteration(signal);\n }\n}\n\n/** Reads an internal demand hint without exposing it through the public Subscriber contract. */\nexport function iterationDemandHint(subscriber: unknown): number | undefined {\n return (subscriber as IterationDemandAware | null | undefined)?.[ITERATION_DEMAND_HINT]?.();\n}\n\n/** Returns true when nested Publisher bridges may request unbounded demand once. */\nexport function isUnboundedIteration(signal: AbortSignal): boolean {\n return UNBOUNDED_SIGNALS.has(signal);\n}\n\n/** Propagates unbounded iteration metadata to a derived cancellation signal. */\nexport function inheritIterationDemand(parent: AbortSignal, child: AbortSignal): void {\n if (isUnboundedIteration(parent)) {\n markUnboundedIteration(child);\n }\n}\n"],"mappings":";;;;;;;AAOA,IAAa,wBAAwB,OAAO,uBAAuB;;AASnE,IAAM,oCAAoB,IAAI,QAAqB;;AAGnD,SAAgB,uBAAuB,QAA2B;CAC9D,kBAAkB,IAAI,MAAM;AAChC;;AAGA,SAAgB,yBAAyB,QAAqB,YAA2B;CAErF,IADe,oBAAoB,UAC/B,MAAW,kBACX,uBAAuB,MAAM;AAErC;;AAGA,SAAgB,oBAAoB,YAAyC;CACzE,OAAQ,aAAyD,sBAAsB,GAAG;AAC9F;;AAGA,SAAgB,qBAAqB,QAA8B;CAC/D,OAAO,kBAAkB,IAAI,MAAM;AACvC;;AAGA,SAAgB,uBAAuB,QAAqB,OAA0B;CAClF,IAAI,qBAAqB,MAAM,GAC3B,uBAAuB,KAAK;AAEpC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * Direct Publisher terminal-consumption primitives.
4
+ */
5
+ import type { Context } from "../context/context.js";
6
+ import type { Publisher } from "../publisher/publisher.js";
7
+ /** Stateful terminal reduction performed directly from Publisher signals. */
8
+ export interface TerminalCollector<T, R> {
9
+ /** Consumes one value and returns true when the terminal result is already known. */
10
+ onNext(value: T): boolean;
11
+ /** Produces the terminal result after completion or an early match. */
12
+ result(): R;
13
+ }
14
+ /**
15
+ * Subscribes directly to a Publisher, requests one configured batch and reduces
16
+ * signals without crossing the pull-based async-iterator bridge.
17
+ */
18
+ export declare function consumePublisher<T, R>(publisher: Publisher<T>, signal: AbortSignal, context: Context, request: number, collector: TerminalCollector<T, R>): Promise<R>;
19
+ /** Collects every Publisher value with one unbounded upstream request. */
20
+ export declare function collectPublisher<T>(publisher: Publisher<T>, signal: AbortSignal, context: Context): Promise<T[]>;
21
+ /** Returns the last Publisher value after consuming it with unbounded demand. */
22
+ export declare function lastPublisherValue<T>(publisher: Publisher<T>, signal: AbortSignal, context: Context): Promise<T | undefined>;
23
+ /** Consumes and discards every Publisher value with one unbounded request. */
24
+ export declare function drainPublisher(publisher: Publisher<unknown>, signal: AbortSignal, context: Context): Promise<void>;
25
+ //# sourceMappingURL=publisher-terminal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher-terminal.d.ts","sourceRoot":"","sources":["../../src/internal/publisher-terminal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAC;AAIlD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAIxD,6EAA6E;AAC7E,MAAM,WAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC;IACnC,qFAAqF;IACrF,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC;IAE1B,uEAAuE;IACvE,MAAM,IAAI,CAAC,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EACjC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EACvB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GACnC,OAAO,CAAC,CAAC,CAAC,CA0GZ;AAED,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAUhH;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,CAAC,EAChC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EACvB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAUxB;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlH"}
@@ -0,0 +1,128 @@
1
+ import { UNBOUNDED_DEMAND } from "../core/demand.js";
2
+ import { CancelledError } from "../errors/classes.js";
3
+ import { ITERATION_DEMAND_HINT } from "./iteration-demand.js";
4
+ //#region src/internal/publisher-terminal.ts
5
+ /**
6
+ * Subscribes directly to a Publisher, requests one configured batch and reduces
7
+ * signals without crossing the pull-based async-iterator bridge.
8
+ */
9
+ function consumePublisher(publisher, signal, context, request, collector) {
10
+ return new Promise((resolve, reject) => {
11
+ let subscription;
12
+ let subscribed = false;
13
+ let terminated = false;
14
+ const cleanup = () => signal.removeEventListener("abort", onAbort);
15
+ const terminate = () => {
16
+ if (terminated) return false;
17
+ terminated = true;
18
+ cleanup();
19
+ return true;
20
+ };
21
+ const cancelUpstream = () => {
22
+ try {
23
+ subscription?.cancel();
24
+ } catch {}
25
+ };
26
+ const fail = (error, cancel) => {
27
+ if (!terminate()) return;
28
+ if (cancel) cancelUpstream();
29
+ reject(error);
30
+ };
31
+ const complete = (cancel) => {
32
+ if (!terminate()) return;
33
+ if (cancel) cancelUpstream();
34
+ try {
35
+ resolve(collector.result());
36
+ } catch (error) {
37
+ reject(error);
38
+ }
39
+ };
40
+ function onAbort() {
41
+ fail(new CancelledError(), true);
42
+ }
43
+ if (signal.aborted) {
44
+ reject(new CancelledError());
45
+ return;
46
+ }
47
+ signal.addEventListener("abort", onAbort, { once: true });
48
+ const subscriber = {
49
+ /** Propagates the configured terminal batch through nested iterable operators. */
50
+ [ITERATION_DEMAND_HINT]: () => request,
51
+ /** Exposes the downstream context to context-aware Publisher sources. */
52
+ currentContext: () => context,
53
+ /** Stores the subscription and starts the configured terminal batch. */
54
+ onSubscribe(nextSubscription) {
55
+ if (subscribed || terminated) {
56
+ try {
57
+ nextSubscription.cancel();
58
+ } catch {}
59
+ return;
60
+ }
61
+ subscribed = true;
62
+ subscription = nextSubscription;
63
+ try {
64
+ nextSubscription.request(request);
65
+ } catch (error) {
66
+ fail(error, true);
67
+ }
68
+ },
69
+ /** Reduces a value and cancels immediately when the result is known. */
70
+ onNext(value) {
71
+ if (terminated) return;
72
+ try {
73
+ if (collector.onNext(value)) complete(true);
74
+ } catch (error) {
75
+ fail(error, true);
76
+ }
77
+ },
78
+ /** Forwards the first Publisher failure. */
79
+ onError(error) {
80
+ fail(error, false);
81
+ },
82
+ /** Produces the collected result after normal completion. */
83
+ onComplete() {
84
+ complete(false);
85
+ }
86
+ };
87
+ try {
88
+ publisher.subscribe(subscriber);
89
+ } catch (error) {
90
+ fail(error, true);
91
+ }
92
+ });
93
+ }
94
+ /** Collects every Publisher value with one unbounded upstream request. */
95
+ function collectPublisher(publisher, signal, context) {
96
+ const values = [];
97
+ return consumePublisher(publisher, signal, context, UNBOUNDED_DEMAND, {
98
+ /** Appends one source value to the result array. */
99
+ onNext(value) {
100
+ values.push(value);
101
+ return false;
102
+ },
103
+ result: () => values
104
+ });
105
+ }
106
+ /** Returns the last Publisher value after consuming it with unbounded demand. */
107
+ function lastPublisherValue(publisher, signal, context) {
108
+ let last;
109
+ return consumePublisher(publisher, signal, context, UNBOUNDED_DEMAND, {
110
+ /** Replaces the previously observed last value. */
111
+ onNext(value) {
112
+ last = value;
113
+ return false;
114
+ },
115
+ result: () => last
116
+ });
117
+ }
118
+ /** Consumes and discards every Publisher value with one unbounded request. */
119
+ function drainPublisher(publisher, signal, context) {
120
+ return consumePublisher(publisher, signal, context, UNBOUNDED_DEMAND, {
121
+ onNext: () => false,
122
+ result: () => void 0
123
+ });
124
+ }
125
+ //#endregion
126
+ export { collectPublisher, consumePublisher, drainPublisher, lastPublisherValue };
127
+
128
+ //# sourceMappingURL=publisher-terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher-terminal.js","names":[],"sources":["../../src/internal/publisher-terminal.ts"],"sourcesContent":["/**\n * @packageDocumentation\n * Direct Publisher terminal-consumption primitives.\n */\nimport type {Context} from \"@/context/context.js\";\nimport {UNBOUNDED_DEMAND} from \"@/core/demand.js\";\nimport {CancelledError} from \"@/errors/classes.js\";\nimport {ITERATION_DEMAND_HINT, type IterationDemandAware} from \"@/internal/iteration-demand.js\";\nimport type {Publisher} from \"@/publisher/publisher.js\";\nimport type {CoreSubscriber} from \"@/subscription/core-subscriber.js\";\nimport type {Subscription} from \"@/subscription/subscription.js\";\n\n/** Stateful terminal reduction performed directly from Publisher signals. */\nexport interface TerminalCollector<T, R> {\n /** Consumes one value and returns true when the terminal result is already known. */\n onNext(value: T): boolean;\n\n /** Produces the terminal result after completion or an early match. */\n result(): R;\n}\n\n/**\n * Subscribes directly to a Publisher, requests one configured batch and reduces\n * signals without crossing the pull-based async-iterator bridge.\n */\nexport function consumePublisher<T, R>(\n publisher: Publisher<T>,\n signal: AbortSignal,\n context: Context,\n request: number,\n collector: TerminalCollector<T, R>\n): Promise<R> {\n return new Promise<R>((resolve, reject) => {\n let subscription: Subscription | undefined;\n let subscribed = false;\n let terminated = false;\n\n const cleanup = () => signal.removeEventListener(\"abort\", onAbort);\n const terminate = (): boolean => {\n if (terminated) {\n return false;\n }\n terminated = true;\n cleanup();\n return true;\n };\n const cancelUpstream = () => {\n try {\n subscription?.cancel();\n } catch {\n // Terminal cancellation is best-effort and must not replace the result.\n }\n };\n const fail = (error: unknown, cancel: boolean) => {\n if (!terminate()) {\n return;\n }\n if (cancel) {\n cancelUpstream();\n }\n reject(error);\n };\n const complete = (cancel: boolean) => {\n if (!terminate()) {\n return;\n }\n if (cancel) {\n cancelUpstream();\n }\n try {\n resolve(collector.result());\n } catch (error) {\n reject(error);\n }\n };\n function onAbort(): void {\n fail(new CancelledError(), true);\n }\n\n if (signal.aborted) {\n reject(new CancelledError());\n return;\n }\n signal.addEventListener(\"abort\", onAbort, {once: true});\n\n const subscriber: CoreSubscriber<T> & IterationDemandAware = {\n /** Propagates the configured terminal batch through nested iterable operators. */\n [ITERATION_DEMAND_HINT]: () => request,\n /** Exposes the downstream context to context-aware Publisher sources. */\n currentContext: () => context,\n /** Stores the subscription and starts the configured terminal batch. */\n onSubscribe(nextSubscription) {\n if (subscribed || terminated) {\n try {\n nextSubscription.cancel();\n } catch {\n // Duplicate subscriptions are rejected best-effort.\n }\n return;\n }\n subscribed = true;\n subscription = nextSubscription;\n try {\n nextSubscription.request(request);\n } catch (error) {\n fail(error, true);\n }\n },\n /** Reduces a value and cancels immediately when the result is known. */\n onNext(value) {\n if (terminated) {\n return;\n }\n try {\n if (collector.onNext(value)) {\n complete(true);\n }\n } catch (error) {\n fail(error, true);\n }\n },\n /** Forwards the first Publisher failure. */\n onError(error) {\n fail(error, false);\n },\n /** Produces the collected result after normal completion. */\n onComplete() {\n complete(false);\n }\n };\n\n try {\n publisher.subscribe(subscriber);\n } catch (error) {\n fail(error, true);\n }\n });\n}\n\n/** Collects every Publisher value with one unbounded upstream request. */\nexport function collectPublisher<T>(publisher: Publisher<T>, signal: AbortSignal, context: Context): Promise<T[]> {\n const values: T[] = [];\n return consumePublisher<T, T[]>(publisher, signal, context, UNBOUNDED_DEMAND, {\n /** Appends one source value to the result array. */\n onNext(value) {\n values.push(value);\n return false;\n },\n result: () => values\n });\n}\n\n/** Returns the last Publisher value after consuming it with unbounded demand. */\nexport function lastPublisherValue<T>(\n publisher: Publisher<T>,\n signal: AbortSignal,\n context: Context\n): Promise<T | undefined> {\n let last: T | undefined;\n return consumePublisher<T, T | undefined>(publisher, signal, context, UNBOUNDED_DEMAND, {\n /** Replaces the previously observed last value. */\n onNext(value) {\n last = value;\n return false;\n },\n result: () => last\n });\n}\n\n/** Consumes and discards every Publisher value with one unbounded request. */\nexport function drainPublisher(publisher: Publisher<unknown>, signal: AbortSignal, context: Context): Promise<void> {\n return consumePublisher(publisher, signal, context, UNBOUNDED_DEMAND, {\n onNext: () => false,\n result: () => undefined\n });\n}\n"],"mappings":";;;;;;;;AAyBA,SAAgB,iBACZ,WACA,QACA,SACA,SACA,WACU;CACV,OAAO,IAAI,SAAY,SAAS,WAAW;EACvC,IAAI;EACJ,IAAI,aAAa;EACjB,IAAI,aAAa;EAEjB,MAAM,gBAAgB,OAAO,oBAAoB,SAAS,OAAO;EACjE,MAAM,kBAA2B;GAC7B,IAAI,YACA,OAAO;GAEX,aAAa;GACb,QAAQ;GACR,OAAO;EACX;EACA,MAAM,uBAAuB;GACzB,IAAI;IACA,cAAc,OAAO;GACzB,QAAQ,CAER;EACJ;EACA,MAAM,QAAQ,OAAgB,WAAoB;GAC9C,IAAI,CAAC,UAAU,GACX;GAEJ,IAAI,QACA,eAAe;GAEnB,OAAO,KAAK;EAChB;EACA,MAAM,YAAY,WAAoB;GAClC,IAAI,CAAC,UAAU,GACX;GAEJ,IAAI,QACA,eAAe;GAEnB,IAAI;IACA,QAAQ,UAAU,OAAO,CAAC;GAC9B,SAAS,OAAO;IACZ,OAAO,KAAK;GAChB;EACJ;EACA,SAAS,UAAgB;GACrB,KAAK,IAAI,eAAe,GAAG,IAAI;EACnC;EAEA,IAAI,OAAO,SAAS;GAChB,OAAO,IAAI,eAAe,CAAC;GAC3B;EACJ;EACA,OAAO,iBAAiB,SAAS,SAAS,EAAC,MAAM,KAAI,CAAC;EAEtD,MAAM,aAAuD;;IAExD,8BAA8B;;GAE/B,sBAAsB;;GAEtB,YAAY,kBAAkB;IAC1B,IAAI,cAAc,YAAY;KAC1B,IAAI;MACA,iBAAiB,OAAO;KAC5B,QAAQ,CAER;KACA;IACJ;IACA,aAAa;IACb,eAAe;IACf,IAAI;KACA,iBAAiB,QAAQ,OAAO;IACpC,SAAS,OAAO;KACZ,KAAK,OAAO,IAAI;IACpB;GACJ;;GAEA,OAAO,OAAO;IACV,IAAI,YACA;IAEJ,IAAI;KACA,IAAI,UAAU,OAAO,KAAK,GACtB,SAAS,IAAI;IAErB,SAAS,OAAO;KACZ,KAAK,OAAO,IAAI;IACpB;GACJ;;GAEA,QAAQ,OAAO;IACX,KAAK,OAAO,KAAK;GACrB;;GAEA,aAAa;IACT,SAAS,KAAK;GAClB;EACJ;EAEA,IAAI;GACA,UAAU,UAAU,UAAU;EAClC,SAAS,OAAO;GACZ,KAAK,OAAO,IAAI;EACpB;CACJ,CAAC;AACL;;AAGA,SAAgB,iBAAoB,WAAyB,QAAqB,SAAgC;CAC9G,MAAM,SAAc,CAAC;CACrB,OAAO,iBAAyB,WAAW,QAAQ,SAAS,kBAAkB;;EAE1E,OAAO,OAAO;GACV,OAAO,KAAK,KAAK;GACjB,OAAO;EACX;EACA,cAAc;CAClB,CAAC;AACL;;AAGA,SAAgB,mBACZ,WACA,QACA,SACsB;CACtB,IAAI;CACJ,OAAO,iBAAmC,WAAW,QAAQ,SAAS,kBAAkB;;EAEpF,OAAO,OAAO;GACV,OAAO;GACP,OAAO;EACX;EACA,cAAc;CAClB,CAAC;AACL;;AAGA,SAAgB,eAAe,WAA+B,QAAqB,SAAiC;CAChH,OAAO,iBAAiB,WAAW,QAAQ,SAAS,kBAAkB;EAClE,cAAc;EACd,cAAc;CAClB,CAAC;AACL"}
@@ -1 +1 @@
1
- {"version":3,"file":"flux.d.ts","sourceRoot":"","sources":["../../src/publisher/flux.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flux.d.ts","sourceRoot":"","sources":["../../src/publisher/flux.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,13 @@ import { Context } from "../context/context.js";
3
3
  import { EMPTY_ITERABLE, closeAsyncIterator, isAsyncIterable, isIterable, neverIterable, toAsyncIterator } from "../internal/iterable.js";
4
4
  import { mapIterable } from "../internal/iterable-transform.js";
5
5
  import { BooleanDisposable } from "../core/boolean-disposable.js";
6
- import { addCap } from "../core/demand.js";
6
+ import { UNBOUNDED_DEMAND, addCap } from "../core/demand.js";
7
7
  import { CompositeError } from "../errors/classes.js";
8
8
  import { asError, throwIfNullish } from "../errors/helpers.js";
9
9
  import { firstValueFrom, raceWithAbort } from "../internal/abort.js";
10
10
  import { AsyncQueue } from "../internal/async-queue.js";
11
- import { collectIterable, lastIterableValue } from "../internal/iterable-terminal.js";
11
+ import { ITERATION_DEMAND_HINT, isUnboundedIteration } from "../internal/iteration-demand.js";
12
+ import { collectPublisher, drainPublisher as drainPublisher$1, lastPublisherValue } from "../internal/publisher-terminal.js";
12
13
  import { eventSource, webSocketSource } from "./browser-sources.js";
13
14
  import { Schedulers } from "../schedulers/schedulers.js";
14
15
  import { addCancelCallback, isSubscriber, runCancelCallbacks, scheduleDelay } from "./helpers.js";
@@ -479,10 +480,12 @@ var Flux = class Flux {
479
480
  let subscription;
480
481
  const disposable = new BooleanDisposable(() => subscription?.cancel());
481
482
  const subscriber = {
483
+ /** Advertises the callback subscriber's fixed unbounded demand before assembly. */
484
+ [ITERATION_DEMAND_HINT]: () => UNBOUNDED_DEMAND,
482
485
  /** Stores the subscription and requests unbounded demand. */
483
486
  onSubscribe(nextSubscription) {
484
487
  subscription = nextSubscription;
485
- nextSubscription.request(Number.POSITIVE_INFINITY);
488
+ nextSubscription.request(UNBOUNDED_DEMAND);
486
489
  },
487
490
  onNext: subscriberOrNext ?? noopSubscriberCallback,
488
491
  onError,
@@ -529,12 +532,12 @@ var Flux = class Flux {
529
532
  return this;
530
533
  }
531
534
  /** Collects all values into an array. */
532
- async toArray() {
533
- return collectIterable(this.iterate(new AbortController().signal, Context.empty()));
535
+ toArray() {
536
+ return collectPublisher(this, new AbortController().signal, Context.empty());
534
537
  }
535
538
  /** Resolves to the last emitted value, or undefined for an empty source. */
536
- async toPromise() {
537
- return lastIterableValue(this.iterate(new AbortController().signal, Context.empty()));
539
+ toPromise() {
540
+ return lastPublisherValue(this, new AbortController().signal, Context.empty());
538
541
  }
539
542
  };
540
543
  /** Shared stateless empty Flux instance. */
@@ -576,6 +579,7 @@ function publisherAsyncIterable(publisher, signal) {
576
579
  const queue = new AsyncQueue();
577
580
  let subscription;
578
581
  let pendingDemand = 0;
582
+ let unboundedRequested = false;
579
583
  let terminated = signal.aborted;
580
584
  const cleanup = () => signal.removeEventListener("abort", cancel);
581
585
  const cancel = () => {
@@ -629,10 +633,16 @@ function publisherAsyncIterable(publisher, signal) {
629
633
  }
630
634
  }
631
635
  return {
632
- /** Requests exactly one upstream item for one iterator pull. */
636
+ /** Requests one pull item, or upgrades terminal drains to one unbounded batch. */
633
637
  next() {
634
- if (!terminated) if (subscription) subscription.request(1);
635
- else pendingDemand = addCap(pendingDemand, 1);
638
+ if (!terminated) {
639
+ const request = isUnboundedIteration(signal) ? UNBOUNDED_DEMAND : 1;
640
+ if (request !== UNBOUNDED_DEMAND || !unboundedRequested) {
641
+ unboundedRequested = request === UNBOUNDED_DEMAND;
642
+ if (subscription) subscription.request(request);
643
+ else pendingDemand = addCap(pendingDemand, request);
644
+ }
645
+ }
636
646
  return queue.next();
637
647
  },
638
648
  /** Cancels upstream when iteration stops early. */
@@ -758,8 +768,8 @@ function sortMergedSourcesDelayError(sources, comparator) {
758
768
  });
759
769
  }
760
770
  /** Consumes a cleanup publisher and ignores all emitted values. */
761
- async function drainPublisher(source, signal, context) {
762
- for await (const _ of Flux.from(source).iterate(signal, context));
771
+ function drainPublisher(source, signal, context) {
772
+ return drainPublisher$1(Flux.from(source), signal, context);
763
773
  }
764
774
  //#endregion
765
775
  export { Flux };