| 1 | "effect/Channel#acquireReleaseOut": |
| 2 | replacement: "Channel.acquireRelease" |
| 3 | note: "Renamed to acquireRelease. The v4 release action cannot add environment requirements, so capture or provide any services it needs." |
| 4 | "effect/Channel#as": |
| 5 | replacement: "Channel.mapDone" |
| 6 | note: "Replace Channel.as(self, value) with Channel.mapDone(self, () => value)." |
| 7 | "effect/Channel#asVoid": |
| 8 | replacement: "Channel.mapDone" |
| 9 | note: "Replace Channel.asVoid(self) with Channel.mapDone(self, () => void 0)." |
| 10 | "effect/Channel#bufferChunk": |
| 11 | replacement: "none" |
| 12 | note: "The inferred Channel.fromChunk match is not equivalent. Rebuild the buffered upstream-pull transform with Channel.fromTransform and Channel.toTransform." |
| 13 | "effect/Channel#catchAll": |
| 14 | replacement: "Channel.catch" |
| 15 | note: "Renamed to catch for typed-error recovery." |
| 16 | "effect/Channel#catchAllCause": |
| 17 | replacement: "Channel.catchCause" |
| 18 | note: "Renamed to catchCause for full-cause recovery." |
| 19 | "effect/Channel#Channel": |
| 20 | replacement: "Channel.Channel" |
| 21 | note: "Retained, but reorder type parameters from <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env> to <OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>. Convert Effect values explicitly with Channel.fromEffect or Channel.fromEffectDone." |
| 22 | "effect/Channel#ChannelException": |
| 23 | replacement: "none" |
| 24 | note: "Removed implementation artifact. Channel.pipeToOrFail now handles upstream failures without exposing the v3 exception wrapper." |
| 25 | "effect/Channel#ChannelExceptionTypeId": |
| 26 | replacement: "none" |
| 27 | note: "Removed implementation artifact. Channel.pipeToOrFail now handles upstream failures without exposing the v3 exception wrapper." |
| 28 | "effect/Channel#isChannelException": |
| 29 | replacement: "none" |
| 30 | note: "Removed implementation artifact. Channel.pipeToOrFail now handles upstream failures without exposing the v3 exception wrapper." |
| 31 | "effect/Channel#ChannelTypeId": |
| 32 | replacement: "Channel.TypeId" |
| 33 | note: "Renamed to TypeId; the brand is now the string literal ~effect/Channel. Prefer Channel.isChannel for runtime checks." |
| 34 | "effect/Channel#ChannelUnify": |
| 35 | replacement: "Channel.ChannelUnify" |
| 36 | note: "Retained; update inferred Channel arguments to the v4 generic order." |
| 37 | "effect/Channel#ChannelUnifyIgnore": |
| 38 | replacement: "Channel.ChannelUnifyIgnore" |
| 39 | note: "Retained with a new shape: it no longer extends EffectUnifyIgnore and now contains Effect?: true." |
| 40 | "effect/Channel#collect": |
| 41 | replacement: "Channel.filterMap" |
| 42 | note: "Use Channel.filterMap(self, Filter.fromPredicateOption(pf)) to adapt the v3 Option-returning partial function." |
| 43 | "effect/Channel#concatAll": |
| 44 | replacement: "Channel.flatten" |
| 45 | note: "Use flatten for sequential emitted-channel flattening. V4 preserves the outer done value and discards child done values." |
| 46 | "effect/Channel#concatOut": |
| 47 | replacement: "Channel.flatten" |
| 48 | note: "Use flatten for sequential emitted-channel flattening. V4 preserves the outer done value and discards child done values." |
| 49 | "effect/Channel#concatAllWith": |
| 50 | replacement: "none" |
| 51 | note: "V4 removed child-done accumulation and the outer-done combiner. Use Channel.flatten or Channel.flatMap only when child done values may be discarded; otherwise implement a Pull transform." |
| 52 | "effect/Channel#concatMapWith": |
| 53 | replacement: "none" |
| 54 | note: "V4 removed child-done accumulation and the outer-done combiner. Use Channel.flatten or Channel.flatMap only when child done values may be discarded; otherwise implement a Pull transform." |
| 55 | "effect/Channel#concatMap": |
| 56 | replacement: "Channel.flatMap" |
| 57 | note: "Renamed to flatMap. Sequential flattening is the default; child done values are discarded and the source done value is preserved." |
| 58 | "effect/Channel#concatMapWithCustom": |
| 59 | replacement: "none" |
| 60 | note: "Removed with the channel executor scheduling protocol. Use Channel.flatMap for ordinary sequencing or implement custom scheduling with Channel.fromTransform and Pull." |
| 61 | "effect/Channel#context": |
| 62 | replacement: "Channel.contextWith" |
| 63 | note: "Use Channel.contextWith((context) => Channel.end(context)); the context was the v3 channel done value." |
| 64 | "effect/Channel#contextWithChannel": |
| 65 | replacement: "Channel.contextWith" |
| 66 | note: "Renamed to contextWith." |
| 67 | "effect/Channel#contextWithEffect": |
| 68 | replacement: "Channel.contextWith" |
| 69 | note: "Use Channel.contextWith((context) => Channel.fromEffectDone(f(context))) to preserve the effect result as the done value." |
| 70 | "effect/Channel#doneCollect": |
| 71 | replacement: "none" |
| 72 | note: "No exact channel combinator remains. Drive Channel.toPull, collect output elements, and handle Cause.Done to retain both outputs and the done value." |
| 73 | "effect/Channel#emitCollect": |
| 74 | replacement: "none" |
| 75 | note: "No exact channel combinator remains. Drive Channel.toPull, collect output elements, and handle Cause.Done to retain both outputs and the done value." |
| 76 | "effect/Channel#ensuringWith": |
| 77 | replacement: "Channel.onExit" |
| 78 | note: "Renamed to onExit; the finalizer still receives the channel Exit." |
| 79 | "effect/Channel#foldCauseChannel": |
| 80 | replacement: "none" |
| 81 | note: "V4 has no exact two-sided fold over failure and completion. Use catchCause or catch for failure-only handling, concatWith for success-only handling, or match the Pull in a custom transform." |
| 82 | "effect/Channel#foldChannel": |
| 83 | replacement: "none" |
| 84 | note: "V4 has no exact two-sided fold over failure and completion. Use catchCause or catch for failure-only handling, concatWith for success-only handling, or match the Pull in a custom transform." |
| 85 | "effect/Channel#fromEither": |
| 86 | replacement: "Channel.fromEffectDone" |
| 87 | note: "Either is now Result. Use Channel.fromEffectDone(Effect.fromResult(result)) to preserve success as the done value." |
| 88 | "effect/Channel#fromInput": |
| 89 | replacement: "none" |
| 90 | note: "SingleProducerAsyncInput was removed. Model the producer with Queue and Pull; use Channel.fromPull with Queue.take when a typed done value matters." |
| 91 | "effect/Channel#fromOption": |
| 92 | replacement: "Channel.fromEffectDone" |
| 93 | note: "Use Channel.fromEffectDone(Effect.fromOption(option, Option.none)) to preserve the v3 Option.none error, or omit onNone for the v4 NoSuchElementError default." |
| 94 | "effect/Channel#fromPubSubScoped": |
| 95 | replacement: "Channel.fromPubSubTake" |
| 96 | note: "Change the protocol to PubSub<Take<Elem, Err, Done>> and use Channel.flattenArray(Channel.fromPubSubTake(pubsub)). The v4 constructor owns the scoped subscription and returns a Channel directly." |
| 97 | "effect/Channel#interruptWhenDeferred": |
| 98 | replacement: "Channel.interruptWhen" |
| 99 | note: "Use Channel.interruptWhen(self, Deferred.await(deferred)); the Deferred-specific overload was removed." |
| 100 | "effect/Channel#mapErrorCause": |
| 101 | replacement: "Channel.catchCause" |
| 102 | note: "Use Channel.catchCause(self, (cause) => Channel.failCause(f(cause)))." |
| 103 | "effect/Channel#mapInputContext": |
| 104 | replacement: "Channel.updateContext" |
| 105 | note: "Renamed to updateContext for transforming the channel requirement Context." |
| 106 | "effect/Channel#mapInputEffect": |
| 107 | replacement: "none" |
| 108 | note: "V4 removed upstream done/error effect mapping. Adapt Cause.Done or failure on the upstream Pull, then pass it through Channel.toTransform(self)." |
| 109 | "effect/Channel#mapInputErrorEffect": |
| 110 | replacement: "none" |
| 111 | note: "V4 removed upstream done/error effect mapping. Adapt Cause.Done or failure on the upstream Pull, then pass it through Channel.toTransform(self)." |
| 112 | "effect/Channel#mapInputIn": |
| 113 | replacement: "Channel.mapInput" |
| 114 | note: "Use Channel.mapInput(self, (value) => Effect.succeed(f(value))); v4 consolidated pure and effectful input mapping." |
| 115 | "effect/Channel#mapInputInEffect": |
| 116 | replacement: "Channel.mapInput" |
| 117 | note: "Renamed to mapInput; the mapper remains effectful." |
| 118 | "effect/Channel#mapOut": |
| 119 | replacement: "Channel.map" |
| 120 | note: "Renamed to map; the v4 mapper also receives the element index." |
| 121 | "effect/Channel#mapOutEffect": |
| 122 | replacement: "Channel.mapEffect" |
| 123 | note: "Renamed to mapEffect for sequential effectful output mapping." |
| 124 | "effect/Channel#mapOutEffectPar": |
| 125 | replacement: "Channel.mapEffect" |
| 126 | note: "Use Channel.mapEffect(self, f, { concurrency: n }); ordered output remains the default." |
| 127 | "effect/Channel#mergeAllUnbounded": |
| 128 | replacement: "Channel.mergeAll" |
| 129 | note: "Use Channel.mergeAll(channels, { concurrency: \"unbounded\" }); child done values are discarded and the outer done value is preserved." |
| 130 | "effect/Channel#mergeAllUnboundedWith": |
| 131 | replacement: "none" |
| 132 | note: "V4 mergeAll removed child-done combining. Use Channel.mergeAll if terminal accumulation can be dropped; otherwise implement a custom Pull merge." |
| 133 | "effect/Channel#mergeAllWith": |
| 134 | replacement: "none" |
| 135 | note: "V4 mergeAll removed child-done combining. Use Channel.mergeAll if terminal accumulation can be dropped; otherwise implement a custom Pull merge." |
| 136 | "effect/Channel#mergeOutWith": |
| 137 | replacement: "none" |
| 138 | note: "V4 mergeAll removed child-done combining. Use Channel.mergeAll if terminal accumulation can be dropped; otherwise implement a custom Pull merge." |
| 139 | "effect/Channel#mergeMap": |
| 140 | replacement: "Channel.flatMap" |
| 141 | note: "Use Channel.flatMap with concurrency and bufferSize for backpressure, or Channel.switchMap with the same options for the v3 sliding strategy." |
| 142 | "effect/Channel#mergeOut": |
| 143 | replacement: "Channel.mergeAll" |
| 144 | note: "Use Channel.mergeAll(self, { concurrency: n }) for bounded backpressured flattening when child done values are irrelevant." |
| 145 | "effect/Channel#mergeWith": |
| 146 | replacement: "Channel.merge" |
| 147 | note: "Use Channel.merge with haltStrategy left, right, both, or either for standard policies. Custom MergeDecision effects require a Pull-level redesign." |
| 148 | "effect/Channel#orDieWith": |
| 149 | replacement: "Channel.catch" |
| 150 | note: "Use Channel.catch(self, (error) => Channel.die(f(error))); v4 Channel.orDie has no mapping callback." |
| 151 | "effect/Channel#orElse": |
| 152 | replacement: "Channel.catch" |
| 153 | note: "Use Channel.catch(self, () => that()) and keep the fallback lazy." |
| 154 | "effect/Channel#provideLayer": |
| 155 | replacement: "Channel.provide" |
| 156 | note: "Both collapse into provide. V4 removes services supplied by the layer and retains remaining requirements; use options.local when a fresh layer instance is needed." |
| 157 | "effect/Channel#provideSomeLayer": |
| 158 | replacement: "Channel.provide" |
| 159 | note: "Both collapse into provide. V4 removes services supplied by the layer and retains remaining requirements; use options.local when a fresh layer instance is needed." |
| 160 | "effect/Channel#read": |
| 161 | replacement: "none" |
| 162 | note: "The channel instruction AST was removed. Implement a one-step upstream read with Channel.fromTransform and Pull matching, including Cause.Done handling." |
| 163 | "effect/Channel#readOrFail": |
| 164 | replacement: "none" |
| 165 | note: "The channel instruction AST was removed. Implement a one-step upstream read with Channel.fromTransform and Pull matching, including Cause.Done handling." |
| 166 | "effect/Channel#readWith": |
| 167 | replacement: "none" |
| 168 | note: "The channel instruction AST was removed. Implement a one-step upstream read with Channel.fromTransform and Pull matching, including Cause.Done handling." |
| 169 | "effect/Channel#readWithCause": |
| 170 | replacement: "none" |
| 171 | note: "The channel instruction AST was removed. Implement a one-step upstream read with Channel.fromTransform and Pull matching, including Cause.Done handling." |
| 172 | "effect/Channel#repeated": |
| 173 | replacement: "Channel.forever" |
| 174 | note: "Use forever for infinite repetition. Channel.repeat takes a Schedule and may terminate, so it is not equivalent." |
| 175 | "effect/Channel#run": |
| 176 | replacement: "Channel.runDrain" |
| 177 | note: "Use runDrain to consume all emitted elements and return the channel's done value." |
| 178 | "effect/Channel#runScoped": |
| 179 | replacement: "Channel.toPull" |
| 180 | note: "No direct scoped runner remains. Use toPull in the caller scope and recover Cause.Done; use runDrain when an internally managed scope is acceptable." |
| 181 | "effect/Channel#scopedWith": |
| 182 | replacement: "Channel.unwrap" |
| 183 | note: "Use Channel.unwrap(Effect.map(Effect.scope, (scope) => Channel.fromEffect(f(scope)))) so the effect uses the active channel scope." |
| 184 | "effect/Channel#toPullIn": |
| 185 | replacement: "Channel.toPullScoped" |
| 186 | note: "Renamed to toPullScoped. The returned Pull emits elements directly and represents completion with Cause.Done instead of Either." |
| 187 | "effect/Channel#toSink": |
| 188 | replacement: "Sink.fromChannel" |
| 189 | note: "Constructor moved to Sink. Adapt the channel to non-empty array input, no emitted leftovers, and a Sink.End done value." |
| 190 | "effect/Channel#toStream": |
| 191 | replacement: "Stream.fromChannel" |
| 192 | note: "Constructor moved to Stream. Adapt Chunk outputs to non-empty readonly arrays and map the channel done value to void." |
| 193 | "effect/Channel#unwrapScoped": |
| 194 | replacement: "Channel.unwrap" |
| 195 | note: "Use unwrap; v4 supplies the active channel scope to the effect and removes Scope from the resulting requirement." |
| 196 | "effect/Channel#unwrapScopedWith": |
| 197 | replacement: "Channel.unwrap" |
| 198 | note: "Use Channel.unwrap(Effect.flatMap(Effect.scope, f)) to pass the active channel scope to f." |
| 199 | "effect/Channel#void": |
| 200 | replacement: "Channel.empty" |
| 201 | note: "Renamed to empty: emit nothing and end with void." |
| 202 | "effect/Channel#write": |
| 203 | replacement: "Channel.succeed" |
| 204 | note: "Renamed to succeed, which emits one element in v4. Use Channel.end when migrating v3 succeed, which produced a done value." |
| 205 | "effect/Channel#writeAll": |
| 206 | replacement: "Channel.fromArray" |
| 207 | note: "Replace the variadic writer with Channel.fromArray(outs)." |
| 208 | "effect/Channel#writeChunk": |
| 209 | replacement: "Channel.fromChunk" |
| 210 | note: "Renamed to fromChunk for emitting every Chunk element." |
| 211 | "effect/Channel#zip": |
| 212 | replacement: "Channel.concatWith" |
| 213 | note: "For sequential zip, concatWith the left channel and mapDone the right result to a tuple. Concurrent tuple-done semantics require custom Pull coordination." |
| 214 | "effect/Channel#zipLeft": |
| 215 | replacement: "Channel.concatWith" |
| 216 | note: "For sequential zipLeft, concatWith and mapDone the right result back to the left done value. Concurrent done preservation requires custom Pull coordination." |
| 217 | "effect/Channel#zipRight": |
| 218 | replacement: "Channel.concat" |
| 219 | note: "Use concat for the sequential form; it preserves the right done value. Concurrent mode has no exact replacement." |