@fncts/io 0.0.17 → 0.0.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. package/Cached/internal.d.ts +1 -1
  2. package/CancellerState.d.ts +1 -1
  3. package/Channel/ChildExecutorDecision/definition.d.ts +1 -1
  4. package/Channel/UpstreamPullRequest/definition.d.ts +1 -1
  5. package/Channel/UpstreamPullStrategy/definition.d.ts +1 -1
  6. package/Channel/api/mergeAllWith.d.ts +1 -1
  7. package/Channel/internal/ChannelExecutor.d.ts +1 -1
  8. package/Channel/internal/ChannelState.d.ts +2 -2
  9. package/Channel/internal/MergeDecision.d.ts +1 -1
  10. package/Channel/internal/MergeState.d.ts +1 -1
  11. package/Channel/internal/SingleProducerAsyncInput.d.ts +1 -1
  12. package/Fiber/FiberContext.d.ts +18 -18
  13. package/Fiber/definition.d.ts +2 -2
  14. package/FiberRef/api.d.ts +2 -2
  15. package/FiberRef/definition.d.ts +2 -2
  16. package/FiberRef/unsafe.d.ts +6 -0
  17. package/FiberRefs/definition.d.ts +1 -1
  18. package/FiberState/definition.d.ts +2 -2
  19. package/FiberStatus/definition.d.ts +1 -1
  20. package/Future/definition.d.ts +1 -1
  21. package/Hub/definition.d.ts +1 -1
  22. package/IO/api/core-scope.d.ts +4 -3
  23. package/IO/api/interrupt.d.ts +2 -2
  24. package/IO/api/supervised.d.ts +10 -0
  25. package/IO/api.d.ts +7 -10
  26. package/IO/definition.d.ts +16 -139
  27. package/IO.d.ts +1 -0
  28. package/IOEnv/definition.d.ts +1 -1
  29. package/Layer/definition.d.ts +2 -2
  30. package/Ref/definition.d.ts +3 -3
  31. package/RuntimeConfig.d.ts +1 -1
  32. package/STM/definition.d.ts +5 -5
  33. package/STM/internal/CommitState.d.ts +1 -1
  34. package/STM/internal/Entry.d.ts +2 -2
  35. package/STM/internal/Journal.d.ts +6 -6
  36. package/STM/internal/TryCommit.d.ts +2 -2
  37. package/STM/internal/Versioned.d.ts +1 -1
  38. package/Schedule/Decision.d.ts +1 -1
  39. package/Scope/ReleaseMap/definition.d.ts +1 -1
  40. package/Scope/definition.d.ts +2 -2
  41. package/ScopedRef/definition.d.ts +1 -1
  42. package/State/internal.d.ts +1 -1
  43. package/Stream/api.d.ts +1 -1
  44. package/Stream/definition.d.ts +1 -1
  45. package/Stream/internal/DebounceState.d.ts +4 -4
  46. package/Stream/internal/Handoff.d.ts +5 -5
  47. package/Stream/internal/Pull.d.ts +1 -1
  48. package/Stream/internal/SinkEndReason.d.ts +1 -1
  49. package/TExit/definition.d.ts +3 -3
  50. package/TReentrantLock/definition.d.ts +1 -1
  51. package/TRef/definition.d.ts +1 -1
  52. package/TxnId.d.ts +1 -1
  53. package/_cjs/Clock/definition.cjs +1 -1
  54. package/_cjs/Console/definition.cjs +1 -1
  55. package/_cjs/Fiber/FiberContext.cjs +161 -294
  56. package/_cjs/Fiber/FiberContext.cjs.map +1 -1
  57. package/_cjs/FiberRef/api.cjs +19 -10
  58. package/_cjs/FiberRef/api.cjs.map +1 -1
  59. package/_cjs/FiberRef/unsafe.cjs +9 -1
  60. package/_cjs/FiberRef/unsafe.cjs.map +1 -1
  61. package/_cjs/IO/api/core-scope.cjs +23 -15
  62. package/_cjs/IO/api/core-scope.cjs.map +1 -1
  63. package/_cjs/IO/api/ensuringChildren.cjs +4 -2
  64. package/_cjs/IO/api/ensuringChildren.cjs.map +1 -1
  65. package/_cjs/IO/api/interrupt.cjs +17 -9
  66. package/_cjs/IO/api/interrupt.cjs.map +1 -1
  67. package/_cjs/IO/api/supervised.cjs +26 -0
  68. package/_cjs/IO/api/supervised.cjs.map +1 -0
  69. package/_cjs/IO/api/withChildren.cjs +4 -2
  70. package/_cjs/IO/api/withChildren.cjs.map +1 -1
  71. package/_cjs/IO/api.cjs +69 -63
  72. package/_cjs/IO/api.cjs.map +1 -1
  73. package/_cjs/IO/definition.cjs +8 -226
  74. package/_cjs/IO/definition.cjs.map +1 -1
  75. package/_cjs/IO.cjs +13 -0
  76. package/_cjs/IO.cjs.map +1 -1
  77. package/_cjs/Layer/api.cjs +1 -1
  78. package/_cjs/Random/definition.cjs +1 -1
  79. package/_cjs/Scope/definition.cjs +1 -1
  80. package/_mjs/Clock/definition.mjs +1 -1
  81. package/_mjs/Console/definition.mjs +1 -1
  82. package/_mjs/Fiber/FiberContext.mjs +161 -293
  83. package/_mjs/Fiber/FiberContext.mjs.map +1 -1
  84. package/_mjs/FiberRef/api.mjs +18 -9
  85. package/_mjs/FiberRef/api.mjs.map +1 -1
  86. package/_mjs/FiberRef/unsafe.mjs +6 -0
  87. package/_mjs/FiberRef/unsafe.mjs.map +1 -1
  88. package/_mjs/IO/api/core-scope.mjs +21 -16
  89. package/_mjs/IO/api/core-scope.mjs.map +1 -1
  90. package/_mjs/IO/api/ensuringChildren.mjs +3 -2
  91. package/_mjs/IO/api/ensuringChildren.mjs.map +1 -1
  92. package/_mjs/IO/api/interrupt.mjs +14 -6
  93. package/_mjs/IO/api/interrupt.mjs.map +1 -1
  94. package/_mjs/IO/api/supervised.mjs +14 -0
  95. package/_mjs/IO/api/supervised.mjs.map +1 -0
  96. package/_mjs/IO/api/withChildren.mjs +3 -2
  97. package/_mjs/IO/api/withChildren.mjs.map +1 -1
  98. package/_mjs/IO/api.mjs +67 -60
  99. package/_mjs/IO/api.mjs.map +1 -1
  100. package/_mjs/IO/definition.mjs +5 -184
  101. package/_mjs/IO/definition.mjs.map +1 -1
  102. package/_mjs/IO.mjs +1 -0
  103. package/_mjs/IO.mjs.map +1 -1
  104. package/_mjs/Layer/api.mjs +1 -1
  105. package/_mjs/Random/definition.mjs +1 -1
  106. package/_mjs/Scope/definition.mjs +1 -1
  107. package/_src/Fiber/FiberContext.ts +21 -111
  108. package/_src/FiberRef/api.ts +15 -7
  109. package/_src/FiberRef/unsafe.ts +5 -0
  110. package/_src/IO/api/core-scope.ts +12 -10
  111. package/_src/IO/api/interrupt.ts +8 -3
  112. package/_src/IO/api/supervised.ts +14 -0
  113. package/_src/IO/api.ts +25 -26
  114. package/_src/IO/definition.ts +8 -158
  115. package/_src/IO.ts +1 -0
  116. package/package.json +4 -4
@@ -1,6 +1,6 @@
1
1
  import { FIO } from "@fncts/io/IO/definition";
2
2
  export declare const CachedTypeId: unique symbol;
3
- export declare type CachedTypeId = typeof CachedTypeId;
3
+ export type CachedTypeId = typeof CachedTypeId;
4
4
  export declare abstract class CachedInternal<Error, Resource> {
5
5
  readonly _E: () => Error;
6
6
  readonly _A: () => Resource;
@@ -18,7 +18,7 @@ export declare class Registered {
18
18
  /**
19
19
  * @tsplus type fncts.CancellerState
20
20
  */
21
- export declare type CancellerState = Empty | Pending | Registered;
21
+ export type CancellerState = Empty | Pending | Registered;
22
22
  /**
23
23
  * @tsplus type fncts.CancellerStateOps
24
24
  */
@@ -26,7 +26,7 @@ export declare const Yield: ChildExecutorDecision;
26
26
  /**
27
27
  * @tsplus type fncts.io.Channel.ChildExecutorDecision
28
28
  */
29
- export declare type ChildExecutorDecision = Continue | Close | Yield;
29
+ export type ChildExecutorDecision = Continue | Close | Yield;
30
30
  /**
31
31
  * @tsplus type fncts.io.Channel.ChildExecutorDecisionOps
32
32
  */
@@ -11,7 +11,7 @@ export declare class NoUpstream {
11
11
  /**
12
12
  * @tsplus type fncts.io.Channel.UpstreamPullRequest
13
13
  */
14
- export declare type UpstreamPullRequest<A> = Pulled<A> | NoUpstream;
14
+ export type UpstreamPullRequest<A> = Pulled<A> | NoUpstream;
15
15
  /**
16
16
  * @tsplus type fncts.io.Channel.UpstreamPullRequestOps
17
17
  */
@@ -17,7 +17,7 @@ export interface PullAfterAllEnqueued<A> {
17
17
  * @tsplus location "@fncts/io/Channel/UpstreamPullStrategy/definition"
18
18
  */
19
19
  export declare function PullAfterAllEnqueued<A>(emitSeparator: Maybe<A>): UpstreamPullStrategy<A>;
20
- export declare type UpstreamPullStrategy<A> = PullAfterNext<A> | PullAfterAllEnqueued<A>;
20
+ export type UpstreamPullStrategy<A> = PullAfterNext<A> | PullAfterAllEnqueued<A>;
21
21
  /**
22
22
  * @tsplus type fncts.io.Channel.UpstreamPullStrategyOps
23
23
  */
@@ -3,7 +3,7 @@ import { IO } from "@fncts/io/IO/definition";
3
3
  import { Either } from "@fncts/base/data/Either/definition";
4
4
  import { Future } from "@fncts/io/Future";
5
5
  import { Maybe } from "@fncts/base/data/Maybe/definition";
6
- export declare type MergeStrategy = "BackPressure" | "BufferSliding";
6
+ export type MergeStrategy = "BackPressure" | "BufferSliding";
7
7
  /**
8
8
  * @tsplus fluent fncts.io.Channel mergeAllWith
9
9
  * @tsplus location "@fncts/io/Channel/api/mergeAllWith"
@@ -8,7 +8,7 @@ import { ListBuffer } from "@fncts/base/collection/mutable/ListBuffer";
8
8
  import { Maybe } from "@fncts/base/data/Maybe/definition";
9
9
  import type { ChannelState } from "@fncts/io/Channel/internal/ChannelState";
10
10
  import * as State from "@fncts/io/Channel/internal/ChannelState";
11
- export declare type ErasedExecutor<R> = ChannelExecutor<R, unknown, unknown, unknown, unknown, unknown, unknown>;
11
+ export type ErasedExecutor<R> = ChannelExecutor<R, unknown, unknown, unknown, unknown, unknown, unknown>;
12
12
  export declare function readUpstream<R, E, A>(r: State.Read<R, E>, cont: () => IO<R, E, A>): IO<R, E, A>;
13
13
  export declare class ChannelExecutor<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone> {
14
14
  private providedEnv;
@@ -8,7 +8,7 @@ export declare const enum ChannelStateTag {
8
8
  Read = "Read"
9
9
  }
10
10
  export declare const ChannelStateTypeId: unique symbol;
11
- export declare type ChannelStateTypeId = typeof ChannelStateTypeId;
11
+ export type ChannelStateTypeId = typeof ChannelStateTypeId;
12
12
  export declare class Emit {
13
13
  readonly _tag = ChannelStateTag.Emit;
14
14
  readonly _R: (_: unknown) => void;
@@ -40,5 +40,5 @@ export declare class Read<R, E> {
40
40
  constructor(upstream: ErasedExecutor<R> | null, onEffect: (_: IO<R, never, void>) => IO<R, never, void>, onEmit: (_: any) => IO<R, never, void> | null, onDone: (exit: Exit<any, any>) => IO<R, never, void> | null);
41
41
  get effect(): IO<R, E, any>;
42
42
  }
43
- export declare type ChannelState<R, E> = Emit | Done | Effect<R, E> | Read<R, E>;
43
+ export type ChannelState<R, E> = Emit | Done | Effect<R, E> | Read<R, E>;
44
44
  export declare function effectOrNullIgnored<R, E>(channelState: ChannelState<R, E> | null): IO<R, never, void> | null;
@@ -5,7 +5,7 @@ export declare const enum MergeDecisionTag {
5
5
  Await = "Await"
6
6
  }
7
7
  export declare const MergeDecisionTypeId: unique symbol;
8
- export declare type MergeDecisionTypeId = typeof MergeDecisionTypeId;
8
+ export type MergeDecisionTypeId = typeof MergeDecisionTypeId;
9
9
  /**
10
10
  * @tsplus type fncts.io.Channel.MergeDecision
11
11
  * @tsplus companion fncts.io.Channel.MergeDecisionOps
@@ -26,7 +26,7 @@ export declare class RightDone<Env, Err, Err1, Err2, Elem, Done, Done1, Done2> {
26
26
  /**
27
27
  * @tsplus type fncts.io.Channel.MergeState
28
28
  */
29
- export declare type MergeState<Env, Err, Err1, Err2, Elem, Done, Done1, Done2> = BothRunning<Env, Err, Err1, Err2, Elem, Done, Done1, Done2> | LeftDone<Env, Err, Err1, Err2, Elem, Done, Done1, Done2> | RightDone<Env, Err, Err1, Err2, Elem, Done, Done1, Done2>;
29
+ export type MergeState<Env, Err, Err1, Err2, Elem, Done, Done1, Done2> = BothRunning<Env, Err, Err1, Err2, Elem, Done, Done1, Done2> | LeftDone<Env, Err, Err1, Err2, Elem, Done, Done1, Done2> | RightDone<Env, Err, Err1, Err2, Elem, Done, Done1, Done2>;
30
30
  /**
31
31
  * @tsplus type fncts.io.Channel.MergeStateOps
32
32
  */
@@ -34,7 +34,7 @@ export declare class StateEmit<Err, Elem, Done> {
34
34
  readonly _stateTag = StateTag.Emit;
35
35
  constructor(notifyConsumers: Queue<Future<Err, Either<Done, Elem>>>);
36
36
  }
37
- export declare type State<Err, Elem, Done> = StateEmpty | StateEmit<Err, Elem, Done> | StateError<Err> | StateDone<Done>;
37
+ export type State<Err, Elem, Done> = StateEmpty | StateEmit<Err, Elem, Done> | StateError<Err> | StateDone<Done>;
38
38
  /**
39
39
  * An MVar-like abstraction for sending data to channels asynchronously. Designed
40
40
  * for one producer and multiple consumers.
@@ -7,7 +7,6 @@ import { Maybe, Nothing, Just } from "@fncts/base/data/Maybe/definition";
7
7
  import { Fiber } from "@fncts/io/Fiber/definition";
8
8
  import { Hashable } from "@fncts/base/typeclass/Hashable";
9
9
  import { Equatable } from "@fncts/base/typeclass/Equatable";
10
- import { Supervisor } from "@fncts/io/Supervisor/definition";
11
10
  import { RuntimeConfig, RuntimeConfigFlag } from "@fncts/io/RuntimeConfig";
12
11
  import { FiberRefs } from "@fncts/io/FiberRefs";
13
12
  import { Conc, ConcBuilder } from "@fncts/base/collection/immutable/Conc";
@@ -16,10 +15,11 @@ import { Exit } from "@fncts/base/data/Exit/definition";
16
15
  import { Either } from "@fncts/base/data/Either/definition";
17
16
  import { FiberScope } from "@fncts/io/FiberScope";
18
17
  import { Trace } from "@fncts/base/data/Trace/definition";
18
+ import { Supervisor } from "@fncts/io/Supervisor/definition";
19
19
  import { Cause } from "@fncts/base/data/Cause/definition";
20
- import { InterruptStatus } from "@fncts/io/InterruptStatus";
21
20
  import { isInterruptedException, IllegalStateError } from "@fncts/base/data/exceptions";
22
21
  import { FiberDescriptor } from "@fncts/io/FiberDescriptor";
22
+ import { InterruptStatus } from "@fncts/io/InterruptStatus";
23
23
  import { LogLevel } from "@fncts/io/LogLevel";
24
24
  import type { Instruction, Match } from "@fncts/io/IO/definition";
25
25
  import { TraceElement } from "@fncts/base/data/TraceElement";
@@ -28,9 +28,9 @@ import { Stack } from "@fncts/base/internal/Stack";
28
28
  import { FiberTypeId } from "@fncts/io/Fiber/definition";
29
29
  import { FiberState } from "@fncts/io/FiberState";
30
30
  import { FiberStatus } from "@fncts/io/FiberStatus";
31
- export declare type FiberRefLocals = AtomicReference<HashMap<FiberRef<unknown>, Cons<readonly [FiberId.Runtime, unknown]>>>;
32
- declare type Erased = IO<any, any, any>;
33
- declare type ErasedCont = (a: any) => Erased;
31
+ export type FiberRefLocals = AtomicReference<HashMap<FiberRef<unknown>, Cons<readonly [FiberId.Runtime, unknown]>>>;
32
+ type Erased = IO<any, any, any>;
33
+ type ErasedCont = (a: any) => Erased;
34
34
  export declare class InterruptExit {
35
35
  readonly apply: ErasedCont;
36
36
  readonly trace?: string | undefined;
@@ -56,7 +56,7 @@ export declare class Finalizer {
56
56
  readonly _tag = "Finalizer";
57
57
  constructor(finalizer: IO<any, never, any>, apply: ErasedCont, trace?: string | undefined);
58
58
  }
59
- export declare type Frame = InterruptExit | Match<any, any, any, any, any, any, any, any, any> | HandlerFrame | TracedCont | Finalizer;
59
+ export type Frame = InterruptExit | Match<any, any, any, any, any, any, any, any, any> | HandlerFrame | TracedCont | Finalizer;
60
60
  export declare const currentFiber: AtomicReference<FiberContext<any, any> | null>;
61
61
  export declare function unsafeCurrentFiber(): Maybe<FiberContext<any, any>>;
62
62
  /**
@@ -65,10 +65,10 @@ export declare function unsafeCurrentFiber(): Maybe<FiberContext<any, any>>;
65
65
  * @tsplus type fncts.io.Fiber
66
66
  */
67
67
  export declare class FiberContext<E, A> implements Fiber.Runtime<E, A>, Hashable, Equatable {
68
- protected readonly fiberId: FiberId.Runtime;
69
- private runtimeConfig;
70
- private interruptStatus;
71
- private fiberRefLocals;
68
+ readonly fiberId: FiberId.Runtime;
69
+ runtimeConfig: RuntimeConfig;
70
+ interruptStatus: Stack<boolean>;
71
+ fiberRefLocals: FiberRefLocals;
72
72
  private readonly _children;
73
73
  readonly _typeId: FiberTypeId;
74
74
  readonly _tag = "RuntimeFiber";
@@ -80,7 +80,6 @@ export declare class FiberContext<E, A> implements Fiber.Runtime<E, A>, Hashable
80
80
  private asyncEpoch;
81
81
  private stack;
82
82
  nextIO: Instruction | null;
83
- private currentSupervisor;
84
83
  constructor(fiberId: FiberId.Runtime, runtimeConfig: RuntimeConfig, interruptStatus: Stack<boolean>, fiberRefLocals: FiberRefLocals, _children: Set<FiberContext<unknown, unknown>>);
85
84
  get poll(): import("@fncts/io/IO/definition").UIO<import("@fncts/base/data/Maybe").Maybe<import("@fncts/base/data/Exit").Exit<E, A>>>;
86
85
  get inheritRefs(): UIO<void>;
@@ -103,19 +102,19 @@ export declare class FiberContext<E, A> implements Fiber.Runtime<E, A>, Hashable
103
102
  */
104
103
  runUntil(maxOpCount: number): void;
105
104
  unsafeRunLater(i0: Instruction): void;
106
- private unsafeGetRef;
105
+ unsafeGetRef<A>(ref: FiberRef<A>): A;
107
106
  private unsafeGetRefs;
108
- private unsafeSetRef;
109
- private unsafeDeleteRef;
107
+ unsafeSetRef<A>(ref: FiberRef<A>, value: A): void;
108
+ unsafeDeleteRef<A>(ref: FiberRef<A>): void;
110
109
  unsafePoll(): import("@fncts/base/data/Maybe").Maybe<import("@fncts/base/data/Exit").Exit<E, A>>;
111
110
  private interruptExit;
112
- private unsafeAddFinalizer;
113
- private get unsafeIsInterruptible();
111
+ unsafeAddFinalizer(finalizer: IO<any, never, any>): void;
112
+ get unsafeIsInterruptible(): boolean;
114
113
  private get unsafeIsInterrupted();
115
114
  private get unsafeIsInterrupting();
116
115
  private get unsafeShouldInterrupt();
117
116
  private unsafeDisableInterruption;
118
- private unsafeRestoreInterruptStatus;
117
+ unsafeRestoreInterruptStatus(): void;
119
118
  private unsafeAddSuppressedCause;
120
119
  /**
121
120
  * Unwinds the stack, looking for the first error handler, and exiting
@@ -137,7 +136,7 @@ export declare class FiberContext<E, A> implements Fiber.Runtime<E, A>, Hashable
137
136
  private unsafeFork;
138
137
  unsafeOnDone(k: FiberState.Callback<never, Exit<E, A>>): void;
139
138
  private unsafeClearSuppressedCause;
140
- private unsafeGetDescriptor;
139
+ unsafeGetDescriptor(): import("../FiberDescriptor").FiberDescriptor;
141
140
  private unsafeRace;
142
141
  private unsafeCompleteRace;
143
142
  private unsafeCaptureTrace;
@@ -146,5 +145,6 @@ export declare class FiberContext<E, A> implements Fiber.Runtime<E, A>, Hashable
146
145
  unsafeAddChild(child: FiberContext<unknown, unknown>): void;
147
146
  private unsafeLog;
148
147
  private unsafeLogWith;
148
+ get currentSupervisor(): Supervisor<any>;
149
149
  }
150
150
  export {};
@@ -7,7 +7,7 @@ import { TraceElement } from "@fncts/base/data/TraceElement/definition";
7
7
  import { Trace } from "@fncts/base/data/Trace/definition";
8
8
  import type { FiberStatus } from "@fncts/io/FiberStatus";
9
9
  export declare const FiberTypeId: unique symbol;
10
- export declare type FiberTypeId = typeof FiberTypeId;
10
+ export type FiberTypeId = typeof FiberTypeId;
11
11
  /**
12
12
  * @tsplus type fncts.io.Fiber
13
13
  */
@@ -92,7 +92,7 @@ export declare class SyntheticFiber<E, A> implements FiberCommon<E, A> {
92
92
  readonly await: import("../IO").UIO<import("@fncts/base/data/Exit").Exit<E, A>>;
93
93
  constructor(id: FiberId, wait: UIO<Exit<E, A>>, children: UIO<Conc<Fiber.Runtime<any, any>>>, inheritRefs: UIO<void>, poll: UIO<Maybe<Exit<E, A>>>, interruptAs: (fiberId: FiberId) => UIO<Exit<E, A>>);
94
94
  }
95
- export declare type ConcreteFiber<E, A> = Fiber.Runtime<E, A> | Fiber.Synthetic<E, A>;
95
+ export type ConcreteFiber<E, A> = Fiber.Runtime<E, A> | Fiber.Synthetic<E, A>;
96
96
  /**
97
97
  * @tsplus fluent fncts.io.Fiber concrete
98
98
  * @tsplus macro remove
package/FiberRef/api.d.ts CHANGED
@@ -43,7 +43,7 @@ export declare function getAndUpdateJust_<A>(fiberRef: FiberRef<A>, f: (a: A) =>
43
43
  * @tsplus fluent fncts.io.FiberRef locally
44
44
  * @tsplus location "@fncts/io/FiberRef/api"
45
45
  */
46
- export declare function locally_<A>(fiberRef: FiberRef<A>, value: A, __tsplusTrace?: string): <R1, E1, B>(use: import("@fncts/io/IO/definition").IO<R1, E1, B>) => import("@fncts/io/IO/definition").IO<R1, E1, B>;
46
+ export declare function locally_<A>(fiberRef: FiberRef<A>, value: A, __tsplusTrace?: string): <R1, E1, B>(use: import("../IO").IO<R1, E1, B>) => import("../IO").IO<R1, E1, B>;
47
47
  /**
48
48
  * Returns an `IO` that runs with `f` applied to the current fiber.
49
49
  *
@@ -51,7 +51,7 @@ export declare function locally_<A>(fiberRef: FiberRef<A>, value: A, __tsplusTra
51
51
  * @tsplus fluent fncts.io.FiberRef locallyWith
52
52
  * @tsplus location "@fncts/io/FiberRef/api"
53
53
  */
54
- export declare function locallyWith_<A>(self: FiberRef<A>, f: (a: A) => A, __tsplusTrace?: string): <R1, E1, B>(use: import("@fncts/io/IO/definition").IO<R1, E1, B>) => import("@fncts/io/IO/definition").IO<R1, E1, B>;
54
+ export declare function locallyWith_<A>(self: FiberRef<A>, f: (a: A) => A, __tsplusTrace?: string): <R1, E1, B>(use: import("../IO").IO<R1, E1, B>) => import("../IO").IO<R1, E1, B>;
55
55
  /**
56
56
  * @tsplus fluent fncts.io.FiberRef getWith
57
57
  * @tsplus location "@fncts/io/FiberRef/api"
@@ -1,7 +1,7 @@
1
1
  import { Hashable } from "@fncts/base/typeclass/Hashable";
2
2
  import { Equatable } from "@fncts/base/typeclass/Equatable";
3
3
  export declare const FiberRefTypeId: unique symbol;
4
- export declare type FiberRefTypeId = typeof FiberRefTypeId;
4
+ export type FiberRefTypeId = typeof FiberRefTypeId;
5
5
  /**
6
6
  * @tsplus type fncts.io.FiberRef
7
7
  * @tsplus companion fncts.io.FiberRefOps
@@ -32,7 +32,7 @@ export declare class FiberRefInternal<Value, Patch> extends FiberRef<Value> impl
32
32
  [Symbol.equals](that: unknown): boolean;
33
33
  }
34
34
  export declare function isFiberRef(u: unknown): u is FiberRef<unknown>;
35
- declare type Concrete<Value, Patch> = FiberRefInternal<Value, Patch>;
35
+ type Concrete<Value, Patch> = FiberRefInternal<Value, Patch>;
36
36
  /**
37
37
  * @tsplus macro remove
38
38
  */
@@ -5,6 +5,7 @@ import { FiberScope } from "@fncts/io/FiberScope";
5
5
  import { LogLevel } from "@fncts/io/LogLevel";
6
6
  import { List } from "@fncts/base/collection/immutable/List/definition";
7
7
  import { HashMap } from "@fncts/base/collection/immutable/HashMap/definition";
8
+ import { Supervisor } from "@fncts/io/Supervisor/definition";
8
9
  import type { LogSpan } from "../LogSpan.js";
9
10
  import type { Scheduler } from "@fncts/io/internal/Scheduler.js";
10
11
  import { Patch } from "@fncts/base/data/Patch";
@@ -58,3 +59,8 @@ export declare const currentLogAnnotations: import("./definition.js").FiberRef.W
58
59
  * @tsplus location "@fncts/io/FiberRef/unsafe"
59
60
  */
60
61
  export declare const currentScheduler: import("./definition.js").FiberRef.WithPatch<Scheduler, (_: Scheduler) => Scheduler>;
62
+ /**
63
+ * @tsplus static fncts.io.FiberRefOps currentSupervisor
64
+ * @tsplus location "@fncts/io/FiberRef/unsafe"
65
+ */
66
+ export declare const currentSupervisor: import("./definition.js").FiberRef.WithPatch<import("../Supervisor.js").Supervisor<any>, (_: import("../Supervisor.js").Supervisor<any>) => import("../Supervisor.js").Supervisor<any>>;
@@ -3,7 +3,7 @@ import { FiberRef } from "@fncts/io/FiberRef/definition";
3
3
  import { Cons } from "@fncts/base/collection/immutable/List/definition";
4
4
  import { FiberId } from "@fncts/base/data/FiberId/definition";
5
5
  export declare const FiberRefsTypeId: unique symbol;
6
- export declare type FiberRefsTypeId = typeof FiberRefsTypeId;
6
+ export type FiberRefsTypeId = typeof FiberRefsTypeId;
7
7
  /**
8
8
  * @tsplus type fncts.io.FiberRefs
9
9
  * @tsplus companion fncts.io.FiberRefsOps
@@ -7,7 +7,7 @@ import { FiberStatus } from "../FiberStatus.js";
7
7
  /**
8
8
  * @tsplus type fncts.FiberState
9
9
  */
10
- export declare type FiberState<E, A> = Executing<E, A> | Done<E, A>;
10
+ export type FiberState<E, A> = Executing<E, A> | Done<E, A>;
11
11
  /**
12
12
  * @tsplus type fncts.FiberStateOps
13
13
  */
@@ -17,7 +17,7 @@ export declare const FiberState: FiberStateOps;
17
17
  export declare namespace FiberState {
18
18
  type Callback<E, A> = (exit: Exit<E, A>) => void;
19
19
  }
20
- export declare type Callback<E, A> = (exit: Exit<E, A>) => void;
20
+ export type Callback<E, A> = (exit: Exit<E, A>) => void;
21
21
  export declare class Executing<E, A> {
22
22
  status: FiberStatus;
23
23
  observers: Set<Callback<never, Exit<E, A>>>;
@@ -50,7 +50,7 @@ export declare class Suspended {
50
50
  /**
51
51
  * @tsplus type fncts.FiberStatus
52
52
  */
53
- export declare type FiberStatus = Done | Finishing | Running | Suspended;
53
+ export type FiberStatus = Done | Finishing | Running | Suspended;
54
54
  /**
55
55
  * @tsplus type fncts.FiberStatusOps
56
56
  */
@@ -24,4 +24,4 @@ export declare class Done<E, A> {
24
24
  readonly _tag = FutureStateTag.Done;
25
25
  constructor(value: FIO<E, A>);
26
26
  }
27
- export declare type State<E, A> = Done<E, A> | Pending<E, A>;
27
+ export type State<E, A> = Done<E, A> | Pending<E, A>;
@@ -2,7 +2,7 @@ import { PQueue } from "@fncts/io/Queue/definition";
2
2
  import { UIO, IO } from "@fncts/io/IO/definition";
3
3
  import { Scope } from "@fncts/io/Scope/definition";
4
4
  export declare const HubTypeId: unique symbol;
5
- export declare type HubTypeId = typeof HubTypeId;
5
+ export type HubTypeId = typeof HubTypeId;
6
6
  /**
7
7
  * A `Hub<RA, RB, EA, EB, A, B>` is an asynchronous message hub. Publishers
8
8
  * can publish messages of type `A` to the hub and subscribers can subscribe to
@@ -1,10 +1,11 @@
1
1
  import { UIO, URIO } from "@fncts/io/IO/definition";
2
+ import { FiberRef } from "@fncts/io/FiberRef/definition";
2
3
  import { Just } from "@fncts/base/data/Maybe/definition";
3
4
  import { Lazy } from "@fncts/base/data/function/definition";
4
5
  import { Exit } from "@fncts/base/data/Exit/definition";
5
6
  import { Fiber } from "@fncts/io/Fiber/definition";
6
7
  import { FiberScope } from "../../FiberScope.js";
7
- import { GetForkScope, IO } from "../definition.js";
8
+ import { IO } from "../definition.js";
8
9
  /**
9
10
  * @tsplus getter fncts.io.IO daemonChildren
10
11
  * @tsplus location "@fncts/io/IO/api/core-scope"
@@ -21,7 +22,7 @@ export declare const forkScope: UIO<FiberScope>;
21
22
  * @tsplus static fncts.io.IOOps forkScopeWith
22
23
  * @tsplus location "@fncts/io/IO/api/core-scope"
23
24
  */
24
- export declare function forkScopeWith<R, E, A>(f: (_: FiberScope) => IO<R, E, A>, __tsplusTrace?: string): GetForkScope<R, E, A>;
25
+ export declare function forkScopeWith<R, E, A>(f: (_: FiberScope) => IO<R, E, A>, __tsplusTrace?: string): IO<R, E, A>;
25
26
  export declare class ForkScopeRestore {
26
27
  private scope;
27
28
  constructor(scope: FiberScope);
@@ -42,7 +43,7 @@ export declare function forkScopeMask_<R, E, A>(newScope: FiberScope, f: (restor
42
43
  * @tsplus location "@fncts/io/IO/api/core-scope"
43
44
  */
44
45
  export declare function raceWith_<R, E, A, R1, E1, A1, R2, E2, A2, R3, E3, A3>(left: IO<R, E, A>, right: Lazy<IO<R1, E1, A1>>, leftWins: (exit: Exit<E, A>, fiber: Fiber<E1, A1>) => IO<R2, E2, A2>, rightWins: (exit: Exit<E1, A1>, fiber: Fiber<E, A>) => IO<R3, E3, A3>, __tsplusTrace?: string): IO<R | R1 | R2 | R3, E2 | E3, A2 | A3>;
45
- export declare type Grafter = <R, E, A>(effect: IO<R, E, A>) => IO<R, E, A>;
46
+ export type Grafter = <R, E, A>(effect: IO<R, E, A>) => IO<R, E, A>;
46
47
  /**
47
48
  * Transplants specified effects so that when those effects fork other
48
49
  * effects, the forked effects will be governed by the scope of the
@@ -104,6 +104,6 @@ export declare function disconnect<R, E, A>(self: IO<R, E, A>, __tsplusTrace?: s
104
104
  export declare class InterruptStatusRestore {
105
105
  readonly flag: InterruptStatus;
106
106
  constructor(flag: InterruptStatus);
107
- restore: <R, E, A>(io: import("../definition.js").IO<R, E, A>) => import("../definition.js").IO<R, E, A>;
108
- force: <R, E, A>(io: import("../definition.js").IO<R, E, A>) => import("../definition.js").IO<R, E, A>;
107
+ restore: <R, E, A>(io: import("../definition").IO<R, E, A>) => import("../definition").IO<R, E, A>;
108
+ force: <R, E, A>(io: import("../definition").IO<R, E, A>) => import("../definition").IO<R, E, A>;
109
109
  }
@@ -0,0 +1,10 @@
1
+ import { IO } from "@fncts/io/IO/definition";
2
+ import { Supervisor } from "@fncts/io/Supervisor/definition";
3
+ /**
4
+ *
5
+ * Returns an IO with the behavior of this one, but where all child
6
+ * fibers forked in the effect are reported to the specified supervisor.
7
+ * @tsplus fluent fncts.io.IO supervised
8
+ * @tsplus location "@fncts/io/IO/api/supervised"
9
+ */
10
+ export declare function supervised_<R, E, A>(fa: IO<R, E, A>, supervisor: Supervisor<any>, __tsplusTrace?: string): IO<R, E, A>;
package/IO/api.d.ts CHANGED
@@ -16,8 +16,8 @@ import { Exit } from "@fncts/base/data/Exit/definition";
16
16
  import { Trace } from "@fncts/base/data/Trace/definition";
17
17
  import { List } from "@fncts/base/collection/immutable/List/definition";
18
18
  import { ImmutableArray } from "@fncts/base/collection/immutable/ImmutableArray/definition";
19
- import { Supervisor } from "@fncts/io/Supervisor/definition";
20
19
  import { FiberRefs } from "@fncts/io/FiberRefs";
20
+ import type { FiberStatus } from "../FiberStatus.js";
21
21
  import type * as P from "@fncts/base/typeclass";
22
22
  import type { _E, _R } from "@fncts/base/types";
23
23
  import type { FiberContext } from "@fncts/io/Fiber/FiberContext";
@@ -271,7 +271,7 @@ export declare function deferTryCatchWith<R, E, A, E1>(io: (runtimeConfig: Runti
271
271
  * @tsplus static fncts.io.IOOps descriptor
272
272
  * @tsplus location "@fncts/io/IO/api"
273
273
  */
274
- export declare const descriptor: IO<never, never, import("../FiberDescriptor").FiberDescriptor>;
274
+ export declare const descriptor: IO<never, never, import("../FiberDescriptor.js").FiberDescriptor>;
275
275
  /**
276
276
  * Constructs an IO based on information about the current fiber, such as
277
277
  * its identity.
@@ -972,14 +972,6 @@ export declare function succeedNow<A>(value: A, __tsplusTrace?: string): IO<neve
972
972
  * @tsplus location "@fncts/io/IO/api"
973
973
  */
974
974
  export declare function succeed<A>(effect: Lazy<A>, __tsplusTrace?: string): UIO<A>;
975
- /**
976
- *
977
- * Returns an IO with the behavior of this one, but where all child
978
- * fibers forked in the effect are reported to the specified supervisor.
979
- * @tsplus fluent fncts.io.IO supervised
980
- * @tsplus location "@fncts/io/IO/api"
981
- */
982
- export declare function supervised_<R, E, A>(fa: IO<R, E, A>, supervisor: Supervisor<any>, __tsplusTrace?: string): IO<R, E, A>;
983
975
  /**
984
976
  * @tsplus fluent fncts.io.IO summarized
985
977
  * @tsplus location "@fncts/io/IO/api"
@@ -1080,6 +1072,11 @@ export declare function unsandbox<R, E, A>(ma: IO<R, Cause<E>, A>, __tsplusTrace
1080
1072
  * @tsplus location "@fncts/io/IO/api"
1081
1073
  */
1082
1074
  export declare function updateFiberRefs(f: (fiberId: FiberId.Runtime, fiberRefs: FiberRefs) => FiberRefs, __tsplusTrace?: string): UIO<void>;
1075
+ /**
1076
+ * @tsplus static fncts.io.IOOps withFiberContext
1077
+ * @tsplus location "@fncts/io/IO/api"
1078
+ */
1079
+ export declare function withFiberContext<R, E, A>(onState: (fiber: FiberContext<E, A>, status: FiberStatus) => IO<R, E, A>, __tsplusTrace?: string): IO<R, E, A>;
1083
1080
  /**
1084
1081
  * @tsplus fluent fncts.io.IO __call
1085
1082
  * @tsplus location "@fncts/io/IO/api"