1"effect/ConfigProvider#ConfigProvider":
2 replacement: "ConfigProvider.ConfigProvider"
3 note: "The model remains but now exposes `load(path)`, returning `Effect<Node | undefined, SourceError>`, and `mapInput(f)` for provider-owned path transformation. `undefined` means the path is missing; a `Node` means it exists."
4"effect/ConfigProvider#ConfigProvider.Flat":
5 replacement: "ConfigProvider.ConfigProvider"
6 note: "Flat providers were removed; implement the unified path-based provider with ConfigProvider.make."
7"effect/ConfigProvider#ConfigProvider.FromEnvConfig":
8 replacement: "Parameters<typeof ConfigProvider.fromEnv>[0]"
9 note: "Options are inline in v4 and contain env plus preserveEmptyStrings; custom path delimiters moved to provider path transforms, while separated sequences and records use Config.Array and Config.Record."
10"effect/ConfigProvider#ConfigProvider.FromMapConfig":
11 replacement: "none"
12 note: "fromMap and its delimiter options were removed; expand delimited keys into a nested value and use ConfigProvider.fromUnknown."
13"effect/ConfigProvider#ConfigProvider.KeyComponent":
14 replacement: "ConfigProvider.Path[number]"
15 note: "Tagged key components became plain string or number path segments."
16"effect/ConfigProvider#ConfigProvider.KeyIndex":
17 replacement: "number"
18 note: "Tagged KeyIndex values became numeric ConfigProvider.Path segments."
19"effect/ConfigProvider#ConfigProvider.KeyName":
20 replacement: "string"
21 note: "Tagged KeyName values became string ConfigProvider.Path segments."
22"effect/ConfigProvider#ConfigProvider.Proto":
23 replacement: "ConfigProvider.ConfigProvider"
24 note: "The public marker prototype was removed; use the provider interface itself."
25"effect/ConfigProvider#ConfigProviderTypeId":
26 replacement: "ConfigProvider.ConfigProvider"
27 note: "The runtime marker is private in v4; providers are created by public constructors and consumed structurally."
28"effect/ConfigProvider#FlatConfigProviderTypeId":
29 replacement: "none"
30 note: "The flat-provider abstraction and marker were removed."
31"effect/ConfigProvider#fromEnv":
32 replacement: "ConfigProvider.fromEnv"
33 note: "The constructor remains; pass env and preserveEmptyStrings options. Paths use underscore semantics, while sequence separators belong on Config schemas."
34"effect/ConfigProvider#fromFlat":
35 replacement: "ConfigProvider.make"
36 note: "Flat providers were unified with ConfigProvider; return a `Value`, `Record`, or `Array` node for a found path, or `undefined` when missing."
37"effect/ConfigProvider#fromJson":
38 replacement: "ConfigProvider.fromUnknown"
39 note: "Renamed to reflect support for any in-memory JavaScript value."
40"effect/ConfigProvider#fromMap":
41 replacement: "ConfigProvider.fromUnknown"
42 note: "Expand the map's delimited keys into a nested object first; v4 removed fromMap and its pathDelim/seqDelim options."
43"effect/ConfigProvider#kebabCase":
44 replacement: "ConfigProvider.mapInput((path) => path.map((part) => typeof part === \"string\" ? String.kebabCase(part) : part))"
45 note: "Named recasing helpers were removed except constantCase; transform string path segments explicitly."
46"effect/ConfigProvider#lowerCase":
47 replacement: "ConfigProvider.mapInput((path) => path.map((part) => typeof part === \"string\" ? part.toLowerCase() : part))"
48 note: "Transform string path segments explicitly with mapInput."
49"effect/ConfigProvider#make":
50 replacement: "ConfigProvider.make"
51 note: "The constructor now takes a path lookup returning `Effect<Node | undefined, SourceError>`, rather than a full Config loader and flattened provider. Return `undefined` for a missing path and a `Node` for a found path."
52"effect/ConfigProvider#makeFlat":
53 replacement: "ConfigProvider.make"
54 note: "The flat-provider constructor was removed; return a `Value`, `Record`, or `Array` node for a found path, or `undefined` when missing."
55"effect/ConfigProvider#mapInputPath":
56 replacement: "ConfigProvider.mapInput"
57 note: "Renamed and generalized: the callback receives and returns the complete Path, including numeric array indexes."
58"effect/ConfigProvider#snakeCase":
59 replacement: "ConfigProvider.mapInput((path) => path.map((part) => typeof part === \"string\" ? String.snakeCase(part) : part))"
60 note: "Named recasing helpers were removed except constantCase; transform string path segments explicitly."
61"effect/ConfigProvider#unnested":
62 replacement: "ConfigProvider.mapInput((path) => path[0] === name ? path.slice(1) : path)"
63 note: "The named helper was removed; strip the matching leading segment explicitly. Add custom handling if the v3 mismatch error was significant."
64"effect/ConfigProvider#upperCase":
65 replacement: "ConfigProvider.mapInput((path) => path.map((part) => typeof part === \"string\" ? part.toUpperCase() : part))"
66 note: "Transform string path segments explicitly with mapInput."
67"effect/ConfigProvider#within":
68 replacement: "ConfigProvider.orElse + ConfigProvider.mapInput"
69 note: "The scoped transform helper was removed; build a provider that transforms paths below the prefix and falls back to the original provider elsewhere."