| 1 | "effect/Layer#annotateLogs": |
| 2 | replacement: "Layer.fromBuild((memoMap, scope) => Effect.annotateLogs(Layer.buildWithMemoMap(self, memoMap, scope), ...annotations))" |
| 3 | note: "Apply Effect.annotateLogs to the layer acquisition effect." |
| 4 | "effect/Layer#annotateSpans": |
| 5 | replacement: "Layer.fromBuild((memoMap, scope) => Effect.annotateSpans(Layer.buildWithMemoMap(self, memoMap, scope), ...annotations))" |
| 6 | note: "Apply Effect.annotateSpans to the layer acquisition effect." |
| 7 | "effect/Layer#catchAll": |
| 8 | replacement: "Layer.catch" |
| 9 | note: "The typed-error handler was renamed." |
| 10 | "effect/Layer#catchAllCause": |
| 11 | replacement: "Layer.catchCause" |
| 12 | note: "The cause handler was renamed." |
| 13 | "effect/Layer#context": |
| 14 | replacement: "Layer.effectContext(Effect.context<R>())" |
| 15 | note: "Capture and return the current service context." |
| 16 | "effect/Layer#CurrentMemoMap": |
| 17 | replacement: "Layer.CurrentMemoMap" |
| 18 | note: "The service remains but is now a Context.Service class with forkOrCreate." |
| 19 | "effect/Layer#die": |
| 20 | replacement: "Layer.unwrap(Effect.die(defect))" |
| 21 | note: "Lift the Effect defect constructor." |
| 22 | "effect/Layer#dieSync": |
| 23 | replacement: "Layer.unwrap(Effect.suspend(() => Effect.die(evaluate())))" |
| 24 | note: "Suspend evaluation and lift Effect.die; Effect.dieSync was also removed." |
| 25 | "effect/Layer#discard": |
| 26 | replacement: "Layer.flatMap(self, () => Layer.empty)" |
| 27 | note: "Build the layer while dropping its output context." |
| 28 | "effect/Layer#ensureErrorType": |
| 29 | replacement: "Layer.satisfiesErrorType" |
| 30 | note: "The type constraint helper was renamed." |
| 31 | "effect/Layer#ensureRequirementsType": |
| 32 | replacement: "Layer.satisfiesServicesType" |
| 33 | note: "The requirements type constraint was renamed to services." |
| 34 | "effect/Layer#ensureSuccessType": |
| 35 | replacement: "Layer.satisfiesSuccessType" |
| 36 | note: "The type constraint helper was renamed." |
| 37 | "effect/Layer#extendScope": |
| 38 | replacement: "Layer.buildWithScope(self, outerScope) and Effect.provideContext(program, context)" |
| 39 | note: "Explicitly build against the desired outer scope and provide the resulting context." |
| 40 | "effect/Layer#fail": |
| 41 | replacement: "Layer.unwrap(Effect.fail(error))" |
| 42 | note: "Lift the Effect failure constructor." |
| 43 | "effect/Layer#failCause": |
| 44 | replacement: "Layer.unwrap(Effect.failCause(cause))" |
| 45 | note: "Lift the Effect cause-failure constructor." |
| 46 | "effect/Layer#failCauseSync": |
| 47 | replacement: "Layer.unwrap(Effect.failCauseSync(evaluate))" |
| 48 | note: "Lift the retained Effect constructor." |
| 49 | "effect/Layer#failSync": |
| 50 | replacement: "Layer.unwrap(Effect.failSync(evaluate))" |
| 51 | note: "Lift the retained Effect constructor." |
| 52 | "effect/Layer#fiberRefLocallyScopedWith": |
| 53 | replacement: "Layer.effect(reference, Effect.map(reference, f))" |
| 54 | note: "FiberRef was removed; compute and provide a transformed Context.Reference value." |
| 55 | "effect/Layer#flatten": |
| 56 | replacement: "Layer.flatMap(self, (context) => Context.get(context, key))" |
| 57 | note: "Expand the removed convenience combinator with flatMap and Context.get." |
| 58 | "effect/Layer#function": |
| 59 | replacement: "Layer.effect(keyB, Effect.map(keyA, f))" |
| 60 | note: "Read the input service through its Context.Key and provide the transformed service." |
| 61 | "effect/Layer#isFresh": |
| 62 | replacement: "none" |
| 63 | note: "Layer.fresh remains, but its wrapper has no public freshness predicate." |
| 64 | "effect/Layer#Layer": |
| 65 | replacement: "Layer.Layer" |
| 66 | note: "The type remains with Layer<ROut, E, RIn> parameter order." |
| 67 | "effect/Layer#Layer.Context": |
| 68 | replacement: "Layer.Services<T>" |
| 69 | note: "The input-services extractor moved to the module level and was renamed." |
| 70 | "effect/Layer#LayerTypeId": |
| 71 | replacement: "none" |
| 72 | note: "The marker is private in v4; use Layer.Any or Layer.Variance for type constraints." |
| 73 | "effect/Layer#locally": |
| 74 | replacement: "Layer.updateService(self, reference, () => value)" |
| 75 | note: "Replace FiberRef-local configuration with Context.Reference provision." |
| 76 | "effect/Layer#locallyEffect": |
| 77 | replacement: "Layer.fromBuild((memoMap, scope) => f(Layer.buildWithMemoMap(self, memoMap, scope)))" |
| 78 | note: "Transform the public layer acquisition effect directly." |
| 79 | "effect/Layer#locallyScoped": |
| 80 | replacement: "Layer.succeed(reference, value)" |
| 81 | note: "Provide a v4 Context.Reference value as a configuration layer." |
| 82 | "effect/Layer#locallyWith": |
| 83 | replacement: "Layer.updateService(self, reference, f)" |
| 84 | note: "Transform a Context.Reference during layer acquisition." |
| 85 | "effect/Layer#map": |
| 86 | replacement: "Layer.flatMap(self, (context) => Layer.succeedContext(f(context)))" |
| 87 | note: "Expand the removed output-context mapping combinator." |
| 88 | "effect/Layer#mapError": |
| 89 | replacement: "Layer.fromBuild((memoMap, scope) => Effect.mapError(Layer.buildWithMemoMap(self, memoMap, scope), f))" |
| 90 | note: "Transform the typed error of layer acquisition." |
| 91 | "effect/Layer#match": |
| 92 | replacement: "Layer.fromBuild with Effect.matchEffect over Layer.buildWithMemoMap" |
| 93 | note: "Fold the source acquisition effect, then build the selected failure or success layer." |
| 94 | "effect/Layer#matchCause": |
| 95 | replacement: "Layer.fromBuild with Effect.matchCauseEffect over Layer.buildWithMemoMap" |
| 96 | note: "Fold the source acquisition cause, then build the selected failure or success layer." |
| 97 | "effect/Layer#memoize": |
| 98 | replacement: "automatic shared memoization under Effect.provide" |
| 99 | note: "Reuse the same Layer value; use { local: true } or Layer.fresh to opt out, or MemoMap APIs for manual control." |
| 100 | "effect/Layer#MemoMap": |
| 101 | replacement: "Layer.MemoMap" |
| 102 | note: "The interface remains and now supports parent-child ambient maps." |
| 103 | "effect/Layer#MemoMapTypeId": |
| 104 | replacement: "none" |
| 105 | note: "The MemoMap marker is private in v4." |
| 106 | "effect/Layer#orElse": |
| 107 | replacement: "Layer.catch(self, () => fallback())" |
| 108 | note: "Expand the removed lazy fallback alias with Layer.catch." |
| 109 | "effect/Layer#passthrough": |
| 110 | replacement: "Layer.merge(Layer.effectContext(Effect.context<RIn>()), self)" |
| 111 | note: "Capture required input services and merge them into the layer output." |
| 112 | "effect/Layer#project": |
| 113 | replacement: "Layer.flatMap(self, (context) => Layer.succeed(keyB, f(Context.get(context, keyA))))" |
| 114 | note: "Project one derived service and drop the other outputs." |
| 115 | "effect/Layer#retry": |
| 116 | replacement: "Effect.retry(acquire, schedule) before Layer.effect or Layer.effectContext" |
| 117 | note: "Retry the acquisition Effect; for an arbitrary layer, rebuild a fresh layer for each attempt through Layer.fromBuild." |
| 118 | "effect/Layer#scope": |
| 119 | replacement: "Layer.effect(Scope.Scope, Effect.acquireRelease(Scope.make(), Scope.close))" |
| 120 | note: "Construct and close a child scope explicitly." |
| 121 | "effect/Layer#scoped": |
| 122 | replacement: "Layer.effect" |
| 123 | note: "Scoped acquisition was merged into Layer.effect, which supplies and excludes the layer Scope." |
| 124 | "effect/Layer#scopedContext": |
| 125 | replacement: "Layer.effectContext" |
| 126 | note: "Scoped context acquisition was merged into Layer.effectContext." |
| 127 | "effect/Layer#scopedDiscard": |
| 128 | replacement: "Layer.effectDiscard" |
| 129 | note: "Scoped discard acquisition was merged into Layer.effectDiscard." |
| 130 | "effect/Layer#service": |
| 131 | replacement: "Layer.effect(key, key)" |
| 132 | note: "A Context.Key is an Effect that reads and passes through its service." |
| 133 | "effect/Layer#setClock": |
| 134 | replacement: "Layer.succeed(Clock.Clock, clock)" |
| 135 | note: "Clock.Clock is now a Context.Reference; provide it directly." |
| 136 | "effect/Layer#setConfigProvider": |
| 137 | replacement: "ConfigProvider.layer(configProvider)" |
| 138 | note: "Use the dedicated ConfigProvider layer constructor." |
| 139 | "effect/Layer#setRandom": |
| 140 | replacement: "Layer.succeed(Random.Random, random)" |
| 141 | note: "Random.Random is now a Context.Reference; provide it directly." |
| 142 | "effect/Layer#setRequestBatching": |
| 143 | replacement: "none" |
| 144 | note: "Requests now use resolver-driven batching and expose no batching switch." |
| 145 | "effect/Layer#setRequestCache": |
| 146 | replacement: "none" |
| 147 | note: "The public Request.Cache and its configuration API were removed." |
| 148 | "effect/Layer#setRequestCaching": |
| 149 | replacement: "none" |
| 150 | note: "The public request-caching toggle was removed." |
| 151 | "effect/Layer#setScheduler": |
| 152 | replacement: "Layer.succeed(Scheduler.Scheduler, scheduler)" |
| 153 | note: "Scheduler.Scheduler is now a Context.Reference; provide it directly." |
| 154 | "effect/Layer#setTracer": |
| 155 | replacement: "Layer.succeed(Tracer.Tracer, tracer)" |
| 156 | note: "Tracer.Tracer is now a Context.Reference; provide it directly." |
| 157 | "effect/Layer#setTracerEnabled": |
| 158 | replacement: "Layer.succeed(References.TracerEnabled, enabled)" |
| 159 | note: "Provide the v4 Reference instead of setting a FiberRef." |
| 160 | "effect/Layer#setTracerTiming": |
| 161 | replacement: "Layer.succeed(References.TracerTimingEnabled, enabled)" |
| 162 | note: "Provide the renamed v4 Reference instead of setting a FiberRef." |
| 163 | "effect/Layer#setUnhandledErrorLogLevel": |
| 164 | replacement: "Layer.succeed(References.UnhandledLogLevel, severityOrUndefined)" |
| 165 | note: "Provide LogLevel.Severity or undefined instead of Option<LogLevel>." |
| 166 | "effect/Layer#setVersionMismatchErrorLogLevel": |
| 167 | replacement: "none" |
| 168 | note: "No version-mismatch log-level Reference or public replacement exists." |
| 169 | "effect/Layer#tapErrorCause": |
| 170 | replacement: "Layer.tapCause" |
| 171 | note: "The cause observer was renamed. Its callback must accept the source layer's full error cause; a callback narrowed to only part of the error union is rejected." |
| 172 | "effect/Layer#toRuntime": |
| 173 | replacement: "Layer.build(self), then Effect.runForkWith, Effect.runPromiseWith, or Effect.runSyncWith" |
| 174 | note: "Runtime<R> was removed; build a Context, or use ManagedRuntime.make for a reusable managed runner." |
| 175 | "effect/Layer#toRuntimeWithMemoMap": |
| 176 | replacement: "Layer.buildWithMemoMap(self, memoMap, scope), then Effect.run*With(context)" |
| 177 | note: "Explicit memo-map building now yields a Context rather than a Runtime." |
| 178 | "effect/Layer#unwrapEffect": |
| 179 | replacement: "Layer.unwrap" |
| 180 | note: "The Effect-based unwrap constructor was renamed and generalized." |
| 181 | "effect/Layer#unwrapScoped": |
| 182 | replacement: "Layer.unwrap" |
| 183 | note: "Scoped and unscoped unwrap were merged; Layer.unwrap supplies and excludes the layer Scope." |
| 184 | "effect/Layer#updateService": |
| 185 | replacement: "Layer.updateService" |
| 186 | note: "The combinator remains and now accepts any Context.Key." |
| 187 | "effect/Layer#zipWith": |
| 188 | replacement: "Layer.fromBuild with concurrent Effect.zipWith over Layer.buildWithMemoMap" |
| 189 | note: "Combine acquisition effects directly; use Layer.merge when the function only merged Context values." |
| 190 | "effect/Layer#tapError": |
| 191 | replacement: "Layer.tapError" |
| 192 | note: "The observer must accept the source layer's full error union. Widen callbacks that handled only a subtype; saved curried observers preserve the source error type." |