@types/lodash 4.17.4 → 4.17.6

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.
lodash/README.md CHANGED
@@ -8,7 +8,7 @@ This package contains type definitions for lodash (https://lodash.com).
8
8
  Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lodash.
9
9
 
10
10
  ### Additional Details
11
- * Last updated: Fri, 17 May 2024 02:16:49 GMT
11
+ * Last updated: Thu, 27 Jun 2024 16:07:29 GMT
12
12
  * Dependencies: none
13
13
 
14
14
  # Credits
lodash/common/object.d.ts CHANGED
@@ -1021,41 +1021,98 @@ declare module "../index" {
1021
1021
  functionsIn(): CollectionChain<string>;
1022
1022
  }
1023
1023
 
1024
- type GetIndexedField<T, K> = K extends keyof T
1025
- ? T[K]
1026
- : K extends `${number}`
1027
- ? 'length' extends keyof T
1028
- ? number extends T['length']
1029
- ? number extends keyof T
1030
- ? T[number]
1031
- : undefined
1032
- : undefined
1033
- : undefined
1034
- : undefined;
1024
+ type GetFieldTypeOfArrayLikeByKey<T extends unknown[], K> =
1025
+ K extends number ? T[K]
1026
+ : K extends `${infer N extends number}` ? T[N]
1027
+ : K extends keyof T ? T[K] : undefined;
1035
1028
 
1036
- type FieldWithPossiblyUndefined<T, Key> =
1037
- | GetFieldType<Exclude<T, undefined>, Key>
1038
- | Extract<T, undefined>;
1029
+ type GetFieldTypeOfStringByKey<T extends string, K> =
1030
+ K extends number ? T[K]
1031
+ : K extends `${infer N extends number}` ? T[N]
1032
+ : K extends keyof T ? T[K]
1033
+ : undefined;
1039
1034
 
1040
- type IndexedFieldWithPossiblyUndefined<T, Key> =
1041
- | GetIndexedField<Exclude<T, undefined>, Key>
1042
- | Extract<T, undefined>;
1035
+ type GetFieldTypeOfNarrowedByKey<T, K> =
1036
+ T extends unknown[] ? GetFieldTypeOfArrayLikeByKey<T, K>
1037
+ : T extends string ? GetFieldTypeOfStringByKey<T, K>
1038
+ : K extends keyof T ? T[K]
1039
+ : K extends number
1040
+ ? `${K}` extends keyof T ? T[`${K}`] : undefined
1041
+ : K extends `${infer N extends number}`
1042
+ ? N extends keyof T ? T[N] : undefined
1043
+ : undefined;
1043
1044
 
1044
- type GetFieldType<T, P> = P extends `${infer Left}.${infer Right}`
1045
- ? Left extends keyof Exclude<T, undefined>
1046
- ? FieldWithPossiblyUndefined<Exclude<T, undefined>[Left], Right> | Extract<T, undefined>
1047
- : Left extends `${infer FieldKey}[${infer IndexKey}]`
1048
- ? FieldKey extends keyof T
1049
- ? FieldWithPossiblyUndefined<IndexedFieldWithPossiblyUndefined<T[FieldKey], IndexKey>, Right>
1050
- : undefined
1051
- : undefined
1052
- : P extends keyof T
1053
- ? T[P]
1054
- : P extends `${infer FieldKey}[${infer IndexKey}]`
1055
- ? FieldKey extends keyof T
1056
- ? IndexedFieldWithPossiblyUndefined<T[FieldKey], IndexKey>
1057
- : undefined
1058
- : IndexedFieldWithPossiblyUndefined<T, P>;
1045
+ /** Internal. Assumes P is a dot-delimited path. */
1046
+ type GetFieldTypeOfNarrowedByDotPath<T, P> =
1047
+ P extends `${infer L}.${infer R}`
1048
+ ? GetFieldType<GetFieldTypeOfNarrowedByKey<T, L>, R, 'DotPath'>
1049
+ : GetFieldTypeOfNarrowedByKey<T, P>;
1050
+
1051
+ /** Internal. This is a piece of GetFieldTypeOfNarrowedByLKR logic,
1052
+ * assuming that Lc isn't to be ignored, and does not end with dot. */
1053
+ type GetFieldTypeOfNarrowedByLcKR<T, Lc, K, R> =
1054
+ '' extends R
1055
+ ? GetFieldType<GetFieldTypeOfNarrowedByDotPath<T, Lc>, K, 'Key'>
1056
+ : R extends `.${infer Rc}`
1057
+ ? GetFieldType<GetFieldType<GetFieldTypeOfNarrowedByDotPath<T, Lc>, K, 'Key'>, Rc>
1058
+ : GetFieldType<GetFieldType<GetFieldTypeOfNarrowedByDotPath<T, Lc>, K, 'Key'>, R>
1059
+
1060
+ /** Internal. Assumes T has been narrowed; L is a dot-delimited path,
1061
+ * and should be ignored if an empty string; K is a key name; and R is
1062
+ * a dot-delimetered path, to be ignored if an empty string. Also if
1063
+ * L has a tail dot, or R has a front dot, these dots should be discarded,
1064
+ * however when L or R is just a dot, they should be interpreted as empty
1065
+ * key name (rather than ignored). */
1066
+ type GetFieldTypeOfNarrowedByLKR<T, L, K, R> =
1067
+ '' extends L
1068
+ ? '' extends R
1069
+ ? GetFieldTypeOfNarrowedByKey<T, K>
1070
+ : R extends `.${infer Rc}`
1071
+ ? GetFieldType<GetFieldTypeOfNarrowedByKey<T, K>, Rc>
1072
+ : GetFieldType<GetFieldTypeOfNarrowedByKey<T, K>, R>
1073
+ : L extends `${infer Lc}.`
1074
+ ? GetFieldTypeOfNarrowedByLcKR<T, Lc, K, R>
1075
+ : GetFieldTypeOfNarrowedByLcKR<T, L, K, R>
1076
+
1077
+ /** Internal. Assumes T has been narrowed. */
1078
+ type GetFieldTypeOfNarrowed<T, X, XT extends 'DotPath' | 'Key' | 'Path'> =
1079
+ XT extends 'Key' ? GetFieldTypeOfNarrowedByKey<T, X>
1080
+ : XT extends 'DotPath' ? GetFieldTypeOfNarrowedByDotPath<T, X>
1081
+ : X extends `${infer L}['${infer K}']${infer R}`
1082
+ ? GetFieldTypeOfNarrowedByLKR<T, L, K, R>
1083
+ : X extends `${infer L}["${infer K}"]${infer R}`
1084
+ ? GetFieldTypeOfNarrowedByLKR<T, L, K, R>
1085
+ : X extends `${infer L}[${infer K}]${infer R}`
1086
+ ? GetFieldTypeOfNarrowedByLKR<T, L, K, R>
1087
+ : GetFieldTypeOfNarrowedByDotPath<T, X>;
1088
+
1089
+ /** Internal. Assumes T has been narrowed to an object type. */
1090
+ type GetFieldTypeOfObject<T, X, XT extends 'DotPath' | 'Key' | 'Path'> =
1091
+ Extract<T, unknown[]> extends never
1092
+ ? GetFieldTypeOfNarrowed<T, X, XT>
1093
+ : GetFieldTypeOfNarrowed<Exclude<T, unknown[]>, X, XT>
1094
+ | GetFieldTypeOfNarrowed<Extract<T, unknown[]>, X, XT>;
1095
+
1096
+ /** Internal. Assumes T has been narrowed to a primitive type. */
1097
+ type GetFieldTypeOfPrimitive<T, X, XT extends 'DotPath' | 'Key' | 'Path'> =
1098
+ Extract<T, string> extends never
1099
+ ? T extends never ? never : undefined
1100
+ : (Exclude<T, string> extends never ? never : undefined)
1101
+ | GetFieldTypeOfNarrowed<Extract<T, string>, X, XT>;
1102
+
1103
+ /**
1104
+ * Deduces the type of value at the path P of type T,
1105
+ * so that _.get<T, P>(t: T, p: P): GetFieldType<T, P>.
1106
+ * XT specifies the exact meaning of X:
1107
+ * - 'Path' (default) - X is a path type to be fully parsed;
1108
+ * - 'DotPath - X is a dot-delimitered path, without square (indexing) brackets;
1109
+ * - 'Key' - X is a simple key, and needs no parsing.
1110
+ */
1111
+ type GetFieldType<T, X, XT extends 'DotPath' | 'Key' | 'Path' = 'Path'> =
1112
+ Extract<T, object> extends never
1113
+ ? GetFieldTypeOfPrimitive<T, X, XT>
1114
+ : GetFieldTypeOfPrimitive<Exclude<T, object>, X, XT>
1115
+ | GetFieldTypeOfObject<Extract<T, object>, X, XT>;
1059
1116
 
1060
1117
  interface LoDashStatic {
1061
1118
  /**
@@ -1579,6 +1636,10 @@ declare module "../index" {
1579
1636
  * @return Returns the new mapped object.
1580
1637
  */
1581
1638
  mapValues<TResult>(obj: string | null | undefined, callback: StringIterator<TResult>): NumericDictionary<TResult>;
1639
+ /**
1640
+ * @see _.mapValues
1641
+ */
1642
+ mapValues<T, TResult>(array: T[], callback: ArrayIterator<T, TResult>): NumericDictionary<TResult>;
1582
1643
  /**
1583
1644
  * @see _.mapValues
1584
1645
  */
@@ -1634,7 +1695,7 @@ declare module "../index" {
1634
1695
  /**
1635
1696
  * @see _.mapValues
1636
1697
  */
1637
- mapValues<TResult>(callback: DictionaryIterator<T, TResult>): Object<Dictionary<TResult>>;
1698
+ mapValues<TResult>(callback: ArrayIterator<T, TResult>): NumericDictionary<TResult>;
1638
1699
  /**
1639
1700
  * @see _.mapValues
1640
1701
  */
@@ -1702,7 +1763,7 @@ declare module "../index" {
1702
1763
  /**
1703
1764
  * @see _.mapValues
1704
1765
  */
1705
- mapValues<TResult>(callback: DictionaryIterator<T, TResult>): ObjectChain<Dictionary<TResult>>;
1766
+ mapValues<TResult>(callback: ArrayIterator<T, TResult>): ObjectChain<NumericDictionary<TResult>>;
1706
1767
  /**
1707
1768
  * @see _.mapValues
1708
1769
  */
lodash/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@types/lodash",
3
- "version": "4.17.4",
3
+ "version": "4.17.6",
4
4
  "description": "TypeScript definitions for lodash",
5
5
  "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lodash",
6
6
  "license": "MIT",
@@ -55,6 +55,6 @@
55
55
  },
56
56
  "scripts": {},
57
57
  "dependencies": {},
58
- "typesPublisherContentHash": "29aeb85b95cd7d3be7579ea9938820eb2d06fcb68095fd735ad9abbbc5148766",
59
- "typeScriptVersion": "4.7"
58
+ "typesPublisherContentHash": "7b3079d1429e9e75e2d4c67aa9a96e2b37b73f32ccc26b1d4f25bf72d7b27f0f",
59
+ "typeScriptVersion": "4.8"
60
60
  }