i18next 26.3.0 → 26.3.1

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.
@@ -1 +1 @@
1
- {"type":"module","version":"26.3.0"}
1
+ {"type":"module","version":"26.3.1"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "i18next",
3
- "version": "26.3.0",
3
+ "version": "26.3.1",
4
4
  "description": "i18next internationalization framework",
5
5
  "main": "./dist/cjs/i18next.js",
6
6
  "module": "./dist/esm/i18next.js",
package/typescript/t.d.ts CHANGED
@@ -77,23 +77,23 @@ interface Branded<Ns extends Namespace> {
77
77
  /** ****************************************************
78
78
  * Build all keys and key prefixes based on Resources *
79
79
  ***************************************************** */
80
- type KeysBuilderWithReturnObjects<Res, Key = keyof Res> = [Res] extends [never]
81
- ? never
82
- : Key extends keyof Res
83
- ? Res[Key] extends $Dictionary | readonly unknown[]
84
- ?
85
- | JoinKeys<Key, WithOrWithoutPlural<keyof $OmitArrayKeys<Res[Key]>>>
86
- | JoinKeys<Key, KeysBuilderWithReturnObjects<Res[Key]>>
87
- : never
88
- : never;
80
+ // Do NOT add a `[Res] extends [never]` guard here: it defers these into
81
+ // conditional types, so `KeyPrefix<Ns>` no longer resolves to a literal union
82
+ // and `keyPrefix` inference widens to the whole namespace, polluting `t()`
83
+ // return types with sibling keys (#2434 regression). Guard `never` in the merge.
84
+ type KeysBuilderWithReturnObjects<Res, Key = keyof Res> = Key extends keyof Res
85
+ ? Res[Key] extends $Dictionary | readonly unknown[]
86
+ ?
87
+ | JoinKeys<Key, WithOrWithoutPlural<keyof $OmitArrayKeys<Res[Key]>>>
88
+ | JoinKeys<Key, KeysBuilderWithReturnObjects<Res[Key]>>
89
+ : never
90
+ : never;
89
91
 
90
- type KeysBuilderWithoutReturnObjects<Res, Key = keyof $OmitArrayKeys<Res>> = [Res] extends [never]
91
- ? never
92
- : Key extends keyof Res
93
- ? Res[Key] extends $Dictionary | readonly unknown[]
94
- ? JoinKeys<Key, KeysBuilderWithoutReturnObjects<Res[Key]>>
95
- : Key
96
- : never;
92
+ type KeysBuilderWithoutReturnObjects<Res, Key = keyof $OmitArrayKeys<Res>> = Key extends keyof Res
93
+ ? Res[Key] extends $Dictionary | readonly unknown[]
94
+ ? JoinKeys<Key, KeysBuilderWithoutReturnObjects<Res[Key]>>
95
+ : Key
96
+ : never;
97
97
 
98
98
  type KeysBuilder<Res, WithReturnObjects> = $IsResourcesDefined extends true
99
99
  ? WithReturnObjects extends true