@goodie-forms/react 1.1.5-alpha → 1.1.6-alpha
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/dist/hooks/useForm.d.ts +5 -9
- package/dist/hooks/useForm.d.ts.map +1 -1
- package/dist/hooks/useFormErrorObserver.d.ts +3 -5
- package/dist/hooks/useFormErrorObserver.d.ts.map +1 -1
- package/dist/hooks/useFormValuesObserver.d.ts +1 -1
- package/dist/hooks/useFormValuesObserver.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/hooks/useForm.tsx +15 -6
- package/src/hooks/useFormErrorObserver.ts +9 -7
package/dist/hooks/useForm.d.ts
CHANGED
|
@@ -4,19 +4,15 @@ export declare function useForm<TShape extends object>(formConfigs: Form.FormCon
|
|
|
4
4
|
revalidateMode?: "onChange" | "onBlur" | "onSubmit";
|
|
5
5
|
watchIssues?: boolean;
|
|
6
6
|
watchValues?: boolean;
|
|
7
|
-
}):
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
equalityComparators?: Record<any, (a: any, b: any) => boolean>;
|
|
12
|
-
};
|
|
13
|
-
hookConfigs: {
|
|
7
|
+
}): UseForm<TShape>;
|
|
8
|
+
export type UseForm<TShape extends object> = {
|
|
9
|
+
formConfigs: Form.FormConfigs<TShape>;
|
|
10
|
+
hookConfigs?: {
|
|
14
11
|
validateMode?: "onChange" | "onBlur" | "onSubmit";
|
|
15
12
|
revalidateMode?: "onChange" | "onBlur" | "onSubmit";
|
|
16
13
|
watchIssues?: boolean;
|
|
17
14
|
watchValues?: boolean;
|
|
18
|
-
}
|
|
15
|
+
};
|
|
19
16
|
controller: FormController<TShape>;
|
|
20
17
|
};
|
|
21
|
-
export type UseForm<TShape extends object> = ReturnType<typeof useForm<TShape>>;
|
|
22
18
|
//# sourceMappingURL=useForm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../src/hooks/useForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAK/D,wBAAgB,OAAO,CAAC,MAAM,SAAS,MAAM,EAC3C,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EACrC,WAAW,CAAC,EAAE;IACZ,YAAY,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;IAClD,cAAc,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB
|
|
1
|
+
{"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../src/hooks/useForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAK/D,wBAAgB,OAAO,CAAC,MAAM,SAAS,MAAM,EAC3C,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EACrC,WAAW,CAAC,EAAE;IACZ,YAAY,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;IAClD,cAAc,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GA8BI,OAAO,CAAC,MAAM,CAAC,CACrB;AAED,MAAM,MAAM,OAAO,CAAC,MAAM,SAAS,MAAM,IAAI;IAC3C,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE;QACZ,YAAY,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;QAClD,cAAc,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;QACpD,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;IACF,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;CACpC,CAAC"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { Field } from '../../../core/src';
|
|
2
2
|
import { UseForm } from './useForm';
|
|
3
|
-
export declare function useFormErrorObserver<TShape extends object>(form: UseForm<TShape>, options?: {
|
|
4
|
-
include?:
|
|
5
|
-
}): Record<{ [K in keyof TShape & string]: NonNullable<TShape[K]> extends (...args: any[]) => any ? never : NonNullable<TShape[K]> extends (infer U)[] ? U extends object ? K | `${K}[*]` | `${K}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${{ [K_3 in keyof NonNullable<NonNullable<U>[K_2]> & string]: NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]> extends (infer U)[] ? U extends object ? K_3 | `${K_3}[*]` | `${K_3}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_3 | `${K_3}[*]` : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]> extends object ? K_3 | `${K_3}.${{ [K_4 in keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]> extends (infer U)[] ? U extends object ? K_4 | `${K_4}[*]` | `${K_4}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_4 | `${K_4}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]> extends object ? K_4 | `${K_4}.${{ [K_5 in keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]> extends (infer U)[] ? U extends object ? K_5 | `${K_5}[*]` | `${K_5}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_5 | `${K_5}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]> extends object ? K_5 | `${K_5}.${{ [K_6 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]> extends (infer U)[] ? U extends object ? K_6 | `${K_6}[*]` | `${K_6}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_6 | `${K_6}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]> extends object ? K_6 | `${K_6}.${{ [K_7 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> extends (infer U)[] ? U extends object ? K_7 | `${K_7}[*]` | `${K_7}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_7 | `${K_7}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> extends object ? K_7 | `${K_7}.${{ [K_8 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> extends (infer U)[] ? U extends object ? K_8 | `${K_8}[*]` | `${K_8}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_8 | `${K_8}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> extends object ? K_8 | `${K_8}.${{ [K_9 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends (infer U)[] ? U extends object ? K_9 | `${K_9}[*]` | `${K_9}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_9 | `${K_9}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends object ? K_9 | `${K_9}.${{ [K_10 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (infer U)[] ? U extends object ? K_10 | `${K_10}[*]` | `${K_10}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_10 | `${K_10}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends object ? K_10 | `${K_10}.${{ [K_11 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends object ? K_11 | `${K_11}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]}` : K_10; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> & string]}` : K_9; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> & string]}` : K_8; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> & string]}` : K_7; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]> & string]}` : K_6; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]> & string]}` : K_5; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]> & string]}` : K_4; }[keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]> & string]}` : K_3; }[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K | `${K}[*]` : NonNullable<TShape[K]> extends object ? K | `${K}.${{ [K_3 in keyof NonNullable<TShape[K]> & string]: NonNullable<NonNullable<TShape[K]>[K_3]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<TShape[K]>[K_3]> extends (infer U)[] ? U extends object ? K_3 | `${K_3}[*]` | `${K_3}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${{ [K_4 in keyof NonNullable<NonNullable<U>[K_2]> & string]: NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]> extends (infer U)[] ? U extends object ? K_4 | `${K_4}[*]` | `${K_4}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_4 | `${K_4}[*]` : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]> extends object ? K_4 | `${K_4}.${{ [K_5 in keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]> extends (infer U)[] ? U extends object ? K_5 | `${K_5}[*]` | `${K_5}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_5 | `${K_5}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]> extends object ? K_5 | `${K_5}.${{ [K_6 in keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]> extends (infer U)[] ? U extends object ? K_6 | `${K_6}[*]` | `${K_6}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_6 | `${K_6}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]> extends object ? K_6 | `${K_6}.${{ [K_7 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]> extends (infer U)[] ? U extends object ? K_7 | `${K_7}[*]` | `${K_7}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_7 | `${K_7}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]> extends object ? K_7 | `${K_7}.${{ [K_8 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> extends (infer U)[] ? U extends object ? K_8 | `${K_8}[*]` | `${K_8}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_8 | `${K_8}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> extends object ? K_8 | `${K_8}.${{ [K_9 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends (infer U)[] ? U extends object ? K_9 | `${K_9}[*]` | `${K_9}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_9 | `${K_9}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends object ? K_9 | `${K_9}.${{ [K_10 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (infer U)[] ? U extends object ? K_10 | `${K_10}[*]` | `${K_10}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_10 | `${K_10}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends object ? K_10 | `${K_10}.${{ [K_11 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends object ? K_11 | `${K_11}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]}` : K_10; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> & string]}` : K_9; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> & string]}` : K_8; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]> & string]}` : K_7; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]> & string]}` : K_6; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]> & string]}` : K_5; }[keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]> & string]}` : K_4; }[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K_3 | `${K_3}[*]` : NonNullable<NonNullable<TShape[K]>[K_3]> extends object ? K_3 | `${K_3}.${{ [K_4 in keyof NonNullable<NonNullable<TShape[K]>[K_3]> & string]: NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]> extends (infer U)[] ? U extends object ? K_4 | `${K_4}[*]` | `${K_4}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${{ [K_5 in keyof NonNullable<NonNullable<U>[K_2]> & string]: NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]> extends (infer U)[] ? U extends object ? K_5 | `${K_5}[*]` | `${K_5}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_5 | `${K_5}[*]` : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]> extends object ? K_5 | `${K_5}.${{ [K_6 in keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]> extends (infer U)[] ? U extends object ? K_6 | `${K_6}[*]` | `${K_6}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_6 | `${K_6}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]> extends object ? K_6 | `${K_6}.${{ [K_7 in keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]> extends (infer U)[] ? U extends object ? K_7 | `${K_7}[*]` | `${K_7}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_7 | `${K_7}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]> extends object ? K_7 | `${K_7}.${{ [K_8 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]> extends (infer U)[] ? U extends object ? K_8 | `${K_8}[*]` | `${K_8}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_8 | `${K_8}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]> extends object ? K_8 | `${K_8}.${{ [K_9 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends (infer U)[] ? U extends object ? K_9 | `${K_9}[*]` | `${K_9}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_9 | `${K_9}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends object ? K_9 | `${K_9}.${{ [K_10 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (infer U)[] ? U extends object ? K_10 | `${K_10}[*]` | `${K_10}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_10 | `${K_10}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends object ? K_10 | `${K_10}.${{ [K_11 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends object ? K_11 | `${K_11}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]}` : K_10; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> & string]}` : K_9; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]> & string]}` : K_8; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]> & string]}` : K_7; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]> & string]}` : K_6; }[keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]> & string]}` : K_5; }[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K_4 | `${K_4}[*]` : NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]> extends object ? K_4 | `${K_4}.${{ [K_5 in keyof NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]> extends (infer U)[] ? U extends object ? K_5 | `${K_5}[*]` | `${K_5}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${{ [K_6 in keyof NonNullable<NonNullable<U>[K_2]> & string]: NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]> extends (infer U)[] ? U extends object ? K_6 | `${K_6}[*]` | `${K_6}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_6 | `${K_6}[*]` : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]> extends object ? K_6 | `${K_6}.${{ [K_7 in keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]> extends (infer U)[] ? U extends object ? K_7 | `${K_7}[*]` | `${K_7}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_7 | `${K_7}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]> extends object ? K_7 | `${K_7}.${{ [K_8 in keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]> extends (infer U)[] ? U extends object ? K_8 | `${K_8}[*]` | `${K_8}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_8 | `${K_8}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]> extends object ? K_8 | `${K_8}.${{ [K_9 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]> extends (infer U)[] ? U extends object ? K_9 | `${K_9}[*]` | `${K_9}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_9 | `${K_9}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]> extends object ? K_9 | `${K_9}.${{ [K_10 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (infer U)[] ? U extends object ? K_10 | `${K_10}[*]` | `${K_10}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_10 | `${K_10}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends object ? K_10 | `${K_10}.${{ [K_11 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends object ? K_11 | `${K_11}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]}` : K_10; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]> & string]}` : K_9; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]> & string]}` : K_8; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]> & string]}` : K_7; }[keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]> & string]}` : K_6; }[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K_5 | `${K_5}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]> extends object ? K_5 | `${K_5}.${{ [K_6 in keyof NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]> extends (infer U)[] ? U extends object ? K_6 | `${K_6}[*]` | `${K_6}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${{ [K_7 in keyof NonNullable<NonNullable<U>[K_2]> & string]: NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]> extends (infer U)[] ? U extends object ? K_7 | `${K_7}[*]` | `${K_7}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_7 | `${K_7}[*]` : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]> extends object ? K_7 | `${K_7}.${{ [K_8 in keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]> extends (infer U)[] ? U extends object ? K_8 | `${K_8}[*]` | `${K_8}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_8 | `${K_8}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]> extends object ? K_8 | `${K_8}.${{ [K_9 in keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]> extends (infer U)[] ? U extends object ? K_9 | `${K_9}[*]` | `${K_9}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_9 | `${K_9}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]> extends object ? K_9 | `${K_9}.${{ [K_10 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]>[K_10]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]>[K_10]> extends (infer U)[] ? U extends object ? K_10 | `${K_10}[*]` | `${K_10}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_10 | `${K_10}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]>[K_10]> extends object ? K_10 | `${K_10}.${{ [K_11 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]>[K_10]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends object ? K_11 | `${K_11}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]>[K_10]> & string]}` : K_10; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]> & string]}` : K_9; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]> & string]}` : K_8; }[keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]> & string]}` : K_7; }[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K_6 | `${K_6}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]> extends object ? K_6 | `${K_6}.${{ [K_7 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> extends (infer U)[] ? U extends object ? K_7 | `${K_7}[*]` | `${K_7}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${{ [K_8 in keyof NonNullable<NonNullable<U>[K_2]> & string]: NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]> extends (infer U)[] ? U extends object ? K_8 | `${K_8}[*]` | `${K_8}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_8 | `${K_8}[*]` : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]> extends object ? K_8 | `${K_8}.${{ [K_9 in keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]> extends (infer U)[] ? U extends object ? K_9 | `${K_9}[*]` | `${K_9}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_9 | `${K_9}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]> extends object ? K_9 | `${K_9}.${{ [K_10 in keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]>[K_10]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]>[K_10]> extends (infer U)[] ? U extends object ? K_10 | `${K_10}[*]` | `${K_10}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_10 | `${K_10}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]>[K_10]> extends object ? K_10 | `${K_10}.${{ [K_11 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]>[K_10]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]>[K_10]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]>[K_10]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]>[K_10]>[K_11]> extends object ? K_11 | `${K_11}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]>[K_10]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]>[K_10]> & string]}` : K_10; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]> & string]}` : K_9; }[keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]> & string]}` : K_8; }[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K_7 | `${K_7}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> extends object ? K_7 | `${K_7}.${{ [K_8 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> extends (infer U)[] ? U extends object ? K_8 | `${K_8}[*]` | `${K_8}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${{ [K_9 in keyof NonNullable<NonNullable<U>[K_2]> & string]: NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]> extends (infer U)[] ? U extends object ? K_9 | `${K_9}[*]` | `${K_9}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_9 | `${K_9}[*]` : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]> extends object ? K_9 | `${K_9}.${{ [K_10 in keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]>[K_10]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]>[K_10]> extends (infer U)[] ? U extends object ? K_10 | `${K_10}[*]` | `${K_10}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_10 | `${K_10}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]>[K_10]> extends object ? K_10 | `${K_10}.${{ [K_11 in keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]>[K_10]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]>[K_10]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]>[K_10]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]>[K_10]>[K_11]> extends object ? K_11 | `${K_11}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]>[K_10]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]>[K_10]> & string]}` : K_10; }[keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]> & string]}` : K_9; }[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K_8 | `${K_8}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> extends object ? K_8 | `${K_8}.${{ [K_9 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends (infer U)[] ? U extends object ? K_9 | `${K_9}[*]` | `${K_9}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${{ [K_10 in keyof NonNullable<NonNullable<U>[K_2]> & string]: NonNullable<NonNullable<NonNullable<U>[K_2]>[K_10]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_10]> extends (infer U)[] ? U extends object ? K_10 | `${K_10}[*]` | `${K_10}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_10 | `${K_10}[*]` : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_10]> extends object ? K_10 | `${K_10}.${{ [K_11 in keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_10]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_10]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_10]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_10]>[K_11]> extends object ? K_11 | `${K_11}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_10]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_10]> & string]}` : K_10; }[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K_9 | `${K_9}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends object ? K_9 | `${K_9}.${{ [K_10 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (infer U)[] ? U extends object ? K_10 | `${K_10}[*]` | `${K_10}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${{ [K_11 in keyof NonNullable<NonNullable<U>[K_2]> & string]: NonNullable<NonNullable<NonNullable<U>[K_2]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_11]> extends object ? K_11 | `${K_11}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K_10 | `${K_10}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends object ? K_10 | `${K_10}.${{ [K_11 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${/*elided*/ any[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends object ? K_11 | `${K_11}.${{ [K_12 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]>[K_12]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]>[K_12]> extends (infer U)[] ? U extends object ? K_12 | `${K_12}[*]` | `${K_12}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_12 | `${K_12}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]>[K_12]> extends object ? K_12 | `${K_12}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]>[K_12]> & string]}` : K_12; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]}` : K_10; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> & string]}` : K_9; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> & string]}` : K_8; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> & string]}` : K_7; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]> & string]}` : K_6; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]> & string]}` : K_5; }[keyof NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]> & string]}` : K_4; }[keyof NonNullable<NonNullable<TShape[K]>[K_3]> & string]}` : K_3; }[keyof NonNullable<TShape[K]> & string]}` : K; }[keyof TShape & string] extends infer T ? T extends { [K in keyof TShape & string]: NonNullable<TShape[K]> extends (...args: any[]) => any ? never : NonNullable<TShape[K]> extends (infer U)[] ? U extends object ? K | `${K}[*]` | `${K}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${{ [K_3 in keyof NonNullable<NonNullable<U>[K_2]> & string]: NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]> extends (infer U)[] ? U extends object ? K_3 | `${K_3}[*]` | `${K_3}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_3 | `${K_3}[*]` : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]> extends object ? K_3 | `${K_3}.${{ [K_4 in keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]> extends (infer U)[] ? U extends object ? K_4 | `${K_4}[*]` | `${K_4}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_4 | `${K_4}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]> extends object ? K_4 | `${K_4}.${{ [K_5 in keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]> extends (infer U)[] ? U extends object ? K_5 | `${K_5}[*]` | `${K_5}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_5 | `${K_5}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]> extends object ? K_5 | `${K_5}.${{ [K_6 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]> extends (infer U)[] ? U extends object ? K_6 | `${K_6}[*]` | `${K_6}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_6 | `${K_6}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]> extends object ? K_6 | `${K_6}.${{ [K_7 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> extends (infer U)[] ? U extends object ? K_7 | `${K_7}[*]` | `${K_7}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_7 | `${K_7}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> extends object ? K_7 | `${K_7}.${{ [K_8 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> extends (infer U)[] ? U extends object ? K_8 | `${K_8}[*]` | `${K_8}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_8 | `${K_8}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> extends object ? K_8 | `${K_8}.${{ [K_9 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends (infer U)[] ? U extends object ? K_9 | `${K_9}[*]` | `${K_9}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_9 | `${K_9}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends object ? K_9 | `${K_9}.${{ [K_10 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (infer U)[] ? U extends object ? K_10 | `${K_10}[*]` | `${K_10}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_10 | `${K_10}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends object ? K_10 | `${K_10}.${{ [K_11 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends object ? K_11 | `${K_11}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]}` : K_10; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> & string]}` : K_9; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> & string]}` : K_8; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> & string]}` : K_7; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]>[K_6]> & string]}` : K_6; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]>[K_5]> & string]}` : K_5; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]>[K_4]> & string]}` : K_4; }[keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_3]> & string]}` : K_3; }[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K | `${K}[*]` : NonNullable<TShape[K]> extends object ? K | `${K}.${{ [K_3 in keyof NonNullable<TShape[K]> & string]: NonNullable<NonNullable<TShape[K]>[K_3]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<TShape[K]>[K_3]> extends (infer U)[] ? U extends object ? K_3 | `${K_3}[*]` | `${K_3}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${{ [K_4 in keyof NonNullable<NonNullable<U>[K_2]> & string]: NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]> extends (infer U)[] ? U extends object ? K_4 | `${K_4}[*]` | `${K_4}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_4 | `${K_4}[*]` : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]> extends object ? K_4 | `${K_4}.${{ [K_5 in keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]> extends (infer U)[] ? U extends object ? K_5 | `${K_5}[*]` | `${K_5}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_5 | `${K_5}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]> extends object ? K_5 | `${K_5}.${{ [K_6 in keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]> extends (infer U)[] ? U extends object ? K_6 | `${K_6}[*]` | `${K_6}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_6 | `${K_6}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]> extends object ? K_6 | `${K_6}.${{ [K_7 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]> extends (infer U)[] ? U extends object ? K_7 | `${K_7}[*]` | `${K_7}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_7 | `${K_7}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]> extends object ? K_7 | `${K_7}.${{ [K_8 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> extends (infer U)[] ? U extends object ? K_8 | `${K_8}[*]` | `${K_8}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_8 | `${K_8}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> extends object ? K_8 | `${K_8}.${{ [K_9 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends (infer U)[] ? U extends object ? K_9 | `${K_9}[*]` | `${K_9}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_9 | `${K_9}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends object ? K_9 | `${K_9}.${{ [K_10 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (infer U)[] ? U extends object ? K_10 | `${K_10}[*]` | `${K_10}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_10 | `${K_10}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends object ? K_10 | `${K_10}.${{ [K_11 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends object ? K_11 | `${K_11}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]}` : K_10; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> & string]}` : K_9; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> & string]}` : K_8; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]>[K_7]> & string]}` : K_7; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]>[K_6]> & string]}` : K_6; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]>[K_5]> & string]}` : K_5; }[keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_4]> & string]}` : K_4; }[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K_3 | `${K_3}[*]` : NonNullable<NonNullable<TShape[K]>[K_3]> extends object ? K_3 | `${K_3}.${{ [K_4 in keyof NonNullable<NonNullable<TShape[K]>[K_3]> & string]: NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]> extends (infer U)[] ? U extends object ? K_4 | `${K_4}[*]` | `${K_4}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${{ [K_5 in keyof NonNullable<NonNullable<U>[K_2]> & string]: NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]> extends (infer U)[] ? U extends object ? K_5 | `${K_5}[*]` | `${K_5}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_5 | `${K_5}[*]` : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]> extends object ? K_5 | `${K_5}.${{ [K_6 in keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]> extends (infer U)[] ? U extends object ? K_6 | `${K_6}[*]` | `${K_6}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_6 | `${K_6}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]> extends object ? K_6 | `${K_6}.${{ [K_7 in keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]> extends (infer U)[] ? U extends object ? K_7 | `${K_7}[*]` | `${K_7}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_7 | `${K_7}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]> extends object ? K_7 | `${K_7}.${{ [K_8 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]> extends (infer U)[] ? U extends object ? K_8 | `${K_8}[*]` | `${K_8}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_8 | `${K_8}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]> extends object ? K_8 | `${K_8}.${{ [K_9 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends (infer U)[] ? U extends object ? K_9 | `${K_9}[*]` | `${K_9}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_9 | `${K_9}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends object ? K_9 | `${K_9}.${{ [K_10 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (infer U)[] ? U extends object ? K_10 | `${K_10}[*]` | `${K_10}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_10 | `${K_10}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends object ? K_10 | `${K_10}.${{ [K_11 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends object ? K_11 | `${K_11}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]}` : K_10; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> & string]}` : K_9; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]>[K_8]> & string]}` : K_8; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]>[K_7]> & string]}` : K_7; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]>[K_6]> & string]}` : K_6; }[keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_5]> & string]}` : K_5; }[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K_4 | `${K_4}[*]` : NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]> extends object ? K_4 | `${K_4}.${{ [K_5 in keyof NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]> extends (infer U)[] ? U extends object ? K_5 | `${K_5}[*]` | `${K_5}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${{ [K_6 in keyof NonNullable<NonNullable<U>[K_2]> & string]: NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]> extends (infer U)[] ? U extends object ? K_6 | `${K_6}[*]` | `${K_6}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_6 | `${K_6}[*]` : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]> extends object ? K_6 | `${K_6}.${{ [K_7 in keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]> extends (infer U)[] ? U extends object ? K_7 | `${K_7}[*]` | `${K_7}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_7 | `${K_7}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]> extends object ? K_7 | `${K_7}.${{ [K_8 in keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]> extends (infer U)[] ? U extends object ? K_8 | `${K_8}[*]` | `${K_8}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_8 | `${K_8}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]> extends object ? K_8 | `${K_8}.${{ [K_9 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]> extends (infer U)[] ? U extends object ? K_9 | `${K_9}[*]` | `${K_9}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_9 | `${K_9}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]> extends object ? K_9 | `${K_9}.${{ [K_10 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (infer U)[] ? U extends object ? K_10 | `${K_10}[*]` | `${K_10}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_10 | `${K_10}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends object ? K_10 | `${K_10}.${{ [K_11 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends object ? K_11 | `${K_11}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]}` : K_10; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]>[K_9]> & string]}` : K_9; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]>[K_8]> & string]}` : K_8; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]>[K_7]> & string]}` : K_7; }[keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_6]> & string]}` : K_6; }[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K_5 | `${K_5}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]> extends object ? K_5 | `${K_5}.${{ [K_6 in keyof NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]> extends (infer U)[] ? U extends object ? K_6 | `${K_6}[*]` | `${K_6}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${{ [K_7 in keyof NonNullable<NonNullable<U>[K_2]> & string]: NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]> extends (infer U)[] ? U extends object ? K_7 | `${K_7}[*]` | `${K_7}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_7 | `${K_7}[*]` : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]> extends object ? K_7 | `${K_7}.${{ [K_8 in keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]> extends (infer U)[] ? U extends object ? K_8 | `${K_8}[*]` | `${K_8}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_8 | `${K_8}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]> extends object ? K_8 | `${K_8}.${{ [K_9 in keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]> extends (infer U)[] ? U extends object ? K_9 | `${K_9}[*]` | `${K_9}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_9 | `${K_9}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]> extends object ? K_9 | `${K_9}.${{ [K_10 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]>[K_10]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]>[K_10]> extends (infer U)[] ? U extends object ? K_10 | `${K_10}[*]` | `${K_10}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_10 | `${K_10}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]>[K_10]> extends object ? K_10 | `${K_10}.${{ [K_11 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]>[K_10]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends object ? K_11 | `${K_11}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]>[K_10]> & string]}` : K_10; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]>[K_9]> & string]}` : K_9; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]>[K_8]> & string]}` : K_8; }[keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_7]> & string]}` : K_7; }[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K_6 | `${K_6}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]> extends object ? K_6 | `${K_6}.${{ [K_7 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> extends (infer U)[] ? U extends object ? K_7 | `${K_7}[*]` | `${K_7}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${{ [K_8 in keyof NonNullable<NonNullable<U>[K_2]> & string]: NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]> extends (infer U)[] ? U extends object ? K_8 | `${K_8}[*]` | `${K_8}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_8 | `${K_8}[*]` : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]> extends object ? K_8 | `${K_8}.${{ [K_9 in keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]> extends (infer U)[] ? U extends object ? K_9 | `${K_9}[*]` | `${K_9}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_9 | `${K_9}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]> extends object ? K_9 | `${K_9}.${{ [K_10 in keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]>[K_10]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]>[K_10]> extends (infer U)[] ? U extends object ? K_10 | `${K_10}[*]` | `${K_10}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_10 | `${K_10}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]>[K_10]> extends object ? K_10 | `${K_10}.${{ [K_11 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]>[K_10]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]>[K_10]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]>[K_10]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]>[K_10]>[K_11]> extends object ? K_11 | `${K_11}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]>[K_10]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]>[K_10]> & string]}` : K_10; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]>[K_9]> & string]}` : K_9; }[keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_8]> & string]}` : K_8; }[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K_7 | `${K_7}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> extends object ? K_7 | `${K_7}.${{ [K_8 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> extends (infer U)[] ? U extends object ? K_8 | `${K_8}[*]` | `${K_8}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${{ [K_9 in keyof NonNullable<NonNullable<U>[K_2]> & string]: NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]> extends (infer U)[] ? U extends object ? K_9 | `${K_9}[*]` | `${K_9}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_9 | `${K_9}[*]` : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]> extends object ? K_9 | `${K_9}.${{ [K_10 in keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]>[K_10]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]>[K_10]> extends (infer U)[] ? U extends object ? K_10 | `${K_10}[*]` | `${K_10}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_10 | `${K_10}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]>[K_10]> extends object ? K_10 | `${K_10}.${{ [K_11 in keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]>[K_10]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]>[K_10]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]>[K_10]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]>[K_10]>[K_11]> extends object ? K_11 | `${K_11}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]>[K_10]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]>[K_10]> & string]}` : K_10; }[keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_9]> & string]}` : K_9; }[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K_8 | `${K_8}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> extends object ? K_8 | `${K_8}.${{ [K_9 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends (infer U)[] ? U extends object ? K_9 | `${K_9}[*]` | `${K_9}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${{ [K_10 in keyof NonNullable<NonNullable<U>[K_2]> & string]: NonNullable<NonNullable<NonNullable<U>[K_2]>[K_10]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_10]> extends (infer U)[] ? U extends object ? K_10 | `${K_10}[*]` | `${K_10}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_10 | `${K_10}[*]` : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_10]> extends object ? K_10 | `${K_10}.${{ [K_11 in keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_10]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_10]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_10]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_10]>[K_11]> extends object ? K_11 | `${K_11}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<NonNullable<U>[K_2]>[K_10]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_10]> & string]}` : K_10; }[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K_9 | `${K_9}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> extends object ? K_9 | `${K_9}.${{ [K_10 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends (infer U)[] ? U extends object ? K_10 | `${K_10}[*]` | `${K_10}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${{ [K_11 in keyof NonNullable<NonNullable<U>[K_2]> & string]: NonNullable<NonNullable<NonNullable<U>[K_2]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<U>[K_2]>[K_11]> extends object ? K_11 | `${K_11}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<U>[K_2]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K_10 | `${K_10}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> extends object ? K_10 | `${K_10}.${{ [K_11 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends (infer U)[] ? U extends object ? K_11 | `${K_11}[*]` | `${K_11}[*].${{ [K_2 in keyof NonNullable<U> & string]: NonNullable<NonNullable<U>[K_2]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<U>[K_2]> extends (infer U)[] ? U extends object ? K_2 | `${K_2}[*]` | `${K_2}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_2 | `${K_2}[*]` : NonNullable<NonNullable<U>[K_2]> extends object ? K_2 | `${K_2}.${/*elided*/ any[keyof NonNullable<NonNullable<U>[K_2]> & string]}` : K_2; }[keyof NonNullable<U> & string]}` : K_11 | `${K_11}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> extends object ? K_11 | `${K_11}.${{ [K_12 in keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> & string]: NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]>[K_12]> extends (...args: any[]) => any ? never : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]>[K_12]> extends (infer U)[] ? U extends object ? K_12 | `${K_12}[*]` | `${K_12}[*].${/*elided*/ any[keyof NonNullable<U> & string]}` : K_12 | `${K_12}[*]` : NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]>[K_12]> extends object ? K_12 | `${K_12}.${/*elided*/ any[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]>[K_12]> & string]}` : K_12; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]>[K_11]> & string]}` : K_11; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]>[K_10]> & string]}` : K_10; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]>[K_9]> & string]}` : K_9; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]>[K_8]> & string]}` : K_8; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]>[K_7]> & string]}` : K_7; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]>[K_6]> & string]}` : K_6; }[keyof NonNullable<NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]>[K_5]> & string]}` : K_5; }[keyof NonNullable<NonNullable<NonNullable<TShape[K]>[K_3]>[K_4]> & string]}` : K_4; }[keyof NonNullable<NonNullable<TShape[K]>[K_3]> & string]}` : K_3; }[keyof NonNullable<TShape[K]> & string]}` : K; }[keyof TShape & string] ? T extends string ? T extends `${string}[*]${string}` ? (T extends infer T_1 ? T_1 extends T ? T_1 extends `${infer A}[*]${infer B}` ? `${A}[0]${B extends `${infer A}[*]${infer B}` ? `${A}[0]${B extends `${infer A}[*]${infer B}` ? `${A}[0]${B extends `${infer A}[*]${infer B}` ? `${A}[0]${B extends `${infer A}[*]${infer B}` ? `${A}[0]${B extends `${infer A}[*]${infer B}` ? `${A}[0]${B extends `${infer A}[*]${infer B}` ? `${A}[0]${B extends `${infer A}[*]${infer B}` ? `${A}[0]${B extends `${infer A}[*]${infer B}` ? `${A}[0]${B extends `${infer A}[*]${infer B}` ? `${A}[0]${B extends `${infer A}[*]${infer B}` ? `${A}[0]${/*elided*/ any}` : B}` : B}` : B}` : B}` : B}` : B}` : B}` : B}` : B}` : B}` : T_1 : never : never) | ((T extends infer T_2 ? T_2 extends T ? T_2 extends `${infer A}[*]${infer B}` ? `${A}[${number}]${B extends `${infer A}[*]${infer B}` ? `${A}[${number}]${B extends `${infer A}[*]${infer B}` ? `${A}[${number}]${B extends `${infer A}[*]${infer B}` ? `${A}[${number}]${B extends `${infer A}[*]${infer B}` ? `${A}[${number}]${B extends `${infer A}[*]${infer B}` ? `${A}[${number}]${B extends `${infer A}[*]${infer B}` ? `${A}[${number}]${B extends `${infer A}[*]${infer B}` ? `${A}[${number}]${B extends `${infer A}[*]${infer B}` ? `${A}[${number}]${B extends `${infer A}[*]${infer B}` ? `${A}[${number}]${B extends `${infer A}[*]${infer B}` ? `${A}[${number}]${/*elided*/ any}` : B}` : B}` : B}` : B}` : B}` : B}` : B}` : B}` : B}` : B}` : T_2 : never : never) & {
|
|
6
|
-
_____foldMark?: never;
|
|
7
|
-
}) : T : never : never : never, import("@standard-schema/spec").StandardSchemaV1.Issue[]>;
|
|
3
|
+
export declare function useFormErrorObserver<TShape extends object, TInclude extends Field.Paths<TShape>[] | undefined>(form: UseForm<TShape>, options?: {
|
|
4
|
+
include?: TInclude;
|
|
5
|
+
}): Record<string, import("@standard-schema/spec").StandardSchemaV1.Issue[]>;
|
|
8
6
|
//# sourceMappingURL=useFormErrorObserver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFormErrorObserver.d.ts","sourceRoot":"","sources":["../../src/hooks/useFormErrorObserver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAI3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"useFormErrorObserver.d.ts","sourceRoot":"","sources":["../../src/hooks/useFormErrorObserver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAI3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,oBAAoB,CAClC,MAAM,SAAS,MAAM,EACrB,QAAQ,SAAS,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,EAElD,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EACrB,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB,4EA2BF"}
|
|
@@ -2,5 +2,5 @@ import { Field } from '../../../core/src';
|
|
|
2
2
|
import { UseForm } from './useForm';
|
|
3
3
|
export declare function useFormValuesObserver<TShape extends object, TPaths extends Field.Paths<TShape>[] | undefined = undefined>(form: UseForm<TShape>, options?: {
|
|
4
4
|
include?: TPaths;
|
|
5
|
-
}): import('
|
|
5
|
+
}): import('../../../core/src').DeepPartial<TShape>;
|
|
6
6
|
//# sourceMappingURL=useFormValuesObserver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFormValuesObserver.d.ts","sourceRoot":"","sources":["../../src/hooks/useFormValuesObserver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,qBAAqB,CACnC,MAAM,SAAS,MAAM,EACrB,MAAM,SAAS,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,GAAG,SAAS,EAE5D,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EACrB,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,
|
|
1
|
+
{"version":3,"file":"useFormValuesObserver.d.ts","sourceRoot":"","sources":["../../src/hooks/useFormValuesObserver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,qBAAqB,CACnC,MAAM,SAAS,MAAM,EACrB,MAAM,SAAS,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,GAAG,SAAS,EAE5D,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EACrB,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,oDA+BF"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/utils/composeFns.ts","../src/hooks/useRenderControl.tsx","../src/hooks/useForm.tsx","../src/hooks/useFormField.tsx","../src/hooks/useFormValuesObserver.ts","../src/utils/groupBy.ts","../src/hooks/useFormErrorObserver.ts","../src/components/FieldRenderer.tsx"],"sourcesContent":["export function composeFns<TFns extends (() => void)[]>(...fns: TFns) {\n return () => {\n for (const fn of fns) {\n fn();\n }\n };\n}\n","import { startTransition, useRef, useState } from \"react\";\n\nexport function useRenderControl() {\n const [, rerender] = useState(0);\n const renderCount = useRef(0);\n const renderScheduled = useRef(false);\n renderCount.current++;\n\n const scheduleRerender = () => {\n if (renderScheduled.current) return;\n renderScheduled.current = true;\n\n queueMicrotask(() => {\n startTransition(() => {\n rerender((i) => i + 1);\n });\n\n renderScheduled.current = false;\n });\n };\n\n return {\n renderCount: renderCount.current,\n forceRerender: scheduleRerender,\n };\n}\n","import { FormController, type Form } from \"@goodie-forms/core\";\nimport { useEffect, useState } from \"react\";\nimport { composeFns } from \"../utils/composeFns\";\nimport { useRenderControl } from \"../hooks/useRenderControl\";\n\nexport function useForm<TShape extends object>(\n formConfigs: Form.FormConfigs<TShape>,\n hookConfigs?: {\n validateMode?: \"onChange\" | \"onBlur\" | \"onSubmit\";\n revalidateMode?: \"onChange\" | \"onBlur\" | \"onSubmit\";\n watchIssues?: boolean;\n watchValues?: boolean;\n },\n) {\n const [controller] = useState(() => new FormController(formConfigs));\n\n const renderControl = useRenderControl();\n\n useEffect(() => {\n const noop = () => {};\n\n return composeFns(\n controller.events.on(\"submissionStatusChange\", () => {\n renderControl.forceRerender();\n }),\n hookConfigs?.watchIssues\n ? controller.events.on(\"fieldIssuesUpdated\", () =>\n renderControl.forceRerender(),\n )\n : noop,\n hookConfigs?.watchValues\n ? controller.events.on(\"valueChanged\", () =>\n renderControl.forceRerender(),\n )\n : noop,\n );\n }, [controller]);\n\n return {\n formConfigs,\n hookConfigs,\n controller,\n };\n}\n\nexport type UseForm<TShape extends object> = ReturnType<typeof useForm<TShape>>;\n","import { Field } from \"@goodie-forms/core\";\nimport { useEffect, useState } from \"react\";\nimport { UseForm } from \"../hooks/useForm\";\nimport { useRenderControl } from \"../hooks/useRenderControl\";\nimport { composeFns } from \"../utils/composeFns\";\n\nexport function useFormField<\n TShape extends object,\n TPath extends Field.Paths<TShape>\n>(\n form: UseForm<TShape>,\n path: TPath,\n bindingConfig?: Parameters<typeof form.controller.bindField<TPath>>[1]\n) {\n const renderControl = useRenderControl();\n\n const [field, setField] = useState(() => {\n let field = form.controller.getField(path);\n if (field == null && bindingConfig != null) {\n field = form.controller.bindField(path, bindingConfig);\n }\n return field;\n });\n\n useEffect(() => {\n const { events } = form.controller;\n\n setField(form.controller.getField(path));\n\n return composeFns(\n events.on(\"fieldBound\", (_path) => {\n if (_path === path) setField(form.controller.getField(path));\n }),\n events.on(\"fieldUnbound\", (_path) => {\n if (_path === path) setField(undefined);\n }),\n events.on(\"valueChanged\", (changedPath) => {\n if (changedPath === path || Field.isDescendant(changedPath, path)) {\n renderControl.forceRerender();\n }\n }),\n events.on(\"fieldTouchUpdated\", (_path) => {\n if (_path === path) renderControl.forceRerender();\n }),\n events.on(\"fieldDirtyUpdated\", (_path) => {\n if (_path === path) renderControl.forceRerender();\n }),\n events.on(\"fieldIssuesUpdated\", (_path) => {\n if (_path === path) renderControl.forceRerender();\n })\n );\n }, []);\n\n return field;\n}\n","import { Field } from \"@goodie-forms/core\";\nimport { useEffect } from \"react\";\nimport { composeFns } from \"../utils/composeFns\";\nimport type { UseForm } from \"./useForm\";\nimport { useRenderControl } from \"./useRenderControl\";\n\nexport function useFormValuesObserver<\n TShape extends object,\n TPaths extends Field.Paths<TShape>[] | undefined = undefined\n>(\n form: UseForm<TShape>,\n options?: {\n include?: TPaths;\n }\n) {\n const renderControl = useRenderControl();\n\n const observedValues =\n options?.include == null\n ? form.controller._data\n : options.include.reduce((data, path) => {\n const value = Field.getValue(form.controller._data as TShape, path)!;\n Field.setValue(data, path, value);\n return data;\n }, {} as TShape);\n\n useEffect(() => {\n const { events } = form.controller;\n\n return composeFns(\n events.on(\"valueChanged\", (changedPath) => {\n const watchingChange =\n options?.include == null\n ? true\n : options.include.some(\n (path) =>\n path === changedPath || Field.isDescendant(path, changedPath)\n );\n if (watchingChange) renderControl.forceRerender();\n })\n );\n }, []);\n\n return observedValues;\n}\n","export function groupBy<T, K extends PropertyKey>(\n items: readonly T[],\n key: (item: T) => K,\n): Record<K, T[]> {\n const result = {} as Record<K, T[]>;\n\n for (const item of items) {\n const k = key(item);\n (result[k] ??= []).push(item);\n }\n\n return result;\n}\n","import { Field } from \"@goodie-forms/core\";\nimport { useEffect } from \"react\";\nimport { composeFns } from \"../utils/composeFns\";\nimport { groupBy } from \"../utils/groupBy\";\nimport type { UseForm } from \"./useForm\";\nimport { useRenderControl } from \"./useRenderControl\";\n\nexport function useFormErrorObserver<TShape extends object>(\n form: UseForm<TShape>,\n options?: {\n include?: Field.Paths<TShape>[];\n },\n) {\n const renderControl = useRenderControl();\n\n const filteredIssues = form.controller._issues.filter((issue) => {\n if (options?.include == null) return true;\n const path = Field.parsePath(issue.path!) as Field.Paths<TShape>;\n return options.include.includes(path);\n });\n\n const observedIssues = groupBy(\n filteredIssues,\n (issue) => Field.parsePath(issue.path!) as Field.Paths<TShape>,\n );\n\n useEffect(() => {\n const { events } = form.controller;\n\n return composeFns(\n events.on(\"fieldIssuesUpdated\", (path) => {\n if (options?.include?.includes?.(path) ?? true) {\n renderControl.forceRerender();\n }\n }),\n );\n }, []);\n\n return observedIssues;\n}\n","import { Field, FormField, NonnullFormField } from \"@goodie-forms/core\";\nimport {\n ChangeEvent,\n FocusEvent,\n ReactNode,\n Ref,\n useEffect,\n useRef,\n} from \"react\";\nimport { UseForm } from \"../hooks/useForm\";\nimport { useFormField } from \"../hooks/useFormField\";\nimport { composeFns } from \"../utils/composeFns\";\n\nexport interface RenderParams<\n TShape extends object,\n TPath extends Field.Paths<TShape>\n> {\n ref: Ref<any | null>;\n\n value: Field.GetValue<TShape, TPath> | undefined;\n\n handlers: {\n onChange: (event: ChangeEvent<EventTarget>) => void;\n onFocus: (event: FocusEvent) => void;\n onBlur: (event: FocusEvent) => void;\n };\n\n field: undefined extends Field.GetValue<TShape, TPath>\n ? FormField<TShape, TPath>\n : NonnullFormField<TShape, TPath>;\n}\n\ntype DefaultValueProps<TValue> = undefined extends TValue\n ? { defaultValue?: TValue | (() => TValue) }\n : { defaultValue: TValue | (() => TValue) };\n\nexport type FieldRendererProps<\n TShape extends object,\n TPath extends Field.Paths<TShape>\n> = {\n form: UseForm<TShape>;\n path: TPath;\n overrideInitialValue?: boolean;\n unbindOnUnmount?: boolean;\n render: (params: RenderParams<TShape, TPath>) => ReactNode;\n} & DefaultValueProps<Field.GetValue<TShape, TPath>>;\n\nexport function FieldRenderer<\n TShape extends object,\n TPath extends Field.Paths<TShape>\n>(props: FieldRendererProps<TShape, TPath>) {\n const elementRef = useRef<HTMLElement>(null);\n\n const field = useFormField(props.form, props.path, {\n overrideInitialValue: props.overrideInitialValue ?? true,\n defaultValue:\n typeof props.defaultValue === \"function\"\n ? (props.defaultValue as any)()\n : props.defaultValue,\n })!;\n\n const handlers: RenderParams<TShape, TPath>[\"handlers\"] = {\n onChange(event) {\n const { target } = event;\n if (target !== field.boundElement) return;\n if (!(\"value\" in target)) return;\n if (typeof target.value !== \"string\") return;\n field.setValue(target.value as Field.GetValue<TShape, TPath>, {\n shouldTouch: true,\n shouldMarkDirty: true,\n });\n },\n onFocus() {\n field.touch();\n },\n onBlur() {\n if (\n props.form.hookConfigs?.validateMode === \"onBlur\" ||\n props.form.hookConfigs?.validateMode === \"onChange\"\n ) {\n props.form.controller.validateField(props.path);\n }\n },\n };\n\n useEffect(() => {\n const { events } = props.form.controller;\n\n return composeFns(\n events.on(\"valueChanged\", (path) => {\n if (path !== props.path && !Field.isDescendant(path, props.path))\n return;\n if (props.form.hookConfigs?.validateMode === \"onChange\") {\n props.form.controller.validateField(props.path);\n }\n })\n );\n }, []);\n\n useEffect(() => {\n field.bindElement(elementRef.current!);\n\n return () => {\n if (props.unbindOnUnmount) {\n props.form.controller.unbindField(props.path);\n }\n };\n }, []);\n\n return (\n <>\n {props.render({\n ref: elementRef,\n value: field.value,\n handlers: handlers,\n field: field as any,\n })}\n </>\n );\n}\n"],"names":["composeFns","fns","fn","useRenderControl","rerender","useState","renderCount","useRef","renderScheduled","scheduleRerender","startTransition","i","useForm","formConfigs","hookConfigs","controller","FormController","renderControl","useEffect","noop","useFormField","form","path","bindingConfig","field","setField","events","_path","changedPath","Field","useFormValuesObserver","options","observedValues","data","value","groupBy","items","key","result","item","k","useFormErrorObserver","filteredIssues","issue","observedIssues","FieldRenderer","props","elementRef","handlers","event","target","jsx","Fragment"],"mappings":";;;AAAO,SAASA,KAA2CC,GAAW;AACpE,SAAO,MAAM;AACX,eAAWC,KAAMD;AACf,MAAAC,EAAA;AAAA,EAEJ;AACF;ACJO,SAASC,IAAmB;AACjC,QAAM,GAAGC,CAAQ,IAAIC,EAAS,CAAC,GACzBC,IAAcC,EAAO,CAAC,GACtBC,IAAkBD,EAAO,EAAK;AACpC,EAAAD,EAAY;AAEZ,QAAMG,IAAmB,MAAM;AAC7B,IAAID,EAAgB,YACpBA,EAAgB,UAAU,IAE1B,eAAe,MAAM;AACnB,MAAAE,EAAgB,MAAM;AACpB,QAAAN,EAAS,CAACO,MAAMA,IAAI,CAAC;AAAA,MACvB,CAAC,GAEDH,EAAgB,UAAU;AAAA,IAC5B,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL,aAAaF,EAAY;AAAA,IACzB,eAAeG;AAAA,EAAA;AAEnB;ACpBO,SAASG,EACdC,GACAC,GAMA;AACA,QAAM,CAACC,CAAU,IAAIV,EAAS,MAAM,IAAIW,EAAeH,CAAW,CAAC,GAE7DI,IAAgBd,EAAA;AAEtB,SAAAe,EAAU,MAAM;AACd,UAAMC,IAAO,MAAM;AAAA,IAAC;AAEpB,WAAOnB;AAAA,MACLe,EAAW,OAAO,GAAG,0BAA0B,MAAM;AACnD,QAAAE,EAAc,cAAA;AAAA,MAChB,CAAC;AAAA,MACDH,GAAa,cACTC,EAAW,OAAO;AAAA,QAAG;AAAA,QAAsB,MACzCE,EAAc,cAAA;AAAA,MAAc,IAE9BE;AAAA,MACJL,GAAa,cACTC,EAAW,OAAO;AAAA,QAAG;AAAA,QAAgB,MACnCE,EAAc,cAAA;AAAA,MAAc,IAE9BE;AAAA,IAAA;AAAA,EAER,GAAG,CAACJ,CAAU,CAAC,GAER;AAAA,IACL,aAAAF;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC;AAAA,EAAA;AAEJ;ACrCO,SAASK,EAIdC,GACAC,GACAC,GACA;AACA,QAAMN,IAAgBd,EAAA,GAEhB,CAACqB,GAAOC,CAAQ,IAAIpB,EAAS,MAAM;AACvC,QAAImB,IAAQH,EAAK,WAAW,SAASC,CAAI;AACzC,WAAIE,KAAS,QAAQD,KAAiB,SACpCC,IAAQH,EAAK,WAAW,UAAUC,GAAMC,CAAa,IAEhDC;AAAAA,EACT,CAAC;AAED,SAAAN,EAAU,MAAM;AACd,UAAM,EAAE,QAAAQ,MAAWL,EAAK;AAExB,WAAAI,EAASJ,EAAK,WAAW,SAASC,CAAI,CAAC,GAEhCtB;AAAA,MACL0B,EAAO,GAAG,cAAc,CAACC,MAAU;AACjC,QAAIA,MAAUL,KAAMG,EAASJ,EAAK,WAAW,SAASC,CAAI,CAAC;AAAA,MAC7D,CAAC;AAAA,MACDI,EAAO,GAAG,gBAAgB,CAACC,MAAU;AACnC,QAAIA,MAAUL,KAAMG,EAAS,MAAS;AAAA,MACxC,CAAC;AAAA,MACDC,EAAO,GAAG,gBAAgB,CAACE,MAAgB;AACzC,SAAIA,MAAgBN,KAAQO,EAAM,aAAaD,GAAaN,CAAI,MAC9DL,EAAc,cAAA;AAAA,MAElB,CAAC;AAAA,MACDS,EAAO,GAAG,qBAAqB,CAACC,MAAU;AACxC,QAAIA,MAAUL,KAAML,EAAc,cAAA;AAAA,MACpC,CAAC;AAAA,MACDS,EAAO,GAAG,qBAAqB,CAACC,MAAU;AACxC,QAAIA,MAAUL,KAAML,EAAc,cAAA;AAAA,MACpC,CAAC;AAAA,MACDS,EAAO,GAAG,sBAAsB,CAACC,MAAU;AACzC,QAAIA,MAAUL,KAAML,EAAc,cAAA;AAAA,MACpC,CAAC;AAAA,IAAA;AAAA,EAEL,GAAG,CAAA,CAAE,GAEEO;AACT;AChDO,SAASM,EAIdT,GACAU,GAGA;AACA,QAAMd,IAAgBd,EAAA,GAEhB6B,IACJD,GAAS,WAAW,OAChBV,EAAK,WAAW,QAChBU,EAAQ,QAAQ,OAAO,CAACE,GAAMX,MAAS;AACrC,UAAMY,IAAQL,EAAM,SAASR,EAAK,WAAW,OAAiBC,CAAI;AAClE,WAAAO,EAAM,SAASI,GAAMX,GAAMY,CAAK,GACzBD;AAAA,EACT,GAAG,CAAA,CAAY;AAErB,SAAAf,EAAU,MAAM;AACd,UAAM,EAAE,QAAAQ,MAAWL,EAAK;AAExB,WAAOrB;AAAA,MACL0B,EAAO,GAAG,gBAAgB,CAACE,MAAgB;AAQzC,SANEG,GAAS,WAAW,QAEhBA,EAAQ,QAAQ;AAAA,UACd,CAACT,MACCA,MAASM,KAAeC,EAAM,aAAaP,GAAMM,CAAW;AAAA,QAAA,QAEpC,cAAA;AAAA,MACpC,CAAC;AAAA,IAAA;AAAA,EAEL,GAAG,CAAA,CAAE,GAEEI;AACT;AC5CO,SAASG,EACdC,GACAC,GACgB;AAChB,QAAMC,IAAS,CAAA;AAEf,aAAWC,KAAQH,GAAO;AACxB,UAAMI,IAAIH,EAAIE,CAAI;AAClB,KAACD,EAAOE,CAAC,MAAM,CAAA,GAAI,KAAKD,CAAI;AAAA,EAC9B;AAEA,SAAOD;AACT;ACLO,SAASG,EACdpB,GACAU,GAGA;AACA,QAAMd,IAAgBd,EAAA,GAEhBuC,IAAiBrB,EAAK,WAAW,QAAQ,OAAO,CAACsB,MAAU;AAC/D,QAAIZ,GAAS,WAAW,KAAM,QAAO;AACrC,UAAMT,IAAOO,EAAM,UAAUc,EAAM,IAAK;AACxC,WAAOZ,EAAQ,QAAQ,SAAST,CAAI;AAAA,EACtC,CAAC,GAEKsB,IAAiBT;AAAA,IACrBO;AAAA,IACA,CAACC,MAAUd,EAAM,UAAUc,EAAM,IAAK;AAAA,EAAA;AAGxC,SAAAzB,EAAU,MAAM;AACd,UAAM,EAAE,QAAAQ,MAAWL,EAAK;AAExB,WAAOrB;AAAA,MACL0B,EAAO,GAAG,sBAAsB,CAACJ,MAAS;AACxC,SAAIS,GAAS,SAAS,WAAWT,CAAI,KAAK,OACxCL,EAAc,cAAA;AAAA,MAElB,CAAC;AAAA,IAAA;AAAA,EAEL,GAAG,CAAA,CAAE,GAEE2B;AACT;ACQO,SAASC,EAGdC,GAA0C;AAC1C,QAAMC,IAAaxC,EAAoB,IAAI,GAErCiB,IAAQJ,EAAa0B,EAAM,MAAMA,EAAM,MAAM;AAAA,IACjD,sBAAsBA,EAAM,wBAAwB;AAAA,IACpD,cACE,OAAOA,EAAM,gBAAiB,aACzBA,EAAM,aAAA,IACPA,EAAM;AAAA,EAAA,CACb,GAEKE,IAAoD;AAAA,IACxD,SAASC,GAAO;AACd,YAAM,EAAE,QAAAC,MAAWD;AACnB,MAAIC,MAAW1B,EAAM,gBACf,WAAW0B,KACb,OAAOA,EAAO,SAAU,YAC5B1B,EAAM,SAAS0B,EAAO,OAAwC;AAAA,QAC5D,aAAa;AAAA,QACb,iBAAiB;AAAA,MAAA,CAClB;AAAA,IACH;AAAA,IACA,UAAU;AACR,MAAA1B,EAAM,MAAA;AAAA,IACR;AAAA,IACA,SAAS;AACP,OACEsB,EAAM,KAAK,aAAa,iBAAiB,YACzCA,EAAM,KAAK,aAAa,iBAAiB,eAEzCA,EAAM,KAAK,WAAW,cAAcA,EAAM,IAAI;AAAA,IAElD;AAAA,EAAA;AAGF,SAAA5B,EAAU,MAAM;AACd,UAAM,EAAE,QAAAQ,EAAA,IAAWoB,EAAM,KAAK;AAE9B,WAAO9C;AAAA,MACL0B,EAAO,GAAG,gBAAgB,CAACJ,MAAS;AAClC,QAAIA,MAASwB,EAAM,QAAQ,CAACjB,EAAM,aAAaP,GAAMwB,EAAM,IAAI,KAE3DA,EAAM,KAAK,aAAa,iBAAiB,cAC3CA,EAAM,KAAK,WAAW,cAAcA,EAAM,IAAI;AAAA,MAElD,CAAC;AAAA,IAAA;AAAA,EAEL,GAAG,CAAA,CAAE,GAEL5B,EAAU,OACRM,EAAM,YAAYuB,EAAW,OAAQ,GAE9B,MAAM;AACX,IAAID,EAAM,mBACRA,EAAM,KAAK,WAAW,YAAYA,EAAM,IAAI;AAAA,EAEhD,IACC,CAAA,CAAE,GAGH,gBAAAK,EAAAC,GAAA,EACG,YAAM,OAAO;AAAA,IACZ,KAAKL;AAAA,IACL,OAAOvB,EAAM;AAAA,IACb,UAAAwB;AAAA,IACA,OAAAxB;AAAA,EAAA,CACD,GACH;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/utils/composeFns.ts","../src/hooks/useRenderControl.tsx","../src/hooks/useForm.tsx","../src/hooks/useFormField.tsx","../src/hooks/useFormValuesObserver.ts","../src/utils/groupBy.ts","../src/hooks/useFormErrorObserver.ts","../src/components/FieldRenderer.tsx"],"sourcesContent":["export function composeFns<TFns extends (() => void)[]>(...fns: TFns) {\n return () => {\n for (const fn of fns) {\n fn();\n }\n };\n}\n","import { startTransition, useRef, useState } from \"react\";\n\nexport function useRenderControl() {\n const [, rerender] = useState(0);\n const renderCount = useRef(0);\n const renderScheduled = useRef(false);\n renderCount.current++;\n\n const scheduleRerender = () => {\n if (renderScheduled.current) return;\n renderScheduled.current = true;\n\n queueMicrotask(() => {\n startTransition(() => {\n rerender((i) => i + 1);\n });\n\n renderScheduled.current = false;\n });\n };\n\n return {\n renderCount: renderCount.current,\n forceRerender: scheduleRerender,\n };\n}\n","import { FormController, type Form } from \"@goodie-forms/core\";\nimport { useEffect, useState } from \"react\";\nimport { composeFns } from \"../utils/composeFns\";\nimport { useRenderControl } from \"../hooks/useRenderControl\";\n\nexport function useForm<TShape extends object>(\n formConfigs: Form.FormConfigs<TShape>,\n hookConfigs?: {\n validateMode?: \"onChange\" | \"onBlur\" | \"onSubmit\";\n revalidateMode?: \"onChange\" | \"onBlur\" | \"onSubmit\";\n watchIssues?: boolean;\n watchValues?: boolean;\n }\n) {\n const [controller] = useState(() => new FormController(formConfigs));\n\n const renderControl = useRenderControl();\n\n useEffect(() => {\n const noop = () => {};\n\n return composeFns(\n controller.events.on(\"submissionStatusChange\", () => {\n renderControl.forceRerender();\n }),\n hookConfigs?.watchIssues\n ? controller.events.on(\"fieldIssuesUpdated\", () =>\n renderControl.forceRerender()\n )\n : noop,\n hookConfigs?.watchValues\n ? controller.events.on(\"valueChanged\", () =>\n renderControl.forceRerender()\n )\n : noop\n );\n }, [controller]);\n\n return {\n formConfigs,\n hookConfigs,\n controller,\n } as UseForm<TShape>;\n}\n\nexport type UseForm<TShape extends object> = {\n formConfigs: Form.FormConfigs<TShape>;\n hookConfigs?: {\n validateMode?: \"onChange\" | \"onBlur\" | \"onSubmit\";\n revalidateMode?: \"onChange\" | \"onBlur\" | \"onSubmit\";\n watchIssues?: boolean;\n watchValues?: boolean;\n };\n controller: FormController<TShape>;\n};\n","import { Field } from \"@goodie-forms/core\";\nimport { useEffect, useState } from \"react\";\nimport { UseForm } from \"../hooks/useForm\";\nimport { useRenderControl } from \"../hooks/useRenderControl\";\nimport { composeFns } from \"../utils/composeFns\";\n\nexport function useFormField<\n TShape extends object,\n TPath extends Field.Paths<TShape>\n>(\n form: UseForm<TShape>,\n path: TPath,\n bindingConfig?: Parameters<typeof form.controller.bindField<TPath>>[1]\n) {\n const renderControl = useRenderControl();\n\n const [field, setField] = useState(() => {\n let field = form.controller.getField(path);\n if (field == null && bindingConfig != null) {\n field = form.controller.bindField(path, bindingConfig);\n }\n return field;\n });\n\n useEffect(() => {\n const { events } = form.controller;\n\n setField(form.controller.getField(path));\n\n return composeFns(\n events.on(\"fieldBound\", (_path) => {\n if (_path === path) setField(form.controller.getField(path));\n }),\n events.on(\"fieldUnbound\", (_path) => {\n if (_path === path) setField(undefined);\n }),\n events.on(\"valueChanged\", (changedPath) => {\n if (changedPath === path || Field.isDescendant(changedPath, path)) {\n renderControl.forceRerender();\n }\n }),\n events.on(\"fieldTouchUpdated\", (_path) => {\n if (_path === path) renderControl.forceRerender();\n }),\n events.on(\"fieldDirtyUpdated\", (_path) => {\n if (_path === path) renderControl.forceRerender();\n }),\n events.on(\"fieldIssuesUpdated\", (_path) => {\n if (_path === path) renderControl.forceRerender();\n })\n );\n }, []);\n\n return field;\n}\n","import { Field } from \"@goodie-forms/core\";\nimport { useEffect } from \"react\";\nimport { composeFns } from \"../utils/composeFns\";\nimport type { UseForm } from \"./useForm\";\nimport { useRenderControl } from \"./useRenderControl\";\n\nexport function useFormValuesObserver<\n TShape extends object,\n TPaths extends Field.Paths<TShape>[] | undefined = undefined\n>(\n form: UseForm<TShape>,\n options?: {\n include?: TPaths;\n }\n) {\n const renderControl = useRenderControl();\n\n const observedValues =\n options?.include == null\n ? form.controller._data\n : options.include.reduce((data, path) => {\n const value = Field.getValue(form.controller._data as TShape, path)!;\n Field.setValue(data, path, value);\n return data;\n }, {} as TShape);\n\n useEffect(() => {\n const { events } = form.controller;\n\n return composeFns(\n events.on(\"valueChanged\", (changedPath) => {\n const watchingChange =\n options?.include == null\n ? true\n : options.include.some(\n (path) =>\n path === changedPath || Field.isDescendant(path, changedPath)\n );\n if (watchingChange) renderControl.forceRerender();\n })\n );\n }, []);\n\n return observedValues;\n}\n","export function groupBy<T, K extends PropertyKey>(\n items: readonly T[],\n key: (item: T) => K,\n): Record<K, T[]> {\n const result = {} as Record<K, T[]>;\n\n for (const item of items) {\n const k = key(item);\n (result[k] ??= []).push(item);\n }\n\n return result;\n}\n","import { Field } from \"@goodie-forms/core\";\nimport { useEffect } from \"react\";\nimport { composeFns } from \"../utils/composeFns\";\nimport { groupBy } from \"../utils/groupBy\";\nimport type { UseForm } from \"./useForm\";\nimport { useRenderControl } from \"./useRenderControl\";\n\nexport function useFormErrorObserver<\n TShape extends object,\n TInclude extends Field.Paths<TShape>[] | undefined\n>(\n form: UseForm<TShape>,\n options?: {\n include?: TInclude;\n }\n) {\n const renderControl = useRenderControl();\n\n const filteredIssues = form.controller._issues.filter((issue) => {\n if (options?.include == null) return true;\n const path = Field.parsePath(issue.path!) as Field.Paths<TShape>;\n return options.include.includes(path);\n });\n\n const observedIssues = groupBy(filteredIssues, (issue) =>\n Field.parsePath(issue.path!)\n );\n\n useEffect(() => {\n const { events } = form.controller;\n\n return composeFns(\n events.on(\"fieldIssuesUpdated\", (path) => {\n if (options?.include?.includes?.(path) ?? true) {\n renderControl.forceRerender();\n }\n })\n );\n }, []);\n\n return observedIssues;\n}\n","import { Field, FormField, NonnullFormField } from \"@goodie-forms/core\";\nimport {\n ChangeEvent,\n FocusEvent,\n ReactNode,\n Ref,\n useEffect,\n useRef,\n} from \"react\";\nimport { UseForm } from \"../hooks/useForm\";\nimport { useFormField } from \"../hooks/useFormField\";\nimport { composeFns } from \"../utils/composeFns\";\n\nexport interface RenderParams<\n TShape extends object,\n TPath extends Field.Paths<TShape>\n> {\n ref: Ref<any | null>;\n\n value: Field.GetValue<TShape, TPath> | undefined;\n\n handlers: {\n onChange: (event: ChangeEvent<EventTarget>) => void;\n onFocus: (event: FocusEvent) => void;\n onBlur: (event: FocusEvent) => void;\n };\n\n field: undefined extends Field.GetValue<TShape, TPath>\n ? FormField<TShape, TPath>\n : NonnullFormField<TShape, TPath>;\n}\n\ntype DefaultValueProps<TValue> = undefined extends TValue\n ? { defaultValue?: TValue | (() => TValue) }\n : { defaultValue: TValue | (() => TValue) };\n\nexport type FieldRendererProps<\n TShape extends object,\n TPath extends Field.Paths<TShape>\n> = {\n form: UseForm<TShape>;\n path: TPath;\n overrideInitialValue?: boolean;\n unbindOnUnmount?: boolean;\n render: (params: RenderParams<TShape, TPath>) => ReactNode;\n} & DefaultValueProps<Field.GetValue<TShape, TPath>>;\n\nexport function FieldRenderer<\n TShape extends object,\n TPath extends Field.Paths<TShape>\n>(props: FieldRendererProps<TShape, TPath>) {\n const elementRef = useRef<HTMLElement>(null);\n\n const field = useFormField(props.form, props.path, {\n overrideInitialValue: props.overrideInitialValue ?? true,\n defaultValue:\n typeof props.defaultValue === \"function\"\n ? (props.defaultValue as any)()\n : props.defaultValue,\n })!;\n\n const handlers: RenderParams<TShape, TPath>[\"handlers\"] = {\n onChange(event) {\n const { target } = event;\n if (target !== field.boundElement) return;\n if (!(\"value\" in target)) return;\n if (typeof target.value !== \"string\") return;\n field.setValue(target.value as Field.GetValue<TShape, TPath>, {\n shouldTouch: true,\n shouldMarkDirty: true,\n });\n },\n onFocus() {\n field.touch();\n },\n onBlur() {\n if (\n props.form.hookConfigs?.validateMode === \"onBlur\" ||\n props.form.hookConfigs?.validateMode === \"onChange\"\n ) {\n props.form.controller.validateField(props.path);\n }\n },\n };\n\n useEffect(() => {\n const { events } = props.form.controller;\n\n return composeFns(\n events.on(\"valueChanged\", (path) => {\n if (path !== props.path && !Field.isDescendant(path, props.path))\n return;\n if (props.form.hookConfigs?.validateMode === \"onChange\") {\n props.form.controller.validateField(props.path);\n }\n })\n );\n }, []);\n\n useEffect(() => {\n field.bindElement(elementRef.current!);\n\n return () => {\n if (props.unbindOnUnmount) {\n props.form.controller.unbindField(props.path);\n }\n };\n }, []);\n\n return (\n <>\n {props.render({\n ref: elementRef,\n value: field.value,\n handlers: handlers,\n field: field as any,\n })}\n </>\n );\n}\n"],"names":["composeFns","fns","fn","useRenderControl","rerender","useState","renderCount","useRef","renderScheduled","scheduleRerender","startTransition","i","useForm","formConfigs","hookConfigs","controller","FormController","renderControl","useEffect","noop","useFormField","form","path","bindingConfig","field","setField","events","_path","changedPath","Field","useFormValuesObserver","options","observedValues","data","value","groupBy","items","key","result","item","k","useFormErrorObserver","filteredIssues","issue","observedIssues","FieldRenderer","props","elementRef","handlers","event","target","jsx","Fragment"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goodie-forms/react",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.6-alpha",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"react-dom": "^18 || ^19"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@goodie-forms/core": "1.1.
|
|
21
|
+
"@goodie-forms/core": "1.1.6-alpha"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@types/react": "^19.2.9",
|
package/src/hooks/useForm.tsx
CHANGED
|
@@ -10,7 +10,7 @@ export function useForm<TShape extends object>(
|
|
|
10
10
|
revalidateMode?: "onChange" | "onBlur" | "onSubmit";
|
|
11
11
|
watchIssues?: boolean;
|
|
12
12
|
watchValues?: boolean;
|
|
13
|
-
}
|
|
13
|
+
}
|
|
14
14
|
) {
|
|
15
15
|
const [controller] = useState(() => new FormController(formConfigs));
|
|
16
16
|
|
|
@@ -25,14 +25,14 @@ export function useForm<TShape extends object>(
|
|
|
25
25
|
}),
|
|
26
26
|
hookConfigs?.watchIssues
|
|
27
27
|
? controller.events.on("fieldIssuesUpdated", () =>
|
|
28
|
-
renderControl.forceRerender()
|
|
28
|
+
renderControl.forceRerender()
|
|
29
29
|
)
|
|
30
30
|
: noop,
|
|
31
31
|
hookConfigs?.watchValues
|
|
32
32
|
? controller.events.on("valueChanged", () =>
|
|
33
|
-
renderControl.forceRerender()
|
|
33
|
+
renderControl.forceRerender()
|
|
34
34
|
)
|
|
35
|
-
: noop
|
|
35
|
+
: noop
|
|
36
36
|
);
|
|
37
37
|
}, [controller]);
|
|
38
38
|
|
|
@@ -40,7 +40,16 @@ export function useForm<TShape extends object>(
|
|
|
40
40
|
formConfigs,
|
|
41
41
|
hookConfigs,
|
|
42
42
|
controller,
|
|
43
|
-
}
|
|
43
|
+
} as UseForm<TShape>;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
export type UseForm<TShape extends object> =
|
|
46
|
+
export type UseForm<TShape extends object> = {
|
|
47
|
+
formConfigs: Form.FormConfigs<TShape>;
|
|
48
|
+
hookConfigs?: {
|
|
49
|
+
validateMode?: "onChange" | "onBlur" | "onSubmit";
|
|
50
|
+
revalidateMode?: "onChange" | "onBlur" | "onSubmit";
|
|
51
|
+
watchIssues?: boolean;
|
|
52
|
+
watchValues?: boolean;
|
|
53
|
+
};
|
|
54
|
+
controller: FormController<TShape>;
|
|
55
|
+
};
|
|
@@ -5,11 +5,14 @@ import { groupBy } from "../utils/groupBy";
|
|
|
5
5
|
import type { UseForm } from "./useForm";
|
|
6
6
|
import { useRenderControl } from "./useRenderControl";
|
|
7
7
|
|
|
8
|
-
export function useFormErrorObserver<
|
|
8
|
+
export function useFormErrorObserver<
|
|
9
|
+
TShape extends object,
|
|
10
|
+
TInclude extends Field.Paths<TShape>[] | undefined
|
|
11
|
+
>(
|
|
9
12
|
form: UseForm<TShape>,
|
|
10
13
|
options?: {
|
|
11
|
-
include?:
|
|
12
|
-
}
|
|
14
|
+
include?: TInclude;
|
|
15
|
+
}
|
|
13
16
|
) {
|
|
14
17
|
const renderControl = useRenderControl();
|
|
15
18
|
|
|
@@ -19,9 +22,8 @@ export function useFormErrorObserver<TShape extends object>(
|
|
|
19
22
|
return options.include.includes(path);
|
|
20
23
|
});
|
|
21
24
|
|
|
22
|
-
const observedIssues = groupBy(
|
|
23
|
-
|
|
24
|
-
(issue) => Field.parsePath(issue.path!) as Field.Paths<TShape>,
|
|
25
|
+
const observedIssues = groupBy(filteredIssues, (issue) =>
|
|
26
|
+
Field.parsePath(issue.path!)
|
|
25
27
|
);
|
|
26
28
|
|
|
27
29
|
useEffect(() => {
|
|
@@ -32,7 +34,7 @@ export function useFormErrorObserver<TShape extends object>(
|
|
|
32
34
|
if (options?.include?.includes?.(path) ?? true) {
|
|
33
35
|
renderControl.forceRerender();
|
|
34
36
|
}
|
|
35
|
-
})
|
|
37
|
+
})
|
|
36
38
|
);
|
|
37
39
|
}, []);
|
|
38
40
|
|