@kakasoo/deep-strict-types 2.0.7 → 2.0.8
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.
- package/bin/src/functions/DeepStrictObjectKeys.d.ts +3 -1
- package/bin/src/functions/DeepStrictObjectKeys.d.ts.map +1 -1
- package/bin/src/functions/DeepStrictObjectKeys.js.map +1 -1
- package/bin/src/types/DeepStrictObjectKeys.d.ts +1 -1
- package/bin/src/types/DeepStrictObjectKeys.d.ts.map +1 -1
- package/bin/src/types/DeepStrictOmit.d.ts +2 -2
- package/bin/src/types/DeepStrictOmit.d.ts.map +1 -1
- package/bin/src/types/DeepStrictPick.d.ts +2 -3
- package/bin/src/types/DeepStrictPick.d.ts.map +1 -1
- package/bin/src/types/ExpandGlob.d.ts +24 -0
- package/bin/src/types/ExpandGlob.d.ts.map +1 -0
- package/bin/src/types/ExpandGlob.js +3 -0
- package/bin/src/types/ExpandGlob.js.map +1 -0
- package/bin/src/types/index.d.ts +1 -0
- package/bin/src/types/index.d.ts.map +1 -1
- package/bin/src/types/index.js +1 -0
- package/bin/src/types/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,13 +8,15 @@ type Replace<S extends string> = S extends '[*]' ? `${number}` : S extends `[*].
|
|
|
8
8
|
* Converts type-level keys (with `[*]` notation) to runtime-friendly keys (with `${number}` notation),
|
|
9
9
|
* strips leading dots, and wraps the result in an array type.
|
|
10
10
|
*/
|
|
11
|
+
/** @internal Removes glob patterns (e.g., `'*'`, `'a.*'`) from a string union. */
|
|
12
|
+
type WithoutGlob<K extends string> = K extends '*' | `${string}.*` ? never : K;
|
|
11
13
|
type ReturnType<Target extends object, Joiner extends {
|
|
12
14
|
array: string;
|
|
13
15
|
object: string;
|
|
14
16
|
} = {
|
|
15
17
|
array: '[*]';
|
|
16
18
|
object: '.';
|
|
17
|
-
}> = [Target] extends [never] ? [] : RemoveStartWithDot<Replace<DeepStrictObjectKeys<Target, Joiner, false
|
|
19
|
+
}> = [Target] extends [never] ? [] : RemoveStartWithDot<Replace<WithoutGlob<DeepStrictObjectKeys<Target, Joiner, false>>>>[];
|
|
18
20
|
/**
|
|
19
21
|
* @title Runtime Function for Extracting All Nested Keys from an Object.
|
|
20
22
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeepStrictObjectKeys.d.ts","sourceRoot":"","sources":["../../../src/functions/DeepStrictObjectKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,0FAA0F;AAC1F,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAE3F,gGAAgG;AAChG,KAAK,OAAO,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,KAAK,GAC5C,GAAG,MAAM,EAAE,GACX,CAAC,SAAS,OAAO,MAAM,IAAI,EAAE,GAC3B,GAAG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,GAC5B,CAAC,SAAS,GAAG,MAAM,MAAM,SAAS,MAAM,OAAO,MAAM,IAAI,EAAE,GACzD,GAAG,MAAM,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,GACrC,CAAC,SAAS,GAAG,MAAM,MAAM,SAAS,MAAM,MAAM,MAAM,IAAI,EAAE,GACxD,GAAG,MAAM,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,GACrC,CAAC,CAAC;AAEZ;;;;GAIG;AACH,KAAK,UAAU,CACb,MAAM,SAAS,MAAM,EACrB,MAAM,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,IAC9E,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"DeepStrictObjectKeys.d.ts","sourceRoot":"","sources":["../../../src/functions/DeepStrictObjectKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,0FAA0F;AAC1F,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAE3F,gGAAgG;AAChG,KAAK,OAAO,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,KAAK,GAC5C,GAAG,MAAM,EAAE,GACX,CAAC,SAAS,OAAO,MAAM,IAAI,EAAE,GAC3B,GAAG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,GAC5B,CAAC,SAAS,GAAG,MAAM,MAAM,SAAS,MAAM,OAAO,MAAM,IAAI,EAAE,GACzD,GAAG,MAAM,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,GACrC,CAAC,SAAS,GAAG,MAAM,MAAM,SAAS,MAAM,MAAM,MAAM,IAAI,EAAE,GACxD,GAAG,MAAM,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,GACrC,CAAC,CAAC;AAEZ;;;;GAIG;AACH,kFAAkF;AAClF,KAAK,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;AAE/E,KAAK,UAAU,CACb,MAAM,SAAS,MAAM,EACrB,MAAM,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,IAC9E,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GACxB,EAAE,GACF,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAE5F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,SAAS,MAAM,EACrB,MAAM,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,EAChF,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAqB5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeepStrictObjectKeys.js","sourceRoot":"","sources":["../../../src/functions/DeepStrictObjectKeys.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"DeepStrictObjectKeys.js","sourceRoot":"","sources":["../../../src/functions/DeepStrictObjectKeys.ts"],"names":[],"mappings":";;AAmDA,oDAwBC;AA5CD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,oBAAoB,CAGlC,MAAc;IACd,IAAI,MAAM,GAAW,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAY,CAAC;IAC7D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAY,CAAC;IACnD,CAAC;IAED,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAEvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;YAClB,MAAM,KAAK,GAAI,MAAc,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAChD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC;gBACzE,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAA+B,CAAC;AACrE,CAAC"}
|
|
@@ -17,7 +17,7 @@ declare namespace DeepStrictObjectKeys {
|
|
|
17
17
|
} = {
|
|
18
18
|
array: '[*]';
|
|
19
19
|
object: '.';
|
|
20
|
-
}, IsSafe extends boolean = true, P extends keyof Target = Exclude<keyof Target, keyof []>> = [Target] extends [never] ? never : P extends string ? IsUnion<Target[P]> extends true ? Equal<IsSafe, true> extends true ? P : P | (Target[P] extends infer E ? E extends ValueType ? P : E extends object ? E extends Array<infer _Element extends object> ? P | `${P}${Joiner['array']}${Joiner['object']}${Infer<_Element, Joiner, IsSafe>}` : `${P}${Joiner['object']}${Infer<E, Joiner, IsSafe>}` : never : never) : Target[P] extends Array<infer Element extends object> ? P | `${P}${Joiner['array']}${Joiner['object']}${Infer<Element, Joiner, false>}` : Target[P] extends Array<infer _Element> ? Equal<IsSafe, true> extends true ? P : P | never : Target[P] extends ValueType ? P : IsAny<Target[P]> extends true ? P : Target[P] extends object ? Target[P] extends Record<string, never> ? `${P}` : `${P}` | `${P}${Joiner['object']}${Infer<Target[P], Joiner, false>}` : never : never;
|
|
20
|
+
}, IsSafe extends boolean = true, P extends keyof Target = Exclude<keyof Target, keyof []>> = [Target] extends [never] ? never : (P extends string ? IsUnion<Target[P]> extends true ? Equal<IsSafe, true> extends true ? P : P | (Target[P] extends infer E ? E extends ValueType ? P : E extends object ? E extends Array<infer _Element extends object> ? P | `${P}${Joiner['array']}${Joiner['object']}${Infer<_Element, Joiner, IsSafe>}` : `${P}${Joiner['object']}${Infer<E, Joiner, IsSafe>}` : never : never) : Target[P] extends Array<infer Element extends object> ? P | `${P}${Joiner['array']}${Joiner['object']}${Infer<Element, Joiner, false>}` : Target[P] extends Array<infer _Element> ? Equal<IsSafe, true> extends true ? P : P | never : Target[P] extends ValueType ? P : IsAny<Target[P]> extends true ? P : Target[P] extends object ? Target[P] extends Record<string, never> ? `${P}` : `${P}` | `${P}${Joiner['object']}${Infer<Target[P], Joiner, false>}` : never : never) | ([Exclude<keyof Target, keyof []>] extends [never] ? never : '*');
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
23
|
* @title Type for Listing All Keys of Nested Objects or Arrays.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeepStrictObjectKeys.d.ts","sourceRoot":"","sources":["../../../src/types/DeepStrictObjectKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,kBAAU,oBAAoB,CAAC;IAC7B;;;;;;OAMG;IACH,KAAY,KAAK,CACf,MAAM,SAAS,MAAM,EACrB,MAAM,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAE,EAChF,MAAM,SAAS,OAAO,GAAG,IAAI,EAC7B,CAAC,SAAS,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,EAAE,CAAC,IACtD,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GACxB,KAAK,
|
|
1
|
+
{"version":3,"file":"DeepStrictObjectKeys.d.ts","sourceRoot":"","sources":["../../../src/types/DeepStrictObjectKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,kBAAU,oBAAoB,CAAC;IAC7B;;;;;;OAMG;IACH,KAAY,KAAK,CACf,MAAM,SAAS,MAAM,EACrB,MAAM,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAE,EAChF,MAAM,SAAS,OAAO,GAAG,IAAI,EAC7B,CAAC,SAAS,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,EAAE,CAAC,IACtD,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GACxB,KAAK,GAED,CAAC,CAAC,SAAS,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAC7B,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,IAAI,GAC9B,CAAC,GAEC,CAAC,GACC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,GACtB,CAAC,SAAS,SAAS,GACjB,CAAC,GACD,CAAC,SAAS,MAAM,GACd,CAAC,SAAS,KAAK,CAAC,MAAM,QAAQ,SAAS,MAAM,CAAC,GAE1C,CAAC,GAEC,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAEjF,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GACtD,KAAK,GACT,KAAK,CAAC,GAChB,MAAM,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,OAAO,SAAS,MAAM,CAAC,GAEjD,CAAC,GAEC,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAC/E,MAAM,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,QAAQ,CAAC,GAErC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,IAAI,GAC9B,CAAC,GACD,CAAC,GAAG,KAAK,GACX,MAAM,CAAC,CAAC,CAAC,SAAS,SAAS,GACzB,CAAC,GACD,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAC3B,CAAC,GACD,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,GACtB,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACrC,GAAG,CAAC,EAAE,GACN,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GACtE,KAAK,GACjB,KAAK,CAAC,GACV,CAAC,CAAC,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;CAC3E;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,oBAAoB,CAC9B,MAAM,SAAS,MAAM,EACrB,MAAM,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IACjD,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,GAAG,CAAC;CACb,EACD,MAAM,SAAS,OAAO,GAAG,IAAI,IAG7B,iBAAiB,CAAC,MAAM,CAAC,SAAS,KAAK,CAAC,MAAM,OAAO,CAAC,GAElD,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,GACzB,MAAM,CAAC,OAAO,CAAC,GACf,OAAO,SAAS,MAAM,GAEpB,AADA,0EAA0E;AAC1E,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAEvF,MAAM,CAAC,OAAO,CAAC,GACnB,iBAAiB,CAAC,MAAM,CAAC,SAAS,SAAS,CAAC,MAAM,OAAO,CAAC,EAAE,GAC1D,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,GACzB,MAAM,CAAC,OAAO,CAAC,GACf,OAAO,SAAS,MAAM,GACpB,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GACvF,MAAM,CAAC,OAAO,CAAC,GAEnB,oBAAoB,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC"}
|
|
@@ -14,7 +14,7 @@ declare namespace DeepStrictOmit {
|
|
|
14
14
|
* @template T - The object type to omit keys from
|
|
15
15
|
* @template K - The dot-notation key paths to omit (must be valid keys of `T`)
|
|
16
16
|
*/
|
|
17
|
-
type Infer<T extends object, K extends DeepStrictObjectKeys<T>> = [K] extends [never] ? T : {
|
|
17
|
+
type Infer<T extends object, K extends DeepStrictObjectKeys<T>> = '*' extends K ? {} : [K] extends [never] ? T : {
|
|
18
18
|
[key in keyof T as key extends K ? never : key]: T[key] extends Array<infer Element extends object> ? key extends string ? Element extends Date ? Array<Element> : GetElementMember<K, key> extends DeepStrictObjectKeys<Element> ? Array<Infer<Element, GetElementMember<K, key>>> : Array<Element> : never : T[key] extends Array<infer Element> ? Array<Element> : T[key] extends object ? key extends string ? T[key] extends Date ? T[key] : GetElementMember<K, key> extends DeepStrictObjectKeys<T[key]> ? Infer<T[key], GetElementMember<K, key>> : T[key] : never : T[key];
|
|
19
19
|
};
|
|
20
20
|
}
|
|
@@ -35,6 +35,6 @@ declare namespace DeepStrictOmit {
|
|
|
35
35
|
* type Example3 = DeepStrictOmit<{ a: 1 }[], "[*].a">; // {}[]
|
|
36
36
|
* ```
|
|
37
37
|
*/
|
|
38
|
-
export type DeepStrictOmit<T extends object, K extends DeepStrictObjectKeys<T>> = T extends Array<infer Element extends object> ? Array<DeepStrictOmit<Element, GetElementMember<K, ''> extends DeepStrictObjectKeys<Element> ? GetElementMember<K, ''> : never>> : DeepStrictOmit.Infer<T, K>;
|
|
38
|
+
export type DeepStrictOmit<T extends object, K extends DeepStrictObjectKeys<T>> = '*' extends K ? T extends Array<any> ? never[] : {} : T extends Array<infer Element extends object> ? Array<DeepStrictOmit<Element, GetElementMember<K, ''> extends DeepStrictObjectKeys<Element> ? GetElementMember<K, ''> : never>> : DeepStrictOmit.Infer<T, K>;
|
|
39
39
|
export {};
|
|
40
40
|
//# sourceMappingURL=DeepStrictOmit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeepStrictOmit.d.ts","sourceRoot":"","sources":["../../../src/types/DeepStrictOmit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,kBAAU,cAAc,CAAC;IACvB;;;;;;;;;;;;OAYG;IACH,KAAY,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"DeepStrictOmit.d.ts","sourceRoot":"","sources":["../../../src/types/DeepStrictOmit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,kBAAU,cAAc,CAAC;IACvB;;;;;;;;;;;;OAYG;IACH,KAAY,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,GAClF,EAAE,GACF,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACjB,CAAC,GACD;SACG,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,MAAM,OAAO,SAAS,MAAM,CAAC,GAC/F,GAAG,SAAS,MAAM,GAChB,OAAO,SAAS,IAAI,GAClB,KAAK,CAAC,OAAO,CAAC,GACd,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,oBAAoB,CAAC,OAAO,CAAC,GAC5D,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAC/C,KAAK,CAAC,OAAO,CAAC,GAClB,KAAK,GACP,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,MAAM,OAAO,CAAC,GACjC,KAAK,CAAC,OAAO,CAAC,GACd,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,GACnB,GAAG,SAAS,MAAM,GAChB,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,GACjB,CAAC,CAAC,GAAG,CAAC,GACN,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAC3D,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GACvC,CAAC,CAAC,GAAG,CAAC,GACV,KAAK,GACP,CAAC,CAAC,GAAG,CAAC;KACf,CAAC;CACT;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,GAC3F,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAClB,KAAK,EAAE,GACP,EAAE,GACJ,CAAC,SAAS,KAAK,CAAC,MAAM,OAAO,SAAS,MAAM,CAAC,GAC3C,KAAK,CACH,cAAc,CACZ,OAAO,EACP,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,oBAAoB,CAAC,OAAO,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAChG,CACF,GACD,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { DeepStrictObjectKeys } from './DeepStrictObjectKeys';
|
|
2
2
|
import type { DeepStrictOmit } from './DeepStrictOmit';
|
|
3
3
|
import type { DeepStrictUnbrand } from './DeepStrictUnbrand';
|
|
4
|
+
import type { ExpandGlob } from './ExpandGlob';
|
|
4
5
|
import type { RemoveAfterDot } from './RemoveAfterDot';
|
|
5
6
|
import type { RemoveLastProperty } from './RemoveLastProperty';
|
|
6
7
|
/**
|
|
@@ -22,7 +23,5 @@ import type { RemoveLastProperty } from './RemoveLastProperty';
|
|
|
22
23
|
* type Example3 = DeepStrictPick<{ a: 1 }[], "[*].a">; // { a: 1 }[]
|
|
23
24
|
* ```
|
|
24
25
|
*/
|
|
25
|
-
export type DeepStrictPick<T extends object, K extends DeepStrictObjectKeys<T>> = DeepStrictOmit<T, Exclude<DeepStrictObjectKeys<T>,
|
|
26
|
-
//
|
|
27
|
-
K | RemoveLastProperty<K> | RemoveAfterDot<DeepStrictUnbrand<T>, K>>>;
|
|
26
|
+
export type DeepStrictPick<T extends object, K extends DeepStrictObjectKeys<T>> = '*' extends K ? T : DeepStrictOmit<T, Exclude<Exclude<DeepStrictObjectKeys<T>, K | RemoveLastProperty<K> | RemoveAfterDot<DeepStrictUnbrand<T>, K> | ExpandGlob<K>>, '*' | `${string}.*`>>;
|
|
28
27
|
//# sourceMappingURL=DeepStrictPick.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeepStrictPick.d.ts","sourceRoot":"","sources":["../../../src/types/DeepStrictPick.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,IAAI,cAAc,
|
|
1
|
+
{"version":3,"file":"DeepStrictPick.d.ts","sourceRoot":"","sources":["../../../src/types/DeepStrictPick.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,GAC3F,CAAC,GACD,cAAc,CACZ,CAAC,EACD,OAAO,CACL,OAAO,CACL,oBAAoB,CAAC,CAAC,CAAC,EACvB,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CACpF,EACD,GAAG,GAAG,GAAG,MAAM,IAAI,CACpB,CACF,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title Type for Expanding Glob Patterns into Template Literal Matchers.
|
|
3
|
+
*
|
|
4
|
+
* Converts glob patterns (`*`) into template literal types that can match
|
|
5
|
+
* all keys at a given level. Used by {@link DeepStrictPick} to correctly
|
|
6
|
+
* preserve all descendant keys when a glob pattern is selected.
|
|
7
|
+
*
|
|
8
|
+
* - `'*'` expands to `string` (matches everything)
|
|
9
|
+
* - `'a.*'` expands to `'a.${string}' | 'a'` (matches all keys under `a`)
|
|
10
|
+
* - `'items[*].*'` expands to `'items[*].${string}' | 'items[*]'`
|
|
11
|
+
*
|
|
12
|
+
* @template K - The key pattern to expand
|
|
13
|
+
* @returns A template literal type matching all keys covered by the glob, or `never` for non-glob keys
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* type Ex1 = ExpandGlob<'*'>; // string
|
|
18
|
+
* type Ex2 = ExpandGlob<'a.*'>; // `a.${string}` | 'a'
|
|
19
|
+
* type Ex3 = ExpandGlob<'items[*].*'>; // `items[*].${string}` | 'items[*]'
|
|
20
|
+
* type Ex4 = ExpandGlob<'a.b'>; // never (not a glob pattern)
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export type ExpandGlob<K extends string> = K extends '*' ? string : K extends `${infer Prefix}.*` ? `${Prefix}.${string}` | Prefix : never;
|
|
24
|
+
//# sourceMappingURL=ExpandGlob.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpandGlob.d.ts","sourceRoot":"","sources":["../../../src/types/ExpandGlob.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,GACpD,MAAM,GACN,CAAC,SAAS,GAAG,MAAM,MAAM,IAAI,GAC3B,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,MAAM,GAC9B,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpandGlob.js","sourceRoot":"","sources":["../../../src/types/ExpandGlob.ts"],"names":[],"mappings":""}
|
package/bin/src/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC"}
|
package/bin/src/types/index.js
CHANGED
|
@@ -23,6 +23,7 @@ __exportStar(require("./DeepStrictPick"), exports);
|
|
|
23
23
|
__exportStar(require("./DeepStrictUnbrand"), exports);
|
|
24
24
|
__exportStar(require("./ElementOf"), exports);
|
|
25
25
|
__exportStar(require("./Equal"), exports);
|
|
26
|
+
__exportStar(require("./ExpandGlob"), exports);
|
|
26
27
|
__exportStar(require("./GetMember"), exports);
|
|
27
28
|
__exportStar(require("./GetType"), exports);
|
|
28
29
|
__exportStar(require("./IsAny"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,oDAAkC;AAClC,yDAAuC;AACvC,6DAA2C;AAC3C,mDAAiC;AACjC,mDAAiC;AACjC,sDAAoC;AACpC,8CAA4B;AAC5B,0CAAwB;AACxB,8CAA4B;AAC5B,4CAA0B;AAC1B,0CAAwB;AACxB,4CAA0B;AAC1B,mDAAiC;AACjC,sDAAoC;AACpC,uDAAqC;AACrC,uDAAqC;AACrC,8CAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,oDAAkC;AAClC,yDAAuC;AACvC,6DAA2C;AAC3C,mDAAiC;AACjC,mDAAiC;AACjC,sDAAoC;AACpC,8CAA4B;AAC5B,0CAAwB;AACxB,+CAA6B;AAC7B,8CAA4B;AAC5B,4CAA0B;AAC1B,0CAAwB;AACxB,4CAA0B;AAC1B,mDAAiC;AACjC,sDAAoC;AACpC,uDAAqC;AACrC,uDAAqC;AACrC,8CAA4B"}
|